CCop::CheckToShoot

This commit is contained in:
krystalgamer 2024-07-25 19:40:03 +02:00
parent 9bce4d11b4
commit 9917fa692a
5 changed files with 32 additions and 2 deletions

17
cop.cpp
View File

@ -16,6 +16,23 @@ extern CBaddy *BaddyList;
EXPORT CCop* gCopList;
// @Ok
INLINE void CCop::CheckToShoot(i32 a2, i32 a3)
{
if ( MechList->field_57C && !gCopList && !MechList->field_E48)
{
if ( ((this->field_218 & 0x800) && a2 < this->field_37C)
||
(this->field_324 && a2 < 1500 && (a3 != -1 || this->PathCheck(&this->mPos, &MechList->mPos, 0, 55))))
{
this->Neutralize();
gCopList = this;
this->field_31C.bothFlags = 9;
this->dumbAssPad = 0;
}
}
}
// @SMALLTODO
i32 CCop::SetUpLaser(CGPolyLine**, CVector*, CVector*)
{

1
cop.h
View File

@ -34,6 +34,7 @@ public:
EXPORT void GetAttackPosition(CVector*);
EXPORT i32 DrawBarrelFlash(CVector*, CVector *, SLineInfo *, u8, u8, u8);
EXPORT i32 SetUpLaser(CGPolyLine**, CVector*, CVector*);
EXPORT void CheckToShoot(i32, i32);
EXPORT virtual void CreateCombatImpactEffect(CVector*, i32);
EXPORT virtual u8 TugImpulse(CVector*, CVector*, CVector*);

View File

@ -873,6 +873,8 @@ void validate_CPlayer(void)
VALIDATE(CPlayer, field_568, 0x568);
VALIDATE(CPlayer, field_56C, 0x56C);
VALIDATE(CPlayer, field_57C, 0x57C);
VALIDATE(CPlayer, field_580, 0x580);
VALIDATE(CPlayer, field_584, 0x584);
@ -927,4 +929,6 @@ void validate_CPlayer(void)
VALIDATE(CPlayer, field_E2D, 0xE2D);
VALIDATE(CPlayer, field_E2E, 0xE2E);
VALIDATE(CPlayer, field_E48, 0xE48);
}

View File

@ -30,7 +30,10 @@ class CPlayer : public CSuper
i32 field_568;
i32 field_56C;
unsigned char padAfter56C[0x580-0x56C-4];
u8 padAfter56C[0x57C-0x56C-4];
i8 field_57C;
u8 padAfter57C[0x580-0x57C-1];
i32 field_580;
CSmokeTrail* field_584;
@ -104,8 +107,11 @@ class CPlayer : public CSuper
char field_E2D;
char field_E2E;
u8 padAfterE2E[(0xE48-0xE2E)-0x1];
unsigned char padBottomPlayer[(0xEFC-0xE2E)-0x1];
i32 field_E48;
u8 padBottomPlayer[(0xEFC-0xE48)-0x4];
EXPORT void SetCamAngleLock(unsigned __int16);

View File

@ -192,6 +192,8 @@ void CThug::Guard(void)
}
}
// @NotOk
// stateflags
INLINE i32 CThug::CanAck(
i32 a2,
i32 a3,