diff --git a/Generals/Code/GameEngine/Source/GameLogic/Object/SpecialPower/SpecialPowerModule.cpp b/Generals/Code/GameEngine/Source/GameLogic/Object/SpecialPower/SpecialPowerModule.cpp index 3baa5d1af4..2df465ba08 100644 --- a/Generals/Code/GameEngine/Source/GameLogic/Object/SpecialPower/SpecialPowerModule.cpp +++ b/Generals/Code/GameEngine/Source/GameLogic/Object/SpecialPower/SpecialPowerModule.cpp @@ -166,6 +166,17 @@ SpecialPowerModule::~SpecialPowerModule() //------------------------------------------------------------------------------------------------- void SpecialPowerModule::resolveSpecialPower( void ) { +#if !RETAIL_COMPATIBLE_CRC + // TheSuperHackers @info some building based special powers are immediately available + // This means we need to set their available frame to the current frame to make them usable + // The check for a public timer excludes super weapons from the selection criteria + if (getSpecialPowerModuleData()->m_specialPowerTemplate->hasPublicTimer() == FALSE && + getObject()->isKindOf(KINDOF_STRUCTURE) ) + { + m_availableOnFrame = TheGameLogic->getFrame(); + } +#endif + /* // if we're pre-built, and not from a command center, and a building register us with the UI diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/SpecialPower/SpecialPowerModule.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/SpecialPower/SpecialPowerModule.cpp index 05cbc6449c..bf4b694fb7 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/SpecialPower/SpecialPowerModule.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Object/SpecialPower/SpecialPowerModule.cpp @@ -178,6 +178,17 @@ void SpecialPowerModule::setReadyFrame( UnsignedInt frame ) //------------------------------------------------------------------------------------------------- void SpecialPowerModule::resolveSpecialPower( void ) { +#if !RETAIL_COMPATIBLE_CRC + // TheSuperHackers @info some building based special powers are immediately available + // This means we need to set their available frame to the current frame to make them usable + // The check for a public timer excludes super weapons from the selection criteria + if (getSpecialPowerModuleData()->m_specialPowerTemplate->hasPublicTimer() == FALSE && + getObject()->isKindOf(KINDOF_STRUCTURE) ) + { + m_availableOnFrame = TheGameLogic->getFrame(); + } +#endif + /* // if we're pre-built, and not from a command center, and a building register us with the UI