diff --git a/cvarinfo.txt b/cvarinfo.txt index 4b946b1b3..70112f67e 100644 --- a/cvarinfo.txt +++ b/cvarinfo.txt @@ -29,6 +29,7 @@ user bool swwm_targettags = false; // show enemy tags above healthbars user bool swwm_healthnums = true; // show damage/healing numbers user bool swwm_scorenums = true; // show score numbers user bool swwm_scorebonus = true; // show score bonuses +user bool swwm_pois = true; // show points of interest highlighted by omnisight user bool swwm_fly6dof = false; // flying uses 6dof movement, toggleable for those who get motion sickness user bool swwm_othervoice = true; // can hear other player's voice lines in coop user bool swwm_shaders = true; // use pp shaders for some effects @@ -50,6 +51,7 @@ user int swwm_hudscale = 0; // HUD scaling (0 = use GZDoom scaling) user int swwm_barscale = 0; // target healthbar scaling (0 = use GZDoom scaling) user int swwm_scrscale = 0; // score scaling (0 = use GZDoom scaling) user int swwm_numscale = 0; // damnum scaling (0 = use GZDoom scaling) +user int swwm_poiscale = 0; // point of interest scaling (0 = use GZDoom scaling) server bool swwm_blood = false; // custom blood/gibbing user bool swwm_fuzz = true; // allows toggling the fuzz shader on the demolitionist menus, useful if you're streaming/recording since it destroys the encoding quality user bool swwm_cbtpause = true; // wallbuster menu pauses the game diff --git a/language.def_menu b/language.def_menu index dc9f0ad8e..a16c1d90c 100644 --- a/language.def_menu +++ b/language.def_menu @@ -71,6 +71,7 @@ SWWM_TARGETTAG = "Show Monster Names"; SWWM_DAMNUMS = "Show Damage/Heal Numbers"; SWWM_SCORENUMS = "Show Score Numbers"; SWWM_SCOREBONUS = "Show Score Bonuses"; +SWWM_POIS = "Show Points of Interest"; SWWM_EARBUSTER = "Reduce Wallbuster Loudness"; SWWM_SHADERS = "Use Screen Shaders"; SWWM_OTHERVOICE = "Co-op Voice"; @@ -94,6 +95,7 @@ SWWM_HUDSCALE = "HUD Scaling"; SWWM_BARSCALE = "Healthbar Scaling"; SWWM_NUMSCALE = "Number Scaling"; SWWM_SCRSCALE = "Score Scaling"; +SWWM_POISCALE = "POI Scaling"; SWWM_GZSCALE = "Use GZDoom Setting"; SWWM_BLOOD = "Enable Custom Blood"; SWWM_FUZZ = "Enable Animated Menu BG"; @@ -125,6 +127,7 @@ TOOLTIP_SWWM_TARGETTAGS = "Show enemy names above their healthbars."; TOOLTIP_SWWM_HEALTHNUMS = "Show damage/healing numbers. Disable if you'd prefer to use another mod for this, such as DamNums."; TOOLTIP_SWWM_SCORENUMS = "Show score numbers."; TOOLTIP_SWWM_SCOREBONUS = "Show additional bonus strings above score numbers (e.g.: multikill counters)."; +TOOLTIP_SWWM_POIS = "Show points of interest (such as key items and exits) when you have Omnisight."; TOOLTIP_SWWM_EARBUSTER = "The Wallbuster's firing sounds may be painfully loud at times. This setting will limit the loudness to something more bearable."; TOOLTIP_SWWM_SHADERS = "Use postprocess shaders for things like powerups and the Silver Bullet scope. You can disable this if you'd prefer something lighter on the eyes."; TOOLTIP_SWWM_OTHERVOICE = "Allows you to hear other player's voice lines, provided you're close enough."; @@ -143,6 +146,7 @@ TOOLTIP_SWWM_HUDSCALE = "Scaling factor of the HUD. Set to 0 to use GZDoom's own TOOLTIP_SWWM_BARSCALE = "Scaling factor for targetter healthbars. Set to 0 to use GZDoom's own HUD scaling."; TOOLTIP_SWWM_NUMSCALE = "Scaling factor for damage/healing numbers. Set to 0 to use GZDoom's own HUD scaling."; TOOLTIP_SWWM_SCRSCALE = "Scaling factor for score numbers. Set to 0 to use GZDoom's own HUD scaling."; +TOOLTIP_SWWM_POISCALE = "Scaling factor for points of interest. Set to 0 to use GZDoom's own HUD scaling."; TOOLTIP_SWWM_BLOOD = "Please note that these effects are kinda cheap and performance heavy. I'd honestly recommend Nashgore instead, it's better."; TOOLTIP_SWWM_FUZZ = "Toggling this off is recommended if you're recording/streaming as this effect can harm video quality."; TOOLTIP_SWWM_CBTPAUSE = "The game will pause while the Wallbuster reload menu is open (only in singleplayer)."; diff --git a/language.es_menu b/language.es_menu index 7b547e235..c13a7aa85 100644 --- a/language.es_menu +++ b/language.es_menu @@ -71,6 +71,7 @@ SWWM_TARGETTAG = "Mostrar Nombres de Enemigos"; SWWM_DAMNUMS = "Mostrar Números de Daño/Cura"; SWWM_SCORENUMS = "Mostrar Números de Puntuación"; SWWM_SCOREBONUS = "Mostrar Bonificaciones de Puntuación"; +SWWM_POIS = "Mostrar Puntos de Interés"; SWWM_EARBUSTER = "Reducir Estruendo del Wallbuster"; SWWM_SHADERS = "Usar Shaders de Pantalla"; SWWM_OTHERVOICE = "Voz en Cooperativo"; @@ -91,6 +92,7 @@ SWWM_HUDSCALE = "Escala de HUD"; SWWM_BARSCALE = "Escala de Barras de Salud"; SWWM_NUMSCALE = "Escala de Números"; SWWM_SCRSCALE = "Escala de Puntuaciones"; +SWWM_POISCALE = "Escala de Puntos de Interés"; SWWM_GZSCALE = "Usar Opción de GZDoom"; SWWM_BLOOD = "Habilitar Sangre Personalizada"; SWWM_FUZZ = "Habilitar Fondo Animado de Menú"; @@ -122,6 +124,7 @@ TOOLTIP_SWWM_TARGETTAGS = "Muestra nombres encima de las barras de vida."; TOOLTIP_SWWM_HEALTHNUMS = "Muestra números de daño/curación. Desactiva la opción si prefieres usar otro mod para esto, por ejemplo DamNums."; TOOLTIP_SWWM_SCORENUMS = "Muestra números de puntuación con cada baja."; TOOLTIP_SWWM_SCOREBONUS = "Muestra textos de bonificación extra sobre los puntos (ej.: contadores de multikill)."; +TOOLTIP_SWWM_POIS = "Muestra puntos de interés (tales como llaves y salidas) cuando tienes Omnivisión."; TOOLTIP_SWWM_EARBUSTER = "Los sonidos de disparo del Wallbuster pueden a veces ser dolorosamente estridentes. Esta opción limitará la intensidad a un valor más soportable."; TOOLTIP_SWWM_SHADERS = "Usa shaders de postprocesado para cosas como powerups y la mira del Silver Bullet. Puedes desactivar esto si prefieres algo más ligero para la vista."; TOOLTIP_SWWM_OTHERVOICE = "Te permite oír los comentarios de voz de otros jugadores, si estás lo suficientemente cerca."; @@ -140,6 +143,7 @@ TOOLTIP_SWWM_HUDSCALE = "Factor de escalado del HUD. Pon a 0 para usar el escala TOOLTIP_SWWM_BARSCALE = "Factor de escalado para las barras de salud. Pon a 0 para usar el escalado de HUD de GZDoom."; TOOLTIP_SWWM_NUMSCALE = "Factor de escalado para los números de daño/salud. Pon a 0 para usar el escalado de HUD de GZDoom."; TOOLTIP_SWWM_SCRSCALE = "Factor de escalado para los números de puntuación. Pon a 0 para usar el escalado de HUD de GZDoom."; +TOOLTIP_SWWM_POISCALE = "Factor de escalado para los puntos de interés. Pon a 0 para usar el escalado de HUD de GZDoom."; TOOLTIP_SWWM_BLOOD = "Ten en cuenta que estos efectos son un poco cutres y bajan los frames. Sinceramente, recomendaría usar Nashgore, es mejor."; TOOLTIP_SWWM_FUZZ = "Desactivar ésto es recomendado si estás grabando o haciendo streaming, ya que este effecto puede dañar la calidad del vídeo."; TOOLTIP_SWWM_CBTPAUSE = "El juego será pausado mientras el menú de recarga de Wallbuster está abierto (sólo en modo de un jugador)."; diff --git a/language.version b/language.version index 408963e46..26c4a3141 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \cwGZ\c- r391 (Wed 24 Jun 12:26:03 CEST 2020)"; +SWWM_MODVER="\chSWWM \cwGZ\c- r392 (Wed 24 Jun 12:36:14 CEST 2020)"; diff --git a/zscript/swwm_common.zsc b/zscript/swwm_common.zsc index 3a2ca2971..d41da0685 100644 --- a/zscript/swwm_common.zsc +++ b/zscript/swwm_common.zsc @@ -2106,7 +2106,7 @@ Class ForcedFallerDamager : Thinker Destroy(); return; } - bool isflying = ((mybody.pos.z>mybody.floorz)&&mybody.TestMobjZ()); + bool isflying = ((mybody.pos.z>mybody.floorz)&&mybody.TestMobjZ())||mybody.bNOGRAVITY; if ( wasflying && !isflying && (lastvelz < -23) && !level.monsterfallingdamage && !(mybody.floorsector.flags&Sector.SECF_NOFALLINGDAMAGE) && swwm_doomfall ) { // big hurt diff --git a/zscript/swwm_hud.zsc b/zscript/swwm_hud.zsc index c8208c745..e079c0f71 100644 --- a/zscript/swwm_hud.zsc +++ b/zscript/swwm_hud.zsc @@ -27,13 +27,14 @@ Class SWWMStatusBar : BaseStatusBar SWWMVanillaBossHandler bosshnd; // client cvars - transient CVar safezone, maxchat[2], maxpick, chatduration, msgduration, pickduration, chatcol, teamcol, obitcol, critcol, pickcol, targetter, healthnums, scorenums, scorebonus, targettag, lang, maxtarg, maxscore, maxdamns, hscale, bscale, nscale, sscale, midcol, midbcol, midduration; + transient CVar safezone, maxchat[2], maxpick, chatduration, msgduration, pickduration, chatcol, teamcol, obitcol, critcol, pickcol, targetter, healthnums, scorenums, scorebonus, pois, targettag, lang, maxtarg, maxscore, maxdamns, hscale, bscale, nscale, sscale, iscale, midcol, midbcol, midduration; // shared stuff Vector2 ss, hs; Vector2 ssb, hsb; Vector2 ssn, hsn; Vector2 sss, hss; + Vector2 ssi, hsi; int margin; double FracTic; int chatopen; @@ -359,6 +360,7 @@ Class SWWMStatusBar : BaseStatusBar if ( !targetter ) targetter = CVar.GetCVar('swwm_targeter',players[consoleplayer]); if ( !healthnums ) healthnums = CVar.GetCVar('swwm_healthnums',players[consoleplayer]); if ( !scorenums ) scorenums = CVar.GetCVar('swwm_scorenums',players[consoleplayer]); + if ( !pois ) pois = CVar.GetCVar('swwm_pois',players[consoleplayer]); if ( !maxtarg ) maxtarg = CVar.GetCVar('swwm_maxtargets',players[consoleplayer]); if ( !maxscore ) maxscore = CVar.GetCVar('swwm_maxscorenums',players[consoleplayer]); if ( !maxdamns ) maxdamns = CVar.GetCVar('swwm_maxdamnums',players[consoleplayer]); @@ -404,7 +406,7 @@ Class SWWMStatusBar : BaseStatusBar let cam = players[consoleplayer].camera; Vector3 viewvec = (cos(viewrot.x)*cos(viewrot.y),sin(viewrot.x)*cos(viewrot.y),sin(-viewrot.y)); int sz; - if ( thesight ) + if ( thesight && pois.GetBool() ) { // update omnisight stuff if ( intpoints.Size() != hnd.intpoints_cnt ) @@ -620,9 +622,9 @@ Class SWWMStatusBar : BaseStatusBar else tag = String.Format("\cy%s\c-",StringTable.Localize("$SWWM_NEXIT")); } Font fnt = LangFont(mMiniwiFont); - Screen.DrawText(fnt,Font.CR_WHITE,(vpos.x-hsb.x*fnt.StringWidth(tag)/2.)/hsb.x,(vpos.y-hsb.y*fnt.GetHeight()/2.)/hsb.y,tag,DTA_VirtualWidthF,ssb.x,DTA_VirtualHeightF,ssb.y,DTA_KeepRatio,true); + Screen.DrawText(fnt,Font.CR_WHITE,(vpos.x-hsi.x*fnt.StringWidth(tag)/2.)/hsi.x,(vpos.y-hsi.y*fnt.GetHeight()/2.)/hsi.y,tag,DTA_VirtualWidthF,ssi.x,DTA_VirtualHeightF,ssi.y,DTA_KeepRatio,true); tag = String.Format("\cu(%s\cu)\c-",FormatDist(tdir.length())); - Screen.DrawText(fnt,Font.CR_WHITE,(vpos.x-hsb.x*fnt.StringWidth(tag)/2.)/hsb.x,(vpos.y+hsb.y*fnt.GetHeight()/2.)/hsb.y,tag,DTA_VirtualWidthF,ssb.x,DTA_VirtualHeightF,ssb.y,DTA_KeepRatio,true); + Screen.DrawText(fnt,Font.CR_WHITE,(vpos.x-hsi.x*fnt.StringWidth(tag)/2.)/hsi.x,(vpos.y+hsi.y*fnt.GetHeight()/2.)/hsi.y,tag,DTA_VirtualWidthF,ssi.x,DTA_VirtualHeightF,ssi.y,DTA_KeepRatio,true); } } // targetting array @@ -1237,6 +1239,7 @@ Class SWWMStatusBar : BaseStatusBar if ( !bscale ) bscale = CVar.GetCVar('swwm_barscale',players[consoleplayer]); if ( !nscale ) nscale = CVar.GetCVar('swwm_numscale',players[consoleplayer]); if ( !sscale ) sscale = CVar.GetCVar('swwm_scrscale',players[consoleplayer]); + if ( !iscale ) iscale = CVar.GetCVar('swwm_poiscale',players[consoleplayer]); BeginHUD(); if ( hscale.GetInt() <= 0 ) hs = GetHUDScale(); else @@ -1268,6 +1271,13 @@ Class SWWMStatusBar : BaseStatusBar hss.y = hss.x; } sss = (Screen.GetWidth()/hss.x,Screen.GetHeight()/hss.y); + if ( iscale.GetInt() <= 0 ) hsi = GetHUDScale(); + else + { + hsi.x = iscale.GetInt(); + hsi.y = hsi.x; + } + ssi = (Screen.GetWidth()/hsi.x,Screen.GetHeight()/hsi.y); FracTic = TicFrac; DrawTarget(); DrawScore();