From dc2212aa84142c8f4ee80b644f314d28e56a269f Mon Sep 17 00:00:00 2001 From: Spoike Date: Sat, 29 Jan 2011 21:01:40 +0000 Subject: [PATCH] Fixed a couple of warnings. git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3728 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/cl_ui.c | 167 ++++++++++++++++++++++---------------- engine/client/keys.c | 4 +- engine/client/pr_csqc.c | 34 ++++---- engine/client/pr_menu.c | 4 +- engine/client/r_surf.c | 2 - engine/client/valid.c | 2 + engine/common/gl_q2bsp.c | 6 +- engine/common/net_wins.c | 6 +- engine/common/plugin.c | 19 +++-- engine/common/pmovetst.c | 2 - engine/common/pr_bgcmd.c | 2 +- engine/common/pr_common.h | 2 +- engine/common/q3common.c | 8 +- engine/common/qvm.c | 6 +- engine/gl/gl_backend.c | 15 ++-- engine/gl/gl_draw.c | 5 -- engine/gl/gl_rmisc.c | 27 +++--- engine/gl/gl_shadow.c | 35 ++++---- engine/qclib/progslib.h | 6 +- 19 files changed, 184 insertions(+), 168 deletions(-) diff --git a/engine/client/cl_ui.c b/engine/client/cl_ui.c index b59355849..89a7cc534 100644 --- a/engine/client/cl_ui.c +++ b/engine/client/cl_ui.c @@ -723,24 +723,27 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con case UI_CVAR_SET: { cvar_t *var; - if (!strcmp(VM_POINTER(arg[0]), "fs_game")) + char *vname = VM_POINTER(arg[0]); + char *vval = VM_POINTER(arg[1]); + if (!strcmp(vname, "fs_game")) { - Cbuf_AddText(va("gamedir %s\nui_restart\n", (char*)VM_POINTER(arg[1])), RESTRICT_SERVER); + Cbuf_AddText(va("gamedir %s\nui_restart\n", (char*)vval), RESTRICT_SERVER); } else { - var = Cvar_FindVar(VM_POINTER(arg[0])); + var = Cvar_FindVar(vname); if (var) - Cvar_Set(var, VM_POINTER(arg[1])); //set it + Cvar_Set(var, vval); //set it else - Cvar_Get(VM_POINTER(arg[0]), VM_POINTER(arg[1]), 0, "UI created"); //create one + Cvar_Get(vname, vval, 0, "UI created"); //create one } } break; case UI_CVAR_VARIABLEVALUE: { cvar_t *var; - var = Cvar_FindVar(VM_POINTER(arg[0])); + char *vname = VM_POINTER(arg[0]); + var = Cvar_FindVar(vname); if (var) VM_FLOAT(ret) = var->value; else @@ -750,7 +753,8 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con case UI_CVAR_VARIABLESTRINGBUFFER: { cvar_t *var; - var = Cvar_FindVar(VM_POINTER(arg[0])); + char *vname = VM_POINTER(arg[0]); + var = Cvar_FindVar(vname); if (!VM_LONG(arg[2])) VM_LONG(ret) = 0; else if (!var) @@ -775,40 +779,44 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con case UI_CVAR_RESET: //cvar reset { cvar_t *var; - var = Cvar_FindVar((char *)VM_POINTER(arg[0])); + char *vname = VM_POINTER(arg[0]); + var = Cvar_FindVar(vname); if (var) Cvar_Set(var, var->defaultstr); } break; case UI_CMD_EXECUTETEXT: - if (!strncmp((char*)VM_POINTER(arg[1]), "ping ", 5)) { - int i; - for (i = 0; i < MAX_PINGREQUESTS; i++) - if (ui_pings[i].type == NA_INVALID) - { - serverinfo_t *info; - NET_StringToAdr((char *)VM_POINTER(arg[1]) + 5, &ui_pings[i]); - info = Master_InfoForServer(ui_pings[i]); - if (info) + char *cmdtext = VM_POINTER(arg[1]); + if (!strncmp(cmdtext, "ping ", 5)) + { + int i; + for (i = 0; i < MAX_PINGREQUESTS; i++) + if (ui_pings[i].type == NA_INVALID) { - info->special |= SS_KEEPINFO; - Master_QueryServer(info); + serverinfo_t *info; + NET_StringToAdr(cmdtext + 5, &ui_pings[i]); + info = Master_InfoForServer(ui_pings[i]); + if (info) + { + info->special |= SS_KEEPINFO; + Master_QueryServer(info); + } + break; } - break; - } + } + else if (!strncmp(cmdtext, "localservers", 12)) + { + MasterInfo_Begin(); + } + /* else if (!strncmp(cmdtext, "r_vidmode", 12)) + { + MasterInfo_Begin(); + } + */ else + Cbuf_AddText(cmdtext, RESTRICT_SERVER); } - else if (!strncmp(VM_POINTER(arg[1]), "localservers", 12)) - { - MasterInfo_Begin(); - } -/* else if (!strncmp(VM_POINTER(arg[1]), "r_vidmode", 12)) - { - MasterInfo_Begin(); - } -*/ else - Cbuf_AddText(VM_POINTER(arg[1]), RESTRICT_SERVER); break; case UI_FS_FOPENFILE: //fopen @@ -973,15 +981,20 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con break; case UI_GETGLCONFIG: //get glconfig - if ((int)arg[0] + 11332/*sizeof(glconfig_t)*/ >= mask || VM_POINTER(arg[0]) < offset) - break; //out of bounds. + { + char *cfg; + if ((int)arg[0] + 11332/*sizeof(glconfig_t)*/ >= mask || VM_POINTER(arg[0]) < offset) + break; //out of bounds. + cfg = VM_POINTER(arg[0]); + //do any needed work - memset(VM_POINTER(arg[0]), 0, 11304); - *(int *)VM_POINTER(arg[0]+11304) = vid.width; - *(int *)VM_POINTER(arg[0]+11308) = vid.height; - *(float *)VM_POINTER(arg[0]+11312) = (float)vid.width/vid.height; - memset(VM_POINTER(arg[0]+11316), 0, 11332-11316); + memset(cfg, 0, 11304); + *(int *)(cfg+11304) = vid.width; + *(int *)(cfg+11308) = vid.height; + *(float *)(cfg+11312) = (float)vid.width/vid.height; + memset(cfg+11316, 0, 11332-11316); + } break; case UI_GETCLIENTSTATE: //get client state @@ -1091,17 +1104,21 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con break; case UI_GET_CDKEY: //get cd key - if ((int)arg[0] + VM_LONG(arg[1]) >= mask || VM_POINTER(arg[0]) < offset) - break; //out of bounds. - strncpy(VM_POINTER(arg[0]), Cvar_VariableString("cl_cdkey"), VM_LONG(arg[1])); + { + char *keydest = VM_POINTER(arg[0]); + if ((int)arg[0] + VM_LONG(arg[1]) >= mask || VM_POINTER(arg[0]) < offset) + break; //out of bounds. + strncpy(keydest, Cvar_VariableString("cl_cdkey"), VM_LONG(arg[1])); + } break; case UI_SET_CDKEY: //set cd key - if ((int)arg[0] + strlen(VM_POINTER(arg[0])) >= mask || VM_POINTER(arg[0]) < offset) - break; //out of bounds. { + char *keysrc = VM_POINTER(arg[0]); cvar_t *cvar; + if ((int)arg[0] + strlen(keysrc) >= mask || VM_POINTER(arg[0]) < offset) + break; //out of bounds. cvar = Cvar_Get("cl_cdkey", "", 0, "Quake3 auth"); - Cvar_Set(cvar, VM_POINTER(arg[0])); + Cvar_Set(cvar, keysrc); } break; @@ -1155,19 +1172,30 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con // standard Q3 case UI_MEMSET: - if ((int)arg[0] + arg[2] >= mask || VM_POINTER(arg[0]) < offset) - break; //out of bounds. - memset(VM_POINTER(arg[0]), arg[1], arg[2]); + { + void *dest = VM_POINTER(arg[0]); + if ((int)arg[0] + arg[2] >= mask || dest < offset) + break; //out of bounds. + memset(dest, arg[1], arg[2]); + } break; case UI_MEMCPY: - if ((int)arg[0] + arg[2] >= mask || VM_POINTER(arg[0]) < offset) - break; //out of bounds. - memcpy(VM_POINTER(arg[0]), VM_POINTER(arg[1]), arg[2]); + { + void *dest = VM_POINTER(arg[0]); + void *src = VM_POINTER(arg[1]); + if ((int)arg[0] + arg[2] >= mask || VM_POINTER(arg[0]) < offset) + break; //out of bounds. + memcpy(dest, src, arg[2]); + } break; case UI_STRNCPY: - if (arg[0] + arg[2] >= mask || VM_POINTER(arg[0]) < offset) - break; //out of bounds. - Q_strncpyS(VM_POINTER(arg[0]), VM_POINTER(arg[1]), arg[2]); + { + void *dest = VM_POINTER(arg[0]); + void *src = VM_POINTER(arg[1]); + if (arg[0] + arg[2] >= mask || VM_POINTER(arg[0]) < offset) + break; //out of bounds. + Q_strncpyS(dest, src, arg[2]); + } break; case UI_SIN: VM_FLOAT(ret)=(float)sin(VM_FLOAT(arg[0])); @@ -1319,26 +1347,23 @@ static qintptr_t UI_SystemCalls(void *offset, quintptr_t mask, qintptr_t fn, con static int UI_SystemCallsVM(void *offset, quintptr_t mask, int fn, const int *arg) { //this is so we can use edit and continue properly (vc doesn't like function pointers for edit+continue) - if (sizeof(int) == sizeof(qintptr_t)) - { - return UI_SystemCalls(offset, mask, fn, arg); - } - else - { - qintptr_t args[9]; +#if __WORDSIZE == 32 + return UI_SystemCalls(offset, mask, fn, (qintptr_t*)arg); +#else + qintptr_t args[9]; - args[0]=arg[0]; - args[1]=arg[1]; - args[2]=arg[2]; - args[3]=arg[3]; - args[4]=arg[4]; - args[5]=arg[5]; - args[6]=arg[6]; - args[7]=arg[7]; - args[8]=arg[8]; + args[0]=arg[0]; + args[1]=arg[1]; + args[2]=arg[2]; + args[3]=arg[3]; + args[4]=arg[4]; + args[5]=arg[5]; + args[6]=arg[6]; + args[7]=arg[7]; + args[8]=arg[8]; - return UI_SystemCalls(offset, mask, fn, args); - } + return UI_SystemCalls(offset, mask, fn, args); +#endif } //I'm not keen on this. diff --git a/engine/client/keys.c b/engine/client/keys.c index 12f9688e1..b91ac8e96 100644 --- a/engine/client/keys.c +++ b/engine/client/keys.c @@ -251,8 +251,6 @@ qboolean Cmd_IsCommand (char *line) int PaddedPrint (char *s, int x) { - int nextcolx = 0; - Con_Printf ("%s\t", s); x+=strlen(s); @@ -1305,7 +1303,7 @@ qboolean Key_MouseShouldBeFree(void) //if true, the input code is expected to return mouse cursor positions rather than deltas extern cvar_t cl_prydoncursor; - extern int mouseusedforgui; +// extern int mouseusedforgui; // if (mouseusedforgui) //I don't like this // return true; diff --git a/engine/client/pr_csqc.c b/engine/client/pr_csqc.c index 09f39c117..ed6893360 100644 --- a/engine/client/pr_csqc.c +++ b/engine/client/pr_csqc.c @@ -367,11 +367,11 @@ typedef struct csqcedict_s static void CSQC_InitFields(void) { //CHANGING THIS FUNCTION REQUIRES CHANGES TO csqcentvars_t -#define comfieldfloat(ssqcname,wname,name) PR_RegisterFieldVar(csqcprogs, ev_float, #name, (int)&((csqcentvars_t*)0)->name, -1) -#define comfieldvector(ssqcname,wname,name) PR_RegisterFieldVar(csqcprogs, ev_vector, #name, (int)&((csqcentvars_t*)0)->name, -1) -#define comfieldentity(ssqcname,wname,name) PR_RegisterFieldVar(csqcprogs, ev_entity, #name, (int)&((csqcentvars_t*)0)->name, -1) -#define comfieldstring(ssqcname,wname,name) PR_RegisterFieldVar(csqcprogs, ev_string, #name, (int)&((csqcentvars_t*)0)->name, -1) -#define comfieldfunction(ssqcname,wname,name) PR_RegisterFieldVar(csqcprogs, ev_function, #name, (int)&((csqcentvars_t*)0)->name, -1) +#define comfieldfloat(ssqcname,wname,name) PR_RegisterFieldVar(csqcprogs, ev_float, #name, (size_t)&((csqcentvars_t*)0)->name, -1) +#define comfieldvector(ssqcname,wname,name) PR_RegisterFieldVar(csqcprogs, ev_vector, #name, (size_t)&((csqcentvars_t*)0)->name, -1) +#define comfieldentity(ssqcname,wname,name) PR_RegisterFieldVar(csqcprogs, ev_entity, #name, (size_t)&((csqcentvars_t*)0)->name, -1) +#define comfieldstring(ssqcname,wname,name) PR_RegisterFieldVar(csqcprogs, ev_string, #name, (size_t)&((csqcentvars_t*)0)->name, -1) +#define comfieldfunction(ssqcname,wname,name) PR_RegisterFieldVar(csqcprogs, ev_function, #name, (size_t)&((csqcentvars_t*)0)->name, -1) comqcfields #undef comfieldfloat #undef comfieldvector @@ -380,17 +380,17 @@ comqcfields #undef comfieldfunction #ifdef VM_Q1 -#define comfieldfloat(name) PR_RegisterFieldVar(csqcprogs, ev_float, #name, sizeof(csqcentvars_t) + (int)&((csqcextentvars_t*)0)->name, -1) -#define comfieldvector(name) PR_RegisterFieldVar(csqcprogs, ev_vector, #name, sizeof(csqcentvars_t) + (int)&((csqcextentvars_t*)0)->name, -1) -#define comfieldentity(name) PR_RegisterFieldVar(csqcprogs, ev_entity, #name, sizeof(csqcentvars_t) + (int)&((csqcextentvars_t*)0)->name, -1) -#define comfieldstring(name) PR_RegisterFieldVar(csqcprogs, ev_string, #name, sizeof(csqcentvars_t) + (int)&((csqcextentvars_t*)0)->name, -1) -#define comfieldfunction(name) PR_RegisterFieldVar(csqcprogs, ev_function, #name, sizeof(csqcentvars_t) + (int)&((csqcextentvars_t*)0)->name, -1) +#define comfieldfloat(name) PR_RegisterFieldVar(csqcprogs, ev_float, #name, sizeof(csqcentvars_t) + (size_t)&((csqcextentvars_t*)0)->name, -1) +#define comfieldvector(name) PR_RegisterFieldVar(csqcprogs, ev_vector, #name, sizeof(csqcentvars_t) + (size_t)&((csqcextentvars_t*)0)->name, -1) +#define comfieldentity(name) PR_RegisterFieldVar(csqcprogs, ev_entity, #name, sizeof(csqcentvars_t) + (size_t)&((csqcextentvars_t*)0)->name, -1) +#define comfieldstring(name) PR_RegisterFieldVar(csqcprogs, ev_string, #name, sizeof(csqcentvars_t) + (size_t)&((csqcextentvars_t*)0)->name, -1) +#define comfieldfunction(name) PR_RegisterFieldVar(csqcprogs, ev_function, #name, sizeof(csqcentvars_t) + (size_t)&((csqcextentvars_t*)0)->name, -1) #else -#define comfieldfloat(name) PR_RegisterFieldVar(csqcprogs, ev_float, #name, (int)&((csqcentvars_t*)0)->name, -1) -#define comfieldvector(name) PR_RegisterFieldVar(csqcprogs, ev_vector, #name, (int)&((csqcentvars_t*)0)->name, -1) -#define comfieldentity(name) PR_RegisterFieldVar(csqcprogs, ev_entity, #name, (int)&((csqcentvars_t*)0)->name, -1) -#define comfieldstring(name) PR_RegisterFieldVar(csqcprogs, ev_string, #name, (int)&((csqcentvars_t*)0)->name, -1) -#define comfieldfunction(name) PR_RegisterFieldVar(csqcprogs, ev_function, #name, (int)&((csqcentvars_t*)0)->name, -1) +#define comfieldfloat(name) PR_RegisterFieldVar(csqcprogs, ev_float, #name, (size_t)&((csqcentvars_t*)0)->name, -1) +#define comfieldvector(name) PR_RegisterFieldVar(csqcprogs, ev_vector, #name, (size_t)&((csqcentvars_t*)0)->name, -1) +#define comfieldentity(name) PR_RegisterFieldVar(csqcprogs, ev_entity, #name, (size_t)&((csqcentvars_t*)0)->name, -1) +#define comfieldstring(name) PR_RegisterFieldVar(csqcprogs, ev_string, #name, (size_t)&((csqcentvars_t*)0)->name, -1) +#define comfieldfunction(name) PR_RegisterFieldVar(csqcprogs, ev_function, #name, (size_t)&((csqcentvars_t*)0)->name, -1) #endif comextqcfields csqcextfields @@ -5060,7 +5060,7 @@ void CSQC_Shutdown(void) } //when the qclib needs a file, it calls out to this function. -qbyte *CSQC_PRLoadFile (char *path, void *buffer, int bufsize) +qbyte *CSQC_PRLoadFile (const char *path, void *buffer, int bufsize) { qbyte *file; @@ -5115,7 +5115,7 @@ qbyte *CSQC_PRLoadFile (char *path, void *buffer, int bufsize) return COM_LoadStackFile(path, buffer, bufsize); } -int CSQC_PRFileSize (char *path) +int CSQC_PRFileSize (const char *path) { qbyte *file; diff --git a/engine/client/pr_menu.c b/engine/client/pr_menu.c index 56d673ac0..9c5818e0e 100644 --- a/engine/client/pr_menu.c +++ b/engine/client/pr_menu.c @@ -973,7 +973,6 @@ void QCBUILTIN QCBUILTIN PF_cl_getmousepos (progfuncs_t *prinst, struct globalva { float *ret = G_VECTOR(OFS_RETURN); extern int mousemove_x, mousemove_y; - extern int mousecursor_x, mousecursor_y; ret[0] = mousemove_x; ret[1] = mousemove_y; @@ -981,6 +980,7 @@ void QCBUILTIN QCBUILTIN PF_cl_getmousepos (progfuncs_t *prinst, struct globalva mousemove_x=0; mousemove_y=0; +// extern int mousecursor_x, mousecursor_y; // ret[0] = mousecursor_x; // ret[1] = mousecursor_y; ret[2] = 0; @@ -1770,7 +1770,7 @@ void MP_Shutdown (void) } } -pbool QC_WriteFile(char *name, void *data, int len); +pbool QC_WriteFile(const char *name, void *data, int len); void *VARGS PR_CB_Malloc(int size); //these functions should be tracked by the library reliably, so there should be no need to track them ourselves. void VARGS PR_CB_Free(void *mem); diff --git a/engine/client/r_surf.c b/engine/client/r_surf.c index 80b69fd4f..6a9885a47 100644 --- a/engine/client/r_surf.c +++ b/engine/client/r_surf.c @@ -2307,8 +2307,6 @@ static int Surf_LM_FillBlock (int texnum, int w, int h, int x, int y) return texnum; } -static int nColinElim; - /* ================ BuildSurfaceDisplayList diff --git a/engine/client/valid.c b/engine/client/valid.c index ba4a945ee..2b6b53cca 100644 --- a/engine/client/valid.c +++ b/engine/client/valid.c @@ -59,7 +59,9 @@ static Security_Supported_Binaries_t Security_Supported_Binaries; static Security_Shutdown_t Security_Shutdown; +#ifdef _WIN32 static void *secmodule; +#endif static void Validation_Version(void) { diff --git a/engine/common/gl_q2bsp.c b/engine/common/gl_q2bsp.c index 4410e842a..8505d2ee5 100644 --- a/engine/common/gl_q2bsp.c +++ b/engine/common/gl_q2bsp.c @@ -2585,7 +2585,7 @@ qboolean CModQ3_LoadRFaces (lump_t *l) //flare int r, g, b; extern index_t r_quad_indexes[6]; - static vec2_t st[4] = {0,0,0,1,1,1,1,0}; + static vec2_t st[4] = {{0,0},{0,1},{1,1},{1,0}}; mesh = out->mesh = (mesh_t *)Hunk_Alloc(sizeof(mesh_t)); mesh->xyz_array = (vecV_t *)Hunk_Alloc(sizeof(vecV_t)*4); @@ -2741,7 +2741,7 @@ qboolean CModRBSP_LoadRFaces (lump_t *l) { // int r, g, b; extern index_t r_quad_indexes[6]; - static vec2_t st[4] = {0,0,0,1,1,1,1,0}; + static vec2_t st[4] = {{0,0},{0,1},{1,1},{1,0}}; mesh = out->mesh = (mesh_t *)Hunk_Alloc ( sizeof(mesh_t)); mesh->xyz_array = (vecV_t *)Hunk_Alloc ( sizeof(vecV_t)); @@ -3277,7 +3277,7 @@ qbyte *ReadPCXPalette(qbyte *buf, int len, qbyte *out); int CM_GetQ2Palette (void) { char *f; - FS_LoadFile("pics/colormap.pcx", &f); + FS_LoadFile("pics/colormap.pcx", (void**)&f); if (!f) { Con_Printf (CON_WARNING "Couldn't find pics/colormap.pcx\n"); diff --git a/engine/common/net_wins.c b/engine/common/net_wins.c index 77da1f05a..d3224e495 100644 --- a/engine/common/net_wins.c +++ b/engine/common/net_wins.c @@ -1038,12 +1038,12 @@ qboolean NET_CompareAdrMasked(netadr_t a, netadr_t b, netadr_t mask) if (a.type == NA_IPV6 && b.type == NA_IP) { for (i = 0; i < 10; i++) - if (a.address.ip[i] != 0) + if (a.address.ip6[i] != 0) return false; //only matches if they're 0s, otherwise its not an ipv4 address there for (; i < 12; i++) - if (a.address.ip[i] != 0xff && a.address.ip[i] != 0x00) //0x00 is depricated - return false; //only matches if they're 0s, otherwise its not an ipv4 address there + if (a.address.ip6[i] != 0xff && a.address.ip6[i] != 0x00) //0x00 is depricated + return false; //only matches if they're 0s or ffs, otherwise its not an ipv4 address there for (i = 0; i < 4; i++) { diff --git a/engine/common/plugin.c b/engine/common/plugin.c index 35737da1f..b16746179 100644 --- a/engine/common/plugin.c +++ b/engine/common/plugin.c @@ -222,24 +222,27 @@ static void Plug_RegisterBuiltinIndex(char *name, Plug_Builtin_t bi, int flags, } */ -qintptr_t VARGS Plug_FindBuiltin(void *offset, quintptr_t mask, const qintptr_t *args) +static qintptr_t Plug_FindBuiltin(qboolean native, char *p) { int i; - char *p = (char *)VM_POINTER(args[0]); - for (i = 0; i < numplugbuiltins; i++) if (plugbuiltins[i].name) if (p && !strcmp(plugbuiltins[i].name, p)) { - if (offset && plugbuiltins[i].flags & PLUG_BIF_DLLONLY) + if (!native && plugbuiltins[i].flags & PLUG_BIF_DLLONLY) return 0; //block it, if not native - if (!offset && plugbuiltins[i].flags & PLUG_BIF_QVMONLY) + if (native && plugbuiltins[i].flags & PLUG_BIF_QVMONLY) return 0; //block it, if not native return -i; } return 0; } +qintptr_t VARGS Plug_GetBuiltin(void *offset, quintptr_t mask, const qintptr_t *args) +{ + char *p = (char *)VM_POINTER(args[0]); + return Plug_FindBuiltin(!offset, p); +} int Plug_SystemCallsVM(void *offset, quintptr_t mask, int fn, const int *arg) { @@ -300,7 +303,6 @@ static qintptr_t EXPORT_FN Plug_SystemCallsNative(qintptr_t arg, ...) plugin_t *Plug_Load(char *file) { plugin_t *newplug; - qintptr_t argarray; for (newplug = plugs; newplug; newplug = newplug->next) { @@ -321,8 +323,7 @@ plugin_t *Plug_Load(char *file) newplug->next = plugs; plugs = newplug; - argarray = 4; - if (!VM_Call(newplug->vm, 0, Plug_FindBuiltin("Plug_GetEngineFunction"-4, ~0, &argarray))) + if (!VM_Call(newplug->vm, 0, Plug_FindBuiltin(true, "Plug_GetEngineFunction"))) { Plug_Close(newplug); return NULL; @@ -1429,7 +1430,7 @@ void Plug_Init(void) Cmd_AddCommand("plug_load", Plug_Load_f); Cmd_AddCommand("plug_list", Plug_List_f); - Plug_RegisterBuiltin("Plug_GetEngineFunction", Plug_FindBuiltin, 0);//plugin wishes to find a builtin number. + Plug_RegisterBuiltin("Plug_GetEngineFunction", Plug_GetBuiltin, 0);//plugin wishes to find a builtin number. Plug_RegisterBuiltin("Plug_ExportToEngine", Plug_ExportToEngine, 0); //plugin has a call back that we might be interested in. Plug_RegisterBuiltin("Plug_ExportNative", Plug_ExportNative, PLUG_BIF_DLLONLY); Plug_RegisterBuiltin("Con_Print", Plug_Con_Print, 0); //printf is not possible - qvm floats are never doubles, vararg floats in a cdecl call are always converted to doubles. diff --git a/engine/common/pmovetst.c b/engine/common/pmovetst.c index a107f9a28..1ec43a5cb 100644 --- a/engine/common/pmovetst.c +++ b/engine/common/pmovetst.c @@ -197,8 +197,6 @@ LINE TESTING IN HULLS =============================================================================== */ -static vec3_t trace_extents; - /*returns if it actually did a trace*/ static qboolean PM_TransformedHullCheck (model_t *model, vec3_t start, vec3_t end, trace_t *trace, vec3_t origin, vec3_t angles) { diff --git a/engine/common/pr_bgcmd.c b/engine/common/pr_bgcmd.c index 981e2a998..9581ffbe7 100644 --- a/engine/common/pr_bgcmd.c +++ b/engine/common/pr_bgcmd.c @@ -156,7 +156,7 @@ void VARGS PR_BIError(progfuncs_t *progfuncs, char *format, ...) } -pbool QC_WriteFile(char *name, void *data, int len) +pbool QC_WriteFile(const char *name, void *data, int len) { char buffer[256]; sprintf(buffer, "%s", name); diff --git a/engine/common/pr_common.h b/engine/common/pr_common.h index 7174641ef..2192b7d5f 100644 --- a/engine/common/pr_common.h +++ b/engine/common/pr_common.h @@ -81,7 +81,7 @@ typedef struct lh_extension_s { extern lh_extension_t QSG_Extensions[]; extern unsigned int QSG_Extensions_count; -pbool QC_WriteFile(char *name, void *data, int len); +pbool QC_WriteFile(const char *name, void *data, int len); void *VARGS PR_CB_Malloc(int size); //these functions should be tracked by the library reliably, so there should be no need to track them ourselves. void VARGS PR_CB_Free(void *mem); diff --git a/engine/common/q3common.c b/engine/common/q3common.c index bb9dfbf36..345d282dd 100644 --- a/engine/common/q3common.c +++ b/engine/common/q3common.c @@ -855,11 +855,11 @@ typedef struct { // field declarations #ifdef MSG_SHOWNET -# define PS_FIELD(n,b) { #n, ((int)&(((q3playerState_t *)0)->n)), b } -# define ES_FIELD(n,b) { #n, ((int)&(((q3entityState_t *)0)->n)), b } +# define PS_FIELD(n,b) { #n, ((size_t)&(((q3playerState_t *)0)->n)), b } +# define ES_FIELD(n,b) { #n, ((size_t)&(((q3entityState_t *)0)->n)), b } #else -# define PS_FIELD(n,b) { ((int)&(((q3playerState_t *)0)->n)), b } -# define ES_FIELD(n,b) { ((int)&(((q3entityState_t *)0)->n)), b } +# define PS_FIELD(n,b) { ((size_t)&(((q3playerState_t *)0)->n)), b } +# define ES_FIELD(n,b) { ((size_t)&(((q3entityState_t *)0)->n)), b } #endif // field data accessing diff --git a/engine/common/qvm.c b/engine/common/qvm.c index 6255b0341..6ab197fb8 100644 --- a/engine/common/qvm.c +++ b/engine/common/qvm.c @@ -573,10 +573,10 @@ static void inline QVM_Return(qvm_t *vm, int size) Sys_Error("VM run time error: freed too much stack\n"); if(fp[1]>=vm->len_cs*2) - if ((int)(vm->cs+fp[1]) != (int)RETURNOFFSETMARKER) //this being false causes the program to quit. + if ((size_t)(vm->cs+fp[1]) != (size_t)RETURNOFFSETMARKER) //this being false causes the program to quit. Sys_Error("VM run time error: program returned to hyperspace (%p, %p)\n", (char*)vm->cs, (char*)fp[1]); if(fp[1]<0) - if ((int)(vm->cs+fp[1]) != (int)RETURNOFFSETMARKER) + if ((size_t)(vm->cs+fp[1]) != (size_t)RETURNOFFSETMARKER) Sys_Error("VM run time error: program returned to negative hyperspace\n"); if (vm->sp-vm->max_sp != fp[0]) @@ -657,7 +657,7 @@ int QVM_ExecVM(register qvm_t *qvm, int command, int arg0, int arg1, int arg2, i case OP_LEAVE: QVM_Return(qvm, param); - if ((int)qvm->pc == (int)RETURNOFFSETMARKER) + if ((size_t)qvm->pc == (size_t)RETURNOFFSETMARKER) { // pick return value from stack qvm->pc = oldpc; diff --git a/engine/gl/gl_backend.c b/engine/gl/gl_backend.c index 6cb9906a3..1ec165fcd 100644 --- a/engine/gl/gl_backend.c +++ b/engine/gl/gl_backend.c @@ -1143,7 +1143,7 @@ static void GenerateTCMods(const shaderpass_t *pass, int passnum) //source is always packed //dest is packed too -static void colourgen(const shaderpass_t *pass, int cnt, const vec4_t *src, vec4_t *dst, const mesh_t *mesh) +static void colourgen(const shaderpass_t *pass, int cnt, vec4_t *src, vec4_t *dst, const mesh_t *mesh) { switch (pass->rgbgen) { @@ -1287,7 +1287,7 @@ static void colourgen(const shaderpass_t *pass, int cnt, const vec4_t *src, vec4 } } -static void deformgen(const deformv_t *deformv, int cnt, const vecV_t *src, vecV_t *dst, const mesh_t *mesh) +static void deformgen(const deformv_t *deformv, int cnt, vecV_t *src, vecV_t *dst, const mesh_t *mesh) { float *table; int j, k; @@ -1297,14 +1297,14 @@ static void deformgen(const deformv_t *deformv, int cnt, const vecV_t *src, vecV { default: case DEFORMV_NONE: - if (src != (const avec4_t*)dst) + if (src != dst) memcpy(dst, src, sizeof(*src)*cnt); break; case DEFORMV_WAVE: if (!mesh->normals_array) { - if (src != (const avec4_t*)dst) + if (src != dst) memcpy(dst, src, sizeof(*src)*cnt); return; } @@ -1326,7 +1326,7 @@ static void deformgen(const deformv_t *deformv, int cnt, const vecV_t *src, vecV case DEFORMV_NORMAL: //normal does not actually move the verts, but it does change the normals array //we don't currently support that. - if (src != (const avec4_t*)dst) + if (src != dst) memcpy(dst, src, sizeof(*src)*cnt); /* args[0] = deformv->args[1] * shaderstate.curtime; @@ -1546,7 +1546,7 @@ static void GenerateVertexDeforms(const shader_t *shader) /*======================================alpha ===============================*/ -static void alphagen(const shaderpass_t *pass, int cnt, const avec4_t *src, avec4_t *dst, const mesh_t *mesh) +static void alphagen(const shaderpass_t *pass, int cnt, avec4_t *const src, avec4_t *dst, const mesh_t *mesh) { float *table; float t; @@ -2790,7 +2790,6 @@ void BE_DrawPolys(qboolean decalsset) } void GLBE_SubmitBatch(batch_t *batch) { - model_t *model = cl.worldmodel; int lm; if (batch->texture) @@ -3047,6 +3046,8 @@ void BE_GenModelBatches(batch_t **batches) continue; R_GAlias_GenerateBatches(ent, batches); break; + default: + break; } } } diff --git a/engine/gl/gl_draw.c b/engine/gl/gl_draw.c index 23631804d..52cc84698 100644 --- a/engine/gl/gl_draw.c +++ b/engine/gl/gl_draw.c @@ -130,8 +130,6 @@ int sizeofuploadmemorybuffer; qbyte *uploadmemorybufferintermediate; int sizeofuploadmemorybufferintermediate; -static index_t r_quad_indexes[6] = {0, 1, 2, 0, 2, 3}; - extern qbyte gammatable[256]; #ifdef GL_USE8BITTEX @@ -738,9 +736,6 @@ void GLR_Menutint_Callback (struct cvar_s *var, char *oldvalue) void GLDraw_FadeScreen (void) { - extern cvar_t gl_menutint_shader; - extern texid_t scenepp_texture; - extern int scenepp_mt_program, scenepp_mt_parm_colorf, scenepp_mt_parm_inverti; extern shader_t *scenepp_mt_shader; if (!faderender) diff --git a/engine/gl/gl_rmisc.c b/engine/gl/gl_rmisc.c index 1b87ad53f..d51a7b367 100644 --- a/engine/gl/gl_rmisc.c +++ b/engine/gl/gl_rmisc.c @@ -84,6 +84,9 @@ qboolean GenerateNormalisationCubeMap() unsigned char * bytePtr; int i, j; + + normalisationCubeMap = GL_AllocNewTexture(); + GL_BindType(GL_TEXTURE_CUBE_MAP_ARB, normalisationCubeMap); //positive x bytePtr=data; @@ -222,6 +225,13 @@ qboolean GenerateNormalisationCubeMap() } qglTexImage2D( GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, 0, GL_RGBA8, 32, 32, 0, GL_RGB, GL_UNSIGNED_BYTE, data); + + + qglTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + qglTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + qglTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + qglTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + qglTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); return true; } @@ -237,27 +247,14 @@ R_Init */ void GLR_ReInit (void) { - extern int gl_bumpmappingpossible; - - - netgraphtexture = GL_AllocNewTexture(0, 0); - #if 0 + extern int gl_bumpmappingpossible; if (gl_bumpmappingpossible) - { - //Create normalisation cube map - normalisationCubeMap = GL_AllocNewTexture(); - GL_BindType(GL_TEXTURE_CUBE_MAP_ARB, normalisationCubeMap); GenerateNormalisationCubeMap(); - qglTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - qglTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - qglTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - qglTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - qglTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); - } else normalisationCubeMap = 0; #endif + netgraphtexture = GL_AllocNewTexture(0, 0); R_InitBloomTextures(); R_InitFlashblends(); diff --git a/engine/gl/gl_shadow.c b/engine/gl/gl_shadow.c index 2f76f8f33..ff184bfc6 100644 --- a/engine/gl/gl_shadow.c +++ b/engine/gl/gl_shadow.c @@ -56,7 +56,6 @@ typedef struct shadowmesh_s { /*state of the current shadow mesh*/ #define inc 128 int sh_shadowframe; -static int sh_type; static int sh_firstindex; static int sh_vertnum; //vertex number (set to 0 at SH_Begin) static shadowmesh_t *sh_shmesh, sh_tempshmesh; @@ -1130,7 +1129,18 @@ static qboolean Sh_ScissorForBox(vec3_t mins, vec3_t maxs) // clipped by nearclip plane // this is nasty and crude... // create viewspace bbox - for (i = 0;i < 8;i++) + i = 0; + /*unrolled the first iteration to avoid warnings*/ + v[0] = ((i & 1) ? mins[0] : maxs[0]) - r_refdef.vieworg[0]; + v[1] = ((i & 2) ? mins[1] : maxs[1]) - r_refdef.vieworg[1]; + v[2] = ((i & 4) ? mins[2] : maxs[2]) - r_refdef.vieworg[2]; + v2[0] = DotProduct(v, vright); + v2[1] = DotProduct(v, vup); + v2[2] = DotProduct(v, vpn); + smins[0] = smaxs[0] = v2[0]; + smins[1] = smaxs[1] = v2[1]; + smins[2] = smaxs[2] = v2[2]; + for (i = 1;i < 8;i++) { v[0] = ((i & 1) ? mins[0] : maxs[0]) - r_refdef.vieworg[0]; v[1] = ((i & 2) ? mins[1] : maxs[1]) - r_refdef.vieworg[1]; @@ -1138,21 +1148,12 @@ static qboolean Sh_ScissorForBox(vec3_t mins, vec3_t maxs) v2[0] = DotProduct(v, vright); v2[1] = DotProduct(v, vup); v2[2] = DotProduct(v, vpn); - if (i) - { - if (smins[0] > v2[0]) smins[0] = v2[0]; - if (smaxs[0] < v2[0]) smaxs[0] = v2[0]; - if (smins[1] > v2[1]) smins[1] = v2[1]; - if (smaxs[1] < v2[1]) smaxs[1] = v2[1]; - if (smins[2] > v2[2]) smins[2] = v2[2]; - if (smaxs[2] < v2[2]) smaxs[2] = v2[2]; - } - else - { - smins[0] = smaxs[0] = v2[0]; - smins[1] = smaxs[1] = v2[1]; - smins[2] = smaxs[2] = v2[2]; - } + if (smins[0] > v2[0]) smins[0] = v2[0]; + if (smaxs[0] < v2[0]) smaxs[0] = v2[0]; + if (smins[1] > v2[1]) smins[1] = v2[1]; + if (smaxs[1] < v2[1]) smaxs[1] = v2[1]; + if (smins[2] > v2[2]) smins[2] = v2[2]; + if (smaxs[2] < v2[2]) smaxs[2] = v2[2]; } // now we have a bbox in viewspace // clip it to the view plane diff --git a/engine/qclib/progslib.h b/engine/qclib/progslib.h index 95e286c83..8a0f94d37 100644 --- a/engine/qclib/progslib.h +++ b/engine/qclib/progslib.h @@ -142,9 +142,9 @@ struct progfuncs_s { typedef struct progexterns_s { int progsversion; //PROGSTRUCT_VERSION - unsigned char *(*ReadFile) (char *fname, void *buffer, int len); - int (*FileSize) (char *fname); //-1 if file does not exist - pbool (*WriteFile) (char *name, void *data, int len); + unsigned char *(*ReadFile) (const char *fname, void *buffer, int len); + int (*FileSize) (const char *fname); //-1 if file does not exist + pbool (*WriteFile) (const char *name, void *data, int len); int (VARGS *printf) (const char *, ...) LIKEPRINTF(1); void (VARGS *Sys_Error) (const char *, ...) LIKEPRINTF(1); void (VARGS *Abort) (char *, ...) LIKEPRINTF(1);