CShellCarnageElectrified::CShellCarnageElectrified and CShellCarnageElectrified::Move

This commit is contained in:
krystalgamer 2024-07-20 16:04:49 +02:00
parent 48091f61e6
commit f0b5f695d8
3 changed files with 56 additions and 0 deletions

View File

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

View File

@ -8,7 +8,43 @@
EXPORT SSkinGooSource gVenomSkinGooSource;
EXPORT SSkinGooParams gVenomSkinGooParams;
EXPORT SSkinGooSource gCarnageSkinGooSource;
EXPORT SSkinGooParams gCarnageSkinGooParams;
// @Ok
// skin goo params are not okay
void CShellCarnageElectrified::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, &gCarnageSkinGooSource, 19, &gCarnageSkinGooParams);
this->field_44 = 0;
}
}
// @Ok
CShellCarnageElectrified::CShellCarnageElectrified(CSuper* pSuper)
{
print_if_false(pSuper != 0, "NULL pSuper sent to CShellCarnageElectrified");
print_if_false(pSuper->field_38 == 314, "Non carnage sent to CShellCarnageElectrified");
this->field_3C = Mem_MakeHandle(reinterpret_cast<void*>(pSuper));
}
// @NotOk
// skin goo params are not okay
void CShellVenomElectrified::Move(void)
{
CSuper *pSuper = static_cast<CSuper*>(Mem_RecoverPointer(&this->field_3C));
@ -492,3 +528,11 @@ void validate_CShellVenomElectrified(void)
VALIDATE(CShellVenomElectrified, field_3C, 0x3C);
VALIDATE(CShellVenomElectrified, field_44, 0x44);
}
void validate_CShellCarnageElectrified(void)
{
VALIDATE_SIZE(CShellVenomElectrified, 0x48);
VALIDATE(CShellVenomElectrified, field_3C, 0x3C);
VALIDATE(CShellVenomElectrified, field_44, 0x44);
}

11
shell.h
View File

@ -108,6 +108,16 @@ class CShellVenomElectrified : public CNonRenderedBit
i32 field_44;
};
class CShellCarnageElectrified : public CNonRenderedBit
{
public:
EXPORT CShellCarnageElectrified(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]);
@ -120,5 +130,6 @@ void validate_CShellMysterioHeadGlow(void);
void validate_Spidey_CIcon(void);
void validate_CShellSymBurn(void);
void validate_CShellVenomElectrified(void);
void validate_CShellCarnageElectrified(void);
#endif