18 Dec 2009

This commit is contained in:
g-cont 2009-12-18 00:00:00 +03:00 committed by Alibek Omarov
parent aaf4234bf3
commit b69d3322d9
30 changed files with 143 additions and 268 deletions

View File

@ -665,10 +665,10 @@ void IN_Init( void )
v_centermove = CVAR_REGISTER ("v_centermove", "0.15", 0, "client center moving" );
v_centerspeed = CVAR_REGISTER ("v_centerspeed", "500", 0, "client center speed" );
cl_upspeed = CVAR_REGISTER( "cl_upspeed", "200", 0, "client upspeed limit" );
cl_forwardspeed = CVAR_REGISTER( "cl_forwardspeed", "200", 0, "client forward speed limit" );
cl_backspeed = CVAR_REGISTER( "cl_backspeed", "200", 0, "client bask speed limit" );
cl_sidespeed = CVAR_REGISTER( "cl_sidespeed", "200", 0, "client side-speed limit" );
cl_upspeed = CVAR_REGISTER( "cl_upspeed", "400", 0, "client upspeed limit" );
cl_forwardspeed = CVAR_REGISTER( "cl_forwardspeed", "400", 0, "client forward speed limit" );
cl_backspeed = CVAR_REGISTER( "cl_backspeed", "400", 0, "client bask speed limit" );
cl_sidespeed = CVAR_REGISTER( "cl_sidespeed", "400", 0, "client side-speed limit" );
cl_yawspeed = CVAR_REGISTER( "cl_yawspeed", "140", 0, "client yaw speed" );
cl_pitchspeed = CVAR_REGISTER( "cl_pitchspeed", "150", 0, "client pitch speed" );
cl_anglespeedkey = CVAR_REGISTER( "cl_anglespeedkey", "1.5", 0, "client anglespeed" );

View File

@ -486,12 +486,12 @@ void Con_DrawSolidConsole( float frac )
SCR_AdjustSize( &con.xadjust, NULL, NULL, NULL );
// draw the background
y = frac * SCREEN_HEIGHT - 2;
y = frac * SCREEN_HEIGHT;
if( y < 1 ) y = 0;
else SCR_DrawPic( 0, y - SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT, cls.consoleBack );
MakeRGBA( color, 255, 0, 0, 255 );
SCR_FillRect( 0, y, SCREEN_WIDTH, 2, color );
SCR_FillRect( 0, y - 2, SCREEN_WIDTH, 2, color );
// draw current time
re->SetColor( g_color_table[ColorIndex(COLOR_YELLOW)] );

View File

