From 163ac1993d41f8bcb1164c99b9ed103ef0302bf1 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Tue, 31 Mar 2020 06:42:03 +0200 Subject: [PATCH] Valve & Mods: Fixed Hud_SlotSelect bug in which you could weapons you did not have in your inventory. --- src/client/cstrike/hud_weaponselect.c | 2 +- src/client/gearbox/hud_weaponselect.c | 2 +- src/client/rewolf/hud_weaponselect.c | 2 +- src/client/valve/hud_weaponselect.c | 2 +- src/server/valve/gamerules.c | 1 + 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/client/cstrike/hud_weaponselect.c b/src/client/cstrike/hud_weaponselect.c index bc45724d..5d4256a2 100644 --- a/src/client/cstrike/hud_weaponselect.c +++ b/src/client/cstrike/hud_weaponselect.c @@ -125,7 +125,7 @@ void HUD_SlotSelect(int slot) /* weren't in that slot? select the first one then */ if (curslot != slot) { for (i = 1; i < g_weapons.length; i++) { - if (g_weapons[i].slot == slot) { + if (g_weapons[i].slot == slot && pl.g_items & g_weapons[i].id) { pSeat->fHUDWeaponSelected = i; pSeat->fHUDWeaponSelectTime = time + 3; break; diff --git a/src/client/gearbox/hud_weaponselect.c b/src/client/gearbox/hud_weaponselect.c index 3fe10072..407a376b 100644 --- a/src/client/gearbox/hud_weaponselect.c +++ b/src/client/gearbox/hud_weaponselect.c @@ -131,7 +131,7 @@ void HUD_SlotSelect(int slot) /* weren't in that slot? select the first one then */ if (curslot != slot) { for (i = 1; i < g_weapons.length; i++) { - if (g_weapons[i].slot == slot) { + if (g_weapons[i].slot == slot && pl.g_items & g_weapons[i].id) { pSeat->fHUDWeaponSelected = i; pSeat->fHUDWeaponSelectTime = time + 3; break; diff --git a/src/client/rewolf/hud_weaponselect.c b/src/client/rewolf/hud_weaponselect.c index 5592129b..d27ef815 100644 --- a/src/client/rewolf/hud_weaponselect.c +++ b/src/client/rewolf/hud_weaponselect.c @@ -133,7 +133,7 @@ void HUD_SlotSelect(int slot) /* weren't in that slot? select the first one then */ if (curslot != slot) { for (i = 1; i < g_weapons.length; i++) { - if (g_weapons[i].slot == slot) { + if (g_weapons[i].slot == slot && pl.g_items & g_weapons[i].id) { pSeat->fHUDWeaponSelected = i; pSeat->fHUDWeaponSelectTime = time + 3; break; diff --git a/src/client/valve/hud_weaponselect.c b/src/client/valve/hud_weaponselect.c index 692f4248..c8f3d0ca 100644 --- a/src/client/valve/hud_weaponselect.c +++ b/src/client/valve/hud_weaponselect.c @@ -125,7 +125,7 @@ void HUD_SlotSelect(int slot) /* weren't in that slot? select the first one then */ if (curslot != slot) { for (i = 1; i < g_weapons.length; i++) { - if (g_weapons[i].slot == slot) { + if (g_weapons[i].slot == slot && pl.g_items & g_weapons[i].id) { pSeat->fHUDWeaponSelected = i; pSeat->fHUDWeaponSelectTime = time + 3; break; diff --git a/src/server/valve/gamerules.c b/src/server/valve/gamerules.c index 874fc71e..197ca3c3 100644 --- a/src/server/valve/gamerules.c +++ b/src/server/valve/gamerules.c @@ -110,6 +110,7 @@ Gamerules_Spawn(player pl) if (cvar("sv_playerslots") == 1 || cvar("coop") == 1) { if (startspot != "") { + print(sprintf("^1Gamerules_Spawn: Startspot is %s\n", startspot)); Gamerules_DecodeChangeParms(pl); setorigin(pl, Landmark_GetSpot()); } else {