Items are now disabled from the weapon/item menus in teamplay

games if they are banned from the server
This commit is contained in:
Andrei Drexler 2002-12-09 00:58:49 +00:00
parent 225243ef20
commit 7fb5f2182d
13 changed files with 618 additions and 82 deletions

View file

@ -5,6 +5,10 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.99 2002/12/09 00:58:48 makro
// Items are now disabled from the weapon/item menus in teamplay
// games if they are banned from the server
//
// Revision 1.98 2002/10/30 20:04:34 jbravo
// Adding helmet
//
@ -363,6 +367,27 @@
#define RQ3_LASER_NAME "Lasersight"
#define RQ3_HELMET_NAME "Kevlar Helmet"
//Makro - moved from g_local.h (needed in the UI)
// JBravo: adding weaponbanning
#define WPF_MK23 0x00000001 // 1
#define WPF_MP5 0x00000002 // 2
#define WPF_M4 0x00000004 // 4
#define WPF_M3 0x00000008 // 8
#define WPF_HC 0x00000010 // 16
#define WPF_SNIPER 0x00000020 // 32
#define WPF_DUAL 0x00000040 // 64
#define WPF_KNIFE 0x00000080 // 128
#define WPF_GRENADE 0x00000100 // 256
// JBravo: adding itembanning
#define ITF_SILENCER 0x00000001 // 1
#define ITF_SLIPPERS 0x00000002 // 2
#define ITF_BANDOLIER 0x00000004 // 4
#define ITF_KEVLAR 0x00000008 // 8
#define ITF_LASER 0x00000010 // 16
#define ITF_HELMET 0x00000020 // 32
//
enum {
LIGHTS,
CAMERA,

View file

@ -5,6 +5,10 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.132 2002/12/09 00:58:49 makro
// Items are now disabled from the weapon/item menus in teamplay
// games if they are banned from the server
//
// Revision 1.131 2002/11/17 20:14:15 jbravo
// Itembanning added
//
@ -390,24 +394,8 @@ typedef enum {
#define SP_DOORTOGGLE 8 // Elder: added to enable mover toggling
#define MAXDOORTIME 100 // Elder: max time the opendoor key can stay open
// JBravo: adding weaponbanning
#define WPF_MK23 0x00000001 // 1
#define WPF_MP5 0x00000002 // 2
#define WPF_M4 0x00000004 // 4
#define WPF_M3 0x00000008 // 8
#define WPF_HC 0x00000010 // 16
#define WPF_SNIPER 0x00000020 // 32
#define WPF_DUAL 0x00000040 // 64
#define WPF_KNIFE 0x00000080 // 128
#define WPF_GRENADE 0x00000100 // 256
// JBravo: adding itembanning
#define ITF_SILENCER 0x00000001 // 1
#define ITF_SLIPPERS 0x00000002 // 2
#define ITF_BANDOLIER 0x00000004 // 4
#define ITF_KEVLAR 0x00000008 // 8
#define ITF_LASER 0x00000010 // 16
#define ITF_HELMET 0x00000020 // 32
//Makro - moved weapon/item banning flags to bg_public.h so that the UI
// can use them, too
//============================================================================

View file

@ -5,6 +5,10 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.129 2002/12/09 00:58:49 makro
// Items are now disabled from the weapon/item menus in teamplay
// games if they are banned from the server
//
// Revision 1.128 2002/11/17 20:14:15 jbravo
// Itembanning added
//
@ -618,8 +622,9 @@ static cvarTable_t gameCvarTable[] = {
{&g_RQ3_tdmMode, "g_RQ3_tdmMode", "0", CVAR_SERVERINFO | CVAR_LATCH | CVAR_SYSTEMINFO, 0, qtrue},
{&g_RQ3_haveHelmet, "g_RQ3_haveHelmet", "0", CVAR_ARCHIVE, 0, qtrue},
{&g_RQ3_idleaction, "g_RQ3_idleaction", "0", CVAR_ARCHIVE, 0, qtrue},
{&g_RQ3_weaponban, "g_RQ3_weaponban", "511", CVAR_ARCHIVE, 0, qtrue},
{&g_RQ3_itemban, "g_RQ3_itemban", "63", CVAR_ARCHIVE, 0, qtrue},
//Makro - added CVAR_SERVERINFO flag, it's needed for the UI
{&g_RQ3_weaponban, "g_RQ3_weaponban", "511", CVAR_ARCHIVE | CVAR_SERVERINFO, 0, qtrue},
{&g_RQ3_itemban, "g_RQ3_itemban", "63", CVAR_ARCHIVE | CVAR_SERVERINFO, 0, qtrue},
//Blaze: let cvar.cfg be set by the server admins
{&g_RQ3_cvarfile, "g_RQ3_cvarfile", "cvar.cfg", CVAR_ARCHIVE, 0, qtrue},
//Slicer: Team Status Cvars for MM

View file

@ -5,6 +5,10 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.53 2002/12/09 00:58:49 makro
// Items are now disabled from the weapon/item menus in teamplay
// games if they are banned from the server
//
// Revision 1.52 2002/10/30 20:04:34 jbravo
// Adding helmet
//
@ -2279,7 +2283,14 @@ A bmodel that just sits there, doing nothing. Can be used for conditional walls
//Makro - added for triggerable func_statics
void use_func_static(gentity_t * ent, gentity_t * other, gentity_t * activator)
{
ent->count ^= 1;
//Makro - added "pathtarget" checks
if (!Q_stricmp(ent->pathtarget, "on"))
ent->count = 1;
else
if (!Q_stricmp(ent->pathtarget, "off"))
ent->count = 0;
else
ent->count ^= 1;
if (ent->count) {
ent->s.eFlags &= ~EF_NODRAW;
ent->r.contents = CONTENTS_SOLID;

View file

@ -3,14 +3,166 @@
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: cgame - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP3.tmp" with contents
[
/nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fp"Release/cgame.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
"C:\Games\Quake3\rq3source\reaction\game\bg_pmove.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_weapons.c"
]
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP3.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP4.tmp" with contents
[
/nologo /base:"0x30000000" /subsystem:windows /dll /incremental:no /pdb:"Release/cgamex86.pdb" /map:"Release/cgamex86.map" /machine:I386 /def:".\cgame.def" /out:"../Release/cgamex86.dll" /implib:"Release/cgamex86.lib"
.\Release\bg_misc.obj
.\Release\bg_pmove.obj
.\Release\bg_slidemove.obj
.\Release\cg_atmospheric.obj
.\Release\cg_consolecmds.obj
.\Release\cg_draw.obj
.\Release\cg_drawtools.obj
.\Release\cg_effects.obj
.\Release\cg_ents.obj
.\Release\cg_event.obj
.\Release\cg_info.obj
.\Release\cg_localents.obj
.\Release\cg_main.obj
.\Release\cg_marks.obj
.\Release\cg_players.obj
.\Release\cg_playerstate.obj
.\Release\cg_predict.obj
.\Release\cg_scoreboard.obj
.\Release\cg_servercmds.obj
.\Release\cg_snapshot.obj
.\Release\cg_syscalls.obj
.\Release\cg_view.obj
.\Release\cg_weapons.obj
.\Release\q_math.obj
.\Release\q_shared.obj
.\Release\ui_shared.obj
]
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP4.tmp"
<h3>Output Window</h3>
Compiling...
bg_pmove.c
cg_weapons.c
Linking...
Creating library Release/cgamex86.lib and object Release/cgamex86.exp
<h3>Results</h3>
cgamex86.dll - 0 error(s), 0 warning(s)
<h3>
--------------------Configuration: game - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP8.tmp" with contents
[
/nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR"c:\reactionoutput/" /Fp"c:\reactionoutput/game.pch" /YX /Fo"c:\reactionoutput/" /Fd"c:\reactionoutput/" /FD /c
"C:\Games\Quake3\rq3source\reaction\game\bg_pmove.c"
"C:\Games\Quake3\rq3source\reaction\game\g_items.c"
"C:\Games\Quake3\rq3source\reaction\game\g_main.c"
"C:\Games\Quake3\rq3source\reaction\game\g_mover.c"
"C:\Games\Quake3\rq3source\reaction\game\g_teamplay.c"
]
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP8.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP9.tmp" with contents
[
kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows /dll /incremental:no /pdb:"c:\reactionoutput/qagamex86.pdb" /map:"c:\reactionoutput/qagamex86.map" /machine:I386 /def:".\game.def" /out:"..\Release/qagamex86.dll" /implib:"c:\reactionoutput/qagamex86.lib"
\reactionoutput\ai_chat.obj
\reactionoutput\ai_cmd.obj
\reactionoutput\ai_dmnet.obj
\reactionoutput\ai_dmq3.obj
\reactionoutput\ai_main.obj
\reactionoutput\ai_team.obj
\reactionoutput\ai_vcmd.obj
\reactionoutput\bg_misc.obj
\reactionoutput\bg_pmove.obj
\reactionoutput\bg_slidemove.obj
\reactionoutput\g_active.obj
\reactionoutput\g_arenas.obj
\reactionoutput\g_bot.obj
\reactionoutput\g_client.obj
\reactionoutput\g_cmds.obj
\reactionoutput\g_combat.obj
\reactionoutput\g_fileio.obj
\reactionoutput\g_items.obj
\reactionoutput\g_main.obj
\reactionoutput\g_matchmode.obj
\reactionoutput\g_mem.obj
\reactionoutput\g_misc.obj
\reactionoutput\g_missile.obj
\reactionoutput\g_mover.obj
\reactionoutput\g_session.obj
\reactionoutput\g_spawn.obj
\reactionoutput\g_svcmds.obj
\reactionoutput\g_syscalls.obj
\reactionoutput\g_target.obj
\reactionoutput\g_team.obj
\reactionoutput\g_teamplay.obj
\reactionoutput\g_trigger.obj
\reactionoutput\g_utils.obj
\reactionoutput\g_weapon.obj
\reactionoutput\q_math.obj
\reactionoutput\q_shared.obj
\reactionoutput\rxn_game.obj
\reactionoutput\zcam.obj
\reactionoutput\zcam_target.obj
]
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP9.tmp"
<h3>Output Window</h3>
Compiling...
bg_pmove.c
g_items.c
g_main.c
g_mover.c
g_teamplay.c
Linking...
Creating library c:\reactionoutput/qagamex86.lib and object c:\reactionoutput/qagamex86.exp
<h3>Results</h3>
qagamex86.dll - 0 error(s), 0 warning(s)
<h3>
--------------------Configuration: ui - Win32 Release TA--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPD.tmp" with contents
[
/nologo /G6 /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "UI_EXPORTS" /Fp"Release_TA/ta_ui.pch" /YX /Fo"Release_TA/" /Fd"Release_TA/" /FD /c
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_main.c"
]
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPD.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPE.tmp" with contents
[
/nologo /base:"0x40000000" /dll /incremental:no /pdb:"Release_TA/uix86.pdb" /map:"Release_TA/uix86.map" /machine:I386 /def:".\ui.def" /out:"../Release/uix86.dll" /implib:"Release_TA/uix86.lib"
.\Release_TA\bg_misc.obj
.\Release_TA\q_math.obj
.\Release_TA\q_shared.obj
.\Release_TA\ui_atoms.obj
.\Release_TA\ui_gameinfo.obj
.\Release_TA\ui_main.obj
.\Release_TA\ui_players.obj
.\Release_TA\ui_shared.obj
.\Release_TA\ui_syscalls.obj
.\Release_TA\ui_util.obj
]
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPE.tmp"
<h3>Output Window</h3>
Compiling...
ui_main.c
C:\Games\Quake3\rq3source\reaction\ta_ui\ui_main.c(4824) : warning C4101: 'game' : unreferenced local variable
Linking...
Creating library Release_TA/uix86.lib and object Release_TA/uix86.exp
<h3>Results</h3>
uix86.dll - 0 error(s), 1 warning(s)
</pre>
</body>
</html>

View file

@ -5,6 +5,10 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.10 2002/12/09 00:58:49 makro
// Items are now disabled from the weapon/item menus in teamplay
// games if they are banned from the server
//
// Revision 1.9 2002/11/09 13:05:02 makro
// g_RQ3_teamXname cvars are now used in the join menu
//
@ -102,41 +106,59 @@
#define FEEDER_MMHEADS 0x11
// display flags
#define CG_SHOW_BLUE_TEAM_HAS_REDFLAG 0x00000001
#define CG_SHOW_RED_TEAM_HAS_BLUEFLAG 0x00000002
#define CG_SHOW_ANYTEAMGAME 0x00000004
#define CG_SHOW_HARVESTER 0x00000008
#define CG_SHOW_ONEFLAG 0x00000010
#define CG_SHOW_CTF 0x00000020
#define CG_SHOW_OBELISK 0x00000040
#define CG_SHOW_HEALTHCRITICAL 0x00000080
#define CG_SHOW_SINGLEPLAYER 0x00000100
#define CG_SHOW_TOURNAMENT 0x00000200
#define CG_SHOW_DURINGINCOMINGVOICE 0x00000400
#define CG_SHOW_IF_PLAYER_HAS_FLAG 0x00000800
#define CG_SHOW_LANPLAYONLY 0x00001000
#define CG_SHOW_MINED 0x00002000
#define CG_SHOW_HEALTHOK 0x00004000
#define CG_SHOW_TEAMINFO 0x00008000
#define CG_SHOW_BLUE_TEAM_HAS_REDFLAG 0x00000001
#define CG_SHOW_RED_TEAM_HAS_BLUEFLAG 0x00000002
#define CG_SHOW_ANYTEAMGAME 0x00000004
#define CG_SHOW_HARVESTER 0x00000008
#define CG_SHOW_ONEFLAG 0x00000010
#define CG_SHOW_CTF 0x00000020
#define CG_SHOW_OBELISK 0x00000040
#define CG_SHOW_HEALTHCRITICAL 0x00000080
#define CG_SHOW_SINGLEPLAYER 0x00000100
#define CG_SHOW_TOURNAMENT 0x00000200
#define CG_SHOW_DURINGINCOMINGVOICE 0x00000400
#define CG_SHOW_IF_PLAYER_HAS_FLAG 0x00000800
#define CG_SHOW_LANPLAYONLY 0x00001000
#define CG_SHOW_MINED 0x00002000
#define CG_SHOW_HEALTHOK 0x00004000
#define CG_SHOW_TEAMINFO 0x00008000
#define CG_SHOW_NOTEAMINFO 0x00010000
#define CG_SHOW_OTHERTEAMHASFLAG 0x00020000
#define CG_SHOW_YOURTEAMHASENEMYFLAG 0x00040000
#define CG_SHOW_ANYNONTEAMGAME 0x00080000
#define CG_SHOW_2DONLY 0x10000000
#define CG_SHOW_OTHERTEAMHASFLAG 0x00020000
#define CG_SHOW_YOURTEAMHASENEMYFLAG 0x00040000
#define CG_SHOW_ANYNONTEAMGAME 0x00080000
#define CG_SHOW_2DONLY 0x10000000
#define UI_SHOW_LEADER 0x00000001
#define UI_SHOW_NOTLEADER 0x00000002
#define UI_SHOW_FAVORITESERVERS 0x00000004
#define UI_SHOW_ANYNONTEAMGAME 0x00000008
#define UI_SHOW_ANYTEAMGAME 0x00000010
#define UI_SHOW_NEWHIGHSCORE 0x00000020
#define UI_SHOW_DEMOAVAILABLE 0x00000040
#define UI_SHOW_NEWBESTTIME 0x00000080
#define UI_SHOW_FFA 0x00000100
#define UI_SHOW_NOTFFA 0x00000200
#define UI_SHOW_NETANYNONTEAMGAME 0x00000400
#define UI_SHOW_NETANYTEAMGAME 0x00000800
#define UI_SHOW_FAVORITESERVERS 0x00000004
#define UI_SHOW_ANYNONTEAMGAME 0x00000008
#define UI_SHOW_ANYTEAMGAME 0x00000010
#define UI_SHOW_NEWHIGHSCORE 0x00000020
#define UI_SHOW_DEMOAVAILABLE 0x00000040
#define UI_SHOW_NEWBESTTIME 0x00000080
#define UI_SHOW_FFA 0x00000100
#define UI_SHOW_NOTFFA 0x00000200
#define UI_SHOW_NETANYNONTEAMGAME 0x00000400
#define UI_SHOW_NETANYTEAMGAME 0x00000800
#define UI_SHOW_NOTFAVORITESERVERS 0x00001000
//Makro - weapon selection
#define UI_SHOW_WEAP1 0x00002000
#define UI_SHOW_WEAP2 0x00004000
#define UI_SHOW_WEAP3 0x00008000
#define UI_SHOW_WEAP4 0x00010000
#define UI_SHOW_WEAP5 0x00020000
#define UI_SHOW_WEAP6 0x00040000
#define UI_SHOW_WEAP7 0x00080000
//Makro - item selection
#define UI_SHOW_ITEM1 0x00100000
#define UI_SHOW_ITEM2 0x00200000
#define UI_SHOW_ITEM3 0x00400000
#define UI_SHOW_ITEM4 0x00800000
#define UI_SHOW_ITEM5 0x01000000
#define UI_SHOW_ITEM6 0x02000000
//Makro - toggle
#define UI_SHOW_TOGGLE 0x04000000
// owner draw types
// ideally these should be done outside of this file but

View file

@ -6,19 +6,13 @@
--------------------Configuration: ui - Win32 Release TA--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP12C.tmp" with contents
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPB7.tmp" with contents
[
/nologo /G6 /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "UI_EXPORTS" /Fp"Release_TA/ta_ui.pch" /YX /Fo"Release_TA/" /Fd"Release_TA/" /FD /c
"C:\Games\Quake3\rq3source\reaction\game\bg_misc.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_atoms.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_gameinfo.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_main.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_players.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_shared.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_syscalls.c"
]
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP12C.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP12D.tmp" with contents
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPB7.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPB8.tmp" with contents
[
/nologo /base:"0x40000000" /dll /incremental:no /pdb:"Release_TA/uix86.pdb" /map:"Release_TA/uix86.map" /machine:I386 /def:".\ui.def" /out:"../Release/uix86.dll" /implib:"Release_TA/uix86.lib"
.\Release_TA\bg_misc.obj
@ -32,16 +26,10 @@ Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP12D.tmp" with conte
.\Release_TA\ui_syscalls.obj
.\Release_TA\ui_util.obj
]
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP12D.tmp"
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPB8.tmp"
<h3>Output Window</h3>
Compiling...
bg_misc.c
ui_atoms.c
ui_gameinfo.c
ui_main.c
ui_players.c
ui_shared.c
ui_syscalls.c
Linking...
Creating library Release_TA/uix86.lib and object Release_TA/uix86.exp

View file

@ -5,6 +5,10 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.19 2002/12/09 00:58:49 makro
// Items are now disabled from the weapon/item menus in teamplay
// games if they are banned from the server
//
// Revision 1.18 2002/11/09 14:17:51 makro
// Cleaned up about menu code
// Made the weapon menu unavailable in TDM if g_RQ3_tdmMode is not 0
@ -360,7 +364,7 @@ static void UI_CalcPostGameStats()
}
//Makro - returns qtrue if the player can access the WeaponMenu
//Makro - returns qtrue if the player can access the weapon/item menus
qboolean UI_RQ3_WeaponMenuAccess()
{
char info[MAX_INFO_STRING];

View file

@ -5,6 +5,10 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.22 2002/12/09 00:58:49 makro
// Items are now disabled from the weapon/item menus in teamplay
// games if they are banned from the server
//
// Revision 1.21 2002/11/09 14:17:51 makro
// Cleaned up about menu code
// Made the weapon menu unavailable in TDM if g_RQ3_tdmMode is not 0
@ -965,6 +969,9 @@ typedef struct {
char ingameServerInfo[MAX_SERVERSTATUS_LINES][2][32];
int ingameServerInfoLineCount;
//Makro - weapon/item bans
int weapBan, itemBan;
} uiInfo_t;
extern uiInfo_t uiInfo;

View file

@ -5,6 +5,10 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.58 2002/12/09 00:58:49 makro
// Items are now disabled from the weapon/item menus in teamplay
// games if they are banned from the server
//
// Revision 1.57 2002/11/09 14:17:51 makro
// Cleaned up about menu code
// Made the weapon menu unavailable in TDM if g_RQ3_tdmMode is not 0
@ -2828,11 +2832,50 @@ static void UI_OwnerDraw(float x, float y, float w, float h, float text_x, float
}
typedef struct
{
int banFlag, uiFlag;
} banInfo_t;
banInfo_t menuWeapBans[] =
{
{WPF_MP5, UI_SHOW_WEAP1},
{WPF_M3, UI_SHOW_WEAP2},
{WPF_HC, UI_SHOW_WEAP3},
{WPF_SNIPER, UI_SHOW_WEAP4},
{WPF_M4, UI_SHOW_WEAP5},
{WPF_KNIFE, UI_SHOW_WEAP6},
{WPF_DUAL | WPF_MK23, UI_SHOW_WEAP7}
};
static const int menuWeapCount = sizeof(menuWeapBans)/sizeof(banInfo_t);
banInfo_t menuItemBans[] =
{
{ITF_KEVLAR, UI_SHOW_ITEM1},
{ITF_LASER, UI_SHOW_ITEM2},
{ITF_SLIPPERS, UI_SHOW_ITEM3},
{ITF_SILENCER, UI_SHOW_ITEM4},
{ITF_BANDOLIER, UI_SHOW_ITEM5},
{ITF_HELMET, UI_SHOW_ITEM6}
};
static const int menuItemCount = sizeof(menuItemBans)/sizeof(banInfo_t);
/* Makro - this was ugly
static int menuWeapons[] = {WPF_MP5, WPF_M3, WPF_HC, WPF_SNIPER, WPF_M4, WPF_KNIFE, WPF_GRENADE};
static int menuWeapFlags[] = {UI_SHOW_WEAP1, UI_SHOW_WEAP2, UI_SHOW_WEAP3, UI_SHOW_WEAP4, UI_SHOW_WEAP5, UI_SHOW_WEAP6, UI_SHOW_WEAP7};
static const int menuWeapCount = sizeof(menuWeapons)/sizeof(int);
static int menuItems[] = {ITF_KEVLAR, ITF_LASER, ITF_SLIPPERS, ITF_SILENCER, ITF_BANDOLIER, ITF_HELMET};
static int menuItemFlags[] = {UI_SHOW_ITEM1, UI_SHOW_ITEM2, UI_SHOW_ITEM3, UI_SHOW_ITEM4, UI_SHOW_ITEM5, UI_SHOW_ITEM6};
static const int menuItemCount = sizeof(menuItems)/sizeof(int);
*/
static qboolean UI_OwnerDrawVisible(int flags)
{
qboolean vis = qtrue;
while (flags) {
//Makro - was this really needed ?
//while (flags) {
//Makro - added
int i;
if (flags & UI_SHOW_FFA) {
if (trap_Cvar_VariableValue("g_gametype") != GT_FFA) {
@ -2937,10 +2980,32 @@ static qboolean UI_OwnerDrawVisible(int flags)
vis = qfalse;
}
flags &= ~UI_SHOW_DEMOAVAILABLE;
} else {
}/* else {
flags = 0;
}*/
//Makro - item/weapon banning
for (i=0; i<menuWeapCount; i++)
if (flags & menuWeapBans[i].uiFlag) {
if (!(uiInfo.weapBan & menuWeapBans[i].banFlag))
vis = qfalse;
flags &= ~menuWeapBans[i].uiFlag;
}
for (i=0; i<menuItemCount; i++)
if (flags & menuItemBans[i].uiFlag) {
if (!(uiInfo.itemBan & menuItemBans[i].banFlag))
vis = qfalse;
//special check for the helmet
else if (menuItemBans[i].banFlag == ITF_HELMET)
if (trap_Cvar_VariableValue("g_gametype") != GT_TEAM || !trap_Cvar_VariableValue("g_RQ3_haveHelmet"))
vis = qfalse;
flags &= ~menuItemBans[i].uiFlag;
}
//Makro - added toggle flag
if (flags & UI_SHOW_TOGGLE) {
vis ^= 1;
}
}
flags = 0;
//}
return vis;
}
@ -4264,6 +4329,12 @@ static void UI_RunMenuScript(char **args)
trap_GetConfigString(CS_SERVERINFO, info, sizeof(info));
strncpy(team1Name, UI_Cvar_VariableString("g_RQ3_team1Name"), sizeof(team1Name));
strncpy(team2Name, UI_Cvar_VariableString("g_RQ3_team2Name"), sizeof(team2Name));
//Makro - update weapon/item banning info
} else if (Q_stricmp(name, "updateItemBans") == 0) {
char info[MAX_INFO_STRING];
trap_GetConfigString(CS_SERVERINFO, info, sizeof(info));
uiInfo.weapBan = atoi(Info_ValueForKey(info, "g_RQ3_weaponBan"));
uiInfo.itemBan = atoi(Info_ValueForKey(info, "g_RQ3_itemBan"));
} else if (Q_stricmp(name, "saveControls") == 0) {
Controls_SetConfig(qtrue);
} else if (Q_stricmp(name, "loadControls") == 0) {
@ -6338,6 +6409,9 @@ UI_Init
void _UI_Init(qboolean inGameLoad)
{
const char *menuSet;
//Makro - added
char info[MAX_INFO_STRING];
//
int start;
//uiInfo.inGameLoad = inGameLoad;
@ -6481,6 +6555,11 @@ void _UI_Init(qboolean inGameLoad)
//Makro - set default net filter index to 0
trap_Cvar_Set("ui_serverFilterType", "0");
//Makro - read item/weapon banning info
trap_GetConfigString(CS_SERVERINFO, info, sizeof(info));
uiInfo.weapBan = atoi(Info_ValueForKey(info, "g_RQ3_weaponBan"));
uiInfo.itemBan = atoi(Info_ValueForKey(info, "g_RQ3_itemBan"));
uiInfo.serverStatus.currentServerCinematic = -1;
uiInfo.previewMovie = -1;

View file

@ -12,7 +12,7 @@
style WINDOW_STYLE_EMPTY
shadowStyle 1
border 0
onOpen { play "sound/misc/menu1.wav" ; setFocus kevlar }
onOpen { play "sound/misc/menu1.wav" ; setFocus kevlar ; uiScript "updateItemBans" }
onEsc { play "sound/misc/menu2.wav" ; close ingame_item }
//Window
@ -54,6 +54,7 @@
itemdef {
shortcutKey "1"
ownerdrawFlag UI_SHOW_ITEM1
name "kevlar"
rect 120 48 128 16
style WINDOW_STYLE_EMPTY
@ -70,8 +71,28 @@
action { play "sound/misc/menu1.wav" ; exec "choose kevlar" ; close ingame_item }
}
itemdef {
ownerdrawFlag UI_SHOW_ITEM1
ownerdrawFlag UI_SHOW_TOGGLE
name "kevlar"
rect 120 48 128 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "1. Kevlar Vest"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
shortcutKey "2"
ownerdrawFlag UI_SHOW_ITEM2
name "laser"
rect 120 68 128 16
style WINDOW_STYLE_EMPTY
@ -88,8 +109,28 @@
action { play "sound/misc/menu1.wav" ; exec "choose laser" ; close ingame_item }
}
itemdef {
ownerdrawFlag UI_SHOW_ITEM2
ownerdrawFlag UI_SHOW_TOGGLE
name "laser"
rect 120 68 128 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "2. Lasersight"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
name "slippers"
ownerdrawFlag UI_SHOW_ITEM3
shortcutKey "3"
rect 120 88 128 16
style WINDOW_STYLE_EMPTY
@ -106,8 +147,28 @@
action { play "sound/misc/menu1.wav" ; exec "choose slippers" ; close ingame_item }
}
itemdef {
name "slippers"
ownerdrawFlag UI_SHOW_ITEM3
ownerdrawFlag UI_SHOW_TOGGLE
rect 120 88 128 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "3. Stealth Slippers"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
shortcutKey "4"
ownerdrawFlag UI_SHOW_ITEM4
name "silencer"
rect 120 108 128 16
style WINDOW_STYLE_EMPTY
@ -124,8 +185,28 @@
action { play "sound/misc/menu1.wav" ; exec "choose silencer" ; close ingame_item }
}
itemdef {
ownerdrawFlag UI_SHOW_ITEM4
ownerdrawFlag UI_SHOW_TOGGLE
name "silencer"
rect 120 108 128 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "4. Silencer"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
name "bandolier"
ownerdrawFlag UI_SHOW_ITEM5
shortcutKey "5"
rect 120 128 128 16
style WINDOW_STYLE_EMPTY
@ -142,8 +223,28 @@
action { play "sound/misc/menu1.wav" ; exec "choose bandolier" ; close ingame_item }
}
itemdef {
name "bandolier"
ownerdrawFlag UI_SHOW_ITEM5
ownerdrawFlag UI_SHOW_TOGGLE
rect 120 128 128 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "5. Bandolier"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
name "helmet"
ownerdrawFlag UI_SHOW_ITEM6
shortcutKey "6"
rect 120 148 128 16
style WINDOW_STYLE_EMPTY

View file

@ -12,7 +12,7 @@
style WINDOW_STYLE_EMPTY
shadowStyle 1
border 0
onOpen { play "sound/misc/menu1.wav" ; setFocus mp5 }
onOpen { play "sound/misc/menu1.wav" ; setFocus mp5 ; uiScript "updateItemBans" }
onEsc { play "sound/misc/menu2.wav" ; close ingame_weapon }
//Window
@ -54,6 +54,7 @@
itemdef {
shortcutKey "1"
ownerdrawFlag UI_SHOW_WEAP1
name "mp5"
rect 152 48 160 16
style WINDOW_STYLE_EMPTY
@ -71,8 +72,28 @@
}
itemdef {
shortcutKey "2"
ownerdrawFlag UI_SHOW_WEAP1
ownerdrawFlag UI_SHOW_TOGGLE
name "mp5"
rect 152 48 160 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "1. MP5/10 Submachinegun"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
name "m3"
shortcutKey "2"
ownerdrawFlag UI_SHOW_WEAP2
rect 152 68 160 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_BUTTON
@ -88,8 +109,28 @@
action { exec "choose m3" ; close ingame_weapon ; open ingame_item }
}
itemdef {
name "m3"
ownerdrawFlag UI_SHOW_WEAP2
ownerdrawFlag UI_SHOW_TOGGLE
rect 152 68 160 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "2. M3 Super 90 Assault Shotgun"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
name "hc"
ownerdrawFlag UI_SHOW_WEAP3
shortcutKey "3"
rect 152 88 160 16
style WINDOW_STYLE_EMPTY
@ -106,8 +147,28 @@
action { exec "choose hc" ; close ingame_weapon ; open ingame_item }
}
itemdef {
name "hc"
ownerdrawFlag UI_SHOW_WEAP3
ownerdrawFlag UI_SHOW_TOGGLE
rect 152 88 160 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "3. Handcannon"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
name "sniper"
ownerdrawFlag UI_SHOW_WEAP4
shortcutKey "4"
rect 152 108 160 16
style WINDOW_STYLE_EMPTY
@ -124,8 +185,28 @@
action { exec "choose sniper" ; close ingame_weapon ; open ingame_item }
}
itemdef {
name "sniper"
ownerdrawFlag UI_SHOW_WEAP4
ownerdrawFlag UI_SHOW_TOGGLE
rect 152 108 160 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "4. Sniper Rifle"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
name "m4"
ownerdrawFlag UI_SHOW_WEAP5
shortcutKey "5"
rect 152 128 160 16
style WINDOW_STYLE_EMPTY
@ -142,8 +223,28 @@
action { exec "choose m4" ; close ingame_weapon ; open ingame_item }
}
itemdef {
name "m4"
ownerdrawFlag UI_SHOW_WEAP5
ownerdrawFlag UI_SHOW_TOGGLE
rect 152 128 160 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "5. M4 Assault Rifle"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
name "knives"
ownerdrawFlag UI_SHOW_WEAP6
shortcutKey "6"
rect 152 148 160 16
style WINDOW_STYLE_EMPTY
@ -160,8 +261,28 @@
action { exec "choose knives" ; close ingame_weapon ; open ingame_item }
}
itemdef {
name "knives"
ownerdrawFlag UI_SHOW_WEAP6
ownerdrawFlag UI_SHOW_TOGGLE
rect 152 148 160 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "6. Combat Knives"
forecolor .5 .5 .5 .5
visible 1
decoration
}
itemdef {
name "akimbo"
ownerdrawFlag UI_SHOW_WEAP7
shortcutKey "7"
rect 152 168 160 16
style WINDOW_STYLE_EMPTY
@ -178,6 +299,24 @@
action { exec "choose akimbo" ; close ingame_weapon ; open ingame_item }
}
itemdef {
name "akimbo"
ownerdrawFlag UI_SHOW_WEAP7
ownerdrawFlag UI_SHOW_TOGGLE
rect 152 168 160 16
style WINDOW_STYLE_EMPTY
type ITEM_TYPE_TEXT
textstyle ITEM_TEXTSTYLE_SHADOWED
textscale .225
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
text "7. Dual Mk23 Pistols"
forecolor .5 .5 .5 .5
visible 1
decoration
}
//Weapon preview
//Background

View file

@ -95,21 +95,36 @@
#define CG_SHOW_2DONLY 0x10000000
#define UI_SHOW_LEADER 0x00000001
#define UI_SHOW_NOTLEADER 0x00000002
#define UI_SHOW_LEADER 0x00000001
#define UI_SHOW_NOTLEADER 0x00000002
#define UI_SHOW_FAVORITESERVERS 0x00000004
#define UI_SHOW_ANYNONTEAMGAME 0x00000008
#define UI_SHOW_ANYTEAMGAME 0x00000010
#define UI_SHOW_ANYTEAMGAME 0x00000010
#define UI_SHOW_NEWHIGHSCORE 0x00000020
#define UI_SHOW_DEMOAVAILABLE 0x00000040
#define UI_SHOW_NEWBESTTIME 0x00000080
#define UI_SHOW_FFA 0x00000100
#define UI_SHOW_NOTFFA 0x00000200
#define UI_SHOW_NEWBESTTIME 0x00000080
#define UI_SHOW_FFA 0x00000100
#define UI_SHOW_NOTFFA 0x00000200
#define UI_SHOW_NETANYNONTEAMGAME 0x00000400
#define UI_SHOW_NETANYTEAMGAME 0x00000800
#define UI_SHOW_NOTFAVORITESERVERS 0x00001000
//Makro - weapon selection
#define UI_SHOW_WEAP1 0x00002000
#define UI_SHOW_WEAP2 0x00004000
#define UI_SHOW_WEAP3 0x00008000
#define UI_SHOW_WEAP4 0x00010000
#define UI_SHOW_WEAP5 0x00020000
#define UI_SHOW_WEAP6 0x00040000
#define UI_SHOW_WEAP7 0x00080000
//Makro - item selection
#define UI_SHOW_ITEM1 0x00100000
#define UI_SHOW_ITEM2 0x00200000
#define UI_SHOW_ITEM3 0x00400000
#define UI_SHOW_ITEM4 0x00800000
#define UI_SHOW_ITEM5 0x01000000
#define UI_SHOW_ITEM6 0x02000000
//Makro - toggle
#define UI_SHOW_TOGGLE 0x04000000
// owner draw types