Add support for hl2bsps's zip-inside-bsp lump...
This commit is contained in:
parent
586a92ec47
commit
6f82d0fd8b
|
@ -5476,6 +5476,26 @@ static qboolean CModHL2_LoadBrushSides (model_t *mod, qbyte *mod_base, lump_t *l
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include "fs.h"
|
||||||
|
static searchpathfuncs_t *CModHL2_LoadArchive(model_t *mod, void *base, size_t len)
|
||||||
|
{
|
||||||
|
vfsfile_t *f = VFSPIPE_Open(1, true);
|
||||||
|
searchpathfuncs_t *r = NULL;
|
||||||
|
if (f)
|
||||||
|
{
|
||||||
|
if (len > 0x7fffffff || VFS_WRITE(f, base, len) != len)
|
||||||
|
{
|
||||||
|
Con_Printf("CModHL2_LoadArchive: archive too large for pipe sanity limit\n");
|
||||||
|
r = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
r = FSZIP_LoadArchive (f, NULL, mod->name, mod->name, NULL);
|
||||||
|
if (!r)
|
||||||
|
VFS_CLOSE(f); //it didn't take, for some reason.
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
static qboolean VBSP_LoadModel(model_t *mod, qbyte *mod_base, size_t filelen, char *loadname)
|
static qboolean VBSP_LoadModel(model_t *mod, qbyte *mod_base, size_t filelen, char *loadname)
|
||||||
{
|
{
|
||||||
struct {
|
struct {
|
||||||
|
@ -5508,6 +5528,9 @@ static qboolean VBSP_LoadModel(model_t *mod, qbyte *mod_base, size_t filelen, ch
|
||||||
}
|
}
|
||||||
BSPX_Setup(mod, mod_base, filelen, header.lumps, i);
|
BSPX_Setup(mod, mod_base, filelen, header.lumps, i);
|
||||||
|
|
||||||
|
mod->archive = CModHL2_LoadArchive(mod, mod_base+header.lumps[VLUMP_ZIPFILE].fileofs, header.lumps[VLUMP_ZIPFILE].filelen);
|
||||||
|
if (mod->archive)
|
||||||
|
FS_LoadMapPackFile(mod->name, mod->archive);
|
||||||
switch(qrenderer)
|
switch(qrenderer)
|
||||||
{
|
{
|
||||||
case QR_NONE: //dedicated only
|
case QR_NONE: //dedicated only
|
||||||
|
|
Loading…
Reference in New Issue