diff --git a/polymer/build/devcpp/Build.dev b/polymer/build/devcpp/Build.dev deleted file mode 100644 index 4cd104380..000000000 --- a/polymer/build/devcpp/Build.dev +++ /dev/null @@ -1,69 +0,0 @@ -[Project] -FileName=Build.dev -Name=KenBuild Editor -UnitCount=2 -Type=0 -Ver=1 -ObjFiles= -Includes=..\include -Libs=C:\sdks\directx\dx7\include -PrivateResource=Build_private.rc -ResourceIncludes=..\;..\include -MakeIncludes= -Compiler=-DRENDERTYPEWIN=1_@@_-DSUPERBUILD_@@_-DPOLYMOST_@@_-DUSE_OPENGL_@@_-DDYNAMIC_OPENGL_@@_-DNO_GCC_BUILTINS_@@_-DUNDERSCORES_@@_-funsigned-char_@@_-fno-strict-aliasing_@@_ -CppCompiler= -Linker=libeditor.a_@@_libengine.a_@@_-ldxguid_@@_-lws2_32_@@_-lcomctl32_@@_ -IsCpp=0 -Icon= -ExeOutput=..\devcpp -ObjectOutput=..\devcpp -OverrideOutput=0 -OverrideOutputName=libengine.a -HostApplication= -Folders= -CommandLine= -UseCustomMakefile=0 -CustomMakefile= -IncludeVersionInfo=0 -SupportXPThemes=0 -CompilerSet=0 -CompilerSettings=0000000000100010000d0 - -[VersionInfo] -Major=0 -Minor=1 -Release=1 -Build=1 -LanguageID=1033 -CharsetID=1252 -CompanyName= -FileVersion= -FileDescription=Developed using the Dev-C++ IDE -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion= -AutoIncBuildNr=0 - -[Unit1] -FileName=..\src\misc\buildres.rc -CompileCpp=0 -Folder=KenBuild Editor -Compile=1 -Link=0 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit2] -FileName=..\testgame\bstub.c -Folder=KenBuild Editor -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= -CompileCpp=0 - diff --git a/polymer/build/devcpp/Game.dev b/polymer/build/devcpp/Game.dev deleted file mode 100644 index 003052106..000000000 --- a/polymer/build/devcpp/Game.dev +++ /dev/null @@ -1,108 +0,0 @@ -[Project] -FileName=Game.dev -Name=KenBuild Game -UnitCount=5 -Type=0 -Ver=1 -ObjFiles= -Includes=..\include;..\testgame;..\..\jfaud\inc -Libs=C:\sdks\directx\dx7\include;..\..\jfaud -PrivateResource=Game_private.rc -ResourceIncludes=..\;..\testgame -MakeIncludes= -Compiler=-DRENDERTYPEWIN=1_@@_-DSUPERBUILD_@@_-DPOLYMOST_@@_-DUSE_OPENGL_@@_-DDYNAMIC_OPENGL_@@_-DNO_GCC_BUILTINS_@@_-DUNDERSCORES_@@_-funsigned-char_@@_-fno-strict-aliasing_@@_ -CppCompiler= -Linker=libeditor.a_@@_libengine.a_@@_-ldxguid_@@_-lws2_32_@@_-lsupc++_@@_-lcomctl32_@@_-ljfaud_@@_-lwinmm_@@_ -IsCpp=0 -Icon= -ExeOutput=..\devcpp -ObjectOutput=..\devcpp -OverrideOutput=0 -OverrideOutputName=libengine.a -HostApplication= -Folders= -CommandLine= -UseCustomMakefile=0 -CustomMakefile= -IncludeVersionInfo=0 -SupportXPThemes=0 -CompilerSet=0 -CompilerSettings=0000000000100010000d0 - -[VersionInfo] -Major=0 -Minor=1 -Release=1 -Build=1 -LanguageID=1033 -CharsetID=1252 -CompanyName= -FileVersion= -FileDescription=Developed using the Dev-C++ IDE -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion= -AutoIncBuildNr=0 - -[Unit3] -FileName=..\testgame\startwin.game.c -CompileCpp=0 -Folder=KenBuild Game -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit4] -FileName=..\testgame\jfaud_sound.cpp -Folder=KenBuild Game -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= -CompileCpp=0 - -[Unit1] -FileName=..\src\config.c -CompileCpp=0 -Folder=KenBuild Editor -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit5] -FileName=..\testgame\game.c -CompileCpp=0 -Folder=KenBuild Game -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit6] -FileName=..\testgame\game.c -CompileCpp=0 -Folder=KenBuild Game -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit2] -FileName=..\src\misc\gameres.rc -Folder=KenBuild Game -Compile=1 -Link=0 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - diff --git a/polymer/build/devcpp/libEditor.dev b/polymer/build/devcpp/libEditor.dev deleted file mode 100644 index 09185d6b4..000000000 --- a/polymer/build/devcpp/libEditor.dev +++ /dev/null @@ -1,79 +0,0 @@ -[Project] -FileName=libEditor.dev -Name=Build Editor library -UnitCount=3 -Type=2 -Ver=1 -ObjFiles= -Includes=..\include;..\src -Libs= -PrivateResource= -ResourceIncludes= -MakeIncludes= -Compiler=-DRENDERTYPEWIN=1_@@_-DSUPERBUILD_@@_-DPOLYMOST_@@_-DUSE_OPENGL_@@_-DDYNAMIC_OPENGL_@@_-DNO_GCC_BUILTINS_@@_-DUNDERSCORES_@@_-funsigned-char_@@_ -CppCompiler= -Linker= -IsCpp=0 -Icon= -ExeOutput=..\devcpp -ObjectOutput=..\devcpp -OverrideOutput=1 -OverrideOutputName=libeditor.a -HostApplication= -Folders= -CommandLine= -UseCustomMakefile=0 -CustomMakefile= -IncludeVersionInfo=0 -SupportXPThemes=0 -CompilerSet=0 -CompilerSettings=0000000000100010000d0 - -[VersionInfo] -Major=0 -Minor=1 -Release=1 -Build=1 -LanguageID=1033 -CharsetID=1252 -CompanyName= -FileVersion= -FileDescription=Developed using the Dev-C++ IDE -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion= -AutoIncBuildNr=0 - -[Unit3] -FileName=..\src\startwin.editor.c -CompileCpp=0 -Folder=Build Editor library -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit1] -FileName=..\src\build.c -CompileCpp=0 -Folder=Build Editor library -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit2] -FileName=..\src\config.c -CompileCpp=0 -Folder=Build Editor library -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - diff --git a/polymer/build/devcpp/libEngine.dev b/polymer/build/devcpp/libEngine.dev deleted file mode 100644 index 40a74b500..000000000 --- a/polymer/build/devcpp/libEngine.dev +++ /dev/null @@ -1,228 +0,0 @@ -[Project] -FileName=libEngine.dev -Name=Build Engine library -UnitCount=18 -Type=2 -Ver=1 -ObjFiles= -Includes=..\include;..\src;C:\sdks\directx\dx7\include -Libs= -PrivateResource= -ResourceIncludes= -MakeIncludes= -Compiler=-DRENDERTYPEWIN=1_@@_-DSUPERBUILD_@@_-DPOLYMOST_@@_-DUSE_OPENGL_@@_-DDYNAMIC_OPENGL_@@_-DNO_GCC_BUILTINS_@@_-DUNDERSCORES_@@_-DKSFORBUILD_@@_-funsigned-char_@@_-fno-strict-aliasing_@@_ -CppCompiler= -Linker= -IsCpp=0 -Icon= -ExeOutput=..\devcpp -ObjectOutput=..\devcpp -OverrideOutput=1 -OverrideOutputName=libengine.a -HostApplication= -Folders= -CommandLine= -UseCustomMakefile=0 -CustomMakefile= -IncludeVersionInfo=0 -SupportXPThemes=0 -CompilerSet=0 -CompilerSettings=0000000000100010000d0 - -[Unit1] -FileName=..\src\cache1d.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit2] -FileName=..\src\engine.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit3] -FileName=..\src\crc32.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit4] -FileName=..\src\osd.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit5] -FileName=..\src\pragmas.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit6] -FileName=..\src\a.nasm -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=1 -BuildCmd=nasm -s -DUNDERSCORES -f win32 ../src/a.nasm -o ../devcpp/a.o - -[Unit7] -FileName=engineinfo.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit8] -FileName=..\src\defs.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit9] -FileName=..\src\compat.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit10] -FileName=..\src\baselayer.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit11] -FileName=..\src\glbuild.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit12] -FileName=..\src\kplib.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit13] -FileName=..\src\mmulti.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit14] -FileName=..\src\scriptfile.c -CompileCpp=0 -Folder=Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[VersionInfo] -Major=0 -Minor=1 -Release=1 -Build=1 -LanguageID=1033 -CharsetID=1252 -CompanyName= -FileVersion= -FileDescription=Developed using the Dev-C++ IDE -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion= -AutoIncBuildNr=0 - -[Unit15] -FileName=..\src\winlayer.c -CompileCpp=0 -Folder=Build Engine -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit16] -FileName=..\src\md4.c -CompileCpp=0 -Folder=Build Engine library -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit17] -FileName=..\src\lzf_d.c -CompileCpp=0 -Folder=Build Engine library -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit18] -FileName=..\src\lzf_c.c -CompileCpp=0 -Folder=Build Engine library -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - diff --git a/polymer/build/src/osd.c b/polymer/build/src/osd.c index 061320599..237c43df3 100644 --- a/polymer/build/src/osd.c +++ b/polymer/build/src/osd.c @@ -1375,15 +1375,23 @@ void OSD_Draw(void) topoffs+=osdcols; } - drawosdchar(2,osdrowscur,'>',osdpromptshade?osdpromptshade:(sintable[(totalclock<<4)&2047]>>11),osdpromptpal); - if (osdeditcaps) drawosdchar(0,osdrowscur,'C',osdpromptshade?osdpromptshade:(sintable[(totalclock<<4)&2047]>>11),osdpromptpal); - if (osdeditshift) drawosdchar(1,osdrowscur,'H',osdpromptshade?osdpromptshade:(sintable[(totalclock<<4)&2047]>>11),osdpromptpal); + { + int offset = (osdeditcaps && osdeditshift && osdhead > 0); + int shade = osdpromptshade?osdpromptshade:(sintable[(totalclock<<4)&2047]>>11); - len = min(osdcols-1-3, osdeditlen-osdeditwinstart); - for (x=len-1; x>=0; x--) - drawosdchar(3+x,osdrowscur,osdeditbuf[osdeditwinstart+x],osdeditshade<<1,osdeditpal); + if (osdhead == osdlines-1) drawosdchar(0,osdrowscur,'~',shade,osdpromptpal); + else if (osdhead > 0) drawosdchar(0,osdrowscur,'^',shade,osdpromptpal); + if (osdeditcaps) drawosdchar(0+(osdhead > 0),osdrowscur,'C',shade,osdpromptpal); + if (osdeditshift) drawosdchar(1+(osdeditcaps && osdhead > 0),osdrowscur,'H',shade,osdpromptpal); - drawosdcursor(3+osdeditcursor-osdeditwinstart,osdrowscur,osdovertype,keytime); + drawosdchar(2+offset,osdrowscur,'>',shade,osdpromptpal); + + len = min(osdcols-1-3-offset, osdeditlen-osdeditwinstart); + for (x=len-1; x>=0; x--) + drawosdchar(3+x+offset,osdrowscur,osdeditbuf[osdeditwinstart+x],osdeditshade<<1,osdeditpal); + + drawosdcursor(3+osdeditcursor-osdeditwinstart+offset,osdrowscur,osdovertype,keytime); + } enddrawing(); } diff --git a/polymer/eduke32/source/config.c b/polymer/eduke32/source/config.c index c699d530b..ffc72fb69 100644 --- a/polymer/eduke32/source/config.c +++ b/polymer/eduke32/source/config.c @@ -250,6 +250,7 @@ void CONFIG_SetDefaults(void) ud.show_level_text = 1; ud.configversion = 0; ud.weaponscale = 100; + ud.textscale = 100; Bstrcpy(ud.rtsname, "DUKE.RTS"); Bstrcpy(myname, "Duke"); @@ -784,6 +785,7 @@ int32 CONFIG_ReadSetup(void) SCRIPT_GetNumber(ud.config.scripthandle, "Misc","AngleInterpolation",&ud.angleinterpolation); SCRIPT_GetNumber(ud.config.scripthandle, "Misc", "WeaponScale",&ud.weaponscale); + SCRIPT_GetNumber(ud.config.scripthandle, "Misc", "TextScale",&ud.textscale); // weapon choices are defaulted in checkcommandline, which may override them if (!CommandWeaponChoice) @@ -964,6 +966,7 @@ void CONFIG_WriteSetup(void) // SCRIPT_PutNumber(ud.config.scripthandle, "Misc", "AngleInterpolation",ud.angleinterpolation,false,false); SCRIPT_PutNumber(ud.config.scripthandle, "Misc", "WeaponScale",ud.weaponscale,false,false); + SCRIPT_PutNumber(ud.config.scripthandle, "Misc", "TextScale",ud.textscale,false,false); SCRIPT_PutNumber(ud.config.scripthandle, "Screen Setup", "Detail",ud.detail,false,false); #if defined(POLYMOST) && defined(USE_OPENGL) diff --git a/polymer/eduke32/source/duke3d.h b/polymer/eduke32/source/duke3d.h index 6fc0c069b..edeb6e719 100644 --- a/polymer/eduke32/source/duke3d.h +++ b/polymer/eduke32/source/duke3d.h @@ -404,7 +404,7 @@ typedef struct { int runkey_mode,statusbarscale,mouseaiming,weaponswitch,drawweapon; // JBF 20031125 int democams,color,msgdisptime,statusbarmode; int m_noexits,noexits,autovote,automsg,idplayers; - int team, viewbob, weaponsway, althud, weaponscale; + int team, viewbob, weaponsway, althud, weaponscale, textscale; int entered_name,screen_tilting,shadows,fta_on,executions,auto_run; int coords,tickrate,levelstats,m_coop,coop,screen_size,lockout,crosshair; diff --git a/polymer/eduke32/source/funct.h b/polymer/eduke32/source/funct.h index a968688a9..fd78255f9 100644 --- a/polymer/eduke32/source/funct.h +++ b/polymer/eduke32/source/funct.h @@ -203,6 +203,7 @@ extern int minitext_(int x,int y,const char *t,int s,int p,int sb); #define minitext(x, y, t, p, sb) minitext_(x,y,t,0,p,sb) #define gametext(x,y,t,s,dabits) gametext_z(0,STARTALPHANUM, x,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536) +#define gametextscaled(x,y,t,s,dabits) gametext_z(1,STARTALPHANUM, x,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536) #define gametextpal(x,y,t,s,p) gametext_z(0,STARTALPHANUM, x,y,t,s,p,26,0, 0, xdim-1, ydim-1, 65536) #define gametextpalbits(x,y,t,s,p,dabits) gametext_z(0,STARTALPHANUM, x,y,t,s,p,dabits,0, 0, xdim-1, ydim-1, 65536) diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index 54fb2543a..58d8e7c10 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -242,6 +242,11 @@ static inline int sbarsc(int sc) return scale(sc,ud.statusbarscale,100); } +static inline int textsc(int sc) +{ + return scale(sc,ud.textscale,100); +} + static void patchstatusbar(int x1, int y1, int x2, int y2) { int scl, tx, ty; @@ -286,6 +291,7 @@ int gametext_z(int small, int starttile, int x,int y,const char *t,int s,int p,i int squishtext = ((small&2)!=0); // int ht = usehightile; int shift = 16, widthx = 320, ox, oy; + int origy = y; if (orientation & 256) { @@ -333,7 +339,9 @@ int gametext_z(int small, int starttile, int x,int y,const char *t,int s,int p,i while (*(++t)); t = oldt; - x = (widthx>>1)-((orientation & 256)?newx<<15:newx>>1); + if (small&4) + x = (xres>>1)-textsc(newx>>1); + else x = (widthx>>1)-((orientation & 256)?newx<<15:newx>>1); } // usehightile = (ht && r_downsize < 2); ox=x; @@ -375,7 +383,15 @@ int gametext_z(int small, int starttile, int x,int y,const char *t,int s,int p,i y+=(y-oy)<<16; ox=x;oy=y; } - rotatesprite(x<= '0' && *t <= '9')) x += (8)*z/65536; @@ -384,7 +400,15 @@ int gametext_z(int small, int starttile, int x,int y,const char *t,int s,int p,i else x += (tilesizx[ac]-squishtext)*z/65536;//(tilesizx[ac]>>small); if ((orientation&256) == 0) // warpping long strings doesn't work for precise coordinates due to overflow - if (x > (ud.config.ScreenWidth - 14)) oldt = (char *)t, x = oldx, y+=8*z/65536; + { + if (small&4) + { + if (textsc(x) > (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET)) + oldt = (char *)t, x = oldx, y+=8*z/65536; + } + else if (x > (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET)) + oldt = (char *)t, x = oldx, y+=8*z/65536; + } } while (*(++t)); // usehightile = ht; @@ -415,14 +439,14 @@ int gametextlen(int x,const char *t) else x += tilesizx[ac]; } while (*(++t)); - return (x); + return (textsc(x)); } static inline int mpgametext(int y,const char *t,int s,int dabits) { - if (xdim < 640 || ydim < 480) - return(gametext_z(0,STARTALPHANUM, 5,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536)); - return(gametext_z(1,STARTALPHANUM, 5,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536)); +// if (xdim < 640 || ydim < 480) + // return(gametext_z(0,STARTALPHANUM, 5,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536)); + return(gametext_z(4,STARTALPHANUM, 5,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536)); } int minitext_(int x,int y,const char *t,int s,int p,int sb) @@ -2690,36 +2714,37 @@ static void operatefta(void) if (g_player[screenpeek].ps->fta > 1 && (g_player[screenpeek].ps->ftq < 115 || g_player[screenpeek].ps->ftq > 117)) { - if (g_player[screenpeek].ps->fta > 3) - k += 7; - else k += g_player[screenpeek].ps->fta<<1; /*if (g_player[screenpeek].ps->fta > 2) + if (g_player[screenpeek].ps->fta > 5) + k += 6; + else k += g_player[screenpeek].ps->fta; /*if (g_player[screenpeek].ps->fta > 2) k += 3; else k += 1; */ } - if (xdim >= 640 && ydim >= 480) - k = scale(k,ydim,200); +/* if (xdim >= 640 && ydim >= 480) + k = scale(k,ydim,200); */ j = k; - quotebot = min(quotebot,j); - quotebotgoal = min(quotebotgoal,j); +// quotebot = min(quotebot,j); + // quotebotgoal = min(quotebotgoal,j); // if (g_player[myconnectindex].ps->gm&MODE_TYPE) j -= 8; - quotebotgoal = j; - j = quotebot; + //quotebotgoal = j; + //j = quotebot; + j = scale(j,ydim,200); for (i=MAXUSERQUOTES-1;i>=0;i--) { if (user_quote_time[i] <= 0) continue; k = user_quote_time[i]; - if (k > 4) { mpgametext(j,user_quote[i],0,2+8+16); j += 8; } - else if (k > 2) { mpgametext(j,user_quote[i],0,2+8+16+1); j += k<<1; } - else { mpgametext(j,user_quote[i],0,2+8+16+1+32); j += k<<1; } + if (k > 4) { mpgametext(j,user_quote[i],0,2+8+16); j += textsc(8); } + else if (k > 2) { mpgametext(j,user_quote[i],0,2+8+16+1); j += textsc(k<<1); } + else { mpgametext(j,user_quote[i],0,2+8+16+1+32); j += textsc(k<<1); } l = gametextlen(USERQUOTE_LEFTOFFSET,stripcolorcodes(user_quote[i],tempbuf)); while (l > (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET)) { l -= (ud.config.ScreenWidth-USERQUOTE_RIGHTOFFSET); - if (k > 4) j += 8; - else j += k<<1; + if (k > 4) j += textsc(8); + else j += textsc(k<<1); } } @@ -2992,10 +3017,14 @@ static int strget_(int small,int x,int y,char *t,int dalen,int c) while (i > (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET)) { i -= (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET); + if (small&1) + y += textsc(6); y += 8; } - rotatesprite((x+((small&1)?4:8))<<16,((y+((small&1)?0:4))<<16),32768,0,SPINNINGNUKEICON+((totalclock>>3)%7),c,0,(small&1)?(8|16):2+8,0,0,xdim-1,ydim-1); + if (small&1) + rotatesprite(textsc(x)<<16,(y<<16),32768,0,SPINNINGNUKEICON+((totalclock>>3)%7),c,0,(small&1)?(8|16):2+8,0,0,xdim-1,ydim-1); + else rotatesprite((x+((small&1)?4:8))<<16,((y+((small&1)?0:4))<<16),32768,0,SPINNINGNUKEICON+((totalclock>>3)%7),c,0,(small&1)?(8|16):2+8,0,0,xdim-1,ydim-1); return (0); } @@ -3006,8 +3035,6 @@ inline int strget(int x,int y,char *t,int dalen,int c) inline int mpstrget(int x,int y,char *t,int dalen,int c) { - if (xdim < 640 || ydim < 480) - return(strget_(0,x,y,t,dalen,c)); return(strget_(1,x,y,t,dalen,c)); } @@ -12386,6 +12413,8 @@ static int domovethings(void) if (user_quote_time[i]) { user_quote_time[i]--; + if (user_quote_time[i] > ud.msgdisptime) + user_quote_time[i] = ud.msgdisptime; if (!user_quote_time[i]) pub = NUMPAGES; } diff --git a/polymer/eduke32/source/gamedef.c b/polymer/eduke32/source/gamedef.c index 24ed9da40..0d313bdff 100644 --- a/polymer/eduke32/source/gamedef.c +++ b/polymer/eduke32/source/gamedef.c @@ -915,6 +915,7 @@ const memberlabel_t userdefslabels[]= { "display_bonus_screen", USERDEFS_DISPLAY_BONUS_SCREEN, 0, 0 }, { "show_level_text", USERDEFS_SHOW_LEVEL_TEXT, 0, 0 }, { "weaponscale", USERDEFS_WEAPONSCALE, 0, 0 }, + { "textscale", USERDEFS_TEXTSCALE, 0, 0 }, { "", -1, 0, 0 } // END OF LIST }; diff --git a/polymer/eduke32/source/gamedef.h b/polymer/eduke32/source/gamedef.h index fb35e551a..6fcb31f38 100644 --- a/polymer/eduke32/source/gamedef.h +++ b/polymer/eduke32/source/gamedef.h @@ -370,6 +370,7 @@ enum userdefslabels USERDEFS_DISPLAY_BONUS_SCREEN, USERDEFS_SHOW_LEVEL_TEXT, USERDEFS_WEAPONSCALE, + USERDEFS_TEXTSCALE, USERDEFS_END }; diff --git a/polymer/eduke32/source/gamestructures.c b/polymer/eduke32/source/gamestructures.c index 6a324ae1f..476b1a937 100644 --- a/polymer/eduke32/source/gamestructures.c +++ b/polymer/eduke32/source/gamestructures.c @@ -895,6 +895,15 @@ void DoUserDef(int iSet, int lLabelID, int lVar2) SetGameVarID(lVar2, ud.weaponscale, g_i, g_p); return; + case USERDEFS_TEXTSCALE: + if (iSet) + { + ud.textscale = lValue; + return; + } + SetGameVarID(lVar2, ud.textscale, g_i, g_p); + return; + default: return; } diff --git a/polymer/eduke32/source/menus.c b/polymer/eduke32/source/menus.c index ec4e36116..618d53218 100644 --- a/polymer/eduke32/source/menus.c +++ b/polymer/eduke32/source/menus.c @@ -2724,7 +2724,7 @@ cheat_for_port_credits: "-", "Screen size", "Status bar size", - "Weapon size", + "Multiplayer chat text size", "Show level stats", "-", "Allow walk with autorun", @@ -2825,14 +2825,7 @@ cheat_for_port_credits: break; case 5: { - int sbs, sbsl; - sbs = sbsl = ud.weaponscale-37; - barsm(d+8,yy+7, &sbs,4,x==io,MENUHIGHLIGHT(io),0); - if (x == io && sbs != sbsl) - { - sbs += 37; - ud.weaponscale = min(100,max(10,sbs)); - } + _bar(1,d+8,yy+7, &ud.textscale,50,enabled && x==io,MENUHIGHLIGHT(io),0,100,400); } break; case 6: diff --git a/polymer/eduke32/source/osdcmds.c b/polymer/eduke32/source/osdcmds.c index 5d676041e..68dc45f77 100644 --- a/polymer/eduke32/source/osdcmds.c +++ b/polymer/eduke32/source/osdcmds.c @@ -719,6 +719,7 @@ cvarmappings cvar[] = { "crosshair", "crosshair: enable/disable crosshair", (void*)&ud.crosshair, CVAR_BOOL, 0, 0, 1 }, { "hud_althud", "hud_althud: enable/disable alternate mini-hud", (void*)&ud.althud, CVAR_BOOL, 0, 0, 1 }, + { "hud_messagetime", "hud_messagetime: length of time to display multiplayer chat messages\n", (void*)&ud.msgdisptime, CVAR_INT, 0, 0, 3600 }, { "hud_numbertile", "hud_numbertile: first tile in alt hud number set", (void*)&althud_numbertile, CVAR_INT, 0, 0, MAXTILES-10 }, { "hud_numberpal", "hud_numberpal: pal for alt hud numbers", (void*)&althud_numberpal, CVAR_INT, 0, 0, MAXPALOOKUPS }, { "hud_shadows", "hud_shadows: enable/disable althud shadows", (void*)&althud_shadows, CVAR_BOOL, 0, 0, 1 }, @@ -735,7 +736,6 @@ cvarmappings cvar[] = { "cl_democams", "cl_democams: enable/disable demo playback cameras", (void*)&ud.democams, CVAR_BOOL, 0, 0, 1 }, { "cl_idplayers", "cl_idplayers: enable/disable name display when aiming at opponents", (void*)&ud.idplayers, CVAR_BOOL, 0, 0, 1 }, - { "cl_messagetime", "cl_messagetime: length of time to display multiplayer chat messages\n", (void*)&ud.msgdisptime, CVAR_INT, 0, 0, 3600 }, { "cl_showcoords", "cl_showcoords: show your position in the game world", (void*)&ud.coords, CVAR_BOOL, 0, 0, 1 }, diff --git a/polymer/eduke32/source/sector.c b/polymer/eduke32/source/sector.c index 93032282b..409e3ee5f 100644 --- a/polymer/eduke32/source/sector.c +++ b/polymer/eduke32/source/sector.c @@ -1626,15 +1626,19 @@ void checkhitwall(int spr,int dawallnum,int x,int y,int z,int atwith) int j, i, darkestwall; walltype *wal = &wall[dawallnum]; - if (wal->overpicnum == MIRROR && checkspriteflagsp(atwith,SPRITE_FLAG_PROJECTILE) && (hittype[spr].projectile.workslike & PROJECTILE_FLAG_RPG)) + if (wal->overpicnum == MIRROR && wal->pal != 4 && checkspriteflagsp(atwith,SPRITE_FLAG_PROJECTILE) && (hittype[spr].projectile.workslike & PROJECTILE_FLAG_RPG)) { - lotsofglass(spr,dawallnum,70); - wal->cstat &= ~16; - wal->overpicnum = MIRRORBROKE; - spritesound(GLASS_HEAVYBREAK,spr); + if (wal->nextwall == -1 || wall[wal->nextwall].pal != 4) + { + lotsofglass(spr,dawallnum,70); + wal->cstat &= ~16; + wal->overpicnum = MIRRORBROKE; + spritesound(GLASS_HEAVYBREAK,spr); + return; + } } - if (wal->overpicnum == MIRROR) + if (wal->overpicnum == MIRROR && wal->pal != 4) { switch (dynamictostatic[atwith]) { @@ -1645,11 +1649,14 @@ void checkhitwall(int spr,int dawallnum,int x,int y,int z,int atwith) case SEENINE__STATIC: case OOZFILTER__STATIC: case EXPLODINGBARREL__STATIC: - lotsofglass(spr,dawallnum,70); - wal->cstat &= ~16; - wal->overpicnum = MIRRORBROKE; - spritesound(GLASS_HEAVYBREAK,spr); - return; + if (wal->nextwall == -1 || wall[wal->nextwall].pal != 4) + { + lotsofglass(spr,dawallnum,70); + wal->cstat &= ~16; + wal->overpicnum = MIRRORBROKE; + spritesound(GLASS_HEAVYBREAK,spr); + return; + } } }