Linux Beta 2.3 Fix

This commit is contained in:
StFi 2013-03-04 19:52:26 +01:00
parent e16722e2d2
commit 9736433110
11 changed files with 278 additions and 262 deletions

6
.gitignore vendored
View file

@ -1,3 +1,9 @@
#################
## Kdevelop 4.X
#################
.kdev4/
rpgxEF.kdev4
################# #################
## Eclipse ## Eclipse
################# #################

View file

@ -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)

View file

@ -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 );

View file

@ -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 );
} }

View file

@ -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");

View file

@ -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 );

View file

@ -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

View file

@ -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);

View file

@ -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:

View file

@ -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 ) {

View file

@ -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;