@ -1697,6 +1697,10 @@ static void pfnTraceLine( const float *v1, const float *v2, int fNoMonsters, edi
{
trace_t result;
if( svgame.globals->trace_flags & 1 )
fNoMonsters |= FTRACE_SIMPLEBOX;
svgame.globals->trace_flags = 0;
if( VectorIsNAN( v1 ) || VectorIsNAN( v2 ))
Host_Error( "TraceLine: NAN errors detected '%f %f %f', '%f %f %f'\n", v1[0], v1[1], v1[2], v2[0], v2[1], v2[2] );
result = SV_Move( v1, vec3_origin, vec3_origin, v2, fNoMonsters, pentToSkip );
@ -1738,6 +1742,10 @@ static void pfnTraceHull( const float *v1, const float *v2, int fNoMonsters, int
mins = GI->client_mins[hullNumber];
maxs = GI->client_maxs[hullNumber];
if( svgame.globals->trace_flags & 1 )
fNoMonsters |= FTRACE_SIMPLEBOX;
svgame.globals->trace_flags = 0;
if( VectorIsNAN( v1 ) || VectorIsNAN( v2 ))
Host_Error( "TraceHull: NAN errors detected '%f %f %f', '%f %f %f'\n", v1[0], v1[1], v1[2], v2[0], v2[1], v2[2] );
result = SV_Move( v1, mins, maxs, v2, fNoMonsters, pentToSkip );
@ -1761,6 +1769,10 @@ static int pfnTraceMonsterHull( edict_t *pEdict, const float *v1, const float *v
return 1;
}
if( svgame.globals->trace_flags & 1 )
fNoMonsters |= FTRACE_SIMPLEBOX;
svgame.globals->trace_flags = 0;
mins = pEdict->v.mins;
maxs = pEdict->v.maxs;

View File

@ -22,7 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "ui_local.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_audio"
#define ART_TEXT1 "gfx/shell/text/audio_text_p1"
#define ART_TEXT2 "gfx/shell/text/audio_text_p2"
@ -257,10 +256,10 @@ static void UI_Audio_Init( void )
uiAudio.banner.generic.id = ID_BANNER;
uiAudio.banner.generic.type = QMTYPE_BITMAP;
uiAudio.banner.generic.flags = QMF_INACTIVE;
uiAudio.banner.generic.x = 65;
uiAudio.banner.generic.y = 92;
uiAudio.banner.generic.width = 690;
uiAudio.banner.generic.height = 120;
uiAudio.banner.generic.x = UI_BANNER_POSX;
uiAudio.banner.generic.y = UI_BANNER_POSY;
uiAudio.banner.generic.width = UI_BANNER_WIDTH;
uiAudio.banner.generic.height = UI_BANNER_HEIGHT;
uiAudio.banner.pic = ART_BANNER;
uiAudio.text1.generic.id = ID_TEXT1;

View File

@ -21,8 +21,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "common.h"
#include "ui_local.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_config"
#define ID_BACKGROUND 0
@ -103,10 +101,10 @@ static void UI_Options_Init( void )
uiOptions.banner.generic.id = ID_BANNER;
uiOptions.banner.generic.type = QMTYPE_BITMAP;
uiOptions.banner.generic.flags = QMF_INACTIVE;
uiOptions.banner.generic.x = 65;
uiOptions.banner.generic.y = 92;
uiOptions.banner.generic.width = 690;
uiOptions.banner.generic.height = 120;
uiOptions.banner.generic.x = UI_BANNER_POSX;
uiOptions.banner.generic.y = UI_BANNER_POSY;
uiOptions.banner.generic.width = UI_BANNER_WIDTH;
uiOptions.banner.generic.height = UI_BANNER_HEIGHT;
uiOptions.banner.pic = ART_BANNER;
uiOptions.controls.generic.id = ID_CONTROLS;

View File

@ -22,7 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "ui_local.h"
#include "input.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_controls"
#define ART_TEXT_LOOK "gfx/shell/text/cont_look_text_p1"
#define ART_TEXT_LOOK2 "gfx/shell/text/cont_look_text_p2"
@ -667,10 +666,10 @@ static void UI_Controls_Init( void )
uiControls.banner.generic.id = ID_BANNER;
uiControls.banner.generic.type = QMTYPE_BITMAP;
uiControls.banner.generic.flags = QMF_INACTIVE;
uiControls.banner.generic.x = 65;
uiControls.banner.generic.y = 92;
uiControls.banner.generic.width = 690;
uiControls.banner.generic.height = 120;
uiControls.banner.generic.x = UI_BANNER_POSX;
uiControls.banner.generic.y = UI_BANNER_POSY;
uiControls.banner.generic.width = UI_BANNER_WIDTH;
uiControls.banner.generic.height = UI_BANNER_HEIGHT;
uiControls.banner.pic = ART_BANNER;
uiControls.textShadow1.generic.id = ID_TEXTSHADOW1;

View File

@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "ui_local.h"
#include "client.h"
#define ART_BACKGROUND "gfx/shell/credits"
#define ART_MAIN_CREDITS "gfx/shell/credits"
#define UI_CREDITS_PATH "scripts/credits.txt"
#define UI_CREDITS_MAXLINES 2048
@ -120,7 +120,7 @@ static void UI_Credits_DrawFunc( void )
// draw the background first
if( !uiCredits.finalCredits )
UI_DrawPic( 0, 0, 1024 * uiStatic.scaleX, 768 * uiStatic.scaleY, uiColorWhite, ART_BACKGROUND );
UI_DrawPic( 0, 0, 1024 * uiStatic.scaleX, 768 * uiStatic.scaleY, uiColorWhite, ART_MAIN_CREDITS );
// otherwise running on cutscene
// now draw the credits
@ -244,7 +244,7 @@ void UI_Credits_Precache( void )
{
if( !re ) return;
re->RegisterShader( ART_BACKGROUND, SHADER_NOMIP );
re->RegisterShader( ART_MAIN_CREDITS, SHADER_NOMIP );
}
/*

View File

@ -21,9 +21,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "common.h"
#include "ui_local.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ID_BACKGROUND 0
#define ID_CANCEL 1
#define ID_PLAY 2

View File

@ -21,8 +21,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "common.h"
#include "ui_local.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_advanced"
#define ART_TEXT1 "gfx/shell/text/gameoptions_text_p1"
#define ART_TEXT2 "gfx/shell/text/gameoptions_text_p2"
@ -170,10 +168,10 @@ static void UI_GameOptions_Init( void )
uiGameOptions.banner.generic.id = ID_BANNER;
uiGameOptions.banner.generic.type = QMTYPE_BITMAP;
uiGameOptions.banner.generic.flags = QMF_INACTIVE;
uiGameOptions.banner.generic.x = 65;
uiGameOptions.banner.generic.y = 92;
uiGameOptions.banner.generic.width = 690;
uiGameOptions.banner.generic.height = 120;
uiGameOptions.banner.generic.x = UI_BANNER_POSX;
uiGameOptions.banner.generic.y = UI_BANNER_POSY;
uiGameOptions.banner.generic.width = UI_BANNER_WIDTH;
uiGameOptions.banner.generic.height = UI_BANNER_HEIGHT;
uiGameOptions.banner.pic = ART_BANNER;
uiGameOptions.text1.generic.id = ID_TEXT1;

View File

@ -23,7 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "ui_local.h"
#include "client.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_load"
#define ID_BACKGROUND 0
@ -241,10 +240,10 @@ static void UI_LoadGame_Init( void )
uiLoadGame.banner.generic.id = ID_BANNER;
uiLoadGame.banner.generic.type = QMTYPE_BITMAP;
uiLoadGame.banner.generic.flags = QMF_INACTIVE;
uiLoadGame.banner.generic.x = 65;
uiLoadGame.banner.generic.y = 92;
uiLoadGame.banner.generic.width = 690;
uiLoadGame.banner.generic.height = 120;
uiLoadGame.banner.generic.x = UI_BANNER_POSX;
uiLoadGame.banner.generic.y = UI_BANNER_POSY;
uiLoadGame.banner.generic.width = UI_BANNER_WIDTH;
uiLoadGame.banner.generic.height = UI_BANNER_HEIGHT;
uiLoadGame.banner.pic = ART_BANNER;
uiLoadGame.load.generic.id = ID_LOAD;

View File

@ -26,6 +26,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "render_api.h"
#define UI_WHITE_SHADER "*white"
#define ART_MAIN_SPLASH "gfx/shell/splash"
#define ART_BACKGROUND "gfx/shell/background"
#define UI_CURSOR_NORMAL "gfx/shell/cursor"
#define UI_CURSOR_DISABLED "gfx/shell/denied"
#define UI_CURSOR_TYPING "gfx/shell/typing"
@ -63,6 +65,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define UI_MAXGAMES 100 // slots for savegame
#define UI_MAX_SERVERS 10
// menu banners used fiexed rectangle (virtual screenspace at 640x480)
#define UI_BANNER_POSX 72
#define UI_BANNER_POSY 72
#define UI_BANNER_WIDTH 736
#define UI_BANNER_HEIGHT 128
// Generic types
typedef enum
{

View File

@ -24,7 +24,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "input.h"
#include "client.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_MINIMIZE_N "gfx/shell/min_n"
#define ART_MINIMIZE_F "gfx/shell/min_f"
#define ART_CLOSEBTN_N "gfx/shell/cls_n"
@ -225,7 +224,7 @@ static void UI_Main_Init( void )
uiMain.background.generic.y = 0;
uiMain.background.generic.width = 1024;
uiMain.background.generic.height = 768;
uiMain.background.pic = ART_BACKGROUND;
uiMain.background.pic = ART_MAIN_SPLASH;
uiMain.console.generic.id = ID_CONSOLE;
uiMain.console.generic.type = QMTYPE_ACTION;
@ -417,7 +416,7 @@ void UI_Main_Precache( void )
{
if( !re ) return;
re->RegisterShader( ART_BACKGROUND, SHADER_NOMIP );
re->RegisterShader( ART_MAIN_SPLASH, SHADER_NOMIP );
re->RegisterShader( ART_MINIMIZE_N, SHADER_NOMIP );
re->RegisterShader( ART_MINIMIZE_F, SHADER_NOMIP );
re->RegisterShader( ART_CLOSEBTN_N, SHADER_NOMIP );

View File

@ -22,7 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "ui_local.h"
#include "client.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_custom"
#define ID_BACKGROUND 0
@ -174,10 +173,10 @@ static void UI_CustomGame_Init( void )
uiCustomGame.banner.generic.id = ID_BANNER;
uiCustomGame.banner.generic.type = QMTYPE_BITMAP;
uiCustomGame.banner.generic.flags = QMF_INACTIVE;
uiCustomGame.banner.generic.x = 65;
uiCustomGame.banner.generic.y = 92;
uiCustomGame.banner.generic.width = 690;
uiCustomGame.banner.generic.height = 120;
uiCustomGame.banner.generic.x = UI_BANNER_POSX;
uiCustomGame.banner.generic.y = UI_BANNER_POSY;
uiCustomGame.banner.generic.width = UI_BANNER_WIDTH;
uiCustomGame.banner.generic.height = UI_BANNER_HEIGHT;
uiCustomGame.banner.pic = ART_BANNER;
uiCustomGame.load.generic.id = ID_ACTIVATE;

View File

@ -26,7 +26,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "const.h"
#include "input.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_multi"
#define ID_BACKGROUND 0
@ -1254,10 +1253,10 @@ static void UI_MultiPlayer_Init( void )
uiMultiPlayer.banner.generic.id = ID_BANNER;
uiMultiPlayer.banner.generic.type = QMTYPE_BITMAP;
uiMultiPlayer.banner.generic.flags = QMF_INACTIVE;
uiMultiPlayer.banner.generic.x = 65;
uiMultiPlayer.banner.generic.y = 92;
uiMultiPlayer.banner.generic.width = 690;
uiMultiPlayer.banner.generic.height = 120;
uiMultiPlayer.banner.generic.x = UI_BANNER_POSX;
uiMultiPlayer.banner.generic.y = UI_BANNER_POSY;
uiMultiPlayer.banner.generic.width = UI_BANNER_WIDTH;
uiMultiPlayer.banner.generic.height = UI_BANNER_HEIGHT;
uiMultiPlayer.banner.pic = ART_BANNER;
uiMultiPlayer.internetGames.generic.id = ID_INTERNETGAMES;

View File

@ -22,7 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "ui_local.h"
#include "client.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_newgame"
#define ID_BACKGROUND 0
@ -173,10 +172,10 @@ static void UI_NewGame_Init( void )
uiNewGame.banner.generic.id = ID_BANNER;
uiNewGame.banner.generic.type = QMTYPE_BITMAP;
uiNewGame.banner.generic.flags = QMF_INACTIVE;
uiNewGame.banner.generic.x = 65;
uiNewGame.banner.generic.y = 92;
uiNewGame.banner.generic.width = 690;
uiNewGame.banner.generic.height = 120;
uiNewGame.banner.generic.x = UI_BANNER_POSX;
uiNewGame.banner.generic.y = UI_BANNER_POSY;
uiNewGame.banner.generic.width = UI_BANNER_WIDTH;
uiNewGame.banner.generic.height = UI_BANNER_HEIGHT;
uiNewGame.banner.pic = ART_BANNER;
uiNewGame.easy.generic.id = ID_EASY;

View File

@ -22,7 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "ui_local.h"
#include "client.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_customize"
#define ID_BACKGROUND 0
@ -254,10 +253,10 @@ static void UI_PlayerSetup_Init( void )
uiPlayerSetup.banner.generic.id = ID_BANNER;
uiPlayerSetup.banner.generic.type = QMTYPE_BITMAP;
uiPlayerSetup.banner.generic.flags = QMF_INACTIVE;
uiPlayerSetup.banner.generic.x = 65;
uiPlayerSetup.banner.generic.y = 92;
uiPlayerSetup.banner.generic.width = 690;
uiPlayerSetup.banner.generic.height = 120;
uiPlayerSetup.banner.generic.x = UI_BANNER_POSX;
uiPlayerSetup.banner.generic.y = UI_BANNER_POSY;
uiPlayerSetup.banner.generic.width = UI_BANNER_WIDTH;
uiPlayerSetup.banner.generic.height = UI_BANNER_HEIGHT;
uiPlayerSetup.banner.pic = ART_BANNER;
uiPlayerSetup.done.generic.id = ID_DONE;

View File

@ -23,7 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "ui_local.h"
#include "client.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_save"
#define ID_BACKGROUND 0
@ -265,10 +264,10 @@ static void UI_SaveGame_Init( void )
uiSaveGame.banner.generic.id = ID_BANNER;
uiSaveGame.banner.generic.type = QMTYPE_BITMAP;
uiSaveGame.banner.generic.flags = QMF_INACTIVE;
uiSaveGame.banner.generic.x = 65;
uiSaveGame.banner.generic.y = 92;
uiSaveGame.banner.generic.width = 690;
uiSaveGame.banner.generic.height = 120;
uiSaveGame.banner.generic.x = UI_BANNER_POSX;
uiSaveGame.banner.generic.y = UI_BANNER_POSY;
uiSaveGame.banner.generic.width = UI_BANNER_WIDTH;
uiSaveGame.banner.generic.height = UI_BANNER_HEIGHT;
uiSaveGame.banner.pic = ART_BANNER;
uiSaveGame.save.generic.id = ID_SAVE;

View File

@ -22,7 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "ui_local.h"
#include "client.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_saveload"
#define ID_BACKGROUND 0
@ -104,10 +103,10 @@ static void UI_SaveLoad_Init( void )
uiSaveLoad.banner.generic.id = ID_BANNER;
uiSaveLoad.banner.generic.type = QMTYPE_BITMAP;
uiSaveLoad.banner.generic.flags = QMF_INACTIVE;
uiSaveLoad.banner.generic.x = 65;
uiSaveLoad.banner.generic.y = 92;
uiSaveLoad.banner.generic.width = 690;
uiSaveLoad.banner.generic.height = 120;
uiSaveLoad.banner.generic.x = UI_BANNER_POSX;
uiSaveLoad.banner.generic.y = UI_BANNER_POSY;
uiSaveLoad.banner.generic.width = UI_BANNER_WIDTH;
uiSaveLoad.banner.generic.height = UI_BANNER_HEIGHT;
uiSaveLoad.banner.pic = ART_BANNER;
uiSaveLoad.load.generic.id = ID_LOAD;

View File

@ -21,8 +21,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "common.h"
#include "ui_local.h"
#define ART_BACKGROUND "gfx/shell/splash"
#define ART_BANNER "gfx/shell/head_video"
#define ART_TEXT1 "gfx/shell/text/video_text_p1"
#define ART_TEXT2 "gfx/shell/text/video_text_p2"
@ -70,7 +68,7 @@ static const char *uiVideoModes[] =
"1024 x 576 (wide)",
"1440 x 900 (wide)",
"1680 x 1050 (wide)",
"1920 x 1200 (wide)"
"1920 x 1200 (wide)",
"2560 x 1600 (wide)",
};
@ -282,7 +280,7 @@ static void UI_Video_UpdateConfig( void )
{
uiVideo.glExtensions.curValue = uiVideoTemplates[(int)uiVideo.graphicsSettings.curValue - 1].glExtensions;
uiVideo.glExtensions.generic.flags |= QMF_GRAYED;
uiVideo.videoMode.curValue = uiVideoTemplates[(int)uiVideo.graphicsSettings.curValue - 1].videoMode;
uiVideo.videoMode.curValue = uiVideoTemplates[(int)uiVideo.graphicsSettings.curValue].videoMode;
uiVideo.videoMode.generic.flags |= QMF_GRAYED;
uiVideo.fullScreen.curValue = uiVideoTemplates[(int)uiVideo.graphicsSettings.curValue - 1].fullScreen;
uiVideo.fullScreen.generic.flags |= QMF_GRAYED;
@ -445,10 +443,10 @@ static void UI_Video_Init( void )
uiVideo.banner.generic.id = ID_BANNER;
uiVideo.banner.generic.type = QMTYPE_BITMAP;
uiVideo.banner.generic.flags = QMF_INACTIVE;
uiVideo.banner.generic.x = 65;
uiVideo.banner.generic.y = 92;
uiVideo.banner.generic.width = 690;
uiVideo.banner.generic.height = 120;
uiVideo.banner.generic.x = UI_BANNER_POSX;
uiVideo.banner.generic.y = UI_BANNER_POSY;
uiVideo.banner.generic.width = UI_BANNER_WIDTH;
uiVideo.banner.generic.height = UI_BANNER_HEIGHT;
uiVideo.banner.pic = ART_BANNER;
uiVideo.text1.generic.id = ID_TEXT1;
@ -515,15 +513,15 @@ static void UI_Video_Init( void )
uiVideo.videoMode.generic.id = ID_VIDEOMODE;
uiVideo.videoMode.generic.type = QMTYPE_SPINCONTROL;
uiVideo.videoMode.generic.flags = QMF_CENTER_JUSTIFY | QMF_PULSEIFFOCUS | QMF_DROPSHADOW;
uiVideo.videoMode.generic.flags = QMF_HIGHLIGHTIFFOCUS|QMF_DROPSHADOW|QMF_SMALLFONT|QMF_CENTER_JUSTIFY;
uiVideo.videoMode.generic.x = 580;
uiVideo.videoMode.generic.y = 224;
uiVideo.videoMode.generic.width = 198;
uiVideo.videoMode.generic.height = 30;
uiVideo.videoMode.generic.callback = UI_Video_Callback;
uiVideo.videoMode.generic.statusText = "Set your game resolution";
uiVideo.videoMode.minValue = -1;
uiVideo.videoMode.maxValue = 12;
uiVideo.videoMode.minValue = 0;
uiVideo.videoMode.maxValue = 15;
uiVideo.videoMode.range = 1;
uiVideo.fullScreen.generic.id = ID_FULLSCREEN;

View File

@ -2004,13 +2004,14 @@ static searchpath_t *FS_FindFile( const char *name, int* index, bool quiet )
// Found it
if( !diff )
{
if( !quiet ) MsgDev(D_INFO, "FS_FindFile: %s in %s\n", pak->files[middle].name, pak->filename);
if( !quiet ) MsgDev( D_INFO, "FS_FindFile: %s in %s\n", pak->files[middle].name, pak->filename );
if( index ) *index = middle;
return search;
}
// if we're too far in the list
if (diff > 0) right = middle - 1;
if( diff > 0 )
right = middle - 1;
else left = middle + 1;
}
}

View File

@ -16,12 +16,16 @@
#include "utils.h"
#include "game.h"
cvar_t *sv_maxspeed;
// Register your console variables here
// This gets called one time when the game is initialized
void GameDLLInit( void )
{
ALERT( at_aiconsole, "GameDLLInit();\n" );
sv_maxspeed = CVAR_REGISTER( "sv_maxspeed", "320", 0, "maximum speed a player can accelerate to when on ground" );
// register cvars here:
CVAR_REGISTER( "sv_soundlist", "0", 0, "show server sound list" );

View File

@ -21,4 +21,6 @@
extern void GameDLLInit( void );
extern void GameDLLShutdown( void );
extern cvar_t *sv_maxspeed;
#endif // GAME_H

View File

@ -937,6 +937,24 @@ void StartFrame( void )
gpGlobals->teamplay = (CVAR_GET_FLOAT( "mp_teamplay" ) == 1.0f) ? TRUE : FALSE;
g_ulFrameCount++;
if( sv_maxspeed->modified )
{
char msg[64];
// maxspeed is modified, refresh maxspeed for each client
for( int i = 0; i < gpGlobals->maxClients; i++ )
{
CBaseEntity *pClient = UTIL_PlayerByIndex( i + 1 );
if( FNullEnt( pClient )) continue;
g_engfuncs.pfnSetClientMaxspeed( pClient->edict(), sv_maxspeed->value );
}
sprintf( msg, "sv_maxspeed is changed to %g\n", sv_maxspeed->value );
g_engfuncs.pfnServerPrint( msg );
sv_maxspeed->modified = false;
}
ServerPostActivate(); // called once
PhysicsFrame();
PhysicsPostFrame();

178
todo.log
View File

@ -18,179 +18,7 @@ Sprite Lerping -
1. Поддержка loop для ogg vorbis
2. переписать studiomdl для использования VFS
Beta 13.12.09
Beta 13.12.10
0. ïîäêëþ÷èòü sv_dll ê ïðîåêòó OK
1. âêëþ÷èòü Think OK
2. rename bool to BOOL OK
3. player Physic OK
4. release crash OK
5. timers set OK
6. AI_ -> FL_ OK
7. SVC_SOUND OK
8. client.dll implementation OK
9. HookUserMessages OK
10.remove SVC_* in utils.h OK
11.Load server.dll and client.dll only once OK
12.v_refdef interactions OK
13.hud_scale factor OK
14.move "loading" and "pause" into CHUD OK
15.Get Rid Of DrawImage OK
16.Copy Resources OK
17.òîðìîçà íà áîëüøèõ êàðòàõ OK
18.weapon pickup & drawing OK
19.AddRefEntity uses edict_t instead entity state OK
20.render custom models OK
21.zoom_hud and warhead hud OK
22.entity_state_t revision 4 OK
23.entvars_t revision 1 OK
24.UpdateClientData - move call to cl_input.c OK
25.wrote HUD_StudioEvents OK
16.register cmd->buttons OK
17.pfnSetKeyDest in client.dll OK
18.IMPLEMENT SAVERESTORE OK
19.crash on dm_knot OK
20.rename common.dll to xtools.dll OK
21.add missing builtins in enginefuncs_t OK
22.add missing builtins in cl_enginefuncs_t OK
23.first implement efxapi_t OK
24.ed_fields flags OK
25.install ALL missing models & sounds! OK
26.fixangle doesn't working correctly OK
27.fixup viewmodel drawing OK
28.fixing r_pause_effect OK
29.dm_knot wrong entities OK
30.func_pendulum OK
31.weapon_egon & weapon_gauss OK
32.Com_LoadLibrary: searchpaths: game/bin, bin OK
33.prepare resources for pak OK
34.V_CalcRefDef export OK
35.other unused exports cl & sv OK
36.V_CalcThirdPerson OK
37. player weaponmodel OK
38. CalcShake OK
39. CrosshairAngle OK
40. FirstPerson RefDef OK
41. 3dsky surfaceParm OK
42. fixup sky rendering OK
43. fixup sowtware mip-map generator OK
44. fixup sky rendering OK
45. make color as unsigned_byte(4) OK
46. RB_RenderShader() OK
47. fixup slowly rendering OK
48. implement uimenu into engine.dll OK
49. implement new timers OK
50. fixup network packets rate OK
51. fixup stair climbing OK
52. implement new user move system OK
53. finish RenderMode for shaders OK
54. q3/rbsp bsp format OK
55. dedicated conolse hanging commands OK
56. renderer areabits bug OK
57. shutdown crash OK
58. physic.dll finish collisions OK
59. raven bsp supports OK
60. fixup render times OK
61. fixup portal rendering OK
62. return old-xash renderer initialization OK
63. portal rendering angles OK
64. ImageLoading from old render OK
65. envshot, skyshot swap angles to right pos OK
66. ShaderSystem from old render OK
67. fixup NPOT textures loading (screen textures) OK
68. add new shader types OK
69. implement oldareabits OK
70. repair fog texture OK
71. fixup hardware gamma adjusting OK
72. screenshots VID_AdjustGamma OK
73. shaders pasring OK
74. fixup 3D textures loading OK
75. ignore shader errors - just throw warnings OK
76. launch.dll ->release gl_invalid_enum OK
77. debug shader_free_unused mechanism OK
78. fix changemap errors OK
79. memory trash in render.dll OK
80. implement $rgb, $alpha OK
89. get rid of R_Upload32 OK
90. get rid of Com_ParseExt OK
91. implement rendermodes OK
92. implement VBO OK
93. implement sky rotate, sky shader, etc OK
94. implement studio format OK
95. support for custom tables (external) OK
96. implement sprite format OK
97. fix fog in release build OK
98. fix crash in release build OK
99. rewrote RF_* flags OK
100. implement JpegLib OK
101. replace Matrix_ with Matrix3x3_ OK
102. replace Matrix4_ with Matrix4x4_ OK
103. fixup studio culling OK
103. fixup client angles & blending OK
104. sorting folder resources OK
105. sorting sources folder OK
106. implement q3map2 into xtools.dll OK
107. implement shader sorting for rendermodes OK
108. prepare QuArK to Xash-ready OK
109. implement q1 models instead of q3 models OK
110. loading textures for q1 models OK
111. remove alias models support OK
112. clean up renderer sources OK
113. fixup debug tools OK
114. fixup shadowmaps OK
115. fixup CullStudioModel OK
116. create flashlight for player OK
117. re-organize refdef flags OK
118. revise ref_params_t OK
119. fixup client smooth stair climbing OK
120. fixup fov OK
121. make lerping for sprites OK
122. fix studio lerping between sequences OK
123. fixup studio EF_ANIMATE OK
124. fixup studio events on client-side OK
125. sort & implement engfuncs on server.dll OK
126. implement trace from Quake3 OK
127. debug sv.edicts and cl.edicts management OK
128. fixup sprites lerping OK
129. fixup sound orientation OK
130. don't show console on changelevel OK
131. fixup teleports and trigger push's OK
132. implement _detail.txt lists for hl OK
133. new sound\render system version replacement OK
134. dx sound engine complete OK
135. implement dsp OK
136. re-vision uimenu OK
137. complete rewriting physic.dll OK
138. implement hashtable for loaded sounds OK
139. finalize triangle API OK
140. net_msg is buggly!!!! OK
141. implement client predicting OK
142. finalize CL_Move and CL_LinkEdict OK
143. implement pmove OK
144. usercmd sends right OK
145. gl_invalid_value mirrors bug OK
146. implement RoQ back OK
147. implement studio trace OK
148. implement pfnCanSkipPlayer OK
149. implement pfnEmitAmbientSound OK
150. implement pfnEndGame OK
151. implement pfnFadeClientVolume OK
152. implement ÑRC32 OK
153. implement physinfo strings OK
154. fix downloading issues OK
155. implement pfnPlaybackEvent OK
156. allowing to use russian letters OK
157. implement signon buffers OK
158. call the spectator funcs OK
159. call the pfnClientKill OK
160. pfnGetPlayerStats OK
161. fix basevelocity OK
162. rewrote auto-classify OK
163. rewrote sv_phys.c OK
164. remove vprogs.dll OK
165. finalize EventAPI OK
166. move cl_input.c into client.dll OK
167. fix all founded errors OK
168. release at 13/12/2009 OK
0. Implement gearcraft map format for bsplib OK
1. finalize menu

View File

@ -1633,9 +1633,6 @@ static bool Shaderpass_Material( ref_shader_t *shader, ref_stage_t *pass, script
flags = Shader_SetImageFlags( shader );
if( !Com_ReadToken( script, SC_ALLOW_PATHNAMES2, &tok ));
return false;
if( !com.stricmp( tok.string, "$rgb" ))
{
if( !Com_ReadToken( script, SC_ALLOW_PATHNAMES2, &tok ));

View File

@ -532,7 +532,7 @@ bool PrepareBSPModel( int argc, char **argv )
for( i = 0; i < MAX_JITTERS; i++ )
jitters[ i ] = sin( i * 139.54152147 );
game = &games[1]; // defaulting to Xash
game = &games[0]; // defaulting to Xash
FS_LoadGameInfo( NULL );
BspFunc = NULL;

View File

@ -145,7 +145,7 @@ game_t struct
{ "fog", Q_CONT_FOG, Q_CONT_SOLID, 0, 0, C_FOG, C_SOLID },
{ "sky", 0, 0, Q_SURF_SKY, 0, C_SKY, 0 },
{ "slick", 0, 0, Q_SURF_SLICK, 0, 0, 0 },
{ "noimpact", 0, 0, Q_SURF_NOIMPACT, 0, 0, 0 },
{ "noimpact", 0, 0, Q_SURF_NOIMPACT, 0, C_NOIMPACT, 0 },
{ "nomarks", 0, 0, Q_SURF_NOMARKS, 0, C_NOMARKS, 0 },
{ "ladder", 0, 0, Q_SURF_LADDER, 0, 0, 0 },
{ "nodamage", 0, 0, Q_SURF_NODAMAGE, 0, 0, 0 },

View File

@ -95,7 +95,7 @@ game_t struct
{ "fog", Q_CONT_FOG, Q_CONT_SOLID, 0, 0, C_FOG, C_SOLID },
{ "sky", 0, 0, Q_SURF_SKY, 0, C_SKY, 0 },
{ "slick", 0, 0, Q_SURF_SLICK, 0, 0, 0 },
{ "noimpact", 0, 0, Q_SURF_NOIMPACT, 0, 0, 0 },
{ "noimpact", 0, 0, Q_SURF_NOIMPACT, 0, C_NOIMPACT, 0 },
{ "nomarks", 0, 0, Q_SURF_NOMARKS, 0, C_NOMARKS, 0 },
{ "ladder", 0, 0, Q_SURF_LADDER, 0, 0, 0 },
{ "nodamage", 0, 0, Q_SURF_NODAMAGE, 0, 0, 0 },

View File

@ -32,16 +32,23 @@ several games based on the Quake III Arena engine, in the form of "Q3Map2."
#include "trace_def.h"
#define VALVE_FORMAT 220
#define GEARBOX_FORMAT 510
#define PLANE_HASHES 8192
#define NORMAL_EPSILON 0.00001
#define DIST_EPSILON 0.01
#define MAPTYPE() Msg( "map type: %s\n", g_sMapType[g_bBrushPrimit] )
#define GEARBOX_DETAIL 8
#define GEARBOX_NODRAW 32
#define GEARBOX_NOIMPACTS 131072
#define GEARBOX_NODECALS 262144
static const char *g_sMapType[BRUSH_COUNT] =
{
"unknown",
"Worldcraft 2.1",
"Valve Hammer 3.4",
"GearCraft 4.0",
"Radiant",
"QuArK"
};
@ -730,7 +737,7 @@ static void ParseRawBrush( bool onlyLights )
Com_ReadToken( mapfile, SC_ALLOW_PATHNAMES|SC_PARSE_GENERIC, &token );
com.strncpy( name, token.string, sizeof( name ));
if( g_bBrushPrimit == BRUSH_WORLDCRAFT_22 ) // Worldcraft 2.2+
if( g_bBrushPrimit == BRUSH_WORLDCRAFT_22 || g_bBrushPrimit == BRUSH_GEARCRAFT_40 ) // Worldcraft 2.2+
{
// texture U axis
Com_ReadToken( mapfile, 0, &token );
@ -759,6 +766,16 @@ static void ParseRawBrush( bool onlyLights )
// texure scale
Com_ReadFloat( mapfile, false, &vects.hammer.scale[0] );
Com_ReadFloat( mapfile, false, &vects.hammer.scale[1] );
if( g_bBrushPrimit == BRUSH_GEARCRAFT_40 )
{
Com_ReadLong( mapfile, false, &flags ); // read gearcraft flags
Com_SkipRestOfLine( mapfile ); // gearcraft lightmap scale and rotate
if( flags & GEARBOX_DETAIL )
side->compileFlags |= C_DETAIL;
}
}
else if( g_bBrushPrimit == BRUSH_WORLDCRAFT_21 || g_bBrushPrimit == BRUSH_QUARK )
{
@ -923,7 +940,7 @@ static void ParseRawBrush( bool onlyLights )
for( j = 0; j < 3; j++ )
side->vecs[i][j] = vecs[i][j] / vects.hammer.scale[i];
}
else if( g_bBrushPrimit == BRUSH_WORLDCRAFT_22 )
else if( g_bBrushPrimit == BRUSH_WORLDCRAFT_22 || g_bBrushPrimit == BRUSH_GEARCRAFT_40 )
{
float scale;
@ -1389,6 +1406,11 @@ static bool ParseMapEntity( bool onlyLights )
Msg( "Valve Format Map detected\n" );
g_bBrushPrimit = BRUSH_WORLDCRAFT_22;
}
else if( com.atoi( ep->value ) == GEARBOX_FORMAT )
{
Msg( "Gearcraft Format Map detected\n" );
g_bBrushPrimit = BRUSH_GEARCRAFT_40;
}
else g_bBrushPrimit = BRUSH_WORLDCRAFT_21;
}
if( ep->key[0] != '\0' && ep->value[0] != '\0' )

View File

@ -82,6 +82,7 @@ enum
BRUSH_UNKNOWN = 0,
BRUSH_WORLDCRAFT_21, // quake worldcraft <= 2.1
BRUSH_WORLDCRAFT_22, // half-life worldcraft >= 2.2
BRUSH_GEARCRAFT_40, // JamesBond 007 gearcraft
BRUSH_RADIANT,
BRUSH_QUARK,
BRUSH_COUNT
@ -105,6 +106,7 @@ enum
#define C_ANTIPORTAL 0x00004000 /* like hint, but doesn't generate portals */
#define C_SKIP 0x00008000 /* like hint, but skips this face (doesn't split bsp) */
#define C_NOMARKS 0x00010000 /* no decals */
#define C_NOIMPACT 0x00020000 // no impacts
#define C_DETAIL 0x08000000 /* THIS MUST BE THE SAME AS IN RADIANT! */