diff --git a/graphics/swwmback.png b/graphics/swwmback.png index 573538768..e173f3f8d 100644 Binary files a/graphics/swwmback.png and b/graphics/swwmback.png differ diff --git a/graphics/swwmpause.png b/graphics/swwmpause.png deleted file mode 100644 index 58c76b731..000000000 Binary files a/graphics/swwmpause.png and /dev/null differ diff --git a/language.def_base b/language.def_base index 2ee52c76f..e71ca22c2 100644 --- a/language.def_base +++ b/language.def_base @@ -725,6 +725,7 @@ SWWM_DMSPREAD = "Spread:"; SWWM_PLACE1 = "1st"; SWWM_PLACE2 = "2nd"; SWWM_PLACE3 = "3rd"; +SWWM_PAUSE = "PAUSED"; // weapon tooltips SWWM_TTNOTE = "Note: Weapon tooltips can be deactivated in SWWM GZ Options."; TT_PUSHER = diff --git a/language.es_base b/language.es_base index b862d92dc..5003b931d 100644 --- a/language.es_base +++ b/language.es_base @@ -615,6 +615,7 @@ SWWM_PLACE3 = "3º"; SWWM_PLACE1_GENDER1 = "1ª"; SWWM_PLACE2_GENDER1 = "2ª"; SWWM_PLACE3_GENDER1 = "3ª"; +SWWM_PAUSE = "PAUSA"; // weapon tooltips SWWM_TTNOTE = "Nota: La ayuda de armas se puede desactivar en Opciones de SWWM GZ."; TT_PUSHER = diff --git a/language.version b/language.version index 4ee5f317b..ba6563ba6 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r93 \cu(Tue 21 Dec 22:03:38 CET 2021)\c-"; -SWWM_SHORTVER="\cw1.2pre r93 \cu(2021-12-21 22:03:38)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r94 \cu(Wed 22 Dec 17:30:37 CET 2021)\c-"; +SWWM_SHORTVER="\cw1.2pre r94 \cu(2021-12-22 17:30:37)\c-"; diff --git a/zmapinfo.txt b/zmapinfo.txt index 1443edbaa..d23b945e1 100644 --- a/zmapinfo.txt +++ b/zmapinfo.txt @@ -34,7 +34,6 @@ GameInfo MessageBoxClass = "SWWMMessageBox" HelpMenuClass = "SWWMHelpMenu" MenuDelegateClass = "SWWMMenuDelegate" - PauseSign = "graphics/swwmpause.png" BorderFlat = "graphics/bord_flat.png" Border = 2, 0, "graphics/bord_tr.png", "graphics/bord_t.png", "graphics/bord_tl.png", "graphics/bord_r.png", "graphics/bord_l.png", "graphics/bord_br.png", "graphics/bord_b.png", "graphics/bord_bl.png" ForceTextInMenus = true diff --git a/zscript/hud/swwm_hud.zsc b/zscript/hud/swwm_hud.zsc index 4d3c96ef0..797125af9 100644 --- a/zscript/hud/swwm_hud.zsc +++ b/zscript/hud/swwm_hud.zsc @@ -10,7 +10,7 @@ Class SWWMStatusBar : BaseStatusBar { TextureID StatusTex, WeaponTex, ScoreTex[3], InventoryTex, ChatTex[6], HealthTex[6], FuelTex[2], DashTex, EnemyBTex, EnemyHTex[6], - GenericAmmoTex[3], MiniBox, AutoPage, PauseTex, bgtex; + GenericAmmoTex[3], MiniBox, AutoPage, bgtex; Array MainQueue, PickupQueue; @@ -42,6 +42,8 @@ Class SWWMStatusBar : BaseStatusBar int PrevFrame; int chatopen; bool camhidden; + int pausetime; + Vector2 pausepos, pausedir; // shared from renderunderlay, needed for proper interpolation of some things Vector3 viewpos, viewrot; @@ -854,6 +856,7 @@ Class SWWMStatusBar : BaseStatusBar override void Tick() { Super.Tick(); + pausetime = gametic; SWWMUtility.PrepareProjData(projdata,ViewPos,ViewRot.x,ViewRot.y,ViewRot.z,players[consoleplayer].fov); int maxtargetnum = max(0,swwm_maxtargets); int maxscorenum = max(0,swwm_maxscorenums); @@ -1144,7 +1147,6 @@ Class SWWMStatusBar : BaseStatusBar GenericAmmoTex[2] = TexMan.CheckForTexture("graphics/HUD/GenericAmmoBoxR.png",TexMan.Type_Any); MiniBox = TexMan.CheckForTexture("graphics/HUD/MinimapBox.png",TexMan.Type_Any); AutoPage = TexMan.CheckForTexture("AUTOPAGE",TexMan.Type_Autopage); - PauseTex = TexMan.CheckForTexture("graphics/swwmpause.png",TexMan.Type_Any); bgtex = TexMan.CheckForTexture("graphics/tempbg.png",TexMan.Type_Any); minimapzoom = oldminimapzoom = 1.; HealthInter = DynamicValueInterpolator.Create(100,.1,1,100); @@ -2592,16 +2594,43 @@ Class SWWMStatusBar : BaseStatusBar Screen.DrawTexture(bgtex,false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(192,0,0,0),DTA_Alpha,.5); } else Screen.Dim("Black",.5,0,0,Screen.GetWidth(),Screen.GetHeight()); - Screen.DrawTexture(PauseTex,false,Screen.GetWidth()/2,Screen.GetHeight()/2,DTA_CleanNoMove,true,DTA_CenterOffset,true); + String str = StringTable.Localize("$SWWM_PAUSE"); + if ( gametic < pausetime+1000 ) + { + pausepos.x = Screen.GetWidth()/2; + pausepos.y = Screen.GetHeight()/2; + pausedir = (1,1); + } + else + { + pausepos.x += pausedir.x*CleanXFac; + pausepos.y += pausedir.y*CleanYFac; + if ( pausepos.x >= Screen.GetWidth()-((bigfont.StringWidth(str)+8)*CleanXFac/2) ) + pausedir.x = -1; + if ( pausepos.x < ((bigfont.StringWidth(str)+8)*CleanXFac/2) ) + pausedir.x = 1; + if ( pausepos.y >= Screen.GetHeight()-((bigfont.GetHeight()+8)*CleanYFac/2) ) + pausedir.y = -1; + if ( pausepos.y < ((bigfont.GetHeight()+8)*CleanYFac/2) ) + pausedir.y = 1; + } + double xx = pausepos.x-bigfont.StringWidth(str)*CleanXFac/2; + double yy = pausepos.y-bigfont.GetHeight()*CleanYFac/2; + int tlen = str.CodePointCount(); + for ( int i=0, pos=0; i