1
0
Fork 0
mirror of https://github.com/k4zmu2a/SpaceCadetPinball.git synced 2024-07-21 16:23:34 +02:00

Score, PinbalTable, PinballComponent v1

Placeholders for T piball component classes.
This commit is contained in:
oz 2020-11-01 18:45:29 +03:00
parent c55f6e5b98
commit 5e94b5b513
78 changed files with 1239 additions and 41 deletions

1
CompileForDrMemory.bat Normal file
View file

@ -0,0 +1 @@
cl /Zi /MT /EHsc /O y- /Ob0 /Femyapp.exe *.cpp user32.lib

View file

@ -60,7 +60,9 @@ int main2(int argc, const char* argv[])
printf("pbwdlist - 3D Pinball for Windows DAT file listing program\nby AdrienTD\n\n");
if (argc < 2) { printf("Usage: pbwdlist FILE.DAT\n"); return 1; }
ff = fopen(argv[1], "rb");
FILE *ff;
fopen_s(&ff,argv[1], "rb");
//ff = fopen(argv[1], "rb");
cerr(!ff, -1);
printf("File: %s\n\n", argv[1]);
fseek(ff, 0, SEEK_END);

View file

@ -8,6 +8,8 @@
#include "partman.h"
#include "DatParser.h"
#include "loader.h"
#include "score.h"
#include "TPinballTable.h"
int main()
{
@ -18,7 +20,7 @@ int main()
{
d.Add((void*)i);
}
d.Delete(3);
d.Delete((void*)3);
auto xx = sizeof(datFileHeader);
@ -36,22 +38,24 @@ int main()
assert(partman::record_labeled(datFile, "background") == 2);
assert(partman::record_labeled(datFile, "a_bump1") == 372);
assert(memcmp(partman::field_labeled(datFile, "table_size", ShortArray), new short[2]{ 600, 416 }, 2 * 2) == 0);
//loader::error(25, 26);
loader::loadfrom(datFile);
loader::get_sound_id(18);
visualStruct visual1{};
loader::material(96, &visual1);
loader::query_visual(283,0, &visual1);
loader::query_visual(283, 0, &visual1);
visualKickerStruct kicker1{};
loader::kicker(509, &kicker1);
auto score1 = score::create("score1", 117);
auto pinballTable = new TPinballTable();
//DatParser::Parse(dataFileName);
std::cout << "Goodby World!\n";
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu

View file

@ -0,0 +1,60 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 25, 1
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View file

@ -91,7 +91,7 @@
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<BufferSecurityCheck>false</BufferSecurityCheck>
<BufferSecurityCheck>true</BufferSecurityCheck>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@ -158,6 +158,39 @@
<ClInclude Include="partman.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="pinball.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="score.h" />
<ClInclude Include="TBall.h" />
<ClInclude Include="TBlocker.h" />
<ClInclude Include="TBumper.h" />
<ClInclude Include="TComponentGroup.h" />
<ClInclude Include="TDemo.h" />
<ClInclude Include="TDrain.h" />
<ClInclude Include="TFlagSpinner.h" />
<ClInclude Include="TFlipper.h" />
<ClInclude Include="TGate.h" />
<ClInclude Include="THole.h" />
<ClInclude Include="TKickback.h" />
<ClInclude Include="TKickout.h" />
<ClInclude Include="TLight.h" />
<ClInclude Include="TLightBargraph.h" />
<ClInclude Include="TLightGroup.h" />
<ClInclude Include="TLightRollover.h" />
<ClInclude Include="TOneway.h" />
<ClInclude Include="TPinballComponent.h" />
<ClInclude Include="TPinballTable.h" />
<ClInclude Include="TPlunger.h" />
<ClInclude Include="TPopupTarget.h" />
<ClInclude Include="TRamp.h" />
<ClInclude Include="TRollover.h" />
<ClInclude Include="TSink.h" />
<ClInclude Include="TSoloTarget.h" />
<ClInclude Include="TSound.h" />
<ClInclude Include="TTableLayer.h" />
<ClInclude Include="TTextBox.h" />
<ClInclude Include="TTimer.h" />
<ClInclude Include="TTripwire.h" />
<ClInclude Include="TZmapList.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="DatParser.cpp" />
@ -171,11 +204,45 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="pinball.cpp" />
<ClCompile Include="score.cpp" />
<ClCompile Include="SpaceCadetPinball.cpp" />
<ClCompile Include="TBall.cpp" />
<ClCompile Include="TBlocker.cpp" />
<ClCompile Include="TBumper.cpp" />
<ClCompile Include="TComponentGroup.cpp" />
<ClCompile Include="TDemo.cpp" />
<ClCompile Include="TDrain.cpp" />
<ClCompile Include="TFlagSpinner.cpp" />
<ClCompile Include="TFlipper.cpp" />
<ClCompile Include="TGate.cpp" />
<ClCompile Include="THole.cpp" />
<ClCompile Include="TKickback.cpp" />
<ClCompile Include="TKickout.cpp" />
<ClCompile Include="TLight.cpp" />
<ClCompile Include="TLightBargraph.cpp" />
<ClCompile Include="TLightGroup.cpp" />
<ClCompile Include="TLightRollover.cpp" />
<ClCompile Include="TOneway.cpp" />
<ClCompile Include="TPinballComponent.cpp" />
<ClCompile Include="TPinballTable.cpp" />
<ClCompile Include="TPlunger.cpp" />
<ClCompile Include="TPopupTarget.cpp" />
<ClCompile Include="TRamp.cpp" />
<ClCompile Include="TRollover.cpp" />
<ClCompile Include="TSink.cpp" />
<ClCompile Include="TSoloTarget.cpp" />
<ClCompile Include="TSound.cpp" />
<ClCompile Include="TTableLayer.cpp" />
<ClCompile Include="TTextBox.cpp" />
<ClCompile Include="TTimer.cpp" />
<ClCompile Include="TTripwire.cpp" />
</ItemGroup>
<ItemGroup>
<Natvis Include="NatvisFile.natvis" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="SpaceCadetPinball.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View file

@ -13,6 +13,12 @@
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Header Files\PinballComponents">
<UniqueIdentifier>{9ee086c2-1a95-48fb-92d8-4b7e7f6682ff}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\PinballComponents">
<UniqueIdentifier>{33813da8-81ac-449c-b19a-9756272519b9}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h">
@ -33,6 +39,105 @@
<ClInclude Include="pinball.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="score.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="TDrain.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TFlipper.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TPinballComponent.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TPinballTable.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TPlunger.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TBall.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="TBlocker.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TBumper.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TComponentGroup.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TDemo.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TFlagSpinner.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TGate.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="THole.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TKickback.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TKickout.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TLight.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TLightBargraph.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TLightGroup.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TLightRollover.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TOneway.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TPopupTarget.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TRamp.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TRollover.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TSink.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TSoloTarget.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TSound.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TTableLayer.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TTextBox.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TTimer.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TTripwire.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
<ClInclude Include="TZmapList.h">
<Filter>Header Files\PinballComponents</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
@ -56,8 +161,106 @@
<ClCompile Include="pinball.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="score.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="TDrain.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TFlipper.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TPinballComponent.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TPinballTable.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TPlunger.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TBall.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TBlocker.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TBumper.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TComponentGroup.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TDemo.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TFlagSpinner.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TGate.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="THole.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TKickback.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TKickout.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TLight.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TLightBargraph.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TLightGroup.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TLightRollover.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TOneway.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TPopupTarget.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TRamp.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TRollover.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TSink.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TSoloTarget.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TSound.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TTableLayer.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TTextBox.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TTimer.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
<ClCompile Include="TTripwire.cpp">
<Filter>Source Files\PinballComponents</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Natvis Include="NatvisFile.natvis" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="SpaceCadetPinball.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TBall.h"

11
SpaceCadetPinball/TBall.h Normal file
View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TBall :
public TPinballComponent
{
public :
TBall(TPinballTable* table): TPinballComponent(table, -1, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TBlocker.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TBlocker :
public TPinballComponent
{
public:
TBlocker(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TBumper.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TBumper :
public TPinballComponent
{
public:
TBumper(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TComponentGroup.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TComponentGroup :
public TPinballComponent
{
public:
TComponentGroup(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TDemo.h"

11
SpaceCadetPinball/TDemo.h Normal file
View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TDemo :
public TPinballComponent
{
public:
TDemo(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TDrain.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TDrain :
public TPinballComponent
{
public:
TDrain(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TFlagSpinner.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TFlagSpinner :
public TPinballComponent
{
public:
TFlagSpinner(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TFlipper.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TFlipper :
public TPinballComponent
{
public:
TFlipper(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TGate.h"

11
SpaceCadetPinball/TGate.h Normal file
View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TGate :
public TPinballComponent
{
public:
TGate(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "THole.h"

11
SpaceCadetPinball/THole.h Normal file
View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class THole :
public TPinballComponent
{
public:
THole(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TKickback.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TKickback :
public TPinballComponent
{
public:
TKickback(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TKickout.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TKickout :
public TPinballComponent
{
public:
TKickout(TPinballTable* table, int groupIndex,int vectorType) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TLight.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TLight :
public TPinballComponent
{
public:
TLight(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TLightBargraph.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TLightBargraph :
public TPinballComponent
{
public:
TLightBargraph(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TLightGroup.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TLightGroup :
public TPinballComponent
{
public:
TLightGroup(TPinballTable* table,int ind) : TPinballComponent(table, -1, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TLightRollover.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TLightRollover :
public TPinballComponent
{
public:
TLightRollover(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TOneway.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TOneway :
public TPinballComponent
{
public:
TOneway(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,81 @@
#include "pch.h"
#include "TPinballComponent.h"
#include "loader.h"
#include "objlist_class.h"
#include "TZmapList.h"
#include "TPinballTable.h"
TPinballComponent::TPinballComponent(TPinballTable* table, int groupIndex, bool loadVisuals)
{
visualStruct visual{}; // [esp+Ch] [ebp-6Ch]
// this->VfTable = (int)&TPinballComponent::`vftable';
this->Unknown2 = 0;
this->UnknownBaseFlag1 = 0;
this->UnknownBaseFlag2 = 0;
this->PinballTable = table;
this->Unknown7 = 0;
this->List1Bitmap8 = nullptr;
this->List2Bitmap16 = nullptr;
if (table)
table->ListP1->Add(this);
if (groupIndex >= 0)
this->GroupName = loader::query_name(groupIndex);
if (loadVisuals && groupIndex >= 0)
{
int visualCount = loader::query_visual_states(groupIndex);
for (int index = 0; index < visualCount; ++index)
{
loader::query_visual(groupIndex, index, &visual);
if (visual.Bitmap8)
{
if (!this->List1Bitmap8)
this->List1Bitmap8 = new TZmapList(visualCount, 4);
if (this->List1Bitmap8)
this->List1Bitmap8->Add(visual.Bitmap8);
}
if (visual.Bitmap16)
{
if (!this->List2Bitmap16)
this->List2Bitmap16 = new TZmapList(visualCount, 4);
if (this->List2Bitmap16)
this->List2Bitmap16->Add(visual.Bitmap16);
}
}
if (this->List2Bitmap16)
int listVal0 = (int)this->List2Bitmap16->Get(0);
if (this->List1Bitmap8)
{
/*listVal0_2 = (int*)this->List1Bitmap8->Get(0);
v24 = *(int*)((char*)listVal0_2 + 29) - table->UnknownP49;
v15 = 1;
v25 = *(int*)((char*)listVal0_2 + 33) - table->UnknownP50;
v26 = listVal0_2[3];
v27 = listVal0_2[4];
if (List1Bitmap8->Count() > 1)
{
index = 12;
do
{
v16 = *(int**)((char*)&this->List1Bitmap8->ListPtr->Size + index);
v20 = *(int*)((char*)v16 + 29) - table->UnknownP49;
v21 = *(int*)((char*)v16 + 33) - table->UnknownP50;
v22 = v16[3];
v23 = v16[4];
enclosing_box(&v24, &v20, &v24);
index += 4;
++v15;
} while (v15 < this->List1Bitmap8->ListPtr->Count);
}
v17 = this->List1Bitmap8->ListPtr->Array[0];
this->Unknown7 = (int)render_create_sprite(
visualCount > 0,
this->List1Bitmap8->ListPtr->Array[0],
listVal0,
*(int*)(v17 + 29) - table->UnknownP49,
*(int*)(v17 + 33) - table->UnknownP50,
&v24);*/
}
}
this->GroupIndex = groupIndex;
}

View file

@ -0,0 +1,22 @@
#pragma once
#include "TZmapList.h"
class TPinballComponent
{public:
TPinballComponent(class TPinballTable* table, int groupIndex, bool loadVisuals);
int VfTable;
__int8 UnknownBaseFlag1;
__int8 UnknownBaseFlag2;
int Unknown2;
char* GroupName;
int Unknown4;
int Unknown5;
int GroupIndex;
int Unknown7;
TPinballTable* PinballTable;
TZmapList* List1Bitmap8;
TZmapList* List2Bitmap16;
};

View file

@ -0,0 +1,187 @@
#include "pch.h"
#include "TPinballTable.h"
#include "loader.h"
#include "pinball.h"
#include "TBall.h"
#include "TBlocker.h"
#include "TBumper.h"
#include "TComponentGroup.h"
#include "TDemo.h"
#include "TFlagSpinner.h"
#include "TGate.h"
#include "THole.h"
#include "TKickback.h"
#include "TKickout.h"
#include "TLight.h"
#include "TLightBargraph.h"
#include "TLightGroup.h"
#include "TLightRollover.h"
#include "TOneway.h"
#include "TPopupTarget.h"
#include "TRamp.h"
#include "TRollover.h"
#include "TSink.h"
#include "TSoloTarget.h"
#include "TSound.h"
#include "TTableLayer.h"
#include "TTextBox.h"
#include "TTimer.h"
#include "TTripwire.h"
TPinballTable::TPinballTable(): TPinballComponent(nullptr, -1, false)
{
int shortArrLength;
//this->VfTable = (int)&TPinballTable::`vftable';
ListP1 = new objlist_class(32, 16);
ListP2 = new objlist_class(3, 1);
this->Score1 = nullptr;
this->ScoreBallcount = nullptr;
this->ScorePlayerNumber1 = nullptr;
this->UnknownP10 = 0;
this->UnknownBaseFlag2 = 1;
this->UnknownP83 = 0;
this->UnknownP14 = 0;
this->UnknownP13 = 0;
this->UnknownP80 = 0;
this->UnknownP15 = 0;
this->UnknownP77 = 0;
TBall* ballObj = new TBall(this);
ListP2->Add(ballObj);
if (ballObj)
ballObj->UnknownBaseFlag2 = 0;
TTableLayer* tableLayerObj = new TTableLayer(this);
TLightGroup* lightGroupObj = new TLightGroup(this, 0);
this->LightGroup = lightGroupObj;
auto score1 = score::create("score1", pinball::render_background_bitmap);
this->Score1 = score1;
this->Score2 = score1;
int scoreIndex = 1;
auto scorePtr = &this->Score3_x3_at7;
do
{
*scorePtr = score::dup(this->Score1, scoreIndex++);
scorePtr += 7;
}
while (scoreIndex < 4);
this->UnknownP45 = 0;
this->UnknownP73 = 3;
this->ScoreBallcount = (int*)score::create("ballcount1", pinball::render_background_bitmap);
this->ScorePlayerNumber1 = (int*)score::create("player_number1", pinball::render_background_bitmap);
int groupIndexObjects = loader::query_handle("table_objects");
short* shortArr = loader::query_iattribute(groupIndexObjects, 1025, &shortArrLength);
if (shortArrLength > 0)
{
for (int i = 0; i < shortArrLength / 2; ++i)
{
int objectType = *shortArr;
short* shortArrPlus1 = shortArr + 1;
int groupIndex = *shortArrPlus1;
shortArr = shortArrPlus1 + 1;
switch (objectType)
{
case 1000:
case 1010:
// auto wall = new TWall( this, groupIndex);
break;
case 1001:
this->Plunger = new TPlunger(this, groupIndex);
break;
case 1002:
new TLight(this, groupIndex);
//((objlist_class*)(this->LightGroup + 42))->Add(light);
break;
case 1003:
this->FlipperL = new TFlipper(this, groupIndex);
break;
case 1004:
this->FlipperR = new TFlipper(this, groupIndex);
break;
case 1005:
new TBumper(this, groupIndex);
break;
case 1006:
new TPopupTarget(this, groupIndex);
break;
case 1007:
this->Drain = new TDrain(this, groupIndex);
break;
case 1011:
new TBlocker(this, groupIndex);
break;
case 1012:
new TKickout(this, groupIndex, 1);
break;
case 1013:
new TGate(this, groupIndex);
break;
case 1014:
new TKickback(this, groupIndex);
break;
case 1015:
new TRollover(this, groupIndex);
break;
case 1016:
new TOneway(this, groupIndex);
break;
case 1017:
new TSink(this, groupIndex);
break;
case 1018:
new TFlagSpinner(this, groupIndex);
break;
case 1019:
new TSoloTarget(this, groupIndex);
break;
case 1020:
new TLightRollover(this, groupIndex);
break;
case 1021:
new TRamp(this, groupIndex);
break;
case 1022:
new THole(this, groupIndex);
break;
case 1023:
new TDemo(this, groupIndex);
break;
case 1024:
new TTripwire(this, groupIndex);
break;
case 1026:
new TLightGroup(this, groupIndex);
break;
case 1028:
new TComponentGroup(this, groupIndex);
break;
case 1029:
new TKickout(this, groupIndex, 0);
break;
case 1030:
new TLightBargraph(this, groupIndex);
break;
case 1031:
new TSound(this, groupIndex);
break;
case 1032:
new TTimer(this, groupIndex);
break;
case 1033:
new TTextBox(this, groupIndex);
break;
default:
continue;
}
}
}
/* build_occlude_list();
InfoTextBox = (TTextBox*)TPinballTable::find_component(this, "info_text_box");
MissTextBox = (TTextBox*)TPinballTable::find_component(this, "mission_text_box");
control_make_links(this);*/
}

View file

@ -0,0 +1,97 @@
#pragma once
#include "objlist_class.h"
#include "score.h"
#include "TDrain.h"
#include "TFlipper.h"
#include "TLightGroup.h"
#include "TPinballComponent.h"
#include "TPlunger.h"
class TPinballTable:TPinballComponent
{
public:
TPinballTable();
TFlipper* FlipperL;
TFlipper* FlipperR;
scoreStruct* Score1;
int* ScoreBallcount;
int* ScorePlayerNumber1;
int UnknownP6;
int UnknownP7;
int UnknownP8;
int UnknownP9;
int UnknownP10;
int UnknownP11;
int UnknownP12;
int UnknownP13;
int UnknownP14;
int UnknownP15;
scoreStruct* Score2;
int UnknownP17;
int UnknownP18;
int UnknownP19;
int UnknownP20;
int UnknownP21;
int UnknownP22;
scoreStruct* Score3_x3_at7;
int UnknownP24;
int UnknownP25;
int UnknownP26;
int UnknownP27;
int UnknownP28;
int UnknownP29;
int UnknownP30;
int UnknownP31;
int UnknownP32;
int UnknownP33;
int UnknownP34;
int UnknownP35;
int UnknownP36;
int UnknownP37;
int UnknownP38;
int UnknownP39;
int UnknownP40;
int UnknownP41;
int UnknownP42;
int UnknownP43;
int UnknownP44;
int UnknownP45;
TPlunger* Plunger;
TDrain* Drain;
int UnknownP48;
int UnknownP49;
int UnknownP50;
int UnknownP51;
int UnknownP52;
objlist_class* ListP1;
objlist_class* ListP2;
TLightGroup* LightGroup;
int UnknownP58;
int UnknownP59;
int UnknownP60;
int UnknownP61;
int UnknownP62;
int UnknownP63;
int UnknownP64;
int UnknownP65;
int UnknownP66;
int UnknownP67;
int UnknownP68;
int UnknownP69;
int UnknownP70;
int UnknownP71;
int UnknownP72;
int UnknownP73;
int UnknownP74;
int UnknownP75;
int UnknownP76;
int UnknownP77;
int UnknownP78;
int UnknownP79;
int UnknownP80;
int UnknownP81;
int UnknownP82;
int UnknownP83;
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TPlunger.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TPlunger :
public TPinballComponent
{
public:
TPlunger(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TPopupTarget.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TPopupTarget :
public TPinballComponent
{
public:
TPopupTarget(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TRamp.h"

11
SpaceCadetPinball/TRamp.h Normal file
View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TRamp :
public TPinballComponent
{
public:
TRamp(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TRollover.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TRollover :
public TPinballComponent
{
public:
TRollover(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TSink.h"

11
SpaceCadetPinball/TSink.h Normal file
View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TSink :
public TPinballComponent
{
public:
TSink(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TSoloTarget.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TSoloTarget :
public TPinballComponent
{
public:
TSoloTarget(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TSound.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TSound :
public TPinballComponent
{
public:
TSound(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TTableLayer.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TTableLayer :
public TPinballComponent
{
public:
TTableLayer(TPinballTable* table) : TPinballComponent(table, -1, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TTextBox.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TTextBox :
public TPinballComponent
{
public:
TTextBox(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TTimer.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TTimer :
public TPinballComponent
{
public:
TTimer(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,2 @@
#include "pch.h"
#include "TTripwire.h"

View file

@ -0,0 +1,11 @@
#pragma once
#include "TPinballComponent.h"
class TTripwire :
public TPinballComponent
{
public:
TTripwire(TPinballTable* table, int groupIndex) : TPinballComponent(table, groupIndex, false)
{
}
};

View file

@ -0,0 +1,10 @@
#pragma once
#include "objlist_class.h"
class TZmapList :
public objlist_class
{
public:
TZmapList(int SizeInt, int growSize):objlist_class(SizeInt,growSize){};
~TZmapList(){};
};