Comprehensive Decompile/Organization
IDA Pro / Hex Rays Decompiler Organized source by C/C++ [Class] and by prefix
This commit is contained in:
1 parent
43a2b21d73
commit
6c7361c45c
84 files changed
+30453
No files matched your search
@@ -0,0 +1,133 @@
|
||||
#include "../../pinball.h"
|
||||
|
||||
//----- (010160B3) --------------------------------------------------------
|
||||
void __stdcall TPopupTarget::TimerExpired(int a1, void *a2)
|
||||
{
|
||||
int v2; // eax
|
||||
int v3; // esi
|
||||
|
||||
*(_DWORD *)((char *)a2 + 78) = 0;
|
||||
v2 = *(_DWORD *)((char *)a2 + 34);
|
||||
*((_BYTE *)a2 + 5) = 1;
|
||||
render_sprite_set_bitmap(*(_DWORD **)((char *)a2 + 26), *(_DWORD *)(*(_DWORD *)(v2 + 4) + 8));
|
||||
if ( a1 )
|
||||
{
|
||||
v3 = *(_DWORD *)((char *)a2 + 70);
|
||||
if ( v3 )
|
||||
loader_play_sound(v3);
|
||||
}
|
||||
}
|
||||
|
||||
//----- (010160F4) --------------------------------------------------------
|
||||
int __thiscall TPopupTarget::Message(TPopupTarget *this, int a2, float a3)
|
||||
{
|
||||
TPopupTarget *v3; // esi
|
||||
int v4; // eax
|
||||
int v5; // ecx
|
||||
_DWORD *v6; // eax
|
||||
int v7; // eax
|
||||
__int64 v8; // ST04_8
|
||||
|
||||
v3 = this;
|
||||
switch ( a2 )
|
||||
{
|
||||
case 49:
|
||||
v8 = *(unsigned int *)((char *)this + 26);
|
||||
*((_BYTE *)this + 5) = 0;
|
||||
render_sprite_set_bitmap((_DWORD *)v8, SHIDWORD(v8));
|
||||
break;
|
||||
case 50:
|
||||
*(_DWORD *)((char *)this + 78) = timer_set(
|
||||
*(float *)((char *)this + 82),
|
||||
(int)this,
|
||||
(int)TPopupTarget::TimerExpired);
|
||||
break;
|
||||
case 1020:
|
||||
*(_DWORD *)((char *)this + 4 * *(_DWORD *)(*(_DWORD *)((char *)this + 30) + 218) + 98) = *(_DWORD *)((char *)this + 6);
|
||||
v7 = *(_DWORD *)((char *)this + 4 * (unsigned __int64)(signed __int64)_floor(a3) + 98);
|
||||
*(_DWORD *)((char *)v3 + 6) = v7;
|
||||
TPopupTarget::Message(v3, 50 - (v7 != 0), 0.0);
|
||||
break;
|
||||
case 1024:
|
||||
v4 = *(_DWORD *)((char *)this + 30);
|
||||
*(_DWORD *)((char *)this + 6) = 0;
|
||||
v5 = 0;
|
||||
if ( *(_DWORD *)(v4 + 214) > 0 )
|
||||
{
|
||||
v6 = (_DWORD *)((char *)v3 + 98);
|
||||
do
|
||||
{
|
||||
*v6 = 0;
|
||||
++v5;
|
||||
++v6;
|
||||
}
|
||||
while ( v5 < *(_DWORD *)(*(_DWORD *)((char *)v3 + 30) + 214) );
|
||||
}
|
||||
if ( *(_DWORD *)((char *)v3 + 78) )
|
||||
timer_kill(*(_DWORD *)((char *)v3 + 78));
|
||||
TPopupTarget::TimerExpired(0, (void *)v3);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//----- (010161D0) --------------------------------------------------------
|
||||
int __thiscall TPopupTarget::get_scoring(TPopupTarget *this, int a2)
|
||||
{
|
||||
int result; // eax
|
||||
|
||||
if ( a2 >= 3 )
|
||||
result = 0;
|
||||
else
|
||||
result = *(_DWORD *)((char *)this + 4 * a2 + 86);
|
||||
return result;
|
||||
}
|
||||
|
||||
//----- (010161EE) --------------------------------------------------------
|
||||
void __thiscall TPopupTarget::put_scoring(TPopupTarget *this, int a2, int a3)
|
||||
{
|
||||
if ( a2 < 3 )
|
||||
*(_DWORD *)((char *)this + 4 * a2 + 86) = a3;
|
||||
}
|
||||
|
||||
//----- (010181ED) --------------------------------------------------------
|
||||
void __thiscall TPopupTarget::Collision(TPopupTarget *this, struct TBall *a2, struct vector_type *a3, struct vector_type *a4, float a5, struct TEdgeSegment *a6)
|
||||
{
|
||||
TPopupTarget *v6; // esi
|
||||
|
||||
v6 = this;
|
||||
if ( *(_DWORD *)(*(_DWORD *)((char *)this + 30) + 370) )
|
||||
{
|
||||
basic_collision(a2, a3, a4, *(float *)((char *)this + 54), *(float *)((char *)this + 58), 1000000000.0, 0.0);
|
||||
}
|
||||
else if ( basic_collision(
|
||||
a2,
|
||||
a3,
|
||||
a4,
|
||||
*(float *)((char *)this + 54),
|
||||
*(float *)((char *)this + 58),
|
||||
*(float *)((char *)this + 66),
|
||||
*(float *)((char *)this + 62)) > *(float *)((char *)this + 66) )
|
||||
{
|
||||
if ( *(_DWORD *)((char *)v6 + 74) )
|
||||
loader_play_sound(*(_DWORD *)((char *)v6 + 74));
|
||||
(**(void (__thiscall ***)(TPopupTarget *, signed int, _DWORD))v6)(v6, 49, 0.0);
|
||||
control_handler(63, v6);
|
||||
}
|
||||
}
|
||||
|
||||
//----- (010195E0) --------------------------------------------------------
|
||||
TPopupTarget *__thiscall TPopupTarget::TPopupTarget(TPopupTarget *this, struct TPinballTable *a2, int a3)
|
||||
{
|
||||
TPopupTarget *v3; // esi
|
||||
int v4; // eax
|
||||
|
||||
v3 = this;
|
||||
TCollisionComponent::TCollisionComponent(this, a2, a3, 1);
|
||||
*(_DWORD *)v3 = &TPopupTarget::`vftable';
|
||||
v4 = *(_DWORD *)loader_query_float_attribute(a3, 0, 407);
|
||||
*(_DWORD *)((char *)v3 + 78) = 0;
|
||||
*(_DWORD *)((char *)v3 + 82) = v4;
|
||||
return v3;
|
||||
}
|
||||
// 10025A4: using guessed type void *TPopupTarget::`vftable';
|
||||
Reference in new issue
Block a user