Merge pull request #698 from BjossiAlfreds/map-fixes

Map fixes for old and newly discovered bugs + removed code hacks
This commit is contained in:
Yamagi 2021-04-13 13:00:19 +02:00 committed by GitHub
commit 7d27e0d0e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 52427 additions and 51 deletions

View file

@ -134,6 +134,45 @@ some global settings to saner defaults. To use it copy *stuff/yq2.cfg*
into the *baseq2/* directory.
### Fixed Map Data Files
As an optional feature, Yamagi Quake II provides fixed map data files
(.ent files). These files provide a replacement entity list in order
to fix some map bugs that have been discovered by players over the
years.
These fixes include fixes for bad monster counts in some
maps/difficulty settings, fixing broken spawn chains that made it
impossible to spawn some monsters, removing DM-only items that spawn
in unreachable areas in SP/co-op, and so on. You can find detailed
changelogs for each map by opening the .ent files with a text editor
and reading the comment section at the top (lines starting with "//").
#### Download And Setup
1. Download the .ent files from the yquake2 repositories on GitHub.
*baseq2*: yquake2/yquake2/stuff/mapfixes/baseq2/
*juggernaut*: yquake2/yquake2/stuff/mapfixes/juggernaut/
*xatrix*: yquake2/xatrix/stuff/mapfixes/
*rogue*: yquake2/rogue/stuff/mapfixes/
*zaero*: yquake2/zaero/stuff/mapfixes/
2. Once you have the .ent files you want, put them in the respective
*/maps* sub-folder. So *xatrix* .ent files should go into your local
*/xatrix/maps* folder (create this folder if it does not exist).
3. You will see a notification message in the console if an .ent file
was loaded. If you see this message, you know the map fixes are in
effect.
#### Reporting Map Bugs
If you know of any map bugs that are not addressed here, by all means
report them to us through our GitHub repositories.
## The Demo Version
A free demo version of Quake II is available and supported by Yamagi

View file

@ -584,10 +584,6 @@ SpawnEntities(const char *mapname, char *entities, const char *spawnpoint)
const char *com_token;
int i;
float skill_level;
static qboolean monster_count_city2 = false;
static qboolean monster_count_city3 = false;
static qboolean monster_count_cool1 = false;
static qboolean monster_count_lab = false;
if (!mapname || !entities || !spawnpoint)
{
@ -665,53 +661,6 @@ SpawnEntities(const char *mapname, char *entities, const char *spawnpoint)
ent->spawnflags &= ~SPAWNFLAG_NOT_HARD;
}
/*
* The 'monsters' count in city3.bsp is wrong.
* There're two monsters triggered in a hidden
* and unreachable room next to the security
* pass.
*
* We need to make sure that this hack is only
* applied once!
*/
if (!Q_stricmp(level.mapname, "city3") && !monster_count_city3)
{
level.total_monsters = level.total_monsters - 2;
monster_count_city3 = true;
}
/* A slightly other problem in city2.bsp. There's a floater
* with missing trigger on the right gallery above the data
* spinner console, right before the door to the staircase.
*/
if ((skill->value > 0) && !Q_stricmp(level.mapname, "city2") && !monster_count_city2)
{
level.total_monsters = level.total_monsters - 1;
monster_count_city2 = true;
}
/*
* Nearly the same problem exists in cool1.bsp.
* On medium skill a gladiator is spawned in a
* crate that's never triggered.
*/
if ((skill->value == 1) && !Q_stricmp(level.mapname, "cool1") && !monster_count_cool1)
{
level.total_monsters = level.total_monsters - 1;
monster_count_cool1 = true;
}
/*
* Nearly the same problem exists in lab.bsp.
* On medium skill two parasites are spawned
* in a hidden place that never triggers.
*/
if ((skill->value == 1) && !Q_stricmp(level.mapname, "lab") && !monster_count_lab)
{
level.total_monsters = level.total_monsters - 2;
monster_count_lab = true;
}
/* remove things (except the world) from
different skill levels or deathmatch */
if (ent != g_edicts)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff