Skip to content

Commit 397d0f8

Browse files
authored
Merge pull request #44 from thecybermind/dev_floatfix
Better handle floating point arguments for GetGameAPI functions
2 parents 0d4a3a2 + 2426818 commit 397d0f8

14 files changed

Lines changed: 197 additions & 210 deletions

include/gameapi.hpp

Lines changed: 41 additions & 77 deletions
Large diffs are not rendered by default.

include/qvm.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ Created By:
2929
#define QVM_PROGRAMSTACK_SIZE 0x10000
3030
// Default size of temporary hunk segment (ioRTCW defaults to 2 MiB) (1MiB)
3131
#define QVM_HUNK_SIZE 0x100000
32+
// Alignment of hunk in bytes
33+
#define QVM_HUNK_ALIGNMENT 8
3234

3335
// Round "var" up to next power of 2: https://stackoverflow.com/a/1322548/809900
3436
#define QVM_NEXT_POW_2(var) var--; var |= var >> 1; var |= var >> 2; var |= var >> 4; var |= var >> 8; var |= var >> 16; var++

include/util.hpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,4 +260,19 @@ T util_max(T a, T b) {
260260
return (a > b ? a : b);
261261
}
262262

263+
264+
template <class OutputClass, class InputClass>
265+
union horrible_union {
266+
OutputClass out;
267+
InputClass in;
268+
};
269+
// Same as reinterpret_cast<T>(x) but for anything
270+
template <class OutputClass, class InputClass>
271+
inline OutputClass horrible_cast(const InputClass input) {
272+
horrible_union<OutputClass, InputClass> u;
273+
u.in = input;
274+
return u.out;
275+
}
276+
277+
263278
#endif // QMM2_UTIL_H

