From 1f7e50de81d3d8d157f513e55518534e1c1ca3df Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Thu, 21 Jul 2022 12:50:22 +0200 Subject: [PATCH] Fix scroll jitter in demolitionist menu. --- language.version | 4 ++-- zscript/kbase/swwm_kbase_textbox.zsc | 2 +- zscript/kbase/swwm_kbasetab_chat.zsc | 2 +- zscript/kbase/swwm_kbasetab_inventory.zsc | 2 +- zscript/kbase/swwm_kbasetab_keychain.zsc | 2 +- zscript/kbase/swwm_kbasetab_library.zsc | 2 +- zscript/kbase/swwm_kbasetab_secret.zsc | 2 +- zscript/kbase/swwm_kbasetab_stats.zsc | 2 +- zscript/kbase/swwm_kbasetab_store.zsc | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/language.version b/language.version index f00b18a73..65f7be091 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r191 \cu(Wed 20 Jul 20:55:47 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r191 \cu(2022-07-20 20:55:47)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r191 \cu(Thu 21 Jul 12:50:22 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r191 \cu(2022-07-21 12:50:22)\c-"; diff --git a/zscript/kbase/swwm_kbase_textbox.zsc b/zscript/kbase/swwm_kbase_textbox.zsc index 45f290d19..9f7606de9 100644 --- a/zscript/kbase/swwm_kbase_textbox.zsc +++ b/zscript/kbase/swwm_kbase_textbox.zsc @@ -95,7 +95,7 @@ Class DemolitionistMenuTextBox ui void Drawer( double fractic, bool dark = false ) { - double ssmofs = smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic; + double ssmofs = (smofs~==ofs)?smofs:(smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic); double xx = x+6; double yy = 17-ssmofs; Screen.SetClipRect(int((master.origin.x+xx)*master.hs),int((master.origin.y+17)*master.hs),int(w*master.hs),int((master.ws.y-34)*master.hs)); diff --git a/zscript/kbase/swwm_kbasetab_chat.zsc b/zscript/kbase/swwm_kbasetab_chat.zsc index d4116350c..9de6f01bd 100644 --- a/zscript/kbase/swwm_kbasetab_chat.zsc +++ b/zscript/kbase/swwm_kbasetab_chat.zsc @@ -156,7 +156,7 @@ Class DemolitionistChatTab : DemolitionistMenuTab Screen.DrawText(master.mSmallFont,Font.CR_FIRE,master.origin.x+xx,master.origin.y+yy,str,DTA_VirtualWidthF,master.ss.x,DTA_VirtualHeightF,master.ss.y,DTA_KeepRatio,true); return; } - double ssmofs = smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic; + double ssmofs = (smofs~==ofs)?smofs:(smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic); double xx = 3; double yy = 23; Screen.SetClipRect(int((master.origin.x+3)*master.hs),int((master.origin.y+23)*master.hs),int((master.ws.x-12)*master.hs),int((master.ws.y-46)*master.hs)); diff --git a/zscript/kbase/swwm_kbasetab_inventory.zsc b/zscript/kbase/swwm_kbasetab_inventory.zsc index 65201fd49..ea9605933 100644 --- a/zscript/kbase/swwm_kbasetab_inventory.zsc +++ b/zscript/kbase/swwm_kbasetab_inventory.zsc @@ -459,7 +459,7 @@ Class DemolitionistInventoryTab : DemolitionistMenuTab Screen.DrawText(master.mSmallFont,Font.CR_FIRE,master.origin.x+xx,master.origin.y+yy,str,DTA_VirtualWidthF,master.ss.x,DTA_VirtualHeightF,master.ss.y,DTA_KeepRatio,true); return; } - double ssmofs = smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic; + double ssmofs = (smofs~==ofs)?smofs:(smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic); double xx = 9; double yy = 23; Screen.SetClipRect(int((master.origin.x+9)*master.hs),int((master.origin.y+23)*master.hs),int((master.ws.x-18)*master.hs),int((master.ws.y-46)*master.hs)); diff --git a/zscript/kbase/swwm_kbasetab_keychain.zsc b/zscript/kbase/swwm_kbasetab_keychain.zsc index d19fea2bf..2284351e5 100644 --- a/zscript/kbase/swwm_kbasetab_keychain.zsc +++ b/zscript/kbase/swwm_kbasetab_keychain.zsc @@ -302,7 +302,7 @@ Class DemolitionistKeychainTab : DemolitionistMenuTab Screen.DrawText(master.mSmallFont,Font.CR_FIRE,master.origin.x+xx,master.origin.y+yy,str,DTA_VirtualWidthF,master.ss.x,DTA_VirtualHeightF,master.ss.y,DTA_KeepRatio,true); return; } - double ssmofs = smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic; + double ssmofs = (smofs~==ofs)?smofs:(smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic); double xx = 9; double yy = 23; Screen.SetClipRect(int((master.origin.x+9)*master.hs),int((master.origin.y+23)*master.hs),int((master.ws.x-18)*master.hs),int((master.ws.y-46)*master.hs)); diff --git a/zscript/kbase/swwm_kbasetab_library.zsc b/zscript/kbase/swwm_kbasetab_library.zsc index afe4c1fb0..c77982518 100644 --- a/zscript/kbase/swwm_kbasetab_library.zsc +++ b/zscript/kbase/swwm_kbasetab_library.zsc @@ -398,7 +398,7 @@ Class DemolitionistLibraryTab : DemolitionistMenuTab Screen.DrawText(master.mSmallFont,Font.CR_GOLD,master.origin.x+lwidth-15,master.origin.y+yy,"‼",DTA_VirtualWidthF,master.ss.x,DTA_VirtualHeightF,master.ss.y,DTA_KeepRatio,true); xx = 3; yy = 32; - double ssmofs = smofs[section]*(1.-fractic)+((smofs[section]*.6)+(ofs[section]*.4))*fractic; + double ssmofs = (smofs[section]~==ofs[section])?smofs[section]:(smofs[section]*(1.-fractic)+((smofs[section]*.6)+(ofs[section]*.4))*fractic); Screen.SetClipRect(int((master.origin.x+3)*master.hs),int((master.origin.y+32)*master.hs),int((lwidth-6)*master.hs),int((master.ws.y-50)*master.hs)); lists[section].Drawer((xx,yy-ssmofs)); Screen.ClearClipRect(); diff --git a/zscript/kbase/swwm_kbasetab_secret.zsc b/zscript/kbase/swwm_kbasetab_secret.zsc index e62f468c1..52de829e9 100644 --- a/zscript/kbase/swwm_kbasetab_secret.zsc +++ b/zscript/kbase/swwm_kbasetab_secret.zsc @@ -122,7 +122,7 @@ Class DemolitionistSecretTab : DemolitionistMenuTab override void Drawer( double fractic ) { - double ssmofs = smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic; + double ssmofs = (smofs~==ofs)?smofs:(smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic); double xx = 20; double yy; if ( maxofs <= 0 ) yy = master.ws.y/2-160; diff --git a/zscript/kbase/swwm_kbasetab_stats.zsc b/zscript/kbase/swwm_kbasetab_stats.zsc index d18a238a8..207ecf90d 100644 --- a/zscript/kbase/swwm_kbasetab_stats.zsc +++ b/zscript/kbase/swwm_kbasetab_stats.zsc @@ -553,7 +553,7 @@ Class DemolitionistStatsTab : DemolitionistMenuTab Screen.DrawText(master.mSmallFont,Font.CR_FIRE,master.origin.x+xx,master.origin.y+yy,str,DTA_VirtualWidthF,master.ss.x,DTA_VirtualHeightF,master.ss.y,DTA_KeepRatio,true); return; } - double ssmofs = smofs[section]*(1.-fractic)+((smofs[section]*.6)+(ofs[section]*.4))*fractic; + double ssmofs = (smofs[section]~==ofs[section])?smofs[section]:(smofs[section]*(1.-fractic)+((smofs[section]*.6)+(ofs[section]*.4))*fractic); if ( section == 3 ) { // achievement drawer has different margins diff --git a/zscript/kbase/swwm_kbasetab_store.zsc b/zscript/kbase/swwm_kbasetab_store.zsc index 8281dbc27..771f7620c 100644 --- a/zscript/kbase/swwm_kbasetab_store.zsc +++ b/zscript/kbase/swwm_kbasetab_store.zsc @@ -391,7 +391,7 @@ Class DemolitionistStoreTab : DemolitionistMenuTab double xx = 9; double yy = 23; Screen.SetClipRect(int((master.origin.x+9)*master.hs),int((master.origin.y+23)*master.hs),int((master.ws.x-18)*master.hs),int((master.ws.y-46)*master.hs)); - double ssmofs = smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic; + double ssmofs = (smofs~==ofs)?smofs:(smofs*(1.-fractic)+((smofs*.6)+(ofs*.4))*fractic); invlist[bSell].Drawer((xx-ssmofs,yy)); Screen.ClearClipRect(); if ( maxofs <= 0 ) return;