From d4546139efb831a1a074ba5777ed5bd4eacedd27 Mon Sep 17 00:00:00 2001 From: ChthonVII Date: Wed, 23 Jun 2021 11:13:25 +0900 Subject: [PATCH] vanilla bugfix for crash due to missing IsActive check when unit death animation overlaps a building --- REDALERT/.INFANTRY.CPP.kate-swp | Bin 0 -> 2066 bytes REDALERT/UNIT.CPP | 3 ++- TIBERIANDAWN/INFANTRY.CPP | 3 ++- TIBERIANDAWN/UNIT.CPP | 3 ++- 4 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 REDALERT/.INFANTRY.CPP.kate-swp diff --git a/REDALERT/.INFANTRY.CPP.kate-swp b/REDALERT/.INFANTRY.CPP.kate-swp new file mode 100644 index 0000000000000000000000000000000000000000..0ee04697ece048fe04d65410493635735d264176 GIT binary patch literal 2066 zcmbu=%W@Jy6b9g7VHpUy7!x(#LZaplLk5tGMjZ*MqO@FyrKP(8W&+Ah7!uw3Ccc9k zA3$Hmm3y`9zcW++F=iL4sN$Q`efo5BX2vj#xhIbACTd5{AhF->xCtwjHVk9F@#ggp zyZPyR^mB6O+uNsmUwI_VpeLrGWFk;X#(Tz z1}yU3gjYC!2`v7VDdEmHBZWMnwJ{*k;^<8*~O1y_SVV{WFrvQumMOfU6C0NYAcVhf~_#M~Vg+(hofW>+bVbKbYV6lH27ULho1LiNo zqMkkYi17+MWIMp>Ru4N1!z(1R?Q!y{$yKuOIjED1;`Y__Ud#6fqmpSJwEfn&o@(^F z=8KkVk4A2{-uY+`yH3+FUpl>Zr{g5c{oebrJ2VI5PRGn<(xw{TZTlm$;N`8NXB9JE z#GrJaT29YlGsU%8`m3C zw@A2f5DtlRh%$;}n&4!8YT{H*JvEUW<73rei#k_zWHaz$M181S%Xse9t lH=6LA8iOuJ&3M7$4YYVXJY+<)Df;XSia-$9JyX+F{sO|sV1fVu literal 0 HcmV?d00001 diff --git a/REDALERT/UNIT.CPP b/REDALERT/UNIT.CPP index fff58b1ee..18ee32115 100644 --- a/REDALERT/UNIT.CPP +++ b/REDALERT/UNIT.CPP @@ -479,7 +479,8 @@ void UnitClass::AI(void) /* ** Scatter units off buildings in guard modes. */ - if (!IsTethered && !IsFiring && !IsDriving && !IsRotating && (Mission == MISSION_GUARD || Mission == MISSION_GUARD_AREA) && MissionQueue == MISSION_NONE && Map[Coord].Cell_Building() != NULL) { + // Chthon CFE Note: bugfix missing IsActive check, as per https://github.com/TheAssemblyArmada/Vanilla-Conquer/pull/430 + if (IsActive && !IsTethered && !IsFiring && !IsDriving && !IsRotating && (Mission == MISSION_GUARD || Mission == MISSION_GUARD_AREA) && MissionQueue == MISSION_NONE && Map[Coord].Cell_Building() != NULL) { Scatter(0, true, true); } diff --git a/TIBERIANDAWN/INFANTRY.CPP b/TIBERIANDAWN/INFANTRY.CPP index 6652854db..a5374b344 100644 --- a/TIBERIANDAWN/INFANTRY.CPP +++ b/TIBERIANDAWN/INFANTRY.CPP @@ -1138,7 +1138,8 @@ void InfantryClass::AI(void) /* ** Scatter infantry off buildings in guard modes. */ - if (!IsTethered && !IsFiring && !IsDriving && !IsRotating && (Mission == MISSION_GUARD || Mission == MISSION_GUARD_AREA) && MissionQueue == MISSION_NONE && Map[Coord_Cell(Coord)].Cell_Building() != NULL) { + // Chthon CFE Note: bugfix missing IsActive check, as per https://github.com/TheAssemblyArmada/Vanilla-Conquer/pull/430 + if (IsActive && !IsTethered && !IsFiring && !IsDriving && !IsRotating && (Mission == MISSION_GUARD || Mission == MISSION_GUARD_AREA) && MissionQueue == MISSION_NONE && Map[Coord_Cell(Coord)].Cell_Building() != NULL) { Scatter(0, true, true); } diff --git a/TIBERIANDAWN/UNIT.CPP b/TIBERIANDAWN/UNIT.CPP index b56bead24..4816c1568 100644 --- a/TIBERIANDAWN/UNIT.CPP +++ b/TIBERIANDAWN/UNIT.CPP @@ -567,7 +567,8 @@ void UnitClass::AI(void) /* ** Scatter units off buildings in guard modes. */ - if (!IsTethered && !IsFiring && !IsDriving && !IsRotating && (Mission == MISSION_GUARD || Mission == MISSION_GUARD_AREA) && MissionQueue == MISSION_NONE && Map[Coord_Cell(Coord)].Cell_Building() != NULL) { + // Chthon CFE Note: bugfix missing IsActive check, as per https://github.com/TheAssemblyArmada/Vanilla-Conquer/pull/430 + if (IsActive && !IsTethered && !IsFiring && !IsDriving && !IsRotating && (Mission == MISSION_GUARD || Mission == MISSION_GUARD_AREA) && MissionQueue == MISSION_NONE && Map[Coord_Cell(Coord)].Cell_Building() != NULL) { Scatter(0, true, true); }