Try to fix up some manifest quirks...

This commit is contained in:
Shpoike 2023-08-13 02:33:52 +01:00
parent b0b4725119
commit 330cbcdb20
4 changed files with 13 additions and 14 deletions

View File

@ -1217,6 +1217,7 @@ static void FS_Manifest_SetDefaultSettings(ftemanifest_t *man, const gamemode_in
//read a manifest file
ftemanifest_t *FS_Manifest_ReadMem(const char *fname, const char *basedir, const char *data)
{
int ver;
int i;
ftemanifest_t *man;
if (!data)
@ -1260,17 +1261,13 @@ ftemanifest_t *FS_Manifest_ReadMem(const char *fname, const char *basedir, const
}
}
#ifdef SVNREVISION
//svnrevision is often '-', which means we can't just use it as a constant.
{
int ver = atoi(STRINGIFY(SVNREVISION));
if (man->minver > ver || (man->maxver && man->maxver < ver))
ver = revision_number(false);
if (ver && (man->minver > ver || (man->maxver && man->maxver < ver)))
{
FS_Manifest_Free(man);
return NULL;
}
}
#endif
return man;
}
@ -6493,6 +6490,7 @@ qboolean FS_ChangeGame(ftemanifest_t *man, qboolean allowreloadconfigs, qboolean
if (!man)
{
int found = 0;
//if we're already running a game, don't autodetect.
if (fs_manifest)
return false;
@ -6501,7 +6499,7 @@ qboolean FS_ChangeGame(ftemanifest_t *man, qboolean allowreloadconfigs, qboolean
if (!man)
{
int found = FS_EnumerateKnownGames(FS_FoundManifest, &man);
found = FS_EnumerateKnownGames(FS_FoundManifest, &man);
if (found != 1)
{
//we found more than 1 (or none)
@ -6522,7 +6520,7 @@ qboolean FS_ChangeGame(ftemanifest_t *man, qboolean allowreloadconfigs, qboolean
{
#ifdef _WIN32
//quit straight out on windows. this prevents shitty sandboxed malware scanners from seeing bugs in opengl drivers and blaming us for it.
if (!fixedbasedir)
if (!fixedbasedir && found == 0)
Sys_Error("No recognised game data found in working directory:\n%s", com_gamepath);
#endif
man = FS_Manifest_ReadMem(NULL, NULL,

View File

@ -11,6 +11,6 @@ mainconfig "fo.cfg"
//see quake-demo.fmf
archivedpackage id1/pak0.pak 0x4f069cac id1/pak0.pak https://updates.triptohell.info/moodles/live/QUAKE_SW.zip
//this is made complicated because we can't just use the pk3 as-is etc.
//this is made complicated because we can't just use the pk3 as-is etc (engine will sandbox the menuqc if not signed).
package fortress/fortressone.pk3 mirror "https://github.com/FortressOne/fte-config/releases/download/1.1.1-beta.1/fortressone-fte-linux-1.1.1-beta.1-portable.zip" crc 0x7d74337f prefix "/FortressOne/fortress" filesize 197849205 sha512 "42a0deaa571f30c56dac08603d94d968a603a6c2d64db29473cb25f7e1db29fe63260cc8cda2e41dbbb3decd5e1c5440aa6bbceeae45c3225dad359fe0559021" signature "Spike:OrVRb1AuVmPGSmPlMS37DmEs1UIOeAZpSFj8s9jweUDbSqbkBnY6+5tBI43MxqDtIRMhK1+zDoaRxyvR2HErks2hf1wVoDnwpVACi893tvhSKQ0yfKUfkdpqm8aQM7AU/22ZGj5zav6RtxoX+np/7rzfET0fHzCSaQS1d6/TeJaQ5rMPX13Bgu0CenuOD1rvVNXXPMD5d887Kd+y/kz4OVUH0/xkjua5LHsWwDroC5AwzQI/EsWbcJx+xppihKNdMboAr51dALDuWLeSYzswPoJZWppv9D0WbjLohiZU04gmys7JdLn1cclz5MvIinLNFK//adQHrISqDFJqBygni8k90A0BNwSjdVzf9f4bYtzwS5qFRNgYtONyb380cpFZtMMKLdLRne1K8Y4FljzaJztcbm5qBQCLjAaK+C405tUDddDToCyyGsO6Zxf7yzhlSXNTWv/qRgKx91w5pJNyACgYnspxr+xOX+6ewchZZi07uPOPwVrxoAkuIrkiJtUe"

View File

@ -5,6 +5,7 @@
FTEManifestVer 1
game quake
name Quake
//the shareware license requires distribution in whole... so we'll just download the whole shareware zip and extract only what we need - assuming the user does not already have a copy.
archivedpackage id1/pak0.pak 0x4f069cac id1/pak0.pak https://fte.triptohell.info/moodles/live/QUAKE_SW.zip

View File

@ -2,7 +2,7 @@
//+prefixed lines are inserted AFTER default.cfg and will thus conflict/override the mod's own settings
game xonotic
name "FTE Xonotic (0.8.5)"
name "FTEized Xonotic (0.8.5)"
protocolname "Xonotic"
basegame data
basegame *ftedata //so stuff gets written here instead.
@ -16,7 +16,7 @@ package "data/xonotic-20220627-music.pk3" crc 0x5d1dd373 mirror "unzip:Xonotic
package "data/xonotic-20220627-nexcompat.pk3" crc 0x83f613b9 mirror "unzip:Xonotic/data/xonotic-20220627-nexcompat.pk3,https://github.com/garymoon/xonotic/releases/download/xonotic-v0.8.5/xonotic-0.8.5.zip"
//This sucks. overrides the *.dat files to work around gmqcc bugs (also smaller dat files at runtime, but still stupid and annoying and means compat hits the fan when using the standard csprogs on dp servers)
package "data/xonotic-fixups-0.8.5.zip" crc 0xe27b8ad3 mirror "xonotic-fixups-0.8.5.pk3"
package "data/xonotic-fixups-0.8.5.pk3" crc 0xe27b8ad3 //mirror "xonotic-fixups-0.8.5.pk3"
//-set pr_fixbrokenqccarrays 2 //this can be used instead, but can cause its own problems.
@ -38,7 +38,7 @@ package "data/xonotic-fixups-0.8.5.zip" crc 0xe27b8ad3 mirror "xonotic-fixups-0.
-if ($dedicated < 1) then set qport 654 //xonotic expects this cvar to exist only in clients (and uses it to detect client vs dedicated server). this entirely ignores 'setrenderer sv' of course. good luck with that one.
-set gl_info_extensions "GL_EXT_texture_compression_s3tc GL_ARB_texture_compression" //fte doesn't have a cvar that contains opengl extensions, in part because they don't apply to other renderers, thus making it kinda useless. and xonotic likes spamming warning messages, even though they're invalid half the time, and impossible for a user to work around the rest of the time.
-set gl_info_extensions "GL_EXT_texture_compression_s3tc GL_ARB_texture_compression" //fte doesn't have a cvar that contains opengl extensions, in part because they don't apply to other renderers thus making it kinda useless. and xonotic likes spamming warning messages, even though they're invalid half the time, and impossible for a user to work around the rest of the time.
-set cl_movement 1 //xonotic's physics are inconsistent with itself, but it judders even without prediction so we might as well enable it
-set cl_movement_replay "" //just to silence spam. actual value doesn't change anything in fte, and xonotic keeps changing it randomly anyway.