mirror of
https://github.com/UberGames/rpgxEF.git
synced 2024-11-10 07:11:34 +00:00
Linux Beta 2.3 Fix
This commit is contained in:
parent
e16722e2d2
commit
9736433110
11 changed files with 278 additions and 262 deletions
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -1,3 +1,9 @@
|
||||||
|
#################
|
||||||
|
## Kdevelop 4.X
|
||||||
|
#################
|
||||||
|
.kdev4/
|
||||||
|
rpgxEF.kdev4
|
||||||
|
|
||||||
#################
|
#################
|
||||||
## Eclipse
|
## Eclipse
|
||||||
#################
|
#################
|
||||||
|
|
51
Makefile
51
Makefile
|
@ -385,14 +385,13 @@ ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu"))
|
||||||
SHLIBEXT=so
|
SHLIBEXT=so
|
||||||
SHLIBCFLAGS=-fPIC -fvisibility=hidden
|
SHLIBCFLAGS=-fPIC -fvisibility=hidden
|
||||||
SHLIBLDFLAGS=-shared $(LDFLAGS) -pthread
|
SHLIBLDFLAGS=-shared $(LDFLAGS) -pthread
|
||||||
|
|
||||||
ifeq ($(VM_USE_SQL), 1)
|
ifeq ($(VM_USE_SQL), 1)
|
||||||
SHLIBCFLAGS+=-DSQL
|
SHLIBCFLAGS+=-DSQL
|
||||||
endif
|
endif
|
||||||
|
|
||||||
THREAD_LIBS=-lpthread
|
THREAD_LIBS=-lpthread
|
||||||
LIBS=-ldl -lm
|
LIBS=-ldl -lm
|
||||||
LIBS += -L/emul/linux/x86/usr/lib
|
|
||||||
|
|
||||||
CLIENT_LIBS=$(SDL_LIBS)
|
CLIENT_LIBS=$(SDL_LIBS)
|
||||||
RENDERER_LIBS = $(SDL_LIBS) -lGL
|
RENDERER_LIBS = $(SDL_LIBS) -lGL
|
||||||
|
@ -445,7 +444,7 @@ ifeq ($(PLATFORM),darwin)
|
||||||
CLIENT_LIBS=
|
CLIENT_LIBS=
|
||||||
RENDERER_LIBS=
|
RENDERER_LIBS=
|
||||||
OPTIMIZEVM=
|
OPTIMIZEVM=
|
||||||
|
|
||||||
BASE_CFLAGS = -Wall -Wimplicit -Wstrict-prototypes
|
BASE_CFLAGS = -Wall -Wimplicit -Wstrict-prototypes
|
||||||
|
|
||||||
ifeq ($(ARCH),ppc)
|
ifeq ($(ARCH),ppc)
|
||||||
|
@ -508,7 +507,7 @@ ifeq ($(PLATFORM),darwin)
|
||||||
SHLIBEXT=dylib
|
SHLIBEXT=dylib
|
||||||
SHLIBCFLAGS=-fPIC -fno-common
|
SHLIBCFLAGS=-fPIC -fno-common
|
||||||
SHLIBLDFLAGS=-dynamiclib $(LDFLAGS) -Wl,-U,_com_altivec -pthread
|
SHLIBLDFLAGS=-dynamiclib $(LDFLAGS) -Wl,-U,_com_altivec -pthread
|
||||||
|
|
||||||
ifeq ($(VM_USE_SQL), 1)
|
ifeq ($(VM_USE_SQL), 1)
|
||||||
SHLIBCFLAGS+=-DSQL
|
SHLIBCFLAGS+=-DSQL
|
||||||
endif
|
endif
|
||||||
|
@ -549,7 +548,7 @@ ifeq ($(PLATFORM),mingw32)
|
||||||
CLIENT_LDFLAGS += $(OPENAL_LDFLAGS)
|
CLIENT_LDFLAGS += $(OPENAL_LDFLAGS)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_CODEC_MP3),1)
|
ifeq ($(USE_CODEC_MP3),1)
|
||||||
BASE_CFLAGS += -DUSE_CODEC_MP3
|
BASE_CFLAGS += -DUSE_CODEC_MP3
|
||||||
CLIENT_LIBS += -lmad
|
CLIENT_LIBS += -lmad
|
||||||
|
@ -573,7 +572,7 @@ ifeq ($(PLATFORM),mingw32)
|
||||||
SHLIBEXT=dll
|
SHLIBEXT=dll
|
||||||
SHLIBCFLAGS=
|
SHLIBCFLAGS=
|
||||||
SHLIBLDFLAGS=-shared $(LDFLAGS)
|
SHLIBLDFLAGS=-shared $(LDFLAGS)
|
||||||
|
|
||||||
ifeq ($(VM_USE_SQL), 1)
|
ifeq ($(VM_USE_SQL), 1)
|
||||||
SHLIBCFLAGS+=-DSQL
|
SHLIBCFLAGS+=-DSQL
|
||||||
endif
|
endif
|
||||||
|
@ -584,7 +583,7 @@ ifeq ($(PLATFORM),mingw32)
|
||||||
CLIENT_LDFLAGS += -mwindows
|
CLIENT_LDFLAGS += -mwindows
|
||||||
CLIENT_LIBS = -lgdi32 -lole32
|
CLIENT_LIBS = -lgdi32 -lole32
|
||||||
RENDERER_LIBS = -lgdi32 -lole32 -lopengl32
|
RENDERER_LIBS = -lgdi32 -lole32 -lopengl32
|
||||||
|
|
||||||
ifeq ($(USE_CURL),1)
|
ifeq ($(USE_CURL),1)
|
||||||
CLIENT_CFLAGS += $(CURL_CFLAGS)
|
CLIENT_CFLAGS += $(CURL_CFLAGS)
|
||||||
ifneq ($(USE_CURL_DLOPEN),1)
|
ifneq ($(USE_CURL_DLOPEN),1)
|
||||||
|
@ -623,7 +622,7 @@ ifeq ($(PLATFORM),mingw32)
|
||||||
# libmingw32 must be linked before libSDLmain
|
# libmingw32 must be linked before libSDLmain
|
||||||
CLIENT_LIBS += -lmingw32
|
CLIENT_LIBS += -lmingw32
|
||||||
RENDERER_LIBS += -lmingw32
|
RENDERER_LIBS += -lmingw32
|
||||||
|
|
||||||
ifeq ($(USE_LOCAL_HEADERS),1)
|
ifeq ($(USE_LOCAL_HEADERS),1)
|
||||||
CLIENT_CFLAGS += -I$(SDLHDIR)/include
|
CLIENT_CFLAGS += -I$(SDLHDIR)/include
|
||||||
ifeq ($(ARCH), x86)
|
ifeq ($(ARCH), x86)
|
||||||
|
@ -666,7 +665,7 @@ ifeq ($(PLATFORM),freebsd)
|
||||||
SHLIBEXT=so
|
SHLIBEXT=so
|
||||||
SHLIBCFLAGS=-fPIC
|
SHLIBCFLAGS=-fPIC
|
||||||
SHLIBLDFLAGS=-shared $(LDFLAGS) -lpthread
|
SHLIBLDFLAGS=-shared $(LDFLAGS) -lpthread
|
||||||
|
|
||||||
ifeq ($(VM_USE_SQL), 1)
|
ifeq ($(VM_USE_SQL), 1)
|
||||||
SHLIBCFLAGS+=-DSQL
|
SHLIBCFLAGS+=-DSQL
|
||||||
endif
|
endif
|
||||||
|
@ -742,7 +741,7 @@ ifeq ($(PLATFORM),openbsd)
|
||||||
ifeq ($(VM_USE_SQL), 1)
|
ifeq ($(VM_USE_SQL), 1)
|
||||||
SHLIBCFLAGS+=-DSQL
|
SHLIBCFLAGS+=-DSQL
|
||||||
endif
|
endif
|
||||||
|
|
||||||
THREAD_LIBS=-pthread
|
THREAD_LIBS=-pthread
|
||||||
LIBS=-lm
|
LIBS=-lm
|
||||||
|
|
||||||
|
@ -761,7 +760,7 @@ ifeq ($(PLATFORM),openbsd)
|
||||||
CLIENT_LIBS += -lvorbisfile -lvorbis -logg
|
CLIENT_LIBS += -lvorbisfile -lvorbis -logg
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_CURL),1)
|
ifeq ($(USE_CURL),1)
|
||||||
ifneq ($(USE_CURL_DLOPEN),1)
|
ifneq ($(USE_CURL_DLOPEN),1)
|
||||||
CLIENT_LIBS += -lcurl
|
CLIENT_LIBS += -lcurl
|
||||||
endif
|
endif
|
||||||
|
@ -784,7 +783,7 @@ ifeq ($(PLATFORM),netbsd)
|
||||||
SHLIBCFLAGS=-fPIC
|
SHLIBCFLAGS=-fPIC
|
||||||
SHLIBLDFLAGS=-shared $(LDFLAGS) -lpthread
|
SHLIBLDFLAGS=-shared $(LDFLAGS) -lpthread
|
||||||
THREAD_LIBS=-lpthread
|
THREAD_LIBS=-lpthread
|
||||||
|
|
||||||
ifeq ($(VM_USE_SQL), 1)
|
ifeq ($(VM_USE_SQL), 1)
|
||||||
SHLIBCFLAGS+=-DSQL
|
SHLIBCFLAGS+=-DSQL
|
||||||
endif
|
endif
|
||||||
|
@ -814,7 +813,7 @@ ifeq ($(PLATFORM),irix64)
|
||||||
-I. -I$(ROOT)/usr/include
|
-I. -I$(ROOT)/usr/include
|
||||||
CLIENT_CFLAGS += $(SDL_CFLAGS)
|
CLIENT_CFLAGS += $(SDL_CFLAGS)
|
||||||
OPTIMIZE = -O3
|
OPTIMIZE = -O3
|
||||||
|
|
||||||
SHLIBEXT=so
|
SHLIBEXT=so
|
||||||
SHLIBCFLAGS=
|
SHLIBCFLAGS=
|
||||||
SHLIBLDFLAGS=-shared -lptrhead
|
SHLIBLDFLAGS=-shared -lptrhead
|
||||||
|
@ -822,7 +821,7 @@ ifeq ($(PLATFORM),irix64)
|
||||||
ifeq ($(VM_USE_SQL), 1)
|
ifeq ($(VM_USE_SQL), 1)
|
||||||
SHLIBCFLAGS+=-DSQL
|
SHLIBCFLAGS+=-DSQL
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LIBS=-ldl -lm -lgen
|
LIBS=-ldl -lm -lgen
|
||||||
# FIXME: The X libraries probably aren't necessary?
|
# FIXME: The X libraries probably aren't necessary?
|
||||||
CLIENT_LIBS=-L/usr/X11/$(LIB) $(SDL_LIBS) \
|
CLIENT_LIBS=-L/usr/X11/$(LIB) $(SDL_LIBS) \
|
||||||
|
@ -876,7 +875,7 @@ ifeq ($(PLATFORM),sunos)
|
||||||
CLIENT_LDFLAGS += -L/usr/X11/lib/NVIDIA -R/usr/X11/lib/NVIDIA
|
CLIENT_LDFLAGS += -L/usr/X11/lib/NVIDIA -R/usr/X11/lib/NVIDIA
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
OPTIMIZE = $(OPTIMIZEVM) -ffast-math
|
OPTIMIZE = $(OPTIMIZEVM) -ffast-math
|
||||||
|
|
||||||
SHLIBEXT=so
|
SHLIBEXT=so
|
||||||
|
@ -886,7 +885,7 @@ ifeq ($(PLATFORM),sunos)
|
||||||
ifeq ($(VM_USE_SQL), 1)
|
ifeq ($(VM_USE_SQL), 1)
|
||||||
SHLIBCFLAGS+=-DSQL
|
SHLIBCFLAGS+=-DSQL
|
||||||
endif
|
endif
|
||||||
|
|
||||||
THREAD_LIBS=-lpthread
|
THREAD_LIBS=-lpthread
|
||||||
LIBS=-lsocket -lnsl -ldl -lm
|
LIBS=-lsocket -lnsl -ldl -lm
|
||||||
|
|
||||||
|
@ -1576,7 +1575,7 @@ Q3ROBJ = \
|
||||||
$(B)/renderer/tr_world.o \
|
$(B)/renderer/tr_world.o \
|
||||||
\
|
\
|
||||||
$(B)/renderer/sdl_gamma.o
|
$(B)/renderer/sdl_gamma.o
|
||||||
|
|
||||||
ifneq ($(USE_RENDERER_DLOPEN), 0)
|
ifneq ($(USE_RENDERER_DLOPEN), 0)
|
||||||
Q3ROBJ += \
|
Q3ROBJ += \
|
||||||
$(B)/renderer/q_shared.o \
|
$(B)/renderer/q_shared.o \
|
||||||
|
@ -1921,22 +1920,22 @@ ifeq ($(ARCH),x86)
|
||||||
Q3DOBJ += \
|
Q3DOBJ += \
|
||||||
$(B)/ded/matha.o \
|
$(B)/ded/matha.o \
|
||||||
$(B)/ded/snapvector.o \
|
$(B)/ded/snapvector.o \
|
||||||
$(B)/ded/ftola.o
|
$(B)/ded/ftola.o
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH),x86_64)
|
ifeq ($(ARCH),x86_64)
|
||||||
Q3DOBJ += \
|
Q3DOBJ += \
|
||||||
$(B)/ded/snapvector.o \
|
$(B)/ded/snapvector.o \
|
||||||
$(B)/ded/ftola.o
|
$(B)/ded/ftola.o
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH),amd64)
|
ifeq ($(ARCH),amd64)
|
||||||
Q3DOBJ += \
|
Q3DOBJ += \
|
||||||
$(B)/ded/snapvector.o \
|
$(B)/ded/snapvector.o \
|
||||||
$(B)/ded/ftola.o
|
$(B)/ded/ftola.o
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH),x64)
|
ifeq ($(ARCH),x64)
|
||||||
Q3DOBJ += \
|
Q3DOBJ += \
|
||||||
$(B)/ded/snapvector.o \
|
$(B)/ded/snapvector.o \
|
||||||
$(B)/ded/ftola.o
|
$(B)/ded/ftola.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_INTERNAL_ZLIB),1)
|
ifeq ($(USE_INTERNAL_ZLIB),1)
|
||||||
|
@ -2521,12 +2520,12 @@ endif
|
||||||
|
|
||||||
$(B)/$(BASEGAME)/cgame/bg_%.o: $(GDIR)/bg_%.c
|
$(B)/$(BASEGAME)/cgame/bg_%.o: $(GDIR)/bg_%.c
|
||||||
$(DO_CGAME_CC)
|
$(DO_CGAME_CC)
|
||||||
|
|
||||||
$(B)/$(BASEGAME)/cgame/l%.o: $(GDIR)/l%.c
|
$(B)/$(BASEGAME)/cgame/l%.o: $(GDIR)/l%.c
|
||||||
$(DO_CGAME_CC)
|
$(DO_CGAME_CC)
|
||||||
|
|
||||||
$(B)/$(BASEGAME)/cgame/q_%.o: $(GDIR)/q_%.c
|
$(B)/$(BASEGAME)/cgame/q_%.o: $(GDIR)/q_%.c
|
||||||
$(DO_CGAME_CC)
|
$(DO_CGAME_CC)
|
||||||
|
|
||||||
$(B)/$(BASEGAME)/cgame/%.o: $(CGDIR)/%.c
|
$(B)/$(BASEGAME)/cgame/%.o: $(CGDIR)/%.c
|
||||||
$(DO_CGAME_CC)
|
$(DO_CGAME_CC)
|
||||||
|
@ -2570,7 +2569,7 @@ $(B)/$(BASEGAME)/ui/bg_%.o: $(GDIR)/bg_%.c
|
||||||
|
|
||||||
$(B)/$(BASEGAME)/ui/q_%.o: $(GDIR)/q_%.c
|
$(B)/$(BASEGAME)/ui/q_%.o: $(GDIR)/q_%.c
|
||||||
$(DO_UI_CC)
|
$(DO_UI_CC)
|
||||||
|
|
||||||
$(B)/$(BASEGAME)/ui/%.o: $(Q3UIDIR)/%.c
|
$(B)/$(BASEGAME)/ui/%.o: $(Q3UIDIR)/%.c
|
||||||
$(DO_UI_CC)
|
$(DO_UI_CC)
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ This is the only way control passes into the module.
|
||||||
This must be the very first function compiled into the .q3vm file
|
This must be the very first function compiled into the .q3vm file
|
||||||
================
|
================
|
||||||
*/
|
*/
|
||||||
int vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6 ) {
|
Q_EXPORT intptr_t vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6 ) {
|
||||||
switch ( command ) {
|
switch ( command ) {
|
||||||
case CG_INIT:
|
case CG_INIT:
|
||||||
CG_Init( arg0, arg1 );
|
CG_Init( arg0, arg1 );
|
||||||
|
@ -306,11 +306,11 @@ static cvarTable_t cvarTable[] = {
|
||||||
|
|
||||||
{ &cg_thirdPersonZoomRate, "cg_thirdPersonZoomRate", "25", CVAR_ARCHIVE },
|
{ &cg_thirdPersonZoomRate, "cg_thirdPersonZoomRate", "25", CVAR_ARCHIVE },
|
||||||
{ &cg_showEntityNums, "cg_showEntityNums", "1", CVAR_ARCHIVE },
|
{ &cg_showEntityNums, "cg_showEntityNums", "1", CVAR_ARCHIVE },
|
||||||
|
|
||||||
//TiM - security cvars
|
//TiM - security cvars
|
||||||
{ &sv_securityHash, "sv_securityHash", "4294967295", CVAR_ARCHIVE | CVAR_ROM | CVAR_NORESTART },
|
{ &sv_securityHash, "sv_securityHash", "4294967295", CVAR_ARCHIVE | CVAR_ROM | CVAR_NORESTART },
|
||||||
{ &sv_securityCode, "sv_securityCode", "4294967295", CVAR_ARCHIVE | CVAR_USERINFO | CVAR_ROM | CVAR_NORESTART },
|
{ &sv_securityCode, "sv_securityCode", "4294967295", CVAR_ARCHIVE | CVAR_USERINFO | CVAR_ROM | CVAR_NORESTART },
|
||||||
|
|
||||||
{ &cg_handleWidescreen, "cg_handleWidescreen", "1", CVAR_ARCHIVE },
|
{ &cg_handleWidescreen, "cg_handleWidescreen", "1", CVAR_ARCHIVE },
|
||||||
{ &ui_handleWidescreen, "ui_handleWidescreen", "1", CVAR_ARCHIVE },
|
{ &ui_handleWidescreen, "ui_handleWidescreen", "1", CVAR_ARCHIVE },
|
||||||
|
|
||||||
|
@ -347,7 +347,7 @@ void CG_PrecacheRemapShaders(void) {
|
||||||
qhandle_t shader;
|
qhandle_t shader;
|
||||||
|
|
||||||
COM_StripExtension(cgs.mapname, filepath);
|
COM_StripExtension(cgs.mapname, filepath);
|
||||||
Com_sprintf(filepath, MAX_QPATH, "%s.precache", filepath);
|
Com_sprintf(filepath, MAX_QPATH, "%s.precache", filepath);
|
||||||
|
|
||||||
len = trap_FS_FOpenFile(filepath, &f, FS_READ);
|
len = trap_FS_FOpenFile(filepath, &f, FS_READ);
|
||||||
|
|
||||||
|
@ -574,7 +574,7 @@ static void CG_RegisterItemSounds( int itemNum ) {
|
||||||
|
|
||||||
len = s-start;
|
len = s-start;
|
||||||
if (len >= MAX_QPATH || len < 5) {
|
if (len >= MAX_QPATH || len < 5) {
|
||||||
CG_Error( "PrecacheItem: %s has bad precache string",
|
CG_Error( "PrecacheItem: %s has bad precache string",
|
||||||
item->classname);
|
item->classname);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -709,8 +709,8 @@ static void CG_RegisterSounds( void )
|
||||||
cgs.media.glassChunkSound = trap_S_RegisterSound( "sound/weapons/explosions/glassbreak1.wav" );
|
cgs.media.glassChunkSound = trap_S_RegisterSound( "sound/weapons/explosions/glassbreak1.wav" );
|
||||||
cgs.media.woodChunkSound = trap_S_RegisterSound( "sound/weapons/explosions/metalexplode.wav" );
|
cgs.media.woodChunkSound = trap_S_RegisterSound( "sound/weapons/explosions/metalexplode.wav" );
|
||||||
cgs.media.stoneChunkSound = trap_S_RegisterSound( "sound/weapons/explosions/metalexplode.wav" );
|
cgs.media.stoneChunkSound = trap_S_RegisterSound( "sound/weapons/explosions/metalexplode.wav" );
|
||||||
|
|
||||||
// trek sounds
|
// trek sounds
|
||||||
|
|
||||||
//TiM : Q flash
|
//TiM : Q flash
|
||||||
cgs.media.qFlash = trap_S_RegisterSound( "sound/world/q_flash.wav" );
|
cgs.media.qFlash = trap_S_RegisterSound( "sound/world/q_flash.wav" );
|
||||||
|
@ -872,13 +872,13 @@ static void CG_RegisterGraphics( void ) {
|
||||||
cgs.media.weaponPlaceholderShader = trap_R_RegisterShader("powerups/placeholder" );
|
cgs.media.weaponPlaceholderShader = trap_R_RegisterShader("powerups/placeholder" );
|
||||||
cgs.media.rezOutShader = trap_R_RegisterShader("powerups/rezout");
|
cgs.media.rezOutShader = trap_R_RegisterShader("powerups/rezout");
|
||||||
cgs.media.electricBodyShader = trap_R_RegisterShader("gfx/misc/electric");
|
cgs.media.electricBodyShader = trap_R_RegisterShader("gfx/misc/electric");
|
||||||
|
|
||||||
//RPG-X: RedTechie - Scoreboard Endcaps
|
//RPG-X: RedTechie - Scoreboard Endcaps
|
||||||
cgs.media.scoreboardtopleft = trap_R_RegisterShaderNoMip( "menu/common/rpgx_sb_topleft");
|
cgs.media.scoreboardtopleft = trap_R_RegisterShaderNoMip( "menu/common/rpgx_sb_topleft");
|
||||||
cgs.media.scoreboardtopright = trap_R_RegisterShaderNoMip( "menu/common/rpgx_sb_topright");
|
cgs.media.scoreboardtopright = trap_R_RegisterShaderNoMip( "menu/common/rpgx_sb_topright");
|
||||||
cgs.media.scoreboardbotleft = trap_R_RegisterShaderNoMip( "menu/common/rpgx_sb_bottomleft");
|
cgs.media.scoreboardbotleft = trap_R_RegisterShaderNoMip( "menu/common/rpgx_sb_bottomleft");
|
||||||
cgs.media.scoreboardbotright = trap_R_RegisterShaderNoMip( "menu/common/rpgx_sb_bottomright");
|
cgs.media.scoreboardbotright = trap_R_RegisterShaderNoMip( "menu/common/rpgx_sb_bottomright");
|
||||||
|
|
||||||
//RPG-X: RedTechie - Healthbar Curves
|
//RPG-X: RedTechie - Healthbar Curves
|
||||||
cgs.media.healthendcap = trap_R_RegisterShaderNoMip("gfx/interface/rpgx_healthbar_endcap");
|
cgs.media.healthendcap = trap_R_RegisterShaderNoMip("gfx/interface/rpgx_healthbar_endcap");
|
||||||
cgs.media.healthbigcurve = trap_R_RegisterShaderNoMip("gfx/interface/rpgx_healthbar_leftcorner");
|
cgs.media.healthbigcurve = trap_R_RegisterShaderNoMip("gfx/interface/rpgx_healthbar_leftcorner");
|
||||||
|
@ -1064,7 +1064,7 @@ static void CG_RegisterGraphics( void ) {
|
||||||
if ( cg_dynamiclensflares.integer ) {
|
if ( cg_dynamiclensflares.integer ) {
|
||||||
cgs.media.flareCore = trap_R_RegisterShaderNoMip("gfx/effects/flares/flare_core");
|
cgs.media.flareCore = trap_R_RegisterShaderNoMip("gfx/effects/flares/flare_core");
|
||||||
cgs.media.flareStreak = trap_R_RegisterShaderNoMip("gfx/effects/flares/flare_streak");
|
cgs.media.flareStreak = trap_R_RegisterShaderNoMip("gfx/effects/flares/flare_streak");
|
||||||
cgs.media.flareHaze = trap_R_RegisterShaderNoMip("gfx/effects/flares/flare_haze");
|
cgs.media.flareHaze = trap_R_RegisterShaderNoMip("gfx/effects/flares/flare_haze");
|
||||||
|
|
||||||
for ( i=0; i<10; i++ ) {
|
for ( i=0; i<10; i++ ) {
|
||||||
lensReflec[i].graphic = trap_R_RegisterShaderNoMip( lensReflec[i].file );
|
lensReflec[i].graphic = trap_R_RegisterShaderNoMip( lensReflec[i].file );
|
||||||
|
@ -1236,7 +1236,7 @@ void CG_Init( int serverMessageNum, int serverCommandSequence ) {
|
||||||
cgs.screenYScale = cgs.glconfig.vidHeight / 480.0;
|
cgs.screenYScale = cgs.glconfig.vidHeight / 480.0;
|
||||||
|
|
||||||
//TiM - handle wide screens
|
//TiM - handle wide screens
|
||||||
if ( cgs.glconfig.vidWidth * 480 > cgs.glconfig.vidHeight * 640 )
|
if ( cgs.glconfig.vidWidth * 480 > cgs.glconfig.vidHeight * 640 )
|
||||||
{
|
{
|
||||||
cgs.widescreen.ratio = 640.0f*cgs.screenYScale * (1.0f/cgs.glconfig.vidWidth);
|
cgs.widescreen.ratio = 640.0f*cgs.screenYScale * (1.0f/cgs.glconfig.vidWidth);
|
||||||
cgs.widescreen.bias = 0.5 * ( cgs.glconfig.vidWidth - ( cgs.glconfig.vidHeight * (640.0/480.0) ) );
|
cgs.widescreen.bias = 0.5 * ( cgs.glconfig.vidWidth - ( cgs.glconfig.vidHeight * (640.0/480.0) ) );
|
||||||
|
@ -1293,11 +1293,11 @@ void CG_Init( int serverMessageNum, int serverCommandSequence ) {
|
||||||
CG_LoadingString( "" );
|
CG_LoadingString( "" );
|
||||||
|
|
||||||
//RPG-X | GSIO01 | 08/05/09:
|
//RPG-X | GSIO01 | 08/05/09:
|
||||||
//Make sure all weapons are registered to prevent
|
//Make sure all weapons are registered to prevent
|
||||||
//missing models when someone get killed and weapons are dropped
|
//missing models when someone get killed and weapons are dropped
|
||||||
for(i = 0; i < WP_NUM_WEAPONS; i++) {
|
for(i = 0; i < WP_NUM_WEAPONS; i++) {
|
||||||
CG_RegisterWeapon(i);
|
CG_RegisterWeapon(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
// To get the interface timing started
|
// To get the interface timing started
|
||||||
cg.interfaceStartupTime = 0;
|
cg.interfaceStartupTime = 0;
|
||||||
|
@ -1305,12 +1305,12 @@ void CG_Init( int serverMessageNum, int serverCommandSequence ) {
|
||||||
|
|
||||||
CG_InitModRules();
|
CG_InitModRules();
|
||||||
|
|
||||||
if ( !CG_LoadCrosshairs() )
|
if ( !CG_LoadCrosshairs() )
|
||||||
{
|
{
|
||||||
CG_Error( "Couldn't load crosshairs script" );
|
CG_Error( "Couldn't load crosshairs script" );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !CG_LoadRanks() )
|
if ( !CG_LoadRanks() )
|
||||||
{
|
{
|
||||||
CG_Error( "Couldn't load rankset script: %s", cgs.rankSet );
|
CG_Error( "Couldn't load rankset script: %s", cgs.rankSet );
|
||||||
}
|
}
|
||||||
|
@ -1364,7 +1364,7 @@ void CG_ParseIngameText(void)
|
||||||
|
|
||||||
buffer = ingameText;
|
buffer = ingameText;
|
||||||
i = 1; // Zero is null string
|
i = 1; // Zero is null string
|
||||||
while ( buffer )
|
while ( buffer )
|
||||||
{
|
{
|
||||||
token = COM_ParseExt( &buffer, qtrue );
|
token = COM_ParseExt( &buffer, qtrue );
|
||||||
|
|
||||||
|
@ -1442,7 +1442,7 @@ void CG_LoadIngameText(void)
|
||||||
|
|
||||||
len = trap_FS_FOpenFile( fileName, &f, FS_READ );
|
len = trap_FS_FOpenFile( fileName, &f, FS_READ );
|
||||||
|
|
||||||
if ( !f )
|
if ( !f )
|
||||||
{
|
{
|
||||||
Com_Printf( S_COLOR_RED "CG_LoadIngameText : mp_ingametext.dat file not found!\n");
|
Com_Printf( S_COLOR_RED "CG_LoadIngameText : mp_ingametext.dat file not found!\n");
|
||||||
return;
|
return;
|
||||||
|
@ -1455,7 +1455,7 @@ void CG_LoadIngameText(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// initialise the data area
|
// initialise the data area
|
||||||
memset(ingameText, 0, sizeof(ingameText));
|
memset(ingameText, 0, sizeof(ingameText));
|
||||||
|
|
||||||
trap_FS_Read( ingameText, len, f );
|
trap_FS_Read( ingameText, len, f );
|
||||||
|
|
||||||
|
@ -1498,7 +1498,7 @@ void CG_LoadObjectivesForMap(void)
|
||||||
|
|
||||||
buf = objtext;
|
buf = objtext;
|
||||||
//Now parse out each objective
|
//Now parse out each objective
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
token = COM_ParseExt( &buf, qtrue );
|
token = COM_ParseExt( &buf, qtrue );
|
||||||
if ( !token[0] ) {
|
if ( !token[0] ) {
|
||||||
|
@ -1506,7 +1506,7 @@ void CG_LoadObjectivesForMap(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Normal objective text
|
// Normal objective text
|
||||||
if ( !Q_strncmp( token, "obj", 3 ) )
|
if ( !Q_strncmp( token, "obj", 3 ) )
|
||||||
{
|
{
|
||||||
objnum = atoi( &token[3] );
|
objnum = atoi( &token[3] );
|
||||||
|
|
||||||
|
@ -1520,11 +1520,11 @@ void CG_LoadObjectivesForMap(void)
|
||||||
Q_strncpyz( cgs.objectives[objnum-1].text, token, sizeof(cgs.objectives[objnum-1].text) );
|
Q_strncpyz( cgs.objectives[objnum-1].text, token, sizeof(cgs.objectives[objnum-1].text) );
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ( !Q_strncmp( token, "abridged_obj", 12 ) )
|
else if ( !Q_strncmp( token, "abridged_obj", 12 ) )
|
||||||
{
|
{
|
||||||
objnum = atoi( &token[12] );
|
objnum = atoi( &token[12] );
|
||||||
|
|
||||||
if ( objnum < 1 || objnum == MAX_OBJECTIVES )
|
if ( objnum < 1 || objnum == MAX_OBJECTIVES )
|
||||||
{
|
{
|
||||||
Com_Printf( "Invalid objective number (%d), valid range is 1 to %d\n", objnum, MAX_OBJECTIVES );
|
Com_Printf( "Invalid objective number (%d), valid range is 1 to %d\n", objnum, MAX_OBJECTIVES );
|
||||||
break;
|
break;
|
||||||
|
@ -1559,7 +1559,7 @@ qboolean CG_LoadClasses( void )
|
||||||
CG_Printf( S_COLOR_RED "Couldn't find class file: %s\n", filePath );
|
CG_Printf( S_COLOR_RED "Couldn't find class file: %s\n", filePath );
|
||||||
return qfalse;
|
return qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( file_len > sizeof( buffer ) )
|
if ( file_len > sizeof( buffer ) )
|
||||||
{
|
{
|
||||||
CG_Printf( S_COLOR_RED "File %s was way too big to be loaded.\n", filePath );
|
CG_Printf( S_COLOR_RED "File %s was way too big to be loaded.\n", filePath );
|
||||||
|
@ -1598,14 +1598,14 @@ qboolean CG_LoadClasses( void )
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
token = COM_Parse( &textPtr );
|
token = COM_Parse( &textPtr );
|
||||||
|
|
||||||
if (!token[0]) {
|
if (!token[0]) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "formalName", 10 ) )
|
if ( !Q_stricmpn( token, "formalName", 10 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseString( &textPtr, &token ) )
|
if ( COM_ParseString( &textPtr, &token ) )
|
||||||
{
|
{
|
||||||
CG_Printf( S_COLOR_RED "ERROR: Invalid class formal name in class index: %i.\n", numClasses );
|
CG_Printf( S_COLOR_RED "ERROR: Invalid class formal name in class index: %i.\n", numClasses );
|
||||||
continue;
|
continue;
|
||||||
|
@ -1615,17 +1615,17 @@ qboolean CG_LoadClasses( void )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "radarColor", 5 ) )
|
if ( !Q_stricmpn( token, "radarColor", 5 ) )
|
||||||
{
|
{
|
||||||
vec3_t temp;
|
vec3_t temp;
|
||||||
|
|
||||||
if ( COM_ParseVec3( &textPtr, temp ) )
|
if ( COM_ParseVec3( &textPtr, temp ) )
|
||||||
{
|
{
|
||||||
CG_Printf( S_COLOR_RED "ERROR: Invalid color values in class index: %i.\n", numClasses );
|
CG_Printf( S_COLOR_RED "ERROR: Invalid color values in class index: %i.\n", numClasses );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( i = 0; i < 3; i++ )
|
for ( i = 0; i < 3; i++ )
|
||||||
{
|
{
|
||||||
cgs.classData[numClasses].radarColor[i] = (int)Com_Clamp( 0, 255, (int)temp[i] );
|
cgs.classData[numClasses].radarColor[i] = (int)Com_Clamp( 0, 255, (int)temp[i] );
|
||||||
}
|
}
|
||||||
|
@ -1633,9 +1633,9 @@ qboolean CG_LoadClasses( void )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "iconColor", 9 ) )
|
if ( !Q_stricmpn( token, "iconColor", 9 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseString( &textPtr, &token ) )
|
if ( COM_ParseString( &textPtr, &token ) )
|
||||||
{
|
{
|
||||||
CG_Printf( S_COLOR_RED "ERROR: Invalid class icon color in class index: %i.\n", numClasses );
|
CG_Printf( S_COLOR_RED "ERROR: Invalid class icon color in class index: %i.\n", numClasses );
|
||||||
continue;
|
continue;
|
||||||
|
@ -1643,23 +1643,23 @@ qboolean CG_LoadClasses( void )
|
||||||
|
|
||||||
//Eh... there are enum values for these,
|
//Eh... there are enum values for these,
|
||||||
//but they're currently out of scope ;P
|
//but they're currently out of scope ;P
|
||||||
if ( !Q_stricmp( token, "red" ) )
|
if ( !Q_stricmp( token, "red" ) )
|
||||||
{
|
{
|
||||||
cgs.classData[numClasses].iconColor = 1; //CLR_RED
|
cgs.classData[numClasses].iconColor = 1; //CLR_RED
|
||||||
}
|
}
|
||||||
else if ( !Q_stricmp( token, "gold" ) )
|
else if ( !Q_stricmp( token, "gold" ) )
|
||||||
{
|
{
|
||||||
cgs.classData[numClasses].iconColor = 2; //CLR_GOLD
|
cgs.classData[numClasses].iconColor = 2; //CLR_GOLD
|
||||||
}
|
}
|
||||||
else if ( !Q_stricmp( token, "teal" ) )
|
else if ( !Q_stricmp( token, "teal" ) )
|
||||||
{
|
{
|
||||||
cgs.classData[numClasses].iconColor = 3; //CLR_TEAL
|
cgs.classData[numClasses].iconColor = 3; //CLR_TEAL
|
||||||
}
|
}
|
||||||
else if ( !Q_stricmp( token, "green" ) )
|
else if ( !Q_stricmp( token, "green" ) )
|
||||||
{
|
{
|
||||||
cgs.classData[numClasses].iconColor = 4; //CLR_GREEN
|
cgs.classData[numClasses].iconColor = 4; //CLR_GREEN
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cgs.classData[numClasses].iconColor = 0; //0
|
cgs.classData[numClasses].iconColor = 0; //0
|
||||||
}
|
}
|
||||||
|
@ -1667,9 +1667,9 @@ qboolean CG_LoadClasses( void )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "medical", 7 ) )
|
if ( !Q_stricmpn( token, "medical", 7 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseInt( &textPtr, (int *)&cgs.classData[numClasses].isMedic ) )
|
if ( COM_ParseInt( &textPtr, (int *)&cgs.classData[numClasses].isMedic ) )
|
||||||
{
|
{
|
||||||
CG_Printf( S_COLOR_RED "ERROR: Class medic check for class %i was invalid.\n", numClasses );
|
CG_Printf( S_COLOR_RED "ERROR: Class medic check for class %i was invalid.\n", numClasses );
|
||||||
continue;
|
continue;
|
||||||
|
@ -1688,9 +1688,9 @@ qboolean CG_LoadClasses( void )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "hasRanks", 8 ) )
|
if ( !Q_stricmpn( token, "hasRanks", 8 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseInt( &textPtr, (int *)&cgs.classData[numClasses].showRanks ) )
|
if ( COM_ParseInt( &textPtr, (int *)&cgs.classData[numClasses].showRanks ) )
|
||||||
{
|
{
|
||||||
CG_Printf( S_COLOR_RED "ERROR: Class Ranks check for class %i was invalid.\n", numClasses );
|
CG_Printf( S_COLOR_RED "ERROR: Class Ranks check for class %i was invalid.\n", numClasses );
|
||||||
continue;
|
continue;
|
||||||
|
@ -1702,13 +1702,13 @@ qboolean CG_LoadClasses( void )
|
||||||
//I'm a n00b lol. I made a class called 'medical' and a parameter called 'medical'.
|
//I'm a n00b lol. I made a class called 'medical' and a parameter called 'medical'.
|
||||||
//I have to double check both parms or else it confuses the parser
|
//I have to double check both parms or else it confuses the parser
|
||||||
//better check all of them. I'm still getting errors
|
//better check all of them. I'm still getting errors
|
||||||
if ( !Q_stricmpn( token, "consoleName", 10 )
|
if ( !Q_stricmpn( token, "consoleName", 10 )
|
||||||
|| !Q_stricmpn( token, "modelSkin", 9 )
|
|| !Q_stricmpn( token, "modelSkin", 9 )
|
||||||
|| !Q_stricmpn( token, "message", 7 )
|
|| !Q_stricmpn( token, "message", 7 )
|
||||||
|| !Q_stricmpn( token, "admin", 5 )
|
|| !Q_stricmpn( token, "admin", 5 )
|
||||||
|| !Q_stricmpn( token, "marine", 6 )
|
|| !Q_stricmpn( token, "marine", 6 )
|
||||||
|| !Q_stricmpn( token, "noShow", 6 )
|
|| !Q_stricmpn( token, "noShow", 6 )
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
SkipRestOfLine(&textPtr);
|
SkipRestOfLine(&textPtr);
|
||||||
continue;
|
continue;
|
||||||
|
@ -1721,7 +1721,7 @@ qboolean CG_LoadClasses( void )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "}", 1 ) )
|
if ( !Q_stricmpn( token, "}", 1 ) )
|
||||||
{
|
{
|
||||||
numClasses++;
|
numClasses++;
|
||||||
break;
|
break;
|
||||||
|
@ -1730,8 +1730,8 @@ qboolean CG_LoadClasses( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
token = COM_Parse( &textPtr );
|
token = COM_Parse( &textPtr );
|
||||||
|
|
||||||
if (!token[0])
|
if (!token[0])
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1786,7 +1786,7 @@ qboolean CG_LoadUsablesStrings( void )
|
||||||
buffer[file_len] = '0';
|
buffer[file_len] = '0';
|
||||||
|
|
||||||
trap_FS_FCloseFile( f );
|
trap_FS_FCloseFile( f );
|
||||||
|
|
||||||
if ( !buffer[0] )
|
if ( !buffer[0] )
|
||||||
{
|
{
|
||||||
CG_Printf( S_COLOR_RED "ERROR: Attempted to load %s, but no data was inside!\n", fileRoute );
|
CG_Printf( S_COLOR_RED "ERROR: Attempted to load %s, but no data was inside!\n", fileRoute );
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
static intptr_t (QDECL *syscall)( intptr_t arg, ... ) = (intptr_t (QDECL *)( intptr_t, ...))-1;
|
static intptr_t (QDECL *syscall)( intptr_t arg, ... ) = (intptr_t (QDECL *)( intptr_t, ...))-1;
|
||||||
|
|
||||||
|
|
||||||
void dllEntry( intptr_t (QDECL *syscallptr)( intptr_t arg,... ) ) {
|
Q_EXPORT void dllEntry( intptr_t (QDECL *syscallptr)( intptr_t arg,... ) ) {
|
||||||
syscall = syscallptr;
|
syscall = syscallptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ void trap_Error( const char *fmt ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int trap_Milliseconds( void ) {
|
int trap_Milliseconds( void ) {
|
||||||
return syscall( CG_MILLISECONDS );
|
return syscall( CG_MILLISECONDS );
|
||||||
}
|
}
|
||||||
|
|
||||||
void trap_Cvar_Register( vmCvar_t *vmCvar, const char *varName, const char *defaultValue, int flags ) {
|
void trap_Cvar_Register( vmCvar_t *vmCvar, const char *varName, const char *defaultValue, int flags ) {
|
||||||
|
@ -141,7 +141,7 @@ void trap_CM_TransformedBoxTrace( trace_t *results, const vec3_t start, const ve
|
||||||
syscall( CG_CM_TRANSFORMEDBOXTRACE, results, start, end, mins, maxs, model, brushmask, origin, angles );
|
syscall( CG_CM_TRANSFORMEDBOXTRACE, results, start, end, mins, maxs, model, brushmask, origin, angles );
|
||||||
}
|
}
|
||||||
|
|
||||||
int trap_CM_MarkFragments( int numPoints, const vec3_t *points,
|
int trap_CM_MarkFragments( int numPoints, const vec3_t *points,
|
||||||
const vec3_t projection,
|
const vec3_t projection,
|
||||||
int maxPoints, vec3_t pointBuffer,
|
int maxPoints, vec3_t pointBuffer,
|
||||||
int maxFragments, markFragment_t *fragmentBuffer ) {
|
int maxFragments, markFragment_t *fragmentBuffer ) {
|
||||||
|
@ -228,7 +228,7 @@ void trap_R_SetColor( const float *rgba ) {
|
||||||
syscall( CG_R_SETCOLOR, rgba );
|
syscall( CG_R_SETCOLOR, rgba );
|
||||||
}
|
}
|
||||||
|
|
||||||
void trap_R_DrawStretchPic( float x, float y, float w, float h,
|
void trap_R_DrawStretchPic( float x, float y, float w, float h,
|
||||||
float s1, float t1, float s2, float t2, qhandle_t hShader ) {
|
float s1, float t1, float s2, float t2, qhandle_t hShader ) {
|
||||||
syscall( CG_R_DRAWSTRETCHPIC, PASSFLOAT(x), PASSFLOAT(y), PASSFLOAT(w), PASSFLOAT(h), PASSFLOAT(s1), PASSFLOAT(t1), PASSFLOAT(s2), PASSFLOAT(t2), hShader );
|
syscall( CG_R_DRAWSTRETCHPIC, PASSFLOAT(x), PASSFLOAT(y), PASSFLOAT(w), PASSFLOAT(h), PASSFLOAT(s1), PASSFLOAT(t1), PASSFLOAT(s2), PASSFLOAT(t2), hShader );
|
||||||
}
|
}
|
||||||
|
@ -237,7 +237,7 @@ void trap_R_ModelBounds( clipHandle_t model, vec3_t mins, vec3_t maxs ) {
|
||||||
syscall( CG_R_MODELBOUNDS, model, mins, maxs );
|
syscall( CG_R_MODELBOUNDS, model, mins, maxs );
|
||||||
}
|
}
|
||||||
|
|
||||||
void trap_R_LerpTag( orientation_t *tag, clipHandle_t mod, int startFrame, int endFrame,
|
void trap_R_LerpTag( orientation_t *tag, clipHandle_t mod, int startFrame, int endFrame,
|
||||||
float frac, const char *tagName ) {
|
float frac, const char *tagName ) {
|
||||||
syscall( CG_R_LERPTAG, tag, mod, startFrame, endFrame, PASSFLOAT(frac), tagName );
|
syscall( CG_R_LERPTAG, tag, mod, startFrame, endFrame, PASSFLOAT(frac), tagName );
|
||||||
}
|
}
|
||||||
|
|
|
@ -351,10 +351,10 @@ static cvarTable_t gameCvarTable[] = {
|
||||||
#endif
|
#endif
|
||||||
{ &g_language, "g_language", "", CVAR_ARCHIVE, 0, qfalse },
|
{ &g_language, "g_language", "", CVAR_ARCHIVE, 0, qfalse },
|
||||||
{ &g_holoIntro, "g_holoIntro", "1", CVAR_ARCHIVE, 0, qfalse },
|
{ &g_holoIntro, "g_holoIntro", "1", CVAR_ARCHIVE, 0, qfalse },
|
||||||
{ &g_team_group_red, "g_team_group_red", "", CVAR_LATCH, 0, qfalse }, // Used to have CVAR_ARCHIVE
|
{ &g_team_group_red, "g_team_group_red", "", CVAR_LATCH, 0, qfalse }, // Used to have CVAR_ARCHIVE
|
||||||
{ &g_team_group_blue, "g_team_group_blue", "", CVAR_LATCH, 0, qfalse }, // Used to have CVAR_ARCHIVE
|
{ &g_team_group_blue, "g_team_group_blue", "", CVAR_LATCH, 0, qfalse }, // Used to have CVAR_ARCHIVE
|
||||||
{ &g_random_skin_limit, "g_random_skin_limit", "4", CVAR_ARCHIVE, 0, qfalse },
|
{ &g_random_skin_limit, "g_random_skin_limit", "4", CVAR_ARCHIVE, 0, qfalse },
|
||||||
{ &g_classChangeDebounceTime, "g_classChangeDebounceTime", "180", CVAR_ARCHIVE, 0, qfalse },
|
{ &g_classChangeDebounceTime, "g_classChangeDebounceTime", "180", CVAR_ARCHIVE, 0, qfalse },
|
||||||
//RPG-X: RedTechie - RPG-X CVARS....duh....just for the slow ones
|
//RPG-X: RedTechie - RPG-X CVARS....duh....just for the slow ones
|
||||||
{ &rpg_allowvote, "rpg_allowVote", "1", CVAR_ARCHIVE, 0, qfalse },
|
{ &rpg_allowvote, "rpg_allowVote", "1", CVAR_ARCHIVE, 0, qfalse },
|
||||||
{ &rpg_chatsallowed, "rpg_chatsAllowed", "10", CVAR_ARCHIVE, 0, qfalse },
|
{ &rpg_chatsallowed, "rpg_chatsAllowed", "10", CVAR_ARCHIVE, 0, qfalse },
|
||||||
|
@ -499,7 +499,7 @@ This is the only way control passes into the module.
|
||||||
This MUST be the very first function compiled into the .q3vm file
|
This MUST be the very first function compiled into the .q3vm file
|
||||||
================
|
================
|
||||||
*/
|
*/
|
||||||
intptr_t vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6 ) {
|
Q_EXPORT intptr_t vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6 ) {
|
||||||
switch ( command ) {
|
switch ( command ) {
|
||||||
case GAME_INIT:
|
case GAME_INIT:
|
||||||
G_InitGame( arg0, arg1, arg2 );
|
G_InitGame( arg0, arg1, arg2 );
|
||||||
|
@ -559,7 +559,7 @@ void QDECL G_PrintfClient(gentity_t *ent, const char *fmt, ...) {
|
||||||
#ifdef G_LUA
|
#ifdef G_LUA
|
||||||
LuaHook_G_ClientPrint(text, ent-g_entities);
|
LuaHook_G_ClientPrint(text, ent-g_entities);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
trap_SendServerCommand(ent-g_entities, va("print \"%s\n\"", text));
|
trap_SendServerCommand(ent-g_entities, va("print \"%s\n\"", text));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -601,17 +601,17 @@ void QDECL G_Error( const char *fmt, ... ) {
|
||||||
stringID_table_t WeaponTable[] = {
|
stringID_table_t WeaponTable[] = {
|
||||||
{ ENUM2STRING(WP_2) },
|
{ ENUM2STRING(WP_2) },
|
||||||
{ ENUM2STRING(WP_3) },
|
{ ENUM2STRING(WP_3) },
|
||||||
{ ENUM2STRING(WP_4) },
|
{ ENUM2STRING(WP_4) },
|
||||||
{ ENUM2STRING(WP_5) },
|
{ ENUM2STRING(WP_5) },
|
||||||
{ ENUM2STRING(WP_6) },
|
{ ENUM2STRING(WP_6) },
|
||||||
{ ENUM2STRING(WP_7) },
|
{ ENUM2STRING(WP_7) },
|
||||||
{ ENUM2STRING(WP_8) },
|
{ ENUM2STRING(WP_8) },
|
||||||
{ ENUM2STRING(WP_9) },
|
{ ENUM2STRING(WP_9) },
|
||||||
{ ENUM2STRING(WP_10) },
|
{ ENUM2STRING(WP_10) },
|
||||||
{ ENUM2STRING(WP_11) },
|
{ ENUM2STRING(WP_11) },
|
||||||
{ ENUM2STRING(WP_12) },
|
{ ENUM2STRING(WP_12) },
|
||||||
{ ENUM2STRING(WP_13) },
|
{ ENUM2STRING(WP_13) },
|
||||||
{ ENUM2STRING(WP_14) },
|
{ ENUM2STRING(WP_14) },
|
||||||
{ ENUM2STRING(WP_15) },
|
{ ENUM2STRING(WP_15) },
|
||||||
|
|
||||||
{ "WP_TRICORDER", WP_2 },
|
{ "WP_TRICORDER", WP_2 },
|
||||||
|
@ -628,7 +628,7 @@ stringID_table_t WeaponTable[] = {
|
||||||
{ "WP_DERMAL_REGEN", WP_13 },
|
{ "WP_DERMAL_REGEN", WP_13 },
|
||||||
{ "WP_TOOLKIT", WP_14 },
|
{ "WP_TOOLKIT", WP_14 },
|
||||||
{ "WP_HYPERSPANNER", WP_15 },
|
{ "WP_HYPERSPANNER", WP_15 },
|
||||||
|
|
||||||
{ NULL, -1 }
|
{ NULL, -1 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -653,7 +653,7 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
|
|
||||||
//Init the storage place
|
//Init the storage place
|
||||||
memset( &g_classData, 0, sizeof ( g_classData ) );
|
memset( &g_classData, 0, sizeof ( g_classData ) );
|
||||||
|
|
||||||
fileLen = trap_FS_FOpenFile( fileName, &f, FS_READ );
|
fileLen = trap_FS_FOpenFile( fileName, &f, FS_READ );
|
||||||
|
|
||||||
if ( !f ) {
|
if ( !f ) {
|
||||||
|
@ -691,23 +691,23 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
return qfalse;
|
return qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
if ( classIndex >= MAX_CLASSES )
|
if ( classIndex >= MAX_CLASSES )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "{", 1 ) )
|
if ( !Q_stricmpn( token, "{", 1 ) )
|
||||||
{
|
{
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
token = COM_Parse( &textPtr );
|
token = COM_Parse( &textPtr );
|
||||||
if (!token[0]) {
|
if (!token[0]) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "consoleName", 11 ) )
|
if ( !Q_stricmpn( token, "consoleName", 11 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseString( &textPtr, &token ) )
|
if ( COM_ParseString( &textPtr, &token ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: Invalid class console name in class index: %i.\n", classIndex );
|
G_Printf( S_COLOR_RED "ERROR: Invalid class console name in class index: %i.\n", classIndex );
|
||||||
SkipBracedSection( &textPtr );
|
SkipBracedSection( &textPtr );
|
||||||
|
@ -722,7 +722,7 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "formalName", 11 ) )
|
if ( !Q_stricmpn( token, "formalName", 11 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseString( &textPtr, &token ) )
|
if ( COM_ParseString( &textPtr, &token ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: Invalid class formal name in class index: %i.\n", classIndex );
|
G_Printf( S_COLOR_RED "ERROR: Invalid class formal name in class index: %i.\n", classIndex );
|
||||||
SkipBracedSection( &textPtr );
|
SkipBracedSection( &textPtr );
|
||||||
|
@ -731,25 +731,25 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
|
|
||||||
Q_strncpyz( g_classData[classIndex].formalName, token, sizeof( g_classData[classIndex].formalName ) );
|
Q_strncpyz( g_classData[classIndex].formalName, token, sizeof( g_classData[classIndex].formalName ) );
|
||||||
classValid = qtrue;
|
classValid = qtrue;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "message", 7 ) )
|
if ( !Q_stricmpn( token, "message", 7 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseString( &textPtr, &token ) )
|
if ( COM_ParseString( &textPtr, &token ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: Invalid class message in class index: %i.\n", classIndex );
|
G_Printf( S_COLOR_RED "ERROR: Invalid class message in class index: %i.\n", classIndex );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_strncpyz( g_classData[classIndex].message, token, sizeof( g_classData[classIndex].message ) );
|
Q_strncpyz( g_classData[classIndex].message, token, sizeof( g_classData[classIndex].message ) );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "modelSkin", 9 ) )
|
if ( !Q_stricmpn( token, "modelSkin", 9 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseString( &textPtr, &token ) )
|
if ( COM_ParseString( &textPtr, &token ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: Invalid class skin color in class index: %i.\n", classIndex );
|
G_Printf( S_COLOR_RED "ERROR: Invalid class skin color in class index: %i.\n", classIndex );
|
||||||
continue;
|
continue;
|
||||||
|
@ -759,11 +759,11 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "weapons", 7) )
|
if ( !Q_stricmpn( token, "weapons", 7) )
|
||||||
{
|
{
|
||||||
token = COM_Parse( &textPtr );
|
token = COM_Parse( &textPtr );
|
||||||
|
|
||||||
if ( Q_stricmpn( token, "{", 1 ) )
|
if ( Q_stricmpn( token, "{", 1 ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "No opening bracket found for weapons field in class: %i.\n", classIndex );
|
G_Printf( S_COLOR_RED "No opening bracket found for weapons field in class: %i.\n", classIndex );
|
||||||
SkipRestOfLine( &textPtr );
|
SkipRestOfLine( &textPtr );
|
||||||
|
@ -771,24 +771,24 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
}
|
}
|
||||||
|
|
||||||
//sub loop
|
//sub loop
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
token = COM_Parse( &textPtr );
|
token = COM_Parse( &textPtr );
|
||||||
|
|
||||||
if ( !token[0] )
|
if ( !token[0] )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "|", 1 ) )
|
if ( !Q_stricmpn( token, "|", 1 ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "}", 1 ) )
|
if ( !Q_stricmpn( token, "}", 1 ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if( !Q_stricmpn( token, "WP_", 3 ) )
|
if( !Q_stricmpn( token, "WP_", 3 ) )
|
||||||
{
|
{
|
||||||
weapon = GetIDForString( WeaponTable, token );
|
weapon = GetIDForString( WeaponTable, token );
|
||||||
|
|
||||||
if ( weapon >= 0 )
|
if ( weapon >= 0 )
|
||||||
{
|
{
|
||||||
g_classData[classIndex].weaponsFlags |= ( 1 << weapon );
|
g_classData[classIndex].weaponsFlags |= ( 1 << weapon );
|
||||||
continue;
|
continue;
|
||||||
|
@ -799,9 +799,9 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "admin", 5 ) )
|
if ( !Q_stricmpn( token, "admin", 5 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseInt( &textPtr, &g_classData[classIndex].isAdmin ) )
|
if ( COM_ParseInt( &textPtr, &g_classData[classIndex].isAdmin ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: Class admin check for class %i was invalid.\n", classIndex );
|
G_Printf( S_COLOR_RED "ERROR: Class admin check for class %i was invalid.\n", classIndex );
|
||||||
continue;
|
continue;
|
||||||
|
@ -810,9 +810,9 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "marine", 6 ) )
|
if ( !Q_stricmpn( token, "marine", 6 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseInt( &textPtr, &g_classData[classIndex].isMarine ) )
|
if ( COM_ParseInt( &textPtr, &g_classData[classIndex].isMarine ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: Class marine check for class %i was invalid.\n", classIndex );
|
G_Printf( S_COLOR_RED "ERROR: Class marine check for class %i was invalid.\n", classIndex );
|
||||||
continue;
|
continue;
|
||||||
|
@ -821,9 +821,9 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "medical", 7 ) )
|
if ( !Q_stricmpn( token, "medical", 7 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseInt( &textPtr, &g_classData[classIndex].isMedical ) )
|
if ( COM_ParseInt( &textPtr, &g_classData[classIndex].isMedical ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: Class medic check for class %i was invalid.\n", classIndex );
|
G_Printf( S_COLOR_RED "ERROR: Class medic check for class %i was invalid.\n", classIndex );
|
||||||
continue;
|
continue;
|
||||||
|
@ -842,9 +842,9 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "n00b", 4 ) )
|
if ( !Q_stricmpn( token, "n00b", 4 ) )
|
||||||
{
|
{
|
||||||
if ( COM_ParseInt( &textPtr, &g_classData[classIndex].isn00b ) )
|
if ( COM_ParseInt( &textPtr, &g_classData[classIndex].isn00b ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: Class n00b check for class %i was invalid.\n", classIndex );
|
G_Printf( S_COLOR_RED "ERROR: Class n00b check for class %i was invalid.\n", classIndex );
|
||||||
continue;
|
continue;
|
||||||
|
@ -854,9 +854,9 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
}
|
}
|
||||||
|
|
||||||
//skip the client-side specific entries since they interfere with the parsing
|
//skip the client-side specific entries since they interfere with the parsing
|
||||||
if ( !Q_stricmpn( token, "radarColor", 10 )
|
if ( !Q_stricmpn( token, "radarColor", 10 )
|
||||||
|| !Q_stricmpn( token, "iconColor", 9 )
|
|| !Q_stricmpn( token, "iconColor", 9 )
|
||||||
|| !Q_stricmpn( token, "hasRanks", 8 )
|
|| !Q_stricmpn( token, "hasRanks", 8 )
|
||||||
|| !Q_stricmpn( token, "noShow", 6 )
|
|| !Q_stricmpn( token, "noShow", 6 )
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -864,22 +864,22 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !Q_stricmpn( token, "}", 1 ) )
|
if ( !Q_stricmpn( token, "}", 1 ) )
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( classValid )
|
if ( classValid )
|
||||||
{
|
{
|
||||||
classIndex++;
|
classIndex++;
|
||||||
classValid = qfalse;
|
classValid = qfalse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
token = COM_Parse( &textPtr );
|
token = COM_Parse( &textPtr );
|
||||||
if (!token[0])
|
if (!token[0])
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -888,17 +888,17 @@ static qboolean G_LoadClassData( char* fileName )
|
||||||
free(buffer);
|
free(buffer);
|
||||||
|
|
||||||
//build ourselves custom CVARs for each class
|
//build ourselves custom CVARs for each class
|
||||||
for ( i=0; g_classData[i].consoleName[0] && i < MAX_CLASSES; i++ )
|
for ( i=0; g_classData[i].consoleName[0] && i < MAX_CLASSES; i++ )
|
||||||
{
|
{
|
||||||
trap_Cvar_Register( NULL, va("rpg_%sPass", g_classData[i].consoleName ), g_classData[i].consoleName, CVAR_ARCHIVE );
|
trap_Cvar_Register( NULL, va("rpg_%sPass", g_classData[i].consoleName ), g_classData[i].consoleName, CVAR_ARCHIVE );
|
||||||
trap_Cvar_Register( NULL, va("rpg_%sFlags", g_classData[i].consoleName ), va("%i", g_classData[i].weaponsFlags), CVAR_ARCHIVE );
|
trap_Cvar_Register( NULL, va("rpg_%sFlags", g_classData[i].consoleName ), va("%i", g_classData[i].weaponsFlags), CVAR_ARCHIVE );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( classIndex > 0 )
|
if ( classIndex > 0 )
|
||||||
{
|
{
|
||||||
return qtrue;
|
return qtrue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: No valid classes were found.\n");
|
G_Printf( S_COLOR_RED "ERROR: No valid classes were found.\n");
|
||||||
return qfalse;
|
return qfalse;
|
||||||
|
@ -1124,7 +1124,7 @@ static void G_LoadServerChangeFile(void) {
|
||||||
|
|
||||||
file_len = trap_FS_FOpenFile(fileRoute, &f, FS_READ);
|
file_len = trap_FS_FOpenFile(fileRoute, &f, FS_READ);
|
||||||
|
|
||||||
if(!file_len)
|
if(!file_len)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
buffer = (char *)malloc(32000 * sizeof(char));
|
buffer = (char *)malloc(32000 * sizeof(char));
|
||||||
|
@ -1164,7 +1164,7 @@ static void G_LoadServerChangeFile(void) {
|
||||||
G_Printf( S_COLOR_RED "ERROR: ServerChangeConfig had no opening brace ( { )!\n" );
|
G_Printf( S_COLOR_RED "ERROR: ServerChangeConfig had no opening brace ( { )!\n" );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
while(Q_strncmp(token, "}", 1)) {
|
while(Q_strncmp(token, "}", 1)) {
|
||||||
token = COM_Parse(&txtPtr);
|
token = COM_Parse(&txtPtr);
|
||||||
if(!token[0]) break;
|
if(!token[0]) break;
|
||||||
|
@ -1218,7 +1218,7 @@ static void G_LoadMapChangeFile(void) {
|
||||||
|
|
||||||
file_len = trap_FS_FOpenFile(fileRoute, &f, FS_READ);
|
file_len = trap_FS_FOpenFile(fileRoute, &f, FS_READ);
|
||||||
|
|
||||||
if(!file_len)
|
if(!file_len)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
buffer = (char *)malloc(32000 * sizeof(char));
|
buffer = (char *)malloc(32000 * sizeof(char));
|
||||||
|
@ -1256,7 +1256,7 @@ static void G_LoadMapChangeFile(void) {
|
||||||
G_Printf( S_COLOR_RED "ERROR: MapChangeConfig had no opening brace ( { )!\n" );
|
G_Printf( S_COLOR_RED "ERROR: MapChangeConfig had no opening brace ( { )!\n" );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
while(Q_strncmp(token, "}", 1)) {
|
while(Q_strncmp(token, "}", 1)) {
|
||||||
token = COM_Parse(&txtPtr);
|
token = COM_Parse(&txtPtr);
|
||||||
if(!token[0]) break;
|
if(!token[0]) break;
|
||||||
|
@ -1347,7 +1347,7 @@ static void G_LoadLocationsFile( void )
|
||||||
|
|
||||||
buffer[file_len] = '\0';
|
buffer[file_len] = '\0';
|
||||||
trap_FS_FCloseFile( f );
|
trap_FS_FCloseFile( f );
|
||||||
|
|
||||||
G_Printf( "Locations file %s located. Proceeding to load scan data.\n", fileRoute ); //GSIO01: why did this say "Usables file ..."? lol ;)
|
G_Printf( "Locations file %s located. Proceeding to load scan data.\n", fileRoute ); //GSIO01: why did this say "Usables file ..."? lol ;)
|
||||||
|
|
||||||
COM_BeginParseSession();
|
COM_BeginParseSession();
|
||||||
|
@ -1514,7 +1514,7 @@ static void G_LoadLocationsFile( void )
|
||||||
token = COM_Parse( &textPtr );
|
token = COM_Parse( &textPtr );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free(buffer);
|
free(buffer);
|
||||||
}
|
}
|
||||||
|
@ -1684,7 +1684,7 @@ static void G_UpdateCvars( void )
|
||||||
//RPG-X: J2J - Don't show gravity changed messages any more (for the gravity target ents)
|
//RPG-X: J2J - Don't show gravity changed messages any more (for the gravity target ents)
|
||||||
if(Q_stricmp(cv->cvarName,"g_gravity") != 0)
|
if(Q_stricmp(cv->cvarName,"g_gravity") != 0)
|
||||||
{
|
{
|
||||||
trap_SendServerCommand( -1, va("print \"Server: %s changed to %s\n\"",
|
trap_SendServerCommand( -1, va("print \"Server: %s changed to %s\n\"",
|
||||||
cv->cvarName, cv->vmCvar->string ) );
|
cv->cvarName, cv->vmCvar->string ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1764,8 +1764,8 @@ void G_InitGame( int levelTime, int randomSeed, int restart ) {
|
||||||
|
|
||||||
//Class loader
|
//Class loader
|
||||||
memset( fileName, 0, sizeof( fileName ) );
|
memset( fileName, 0, sizeof( fileName ) );
|
||||||
Com_sprintf( fileName, sizeof( fileName ), "ext_data/classes/%s.classes", rpg_classSet.string );
|
Com_sprintf( fileName, sizeof( fileName ), "ext_data/classes/%s.classes", rpg_classSet.string );
|
||||||
if ( !G_LoadClassData( fileName ) )
|
if ( !G_LoadClassData( fileName ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: Could not load class set %s. Reverting to default.\n", fileName );
|
G_Printf( S_COLOR_RED "ERROR: Could not load class set %s. Reverting to default.\n", fileName );
|
||||||
trap_Cvar_Set( "rpg_classSet", CLASS_DEFAULT );
|
trap_Cvar_Set( "rpg_classSet", CLASS_DEFAULT );
|
||||||
|
@ -1779,12 +1779,12 @@ void G_InitGame( int levelTime, int randomSeed, int restart ) {
|
||||||
//Rank Loader
|
//Rank Loader
|
||||||
memset( fileName, 0, sizeof( fileName ) );
|
memset( fileName, 0, sizeof( fileName ) );
|
||||||
Com_sprintf( fileName, sizeof( fileName ), "ext_data/ranksets/%s.ranks", rpg_rankSet.string );
|
Com_sprintf( fileName, sizeof( fileName ), "ext_data/ranksets/%s.ranks", rpg_rankSet.string );
|
||||||
if ( !BG_ParseRankNames( fileName, g_rankNames ) )
|
if ( !BG_ParseRankNames( fileName, g_rankNames ) )
|
||||||
{
|
{
|
||||||
G_Printf( S_COLOR_RED "ERROR: Could not load rankset %s. Reverting to default.\n", fileName );
|
G_Printf( S_COLOR_RED "ERROR: Could not load rankset %s. Reverting to default.\n", fileName );
|
||||||
trap_Cvar_Set( "rpg_rankSet", RANKSET_DEFAULT );
|
trap_Cvar_Set( "rpg_rankSet", RANKSET_DEFAULT );
|
||||||
|
|
||||||
if ( !BG_ParseRankNames( va( "ext_data/ranksets/%s.ranks", RANKSET_DEFAULT ), g_rankNames ) )
|
if ( !BG_ParseRankNames( va( "ext_data/ranksets/%s.ranks", RANKSET_DEFAULT ), g_rankNames ) )
|
||||||
{
|
{
|
||||||
G_Error( "Could not load default rankset: %s", RANKSET_DEFAULT );
|
G_Error( "Could not load default rankset: %s", RANKSET_DEFAULT );
|
||||||
}
|
}
|
||||||
|
@ -1846,14 +1846,14 @@ void G_InitGame( int levelTime, int randomSeed, int restart ) {
|
||||||
for ( i=0 ; i<level.maxclients ; i++ ) {
|
for ( i=0 ; i<level.maxclients ; i++ ) {
|
||||||
g_entities[i].client = level.clients + i;
|
g_entities[i].client = level.clients + i;
|
||||||
}
|
}
|
||||||
|
|
||||||
// always leave room for the max number of clients,
|
// always leave room for the max number of clients,
|
||||||
// even if they aren't all used, so numbers inside that
|
// even if they aren't all used, so numbers inside that
|
||||||
// range are NEVER anything but clients
|
// range are NEVER anything but clients
|
||||||
level.num_entities = MAX_CLIENTS;
|
level.num_entities = MAX_CLIENTS;
|
||||||
|
|
||||||
// let the server system know where the entites are
|
// let the server system know where the entites are
|
||||||
trap_LocateGameData( level.gentities, level.num_entities, sizeof( gentity_t ),
|
trap_LocateGameData( level.gentities, level.num_entities, sizeof( gentity_t ),
|
||||||
&level.clients[0].ps, sizeof( level.clients[0] ) );
|
&level.clients[0].ps, sizeof( level.clients[0] ) );
|
||||||
|
|
||||||
// reserve some spots for dead player bodies
|
// reserve some spots for dead player bodies
|
||||||
|
@ -1906,7 +1906,7 @@ void G_InitGame( int levelTime, int randomSeed, int restart ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
G_InitModRules();
|
G_InitModRules();
|
||||||
|
|
||||||
levelExiting = qfalse;
|
levelExiting = qfalse;
|
||||||
|
|
||||||
/*RPG-X J2J************************************************************************************/
|
/*RPG-X J2J************************************************************************************/
|
||||||
|
@ -1915,7 +1915,7 @@ void G_InitGame( int levelTime, int randomSeed, int restart ) {
|
||||||
//WARNING - used hard coded number to shut up compiler, 1023 is MAX_ENTITIES (which apperently cant be increased without substansial exe recoding)
|
//WARNING - used hard coded number to shut up compiler, 1023 is MAX_ENTITIES (which apperently cant be increased without substansial exe recoding)
|
||||||
//TiM : NB Ents 0 -> 128 are clients only. cyclicng thru all ents here is not needed.
|
//TiM : NB Ents 0 -> 128 are clients only. cyclicng thru all ents here is not needed.
|
||||||
for(i = 0; i < MAX_CLIENTS; i++)
|
for(i = 0; i < MAX_CLIENTS; i++)
|
||||||
{
|
{
|
||||||
//RPG-X: Redtechie - Make sure score cant be chnaged unless other wise told to
|
//RPG-X: Redtechie - Make sure score cant be chnaged unless other wise told to
|
||||||
if(g_entities[i].client){
|
if(g_entities[i].client){
|
||||||
g_entities[i].client->UpdateScore = qfalse;
|
g_entities[i].client->UpdateScore = qfalse;
|
||||||
|
@ -1969,24 +1969,24 @@ void G_InitGame( int levelTime, int randomSeed, int restart ) {
|
||||||
/*************************************************************************************************/
|
/*************************************************************************************************/
|
||||||
|
|
||||||
G_Printf(" ,. \n"); G_Printf(" ..:, :Xt. ,:. \n");
|
G_Printf(" ,. \n"); G_Printf(" ..:, :Xt. ,:. \n");
|
||||||
G_Printf(" ,=+t: .IRX= :++=. \n"); G_Printf(" .=iVt:. :RYYI. .itt+ \n");
|
G_Printf(" ,=+t: .IRX= :++=. \n"); G_Printf(" .=iVt:. :RYYI. .itt+ \n");
|
||||||
G_Printf(" .:tXI=;. tRtiV; ,IYY:. \n"); G_Printf(" .+;ii=;. ,XVi+Vt. :tIi+ \n");
|
G_Printf(" .:tXI=;. tRtiV; ,IYY:. \n"); G_Printf(" .+;ii=;. ,XVi+Vt. :tIi+ \n");
|
||||||
G_Printf(" .;ti;;:. +RI++IY, ,+tt=. \n"); G_Printf(" ,++YY;. ,XXi+++X= ;IYI=. \n");
|
G_Printf(" .;ti;;:. +RI++IY, ,+tt=. \n"); G_Printf(" ,++YY;. ,XXi+++X= ;IYI=. \n");
|
||||||
G_Printf(" ;ttY+;. .,=iVRI++++YX+;. ;VYt; \n"); G_Printf(" .;ii+=, .;IXRRXVi++++iVRXVi:. ,=iii. \n");
|
G_Printf(" ;ttY+;. .,=iVRI++++YX+;. ;VYt; \n"); G_Printf(" .;ii+=, .;IXRRXVi++++iVRXVi:. ,=iii. \n");
|
||||||
G_Printf(" .==;ti, .;YRRVVXYii+++++IVIVRXt, ,+=tI= \n"); G_Printf(" .iitY=, .tRRVXXVRV+++ii++YRXVIYXV; :tYti, \n");
|
G_Printf(" .==;ti, .;YRRVVXYii+++++IVIVRXt, ,+=tI= \n"); G_Printf(" .iitY=, .tRRVXXVRV+++ii++YRXVIYXV; :tYti, \n");
|
||||||
G_Printf(" .+iii=,,IBVVXYiiXViiiiiiitVtIXViVR= ,+t+I: \n"); G_Printf(" =+=I:.tBVXVt=;tRIiiiiiiiiXi:=YXiIX; :+=It; \n");
|
G_Printf(" .+iii=,,IBVVXYiiXViiiiiiitVtIXViVR= ,+t+I: \n"); G_Printf(" =+=I:.tBVXVt=;tRIiiiiiiiiXi:=YXiIX; :+=It; \n");
|
||||||
G_Printf(" .;;tYt:;RVVV+=:,YRiiiiiiiiiYI,.:IXiVY..+IYi= \n"); G_Printf(" .ti=t+;tRIXi;, :XViiiiiiiiiIV: ,YViX=.:titt. \n");
|
G_Printf(" .;;tYt:;RVVV+=:,YRiiiiiiiiiYI,.:IXiVY..+IYi= \n"); G_Printf(" .ti=t+;tRIXi;, :XViiiiiiiiiIV: ,YViX=.:titt. \n");
|
||||||
G_Printf(" iY++I;YVYY=: +BIiiiiiiiiiiX= +XiVi;i++Vi, \n"); G_Printf(" ,+YYYI:VYYY;. .YRiiiiiiiiiiiVt. ;RIYt:IIVVi: \n");
|
G_Printf(" iY++I;YVYY=: +BIiiiiiiiiiiX= +XiVi;i++Vi, \n"); G_Printf(" ,+YYYI:VYYY;. .YRiiiiiiiiiiiVt. ;RIYt:IIVVi: \n");
|
||||||
G_Printf(" ,+tYXi;YVIX; ;RVtiiiiIXXtiiVI, iRIVt,=XVit: \n"); G_Printf(" .+iiti++XiXI. iBIiiiiYXIIXtiIV: :XXIV++;i+iI;.\n");
|
G_Printf(" ,+tYXi;YVIX; ;RVtiiiiIXXtiiVI, iRIVt,=XVit: \n"); G_Printf(" .+iiti++XiXI. iBIiiiiYXIIXtiIV: :XXIV++;i+iI;.\n");
|
||||||
G_Printf(" ;Ii=ii:VYtRi,VRtiiiVVi=;IXitX=;VBYXI=i+;iV+;.\n"); G_Printf(" ;tYtVt;;XYIRXBVttiVV+;:.:VYiXVRBVXY+;+IYVt+, \n");
|
G_Printf(" ;Ii=ii:VYtRi,VRtiiiVVi=;IXitX=;VBYXI=i+;iV+;.\n"); G_Printf(" ;tYtVt;;XYIRXBVttiVV+;:.:VYiXVRBVXY+;+IYVt+, \n");
|
||||||
G_Printf(" =iiItii,=XVIRRIttXV+=:..,tRtVBXVRI+=i:iIit+. \n"); G_Printf(" :t==++I:.=YXYIIiYBXYIttIVRBYtVXXI+;;t+;;+Y=, \n");
|
G_Printf(" =iiItii,=XVIRRIttXV+=:..,tRtVBXVRI+=i:iIit+. \n"); G_Printf(" :t==++I:.=YXYIIiYBXYIttIVRBYtVXXI+;;t+;;+Y=, \n");
|
||||||
G_Printf(" +I=;+Y= .:IRItYIVXRRRBBRXXVIRY+=;.:i=;iVi;. \n"); G_Printf(" .+IYVV+: +BYXXVXXXXXXXXXVRVVi;:.:;tVYY+=: \n");
|
G_Printf(" +I=;+Y= .:IRItYIVXRRRBBRXXVIRY+=;.:i=;iVi;. \n"); G_Printf(" .+IYVV+: +BYXXVXXXXXXXXXVRVVi;:.:;tVYY+=: \n");
|
||||||
G_Printf(" .+ttii+ .IBXY++ittIIIti++tXXi, .++=tI+;: \n"); G_Printf(" ;YYtIY;;VBI+;:,::;;;;;:,:IBt,::tItYV=. \n");
|
G_Printf(" .+ttii+ .IBXY++ittIIIti++tXXi, .++=tI+;: \n"); G_Printf(" ;YYtIY;;VBI+;:,::;;;;;:,:IBt,::tItYV=. \n");
|
||||||
G_Printf(" =IYYI++ti+;, ....... :Xt;i=iYYI+;. \n"); G_Printf(" .:+i++ii;;. .=i=+i=t+;;:. \n");
|
G_Printf(" =IYYI++ti+;, ....... :Xt;i=iYYI+;. \n"); G_Printf(" .:+i++ii;;. .=i=+i=t+;;:. \n");
|
||||||
G_Printf(" ,tYIVI==:,.. ..,;=+iYIVt:.. \n"); G_Printf(" ,itt+iIYYti;. ,;itYIIt:iIi=;. \n");
|
G_Printf(" ,tYIVI==:,.. ..,;=+iYIVt:.. \n"); G_Printf(" ,itt+iIYYti;. ,;itYIIt:iIi=;. \n");
|
||||||
G_Printf(" .:;;:+tIIVIi:.;iYYIii+=:,;;:. \n"); G_Printf(" . ,:=itIXi.tXYit=;::, . \n");
|
G_Printf(" .:;;:+tIIVIi:.;iYYIii+=:,;;:. \n"); G_Printf(" . ,:=itIXi.tXYit=;::, . \n");
|
||||||
G_Printf(" .+tti=,,iIt+;. \n"); G_Printf(" .:;;:. ,;;;:. \n");
|
G_Printf(" .+tti=,,iIt+;. \n"); G_Printf(" .:;;:. ,;;;:. \n");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern list_iter_p iterTimedMessages; /* list iterator for timed messages */
|
extern list_iter_p iterTimedMessages; /* list iterator for timed messages */
|
||||||
|
@ -2216,7 +2216,7 @@ void G_Client_CalculateRanks( qboolean fromExit ) {
|
||||||
|
|
||||||
if ( level.clients[i].sess.sessionTeam != TEAM_SPECTATOR ) {
|
if ( level.clients[i].sess.sessionTeam != TEAM_SPECTATOR ) {
|
||||||
level.numNonSpectatorClients++;
|
level.numNonSpectatorClients++;
|
||||||
|
|
||||||
// decide if this should be auto-followed
|
// decide if this should be auto-followed
|
||||||
if ( level.clients[i].pers.connected == CON_CONNECTED ) {
|
if ( level.clients[i].pers.connected == CON_CONNECTED ) {
|
||||||
level.numPlayingClients++;
|
level.numPlayingClients++;
|
||||||
|
@ -2233,7 +2233,7 @@ void G_Client_CalculateRanks( qboolean fromExit ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qsort( level.sortedClients, level.numConnectedClients,
|
qsort( level.sortedClients, level.numConnectedClients,
|
||||||
sizeof(level.sortedClients[0]), SortRanks );
|
sizeof(level.sortedClients[0]), SortRanks );
|
||||||
|
|
||||||
// set the rank value for all clients that are connected and not spectators
|
// set the rank value for all clients that are connected and not spectators
|
||||||
|
@ -2249,7 +2249,7 @@ void G_Client_CalculateRanks( qboolean fromExit ) {
|
||||||
cl->ps.persistant[PERS_RANK] = 1;
|
cl->ps.persistant[PERS_RANK] = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
rank = -1;
|
rank = -1;
|
||||||
score = 0;
|
score = 0;
|
||||||
for ( i = 0; i < level.numPlayingClients; i++ ) {
|
for ( i = 0; i < level.numPlayingClients; i++ ) {
|
||||||
|
@ -2404,7 +2404,7 @@ static void ClearFiringFlags(void)
|
||||||
int i = 0;
|
int i = 0;
|
||||||
gentity_t *ent = NULL;
|
gentity_t *ent = NULL;
|
||||||
|
|
||||||
for (i=0 ; i< level.maxclients ; i++)
|
for (i=0 ; i< level.maxclients ; i++)
|
||||||
{
|
{
|
||||||
ent = g_entities + i;
|
ent = g_entities + i;
|
||||||
if (!ent->inuse)
|
if (!ent->inuse)
|
||||||
|
@ -2486,7 +2486,7 @@ void G_ClearObjectives( void )
|
||||||
ExitLevel
|
ExitLevel
|
||||||
|
|
||||||
When the intermission has been exited, the server is either killed
|
When the intermission has been exited, the server is either killed
|
||||||
or moved to a new level based on the "nextmap" cvar
|
or moved to a new level based on the "nextmap" cvar
|
||||||
|
|
||||||
=============
|
=============
|
||||||
*/
|
*/
|
||||||
|
@ -2510,7 +2510,7 @@ void ExitLevel (void) {
|
||||||
level.changemap = NULL;
|
level.changemap = NULL;
|
||||||
level.intermissiontime = 0;
|
level.intermissiontime = 0;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
trap_SendConsoleCommand( EXEC_APPEND, "vstr nextmap\n" );
|
trap_SendConsoleCommand( EXEC_APPEND, "vstr nextmap\n" );
|
||||||
|
@ -2571,7 +2571,7 @@ static void CheckTournement( void ) {
|
||||||
if ( level.warmupTime == 0 || level.warmupTime != 0) {//RPG-X: RedTechie - No warmup Fail safe
|
if ( level.warmupTime == 0 || level.warmupTime != 0) {//RPG-X: RedTechie - No warmup Fail safe
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else if ( g_gametype.integer != GT_SINGLE_PLAYER ) {
|
} else if ( g_gametype.integer != GT_SINGLE_PLAYER ) {
|
||||||
if ( level.warmupTime == 0) {
|
if ( level.warmupTime == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2644,7 +2644,7 @@ void G_RunThink (gentity_t *ent) {
|
||||||
if (thinktime > level.time) {
|
if (thinktime > level.time) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ent->nextthink = 0;
|
ent->nextthink = 0;
|
||||||
if (!ent->think) {
|
if (!ent->think) {
|
||||||
G_Error ( "NULL ent->think");
|
G_Error ( "NULL ent->think");
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
static intptr_t (QDECL *syscall)( intptr_t arg, ... ) = (intptr_t (QDECL *)( intptr_t, ...))-1;
|
static intptr_t (QDECL *syscall)( intptr_t arg, ... ) = (intptr_t (QDECL *)( intptr_t, ...))-1;
|
||||||
|
|
||||||
void dllEntry( intptr_t (QDECL *syscallptr)( intptr_t arg,... ) ) {
|
Q_EXPORT void dllEntry( intptr_t (QDECL *syscallptr)( intptr_t arg,... ) ) {
|
||||||
syscall = syscallptr;
|
syscall = syscallptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ void trap_Error( const char *fmt ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int trap_Milliseconds( void ) {
|
int trap_Milliseconds( void ) {
|
||||||
return syscall( G_MILLISECONDS );
|
return syscall( G_MILLISECONDS );
|
||||||
}
|
}
|
||||||
int trap_Argc( void ) {
|
int trap_Argc( void ) {
|
||||||
return syscall( G_ARGC );
|
return syscall( G_ARGC );
|
||||||
|
|
|
@ -10,9 +10,9 @@
|
||||||
// q_shared.h -- included first by ALL program modules.
|
// q_shared.h -- included first by ALL program modules.
|
||||||
// A user mod should never modify this file
|
// A user mod should never modify this file
|
||||||
|
|
||||||
#if defined(ppc) || defined(__ppc) || defined(__ppc__)
|
#if defined(ppc) || defined(__ppc) || defined(__ppc__)
|
||||||
#define idppc
|
#define idppc
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//#define MISSION_PACK //TiM: was commented out
|
//#define MISSION_PACK //TiM: was commented out
|
||||||
|
|
||||||
|
@ -44,6 +44,16 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (defined _MSC_VER)
|
||||||
|
#define Q_EXPORT __declspec(dllexport)
|
||||||
|
#elif (defined __SUNPRO_C)
|
||||||
|
#define Q_EXPORT __global
|
||||||
|
#elif ((__GNUC__ >= 3) && (!__EMX__) && (!sun))
|
||||||
|
#define Q_EXPORT __attribute__((visibility("default")))
|
||||||
|
#else
|
||||||
|
#define Q_EXPORT
|
||||||
|
#endif
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
VM Considerations
|
VM Considerations
|
||||||
|
|
||||||
|
@ -693,7 +703,7 @@ char* Q_strupr( char *s1 );
|
||||||
char* Q_strrchr( const char* string, int c );
|
char* Q_strrchr( const char* string, int c );
|
||||||
/**
|
/**
|
||||||
* Goes through a given str searching for one of the given tokens.
|
* Goes through a given str searching for one of the given tokens.
|
||||||
* If it finds one it returns a new string containing everything
|
* If it finds one it returns a new string containing everything
|
||||||
* from str until the found token (Note: remember to free the result
|
* from str until the found token (Note: remember to free the result
|
||||||
* if no longer needed). Returns NULL if no token is found. Make sure
|
* if no longer needed). Returns NULL if no token is found. Make sure
|
||||||
* to adjust str for the next call yourself as this function won't do that.
|
* to adjust str for the next call yourself as this function won't do that.
|
||||||
|
@ -962,7 +972,7 @@ typedef struct {
|
||||||
#define MAX_STATS 16
|
#define MAX_STATS 16
|
||||||
#define MAX_PERSISTANT 16
|
#define MAX_PERSISTANT 16
|
||||||
#define MAX_POWERUPS 16 //RPG-X:TiM
|
#define MAX_POWERUPS 16 //RPG-X:TiM
|
||||||
#define MAX_WEAPONS 16
|
#define MAX_WEAPONS 16
|
||||||
|
|
||||||
#define MAX_PS_EVENTS 4
|
#define MAX_PS_EVENTS 4
|
||||||
|
|
||||||
|
@ -993,7 +1003,7 @@ typedef struct playerState_s {
|
||||||
int weaponTime;
|
int weaponTime;
|
||||||
int rechargeTime; // for the phaser
|
int rechargeTime; // for the phaser
|
||||||
short useTime; // use debounce
|
short useTime; // use debounce
|
||||||
|
|
||||||
int introTime; // for the holodoor
|
int introTime; // for the holodoor
|
||||||
|
|
||||||
int gravity;
|
int gravity;
|
||||||
|
@ -1167,7 +1177,7 @@ typedef struct entityState_s {
|
||||||
typedef enum {
|
typedef enum {
|
||||||
CA_UNINITIALIZED,
|
CA_UNINITIALIZED,
|
||||||
CA_DISCONNECTED, // not talking to a server
|
CA_DISCONNECTED, // not talking to a server
|
||||||
CA_AUTHORIZING, // not used any more, was checking cd key
|
CA_AUTHORIZING, // not used any more, was checking cd key
|
||||||
CA_CONNECTING, // sending request packets to the server
|
CA_CONNECTING, // sending request packets to the server
|
||||||
CA_CHALLENGING, // sending challenge packets to the server
|
CA_CHALLENGING, // sending challenge packets to the server
|
||||||
CA_CONNECTED, // netchan_t established, getting gamestate
|
CA_CONNECTED, // netchan_t established, getting gamestate
|
||||||
|
@ -1185,7 +1195,7 @@ typedef enum {
|
||||||
|
|
||||||
//extern vmCvar_t rpg_medicsrevive; //RPG-X: RedTechie - To let bg_pmovto work
|
//extern vmCvar_t rpg_medicsrevive; //RPG-X: RedTechie - To let bg_pmovto work
|
||||||
//extern vmCvar_t rpg_noclipspectating; //Added here (by rpg-x:j2j) so it could be seen in bg_pmove.c
|
//extern vmCvar_t rpg_noclipspectating; //Added here (by rpg-x:j2j) so it could be seen in bg_pmove.c
|
||||||
//extern qboolean ClientNCSpec; //Private flag for weather the client chooses to spectate noclip style (rpg-x:j2j)
|
//extern qboolean ClientNCSpec; //Private flag for weather the client chooses to spectate noclip style (rpg-x:j2j)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
========================================================================
|
========================================================================
|
||||||
|
@ -1205,6 +1215,6 @@ typedef struct stringID_table_s
|
||||||
} stringID_table_t;
|
} stringID_table_t;
|
||||||
|
|
||||||
int GetIDForString ( stringID_table_t *table, const char *string );
|
int GetIDForString ( stringID_table_t *table, const char *string );
|
||||||
const char *GetStringForID( stringID_table_t *table, int id );
|
const char *GetStringForID( stringID_table_t *table, int id );
|
||||||
|
|
||||||
#endif // __Q_SHARED_H
|
#endif // __Q_SHARED_H
|
||||||
|
|
|
@ -60,14 +60,13 @@ char *Sys_DefaultHomePath(void)
|
||||||
Com_sprintf(homePath, sizeof(homePath), "%s%c", p, PATH_SEP);
|
Com_sprintf(homePath, sizeof(homePath), "%s%c", p, PATH_SEP);
|
||||||
#ifdef ELITEFORCE
|
#ifdef ELITEFORCE
|
||||||
#ifdef MACOS_X
|
#ifdef MACOS_X
|
||||||
Q_strcat(homePath, sizeof(homePath), "/Library/Application Support/STVEF");
|
Q_strcat(homePath, sizeof(homePath), "Library/Application Support/STVEF");
|
||||||
#else
|
#else
|
||||||
Q_strcat(homePath, sizeof(homePath), "/.stvef");
|
Q_strcat(homePath, sizeof(homePath), ".stvef");
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#ifdef MACOS_X
|
#ifdef MACOS_X
|
||||||
Q_strcat(homePath, sizeof(homePath),
|
Q_strcat(homePath, sizeof(homePath), "Library/Application Support/");
|
||||||
"Library/Application Support/");
|
|
||||||
|
|
||||||
if(com_homepath->string[0])
|
if(com_homepath->string[0])
|
||||||
Q_strcat(homePath, sizeof(homePath), com_homepath->string);
|
Q_strcat(homePath, sizeof(homePath), com_homepath->string);
|
||||||
|
|
|
@ -20,7 +20,7 @@ This is the only way control passes into the module.
|
||||||
This must be the very first function compiled into the .qvm file
|
This must be the very first function compiled into the .qvm file
|
||||||
================
|
================
|
||||||
*/
|
*/
|
||||||
int vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6 ) {
|
Q_EXPORT intptr_t vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6 ) {
|
||||||
switch ( command ) {
|
switch ( command ) {
|
||||||
case UI_GETAPIVERSION:
|
case UI_GETAPIVERSION:
|
||||||
return UI_API_VERSION;
|
return UI_API_VERSION;
|
||||||
|
@ -417,7 +417,7 @@ static cvarTable_t cvarTable[] = {
|
||||||
// { &ui_lastactive, "sys_lastactive", "0", CVAR_ARCHIVE }, //RPG-X | Phenix | 25/02/2005 (Trying to make a timer for intro)
|
// { &ui_lastactive, "sys_lastactive", "0", CVAR_ARCHIVE }, //RPG-X | Phenix | 25/02/2005 (Trying to make a timer for intro)
|
||||||
//TiM : RPG-X variables 8-8-2005
|
//TiM : RPG-X variables 8-8-2005
|
||||||
{ &ui_dynamicLensFlares, "cg_dynamicLensFlares", "1", CVAR_ARCHIVE },
|
{ &ui_dynamicLensFlares, "cg_dynamicLensFlares", "1", CVAR_ARCHIVE },
|
||||||
{ &ui_dynamicCrosshair, "cg_dynamicCrosshair", "1", CVAR_ARCHIVE },
|
{ &ui_dynamicCrosshair, "cg_dynamicCrosshair", "1", CVAR_ARCHIVE },
|
||||||
{ &ui_currentRankSet, "ui_currentRankSet", RANKSET_DEFAULT, CVAR_ARCHIVE | CVAR_ROM },
|
{ &ui_currentRankSet, "ui_currentRankSet", RANKSET_DEFAULT, CVAR_ARCHIVE | CVAR_ROM },
|
||||||
{ &ui_currentClassSet, "ui_currentClassSet", CLASS_DEFAULT, CVAR_ARCHIVE | CVAR_ROM },
|
{ &ui_currentClassSet, "ui_currentClassSet", CLASS_DEFAULT, CVAR_ARCHIVE | CVAR_ROM },
|
||||||
|
|
||||||
|
@ -481,11 +481,11 @@ UI_RegisterCvars
|
||||||
void UI_RegisterCvars( void ) {
|
void UI_RegisterCvars( void ) {
|
||||||
int i;
|
int i;
|
||||||
cvarTable_t *cv;
|
cvarTable_t *cv;
|
||||||
|
|
||||||
//RPG-X: RedTechie - Keep no class default
|
//RPG-X: RedTechie - Keep no class default
|
||||||
//RPG-X: TiM - just commented this out for now to see if I can add class support to the main UI
|
//RPG-X: TiM - just commented this out for now to see if I can add class support to the main UI
|
||||||
// trap_Cvar_Set( "ui_playerclass", "NOCLASS" );
|
// trap_Cvar_Set( "ui_playerclass", "NOCLASS" );
|
||||||
|
|
||||||
for ( i = 0, cv = cvarTable ; i < cvarTableSize ; i++, cv++ ) {
|
for ( i = 0, cv = cvarTable ; i < cvarTableSize ; i++, cv++ ) {
|
||||||
trap_Cvar_Register( cv->vmCvar, cv->cvarName, cv->defaultString, cv->cvarFlags );
|
trap_Cvar_Register( cv->vmCvar, cv->cvarName, cv->defaultString, cv->cvarFlags );
|
||||||
}
|
}
|
||||||
|
@ -542,7 +542,7 @@ int UI_GetAnim ( int anim, int weapon, qboolean upper )
|
||||||
case WP_10:
|
case WP_10:
|
||||||
if ( upper )
|
if ( upper )
|
||||||
return TORSO_WEAPONPOSE1;
|
return TORSO_WEAPONPOSE1;
|
||||||
else
|
else
|
||||||
return BOTH_CROUCH1IDLE;
|
return BOTH_CROUCH1IDLE;
|
||||||
break;
|
break;
|
||||||
case WP_4:
|
case WP_4:
|
||||||
|
@ -612,7 +612,7 @@ int UI_GetAnim ( int anim, int weapon, qboolean upper )
|
||||||
case WP_5:
|
case WP_5:
|
||||||
case WP_10:
|
case WP_10:
|
||||||
if (upper)
|
if (upper)
|
||||||
return TORSO_WEAPONREADY1;
|
return TORSO_WEAPONREADY1;
|
||||||
else
|
else
|
||||||
return BOTH_STAND1;
|
return BOTH_STAND1;
|
||||||
break;
|
break;
|
||||||
|
@ -645,7 +645,7 @@ int UI_GetAnim ( int anim, int weapon, qboolean upper )
|
||||||
return BOTH_STAND1;
|
return BOTH_STAND1;
|
||||||
//Other: "Toolkit"
|
//Other: "Toolkit"
|
||||||
/*case WP_14:
|
/*case WP_14:
|
||||||
//Return nothing.
|
//Return nothing.
|
||||||
//A bit hacky, but the engine accepts it :P
|
//A bit hacky, but the engine accepts it :P
|
||||||
break;*/
|
break;*/
|
||||||
//Other Tools "everything else"
|
//Other Tools "everything else"
|
||||||
|
@ -673,7 +673,7 @@ int UI_GetAnim ( int anim, int weapon, qboolean upper )
|
||||||
//break;
|
//break;
|
||||||
default:
|
default:
|
||||||
if (upper)
|
if (upper)
|
||||||
return TORSO_WEAPONREADY1;
|
return TORSO_WEAPONREADY1;
|
||||||
else
|
else
|
||||||
return BOTH_STAND1;
|
return BOTH_STAND1;
|
||||||
break;
|
break;
|
||||||
|
@ -683,7 +683,7 @@ int UI_GetAnim ( int anim, int weapon, qboolean upper )
|
||||||
//When the player jumps
|
//When the player jumps
|
||||||
case ANIM_JUMP:
|
case ANIM_JUMP:
|
||||||
return BOTH_JUMP1;
|
return BOTH_JUMP1;
|
||||||
|
|
||||||
//When the player runs
|
//When the player runs
|
||||||
case ANIM_RUN:
|
case ANIM_RUN:
|
||||||
//2 handed weapons
|
//2 handed weapons
|
||||||
|
@ -729,11 +729,11 @@ int UI_GetAnim ( int anim, int weapon, qboolean upper )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//When the player walks
|
//When the player walks
|
||||||
case ANIM_BACK:
|
case ANIM_BACK:
|
||||||
//2 handed weapons
|
//2 handed weapons
|
||||||
switch (weapon)
|
switch (weapon)
|
||||||
{
|
{
|
||||||
//case WP_7:
|
//case WP_7:
|
||||||
case WP_8:
|
case WP_8:
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
static intptr_t (QDECL *syscall)( intptr_t arg, ... ) = (intptr_t (QDECL *)( intptr_t, ...))-1;
|
static intptr_t (QDECL *syscall)( intptr_t arg, ... ) = (intptr_t (QDECL *)( intptr_t, ...))-1;
|
||||||
|
|
||||||
void dllEntry( intptr_t (QDECL *syscallptr)( intptr_t arg,... ) ) {
|
Q_EXPORT void dllEntry( intptr_t (QDECL *syscallptr)( intptr_t arg,... ) ) {
|
||||||
syscall = syscallptr;
|
syscall = syscallptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ void trap_Error( const char *string ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int trap_Milliseconds( void ) {
|
int trap_Milliseconds( void ) {
|
||||||
return syscall( UI_MILLISECONDS );
|
return syscall( UI_MILLISECONDS );
|
||||||
}
|
}
|
||||||
|
|
||||||
void trap_Cvar_Register( vmCvar_t *cvar, const char *var_name, const char *value, int flags ) {
|
void trap_Cvar_Register( vmCvar_t *cvar, const char *var_name, const char *value, int flags ) {
|
||||||
|
@ -65,7 +65,7 @@ void trap_Cvar_SetValue( const char *var_name, float value ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void trap_Cvar_Reset( const char *name ) {
|
void trap_Cvar_Reset( const char *name ) {
|
||||||
syscall( UI_CVAR_RESET, name );
|
syscall( UI_CVAR_RESET, name );
|
||||||
}
|
}
|
||||||
|
|
||||||
void trap_Cvar_Create( const char *var_name, const char *var_value, int flags ) {
|
void trap_Cvar_Create( const char *var_name, const char *var_value, int flags ) {
|
||||||
|
|
|
@ -15,7 +15,7 @@ static void Video_MenuEvent (void* ptr, int event);
|
||||||
#define PIC_SLIDER "menu/common/slider.tga"
|
#define PIC_SLIDER "menu/common/slider.tga"
|
||||||
|
|
||||||
// Video Data
|
// Video Data
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
menuframework_s menu;
|
menuframework_s menu;
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ static videoddata_t s_videodata;
|
||||||
|
|
||||||
|
|
||||||
// Video Drivers
|
// Video Drivers
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
menuframework_s menu;
|
menuframework_s menu;
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ typedef struct
|
||||||
|
|
||||||
|
|
||||||
// Video Data 2
|
// Video Data 2
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
menuframework_s menu;
|
menuframework_s menu;
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ static int s_graphics_options_Names[] =
|
||||||
|
|
||||||
extern int s_OffOnNone_Names[];
|
extern int s_OffOnNone_Names[];
|
||||||
|
|
||||||
static int s_resolutions[] =
|
static int s_resolutions[] =
|
||||||
{
|
{
|
||||||
// MNT_320X200,
|
// MNT_320X200,
|
||||||
// MNT_400X300,
|
// MNT_400X300,
|
||||||
|
@ -109,6 +109,7 @@ static char *s_wideResolutions16x9[] =
|
||||||
{
|
{
|
||||||
"854x480",
|
"854x480",
|
||||||
"1280x720",
|
"1280x720",
|
||||||
|
"1366x768",
|
||||||
"1920x1080",
|
"1920x1080",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
@ -117,6 +118,7 @@ static videoResolutions_t videoResolutions16x9[] =
|
||||||
{
|
{
|
||||||
{ 854, 480 },
|
{ 854, 480 },
|
||||||
{ 1280, 720 },
|
{ 1280, 720 },
|
||||||
|
{ 1366, 768 },
|
||||||
{ 1920, 1080 }
|
{ 1920, 1080 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -139,7 +141,7 @@ static videoResolutions_t videoResolutions16x10[] =
|
||||||
{ 2560, 1600 }
|
{ 2560, 1600 }
|
||||||
};
|
};
|
||||||
|
|
||||||
static void *s_widescreenResolutions[] =
|
static void *s_widescreenResolutions[] =
|
||||||
{
|
{
|
||||||
&videoResolutions16x9,
|
&videoResolutions16x9,
|
||||||
&videoResolutions16x10,
|
&videoResolutions16x10,
|
||||||
|
@ -154,11 +156,11 @@ static void *s_widescreenResStrings[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
//store the number of widescreen arrays
|
//store the number of widescreen arrays
|
||||||
static int s_wideScreenSets = 2;
|
static int s_wideScreenSets = 2;
|
||||||
|
|
||||||
//store the number of resolutions in each array.
|
//store the number of resolutions in each array.
|
||||||
//This will be necessary when we change the lists over
|
//This will be necessary when we change the lists over
|
||||||
static int s_resolutionNums[] = {9,3,5};
|
static int s_resolutionNums[] = {9,4,5};
|
||||||
|
|
||||||
//finally for reference sake, use an enum
|
//finally for reference sake, use an enum
|
||||||
typedef enum
|
typedef enum
|
||||||
|
@ -237,7 +239,7 @@ static menubitmap_s s_video_data2;
|
||||||
|
|
||||||
// Precache stuff for Video Driver
|
// Precache stuff for Video Driver
|
||||||
#define MAX_VID_DRIVERS 128
|
#define MAX_VID_DRIVERS 128
|
||||||
static struct
|
static struct
|
||||||
{
|
{
|
||||||
menuframework_s menu;
|
menuframework_s menu;
|
||||||
|
|
||||||
|
@ -284,34 +286,34 @@ static struct
|
||||||
|
|
||||||
static void* g_videolines[] =
|
static void* g_videolines[] =
|
||||||
{
|
{
|
||||||
&s_videodriver.line1,
|
&s_videodriver.line1,
|
||||||
&s_videodriver.line2,
|
&s_videodriver.line2,
|
||||||
&s_videodriver.line3,
|
&s_videodriver.line3,
|
||||||
&s_videodriver.line4,
|
&s_videodriver.line4,
|
||||||
&s_videodriver.line5,
|
&s_videodriver.line5,
|
||||||
&s_videodriver.line6,
|
&s_videodriver.line6,
|
||||||
&s_videodriver.line7,
|
&s_videodriver.line7,
|
||||||
&s_videodriver.line8,
|
&s_videodriver.line8,
|
||||||
&s_videodriver.line9,
|
&s_videodriver.line9,
|
||||||
&s_videodriver.line10,
|
&s_videodriver.line10,
|
||||||
&s_videodriver.line11,
|
&s_videodriver.line11,
|
||||||
&s_videodriver.line12,
|
&s_videodriver.line12,
|
||||||
&s_videodriver.line13,
|
&s_videodriver.line13,
|
||||||
&s_videodriver.line14,
|
&s_videodriver.line14,
|
||||||
&s_videodriver.line15,
|
&s_videodriver.line15,
|
||||||
&s_videodriver.line16,
|
&s_videodriver.line16,
|
||||||
&s_videodriver.line17,
|
&s_videodriver.line17,
|
||||||
&s_videodriver.line18,
|
&s_videodriver.line18,
|
||||||
&s_videodriver.line19,
|
&s_videodriver.line19,
|
||||||
&s_videodriver.line20,
|
&s_videodriver.line20,
|
||||||
&s_videodriver.line21,
|
&s_videodriver.line21,
|
||||||
&s_videodriver.line22,
|
&s_videodriver.line22,
|
||||||
&s_videodriver.line23,
|
&s_videodriver.line23,
|
||||||
&s_videodriver.line24,
|
&s_videodriver.line24,
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
int video_sidebuttons[3][2] =
|
int video_sidebuttons[3][2] =
|
||||||
{
|
{
|
||||||
{ 30, 250 }, // Video Data Button
|
{ 30, 250 }, // Video Data Button
|
||||||
{ 30, 250 + 6 + (MENU_BUTTON_MED_HEIGHT * 1.5) }, // Video Drivers Button
|
{ 30, 250 + 6 + (MENU_BUTTON_MED_HEIGHT * 1.5) }, // Video Drivers Button
|
||||||
|
@ -516,7 +518,7 @@ typedef struct {
|
||||||
menutext_s display;
|
menutext_s display;
|
||||||
menutext_s sound;
|
menutext_s sound;
|
||||||
menutext_s network;
|
menutext_s network;
|
||||||
|
|
||||||
menulist_s aspectRatio;
|
menulist_s aspectRatio;
|
||||||
menulist_s list;
|
menulist_s list;
|
||||||
menulist_s mode;
|
menulist_s mode;
|
||||||
|
@ -558,7 +560,7 @@ typedef struct
|
||||||
} InitialVideoOptions_s;
|
} InitialVideoOptions_s;
|
||||||
|
|
||||||
static InitialVideoOptions_s s_ivo;
|
static InitialVideoOptions_s s_ivo;
|
||||||
static graphicsoptions_t s_graphicsoptions;
|
static graphicsoptions_t s_graphicsoptions;
|
||||||
|
|
||||||
static InitialVideoOptions_s s_ivo_templates[] =
|
static InitialVideoOptions_s s_ivo_templates[] =
|
||||||
{
|
{
|
||||||
|
@ -767,7 +769,7 @@ static void GraphicsOptions_UpdateMenuItems( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
GraphicsOptions_CheckConfig();
|
GraphicsOptions_CheckConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
|
@ -827,9 +829,9 @@ static void GraphicsOptions_ApplyChanges( void *unused, int notification )
|
||||||
}
|
}
|
||||||
|
|
||||||
trap_Cvar_SetValue( "r_lowEndVideo", s_graphicsoptions.simpleshaders.curvalue );
|
trap_Cvar_SetValue( "r_lowEndVideo", s_graphicsoptions.simpleshaders.curvalue );
|
||||||
|
|
||||||
trap_Cvar_SetValue( "r_ext_compress_textures", s_graphicsoptions.compresstextures.curvalue );
|
trap_Cvar_SetValue( "r_ext_compress_textures", s_graphicsoptions.compresstextures.curvalue );
|
||||||
|
|
||||||
switch ( s_graphicsoptions.colordepth.curvalue )
|
switch ( s_graphicsoptions.colordepth.curvalue )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -882,7 +884,7 @@ static void GraphicsOptions_ApplyChanges( void *unused, int notification )
|
||||||
GraphicsOptions_Event
|
GraphicsOptions_Event
|
||||||
=================
|
=================
|
||||||
*/
|
*/
|
||||||
static void GraphicsOptions_Event( void* ptr, int event )
|
static void GraphicsOptions_Event( void* ptr, int event )
|
||||||
{
|
{
|
||||||
InitialVideoOptions_s *ivo;
|
InitialVideoOptions_s *ivo;
|
||||||
|
|
||||||
|
@ -1010,7 +1012,7 @@ static void GraphicsOptions_SetMenuItems( void )
|
||||||
s_graphicsoptions.aspectRatio.curvalue = ASPECTRATIO_4X3; //set aspect to 'Normal' for now
|
s_graphicsoptions.aspectRatio.curvalue = ASPECTRATIO_4X3; //set aspect to 'Normal' for now
|
||||||
|
|
||||||
s_graphicsoptions.mode.curvalue = (trap_Cvar_VariableValue( "r_mode" ) - 2);
|
s_graphicsoptions.mode.curvalue = (trap_Cvar_VariableValue( "r_mode" ) - 2);
|
||||||
|
|
||||||
//TiM - adjust for widescreen
|
//TiM - adjust for widescreen
|
||||||
if ( s_graphicsoptions.mode.curvalue < 0 && !GraphicsOptions_CheckWidescreen() ) //less than 0 means custom resolution now
|
if ( s_graphicsoptions.mode.curvalue < 0 && !GraphicsOptions_CheckWidescreen() ) //less than 0 means custom resolution now
|
||||||
s_graphicsoptions.mode.curvalue = 1;
|
s_graphicsoptions.mode.curvalue = 1;
|
||||||
|
@ -1093,7 +1095,7 @@ static void GraphicsOptions_SetMenuItems( void )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void VideoSideButtonsAction( qboolean result )
|
void VideoSideButtonsAction( qboolean result )
|
||||||
{
|
{
|
||||||
if ( result ) // Yes - do it
|
if ( result ) // Yes - do it
|
||||||
{
|
{
|
||||||
|
@ -1117,7 +1119,7 @@ static void VideoSideButtons_MenuEvent (void* ptr, int event)
|
||||||
|
|
||||||
if (s_graphicsoptions.apply.generic.flags & QMF_BLINK) // Video apply changes button is flashing
|
if (s_graphicsoptions.apply.generic.flags & QMF_BLINK) // Video apply changes button is flashing
|
||||||
{
|
{
|
||||||
UI_ConfirmMenu(menu_normal_text[MNT_LOOSEVIDSETTINGS], 0, VideoSideButtonsAction);
|
UI_ConfirmMenu(menu_normal_text[MNT_LOOSEVIDSETTINGS], 0, VideoSideButtonsAction);
|
||||||
}
|
}
|
||||||
else // Go ahead, act normal
|
else // Go ahead, act normal
|
||||||
{
|
{
|
||||||
|
@ -1303,7 +1305,7 @@ static void VideoData_MenuInit( void )
|
||||||
x = 170;
|
x = 170;
|
||||||
y = 178;
|
y = 178;
|
||||||
width = 145;
|
width = 145;
|
||||||
|
|
||||||
s_graphicsoptions.list.generic.type = MTYPE_SPINCONTROL;
|
s_graphicsoptions.list.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_graphicsoptions.list.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
s_graphicsoptions.list.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
||||||
s_graphicsoptions.list.generic.x = x;
|
s_graphicsoptions.list.generic.x = x;
|
||||||
|
@ -1353,7 +1355,7 @@ static void VideoData_MenuInit( void )
|
||||||
|
|
||||||
y += inc;
|
y += inc;
|
||||||
// references/modifies "r_mode"
|
// references/modifies "r_mode"
|
||||||
// TiM: can now be potentially '-1',
|
// TiM: can now be potentially '-1',
|
||||||
// in which case 'r_customeheight' and 'r_customwidth'
|
// in which case 'r_customeheight' and 'r_customwidth'
|
||||||
// will be used
|
// will be used
|
||||||
s_graphicsoptions.mode.generic.type = MTYPE_SPINCONTROL;
|
s_graphicsoptions.mode.generic.type = MTYPE_SPINCONTROL;
|
||||||
|
@ -1580,7 +1582,7 @@ void Video_SideButtons(menuframework_s *menu,int menuType)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Button Data
|
// Button Data
|
||||||
s_video_data.generic.type = MTYPE_BITMAP;
|
s_video_data.generic.type = MTYPE_BITMAP;
|
||||||
s_video_data.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
s_video_data.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
||||||
s_video_data.generic.x = video_sidebuttons[0][0];
|
s_video_data.generic.x = video_sidebuttons[0][0];
|
||||||
s_video_data.generic.y = video_sidebuttons[0][1];
|
s_video_data.generic.y = video_sidebuttons[0][1];
|
||||||
|
@ -1613,7 +1615,7 @@ void Video_SideButtons(menuframework_s *menu,int menuType)
|
||||||
s_video_data.textcolor2 = CT_WHITE;
|
s_video_data.textcolor2 = CT_WHITE;
|
||||||
}
|
}
|
||||||
|
|
||||||
s_video_data2.generic.type = MTYPE_BITMAP;
|
s_video_data2.generic.type = MTYPE_BITMAP;
|
||||||
s_video_data2.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
s_video_data2.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
||||||
s_video_data2.generic.x = video_sidebuttons[1][0];
|
s_video_data2.generic.x = video_sidebuttons[1][0];
|
||||||
s_video_data2.generic.y = video_sidebuttons[1][1];
|
s_video_data2.generic.y = video_sidebuttons[1][1];
|
||||||
|
@ -1648,7 +1650,7 @@ void Video_SideButtons(menuframework_s *menu,int menuType)
|
||||||
s_video_data2.textcolor2 = CT_WHITE;
|
s_video_data2.textcolor2 = CT_WHITE;
|
||||||
}
|
}
|
||||||
|
|
||||||
s_video_drivers.generic.type = MTYPE_BITMAP;
|
s_video_drivers.generic.type = MTYPE_BITMAP;
|
||||||
s_video_drivers.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
s_video_drivers.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
||||||
s_video_drivers.generic.x = video_sidebuttons[2][0];
|
s_video_drivers.generic.x = video_sidebuttons[2][0];
|
||||||
s_video_drivers.generic.y = video_sidebuttons[2][1];
|
s_video_drivers.generic.y = video_sidebuttons[2][1];
|
||||||
|
@ -1733,23 +1735,23 @@ void VideoDriver_Lines(int increment)
|
||||||
{
|
{
|
||||||
if (i2<24)
|
if (i2<24)
|
||||||
{
|
{
|
||||||
((menutext_s *)g_videolines[i2])->string = s_videodriver.drivers[i];
|
((menutext_s *)g_videolines[i2])->string = s_videodriver.drivers[i];
|
||||||
i2++;
|
i2++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (i2<24)
|
if (i2<24)
|
||||||
{
|
{
|
||||||
((menutext_s *)g_videolines[i2])->string = NULL;
|
((menutext_s *)g_videolines[i2])->string = NULL;
|
||||||
i2++;
|
i2++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up arrows
|
// Set up arrows
|
||||||
|
|
||||||
|
@ -1769,7 +1771,7 @@ void VideoDriver_Lines(int increment)
|
||||||
}
|
}
|
||||||
|
|
||||||
i = (s_videodriver.currentDriverLine * 2);
|
i = (s_videodriver.currentDriverLine * 2);
|
||||||
if (!s_videodriver.drivers[i + 24])
|
if (!s_videodriver.drivers[i + 24])
|
||||||
{
|
{
|
||||||
s_videodriver.activeArrowDwn = qfalse;
|
s_videodriver.activeArrowDwn = qfalse;
|
||||||
return;
|
return;
|
||||||
|
@ -1810,15 +1812,15 @@ void VideoDriver_LineSetup(void)
|
||||||
|
|
||||||
if (i<24)
|
if (i<24)
|
||||||
{
|
{
|
||||||
((menutext_s *)g_videolines[i])->string = eptr;
|
((menutext_s *)g_videolines[i])->string = eptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bufhold++;
|
bufhold++;
|
||||||
eptr = bufhold;
|
eptr = bufhold;
|
||||||
s_videodriver.driverCnt++;
|
s_videodriver.driverCnt++;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set down arrows
|
// Set down arrows
|
||||||
if (i> 24)
|
if (i> 24)
|
||||||
|
@ -1890,12 +1892,12 @@ void M_VideoDriverMenu_Graphics (void)
|
||||||
trap_R_SetColor( colorTable[CT_LTGOLD1]);
|
trap_R_SetColor( colorTable[CT_LTGOLD1]);
|
||||||
if (s_videodriver.activeArrowUp)
|
if (s_videodriver.activeArrowUp)
|
||||||
{
|
{
|
||||||
UI_DrawHandlePic( 382, 237, 32, -14, s_videodriver.arrow_dn);
|
UI_DrawHandlePic( 382, 237, 32, -14, s_videodriver.arrow_dn);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s_videodriver.activeArrowDwn)
|
if (s_videodriver.activeArrowDwn)
|
||||||
{
|
{
|
||||||
UI_DrawHandlePic( 382, 422, 32, 14, s_videodriver.arrow_dn);
|
UI_DrawHandlePic( 382, 422, 32, 14, s_videodriver.arrow_dn);
|
||||||
}
|
}
|
||||||
|
|
||||||
x = 204;
|
x = 204;
|
||||||
|
@ -1972,7 +1974,7 @@ static void VideoDriver_MenuInit( void )
|
||||||
|
|
||||||
Video_SideButtons(&s_videodriver.menu,ID_VIDEODRIVERS);
|
Video_SideButtons(&s_videodriver.menu,ID_VIDEODRIVERS);
|
||||||
|
|
||||||
s_videodriver.arrowup.generic.type = MTYPE_BITMAP;
|
s_videodriver.arrowup.generic.type = MTYPE_BITMAP;
|
||||||
s_videodriver.arrowup.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
s_videodriver.arrowup.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
||||||
s_videodriver.arrowup.generic.x = 572;
|
s_videodriver.arrowup.generic.x = 572;
|
||||||
s_videodriver.arrowup.generic.y = 262;
|
s_videodriver.arrowup.generic.y = 262;
|
||||||
|
@ -1990,7 +1992,7 @@ static void VideoDriver_MenuInit( void )
|
||||||
s_videodriver.arrowup.textcolor2 = CT_WHITE;
|
s_videodriver.arrowup.textcolor2 = CT_WHITE;
|
||||||
Menu_AddItem( &s_videodriver.menu,( void * ) &s_videodriver.arrowup);
|
Menu_AddItem( &s_videodriver.menu,( void * ) &s_videodriver.arrowup);
|
||||||
|
|
||||||
s_videodriver.arrowdwn.generic.type = MTYPE_BITMAP;
|
s_videodriver.arrowdwn.generic.type = MTYPE_BITMAP;
|
||||||
s_videodriver.arrowdwn.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
s_videodriver.arrowdwn.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
||||||
s_videodriver.arrowdwn.generic.x = 572;
|
s_videodriver.arrowdwn.generic.x = 572;
|
||||||
s_videodriver.arrowdwn.generic.y = 397;
|
s_videodriver.arrowdwn.generic.y = 397;
|
||||||
|
@ -2017,14 +2019,14 @@ static void VideoDriver_MenuInit( void )
|
||||||
|
|
||||||
for (i=0;i<24;i++)
|
for (i=0;i<24;i++)
|
||||||
{
|
{
|
||||||
((menutext_s *)g_videolines[i])->generic.type = MTYPE_TEXT;
|
((menutext_s *)g_videolines[i])->generic.type = MTYPE_TEXT;
|
||||||
((menutext_s *)g_videolines[i])->generic.flags = QMF_LEFT_JUSTIFY | QMF_INACTIVE;
|
((menutext_s *)g_videolines[i])->generic.flags = QMF_LEFT_JUSTIFY | QMF_INACTIVE;
|
||||||
((menutext_s *)g_videolines[i])->generic.y = y;
|
((menutext_s *)g_videolines[i])->generic.y = y;
|
||||||
if ((i % 2 ) == 0)
|
if ((i % 2 ) == 0)
|
||||||
{
|
{
|
||||||
((menutext_s *)g_videolines[i])->generic.x = x;
|
((menutext_s *)g_videolines[i])->generic.x = x;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
((menutext_s *)g_videolines[i])->generic.x = x2;
|
((menutext_s *)g_videolines[i])->generic.x = x2;
|
||||||
y +=13;
|
y +=13;
|
||||||
|
@ -2099,7 +2101,7 @@ void M_VideoData2Menu_Graphics (void)
|
||||||
if (uis.glconfig.deviceSupportsGamma)
|
if (uis.glconfig.deviceSupportsGamma)
|
||||||
{
|
{
|
||||||
trap_R_SetColor( colorTable[CT_DKGREY]);
|
trap_R_SetColor( colorTable[CT_DKGREY]);
|
||||||
UI_DrawHandlePic( 178, y, 68, 68, uis.whiteShader); //
|
UI_DrawHandlePic( 178, y, 68, 68, uis.whiteShader); //
|
||||||
trap_R_SetColor( colorTable[CT_WHITE]);
|
trap_R_SetColor( colorTable[CT_WHITE]);
|
||||||
UI_DrawHandlePic( 180, y+2, 64, 64, s_videodata2.gamma); // Starfleet graphic
|
UI_DrawHandlePic( 180, y+2, 64, 64, s_videodata2.gamma); // Starfleet graphic
|
||||||
|
|
||||||
|
@ -2271,19 +2273,19 @@ static void VideoData2_MenuInit( void )
|
||||||
s_videodata2.screensize_slider.thumbColor2 = CT_LTBLUE1;
|
s_videodata2.screensize_slider.thumbColor2 = CT_LTBLUE1;
|
||||||
|
|
||||||
y += 34;
|
y += 34;
|
||||||
s_videodata2.anisotropicfiltering.generic.type = MTYPE_SPINCONTROL;
|
s_videodata2.anisotropicfiltering.generic.type = MTYPE_SPINCONTROL;
|
||||||
s_videodata2.anisotropicfiltering.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
s_videodata2.anisotropicfiltering.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
||||||
s_videodata2.anisotropicfiltering.generic.x = x;
|
s_videodata2.anisotropicfiltering.generic.x = x;
|
||||||
s_videodata2.anisotropicfiltering.generic.y = y;
|
s_videodata2.anisotropicfiltering.generic.y = y;
|
||||||
s_videodata2.anisotropicfiltering.generic.name = GRAPHIC_BUTTONRIGHT;
|
s_videodata2.anisotropicfiltering.generic.name = GRAPHIC_BUTTONRIGHT;
|
||||||
s_videodata2.anisotropicfiltering.generic.callback = AnisotropicFilteringCallback;
|
s_videodata2.anisotropicfiltering.generic.callback = AnisotropicFilteringCallback;
|
||||||
s_videodata2.anisotropicfiltering.color = CT_DKPURPLE1;
|
s_videodata2.anisotropicfiltering.color = CT_DKPURPLE1;
|
||||||
s_videodata2.anisotropicfiltering.color2 = CT_LTPURPLE1;
|
s_videodata2.anisotropicfiltering.color2 = CT_LTPURPLE1;
|
||||||
s_videodata2.anisotropicfiltering.textX = MENU_BUTTON_TEXT_X;
|
s_videodata2.anisotropicfiltering.textX = MENU_BUTTON_TEXT_X;
|
||||||
s_videodata2.anisotropicfiltering.textY = MENU_BUTTON_TEXT_Y;
|
s_videodata2.anisotropicfiltering.textY = MENU_BUTTON_TEXT_Y;
|
||||||
s_videodata2.anisotropicfiltering.textEnum = MBT_ANISOTROPICFILTERING;
|
s_videodata2.anisotropicfiltering.textEnum = MBT_ANISOTROPICFILTERING;
|
||||||
s_videodata2.anisotropicfiltering.textcolor = CT_BLACK;
|
s_videodata2.anisotropicfiltering.textcolor = CT_BLACK;
|
||||||
s_videodata2.anisotropicfiltering.textcolor2 = CT_WHITE;
|
s_videodata2.anisotropicfiltering.textcolor2 = CT_WHITE;
|
||||||
s_videodata2.anisotropicfiltering.listnames = s_OffOnNone_Names;
|
s_videodata2.anisotropicfiltering.listnames = s_OffOnNone_Names;
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue