1
0
Fork 0
mirror of https://github.com/k4zmu2a/SpaceCadetPinball.git synced 2025-09-07 16:50:15 +02:00

winmain, memory, options v1.

This commit is contained in:
oz 2020-11-05 18:44:34 +03:00
parent 4157e79c83
commit 473ed6b9d9
17 changed files with 418 additions and 35 deletions

View file

@ -1,6 +1,8 @@
#include "pch.h"
#include "partman.h"
#include "memory.h"
short partman::_field_size[] = {
2, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0
};
@ -24,7 +26,7 @@ datFileStruct* partman::load_records(LPCSTR lpFileName)
_lclose(fileHandle);
return nullptr;
}
datFile = (datFileStruct*)memoryallocate(sizeof(datFileStruct));
datFile = (datFileStruct*)memory::allocate(sizeof(datFileStruct));
if (!datFile)
{
_lclose(fileHandle);
@ -37,12 +39,12 @@ datFileStruct* partman::load_records(LPCSTR lpFileName)
else
{
int lenOfStr = lstrlenA(Buffer.Description);
auto descriptionBuf = (char*)memoryallocate(lenOfStr + 1);
auto descriptionBuf = (char*)memory::allocate(lenOfStr + 1);
datFile->Description = descriptionBuf;
if (!descriptionBuf)
{
_lclose(fileHandle);
memoryfree(datFile);
memory::free(datFile);
return nullptr;
}
lstrcpyA(descriptionBuf, Buffer.Description);
@ -50,26 +52,26 @@ datFileStruct* partman::load_records(LPCSTR lpFileName)
if (Buffer.Unknown)
{
auto unknownBuf = (char*)memoryallocate(Buffer.Unknown);
auto unknownBuf = (char*)memory::allocate(Buffer.Unknown);
if (!unknownBuf)
{
_lclose(fileHandle);
if (datFile->Description)
memoryfree(datFile->Description);
memoryfree(datFile);
memory::free(datFile->Description);
memory::free(datFile);
return nullptr;
}
_lread(fileHandle, static_cast<void*>(unknownBuf), Buffer.Unknown);
memoryfree(unknownBuf);
memory::free(unknownBuf);
}
groupDataBuf = (datGroupData**)memoryallocate(sizeof(void*) * Buffer.NumberOfGroups);
groupDataBuf = (datGroupData**)memory::allocate(sizeof(void*) * Buffer.NumberOfGroups);
datFile->GroupData = groupDataBuf;
if (!groupDataBuf)
{
if (datFile->Description)
memoryfree(datFile->Description);
memoryfree(datFile);
memory::free(datFile->Description);
memory::free(datFile);
return nullptr;
}
@ -83,7 +85,7 @@ datFileStruct* partman::load_records(LPCSTR lpFileName)
groupDataSize = 0;
else
groupDataSize = entryCount - 1;
datFile->GroupData[groupIndex] = (datGroupData*)memoryallocate(
datFile->GroupData[groupIndex] = (datGroupData*)memory::allocate(
sizeof(datEntryData) * groupDataSize + sizeof(datGroupData));
datGroupData* groupData = datFile->GroupData[groupIndex];
if (!groupData)
@ -105,22 +107,22 @@ datFileStruct* partman::load_records(LPCSTR lpFileName)
if (entryType == Bitmap8bit)
{
_hread(fileHandle, &bmpHeader, 14);
char* bmpBuffer = (char*)memoryallocate(0x25u);
char* bmpBuffer = (char*)memory::allocate(0x25u);
entryData->Buffer = bmpBuffer;
if (!bmpBuffer)
goto LABEL_41;
/*if (bmpHeader.Unknown2 & 2 ? gdrv_create_bitmap((int)bmpBuffer, bmpHeader.Width, bmpHeader.Height) : gdrv_create_raw_bitmap((int)bmpBuffer, bmpHeader.Width, bmpHeader.Height, bmpHeader.Unknown2 & 1))
goto LABEL_41;*/
//_hread(fileHandle, *(LPVOID*)(entryData->Buffer + 8), bmpHeader.Size);
char* tempBuff = (char*)memoryallocate(bmpHeader.Size);
char* tempBuff = (char*)memory::allocate(bmpHeader.Size);
_hread(fileHandle, tempBuff, bmpHeader.Size);
memoryfree(tempBuff);
memory::free(tempBuff);
//*((int*)entryData->Buffer + 29) = bmpHeader.XPosition;
//*((int*)entryData->Buffer + 33) = bmpHeader.YPosition;
}
else
{
char* entryBuffer = (char*)memoryallocate(fieldSize);
char* entryBuffer = (char*)memory::allocate(fieldSize);
entryData->Buffer = entryBuffer;
if (!entryBuffer)
goto LABEL_41;
@ -165,20 +167,20 @@ void partman::unload_records(datFileStruct* datFile)
{
//if (HIWORD(entry->EntryType) == 1)
//gdrv_destroy_bitmap(entry->Buffer);
memoryfree(entry->Buffer);
memory::free(entry->Buffer);
}
++entryIndex;
++entry;
}
while (entryIndex < group->EntryCount);
}
memoryfree(group);
memory::free(group);
}
}
if (datFile->Description)
memoryfree(datFile->Description);
memoryfree(datFile->GroupData);
memoryfree(datFile);
memory::free(datFile->Description);
memory::free(datFile->GroupData);
memory::free(datFile);
}
char* partman::field(datFileStruct* datFile, int groupIndex, datFieldTypes targetEntryType)