From e891a7a75bafb95caeebb8c74d871e5f5d9ab4f7 Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Sun, 23 Mar 2008 10:14:35 +0000 Subject: [PATCH] fixed all the weapon switching bugs --- src/game/client/gc_console.cpp | 10 ++++++++-- src/game/client/gc_hooks.cpp | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/game/client/gc_console.cpp b/src/game/client/gc_console.cpp index a27004781..892c11f79 100644 --- a/src/game/client/gc_console.cpp +++ b/src/game/client/gc_console.cpp @@ -349,6 +349,12 @@ static void con_key_input_weapon(void *result, void *user_data) input_data.wanted_weapon = w; } +static void con_key_input_nextprev_weapon(void *result, void *user_data) +{ + con_key_input_counter(result, user_data); + input_data.wanted_weapon = 0; +} + static void con_toggle_local_console(void *result, void *user_data) { console_toggle(0); @@ -399,8 +405,8 @@ void client_console_init() MACRO_REGISTER_COMMAND("+weapon4", "", con_key_input_weapon, (void *)4); MACRO_REGISTER_COMMAND("+weapon5", "", con_key_input_weapon, (void *)5); - MACRO_REGISTER_COMMAND("+nextweapon", "", con_key_input_counter, &input_data.next_weapon); - MACRO_REGISTER_COMMAND("+prevweapon", "", con_key_input_counter, &input_data.prev_weapon); + MACRO_REGISTER_COMMAND("+nextweapon", "", con_key_input_nextprev_weapon, &input_data.next_weapon); + MACRO_REGISTER_COMMAND("+prevweapon", "", con_key_input_nextprev_weapon, &input_data.prev_weapon); MACRO_REGISTER_COMMAND("+emote", "", con_key_input_state, &emoticon_selector_active); MACRO_REGISTER_COMMAND("+scoreboard", "", con_key_input_state, &scoreboard_active); diff --git a/src/game/client/gc_hooks.cpp b/src/game/client/gc_hooks.cpp index d3feb8719..601575f3e 100644 --- a/src/game/client/gc_hooks.cpp +++ b/src/game/client/gc_hooks.cpp @@ -608,7 +608,8 @@ extern "C" void modc_message(int msgtype) else if(msgtype == NETMSGTYPE_SV_WEAPON_PICKUP) { NETMSG_SV_WEAPON_PICKUP *msg = (NETMSG_SV_WEAPON_PICKUP *)rawmsg; - picked_up_weapon = msg->weapon+1; + if(config.cl_autoswitch_weapons) + input_data.wanted_weapon = msg->weapon+1; } else if(msgtype == NETMSGTYPE_SV_READY_TO_ENTER) {