Skip to content

Commit f9bd31b

Browse files
committed
ResolveExitArea safety checks
1 parent 1b4f1ca commit f9bd31b

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/game/server/neo/bot/behavior/neo_bot_ladder_climb.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,9 @@ ActionResult<CNEOBot> CNEOBotLadderClimb::OnStart( CNEOBot *me, Action<CNEOBot>
109109
//---------------------------------------------------------------------------------------------
110110
void CNEOBotLadderClimb::ResolveExitArea( CNEOBot *me )
111111
{
112+
// Clear potentially stale exit area
113+
m_pExitArea = nullptr;
114+
112115
const PathFollower *path = me->GetCurrentPath();
113116
if ( path && path->IsValid() )
114117
{
@@ -118,8 +121,9 @@ void CNEOBotLadderClimb::ResolveExitArea( CNEOBot *me )
118121
return;
119122
}
120123

124+
constexpr int MAX_PATH_SEARCH_STEPS = 100;
121125
int safetyCounter = 0;
122-
while ( seg && safetyCounter < 100 )
126+
while ( seg && safetyCounter < MAX_PATH_SEARCH_STEPS )
123127
{
124128
if ( !seg->ladder )
125129
{
@@ -129,8 +133,9 @@ void CNEOBotLadderClimb::ResolveExitArea( CNEOBot *me )
129133
seg = path->NextSegment( seg );
130134
safetyCounter++;
131135
}
136+
Assert( safetyCounter < MAX_PATH_SEARCH_STEPS );
132137

133-
if ( seg && seg->area )
138+
if ( seg && !seg->ladder && seg->area )
134139
{
135140
m_pExitArea = seg->area;
136141
m_exitAreaCenter = m_pExitArea->GetCenter();

0 commit comments

Comments
 (0)