Various UI changes:

* Add optional numeric values to healthbars, like in the standalone mod.
 * Remove minimap themes, keep only the Demolitionist color set.
 * Draw keys in the minimap using their respective colors.
 * Don't send AutoAutosave tokens to the minimap.
 * Tweak the minimap color of shootable actors so they look less like usable lines.
 * Use smaller font for cumulative damage on boss healthbars.
This commit is contained in:
Marisa the Magician 2023-08-17 20:13:16 +02:00
parent 6c9506a644
commit 964dcf84f9
14 changed files with 69 additions and 193 deletions

View File

@ -80,7 +80,11 @@ Re-animation of old FK models. Plus extra score incentives and achievements.
- [ ] Burnination *(Kill 100 enemies with a single Hellblazer drum)* *[replaces I Am Become Death]*
- [ ] Engineer's Best Friend *(Score 1000 kills using sentries)*
* [ ] **Additional Collectibles:**
- [ ] Blåhaj
- [ ] Blåhaj *("Dr. Shorky")*
* [ ] **Combo Collectible Animations:**
- [ ] Saya + Demo
- [ ] Saya + Kirin
- [ ] Demo + Kirin
* [ ] **Additional Models:**
- [ ] Gibs
- [ ] Hexen keys

View File

@ -81,12 +81,12 @@ nosave bool swwm_oldcheats = false; // has received the "old cheats" dialogue f
nosave bool swwm_ccmessage = false; // has received the "corruption cards" dialogue from Cytho
nosave bool swwm_useweaponbar = false; // scroll through weapons using a bar, like with inventory items
nosave bool swwm_percentstats = false; // show level stats as percentages, like in intermissions
nosave bool swwm_targetvals = false; // show current/max health values above heathbars
// minimap settings
nosave bool swwm_mm_enable = true; // show a minimap below the score counter
nosave noarchive float swwm_mm_zoom = 1; // zoom level of minimap
nosave bool swwm_mm_missiles = true; // show projectiles (how revolutionary)
nosave int swwm_mm_colorset = 0; // 0: Demolitionist, 1: GZDoom, 2: Doom, 3: Strife, 4: Raven
nosave bool swwm_mm_usecanvas = false; // use a canvas to draw the minimap, so its pixel density is consistent with the rest of the HUD
server noarchive bool swwm_iseriouslywanttoplaythiswithbd = false; // self-explanatory

View File

@ -185,14 +185,9 @@ SWWM_LOBDOUBLED = "LOB Double Death";
SWWM_BARDIST = "Healthbar Distance";
SWWM_USEWEAPONBAR = "Alternate Weapon Selection";
SWWM_PERCENTSTATS = "Percentual Stats";
SWWM_TARGETVAL = "Show Health Values";
SWWM_MM_ENABLE = "Show Minimap";
SWWM_MM_MISSILES = "Projectiles In Minimap";
SWWM_MM_COLORSET = "Minimap Color Set";
SWWM_OWNCOLORS = "Our Colors";
SWWM_GZDOOMCOLORS = "GZDoom Custom";
SWWM_DOOMCOLORS = "Vanilla Doom";
SWWM_STRIFECOLORS = "Vanilla Strife";
SWWM_RAVENCOLORS = "Vanilla Raven";
SWWM_MM_USECANVAS = "Fixed Scale Minimap";
SWWM_AC_UNLOCKED = "Unlocked: ";
SWWM_AC_INCOMPLETE = "Incomplete: ";
@ -278,10 +273,10 @@ TOOLTIP_SWWM_LOBDOUBLED = "[Legion of Bones] Enables \"Double Death\", which mak
TOOLTIP_SWWM_BARDIST = "Distance in map units at which healthbar visibility will begin to fade. Does not affect the healthbars of other players.";
TOOLTIP_SWWM_USEWEAPONBAR = "Enables an alternate method for scrolling through weapons akin to the inventory bar. Use Primary Fire to accept, and Alternate Fire to cancel.";
TOOLTIP_SWWM_PERCENTSTATS = "Shows kills/items/secrets in the HUD as percentages, rather than counters.";
TOOLTIP_SWWM_TARGETVALS = "Healthbars will show the current and maximum health values of the target.";
TOOLTIP_SWWMACHIEVEMENTMENU = "View your achievements.";
TOOLTIP_SWWM_MM_ENABLE = "Displays a minimap on the top right corner of the screen.";
TOOLTIP_SWWM_MM_MISSILES = "Displays projectiles in the minimap. Can be toggled if this clutters too much.";
TOOLTIP_SWWM_MM_COLORSET = "Choose what palette to use for the minimap.";
TOOLTIP_SWWM_MM_USECANVAS = "Rather than being drawn directly on-screen, the minimap will be drawn to a texture, maintaining the same pixel density as the rest of the HUD. Due to engine quirks, this causes the map to have a one-frame delay.";
TOOLTIP_SWWMDEBUGMENU = "Don't touch this unless you know what you're doing.";
TOOLTIP_SWWM_DEBUGBLAST = "Shows radii of DoExplosion calls. Damaging explosions are green, with yellow for the hotspot. Non-damaging explosions are blue, with magenta for the hotspot.";

View File

@ -182,14 +182,9 @@ SWWM_LOBDOUBLED = "LOB Doble Muerte";
SWWM_BARDIST = "Distancia de Barras de Salud";
SWWM_USEWEAPONBAR = "Selección Alternativa de Armas";
SWWM_PERCENTSTATS = "Estadísticas Percentuales";
SWWM_TARGETVAL = "Mostrar Valores de Salud";
SWWM_MM_ENABLE = "Mostrar Minimapa";
SWWM_MM_MISSILES = "Proyectiles en Minimapa";
SWWM_MM_COLORSET = "Set de Colores de Minimapa";
SWWM_OWNCOLORS = "Colores Propios";
SWWM_GZDOOMCOLORS = "Personalizado de GZDoom";
SWWM_DOOMCOLORS = "Doom Vanilla";
SWWM_STRIFECOLORS = "Strife Vanilla";
SWWM_RAVENCOLORS = "Raven Vanilla";
SWWM_MM_USECANVAS = "Minimapa a Escala Fija";
SWWM_AC_UNLOCKED = "Desbloqueados: ";
SWWM_AC_INCOMPLETE = "Incompletos: ";
@ -276,10 +271,10 @@ TOOLTIP_SWWM_LOBDOUBLED = "[Legion of Bones] Habilita \"Doble Muerte\", lo cual
TOOLTIP_SWWM_BARDIST = "Distancia en unidades de mapa a la cual la visibilidad de las barras de salud irá desvaneciendo. No afecta a las barras de salud de otros jugadores.";
TOOLTIP_SWWM_USEWEAPONBAR = "Habilita un método alternativo para hacer scroll por las armas similar a la barra de inventario. Usa el Fuego Primario para aceptar, y el Fuego Secundario para cancelar.";
TOOLTIP_SWWM_PERCENTSTATS = "Muestra las estadísticas de bajas/ítems/secretos en el HUD como porcentajes, en lugar de contadores.";
TOOLTIP_SWWM_TARGETVALS = "Las barras de salud mostrarán los valores de salud actual y máximo del objetivo.";
TOOLTIP_SWWMACHIEVEMENTMENU = "Revisa tus logros.";
TOOLTIP_SWWM_MM_ENABLE = "Muestra un minimapa en la esquina superior derecha de la pantalla.";
TOOLTIP_SWWM_MM_MISSILES = "Muestra proyectiles en el minimapa. Puede ser desactivado si causa problemas de visibilidad.";
TOOLTIP_SWWM_MM_COLORSET = "Selecciona que paleta usar para el minimapa.";
TOOLTIP_SWWM_MM_USECANVAS = "En vez de dibujarse directamente a la pantalla, el mapa se dibujará en una texture, mantentiendo la misma densidad de píxel que el resto del HUD. Debido a peculiaridades del motor, esto causa que el mapa tenga un frame de retardo.";
TOOLTIP_SWWMDEBUGMENU = "No toques esto a menos que sepas lo que estás haciendo.";
TOOLTIP_SWWM_DEBUGBLAST = "Muestra el radio de funciones DoExplosion. Las explosiones con daño son verdes, con amarillo para su punto caliente. Las explosiones sin daño son azules, con magenta para su punto caliente.";

View File

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r929 \cu(Sun 30 Jul 17:27:20 CEST 2023)\c-";
SWWM_SHORTVER="\cw1.3pre r929 \cu(2023-07-30 17:27:20)\c-";
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r930 \cu(Thu 17 Aug 20:13:16 CEST 2023)\c-";
SWWM_SHORTVER="\cw1.3pre r930 \cu(2023-08-17 20:13:17)\c-";

View File

@ -74,14 +74,6 @@ OptionValue "SWWMInterArt"
2, "$SWWM_NORENDER"
3, "$SWWM_NOFANART"
}
OptionValue "SWWMMinimapColorset"
{
0, "$SWWM_OWNCOLORS"
1, "$SWWM_GZDOOMCOLORS"
2, "$SWWM_DOOMCOLORS"
3, "$SWWM_STRIFECOLORS"
4, "$SWWM_RAVENCOLORS"
}
OptionValue "SWWMTagColor"
{
0, "$SWWM_COL_0"
@ -153,10 +145,10 @@ OptionMenu "SWWMOptionMenu"
Option "$SWWM_HUDALLAMMO", "swwm_hudallammo", "YesNo"
Option "$SWWM_MM_ENABLE", "swwm_mm_enable", "YesNo"
Option "$SWWM_MM_MISSILES", "swwm_mm_missiles", "YesNo"
Option "$SWWM_MM_COLORSET", "swwm_mm_colorset", "SWWMMinimapColorset"
Option "$SWWM_MM_USECANVAS", "swwm_mm_usecanvas", "YesNo"
Option "$SWWM_TARGET", "swwm_targeter", "SWWMTarget"
ScaleSliderFix "$SWWM_BARDIST", "swwm_bardist", 0, 4000, 100, "$SWWM_UNLIMITED"
Option "$SWWM_TARGETVAL", "swwm_targetvals", "YesNo"
Option "$SWWM_TARGETTAG", "swwm_targettags", "YesNo"
Option "$SWWM_BIGTAGS", "swwm_bigtags", "YesNo"
Option "$SWWM_DAMNUMS", "swwm_damnums", "YesNo"

View File

@ -100,8 +100,6 @@ demolitionist/buttslam2 = "sounds/demolitionist/demobutt2.ogg"
demolitionist/buttslam3 = "sounds/demolitionist/demobutt3.ogg"
$random demolitionist/buttslam { demolitionist/buttslam1 demolitionist/buttslam2 demolitionist/buttslam3 }
demolitionist/buttslamx = "sounds/demolitionist/demoxbutt.ogg"
demolitionist/smooch = "sounds/demolitionist/demokiss.ogg"
demolitionist/blowkiss = "sounds/demolitionist/demoblow.ogg"
demolitionist/petting = "sounds/demolitionist/demopat.ogg"
demolitionist/knockout = "sounds/demolitionist/demoknockout.ogg"
demolitionist/dashregen = "sounds/demolitionist/demodashregen.ogg"

View File

@ -6,10 +6,11 @@
# voice/<name>/<group><#> for the sndinfo entries
# SWWM_SUBS_<NAME>_<GROUP><#>, plus a SWWM_SUBS_<NAME>_N<GROUP> counter,
# for the language strings
# with the exception of pain/death/grunt sounds and the like (which should
# additionally have a $random entry in sndinfo), all lines you may want to
# register require a subtitle language string so they can be properly detected,
# but you can set them to an empty string if you don't want text to display.
# all lines you may want to register require a subtitle language string so they
# can be properly detected, but you can set them to an empty string if you
# don't want text to display.
# voices for various grunts, pain and death screams use a different system,
# you can consult the source files for the default voice for reference.
# also don't forget to add a SWWM_VOICENAME_* language string for each voice
# type so they have a "human-readable" name in the options menu
# type so they have a "human-readable" name in the options menu.
default

View File

@ -96,7 +96,7 @@ extend Class SWWMHandler
ui int thealth, hmax;
ui int oldhealth[30];
ui int cummdamage, lastcummtic; // please do not misread
ui Font mSmallFont;
ui Font mSmallFont, mTinyFont;
enum EVanillaMap
{
@ -560,6 +560,7 @@ extend Class SWWMHandler
{
if ( !ui_initialized || (bossalpha <= 0.) ) return;
if ( !mSmallFont ) mSmallFont = Font.GetFont('TewiFontOutline');
if ( !mTinyFont ) mTinyFont = Font.GetFont('MiniwiFontOutline');
if ( !bbar_f ) bbar_f = TexMan.CheckForTexture("graphics/HUD/BossHealthBarBox.png");
if ( !bbar_r ) bbar_r = TexMan.CheckForTexture("graphics/HUD/BossHealthBar.png");
if ( !bbar_d ) bbar_d = TexMan.CheckForTexture("graphics/HUD/BossHealthBarDecay.png");
@ -576,7 +577,7 @@ extend Class SWWMHandler
{
double calph = clamp(((lastcummtic+150)-gametic)/50.,0.,1.);
string dnum = String.Format("%d",cummdamage);
Screen.DrawText(mSmallFont,Font.CR_RED,vpos.x+300-mSmallFont.StringWidth(dnum),vpos.y-(mSmallFont.GetHeight()+2),dnum,DTA_VirtualWidthF,bar.ss.x,DTA_VirtualHeightF,bar.ss.y,DTA_KeepRatio,true,DTA_Alpha,bossalpha*calph);
Screen.DrawText(mTinyFont,Font.CR_RED,vpos.x+300-mTinyFont.StringWidth(dnum),vpos.y-(mTinyFont.GetHeight()+2),dnum,DTA_VirtualWidthF,bar.ss.x,DTA_VirtualHeightF,bar.ss.y,DTA_KeepRatio,true,DTA_Alpha,bossalpha*calph);
}
String bname = bosstag;
if ( (bname.Left(1) == "$") && swwm_funtags )

View File

@ -308,7 +308,7 @@ extend Class SWWMHandler
continue;
if ( a.bKILLED || (a.Health <= 0) || a.bUnmorphed )
continue;
if ( (a is 'Inventory') && (!a.bSPECIAL || Inventory(a).Owner) )
if ( (a is 'Inventory') && (!a.bSPECIAL || Inventory(a).Owner || (a.GetClassName() == 'aas_token')) ) // autoautosave hotfix
continue;
if ( (a is 'Chancebox') && (a.CurState != a.SpawnState) )
continue;

View File

@ -151,9 +151,7 @@ Class SWWMStatusBar : BaseStatusBar
const HALFMAPSIZE = 40; // half the size of the minimap draw region (unscaled)
// minimap colors (thats a lot of 'em)
int mm_colorset;
Color mm_backcolor, mm_cdwallcolor, mm_efwallcolor, mm_fdwallcolor, mm_interlevelcolor, mm_intralevelcolor, mm_lockedcolor, mm_notseencolor, mm_portalcolor, mm_secretsectorcolor, mm_secretwallcolor, mm_specialwallcolor, mm_thingcolor, mm_thingcolor_citem, mm_thingcolor_friend, mm_thingcolor_item, mm_thingcolor_monster, mm_thingcolor_ncmonster, mm_thingcolor_shootable, mm_thingcolor_vipitem, mm_thingcolor_missile, mm_tswallcolor, mm_unexploredsecretcolor, mm_wallcolor, mm_yourcolor;
bool mm_displaylocks;
transient bool mm_cvfirstdraw;
transient Canvas mm_canvas;
transient TextureID mm_canvastex;

View File

@ -132,6 +132,7 @@ extend Class SWWMStatusBar
SWWMQuickCombatTracker ct;
bool onlymonsters = (swwm_targeter >= 2);
bool onlyfriends = (swwm_targeter >= 3);
bool drawvalues = swwm_targetvals;
int fadedist = swwm_bardist;
while ( ct = SWWMQuickCombatTracker(cti.Next()) )
{
@ -177,6 +178,16 @@ extend Class SWWMStatusBar
alph *= df;
}
Vector2 barpos = vpos-(27,7);
if ( drawvalues )
{
String val = String.Format("%d %d",ct.maxhealth,ct.maxhealth);
int valw = MiniHUDFontOutline.StringWidth(val);
val = String.Format("%d \c[MiniWhite]%d",ct.lasthealth,ct.maxhealth);
int ofsw = valw-MiniHUDFontOutline.StringWidth(val);
int col = (ct.lasthealth>ct.maxhealth)?mhudfontcol[MCR_BRASS]:(ct.lasthealth>=(ct.maxhealth/2))?mhudfontcol[MCR_WHITE]:(ct.lasthealth>=(ct.maxhealth/10))?mhudfontcol[MCR_RED]:mhudfontcol[MCR_SAYAHUD];
Screen.DrawText(MiniHUDFontOutline,col,vpos.x-int((valw/2)-ofsw),barpos.y-(MiniHUDFontOutline.GetHeight()+2),val,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
Screen.DrawChar(MiniHUDFontOutline,mhudfontcol[MCR_IBUKIHUD],vpos.x-3,barpos.y-(MiniHUDFontOutline.GetHeight()+2),0x2F,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
}
if ( swwm_targettags && (ct.mytag != "") )
{
Font fnt = swwm_bigtags?mSmallFontOutline:mTinyFontOutline;
@ -193,7 +204,8 @@ extend Class SWWMStatusBar
}
// voodoo dolls aren't friends
if ( ct.Owner.IsFriend(CPlayer.mo) && !ct.Owner.player ) tag = "\cg♥\c- "..tag.." \cg♥\c-";
Screen.DrawText(fnt,Font.CR_WHITE,vpos.x-fnt.StringWidth(tag)/2,barpos.y-(fnt.GetHeight()+2),tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
int ofsh = drawvalues?(MiniHUDFontOutline.GetHeight()+4):2;
Screen.DrawText(fnt,Font.CR_WHITE,vpos.x-fnt.StringWidth(tag)/2,barpos.y-(fnt.GetHeight()+ofsh),tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
}
Screen.DrawTexture(EnemyBTex,false,barpos.x,barpos.y,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph);
double ht = clamp(ct.intp.GetValue(fractic),0,ct.maxhealth);

View File

@ -163,155 +163,31 @@ extend Class SWWMStatusBar
// minimap helper code
private void GetMinimapColors()
{
mm_colorset = swwm_mm_colorset;
switch ( mm_colorset )
{
case 1:
// gzdoom
mm_backcolor = am_backcolor;
mm_cdwallcolor = am_cdwallcolor;
mm_efwallcolor = am_efwallcolor;
mm_fdwallcolor = am_fdwallcolor;
mm_interlevelcolor = am_interlevelcolor;
mm_intralevelcolor = am_intralevelcolor;
mm_lockedcolor = am_lockedcolor;
mm_notseencolor = am_notseencolor;
mm_portalcolor = am_portalcolor;
mm_secretsectorcolor = am_secretsectorcolor;
mm_secretwallcolor = am_secretwallcolor;
mm_specialwallcolor = am_specialwallcolor;
mm_thingcolor = am_thingcolor;
mm_thingcolor_citem = am_thingcolor_citem;
mm_thingcolor_friend = am_thingcolor_friend;
mm_thingcolor_item = am_thingcolor_item;
mm_thingcolor_monster = am_thingcolor_monster;
mm_thingcolor_ncmonster = am_thingcolor_ncmonster;
mm_thingcolor_shootable = am_thingcolor;
mm_thingcolor_vipitem = am_unexploredsecretcolor;
mm_thingcolor_missile = am_specialwallcolor;
mm_tswallcolor = am_tswallcolor;
mm_unexploredsecretcolor = am_unexploredsecretcolor;
mm_wallcolor = am_wallcolor;
mm_yourcolor = am_yourcolor;
mm_displaylocks = true;
break;
case 2:
// doom
mm_backcolor = "00 00 00";
mm_cdwallcolor = "fc fc 00";
mm_efwallcolor = "bc 78 48";
mm_fdwallcolor = "bc 78 48";
mm_interlevelcolor = 0;
mm_intralevelcolor = 0;
mm_lockedcolor = "fc fc 00";
mm_notseencolor = "6c 6c 6c";
mm_portalcolor = "40 40 40";
mm_secretsectorcolor = 0;
mm_secretwallcolor = 0;
mm_specialwallcolor = 0;
mm_thingcolor = "74 fc 6c";
mm_thingcolor_citem = "74 fc 6c";
mm_thingcolor_friend = "74 fc 6c";
mm_thingcolor_item = "74 fc 6c";
mm_thingcolor_monster = "74 fc 6c";
mm_thingcolor_ncmonster = "74 fc 6c";
mm_thingcolor_shootable = "74 fc 6c";
mm_thingcolor_vipitem = "74 fc 6c";
mm_thingcolor_missile = "74 fc 6c";
mm_tswallcolor = "80 80 80";
mm_unexploredsecretcolor = 0;
mm_wallcolor = "fc 00 00";
mm_yourcolor = "ff ff ff";
mm_displaylocks = false;
break;
case 3:
// strife
mm_backcolor = "00 00 00";
mm_cdwallcolor = "77 73 73";
mm_efwallcolor = "37 3b 5b";
mm_fdwallcolor = "37 3b 5b";
mm_interlevelcolor = 0;
mm_intralevelcolor = 0;
mm_lockedcolor = "77 73 73";
mm_notseencolor = "6c 6c 6c";
mm_portalcolor = "40 40 40";
mm_secretsectorcolor = 0;
mm_secretwallcolor = 0;
mm_specialwallcolor = 0;
mm_thingcolor = "bb 3b 00";
mm_thingcolor_citem = "db ab 00";
mm_thingcolor_friend = "fc 00 00";
mm_thingcolor_item = "db ab 00";
mm_thingcolor_monster = "fc 00 00";
mm_thingcolor_ncmonster = "fc 00 00";
mm_thingcolor_shootable = "bb 3b 00";
mm_thingcolor_vipitem = "db ab 00";
mm_thingcolor_missile = "bb 3b 00";
mm_tswallcolor = "77 73 73";
mm_unexploredsecretcolor = 0;
mm_wallcolor = "c7 ce ce";
mm_yourcolor = "ef ef ef";
mm_displaylocks = false;
break;
case 4:
// raven
mm_backcolor = "6c 54 40";
mm_cdwallcolor = "67 3b 1f";
mm_efwallcolor = "d0 b0 85";
mm_fdwallcolor = "d0 b0 85";
mm_interlevelcolor = 0;
mm_intralevelcolor = 0;
mm_lockedcolor = "67 3b 1f";
mm_notseencolor = "00 00 00";
mm_portalcolor = "50 50 50";
mm_secretsectorcolor = 0;
mm_secretwallcolor = 0;
mm_specialwallcolor = 0;
mm_thingcolor = "ec ec ec";
mm_thingcolor_citem = "ec ec ec";
mm_thingcolor_friend = "ec ec ec";
mm_thingcolor_item = "ec ec ec";
mm_thingcolor_monster = "ec ec ec";
mm_thingcolor_ncmonster = "ec ec ec";
mm_thingcolor_shootable = "ec ec ec";
mm_thingcolor_vipitem = "ec ec ec";
mm_thingcolor_missile = "ec ec ec";
mm_tswallcolor = "58 5d 56";
mm_unexploredsecretcolor = 0;
mm_wallcolor = "4b 32 10";
mm_yourcolor = "ff ff ff";
mm_displaylocks = true;
break;
default:
// swwm
mm_backcolor = "10 10 10";
mm_cdwallcolor = "30 50 70";
mm_efwallcolor = "80 a0 c0";
mm_fdwallcolor = "50 70 90";
mm_interlevelcolor = "ff 00 60";
mm_intralevelcolor = "00 60 ff";
mm_lockedcolor = "00 90 80";
mm_notseencolor = "20 20 30";
mm_portalcolor = "40 30 20";
mm_secretsectorcolor = "80 00 ff";
mm_secretwallcolor = "60 40 80";
mm_specialwallcolor = "ff a0 00";
mm_thingcolor = "ff ff ff";
mm_thingcolor_citem = "00 ff ff";
mm_thingcolor_friend = "80 ff a0";
mm_thingcolor_item = "ff c0 00";
mm_thingcolor_monster = "ff 60 40";
mm_thingcolor_ncmonster = "a0 40 20";
mm_thingcolor_shootable = "ff a0 a0";
mm_thingcolor_vipitem = "80 60 ff";
mm_thingcolor_missile = "ff a0 20";
mm_tswallcolor = "30 20 40";
mm_unexploredsecretcolor = "40 00 80";
mm_wallcolor = "c0 e0 ff";
mm_yourcolor = "80 ff 00";
mm_displaylocks = true;
break;
}
mm_backcolor = "10 10 10";
mm_cdwallcolor = "30 50 70";
mm_efwallcolor = "80 a0 c0";
mm_fdwallcolor = "50 70 90";
mm_interlevelcolor = "ff 00 60";
mm_intralevelcolor = "00 60 ff";
mm_lockedcolor = "00 90 80";
mm_notseencolor = "20 20 30";
mm_portalcolor = "40 30 20";
mm_secretsectorcolor = "80 00 ff";
mm_secretwallcolor = "60 40 80";
mm_specialwallcolor = "ff a0 00";
mm_thingcolor = "ff ff ff";
mm_thingcolor_citem = "00 ff ff";
mm_thingcolor_friend = "80 ff a0";
mm_thingcolor_item = "ff c0 00";
mm_thingcolor_monster = "ff 60 40";
mm_thingcolor_ncmonster = "c0 40 20";
mm_thingcolor_shootable = "a0 30 10";
mm_thingcolor_vipitem = "80 60 ff";
mm_thingcolor_missile = "ff c0 40";
mm_tswallcolor = "30 20 40";
mm_unexploredsecretcolor = "40 00 80";
mm_wallcolor = "c0 e0 ff";
mm_yourcolor = "80 ff 00";
}
private bool ShouldDisplaySpecial( int special )
{
@ -540,8 +416,7 @@ extend Class SWWMStatusBar
|| (l.special == Teleport_ZombieChanger)
|| (l.special == Teleport_Line)) )
col = mm_intralevelcolor;
else if ( mm_displaylocks
&& (lock > 0) && (lock < 256) )
else if ( (lock > 0) && (lock < 256) )
{
let lcol = Key.GetMapColorForLock(lock);
if ( !lcol )
@ -692,7 +567,7 @@ extend Class SWWMStatusBar
for ( SWWMSimpleTracker t=hnd.strackers; t; t=t.next )
{
if ( !drawmissiles && t.ismissile ) continue;
if ( level.allmap && (t.target is 'Key') ) continue; // don't draw keys over the actual markers they have
if ( level.allmap && t.iskey ) continue; // don't draw keys over the actual markers they have
Color col = mm_thingcolor;
bool isitem = false;
bool plainactor = false;
@ -713,7 +588,8 @@ extend Class SWWMStatusBar
}
if ( t.isitem )
{
if ( t.vipitem ) col = mm_thingcolor_vipitem;
if ( t.iskey ) col = t.keycolor;
else if ( t.vipitem ) col = mm_thingcolor_vipitem;
else if ( t.countitem ) col = mm_thingcolor_citem;
else col = mm_thingcolor_item;
isitem = true;

View File

@ -265,7 +265,9 @@ Class SWWMSimpleTracker play
bool expired;
bool ismissile;
bool isbeam, isybeam;
bool iskey;
int lastupdate;
Color keycolor;
ui double smoothalpha; // smoothened alpha, for ui
SWWMSimpleTracker next;
@ -288,6 +290,8 @@ Class SWWMSimpleTracker play
countitem = SWWMUtility.IsScoreItem(target);
vipitem = SWWMUtility.IsVipItem(target);
lastupdate = level.maptime;
iskey = (target is 'Key');
if ( iskey ) keycolor = Key.GetMapColorForKey(Key(target));
if ( isitem )
{
if ( !target.bSPECIAL || Inventory(target).Owner )