diff --git a/code/modules/projectiles/gun_helpers.dm b/code/modules/projectiles/gun_helpers.dm index ead1b24bd9d7..e86801c9d8c1 100644 --- a/code/modules/projectiles/gun_helpers.dm +++ b/code/modules/projectiles/gun_helpers.dm @@ -713,7 +713,9 @@ DEFINES in setup.dm, referenced here. do_toggle_firemode(user, gun_firemode) /obj/item/weapon/gun/proc/setup_firemodes() + var/old_firemode = gun_firemode gun_firemode_list.len = 0 + if(start_semiauto) gun_firemode_list |= GUN_FIREMODE_SEMIAUTO @@ -725,6 +727,10 @@ DEFINES in setup.dm, referenced here. if(!length(gun_firemode_list)) CRASH("[src] called setup_firemodes() with an empty gun_firemode_list") + + else if(old_firemode in gun_firemode_list) + gun_firemode = old_firemode + else gun_firemode = gun_firemode_list[1]