mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-29 12:40:58 +00:00
Hack up support for pk3s in Custom FOF setup, fix stray ! preventing blockmap from loading
This commit is contained in:
parent
db23cfc916
commit
9c13cee9f0
2 changed files with 17 additions and 4 deletions
|
@ -2003,16 +2003,16 @@ static boolean P_LoadRawBlockMap(UINT8 *data, size_t count, const char *lumpname
|
|||
return false;
|
||||
#else
|
||||
// Check if the lump is named "BLOCKMAP"
|
||||
if (!lumpname || !memcmp(lumpname, "BLOCKMAP", 8) != 0)
|
||||
if (!lumpname || memcmp(lumpname, "BLOCKMAP", 8) != 0)
|
||||
{
|
||||
CONS_Printf("No blockmap lump found for pk3!");
|
||||
CONS_Printf("No blockmap lump found for pk3!\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!count || count >= 0x20000)
|
||||
return false;
|
||||
|
||||
CONS_Printf("Reading blockmap lump for pk3...");
|
||||
CONS_Printf("Reading blockmap lump for pk3...\n");
|
||||
|
||||
// no need to malloc anything, assume the data is uncompressed for now
|
||||
count /= 2;
|
||||
|
|
15
src/p_spec.c
15
src/p_spec.c
|
@ -6305,8 +6305,21 @@ void P_SpawnSpecials(INT32 fromnetsave)
|
|||
case 259: // Make-Your-Own FOF!
|
||||
if (lines[i].sidenum[1] != 0xffff)
|
||||
{
|
||||
UINT8 *data = W_CacheLumpNum(lastloadedmaplumpnum + ML_SIDEDEFS,PU_STATIC);
|
||||
UINT8 *data;
|
||||
UINT16 b;
|
||||
char *lumpfullName = (wadfiles[WADFILENUM(lastloadedmaplumpnum)]->lumpinfo + LUMPNUM(lastloadedmaplumpnum))->name2;
|
||||
|
||||
if (!strnicmp(lumpfullName + strlen(lumpfullName) - 4, ".wad", 4)) // welp it's a map wad in a pk3
|
||||
{ // HACK: Open wad file rather quickly so we can get the data from the sidedefs lump
|
||||
UINT8 *wadData = W_CacheLumpNum(lastloadedmaplumpnum, PU_STATIC);
|
||||
filelump_t *fileinfo = (filelump_t *)(wadData + ((wadinfo_t *)wadData)->infotableofs);
|
||||
fileinfo += ML_SIDEDEFS; // we only need the SIDEDEFS lump
|
||||
data = Z_Malloc(fileinfo->size, PU_STATIC, NULL);
|
||||
M_Memcpy(data, wadData + fileinfo->filepos, fileinfo->size); // copy data
|
||||
Z_Free(wadData); // we're done with this now
|
||||
}
|
||||
else // phew it's just a WAD
|
||||
data = W_CacheLumpNum(lastloadedmaplumpnum + ML_SIDEDEFS,PU_STATIC);
|
||||
|
||||
for (b = 0; b < (INT16)numsides; b++)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue