| 1 |
#ifndef ONI_SYMBOLS_H |
| 2 |
#define ONI_SYMBOLS_H |
| 3 |
#include "bool.h" |
| 4 |
#include <stdio.h> |
| 5 |
#include "Oni.h" |
| 6 |
#include "oni_gl.h" |
| 7 |
#include "Oni_Character.h" |
| 8 |
#include "BFW_ScriptLang.h" |
| 9 |
#define DefVar(type, name, address) static type* _##name = (type*)address |
| 10 |
//variables |
| 11 |
|
| 12 |
//DO THIS INSTEAD! |
| 13 |
DefVar( onibool, ai2_deaf, 0x005ec0c1 ); |
| 14 |
|
| 15 |
DefVar( HINSTANCE, g_Instance, 0x0061F9E4 ); |
| 16 |
|
| 17 |
DefVar( gl_api_t*, gl_api, 0x00560604 ); |
| 18 |
DefVar( gl_engine_t*, gl_eng, 0x00560600 ); |
| 19 |
DefVar( WORD*, gl_gamma_ramp, 0x0055fdfc ); |
| 20 |
DefVar( int, gl_gamma_ramp_valid, 0x005603fc ); |
| 21 |
|
| 22 |
DefVar( char, opt_ignore_private_data,0x006370f0 ); |
| 23 |
DefVar( char, opt_sound, 0x006370fc ); |
| 24 |
|
| 25 |
DefVar( char, AKgDebug_DebugMaps, 0x002b2204 ); |
| 26 |
|
| 27 |
DefVar( bool, BFgDebugFileEnable, 0x0055c8d0 ); |
| 28 |
|
| 29 |
DefVar( uint32_t, COgConsoleLines, 0x005cb468 ); |
| 30 |
DefVar( uint32_t, COgDefaultTextShade, 0x00533f70 ); |
| 31 |
DefVar( uint32_t, COgDefaultTextShadow, 0x00533f74 ); |
| 32 |
DefVar( uint32_t, COgFadeTimeValue, 0x00533f68 ); |
| 33 |
|
| 34 |
DefVar( FILE*, ONgFileStartup, 0x005711b8 ); |
| 35 |
DefVar( GameState*, ONgGameState, 0x005ece7c ); |
| 36 |
DefVar( ONtPlatformData,ONgPlatformData, 0x0053100c ); |
| 37 |
|
| 38 |
DefVar( char, M3gResolutionSwitch, 0x00531634 ); |
| 39 |
|
| 40 |
DefVar( bool, SSgSearchOnDisk, 0x005eb758 ); |
| 41 |
#undef DefVar |
| 42 |
//Yes, I'm aware that there are a few ways this could go wrong |
| 43 |
//but in the interests of neatness and not having to go through and rename all the variables |
| 44 |
//and use annoying dereferencing, this will do. |
| 45 |
|
| 46 |
//...too bad there is no way to nest #defines... |
| 47 |
#define AKgDebug_DebugMaps (*_AKgDebug_DebugMaps) |
| 48 |
#define ai2_deaf (*_ai2_deaf) |
| 49 |
#define g_Instance (*_g_Instance) |
| 50 |
#define M3gResolutionSwitch (*_M3gResolutionSwitch) |
| 51 |
#define ONgGameState (*_ONgGameState) |
| 52 |
#define ONgPlatformData (*_ONgPlatformData) |
| 53 |
#define opt_ignore_private_data (*_opt_ignore_private_data) |
| 54 |
#define opt_sound (*_opt_sound) |
| 55 |
#define BFgDebugFileEnable (*_BFgDebugFileEnable) |
| 56 |
#define SSgSearchOnDisk (*_SSgSearchOnDisk) |
| 57 |
#define gl_gamma_ramp (*_gl_gamma_ramp) |
| 58 |
#define gl_gamma_ramp_valid (*_gl_gamma_ramp_valid) |
| 59 |
#define gl_api (*_gl_api) |
| 60 |
#define gl_eng (*_gl_eng) |
| 61 |
#define COgConsoleLines (*_COgConsoleLines) |
| 62 |
#define COgFadeTimeValue (*_COgFadeTimeValue) |
| 63 |
#define COgDefaultTextShade (*_COgDefaultTextShade) |
| 64 |
#define COgDefaultTextShadow (*_COgDefaultTextShadow) |
| 65 |
#define ONgFileStartup (*_ONgFileStartup) |
| 66 |
|
| 67 |
|
| 68 |
#undef $ |
| 69 |
|
| 70 |
//functions |
| 71 |
//__fastcall isn't neccessary if you specify the correct calling convention. |
| 72 |
typedef int64_t ( *_UUrMachineTime_High)(); |
| 73 |
typedef double ( *_UUrMachineTime_High_Frequency)(); |
| 74 |
typedef int64_t ( *_UUrMachineTime_Sixtieths)(); |
| 75 |
typedef void ( *_UUrPlatform_Initialize)(); |
| 76 |
typedef void ( *_UUrPlatform_Terminate)(); |
| 77 |
|
| 78 |
typedef FILE* ( __cdecl *_oni_fopen)(const char*, const char*); |
| 79 |
typedef int ( __cdecl *_oni_fprintf)(FILE*, const char*, ...); |
| 80 |
typedef int ( __cdecl *_oni_fflush)(FILE*); |
| 81 |
|
| 82 |
typedef void ( __cdecl *_ONiMain)(int ArgCount, char *ArgList[]); |
| 83 |
typedef short ( *_ONrPlatform_Initialize)(ONtPlatformData *PlatformData); |
| 84 |
typedef LRESULT ( CALLBACK *_ONrPlatform_WindowProc)(HWND Window, UINT Message, |
| 85 |
WPARAM WParam, LPARAM LParam); |
| 86 |
typedef unsigned int ( *_gl_enumerate_valid_display_modes)(M3tDisplayMode modes[16]); |
| 87 |
typedef int ( *_gl_platform_set_pixel_format)(HDC hdc); |
| 88 |
typedef int ( *_gl_platform_initialize)(); |
| 89 |
|
| 90 |
typedef float ( *_ONrPersist_GetGamma)(); |
| 91 |
typedef uint8_t ( *_ONrPersist_GetWonGame)(); |
| 92 |
|
| 93 |
typedef void ( __cdecl *_UUrStartupMessage)(const char* fmt, ...); |
| 94 |
typedef int16_t ( *_ONrGameState_NewCharacter)(void* CHAR, void* AISA, |
| 95 |
void* flag, uint32_t* list_location); |
| 96 |
typedef ActiveCharacter* ( *_ONrGetActiveCharacter)(void* CharacterPtr); |
| 97 |
typedef void ( *_ONrCharacter_NewAnimationHook)(Character *ioCharacter, ActiveCharacter *ioActiveCharacter); |
| 98 |
typedef void ( *_ONrCharacter_SetAnimationExternal)(Character *ioCharacter, short state, void* animation, int interpolation); |
| 99 |
|
| 100 |
typedef void ( *_COrTextArea_Print)(uint32_t area, uint32_t priority, |
| 101 |
uint32_t textshade, uint32_t textshadowshade, |
| 102 |
const char* text, uint32_t unk_alwaws_0, uint32_t fadetime); |
| 103 |
typedef uint8_t ONICALL ( *_ONrCheater)(uint32_t cheat); |
| 104 |
typedef int ( __cdecl *_AUrMessageBox)(int Buttons, char *Message, ...); |
| 105 |
typedef char* ONICALL ( *_SSrMessage_Find)(char* message_key); //Returns a prompt message from a message key |
| 106 |
//typedef void ( *_ONiGameState_FindAutoPromptMessage)(char* Note, void* ptr); |
| 107 |
|
| 108 |
typedef uint16_t (ONICALL *sl_func)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret); |
| 109 |
typedef uint16_t (ONICALL *_SLrScript_Command_Register_ReturnType)(char* name, char* desc, char* argfmt, sl_type type, sl_func callback); |
| 110 |
typedef uint16_t (ONICALL *_SLrScript_Command_Register_Void)(char* name, char* desc, char* argfmt, sl_func callback); |
| 111 |
typedef uint16_t (ONICALL *_SLrGlobalVariable_Register_Int32)(char* name, char* desc, int32_t* data); |
| 112 |
typedef uint16_t (ONICALL *_SLrGlobalVariable_Register_Float)(char* name, char* desc, float* data); |
| 113 |
typedef uint16_t (ONICALL *_SLrGlobalVariable_Register_String)(char* name, char* desc, char* data); |
| 114 |
|
| 115 |
typedef int ( *_COrMessage_Print)(char* Message, char* Key, void* noidea); |
| 116 |
//typedef void ( *_COrConsole_StatusLine_Display)(); |
| 117 |
typedef int16_t ( *_TMrInstance_GetDataPtr)(int tag, char* name, void* pointer); |
| 118 |
typedef char* ( *_TMrInstance_GetInstanceName)(void* InstancePointer); |
| 119 |
|
| 120 |
typedef int16_t ( *_TSrContext_DrawText)(uint32_t TSrContext, char* Text, char alpha, uint32_t usuallyzero, void* pRect); |
| 121 |
//int16_t TSrContext_New ( TSFF*, size 7, ??? 1, ??? 1, ??? 0, TSrContext*); |
| 122 |
typedef int16_t ( *_TSrContext_New)( void* FontInstance, int size, int hthsik1,int hthsik2,int hthsik3, void* TSrContext); |
| 123 |
|
| 124 |
typedef int16_t ( *_TSrContext_SetShade)( |
| 125 |
void *ioTextContext, |
| 126 |
uint32_t inShade); |
| 127 |
typedef void (* _ONrGameState_Timer_Start)( char* function, int time ); |
| 128 |
typedef uint16_t ( *_TRrAnimation_GetDuration)(void* Animation); |
| 129 |
typedef uint16_t ( *_TRrAnimation_GetTo)(void* Animation); |
| 130 |
typedef uint16_t ( *_TRrAnimation_GetFrom)(void* Animation); |
| 131 |
|
| 132 |
typedef void |
| 133 |
( *_ONrCharacter_SetHitPoints)( |
| 134 |
Character *ioCharacter, |
| 135 |
uint32_t inHitPoints); |
| 136 |
typedef void ( *_ONrCorpse_Create)(Character* Character); |
| 137 |
//yes im cheating so badly. |
| 138 |
typedef uint16_t ( *_iSetCharacterClass)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret); |
| 139 |
typedef uint16_t ( *_AI2iScript_Spawn)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret); |
| 140 |
typedef void * ( *_OBJrObjectType_GetObject_ByNumber)(int inObjectType, int inIndex); |
| 141 |
typedef int ( *_OBJiObjectGroup_GetNumObjects)(void *inObjectGroup); |
| 142 |
|
| 143 |
typedef void ( *_ONrGameState_DeleteCharacter)(Character *inCharacter); |
| 144 |
|
| 145 |
typedef char (*OBJtEnumCallback_Object)( |
| 146 |
void *inObject, |
| 147 |
int inUserData); |
| 148 |
|
| 149 |
typedef int ( *_OBJrObjectType_EnumerateObjects)( |
| 150 |
int inObjectType, |
| 151 |
OBJtEnumCallback_Object inEnumCallback, |
| 152 |
int inUserData); |
| 153 |
|
| 154 |
typedef void ( *_OBJrDoor_Open)( DoorObject *inObject, Character *inCharacter ); |
| 155 |
typedef void ( *_OBJrDoor_ForceOpen)(short id); |
| 156 |
typedef short ( *_OBJrConsole_OnActivate)( void *inObject, Character *inCharacter ); |
| 157 |
//typedef void* ( *_OBJrConsole_GetByID)( short ID ); |
| 158 |
#define ExtFunc(name) extern _##name name |
| 159 |
ExtFunc(SLrScript_Command_Register_ReturnType); |
| 160 |
ExtFunc(SLrScript_Command_Register_Void); |
| 161 |
ExtFunc(SLrGlobalVariable_Register_Int32); |
| 162 |
ExtFunc(SLrGlobalVariable_Register_Float); |
| 163 |
ExtFunc(SLrGlobalVariable_Register_String); |
| 164 |
//ExtFunc(COrConsole_StatusLine_Display); |
| 165 |
ExtFunc(OBJrObjectType_EnumerateObjects); |
| 166 |
//ExtFunc(OBJiObjectGroup_GetNumObjects); |
| 167 |
//ExtFunc(OBJrConsole_GetByID); |
| 168 |
ExtFunc(AI2iScript_Spawn); |
| 169 |
|
| 170 |
ExtFunc(TRrAnimation_GetDuration); |
| 171 |
ExtFunc(TRrAnimation_GetFrom); |
| 172 |
ExtFunc(TRrAnimation_GetTo); |
| 173 |
ExtFunc(ONrGameState_Timer_Start); |
| 174 |
extern _UUrMachineTime_High UUrMachineTime_High; |
| 175 |
extern _UUrMachineTime_High_Frequency UUrMachineTime_High_Frequency; |
| 176 |
extern _UUrMachineTime_Sixtieths UUrMachineTime_Sixtieths; |
| 177 |
extern _UUrPlatform_Initialize UUrPlatform_Initialize; |
| 178 |
extern _UUrPlatform_Terminate UUrPlatform_Terminate; |
| 179 |
|
| 180 |
extern _oni_fopen oni_fopen; |
| 181 |
extern _oni_fprintf oni_fprintf; |
| 182 |
extern _oni_fflush oni_fflush; |
| 183 |
|
| 184 |
extern _ONiMain ONiMain; |
| 185 |
extern _ONrPlatform_Initialize ONrPlatform_Initialize; |
| 186 |
extern _ONrPlatform_WindowProc ONrPlatform_WindowProc; |
| 187 |
|
| 188 |
ExtFunc(COrMessage_Print); |
| 189 |
|
| 190 |
ExtFunc(TMrInstance_GetDataPtr); |
| 191 |
ExtFunc(TMrInstance_GetInstanceName); |
| 192 |
|
| 193 |
ExtFunc(gl_enumerate_valid_display_modes); |
| 194 |
ExtFunc(gl_platform_set_pixel_format); |
| 195 |
ExtFunc(gl_platform_initialize); |
| 196 |
ExtFunc(ONrPersist_GetGamma); |
| 197 |
ExtFunc(ONrPersist_GetWonGame); |
| 198 |
ExtFunc(UUrStartupMessage); |
| 199 |
|
| 200 |
ExtFunc(ONrCharacter_SetAnimationExternal); |
| 201 |
|
| 202 |
ExtFunc(ONrCharacter_NewAnimationHook); |
| 203 |
ExtFunc(ONrCharacter_SetHitPoints); |
| 204 |
ExtFunc(ONrGameState_NewCharacter); |
| 205 |
ExtFunc(ONrGameState_DeleteCharacter); |
| 206 |
ExtFunc(ONrGetActiveCharacter); |
| 207 |
ExtFunc(ONrCorpse_Create); |
| 208 |
ExtFunc(iSetCharacterClass); |
| 209 |
|
| 210 |
ExtFunc(COrTextArea_Print); |
| 211 |
|
| 212 |
ExtFunc(ONrCheater); |
| 213 |
ExtFunc(AUrMessageBox); |
| 214 |
|
| 215 |
ExtFunc(SSrMessage_Find); |
| 216 |
//ExtFunc(ONiGameState_FindAutoPromptMessage); |
| 217 |
|
| 218 |
ExtFunc(TSrContext_DrawText); |
| 219 |
ExtFunc(TSrContext_New); |
| 220 |
ExtFunc(TSrContext_SetShade); |
| 221 |
ExtFunc(OBJrDoor_Open); |
| 222 |
ExtFunc(OBJrDoor_ForceOpen); |
| 223 |
|
| 224 |
ExtFunc(OBJrConsole_OnActivate); |
| 225 |
//static const void* ( *OBJrConsole_GetByID)( short ID ) = (const void*(*)(short))0x004C0950; |
| 226 |
#undef DefFunc |
| 227 |
#define DefFunc( type, name, args, address) static const type ONICALL ( * name ) args = (const type (*) args )address; |
| 228 |
DefFunc( void*, OBJrConsole_GetByID, (short ID), 0x004C0950); |
| 229 |
DefFunc( void, COrConsole_StatusLine_Display, (), 0x00431E70 ); |
| 230 |
//typedef void ( *_ONiGameState_FindAutoPromptMessage)(char* Note, void* ptr); |
| 231 |
DefFunc( void, ONiGameState_FindAutoPromptMessage, (char* Note, void* ptr), 0x004FDBE0 ); |
| 232 |
DefFunc( void, ONrCharacter_SetCharacterClass, (Character* Char, ONCC* Class), 0x004D7C30 ); |
| 233 |
DefFunc( short, TMrInstance_GetDataPtr_ByNumber, (int tag, int number, void** out), 0x00423680 ); |
| 234 |
DefFunc( uint32_t, TMrInstance_GetTagCount, (int tag), 0x004236F0); |
| 235 |
//DefFunc( uint32_t, stdcall M3rTextureMap_New, (int tag), 0x041EB00); |
| 236 |
//(short width, short height, int type, int allocated, int flags, char* name, void** output) |
| 237 |
DefFunc( uint32_t, ONrCharacter_GetHealthShade, (uint32_t health, uint32_t maxhealth), 0x004EF450); |
| 238 |
//DefFunc( short, TSrContext_SetShade, (void* context, int shade ), 0x0042EE50); |
| 239 |
DefFunc( void, ONiDrawWeaponSight, (Character* Char), 0x004E1900 ); |
| 240 |
DefFunc( void, AI2rDisplayDebuggingInfo, (Character* Char), 0x0048C5F0 ); |
| 241 |
static const uint32_t ( * M3rTextureMap_New)(short width, short height, int type, int allocated, int flags, char* name, void** output) |
| 242 |
= (const uint32_t(*)(short width, short height, int type, int allocated, int flags, char* name, void** output))0x041EB00; |
| 243 |
#endif |