src/game_jasp.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -150,19 +150,19 @@ intptr_t JASP_GameSupport::syscall(intptr_t cmd, ...) {
150150
ROUTE_IMPORT(G2API_PrecacheGhoul2Model, G_G2API_PRECACHEGHOUL2MODEL);
151151
ROUTE_IMPORT(G2API_InitGhoul2Model, G_G2API_INITGHOUL2MODEL);
152152
ROUTE_IMPORT(G2API_SetSkin, G_G2API_SETSKIN);
153-
ROUTE_IMPORT_9(G2API_SetBoneAnim, G_G2API_SETBONEANIM, (CGhoul2Info*), (const char*), (int), (int), (int), *(float*)&, (int), *(float*)&, (int));
153+
ROUTE_IMPORT_9(G2API_SetBoneAnim, G_G2API_SETBONEANIM, CGhoul2Info*, const char*, int, int, int, FLOAT_CAST, int, FLOAT_CAST, int);
154154
ROUTE_IMPORT(G2API_SetBoneAngles, G_G2API_SETBONEANGLES);
155155
ROUTE_IMPORT(G2API_SetBoneAnglesIndex, G_G2API_SETBONEANGLESINDEX);
156156
ROUTE_IMPORT(G2API_SetBoneAnglesMatrix, G_G2API_SETBONEANGLESMATRIX);
157157
ROUTE_IMPORT(G2API_CopyGhoul2Instance, G_G2API_COPYGHOUL2INSTANCE);
158-
ROUTE_IMPORT_9(G2API_SetBoneAnimIndex, G_G2API_SETBONEANIMINDEX, (CGhoul2Info*), (int), (int), (int), (int), *(float*)&, (int), *(float*)&, (int));
158+
ROUTE_IMPORT_9(G2API_SetBoneAnimIndex, G_G2API_SETBONEANIMINDEX, CGhoul2Info*, int, int, int, int, FLOAT_CAST, int, FLOAT_CAST, int);
159159
ROUTE_IMPORT(G2API_SetLodBias, G_G2API_SETLODBIAS);
160160
ROUTE_IMPORT(G2API_SetShader, G_G2API_SETSHADER);
161161
ROUTE_IMPORT(G2API_RemoveGhoul2Model, G_G2API_REMOVEGHOUL2MODEL);
162162
ROUTE_IMPORT(G2API_SetSurfaceOnOff, G_G2API_SETSURFACEONOFF);
163163
ROUTE_IMPORT(G2API_SetRootSurface, G_G2API_SETROOTSURFACE);
164164
ROUTE_IMPORT(G2API_RemoveSurface, G_G2API_REMOVESURFACE);
165-
ROUTE_IMPORT_6(G2API_AddSurface, G_G2API_ADDSURFACE, (CGhoul2Info*), (int), (int), *(float*)&, *(float*)&, (int));
165+
ROUTE_IMPORT_6(G2API_AddSurface, G_G2API_ADDSURFACE, CGhoul2Info*, int, int, FLOAT_CAST, FLOAT_CAST, int);
166166
ROUTE_IMPORT(G2API_GetBoneAnim, G_G2API_GETBONEANIM);
167167
ROUTE_IMPORT(G2API_GetBoneAnimIndex, G_G2API_GETBONEANIMINDEX);
168168
ROUTE_IMPORT(G2API_GetAnimRange, G_G2API_GETANIMRANGE);
@@ -211,7 +211,7 @@ intptr_t JASP_GameSupport::syscall(intptr_t cmd, ...) {
211211
ROUTE_IMPORT(G2API_SetRagDoll, G_G2API_SETRAGDOLL);
212212
ROUTE_IMPORT(G2API_AnimateG2Models, G_G2API_ANIMATEG2MODELS);
213213
ROUTE_IMPORT(G2API_RagPCJConstraint, G_G2API_RAGPCJCONSTRAINT);
214-
ROUTE_IMPORT_3(G2API_RagPCJGradientSpeed, G_G2API_RAGPCJGRADIENTSPEED, (CGhoul2Info_v&), (const char*), *(float*)&);
214+
ROUTE_IMPORT_3(G2API_RagPCJGradientSpeed, G_G2API_RAGPCJGRADIENTSPEED, CGhoul2Info_v&, const char*, FLOAT_CAST);
215215
ROUTE_IMPORT(G2API_RagEffectorGoal, G_G2API_RAGEFFECTORGOAL);
216216
ROUTE_IMPORT(G2API_GetRagBonePos, G_G2API_GETRAGBONEPOS);
217217
ROUTE_IMPORT(G2API_RagEffectorKick, G_G2API_RAGEFFECTORKICK);
@@ -229,7 +229,7 @@ intptr_t JASP_GameSupport::syscall(intptr_t cmd, ...) {
229229
ROUTE_IMPORT(WE_GetWindVector, G_WE_GETWINDVECTOR);
230230
ROUTE_IMPORT(WE_GetWindGusting, G_WE_GETWINDGUSTING);
231231
ROUTE_IMPORT(WE_IsOutside, G_WE_ISOUTSIDE);
232-
ROUTE_IMPORT_1_F(WE_IsOutsideCausingPain, G_WE_ISOUTSIDECAUSINGPAIN, (float*));
232+
ROUTE_IMPORT_1_F(WE_IsOutsideCausingPain, G_WE_ISOUTSIDECAUSINGPAIN, float*);
233233
ROUTE_IMPORT_0_F(WE_GetChanceOfSaberFizz, G_WE_GETCHANCEOFSABERFIZZ);
234234
ROUTE_IMPORT(WE_IsShaking, G_WE_ISSHAKING);
235235
ROUTE_IMPORT(WE_AddWeatherZone, G_WE_ADDWEATHERZONE);
@@ -670,12 +670,12 @@ game_import_t JASP_GameSupport::qmm_import = {
670670
GEN_IMPORT(G2API_PrecacheGhoul2Model, G_G2API_PRECACHEGHOUL2MODEL),
671671
GEN_IMPORT(G2API_InitGhoul2Model, G_G2API_INITGHOUL2MODEL),
672672
GEN_IMPORT(G2API_SetSkin, G_G2API_SETSKIN),
673-
GEN_IMPORT_9(G2API_SetBoneAnim, G_G2API_SETBONEANIM, qboolean, CGhoul2Info*, const char*, const int, const int, const int, const float, const int, const float, const int),
673+
GEN_IMPORT_9(G2API_SetBoneAnim, G_G2API_SETBONEANIM, qboolean, CGhoul2Info*, const char*, int, int, int, float, int, float, int),
674674
GEN_IMPORT(G2API_SetBoneAngles, G_G2API_SETBONEANGLES),
675675
GEN_IMPORT(G2API_SetBoneAnglesIndex, G_G2API_SETBONEANGLESINDEX),
676676
GEN_IMPORT(G2API_SetBoneAnglesMatrix, G_G2API_SETBONEANGLESMATRIX),
677677
GEN_IMPORT(G2API_CopyGhoul2Instance, G_G2API_COPYGHOUL2INSTANCE),
678-
GEN_IMPORT_9(G2API_SetBoneAnimIndex, G_G2API_SETBONEANIMINDEX, qboolean, CGhoul2Info*, const int, const int, const int, const int, const float, const int, const float, const int),
678+
GEN_IMPORT_9(G2API_SetBoneAnimIndex, G_G2API_SETBONEANIMINDEX, qboolean, CGhoul2Info*, int, int, int, int, float, int, float, int),
679679
GEN_IMPORT(G2API_SetLodBias, G_G2API_SETLODBIAS),
680680
GEN_IMPORT(G2API_SetShader, G_G2API_SETSHADER),
681681
GEN_IMPORT(G2API_RemoveGhoul2Model, G_G2API_REMOVEGHOUL2MODEL),
@@ -731,7 +731,7 @@ game_import_t JASP_GameSupport::qmm_import = {
731731
GEN_IMPORT(G2API_SetRagDoll, G_G2API_SETRAGDOLL),
732732
GEN_IMPORT(G2API_AnimateG2Models, G_G2API_ANIMATEG2MODELS),
733733
GEN_IMPORT(G2API_RagPCJConstraint, G_G2API_RAGPCJCONSTRAINT),
734-
GEN_IMPORT_3(G2API_RagPCJGradientSpeed, G_G2API_RAGPCJGRADIENTSPEED, qboolean, CGhoul2Info_v&, const char*, const float),
734+
GEN_IMPORT_3(G2API_RagPCJGradientSpeed, G_G2API_RAGPCJGRADIENTSPEED, qboolean, CGhoul2Info_v&, const char*, float),
735735
GEN_IMPORT(G2API_RagEffectorGoal, G_G2API_RAGEFFECTORGOAL),
736736
GEN_IMPORT(G2API_GetRagBonePos, G_G2API_GETRAGBONEPOS),
737737
GEN_IMPORT(G2API_RagEffectorKick, G_G2API_RAGEFFECTORKICK),

src/game_jk2sp.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ intptr_t JK2SP_GameSupport::syscall(intptr_t cmd, ...) {
150150
ROUTE_IMPORT(G2API_SetSurfaceOnOff, G_G2API_SETSURFACEONOFF);
151151
ROUTE_IMPORT(G2API_SetRootSurface, G_G2API_SETROOTSURFACE);
152152
ROUTE_IMPORT(G2API_RemoveSurface, G_G2API_REMOVESURFACE);
153-
ROUTE_IMPORT_6(G2API_AddSurface, G_G2API_ADDSURFACE, (CGhoul2Info*), (int), (int), *(float*)&, *(float*)&, (int));
154-
ROUTE_IMPORT_9(G2API_SetBoneAnim, G_G2API_SETBONEANIM, (CGhoul2Info*), (const char*), (int), (int), (int), *(float*)&, (int), *(float*)&, (int));
153+
ROUTE_IMPORT_6(G2API_AddSurface, G_G2API_ADDSURFACE, CGhoul2Info*, int, int, FLOAT_CAST, FLOAT_CAST, int);
154+
ROUTE_IMPORT_9(G2API_SetBoneAnim, G_G2API_SETBONEANIM, CGhoul2Info*, const char*, int, int, int, FLOAT_CAST, int, FLOAT_CAST, int);
155155
ROUTE_IMPORT(G2API_GetBoneAnim, G_G2API_GETBONEANIM);
156156
ROUTE_IMPORT(G2API_GetBoneAnimIndex, G_G2API_GETBONEANIMINDEX);
157157
ROUTE_IMPORT(G2API_GetAnimRange, G_G2API_GETANIMRANGE);
@@ -193,7 +193,7 @@ intptr_t JK2SP_GameSupport::syscall(intptr_t cmd, ...) {
193193
ROUTE_IMPORT(G2API_StopBoneAnimIndex, G_G2API_STOPBONEANIMINDEX);
194194
ROUTE_IMPORT(G2API_SetBoneAnglesIndex, G_G2API_SETBONEANGLESINDEX);
195195
ROUTE_IMPORT(G2API_SetBoneAnglesMatrixIndex, G_G2API_SETBONEANGLESMATRIXINDEX);
196-
ROUTE_IMPORT_9(G2API_SetBoneAnimIndex, G_G2API_SETBONEANIMINDEX, (CGhoul2Info*), (int), (int), (int), (int), (float), (int), (float), (int));
196+
ROUTE_IMPORT_9(G2API_SetBoneAnimIndex, G_G2API_SETBONEANIMINDEX, CGhoul2Info*, int, int, int, int, FLOAT_CAST, int, FLOAT_CAST, int);
197197
ROUTE_IMPORT(G2API_SaveGhoul2Models, G_G2API_SAVEGHOUL2MODELS);
198198
ROUTE_IMPORT(G2API_LoadGhoul2Models, G_G2API_LOADGHOUL2MODELS);
199199
ROUTE_IMPORT(G2API_LoadSaveCodeDestructGhoul2Info, G_G2API_LOADSAVECODEDESTRUCTGHOUL2INFO);
@@ -305,7 +305,7 @@ intptr_t JK2SP_GameSupport::vmMain(intptr_t cmd, ...) {
305305
ROUTE_EXPORT(RunFrame, GAME_RUN_FRAME);
306306
ROUTE_EXPORT(ConsoleCommand, GAME_CONSOLE_COMMAND);
307307
ROUTE_EXPORT(PrintEntClassname, GAME_PRINTENTCLASSNAME);
308-
ROUTE_EXPORT_3(ValidateAnimRange, GAME_VALIDATEANIMRANGE, (int), (int), *(float*)&);
308+
ROUTE_EXPORT_3(ValidateAnimRange, GAME_VALIDATEANIMRANGE, int, int, FLOAT_CAST);
309309

310310
// handle cmds for variables, this is how a plugin would get these values if needed
311311
ROUTE_EXPORT_VAR(apiversion, GAMEV_APIVERSION);

src/game_mohaa.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ intptr_t MOHAA_GameSupport::syscall(intptr_t cmd, ...) {
147147
ROUTE_IMPORT(GetArchiveFileName, G_GETARCHIVEFILENAME);
148148
// handled below since we do special handling to deal with the "when" argument
149149
// ROUTE_IMPORT(SendConsoleCommand, G_SEND_CONSOLE_COMMAND);
150-
ROUTE_IMPORT_1_V(DebugGraph, G_DEBUGGRAPH, *(float*)&);
150+
ROUTE_IMPORT_1_V(DebugGraph, G_DEBUGGRAPH, FLOAT_CAST);
151151
ROUTE_IMPORT(SendServerCommand, G_SEND_SERVER_COMMAND);
152152
ROUTE_IMPORT(DropClient, G_DROP_CLIENT);
153153
ROUTE_IMPORT(MSG_WriteBits, G_MSG_WRITEBITS);
@@ -156,11 +156,11 @@ intptr_t MOHAA_GameSupport::syscall(intptr_t cmd, ...) {
156156
ROUTE_IMPORT(MSG_WriteSVC, G_MSG_WRITESVC);
157157
ROUTE_IMPORT(MSG_WriteShort, G_MSG_WRITESHORT);
158158
ROUTE_IMPORT(MSG_WriteLong, G_MSG_WRITELONG);
159-
ROUTE_IMPORT_1_V(MSG_WriteFloat, G_MSG_WRITEFLOAT, *(float*)&);
159+
ROUTE_IMPORT_1_V(MSG_WriteFloat, G_MSG_WRITEFLOAT, FLOAT_CAST);
160160
ROUTE_IMPORT(MSG_WriteString, G_MSG_WRITESTRING);
161-
ROUTE_IMPORT_1_V(MSG_WriteAngle8, G_MSG_WRITEANGLE8, *(float*)&);
162-
ROUTE_IMPORT_1_V(MSG_WriteAngle16, G_MSG_WRITEANGLE16, *(float*)&);
163-
ROUTE_IMPORT_1_V(MSG_WriteCoord, G_MSG_WRITECOORD, *(float*)&);
161+
ROUTE_IMPORT_1_V(MSG_WriteAngle8, G_MSG_WRITEANGLE8, FLOAT_CAST);
162+
ROUTE_IMPORT_1_V(MSG_WriteAngle16, G_MSG_WRITEANGLE16, FLOAT_CAST);
163+
ROUTE_IMPORT_1_V(MSG_WriteCoord, G_MSG_WRITECOORD, FLOAT_CAST);
164164
ROUTE_IMPORT(MSG_WriteDir, G_MSG_WRITEDIR);
165165
ROUTE_IMPORT(MSG_StartCGM, G_MSG_STARTCGM);
166166
ROUTE_IMPORT(MSG_EndCGM, G_MSG_ENDCGM);
@@ -201,18 +201,18 @@ intptr_t MOHAA_GameSupport::syscall(intptr_t cmd, ...) {
201201
ROUTE_IMPORT(TIKI_NumAnims, G_TIKI_NUMANIMS);
202202
ROUTE_IMPORT(TIKI_NumSurfaces, G_TIKI_NUMSURFACES);
203203
ROUTE_IMPORT(TIKI_NumTags, G_TIKI_NUMTAGS);
204-
ROUTE_IMPORT_4_V(TIKI_CalculateBounds, G_TIKI_CALCULATEBOUNDS, (dtiki_t*), *(float*)&, (float*), (float*));
204+
ROUTE_IMPORT_4_V(TIKI_CalculateBounds, G_TIKI_CALCULATEBOUNDS, dtiki_t*, FLOAT_CAST, float*, float*);
205205
ROUTE_IMPORT(TIKI_GetSkeletor, G_TIKI_GETSKELETOR);
206206
ROUTE_IMPORT(Anim_NameForNum, G_ANIM_NAMEFORNUM);
207207
ROUTE_IMPORT(Anim_NumForName, G_ANIM_NUMFORNAME);
208208
ROUTE_IMPORT(Anim_Random, G_ANIM_RANDOM);
209209
ROUTE_IMPORT(Anim_NumFrames, G_ANIM_NUMFRAMES);
210-
ROUTE_IMPORT_2_F(Anim_Time, G_ANIM_TIME, (dtiki_t*), (int));
211-
ROUTE_IMPORT_2_F(Anim_Frametime, G_ANIM_FRAMETIME, (dtiki_t*), (int));
212-
ROUTE_IMPORT_2_F(Anim_CrossTime, G_ANIM_CROSSTIME, (dtiki_t*), (int));
210+
ROUTE_IMPORT_2_F(Anim_Time, G_ANIM_TIME, dtiki_t*, int);
211+
ROUTE_IMPORT_2_F(Anim_Frametime, G_ANIM_FRAMETIME, dtiki_t*, int);
212+
ROUTE_IMPORT_2_F(Anim_CrossTime, G_ANIM_CROSSTIME, dtiki_t*, int);
213213
ROUTE_IMPORT(Anim_Delta, G_ANIM_DELTA);
214214
ROUTE_IMPORT(Anim_HasDelta, G_ANIM_HASDELTA);
215-
ROUTE_IMPORT_5_V(Anim_DeltaOverTime, G_ANIM_DELTAOVERTIME, (dtiki_t*), (int), *(float*)&, *(float*)&, (float*));
215+
ROUTE_IMPORT_5_V(Anim_DeltaOverTime, G_ANIM_DELTAOVERTIME, dtiki_t*, int, FLOAT_CAST, FLOAT_CAST, float*);
216216
ROUTE_IMPORT(Anim_Flags, G_ANIM_FLAGS);
217217
ROUTE_IMPORT(Anim_FlagsSkel, G_ANIM_FLAGSSKEL);
218218
ROUTE_IMPORT(Anim_HasCommands, G_ANIM_HASCOMMANDS);
@@ -225,10 +225,10 @@ intptr_t MOHAA_GameSupport::syscall(intptr_t cmd, ...) {
225225
ROUTE_IMPORT(Surface_NumToName, G_SURFACE_NUMTONAME);
226226
ROUTE_IMPORT(Tag_NumForName, G_TAG_NUMFORNAME);
227227
ROUTE_IMPORT(Tag_NameForNum, G_TAG_NAMEFORNUM);
228-
ROUTE_IMPORT_5(TIKI_OrientationInternal, G_TIKI_ORIENTATIONINTERNAL, (orientation_t*), (dtiki_t*), (int), (int), *(float*)&);
228+
ROUTE_IMPORT_5(TIKI_OrientationInternal, G_TIKI_ORIENTATIONINTERNAL, orientation_t*, dtiki_t*, int, int, FLOAT_CAST);
229229
ROUTE_IMPORT(TIKI_TransformInternal, G_TIKI_TRANSFORMINTERNAL);
230-
ROUTE_IMPORT_4(TIKI_IsOnGroundInternal, G_TIKI_ISONGROUNDINTERNAL, (dtiki_t*), (int), (int), *(float*)&);
231-
ROUTE_IMPORT_6_V(TIKI_SetPoseInternal, G_TIKI_SETPOSEINTERNAL, (dtiki_t*), (int), (const frameInfo_t*), (int*), (vec4_t*), *(float*)&);
230+
ROUTE_IMPORT_4(TIKI_IsOnGroundInternal, G_TIKI_ISONGROUNDINTERNAL, dtiki_t*, int, int, FLOAT_CAST);
231+
ROUTE_IMPORT_6_V(TIKI_SetPoseInternal, G_TIKI_SETPOSEINTERNAL, dtiki_t*, int, const frameInfo_t*, int*, vec4_t*, FLOAT_CAST);
232232
ROUTE_IMPORT(CM_GetHitLocationInfo, G_CM_GETHITLOCATIONINFO);
233233
ROUTE_IMPORT(CM_GetHitLocationInfoSecondary, G_CM_GETHITLOCATIONINFOSECONDARY);
234234
ROUTE_IMPORT(Alias_Add, G_ALIAS_ADD);
@@ -243,9 +243,9 @@ intptr_t MOHAA_GameSupport::syscall(intptr_t cmd, ...) {
243243
ROUTE_IMPORT(GlobalAlias_Clear, G_GLOBALALIAS_CLEAR);
244244
ROUTE_IMPORT(centerprintf, G_CENTERPRINTF);
245245
ROUTE_IMPORT(locationprintf, G_LOCATIONPRINTF);
246-
ROUTE_IMPORT_9_V(Sound, G_SOUND, (vec3_t*), (int), (int), (const char*), *(float*)&, *(float*)&, *(float*)&, *(float*)&, (int));
246+
ROUTE_IMPORT_9_V(Sound, G_SOUND, vec3_t*, int, int, const char*, FLOAT_CAST, FLOAT_CAST, FLOAT_CAST, FLOAT_CAST, int);
247247
ROUTE_IMPORT(StopSound, G_STOPSOUND);
248-
ROUTE_IMPORT_2_F(SoundLength, G_SOUNDLENGTH, (int), (const char*));
248+
ROUTE_IMPORT_2_F(SoundLength, G_SOUNDLENGTH, int, const char*);
249249
ROUTE_IMPORT(SoundAmplitudes, G_SOUNDAMPLITUDES);
250250
ROUTE_IMPORT(S_IsSoundPlaying, G_S_ISSOUNDPLAYING);
251251
ROUTE_IMPORT(CalcCRC, G_CALCCRC);
@@ -271,7 +271,7 @@ intptr_t MOHAA_GameSupport::syscall(intptr_t cmd, ...) {
271271
ROUTE_IMPORT(HudDrawRect, G_HUDDRAWRECT);
272272
ROUTE_IMPORT(HudDrawVirtualSize, G_HUDDRAWVIRTUALSIZE);
273273
ROUTE_IMPORT(HudDrawColor, G_HUDDRAWCOLOR);
274-
ROUTE_IMPORT_2_V(HudDrawAlpha, G_HUDDRAWALPHA, (int), *(float*)&);
274+
ROUTE_IMPORT_2_V(HudDrawAlpha, G_HUDDRAWALPHA, int, FLOAT_CAST);
275275
ROUTE_IMPORT(HudDrawString, G_HUDDRAWSTRING);
276276
ROUTE_IMPORT(HudDrawFont, G_HUDDRAWFONT);
277277
ROUTE_IMPORT(SanitizeName, G_SANITIZENAME);
@@ -478,7 +478,7 @@ intptr_t MOHAA_GameSupport::vmMain(intptr_t cmd, ...) {
478478
ROUTE_EXPORT(ArchiveString, GAME_ARCHIVE_STRING);
479479
ROUTE_EXPORT(ArchiveSvsTime, GAME_ARCHIVE_SVSTIME);
480480
ROUTE_EXPORT(TIKI_Orientation, GAME_TIKI_ORIENTATION);
481-
ROUTE_EXPORT_7_V(DebugCircle, GAME_DEBUG_CIRCLE, (float*), *(float*)&, *(float*)&, *(float*)&, *(float*)&, *(float*)&, (qboolean));
481+
ROUTE_EXPORT_7_V(DebugCircle, GAME_DEBUG_CIRCLE, float*, FLOAT_CAST, FLOAT_CAST, FLOAT_CAST, FLOAT_CAST, FLOAT_CAST, qboolean);
482482
ROUTE_EXPORT(SetFrameNumber, GAME_SET_FRAME_NUMBER);
483483
ROUTE_EXPORT(SoundCallback, GAME_SOUND_CALLBACK);
484484

0 commit comments

Comments
 (0)