From e0a188f8d6bcd32a71d5d2abc6f27f8fe59a76ef Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Wed, 3 Jun 2020 10:21:41 +0200 Subject: [PATCH] Change Wallbuster menu page up / page down actions to add/remove in groups of five, more comfortable for doing partial reloads quickly. --- language.def_menu | 6 +++--- language.es_menu | 6 +++--- language.version | 2 +- zscript/swwm_cbt.zsc | 36 +++++++++++++++++++++++++++++------- 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/language.def_menu b/language.def_menu index ca63620f4..811aaac86 100644 --- a/language.def_menu +++ b/language.def_menu @@ -318,9 +318,9 @@ SWWM_BUSTERKEYS = "\cfLeft/Right:\c- Select Ammo Type\n" "\cfDown:\c- Add Ammo\n" "\cfUp:\c- Remove Ammo\n" -"\cfPage Up,\c-\n" +"\cfPage Up:\c- Add 5 Ammo\n" +"\cfPage Down:\c- Remove 5 Ammo\n" "\cfBackspace:\c- Clear Ammo\n" -"\cfPage Down:\c- Auto Fill\n" "\cfEnter:\c- Initiate Reload\n" -"\cfEnter (if empty):\c- Auto Reload\n" +"\cfEnter (if empty):\c- Full Reload\n" "\cfEsc:\c- Cancel Reload\n"; \ No newline at end of file diff --git a/language.es_menu b/language.es_menu index 14eeba6a4..655a571d5 100644 --- a/language.es_menu +++ b/language.es_menu @@ -315,9 +315,9 @@ SWWM_BUSTERKEYS = "\cfIzq/Dcha:\c- Seleccionar Munición\n" "\cfAbajo:\c- Agregar Munición\n" "\cfArriba:\c- Quitar Munición\n" -"\cfRe Pág,\c-\n" +"\cfRe Pág:\c- Agregar 5 Munición\n" +"\cfAv Pág:\c- Quitar 5 Munición\n" "\cfRetroceso:\c- Limpiar Munición\n" -"\cfAv Pág:\c- Autorellenado\n" "\cfEnter:\c- Iniciar Recarga\n" -"\cfEnter (si vacío):\c- Autorrecarga\n" +"\cfEnter (si vacío):\c- Recarga Completa\n" "\cfEsc:\c- Calcelar recarga\n"; \ No newline at end of file diff --git a/language.version b/language.version index 6b6354abc..e48cb391a 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\cxSWWM GZ\c- r283 (Wed 3 Jun 02:29:51 CEST 2020)"; +SWWM_MODVER="\cxSWWM GZ\c- r284 (Wed 3 Jun 10:21:41 CEST 2020)"; diff --git a/zscript/swwm_cbt.zsc b/zscript/swwm_cbt.zsc index b093c53a0..dbb3101c2 100644 --- a/zscript/swwm_cbt.zsc +++ b/zscript/swwm_cbt.zsc @@ -98,6 +98,14 @@ Class WallbusterReloadMenu : GenericMenu return true; } + private bool PopAmmo() + { + if ( queue.Size() <= 0 ) return false; + AmmoSets[queue[queue.Size()-1]]--; + queue.Pop(); + return true; + } + override bool MenuEvent( int mkey, bool fromcontroller ) { switch ( mkey ) @@ -126,13 +134,13 @@ Class WallbusterReloadMenu : GenericMenu Close(); return true; case MKEY_UP: - if ( queue.Size() <= 0 ) MenuSound("menu/noinvuse"); - else + if ( queue.Size() <= 0 ) { - MenuSound("menu/demoscroll"); - AmmoSets[queue[queue.Size()-1]]--; - queue.Pop(); + MenuSound("menu/noinvuse"); + return true; } + PopAmmo(); + MenuSound("menu/demoscroll"); return true; case MKEY_DOWN: if ( IsDone() ) @@ -152,13 +160,28 @@ Class WallbusterReloadMenu : GenericMenu sel0--; if ( sel0 < 0 ) sel0 = 3; return true; + case MKEY_PAGEUP: + if ( queue.Size() <= 0 ) + { + MenuSound("menu/noinvuse"); + return true; + } + int i = 0; + while ( (queue.Size() > 0) && (++i < 5) ) + { + if ( !PopAmmo(true) ) + break; + } + MenuSound("menu/demoscroll"); + return true; case MKEY_PAGEDOWN: if ( IsDone() ) { MenuSound("menu/noinvuse"); return true; } - while ( queue.Size() < 25 ) + int i = 0; + while ( (queue.Size() < 25) && (++i < 5) ) { if ( !PushAmmo(true) ) return true; @@ -166,7 +189,6 @@ Class WallbusterReloadMenu : GenericMenu MenuSound("menu/demosel"); return true; case MKEY_CLEAR: - case MKEY_PAGEUP: if ( queue.Size() <= 0 ) MenuSound("menu/noinvuse"); else {