Skip to content

Commit 9443ef1

Browse files
committed
refactor: Use static cast instead of dynamic cast
1 parent 5532443 commit 9443ef1

File tree

5 files changed

+11
-2
lines changed

5 files changed

+11
-2
lines changed

Generals/Code/GameEngine/Include/GameLogic/Module/ContainModule.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ class ContainModuleInterface
8686
virtual Bool isGarrisonable() const = 0;
8787
virtual Bool isSpecialZeroSlotContainer() const = 0;
8888
virtual Bool isHealContain() const = 0;
89+
virtual Bool isTunnelContain() const = 0;
8990
virtual Bool isImmuneToClearBuildingAttacks() const = 0;
9091

9192

Generals/Code/GameEngine/Include/GameLogic/Module/HealContain.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ class HealContain : public OpenContain
6666

6767
virtual UpdateSleepTime update(); ///< called once per frame
6868
virtual Bool isHealContain() const { return true; } ///< true when container only contains units while healing (not a transport!)
69+
virtual Bool isTunnelContain() const { return FALSE; }
6970

7071
protected:
7172

Generals/Code/GameEngine/Include/GameLogic/Module/OpenContain.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ class OpenContain : public UpdateModule,
191191

192192
virtual Bool isGarrisonable() const { return false; } ///< can this unit be Garrisoned? (ick)
193193
virtual Bool isHealContain() const { return false; } ///< true when container only contains units while healing (not a transport!)
194+
virtual Bool isTunnelContain() const { return FALSE; }
194195
virtual Bool isSpecialZeroSlotContainer() const { return false; }
195196
virtual Bool isImmuneToClearBuildingAttacks() const { return true; }
196197

Generals/Code/GameEngine/Source/Common/RTS/TunnelTracker.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,10 @@ void TunnelTracker::updateFullHealTime()
332332
continue;
333333

334334
const ContainModuleInterface* contain = tunnelObj->getContain();
335-
const TunnelContain* tunnelContain = dynamic_cast<const TunnelContain*>(contain); // Downcast is not ideal
335+
if (!contain->isTunnelContain())
336+
continue;
337+
338+
const TunnelContain* tunnelContain = static_cast<const TunnelContain*>(contain); // Downcast is not ideal
336339
if (!tunnelContain)
337340
continue;
338341

GeneralsMD/Code/GameEngine/Source/Common/RTS/TunnelTracker.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,10 @@ void TunnelTracker::updateFullHealTime()
333333
continue;
334334

335335
const ContainModuleInterface* contain = tunnelObj->getContain();
336-
const TunnelContain* tunnelContain = dynamic_cast<const TunnelContain*>(contain); // Downcast is not ideal
336+
if (!contain->isTunnelContain())
337+
continue;
338+
339+
const TunnelContain* tunnelContain = static_cast<const TunnelContain*>(contain); // Downcast is not ideal
337340
if (!tunnelContain)
338341
continue;
339342

0 commit comments

Comments
 (0)