diff options
Diffstat (limited to 'src/doom/p_setup.c')
-rw-r--r-- | src/doom/p_setup.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/doom/p_setup.c b/src/doom/p_setup.c index 3fc95cab..58d5f462 100644 --- a/src/doom/p_setup.c +++ b/src/doom/p_setup.c @@ -155,7 +155,24 @@ void P_LoadVertexes (int lump) W_ReleaseLumpNum(lump); } +// +// GetSectorAtNullAddress +// +sector_t* GetSectorAtNullAddress(void) +{ + static boolean null_sector_is_initialized = false; + static sector_t null_sector; + + if (!null_sector_is_initialized) + { + memset(&null_sector, 0, sizeof(null_sector)); + I_GetMemoryValue(0, &null_sector.floorheight, 4); + I_GetMemoryValue(4, &null_sector.ceilingheight, 4); + null_sector_is_initialized = true; + } + return &null_sector; +} // // P_LoadSegs @@ -204,10 +221,12 @@ void P_LoadSegs (int lump) if (sidenum < 0 || sidenum >= numsides) { - sidenum = 0; + li->backsector = GetSectorAtNullAddress(); + } + else + { + li->backsector = sides[sidenum].sector; } - - li->backsector = sides[sidenum].sector; } else { @@ -681,7 +700,7 @@ static void PadRejectArray(byte *array, unsigned int len) if (len > sizeof(rejectpad)) { fprintf(stderr, "PadRejectArray: REJECT lump too short to pad! (%i > %i)\n", - len, sizeof(rejectpad)); + len, (int) sizeof(rejectpad)); // Pad remaining space with 0 (or 0xff, if specified on command line). |