iw4x-client/src/Game/PreProcessor.cpp

87 lines
2.6 KiB
C++

#include <STDInclude.hpp>
namespace Game
{
PC_FreeDefine_t PC_FreeDefine = PC_FreeDefine_t(0x4E0D60);
PC_FindHashedDefine_t PC_FindHashedDefine = PC_FindHashedDefine_t(0x421E00);
PC_ReadToken_t PC_ReadToken = PC_ReadToken_t(0x4ACCD0);
PC_ReadTokenHandle_t PC_ReadTokenHandle = PC_ReadTokenHandle_t(0x4D2060);
PC_ReadSourceToken_t PC_ReadSourceToken = PC_ReadSourceToken_t(0x4B16F0);
PC_UnreadSourceToken_t PC_UnreadSourceToken = PC_UnreadSourceToken_t(0x47CD00);
PC_SourceError_t PC_SourceError = PC_SourceError_t(0x467A00);
SourceError_t SourceError = SourceError_t(0x44C6C0);
PC_Directive_if_def_t PC_Directive_if_def = PC_Directive_if_def_t(0x490A70);
PC_Directive_if_t PC_Directive_if = PC_Directive_if_t(0x486220);
PC_Directive_ifdef_t PC_Directive_ifdef = PC_Directive_ifdef_t(0x4F4ED0);
PC_Directive_ifndef_t PC_Directive_ifndef = PC_Directive_ifndef_t(0x42EF10);
PC_Directive_elif_t PC_Directive_elif = PC_Directive_elif_t(0x41AAB0);
PC_Directive_else_t PC_Directive_else = PC_Directive_else_t(0x4B55B0);
PC_Directive_endif_t PC_Directive_endif = PC_Directive_endif_t(0x491920);
PC_Directive_include_t PC_Directive_include = PC_Directive_include_t(0x495310);
PC_Directive_define_t PC_Directive_define = PC_Directive_define_t(0x42E460);
PC_Directive_undef_t PC_Directive_undef = PC_Directive_undef_t(0x4E1820);
PC_Directive_line_t PC_Directive_line = PC_Directive_line_t(0x4FD8A0);
PC_Directive_error_t PC_Directive_error = PC_Directive_error_t(0x494AA0);
PC_Directive_pragma_t PC_Directive_pragma = PC_Directive_pragma_t(0x42C160);
PC_Directive_eval_t PC_Directive_eval = PC_Directive_eval_t(0x57DB20);
PC_Directive_evalfloat_t PC_Directive_evalfloat = PC_Directive_evalfloat_t(0x4BC2A0);
__declspec(naked) int PC_ReadLine([[maybe_unused]] source_s* source, [[maybe_unused]] token_s* token, [[maybe_unused]] bool expandDefines)
{
static const DWORD PC_ReadLine_t = 0x57D830;
__asm
{
push eax
pushad
mov ebx, [esp + 0x24 + 0x4] // source
push [esp + 0x24 + 0xC] // expandDefines
push [esp + 0x24 + 0xC] // token
call PC_ReadLine_t
add esp, 0x8
mov [esp + 0x20], eax
popad
pop eax
ret
}
}
void PC_PushIndent(source_s* source, int type_, int skip)
{
static const DWORD PC_PushIndent_t = 0x57D740;
__asm
{
pushad
mov edi, skip
mov esi, source
push type_
call PC_PushIndent_t
add esp, 0x4
popad
}
}
void PC_PopIndent(source_s* source, int* type_, int* skip)
{
static const DWORD PC_PopIndent_t = 0x57D780;
__asm
{
pushad
mov edx, skip
mov eax, type_
mov ecx, source
call PC_PopIndent_t
popad
}
}
}