File tree Expand file tree Collapse file tree 4 files changed +26
-8
lines changed
GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain
Generals/Code/GameEngine/Source/GameLogic/Object/Contain Expand file tree Collapse file tree 4 files changed +26
-8
lines changed Original file line number Diff line number Diff line change @@ -638,11 +638,10 @@ void GarrisonContain::trackTargets( void )
638
638
AIUpdateInterface *ai;
639
639
Object *obj;
640
640
641
+ DEBUG_ASSERTCRASH (m_garrisonPointsInitialized, (" garrisonPoints are not inited" ));
642
+
641
643
for ( ContainedItemsList::const_iterator it = containList.begin (); it != containList.end (); ++it )
642
644
{
643
-
644
- DEBUG_ASSERTCRASH (m_garrisonPointsInitialized, (" garrisonPoints are not inited" ));
645
-
646
645
// get the object
647
646
obj = *it;
648
647
Original file line number Diff line number Diff line change @@ -319,15 +319,25 @@ void OpenContain::addToContain( Object *rider )
319
319
addOrRemoveObjFromWorld (rider, false );
320
320
}
321
321
322
- // ensure our contents are positions correctly.
322
+ #if RETAIL_COMPATIBLE_CRC
323
+ // ensure our occupants are positioned correctly.
324
+ // TheSuperHackers @info Moving this call elsewhere will cause retail mismatch.
323
325
redeployOccupants ();
326
+ #endif
324
327
325
328
// trigger an onContaining event for the object that just "ate" something
326
329
if ( getObject ()->getContain () )
327
330
{
328
331
getObject ()->getContain ()->onContaining ( rider );
329
332
}
330
333
334
+ // ensure our occupants are positioned correctly.
335
+ // TheSuperHackers @fix Skyaero 10/07/2025 Now (re)deploys the occupants after the garrison points
336
+ // had a chance to initialize with prior call to onContaining(). No user facing bug was observed.
337
+ #if !RETAIL_COMPATIBLE_CRC
338
+ redeployOccupants ();
339
+ #endif
340
+
331
341
// trigger an onContainedBy event for the object that just got "eaten" by us
332
342
rider->onContainedBy ( getObject () );
333
343
Original file line number Diff line number Diff line change @@ -692,11 +692,10 @@ void GarrisonContain::trackTargets( void )
692
692
AIUpdateInterface *ai;
693
693
Object *obj;
694
694
695
+ DEBUG_ASSERTCRASH (m_garrisonPointsInitialized, (" garrisonPoints are not inited" ));
696
+
695
697
for ( ContainedItemsList::const_iterator it = containList.begin (); it != containList.end (); ++it )
696
698
{
697
-
698
- DEBUG_ASSERTCRASH (m_garrisonPointsInitialized, (" garrisonPoints are not inited" ));
699
-
700
699
// get the object
701
700
obj = *it;
702
701
Original file line number Diff line number Diff line change @@ -341,15 +341,25 @@ void OpenContain::addToContain( Object *rider )
341
341
addOrRemoveObjFromWorld (rider, false );
342
342
}
343
343
344
- // ensure our contents are positions correctly.
344
+ #if RETAIL_COMPATIBLE_CRC
345
+ // ensure our occupants are positioned correctly.
346
+ // TheSuperHackers @info Moving this call elsewhere will cause retail mismatch.
345
347
redeployOccupants ();
348
+ #endif
346
349
347
350
// trigger an onContaining event for the object that just "ate" something
348
351
if ( getObject ()->getContain () )
349
352
{
350
353
getObject ()->getContain ()->onContaining ( rider, wasSelected );
351
354
}
352
355
356
+ // ensure our occupants are positioned correctly.
357
+ // TheSuperHackers @fix Skyaero 10/07/2025 Now (re)deploys the occupants after the garrison points
358
+ // had a chance to initialize with prior call to onContaining(). No user facing bug was observed.
359
+ #if !RETAIL_COMPATIBLE_CRC
360
+ redeployOccupants ();
361
+ #endif
362
+
353
363
// trigger an onContainedBy event for the object that just got "eaten" by us
354
364
rider->onContainedBy ( getObject () );
355
365
You can’t perform that action at this time.
0 commit comments