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,132 @@
|
||||
|
||||
#include "../../pinball.h"
|
||||
|
||||
//----- (01015B61) --------------------------------------------------------
|
||||
int __thiscall TOneway::get_scoring(TOneway *this, int a2)
|
||||
{
|
||||
int result; // eax
|
||||
|
||||
if ( a2 >= 6 )
|
||||
result = 0;
|
||||
else
|
||||
result = *(_DWORD *)((char *)this + 4 * a2 + 86);
|
||||
return result;
|
||||
}
|
||||
|
||||
//----- (01015B7F) --------------------------------------------------------
|
||||
void __thiscall TOneway::put_scoring(TOneway *this, int a2, int a3)
|
||||
{
|
||||
if ( a2 < 6 )
|
||||
*(_DWORD *)((char *)this + 4 * a2 + 86) = a3;
|
||||
}
|
||||
|
||||
//----- (01018032) --------------------------------------------------------
|
||||
void __thiscall TOneway::Collision(TOneway *this, struct TBall *a2, struct vector_type *a3, struct vector_type *a4, float a5, struct TEdgeSegment *a6)
|
||||
{
|
||||
TOneway *v6; // edi
|
||||
int v7; // edi
|
||||
double v8; // st7
|
||||
int v9; // eax
|
||||
|
||||
v6 = this;
|
||||
if ( a6 == *(struct TEdgeSegment **)((char *)this + 82) )
|
||||
{
|
||||
TBall::not_again(a2, a6);
|
||||
v8 = *(float *)((char *)a2 + 70) - a5;
|
||||
*(_DWORD *)((char *)a2 + 42) = *(_DWORD *)a3;
|
||||
v9 = *((_DWORD *)a3 + 1);
|
||||
*(float *)((char *)a2 + 70) = v8;
|
||||
*(_DWORD *)((char *)a2 + 46) = v9;
|
||||
if ( !*(_DWORD *)(*(_DWORD *)((char *)v6 + 30) + 370) )
|
||||
{
|
||||
if ( *(_DWORD *)((char *)v6 + 74) )
|
||||
loader_play_sound(*(_DWORD *)((char *)v6 + 74));
|
||||
control_handler(63, v6);
|
||||
}
|
||||
}
|
||||
else 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)) > 0.2 )
|
||||
{
|
||||
v7 = *(_DWORD *)((char *)v6 + 70);
|
||||
if ( v7 )
|
||||
loader_play_sound(v7);
|
||||
}
|
||||
}
|
||||
|
||||
//----- (01019204) --------------------------------------------------------
|
||||
TOneway *__thiscall TOneway::TOneway(TOneway *this, struct TPinballTable *a2, int a3)
|
||||
{
|
||||
TLine *v3; // edi
|
||||
TOneway *v4; // esi
|
||||
TLine *v5; // eax
|
||||
TLine *v6; // eax
|
||||
TLine *v7; // eax
|
||||
float v8; // ST10_4
|
||||
char v10; // [esp+10h] [ebp-60h]
|
||||
int v11; // [esp+18h] [ebp-58h]
|
||||
int *v12; // [esp+1Ch] [ebp-54h]
|
||||
unsigned int v13; // [esp+44h] [ebp-2Ch]
|
||||
int v14; // [esp+58h] [ebp-18h]
|
||||
int v15; // [esp+5Ch] [ebp-14h]
|
||||
int v16; // [esp+64h] [ebp-Ch]
|
||||
int v17; // [esp+68h] [ebp-8h]
|
||||
|
||||
v3 = 0;
|
||||
v4 = this;
|
||||
TCollisionComponent::TCollisionComponent(this, a2, a3, 0);
|
||||
*(_DWORD *)v4 = &TOneway::`vftable';
|
||||
loader_query_visual(a3, 0, &v10);
|
||||
if ( v11 == 2 )
|
||||
{
|
||||
v16 = *v12;
|
||||
v17 = v12[1];
|
||||
v14 = v12[2];
|
||||
v15 = v12[3];
|
||||
v5 = (TLine *)operator new(0x55u);
|
||||
if ( v5 )
|
||||
v3 = TLine::TLine(v5, v4, (char *)v4 + 5, v13, (struct vector_type *)&v16, (struct vector_type *)&v14);
|
||||
if ( v3 )
|
||||
{
|
||||
TLine::Offset(v3, *(float *)((char *)a2 + 282));
|
||||
(*(void (__thiscall **)(TLine *))(*(_DWORD *)v3 + 8))(v3);
|
||||
objlist_class::Add((TOneway *)((char *)v4 + 42), (void *)v3);
|
||||
}
|
||||
v6 = (TLine *)operator new(0x55u);
|
||||
if ( v6 )
|
||||
v7 = TLine::TLine(v6, v4, (char *)v4 + 5, v13, (struct vector_type *)&v14, (struct vector_type *)&v16);
|
||||
else
|
||||
v7 = 0;
|
||||
*(_DWORD *)((char *)v4 + 82) = v7;
|
||||
if ( v7 )
|
||||
{
|
||||
v8 = -(*(float *)((char *)a2 + 282) * 0.8);
|
||||
TLine::Offset(v7, v8);
|
||||
(*(void (**)(void))(**(_DWORD **)((char *)v4 + 82) + 8))();
|
||||
objlist_class::Add((TOneway *)((char *)v4 + 42), *(void **)((char *)v4 + 82));
|
||||
}
|
||||
}
|
||||
return v4;
|
||||
}
|
||||
// 1002530: using guessed type void *TOneway::`vftable';
|
||||
|
||||
//----- (0101AAA7) --------------------------------------------------------
|
||||
TOneway *__thiscall TOneway::`scalar deleting destructor`(TOneway *this, char a2)
|
||||
{
|
||||
TOneway *v2; // esi
|
||||
|
||||
v2 = this;
|
||||
TCollisionComponent::~TCollisionComponent(this);
|
||||
if ( a2 & 1 )
|
||||
operator delete((void *)v2);
|
||||
return v2;
|
||||
}
|
||||
Reference in new issue
Block a user