void SWTypeExt::ExtData::InitializeConstants(SuperWeaponTypeClass *pThis) { NewSWType::Init(); MouseCursor *Cursor = &this->SW_Cursor; Cursor->Frame = 53; // Attack Cursor->Count = 5; Cursor->Interval = 5; // test? Cursor->MiniFrame = 52; Cursor->MiniCount = 1; Cursor->HotX = hotspx_center; Cursor->HotY = hotspy_middle; Cursor = &this->SW_NoCursor; Cursor->Frame = 0; Cursor->Count = 1; Cursor->Interval = 5; Cursor->MiniFrame = 1; Cursor->MiniCount = 1; Cursor->HotX = hotspx_center; Cursor->HotY = hotspy_middle; this->Text_Ready = CSFText("TXT_READY"); this->Text_Hold = CSFText("TXT_HOLD"); this->Text_Charging = CSFText("TXT_CHARGING"); this->Text_Active = CSFText("TXT_FIRESTORM_ON"); EVA_InsufficientFunds = VoxClass::FindIndex("EVA_InsufficientFunds"); EVA_SelectTarget = VoxClass::FindIndex("EVA_SelectTarget"); }
void SW_LightningStorm::Initialize(SWTypeExt::ExtData *pData, SuperWeaponTypeClass *pSW) { // Defaults to Lightning Storm values pData->Weather_DebrisMin = 2; pData->Weather_DebrisMax = 4; pData->Weather_IgnoreLightningRod = false; pData->Weather_ScatterCount = 1; pData->Weather_RadarOutageAffects = SuperWeaponAffectedHouse::Enemies; pData->EVA_Detected = VoxClass::FindIndex("EVA_WeatherDeviceReady"); pData->EVA_Ready = VoxClass::FindIndex("EVA_LightningStormReady"); pData->EVA_Activated = VoxClass::FindIndex("EVA_LightningStormCreated"); pData->Message_Launch = CSFText("TXT_LIGHTNING_STORM_APPROACHING"); pData->Message_Activate = CSFText("TXT_LIGHTNING_STORM"); pData->Message_Abort = CSFText("Msg:LightningStormActive"); pData->SW_AITargetingType = SuperWeaponAITargetingMode::LightningStorm; pData->SW_Cursor = MouseCursor::GetCursor(MouseCursorType::LightningStorm); }
void SW_HunterSeeker::Initialize(SWTypeExt::ExtData *pData, SuperWeaponTypeClass *pSW) { // Defaults to HunterSeeker values pData->HunterSeeker_Type = nullptr; pData->HunterSeeker_RandomOnly = false; pData->EVA_Detected = VoxClass::FindIndex("EVA_HunterSeekerDetected"); pData->EVA_Ready = VoxClass::FindIndex("EVA_HunterSeekerReady"); pData->EVA_Activated = VoxClass::FindIndex("EVA_HunterSeekerLaunched"); pData->SW_AITargetingType = SuperWeaponAITargetingMode::NoTarget; pData->SW_AffectsHouse = SuperWeaponAffectedHouse::Enemies; pData->Text_Ready = CSFText("TXT_RELEASE"); // hardcoded pSW->Action = Action::None; pData->SW_RadarEvent = false; }
void SW_PsychicDominator::Initialize(SWTypeExt::ExtData *pData, SuperWeaponTypeClass *pSW) { // Defaults to PsychicDominator values pData->Dominator_FirstAnimHeight = 750; pData->Dominator_SecondAnimHeight = 0; pData->Dominator_Ripple = true; pData->Dominator_Capture = true; pData->Dominator_CaptureMindControlled = true; pData->Dominator_CapturePermaMindControlled = true; pData->Dominator_CaptureImmuneToPsionics = false; pData->Dominator_PermanentCapture = true; pData->EVA_Detected = VoxClass::FindIndex("EVA_PsychicDominatorDetected"); pData->EVA_Ready = VoxClass::FindIndex("EVA_PsychicDominatorReady"); pData->EVA_Activated = VoxClass::FindIndex("EVA_PsychicDominatorActivated"); pData->Message_Abort = CSFText("Msg:DominatorActive"); pData->SW_AITargetingType = SuperWeaponAITargetingMode::PsychicDominator; pData->SW_AffectsTarget = SuperWeaponTarget::Infantry | SuperWeaponTarget::Unit; pData->SW_Cursor = MouseCursor::First[MouseCursorType::PsychicDominator]; }