Score, PinbalTable, PinballComponent v1
Placeholders for T piball component classes.
This commit is contained in:
187
SpaceCadetPinball/TPinballTable.cpp
Normal file
187
SpaceCadetPinball/TPinballTable.cpp
Normal 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);*/
|
||||
}
|
||||
Reference in New Issue
Block a user