SpaceCadetPinball/SpaceCadetPinball/score.cpp

57 lines
1.2 KiB
C++
Raw Normal View History

#include "pch.h"
#include "score.h"
#include "loader.h"
2020-11-05 16:44:34 +01:00
#include "memory.h"
#include "partman.h"
score_msg_font_type* score::msg_fontp;
2020-11-07 16:41:14 +01:00
int score::init()
{
return 1;
}
2020-11-15 15:39:00 +01:00
scoreStruct* score::create(LPCSTR fieldName, gdrv_bitmap8* renderBgBmp)
{
2020-11-05 16:44:34 +01:00
scoreStruct* score = (scoreStruct*)memory::allocate(sizeof(scoreStruct));
if (!score)
return nullptr;
score->Unknown1 = -9999;
2020-11-15 15:39:00 +01:00
score->BackgroundBmp = renderBgBmp;
2020-11-08 16:37:59 +01:00
__int16* shortArr = (__int16*)partman::field_labeled(loader::loader_table, fieldName, datFieldTypes::ShortArray);
if (!shortArr)
{
2020-11-05 16:44:34 +01:00
memory::free(score);
return nullptr;
}
int groupIndex = *shortArr++;
score->Short1 = *shortArr++;
score->Short2 = *shortArr++;
score->Short3 = *shortArr++;
score->Short4 = *shortArr;
char** bmpPtr = &score->Bitmap8Bit1;
int index = 10;
do
{
2020-11-08 16:37:59 +01:00
*bmpPtr = partman::field(loader::loader_table, groupIndex, datFieldTypes::Bitmap8bit);
++bmpPtr;
++groupIndex;
--index;
}
while (index);
return score;
}
scoreStruct* score::dup(scoreStruct* score, int scoreIndex)
{
2020-11-05 16:44:34 +01:00
scoreStruct* result = (scoreStruct*)memory::allocate(sizeof(scoreStruct));
if (result)
memcpy(result, score, sizeof(scoreStruct));
return result;
}
HRSRC score::load_msg_font(LPCSTR lpName)
{
return nullptr;
}