Fix a few annoying bugs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6078 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
23437fff01
commit
00cd084bb8
5 changed files with 47 additions and 5 deletions
|
@ -2565,7 +2565,8 @@ void DL_Abort(qdownload_t *dl, enum qdlabort aborttype)
|
|||
}
|
||||
}
|
||||
#ifdef PACKAGEMANAGER
|
||||
PM_FileInstalled(dl->localname, dl->fsroot, NULL, true);
|
||||
if (!strncmp(dl->localname, "package/", 8) && dl->fsroot == FS_ROOT)
|
||||
PM_FileInstalled(dl->localname+8, dl->fsroot, NULL, false);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1787,6 +1787,10 @@ void *PM_GeneratePackageFromMeta(vfsfile_t *file, char *fname, size_t fnamesize,
|
|||
static qboolean PM_FileInstalled_Internal(const char *package, const char *category, const char *title, const char *filename, enum fs_relative fsroot, unsigned pkgflags, void *metainfo, qboolean enable)
|
||||
{
|
||||
package_t *p;
|
||||
char *dlcache, *end;
|
||||
|
||||
if (!*filename)
|
||||
return false; //wtf?
|
||||
|
||||
if (metainfo)
|
||||
{
|
||||
|
@ -1808,7 +1812,41 @@ static qboolean PM_FileInstalled_Internal(const char *package, const char *categ
|
|||
p->deps = Z_Malloc(sizeof(*p->deps) + strlen(filename));
|
||||
p->deps->dtype = DEP_FILE;
|
||||
strcpy(p->deps->name, filename);
|
||||
p->fsroot = fsroot;
|
||||
|
||||
dlcache = strstr(p->deps->name+1, "/dlcache/");
|
||||
if (dlcache)
|
||||
{
|
||||
memmove(dlcache+1, dlcache+9, strlen(dlcache+9)+1);
|
||||
dlcache = (char*)(COM_GetFileExtension(p->deps->name, NULL));
|
||||
if (dlcache[0] == '.' && dlcache[1] && *COM_GetFileExtension(p->deps->name, dlcache))
|
||||
{
|
||||
unsigned int qhash = strtoul(dlcache+1, &end, 16);
|
||||
if (!*end) //reached the end of the name?...
|
||||
{
|
||||
p->qhash = Z_StrDupf("%#x", qhash); //that looks like a qhash!
|
||||
*dlcache = 0; //strip it from the name.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (fsroot == FS_PUBGAMEONLY)
|
||||
{
|
||||
Q_strncpyz(p->gamedir, FS_GetGamedir(true), sizeof(p->gamedir));
|
||||
p->fsroot = FS_ROOT;
|
||||
}
|
||||
else if (fsroot == FS_ROOT && pkgflags)
|
||||
{
|
||||
dlcache = strchr(p->deps->name+1, '/');
|
||||
if (dlcache)
|
||||
{
|
||||
*dlcache++ = 0;
|
||||
Q_strncpyz(p->gamedir, p->deps->name, sizeof(p->gamedir));
|
||||
memmove(p->deps->name, dlcache, strlen(dlcache)+1);
|
||||
}
|
||||
p->fsroot = FS_ROOT;
|
||||
}
|
||||
else
|
||||
p->fsroot = fsroot;
|
||||
|
||||
if (pkgflags&DPF_PLUGIN)
|
||||
{
|
||||
|
|
|
@ -1628,7 +1628,8 @@ TRACE(("dbg: R_ApplyRenderer: isDedicated = true\n"));
|
|||
CL_Disconnect("Graphics rendering disabled");
|
||||
sv.state = os;
|
||||
}
|
||||
Sys_InitTerminal();
|
||||
if (!Sys_InitTerminal())
|
||||
return false;
|
||||
Con_PrintToSys();
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ static void Sys_InitClock(void);
|
|||
|
||||
qboolean Sys_InitTerminal (void) //we either have one or we don't.
|
||||
{
|
||||
return true;
|
||||
return isatty(STDIN_FILENO);
|
||||
}
|
||||
void Sys_CloseTerminal (void)
|
||||
{
|
||||
|
|
|
@ -1087,6 +1087,8 @@ void Cvar_ForceCheatVars(qboolean semicheats, qboolean absolutecheats)
|
|||
{
|
||||
if (!(var->flags & (CVAR_CHEAT|CVAR_SEMICHEAT)))
|
||||
continue;
|
||||
if (var->flags & CVAR_SERVEROVERRIDE) //server has control over it. don't force it away.
|
||||
continue;
|
||||
|
||||
latch = var->latched_string;
|
||||
var->latched_string = NULL;
|
||||
|
@ -1105,7 +1107,7 @@ void Cvar_ForceCheatVars(qboolean semicheats, qboolean absolutecheats)
|
|||
else
|
||||
Cvar_ForceSet(var, latch);
|
||||
}
|
||||
if (var->flags & CVAR_SEMICHEAT)
|
||||
else if (var->flags & CVAR_SEMICHEAT)
|
||||
{
|
||||
if (var->flags & CVAR_RULESETLATCH)
|
||||
; //this is too problematic. the ruleset should cover it.
|
||||
|
|
Loading…
Reference in a new issue