CShellSuperDocOckElectrified::CShellSuperDocOck and CShellSuperDocOckElectrified::Move

This commit is contained in:
krystalgamer 2024-07-20 16:14:45 +02:00
parent f0b5f695d8
commit 6d9de31dac
3 changed files with 54 additions and 0 deletions

View File

@ -352,6 +352,7 @@ int main()
validate_SSkinGooSource2();
validate_SSkinGooParams();
validate_CShellCarnageElectrified();
validate_CShellSuperDocOckElectrified();
puts("[*] Validation done!");

View File

@ -11,6 +11,40 @@ EXPORT SSkinGooParams gVenomSkinGooParams;
EXPORT SSkinGooSource gCarnageSkinGooSource;
EXPORT SSkinGooParams gCarnageSkinGooParams;
EXPORT SSkinGooSource gSuperDocOckSkinGooSource;
EXPORT SSkinGooParams gSuperDocOckSkinGooParams;
// @Ok
// skin goo params are not okay
void CShellSuperDocOckElectrified::Move(void)
{
CSuper *pSuper = static_cast<CSuper*>(Mem_RecoverPointer(&this->field_3C));
if (!pSuper)
{
this->Die();
return;
}
M3d_BuildTransform(pSuper);
if (++this->field_44 > 0)
{
new CSkinGoo(pSuper, &gSuperDocOckSkinGooSource, 19, &gSuperDocOckSkinGooParams);
this->field_44 = 0;
}
}
// @Ok
CShellSuperDocOckElectrified::CShellSuperDocOckElectrified(CSuper* pSuper)
{
print_if_false(pSuper != 0, "NULL pointer");
print_if_false(pSuper->field_38 == 309, "Non SuperDocOck");
this->field_3C = Mem_MakeHandle(reinterpret_cast<void*>(pSuper));
}
// @Ok
// skin goo params are not okay
void CShellCarnageElectrified::Move(void)
@ -536,3 +570,11 @@ void validate_CShellCarnageElectrified(void)
VALIDATE(CShellVenomElectrified, field_3C, 0x3C);
VALIDATE(CShellVenomElectrified, field_44, 0x44);
}
void validate_CShellSuperDocOckElectrified(void)
{
VALIDATE_SIZE(CShellVenomElectrified, 0x48);
VALIDATE(CShellVenomElectrified, field_3C, 0x3C);
VALIDATE(CShellVenomElectrified, field_44, 0x44);
}

11
shell.h
View File

@ -118,6 +118,16 @@ class CShellCarnageElectrified : public CNonRenderedBit
i32 field_44;
};
class CShellSuperDocOckElectrified : public CNonRenderedBit
{
public:
EXPORT CShellSuperDocOckElectrified(CSuper*);
EXPORT virtual void Move(void);
SHandle field_3C;
i32 field_44;
};
static const i32 INPUT_MAX_SIZE = 9;
EXPORT i32 Shell_DeRudify(char[INPUT_MAX_SIZE]);
@ -131,5 +141,6 @@ void validate_Spidey_CIcon(void);
void validate_CShellSymBurn(void);
void validate_CShellVenomElectrified(void);
void validate_CShellCarnageElectrified(void);
void validate_CShellSuperDocOckElectrified(void);
#endif