From ed575d9b7d3a42bad6c996ea3512f4df0f6c186f Mon Sep 17 00:00:00 2001 From: dreamstalker Date: Tue, 30 Jun 2015 16:53:04 +0400 Subject: [PATCH] Fixed: all functions that could be called from outside must realign the stack Removed NOINLINE from MSG_Write*Bits functions since stack alignment issue is resolved --- rehlds/engine/cl_null.cpp | 18 +- rehlds/engine/cmd.cpp | 14 +- rehlds/engine/common.cpp | 22 +-- rehlds/engine/crc.cpp | 8 +- rehlds/engine/cvar.cpp | 2 +- rehlds/engine/delta.cpp | 12 +- rehlds/engine/host.cpp | 2 +- rehlds/engine/info.cpp | 2 +- rehlds/engine/l_studio.cpp | 2 +- rehlds/engine/mathlib.cpp | 4 + rehlds/engine/mathlib_e.h | 1 + rehlds/engine/mem.cpp | 2 +- rehlds/engine/model.cpp | 4 +- rehlds/engine/net_ws.cpp | 4 +- rehlds/engine/pmove.cpp | 2 +- rehlds/engine/pmovetst.cpp | 26 +-- rehlds/engine/pr_cmds.cpp | 218 +++++++++++------------ rehlds/engine/pr_edict.cpp | 36 ++-- rehlds/engine/r_studio.cpp | 8 +- rehlds/engine/sv_main.cpp | 40 ++--- rehlds/engine/sv_move.cpp | 2 +- rehlds/engine/sv_steam3.cpp | 8 +- rehlds/engine/sv_user.cpp | 2 +- rehlds/engine/sys_dll.cpp | 20 +-- rehlds/engine/tmessage.cpp | 2 +- rehlds/engine/zone.cpp | 2 +- rehlds/public/rehlds/osconfig.h | 4 + rehlds/rehlds/rehlds_api_impl.cpp | 36 ++-- rehlds/rehlds/rehlds_interfaces_impl.cpp | 44 ++--- 29 files changed, 278 insertions(+), 269 deletions(-) diff --git a/rehlds/engine/cl_null.cpp b/rehlds/engine/cl_null.cpp index 0ca80ee..31b6bf9 100644 --- a/rehlds/engine/cl_null.cpp +++ b/rehlds/engine/cl_null.cpp @@ -89,7 +89,7 @@ void CL_InitClosest(void) { } void CL_Init(void) { } /* <1c4cb> ../engine/cl_null.c:30 */ -void CL_Particle(vec_t *origin, int color, float life, int zpos, int zvel) { } +void EXT_FUNC CL_Particle(vec_t *origin, int color, float life, int zpos, int zvel) { } /* <1c530> ../engine/cl_null.c:31 */ void CL_PredictMove(qboolean repredicting) { } @@ -180,7 +180,7 @@ void CL_RedoPrediction(void) { } void CL_SetLastUpdate(void) { } /* <1c7d7> ../engine/cl_null.c:65 */ -void Con_NPrintf(int idx, const char *fmt, ...) { } +void EXT_FUNC Con_NPrintf(int idx, const char *fmt, ...) { } void Sequence_OnLevelLoad( const char* mapName ) { } /* <1c80d> ../engine/cl_null.c:69 */ @@ -205,29 +205,29 @@ void CL_KeepConnectionActive(void) { } void CL_UpdateModuleC(void) { } /* <1c8cc> ../engine/cl_null.c:81 */ -int VGuiWrap2_IsInCareerMatch(void) { return 0; } +int EXT_FUNC VGuiWrap2_IsInCareerMatch(void) { return 0; } /* <1c8e3> ../engine/cl_null.c:83 */ void VguiWrap2_GetCareerUI(void) { } /* <1c8f6> ../engine/cl_null.c:85 */ -int VGuiWrap2_GetLocalizedStringLength(const char *label) { return 0; } +int EXT_FUNC VGuiWrap2_GetLocalizedStringLength(const char *label) { return 0; } void VGuiWrap2_LoadingStarted(const char *resourceType, const char *resourceName) {} /* <1c921> ../engine/cl_null.c:87 */ -void ConstructTutorMessageDecayBuffer(int *buffer, int bufferLength) { } +void EXT_FUNC ConstructTutorMessageDecayBuffer(int *buffer, int bufferLength) { } /* <1c95c> ../engine/cl_null.c:88 */ -void ProcessTutorMessageDecayBuffer(int *buffer, int bufferLength) { } +void EXT_FUNC ProcessTutorMessageDecayBuffer(int *buffer, int bufferLength) { } /* <1c991> ../engine/cl_null.c:89 */ -int GetTimesTutorMessageShown(int id) { return -1; } +int EXT_FUNC GetTimesTutorMessageShown(int id) { return -1; } /* <1c9bb> ../engine/cl_null.c:90 */ -void RegisterTutorMessageShown(int mid) { } +void EXT_FUNC RegisterTutorMessageShown(int mid) { } /* <1c9e2> ../engine/cl_null.c:91 */ -void ResetTutorMessageDecayData(void) { } +void EXT_FUNC ResetTutorMessageDecayData(void) { } /* <1c9f5> ../engine/cl_null.c:92 */ void SetCareerAudioState(int state) { } diff --git a/rehlds/engine/cmd.cpp b/rehlds/engine/cmd.cpp index 3d417ba..6318c9e 100644 --- a/rehlds/engine/cmd.cpp +++ b/rehlds/engine/cmd.cpp @@ -567,7 +567,7 @@ void Cmd_Shutdown(void) } /* <5536> ../engine/cmd.c:677 */ -int Cmd_Argc(void) +int EXT_FUNC Cmd_Argc(void) { #ifndef SWDS g_engdstAddrs->Cmd_Argc(); @@ -577,7 +577,7 @@ int Cmd_Argc(void) } /* <5547> ../engine/cmd.c:689 */ -const char *Cmd_Argv(int arg) +const char* EXT_FUNC Cmd_Argv(int arg) { #ifndef SWDS g_engdstAddrs->Cmd_Argv(&arg); @@ -591,7 +591,7 @@ const char *Cmd_Argv(int arg) } /* <5565> ../engine/cmd.c:703 */ -const char *Cmd_Args(void) +const char* EXT_FUNC Cmd_Args(void) { #ifndef SWDS g_engdstAddrs->Cmd_Args(); @@ -610,7 +610,7 @@ Takes a null terminated string. Does not need to be \n terminated. Breaks the string up into arg tokens. ============ */ -void Cmd_TokenizeString(char *text) +void EXT_FUNC Cmd_TokenizeString(char *text) { int i; int arglen; @@ -816,7 +816,7 @@ NOXREF void Cmd_AddWrapperCommand(char *cmd_name, xcommand_t function) } /* <58d2> ../engine/cmd.c:960 */ -void Cmd_AddGameCommand(char *cmd_name, xcommand_t function) +void EXT_FUNC Cmd_AddGameCommand(char *cmd_name, xcommand_t function) { Cmd_AddMallocCommand(cmd_name, function, FCMD_GAME_COMMAND); } @@ -940,11 +940,11 @@ NOXREF char *Cmd_CompleteCommand(char *search, int forward) return NULL; } -bool ValidateCmd_API(const char* cmd, cmd_source_t src, IGameClient* client) { +bool EXT_FUNC ValidateCmd_API(const char* cmd, cmd_source_t src, IGameClient* client) { return true; } -void Cmd_ExecuteString_internal(const char* cmdName, cmd_source_t src, IGameClient* client) { +void EXT_FUNC Cmd_ExecuteString_internal(const char* cmdName, cmd_source_t src, IGameClient* client) { // Search in functions cmd_function_t *cmd = cmd_functions; while (cmd) diff --git a/rehlds/engine/common.cpp b/rehlds/engine/common.cpp index 8ae9ff3..d6358c7 100644 --- a/rehlds/engine/common.cpp +++ b/rehlds/engine/common.cpp @@ -523,7 +523,7 @@ void MSG_WBits_MaybeFlush() { bfwrite.nCurOutputBit -= 32; } -void NOINLINE MSG_WriteBits(uint32 data, int numbits) +void MSG_WriteBits(uint32 data, int numbits) { uint32 maxval = _mm_cvtsi128_si32(_mm_slli_epi64(_mm_cvtsi32_si128(1), numbits)) - 1; //maxval = (1 << numbits) - 1 if (data > maxval) @@ -544,14 +544,14 @@ void MSG_WriteOneBit(int nValue) { MSG_WriteBits(nValue, 1); } -void NOINLINE MSG_StartBitWriting(sizebuf_t *buf) +void MSG_StartBitWriting(sizebuf_t *buf) { bfwrite.nCurOutputBit = 0; bfwrite.pbuf = buf; bfwrite.pendingData.u64 = 0; } -void NOINLINE MSG_EndBitWriting(sizebuf_t *buf) +void MSG_EndBitWriting(sizebuf_t *buf) { int bytesNeed = bfwrite.nCurOutputBit / 8; if ((bfwrite.nCurOutputBit % 8) || bytesNeed == 0) { @@ -2045,7 +2045,7 @@ NOXREF int COM_ExpandFilename(char *filename) } /* <11a36> ../engine/common.c:2446 */ -int COM_FileSize(char *filename) +int EXT_FUNC COM_FileSize(char *filename) { FileHandle_t fp; int iSize; @@ -2061,7 +2061,7 @@ int COM_FileSize(char *filename) } /* <11a83> ../engine/common.c:2472 */ -unsigned char *COM_LoadFile(const char *path, int usehunk, int *pLength) +unsigned char* EXT_FUNC COM_LoadFile(const char *path, int usehunk, int *pLength) { char base[33]; unsigned char *buf = NULL; @@ -2143,7 +2143,7 @@ unsigned char *COM_LoadFile(const char *path, int usehunk, int *pLength) } /* <11b0f> ../engine/common.c:2538 */ -void COM_FreeFile(void *buffer) +void EXT_FUNC COM_FreeFile(void *buffer) { #ifndef SWDS g_engdstAddrs->COM_FreeFile(); @@ -2239,7 +2239,7 @@ unsigned char *COM_LoadTempFile(char *path, int *pLength) } /* <11ccb> ../engine/common.c:2657 */ -void COM_LoadCacheFile(char *path, struct cache_user_s *cu) +void EXT_FUNC COM_LoadCacheFile(char *path, struct cache_user_s *cu) { loadcache = cu; COM_LoadFile(path, 3, 0); @@ -2456,13 +2456,13 @@ void COM_Log(char *pszFile, char *fmt, ...) } /* <120a6> ../engine/common.c:2900 */ -unsigned char *COM_LoadFileForMe(char *filename, int *pLength) +unsigned char* EXT_FUNC COM_LoadFileForMe(char *filename, int *pLength) { return COM_LoadFile(filename, 5, pLength); } /* <120e3> ../engine/common.c:2905 */ -int COM_CompareFileTime(char *filename1, char *filename2, int *iCompare) +int EXT_FUNC COM_CompareFileTime(char *filename1, char *filename2, int *iCompare) { int ft1; int ft2; @@ -2494,7 +2494,7 @@ int COM_CompareFileTime(char *filename1, char *filename2, int *iCompare) } /* <12165> ../engine/common.c:2930 */ -void COM_GetGameDir(char *szGameDir) +void EXT_FUNC COM_GetGameDir(char *szGameDir) { if (szGameDir) { @@ -2888,7 +2888,7 @@ typedef struct #define WAVE_HEADER_LENGTH 128 /* <1285a> ../engine/common.c:3287 */ -unsigned int COM_GetApproxWavePlayLength(const char *filepath) +unsigned int EXT_FUNC COM_GetApproxWavePlayLength(const char *filepath) { char buf[WAVE_HEADER_LENGTH + 1]; int filelength; diff --git a/rehlds/engine/crc.cpp b/rehlds/engine/crc.cpp index 1c133be..e1141db 100644 --- a/rehlds/engine/crc.cpp +++ b/rehlds/engine/crc.cpp @@ -99,19 +99,19 @@ static const uint32 pulCRCTable[256] = /* <193b9> ../engine/crc.c:86 */ -void CRC32_Init(CRC32_t *pulCRC) +void EXT_FUNC CRC32_Init(CRC32_t *pulCRC) { *pulCRC = -1; } /* <193d9> ../engine/crc.c:91 */ -CRC32_t CRC32_Final(CRC32_t pulCRC) +CRC32_t EXT_FUNC CRC32_Final(CRC32_t pulCRC) { return ~pulCRC; } /* <19453> ../engine/crc.c:96 */ -void CRC32_ProcessByte(CRC32_t *pulCRC, unsigned char ch) +void EXT_FUNC CRC32_ProcessByte(CRC32_t *pulCRC, unsigned char ch) { CRC32_t ulCrc = *pulCRC; ulCrc = pulCRCTable[(ulCrc & 0xFF) ^ ch] ^ ((ulCrc ^ ch) >> 8); @@ -119,7 +119,7 @@ void CRC32_ProcessByte(CRC32_t *pulCRC, unsigned char ch) } /* <19496> ../engine/crc.c:106 */ -void CRC32_ProcessBuffer(CRC32_t *pulCRC, void *pBuffer, int nBuffer) +void EXT_FUNC CRC32_ProcessBuffer(CRC32_t *pulCRC, void *pBuffer, int nBuffer) { CRC32_t ulCrc = *pulCRC; uint8* pb = (uint8*)pBuffer; diff --git a/rehlds/engine/cvar.cpp b/rehlds/engine/cvar.cpp index d66f95d..a45cd23 100644 --- a/rehlds/engine/cvar.cpp +++ b/rehlds/engine/cvar.cpp @@ -347,7 +347,7 @@ void Cvar_SetValue(const char *var_name, float value) } /* <189df> ../engine/cvar.c:391 */ -void Cvar_RegisterVariable(cvar_t *variable) +void EXT_FUNC Cvar_RegisterVariable(cvar_t *variable) { char *oldstr; cvar_t *v, *c; diff --git a/rehlds/engine/delta.cpp b/rehlds/engine/delta.cpp index aef81f4..b2a24ed 100644 --- a/rehlds/engine/delta.cpp +++ b/rehlds/engine/delta.cpp @@ -335,7 +335,7 @@ delta_description_t *DELTA_FindField(delta_t *pFields, const char *pszField) } /* <23fd7> ../engine/delta.c:370 */ -int DELTA_FindFieldIndex(struct delta_s *pFields, const char *fieldname) +int EXT_FUNC DELTA_FindFieldIndex(struct delta_s *pFields, const char *fieldname) { int fieldCount = pFields->fieldCount; delta_description_t *pitem = pFields->pdd; @@ -353,7 +353,7 @@ int DELTA_FindFieldIndex(struct delta_s *pFields, const char *fieldname) } /* <24032> ../engine/delta.c:393 */ -void DELTA_SetField(struct delta_s *pFields, const char *fieldname) +void EXT_FUNC DELTA_SetField(struct delta_s *pFields, const char *fieldname) { #if defined(REHLDS_OPT_PEDANTIC) || defined(REHLDS_FIXES) int index = DELTA_FindFieldIndex(pFields, fieldname); @@ -371,7 +371,7 @@ void DELTA_SetField(struct delta_s *pFields, const char *fieldname) } /* <240b2> ../engine/delta.c:411 */ -void DELTA_UnsetField(struct delta_s *pFields, const char *fieldname) +void EXT_FUNC DELTA_UnsetField(struct delta_s *pFields, const char *fieldname) { #if defined(REHLDS_OPT_PEDANTIC) || defined(REHLDS_FIXES) int index = DELTA_FindFieldIndex(pFields, fieldname); @@ -389,7 +389,7 @@ void DELTA_UnsetField(struct delta_s *pFields, const char *fieldname) } /* <24132> ../engine/delta.c:429 */ -void DELTA_SetFieldByIndex(struct delta_s *pFields, int fieldNumber) +void EXT_FUNC DELTA_SetFieldByIndex(struct delta_s *pFields, int fieldNumber) { #if defined(REHLDS_OPT_PEDANTIC) || defined(REHLDS_FIXES) DELTAJit_SetFieldByIndex(pFields, fieldNumber); @@ -399,7 +399,7 @@ void DELTA_SetFieldByIndex(struct delta_s *pFields, int fieldNumber) } /* <2416a> ../engine/delta.c:441 */ -void DELTA_UnsetFieldByIndex(struct delta_s *pFields, int fieldNumber) +void EXT_FUNC DELTA_UnsetFieldByIndex(struct delta_s *pFields, int fieldNumber) { #if defined(REHLDS_OPT_PEDANTIC) || defined(REHLDS_FIXES) DELTAJit_UnsetFieldByIndex(pFields, fieldNumber); @@ -1014,7 +1014,7 @@ int DELTA_ParseDelta(unsigned char *from, unsigned char *to, delta_t *pFields) } /* <24c50> ../engine/delta.c:1276 */ -void DELTA_AddEncoder(char *name, void(*conditionalencode)(struct delta_s *, const unsigned char *, const unsigned char *)) +void EXT_FUNC DELTA_AddEncoder(char *name, void(*conditionalencode)(struct delta_s *, const unsigned char *, const unsigned char *)) { delta_encoder_t *p = (delta_encoder_t *)Mem_ZeroMalloc(sizeof(delta_encoder_t)); p->name = Mem_Strdup(name); diff --git a/rehlds/engine/host.cpp b/rehlds/engine/host.cpp index e7a388e..8417c2a 100644 --- a/rehlds/engine/host.cpp +++ b/rehlds/engine/host.cpp @@ -442,7 +442,7 @@ void Host_ClientCommands(const char *fmt, ...) va_end(argptr); } -void SV_DropClient_api(IGameClient* cl, bool crash, const char* fmt, ...) +void EXT_FUNC SV_DropClient_api(IGameClient* cl, bool crash, const char* fmt, ...) { char buf[1024]; va_list argptr; diff --git a/rehlds/engine/info.cpp b/rehlds/engine/info.cpp index 96ffd26..02ff265 100644 --- a/rehlds/engine/info.cpp +++ b/rehlds/engine/info.cpp @@ -40,7 +40,7 @@ key and returns the associated value, or an empty string. =============== */ /* <40d86> ../engine/info.c:23 */ -const char *Info_ValueForKey(const char *s, const char *key) +const char* EXT_FUNC Info_ValueForKey(const char *s, const char *key) { // use few (two?) buffers so compares work without stomping on each other static char value[INFO_MAX_BUFFER_VALUES][MAX_KV_LEN]; diff --git a/rehlds/engine/l_studio.cpp b/rehlds/engine/l_studio.cpp index 9f2ec76..f562b85 100644 --- a/rehlds/engine/l_studio.cpp +++ b/rehlds/engine/l_studio.cpp @@ -32,7 +32,7 @@ /* <42900> ../engine/l_studio.c:31 */ -void Mod_LoadStudioModel_internal(model_t * mod, void * buffer) +void EXT_FUNC Mod_LoadStudioModel_internal(model_t * mod, void * buffer) { uint8 *poutdata; uint8 *pindata; diff --git a/rehlds/engine/mathlib.cpp b/rehlds/engine/mathlib.cpp index d11c540..ee38a97 100644 --- a/rehlds/engine/mathlib.cpp +++ b/rehlds/engine/mathlib.cpp @@ -141,6 +141,10 @@ NOBODY int InvertMatrix(const float *m, float *out); // float *r3; // 161 //} +void EXT_FUNC AngleVectors_ext(const vec_t *angles, vec_t *forward, vec_t *right, vec_t *up) { + AngleVectors(angles, forward, right, up); +} + /* <47067> ../engine/mathlib.c:267 */ void AngleVectors(const vec_t *angles, vec_t *forward, vec_t *right, vec_t *up) { diff --git a/rehlds/engine/mathlib_e.h b/rehlds/engine/mathlib_e.h index de06db7..d42a58c 100644 --- a/rehlds/engine/mathlib_e.h +++ b/rehlds/engine/mathlib_e.h @@ -62,6 +62,7 @@ void BOPS_Error(void); int BoxOnPlaneSide(vec_t *emins, vec_t *emaxs, mplane_t *p); NOBODY int InvertMatrix(const float *m, float *out); +void AngleVectors_ext(const vec_t *angles, vec_t *forward, vec_t *right, vec_t *up); void AngleVectors(const vec_t *angles, vec_t *forward, vec_t *right, vec_t *up); void AngleVectorsTranspose(const vec_t *angles, vec_t *forward, vec_t *right, vec_t *up); void AngleMatrix(const vec_t *angles, float(*matrix)[4]); diff --git a/rehlds/engine/mem.cpp b/rehlds/engine/mem.cpp index 92e5690..5441395 100644 --- a/rehlds/engine/mem.cpp +++ b/rehlds/engine/mem.cpp @@ -50,7 +50,7 @@ void *Mem_Realloc(void *memblock, size_t size) } /* <47d8e> ../engine/mem.c:28 */ -void *Mem_Calloc(int num, size_t size) +void* EXT_FUNC Mem_Calloc(int num, size_t size) { return calloc(num, size); } diff --git a/rehlds/engine/model.cpp b/rehlds/engine/model.cpp index 5a5d64b..8f50dac 100644 --- a/rehlds/engine/model.cpp +++ b/rehlds/engine/model.cpp @@ -54,7 +54,7 @@ void SW_Mod_Init(void) } /* <52f8d> ../engine/model.c:164 */ -void *Mod_Extradata(model_t *mod) +void* EXT_FUNC Mod_Extradata(model_t *mod) { void *r; @@ -1253,7 +1253,7 @@ void Mod_LoadBrushModel(model_t *mod, void *buffer) } /* <52314> ../engine/model.c:1584 */ -void Mod_LoadBrushModel_internal(model_t *mod, void *buffer) +void EXT_FUNC Mod_LoadBrushModel_internal(model_t *mod, void *buffer) { dmodel_t *bm; model_t *submodel; diff --git a/rehlds/engine/net_ws.cpp b/rehlds/engine/net_ws.cpp index ba22100..845cc53 100644 --- a/rehlds/engine/net_ws.cpp +++ b/rehlds/engine/net_ws.cpp @@ -1300,7 +1300,7 @@ qboolean NET_GetPacket_internal(netsrc_t sock) return bret; } -bool NET_GetPacketPreprocessor(uint8* data, unsigned int len, const netadr_t& srcAddr) { +bool EXT_FUNC NET_GetPacketPreprocessor(uint8* data, unsigned int len, const netadr_t& srcAddr) { return true; } @@ -1435,7 +1435,7 @@ int NET_SendLong(netsrc_t sock, int s, const char *buf, int len, int flags, cons } } -void NET_SendPacket_api(unsigned int length, void *data, const netadr_t &to) { +void EXT_FUNC NET_SendPacket_api(unsigned int length, void *data, const netadr_t &to) { NET_SendPacket(NS_SERVER, length, data, to); } diff --git a/rehlds/engine/pmove.cpp b/rehlds/engine/pmove.cpp index cf702d4..b72ad81 100644 --- a/rehlds/engine/pmove.cpp +++ b/rehlds/engine/pmove.cpp @@ -91,7 +91,7 @@ qboolean PM_AddToTouched(pmtrace_t tr, vec_t *impactvelocity) } /* <69b96> ../engine/pmove.c:63 */ -void PM_StuckTouch(int hitent, pmtrace_t *ptraceresult) +void EXT_FUNC PM_StuckTouch(int hitent, pmtrace_t *ptraceresult) { #ifdef REHLDS_CHECKS if (hitent >= MAX_PHYSENTS) // FIXED: added for preventing buffer overrun diff --git a/rehlds/engine/pmovetst.cpp b/rehlds/engine/pmovetst.cpp index 17b5256..fb2fbd4 100644 --- a/rehlds/engine/pmovetst.cpp +++ b/rehlds/engine/pmovetst.cpp @@ -35,7 +35,7 @@ box_planes_t box_planes_0; /* <6fbe5> ../engine/pmovetst.c:30 */ -float PM_TraceModel(physent_t *pEnt, vec_t *start, vec_t *end, trace_t *trace) +float EXT_FUNC PM_TraceModel(physent_t *pEnt, vec_t *start, vec_t *end, trace_t *trace) { hull_t *pHull; // 32 int saveHull; // 33 @@ -59,7 +59,7 @@ float PM_TraceModel(physent_t *pEnt, vec_t *start, vec_t *end, trace_t *trace) } /* <6f286> ../engine/pmovetst.c:50 */ -void PM_GetModelBounds(struct model_s *mod, vec_t *mins, vec_t *maxs) +void EXT_FUNC PM_GetModelBounds(struct model_s *mod, vec_t *mins, vec_t *maxs) { mins[0] = mod->mins[0]; mins[1] = mod->mins[1]; @@ -71,7 +71,7 @@ void PM_GetModelBounds(struct model_s *mod, vec_t *mins, vec_t *maxs) } /* <6f2ca> ../engine/pmovetst.c:57 */ -int PM_GetModelType(struct model_s *mod) +int EXT_FUNC PM_GetModelType(struct model_s *mod) { return mod->type; } @@ -110,7 +110,7 @@ hull_t *PM_HullForBox(vec_t *mins, vec_t *maxs) } /* <6f34f> ../engine/pmovetst.c:124 */ -int PM_HullPointContents(hull_t *hull, int num, vec_t *p) +int EXT_FUNC PM_HullPointContents(hull_t *hull, int num, vec_t *p) { float d; dclipnode_t *node; @@ -166,7 +166,7 @@ int PM_LinkContents(vec_t *p, int *pIndex) } /* <6f740> ../engine/pmovetst.c:223 */ -int PM_PointContents(vec_t *p, int *truecontents) +int EXT_FUNC PM_PointContents(vec_t *p, int *truecontents) { #ifndef SWDS g_engdstAddrs.PM_PointContents(&p, &truecontents); @@ -220,7 +220,7 @@ int PM_WaterEntity(vec_t *p) } /* <6f813> ../engine/pmovetst.c:299 */ -int PM_TruePointContents(vec_t *p) +int EXT_FUNC PM_TruePointContents(vec_t *p) { if ((int)pmove->physents[0].model == -208) return -1; @@ -244,7 +244,7 @@ hull_t *PM_HullForStudioModel(model_t *pModel, vec_t *offset, float frame, int s } /* <6fb99> ../engine/pmovetst.c:343 */ -hull_t *PM_HullForBsp(physent_t *pe, vec_t *offset) +hull_t* EXT_FUNC PM_HullForBsp(physent_t *pe, vec_t *offset) { hull_t *hull; @@ -357,13 +357,13 @@ int _PM_TestPlayerPosition(vec_t *pos, pmtrace_t *ptrace, int(*pfnIgnore)(physen } /* <6fe2a> ../engine/pmovetst.c:507 */ -int PM_TestPlayerPosition(vec_t *pos, pmtrace_t *ptrace) +int EXT_FUNC PM_TestPlayerPosition(vec_t *pos, pmtrace_t *ptrace) { return _PM_TestPlayerPosition(pos, ptrace, 0); } /* <6fe67> ../engine/pmovetst.c:518 */ -int PM_TestPlayerPositionEx(vec_t *pos, pmtrace_t *ptrace, int(*pfnIgnore)(physent_t *)) +int EXT_FUNC PM_TestPlayerPositionEx(vec_t *pos, pmtrace_t *ptrace, int(*pfnIgnore)(physent_t *)) { return _PM_TestPlayerPosition(pos, ptrace, pfnIgnore); } @@ -572,20 +572,20 @@ pmtrace_t _PM_PlayerTrace(vec_t *start, vec_t *end, int traceFlags, int numphyse } /* <6f237> ../engine/pmovetst.c:787 */ -pmtrace_t PM_PlayerTrace(vec_t *start, vec_t *end, int traceFlags, int ignore_pe) +pmtrace_t EXT_FUNC PM_PlayerTrace(vec_t *start, vec_t *end, int traceFlags, int ignore_pe) { pmtrace_t tr = _PM_PlayerTrace(start, end, traceFlags, pmove->numphysent, pmove->physents, ignore_pe, 0); return tr; } /* <6f1e8> ../engine/pmovetst.c:794 */ -pmtrace_t PM_PlayerTraceEx(vec_t *start, vec_t *end, int traceFlags, int(*pfnIgnore)(physent_t *)) +pmtrace_t EXT_FUNC PM_PlayerTraceEx(vec_t *start, vec_t *end, int traceFlags, int(*pfnIgnore)(physent_t *)) { pmtrace_t tr = _PM_PlayerTrace(start, end, traceFlags, pmove->numphysent, pmove->physents, -1, pfnIgnore); return tr; } -struct pmtrace_s *PM_TraceLine(float *start, float *end, int flags, int usehull, int ignore_pe) +struct pmtrace_s* EXT_FUNC PM_TraceLine(float *start, float *end, int flags, int usehull, int ignore_pe) { int oldhull; static pmtrace_t tr; @@ -610,7 +610,7 @@ struct pmtrace_s *PM_TraceLine(float *start, float *end, int flags, int usehull, } /* <70238> ../engine/pmovetst.c:824 */ -struct pmtrace_s *PM_TraceLineEx(float *start, float *end, int flags, int usehull, int(*pfnIgnore)(physent_t *)) +struct pmtrace_s* EXT_FUNC PM_TraceLineEx(float *start, float *end, int flags, int usehull, int(*pfnIgnore)(physent_t *)) { int oldhull; // 826 static pmtrace_t tr; // 827 diff --git a/rehlds/engine/pr_cmds.cpp b/rehlds/engine/pr_cmds.cpp index 3881bc0..82ff324 100644 --- a/rehlds/engine/pr_cmds.cpp +++ b/rehlds/engine/pr_cmds.cpp @@ -75,19 +75,19 @@ sizebuf_t gMsgBuffer; #endif //HOOK_ENGINE /* <782a3> ../engine/pr_cmds.c:53 */ -void PF_makevectors_I(const float *rgflVector) +void EXT_FUNC PF_makevectors_I(const float *rgflVector) { AngleVectors(rgflVector, gGlobalVariables.v_forward, gGlobalVariables.v_right, gGlobalVariables.v_up); } /* <782cb> ../engine/pr_cmds.c:58 */ -float PF_Time(void) +float EXT_FUNC PF_Time(void) { return Sys_FloatTime(); } /* <782e4> ../engine/pr_cmds.c:74 */ -void PF_setorigin_I(edict_t *e, const float *org) +void EXT_FUNC PF_setorigin_I(edict_t *e, const float *org) { if (!e) return; @@ -99,7 +99,7 @@ void PF_setorigin_I(edict_t *e, const float *org) } /* <78317> ../engine/pr_cmds.c:84 */ -void SetMinMaxSize(edict_t *e, const float *min, const float *max, qboolean rotate) +void EXT_FUNC SetMinMaxSize(edict_t *e, const float *min, const float *max, qboolean rotate) { for (int i = 0; i < 3; i++) { @@ -122,13 +122,13 @@ void SetMinMaxSize(edict_t *e, const float *min, const float *max, qboolean rota } /* <7840f> ../engine/pr_cmds.c:169 */ -void PF_setsize_I(edict_t *e, const float *rgflMin, const float *rgflMax) +void EXT_FUNC PF_setsize_I(edict_t *e, const float *rgflMin, const float *rgflMax) { SetMinMaxSize(e, rgflMin, rgflMax, 0); } /* <78451> ../engine/pr_cmds.c:184 */ -void PF_setmodel_I(edict_t *e, const char *m) +void EXT_FUNC PF_setmodel_I(edict_t *e, const char *m) { const char** check = &g_psv.model_precache[0]; int i = 0; @@ -168,13 +168,13 @@ void PF_setmodel_I(edict_t *e, const char *m) } /* <784b4> ../engine/pr_cmds.c:210 */ -int PF_modelindex(const char *pstr) +int EXT_FUNC PF_modelindex(const char *pstr) { return SV_ModelIndex(pstr); } /* <784df> ../engine/pr_cmds.c:217 */ -int ModelFrames(int modelIndex) +int EXT_FUNC ModelFrames(int modelIndex) { if (modelIndex <= 0 || modelIndex >= 512) { @@ -186,13 +186,13 @@ int ModelFrames(int modelIndex) } /* <7851a> ../engine/pr_cmds.c:239 */ -void PF_bprint(char *s) +void EXT_FUNC PF_bprint(char *s) { SV_BroadcastPrintf("%s", s); } /* <78540> ../engine/pr_cmds.c:253 */ -void PF_sprint(char *s, int entnum) +void EXT_FUNC PF_sprint(char *s, int entnum) { if (entnum <= 0 || entnum > g_psvs.maxclients) { @@ -209,13 +209,13 @@ void PF_sprint(char *s, int entnum) } /* <78589> ../engine/pr_cmds.c:280 */ -void ServerPrint(const char *szMsg) +void EXT_FUNC ServerPrint(const char *szMsg) { Con_Printf("%s", szMsg); } /* <785b3> ../engine/pr_cmds.c:293 */ -void ClientPrintf(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg) +void EXT_FUNC ClientPrintf(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg) { client_t *client; int entnum; @@ -252,7 +252,7 @@ void ClientPrintf(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg) } /* <7861b> ../engine/pr_cmds.c:339 */ -float PF_vectoyaw_I(const float *rgflVector) +float EXT_FUNC PF_vectoyaw_I(const float *rgflVector) { float yaw = 0.0f; if (rgflVector[1] == 0.0f && rgflVector[0] == 0.0f) @@ -266,19 +266,19 @@ float PF_vectoyaw_I(const float *rgflVector) } /* <78659> ../engine/pr_cmds.c:363 */ -void PF_vectoangles_I(const float *rgflVectorIn, float *rgflVectorOut) +void EXT_FUNC PF_vectoangles_I(const float *rgflVectorIn, float *rgflVectorOut) { VectorAngles(rgflVectorIn, rgflVectorOut); } /* <78691> ../engine/pr_cmds.c:377 */ -void PF_particle_I(const float *org, const float *dir, float color, float count) +void EXT_FUNC PF_particle_I(const float *org, const float *dir, float color, float count) { SV_StartParticle(org, dir, color, count); } /* <786e7> ../engine/pr_cmds.c:390 */ -void PF_ambientsound_I(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch) +void EXT_FUNC PF_ambientsound_I(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch) { int i; int soundnum; @@ -332,7 +332,7 @@ void PF_ambientsound_I(edict_t *entity, float *pos, const char *samp, float vol, } /* <787c0> ../engine/pr_cmds.c:459 */ -void PF_sound_I(edict_t *entity, int channel, const char *sample, float volume, float attenuation, int fFlags, int pitch) +void EXT_FUNC PF_sound_I(edict_t *entity, int channel, const char *sample, float volume, float attenuation, int fFlags, int pitch) { if (volume < 0.0 || volume > 255.0) Sys_Error("EMIT_SOUND: volume = %i", volume); @@ -346,7 +346,7 @@ void PF_sound_I(edict_t *entity, int channel, const char *sample, float volume, } /* <78cdd> ../engine/pr_cmds.c:491 */ -void PF_traceline_Shared(const float *v1, const float *v2, int nomonsters, edict_t *ent) +void EXT_FUNC PF_traceline_Shared(const float *v1, const float *v2, int nomonsters, edict_t *ent) { #ifdef REHLDS_OPT_PEDANTIC trace_t trace = SV_Move_Point(v1, v2, nomonsters, ent); @@ -359,7 +359,7 @@ void PF_traceline_Shared(const float *v1, const float *v2, int nomonsters, edict } /* <78d1c> ../engine/pr_cmds.c:502 */ -void PF_traceline_DLL(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr) +void EXT_FUNC PF_traceline_DLL(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr) { PF_traceline_Shared(v1, v2, fNoMonsters, pentToSkip ? pentToSkip : &g_psv.edicts[0]); ptr->fAllSolid = (int)gGlobalVariables.trace_allsolid; @@ -379,7 +379,7 @@ void PF_traceline_DLL(const float *v1, const float *v2, int fNoMonsters, edict_t } /* <78844> ../engine/pr_cmds.c:531 */ -void TraceHull(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr) +void EXT_FUNC TraceHull(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr) { hullNumber = hullNumber; if (hullNumber < 0 || hullNumber > 3) @@ -403,13 +403,13 @@ void TraceHull(const float *v1, const float *v2, int fNoMonsters, int hullNumber } /* <788c8> ../engine/pr_cmds.c:556 */ -void TraceSphere(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr) +void EXT_FUNC TraceSphere(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr) { Sys_Error("TraceSphere not yet implemented!\n"); } /* <7893a> ../engine/pr_cmds.c:578 */ -void TraceModel(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr) +void EXT_FUNC TraceModel(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr) { int oldMovetype, oldSolid; @@ -448,7 +448,7 @@ void TraceModel(const float *v1, const float *v2, int hullNumber, edict_t *pent, } /* <789df> ../engine/pr_cmds.c:619 */ -msurface_t *SurfaceAtPoint(model_t *pModel, mnode_t *node, vec_t *start, vec_t *end) +msurface_t* EXT_FUNC SurfaceAtPoint(model_t *pModel, mnode_t *node, vec_t *start, vec_t *end) { mplane_t *plane; int s; @@ -506,7 +506,7 @@ msurface_t *SurfaceAtPoint(model_t *pModel, mnode_t *node, vec_t *start, vec_t * } /* <78af9> ../engine/pr_cmds.c:688 */ -const char *TraceTexture(edict_t *pTextureEntity, const float *v1, const float *v2) +const char* EXT_FUNC TraceTexture(edict_t *pTextureEntity, const float *v1, const float *v2) { int firstnode; model_t *pmodel; @@ -573,14 +573,14 @@ const char *TraceTexture(edict_t *pTextureEntity, const float *v1, const float * } /* <78c30> ../engine/pr_cmds.c:749 */ -void PF_TraceToss_Shared(edict_t *ent, edict_t *ignore) +void EXT_FUNC PF_TraceToss_Shared(edict_t *ent, edict_t *ignore) { trace_t trace = SV_Trace_Toss(ent, ignore); SV_SetGlobalTrace(&trace); } /* <78c06> ../engine/pr_cmds.c:758 */ -void SV_SetGlobalTrace(trace_t *ptrace) +void EXT_FUNC SV_SetGlobalTrace(trace_t *ptrace) { gGlobalVariables.trace_fraction = ptrace->fraction; gGlobalVariables.trace_allsolid = (float)ptrace->allsolid; @@ -607,7 +607,7 @@ void SV_SetGlobalTrace(trace_t *ptrace) } /* <78dc1> ../engine/pr_cmds.c:775 */ -void PF_TraceToss_DLL(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr) +void EXT_FUNC PF_TraceToss_DLL(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr) { PF_TraceToss_Shared(pent, pentToIgnore ? pentToIgnore : &g_psv.edicts[0]); @@ -628,7 +628,7 @@ void PF_TraceToss_DLL(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr) } /* <78e3a> ../engine/pr_cmds.c:791 */ -int TraceMonsterHull(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr) +int EXT_FUNC TraceMonsterHull(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr) { qboolean monsterClip = (pEdict->v.flags & FL_MONSTERCLIP) ? 1 : 0; trace_t trace = SV_Move(v1, pEdict->v.mins, pEdict->v.maxs, v2, fNoMonsters, pentToSkip, monsterClip); @@ -654,7 +654,7 @@ int TraceMonsterHull(edict_t *pEdict, const float *v1, const float *v2, int fNoM } /* <78ed1> ../engine/pr_cmds.c:830 */ -int PF_newcheckclient(int check) +int EXT_FUNC PF_newcheckclient(int check) { int i; unsigned char *pvs; @@ -691,7 +691,7 @@ int PF_newcheckclient(int check) } /* <78f53> ../engine/pr_cmds.c:898 */ -edict_t *PF_checkclient_I(edict_t *pEdict) +edict_t* EXT_FUNC PF_checkclient_I(edict_t *pEdict) { edict_t *ent; mleaf_t *leaf; @@ -727,7 +727,7 @@ edict_t *PF_checkclient_I(edict_t *pEdict) } /* <78fbe> ../engine/pr_cmds.c:942 */ -mnode_t *PVSNode(mnode_t *node, vec_t *emins, vec_t *emaxs) +mnode_t* EXT_FUNC PVSNode(mnode_t *node, vec_t *emins, vec_t *emaxs) { mplane_t *splitplane; int sides; @@ -774,7 +774,7 @@ mnode_t *PVSNode(mnode_t *node, vec_t *emins, vec_t *emaxs) } /* <7903a> ../engine/pr_cmds.c:976 */ -void PVSMark(model_t *pmodel, unsigned char *ppvs) +void EXT_FUNC PVSMark(model_t *pmodel, unsigned char *ppvs) { ++r_visframecount; for (int i = 0; i < pmodel->numleafs; i++) @@ -794,7 +794,7 @@ void PVSMark(model_t *pmodel, unsigned char *ppvs) } /* <790b0> ../engine/pr_cmds.c:1009 */ -edict_t *PVSFindEntities(edict_t *pplayer) +edict_t* EXT_FUNC PVSFindEntities(edict_t *pplayer) { edict_t *pent; edict_t *pchain; @@ -838,14 +838,14 @@ edict_t *PVSFindEntities(edict_t *pplayer) } /* <79182> ../engine/pr_cmds.c:1055 */ -qboolean ValidCmd(const char *pCmd) +qboolean EXT_FUNC ValidCmd(const char *pCmd) { int len = Q_strlen(pCmd); return len && (pCmd[len - 1] == '\n' || pCmd[len - 1] == ';'); } /* <791d5> ../engine/pr_cmds.c:1079 */ -void PF_stuffcmd_I(edict_t *pEdict, char *szFmt, ...) +void EXT_FUNC PF_stuffcmd_I(edict_t *pEdict, char *szFmt, ...) { int entnum; client_t *old; @@ -883,7 +883,7 @@ void PF_stuffcmd_I(edict_t *pEdict, char *szFmt, ...) } /* <79292> ../engine/pr_cmds.c:1119 */ -void PF_localcmd_I(char *str) +void EXT_FUNC PF_localcmd_I(char *str) { if (ValidCmd(str)) Cbuf_AddText(str); @@ -892,13 +892,13 @@ void PF_localcmd_I(char *str) } /* <792e8> ../engine/pr_cmds.c:1137 */ -void PF_localexec_I(void) +void EXT_FUNC PF_localexec_I(void) { Cbuf_Execute(); } /* <792fd> ../engine/pr_cmds.c:1154 */ -edict_t *FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, float rad) +edict_t* EXT_FUNC FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, float rad) { int e = pEdictStartSearchAfter ? NUM_FOR_EDICT(pEdictStartSearchAfter) : 0; @@ -931,13 +931,13 @@ edict_t *FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, f } /* <793a2> ../engine/pr_cmds.c:1219 */ -edict_t *PF_Spawn_I(void) +edict_t* EXT_FUNC PF_Spawn_I(void) { return ED_Alloc(); } /* <793cc> ../engine/pr_cmds.c:1226 */ -edict_t *CreateNamedEntity(int className) +edict_t* EXT_FUNC CreateNamedEntity(int className) { edict_t *pedict; ENTITYINIT pEntityInit; @@ -962,13 +962,13 @@ edict_t *CreateNamedEntity(int className) } /* <7941a> ../engine/pr_cmds.c:1253 */ -void PF_Remove_I(edict_t *ed) +void EXT_FUNC PF_Remove_I(edict_t *ed) { ED_Free(ed); } /* <7820f> ../engine/pr_cmds.c:1263 */ -edict_t *PF_find_Shared(int eStartSearchAfter, int iFieldToMatch, const char *szValueToFind) +edict_t* EXT_FUNC PF_find_Shared(int eStartSearchAfter, int iFieldToMatch, const char *szValueToFind) { for (int e = eStartSearchAfter + 1; e < g_psv.num_edicts; e++) { @@ -990,7 +990,7 @@ edict_t *PF_find_Shared(int eStartSearchAfter, int iFieldToMatch, const char *sz /* <79442> ../engine/pr_cmds.c:1290 */ -int iGetIndex(const char *pszField) +int EXT_FUNC iGetIndex(const char *pszField) { char sz[512]; @@ -1019,7 +1019,7 @@ int iGetIndex(const char *pszField) } /* <7949b> ../engine/pr_cmds.c:1332 */ -edict_t *FindEntityByString(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue) +edict_t* EXT_FUNC FindEntityByString(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue) { if (!pszValue) return NULL; @@ -1032,7 +1032,7 @@ edict_t *FindEntityByString(edict_t *pEdictStartSearchAfter, const char *pszFiel } /* <79540> ../engine/pr_cmds.c:1348 */ -int GetEntityIllum(edict_t *pEnt) +int EXT_FUNC GetEntityIllum(edict_t *pEnt) { if (!pEnt) return -1; @@ -1051,13 +1051,13 @@ int GetEntityIllum(edict_t *pEnt) } /* <78265> ../engine/pr_cmds.c:1383 */ -qboolean PR_IsEmptyString(const char *s) +qboolean EXT_FUNC PR_IsEmptyString(const char *s) { return s[0] < ' '; } /* <795b5> ../engine/pr_cmds.c:1397 */ -int PF_precache_sound_I(const char *s) +int EXT_FUNC PF_precache_sound_I(const char *s) { int i; @@ -1112,7 +1112,7 @@ int PF_precache_sound_I(const char *s) } /* <79609> ../engine/pr_cmds.c:1455 */ -short unsigned int EV_Precache(int type, const char *psz) +short unsigned int EXT_FUNC EV_Precache(int type, const char *psz) { if (!psz) Host_Error("EV_Precache: NULL pointer"); @@ -1173,7 +1173,7 @@ short unsigned int EV_Precache(int type, const char *psz) } /* <796ae> ../engine/pr_cmds.c:1531 */ -void EV_PlayReliableEvent(client_t *cl, int entindex, short unsigned int eventindex, float delay, event_args_t *pargs) +void EXT_FUNC EV_PlayReliableEvent(client_t *cl, int entindex, short unsigned int eventindex, float delay, event_args_t *pargs) { // unsigned char data; // 1533 // sizebuf_t msg; // 1534 @@ -1221,7 +1221,7 @@ void EV_PlayReliableEvent(client_t *cl, int entindex, short unsigned int eventin } /* <79769> ../engine/pr_cmds.c:1595 */ -void EV_Playback(int flags, const edict_t *pInvoker, short unsigned int eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2) +void EXT_FUNC EV_Playback(int flags, const edict_t *pInvoker, short unsigned int eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2) { client_t *cl; signed int j; @@ -1392,7 +1392,7 @@ void EV_Playback(int flags, const edict_t *pInvoker, short unsigned int eventind } /* <798fb> ../engine/pr_cmds.c:1826 */ -void EV_SV_Playback(int flags, int clientindex, short unsigned int eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2) +void EXT_FUNC EV_SV_Playback(int flags, int clientindex, short unsigned int eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2) { if (flags & FEV_CLIENT) return; @@ -1405,7 +1405,7 @@ void EV_SV_Playback(int flags, int clientindex, short unsigned int eventindex, f } /* <799da> ../engine/pr_cmds.c:1849 */ -int PF_precache_model_I(const char *s) +int EXT_FUNC PF_precache_model_I(const char *s) { int iOptional = 0; if (!s) @@ -1475,7 +1475,7 @@ int PF_precache_model_I(const char *s) } /* <79a3f> ../engine/pr_cmds.c:1903 */ -int PF_precache_generic_I(char *s) +int EXT_FUNC PF_precache_generic_I(char *s) // TODO: Call to Con_Printf is replaced with Host_Error in 6153 { if (!s) @@ -1520,7 +1520,7 @@ int PF_precache_generic_I(char *s) } /* <79a93> ../engine/pr_cmds.c:1944 */ -int PF_IsMapValid_I(char *mapname) +int EXT_FUNC PF_IsMapValid_I(char *mapname) { char cBuf[260]; if (!mapname || strlen(mapname) == 0) @@ -1532,7 +1532,7 @@ int PF_IsMapValid_I(char *mapname) } /* <79ad1> ../engine/pr_cmds.c:1955 */ -int PF_NumberOfEntities_I(void) +int EXT_FUNC PF_NumberOfEntities_I(void) { int ent_count = 0; for (int i = 1; i < g_psv.num_edicts; i++) @@ -1545,7 +1545,7 @@ int PF_NumberOfEntities_I(void) } /* <79b0e> ../engine/pr_cmds.c:1977 */ -char *PF_GetInfoKeyBuffer_I(edict_t *e) +char* EXT_FUNC PF_GetInfoKeyBuffer_I(edict_t *e) { int e1; char *value; @@ -1578,13 +1578,13 @@ char *PF_GetInfoKeyBuffer_I(edict_t *e) } /* <79b55> ../engine/pr_cmds.c:2012 */ -char *PF_InfoKeyValue_I(char *infobuffer, const char *key) +char* EXT_FUNC PF_InfoKeyValue_I(char *infobuffer, const char *key) { return (char *)Info_ValueForKey(infobuffer, key); } /* <79b91> ../engine/pr_cmds.c:2022 */ -void PF_SetKeyValue_I(char *infobuffer, const char *key, const char *value) +void EXT_FUNC PF_SetKeyValue_I(char *infobuffer, const char *key, const char *value) { if (infobuffer == localinfo) { @@ -1605,13 +1605,13 @@ void PF_SetKeyValue_I(char *infobuffer, const char *key, const char *value) } /* <79bd9> ../engine/pr_cmds.c:2037 */ -void PF_RemoveKey_I(char *s, const char *key) +void EXT_FUNC PF_RemoveKey_I(char *s, const char *key) { Info_RemoveKey(s, key); } /* <79c0f> ../engine/pr_cmds.c:2047 */ -void PF_SetClientKeyValue_I(int clientIndex, char *infobuffer, const char *key, const char *value) +void EXT_FUNC PF_SetClientKeyValue_I(int clientIndex, char *infobuffer, const char *key, const char *value) { client_t *pClient; @@ -1633,7 +1633,7 @@ void PF_SetClientKeyValue_I(int clientIndex, char *infobuffer, const char *key, } /* <79c74> ../engine/pr_cmds.c:2078 */ -int PF_walkmove_I(edict_t *ent, float yaw, float dist, int iMode) +int EXT_FUNC PF_walkmove_I(edict_t *ent, float yaw, float dist, int iMode) { vec3_t move; @@ -1658,7 +1658,7 @@ int PF_walkmove_I(edict_t *ent, float yaw, float dist, int iMode) } /* <79cef> ../engine/pr_cmds.c:2120 */ -int PF_droptofloor_I(edict_t *ent) +int EXT_FUNC PF_droptofloor_I(edict_t *ent) { vec3_t end; trace_t trace; @@ -1685,7 +1685,7 @@ int PF_droptofloor_I(edict_t *ent) } /* <79d4c> ../engine/pr_cmds.c:2158 */ -int PF_DecalIndex(const char *name) +int EXT_FUNC PF_DecalIndex(const char *name) { for (int i = 0; i < sv_decalnamecount; i++) { @@ -1697,7 +1697,7 @@ int PF_DecalIndex(const char *name) } /* <79d88> ../engine/pr_cmds.c:2180 */ -void PF_lightstyle_I(int style, char *val) +void EXT_FUNC PF_lightstyle_I(int style, char *val) { g_psv.lightstyles[style] = val; if (g_psv.state != ss_active) @@ -1716,19 +1716,19 @@ void PF_lightstyle_I(int style, char *val) } /* <79ddf> ../engine/pr_cmds.c:2209 */ -int PF_checkbottom_I(edict_t *pEdict) +int EXT_FUNC PF_checkbottom_I(edict_t *pEdict) { return SV_CheckBottom(pEdict); } /* <79e0c> ../engine/pr_cmds.c:2221 */ -int PF_pointcontents_I(const float *rgflVector) +int EXT_FUNC PF_pointcontents_I(const float *rgflVector) { return SV_PointContents(rgflVector); } /* <79e39> ../engine/pr_cmds.c:2237 */ -void PF_aim_I(edict_t *ent, float speed, float *rgflReturn) +void EXT_FUNC PF_aim_I(edict_t *ent, float speed, float *rgflReturn) { vec3_t start; // 2240 vec3_t dir; // 2240 @@ -1815,7 +1815,7 @@ void PF_aim_I(edict_t *ent, float speed, float *rgflReturn) } /* <79f2a> ../engine/pr_cmds.c:2313 */ -void PF_changeyaw_I(edict_t *ent) +void EXT_FUNC PF_changeyaw_I(edict_t *ent) { float ideal; float current; @@ -1855,7 +1855,7 @@ void PF_changeyaw_I(edict_t *ent) } /* <79f94> ../engine/pr_cmds.c:2355 */ -void PF_changepitch_I(edict_t *ent) +void EXT_FUNC PF_changepitch_I(edict_t *ent) { float ideal; float current; @@ -1895,7 +1895,7 @@ void PF_changepitch_I(edict_t *ent) } /* <79ffe> ../engine/pr_cmds.c:2398 */ -void PF_setview_I(const edict_t *clientent, const edict_t *viewent) +void EXT_FUNC PF_setview_I(const edict_t *clientent, const edict_t *viewent) { int clientnum = NUM_FOR_EDICT(clientent); if (clientnum < 1 || clientnum > g_psvs.maxclients) @@ -1911,7 +1911,7 @@ void PF_setview_I(const edict_t *clientent, const edict_t *viewent) } /* <7a057> ../engine/pr_cmds.c:2426 */ -void PF_crosshairangle_I(const edict_t *clientent, float pitch, float yaw) +void EXT_FUNC PF_crosshairangle_I(const edict_t *clientent, float pitch, float yaw) { int clientnum = NUM_FOR_EDICT(clientent); if (clientnum < 1 || clientnum > g_psvs.maxclients) @@ -1940,7 +1940,7 @@ void PF_crosshairangle_I(const edict_t *clientent, float pitch, float yaw) } /* <7a0c1> ../engine/pr_cmds.c:2457 */ -edict_t *PF_CreateFakeClient_I(const char *netname) +edict_t* EXT_FUNC PF_CreateFakeClient_I(const char *netname) { client_t *fakeclient; edict_t *ent; @@ -1996,7 +1996,7 @@ edict_t *PF_CreateFakeClient_I(const char *netname) } /* <7a12b> ../engine/pr_cmds.c:2519 */ -void PF_RunPlayerMove_I(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, short unsigned int buttons, unsigned char impulse, unsigned char msec) +void EXT_FUNC PF_RunPlayerMove_I(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, short unsigned int buttons, unsigned char impulse, unsigned char msec) { usercmd_t cmd; edict_t *oldclient; @@ -2033,7 +2033,7 @@ void PF_RunPlayerMove_I(edict_t *fakeclient, const float *viewangles, float forw } /* <7a1fe> ../engine/pr_cmds.c:2578 */ -sizebuf_t *WriteDest_Parm(int dest) +sizebuf_t* EXT_FUNC WriteDest_Parm(int dest) { int entnum; @@ -2071,7 +2071,7 @@ sizebuf_t *WriteDest_Parm(int dest) } /* <7a23d> ../engine/pr_cmds.c:2624 */ -void PF_MessageBegin_I(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed) +void EXT_FUNC PF_MessageBegin_I(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed) { if (msg_dest == MSG_ONE || msg_dest == MSG_ONE_UNRELIABLE) { @@ -2112,7 +2112,7 @@ void PF_MessageBegin_I(int msg_dest, int msg_type, const float *pOrigin, edict_t } /* <7a293> ../engine/pr_cmds.c:2669 */ -void PF_MessageEnd_I(void) +void EXT_FUNC PF_MessageEnd_I(void) { qboolean MsgIsVarLength = 0; if (!gMsgStarted) @@ -2212,7 +2212,7 @@ void PF_MessageEnd_I(void) } /* <7a317> ../engine/pr_cmds.c:2802 */ -void PF_WriteByte_I(int iValue) +void EXT_FUNC PF_WriteByte_I(int iValue) { if (!gMsgStarted) Sys_Error("WRITE_BYTE called with no active message\n"); @@ -2220,7 +2220,7 @@ void PF_WriteByte_I(int iValue) } /* <7a341> ../engine/pr_cmds.c:2810 */ -void PF_WriteChar_I(int iValue) +void EXT_FUNC PF_WriteChar_I(int iValue) { if (!gMsgStarted) Sys_Error("WRITE_CHAR called with no active message\n"); @@ -2228,7 +2228,7 @@ void PF_WriteChar_I(int iValue) } /* <7a36b> ../engine/pr_cmds.c:2818 */ -void PF_WriteShort_I(int iValue) +void EXT_FUNC PF_WriteShort_I(int iValue) { if (!gMsgStarted) Sys_Error("WRITE_SHORT called with no active message\n"); @@ -2236,7 +2236,7 @@ void PF_WriteShort_I(int iValue) } /* <7a395> ../engine/pr_cmds.c:2826 */ -void PF_WriteLong_I(int iValue) +void EXT_FUNC PF_WriteLong_I(int iValue) { if (!gMsgStarted) Sys_Error("PF_WriteLong_I called with no active message\n"); @@ -2244,7 +2244,7 @@ void PF_WriteLong_I(int iValue) } /* <7a3bf> ../engine/pr_cmds.c:2834 */ -void PF_WriteAngle_I(float flValue) +void EXT_FUNC PF_WriteAngle_I(float flValue) { if (!gMsgStarted) Sys_Error("PF_WriteAngle_I called with no active message\n"); @@ -2252,7 +2252,7 @@ void PF_WriteAngle_I(float flValue) } /* <7a3e9> ../engine/pr_cmds.c:2842 */ -void PF_WriteCoord_I(float flValue) +void EXT_FUNC PF_WriteCoord_I(float flValue) { if (!gMsgStarted) Sys_Error("PF_WriteCoord_I called with no active message\n"); @@ -2260,7 +2260,7 @@ void PF_WriteCoord_I(float flValue) } /* <7a413> ../engine/pr_cmds.c:2851 */ -void PF_WriteString_I(const char *sz) +void EXT_FUNC PF_WriteString_I(const char *sz) { if (!gMsgStarted) Sys_Error("PF_WriteString_I called with no active message\n"); @@ -2268,7 +2268,7 @@ void PF_WriteString_I(const char *sz) } /* <7a43c> ../engine/pr_cmds.c:2859 */ -void PF_WriteEntity_I(int iValue) +void EXT_FUNC PF_WriteEntity_I(int iValue) { if (!gMsgStarted) Sys_Error("PF_WriteEntity_I called with no active message\n"); @@ -2276,7 +2276,7 @@ void PF_WriteEntity_I(int iValue) } /* <7a466> ../engine/pr_cmds.c:2874 */ -void PF_makestatic_I(edict_t *ent) +void EXT_FUNC PF_makestatic_I(edict_t *ent) { MSG_WriteByte(&g_psv.signon, svc_spawnstatic); MSG_WriteShort(&g_psv.signon, SV_ModelIndex(&pr_strings[ent->v.model])); @@ -2305,7 +2305,7 @@ void PF_makestatic_I(edict_t *ent) } /* <7a49e> ../engine/pr_cmds.c:2910 */ -void PF_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex) +void EXT_FUNC PF_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex) { MSG_WriteByte(&g_psv.signon, svc_temp_entity); MSG_WriteByte(&g_psv.signon, TE_BSPDECAL); @@ -2320,7 +2320,7 @@ void PF_StaticDecal(const float *origin, int decalIndex, int entityIndex, int mo } /* <7a4f5> ../engine/pr_cmds.c:2935 */ -void PF_setspawnparms_I(edict_t *ent) +void EXT_FUNC PF_setspawnparms_I(edict_t *ent) { int i = NUM_FOR_EDICT(ent); if (i < 1 || i > g_psvs.maxclients) @@ -2328,7 +2328,7 @@ void PF_setspawnparms_I(edict_t *ent) } /* <7a539> ../engine/pr_cmds.c:2956 */ -void PF_changelevel_I(const char *s1, const char *s2) +void EXT_FUNC PF_changelevel_I(const char *s1, const char *s2) { static int last_spawncount; @@ -2408,7 +2408,7 @@ float fran1(void) } /* <7a644> ../engine/pr_cmds.c:3045 */ -float RandomFloat(float flLow, float flHigh) +float EXT_FUNC RandomFloat(float flLow, float flHigh) { #ifndef SWDS g_engdstAddrs.pfnRandomFloat(&flLow, &flHigh); @@ -2419,7 +2419,7 @@ float RandomFloat(float flLow, float flHigh) } /* <7a6b2> ../engine/pr_cmds.c:3056 */ -int32 RandomLong(int32 lLow, int32 lHigh) +int32 EXT_FUNC RandomLong(int32 lLow, int32 lHigh) { #ifndef SWDS g_engdstAddrs.pfnRandomLong(&lLow, &lHigh); @@ -2451,7 +2451,7 @@ int32 RandomLong(int32 lLow, int32 lHigh) } /* <7a71b> ../engine/pr_cmds.c:3089 */ -void PF_FadeVolume(const edict_t *clientent, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds) +void EXT_FUNC PF_FadeVolume(const edict_t *clientent, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds) { int entnum = NUM_FOR_EDICT(clientent); if (entnum < 1 || entnum > g_psvs.maxclients) @@ -2472,7 +2472,7 @@ void PF_FadeVolume(const edict_t *clientent, int fadePercent, int fadeOutSeconds } /* <7a7a1> ../engine/pr_cmds.c:3124 */ -void PF_SetClientMaxspeed(edict_t *clientent, float fNewMaxspeed) +void EXT_FUNC PF_SetClientMaxspeed(edict_t *clientent, float fNewMaxspeed) { int entnum = NUM_FOR_EDICT(clientent); if (entnum < 1 || entnum > g_psvs.maxclients) @@ -2482,7 +2482,7 @@ void PF_SetClientMaxspeed(edict_t *clientent, float fNewMaxspeed) } /* <7a80b> ../engine/pr_cmds.c:3149 */ -int PF_GetPlayerUserId(edict_t *e) +int EXT_FUNC PF_GetPlayerUserId(edict_t *e) { if (!g_psv.active || !e) return -1; @@ -2497,13 +2497,13 @@ int PF_GetPlayerUserId(edict_t *e) } /* <7a854> ../engine/pr_cmds.c:3172 */ -unsigned int PF_GetPlayerWONId(edict_t *e) +unsigned int EXT_FUNC PF_GetPlayerWONId(edict_t *e) { return 0xFFFFFFFF; } /* <7a87f> ../engine/pr_cmds.c:3180 */ -const char *PF_GetPlayerAuthId(edict_t *e) +const char* EXT_FUNC PF_GetPlayerAuthId(edict_t *e) { static char szAuthID[5][64]; static int count = 0; @@ -2547,7 +2547,7 @@ const char *PF_GetPlayerAuthId(edict_t *e) } /* <7a902> ../engine/pr_cmds.c:3229 */ -void PF_BuildSoundMsg_I(edict_t *entity, int channel, const char *sample, float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed) +void EXT_FUNC PF_BuildSoundMsg_I(edict_t *entity, int channel, const char *sample, float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed) { PF_MessageBegin_I(msg_dest, msg_type, pOrigin, ed); SV_BuildSoundMsg(entity, channel, sample, (int)volume, attenuation, fFlags, pitch, pOrigin, &gMsgBuffer); @@ -2555,13 +2555,13 @@ void PF_BuildSoundMsg_I(edict_t *entity, int channel, const char *sample, float } /* <7a9c1> ../engine/pr_cmds.c:3240 */ -int PF_IsDedicatedServer(void) +int EXT_FUNC PF_IsDedicatedServer(void) { return g_bIsDedicatedServer; } /* <7a9da> ../engine/pr_cmds.c:3245 */ -const char *PF_GetPhysicsInfoString(const edict_t *pClient) +const char* EXT_FUNC PF_GetPhysicsInfoString(const edict_t *pClient) { int entnum = NUM_FOR_EDICT(pClient); if (entnum < 1 || entnum > g_psvs.maxclients) @@ -2575,7 +2575,7 @@ const char *PF_GetPhysicsInfoString(const edict_t *pClient) } /* <7aa28> ../engine/pr_cmds.c:3259 */ -const char *PF_GetPhysicsKeyValue(const edict_t *pClient, const char *key) +const char* EXT_FUNC PF_GetPhysicsKeyValue(const edict_t *pClient, const char *key) { int entnum = NUM_FOR_EDICT(pClient); if (entnum < 1 || entnum > g_psvs.maxclients) @@ -2589,7 +2589,7 @@ const char *PF_GetPhysicsKeyValue(const edict_t *pClient, const char *key) } /* <7aa85> ../engine/pr_cmds.c:3273 */ -void PF_SetPhysicsKeyValue(const edict_t *pClient, const char *key, const char *value) +void EXT_FUNC PF_SetPhysicsKeyValue(const edict_t *pClient, const char *key, const char *value) { int entnum = NUM_FOR_EDICT(pClient); if (entnum < 1 || entnum > g_psvs.maxclients) @@ -2600,7 +2600,7 @@ void PF_SetPhysicsKeyValue(const edict_t *pClient, const char *key, const char * } /* <7aaed> ../engine/pr_cmds.c:3287 */ -int PF_GetCurrentPlayer(void) +int EXT_FUNC PF_GetCurrentPlayer(void) { int idx = host_client - g_psvs.clients; if (idx < 0 || idx >= g_psvs.maxclients) @@ -2610,7 +2610,7 @@ int PF_GetCurrentPlayer(void) } /* <7ab19> ../engine/pr_cmds.c:3296 */ -int PF_CanSkipPlayer(const edict_t *pClient) +int EXT_FUNC PF_CanSkipPlayer(const edict_t *pClient) { int entnum = NUM_FOR_EDICT(pClient); if (entnum < 1 || entnum > g_psvs.maxclients) @@ -2624,14 +2624,14 @@ int PF_CanSkipPlayer(const edict_t *pClient) } /* <7ab67> ../engine/pr_cmds.c:3313 */ -void PF_SetGroupMask(int mask, int op) +void EXT_FUNC PF_SetGroupMask(int mask, int op) { g_groupmask = mask; g_groupop = op; } /* <7ab9e> ../engine/pr_cmds.c:3319 */ -int PF_CreateInstancedBaseline(int classname, struct entity_state_s *baseline) +int EXT_FUNC PF_CreateInstancedBaseline(int classname, struct entity_state_s *baseline) { extra_baselines_t *bls = g_psv.instance_baselines; if (bls->number >= NUM_BASELINES) @@ -2644,13 +2644,13 @@ int PF_CreateInstancedBaseline(int classname, struct entity_state_s *baseline) } /* <7abdb> ../engine/pr_cmds.c:3332 */ -void PF_Cvar_DirectSet(struct cvar_s *var, const char *value) +void EXT_FUNC PF_Cvar_DirectSet(struct cvar_s *var, const char *value) { Cvar_DirectSet(var, value); } /* <7ac13> ../engine/pr_cmds.c:3337 */ -void PF_ForceUnmodified(FORCE_TYPE type, float *mins, float *maxs, const char *filename) +void EXT_FUNC PF_ForceUnmodified(FORCE_TYPE type, float *mins, float *maxs, const char *filename) { int i; @@ -2706,7 +2706,7 @@ void PF_ForceUnmodified(FORCE_TYPE type, float *mins, float *maxs, const char *f } /* <7ac92> ../engine/pr_cmds.c:3386 */ -void PF_GetPlayerStats(const edict_t *pClient, int *ping, int *packet_loss) +void EXT_FUNC PF_GetPlayerStats(const edict_t *pClient, int *ping, int *packet_loss) { *packet_loss = 0; *ping = 0; @@ -2774,7 +2774,7 @@ NOXREF void QueryClientCvarValueCmd2(void) } /* <7acfa> ../engine/pr_cmds.c:3461 */ -void QueryClientCvarValue(const edict_t *player, const char *cvarName) +void EXT_FUNC QueryClientCvarValue(const edict_t *player, const char *cvarName) { int entnum = NUM_FOR_EDICT(player); @@ -2792,7 +2792,7 @@ void QueryClientCvarValue(const edict_t *player, const char *cvarName) } /* <7adb3> ../engine/pr_cmds.c:3485 */ -void QueryClientCvarValue2(const edict_t *player, const char *cvarName, int requestID) +void EXT_FUNC QueryClientCvarValue2(const edict_t *player, const char *cvarName, int requestID) { int entnum = NUM_FOR_EDICT(player); if (entnum < 1 || entnum > g_psvs.maxclients) diff --git a/rehlds/engine/pr_edict.cpp b/rehlds/engine/pr_edict.cpp index c0976c5..12056a2 100644 --- a/rehlds/engine/pr_edict.cpp +++ b/rehlds/engine/pr_edict.cpp @@ -441,7 +441,7 @@ void InitEntityDLLFields(edict_t *pEdict) } /* <7f8ee> ../engine/pr_edict.c:594 */ -void *PvAllocEntPrivateData(edict_t *pEdict, int32 cb) +void* EXT_FUNC PvAllocEntPrivateData(edict_t *pEdict, int32 cb) { FreeEntPrivateData(pEdict); @@ -462,7 +462,7 @@ void *PvAllocEntPrivateData(edict_t *pEdict, int32 cb) } /* <7f943> ../engine/pr_edict.c:607 */ -void *PvEntPrivateData(edict_t *pEdict) +void* EXT_FUNC PvEntPrivateData(edict_t *pEdict) { if (!pEdict) { @@ -503,19 +503,19 @@ void FreeAllEntPrivateData(void) } /* <7f9d0> ../engine/pr_edict.c:660 */ -edict_t *PEntityOfEntOffset(int iEntOffset) +edict_t* EXT_FUNC PEntityOfEntOffset(int iEntOffset) { return (edict_t *)((char *)g_psv.edicts + iEntOffset); } /* <7f9fd> ../engine/pr_edict.c:665 */ -int EntOffsetOfPEntity(const edict_t *pEdict) +int EXT_FUNC EntOffsetOfPEntity(const edict_t *pEdict) { return (char *)pEdict - (char *)g_psv.edicts; } /* <7fa2a> ../engine/pr_edict.c:670 */ -int IndexOfEdict(const edict_t *pEdict) +int EXT_FUNC IndexOfEdict(const edict_t *pEdict) { int index = 0; if (pEdict) @@ -534,7 +534,7 @@ int IndexOfEdict(const edict_t *pEdict) } /* <7fa68> ../engine/pr_edict.c:691 */ -edict_t *PEntityOfEntIndex(int iEntIndex) +edict_t* EXT_FUNC PEntityOfEntIndex(int iEntIndex) { if (iEntIndex < 0 || iEntIndex >= g_psv.max_edicts) { @@ -562,19 +562,19 @@ edict_t *PEntityOfEntIndex(int iEntIndex) } /* <7fac3> ../engine/pr_edict.c:711 */ -const char *SzFromIndex(int iString) +const char* EXT_FUNC SzFromIndex(int iString) { return (const char *)(pr_strings + iString); } /* <7faf0> ../engine/pr_edict.c:721 */ -entvars_t *GetVarsOfEnt(edict_t *pEdict) +entvars_t* EXT_FUNC GetVarsOfEnt(edict_t *pEdict) { return &pEdict->v; } /* <7fb23> ../engine/pr_edict.c:731 */ -edict_t *FindEntityByVars(entvars_t *pvars) +edict_t* EXT_FUNC FindEntityByVars(entvars_t *pvars) { for (int i = 0; i < g_psv.num_edicts; i++) { @@ -588,37 +588,37 @@ edict_t *FindEntityByVars(entvars_t *pvars) } /* <7fb75> ../engine/pr_edict.c:747 */ -float CVarGetFloat(const char *szVarName) +float EXT_FUNC CVarGetFloat(const char *szVarName) { return Cvar_VariableValue(szVarName); } /* <7fba2> ../engine/pr_edict.c:753 */ -const char *CVarGetString(const char *szVarName) +const char* EXT_FUNC CVarGetString(const char *szVarName) { return Cvar_VariableString(szVarName); } /* <7fbcf> ../engine/pr_edict.c:759 */ -cvar_t *CVarGetPointer(const char *szVarName) +cvar_t* EXT_FUNC CVarGetPointer(const char *szVarName) { return Cvar_FindVar(szVarName); } /* <7fbfc> ../engine/pr_edict.c:765 */ -void CVarSetFloat(const char *szVarName, float flValue) +void EXT_FUNC CVarSetFloat(const char *szVarName, float flValue) { Cvar_SetValue(szVarName, flValue); } /* <7fc34> ../engine/pr_edict.c:771 */ -void CVarSetString(const char *szVarName, const char *szValue) +void EXT_FUNC CVarSetString(const char *szVarName, const char *szValue) { Cvar_Set(szVarName, szValue); } /* <7fc6c> ../engine/pr_edict.c:777 */ -void CVarRegister(cvar_t *pCvar) +void EXT_FUNC CVarRegister(cvar_t *pCvar) { if (pCvar) { @@ -628,13 +628,13 @@ void CVarRegister(cvar_t *pCvar) } /* <7fc95> ../engine/pr_edict.c:794 */ -int AllocEngineString(const char *szValue) +int EXT_FUNC AllocEngineString(const char *szValue) { return ED_NewString(szValue) - pr_strings; } /* <7fd06> ../engine/pr_edict.c:802 */ -void SaveSpawnParms(edict_t *pEdict) +void EXT_FUNC SaveSpawnParms(edict_t *pEdict) { int eoffset = NUM_FOR_EDICT(pEdict); if (eoffset < 1 || eoffset > g_psvs.maxclients) @@ -645,7 +645,7 @@ void SaveSpawnParms(edict_t *pEdict) } /* <7fd78> ../engine/pr_edict.c:815 */ -void *GetModelPtr(edict_t *pEdict) +void* EXT_FUNC GetModelPtr(edict_t *pEdict) { if (!pEdict) { diff --git a/rehlds/engine/r_studio.cpp b/rehlds/engine/r_studio.cpp index a18e93b..96ccbb6 100644 --- a/rehlds/engine/r_studio.cpp +++ b/rehlds/engine/r_studio.cpp @@ -513,7 +513,7 @@ mstudioanim_t *R_GetAnim(model_t *psubmodel, mstudioseqdesc_t *pseqdesc) } /* <836d8> ../engine/r_studio.c:696 */ -void SV_StudioSetupBones(model_t *pModel, float frame, int sequence, const vec_t *angles, const vec_t *origin, const unsigned char *pcontroller, const unsigned char *pblending, int iBone, const edict_t *edict) +void EXT_FUNC SV_StudioSetupBones(model_t *pModel, float frame, int sequence, const vec_t *angles, const vec_t *origin, const unsigned char *pcontroller, const unsigned char *pblending, int iBone, const edict_t *edict) { static vec4_t q1[128]; static vec3_t pos1[128]; @@ -901,12 +901,12 @@ qboolean SV_CheckSphereIntersection(edict_t *ent, const vec_t *start, const vec_ /* <840e2> ../engine/r_studio.c:1302 */ -void AnimationAutomove(const edict_t *pEdict, float flTime) +void EXT_FUNC AnimationAutomove(const edict_t *pEdict, float flTime) { } /* <8411a> ../engine/r_studio.c:1329 */ -void GetBonePosition(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles) +void EXT_FUNC GetBonePosition(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles) { pstudiohdr = (studiohdr_t *)Mod_Extradata(g_psv.models[pEdict->v.modelindex]); g_pSvBlendingAPI->SV_StudioSetupBones( @@ -930,7 +930,7 @@ void GetBonePosition(const edict_t *pEdict, int iBone, float *rgflOrigin, float } /* <84171> ../engine/r_studio.c:1351 */ -void GetAttachment(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles) +void EXT_FUNC GetAttachment(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles) { mstudioattachment_t *pattachment; vec3_t angles; diff --git a/rehlds/engine/sv_main.cpp b/rehlds/engine/sv_main.cpp index 6f13488..8f8c7bb 100644 --- a/rehlds/engine/sv_main.cpp +++ b/rehlds/engine/sv_main.cpp @@ -1043,7 +1043,7 @@ void SV_Multicast(edict_t *ent, vec_t *origin, int to, qboolean reliable) } /* ../engine/sv_main.c:1328 */ -void SV_WriteMovevarsToClient(sizebuf_t *message) +void EXT_FUNC SV_WriteMovevarsToClient(sizebuf_t *message) { MSG_WriteByte(message, svc_newmovevars); MSG_WriteFloat(message, movevars.gravity); @@ -1075,7 +1075,7 @@ void SV_WriteMovevarsToClient(sizebuf_t *message) } /* ../engine/sv_main.c:1365 */ -void SV_WriteDeltaDescriptionsToClient(sizebuf_t *msg) +void EXT_FUNC SV_WriteDeltaDescriptionsToClient(sizebuf_t *msg) { int i, c; @@ -1102,7 +1102,7 @@ void SV_WriteDeltaDescriptionsToClient(sizebuf_t *msg) } /* ../engine/sv_main.c:1407 */ -void SV_SetMoveVars(void) +void EXT_FUNC SV_SetMoveVars(void) { movevars.entgravity = 1.0f; movevars.gravity = sv_gravity.value; @@ -1175,7 +1175,7 @@ void SV_QueryMovevarsChanged(void) } } -void SV_SendServerinfo_mod(sizebuf_t *msg, IGameClient* cl) +void EXT_FUNC SV_SendServerinfo_mod(sizebuf_t *msg, IGameClient* cl) { SV_SendServerinfo_internal(msg, cl->GetClient()); } @@ -1508,7 +1508,7 @@ void SV_WriteSpawn(sizebuf_t *msg) } /* ../engine/sv_main.c:1920 */ -void SV_SendUserReg(sizebuf_t *msg) +void EXT_FUNC SV_SendUserReg(sizebuf_t *msg) { for (UserMsg *pMsg = sv_gpNewUserMsgs; pMsg; pMsg = pMsg->next) { @@ -1703,7 +1703,7 @@ void SV_CheckUpdateRate(double *rate) } /* ../engine/sv_main.c:2189 */ -void SV_RejectConnection(netadr_t *adr, char *fmt, ...) +void EXT_FUNC SV_RejectConnection(netadr_t *adr, char *fmt, ...) { va_list argptr; char text[1024]; @@ -1751,7 +1751,7 @@ int SV_GetFragmentSize(void *state) } /* ../engine/sv_main.c:2266 */ -qboolean SV_FilterUser(USERID_t *userid) +qboolean EXT_FUNC SV_FilterUser(USERID_t *userid) { int j = numuserfilters; for (int i = numuserfilters - 1; i >= 0; i--) @@ -1780,7 +1780,7 @@ int SV_CheckProtocol(netadr_t *adr, int nProtocol) } /* ../engine/sv_main.c:2302 */ -int SV_CheckProtocol_internal(netadr_t *adr, int nProtocol) +int EXT_FUNC SV_CheckProtocol_internal(netadr_t *adr, int nProtocol) { if (adr == NULL) { @@ -1831,7 +1831,7 @@ challenge_t g_rg_sv_challenges[1024]; int g_oldest_challenge = 0; #endif -bool SV_CheckChallenge_api(const netadr_t &adr, int nChallengeValue) { +bool EXT_FUNC SV_CheckChallenge_api(const netadr_t &adr, int nChallengeValue) { netadr_t localAdr = adr; return SV_CheckChallenge(&localAdr, nChallengeValue) != 0; } @@ -1867,7 +1867,7 @@ int SV_CheckIPRestrictions(netadr_t *adr, int nAuthProtocol) } /* ../engine/sv_main.c:2393 */ -int SV_CheckIPRestrictions_internal(netadr_t *adr, int nAuthProtocol) +int EXT_FUNC SV_CheckIPRestrictions_internal(netadr_t *adr, int nAuthProtocol) { if (sv_lan.value || nAuthProtocol != 3) { @@ -1908,7 +1908,7 @@ int SV_FinishCertificateCheck(netadr_t *adr, int nAuthProtocol, char *szRawCerti } /* ../engine/sv_main.c:2461 */ -int SV_FinishCertificateCheck_internal(netadr_t *adr, int nAuthProtocol, char *szRawCertificate, char *userinfo) +int EXT_FUNC SV_FinishCertificateCheck_internal(netadr_t *adr, int nAuthProtocol, char *szRawCertificate, char *userinfo) { if (nAuthProtocol != 2) { @@ -1949,7 +1949,7 @@ int SV_CheckKeyInfo(netadr_t *adr, char *protinfo, short unsigned int *port, int } /* ../engine/sv_main.c:2527 */ -int SV_CheckKeyInfo_internal(netadr_t *adr, char *protinfo, short unsigned int *port, int *pAuthProtocol, char *pszRaw, char *cdkey) +int EXT_FUNC SV_CheckKeyInfo_internal(netadr_t *adr, char *protinfo, short unsigned int *port, int *pAuthProtocol, char *pszRaw, char *cdkey) { const char *s = Info_ValueForKey(protinfo, "prot"); int nAuthProtocol = Q_atoi(s); @@ -2181,7 +2181,7 @@ void SV_ConnectClient(void) } /* ../engine/sv_main.c:2859 */ -void SV_ConnectClient_internal(void) +void EXT_FUNC SV_ConnectClient_internal(void) { client_t *client; netadr_t adr; @@ -3897,7 +3897,7 @@ void SV_AddToFatPVS(vec_t *org, mnode_t *node) } /* ../engine/sv_main.c:5239 */ -unsigned char *SV_FatPVS(float *org) +unsigned char* EXT_FUNC SV_FatPVS(float *org) { fatbytes = (g_psv.worldmodel->numleafs + 31) >> 3; Q_memset(fatpvs, 0, fatbytes); @@ -3950,7 +3950,7 @@ void SV_AddToFatPAS(vec_t *org, mnode_t *node) } /* ../engine/sv_main.c:5295 */ -unsigned char *SV_FatPAS(float *org) +unsigned char* EXT_FUNC SV_FatPAS(float *org) { fatpasbytes = (g_psv.worldmodel->numleafs + 31) >> 3; Q_memset(fatpas, 0, fatpasbytes); @@ -4351,7 +4351,7 @@ void SV_GetNetInfo(client_t *client, int *ping, int *packet_loss) } /* ../engine/sv_main.c:5775 */ -int SV_CheckVisibility(edict_t *entity, unsigned char *pset) +int EXT_FUNC SV_CheckVisibility(edict_t *entity, unsigned char *pset) { int leaf; @@ -5668,7 +5668,7 @@ void SV_ClearEntities(void) } } /* ../engine/sv_main.c:7620 */ -int RegUserMsg(const char *pszName, int iSize) +int EXT_FUNC RegUserMsg(const char *pszName, int iSize) { if (giNextUserMsg > 255 || !pszName || Q_strlen(pszName) > 11 || iSize > 192) return 0; @@ -7087,7 +7087,7 @@ qboolean SV_CompareUserID(USERID_t *id1, USERID_t *id2) } /* ../engine/sv_main.c:9585 */ -qboolean SV_CompareUserID_internal(USERID_t *id1, USERID_t *id2) +qboolean EXT_FUNC SV_CompareUserID_internal(USERID_t *id1, USERID_t *id2) { if (id1 == NULL || id2 == NULL) return FALSE; @@ -7110,13 +7110,13 @@ qboolean SV_CompareUserID_internal(USERID_t *id1, USERID_t *id2) return Q_stricmp(szID1, szID2) ? FALSE : TRUE; } -char *SV_GetIDString(USERID_t *id) +char* SV_GetIDString(USERID_t *id) { return g_RehldsHookchains.m_SV_GetIDString.callChain(SV_GetIDString_internal, 0, id); } /* ../engine/sv_main.c:9625 */ -char *SV_GetIDString_internal(USERID_t *id) +char* EXT_FUNC SV_GetIDString_internal(USERID_t *id) { static char idstr[64]; diff --git a/rehlds/engine/sv_move.cpp b/rehlds/engine/sv_move.cpp index 37adfa9..280512b 100644 --- a/rehlds/engine/sv_move.cpp +++ b/rehlds/engine/sv_move.cpp @@ -537,7 +537,7 @@ void SV_NewChaseDir2(edict_t *actor, vec_t *vecGoal, float dist) } /* ../engine/sv_move.c:690 */ -void SV_MoveToOrigin_I(edict_t *ent, const float *pflGoal, float dist, int iStrafe) +void EXT_FUNC SV_MoveToOrigin_I(edict_t *ent, const float *pflGoal, float dist, int iStrafe) { vec3_t vecGoal; vec3_t vecDir; diff --git a/rehlds/engine/sv_steam3.cpp b/rehlds/engine/sv_steam3.cpp index 5bac6ad..5ce2960 100644 --- a/rehlds/engine/sv_steam3.cpp +++ b/rehlds/engine/sv_steam3.cpp @@ -679,7 +679,7 @@ const char *Steam_GetCommunityName() return NULL; } -qboolean Steam_NotifyClientConnect_api(IGameClient *cl, const void *pvSteam2Key, unsigned int ucbSteam2Key) +qboolean EXT_FUNC Steam_NotifyClientConnect_api(IGameClient *cl, const void *pvSteam2Key, unsigned int ucbSteam2Key) { return Steam_NotifyClientConnect_internal(cl->GetClient(), pvSteam2Key, ucbSteam2Key); } @@ -692,7 +692,7 @@ qboolean Steam_NotifyClientConnect(client_t *cl, const void *pvSteam2Key, unsign /* ../engine/sv_steam3.cpp:914 */ -qboolean Steam_NotifyClientConnect_internal(client_t *cl, const void *pvSteam2Key, unsigned int ucbSteam2Key) +qboolean EXT_FUNC Steam_NotifyClientConnect_internal(client_t *cl, const void *pvSteam2Key, unsigned int ucbSteam2Key) { if (Steam3Server()) { @@ -701,7 +701,7 @@ qboolean Steam_NotifyClientConnect_internal(client_t *cl, const void *pvSteam2Ke return NULL; } -qboolean Steam_NotifyBotConnect_api(IGameClient* cl) +qboolean EXT_FUNC Steam_NotifyBotConnect_api(IGameClient* cl) { return Steam_NotifyBotConnect_internal(cl->GetClient()); } @@ -721,7 +721,7 @@ qboolean Steam_NotifyBotConnect_internal(client_t *cl) return NULL; } -void Steam_NotifyClientDisconnect_api(IGameClient* cl) +void EXT_FUNC Steam_NotifyClientDisconnect_api(IGameClient* cl) { Steam_NotifyClientDisconnect_internal(cl->GetClient()); } diff --git a/rehlds/engine/sv_user.cpp b/rehlds/engine/sv_user.cpp index 8eee135..52e0129 100644 --- a/rehlds/engine/sv_user.cpp +++ b/rehlds/engine/sv_user.cpp @@ -1669,7 +1669,7 @@ void SV_ParseCvarValue2(client_t *cl) Con_DPrintf("Cvar query response: name:%s, request ID %d, cvar:%s, value:%s\n", cl->name, requestID, cvarName, value); } -void SV_HandleClientMessage_api(IGameClient* client, int8 opcode) { +void EXT_FUNC SV_HandleClientMessage_api(IGameClient* client, int8 opcode) { client_t* cl = client->GetClient(); if (opcode < clc_bad || opcode > clc_cvarvalue2) { diff --git a/rehlds/engine/sys_dll.cpp b/rehlds/engine/sys_dll.cpp index 57c91b7..6749cec 100644 --- a/rehlds/engine/sys_dll.cpp +++ b/rehlds/engine/sys_dll.cpp @@ -120,7 +120,7 @@ enginefuncs_t g_engfuncsExportedToDlls = { FindEntityByString, GetEntityIllum, FindEntityInSphere, PF_checkclient_I, PVSFindEntities, PF_makevectors_I, - AngleVectors, PF_Spawn_I, + AngleVectors_ext, PF_Spawn_I, PF_Remove_I, CreateNamedEntity, PF_makestatic_I, PF_checkbottom_I, PF_droptofloor_I, PF_walkmove_I, @@ -541,7 +541,7 @@ void Sys_Quit(void) #ifdef _WIN32 -double Sys_FloatTime(void) +double EXT_FUNC Sys_FloatTime(void) { unsigned int currentTime; int savedOldTime; @@ -650,7 +650,7 @@ NOBODY void GameSetBackground(qboolean bNewSetting); //} /* <8d191> ../engine/sys_dll.c:1076 */ -qboolean Voice_GetClientListening(int iReceiver, int iSender) +qboolean EXT_FUNC Voice_GetClientListening(int iReceiver, int iSender) { --iReceiver; --iSender; @@ -666,7 +666,7 @@ qboolean Voice_GetClientListening(int iReceiver, int iSender) } /* <8d1d0> ../engine/sys_dll.c:1090 */ -qboolean Voice_SetClientListening(int iReceiver, int iSender, qboolean bListen) +qboolean EXT_FUNC Voice_SetClientListening(int iReceiver, int iSender, qboolean bListen) { --iReceiver; --iSender; @@ -763,13 +763,13 @@ NOBODY const char *ConvertNameToLocalPlatform(const char *pchInName); //} /* <8df19> ../engine/sys_dll.c:1499 */ -uint32 FunctionFromName(const char *pName) +uint32 EXT_FUNC FunctionFromName(const char *pName) { return 0; //TODO: do we really need to reverse it? } /* <8de9a> ../engine/sys_dll.c:1518 */ -const char *NameForFunction(uint32 function) +const char* EXT_FUNC NameForFunction(uint32 function) { int i; const char *pName; @@ -1142,13 +1142,13 @@ void ReleaseEntityDlls(void) } /* <8ddcb> ../engine/sys_dll.c:2006 */ -void EngineFprintf(void *pfile, const char *szFmt, ...) +void EXT_FUNC EngineFprintf(void *pfile, const char *szFmt, ...) { AlertMessage(at_console, "EngineFprintf: Obsolete API\n"); } /* <8dd6f> ../engine/sys_dll.c:2022 */ -void AlertMessage(ALERT_TYPE atype, const char *szFmt, ...) +void EXT_FUNC AlertMessage(ALERT_TYPE atype, const char *szFmt, ...) { va_list argptr; static char szOut[1024]; @@ -1327,7 +1327,7 @@ void Con_DebugLog(const char *file, const char *fmt, ...) } /* <8dcfd> ../engine/sys_dll.c:2407 */ -void Con_Printf(const char *fmt, ...) +void EXT_FUNC Con_Printf(const char *fmt, ...) { char Dest[4096]; va_list va; @@ -1413,7 +1413,7 @@ void Con_DPrintf(const char *fmt, ...) #else //defined(REHLDS_FIXES) and defined(REHLDS_FLIGHT_REC) -void Con_DPrintf(const char *fmt, ...) +void EXT_FUNC Con_DPrintf(const char *fmt, ...) { va_list argptr; diff --git a/rehlds/engine/tmessage.cpp b/rehlds/engine/tmessage.cpp index ab82a58..afd7917 100644 --- a/rehlds/engine/tmessage.cpp +++ b/rehlds/engine/tmessage.cpp @@ -73,7 +73,7 @@ client_textmessage_t gNetworkTextMessage[MAX_NETMESSAGE]; #endif //HOOK_ENGINE /* ../engine/tmessage.c:47 */ -char *memfgets(unsigned char *pMemFile, int fileSize, int *pFilePos, char *pBuffer, int bufferSize) +char* EXT_FUNC memfgets(unsigned char *pMemFile, int fileSize, int *pFilePos, char *pBuffer, int bufferSize) { int filePos; int last; diff --git a/rehlds/engine/zone.cpp b/rehlds/engine/zone.cpp index c74c897..4fbbe61 100644 --- a/rehlds/engine/zone.cpp +++ b/rehlds/engine/zone.cpp @@ -1019,7 +1019,7 @@ Cache_Check */ /* ../engine/zone.c:1018 */ -void *Cache_Check(cache_user_t *c) +void* EXT_FUNC Cache_Check(cache_user_t *c) { cache_system_t *cs; diff --git a/rehlds/public/rehlds/osconfig.h b/rehlds/public/rehlds/osconfig.h index 4457930..11a3867 100644 --- a/rehlds/public/rehlds/osconfig.h +++ b/rehlds/public/rehlds/osconfig.h @@ -102,6 +102,7 @@ #define HIDDEN #define NOINLINE __declspec(noinline) #define ALIGN16 __declspec(align(16)) + #define FORCE_STACK_ALIGN //inline bool SOCKET_FIONBIO(SOCKET s, int m) { return (ioctlsocket(s, FIONBIO, (u_long*)&m) == 0); } //inline int SOCKET_MSGLEN(SOCKET s, u_long& r) { return ioctlsocket(s, FIONREAD, (u_long*)&r); } @@ -141,6 +142,7 @@ #define HIDDEN __attribute__((visibility("hidden"))) #define NOINLINE __attribute__((noinline)) #define ALIGN16 __attribute__((aligned(16))) + #define FORCE_STACK_ALIGN __attribute__((force_align_arg_pointer)) //inline bool SOCKET_FIONBIO(SOCKET s, int m) { return (ioctl(s, FIONBIO, (int*)&m) == 0); } //inline int SOCKET_MSGLEN(SOCKET s, u_long& r) { return ioctl(s, FIONREAD, (int*)&r); } @@ -181,6 +183,8 @@ static const bool __isLinux = true; #endif +#define EXT_FUNC FORCE_STACK_ALIGN + extern void __declspec(noreturn) rehlds_syserror(const char* fmt, ...); #endif // _OSCONFIG_H diff --git a/rehlds/rehlds/rehlds_api_impl.cpp b/rehlds/rehlds/rehlds_api_impl.cpp index 684f9b0..3b65208 100644 --- a/rehlds/rehlds/rehlds_api_impl.cpp +++ b/rehlds/rehlds/rehlds_api_impl.cpp @@ -27,35 +27,35 @@ */ #include "precompiled.h" -char* GetClientFallback_api() { +char* EXT_FUNC GetClientFallback_api() { return com_clientfallback; } -int* GetAllowCheats_api() { +int* EXT_FUNC GetAllowCheats_api() { return &allow_cheats; } -bool GSBSecure_api() { +bool EXT_FUNC GSBSecure_api() { return Steam_GSBSecure() != 0; } -int GetBuildNumber_api() { +int EXT_FUNC GetBuildNumber_api() { return build_number(); } -double GetRealTime_api() { +double EXT_FUNC GetRealTime_api() { return realtime; } -int* GetMsgBadRead_api() { +int* EXT_FUNC GetMsgBadRead_api() { return &msg_badread; } -cmd_source_t* GetCmdSource_api() { +cmd_source_t* EXT_FUNC GetCmdSource_api() { return &cmd_source; } -void Log_api(const char* prefix, const char* msg) { +void EXT_FUNC Log_api(const char* prefix, const char* msg) { #ifdef REHLDS_FLIGHT_REC FR_Log(prefix, msg); #endif @@ -90,12 +90,12 @@ RehldsFuncs_t g_RehldsApiFuncs = &Log_api }; -sizebuf_t* GetNetMessage_api() +sizebuf_t* EXT_FUNC GetNetMessage_api() { return &net_message; } -IGameClient* GetHostClient_api() +IGameClient* EXT_FUNC GetHostClient_api() { if (host_client == NULL) return NULL; @@ -103,7 +103,7 @@ IGameClient* GetHostClient_api() return GetRehldsApiClient(host_client); } -extern int* GetMsgReadCount_api() +extern int* EXT_FUNC GetMsgReadCount_api() { return &msg_readcount; } @@ -201,35 +201,35 @@ IRehldsHookRegistry_ExecuteServerStringCmd* CRehldsHookchains::ExecuteServerStri return &m_ExecuteServerStringCmd; } -int CRehldsApi::GetMajorVersion() +int EXT_FUNC CRehldsApi::GetMajorVersion() { return REHLDS_API_VERSION_MAJOR; } -int CRehldsApi::GetMinorVersion() +int EXT_FUNC CRehldsApi::GetMinorVersion() { return REHLDS_API_VERSION_MINOR; } -const RehldsFuncs_t* CRehldsApi::GetFuncs() +const RehldsFuncs_t* EXT_FUNC CRehldsApi::GetFuncs() { return &g_RehldsApiFuncs; } -IRehldsHookchains* CRehldsApi::GetHookchains() +IRehldsHookchains* EXT_FUNC CRehldsApi::GetHookchains() { return &g_RehldsHookchains; } -IRehldsServerStatic* CRehldsApi::GetServerStatic() { +IRehldsServerStatic* EXT_FUNC CRehldsApi::GetServerStatic() { return &g_RehldsServerStatic; } -IRehldsServerData* CRehldsApi::GetServerData() { +IRehldsServerData* EXT_FUNC CRehldsApi::GetServerData() { return &g_RehldsServerData; } -IRehldsFlightRecorder* CRehldsApi::GetFlightRecorder() { +IRehldsFlightRecorder* EXT_FUNC CRehldsApi::GetFlightRecorder() { return g_FlightRecorder; } diff --git a/rehlds/rehlds/rehlds_interfaces_impl.cpp b/rehlds/rehlds/rehlds_interfaces_impl.cpp index d6b2bf0..39e1bfe 100644 --- a/rehlds/rehlds/rehlds_interfaces_impl.cpp +++ b/rehlds/rehlds/rehlds_interfaces_impl.cpp @@ -37,65 +37,65 @@ CGameClient::CGameClient(int id, client_t* cl) m_pClient = cl; } -int CGameClient::GetId() +int EXT_FUNC CGameClient::GetId() { return m_Id; } -bool CGameClient::IsActive() +bool EXT_FUNC CGameClient::IsActive() { return m_pClient->active != 0; } -void CGameClient::SetActive(bool active) +void EXT_FUNC CGameClient::SetActive(bool active) { m_pClient->active = active ? 1 : 0; } -bool CGameClient::IsSpawned() +bool EXT_FUNC CGameClient::IsSpawned() { return m_pClient->spawned != 0; } -void CGameClient::SetSpawned(bool spawned) +void EXT_FUNC CGameClient::SetSpawned(bool spawned) { m_pClient->spawned = spawned ? 1 : 0; } -bool CGameClient::IsConnected() { +bool EXT_FUNC CGameClient::IsConnected() { return m_pClient->connected != 0;; } -void CGameClient::SetConnected(bool connected) { +void EXT_FUNC CGameClient::SetConnected(bool connected) { m_pClient->connected = connected ? 1 : 0; } -INetChan* CGameClient::GetNetChan() +INetChan* EXT_FUNC CGameClient::GetNetChan() { return &m_NetChan; } -sizebuf_t* CGameClient::GetDatagram() +sizebuf_t* EXT_FUNC CGameClient::GetDatagram() { return &m_pClient->datagram; } -edict_t* CGameClient::GetEdict() +edict_t* EXT_FUNC CGameClient::GetEdict() { return m_pClient->edict; } -USERID_t* CGameClient::GetNetworkUserID() +USERID_t* EXT_FUNC CGameClient::GetNetworkUserID() { return &m_pClient->network_userid; } -const char* CGameClient::GetName() +const char* EXT_FUNC CGameClient::GetName() { return m_pClient->name; } -client_t* CGameClient::GetClient() +client_t* EXT_FUNC CGameClient::GetClient() { return m_pClient; } @@ -106,29 +106,29 @@ CNetChan::CNetChan(netchan_t* chan) m_pNetChan = chan; } -const netadr_t* CNetChan::GetRemoteAdr() +const netadr_t* EXT_FUNC CNetChan::GetRemoteAdr() { return &m_pNetChan->remote_address; } -netchan_t* CNetChan::GetChan() +netchan_t* EXT_FUNC CNetChan::GetChan() { return m_pNetChan; } -int CRehldsServerStatic::GetMaxClients() +int EXT_FUNC CRehldsServerStatic::GetMaxClients() { return g_psvs.maxclients; } -bool CRehldsServerStatic::IsLogActive() +bool EXT_FUNC CRehldsServerStatic::IsLogActive() { return g_psvs.log.active ? true : false; } -IGameClient* CRehldsServerStatic::GetClient(int id) +IGameClient* EXT_FUNC CRehldsServerStatic::GetClient(int id) { if (id < 0 || id >= g_psvs.maxclients) Sys_Error(__FUNCTION__": invalid id provided: %d", id); @@ -138,19 +138,19 @@ IGameClient* CRehldsServerStatic::GetClient(int id) -const char* CRehldsServerData::GetModelName() { +const char* EXT_FUNC CRehldsServerData::GetModelName() { return g_psv.modelname; } -const char* CRehldsServerData::GetName() { +const char* EXT_FUNC CRehldsServerData::GetName() { return g_psv.name; } -uint32 CRehldsServerData::GetWorldmapCrc() { +uint32 EXT_FUNC CRehldsServerData::GetWorldmapCrc() { return g_psv.worldmapCRC; } -uint8* CRehldsServerData::GetClientDllMd5() { +uint8* EXT_FUNC CRehldsServerData::GetClientDllMd5() { return g_psv.clientdllmd5; }