Skip to content

Instantly share code, notes, and snippets.

@shibbo
Created December 28, 2018 06:49
Show Gist options
  • Save shibbo/52d81debf7f903711873a29bcc9b3b9e to your computer and use it in GitHub Desktop.
Save shibbo/52d81debf7f903711873a29bcc9b3b9e to your computer and use it in GitHub Desktop.
PlayerOxygen::PlayerOxygen()
{
this->field_0 = 1.0f;
*&this->field_14 = 0;
*&this->field_C = 0;
this->field_4 = 0;
}
void PlayerOxygen::setup(int a2, int a3, int a4, int a5)
{
this->field_C = a2;
this->field_10 = a3;
this->field_14 = a4;
this->field_18 = a5;
}
void PlayerOxygen::reset()
{
this->field_0 = 1.0f;
this->field_4 = 0;
}
void PlayerOxygen::reduce()
{
int v1; // w8
float v2; // s0
v1 = this->field_4;
LODWORD(this->field_4) = v1 + 1;
if ( v1 >= this->field_C )
{
v2 = this->field_0;
if ( this->field_0 <= 0.0 )
{
++HIDWORD(this->field_4);
}
this->field_0 = fmaxf(v2 + (-1.0 / this->field_10), 0.0);
}
}
void __fastcall PlayerOxygen::recovery(PlayerOxygen *this)
{
this->field_0 = fminf(this->field_0 + (1.0 / this->field_14), 1.0);
this->field_4 = 0LL;
}
bool PlayerOxygen::isTriggerDamage() const
{
int v1; // w8
_BOOL8 result; // x0
v1 = HIDWORD(this->field_4);
if ( v1 )
{
result = v1 == v1 / this->field_18 * this->field_18;
}
else
{
result = 0LL;
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment