From a2a59e1381584b183cf36632ad02198f557264fe Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Fri, 26 Mar 2021 01:35:32 +0100 Subject: [PATCH] Some microoptimizations. Remove dead code. Tweak how enemy flight distance is calculated. Rename flight achievement to something more fitting. --- language.def_base | 4 ++-- language.es_base | 2 +- language.version | 4 ++-- zscript/swwm_statichandler.zsc | 7 ------- zscript/swwm_thinkers.zsc | 5 ++++- zscript/utility/swwm_utility.zsc | 11 ++--------- 6 files changed, 11 insertions(+), 22 deletions(-) diff --git a/language.def_base b/language.def_base index 4826ba3d8..7a0eb12c4 100644 --- a/language.def_base +++ b/language.def_base @@ -880,8 +880,8 @@ SWWM_ACHIEVEMENT_EVERYTHING_TAG = "The Demolitionist"; SWWM_ACHIEVEMENT_EVERYTHING_TXT = "Unlock all achievements"; SWWM_ACHIEVEMENT_EZKILL_TAG = "Well That was Easy"; SWWM_ACHIEVEMENT_EZKILL_TXT = "Kill %d enemies with a single Ynykron Artifact shot (excluding altfire)"; -SWWM_ACHIEVEMENT_FLIGHT_TAG = "Demolitionist Space Program"; -SWWM_ACHIEVEMENT_FLIGHT_TXT = "Send a single enemy flying over %d map units"; +SWWM_ACHIEVEMENT_FLIGHT_TAG = "Blasting Off Again"; +SWWM_ACHIEVEMENT_FLIGHT_TXT = "Send an enemy flying over %d map units away"; SWWM_ACHIEVEMENT_FRIEND_TAG = "Shaped like a Friend"; SWWM_ACHIEVEMENT_FRIEND_TXT = "Befriend %d Cacodemons, Weredragons or Ettins with headpats"; SWWM_ACHIEVEMENT_FUEL_TAG = "Hydrogenated"; diff --git a/language.es_base b/language.es_base index 5f03d1ebf..36c93db30 100644 --- a/language.es_base +++ b/language.es_base @@ -780,7 +780,7 @@ SWWM_ACHIEVEMENT_EVERYTHING_TAG = "La Demolicionista"; SWWM_ACHIEVEMENT_EVERYTHING_TXT = "Desbloquea todos los logros"; SWWM_ACHIEVEMENT_EZKILL_TAG = "Eso Estuvo Fácil"; SWWM_ACHIEVEMENT_EZKILL_TXT = "Mata %d enemigos con un solo disparo de Artefacto Ynykron (excluyendo modo secundario)"; -SWWM_ACHIEVEMENT_FLIGHT_TAG = "Programa Espacial Demolicionista"; +SWWM_ACHIEVEMENT_FLIGHT_TAG = "Despega de Nuevo"; SWWM_ACHIEVEMENT_FLIGHT_TXT = "Lanza a un enemigo en volandas más allá de %d unidades de mapa"; SWWM_ACHIEVEMENT_FRIEND_TAG = "Con Forma de Amigo"; SWWM_ACHIEVEMENT_FRIEND_TXT = "Entabla amistad con %d Cacodemonios, Hombres-Dragón o Ettins a base de caricias"; diff --git a/language.version b/language.version index dd241351a..0fb82ecd2 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r409 \cu(Thu 25 Mar 22:03:07 CET 2021)\c-"; -SWWM_SHORTVER="\cw0.9.11b-pre r409 \cu(2021-03-25 22:03:07)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r410 \cu(Fri 26 Mar 01:35:32 CET 2021)\c-"; +SWWM_SHORTVER="\cw0.9.11b-pre r410 \cu(2021-03-26 01:35:32)\c-"; diff --git a/zscript/swwm_statichandler.zsc b/zscript/swwm_statichandler.zsc index 75df29cf3..88dbe33f7 100644 --- a/zscript/swwm_statichandler.zsc +++ b/zscript/swwm_statichandler.zsc @@ -112,13 +112,6 @@ Class SWWMStaticHandler : StaticEventHandler Font.GetFont('TewiShaded'); Font.GetFont('TewiShadedInverse'); Font.GetFont('SWWMBigFont'); - // iwad progress - if ( gameinfo.gametype&GAME_Doom ) - SWWMUtility.AchievementProgressOr('swwm_progress_iwad',1,players[consoleplayer]); - else if ( gameinfo.gametype&GAME_Heretic ) - SWWMUtility.AchievementProgressOr('swwm_progress_iwad',2,players[consoleplayer]); - else if ( gameinfo.gametype&GAME_Hexen ) - SWWMUtility.AchievementProgressOr('swwm_progress_iwad',4,players[consoleplayer]); } override void ConsoleProcess( ConsoleEvent e ) diff --git a/zscript/swwm_thinkers.zsc b/zscript/swwm_thinkers.zsc index 6ff179441..447f8fec6 100644 --- a/zscript/swwm_thinkers.zsc +++ b/zscript/swwm_thinkers.zsc @@ -401,6 +401,7 @@ Class SWWMFlyTracker : Thinker { Actor tracked, instigator; Vector3 startpos, curpos; + double maxdist; int gracepd; static void Track( Actor b, Actor whomst ) @@ -419,15 +420,17 @@ Class SWWMFlyTracker : Thinker ffd.tracked = b; ffd.instigator = whomst; ffd.curpos = ffd.startpos = b.pos; + ffd.maxdist = 0; } override void Tick() { - if ( instigator && instigator.player ) SWWMUtility.AchievementProgress('swwm_progress_flight',int(level.Vec3Diff(startpos,curpos).length()),instigator.player); + maxdist = max(maxdist,level.Vec3Diff(startpos,curpos).length()); if ( !tracked || tracked.bFLOAT || tracked.bNOGRAVITY || (tracked.waterlevel > 1) || (tracked.pos.z <= tracked.floorz) || !tracked.TestMobjZ(false) ) { gracepd++; if ( gracepd < 10 ) return; + if ( instigator ) SWWMUtility.AchievementProgress('swwm_progress_flight',int(maxdist),instigator.player); Destroy(); return; } diff --git a/zscript/utility/swwm_utility.zsc b/zscript/utility/swwm_utility.zsc index 42cbda3b1..ab0f6f84e 100644 --- a/zscript/utility/swwm_utility.zsc +++ b/zscript/utility/swwm_utility.zsc @@ -101,7 +101,8 @@ Class SWWMUtility let cv = CVar.FindCVar(pvar); if ( !cv ) return; int cval = cv.GetInt(); - cv.SetInt(max(cval,val)); + if ( val <= cval ) return; + cv.SetInt(val); } static clearscope void AchievementProgressInc( Name pvar, int inc, PlayerInfo p = null ) { @@ -119,14 +120,6 @@ Class SWWMUtility double cval = cv.GetFloat(); cv.SetFloat(cval+inc); } - static clearscope void AchievementProgressOr( Name pvar, int val, PlayerInfo p = null ) - { - if ( !p || (p != players[consoleplayer]) ) return; - let cv = CVar.FindCVar(pvar); - if ( !cv ) return; - int cval = cv.GetInt(); - cv.SetInt(cval|val); - } // thanks zscript static clearscope double fract( double a )