diff --git a/engine/client/cl_parse.c b/engine/client/cl_parse.c index 348efd91d..576d32f1a 100644 --- a/engine/client/cl_parse.c +++ b/engine/client/cl_parse.c @@ -5127,7 +5127,7 @@ void CL_ParseServerMessage (void) break; case svc_sellscreen: - Cmd_ExecuteString ("help", RESTRICT_RCON); + Cmd_ExecuteString ("help", RESTRICT_SERVER); break; case svc_smallkick: @@ -5932,7 +5932,7 @@ void CLNQ_ParseServerMessage (void) break; case svc_sellscreen: //pantsie - Cmd_ExecuteString ("help 0", RESTRICT_RCON); + Cmd_ExecuteString ("help 0", RESTRICT_SERVER); break; case svc_damage: @@ -5946,7 +5946,7 @@ void CLNQ_ParseServerMessage (void) } break; case svcfitz_bf: - Cmd_ExecuteString("bf", RESTRICT_RCON); + Cmd_ExecuteString("bf", RESTRICT_SERVER); break; case svcfitz_fog: cl.fog_density = MSG_ReadByte(); diff --git a/engine/client/image.c b/engine/client/image.c index 698cec5c7..890759998 100644 --- a/engine/client/image.c +++ b/engine/client/image.c @@ -21,13 +21,6 @@ cvar_t r_dodgypcxfiles = SCVAR("r_dodgypcxfiles", "0"); //Quake 2's PCX loading #include #endif -//the eye doesn't see different colours in the same proportion. -//must add to slightly less than 1 -#define NTSC_RED 0.299 -#define NTSC_GREEN 0.587 -#define NTSC_BLUE 0.114 -#define NTSC_SUM (NTSC_RED + NTSC_GREEN + NTSC_BLUE) - typedef struct { //cm = colourmap char id_len; //0 char cm_type; //1 diff --git a/engine/client/m_multi.c b/engine/client/m_multi.c index 81246bc00..b42d70c45 100644 --- a/engine/client/m_multi.c +++ b/engine/client/m_multi.c @@ -271,7 +271,7 @@ void MSetupQ2_TransDraw (int x, int y, menucustom_t *option, menu_t *menu) void MSetup_TransDraw (int x, int y, menucustom_t *option, menu_t *menu) { - extern qbyte translationTable[256]; + qbyte translationTable[256]; setupmenu_t *info = menu->data; mpic_t *p; void *f; @@ -316,7 +316,7 @@ void MSetup_TransDraw (int x, int y, menucustom_t *option, menu_t *menu) if (p) R2D_ScalePic (x-12, y-8, 72, 72, p); - M_BuildTranslationTable(info->topcolour, info->lowercolour); + M_BuildTranslationTable(info->topcolour, info->lowercolour, translationTable); R2D_TransPicTranslate (x, y, info->tiwidth, info->tiheight, info->translationimage, translationTable); } diff --git a/engine/client/menu.c b/engine/client/menu.c index 9b674335e..3f4c3ee03 100644 --- a/engine/client/menu.c +++ b/engine/client/menu.c @@ -30,17 +30,6 @@ extern menu_t *menu_script; qboolean m_recursiveDraw; -int m_return_state; -qboolean m_return_onerror; -char m_return_reason [32]; - -#define StartingGame (m_multiplayer_cursor == 1) -#define JoiningGame (m_multiplayer_cursor == 0) -#define SerialConfig (m_net_cursor == 0) -#define DirectConfig (m_net_cursor == 1) -#define IPXConfig (m_net_cursor == 2) -#define TCPIPConfig (m_net_cursor == 3) - void M_ConfigureNetSubsystem(void); cvar_t m_helpismedia = SCVAR("m_helpismedia", "0"); @@ -61,13 +50,11 @@ void M_DrawScalePic (int x, int y, int w, int h, mpic_t *pic) R2D_ScalePic (x + ((vid.width - 320)>>1), y, w, h, pic); } -qbyte identityTable[256]; -qbyte translationTable[256]; - -void M_BuildTranslationTable(int top, int bottom) +void M_BuildTranslationTable(int top, int bottom, qbyte *translationTable) { int j; qbyte *dest, *source; + qbyte identityTable[256]; int pc = Cvar_Get("cl_playerclass", "1", 0, "foo")->value; if (h2playertranslations && pc) diff --git a/engine/client/menu.h b/engine/client/menu.h index 6de400fa4..99f8de7bd 100644 --- a/engine/client/menu.h +++ b/engine/client/menu.h @@ -330,8 +330,6 @@ void M_Menu_Main_f (void); void M_Menu_Video_f (void); void M_Menu_Help_f (void); void M_Menu_Quit_f (void); -void M_Menu_SerialConfig_f (void); - void M_Menu_ModemConfig_f (void); void M_Menu_LanConfig_f (void); void M_Menu_GameOptions_f (void); void M_Menu_Search_f (void); @@ -349,8 +347,6 @@ void M_Main_Draw (void); void M_Video_Draw (void); void M_Help_Draw (void); void M_Quit_Draw (void); -void M_SerialConfig_Draw (void); - void M_ModemConfig_Draw (void); void M_LanConfig_Draw (void); void M_GameOptions_Draw (void); void M_Search_Draw (void); @@ -368,8 +364,6 @@ void M_Main_Key (int key); void M_Video_Key (int key); void M_Help_Key (int key); void M_Quit_Key (int key); -void M_SerialConfig_Key (int key); - void M_ModemConfig_Key (int key); void M_LanConfig_Key (int key); void M_GameOptions_Key (int key); void M_Search_Key (int key); @@ -381,7 +375,7 @@ void M_DrawServers(void); void M_SListKey(int key); //drawing funcs -void M_BuildTranslationTable(int top, int bottom); +void M_BuildTranslationTable(int top, int bottom, qbyte *translationTable); void M_DrawCharacter (int cx, int line, unsigned int num); void M_Print (int cx, int cy, qbyte *str); void M_PrintWhite (int cx, int cy, qbyte *str); diff --git a/engine/client/r_surf.c b/engine/client/r_surf.c index b2a309d05..ac0efc477 100644 --- a/engine/client/r_surf.c +++ b/engine/client/r_surf.c @@ -706,11 +706,11 @@ merges stains and oversaturates overbrights. */ static void Surf_StoreLightmap(qbyte *dest, int smax, int tmax, unsigned int shift, enum lm_mode lm_mode, stmap *stainsrc) { - int r, g, b, t; - int cr, cg, cb; + int r, g, b, t, m; unsigned int i, j; unsigned int *bl; int stride; + switch (lm_mode) { case bgra4_os: @@ -733,66 +733,30 @@ static void Surf_StoreLightmap(qbyte *dest, int smax, int tmax, unsigned int shi b = (127+b*(*stainsrc++)) >> 8; } - cr = 0; - cg = 0; - cb = 0; - - if (r > 255) //ak too much red + /* + // quake 2 method, scale highest down to + // maintain hue + m = max(max(r, g), b); + if (m > 255) { - cr -= (255-r)/2; - cg += (255-r)/4; //reduce it, and indicate to drop the others too. - cb += (255-r)/4; - r = 255; - } - - if (g > 255) - { - cr += (255-g)/4; - cg -= (255-g)/2; - cb += (255-g)/4; - g = 255; - } - - if (b > 255) - { - cr += (255-b)/4; - cg += (255-b)/4; - cb -= (255-b)/2; - b = 255; + r *= 255.0/m; + g *= 255.0/m; + b *= 255.0/m; } + */ - r+=cr; - if (r > 255) - dest[2] = 255; - else if (r < 0) - dest[2] = 0; - else - dest[2] = r; - - g+=cg; - if (g > 255) - dest[1] = 255; - else if (g < 0) - dest[1] = 0; - else - dest[1] = g; - - b+=cb; - if (b > 255) - dest[0] = 255; - else if (b < 0) - dest[0] = 0; - else - dest[0] = b; - + dest[0] = min(b, 255); + dest[1] = min(g, 255); + dest[2] = min(r, 255); dest[3] = 255; + dest += 4; } if (stainsrc) stainsrc += (LMBLOCK_WIDTH - smax)*3; } break; - +/* case bgra4: stride = LMBLOCK_WIDTH*4 - (smax<<2); @@ -841,7 +805,7 @@ static void Surf_StoreLightmap(qbyte *dest, int smax, int tmax, unsigned int shi stainsrc += (LMBLOCK_WIDTH - smax)*3; } break; - +*/ case rgb3_os: stride = LMBLOCK_WIDTH*3 - (smax*3); bl = blocklights; @@ -861,57 +825,21 @@ static void Surf_StoreLightmap(qbyte *dest, int smax, int tmax, unsigned int shi b = (127+b*(*stainsrc++)) >> 8; } - cr = 0; - cg = 0; - cb = 0; - - if (r > 255) //ak too much red + /* + // quake 2 method, scale highest down to + // maintain hue + m = max(max(r, g), b); + if (m > 255) { - cr -= (255-r)/2; - cg += (255-r)/4; //reduce it, and indicate to drop the others too. - cb += (255-r)/4; - r = 255; - } - - if (g > 255) - { - cr += (255-g)/4; - cg -= (255-g)/2; - cb += (255-g)/4; - g = 255; - } - - if (b > 255) - { - cr += (255-b)/4; - cg += (255-b)/4; - cb -= (255-b)/2; - b = 255; + r *= 255.0/m; + g *= 255.0/m; + b *= 255.0/m; } + */ - r+=cr; - if (r > 255) - dest[0] = 255; - else if (r < 0) - dest[0] = 0; - else - dest[0] = (r+cr); - - g+=cg; - if (g > 255) - dest[1] = 255; - else if (g < 0) - dest[1] = 0; - else - dest[1] = g; - - b+=cb; - if (b > 255) - dest[2] = 255; - else if (b < 0) - dest[2] = 0; - else - dest[2] = b; + dest[0] = min(r, 255); + dest[1] = min(g, 255); + dest[2] = min(b, 255); dest += 3; } if (stainsrc) @@ -954,7 +882,6 @@ static void Surf_BuildLightMap (msurface_t *surf, qbyte *dest, qbyte *deluxdest, unsigned scale; int maps; unsigned *bl; - extern cvar_t gl_lightmap_shift; int stride = LMBLOCK_WIDTH*lightmap_bytes; @@ -1129,14 +1056,14 @@ static void Surf_BuildLightMap (msurface_t *surf, qbyte *dest, qbyte *deluxdest, if (surf->dlightframe == r_framecount) Surf_AddDynamicLightsColours (surf); + if (!r_stains.value || !surf->stained) + stainsrc = NULL; + if (lightmap_bytes == 4) { if (lightmap_bgra) { - if (!r_stains.value || !surf->stained) - Surf_StoreLightmap(dest, smax, tmax, shift, bgra4_os, NULL); - else - Surf_StoreLightmap(dest, smax, tmax, shift, bgra4_os, stainsrc); + Surf_StoreLightmap(dest, smax, tmax, shift, bgra4_os, stainsrc); } else { @@ -1160,10 +1087,7 @@ static void Surf_BuildLightMap (msurface_t *surf, qbyte *dest, qbyte *deluxdest, } else { - if (!r_stains.value || !surf->stained) - Surf_StoreLightmap(dest, smax, tmax, shift, rgb3_os, NULL); - else - Surf_StoreLightmap(dest, smax, tmax, shift, rgb3_os, stainsrc); + Surf_StoreLightmap(dest, smax, tmax, shift, rgb3_os, stainsrc); } } } @@ -1223,10 +1147,7 @@ static void Surf_BuildLightMap (msurface_t *surf, qbyte *dest, qbyte *deluxdest, Surf_AddDynamicLights (surf); } - if (!r_stains.value || !surf->stained) - Surf_StoreLightmap(dest, smax, tmax, shift, lum, NULL); - else - Surf_StoreLightmap(dest, smax, tmax, shift, lum, stainsrc); + Surf_StoreLightmap(dest, smax, tmax, shift, lum, stainsrc); } } diff --git a/engine/client/render.h b/engine/client/render.h index 46c8a5428..da2894493 100644 --- a/engine/client/render.h +++ b/engine/client/render.h @@ -56,6 +56,13 @@ static const texid_t r_nulltex = {0}; //============================================================================= +//the eye doesn't see different colours in the same proportion. +//must add to slightly less than 1 +#define NTSC_RED 0.299 +#define NTSC_GREEN 0.587 +#define NTSC_BLUE 0.114 +#define NTSC_SUM (NTSC_RED + NTSC_GREEN + NTSC_BLUE) + typedef enum { RT_MODEL, RT_POLY, @@ -427,6 +434,7 @@ extern cvar_t gl_nohwblend; extern cvar_t gl_reporttjunctions; extern cvar_t r_flashblend; extern cvar_t r_lightstylesmooth; +extern cvar_t r_lightstylesmooth_limit; extern cvar_t r_lightstylespeed; extern cvar_t gl_nocolors; extern cvar_t gl_load24bit; @@ -435,9 +443,6 @@ extern cvar_t gl_finish; extern cvar_t gl_max_size; extern cvar_t gl_playermip; -extern cvar_t d_palconvwrite; -extern cvar_t d_palremapsize; - extern cvar_t r_lightmap_saturation; enum { diff --git a/engine/client/renderer.c b/engine/client/renderer.c index 0e244f6fd..de7a0d391 100644 --- a/engine/client/renderer.c +++ b/engine/client/renderer.c @@ -45,10 +45,6 @@ cvar_t _windowed_mouse = CVARF ("_windowed_mouse","1", cvar_t con_ocranaleds = CVAR ("con_ocranaleds", "2"); -cvar_t d_palconvwrite = CVAR ("d_palconvwrite", "1"); -cvar_t d_palremapsize = CVARF ("d_palremapsize", "64", - CVAR_RENDERERLATCH); - cvar_t cl_cursor = CVAR ("cl_cursor", ""); cvar_t cl_cursorsize = CVAR ("cl_cursorsize", "32"); cvar_t cl_cursorbias = CVAR ("cl_cursorbias", "4"); @@ -101,6 +97,7 @@ cvar_t r_fullbrightSkins = SCVARF ("r_fullbrightSkins", "1", CVAR_SEMICHEAT|CVAR_SHADERSYSTEM); cvar_t r_lightmap_saturation = SCVAR ("r_lightmap_saturation", "1"); cvar_t r_lightstylesmooth = SCVAR ("r_lightstylesmooth", "0"); +cvar_t r_lightstylesmooth_limit = SCVAR ("r_lightstylesmooth_limit", "2"); cvar_t r_lightstylespeed = SCVAR ("r_lightstylespeed", "10"); cvar_t r_loadlits = SCVAR ("r_loadlit", "1"); cvar_t r_menutint = SCVARF ("r_menutint", "0.68 0.4 0.13", @@ -532,6 +529,7 @@ void Renderer_Init(void) Cvar_Register(&r_dodgypcxfiles, "Bug fixes"); Cvar_Register(&r_loadlits, GRAPHICALNICETIES); Cvar_Register(&r_lightstylesmooth, GRAPHICALNICETIES); + Cvar_Register(&r_lightstylesmooth_limit, GRAPHICALNICETIES); Cvar_Register(&r_lightstylespeed, GRAPHICALNICETIES); Cvar_Register(&r_stains, GRAPHICALNICETIES); diff --git a/engine/common/cvar.h b/engine/common/cvar.h index 6bfa8d615..452464f3a 100644 --- a/engine/common/cvar.h +++ b/engine/common/cvar.h @@ -130,7 +130,7 @@ typedef struct cvar_group_s #define CVAR_RULESETLATCH (1<<15) //latched by the ruleset #define CVAR_SHADERSYSTEM (1<<16) //change flushes shaders. -#define CVAR_LASTFLAG CVAR_RULESETLATCH +#define CVAR_LASTFLAG CVAR_SHADERSYSTEM #define CVAR_LATCHMASK (CVAR_LATCH|CVAR_RENDERERLATCH|CVAR_SERVEROVERRIDE|CVAR_CHEAT|CVAR_SEMICHEAT) //you're only allowed one of these. #define CVAR_NEEDDEFAULT CVAR_CHEAT diff --git a/engine/d3d/vid_d3d.c b/engine/d3d/vid_d3d.c index 4d4ed7244..6b7f04fc1 100644 --- a/engine/d3d/vid_d3d.c +++ b/engine/d3d/vid_d3d.c @@ -1074,6 +1074,9 @@ static void (D3D9_Draw_Init) (void) } static void (D3D9_Draw_ReInit) (void) { +#ifdef PLUGINS + Plug_DrawReloadImages(); +#endif } static void (D3D9_R_Init) (void) diff --git a/engine/gl/gl_alias.c b/engine/gl/gl_alias.c index 69bd49136..c2cde29e3 100644 --- a/engine/gl/gl_alias.c +++ b/engine/gl/gl_alias.c @@ -40,8 +40,6 @@ typedef struct extern cvar_t gl_part_flame, r_fullbrightSkins, r_fb_models; extern cvar_t r_noaliasshadows; -void R_TorchEffect (vec3_t pos, int type); -void GLMod_FloodFillSkin( qbyte *skin, int skinwidth, int skinheight ); diff --git a/engine/gl/gl_rlight.c b/engine/gl/gl_rlight.c index a666ce8f4..d79977f2b 100644 --- a/engine/gl/gl_rlight.c +++ b/engine/gl/gl_rlight.c @@ -36,7 +36,6 @@ R_AnimateLight void R_AnimateLight (void) { int i,j; - int v1, v2; float f; // @@ -46,13 +45,12 @@ void R_AnimateLight (void) if (f < 0) f = 0; i = (int)f; + f -= i; //this can require updates at 1000 times a second.. Depends on your framerate of course - if (r_lightstylesmooth.ival) - f -= i; //this can require updates at 1000 times a second.. Depends on your framerate of course - else - f = 0; //only update them 10 times a second for (j=0 ; j r_lightstylesmooth_limit.ival) + d_lightstylevalue[j] = v1*22; + else + d_lightstylevalue[j] = (v1*(1-f) + v2*(f))*22; } }