mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2024-11-29 23:42:00 +00:00
Items are now disabled from the weapon/item menus in teamplay
games if they are banned from the server
This commit is contained in:
parent
225243ef20
commit
7fb5f2182d
13 changed files with 618 additions and 82 deletions
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
||||
//============================================================================
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,6 +2283,13 @@ 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)
|
||||
{
|
||||
//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;
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
//
|
||||
|
@ -137,6 +141,24 @@
|
|||
#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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -108,8 +108,23 @@
|
|||
#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
|
||||
|
|
Loading…
Reference in a new issue