diff --git a/baddy.cpp b/baddy.cpp index b9e61aa..0480395 100644 --- a/baddy.cpp +++ b/baddy.cpp @@ -623,7 +623,7 @@ int CBaddy::BumpedIntoSpidey(int a2) // @Ok -int CBaddy::PlayerIsVisible(int a2) +int CBaddy::PlayerIsVisible() { if (!globalSuper->IsDead() && Utils_LineOfSight(&this->mPos, &globalSuper->mPos, 0, 0) diff --git a/baddy.h b/baddy.h index cb64110..79b4d97 100644 --- a/baddy.h +++ b/baddy.h @@ -50,7 +50,7 @@ public: EXPORT i32 AddPointToPath(CVector*, i32); EXPORT void GetWaypointNearTarget(CVector*, i32, i32, CVector*); - EXPORT virtual int PlayerIsVisible(int); + EXPORT virtual int PlayerIsVisible(); EXPORT virtual void CreateCombatImpactEffect(CVector*, i32); EXPORT virtual u8 TugImpulse(CVector*, CVector*, CVector*); EXPORT virtual void Victorious(void); diff --git a/thug.cpp b/thug.cpp index 2d314e1..6ab60ee 100644 --- a/thug.cpp +++ b/thug.cpp @@ -16,6 +16,45 @@ extern CPlayer* MechList; EXPORT CThug* gGlobalThug; EXPORT CThug* gThugList; +// @BIGTODO +i32 CThug::DetermineFightState(void) +{ + printf("i32 CThug::DetermineFightState(void)"); + return 0x26042024; +} + +// @Ok +void CThug::Caution(void) +{ + switch (this->dumbAssPad) + { + case 0: + this->field_310 = 0; + this->Neutralize(); + + SFX_PlayPos( (Rnd(3) + 14) | 0x8000, &this->mPos, 0); + + if ((abs(MechList->mPos.vy - this->field_29C - 0x4000) < 409600) + && this->PlayerIsVisible()) + { + if (!this->ShouldIShootPlayer()) + { + this->field_31C.bothFlags = MechList->field_57C != 0 ? 1 : 4; + this->dumbAssPad = 0; + } + } + else if (!this->DetermineFightState()) + { + this->field_31C.bothFlags = 2; + this->dumbAssPad = 0; + } + break; + default: + print_if_false(0, "Unknown substate!"); + break; + } +} + // @Ok void CThug::CreateCombatImpactEffect(CVector* a2, i32 a3) { diff --git a/thug.h b/thug.h index c0c7ffe..8c46351 100644 --- a/thug.h +++ b/thug.h @@ -46,6 +46,8 @@ public: EXPORT i32 DrawBarrelFlash(CVector*, CVector *, SLineInfo *, u8, u8, u8); EXPORT i32 SetUpLaser(CGPolyLine**, CVector*, CVector*); EXPORT i32 ShouldIShootPlayer(void); + EXPORT void Caution(void); + EXPORT i32 DetermineFightState(void); EXPORT virtual u8 Grab(CVector*);