TombEngine/TR5Main/Global/malloc.cpp

67 lines
1.2 KiB
C++
Raw Normal View History

2018-08-19 09:46:58 +02:00
#include "malloc.h"
#include <stdlib.h>
#include "..\Global\global.h"
char* GameMalloc(int size)
{
//printf("Size: %d, MallocFree: %d\n", size, MallocFree);
return GameMallocReal(size);
}
2018-08-19 09:46:58 +02:00
/*
void InitGameMalloc()
2018-08-19 09:46:58 +02:00
{
char* buffer = (char*)malloc(GAME_BUFFER_SIZE);
MallocBuffer = buffer;
MallocSize = GAME_BUFFER_SIZE;
MallocPtr = buffer;
MallocFree = GAME_BUFFER_SIZE;
MallocUsed = 0;
}
char* GameMalloc(int size)
2018-08-19 09:46:58 +02:00
{
int memSize = (size + 3) & -4;
2018-08-19 09:46:58 +02:00
if (memSize > MallocFree)
{
DB_Log(0, "Out of memory");
return NULL;
}
else
{
char* ptr = MallocPtr;
MallocFree -= memSize;
MallocUsed += memSize;
MallocPtr += memSize;
memset(ptr, 0, 4 * (memSize >> 2));
return ptr;
}
}
void GameFree(int size)
2018-08-19 09:46:58 +02:00
{
int memSize = (size + 3) & -4;
2018-08-19 09:46:58 +02:00
MallocPtr -= memSize;
MallocFree += memSize;
MallocUsed -= memSize;
}
void* Malloc(int size)
2018-08-19 09:46:58 +02:00
{
return malloc(size);
}
void Free(void* ptr)
2018-08-19 09:46:58 +02:00
{
free(ptr);
}*/
void Inject_Malloc()
{
INJECT(0x0040101E, GameMalloc);
2018-08-19 09:46:58 +02:00
/*INJECT(0x004A7CB0, InitGameMalloc);
INJECT(0x0040101E, GameMalloc);
INJECT(0x00403116, GameFree);
INJECT(0x004E2220, Malloc);
INJECT(0x004E2C90, Free);*/
}