55 lines
1.4 KiB
C++
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;
|