@@ -140,7 +140,7 @@ DEFINE_HOOK(0x41D604, AirstrikeClass_PointerGotInvalid_ResetForTarget, 0x6)
140
140
return SkipGameCode;
141
141
}
142
142
143
- DEFINE_HOOK (0x65E97F , HouseClass_CreateAirstrike_SetTaretForUnit , 0x6 )
143
+ DEFINE_HOOK (0x65E97F , HouseClass_CreateAirstrike_SetTargetForUnit , 0x6 )
144
144
{
145
145
enum { SkipGameCode = 0x65E992 };
146
146
@@ -198,6 +198,9 @@ DEFINE_HOOK(0x70E92F, TechnoClass_UpdateAirstrikeTint, 0x5)
198
198
return TechnoExt::ExtMap.Find (pThis)->AirstrikeTargetingMe ? ContinueIn : Skip;
199
199
}
200
200
201
+ // 9.6.2025 - Starkku: Moved to BuildingClass_AI hook in Buildings/Hooks.cpp for optimization's sake.
202
+ // Said hook is later but shouldn't matter in this case, the purpose is to force redraw on every frame.
203
+ /*
201
204
DEFINE_HOOK(0x43FDD6, BuildingClass_AI_Airstrike, 0x6)
202
205
{
203
206
enum { SkipGameCode = 0x43FDF1 };
@@ -208,7 +211,7 @@ DEFINE_HOOK(0x43FDD6, BuildingClass_AI_Airstrike, 0x6)
208
211
pThis->Mark(MarkType::Change);
209
212
210
213
return SkipGameCode;
211
- }
214
+ }*/
212
215
213
216
DEFINE_HOOK (0x43F9E0 , BuildingClass_Mark_Airstrike, 0x6 )
214
217
{
@@ -255,13 +258,22 @@ DEFINE_HOOK(0x456E5A, BuildingClass_Flash_Airstrike, 0x6)
255
258
return TechnoExt::ExtMap.Find (pThis)->AirstrikeTargetingMe ? ContinueTintIntensity : NonAirstrike;
256
259
}
257
260
258
- DEFINE_HOOK ( 0x456FD3 , BuildingClass_GetEffectTintIntensity_Airstrike, 0x6 )
261
+ class BuildingClassFake final : public BuildingClass
259
262
{
260
- enum { ContinueTintIntensity = 0x457002 , NonAirstrike = 0x45700F };
263
+ int _GetAirstrikeInvulnerabilityIntensity (int intensity) const ;
264
+ };
261
265
262
- GET (BuildingClass*, pThis, ESI);
266
+ int BuildingClassFake::_GetAirstrikeInvulnerabilityIntensity (int currentIntensity) const
267
+ {
268
+ auto const pBuilding = (BuildingClass*)this ;
269
+ int newIntensity = pBuilding->GetFlashingIntensity (currentIntensity);
263
270
264
- return TechnoExt::ExtMap.Find (pThis)->AirstrikeTargetingMe ? ContinueTintIntensity : NonAirstrike;
271
+ if (pBuilding->IsIronCurtained () || TechnoExt::ExtMap.Find (pBuilding)->AirstrikeTargetingMe )
272
+ newIntensity = pBuilding->GetEffectTintIntensity (newIntensity);
273
+
274
+ return newIntensity;
265
275
}
266
276
277
+ DEFINE_FUNCTION_JUMP (CALL, 0x450A5D , BuildingClassFake::_GetAirstrikeInvulnerabilityIntensity); // BuildingClass_Animation_AI
278
+
267
279
#pragma endregion
0 commit comments