Files
3d-pinball-space-cadet/Classes/TGate/TGate.cpp
T

55 lines
1.4 KiB
C++

#include "../../pinball.h"
//----- (010163DB) --------------------------------------------------------
int __thiscall TGate::Message(TGate *this, int a2, float a3)
{
TGate *v3; // esi
int v4; // eax
_DWORD *v5; // ST00_4
v3 = this;
if ( a2 != 1020 )
{
if ( a2 == 53 )
{
v5 = *(_DWORD **)((char *)this + 26);
*((_BYTE *)this + 5) = 0;
render_sprite_set_bitmap(v5, 0);
loader_play_sound(*(_DWORD *)((char *)v3 + 82));
}
else if ( a2 == 54 || a2 == 1024 )
{
v4 = *(_DWORD *)((char *)this + 34);
*((_BYTE *)this + 5) = 1;
render_sprite_set_bitmap(*(_DWORD **)((char *)this + 26), *(_DWORD *)(*(_DWORD *)(v4 + 4) + 8));
if ( a2 == 54 )
loader_play_sound(*(_DWORD *)((char *)v3 + 78));
}
control_handler(a2, v3);
}
return 0;
}
//----- (010196E5) --------------------------------------------------------
TGate *__thiscall TGate::TGate(TGate *this, struct TPinballTable *a2, int a3)
{
TGate *v3; // esi
int v4; // eax
char v6; // [esp+4h] [ebp-48h]
int v7; // [esp+3Ch] [ebp-10h]
int v8; // [esp+40h] [ebp-Ch]
v3 = this;
TCollisionComponent::TCollisionComponent(this, a2, a3, 1);
*(_DWORD *)v3 = &TGate::vftable;
loader_query_visual(a3, 0, &v6);
*(_DWORD *)((char *)v3 + 78) = v7;
*(_DWORD *)((char *)v3 + 82) = v8;
v4 = *(_DWORD *)((char *)v3 + 34);
*((_BYTE *)v3 + 5) = 1;
render_sprite_set_bitmap(*(_DWORD **)((char *)v3 + 26), *(_DWORD *)(*(_DWORD *)(v4 + 4) + 8));
control_handler(1024, v3);
return v3;
}
// 10025F8: using guessed type void *TGate::vftable;