EveryFrame and moving stuff from CSuper to CBody

This commit is contained in:
krystalgamer 2024-05-01 19:50:43 +02:00
parent 049c20adab
commit 3abd109cdc
2 changed files with 113 additions and 35 deletions

63
ob.cpp
View File

@ -228,6 +228,50 @@ void CSuper::ApplyPose(__int16 *a2){
void CSuper::RunAnim(int, int, int){
}
static int * const gTimerRelated = (int*)0x006B4CA8;
void CBody::EveryFrame(void)
{
int v3; // edx
int v4; // ecx
__int16 v6; // ax
__int16 v7; // cx
char v8; // dl
bool v9; // [esp-8h] [ebp-Ch]
if ( (this->mCBodyFlags & 4) != 0 )
{
this->field_80 = 2;
this->mCBodyFlags &= 0xFFFB;
this->field_7C = *gTimerRelated;
this->field_84 = 0;
}
else
{
v3 = this->field_7C;
v9 = *gTimerRelated - v3 >= 0;
this->field_80 = *gTimerRelated - v3;
print_if_false(v9, "Timing error");
v4 = this->field_80;
this->field_7C = *gTimerRelated;
if ( v4 > 6 )
this->field_80 = 6;
}
this->field_84 += this->field_80;
if ( (this->mFlags & 2) != 0 )
{
v6 = this->field_128;
v7 = this->field_12A;
v8 = this->field_141;
this->field_152 = v6;
this->field_150 = v6;
this->field_154 = v7;
this->field_143 = v8;
}
}
void validate_CItem(void){
VALIDATE(CItem, mFlags, 0x4);
@ -244,7 +288,18 @@ void validate_CBody(void){
VALIDATE(CBody, mCBodyFlags, 0x46);
VALIDATE(CBody, mAccellorVel, 0x60);
VALIDATE(CBody, gVec, 0x6C);
VALIDATE(CBody, field_78, 0x78);
VALIDATE(CBody, field_79, 0x79);
VALIDATE(CBody, field_7A, 0x7A);
VALIDATE(CBody, field_7C, 0x7C);
VALIDATE(CBody, field_80, 0x80);
VALIDATE(CBody, field_84, 0x84);
VALIDATE(CBody, csVector1, 0x88);
VALIDATE(CBody, field_8E, 0x8E);
@ -255,6 +310,14 @@ void validate_CBody(void){
VALIDATE(CBody, field_D4, 0xD4);
VALIDATE(CBody, field_DC, 0xDC);
VALIDATE(CBody, field_E2, 0xE2);
VALIDATE(CBody, field_128, 0x128);
VALIDATE(CBody, field_12A, 0x12A);
VALIDATE(CBody, field_141, 0x141);
VALIDATE(CBody, field_143, 0x143);
VALIDATE(CBody, field_150, 0x150);
VALIDATE(CBody, field_152, 0x152);
VALIDATE(CBody, field_154, 0x154);
}
void validate_CSuper(void){

85
ob.h
View File

@ -40,10 +40,16 @@ public:
unsigned char pad1[0x38 - 0x20];
CVector mAccellorVel;
unsigned char bodyPadAdterAccelorVel[0x80-0x60-0xC];
CVector gVec;
unsigned char field_78;
unsigned char field_79;
unsigned char field_7A;
int field_7C;
int field_80;
unsigned char padAfter80[0x4];
int field_84;
CSVector csVector1;
CSVector field_8E;
@ -66,13 +72,53 @@ public:
unsigned char stopPPPad[0x4];
__int16 field_E2;
unsigned char bottomPad[0x10];
unsigned char padAfterE2[0x10C-0xE2-2];
int field_10C;
unsigned char padB[0x10-4];
int SNbrFaces;
int alsoOutlineRelated;
unsigned char outlineR;
unsigned char outlineG;
unsigned char outlineB;
__int16 field_128;
unsigned __int16 field_12A;
int outlineRelated;
unsigned char padA[0xE];
unsigned char field_13E;
unsigned char field_13F;
unsigned char field_140;
unsigned char field_141;
unsigned char field_142;
unsigned char field_143;
__int16 field_144;
__int16 field_146;
__int16 gAnim;
unsigned __int16 padAfte;
int csuperend;
__int16 field_150;
__int16 field_152;
__int16 field_154;
EXPORT int IsDead(void) const;
EXPORT void Die(void);
EXPORT void ShadowOn(void);
EXPORT void KillShadow(void);
EXPORT void EveryFrame(void);
EXPORT void UpdateShadow(void);
@ -92,38 +138,7 @@ public:
EXPORT void ApplyPose(__int16 *a2);
EXPORT void RunAnim(int, int, int);
unsigned char padBBB[0x18];
int field_10C;
unsigned char padB[0x10-4];
int SNbrFaces;
int alsoOutlineRelated;
unsigned char outlineR;
unsigned char outlineG;
unsigned char outlineB;
__int16 field_128;
unsigned __int16 field_12A;
int outlineRelated;
unsigned char padA[0xE];
unsigned char field_13E;
unsigned char field_13F;
unsigned char field_140;
unsigned char field_141;
unsigned char field_142;
__int16 field_144;
__int16 field_146;
__int16 gAnim;
int csuperend;
unsigned char padVE[0x14];
unsigned char padVE[0x14-8];
MATRIX field_164;
unsigned char padAfter188[0x4];