diff --git a/language.version b/language.version index b3a259a40..435a03ab5 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r373 \cu(Fri 19 Mar 18:43:47 CET 2021)\c-"; -SWWM_SHORTVER="\cw0.9.11b-pre r373 \cu(2021-03-19 18:43:48)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r374 \cu(Fri 19 Mar 18:54:42 CET 2021)\c-"; +SWWM_SHORTVER="\cw0.9.11b-pre r374 \cu(2021-03-19 18:54:42)\c-"; diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index b53cc6d1a..35798e1c3 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -1573,9 +1573,16 @@ Class Demolitionist : PlayerPawn if ( fm ) dodge += (fm>0)?X:-X; if ( sm ) dodge += (sm>0)?Y:-Y; if ( player.cmd.buttons&BT_CROUCH ) dodge = (0,0,-1); // death from above - if ( dodge == (0,0,0) ) dodge.xy = RotateVector((1,0),angle); - if ( !level.IsJumpingAllowed() ) dodge.z = min(0,dodge.z); - if ( player.onground ) dodge.z = max(0,dodge.z); + if ( dodge == (0,0,0) ) + { + if ( !player.onground || bNOGRAVITY || (waterlevel > 2) || (player.cheats&CF_NOCLIP2) ) dodge = X; + else dodge.xy = RotateVector((1,0),angle); + } + if ( player.onground && !bNOGRAVITY && (waterlevel < 2) && !(player.cheats&CF_NOCLIP2) ) + { + dodge.z = max(0,dodge.z); + if ( !level.IsJumpingAllowed() ) dodge.z = min(0,dodge.z); + } if ( (dodge.length() > 0) && (dashcooldown <= 0) && (dashfuel > 20.) && player.cmd.buttons&BT_USER2 && (player.onground || level.IsJumpingAllowed() || (player.cmd.buttons&BT_CROUCH)) && (gamestate == GS_LEVEL) ) { dashdir = dodge.unit();