From e1075d2bc5ac1cf9404187479f2675c273b16710 Mon Sep 17 00:00:00 2001 From: Sydney Biscuit Date: Sat, 17 Aug 2019 07:47:00 -0700 Subject: [PATCH] Factor out pinball.h to class structure --- Classes/Objlist/Objlist.cpp | 2 +- Classes/Objlist/objlist.h | 6 + Classes/TBall/TBall.cpp | 4 +- Classes/TBall/TBall.h | 11 + Classes/TBlocker/TBlocker.cpp | 4 +- Classes/TBlocker/TBlocker.h | 9 + Classes/TBumper/TBumper.cpp | 4 +- Classes/TBumper/TBumper.h | 13 + Classes/TCircle/TCircle.cpp | 4 +- Classes/TCircle/TCircle.h | 10 + .../TCollisionComponent.cpp | 8 +- .../TCollisionComponent/TCollisionComponent.h | 11 + Classes/TComponentGroup/TComponentGroup.h | 11 + Classes/TDemo/TDemo.cpp | 4 +- Classes/TDemo/TDemo.h | 15 + Classes/TDrain/TDrain.cpp | 4 +- Classes/TDrain/TDrain.h | 10 + Classes/TEdgeBox/TEdgeBox.h | 10 + Classes/TEdgeManager/TEdgeManager.h | 18 + Classes/TEdgeSegment/TEdgeSegment.cpp | 4 +- Classes/TEdgeSegment/TEdgeSegment.h | 7 + Classes/TFlagSpinner/TFlagSpinner.cpp | 4 +- Classes/TFlagSpinner/TFlagSpinner.h | 13 + Classes/TFlipper/TFlipper.cpp | 8 +- Classes/TFlipper/TFlipper.h | 12 + Classes/TFlipperEdge/TFlipperEdge.cpp | 4 +- Classes/TFlipperEdge/TFlipperEdge.h | 16 + Classes/TGate/TGate.cpp | 4 +- Classes/TGate/TGate.h | 8 + Classes/THole/THole.cpp | 4 +- Classes/THole/THole.h | 11 + Classes/TKickback/TKickback.cpp | 4 +- Classes/TKickback/TKickback.h | 10 + Classes/TKickout/TKickout.cpp | 4 +- Classes/TKickout/TKickout.h | 14 + Classes/TLight/TLight.cpp | 4 +- Classes/TLight/TLight.h | 13 + Classes/TLightBargraph/TLightBargraph.cpp | 8 +- Classes/TLightBargraph/TLightBargraph.h | 14 + Classes/TLightRollover/TLightRollover.cpp | 4 +- Classes/TLightRollover/TLightRollover.h | 10 + Classes/TLine/TLine.cpp | 8 +- Classes/TLine/TLine.h | 12 + Classes/TOneWay/TOneWay.cpp | 4 +- Classes/TOneWay/TOneWay.h | 11 + .../TPinballComponent/TPinballComponent.cpp | 16 +- Classes/TPinballComponent/TPinballComponent.h | 15 + Classes/TPinballTable/TPinballTable.cpp | 8 +- Classes/TPinballTable/TPinballTable.h | 18 + Classes/TPlunger/TPlunger.cpp | 4 +- Classes/TPlunger/TPlunger.h | 12 + Classes/TPopupTarget/TPopupTarget.cpp | 4 +- Classes/TPopupTarget/TPopupTarget.h | 12 + Classes/TRamp/TRamp.cpp | 4 +- Classes/TRamp/TRamp.h | 11 + Classes/TRollover/TRollover.cpp | 8 +- Classes/TRollover/TRollover.h | 14 + Classes/TSink/TSink.cpp | 4 +- Classes/TSink/TSink.h | 12 + Classes/TSoloTarget/TSoloTarget.cpp | 4 +- Classes/TSoloTarget/TSoloTarget.h | 12 + Classes/TSound/TSound.cpp | 4 +- Classes/TSound/TSound.h | 11 + Classes/TTableLayer/TTableLayer.cpp | 8 +- Classes/TTableLayer/TTableLayer.h | 10 + Classes/TTextBox/TTextBox.cpp | 8 +- Classes/TTextBox/TTextbox.h | 14 + Classes/TTextBoxMessage/TTextBoxMessage.h | 9 + Classes/TTimer/TTimer.cpp | 4 +- Classes/TTimer/TTimer.h | 9 + Classes/TTripwire/TTripwire.cpp | 4 +- Classes/TTripwire/TTripwire.h | 8 + Classes/TWall/TWall.cpp | 4 +- Classes/TWall/TWall.h | 12 + Classes/TZmapList/TZmaplist.h | 6 + Classes/TlightGroup/TLightGroup.cpp | 4 +- Classes/TlightGroup/TLightGroup.h | 17 + pinball.h | 1243 +---------------- 78 files changed, 582 insertions(+), 1324 deletions(-) diff --git a/Classes/Objlist/Objlist.cpp b/Classes/Objlist/Objlist.cpp index dbe1615..ca35d1a 100644 --- a/Classes/Objlist/Objlist.cpp +++ b/Classes/Objlist/Objlist.cpp @@ -2,7 +2,7 @@ // Created by neo on 2019-08-15. // -#include "objlist.h" +#include "Objlist.h" //----- (010098D3) -------------------------------------------------------- objlist_class *__thiscall objlist_class::objlist_class(objlist_class *this, int a2, int a3) diff --git a/Classes/Objlist/objlist.h b/Classes/Objlist/objlist.h index 6319d49..a87c3b4 100644 --- a/Classes/Objlist/objlist.h +++ b/Classes/Objlist/objlist.h @@ -7,4 +7,10 @@ #include "../../pinball.h" +/* 123 */ +struct objlist_class; +objlist_class* __thiscall objlist_class::objlist_class(objlist_class* this, int a2, int a3); +void __thiscall objlist_class::Grow(objlist_class* __hidden this); // idb +void __thiscall objlist_class::Add(objlist_class* this, void*); // idb + #endif //PINBALL_OBJLIST_CLASS_H diff --git a/Classes/TBall/TBall.cpp b/Classes/TBall/TBall.cpp index 6aaf3d9..f61d503 100644 --- a/Classes/TBall/TBall.cpp +++ b/Classes/TBall/TBall.cpp @@ -144,7 +144,7 @@ struct TPinballTable *v17; // [esp+64h] [ebp+8h] v2 = this; TPinballComponent::TPinballComponent(this, a2, -1, 0); *(float *)((char *)v2 + 78) = 0.0; -*(_DWORD *)v2 = &TBall::`vftable'; +*(_DWORD *)v2 = &TBall::`vftable`; *(float *)((char *)v2 + 70) = 0.0; *((_BYTE *)v2 + 5) = 1; *(_DWORD *)((char *)v2 + 106) = 0; @@ -199,5 +199,5 @@ v11 = *(_DWORD *)((char *)v2 + 154); *(_DWORD *)((char *)v2 + 50) = *(_DWORD *)((char *)v2 + 154); return v2; } -// 1002554: using guessed type void *TBall::`vftable'; +// 1002554: using guessed type void *TBall::`vftable`; // 1008ED8: using guessed type double __stdcall proj_z_distance(_DWORD); diff --git a/Classes/TBall/TBall.h b/Classes/TBall/TBall.h index 665aac3..f3c166c 100644 --- a/Classes/TBall/TBall.h +++ b/Classes/TBall/TBall.h @@ -7,4 +7,15 @@ #include "../../pinball.h" +/* 95 */ +struct TBall; + +bool __thiscall TBall::already_hit(TBall* this, struct TEdgeSegment* a2); +void __thiscall TBall::not_again(TBall* this, struct TEdgeSegment*); // idb +int __thiscall TBall::Message(TBall* this, int, float); // idb +void __thiscall TBall::Repaint(TBall* __hidden this); // idb +TBall* __thiscall TBall::TBall(TBall* this, struct TPinballTable* a2); + +void* TBall::`vftable` = &TBall::Message; // weak + #endif //PINBALL_TBALL_H diff --git a/Classes/TBlocker/TBlocker.cpp b/Classes/TBlocker/TBlocker.cpp index 85e1fbd..65936d4 100644 --- a/Classes/TBlocker/TBlocker.cpp +++ b/Classes/TBlocker/TBlocker.cpp @@ -72,7 +72,7 @@ int v8; // [esp+44h] [ebp-Ch] v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 1); -*(_DWORD *)v3 = &TBlocker::`vftable'; +*(_DWORD *)v3 = &TBlocker::`vftable`; loader_query_visual(a3, 0, &v6); v4 = *(_DWORD **)((char *)v3 + 26); *(_DWORD *)((char *)v3 + 90) = v7; @@ -86,5 +86,5 @@ v4 = *(_DWORD **)((char *)v3 + 26); render_sprite_set_bitmap(v4, 0); return v3; } -// 10025DC: using guessed type void *TBlocker::`vftable'; +// 10025DC: using guessed type void *TBlocker::`vftable`; diff --git a/Classes/TBlocker/TBlocker.h b/Classes/TBlocker/TBlocker.h index a3a0ef6..e0564a3 100644 --- a/Classes/TBlocker/TBlocker.h +++ b/Classes/TBlocker/TBlocker.h @@ -7,4 +7,13 @@ #include "../../pinball.h" +/* 130 */ +struct TBlocker; + +void __stdcall TBlocker::TimerExpired(int, struct TPinballComponent*); // idb +int __thiscall TBlocker::Message(TBlocker* this, int, float); // idb +TBlocker* __thiscall TBlocker::TBlocker(TBlocker* this, struct TPinballTable* a2, int a3); + +void* TBlocker::`vftable` = &TBlocker::Message; // weak + #endif //PINBALL_TBLOCKER_H diff --git a/Classes/TBumper/TBumper.cpp b/Classes/TBumper/TBumper.cpp index 62e2ed2..b2ff915 100644 --- a/Classes/TBumper/TBumper.cpp +++ b/Classes/TBumper/TBumper.cpp @@ -185,7 +185,7 @@ v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 1); *(_DWORD *)((char *)v3 + 78) = 0; *(_DWORD *)((char *)v3 + 82) = 0; -*(_DWORD *)v3 = &TBumper::`vftable'; +*(_DWORD *)v3 = &TBumper::`vftable`; *(_DWORD *)((char *)v3 + 86) = *(_DWORD *)loader_query_float_attribute(a3, 0, 407); loader_query_visual(a3, 0, &v5); *(_DWORD *)((char *)v3 + 94) = v6; @@ -193,4 +193,4 @@ loader_query_visual(a3, 0, &v5); *(_DWORD *)((char *)v3 + 90) = *(_DWORD *)((char *)v3 + 66); return v3; } -// 100256C: using guessed type void *TBumper::`vftable'; +// 100256C: using guessed type void *TBumper::`vftable`; diff --git a/Classes/TBumper/TBumper.h b/Classes/TBumper/TBumper.h index e179667..174e56c 100644 --- a/Classes/TBumper/TBumper.h +++ b/Classes/TBumper/TBumper.h @@ -7,4 +7,17 @@ #include "../../pinball.h" +/* 104 */ +struct TBumper; + +void __stdcall TBumper::TimerExpired(int, void*); // idb +void __thiscall TBumper::Fire(TBumper* this); // idb +int __thiscall TBumper::Message(TBumper* this, int, float); // idb +int __thiscall TBumper::get_scoring(TBumper* this, int); // idb +void __thiscall TBumper::put_scoring(TBumper* this, int, int); // idb +void __thiscall TBumper::Collision(TBumper* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TBumper* __thiscall TBumper::TBumper(TBumper* this, struct TPinballTable* a2, int a3); + +void* TBumper::`vftable` = &TBumper::Message; // weak + #endif //PINBALL_TBUMPER_H diff --git a/Classes/TCircle/TCircle.cpp b/Classes/TCircle/TCircle.cpp index ed05bd2..90f3907 100644 --- a/Classes/TCircle/TCircle.cpp +++ b/Classes/TCircle/TCircle.cpp @@ -7,14 +7,14 @@ TCircle *v6; // ebx v6 = this; TEdgeSegment::TEdgeSegment(this, a2, a3, a4); -*(_DWORD *)v6 = &TCircle::`vftable'; +*(_DWORD *)v6 = &TCircle::`vftable`; *(float *)((char *)v6 + 33) = a6 * a6; *(_DWORD *)((char *)v6 + 21) = *(_DWORD *)a5; *(_DWORD *)((char *)v6 + 25) = *((_DWORD *)a5 + 1); *(_DWORD *)((char *)v6 + 29) = *((_DWORD *)a5 + 2); return v6; } -// 1002454: using guessed type void *TCircle::`vftable'; +// 1002454: using guessed type void *TCircle::`vftable`; //----- (010158D6) -------------------------------------------------------- double __thiscall TCircle::FindCollisionDistance(TCircle *this, struct ray_type *a2) diff --git a/Classes/TCircle/TCircle.h b/Classes/TCircle/TCircle.h index 55e9aaf..fe8c09b 100644 --- a/Classes/TCircle/TCircle.h +++ b/Classes/TCircle/TCircle.h @@ -7,4 +7,14 @@ #include "../../pinball.h" +/* 99 */ +struct TCircle; + +TCircle* __thiscall TCircle::TCircle(TCircle* this, struct TCollisionComponent* a2, char* a3, unsigned int a4, struct vector_type* a5, float a6); +double __thiscall TCircle::FindCollisionDistance(TCircle* this, struct ray_type* a2); +void __thiscall TCircle::place_in_grid(TCircle* this); // idb +void __thiscall TCircle::EdgeCollision(TCircle* this, struct TBall*, float); // idb + +void* TCircle::`vftable` = &TCircle::EdgeCollision; // weak + #endif //PINBALL_TCIRCLE_H diff --git a/Classes/TCollisionComponent/TCollisionComponent.cpp b/Classes/TCollisionComponent/TCollisionComponent.cpp index e81d717..b55734b 100644 --- a/Classes/TCollisionComponent/TCollisionComponent.cpp +++ b/Classes/TCollisionComponent/TCollisionComponent.cpp @@ -355,7 +355,7 @@ unsigned int v16; // [esp+48h] [ebp-14h] v4 = this; TPinballComponent::TPinballComponent(this, a2, a3, 1); -*(_DWORD *)v4 = &TCollisionComponent::`vftable'; +*(_DWORD *)v4 = &TCollisionComponent::`vftable`; objlist_class::objlist_class((TCollisionComponent *)((char *)v4 + 42), 4, 4); v5 = *(_DWORD *)((char *)v4 + 10) == 0; *((_BYTE *)v4 + 5) = 1; @@ -385,7 +385,7 @@ install_wall(v8, v4, (char *)v4 + 5, v7, v6, 0); *(_DWORD *)((char *)v4 + 22) = a3; return v4; } -// 10024EC: using guessed type void *TCollisionComponent::`vftable'; +// 10024EC: using guessed type void *TCollisionComponent::`vftable`; //----- (01019172) -------------------------------------------------------- TZmapList *__thiscall TCollisionComponent::~TCollisionComponent(TCollisionComponent *this) @@ -397,7 +397,7 @@ void *v4; // edi v1 = this; v2 = *(_DWORD *)((char *)this + 46); -*(_DWORD *)this = &TCollisionComponent::`vftable'; +*(_DWORD *)this = &TCollisionComponent::`vftable`; if ( *(_DWORD *)(v2 + 4) ) { do @@ -412,4 +412,4 @@ while ( *(_DWORD *)(*(_DWORD *)((char *)v1 + 46) + 4) ); objlist_destroy(*(_DWORD *)((char *)v1 + 46)); return TPinballComponent::~TPinballComponent(v1); } -// 10024EC: using guessed type void *TCollisionComponent::`vftable'; +// 10024EC: using guessed type void *TCollisionComponent::`vftable`; diff --git a/Classes/TCollisionComponent/TCollisionComponent.h b/Classes/TCollisionComponent/TCollisionComponent.h index 8988bda..b1ca28e 100644 --- a/Classes/TCollisionComponent/TCollisionComponent.h +++ b/Classes/TCollisionComponent/TCollisionComponent.h @@ -7,4 +7,15 @@ #include "../../pinball.h" +/* 101 */ +struct TCollisionComponent; + +void __thiscall TCollisionComponent::port_draw(TCollisionComponent* __hidden this); // idb +void __thiscall TCollisionComponent::Collision(TCollisionComponent* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +int __thiscall TCollisionComponent::DefaultCollision(TCollisionComponent* this, struct TBall*, struct vector_type*, struct vector_type*); // idb +TCollisionComponent* __thiscall TCollisionComponent::TCollisionComponent(TCollisionComponent* this, struct TPinballTable* a2, int a3, int a4); +TZmapList* __thiscall TCollisionComponent::~TCollisionComponent(TCollisionComponent* this); + +void* TCollisionComponent::`vftable` = &TPinballComponent::Message; // weak + #endif //PINBALL_TCOLLISIONCOMPONENT_H diff --git a/Classes/TComponentGroup/TComponentGroup.h b/Classes/TComponentGroup/TComponentGroup.h index c659465..ef6f25d 100644 --- a/Classes/TComponentGroup/TComponentGroup.h +++ b/Classes/TComponentGroup/TComponentGroup.h @@ -7,4 +7,15 @@ #include "../../pinball.h" +/* 127 */ +struct TComponentGroup; + +void __stdcall TComponentGroup::NotifyTimerExpired(int, struct TPinballComponent*); // idb +int __thiscall TComponentGroup::Message(TComponentGroup* this, int, float); // idb +TComponentGroup* __thiscall TComponentGroup::TComponentGroup(TComponentGroup* this, struct TPinballTable* a2, int a3); +TZmapList* __thiscall TComponentGroup::~TComponentGroup(TComponentGroup* this); +TComponentGroup* __thiscall TComponentGroup::`scalar deleting destructor`(TComponentGroup *this, char a2); + +void* TComponentGroup::`vftable` = &TComponentGroup::Message; // weak + #endif //PINBALL_TCOMPONENTGROUP_H diff --git a/Classes/TDemo/TDemo.cpp b/Classes/TDemo/TDemo.cpp index 951db39..5ea8e58 100644 --- a/Classes/TDemo/TDemo.cpp +++ b/Classes/TDemo/TDemo.cpp @@ -214,7 +214,7 @@ unsigned int v12; // [esp+48h] [ebp-14h] v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 0); -*(_DWORD *)v3 = &TDemo::`vftable'; +*(_DWORD *)v3 = &TDemo::`vftable`; *(_DWORD *)((char *)v3 + 114) = 0; *(_DWORD *)((char *)v3 + 110) = 0; *(_DWORD *)((char *)v3 + 102) = 0; @@ -253,4 +253,4 @@ v9 = (float *)loader_query_float_attribute(a3, 0, 1404); *(_DWORD *)((char *)v3 + 126) = install_wall(v9, v3, (char *)v3 + 5, v12, *(float *)((char *)a2 + 282), (void *)0x57C); return v3; } -// 10026E8: using guessed type void *TDemo::`vftable'; +// 10026E8: using guessed type void *TDemo::`vftable`; diff --git a/Classes/TDemo/TDemo.h b/Classes/TDemo/TDemo.h index 9d4813a..cd2bd85 100644 --- a/Classes/TDemo/TDemo.h +++ b/Classes/TDemo/TDemo.h @@ -7,4 +7,19 @@ #include "../../pinball.h" +/* 128 */ +struct TDemo; + +void __stdcall TDemo::PlungerRelease(int, void*); // idb +void __stdcall TDemo::UnFlipRight(int, void*); // idb +void __stdcall TDemo::UnFlipLeft(int, void*); // idb +void __stdcall TDemo::FlipRight(int, void*); // idb +void __stdcall TDemo::FlipLeft(int, void*); // idb +void __stdcall TDemo::NewGameRestartTimer(int, void*); // idb +void __thiscall TDemo::Collision(TDemo* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +int __thiscall TDemo::Message(TDemo* this, int, float); // idb +TDemo* __thiscall TDemo::TDemo(TDemo* this, struct TPinballTable* a2, int a3); + +void* TDemo::`vftable` = &TDemo::Message; // weak + #endif //PINBALL_TDEMO_H diff --git a/Classes/TDrain/TDrain.cpp b/Classes/TDrain/TDrain.cpp index 83dbe42..d41001d 100644 --- a/Classes/TDrain/TDrain.cpp +++ b/Classes/TDrain/TDrain.cpp @@ -44,8 +44,8 @@ TDrain *v3; // esi v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 1); *(_DWORD *)((char *)v3 + 86) = 0; -*(_DWORD *)v3 = &TDrain::`vftable'; +*(_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'; +// 1002720: using guessed type void *TDrain::`vftable`; diff --git a/Classes/TDrain/TDrain.h b/Classes/TDrain/TDrain.h index 80de8f1..79b42b8 100644 --- a/Classes/TDrain/TDrain.h +++ b/Classes/TDrain/TDrain.h @@ -7,4 +7,14 @@ #include "../../pinball.h" +/* 115 */ +struct TDrain + +int __thiscall TDrain::Message(TDrain* this, int, float); // idb +void __stdcall TDrain::TimerCallback(int, struct TPinballComponent*); // idb +void __thiscall TDrain::Collision(TDrain* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TDrain* __thiscall TDrain::TDrain(TDrain* this, struct TPinballTable* a2, int a3); + +void* TDrain::`vftable` = &TDrain::Message; // weak + #endif //PINBALL_TDRAIN_H diff --git a/Classes/TEdgeBox/TEdgeBox.h b/Classes/TEdgeBox/TEdgeBox.h index cb43d76..edf89e0 100644 --- a/Classes/TEdgeBox/TEdgeBox.h +++ b/Classes/TEdgeBox/TEdgeBox.h @@ -5,4 +5,14 @@ #ifndef PINBALL_TEDGEBOX_H #define PINBALL_TEDGEBOX_H +#include "../../pinball.h" + +/* 125 */ +struct TEdgeBox; + +TEdgeBox* __thiscall TEdgeBox::TEdgeBox(TEdgeBox* this); +void __thiscall TEdgeBox::~TEdgeBox(TEdgeBox* this); +TEdgeBox* __thiscall TEdgeBox::`vector deleting destructor`(TEdgeBox *this, char a2); + + #endif //PINBALL_TEDGEBOX_H diff --git a/Classes/TEdgeManager/TEdgeManager.h b/Classes/TEdgeManager/TEdgeManager.h index 93ed24a..7d4ad04 100644 --- a/Classes/TEdgeManager/TEdgeManager.h +++ b/Classes/TEdgeManager/TEdgeManager.h @@ -5,4 +5,22 @@ #ifndef PINBALL_TEDGEMANAGER_H #define PINBALL_TEDGEMANAGER_H +#include "../../pinball.h" + +/* 96 */ +struct TEdgeManager; + +signed __int64 __thiscall TEdgeManager::box_x(TEdgeManager* this, float a2); +signed __int64 __thiscall TEdgeManager::box_y(TEdgeManager* this, float a2); +int __thiscall TEdgeManager::increment_box_x(TEdgeManager* this, int); // idb +int __thiscall TEdgeManager::increment_box_y(TEdgeManager* this, int); // idb +void __thiscall TEdgeManager::FieldEffects(TEdgeManager* this, struct TBall*, struct vector_type*); // idb +// int __userpurge TEdgeManager::TestGridBox@(TEdgeManager *this@, double a2@, int a3, int a4, float *a5, struct TEdgeSegment **a6, struct ray_type *a7, struct TBall *a8, int a9); +double __thiscall TEdgeManager::FindCollisionDistance(TEdgeManager* this, struct ray_type* a2, struct TBall* a3, struct TEdgeSegment** a4); +TEdgeManager* __thiscall TEdgeManager::TEdgeManager(TEdgeManager* this, float a2, float a3, float a4, float a5); +void __thiscall TEdgeManager::add_edge_to_box(TEdgeManager* this, int, int, struct TEdgeSegment*); // idb +void __thiscall TEdgeManager::add_field_to_box(TEdgeManager* this, int, int, struct field_effect_type*); // idb +TEdgeBox* __thiscall TEdgeManager::~TEdgeManager(TEdgeManager* this); +TEdgeManager* __thiscall TEdgeManager::`scalar deleting destructor`(TEdgeManager* this, char a2); + #endif //PINBALL_TEDGEMANAGER_H diff --git a/Classes/TEdgeSegment/TEdgeSegment.cpp b/Classes/TEdgeSegment/TEdgeSegment.cpp index dd075f7..0a60213 100644 --- a/Classes/TEdgeSegment/TEdgeSegment.cpp +++ b/Classes/TEdgeSegment/TEdgeSegment.cpp @@ -8,9 +8,9 @@ TEdgeSegment *result; // eax result = this; *((_DWORD *)this + 1) = a2; *((_DWORD *)this + 2) = a3; -*(_DWORD *)this = &TEdgeSegment::`vftable'; +*(_DWORD *)this = &TEdgeSegment::`vftable`; *(_DWORD *)((char *)this + 17) = a4; *((_BYTE *)this + 12) = 0; return result; } -// 1002444: using guessed type void *TEdgeSegment::`vftable'; +// 1002444: using guessed type void *TEdgeSegment::`vftable`; diff --git a/Classes/TEdgeSegment/TEdgeSegment.h b/Classes/TEdgeSegment/TEdgeSegment.h index b89179d..b926322 100644 --- a/Classes/TEdgeSegment/TEdgeSegment.h +++ b/Classes/TEdgeSegment/TEdgeSegment.h @@ -7,4 +7,11 @@ #include "../../pinball.h" +/* 98 */ +struct TEdgeSegment; + +TEdgeSegment* __thiscall TEdgeSegment::TEdgeSegment(TEdgeSegment* this, struct TCollisionComponent* a2, char* a3, unsigned int a4); + +void* TEdgeSegment::`vftable` = &_purecall; // weak + #endif //PINBALL_TEDGESEGMENT_H diff --git a/Classes/TFlagSpinner/TFlagSpinner.cpp b/Classes/TFlagSpinner/TFlagSpinner.cpp index 7906a9b..914595b 100644 --- a/Classes/TFlagSpinner/TFlagSpinner.cpp +++ b/Classes/TFlagSpinner/TFlagSpinner.cpp @@ -149,7 +149,7 @@ int v18; // [esp+64h] [ebp-8h] v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 0); -*(_DWORD *)v3 = &TFlagSpinner::`vftable'; +*(_DWORD *)v3 = &TFlagSpinner::`vftable`; *(_DWORD *)((char *)v3 + 102) = 0; loader_query_visual(a3, 0, &v12); v15 = *v13; @@ -191,4 +191,4 @@ if ( v10 ) *(_DWORD *)((char *)v3 + 86) = *v10; return v3; } -// 1002588: using guessed type void *TFlagSpinner::`vftable'; +// 1002588: using guessed type void *TFlagSpinner::`vftable`; diff --git a/Classes/TFlagSpinner/TFlagSpinner.h b/Classes/TFlagSpinner/TFlagSpinner.h index 53b3645..dbfffa5 100644 --- a/Classes/TFlagSpinner/TFlagSpinner.h +++ b/Classes/TFlagSpinner/TFlagSpinner.h @@ -7,4 +7,17 @@ #include "../../pinball.h" +/* 105 */ +struct TFlagSpinner; + +void __stdcall TFlagSpinner::SpinTimer(int, void*); // idb +void __thiscall TFlagSpinner::NextFrame(TFlagSpinner* this); // idb +int __thiscall TFlagSpinner::Message(TFlagSpinner* this, int, float); // idb +int __thiscall TFlagSpinner::get_scoring(TFlagSpinner* this, int); // idb +void __thiscall TFlagSpinner::put_scoring(TFlagSpinner* this, int, int); // idb +void __thiscall TFlagSpinner::Collision(TFlagSpinner* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TFlagSpinner* __thiscall TFlagSpinner::TFlagSpinner(TFlagSpinner* this, struct TPinballTable* a2, int a3); + +void* TFlagSpinner::`vftable` = &TFlagSpinner::Message; // weak + #endif //PINBALL_TFLAGSPINNER_H diff --git a/Classes/TFlipper/TFlipper.cpp b/Classes/TFlipper/TFlipper.cpp index 9e7241c..01d5ff4 100644 --- a/Classes/TFlipper/TFlipper.cpp +++ b/Classes/TFlipper/TFlipper.cpp @@ -9,11 +9,11 @@ void *v2; // ST00_4 v1 = this; v2 = *(void **)((char *)this + 82); -*(_DWORD *)this = &TFlipper::`vftable'; +*(_DWORD *)this = &TFlipper::`vftable`; operator delete(v2); return TCollisionComponent::~TCollisionComponent(v1); } -// 1002838: using guessed type void *TFlipper::`vftable'; +// 1002838: using guessed type void *TFlipper::`vftable`; //----- (0101C070) -------------------------------------------------------- void __stdcall TFlipper::TimerExpired(int a1, void *a2) @@ -206,7 +206,7 @@ float *v25; // [esp+7Ch] [ebp+Ch] v3 = a3; v4 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 0); -*(_DWORD *)v4 = &TFlipper::`vftable'; +*(_DWORD *)v4 = &TFlipper::`vftable`; loader_query_visual(a3, 0, &v18); *(_DWORD *)((char *)v4 + 74) = v21; *(_DWORD *)((char *)v4 + 70) = v22; @@ -245,7 +245,7 @@ v16 = *(_DWORD *)((char *)v4 + 34); *(float *)((char *)v4 + 102) = 0.0; return v4; } -// 1002838: using guessed type void *TFlipper::`vftable'; +// 1002838: using guessed type void *TFlipper::`vftable`; //----- (0101C6D7) -------------------------------------------------------- TFlipper *__thiscall TFlipper::`vector deleting destructor`(TFlipper *this, char a2) diff --git a/Classes/TFlipper/TFlipper.h b/Classes/TFlipper/TFlipper.h index 4f7f466..98ce9f8 100644 --- a/Classes/TFlipper/TFlipper.h +++ b/Classes/TFlipper/TFlipper.h @@ -7,4 +7,16 @@ #include "../../pinball.h" +/* 121 */ +struct TFlipper; + +TZmapList* __thiscall TFlipper::~TFlipper(TFlipper* this); +void __stdcall TFlipper::TimerExpired(int, void*); // idb +int __thiscall TFlipper::Message(TFlipper* this, int, float); // idb +void __thiscall TFlipper::port_draw(TFlipper* __hidden this); // idb +TFlipper* __thiscall TFlipper::TFlipper(TFlipper* this, struct TPinballTable* a2, int a3); +TFlipper* __thiscall TFlipper::`vector deleting destructor`(TFlipper *this, char a2); + +void* TFlipper::`vftable` = &TFlipper::Message; // weak + #endif //PINBALL_TFLIPPER_H diff --git a/Classes/TFlipperEdge/TFlipperEdge.cpp b/Classes/TFlipperEdge/TFlipperEdge.cpp index 7df5fe7..888ba84 100644 --- a/Classes/TFlipperEdge/TFlipperEdge.cpp +++ b/Classes/TFlipperEdge/TFlipperEdge.cpp @@ -758,7 +758,7 @@ v13 = this; TEdgeSegment::TEdgeSegment(this, a2, a3, a4); *(float *)((char *)v13 + 25) = a12; *(float *)((char *)v13 + 29) = a13; -*(_DWORD *)v13 = &TFlipperEdge::`vftable'; +*(_DWORD *)v13 = &TFlipperEdge::`vftable`; v46 = *(float *)a6; v47 = *((float *)a6 + 1); v48 = *((float *)a6 + 2); @@ -857,4 +857,4 @@ result = v13; *(float *)((char *)v13 + 209) = 0.0; return result; } -// 1002854: using guessed type void *TFlipperEdge::`vftable'; +// 1002854: using guessed type void *TFlipperEdge::`vftable`; diff --git a/Classes/TFlipperEdge/TFlipperEdge.h b/Classes/TFlipperEdge/TFlipperEdge.h index edc38e7..1ddfe2a 100644 --- a/Classes/TFlipperEdge/TFlipperEdge.h +++ b/Classes/TFlipperEdge/TFlipperEdge.h @@ -7,4 +7,20 @@ #include "../../pinball.h" +/* 120 */ +struct TFlipperEdge; + +void __thiscall TFlipperEdge::place_in_grid(TFlipperEdge* this); // idb +double __thiscall TFlipperEdge::flipper_angle(TFlipperEdge* this, float a2); +void __thiscall TFlipperEdge::build_edges_in_motion(TFlipperEdge* __hidden this); // idb +void __thiscall TFlipperEdge::set_control_points(TFlipperEdge* this, float); // idb +int __thiscall TFlipperEdge::is_ball_inside(TFlipperEdge* this, float, float); // idb +double __thiscall TFlipperEdge::FindCollisionDistance(TFlipperEdge* this, struct ray_type* a2); +void __thiscall TFlipperEdge::EdgeCollision(TFlipperEdge* this, struct TBall*, float); // idb +void __thiscall TFlipperEdge::SetMotion(TFlipperEdge* this, int, float); // idb +void __thiscall TFlipperEdge::port_draw(TFlipperEdge* this); // idb +TFlipperEdge* __thiscall TFlipperEdge::TFlipperEdge(TFlipperEdge* this, struct TCollisionComponent* a2, char* a3, unsigned int a4, struct TPinballTable* a5, struct vector_type* a6, struct vector_type* a7, struct vector_type* a8, float a9, float a10, float a11, float a12, float a13); + +void* TFlipperEdge::`vftable` = &TFlipperEdge::EdgeCollision; // weak + #endif //PINBALL_TFLIPPEREDGE_H diff --git a/Classes/TGate/TGate.cpp b/Classes/TGate/TGate.cpp index 3e9d034..c51816c 100644 --- a/Classes/TGate/TGate.cpp +++ b/Classes/TGate/TGate.cpp @@ -41,7 +41,7 @@ int v8; // [esp+40h] [ebp-Ch] v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 1); -*(_DWORD *)v3 = &TGate::`vftable'; +*(_DWORD *)v3 = &TGate::`vftable`; loader_query_visual(a3, 0, &v6); *(_DWORD *)((char *)v3 + 78) = v7; *(_DWORD *)((char *)v3 + 82) = v8; @@ -51,4 +51,4 @@ render_sprite_set_bitmap(*(_DWORD **)((char *)v3 + 26), *(_DWORD *)(*(_DWORD *)( control_handler(1024, v3); return v3; } -// 10025F8: using guessed type void *TGate::`vftable'; +// 10025F8: using guessed type void *TGate::`vftable`; diff --git a/Classes/TGate/TGate.h b/Classes/TGate/TGate.h index f49a309..5fcfbfc 100644 --- a/Classes/TGate/TGate.h +++ b/Classes/TGate/TGate.h @@ -7,4 +7,12 @@ #include "../../pinball.h" +/* 133 */ +struct TGate; + +int __thiscall TGate::Message(TGate* this, int, float); // idb +TGate* __thiscall TGate::TGate(TGate* this, struct TPinballTable* a2, int a3); + +void* TGate::`vftable` = &TGate::Message; // weak + #endif //PINBALL_TGATE_H diff --git a/Classes/THole/THole.cpp b/Classes/THole/THole.cpp index 2db3b39..465f4f8 100644 --- a/Classes/THole/THole.cpp +++ b/Classes/THole/THole.cpp @@ -141,7 +141,7 @@ TCircle *v22; // [esp+78h] [ebp+8h] v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 0); -*(_DWORD *)v3 = &THole::`vftable'; +*(_DWORD *)v3 = &THole::`vftable`; *(_DWORD *)((char *)v3 + 94) = 1028443341; *(_DWORD *)((char *)v3 + 6) = 0; *(_DWORD *)((char *)v3 + 86) = 0; @@ -193,4 +193,4 @@ v18 = *(_DWORD *)((char *)v3 + 122); edges_insert_circle((struct circle_type *)&v16, 0, (THole *)((char *)v3 + 130)); return v3; } -// 10026AC: using guessed type void *THole::`vftable'; +// 10026AC: using guessed type void *THole::`vftable`; diff --git a/Classes/THole/THole.h b/Classes/THole/THole.h index 910ebbd..6d0f2e3 100644 --- a/Classes/THole/THole.h +++ b/Classes/THole/THole.h @@ -7,4 +7,15 @@ #include "../../pinball.h" +/* 112 */ +struct THole; + +void __stdcall THole::TimerExpired(int, void*); // idb +int __thiscall THole::FieldEffect(THole* this, struct TBall*, struct vector_type*); // idb +int __thiscall THole::Message(THole* this, int, float); // idb +void __thiscall THole::Collision(THole* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +THole* __thiscall THole::THole(THole* this, struct TPinballTable* a2, int a3); + +void* THole::`vftable` = &THole::Message; // weak + #endif //PINBALL_THOLE_H diff --git a/Classes/TKickback/TKickback.cpp b/Classes/TKickback/TKickback.cpp index 2bdd83f..4d51500 100644 --- a/Classes/TKickback/TKickback.cpp +++ b/Classes/TKickback/TKickback.cpp @@ -99,10 +99,10 @@ TCollisionComponent::TCollisionComponent(this, a2, a3, 1); *(_DWORD *)((char *)v3 + 6) = 0; *(_DWORD *)((char *)v3 + 86) = 0; *(_DWORD *)((char *)v3 + 90) = 0; -*(_DWORD *)v3 = &TKickback::`vftable'; +*(_DWORD *)v3 = &TKickback::`vftable`; *(_DWORD *)((char *)v3 + 78) = 1060320051; *(_DWORD *)((char *)v3 + 82) = 1036831949; *(_DWORD *)((char *)v3 + 66) = 1315859240; return v3; } -// 1002668: using guessed type void *TKickback::`vftable'; +// 1002668: using guessed type void *TKickback::`vftable`; diff --git a/Classes/TKickback/TKickback.h b/Classes/TKickback/TKickback.h index d021448..92b143e 100644 --- a/Classes/TKickback/TKickback.h +++ b/Classes/TKickback/TKickback.h @@ -7,4 +7,14 @@ #include "../../pinball.h" +/* 110 */ +struct TKickback; + +void __stdcall TKickback::TimerExpired(int, struct TPinballComponent*); // idb +int __thiscall TKickback::Message(TKickback* this, int, float); // idb +void __thiscall TKickback::Collision(TKickback* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TKickback* __thiscall TKickback::TKickback(TKickback* this, struct TPinballTable* a2, int a3); + +void* TKickback::`vftable` = &TKickback::Message; // weak + #endif //PINBALL_TKICKBACK_H diff --git a/Classes/TKickout/TKickout.cpp b/Classes/TKickout/TKickout.cpp index 566333c..48d7d3b 100644 --- a/Classes/TKickout/TKickout.cpp +++ b/Classes/TKickout/TKickout.cpp @@ -181,7 +181,7 @@ struct vector_type *v32; // [esp+78h] [ebp+10h] v4 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 0); -*(_DWORD *)v4 = &TKickout::`vftable'; +*(_DWORD *)v4 = &TKickout::`vftable`; *(_DWORD *)((char *)v4 + 82) = a4 == 0; if ( !a4 ) *((_BYTE *)v4 + 5) = 0; @@ -237,4 +237,4 @@ v28 = *(_DWORD *)((char *)v4 + 118); edges_insert_circle((struct circle_type *)&v26, 0, (TKickout *)((char *)v4 + 154)); return v4; } -// 1002690: using guessed type void *TKickout::`vftable'; +// 1002690: using guessed type void *TKickout::`vftable`; diff --git a/Classes/TKickout/TKickout.h b/Classes/TKickout/TKickout.h index 927b9e8..41e9a49 100644 --- a/Classes/TKickout/TKickout.h +++ b/Classes/TKickout/TKickout.h @@ -7,4 +7,18 @@ #include "../../pinball.h" +/* 111 */ +struct TKickout; + +void __thiscall TKickout::Collision(TKickout* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +void __stdcall TKickout::ResetTimerExpired(int, void*); // idb +void __stdcall TKickout::TimerExpired(int, void*); // idb +int __thiscall TKickout::FieldEffect(TKickout* this, struct TBall*, struct vector_type*); // idb +int __thiscall TKickout::Message(TKickout* this, int, float); // idb +int __thiscall TKickout::get_scoring(TKickout* this, int); // idb +void __thiscall TKickout::put_scoring(TKickout* this, int, int); // idb +TKickout* __thiscall TKickout::TKickout(TKickout* this, struct TPinballTable* a2, int a3, struct vector_type* a4); + +void* TKickout::`vftable` = &TKickout::Message; // weak + #endif //PINBALL_TKICKOUT_H diff --git a/Classes/TLight/TLight.cpp b/Classes/TLight/TLight.cpp index 279a589..3196053 100644 --- a/Classes/TLight/TLight.cpp +++ b/Classes/TLight/TLight.cpp @@ -349,7 +349,7 @@ double v7; // st7 v3 = this; TPinballComponent::TPinballComponent(this, a2, a3, 1); -*(_DWORD *)v3 = &TLight::`vftable'; +*(_DWORD *)v3 = &TLight::`vftable`; *(_DWORD *)((char *)v3 + 110) = 0; *(_DWORD *)((char *)v3 + 82) = 0; *(_DWORD *)((char *)v3 + 114) = 0; @@ -365,4 +365,4 @@ v7 = *v6; *(float *)((char *)v3 + 106) = v7; return v3; } -// 1001A48: using guessed type void *TLight::`vftable'; +// 1001A48: using guessed type void *TLight::`vftable`; diff --git a/Classes/TLight/TLight.h b/Classes/TLight/TLight.h index 5fc27c0..54dfe73 100644 --- a/Classes/TLight/TLight.h +++ b/Classes/TLight/TLight.h @@ -5,4 +5,17 @@ #ifndef PINBALL_TLIGHT_H #define PINBALL_TLIGHT_H +#include "../../pinball.h" + +/* 124 */ +struct TLight; + +void __thiscall TLight::Reset(TLight* __hidden this); // idb +void __stdcall TLight::TimerExpired(int, void*); // idb +void __thiscall TLight::schedule_timeout(TLight* this, float); // idb +int __thiscall TLight::Message(TLight* this, int, float); // idb +TLight* __thiscall TLight::TLight(TLight* this, struct TPinballTable* a2, int a3); + +void* TLight::`vftable` = &TLight::Message; // weak + #endif //PINBALL_TLIGHT_H diff --git a/Classes/TLightBargraph/TLightBargraph.cpp b/Classes/TLightBargraph/TLightBargraph.cpp index 907a028..461b679 100644 --- a/Classes/TLightBargraph/TLightBargraph.cpp +++ b/Classes/TLightBargraph/TLightBargraph.cpp @@ -11,12 +11,12 @@ TZmapList *__thiscall TLightBargraph::~TLightBargraph(TLightBargraph *this) v1 = this; v2 = *(_DWORD *)((char *)this + 138); - *(_DWORD *)this = &TLightBargraph::`vftable'; + *(_DWORD *)this = &TLightBargraph::`vftable`; if ( v2 ) memoryfree(v2); return TLightGroup::~TLightGroup(v1); } -// 1001A30: using guessed type void *TLightBargraph::`vftable'; +// 1001A30: using guessed type void *TLightBargraph::`vftable`; //----- (0100AAA9) -------------------------------------------------------- void __thiscall TLightBargraph::Reset(TLightBargraph *this) @@ -159,7 +159,7 @@ int i; // eax v3 = this; TLightGroup::TLightGroup(this, a2, a3); -*(_DWORD *)v3 = &TLightBargraph::`vftable'; +*(_DWORD *)v3 = &TLightBargraph::`vftable`; *(_DWORD *)((char *)v3 + 138) = 0; TLightBargraph::Reset(v3); if ( a3 > 0 ) @@ -179,7 +179,7 @@ for ( i = 0; i < v5; ++v4 ) } return v3; } -// 1001A30: using guessed type void *TLightBargraph::`vftable'; +// 1001A30: using guessed type void *TLightBargraph::`vftable`; //----- (0100AEF9) -------------------------------------------------------- TLightBargraph *__thiscall TLightBargraph::`vector deleting destructor'(TLightBargraph *this, char a2) diff --git a/Classes/TLightBargraph/TLightBargraph.h b/Classes/TLightBargraph/TLightBargraph.h index 6d3a5a3..ad398fc 100644 --- a/Classes/TLightBargraph/TLightBargraph.h +++ b/Classes/TLightBargraph/TLightBargraph.h @@ -5,4 +5,18 @@ #ifndef PINBALL_TLIGHTBARGRAPH_H #define PINBALL_TLIGHTBARGRAPH_H +#include "../../pinball.h" + +/* 94 */ +struct TLightBargraph; + +TZmapList* __thiscall TLightBargraph::~TLightBargraph(TLightBargraph* this); +void __thiscall TLightBargraph::Reset(TLightBargraph* this); // idb +void __stdcall TLightBargraph::BargraphTimerExpired(int, void*); // idb +int __thiscall TLightBargraph::Message(TLightBargraph* this, int, float); // idb +TLightBargraph* __thiscall TLightBargraph::TLightBargraph(TLightBargraph* this, struct TPinballTable* a2, int a3); +TLightBargraph* __thiscall TLightBargraph::`vector deleting destructor'(TLightBargraph *this, char a2); + +void* TLightBargraph::`vftable` = &TLightBargraph::Message; // weak + #endif //PINBALL_TLIGHTBARGRAPH_H diff --git a/Classes/TLightRollover/TLightRollover.cpp b/Classes/TLightRollover/TLightRollover.cpp index b1f44bf..f83cc6f 100644 --- a/Classes/TLightRollover/TLightRollover.cpp +++ b/Classes/TLightRollover/TLightRollover.cpp @@ -80,7 +80,7 @@ bool v4; // zf v3 = this; TRollover::TRollover(this, a2, a3, 0); v4 = *(_DWORD *)((char *)v3 + 34) == 0; -*(_DWORD *)v3 = &TLightRollover::`vftable'; +*(_DWORD *)v3 = &TLightRollover::`vftable`; *((_BYTE *)v3 + 78) = 0; *(_DWORD *)((char *)v3 + 91) = 0; if ( !v4 ) @@ -89,4 +89,4 @@ TRollover::build_walls(v3, a3); *(_DWORD *)((char *)v3 + 87) = *(_DWORD *)loader_query_float_attribute(a3, 0, 407); return v3; } -// 1002630: using guessed type void *TLightRollover::`vftable'; +// 1002630: using guessed type void *TLightRollover::`vftable`; diff --git a/Classes/TLightRollover/TLightRollover.h b/Classes/TLightRollover/TLightRollover.h index 7e134f1..21266ba 100644 --- a/Classes/TLightRollover/TLightRollover.h +++ b/Classes/TLightRollover/TLightRollover.h @@ -7,4 +7,14 @@ #include "../../pinball.h" +/* 109 */ +struct TLightRollover; + +void __stdcall TLightRollover::delay_expired(int, void*); // idb +void __thiscall TLightRollover::Collision(TLightRollover* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +int __thiscall TLightRollover::Message(TLightRollover* this, int, float); // idb +TLightRollover* __thiscall TLightRollover::TLightRollover(TLightRollover* this, struct TPinballTable* a2, int a3); + +void* TLightRollover::`vftable` = &TLightRollover::Message; // weak + #endif //PINBALL_TLIGHTROLLOVER_H diff --git a/Classes/TLine/TLine.cpp b/Classes/TLine/TLine.cpp index 96940d7..169f71e 100644 --- a/Classes/TLine/TLine.cpp +++ b/Classes/TLine/TLine.cpp @@ -11,11 +11,11 @@ TEdgeSegment::TEdgeSegment(this, a2, a3, a4); *(float *)((char *)v8 + 73) = a6; *(float *)((char *)v8 + 77) = a7; *(float *)((char *)v8 + 81) = a8; -*(_DWORD *)v8 = &TLine::`vftable'; +*(_DWORD *)v8 = &TLine::`vftable`; line_init((int)v8 + 21, a5, a6, a7, a8); return v8; } -// 1002864: using guessed type void *TLine::`vftable'; +// 1002864: using guessed type void *TLine::`vftable`; //----- (0101C764) -------------------------------------------------------- double __thiscall TLine::FindCollisionDistance(TLine *this, struct ray_type *a2) @@ -32,7 +32,7 @@ float v8; // ST10_4 v6 = this; TEdgeSegment::TEdgeSegment(this, a2, a3, a4); -*(_DWORD *)v6 = &TLine::`vftable'; +*(_DWORD *)v6 = &TLine::`vftable`; *(_DWORD *)((char *)v6 + 69) = *(_DWORD *)a5; *(_DWORD *)((char *)v6 + 73) = *((_DWORD *)a5 + 1); *(_DWORD *)((char *)v6 + 77) = *(_DWORD *)a6; @@ -42,7 +42,7 @@ v8 = v7; line_init((int)v6 + 21, *(float *)((char *)v6 + 69), *(float *)((char *)v6 + 73), *(float *)((char *)v6 + 77), v8); return v6; } -// 1002864: using guessed type void *TLine::`vftable'; +// 1002864: using guessed type void *TLine::`vftable`; //----- (0101C7E6) -------------------------------------------------------- void __thiscall TLine::EdgeCollision(TLine *this, struct TBall *a2, float a3) diff --git a/Classes/TLine/TLine.h b/Classes/TLine/TLine.h index f2e2527..8468970 100644 --- a/Classes/TLine/TLine.h +++ b/Classes/TLine/TLine.h @@ -7,4 +7,16 @@ #include "../../pinball.h" +/* 122 */ +struct TLine; + +TLine* __thiscall TLine::TLine(TLine* this, struct TCollisionComponent* a2, char* a3, unsigned int a4, float a5, float a6, float a7, float a8); +double __thiscall TLine::FindCollisionDistance(TLine* this, struct ray_type* a2); +TLine* __thiscall TLine::TLine(TLine* this, struct TCollisionComponent* a2, char* a3, unsigned int a4, struct vector_type* a5, struct vector_type* a6); +void __thiscall TLine::EdgeCollision(TLine* this, struct TBall*, float); // idb +void __thiscall TLine::Offset(TLine* this, float); // idb +void __thiscall TLine::place_in_grid(TLine* this); // idb + +void* TLine::`vftable` = &TLine::EdgeCollision; // weak + #endif //PINBALL_TLINE_H diff --git a/Classes/TOneWay/TOneWay.cpp b/Classes/TOneWay/TOneWay.cpp index 8349788..8f9382d 100644 --- a/Classes/TOneWay/TOneWay.cpp +++ b/Classes/TOneWay/TOneWay.cpp @@ -83,7 +83,7 @@ int v17; // [esp+68h] [ebp-8h] v3 = 0; v4 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 0); -*(_DWORD *)v4 = &TOneway::`vftable'; +*(_DWORD *)v4 = &TOneway::`vftable`; loader_query_visual(a3, 0, &v10); if ( v11 == 2 ) { @@ -116,7 +116,7 @@ objlist_class::Add((TOneway *)((char *)v4 + 42), *(void **)((char *)v4 + 82)); } return v4; } -// 1002530: using guessed type void *TOneway::`vftable'; +// 1002530: using guessed type void *TOneway::`vftable`; //----- (0101AAA7) -------------------------------------------------------- TOneway *__thiscall TOneway::`scalar deleting destructor`(TOneway *this, char a2) diff --git a/Classes/TOneWay/TOneWay.h b/Classes/TOneWay/TOneWay.h index aa91f22..63d58dd 100644 --- a/Classes/TOneWay/TOneWay.h +++ b/Classes/TOneWay/TOneWay.h @@ -7,4 +7,15 @@ #include "../../pinball.h" +/* 103 */ +struct TOneway; + +int __thiscall TOneway::get_scoring(TOneway* this, int); // idb +void __thiscall TOneway::put_scoring(TOneway* this, int, int); // idb +void __thiscall TOneway::Collision(TOneway* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TOneway* __thiscall TOneway::TOneway(TOneway* this, struct TPinballTable* a2, int a3); +TOneway* __thiscall TOneway::`scalar deleting destructor`(TOneway* this, char a2); + +void* TOneway::`vftable` = &TPinballComponent::Message; // weak + #endif //PINBALL_TONEWAY_H diff --git a/Classes/TPinballComponent/TPinballComponent.cpp b/Classes/TPinballComponent/TPinballComponent.cpp index d252406..a3ea96c 100644 --- a/Classes/TPinballComponent/TPinballComponent.cpp +++ b/Classes/TPinballComponent/TPinballComponent.cpp @@ -60,7 +60,7 @@ signed int v33; // [esp+88h] [ebp+10h] v4 = this; v5 = a2; -*(_DWORD *)this = &TPinballComponent::`vftable'; +*(_DWORD *)this = &TPinballComponent::`vftable`; *(_DWORD *)((char *)this + 6) = 0; *((_BYTE *)this + 4) = 0; *((_BYTE *)this + 5) = 0; @@ -154,7 +154,7 @@ v30, *(_DWORD *)((char *)v4 + 22) = a3; return v4; } -// 10024A8: using guessed type void *TPinballComponent::`vftable'; +// 10024A8: using guessed type void *TPinballComponent::`vftable`; //----- (01018FBC) -------------------------------------------------------- TZmapList *__thiscall TPinballComponent::~TPinballComponent(TPinballComponent *this) @@ -166,7 +166,7 @@ TZmapList *v4; // ecx v1 = this; result = *(TZmapList **)((char *)this + 30); -*(_DWORD *)this = &TPinballComponent::`vftable'; +*(_DWORD *)this = &TPinballComponent::`vftable`; if ( result ) result = (TZmapList *)objlist_delete_object(*(_DWORD *)((char *)result + 254), (int)this); v3 = *(TZmapList **)((char *)v1 + 34); @@ -177,7 +177,7 @@ if ( v4 ) result = TZmapList::`scalar deleting destructor`(v4, 1); return result; } -// 10024A8: using guessed type void *TPinballComponent::`vftable'; +// 10024A8: using guessed type void *TPinballComponent::`vftable`; //----- (01018FFD) -------------------------------------------------------- TComponentGroup *__thiscall TComponentGroup::TComponentGroup(TComponentGroup *this, struct TPinballTable *a2, int a3) @@ -191,7 +191,7 @@ int v9; // [esp+1Ch] [ebp+Ch] v3 = this; TPinballComponent::TPinballComponent(this, a2, a3, 0); -*(_DWORD *)v3 = &TComponentGroup::`vftable'; +*(_DWORD *)v3 = &TComponentGroup::`vftable`; objlist_class::objlist_class((TComponentGroup *)((char *)v3 + 42), 4, 4); *(_DWORD *)((char *)v3 + 50) = 0; if ( a3 > 0 ) @@ -208,7 +208,7 @@ objlist_class::Add((TComponentGroup *)((char *)v3 + 42), (void *)v6); } return v3; } -// 10024D8: using guessed type void *TComponentGroup::`vftable'; +// 10024D8: using guessed type void *TComponentGroup::`vftable`; //----- (01019082) -------------------------------------------------------- TZmapList *__thiscall TComponentGroup::~TComponentGroup(TComponentGroup *this) @@ -218,7 +218,7 @@ int v2; // eax v1 = this; v2 = *(_DWORD *)((char *)this + 50); -*(_DWORD *)this = &TComponentGroup::`vftable'; +*(_DWORD *)this = &TComponentGroup::`vftable`; if ( v2 ) { timer_kill(v2); @@ -227,5 +227,5 @@ timer_kill(v2); objlist_destroy(*(_DWORD *)((char *)v1 + 46)); return TPinballComponent::~TPinballComponent(v1); } -// 10024D8: using guessed type void *TComponentGroup::`vftable'; +// 10024D8: using guessed type void *TComponentGroup::`vftable`; diff --git a/Classes/TPinballComponent/TPinballComponent.h b/Classes/TPinballComponent/TPinballComponent.h index de99b14..979d25c 100644 --- a/Classes/TPinballComponent/TPinballComponent.h +++ b/Classes/TPinballComponent/TPinballComponent.h @@ -5,4 +5,19 @@ #ifndef PINBALL_TPINBALLCOMPONENT_H #define PINBALL_TPINBALLCOMPONENT_H +#include "../../pinball.h" + +/* 100 */ +struct TPinballComponent; + +void* __stdcall TPinballComponent::operator new(size_t SizeOfElements); // idb +int __thiscall TPinballComponent::Message(TPinballComponent* this, int, float); // idb +int __stdcall TPinballComponent::get_scoring(int a2); +struct TPinballComponent* __thiscall TPinballTable::find_component(TPinballTable* this, char*); // idb +struct TPinballComponent* __thiscall TPinballTable::find_component(TPinballTable* this, int); // idb +TPinballComponent* __thiscall TPinballComponent::TPinballComponent(TPinballComponent* this, struct TPinballTable* a2, int a3, int a4); +TZmapList* __thiscall TPinballComponent::~TPinballComponent(TPinballComponent* this); + +void* TPinballComponent::`vftable` = &TPinballComponent::Message; // weak + #endif //PINBALL_TPINBALLCOMPONENT_H diff --git a/Classes/TPinballTable/TPinballTable.cpp b/Classes/TPinballTable/TPinballTable.cpp index 61a2ba7..5e2c95f 100644 --- a/Classes/TPinballTable/TPinballTable.cpp +++ b/Classes/TPinballTable/TPinballTable.cpp @@ -657,7 +657,7 @@ int i; // ecx signed int v5; // [esp+Ch] [ebp-4h] v1 = this; -*(_DWORD *)this = &TPinballTable::`vftable'; +*(_DWORD *)this = &TPinballTable::`vftable`; v2 = (int *)((char *)this + 102); v5 = 4; do @@ -692,7 +692,7 @@ objlist_destroy(*(_DWORD *)((char *)v1 + 262)); objlist_destroy(*(_DWORD *)((char *)v1 + 254)); return TPinballComponent::~TPinballComponent(v1); } -// 1002790: using guessed type void *TPinballTable::`vftable'; +// 1002790: using guessed type void *TPinballTable::`vftable`; //----- (0101A9F2) -------------------------------------------------------- TPinballTable *__thiscall TPinballTable::`vector deleting destructor`(TPinballTable *this, char a2) @@ -763,7 +763,7 @@ int i; // [esp+10h] [ebp-4h] v1 = 0; v2 = this; TPinballComponent::TPinballComponent(this, 0, -1, 0); -*(_DWORD *)v2 = &TPinballTable::`vftable'; +*(_DWORD *)v2 = &TPinballTable::`vftable`; objlist_class::objlist_class((TPinballTable *)((char *)v2 + 250), 32, 16); objlist_class::objlist_class((TPinballTable *)((char *)v2 + 258), 3, 1); *(_DWORD *)((char *)v2 + 50) = 0; @@ -991,5 +991,5 @@ MissTextBox = TPinballTable::find_component(v2, "mission_text_box"); control_make_links(v2); return v2; } -// 1002790: using guessed type void *TPinballTable::`vftable'; +// 1002790: using guessed type void *TPinballTable::`vftable`; diff --git a/Classes/TPinballTable/TPinballTable.h b/Classes/TPinballTable/TPinballTable.h index 022b667..4070e2d 100644 --- a/Classes/TPinballTable/TPinballTable.h +++ b/Classes/TPinballTable/TPinballTable.h @@ -7,4 +7,22 @@ #include "../../pinball.h" +/* 117 */ +struct TPinballTable; + +void __stdcall TPinballTable::LightShow_timeout(int, void*); // idb +void __stdcall TPinballTable::EndGame_timeout(int, void*); // idb +int __thiscall TPinballTable::AddScore(TPinballTable* this, int); // idb +// void __userpurge TPinballTable::ChangeBallCount(TPinballTable *this@, int a2@, int a3); +void __stdcall TPinballTable::replay_timer_callback(int, void*); // idb +void __thiscall TPinballTable::port_draw(TPinballTable* __hidden this); // idb +void __stdcall TPinballTable::tilt_timeout(int, void*); // idb +// void __userpurge TPinballTable::tilt(TPinballTable *this@, int a2@, float a3); +// int __userpurge TPinballTable::Message@(TPinballTable *this@, int a2@, int a3, float a4); +TZmapList* __thiscall TPinballTable::~TPinballTable(TPinballTable* this); +TPinballTable* __thiscall TPinballTable::`vector deleting destructor'(TPinballTable *this, char a2); +TPinballTable* __thiscall TPinballTable::TPinballTable(TPinballTable* this); + +void* TPinballTable::`vftable` = &TPinballTable::Message; // weak + #endif //PINBALL_TPINBALLTABLE_H diff --git a/Classes/TPlunger/TPlunger.cpp b/Classes/TPlunger/TPlunger.cpp index 2fec5db..c6804a2 100644 --- a/Classes/TPlunger/TPlunger.cpp +++ b/Classes/TPlunger/TPlunger.cpp @@ -169,7 +169,7 @@ int v12; // [esp+44h] [ebp-Ch] v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 1); -*(_DWORD *)v3 = &TPlunger::`vftable'; +*(_DWORD *)v3 = &TPlunger::`vftable`; loader_query_visual(a3, 0, &v9); v4 = v11; *(float *)((char *)v3 + 62) = 0.0; @@ -191,4 +191,4 @@ v7 = (_DWORD *)loader_query_float_attribute(a3, 0, 601); *(_DWORD *)((char *)a2 + 290) = v7[1]; return v3; } -// 1002750: using guessed type void *TPlunger::`vftable'; +// 1002750: using guessed type void *TPlunger::`vftable`; diff --git a/Classes/TPlunger/TPlunger.h b/Classes/TPlunger/TPlunger.h index 6f692b5..71dc66a 100644 --- a/Classes/TPlunger/TPlunger.h +++ b/Classes/TPlunger/TPlunger.h @@ -7,4 +7,16 @@ #include "../../pinball.h" +/* 118 */ +struct TPlunger; + +void __stdcall TPlunger::BallFeedTimer(int, void*); // idb +void __stdcall TPlunger::PullbackTimer(int, void*); // idb +void __stdcall TPlunger::PlungerReleasedTimer(int, void*); // idb +int __thiscall TPlunger::Message(TPlunger* this, int, float); // idb +void __thiscall TPlunger::Collision(TPlunger* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TPlunger* __thiscall TPlunger::TPlunger(TPlunger* this, struct TPinballTable* a2, int a3); + +void* TPlunger::`vftable` = &TPlunger::Message; // weak + #endif //PINBALL_TPLUNGER_H diff --git a/Classes/TPopupTarget/TPopupTarget.cpp b/Classes/TPopupTarget/TPopupTarget.cpp index 7e40f42..0afa785 100644 --- a/Classes/TPopupTarget/TPopupTarget.cpp +++ b/Classes/TPopupTarget/TPopupTarget.cpp @@ -124,10 +124,10 @@ int v4; // eax v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 1); -*(_DWORD *)v3 = &TPopupTarget::`vftable'; +*(_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'; +// 10025A4: using guessed type void *TPopupTarget::`vftable`; diff --git a/Classes/TPopupTarget/TPopupTarget.h b/Classes/TPopupTarget/TPopupTarget.h index eaba3d4..d1ac45e 100644 --- a/Classes/TPopupTarget/TPopupTarget.h +++ b/Classes/TPopupTarget/TPopupTarget.h @@ -7,4 +7,16 @@ #include "../../pinball.h" +/* 106 */ +struct TPopupTarget; + +void __stdcall TPopupTarget::TimerExpired(int, void*); // idb +int __thiscall TPopupTarget::Message(TPopupTarget* this, int, float); // idb +int __thiscall TPopupTarget::get_scoring(TPopupTarget* this, int); // idb +void __thiscall TPopupTarget::put_scoring(TPopupTarget* this, int, int); // idb +void __thiscall TPopupTarget::Collision(TPopupTarget* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TPopupTarget* __thiscall TPopupTarget::TPopupTarget(TPopupTarget* this, struct TPinballTable* a2, int a3); + +void* TPopupTarget::`vftable` = &TPopupTarget::Message; // weak + #endif //PINBALL_TPOPUPTARGET_H diff --git a/Classes/TRamp/TRamp.cpp b/Classes/TRamp/TRamp.cpp index 711f02f..70c5a5d 100644 --- a/Classes/TRamp/TRamp.cpp +++ b/Classes/TRamp/TRamp.cpp @@ -188,7 +188,7 @@ float v88; // [esp+A4h] [ebp-4h] v3 = a3; v4 = this; TCollisionComponent::TCollisionComponent(this, a2, (int)a3, 0); -*(_DWORD *)v4 = &TRamp::`vftable'; +*(_DWORD *)v4 = &TRamp::`vftable`; *(_DWORD *)((char *)v4 + 6) = 0; *((_BYTE *)v4 + 4) = 1; loader_query_visual((int)v3, 0, &v73); @@ -590,4 +590,4 @@ v71 = v70; edges_insert_square(v86, v71, v69, v66, 0, (TRamp *)((char *)v4 + 94)); return v4; } -// 10026CC: using guessed type void *TRamp::`vftable'; +// 10026CC: using guessed type void *TRamp::`vftable`; diff --git a/Classes/TRamp/TRamp.h b/Classes/TRamp/TRamp.h index 0167707..b0705be 100644 --- a/Classes/TRamp/TRamp.h +++ b/Classes/TRamp/TRamp.h @@ -7,4 +7,15 @@ #include "../../pinball.h" +/* 113 */ +struct TRamp; + +int __thiscall TRamp::get_scoring(TRamp* this, int); // idb +void __thiscall TRamp::put_scoring(TRamp* this, int, int); // idb +void __thiscall TRamp::Collision(TRamp* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +int __thiscall TRamp::FieldEffect(TRamp* this, struct TBall*, struct vector_type*); // idb +TRamp* __thiscall TRamp::TRamp(TRamp* this, struct TPinballTable* a2, void* a3); + +void* TRamp::`vftable` = &TPinballComponent::Message; // weak + #endif //PINBALL_TRAMP_H diff --git a/Classes/TRollover/TRollover.cpp b/Classes/TRollover/TRollover.cpp index b7a9312..2654028 100644 --- a/Classes/TRollover/TRollover.cpp +++ b/Classes/TRollover/TRollover.cpp @@ -109,10 +109,10 @@ TRollover *v4; // esi v4 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, a4); -*(_DWORD *)v4 = &TRollover::`vftable'; +*(_DWORD *)v4 = &TRollover::`vftable`; return v4; } -// 1002614: using guessed type void *TRollover::`vftable'; +// 1002614: using guessed type void *TRollover::`vftable`; //----- (01019771) -------------------------------------------------------- TRollover *__thiscall TRollover::TRollover(TRollover *this, struct TPinballTable *a2, int a3) @@ -123,11 +123,11 @@ int v4; // eax v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 0); v4 = *(_DWORD *)((char *)v3 + 34); -*(_DWORD *)v3 = &TRollover::`vftable'; +*(_DWORD *)v3 = &TRollover::`vftable`; *((_BYTE *)v3 + 78) = 0; if ( v4 ) render_sprite_set_bitmap(*(_DWORD **)((char *)v3 + 26), *(_DWORD *)(*(_DWORD *)(v4 + 4) + 8)); TRollover::build_walls(v3, a3); return v3; } -// 1002614: using guessed type void *TRollover::`vftable'; +// 1002614: using guessed type void *TRollover::`vftable`; diff --git a/Classes/TRollover/TRollover.h b/Classes/TRollover/TRollover.h index 50039b8..1cf4d2e 100644 --- a/Classes/TRollover/TRollover.h +++ b/Classes/TRollover/TRollover.h @@ -7,4 +7,18 @@ #include "../../pinball.h" +/* 108 */ +struct TRollover; + +void __stdcall TRollover::TimerExpired(int, void*); // idb +int __thiscall TRollover::Message(TRollover* this, int, float); // idb +int __thiscall TRollover::get_scoring(TRollover* this, int); // idb +void __thiscall TRollover::put_scoring(TRollover* this, int, int); // idb +void __thiscall TRollover::build_walls(TRollover* this, int); // idb +void __thiscall TRollover::Collision(TRollover* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TRollover* __thiscall TRollover::TRollover(TRollover* this, struct TPinballTable* a2, int a3, int a4); +TRollover* __thiscall TRollover::TRollover(TRollover* this, struct TPinballTable* a2, int a3); + +void* TRollover::`vftable` = &TRollover::Message; // weak + #endif //PINBALL_TROLLOVER_H diff --git a/Classes/TSink/TSink.cpp b/Classes/TSink/TSink.cpp index 6d025a2..5a440a8 100644 --- a/Classes/TSink/TSink.cpp +++ b/Classes/TSink/TSink.cpp @@ -127,7 +127,7 @@ int v17; // [esp+48h] [ebp-Ch] v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 1); -*(_DWORD *)v3 = &TSink::`vftable'; +*(_DWORD *)v3 = &TSink::`vftable`; *(_DWORD *)((char *)v3 + 6) = 0; *(_DWORD *)((char *)v3 + 78) = 0; loader_query_visual(a3, 0, &v9); @@ -148,4 +148,4 @@ v7 = (_DWORD *)loader_query_float_attribute(a3, 0, 601); *(_DWORD *)((char *)v3 + 82) = *(_DWORD *)loader_query_float_attribute(a3, 0, 407); return v3; } -// 1002704: using guessed type void *TSink::`vftable'; +// 1002704: using guessed type void *TSink::`vftable`; diff --git a/Classes/TSink/TSink.h b/Classes/TSink/TSink.h index 80b62f6..5e3c2d8 100644 --- a/Classes/TSink/TSink.h +++ b/Classes/TSink/TSink.h @@ -7,4 +7,16 @@ #include "../../pinball.h" +/* 114 */ +struct TSink; + +void __stdcall TSink::TimerExpired(int, void*); // idb +int __thiscall TSink::Message(TSink* this, int, float); // idb +int __thiscall TSink::get_scoring(TSink* this, int); // idb +void __thiscall TSink::put_scoring(TSink* this, int, int); // idb +void __thiscall TSink::Collision(TSink* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TSink* __thiscall TSink::TSink(TSink* this, struct TPinballTable* a2, int a3); + +void* TSink::`vftable` = &TSink::Message; // weak + #endif //PINBALL_TSINK_H diff --git a/Classes/TSoloTarget/TSoloTarget.cpp b/Classes/TSoloTarget/TSoloTarget.cpp index 3aa5273..3a9d072 100644 --- a/Classes/TSoloTarget/TSoloTarget.cpp +++ b/Classes/TSoloTarget/TSoloTarget.cpp @@ -87,11 +87,11 @@ int v6; // [esp+40h] [ebp-10h] v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 1); *(_DWORD *)((char *)v3 + 82) = 0; -*(_DWORD *)v3 = &TSoloTarget::`vftable'; +*(_DWORD *)v3 = &TSoloTarget::`vftable`; *(_DWORD *)((char *)v3 + 86) = 1036831949; loader_query_visual(a3, 0, &v5); *(_DWORD *)((char *)v3 + 90) = v6; TSoloTarget::Message(v3, 50, 0.0); return v3; } -// 10025C0: using guessed type void *TSoloTarget::`vftable'; +// 10025C0: using guessed type void *TSoloTarget::`vftable`; diff --git a/Classes/TSoloTarget/TSoloTarget.h b/Classes/TSoloTarget/TSoloTarget.h index ab0b6e6..05c7800 100644 --- a/Classes/TSoloTarget/TSoloTarget.h +++ b/Classes/TSoloTarget/TSoloTarget.h @@ -7,4 +7,16 @@ #include "../../pinball.h" +/* 107 */ +struct TSoloTarget; + +void __stdcall TSoloTarget::TimerExpired(int, void*); // idb +int __thiscall TSoloTarget::Message(TSoloTarget* this, int, float); // idb +int __thiscall TSoloTarget::get_scoring(TSoloTarget* this, int); // idb +void __thiscall TSoloTarget::put_scoring(TSoloTarget* this, int, int); // idb +void __thiscall TSoloTarget::Collision(TSoloTarget* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TSoloTarget* __thiscall TSoloTarget::TSoloTarget(TSoloTarget* this, struct TPinballTable* a2, int a3); + +void* TSoloTarget::`vftable` = &TSoloTarget::Message; // weak + #endif //PINBALL_TSOLOTARGET_H diff --git a/Classes/TSound/TSound.cpp b/Classes/TSound/TSound.cpp index 0e5cf16..407fd51 100644 --- a/Classes/TSound/TSound.cpp +++ b/Classes/TSound/TSound.cpp @@ -31,10 +31,10 @@ int v6; // [esp+3Ch] [ebp-10h] v3 = this; TPinballComponent::TPinballComponent(this, a2, a3, 1); -*(_DWORD *)v3 = &TSound::`vftable'; +*(_DWORD *)v3 = &TSound::`vftable`; loader_query_visual(a3, 0, &v5); *(_DWORD *)((char *)v3 + 42) = v6; return v3; } -// 10027A4: using guessed type void *TSound::`vftable'; +// 10027A4: using guessed type void *TSound::`vftable`; diff --git a/Classes/TSound/TSound.h b/Classes/TSound/TSound.h index 18bacbe..56bcd45 100644 --- a/Classes/TSound/TSound.h +++ b/Classes/TSound/TSound.h @@ -5,4 +5,15 @@ #ifndef PINBALL_TSOUND_H #define PINBALL_TSOUND_H +#include "../../pinball.h" + +/* 132 */ +struct TSound; + +TSound* __thiscall TSound::`vector deleting destructor`(TSound *this, char a2); +double __thiscall TSound::Play(TSound* this); +TSound* __thiscall TSound::TSound(TSound* this, struct TPinballTable* a2, int a3); + +void* TSound::`vftable` = &TPinballComponent::Message; // weak + #endif //PINBALL_TSOUND_H diff --git a/Classes/TTableLayer/TTableLayer.cpp b/Classes/TTableLayer/TTableLayer.cpp index 79f504c..621e564 100644 --- a/Classes/TTableLayer/TTableLayer.cpp +++ b/Classes/TTableLayer/TTableLayer.cpp @@ -70,7 +70,7 @@ struct TPinballTable *v46; // [esp+88h] [ebp+8h] v2 = a2; v3 = this; TCollisionComponent::TCollisionComponent(this, a2, -1, 0); -*(_DWORD *)v3 = &TTableLayer::`vftable'; +*(_DWORD *)v3 = &TTableLayer::`vftable`; v45 = (struct TPinballTable *)loader_query_handle("table"); loader_query_visual((int)v45, 0, &v30); v4 = (float *)loader_query_float_attribute((int)v45, 0, 700); @@ -230,7 +230,7 @@ v26, (TTableLayer *)((char *)v3 + 114)); return v3; } -// 100276C: using guessed type void *TTableLayer::`vftable'; +// 100276C: using guessed type void *TTableLayer::`vftable`; //----- (0101A928) -------------------------------------------------------- TZmapList *__thiscall TTableLayer::~TTableLayer(TTableLayer *this) @@ -238,12 +238,12 @@ TZmapList *__thiscall TTableLayer::~TTableLayer(TTableLayer *this) TCollisionComponent *v1; // esi v1 = this; -*(_DWORD *)this = &TTableLayer::`vftable'; +*(_DWORD *)this = &TTableLayer::`vftable`; if ( edge_manager ) TEdgeManager::`scalar deleting destructor`(edge_manager, 1); return TCollisionComponent::~TCollisionComponent(v1); } -// 100276C: using guessed type void *TTableLayer::`vftable'; +// 100276C: using guessed type void *TTableLayer::`vftable`; //----- (0101AACD) -------------------------------------------------------- TTableLayer *__thiscall TTableLayer::`scalar deleting destructor`(TTableLayer *this, char a2) diff --git a/Classes/TTableLayer/TTableLayer.h b/Classes/TTableLayer/TTableLayer.h index 0386f9f..c62d4c4 100644 --- a/Classes/TTableLayer/TTableLayer.h +++ b/Classes/TTableLayer/TTableLayer.h @@ -7,4 +7,14 @@ #include "../../pinball.h" +/* 116 */ +struct TTableLayer; + +int __thiscall TTableLayer::FieldEffect(TTableLayer* this, struct TBall*, struct vector_type*); // idb +TTableLayer* __thiscall TTableLayer::TTableLayer(TTableLayer* this, struct TPinballTable* a2); +TZmapList* __thiscall TTableLayer::~TTableLayer(TTableLayer* this); +TTableLayer* __thiscall TTableLayer::`scalar deleting destructor`(TTableLayer* this, char a2); + +void* TTableLayer::`vftable` = &TPinballComponent::Message; // weak + #endif //PINBALL_TTABLELAYER_H diff --git a/Classes/TTextBox/TTextBox.cpp b/Classes/TTextBox/TTextBox.cpp index 20ce600..1a1e79c 100644 --- a/Classes/TTextBox/TTextBox.cpp +++ b/Classes/TTextBox/TTextBox.cpp @@ -14,7 +14,7 @@ v3 = this; TPinballComponent::TPinballComponent(this, a2, a3, 1); v4 = a3 == 0; v5 = a3 < 0; -*(_DWORD *)v3 = &TTextBox::`vftable'; +*(_DWORD *)v3 = &TTextBox::`vftable`; *(_DWORD *)((char *)v3 + 42) = 0; *(_DWORD *)((char *)v3 + 46) = 0; *(_DWORD *)((char *)v3 + 50) = 0; @@ -38,7 +38,7 @@ v8 = *v6; } return v3; } -// 10023B4: using guessed type void *TTextBox::`vftable'; +// 10023B4: using guessed type void *TTextBox::`vftable`; // 10253C4: using guessed type struct score_msg_font_type *score_msg_fontp; //----- (01014143) -------------------------------------------------------- @@ -124,7 +124,7 @@ int v4; // edi v1 = this; v2 = *(_DWORD *)((char *)this + 58); -*(_DWORD *)this = &TTextBox::`vftable'; +*(_DWORD *)this = &TTextBox::`vftable`; if ( v2 ) { if ( v2 != -1 ) @@ -145,7 +145,7 @@ while ( v4 ); } return TPinballComponent::~TPinballComponent(v1); } -// 10023B4: using guessed type void *TTextBox::`vftable'; +// 10023B4: using guessed type void *TTextBox::`vftable`; //----- (01014269) -------------------------------------------------------- void __usercall TTextBox::Draw(TTextBox *this@, int a2@) diff --git a/Classes/TTextBox/TTextbox.h b/Classes/TTextBox/TTextbox.h index 831a987..8084f9b 100644 --- a/Classes/TTextBox/TTextbox.h +++ b/Classes/TTextBox/TTextbox.h @@ -7,4 +7,18 @@ #include "../../pinball.h" +/* 119 */ +struct TTextBox; + +TTextBox* __thiscall TTextBox::TTextBox(TTextBox* this, struct TPinballTable* a2, int a3); +// void __usercall TTextBox::Clear(TTextBox *this@, int a2@); +// void __userpurge TTextBox::TimerExpired(int a1@, int a2, TTextBox *a3); +TZmapList* __thiscall TTextBox::~TTextBox(TTextBox* this); +// void __usercall TTextBox::Draw(TTextBox *this@, int a2@); +// void __userpurge TTextBox::Display(TTextBox *this@, int a2@, char *a3, float a4); +TTextBox* __thiscall TTextBox::`scalar deleting destructor`(TTextBox *this, char a2); +int __stdcall TTextBox::Message(int a2, float a3); + +void* TTextBox::`vftable` = &TTextBox::Message; // weak + #endif //PINBALL_TTEXTBOX_H diff --git a/Classes/TTextBoxMessage/TTextBoxMessage.h b/Classes/TTextBoxMessage/TTextBoxMessage.h index c6bbafd..d57ac90 100644 --- a/Classes/TTextBoxMessage/TTextBoxMessage.h +++ b/Classes/TTextBoxMessage/TTextBoxMessage.h @@ -7,4 +7,13 @@ #include "../../pinball.h" +/* 97 */ +struct TTextBoxMessage; + +TTextBoxMessage* __thiscall TTextBoxMessage::TTextBoxMessage(TTextBoxMessage* this, char* a2, float a3); +double __thiscall TTextBoxMessage::TimeLeft(TTextBoxMessage* this); +void __thiscall TTextBoxMessage::Refresh(TTextBoxMessage* this, float); // idb +TTextBoxMessage* __thiscall TTextBoxMessage::`scalar deleting destructor`(TTextBoxMessage* this, char a2); + + #endif //PINBALL_TTEXTBOXMESSAGE_H diff --git a/Classes/TTimer/TTimer.cpp b/Classes/TTimer/TTimer.cpp index 9082c13..959d4e9 100644 --- a/Classes/TTimer/TTimer.cpp +++ b/Classes/TTimer/TTimer.cpp @@ -38,7 +38,7 @@ TTimer *v3; // esi v3 = this; TPinballComponent::TPinballComponent(this, a2, a3, 1); *(_DWORD *)((char *)v3 + 42) = 0; -*(_DWORD *)v3 = &TTimer::`vftable'; +*(_DWORD *)v3 = &TTimer::`vftable`; return v3; } -// 10027BC: using guessed type void *TTimer::`vftable'; +// 10027BC: using guessed type void *TTimer::`vftable`; diff --git a/Classes/TTimer/TTimer.h b/Classes/TTimer/TTimer.h index a1f46a5..6d44067 100644 --- a/Classes/TTimer/TTimer.h +++ b/Classes/TTimer/TTimer.h @@ -7,4 +7,13 @@ #include "../../pinball.h" +/* 129 */ +struct TTimer; + +void __stdcall TTimer::TimerExpired(int, struct TPinballComponent*); // idb +int __thiscall TTimer::Message(TTimer* this, int, float); // idb +TTimer* __thiscall TTimer::TTimer(TTimer* this, struct TPinballTable* a2, int a3); + +void* TTimer::`vftable` = &TTimer::Message; // weak + #endif //PINBALL_TTIMER_H diff --git a/Classes/TTripwire/TTripwire.cpp b/Classes/TTripwire/TTripwire.cpp index 7ff0836..3f082b7 100644 --- a/Classes/TTripwire/TTripwire.cpp +++ b/Classes/TTripwire/TTripwire.cpp @@ -26,7 +26,7 @@ TTripwire *v3; // esi v3 = this; TRollover::TRollover(this, a2, a3, 1); -*(_DWORD *)v3 = &TTripwire::`vftable'; +*(_DWORD *)v3 = &TTripwire::`vftable`; return v3; } -// 100264C: using guessed type void *TTripwire::`vftable'; +// 100264C: using guessed type void *TTripwire::`vftable`; diff --git a/Classes/TTripwire/TTripwire.h b/Classes/TTripwire/TTripwire.h index 37476b1..345b593 100644 --- a/Classes/TTripwire/TTripwire.h +++ b/Classes/TTripwire/TTripwire.h @@ -7,4 +7,12 @@ #include "../../pinball.h" +/* 131 */ +struct TTripwire; + +void __thiscall TTripwire::Collision(TTripwire* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TTripwire* __thiscall TTripwire::TTripwire(TTripwire* this, struct TPinballTable* a2, int a3); + +void* TTripwire::`vftable` = &TRollover::Message; // weak + #endif //PINBALL_TTRIPWIRE_H diff --git a/Classes/TWall/TWall.cpp b/Classes/TWall/TWall.cpp index f87789b..ea0d7ea 100644 --- a/Classes/TWall/TWall.cpp +++ b/Classes/TWall/TWall.cpp @@ -68,7 +68,7 @@ int v5; // eax v3 = this; TCollisionComponent::TCollisionComponent(this, a2, a3, 1); v4 = *(_DWORD **)((char *)v3 + 26); -*(_DWORD *)v3 = &TWall::`vftable'; +*(_DWORD *)v3 = &TWall::`vftable`; if ( v4 ) render_sprite_set_bitmap(v4, 0); v5 = *(_DWORD *)((char *)v3 + 34); @@ -77,5 +77,5 @@ if ( v5 ) *(_DWORD *)((char *)v3 + 78) = 0; return v3; } -// 1002508: using guessed type void *TWall::`vftable'; +// 1002508: using guessed type void *TWall::`vftable`; diff --git a/Classes/TWall/TWall.h b/Classes/TWall/TWall.h index 8a1862c..b2367b0 100644 --- a/Classes/TWall/TWall.h +++ b/Classes/TWall/TWall.h @@ -7,4 +7,16 @@ #include "../../pinball.h" +/* 102 */ +struct TWall; + +void __stdcall TWall::TimerExpired(int, void*); // idb +int __thiscall TWall::Message(TWall* this, int, float); // idb +int __thiscall TWall::get_scoring(TWall* this, int); // idb +void __thiscall TWall::put_scoring(TWall* this, int, int); // idb +void __thiscall TWall::Collision(TWall* this, struct TBall*, struct vector_type*, struct vector_type*, float, struct TEdgeSegment*); // idb +TWall* __thiscall TWall::TWall(TWall* this, struct TPinballTable* a2, int a3); + +void* TWall::`vftable` = &TWall::Message; // weak + #endif //PINBALL_TWALL_H diff --git a/Classes/TZmapList/TZmaplist.h b/Classes/TZmapList/TZmaplist.h index ea725a2..703bad6 100644 --- a/Classes/TZmapList/TZmaplist.h +++ b/Classes/TZmapList/TZmaplist.h @@ -7,4 +7,10 @@ #include "../../pinball.h" +/* 126 */ +struct TZmapList; + +TZmapList* __thiscall TZmapList::`scalar deleting destructor`(TZmapList* this, char a2); +TZmapList* __thiscall TZmapList::TZmapList(TZmapList* this, int a2, int a3); + #endif //PINBALL_TZMAPLIST_H diff --git a/Classes/TlightGroup/TLightGroup.cpp b/Classes/TlightGroup/TLightGroup.cpp index 22cab9b..b77cd0e 100644 --- a/Classes/TlightGroup/TLightGroup.cpp +++ b/Classes/TlightGroup/TLightGroup.cpp @@ -767,7 +767,7 @@ int i; // [esp+1Ch] [ebp+Ch] v3 = this; TPinballComponent::TPinballComponent(this, a2, a3, 0); -*(_DWORD *)v3 = &TLightGroup::`vftable'; +*(_DWORD *)v3 = &TLightGroup::`vftable`; objlist_class::objlist_class((TLightGroup *)((char *)v3 + 42), 4, 4); *(_DWORD *)((char *)v3 + 70) = 0; *(_DWORD *)((char *)v3 + 66) = 0; @@ -786,7 +786,7 @@ objlist_class::Add((TLightGroup *)((char *)v3 + 42), (void *)v5); } return v3; } -// 1001A60: using guessed type void *TLightGroup::`vftable'; +// 1001A60: using guessed type void *TLightGroup::`vftable`; //----- (0100AE4C) -------------------------------------------------------- TLightGroup *__thiscall TLightGroup::`vector deleting destructor'(TLightGroup *this, char a2) diff --git a/Classes/TlightGroup/TLightGroup.h b/Classes/TlightGroup/TLightGroup.h index 1380363..31f5ec1 100644 --- a/Classes/TlightGroup/TLightGroup.h +++ b/Classes/TlightGroup/TLightGroup.h @@ -5,4 +5,21 @@ #ifndef PINBALL_TLIGHTGROUP_H #define PINBALL_TLIGHTGROUP_H +/* 93 */ +struct TLightGroup; + +TZmapList* __thiscall TLightGroup::~TLightGroup(TLightGroup* this); +void __thiscall TLightGroup::Reset(TLightGroup* __hidden this); // idb +void __stdcall TLightGroup::TimerExpired(int, void*); // idb +void __thiscall TLightGroup::reschedule_animation(TLightGroup* this, float); // idb +int __thiscall TLightGroup::next_light_up(TLightGroup* __hidden this); // idb +int __thiscall TLightGroup::next_light_down(TLightGroup* __hidden this); // idb +void __thiscall TLightGroup::start_animation(TLightGroup* __hidden this); // idb +void __stdcall TLightGroup::NotifyTimerExpired(int, void*); // idb +int __thiscall TLightGroup::Message(TLightGroup* this, int, float); // idb +TLightGroup* __thiscall TLightGroup::TLightGroup(TLightGroup* this, struct TPinballTable* a2, int a3); +TLightGroup* __thiscall TLightGroup::`vector deleting destructor`(TLightGroup *this, char a2); + +void* TLightGroup::`vftable` = &TLightGroup::Message; // weak + #endif //PINBALL_TLIGHTGROUP_H diff --git a/pinball.h b/pinball.h index ebcabf1..1ba247b 100644 --- a/pinball.h +++ b/pinball.h @@ -3,6 +3,14 @@ // #include "Classes/classes.h" +#include +#include +#include +#include +#include +#include +#include + #ifndef PINBALL_PINBALL_H #define PINBALL_PINBALL_H @@ -13,972 +21,11 @@ the type library 'pinball' */ -#define __int8 char -#define __int16 short -#define __int32 int -#define __int64 long long - -struct _GUID; -struct _devicemodeA; -struct tagLOGPALETTE; -struct tagWNDCLASSA; -struct HWND__; -struct HINSTANCE__; -struct HICON__; -struct HBRUSH__; -struct HDC__; -struct tagMSG; -struct tagINITCOMMONCONTROLSEX; -union _LARGE_INTEGER; -struct _EXCEPTION_RECORD; -struct _CONTEXT; -struct tWAVEFORMATEX; -struct HTASK__; -struct HMMIO__; - -/* 1 */ -typedef _GUID GUID; - -/* 2 */ -struct _GUID -{ - unsigned int Data1; - unsigned __int16 Data2; - unsigned __int16 Data3; - unsigned __int8 Data4[8]; -}; - -/* 3 */ -struct _SCOPETABLE_ENTRY -{ - int EnclosingLevel; - void *FilterFunc; - void *HandlerFunc; -}; - -/* 4 */ -typedef struct _SCOPETABLE_ENTRY *PSCOPETABLE_ENTRY; - -/* 64 */ -typedef void *PVOID; - -/* 15 */ -typedef unsigned int DWORD; - -/* 5 */ -struct _EH3_EXCEPTION_REGISTRATION -{ - struct _EH3_EXCEPTION_REGISTRATION *Next; - PVOID ExceptionHandler; - PSCOPETABLE_ENTRY ScopeTable; - DWORD TryLevel; -}; - -/* 6 */ -typedef struct _EH3_EXCEPTION_REGISTRATION EH3_EXCEPTION_REGISTRATION; - -/* 7 */ -typedef struct _EH3_EXCEPTION_REGISTRATION *PEH3_EXCEPTION_REGISTRATION; - -/* 8 */ -struct CPPEH_RECORD -{ - DWORD old_esp; - EXCEPTION_POINTERS *exc_ptr; - struct _EH3_EXCEPTION_REGISTRATION registration; -}; - -/* 10 */ -typedef int LONG; - -/* 9 */ -struct tagRECT -{ - LONG left; - LONG top; - LONG right; - LONG bottom; -}; - -/* 11 */ -typedef _devicemodeA DEVMODEA; - -/* 13 */ -typedef unsigned __int8 BYTE; - -/* 14 */ -typedef unsigned __int16 WORD; - -/* 17 */ -struct _devicemodeA::$1DE029518E5B112A14BB6E76DECCA4C4::$5ACE225D4D14CE0550A9F5A217E306C5 -{ - __int16 dmOrientation; - __int16 dmPaperSize; - __int16 dmPaperLength; - __int16 dmPaperWidth; -}; - -/* 19 */ -struct _POINTL -{ - LONG x; - LONG y; -}; - -/* 18 */ -typedef _POINTL POINTL; - -/* 16 */ -union _devicemodeA::$1DE029518E5B112A14BB6E76DECCA4C4 -{ - struct - { - __int16 dmOrientation; - __int16 dmPaperSize; - __int16 dmPaperLength; - __int16 dmPaperWidth; - }; - POINTL dmPosition; -}; - -/* 12 */ -struct _devicemodeA -{ - BYTE dmDeviceName[32]; - WORD dmSpecVersion; - WORD dmDriverVersion; - WORD dmSize; - WORD dmDriverExtra; - DWORD dmFields; - union - { - struct - { - __int16 dmOrientation; - __int16 dmPaperSize; - __int16 dmPaperLength; - __int16 dmPaperWidth; - }; - POINTL dmPosition; - }; - __int16 dmScale; - __int16 dmCopies; - __int16 dmDefaultSource; - __int16 dmPrintQuality; - __int16 dmColor; - __int16 dmDuplex; - __int16 dmYResolution; - __int16 dmTTOption; - __int16 dmCollate; - BYTE dmFormName[32]; - WORD dmLogPixels; - DWORD dmBitsPerPel; - DWORD dmPelsWidth; - DWORD dmPelsHeight; - DWORD dmDisplayFlags; - DWORD dmDisplayFrequency; - DWORD dmICMMethod; - DWORD dmICMIntent; - DWORD dmMediaType; - DWORD dmDitherType; - DWORD dmReserved1; - DWORD dmReserved2; - DWORD dmPanningWidth; - DWORD dmPanningHeight; -}; - -/* 20 */ -typedef tagRECT RECT; - -/* 21 */ -struct tagPALETTEENTRY -{ - BYTE peRed; - BYTE peGreen; - BYTE peBlue; - BYTE peFlags; -}; - -/* 22 */ -typedef tagLOGPALETTE LOGPALETTE; - -/* 24 */ -typedef tagPALETTEENTRY PALETTEENTRY; - -/* 23 */ -struct tagLOGPALETTE -{ - WORD palVersion; - WORD palNumEntries; - PALETTEENTRY palPalEntry[1]; -}; - -/* 26 */ -typedef char CHAR; - -/* 25 */ -struct _OFSTRUCT -{ - BYTE cBytes; - BYTE fFixedDisk; - WORD nErrCode; - WORD Reserved1; - WORD Reserved2; - CHAR szPathName[128]; -}; - -/* 27 */ -typedef tagWNDCLASSA WNDCLASSA; - -/* 29 */ -typedef unsigned int UINT; - -/* 35 */ -typedef LONG LRESULT; - -/* 31 */ -typedef HWND__ *HWND; - -/* 33 */ -typedef UINT WPARAM; - -/* 34 */ -typedef LONG LPARAM; - -/* 30 */ -typedef LRESULT (__stdcall *WNDPROC)(HWND, UINT, WPARAM, LPARAM); - -/* 36 */ -typedef HINSTANCE__ *HINSTANCE; - -/* 38 */ -typedef HICON__ *HICON; - -/* 40 */ -typedef HICON HCURSOR; - -/* 41 */ -typedef HBRUSH__ *HBRUSH; - -/* 43 */ -typedef const CHAR *LPCSTR; - -/* 28 */ -struct tagWNDCLASSA -{ - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HINSTANCE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCSTR lpszMenuName; - LPCSTR lpszClassName; -}; - -/* 32 */ -struct HWND__ -{ - int unused; -}; - -/* 37 */ -struct HINSTANCE__ -{ - int unused; -}; - -/* 39 */ -struct HICON__ -{ - int unused; -}; - -/* 42 */ -struct HBRUSH__ -{ - int unused; -}; - -/* 45 */ -typedef HDC__ *HDC; - -/* 47 */ -typedef int BOOL; - -/* 44 */ -struct tagPAINTSTRUCT -{ - HDC hdc; - BOOL fErase; - RECT rcPaint; - BOOL fRestore; - BOOL fIncUpdate; - BYTE rgbReserved[32]; -}; - -/* 46 */ -struct HDC__ -{ - int unused; -}; - -/* 48 */ -typedef tagPAINTSTRUCT PAINTSTRUCT; - -/* 49 */ -typedef tagMSG MSG; - -/* 52 */ -struct tagPOINT -{ - LONG x; - LONG y; -}; - -/* 51 */ -typedef tagPOINT POINT; - -/* 50 */ -struct tagMSG -{ - HWND hwnd; - UINT message; - WPARAM wParam; - LPARAM lParam; - DWORD time; - POINT pt; -}; - -/* 53 */ -typedef tagINITCOMMONCONTROLSEX INITCOMMONCONTROLSEX; - -/* 54 */ -#pragma pack(push, 1) -struct tagINITCOMMONCONTROLSEX -{ - DWORD dwSize; - DWORD dwICC; -}; -#pragma pack(pop) - -/* 55 */ -struct _FILETIME -{ - DWORD dwLowDateTime; - DWORD dwHighDateTime; -}; - -/* 56 */ -typedef _LARGE_INTEGER LARGE_INTEGER; - -/* 58 */ -struct _LARGE_INTEGER::$837407842DC9087486FDFA5FEB63B74E -{ - DWORD LowPart; - LONG HighPart; -}; - -/* 59 */ -typedef __int64 LONGLONG; - -/* 57 */ -union _LARGE_INTEGER -{ - struct - { - DWORD LowPart; - LONG HighPart; - }; - _LARGE_INTEGER::$837407842DC9087486FDFA5FEB63B74E u; - LONGLONG QuadPart; -}; - -/* 62 */ -typedef _EXCEPTION_RECORD EXCEPTION_RECORD; - -/* 61 */ -typedef EXCEPTION_RECORD *PEXCEPTION_RECORD; - -/* 67 */ -typedef _CONTEXT CONTEXT; - -/* 66 */ -typedef CONTEXT *PCONTEXT; - -/* 60 */ -struct _EXCEPTION_POINTERS -{ - PEXCEPTION_RECORD ExceptionRecord; - PCONTEXT ContextRecord; -}; - -/* 65 */ -typedef unsigned int UINT_PTR; - -/* 63 */ -struct _EXCEPTION_RECORD -{ - DWORD ExceptionCode; - DWORD ExceptionFlags; - _EXCEPTION_RECORD *ExceptionRecord; - PVOID ExceptionAddress; - DWORD NumberParameters; - UINT_PTR ExceptionInformation[15]; -}; - -/* 70 */ -struct _FLOATING_SAVE_AREA -{ - DWORD ControlWord; - DWORD StatusWord; - DWORD TagWord; - DWORD ErrorOffset; - DWORD ErrorSelector; - DWORD DataOffset; - DWORD DataSelector; - BYTE RegisterArea[80]; - DWORD Cr0NpxState; -}; - -/* 69 */ -typedef _FLOATING_SAVE_AREA FLOATING_SAVE_AREA; - -/* 68 */ -struct _CONTEXT -{ - DWORD ContextFlags; - DWORD Dr0; - DWORD Dr1; - DWORD Dr2; - DWORD Dr3; - DWORD Dr6; - DWORD Dr7; - FLOATING_SAVE_AREA FloatSave; - DWORD SegGs; - DWORD SegFs; - DWORD SegEs; - DWORD SegDs; - DWORD Edi; - DWORD Esi; - DWORD Ebx; - DWORD Edx; - DWORD Ecx; - DWORD Eax; - DWORD Ebp; - DWORD Eip; - DWORD SegCs; - DWORD EFlags; - DWORD Esp; - DWORD SegSs; - BYTE ExtendedRegisters[512]; -}; - -/* 72 */ -typedef UINT MMVERSION; - -/* 71 */ -#pragma pack(push, 1) -struct tagWAVEOUTCAPSA -{ - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[32]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; -}; -#pragma pack(pop) - -/* 75 */ -#pragma pack(push, 1) -struct mmtime_tag::$532DCF0E9B9A2B0A020BD11490F25514::$2498AB4F57B5A5935D3AAA9956C218FB -{ - BYTE hour; - BYTE min; - BYTE sec; - BYTE frame; - BYTE fps; - BYTE dummy; - BYTE pad[2]; -}; -#pragma pack(pop) - -/* 76 */ -#pragma pack(push, 1) -struct mmtime_tag::$532DCF0E9B9A2B0A020BD11490F25514::$B7A2B1CE967584EBB3840978181CF21D -{ - DWORD songptrpos; -}; -#pragma pack(pop) - -/* 74 */ -#pragma pack(push, 1) -union mmtime_tag::$532DCF0E9B9A2B0A020BD11490F25514 -{ - DWORD ms; - DWORD sample; - DWORD cb; - DWORD ticks; - mmtime_tag::$532DCF0E9B9A2B0A020BD11490F25514::$2498AB4F57B5A5935D3AAA9956C218FB smpte; - mmtime_tag::$532DCF0E9B9A2B0A020BD11490F25514::$B7A2B1CE967584EBB3840978181CF21D midi; -}; -#pragma pack(pop) - -/* 73 */ -#pragma pack(push, 1) -struct mmtime_tag -{ - UINT wType; - mmtime_tag::$532DCF0E9B9A2B0A020BD11490F25514 u; -}; -#pragma pack(pop) - -/* 77 */ -typedef tWAVEFORMATEX WAVEFORMATEX; - -/* 78 */ -#pragma pack(push, 1) -struct tWAVEFORMATEX -{ - WORD wFormatTag; - WORD nChannels; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; - WORD wBitsPerSample; - WORD cbSize; -}; -#pragma pack(pop) - -/* 80 */ -typedef DWORD FOURCC; - -/* 83 */ -typedef CHAR *LPSTR; - -/* 82 */ -typedef LRESULT __stdcall MMIOPROC(LPSTR lpmmioinfo, UINT uMsg, LPARAM lParam1, LPARAM lParam2); - -/* 81 */ -typedef MMIOPROC *LPMMIOPROC; - -/* 84 */ -typedef HTASK__ *HTASK; - -/* 86 */ -typedef char *HPSTR; - -/* 87 */ -typedef HMMIO__ *HMMIO; - -/* 79 */ -#pragma pack(push, 1) -struct _MMIOINFO -{ - DWORD dwFlags; - FOURCC fccIOProc; - LPMMIOPROC pIOProc; - UINT wErrorRet; - HTASK htask; - LONG cchBuffer; - HPSTR pchBuffer; - HPSTR pchNext; - HPSTR pchEndRead; - HPSTR pchEndWrite; - LONG lBufOffset; - LONG lDiskOffset; - DWORD adwInfo[3]; - DWORD dwReserved1; - DWORD dwReserved2; - HMMIO hmmio; -}; -#pragma pack(pop) - -/* 85 */ -struct HTASK__ -{ - int unused; -}; - -/* 88 */ -#pragma pack(push, 1) -struct HMMIO__ -{ - int unused; -}; -#pragma pack(pop) - -/* 89 */ -#pragma pack(push, 1) -struct _MMCKINFO -{ - FOURCC ckid; - DWORD cksize; - FOURCC fccType; - DWORD dwDataOffset; - DWORD dwFlags; -}; -#pragma pack(pop) - -/* 91 */ -typedef BYTE *LPBYTE; - -/* 92 */ -typedef void *HANDLE; - -/* 90 */ -struct _STARTUPINFOA -{ - DWORD cb; - LPSTR lpReserved; - LPSTR lpDesktop; - LPSTR lpTitle; - DWORD dwX; - DWORD dwY; - DWORD dwXSize; - DWORD dwYSize; - DWORD dwXCountChars; - DWORD dwYCountChars; - DWORD dwFillAttribute; - DWORD dwFlags; - WORD wShowWindow; - WORD cbReserved2; - LPBYTE lpReserved2; - HANDLE hStdInput; - HANDLE hStdOutput; - HANDLE hStdError; -}; - -/* 93 */ -struct TLightGroup; - -/* 94 */ -struct TLightBargraph; - -/* 95 */ -struct TBall; - -/* 96 */ -struct TEdgeManager; - -/* 97 */ -struct TTextBoxMessage; - -/* 98 */ -struct TEdgeSegment; - -/* 99 */ -struct TCircle; - -/* 100 */ -struct TPinballComponent; - -/* 101 */ -struct TCollisionComponent; - -/* 102 */ -struct TWall; - -/* 103 */ -struct TOneway; - -/* 104 */ -struct TBumper; - -/* 105 */ -struct TFlagSpinner; - -/* 106 */ -struct TPopupTarget; - -/* 107 */ -struct TSoloTarget; - -/* 108 */ -struct TRollover; - -/* 109 */ -struct TLightRollover; - -/* 110 */ -struct TKickback; - -/* 111 */ -struct TKickout; - -/* 112 */ -struct THole; - -/* 113 */ -struct TRamp; - -/* 114 */ -struct TSink; - -/* 115 */ -struct TDrain; - -/* 116 */ -struct TTableLayer; - -/* 117 */ -struct TPinballTable; - -/* 118 */ -struct TPlunger; - -/* 119 */ -struct TTextBox; - -/* 120 */ -struct TFlipperEdge; - -/* 121 */ -struct TFlipper; - -/* 122 */ -struct TLine; - -/* 123 */ -struct objlist_class; - -/* 124 */ -struct TLight; - -/* 125 */ -struct TEdgeBox; - -/* 126 */ -struct TZmapList; - -/* 127 */ -struct TComponentGroup; - -/* 128 */ -struct TDemo; - -/* 129 */ -struct TTimer; - -/* 130 */ -struct TBlocker; - -/* 131 */ -struct TTripwire; - -/* 132 */ -struct TSound; - -/* 133 */ -struct TGate; - - //------------------------------------------------------------------------- // Function declarations #define __thiscall __cdecl // Test compile in C mode -// LSTATUS __stdcall RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult); -// LSTATUS __stdcall RegOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult); -// LSTATUS __stdcall RegCloseKey(HKEY hKey); -// LSTATUS __stdcall RegQueryValueExA(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData); -// LSTATUS __stdcall RegCreateKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD Reserved, LPSTR lpClass, DWORD dwOptions, REGSAM samDesired, const LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition); -// LSTATUS __stdcall RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, const BYTE *lpData, DWORD cbData); -// LSTATUS __stdcall RegQueryValueA(HKEY hKey, LPCSTR lpSubKey, LPSTR lpData, PLONG lpcbData); -// BOOL __stdcall InitCommonControlsEx(const INITCOMMONCONTROLSEX *picce); -// UINT __stdcall RealizePalette(HDC hdc); -// HPALETTE __stdcall SelectPalette(HDC hdc, HPALETTE hPal, BOOL bForceBkgd); -// HDC __stdcall CreateCompatibleDC(HDC hdc); -// int __stdcall GetObjectA(HANDLE h, int c, LPVOID pv); -// HGDIOBJ __stdcall GetStockObject(int i); -// HBITMAP __stdcall CreateDIBitmap(HDC hdc, const BITMAPINFOHEADER *pbmih, DWORD flInit, const void *pjBits, const BITMAPINFO *pbmi, UINT iUsage); -// UINT __stdcall GetPaletteEntries(HPALETTE hpal, UINT iStart, UINT cEntries, LPPALETTEENTRY pPalEntries); -// BOOL __stdcall DeleteDC(HDC hdc); -// UINT __stdcall SetPaletteEntries(HPALETTE hpal, UINT iStart, UINT cEntries, const PALETTEENTRY *pPalEntries); -// BOOL __stdcall ResizePalette(HPALETTE hpal, UINT n); -// UINT __stdcall GetSystemPaletteEntries(HDC hdc, UINT iStart, UINT cEntries, LPPALETTEENTRY pPalEntries); -// UINT __stdcall SetSystemPaletteUse(HDC hdc, UINT use); -// int __stdcall GetDeviceCaps(HDC hdc, int index); -// HBITMAP __stdcall CreateCompatibleBitmap(HDC hdc, int cx, int cy); -// BOOL __stdcall BitBlt(HDC hdc, int x, int y, int cx, int cy, HDC hdcSrc, int x1, int y1, DWORD rop); -// HPALETTE __stdcall CreatePalette(const LOGPALETTE *plpal); -// HBRUSH __stdcall CreateSolidBrush(COLORREF color); -// HGDIOBJ __stdcall SelectObject(HDC hdc, HGDIOBJ h); -// BOOL __stdcall DeleteObject(HGDIOBJ ho); -// int __stdcall SetBkMode(HDC hdc, int mode); -// COLORREF __stdcall SetTextColor(HDC hdc, COLORREF color); -// DWORD __stdcall GetLayout(HDC hdc); -// int __stdcall StretchDIBits(HDC hdc, int xDest, int yDest, int DestWidth, int DestHeight, int xSrc, int ySrc, int SrcWidth, int SrcHeight, const void *lpBits, const BITMAPINFO *lpbmi, UINT iUsage, DWORD rop); -// DWORD __stdcall SetLayout(HDC hdc, DWORD l); -// BOOL __stdcall TerminateProcess(HANDLE hProcess, UINT uExitCode); -// void __stdcall GetStartupInfoA(LPSTARTUPINFOA lpStartupInfo); -// UINT __stdcall GetPrivateProfileIntA(LPCSTR lpAppName, LPCSTR lpKeyName, INT nDefault, LPCSTR lpFileName); -// BOOL __stdcall WritePrivateProfileStringA(LPCSTR lpAppName, LPCSTR lpKeyName, LPCSTR lpString, LPCSTR lpFileName); -// DWORD __stdcall SizeofResource(HMODULE hModule, HRSRC hResInfo); -// DWORD __stdcall GetVersion(); -// HMODULE __stdcall LoadLibraryA(LPCSTR lpLibFileName); -// FARPROC __stdcall GetProcAddress(HMODULE hModule, LPCSTR lpProcName); -// LPTOP_LEVEL_EXCEPTION_FILTER __stdcall SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter); -// LONG __stdcall UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo); -// HANDLE __stdcall GetCurrentProcess(); -// BOOL __stdcall FreeResource(HGLOBAL hResData); -// void __stdcall GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime); -// DWORD __stdcall GetCurrentProcessId(); -// DWORD __stdcall GetCurrentThreadId(); -// DWORD __stdcall GetTickCount(); -// BOOL __stdcall QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount); -// HFILE __stdcall _lopen(LPCSTR lpPathName, int iReadWrite); -// void __stdcall Sleep(DWORD dwMilliseconds); -// UINT __stdcall WinExec(LPCSTR lpCmdLine, UINT uCmdShow); -// HANDLE __stdcall GetCurrentThread(); -// BOOL __stdcall SetThreadPriority(HANDLE hThread, int nPriority); -// DWORD __stdcall GetModuleFileNameA(HMODULE hModule, LPSTR lpFilename, DWORD nSize); -// DWORD __stdcall GetLastError(); -// int __stdcall lstrcmpA(LPCSTR lpString1, LPCSTR lpString2); -// HMODULE __stdcall GetModuleHandleA(LPCSTR lpModuleName); -// HRSRC __stdcall FindResourceA(HMODULE hModule, LPCSTR lpName, LPCSTR lpType); -// HGLOBAL __stdcall LoadResource(HMODULE hModule, HRSRC hResInfo); -// LPVOID __stdcall LockResource(HGLOBAL hResData); -// int __stdcall _hread(HFILE hFile, LPVOID lpBuffer, int lBytes); -// HGLOBAL __stdcall GlobalHandle(LPCVOID pMem); -// BOOL __stdcall GlobalUnlock(HGLOBAL hMem); -// HGLOBAL __stdcall GlobalReAlloc(HGLOBAL hMem, SIZE_T dwBytes, UINT uFlags); -// HGLOBAL __stdcall GlobalFree(HGLOBAL hMem); -// LONG __stdcall _llseek(HFILE hFile, LONG lOffset, int iOrigin); -// UINT __stdcall _lread(HFILE hFile, LPVOID lpBuffer, UINT uBytes); -// HGLOBAL __stdcall GlobalAlloc(UINT uFlags, SIZE_T dwBytes); -// LPVOID __stdcall GlobalLock(HGLOBAL hMem); -// HLOCAL __stdcall LocalAlloc(UINT uFlags, SIZE_T uBytes); -// HLOCAL __stdcall LocalFree(HLOCAL hMem); -// HFILE __stdcall OpenFile(LPCSTR lpFileName, LPOFSTRUCT lpReOpenBuff, UINT uStyle); -// HFILE __stdcall _lclose(HFILE hFile); -// LPSTR __stdcall lstrcpynA(LPSTR lpString1, LPCSTR lpString2, int iMaxLength); -// LPSTR __stdcall lstrcatA(LPSTR lpString1, LPCSTR lpString2); -// int __stdcall lstrlenA(LPCSTR lpString); -// LPSTR __stdcall lstrcpyA(LPSTR lpString1, LPCSTR lpString2); -// INT __stdcall ShellAboutA(HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON hIcon); -// UINT __stdcall RegisterWindowMessageA(LPCSTR lpString); -// HWND __stdcall FindWindowA(LPCSTR lpClassName, LPCSTR lpWindowName); -// BOOL __stdcall GetCursorPos(LPPOINT lpPoint); -// BOOL __stdcall SetCursorPos(int X, int Y); -// BOOL __stdcall PeekMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg); -// BOOL __stdcall TranslateMessage(const MSG *lpMsg); -// LRESULT __stdcall DispatchMessageA(const MSG *lpMsg); -// BOOL __stdcall GetMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax); -// BOOL __stdcall IsIconic(HWND hWnd); -// BOOL __stdcall SetForegroundWindow(HWND hWnd); -// HMENU __stdcall GetMenu(HWND hWnd); -// void __stdcall PostQuitMessage(int nExitCode); -// BOOL __stdcall PostMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -// BOOL __stdcall ReleaseCapture(); -// HWND __stdcall SetCapture(HWND hWnd); -// HICON __stdcall LoadIconA(HINSTANCE hInstance, LPCSTR lpIconName); -// BOOL __stdcall EndPaint(HWND hWnd, const PAINTSTRUCT *lpPaint); -// BOOL __stdcall UnregisterClassA(LPCSTR lpClassName, HINSTANCE hInstance); -// HBITMAP __stdcall LoadBitmapA(HINSTANCE hInstance, LPCSTR lpBitmapName); -// BOOL __stdcall DestroyWindow(HWND hWnd); -// ATOM __stdcall RegisterClassA(const WNDCLASSA *lpWndClass); -// HWND __stdcall CreateWindowExA(DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam); -// LONG __stdcall GetWindowLongA(HWND hWnd, int nIndex); -// LRESULT __stdcall DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -// BOOL __stdcall UpdateWindow(HWND hWnd); -// HCURSOR __stdcall LoadCursorA(HINSTANCE hInstance, LPCSTR lpCursorName); -// HCURSOR __stdcall SetCursor(HCURSOR hCursor); -// BOOL __stdcall DeleteMenu(HMENU hMenu, UINT uPosition, UINT uFlags); -// BOOL __stdcall DrawMenuBar(HWND hWnd); -// LRESULT __stdcall SendDlgItemMessageA(HWND hDlg, int nIDDlgItem, UINT Msg, WPARAM wParam, LPARAM lParam); -// UINT __stdcall MapVirtualKeyA(UINT uCode, UINT uMapType); -// int __stdcall GetKeyNameTextA(LONG lParam, LPSTR lpString, int cchSize); -// DWORD __stdcall CheckMenuItem(HMENU hMenu, UINT uIDCheckItem, UINT uCheck); -// BOOL __stdcall EnableMenuItem(HMENU hMenu, UINT uIDEnableItem, UINT uEnable); -// INT_PTR __stdcall DialogBoxParamA(HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); -// int __stdcall MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType); -// BOOL __stdcall EndDialog(HWND hDlg, INT_PTR nResult); -// UINT __stdcall GetDlgItemTextA(HWND hDlg, int nIDDlgItem, LPSTR lpString, int cchMax); -// BOOL __stdcall ShowWindow(HWND hWnd, int nCmdShow); -// BOOL __stdcall EnableWindow(HWND hWnd, BOOL bEnable); -// HWND __stdcall SetFocus(HWND hWnd); -// LRESULT __stdcall SendMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -// HWND __stdcall GetParent(HWND hWnd); -// BOOL __stdcall WinHelpA(HWND hWndMain, LPCSTR lpszHelp, UINT uCommand, ULONG_PTR dwData); -// HWND __stdcall GetDlgItem(HWND hDlg, int nIDDlgItem); -// BOOL __stdcall SetWindowTextA(HWND hWnd, LPCSTR lpString); -// LONG __stdcall SetWindowLongA(HWND hWnd, int nIndex, LONG dwNewLong); -// int __stdcall GetSystemMetrics(int nIndex); -// HDC __stdcall GetDC(HWND hWnd); -// HDC __stdcall BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint); -// BOOL __stdcall InvalidateRect(HWND hWnd, const RECT *lpRect, BOOL bErase); -// LONG __stdcall ChangeDisplaySettingsA(DEVMODEA *lpDevMode, DWORD dwFlags); -// BOOL __stdcall SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags); -// BOOL __stdcall RedrawWindow(HWND hWnd, const RECT *lprcUpdate, HRGN hrgnUpdate, UINT flags); -// BOOL __stdcall IsWindowVisible(HWND hWnd); -// BOOL __stdcall MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint); -// int __stdcall FillRect(HDC hDC, const RECT *lprc, HBRUSH hbr); -// INT_PTR __stdcall DialogBoxIndirectParamA(HINSTANCE hInstance, LPCDLGTEMPLATEA hDialogTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); -// int __stdcall GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount); -// BOOL __stdcall MessageBeep(UINT uType); -// HWND __stdcall GetDesktopWindow(); -// BOOL __stdcall GetWindowRect(HWND hWnd, LPRECT lpRect); -// int __stdcall DrawTextA(HDC hdc, LPCSTR lpchText, int cchText, LPRECT lprc, UINT format); -// int __stdcall ReleaseDC(HWND hWnd, HDC hDC); -// int __stdcall LoadStringA(HINSTANCE hInstance, UINT uID, LPSTR lpBuffer, int cchBufferMax); -// int _wsprintfA(LPSTR, LPCSTR, ...); -// BOOL __stdcall SetMenu(HWND hWnd, HMENU hMenu); -// DWORD __stdcall timeGetTime(); -// BOOL __stdcall sndPlaySoundA(LPCSTR pszSound, UINT fuSound); -// HMMIO __stdcall mmioOpenA(LPSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen); -// MMRESULT __stdcall mmioClose(HMMIO hmmio, UINT fuClose); -// MMRESULT __stdcall mmioDescend(HMMIO hmmio, LPMMCKINFO pmmcki, const MMCKINFO *pmmckiParent, UINT fuDescend); -// LONG __stdcall mmioRead(HMMIO hmmio, HPSTR pch, LONG cch); -// MMRESULT __stdcall mmioAscend(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuAscend); -// MMRESULT __stdcall waveOutPause(HWAVEOUT hwo); -// MMRESULT __stdcall waveOutRestart(HWAVEOUT hwo); -// MMRESULT __stdcall waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -// MMRESULT __stdcall waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); -// MMRESULT __stdcall waveOutClose(HWAVEOUT hwo); -// MMRESULT __stdcall waveOutPrepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -// MMRESULT __stdcall waveOutUnprepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -// MMRESULT __stdcall waveOutReset(HWAVEOUT hwo); -// MMRESULT __stdcall waveOutGetPosition(HWAVEOUT hwo, LPMMTIME pmmt, UINT cbmmt); -// UINT __stdcall waveOutGetNumDevs(); -// MMRESULT __stdcall waveOutGetDevCapsA(UINT_PTR uDeviceID, LPWAVEOUTCAPSA pwoc, UINT cbwoc); -// MCIERROR __stdcall mciSendCommandA(MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2); -// void __cdecl __cexit(); -// int __cdecl ___getmainargs(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); weak -// int __cdecl ___setusermatherr(_DWORD); weak -// void __cdecl __noreturn __exit(int Code); -// int ___p__fmode(void); weak -// int __cdecl ___set_app_type(_DWORD); weak -// int __cdecl _atoi(const char *Str); -// void __cdecl __c_exit(); -// wchar_t *__cdecl _wcscpy(wchar_t *Dest, const wchar_t *Source); -// size_t __cdecl _wcslen(const wchar_t *Str); -// int __cdecl _isdigit(int C); -// int __cdecl _isalnum(int C); -// int __cdecl _isspace(int C); -// void *__cdecl _calloc(size_t NumOfElements, size_t SizeOfElements); -// int __cdecl _rand(); -// double __cdecl _floor(double); -// char *__cdecl _strstr(const char *Str, const char *SubStr); -// void __cdecl __noreturn _exit(int Code); -// FILE *__cdecl _fopen(const char *Filename, const char *Mode); -// int __cdecl _fclose(FILE *File); -// int __cdecl __strnicmp(const char *Str1, const char *Str, size_t MaxCount); -// void *__cdecl _realloc(void *Memory, size_t NewSize); -// void __cdecl _free(void *Memory); -// void *__cdecl _malloc(size_t Size); -// int _sprintf(char *Dest, const char *Format, ...); -// char *__cdecl __itoa(int Val, char *DstBuf, int Radix); -// int _sscanf(const char *Src, const char *Format, ...); -// char *__cdecl __ltoa(int Val, char *DstBuf, int Radix); -// int ___p__commode(void); weak -// void *__cdecl _memmove(void *Dst, const void *Src, size_t Size); -// int __cdecl _atol(const char *Str); HDC __stdcall _GetDC(HWND hWnd); HDC __stdcall _BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint); CHAR *__stdcall options_path_init(LPCSTR lpString); @@ -1131,57 +178,16 @@ int __stdcall loader_query_name(int a1); int __stdcall loader_query_float_attribute(int a1, signed int a2, int a3); int __stdcall loader_query_iattribute(int a1, int a2, _DWORD *a3); double __stdcall loader_play_sound(int a1); -objlist_class *__thiscall objlist_class::objlist_class(objlist_class *this, int a2, int a3); -void __thiscall objlist_class::Grow(objlist_class *__hidden this); // idb void __stdcall flasher_callback(int, void *); // idb void __stdcall flasher_start(struct flasher_type *, int); // idb void __stdcall flasher_stop(struct flasher_type *, int); // idb -void __thiscall TLight::Reset(TLight *__hidden this); // idb -void __stdcall TLight::TimerExpired(int, void *); // idb -void __thiscall TLight::schedule_timeout(TLight *this, float); // idb -int __thiscall TLight::Message(TLight *this, int, float); // idb -TZmapList *__thiscall TLightGroup::~TLightGroup(TLightGroup *this); -void __thiscall TLightGroup::Reset(TLightGroup *__hidden this); // idb -void __stdcall TLightGroup::TimerExpired(int, void *); // idb -void __thiscall TLightGroup::reschedule_animation(TLightGroup *this, float); // idb -int __thiscall TLightGroup::next_light_up(TLightGroup *__hidden this); // idb -int __thiscall TLightGroup::next_light_down(TLightGroup *__hidden this); // idb -void __thiscall TLightGroup::start_animation(TLightGroup *__hidden this); // idb -void __stdcall TLightGroup::NotifyTimerExpired(int, void *); // idb -int __thiscall TLightGroup::Message(TLightGroup *this, int, float); // idb -TZmapList *__thiscall TLightBargraph::~TLightBargraph(TLightBargraph *this); -void __thiscall TLightBargraph::Reset(TLightBargraph *this); // idb -void __stdcall TLightBargraph::BargraphTimerExpired(int, void *); // idb -int __thiscall TLightBargraph::Message(TLightBargraph *this, int, float); // idb -void __thiscall objlist_class::Add(objlist_class *this, void *); // idb -TLight *__thiscall TLight::TLight(TLight *this, struct TPinballTable *a2, int a3); -TSound *__thiscall TSound::`vector deleting destructor'(TSound *this, char a2); -TLightGroup *__thiscall TLightGroup::TLightGroup(TLightGroup *this, struct TPinballTable *a2, int a3); -TLightGroup *__thiscall TLightGroup::`vector deleting destructor'(TLightGroup *this, char a2); -TLightBargraph *__thiscall TLightBargraph::TLightBargraph(TLightBargraph *this, struct TPinballTable *a2, int a3); -TLightBargraph *__thiscall TLightBargraph::`vector deleting destructor'(TLightBargraph *this, char a2); int __stdcall midi_music_init(HWND a1); MCIERROR __stdcall midi_music_shutdown(); MCIERROR __stdcall midi_music_stop(); MCIERROR __stdcall midi_play_pb_theme(int a1); HWND __stdcall restart_midi_seq(int a1); -bool __thiscall TBall::already_hit(TBall *this, struct TEdgeSegment *a2); -TEdgeBox *__thiscall TEdgeBox::TEdgeBox(TEdgeBox *this); -signed __int64 __thiscall TEdgeManager::box_x(TEdgeManager *this, float a2); -signed __int64 __thiscall TEdgeManager::box_y(TEdgeManager *this, float a2); -int __thiscall TEdgeManager::increment_box_x(TEdgeManager *this, int); // idb -int __thiscall TEdgeManager::increment_box_y(TEdgeManager *this, int); // idb -void __stdcall `vector constructor iterator'(void *, unsigned int, int, void *(__thiscall *)(void *)); // idb -void __thiscall TEdgeBox::~TEdgeBox(TEdgeBox *this); -void __stdcall `vector destructor iterator'(void *, unsigned int, int, void (__thiscall *)(void *)); // idb -void __thiscall TEdgeManager::FieldEffects(TEdgeManager *this, struct TBall *, struct vector_type *); // idb -// int __userpurge TEdgeManager::TestGridBox@(TEdgeManager *this@, double a2@, int a3, int a4, float *a5, struct TEdgeSegment **a6, struct ray_type *a7, struct TBall *a8, int a9); -double __thiscall TEdgeManager::FindCollisionDistance(TEdgeManager *this, struct ray_type *a2, struct TBall *a3, struct TEdgeSegment **a4); -TEdgeManager *__thiscall TEdgeManager::TEdgeManager(TEdgeManager *this, float a2, float a3, float a4, float a5); -TEdgeBox *__thiscall TEdgeBox::`vector deleting destructor'(TEdgeBox *this, char a2); -void __thiscall TEdgeManager::add_edge_to_box(TEdgeManager *this, int, int, struct TEdgeSegment *); // idb -void __thiscall TEdgeManager::add_field_to_box(TEdgeManager *this, int, int, struct field_effect_type *); // idb -TEdgeBox *__thiscall TEdgeManager::~TEdgeManager(TEdgeManager *this); +void __stdcall `vector constructor iterator`(void *, unsigned int, int, void *(__thiscall *)(void *)); // idb +void __stdcall `vector destructor iterator`(void *, unsigned int, int, void (__thiscall *)(void *)); // idb void __stdcall edges_insert_circle(struct circle_type *, struct TEdgeSegment *, struct field_effect_type *); // idb void __stdcall edges_insert_square(float, float, float, float, struct TEdgeSegment *, struct field_effect_type *); // idb struct TPinballComponent *__stdcall make_component_link(struct component_tag *); // idb @@ -1315,9 +321,6 @@ void __stdcall render_sprite_set_bitmap(_DWORD *a1, int a2); void __stdcall render_ball_set(int a1, int a2, float a3, int a4, int a5); void __stdcall render_paint(); void __stdcall render_shift(int a1, int a2, int xSrc, int a4, int DestWidth, int DestHeight); -TTextBoxMessage *__thiscall TTextBoxMessage::TTextBoxMessage(TTextBoxMessage *this, char *a2, float a3); -double __thiscall TTextBoxMessage::TimeLeft(TTextBoxMessage *this); -void __thiscall TTextBoxMessage::Refresh(TTextBoxMessage *this, float); // idb _DWORD *__stdcall score_create(LPCSTR lpString, int a2); void *__stdcall score_dup(const void *a1, int a2); void __stdcall objlist_destroy(int a1); @@ -1327,15 +330,6 @@ _DWORD *__stdcall score_set(_DWORD *a1, int a2); signed int __stdcall score_init(); void __stdcall score_unload_msg_font(); HRSRC __stdcall score_load_msg_font(LPCSTR lpName); -TTextBox *__thiscall TTextBox::TTextBox(TTextBox *this, struct TPinballTable *a2, int a3); -TTextBoxMessage *__thiscall TTextBoxMessage::`scalar deleting destructor'(TTextBoxMessage *this, char a2); -// void __usercall TTextBox::Clear(TTextBox *this@, int a2@); -// void __userpurge TTextBox::TimerExpired(int a1@, int a2, TTextBox *a3); -TZmapList *__thiscall TTextBox::~TTextBox(TTextBox *this); -// void __usercall TTextBox::Draw(TTextBox *this@, int a2@); -// void __userpurge TTextBox::Display(TTextBox *this@, int a2@, char *a3, float a4); -TTextBox *__thiscall TTextBox::`scalar deleting destructor'(TTextBox *this, char a2); -void *__stdcall TPinballComponent::operator new(size_t SizeOfElements); // idb _DWORD __stdcall pb_paint(); // idb signed int __stdcall pb_mode_change(int a1); signed int __stdcall pb_mode_countdown(int a1); @@ -1366,194 +360,19 @@ int __stdcall pb_loose_focus(); int __stdcall pb_launch_ball(); int __stdcall pb_reset_table(); // void __usercall pb_toggle_demo(int a1@); -TEdgeSegment *__thiscall TEdgeSegment::TEdgeSegment(TEdgeSegment *this, struct TCollisionComponent *a2, char *a3, unsigned int a4); _DWORD __stdcall gdrv_get_focus(); // idb -TCircle *__thiscall TCircle::TCircle(TCircle *this, struct TCollisionComponent *a2, char *a3, unsigned int a4, struct vector_type *a5, float a6); -double __thiscall TCircle::FindCollisionDistance(TCircle *this, struct ray_type *a2); -TZmapList *__thiscall TZmapList::TZmapList(TZmapList *this, int a2, int a3); -void __thiscall TBall::not_again(TBall *this, struct TEdgeSegment *); // idb void __stdcall throw_ball(struct TBall *, struct vector_type *, float, float, float); // idb -int __thiscall TPinballComponent::Message(TPinballComponent *this, int, float); // idb -int __stdcall TPinballComponent::get_scoring(int a2); -void __stdcall TComponentGroup::NotifyTimerExpired(int, struct TPinballComponent *); // idb -int __thiscall TComponentGroup::Message(TComponentGroup *this, int, float); // idb -void __thiscall TCollisionComponent::port_draw(TCollisionComponent *__hidden this); // idb -void __stdcall TWall::TimerExpired(int, void *); // idb -int __thiscall TWall::Message(TWall *this, int, float); // idb -int __thiscall TWall::get_scoring(TWall *this, int); // idb -void __thiscall TWall::put_scoring(TWall *this, int, int); // idb -int __thiscall TOneway::get_scoring(TOneway *this, int); // idb -void __thiscall TOneway::put_scoring(TOneway *this, int, int); // idb -int __thiscall TBall::Message(TBall *this, int, float); // idb -void __thiscall TBall::Repaint(TBall *__hidden this); // idb -void __stdcall TBumper::TimerExpired(int, void *); // idb -void __thiscall TBumper::Fire(TBumper *this); // idb -int __thiscall TBumper::Message(TBumper *this, int, float); // idb -int __thiscall TBumper::get_scoring(TBumper *this, int); // idb -void __thiscall TBumper::put_scoring(TBumper *this, int, int); // idb -void __stdcall TFlagSpinner::SpinTimer(int, void *); // idb -void __thiscall TFlagSpinner::NextFrame(TFlagSpinner *this); // idb -int __thiscall TFlagSpinner::Message(TFlagSpinner *this, int, float); // idb -int __thiscall TFlagSpinner::get_scoring(TFlagSpinner *this, int); // idb -void __thiscall TFlagSpinner::put_scoring(TFlagSpinner *this, int, int); // idb -void __stdcall TPopupTarget::TimerExpired(int, void *); // idb -int __thiscall TPopupTarget::Message(TPopupTarget *this, int, float); // idb -int __thiscall TPopupTarget::get_scoring(TPopupTarget *this, int); // idb -void __thiscall TPopupTarget::put_scoring(TPopupTarget *this, int, int); // idb -void __stdcall TSoloTarget::TimerExpired(int, void *); // idb -int __thiscall TSoloTarget::Message(TSoloTarget *this, int, float); // idb -int __thiscall TSoloTarget::get_scoring(TSoloTarget *this, int); // idb -void __thiscall TSoloTarget::put_scoring(TSoloTarget *this, int, int); // idb -void __stdcall TBlocker::TimerExpired(int, struct TPinballComponent *); // idb -int __thiscall TBlocker::Message(TBlocker *this, int, float); // idb -int __thiscall TGate::Message(TGate *this, int, float); // idb -void __stdcall TRollover::TimerExpired(int, void *); // idb -int __thiscall TRollover::Message(TRollover *this, int, float); // idb -int __thiscall TRollover::get_scoring(TRollover *this, int); // idb -void __thiscall TRollover::put_scoring(TRollover *this, int, int); // idb -void __stdcall TLightRollover::delay_expired(int, void *); // idb -void __thiscall TLightRollover::Collision(TLightRollover *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -int __thiscall TLightRollover::Message(TLightRollover *this, int, float); // idb -void __thiscall TTripwire::Collision(TTripwire *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __stdcall TKickback::TimerExpired(int, struct TPinballComponent *); // idb -int __thiscall TKickback::Message(TKickback *this, int, float); // idb -void __thiscall TKickout::Collision(TKickout *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __stdcall TKickout::ResetTimerExpired(int, void *); // idb -void __stdcall TKickout::TimerExpired(int, void *); // idb -int __thiscall TKickout::FieldEffect(TKickout *this, struct TBall *, struct vector_type *); // idb -int __thiscall TKickout::Message(TKickout *this, int, float); // idb -int __thiscall TKickout::get_scoring(TKickout *this, int); // idb -void __thiscall TKickout::put_scoring(TKickout *this, int, int); // idb -void __stdcall THole::TimerExpired(int, void *); // idb -int __thiscall THole::FieldEffect(THole *this, struct TBall *, struct vector_type *); // idb -int __thiscall THole::Message(THole *this, int, float); // idb -int __thiscall TRamp::get_scoring(TRamp *this, int); // idb -void __thiscall TRamp::put_scoring(TRamp *this, int, int); // idb void __stdcall find_closest_edge(struct ramp_plane_type *, int, struct wall_point_type *, struct vector_type **, struct vector_type **); // idb -void __thiscall TRamp::Collision(TRamp *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -int __thiscall TRamp::FieldEffect(TRamp *this, struct TBall *, struct vector_type *); // idb -void __stdcall TDemo::PlungerRelease(int, void *); // idb -void __stdcall TDemo::UnFlipRight(int, void *); // idb -void __stdcall TDemo::UnFlipLeft(int, void *); // idb -void __stdcall TDemo::FlipRight(int, void *); // idb -void __stdcall TDemo::FlipLeft(int, void *); // idb -void __stdcall TDemo::NewGameRestartTimer(int, void *); // idb -void __thiscall TDemo::Collision(TDemo *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -int __thiscall TDemo::Message(TDemo *this, int, float); // idb -void __stdcall TSink::TimerExpired(int, void *); // idb -int __thiscall TSink::Message(TSink *this, int, float); // idb -int __thiscall TSink::get_scoring(TSink *this, int); // idb -void __thiscall TSink::put_scoring(TSink *this, int, int); // idb -int __thiscall TDrain::Message(TDrain *this, int, float); // idb -void __stdcall TDrain::TimerCallback(int, struct TPinballComponent *); // idb -void __stdcall TPlunger::BallFeedTimer(int, void *); // idb -void __stdcall TPlunger::PullbackTimer(int, void *); // idb -void __stdcall TPlunger::PlungerReleasedTimer(int, void *); // idb -int __thiscall TTableLayer::FieldEffect(TTableLayer *this, struct TBall *, struct vector_type *); // idb -TEdgeManager *__thiscall TEdgeManager::`scalar deleting destructor'(TEdgeManager *this, char a2); -void __stdcall TPinballTable::LightShow_timeout(int, void *); // idb -void __stdcall TPinballTable::EndGame_timeout(int, void *); // idb -int __thiscall TPinballTable::AddScore(TPinballTable *this, int); // idb -// void __userpurge TPinballTable::ChangeBallCount(TPinballTable *this@, int a2@, int a3); -void __stdcall TPinballTable::replay_timer_callback(int, void *); // idb -void __thiscall TPinballTable::port_draw(TPinballTable *__hidden this); // idb -struct TPinballComponent *__thiscall TPinballTable::find_component(TPinballTable *this, char *); // idb -struct TPinballComponent *__thiscall TPinballTable::find_component(TPinballTable *this, int); // idb -void __stdcall TPinballTable::tilt_timeout(int, void *); // idb -// void __userpurge TPinballTable::tilt(TPinballTable *this@, int a2@, float a3); double __stdcall basic_collision(struct TBall *a1, struct vector_type *a2, struct vector_type *a3, float a4, float a5, float a6, float a7); -double __thiscall TSound::Play(TSound *this); -void __stdcall TTimer::TimerExpired(int, struct TPinballComponent *); // idb struct TEdgeSegment *__stdcall install_wall(float *, struct TCollisionComponent *, char *, unsigned int, float, void *); // idb -TPinballComponent *__thiscall TPinballComponent::TPinballComponent(TPinballComponent *this, struct TPinballTable *a2, int a3, int a4); -TZmapList *__thiscall TZmapList::`scalar deleting destructor'(TZmapList *this, char a2); -void __thiscall TCollisionComponent::Collision(TCollisionComponent *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -int __thiscall TCollisionComponent::DefaultCollision(TCollisionComponent *this, struct TBall *, struct vector_type *, struct vector_type *); // idb -void __thiscall TWall::Collision(TWall *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __thiscall TOneway::Collision(TOneway *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __thiscall TBumper::Collision(TBumper *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __thiscall TFlagSpinner::Collision(TFlagSpinner *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __thiscall TPopupTarget::Collision(TPopupTarget *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __thiscall TSoloTarget::Collision(TSoloTarget *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __thiscall TRollover::build_walls(TRollover *this, int); // idb -void __thiscall TRollover::Collision(TRollover *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __thiscall TKickback::Collision(TKickback *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __thiscall THole::Collision(THole *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __thiscall TSink::Collision(TSink *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -void __thiscall TDrain::Collision(TDrain *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -int __thiscall TPlunger::Message(TPlunger *this, int, float); // idb -void __thiscall TPlunger::Collision(TPlunger *this, struct TBall *, struct vector_type *, struct vector_type *, float, struct TEdgeSegment *); // idb -// int __userpurge TPinballTable::Message@(TPinballTable *this@, int a2@, int a3, float a4); -int __thiscall TTimer::Message(TTimer *this, int, float); // idb -TZmapList *__thiscall TPinballComponent::~TPinballComponent(TPinballComponent *this); -TComponentGroup *__thiscall TComponentGroup::TComponentGroup(TComponentGroup *this, struct TPinballTable *a2, int a3); -TZmapList *__thiscall TComponentGroup::~TComponentGroup(TComponentGroup *this); -TCollisionComponent *__thiscall TCollisionComponent::TCollisionComponent(TCollisionComponent *this, struct TPinballTable *a2, int a3, int a4); -int __stdcall TTextBox::Message(int a2, float a3); -TZmapList *__thiscall TCollisionComponent::~TCollisionComponent(TCollisionComponent *this); -TWall *__thiscall TWall::TWall(TWall *this, struct TPinballTable *a2, int a3); -TOneway *__thiscall TOneway::TOneway(TOneway *this, struct TPinballTable *a2, int a3); -TBall *__thiscall TBall::TBall(TBall *this, struct TPinballTable *a2); -TBumper *__thiscall TBumper::TBumper(TBumper *this, struct TPinballTable *a2, int a3); -TFlagSpinner *__thiscall TFlagSpinner::TFlagSpinner(TFlagSpinner *this, struct TPinballTable *a2, int a3); -TPopupTarget *__thiscall TPopupTarget::TPopupTarget(TPopupTarget *this, struct TPinballTable *a2, int a3); -TSoloTarget *__thiscall TSoloTarget::TSoloTarget(TSoloTarget *this, struct TPinballTable *a2, int a3); -TBlocker *__thiscall TBlocker::TBlocker(TBlocker *this, struct TPinballTable *a2, int a3); -TGate *__thiscall TGate::TGate(TGate *this, struct TPinballTable *a2, int a3); -TRollover *__thiscall TRollover::TRollover(TRollover *this, struct TPinballTable *a2, int a3, int a4); -TRollover *__thiscall TRollover::TRollover(TRollover *this, struct TPinballTable *a2, int a3); -TLightRollover *__thiscall TLightRollover::TLightRollover(TLightRollover *this, struct TPinballTable *a2, int a3); -TTripwire *__thiscall TTripwire::TTripwire(TTripwire *this, struct TPinballTable *a2, int a3); -TKickback *__thiscall TKickback::TKickback(TKickback *this, struct TPinballTable *a2, int a3); -TKickout *__thiscall TKickout::TKickout(TKickout *this, struct TPinballTable *a2, int a3, struct vector_type *a4); -THole *__thiscall THole::THole(THole *this, struct TPinballTable *a2, int a3); -TRamp *__thiscall TRamp::TRamp(TRamp *this, struct TPinballTable *a2, void *a3); -TDemo *__thiscall TDemo::TDemo(TDemo *this, struct TPinballTable *a2, int a3); -TSink *__thiscall TSink::TSink(TSink *this, struct TPinballTable *a2, int a3); -TDrain *__thiscall TDrain::TDrain(TDrain *this, struct TPinballTable *a2, int a3); -TPlunger *__thiscall TPlunger::TPlunger(TPlunger *this, struct TPinballTable *a2, int a3); -TTableLayer *__thiscall TTableLayer::TTableLayer(TTableLayer *this, struct TPinballTable *a2); -TZmapList *__thiscall TTableLayer::~TTableLayer(TTableLayer *this); -TZmapList *__thiscall TPinballTable::~TPinballTable(TPinballTable *this); -TPinballTable *__thiscall TPinballTable::`vector deleting destructor'(TPinballTable *this, char a2); -TSound *__thiscall TSound::TSound(TSound *this, struct TPinballTable *a2, int a3); -TTimer *__thiscall TTimer::TTimer(TTimer *this, struct TPinballTable *a2, int a3); -TComponentGroup *__thiscall TComponentGroup::`scalar deleting destructor'(TComponentGroup *this, char a2); -TOneway *__thiscall TOneway::`scalar deleting destructor'(TOneway *this, char a2); -TTableLayer *__thiscall TTableLayer::`scalar deleting destructor'(TTableLayer *this, char a2); -TPinballTable *__thiscall TPinballTable::TPinballTable(TPinballTable *this); void __stdcall vswap(struct vector_type *, struct vector_type *); // idb -void __thiscall TFlipperEdge::place_in_grid(TFlipperEdge *this); // idb -double __thiscall TFlipperEdge::flipper_angle(TFlipperEdge *this, float a2); -void __thiscall TFlipperEdge::build_edges_in_motion(TFlipperEdge *__hidden this); // idb -void __thiscall TFlipperEdge::set_control_points(TFlipperEdge *this, float); // idb double __stdcall distance_to_flipper(struct ray_type *a1, struct ray_type *a2); -int __thiscall TFlipperEdge::is_ball_inside(TFlipperEdge *this, float, float); // idb -double __thiscall TFlipperEdge::FindCollisionDistance(TFlipperEdge *this, struct ray_type *a2); -void __thiscall TFlipperEdge::EdgeCollision(TFlipperEdge *this, struct TBall *, float); // idb -void __thiscall TFlipperEdge::SetMotion(TFlipperEdge *this, int, float); // idb -void __thiscall TFlipperEdge::port_draw(TFlipperEdge *this); // idb -TZmapList *__thiscall TFlipper::~TFlipper(TFlipper *this); -void __stdcall TFlipper::TimerExpired(int, void *); // idb -int __thiscall TFlipper::Message(TFlipper *this, int, float); // idb -void __thiscall TFlipper::port_draw(TFlipper *__hidden this); // idb -TFlipperEdge *__thiscall TFlipperEdge::TFlipperEdge(TFlipperEdge *this, struct TCollisionComponent *a2, char *a3, unsigned int a4, struct TPinballTable *a5, struct vector_type *a6, struct vector_type *a7, struct vector_type *a8, float a9, float a10, float a11, float a12, float a13); -TFlipper *__thiscall TFlipper::TFlipper(TFlipper *this, struct TPinballTable *a2, int a3); -TFlipper *__thiscall TFlipper::`vector deleting destructor'(TFlipper *this, char a2); -TLine *__thiscall TLine::TLine(TLine *this, struct TCollisionComponent *a2, char *a3, unsigned int a4, float a5, float a6, float a7, float a8); -double __thiscall TLine::FindCollisionDistance(TLine *this, struct ray_type *a2); -TLine *__thiscall TLine::TLine(TLine *this, struct TCollisionComponent *a2, char *a3, unsigned int a4, struct vector_type *a5, struct vector_type *a6); -void __thiscall TLine::EdgeCollision(TLine *this, struct TBall *, float); // idb -void __thiscall TLine::Offset(TLine *this, float); // idb -void __thiscall TLine::place_in_grid(TLine *this); // idb -void __thiscall TCircle::place_in_grid(TCircle *this); // idb void __stdcall vector_add(struct vector_type *, struct vector_type *); // idb void __stdcall RotatePt(struct vector_type *, float, float, struct vector_type *); // idb long double __stdcall Distance(struct vector_type *a1, struct vector_type *a2); double __stdcall Distance_Squared(float a1, float a2, int a3, float a4, float a5, int a6); double __stdcall DotProduct(const struct vector_type *a1, const struct vector_type *a2); void __stdcall SinCos(float, float *, float *); // idb -void __thiscall TCircle::EdgeCollision(TCircle *this, struct TBall *, float); // idb void __stdcall RotateVector(struct vector_type *, float); // idb int __security_init_cookie(); // BOOL __usercall __noreturn __report_gsfailure@(int a1@, int a2@, int a3@, int a4@, int a5@, int a6@); @@ -1641,42 +460,6 @@ int __stdcall check_expiration_date(); // extern _UNKNOWN __acmdln; weak // extern _UNKNOWN __adjust_fdiv; weak CHAR WindowName[2] = { '\0', '\0' }; // idb -void *TLightBargraph::`vftable' = &TLightBargraph::Message; // weak -void *TLight::`vftable' = &TLight::Message; // weak -void *TLightGroup::`vftable' = &TLightGroup::Message; // weak -void *TTextBox::`vftable' = &TTextBox::Message; // weak -void *TEdgeSegment::`vftable' = &_purecall; // weak -void *TCircle::`vftable' = &TCircle::EdgeCollision; // weak -void *TPinballComponent::`vftable' = &TPinballComponent::Message; // weak -void *TComponentGroup::`vftable' = &TComponentGroup::Message; // weak -void *TCollisionComponent::`vftable' = &TPinballComponent::Message; // weak -void *TWall::`vftable' = &TWall::Message; // weak -void *TOneway::`vftable' = &TPinballComponent::Message; // weak -void *TBall::`vftable' = &TBall::Message; // weak -void *TBumper::`vftable' = &TBumper::Message; // weak -void *TFlagSpinner::`vftable' = &TFlagSpinner::Message; // weak -void *TPopupTarget::`vftable' = &TPopupTarget::Message; // weak -void *TSoloTarget::`vftable' = &TSoloTarget::Message; // weak -void *TBlocker::`vftable' = &TBlocker::Message; // weak -void *TGate::`vftable' = &TGate::Message; // weak -void *TRollover::`vftable' = &TRollover::Message; // weak -void *TLightRollover::`vftable' = &TLightRollover::Message; // weak -void *TTripwire::`vftable' = &TRollover::Message; // weak -void *TKickback::`vftable' = &TKickback::Message; // weak -void *TKickout::`vftable' = &TKickout::Message; // weak -void *THole::`vftable' = &THole::Message; // weak -void *TRamp::`vftable' = &TPinballComponent::Message; // weak -void *TDemo::`vftable' = &TDemo::Message; // weak -void *TSink::`vftable' = &TSink::Message; // weak -void *TDrain::`vftable' = &TDrain::Message; // weak -void *TPlunger::`vftable' = &TPlunger::Message; // weak -void *TTableLayer::`vftable' = &TPinballComponent::Message; // weak -void *TPinballTable::`vftable' = &TPinballTable::Message; // weak -void *TSound::`vftable' = &TPinballComponent::Message; // weak -void *TTimer::`vftable' = &TTimer::Message; // weak -void *TFlipper::`vftable' = &TFlipper::Message; // weak -void *TFlipperEdge::`vftable' = &TFlipperEdge::EdgeCollision; // weak -void *TLine::`vftable' = &TLine::EdgeCollision; // weak int gpFormat[4] = { 65537, 11025, 11025, 524289 }; // weak _UNKNOWN __xc_a; // weak _UNKNOWN __xc_z; // weak @@ -1715,7 +498,7 @@ int LeftShift = 4294967295; // weak int RightShift = 4294967295; // weak int dword_10235F4 = 1; // weak int loader_errors[] = { 0 }; // weak -char *off_10235FC[54] = +char *error_messages[54] = { "Bad Handle", (char *)1, @@ -1867,7 +650,7 @@ int dword_1023A24 = 0; // weak int dword_1023A2C = 0; // weak int dword_1023A34 = 0; // weak int dword_1023A3C = 0; // weak -char **off_1023A40[9] = +char **lites[9] = { &off_10239E8, &off_10239F0, @@ -2537,10 +1320,8 @@ CHAR byte_10248A8[1536] = }; // idb int rc_string_slot; // weak -struct tagRECT Rect; // idb HWND hWnd; // idb int dword_1024EC0; // weak -struct tagRECT X; // idb int dword_1024ED4; // weak int dword_1024ED8; // weak int dword_1024EDC; // weak