2020-10-04 08:28:38 +02:00
|
|
|
// SpaceCadetPinball.cpp : This file contains the 'main' function. Program execution begins and ends there.
|
|
|
|
//
|
|
|
|
|
|
|
|
#include "pch.h"
|
2020-10-24 17:30:45 +02:00
|
|
|
|
2020-10-04 08:28:38 +02:00
|
|
|
#include <iostream>
|
|
|
|
#include "objlist_class.h"
|
2020-10-18 17:08:41 +02:00
|
|
|
#include "partman.h"
|
|
|
|
#include "DatParser.h"
|
2020-11-08 16:37:59 +01:00
|
|
|
#include "gdrv.h"
|
2020-10-25 15:17:26 +01:00
|
|
|
#include "loader.h"
|
2020-11-29 16:50:49 +01:00
|
|
|
#include "pb.h"
|
2020-11-04 14:22:52 +01:00
|
|
|
#include "pinball.h"
|
2020-11-01 16:45:29 +01:00
|
|
|
#include "score.h"
|
|
|
|
#include "TPinballTable.h"
|
2020-11-04 14:22:52 +01:00
|
|
|
#include "TTextBox.h"
|
2020-10-04 08:28:38 +02:00
|
|
|
|
|
|
|
int main()
|
|
|
|
{
|
2020-10-18 17:08:41 +02:00
|
|
|
std::cout << "Hello World!\n";
|
2020-11-29 16:50:49 +01:00
|
|
|
{
|
|
|
|
// Testing with UI
|
|
|
|
/* lstrcpyA(pinball::DatFileName, "PINBALL.DAT");
|
|
|
|
pinball::hinst = GetModuleHandleA(nullptr);
|
|
|
|
char cmdLine[1]{};
|
|
|
|
pb::init();
|
|
|
|
WinMain(pinball::hinst, 0, cmdLine, 10);*/
|
|
|
|
}
|
2020-11-08 16:37:59 +01:00
|
|
|
|
2020-11-13 17:04:58 +01:00
|
|
|
gdrv::init(0, 0);
|
2020-11-08 16:37:59 +01:00
|
|
|
auto dib = gdrv::DibCreate(8, 1, 1);
|
|
|
|
gdrv::DibSetUsage(dib, 0, 1);
|
2020-11-04 14:22:52 +01:00
|
|
|
|
2020-10-18 17:08:41 +02:00
|
|
|
objlist_class d = objlist_class(2, 4);
|
|
|
|
for (int i = 0; i < 100; i++)
|
2020-10-04 08:28:38 +02:00
|
|
|
{
|
|
|
|
d.Add((void*)i);
|
|
|
|
}
|
2020-11-01 16:45:29 +01:00
|
|
|
d.Delete((void*)3);
|
2020-10-18 17:08:41 +02:00
|
|
|
|
|
|
|
auto xx = sizeof(datFileHeader);
|
|
|
|
|
2020-11-29 16:50:49 +01:00
|
|
|
lstrcpyA(pinball::DatFileName, "PINBALL.DAT");
|
|
|
|
pb::init();
|
|
|
|
auto datFile = pb::record_table;
|
2020-10-24 17:30:45 +02:00
|
|
|
|
2020-11-08 16:37:59 +01:00
|
|
|
assert(partman::field_size_nth(datFile, 0, datFieldTypes::String, 0) == 43);
|
|
|
|
assert(partman::field_size_nth(datFile, 2, datFieldTypes::Palette, 0) == 1024);
|
|
|
|
assert(partman::field_size_nth(datFile, 101, datFieldTypes::FloatArray, 4) == 32);
|
2020-10-24 17:30:45 +02:00
|
|
|
|
2020-11-08 16:37:59 +01:00
|
|
|
assert(strcmp(partman::field(datFile, 0, datFieldTypes::String), "3D-Pinball: Copyright 1994, Cinematronics") == 0);
|
|
|
|
assert(strcmp(partman::field(datFile, 540, datFieldTypes::GroupName), "table_objects") == 0);
|
2020-10-24 17:30:45 +02:00
|
|
|
|
|
|
|
assert(partman::record_labeled(datFile, "background") == 2);
|
|
|
|
assert(partman::record_labeled(datFile, "a_bump1") == 372);
|
2020-11-01 16:45:29 +01:00
|
|
|
|
2020-11-08 16:37:59 +01:00
|
|
|
assert(memcmp(partman::field_labeled(datFile, "table_size", datFieldTypes::ShortArray), new short[2]{ 600, 416 }, 2 * 2) == 0);
|
2020-10-18 17:08:41 +02:00
|
|
|
|
2020-10-25 15:17:26 +01:00
|
|
|
//loader::error(25, 26);
|
|
|
|
loader::get_sound_id(18);
|
2020-10-30 13:26:00 +01:00
|
|
|
visualStruct visual1{};
|
|
|
|
loader::material(96, &visual1);
|
2020-11-01 16:45:29 +01:00
|
|
|
loader::query_visual(283, 0, &visual1);
|
2020-10-30 13:26:00 +01:00
|
|
|
visualKickerStruct kicker1{};
|
|
|
|
loader::kicker(509, &kicker1);
|
2020-11-01 16:45:29 +01:00
|
|
|
|
2020-11-15 15:39:00 +01:00
|
|
|
auto score1 = score::create("score1", nullptr);
|
2020-11-01 16:45:29 +01:00
|
|
|
|
2020-11-29 16:50:49 +01:00
|
|
|
auto pinballTable = pb::MainTable;
|
2020-11-04 14:22:52 +01:00
|
|
|
//pinballTable->find_component(1);
|
|
|
|
|
|
|
|
for (int i = 0; i < 190; i++)
|
|
|
|
{
|
|
|
|
auto rsc = pinball::get_rc_string(i, 0);
|
|
|
|
if (rsc)
|
|
|
|
printf_s("%d:\t%s\n", i, rsc);
|
|
|
|
}
|
2020-11-05 16:44:34 +01:00
|
|
|
|
2020-10-18 17:08:41 +02:00
|
|
|
//DatParser::Parse(dataFileName);
|
2020-11-01 16:45:29 +01:00
|
|
|
std::cout << "Goodby World!\n";
|
2020-10-04 08:28:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
|
|
|
|
// Debug program: F5 or Debug > Start Debugging menu
|
|
|
|
|
|
|
|
// Tips for Getting Started:
|
|
|
|
// 1. Use the Solution Explorer window to add/manage files
|
|
|
|
// 2. Use the Team Explorer window to connect to source control
|
|
|
|
// 3. Use the Output window to see build output and other messages
|
|
|
|
// 4. Use the Error List window to view errors
|
|
|
|
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
|
|
|
|
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
|