Fixed crash bot when can see a loose bomb but didn't get closest area for bomb

This commit is contained in:
s1lentq 2023-12-31 17:30:29 +07:00
parent 991573f165
commit d3c0ec8aeb
2 changed files with 8 additions and 2 deletions

View File

@ -1452,6 +1452,7 @@ void CCSBotManager::SetLooseBomb(CBaseEntity *bomb)
if (bomb) if (bomb)
{ {
m_looseBombArea = TheNavAreaGrid.GetNearestNavArea(&bomb->pev->origin); m_looseBombArea = TheNavAreaGrid.GetNearestNavArea(&bomb->pev->origin);
DbgAssert(m_looseBombArea); // TODO: Need investigation and find out why it cannot find nearest area for a lost bomb, just catch it
} }
else else
{ {

View File

@ -95,10 +95,15 @@ void HuntState::OnUpdate(CCSBot *me)
{ {
if (!me->IsRogue() && me->CanSeeLooseBomb()) if (!me->IsRogue() && me->CanSeeLooseBomb())
{ {
CNavArea *looseBombArea = TheCSBots()->GetLooseBombArea();
// if we are near the loose bomb and can see it, hide nearby and guard it // if we are near the loose bomb and can see it, hide nearby and guard it
me->SetTask(CCSBot::GUARD_LOOSE_BOMB); me->SetTask(CCSBot::GUARD_LOOSE_BOMB);
me->Hide(TheCSBots()->GetLooseBombArea()); me->Hide(looseBombArea);
me->GetChatter()->AnnouncePlan("GoingToGuardLooseBomb", TheCSBots()->GetLooseBombArea()->GetPlace());
if (looseBombArea)
me->GetChatter()->AnnouncePlan("GoingToGuardLooseBomb", looseBombArea->GetPlace());
return; return;
} }
else if (TheCSBots()->IsBombPlanted()) else if (TheCSBots()->IsBombPlanted())