CChopperMissile::CChopperMissile

This commit is contained in:
krystalgamer 2024-07-23 16:44:58 +02:00
parent 9b4673bf0b
commit 3003a8f70c
4 changed files with 78 additions and 1 deletions

View File

@ -8,6 +8,47 @@
extern CBaddy* ControlBaddyList;
extern SFlatBitVelocity FlatBitVelocities[];
extern i32 DifficultyLevel;
// @TODO
i32 CChopperMissile::GetFinalTargetNode(i32)
{
printf("i32 CChopperMissile::GetFinalTargetNode(i32)");
return 0x23072024;
}
// @TODO
void CChopperMissile::CommonInitialisation(void)
{
printf("CChopperMissile::CommonInitialisation(void)");
}
// @Ok
CChopperMissile::CChopperMissile(
CVector* a2,
CSuper* a3,
i32 a4,
i32 a5)
{
this->field_110.vx = 0;
this->field_110.vy = 0;
this->field_110.vz = 0;
this->field_FC = a5;
this->field_100 = a4;
this->mPos = *a2;
Trig_GetPosition(&this->field_110, a4);
this->field_104 = this->GetFinalTargetNode(a4);
if (DifficultyLevel == 3)
this->field_120 = 20;
this->CommonInitialisation();
}
// @MEDIUMTODO
void CSearchlight::CalculateSearchlight(CSVector*)
{
@ -509,3 +550,15 @@ void validate_CMachineGunBullet(void)
VALIDATE(CMachineGunBullet, field_AC, 0xAC);
VALIDATE(CMachineGunBullet, field_B0, 0xB0);
}
void validate_CChopperMissile(void)
{
VALIDATE_SIZE(CChopperMissile, 0x128);
VALIDATE(CChopperMissile, field_FC, 0xFC);
VALIDATE(CChopperMissile, field_100, 0x100);
VALIDATE(CChopperMissile, field_104, 0x104);
VALIDATE(CChopperMissile, field_110, 0x110);
VALIDATE(CChopperMissile, field_120, 0x120);
}

View File

@ -183,12 +183,35 @@ class CMachineGunBullet : public CGLine
u8 padBottom[0xB8-0xB0-4];
};
class CChopperMissile : public CBody
{
public:
EXPORT CChopperMissile(CVector*, CSuper*, i32, i32);
EXPORT i32 GetFinalTargetNode(i32);
EXPORT void CommonInitialisation(void);
u8 padTop[8];
i32 field_FC;
i32 field_100;
i32 field_104;
u8 padAfter104[8];
CVector field_110;
u8 padAfter110[4];
i32 field_120;
u8 padBottom[0x128-0x120-4];
};
void validate_CChopper(void);
void validate_CBulletFrag(void);
void validate_CSniperSplat(void);
void validate_CSniperTarget(void);
void validate_CSearchlight(void);
void validate_CMachineGunBullet(void);
void validate_CChopperMissile(void);
EXPORT void Chopper_CreateSearchlight(u32*, u32*);
EXPORT void Chopper_CreateSniper(u32*, u32*);

View File

@ -365,6 +365,7 @@ int main()
validate_CSearchlight();
validate_SFlatBitVelocity();
validate_CMachineGunBullet();
validate_CChopperMissile();
puts("[*] Validation done!");

View File

@ -8,6 +8,7 @@ extern CBody *EnvironmentalObjectList;
extern SLineInfo gLineInfo;
extern i32 gGetGroundRelated;
EXPORT i32 DifficultyLevel;
// @NotOk
// @Test
@ -407,7 +408,6 @@ int Utils_LinearFilter(
void Utils_GetVecFromMagDir(CVector*, int, CSVector*)
{}
i32 DifficultyLevel;
int Utils_GetValueFromDifficultyLevel(int a1, int a2, int a3, int a4)
{
switch (DifficultyLevel)