diff --git a/language.version b/language.version index b31863cd8..a682681e4 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r250 \cu(Thu 4 Aug 18:17:21 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r250 \cu(2022-08-04 18:17:21)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r251 \cu(Fri 5 Aug 11:08:47 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r251 \cu(2022-08-05 11:08:47)\c-"; diff --git a/zscript/handler/swwm_statichandler_achievements.zsc b/zscript/handler/swwm_statichandler_achievements.zsc index 1d62a9ba5..bc68887ba 100644 --- a/zscript/handler/swwm_statichandler_achievements.zsc +++ b/zscript/handler/swwm_statichandler_achievements.zsc @@ -107,7 +107,7 @@ extend Class SWWMStaticHandler private void ParseAchievementList( out Array achievements ) { achievements.Clear(); - let lmp = Wads.FindLump("achievements.lst"); + let lmp = SWWMUtility.FindLumpByFullName("achievements.lst"); if ( lmp == -1 ) ThrowAbortException("'achievements.lst' not found"); String dat; Array list, ln; @@ -163,7 +163,7 @@ extend Class SWWMStaticHandler achievements.Push(ac); bidx++; } - lmp = Wads.FindLump("achievements.lst",lmp+1); + lmp = SWWMUtility.FindLumpByFullName("achievements.lst",lmp+1); } } diff --git a/zscript/menu/swwm_menus.zsc b/zscript/menu/swwm_menus.zsc index 05f4fa57e..49d739ba0 100644 --- a/zscript/menu/swwm_menus.zsc +++ b/zscript/menu/swwm_menus.zsc @@ -11,7 +11,7 @@ Class OptionMenuItemSWWMVoiceOption : OptionMenuItemOptionBase Super.Init(label,command,'',graycheck,center); mCVar = CVar.FindCVar(mAction); int lmp; - for ( lmp = Wads.FindLump("swwmvoicepack.txt"); lmp > 0; lmp = Wads.FindLump("swwmvoicepack.txt",lmp+1) ) + for ( lmp = SWWMUtility.FindLumpByFullName("swwmvoicepack.txt"); lmp != -1; lmp = SWWMUtility.FindLumpByFullName("swwmvoicepack.txt",lmp+1) ) { Array lst; lst.Clear(); @@ -136,14 +136,12 @@ Class OptionMenuItemSWWMPlayTime : OptionMenuItem { drawLabel(indent,y,selected?OptionMenuSettings.mFontColorSelection:OptionMenuSettings.mFontColor); int val = swwm_playtime; - int sec = (val%60); - int min = ((val/60)%60); - int hour = ((val/3600)%24); - int day = val/86400; + int sec = val%60; + int min = (val/60)%60; + int hour = val/3600; String str = ""; if ( dformat ) { - if ( day ) str.AppendFormat("%d %s",day,StringTable.Localize((day!=1)?"$SWWM_TIME_DAYS":"$SWWM_TIME_DAY")); if ( hour ) { if ( str != "" ) str = str..", "; @@ -163,8 +161,7 @@ Class OptionMenuItemSWWMPlayTime : OptionMenuItem } else { - if ( day ) str = String.Format("%d:%02d:%02d:%02d",day,hour,min,sec); - else if ( hour ) str = String.Format("%d:%02d:%02d",hour,min,sec); + if ( hour ) str = String.Format("%d:%02d:%02d",hour,min,sec); else str = String.Format("%d:%02d",min,sec); } drawValue(indent,y,OptionMenuSettings.mFontColorValue,str); diff --git a/zscript/swwm_statichandler.zsc b/zscript/swwm_statichandler.zsc index 917c67fc1..38a067ba2 100644 --- a/zscript/swwm_statichandler.zsc +++ b/zscript/swwm_statichandler.zsc @@ -127,7 +127,7 @@ Class SWWMStaticHandler : StaticEventHandler // fix voice type cvar int lmp; Array types; - for ( lmp = Wads.FindLump("swwmvoicepack.txt"); lmp > 0; lmp = Wads.FindLump("swwmvoicepack.txt",lmp+1) ) + for ( lmp = SWWMUtility.FindLumpByFullName("swwmvoicepack.txt"); lmp != -1; lmp = SWWMUtility.FindLumpByFullName("swwmvoicepack.txt",lmp+1) ) { Array lst; lst.Clear(); @@ -153,7 +153,7 @@ Class SWWMStaticHandler : StaticEventHandler S_StartSound("compat/warn",CHAN_YOUDONEFUCKEDUP,CHANF_UI|CHANF_NOPAUSE|CHANF_OVERLAP,1,ATTN_NONE); } // warning for unsupported - if ( Wads.FindLump("swwmgamesupported.txt") != -1 ) return; + if ( SWWMUtility.FindLumpByFullName("swwmgamesupported.txt") != -1 ) return; Console.Printf( "\cx┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\c-\n" "\cx┃ \cr[\cgWARNING\cr] \cx┃\c-\n" @@ -327,6 +327,66 @@ Class SWWMStaticHandler : StaticEventHandler Console.Printf("%s%s\c-",reg?"\cj":"\cu",cls.GetClassName()); } } + else if ( e.Name ~== "swwmtestdlgsize" ) + { + let f = Font.GetFont('TewiFont'); + let lmp = SWWMUtility.FindLumpByFullName("language.def_dlg"); + Array lst; + lst.Clear(); + String dat = Wads.ReadLump(lmp); + dat.Split(lst,"\n",0); + bool skipme = true; + Console.Printf("[default]"); + bool fail = false; + for ( int i=0; i 4 ) + { + Console.Printf("\cg%s [%d]\c-",lst[i].Left(st-4),l.Count()); + fail = true; + } + l.Destroy(); + } + if ( !fail ) Console.Printf("ALL OK"); + lmp = SWWMUtility.FindLumpByFullName("language.es_dlg"); + lst.Clear(); + dat = Wads.ReadLump(lmp); + dat.Split(lst,"\n",0); + skipme = true; + Console.Printf("[es]"); + for ( int i=0; i 4 ) + { + Console.Printf("\cg%s [%d]\c-",lst[i].Left(st-4),l.Count()); + fail = true; + } + l.Destroy(); + } + if ( !fail ) Console.Printf("ALL OK"); + } } override void NetworkProcess( ConsoleEvent e ) diff --git a/zscript/utility/swwm_utility.zsc b/zscript/utility/swwm_utility.zsc index b038b7465..c284a507c 100644 --- a/zscript/utility/swwm_utility.zsc +++ b/zscript/utility/swwm_utility.zsc @@ -252,6 +252,17 @@ Class SWWMUtility return c; } + // THANKS ZSCRIPT + static clearscope int FindLumpByFullName( String name, int startlump = 0, int ns = Wads.GlobalNamespace ) + { + for ( int lmp = Wads.FindLump(name,startlump,ns); lmp != -1; lmp = Wads.FindLump(name,lmp+1,ns) ) + { + if ( Wads.GetLumpFullName(lmp) ~== name ) + return lmp; + } + return -1; + } + // not sure if I should use this, looks a bit ugly static clearscope void ThousandsStr( out String s, int col = -1 ) {