From 5ae076ea2db19bb37454e2b81d734c19a3d19543 Mon Sep 17 00:00:00 2001 From: Andrei Drexler Date: Sun, 29 Aug 2021 14:55:10 +0300 Subject: [PATCH] Versioned map entity patches --- Misc/qs_pak/Makefile | 12 +++++----- Misc/qs_pak/maps/{e1m1.ent => e1m1@c49d.ent} | 0 Misc/qs_pak/maps/{e1m2.ent => e1m2@0caa.ent} | 0 Misc/qs_pak/maps/{e1m4.ent => e1m4@958e.ent} | 0 Misc/qs_pak/maps/{e2m2.ent => e2m2@fbfe.ent} | 0 Misc/qs_pak/maps/{e2m3.ent => e2m3@237a.ent} | 0 Misc/qs_pak/maps/{e2m7.ent => e2m7@10a8.ent} | 0 Quake/gl_model.c | 22 +++++++++++++++---- Quake/quakespasm.pak | Bin 558464 -> 558464 bytes 9 files changed, 24 insertions(+), 10 deletions(-) rename Misc/qs_pak/maps/{e1m1.ent => e1m1@c49d.ent} (100%) rename Misc/qs_pak/maps/{e1m2.ent => e1m2@0caa.ent} (100%) rename Misc/qs_pak/maps/{e1m4.ent => e1m4@958e.ent} (100%) rename Misc/qs_pak/maps/{e2m2.ent => e2m2@fbfe.ent} (100%) rename Misc/qs_pak/maps/{e2m3.ent => e2m3@237a.ent} (100%) rename Misc/qs_pak/maps/{e2m7.ent => e2m7@10a8.ent} (100%) diff --git a/Misc/qs_pak/Makefile b/Misc/qs_pak/Makefile index 71347e06..ea51a26d 100644 --- a/Misc/qs_pak/Makefile +++ b/Misc/qs_pak/Makefile @@ -1,10 +1,10 @@ INPUT := gfx/conback.lmp \ - maps/e1m1.ent \ - maps/e1m2.ent \ - maps/e1m4.ent \ - maps/e2m2.ent \ - maps/e2m3.ent \ - maps/e2m7.ent \ + maps/e1m1@c49d.ent \ + maps/e1m2@0caa.ent \ + maps/e1m4@958e.ent \ + maps/e2m2@fbfe.ent \ + maps/e2m3@237a.ent \ + maps/e2m7@10a8.ent \ default.cfg OUTPUT := quakespasm.pak diff --git a/Misc/qs_pak/maps/e1m1.ent b/Misc/qs_pak/maps/e1m1@c49d.ent similarity index 100% rename from Misc/qs_pak/maps/e1m1.ent rename to Misc/qs_pak/maps/e1m1@c49d.ent diff --git a/Misc/qs_pak/maps/e1m2.ent b/Misc/qs_pak/maps/e1m2@0caa.ent similarity index 100% rename from Misc/qs_pak/maps/e1m2.ent rename to Misc/qs_pak/maps/e1m2@0caa.ent diff --git a/Misc/qs_pak/maps/e1m4.ent b/Misc/qs_pak/maps/e1m4@958e.ent similarity index 100% rename from Misc/qs_pak/maps/e1m4.ent rename to Misc/qs_pak/maps/e1m4@958e.ent diff --git a/Misc/qs_pak/maps/e2m2.ent b/Misc/qs_pak/maps/e2m2@fbfe.ent similarity index 100% rename from Misc/qs_pak/maps/e2m2.ent rename to Misc/qs_pak/maps/e2m2@fbfe.ent diff --git a/Misc/qs_pak/maps/e2m3.ent b/Misc/qs_pak/maps/e2m3@237a.ent similarity index 100% rename from Misc/qs_pak/maps/e2m3.ent rename to Misc/qs_pak/maps/e2m3@237a.ent diff --git a/Misc/qs_pak/maps/e2m7.ent b/Misc/qs_pak/maps/e2m7@10a8.ent similarity index 100% rename from Misc/qs_pak/maps/e2m7.ent rename to Misc/qs_pak/maps/e2m7@10a8.ent diff --git a/Quake/gl_model.c b/Quake/gl_model.c index 7f971389..3f77f51d 100644 --- a/Quake/gl_model.c +++ b/Quake/gl_model.c @@ -796,20 +796,34 @@ Mod_LoadEntities */ void Mod_LoadEntities (lump_t *l) { + char basemapname[MAX_QPATH]; char entfilename[MAX_QPATH]; char *ents; int mark; unsigned int path_id; + unsigned int crc = 0; if (! external_ents.value) goto _load_embedded; - q_strlcpy(entfilename, loadmodel->name, sizeof(entfilename)); - COM_StripExtension(entfilename, entfilename, sizeof(entfilename)); - q_strlcat(entfilename, ".ent", sizeof(entfilename)); - Con_DPrintf2("trying to load %s\n", entfilename); + if (l->filelen > 0) + crc = CRC_Block(mod_base + l->fileofs, l->filelen); mark = Hunk_LowMark(); + + q_strlcpy(basemapname, loadmodel->name, sizeof(basemapname)); + COM_StripExtension(basemapname, basemapname, sizeof(basemapname)); + + q_snprintf(entfilename, sizeof(entfilename), "%s@%04x.ent", basemapname, crc); + Con_DPrintf2("trying to load %s\n", entfilename); ents = (char *) COM_LoadHunkFile (entfilename, &path_id); + + if (!ents) + { + q_snprintf(entfilename, sizeof(entfilename), "%s.ent", basemapname); + Con_DPrintf2("trying to load %s\n", entfilename); + ents = (char *) COM_LoadHunkFile (entfilename, &path_id); + } + if (ents) { // use ent file only from the same gamedir as the map diff --git a/Quake/quakespasm.pak b/Quake/quakespasm.pak index bf15675d3ae3c1b27be61b2e2d3b002300d9c1da..820524b51a4b81d78ccc68f96079cd3542812efd 100644 GIT binary patch delta 145 zcmZqZR%!sE7RDB)7UmX~7S