CVenom::Lookaround

This commit is contained in:
krystalgamer 2024-06-30 18:32:03 +01:00
parent aae5c2e1fd
commit be9f57032c
3 changed files with 30 additions and 32 deletions

View File

@ -36,5 +36,7 @@ typedef char i8;
typedef short i16;
typedef int i32;
#define INLINE __inline
#endif

View File

@ -5,37 +5,6 @@
#include "ps2lowsfx.h"
#include "trig.h"
//Revisit
void __inline CVenom::Lookaround(void)
{
int v2; // r0
v2 = this->dumbAssPad;
if ( v2 == 1 )
{
if ( this->field_142 )
{
this->field_31C.bothFlags = 32;
this->dumbAssPad = 0;
}
}
else if ( v2 >= 1 || v2 < 0 )
{
print_if_false(0, "Unknown substate");
}
else
{
this->field_218 &= 0xFFFFFFF8;
this->mAccellorVel.vz = 0;
this->mAccellorVel.vy = 0;
this->mAccellorVel.vx = 0;
this->RunAnim(8, 0, -1);
++this->dumbAssPad;
}
}
// @TODO
CVenom::CVenom(int*, int)
{}
@ -112,6 +81,7 @@ void CVenom::PlayNextFootstepSFX(void)
SFX_PlayPos(i | 0x8000, &this->mPos, 0);
}
// @Ok
void CVenom::GetTargetPosFromNode(CVector *pVector, i32 a3)
{
Trig_GetPosition(pVector, a3);
@ -121,6 +91,32 @@ void CVenom::GetTargetPosFromNode(CVector *pVector, i32 a3)
pVector->vy = v5 - (this->field_21E << 12);
}
// @Ok
void INLINE CVenom::Lookaround(void)
{
switch (this->dumbAssPad)
{
case 0:
this->field_218 &= 0xFFFFFFF8;
this->mAccellorVel.vx = 0;
this->mAccellorVel.vy = 0;
this->mAccellorVel.vz = 0;
this->RunAnim(8, 0, -1);
this->dumbAssPad++;
break;
case 1:
if (this->field_142)
{
this->field_31C.bothFlags = 32;
this->dumbAssPad = 0;
}
break;
default:
print_if_false(0, "Unknown substate");
break;
}
}
void validate_CVenom(void){
VALIDATE_SIZE(CVenom, 0x468);

View File

@ -12,7 +12,6 @@ class CVenom : public CBaddy {
public:
EXPORT CVenom(i32*, i32);
EXPORT void Lookaround(void);
EXPORT void Shouldnt_DoPhysics_Be_Virtual(void);
EXPORT void DoPhysics(void);
EXPORT i32* KillCommandBlock(i32*);
@ -20,6 +19,7 @@ public:
EXPORT u8 TugImpulse(CVector *, CVector *, CVector *);
EXPORT void PlayNextFootstepSFX(void);
EXPORT void GetTargetPosFromNode(CVector *, i32);
EXPORT void Lookaround(void);
u8 venomStartPad[0x18];
u8 field_33C;