ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/src/Oni_Symbols.h
Revision: 893
Committed: Fri Jul 26 10:42:31 2013 UTC (12 years, 2 months ago) by alloc
Content type: text/x-chdr
File size: 13050 byte(s)
Log Message:
Daodan 3.4:
- Fixes #66 by only allowing landscape resolutions
- Fixes #64, adds patch "showalllasersights" defaulting to false
- Fixes #67, also printing Daodan version

File Contents

# Content
1 #ifndef ONI_SYMBOLS_H
2 #define ONI_SYMBOLS_H
3 #include "stdint.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
10
11 //Define variables of Oni: #define VARNAME (*((TYPE*)ADDRESS))
12
13 // AIs are deaf (ger: "taub")
14 #define ai2_deaf (*((onibool*)0x005ec0c1))
15
16 // Option "debug" ... but what does it do?
17 #define AKgDebug_DebugMaps (*((char*)0x002b2204))
18
19 // Option "debugfiles" ... but what does it do?
20 #define BFgDebugFileEnable (*((bool*)0x0055c8d0))
21
22 // Parameter 1 to COrTextArea_Print. Context pointer?
23 #define COgConsoleLines (*((uint32_t*)0x005cb468))
24
25 // Default console text color
26 #define COgDefaultTextShade (*((uint32_t*)0x00533f70))
27
28 // Default console text shadow color
29 #define COgDefaultTextShadow (*((uint32_t*)0x00533f74))
30
31 // Console text fade timeout
32 #define COgFadeTimeValue (*((uint32_t*)0x00533f68))
33
34 // Game termination flag (ONiRunGame loops on it).
35 #define ONgTerminateGame (*((UUtBool*)0x00630ffd))
36
37 // Window manager is running (drawing and updating windows).
38 #define WMgActive (*((UUtBool*)0x005e99a0))
39
40 // Set by WinMain, used by UUrPlatform_Initialize and ONrPlatform_Initialize,
41 // which copies it into ONgPlatformData.
42 #define ONgInstance (*((HINSTANCE*)0x0061f9e4))
43
44 // Keeps initial gamma ramp value (before any change).
45 #define GLgInitialGammaRamp (((M3tWin32GammaRamp*)0x0055fdfc))
46
47 // Nonzero when gamma ramp was successfully read into GLgInitialGammaRamp.
48 #define GLgGammaRampValid (*((int*)0x005603fc))
49
50 // OpenGL: list of pointers to opengl32.dll functions (and a few functions from GL extensions)
51 #define gl_api (*((gl_api_t**)0x00560604))
52
53 // OpenGL render engine descriptor (resolutions, flags, context methods)
54 #define gl (*((gl_engine_t**)0x00560600))
55
56 // Initial display mode (saved by gl_library_is_loaded).
57 #define GLgInitialMode (*((DEVMODE*)0x0055fd60))
58
59 // False to prevent Oni from changing display settings (however Bink
60 // player does not respect this setting).
61 #define M3gResolutionSwitch (*((char*)0x00531634))
62
63 // Startup.txt file handle
64 #define ONgFileStartup (*((FILE**)0x005711b8))
65
66 // Current GameState
67 #define ONgGameState (*((GameState**)0x005ece7c))
68
69 // Current ONtPlatformData
70 #define ONgPlatformData (*((ONtPlatformData*)0x00631008))
71
72 // Load non levelX_final-files yes/no
73 #define opt_ignore_private_data (*((char*)0x006370f0))
74
75 // Play sound yes/no
76 #define opt_sound (*((char*)0x006370fc))
77
78 // Option "findsounds" ... but what does it do?
79 #define SSgSearchOnDisk (*((bool*)0x005eb758))
80
81 // OBJgTriggerVolume_Visible - bsl var to show trigger volumes
82 #define OBJgTriggerVolume_Visible (*((bool*)0x005ec6c4))
83
84 //#define OBJgFlag_DrawFlags (*((void*)0x005ec624))
85 //#define OBJgFlag_ViewPrefix (*((void*)0x005ec650))
86 //#define OBJgFlag_DrawNameDistance (*((void*)0x005ec634))
87
88 // Method signature for script (BSL) functions
89 typedef uint16_t ( ONICALL *sl_func)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret);
90
91 // Used by function definition below: OBJrObjectType_EnumerateObjects
92 typedef char ( ONICALL *OBJtEnumCallback_Object)(void *inObject, int inUserData);
93
94
95
96 #define DefFunc( type, name, callingconvention, args, address) typedef type ( callingconvention * _##name ) args; static _##name name = (_##name)address
97
98 // Orig timing functions, replaced by DDrMachineTime_* if option "usegettickcount" is enabled
99 DefFunc(int64_t, UUrMachineTime_High, ONICALL, (), 0x04026480);
100 DefFunc(double, UUrMachineTime_High_Frequency, ONICALL, (), 0x040264b0);
101 DefFunc(int64_t, UUrMachineTime_Sixtieths, ONICALL, (), 0x040263e0);
102
103 // Code to initialize platform stuff (like disabling system key combination Alt+Tab)
104 DefFunc(void, UUrPlatform_Initialize, ONICALL, (), 0x04026010);
105 DefFunc(void, UUrPlatform_Terminate, ONICALL, (), 0x04026310);
106
107 // Oni's file access methods
108 DefFunc(FILE*, oni_fopen, __cdecl, (const char*, const char*), 0x0051ea9f);
109 DefFunc(int, oni_fprintf, __cdecl, (FILE*, const char*, ...), 0x0051ebbf);
110 DefFunc(int, oni_fflush, __cdecl, (FILE*), 0x0051eab2);
111
112 // Oni's main method?
113 DefFunc(void, ONiMain, __cdecl, (int ArgCount, char *ArgList[]), 0x004d3280);
114
115 // Initialization code, used to hook in windowed modes
116 DefFunc(short, ONrPlatform_Initialize, ONICALL, (ONtPlatformData *PlatformData), 0x0050f670);
117 DefFunc(LRESULT, ONrPlatform_WindowProc, CALLBACK, (HWND Window, UINT Message, WPARAM WParam, LPARAM LParam), 0x0050f7a0);
118
119 // Retrieves a list of resolutions, replaced by "daodan_enumerate_valid_display_modes"
120 DefFunc(unsigned int, gl_enumerate_valid_display_modes, ONICALL, (M3tDisplayMode modes[16]), 0x004083a0);
121 DefFunc(int, gl_platform_set_pixel_format, ONICALL, (HDC hdc), 0x00407b50);
122
123 // Original graphics initialization/cleanup functions patched to use
124 // DD_GLrPlatform_Initialize/DD_GLrPlatform_Dispoose instead if daodangl is used.
125 DefFunc(UUtBool, gl_platform_initialize, ONICALL, (void), 0x00407da0);
126 DefFunc(void, gl_platform_dispose, ONICALL, (void), 0x408210);
127
128 // Retrieve gamma value from settings
129 DefFunc(float, ONrPersist_GetGamma, ONICALL, (), 0x0050f450);
130
131 // Retrieve if the game was completed
132 DefFunc(uint8_t, ONrPersist_GetWonGame, ONICALL, (), 0x0050f660);
133
134 // Print a message to the startup.txt log
135 DefFunc(void, UUrStartupMessage, __cdecl, (const char* fmt, ...), 0x00424860);
136
137 // Probably to spawn a new character
138 DefFunc(int16_t, ONrGameState_NewCharacter, ONICALL, (void* CHAR, void* AISA, void* flag, uint32_t* list_location), 0x004dac50);
139
140 // Remove character
141 DefFunc(void, ONrGameState_DeleteCharacter, ONICALL, (Character *inCharacter), 0x004DC480);
142
143 DefFunc(void, ONrGameState_Timer_Start, ONICALL, (char* function, int time), 0x004FD370);
144
145 // Get active (player?) character
146 DefFunc(ActiveCharacter*, ONrGetActiveCharacter, ONICALL, (void* CharacterPtr), 0x004f1180);
147
148 DefFunc(uint32_t, ONrCharacter_GetHealthShade, ONICALL, (uint32_t health, uint32_t maxhealth), 0x004EF450);
149 DefFunc(void, ONrCharacter_NewAnimationHook, ONICALL, (Character *ioCharacter, ActiveCharacter *ioActiveCharacter), 0x004E97A0);
150 DefFunc(void, ONrCharacter_SetAnimationExternal, ONICALL, (Character *ioCharacter, short state, void* animation, int interpolation), 0x004EB340);
151 DefFunc(void, ONrCharacter_SetHitPoints, ONICALL, (Character *ioCharacter, uint32_t inHitPoints), 0x004EB220);
152 DefFunc(void, ONrCharacter_SetCharacterClass, ONICALL, (Character* Char, ONCC* Class), 0x004D7C30);
153 DefFunc(void, ONrCorpse_Create, ONICALL, (Character* Character), 0x004EF340);
154
155
156 // Print message to console
157 DefFunc(void, COrTextArea_Print, ONICALL, (uint32_t area, uint32_t priority, uint32_t textshade, uint32_t textshadowshade, const char* text, uint32_t unk_alwaws_0, uint32_t fadetime), 0x00431340);
158
159 // Original cheat function
160 DefFunc(uint8_t, ONrCheater, ONICALL, (uint32_t cheat), 0x004f5c30);
161
162 // ?
163 DefFunc(int, AUrMessageBox, __cdecl, (int Buttons, char *Message, ...), 0x004378c0);
164 DefFunc(char*, SSrMessage_Find, ONICALL, (char* message_key), 0x0047F550);
165 DefFunc(void, ONiGameState_FindAutoPromptMessage, ONICALL, (char* Note, void* ptr), 0x004FDBE0);
166
167 // Register a BSL function with a return type
168 DefFunc(uint16_t, SLrScript_Command_Register_ReturnType, ONICALL, (char* name, char* desc, char* argfmt, sl_type type, sl_func callback), 0x00477b20);
169
170 // Register a BSL function without a return value
171 DefFunc(uint16_t, SLrScript_Command_Register_Void, ONICALL, (char* name, char* desc, char* argfmt, sl_func callback), 0x00477b40);
172
173 // Register a global BSL variable
174 DefFunc(uint16_t, SLrGlobalVariable_Register_Bool, ONICALL, (char* name, char* desc, UUtBool* data), 0x00477f50);
175 DefFunc(uint16_t, SLrGlobalVariable_Register_Int32, ONICALL, (char* name, char* desc, int32_t* data), 0x00477e30);
176 DefFunc(uint16_t, SLrGlobalVariable_Register_Float, ONICALL, (char* name, char* desc, float* data), 0x00477ec0);
177 DefFunc(uint16_t, SLrGlobalVariable_Register_String, ONICALL, (char* name, char* desc, char* data), 0x00477fe0);
178
179 // Print message to console ?
180 DefFunc(int, COrMessage_Print, ONICALL, (char* Message, char* Key, void* noidea), 0x004304B0);
181 DefFunc(UUtBool, COrCommand_Execute, ONICALL, (char* command), 0x004317D0);
182
183 DefFunc(void, COrConsole_StatusLine_Display, ONICALL, (), 0x00431E70);
184
185 // Get pointer to specified data instance
186 DefFunc(int16_t, TMrInstance_GetDataPtr, ONICALL, (int tag, char* name, void* pointer), 0x004232E0);
187
188 // Get name of data instance pointed to
189 DefFunc(char*, TMrInstance_GetInstanceName, ONICALL, (void* InstancePointer), 0x00423D90);
190
191 DefFunc(short, TMrInstance_GetDataPtr_ByNumber, ONICALL, (int tag, int number, void** out), 0x00423680);
192 DefFunc(uint32_t, TMrInstance_GetTagCount, ONICALL, (int tag), 0x004236F0);
193
194 // Draw text on the screen
195 DefFunc(int16_t, TSrContext_DrawText, ONICALL, (uint32_t TSrContext, char* Text, char alpha, uint32_t usuallyzero, void* pRect), 0x0042DF00);
196 DefFunc(int16_t, TSrContext_New, ONICALL, (void* FontInstance, int size, int hthsik1,int hthsik2,int hthsik3, void* TSrContext), 0x0042EA30);
197
198 DefFunc(int16_t, TSrContext_SetShade, ONICALL, (void *ioTextContext, uint32_t inShade), 0x0042EE50);
199
200 DefFunc(uint16_t, TRrAnimation_GetDuration, ONICALL, (void* Animation), 0x00428740);
201 DefFunc(uint16_t, TRrAnimation_GetTo, ONICALL, (void* Animation), 0x00428730);
202 DefFunc(uint16_t, TRrAnimation_GetFrom, ONICALL, (void* Animation), 0x00428720);
203
204 DefFunc(uint16_t, iSetCharacterClass, ONICALL, (sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret), 0x004D99D0);
205 DefFunc(uint16_t, AI2iScript_Spawn, ONICALL, (sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret), 0x004B4780);
206 DefFunc(void, AI2rSmite, ONICALL, (Character *inCharacter, UUtBool inSpareCharacter), 0x0048BDA0);
207 //NOT USED: DefFunc(void*, OBJrObjectType_GetObject_ByNumber, ONICALL, (int inObjectType, int inIndex), );
208 //NOT USED: DefFunc(int, OBJiObjectGroup_GetNumObjects, ONICALL, (void *inObjectGroup), );
209
210 DefFunc(int, OBJrObjectType_EnumerateObjects, ONICALL, (int inObjectType, OBJtEnumCallback_Object inEnumCallback, int inUserData), 0x004D0080);
211 //DefFunc(void, OBJrTriggerVolume_IntersectsCharacter, ONICALL, (), 0x004cc680);
212
213 DefFunc(void, OBJrDoor_Open, ONICALL, (DoorObject *inObject, Character *inCharacter), 0x004C26C0);
214 DefFunc(void, OBJrDoor_ForceOpen, ONICALL, (short id), 0x004C1EE0);
215 DefFunc(short, OBJrConsole_OnActivate, ONICALL, (void *inObject, Character *inCharacter), 0x004C0880);
216 DefFunc(void*, OBJrConsole_GetByID, ONICALL, (short ID), 0x004C0950);
217
218
219 DefFunc(void, ONiDrawWeaponSight, ONICALL, (Character* Char), 0x004E1900);
220 DefFunc(void, AI2rDisplayDebuggingInfo, ONICALL, (Character* Char), 0x0048C5F0);
221 DefFunc(uint32_t, M3rTextureMap_New, ONICALL, (short width, short height, int type, int allocated, int flags, char* name, void** output), 0x0041EB00);
222 /*
223 DefFunc(void, M3rGeom_Line_Light, ONICALL, (), 0x0041f440);
224 DefFunc(void, M3rMatrixStack_Push, ONICALL, (), 0x0041baa0);
225 DefFunc(void, M3rMatrixStack_Get, ONICALL, (), 0x0041bb20);
226 DefFunc(void, M3rMatrixStack_Pop, ONICALL, (), 0x0041bb30);
227 DefFunc(void, M3rMatrixStack_Identity, ONICALL, (), 0x0041bba0);
228 DefFunc(void, M3rMatrixStack_Rotate, ONICALL, (), 0x0041bbe0);
229 DefFunc(void, M3rMatrixStack_UniformScale, ONICALL, (), 0x0041bc20);
230 DefFunc(void, M3rMatrixStack_Translate, ONICALL, (), 0x0041bc40);
231 DefFunc(void, M3rMatrixStack_Multiply, ONICALL, (), 0x0041bc70);
232 DefFunc(void, M3rGeom_State_Commit, ONICALL, (), 0x0041e870);
233
234 DefFunc(void, MUrPoint_Distance, ONICALL, (), 0x00433270);
235 */
236
237 // Make a dialog element (in)visible and change its position
238 DefFunc(void, WMrWindow_SetVisible, ONICALL, (WMtWindow* window, int visibility), 0x00475a10);
239 DefFunc(void, WMrWindow_SetLocation, ONICALL, (WMtWindow* window, int x, int y), 0x004756d0);
240
241 // Plays movie using Bink blitting method (ie., non-OpenGL blitting).
242 DefFunc(void, ONrMovie_Play, ONICALL, (const char* movie, int unknown), 0x004d5580);
243
244 // Sets minimum and maximum values for a slider control.
245 DefFunc(void, WMrSlider_SetRange, ONICALL, (WMtWindow* window, int min_value, int max_value), 0x00472650);
246
247 // Enables or disables window.
248 DefFunc(void, WMrWindow_SetEnabled, ONICALL, (WMtWindow* window, UUtBool enabled), 0x00475580);
249
250 // Sets gamma to specified factor (0.0 .. 1.0).
251 DefFunc(void, M3rSetGamma, ONICALL, (float factor), 0x00407a60);
252
253 // Resets gl_api pointers, unloads OPENGL32.DLL.
254 DefFunc(void, gl_unload_library, ONICALL, (void), 0x0040ac40);
255
256 // Notifies platform-specific local input implementation about internal (ie.,
257 // real) input mode change.
258 DefFunc(void, LIrPlatform_Mode_Set, ONICALL, (unsigned int active_mode), 0x00402cf0);
259
260 // Terminates platform-specific local-input.
261 DefFunc(void, LIrPlatform_Terminate, ONICALL, (void), 0x00403620);
262
263 #undef DefFunc
264
265 #endif