52 lines
1.5 KiB
C++
52 lines
1.5 KiB
C++
#include "TDrain.h"
|
|
|
|
//----- (010172A3) --------------------------------------------------------
|
|
int __thiscall TDrain::Message(TDrain *this, int a2, float a3)
|
|
{
|
|
TDrain *v3; // esi
|
|
|
|
v3 = this;
|
|
if ( a2 == 1024 )
|
|
{
|
|
if ( *(_DWORD *)((char *)this + 86) )
|
|
{
|
|
timer_kill(*(_DWORD *)((char *)this + 86));
|
|
*(_DWORD *)((char *)v3 + 86) = 0;
|
|
}
|
|
*(_DWORD *)(*(_DWORD *)((char *)v3 + 30) + 78) = 0;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
//----- (010172D8) --------------------------------------------------------
|
|
void __stdcall TDrain::TimerCallback(int a1, struct TPinballComponent *a2)
|
|
{
|
|
control_handler(60, a2);
|
|
}
|
|
|
|
//----- (01018562) --------------------------------------------------------
|
|
void __thiscall TDrain::Collision(TDrain *this, struct TBall *a2, struct vector_type *a3, struct vector_type *a4, float a5, struct TEdgeSegment *a6)
|
|
{
|
|
TDrain *v6; // esi
|
|
|
|
v6 = this;
|
|
(**(void (__stdcall ***)(signed int, _DWORD))a2)(1024, 0.0);
|
|
*(_DWORD *)(*(_DWORD *)((char *)v6 + 30) + 78) = 1;
|
|
*(_DWORD *)((char *)v6 + 86) = timer_set(*(float *)((char *)v6 + 78), (int)v6, (int)TDrain::TimerCallback);
|
|
control_handler(63, v6);
|
|
}
|
|
|
|
//----- (0101A4B4) --------------------------------------------------------
|
|
TDrain *__thiscall TDrain::TDrain(TDrain *this, struct TPinballTable *a2, int a3)
|
|
{
|
|
TDrain *v3; // esi
|
|
|
|
v3 = this;
|
|
TCollisionComponent::TCollisionComponent(this, a2, a3, 1);
|
|
*(_DWORD *)((char *)v3 + 86) = 0;
|
|
*(_DWORD *)v3 = &TDrain::vftable;
|
|
*(_DWORD *)((char *)v3 + 78) = *(_DWORD *)loader_query_float_attribute(a3, 0, 407);
|
|
return v3;
|
|
}
|
|
// 1002720: using guessed type void *TDrain::vftable;
|