diff --git a/src/Makefile b/src/Makefile index df39c9ce..e34771cd 100644 --- a/src/Makefile +++ b/src/Makefile @@ -9,7 +9,7 @@ all: menu: mkdir -p ../platform/data.pk3dir $(CC) menu-fn/progs.src - $(CC) menu-vgui/progs.src + #$(CC) menu-vgui/progs.src games: mkdir -p ../valve/data.pk3dir diff --git a/src/client/cstrike/hud_weaponselect.c b/src/client/cstrike/hud_weaponselect.c index 790092ce..9488fb98 100644 --- a/src/client/cstrike/hud_weaponselect.c +++ b/src/client/cstrike/hud_weaponselect.c @@ -149,22 +149,23 @@ HUD_SlotSelect(int slot) } } } else { - /* increment our current selected weapon by 1 */ - pSeat->m_iHUDWeaponSelected++; - pSeat->m_flHUDWeaponSelectTime = time + 3; - - /* haven't got it. */ - if (!(pl.g_items & g_weapons[pSeat->m_iHUDWeaponSelected].id)) { - HUD_SlotSelect(slot); + int first = -1; + for (i = 1; i < g_weapons.length; i++) { + if (g_weapons[i].slot == slot && pl.g_items & g_weapons[i].id) { + if (i < pSeat->m_iHUDWeaponSelected && first == -1) { + first = i; + } else if (i > pSeat->m_iHUDWeaponSelected) { + first = -1; + pSeat->m_iHUDWeaponSelected = i; + pSeat->m_flHUDWeaponSelectTime = time + 3; + break; + } + } } - /* reset when out of bounds or outside slot area */ - if (pSeat->m_iHUDWeaponSelected >= g_weapons.length) { - pSeat->m_iHUDWeaponSelected = 0; - HUD_SlotSelect(slot); - } else if (g_weapons[pSeat->m_iHUDWeaponSelected].slot != slot) { - pSeat->m_iHUDWeaponSelected = 0; - HUD_SlotSelect(slot); + if (first > 0) { + pSeat->m_iHUDWeaponSelected = first; + pSeat->m_flHUDWeaponSelectTime = time + 3; } } } diff --git a/src/client/gearbox/hud_weaponselect.c b/src/client/gearbox/hud_weaponselect.c index 511391b0..ff58f1a5 100644 --- a/src/client/gearbox/hud_weaponselect.c +++ b/src/client/gearbox/hud_weaponselect.c @@ -129,6 +129,11 @@ HUD_SlotSelect(int slot) int curslot = g_weapons[pSeat->m_iHUDWeaponSelected].slot; int i; + if (g_textmenu != "") { + Textmenu_Input(slot); + return; + } + /* hack to see if we have ANY weapons at all. */ if (!pl.activeweapon) { return; @@ -150,22 +155,23 @@ HUD_SlotSelect(int slot) } } } else { - /* increment our current selected weapon by 1 */ - pSeat->m_iHUDWeaponSelected++; - pSeat->m_flHUDWeaponSelectTime = time + 3; - - /* haven't got it. */ - if (!(pl.g_items & g_weapons[pSeat->m_iHUDWeaponSelected].id)) { - HUD_SlotSelect(slot); + int first = -1; + for (i = 1; i < g_weapons.length; i++) { + if (g_weapons[i].slot == slot && pl.g_items & g_weapons[i].id) { + if (i < pSeat->m_iHUDWeaponSelected && first == -1) { + first = i; + } else if (i > pSeat->m_iHUDWeaponSelected) { + first = -1; + pSeat->m_iHUDWeaponSelected = i; + pSeat->m_flHUDWeaponSelectTime = time + 3; + break; + } + } } - /* reset when out of bounds or outside slot area */ - if (pSeat->m_iHUDWeaponSelected >= g_weapons.length) { - pSeat->m_iHUDWeaponSelected = 0; - HUD_SlotSelect(slot); - } else if (g_weapons[pSeat->m_iHUDWeaponSelected].slot != slot) { - pSeat->m_iHUDWeaponSelected = 0; - HUD_SlotSelect(slot); + if (first > 0) { + pSeat->m_iHUDWeaponSelected = first; + pSeat->m_flHUDWeaponSelectTime = time + 3; } } } diff --git a/src/client/rewolf/hud_weaponselect.c b/src/client/rewolf/hud_weaponselect.c index 0c8c37eb..fa6b67b0 100644 --- a/src/client/rewolf/hud_weaponselect.c +++ b/src/client/rewolf/hud_weaponselect.c @@ -118,12 +118,18 @@ int HUD_InSlotPos(int slot, int pos) return -1; } -void HUD_SlotSelect(int slot) +void +HUD_SlotSelect(int slot) { player pl = (player)pSeat->m_ePlayer; int curslot = g_weapons[pSeat->m_iHUDWeaponSelected].slot; int i; + if (g_textmenu != "") { + Textmenu_Input(slot); + return; + } + /* hack to see if we have ANY weapons at all. */ if (!pl.activeweapon) { return; @@ -145,22 +151,23 @@ void HUD_SlotSelect(int slot) } } } else { - /* increment our current selected weapon by 1 */ - pSeat->m_iHUDWeaponSelected++; - pSeat->m_flHUDWeaponSelectTime = time + 3; - - /* haven't got it. */ - if (!(pl.g_items & g_weapons[pSeat->m_iHUDWeaponSelected].id)) { - HUD_SlotSelect(slot); + int first = -1; + for (i = 1; i < g_weapons.length; i++) { + if (g_weapons[i].slot == slot && pl.g_items & g_weapons[i].id) { + if (i < pSeat->m_iHUDWeaponSelected && first == -1) { + first = i; + } else if (i > pSeat->m_iHUDWeaponSelected) { + first = -1; + pSeat->m_iHUDWeaponSelected = i; + pSeat->m_flHUDWeaponSelectTime = time + 3; + break; + } + } } - /* reset when out of bounds or outside slot area */ - if (pSeat->m_iHUDWeaponSelected >= g_weapons.length) { - pSeat->m_iHUDWeaponSelected = 0; - HUD_SlotSelect(slot); - } else if (g_weapons[pSeat->m_iHUDWeaponSelected].slot != slot) { - pSeat->m_iHUDWeaponSelected = 0; - HUD_SlotSelect(slot); + if (first > 0) { + pSeat->m_iHUDWeaponSelected = first; + pSeat->m_flHUDWeaponSelectTime = time + 3; } } } diff --git a/src/client/valve/hud_weaponselect.c b/src/client/valve/hud_weaponselect.c index 67063c0d..bf82f50f 100644 --- a/src/client/valve/hud_weaponselect.c +++ b/src/client/valve/hud_weaponselect.c @@ -123,6 +123,11 @@ HUD_SlotSelect(int slot) int curslot = g_weapons[pSeat->m_iHUDWeaponSelected].slot; int i; + if (g_textmenu != "") { + Textmenu_Input(slot); + return; + } + /* hack to see if we have ANY weapons at all. */ if (!pl.activeweapon) { return; @@ -144,22 +149,23 @@ HUD_SlotSelect(int slot) } } } else { - /* increment our current selected weapon by 1 */ - pSeat->m_iHUDWeaponSelected++; - pSeat->m_flHUDWeaponSelectTime = time + 3; - - /* haven't got it. */ - if (!(pl.g_items & g_weapons[pSeat->m_iHUDWeaponSelected].id)) { - HUD_SlotSelect(slot); + int first = -1; + for (i = 1; i < g_weapons.length; i++) { + if (g_weapons[i].slot == slot && pl.g_items & g_weapons[i].id) { + if (i < pSeat->m_iHUDWeaponSelected && first == -1) { + first = i; + } else if (i > pSeat->m_iHUDWeaponSelected) { + first = -1; + pSeat->m_iHUDWeaponSelected = i; + pSeat->m_flHUDWeaponSelectTime = time + 3; + break; + } + } } - /* reset when out of bounds or outside slot area */ - if (pSeat->m_iHUDWeaponSelected >= g_weapons.length) { - pSeat->m_iHUDWeaponSelected = 0; - HUD_SlotSelect(slot); - } else if (g_weapons[pSeat->m_iHUDWeaponSelected].slot != slot) { - pSeat->m_iHUDWeaponSelected = 0; - HUD_SlotSelect(slot); + if (first > 0) { + pSeat->m_iHUDWeaponSelected = first; + pSeat->m_flHUDWeaponSelectTime = time + 3; } } }