ReGameDLL_CS/regamedll/dlls/bot/states/cs_bot_defuse_bomb.cpp

69 lines
1.6 KiB
C++
Raw Normal View History

2015-06-30 12:46:07 +03:00
#include "precompiled.h"
2016-01-25 20:02:57 +03:00
// Begin defusing the bomb
2015-06-30 12:46:07 +03:00
/* <539f0e> ../cstrike/dlls/bot/states/cs_bot_defuse_bomb.cpp:16 */
2016-01-25 20:02:57 +03:00
void DefuseBombState::__MAKE_VHOOK(OnEnter)(CCSBot *me)
2015-06-30 12:46:07 +03:00
{
2016-01-25 20:02:57 +03:00
me->Crouch();
me->SetDisposition(CCSBot::SELF_DEFENSE);
me->GetChatter()->Say("DefusingBomb");
2015-06-30 12:46:07 +03:00
}
2016-01-25 20:02:57 +03:00
// Defuse the bomb
2015-06-30 12:46:07 +03:00
/* <539eac> ../cstrike/dlls/bot/states/cs_bot_defuse_bomb.cpp:27 */
2016-01-25 20:02:57 +03:00
void DefuseBombState::__MAKE_VHOOK(OnUpdate)(CCSBot *me)
2015-06-30 12:46:07 +03:00
{
2016-01-25 20:02:57 +03:00
const Vector *bombPos = me->GetGameState()->GetBombPosition();
CCSBotManager *ctrl = TheCSBots();
if (bombPos == NULL)
{
me->PrintIfWatched("In Defuse state, but don't know where the bomb is!\n");
me->Idle();
return;
}
// look at the bomb
me->SetLookAt("Defuse bomb", bombPos, PRIORITY_HIGH);
// defuse...
me->UseEnvironment();
if (gpGlobals->time - me->GetStateTimestamp() > 1.0f)
{
// if we missed starting the defuse, give up
if (ctrl->GetBombDefuser() == NULL)
{
me->PrintIfWatched("Failed to start defuse, giving up\n");
me->Idle();
return;
}
else if (ctrl->GetBombDefuser() != me)
{
// if someone else got the defuse, give up
me->PrintIfWatched("Someone else started defusing, giving up\n");
me->Idle();
return;
}
}
// if bomb has been defused, give up
if (!ctrl->IsBombPlanted())
{
me->Idle();
return;
}
2015-06-30 12:46:07 +03:00
}
/* <539e36> ../cstrike/dlls/bot/states/cs_bot_defuse_bomb.cpp:73 */
2016-01-25 20:02:57 +03:00
void DefuseBombState::__MAKE_VHOOK(OnExit)(CCSBot *me)
2015-06-30 12:46:07 +03:00
{
2016-01-25 20:02:57 +03:00
me->StandUp();
me->ResetStuckMonitor();
me->SetTask(CCSBot::SEEK_AND_DESTROY);
me->SetDisposition(CCSBot::ENGAGE_AND_INVESTIGATE);
me->ClearLookAt();
2015-06-30 12:46:07 +03:00
}