mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2024-11-13 00:24:29 +00:00
IOQ3 commit 2076
This commit is contained in:
parent
6a2edcb095
commit
8b7d9f9021
4 changed files with 96 additions and 74 deletions
|
@ -72,8 +72,6 @@ typedef struct {
|
||||||
|
|
||||||
int numDemos;
|
int numDemos;
|
||||||
char names[NAMEBUFSIZE];
|
char names[NAMEBUFSIZE];
|
||||||
int numLegacyDemos;
|
|
||||||
char namesLegacy[NAMEBUFSIZE];
|
|
||||||
|
|
||||||
char *demolist[MAX_DEMOS];
|
char *demolist[MAX_DEMOS];
|
||||||
} demos_t;
|
} demos_t;
|
||||||
|
@ -133,7 +131,7 @@ Demos_MenuInit
|
||||||
===============
|
===============
|
||||||
*/
|
*/
|
||||||
static void Demos_MenuInit( void ) {
|
static void Demos_MenuInit( void ) {
|
||||||
int i;
|
int i, j;
|
||||||
int len;
|
int len;
|
||||||
char *demoname, extension[32];
|
char *demoname, extension[32];
|
||||||
int protocol, protocolLegacy;
|
int protocol, protocolLegacy;
|
||||||
|
@ -239,51 +237,48 @@ static void Demos_MenuInit( void ) {
|
||||||
protocolLegacy = 0;
|
protocolLegacy = 0;
|
||||||
|
|
||||||
Com_sprintf(extension, sizeof(extension), ".%s%d", DEMOEXT, protocol);
|
Com_sprintf(extension, sizeof(extension), ".%s%d", DEMOEXT, protocol);
|
||||||
s_demos.numDemos = trap_FS_GetFileList("demos", extension, s_demos.names, NAMEBUFSIZE);
|
s_demos.numDemos = trap_FS_GetFileList("demos", extension, s_demos.names, ARRAY_LEN(s_demos.names));
|
||||||
|
|
||||||
if(s_demos.numDemos > MAX_DEMOS)
|
demoname = s_demos.names;
|
||||||
s_demos.numDemos = MAX_DEMOS;
|
i = 0;
|
||||||
|
|
||||||
if(protocolLegacy > 0)
|
for(j = 0; j < 2; j++)
|
||||||
{
|
{
|
||||||
Com_sprintf(extension, sizeof(extension), ".%s%d", DEMOEXT, protocolLegacy);
|
if(s_demos.numDemos > MAX_DEMOS)
|
||||||
s_demos.numLegacyDemos = trap_FS_GetFileList("demos", extension, s_demos.namesLegacy, NAMEBUFSIZE);
|
s_demos.numDemos = MAX_DEMOS;
|
||||||
|
|
||||||
|
for(; i < s_demos.numDemos; i++)
|
||||||
|
{
|
||||||
|
s_demos.list.itemnames[i] = demoname;
|
||||||
|
|
||||||
|
len = strlen(demoname);
|
||||||
|
|
||||||
|
demoname += len + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!j)
|
||||||
|
{
|
||||||
|
if(protocolLegacy > 0 && s_demos.numDemos < MAX_DEMOS)
|
||||||
|
{
|
||||||
|
Com_sprintf(extension, sizeof(extension), ".%s%d", DEMOEXT, protocolLegacy);
|
||||||
|
s_demos.numDemos += trap_FS_GetFileList("demos", extension, demoname,
|
||||||
|
ARRAY_LEN(s_demos.names) - (demoname - s_demos.names));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
s_demos.numLegacyDemos = 0;
|
|
||||||
|
|
||||||
s_demos.list.numitems = s_demos.numDemos + s_demos.numLegacyDemos;
|
s_demos.list.numitems = s_demos.numDemos;
|
||||||
|
|
||||||
|
if(!s_demos.numDemos)
|
||||||
if (!s_demos.list.numitems) {
|
{
|
||||||
strcpy( s_demos.names, "No Demos Found." );
|
s_demos.list.itemnames[0] = "No Demos Found.";
|
||||||
s_demos.list.numitems = 1;
|
s_demos.list.numitems = 1;
|
||||||
|
|
||||||
//degenerate case, not selectable
|
//degenerate case, not selectable
|
||||||
s_demos.go.generic.flags |= (QMF_INACTIVE|QMF_HIDDEN);
|
s_demos.go.generic.flags |= (QMF_INACTIVE|QMF_HIDDEN);
|
||||||
}
|
}
|
||||||
else if (s_demos.list.numitems > MAX_DEMOS)
|
|
||||||
s_demos.list.numitems = MAX_DEMOS;
|
|
||||||
|
|
||||||
demoname = s_demos.names;
|
|
||||||
for(i = 0; i < s_demos.numDemos; i++)
|
|
||||||
{
|
|
||||||
s_demos.list.itemnames[i] = demoname;
|
|
||||||
|
|
||||||
len = strlen(demoname);
|
|
||||||
|
|
||||||
demoname += len + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
demoname = s_demos.namesLegacy;
|
|
||||||
for(; i < s_demos.list.numitems; i++)
|
|
||||||
{
|
|
||||||
s_demos.list.itemnames[i] = demoname;
|
|
||||||
|
|
||||||
len = strlen(demoname);
|
|
||||||
|
|
||||||
demoname += len + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Menu_AddItem( &s_demos.menu, &s_demos.banner );
|
Menu_AddItem( &s_demos.menu, &s_demos.banner );
|
||||||
Menu_AddItem( &s_demos.menu, &s_demos.framel );
|
Menu_AddItem( &s_demos.menu, &s_demos.framel );
|
||||||
|
|
|
@ -213,6 +213,7 @@ void UI_LoadBestScores(const char *map, int game)
|
||||||
char fileName[MAX_QPATH];
|
char fileName[MAX_QPATH];
|
||||||
fileHandle_t f;
|
fileHandle_t f;
|
||||||
postGameInfo_t newInfo;
|
postGameInfo_t newInfo;
|
||||||
|
int protocol, protocolLegacy;
|
||||||
|
|
||||||
memset(&newInfo, 0, sizeof(postGameInfo_t));
|
memset(&newInfo, 0, sizeof(postGameInfo_t));
|
||||||
Com_sprintf(fileName, MAX_QPATH, "games/%s_%i.game", map, game);
|
Com_sprintf(fileName, MAX_QPATH, "games/%s_%i.game", map, game);
|
||||||
|
@ -226,12 +227,31 @@ void UI_LoadBestScores(const char *map, int game)
|
||||||
}
|
}
|
||||||
UI_SetBestScores(&newInfo, qfalse);
|
UI_SetBestScores(&newInfo, qfalse);
|
||||||
|
|
||||||
Com_sprintf(fileName, MAX_QPATH, "demos/%s_%d.dm_%d", map, game, (int) trap_Cvar_VariableValue("protocol"));
|
|
||||||
uiInfo.demoAvailable = qfalse;
|
uiInfo.demoAvailable = qfalse;
|
||||||
if (trap_FS_FOpenFile(fileName, &f, FS_READ) >= 0) {
|
|
||||||
|
protocolLegacy = trap_Cvar_VariableValue("com_legacyprotocol");
|
||||||
|
protocol = trap_Cvar_VariableValue("com_protocol");
|
||||||
|
|
||||||
|
if(!protocol)
|
||||||
|
protocol = trap_Cvar_VariableValue("protocol");
|
||||||
|
if(protocolLegacy == protocol)
|
||||||
|
protocolLegacy = 0;
|
||||||
|
|
||||||
|
Com_sprintf(fileName, MAX_QPATH, "demos/%s_%d.%s%d", map, game, DEMOEXT, protocol);
|
||||||
|
if(trap_FS_FOpenFile(fileName, &f, FS_READ) >= 0)
|
||||||
|
{
|
||||||
uiInfo.demoAvailable = qtrue;
|
uiInfo.demoAvailable = qtrue;
|
||||||
trap_FS_FCloseFile(f);
|
trap_FS_FCloseFile(f);
|
||||||
}
|
}
|
||||||
|
else if(protocolLegacy > 0)
|
||||||
|
{
|
||||||
|
Com_sprintf(fileName, MAX_QPATH, "demos/%s_%d.%s%d", map, game, DEMOEXT, protocolLegacy);
|
||||||
|
if (trap_FS_FOpenFile(fileName, &f, FS_READ) >= 0)
|
||||||
|
{
|
||||||
|
uiInfo.demoAvailable = qtrue;
|
||||||
|
trap_FS_FCloseFile(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -788,7 +788,7 @@ qboolean UI_RQ3_WeaponMenuAccess( void );
|
||||||
#define MAPS_PER_TIER 3
|
#define MAPS_PER_TIER 3
|
||||||
#define MAX_TIERS 16
|
#define MAX_TIERS 16
|
||||||
#define MAX_MODS 64
|
#define MAX_MODS 64
|
||||||
#define MAX_DEMOS 256
|
#define MAX_DEMOS 512
|
||||||
#define MAX_MOVIES 256
|
#define MAX_MOVIES 256
|
||||||
#define MAX_PLAYERMODELS 256
|
#define MAX_PLAYERMODELS 256
|
||||||
|
|
||||||
|
|
|
@ -5384,6 +5384,8 @@ static void UI_LoadMovies( void )
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define NAMEBUFSIZE (MAX_DEMOS * 32)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
===============
|
===============
|
||||||
UI_LoadDemos
|
UI_LoadDemos
|
||||||
|
@ -5448,47 +5450,52 @@ void UI_SortDemoList(int start, int end, int column)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void UI_LoadDemos( void )
|
static void UI_LoadDemos( void ) {
|
||||||
{
|
char demolist[NAMEBUFSIZE];
|
||||||
char demolist[4096];
|
char demoExt[32];
|
||||||
char demoExt[32];
|
char *demoname;
|
||||||
char *demoname;
|
int i, j, len;
|
||||||
int i, j, len, protocol = (int) trap_Cvar_VariableValue("protocol");
|
int protocol, protocolLegacy;
|
||||||
|
|
||||||
uiInfo.demoCount = 0;
|
protocolLegacy = trap_Cvar_VariableValue("com_legacyprotocol");
|
||||||
//Makro - old code was using just the "protocol" cvar; replaced with a for loop
|
protocol = trap_Cvar_VariableValue("com_protocol");
|
||||||
for (j=66; j<=protocol; j++)
|
|
||||||
|
if(!protocol)
|
||||||
|
protocol = trap_Cvar_VariableValue("protocol");
|
||||||
|
if(protocolLegacy == protocol)
|
||||||
|
protocolLegacy = 0;
|
||||||
|
|
||||||
|
Com_sprintf(demoExt, sizeof(demoExt), ".%s%d", DEMOEXT, protocol);
|
||||||
|
uiInfo.demoCount = trap_FS_GetFileList("demos", demoExt, demolist, ARRAY_LEN(demolist));
|
||||||
|
|
||||||
|
demoname = demolist;
|
||||||
|
i = 0;
|
||||||
|
|
||||||
|
for(j = 0; j < 2; j++)
|
||||||
{
|
{
|
||||||
int count;
|
if(uiInfo.demoCount > MAX_DEMOS)
|
||||||
//Com_sprintf(demoExt, sizeof(demoExt), "dm_%d", (int) trap_Cvar_VariableValue("protocol"));
|
uiInfo.demoCount = MAX_DEMOS;
|
||||||
Com_sprintf(demoExt, sizeof(demoExt), "dm_%d", j);
|
|
||||||
|
|
||||||
count = trap_FS_GetFileList("demos", demoExt, demolist, 4096);
|
for(; i < uiInfo.demoCount; i++)
|
||||||
|
{
|
||||||
|
len = strlen(demoname);
|
||||||
|
uiInfo.demoList[i] = String_Alloc(demoname);
|
||||||
|
demoname += len + 1;
|
||||||
|
}
|
||||||
|
|
||||||
//Com_sprintf(demoExt, sizeof(demoExt), ".dm_%d", (int) trap_Cvar_VariableValue("protocol"));
|
if(!j)
|
||||||
Com_sprintf(demoExt, sizeof(demoExt), ".dm_%d", j);
|
{
|
||||||
|
if(protocolLegacy > 0 && uiInfo.demoCount < MAX_DEMOS)
|
||||||
if (count) {
|
|
||||||
//int start = uiInfo.demoCount+1;
|
|
||||||
//uiInfo.demoList[uiInfo.demoCount++] = String_Alloc(va("*** Recorded with Quake 3 %s ***", q3VersionFromProtocol(j)));
|
|
||||||
demoname = demolist;
|
|
||||||
for (i = 0; i < count && uiInfo.demoCount <= MAX_DEMOS; i++)
|
|
||||||
{
|
{
|
||||||
len = strlen(demoname);
|
Com_sprintf(demoExt, sizeof(demoExt), ".%s%d", DEMOEXT, protocolLegacy);
|
||||||
if (!Q_stricmp(demoname + len - strlen(demoExt), demoExt))
|
uiInfo.demoCount += trap_FS_GetFileList("demos", demoExt, demolist, ARRAY_LEN(demolist));
|
||||||
{
|
demoname = demolist;
|
||||||
demoname[len - strlen(demoExt)] = '\0';
|
|
||||||
}
|
|
||||||
//Makro - bad for linux users
|
|
||||||
//Q_strupr(demoname);
|
|
||||||
uiInfo.demoType[uiInfo.demoCount] = j;
|
|
||||||
//uiInfo.demoList[uiInfo.demoCount++] = String_Alloc(va("%s (%s)", demoname, q3VersionFromProtocol(j)));
|
|
||||||
uiInfo.demoList[uiInfo.demoCount++] = String_Alloc(demoname);
|
|
||||||
demoname += len + 1;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UI_SortDemoList(0, uiInfo.demoCount, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static qboolean UI_SetNextMap(int actual, int index)
|
static qboolean UI_SetNextMap(int actual, int index)
|
||||||
|
|
Loading…
Reference in a new issue