mirror of
https://github.com/Shpoike/Quakespasm.git
synced 2025-03-10 12:01:43 +00:00
common.c (searchpath_t): Added new member `path_id', an unsigned
int identifier assigned to the game directory. Remember that main <install_dir>/game1 and the unix <userdir>/game1 have the same id. The id starts as 1 for the first data1 directory. For every new directory, the value is the left-shifted version of the previous one. Made COM_FindFile() to accept a path_id pointer argument and storing the id in it if it isn't NULL. Made COM_OpenFile(), COM_FOpenFile() and all COM_Load* functions to accept a path_id pointer argument similarly. Adjusted callers accordingly. git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@370 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
parent
e28dfd7d70
commit
c583b5b541
14 changed files with 77 additions and 47 deletions
|
@ -297,7 +297,7 @@ void CL_PlayDemo_f (void)
|
||||||
COM_DefaultExtension (name, ".dem");
|
COM_DefaultExtension (name, ".dem");
|
||||||
|
|
||||||
Con_Printf ("Playing demo from %s.\n", name);
|
Con_Printf ("Playing demo from %s.\n", name);
|
||||||
COM_FOpenFile (name, &cls.demofile);
|
COM_FOpenFile (name, &cls.demofile, NULL);
|
||||||
if (!cls.demofile)
|
if (!cls.demofile)
|
||||||
{
|
{
|
||||||
Con_Printf ("ERROR: couldn't open.\n");
|
Con_Printf ("ERROR: couldn't open.\n");
|
||||||
|
|
|
@ -259,7 +259,7 @@ void Cmd_Exec_f (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
mark = Hunk_LowMark ();
|
mark = Hunk_LowMark ();
|
||||||
f = (char *)COM_LoadHunkFile (Cmd_Argv(1));
|
f = (char *)COM_LoadHunkFile (Cmd_Argv(1), NULL);
|
||||||
if (!f)
|
if (!f)
|
||||||
{
|
{
|
||||||
Con_Printf ("couldn't exec %s\n",Cmd_Argv(1));
|
Con_Printf ("couldn't exec %s\n",Cmd_Argv(1));
|
||||||
|
|
|
@ -1109,7 +1109,7 @@ void COM_CheckRegistered (void)
|
||||||
unsigned short check[128];
|
unsigned short check[128];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
COM_OpenFile("gfx/pop.lmp", &h);
|
COM_OpenFile("gfx/pop.lmp", &h, NULL);
|
||||||
static_registered = 0;
|
static_registered = 0;
|
||||||
|
|
||||||
if (h == -1)
|
if (h == -1)
|
||||||
|
@ -1366,6 +1366,9 @@ int file_from_pak; // ZOID: global indicating that file came from a pak
|
||||||
|
|
||||||
typedef struct searchpath_s
|
typedef struct searchpath_s
|
||||||
{
|
{
|
||||||
|
unsigned int path_id; // identifier assigned to the game directory
|
||||||
|
// Note that <install_dir>/game1 and
|
||||||
|
// <userdir>/game1 have the same id.
|
||||||
char filename[MAX_OSPATH];
|
char filename[MAX_OSPATH];
|
||||||
pack_t *pack; // only one of filename / pack will be used
|
pack_t *pack; // only one of filename / pack will be used
|
||||||
struct searchpath_s *next;
|
struct searchpath_s *next;
|
||||||
|
@ -1450,7 +1453,8 @@ Finds the file in the search path.
|
||||||
Sets com_filesize and one of handle or file
|
Sets com_filesize and one of handle or file
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
static int COM_FindFile (const char *filename, int *handle, FILE **file)
|
static int COM_FindFile (const char *filename, int *handle, FILE **file,
|
||||||
|
unsigned int *path_id)
|
||||||
{
|
{
|
||||||
searchpath_t *search;
|
searchpath_t *search;
|
||||||
char netpath[MAX_OSPATH];
|
char netpath[MAX_OSPATH];
|
||||||
|
@ -1492,6 +1496,8 @@ static int COM_FindFile (const char *filename, int *handle, FILE **file)
|
||||||
}
|
}
|
||||||
file_from_pak = 1;
|
file_from_pak = 1;
|
||||||
com_filesize = pak->files[i].filelen;
|
com_filesize = pak->files[i].filelen;
|
||||||
|
if (path_id)
|
||||||
|
*path_id = search->path_id;
|
||||||
return com_filesize;
|
return com_filesize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1512,6 +1518,8 @@ static int COM_FindFile (const char *filename, int *handle, FILE **file)
|
||||||
|
|
||||||
// Sys_Printf ("FindFile: %s\n",netpath);
|
// Sys_Printf ("FindFile: %s\n",netpath);
|
||||||
com_filesize = Sys_FileOpenRead (netpath, &i);
|
com_filesize = Sys_FileOpenRead (netpath, &i);
|
||||||
|
if (path_id)
|
||||||
|
*path_id = search->path_id;
|
||||||
if (handle)
|
if (handle)
|
||||||
*handle = i;
|
*handle = i;
|
||||||
else
|
else
|
||||||
|
@ -1544,9 +1552,9 @@ returns a handle and a length
|
||||||
it may actually be inside a pak file
|
it may actually be inside a pak file
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
int COM_OpenFile (const char *filename, int *handle)
|
int COM_OpenFile (const char *filename, int *handle, unsigned int *path_id)
|
||||||
{
|
{
|
||||||
return COM_FindFile (filename, handle, NULL);
|
return COM_FindFile (filename, handle, NULL, path_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1557,9 +1565,9 @@ If the requested file is inside a packfile, a new FILE * will be opened
|
||||||
into the file.
|
into the file.
|
||||||
===========
|
===========
|
||||||
*/
|
*/
|
||||||
int COM_FOpenFile (const char *filename, FILE **file)
|
int COM_FOpenFile (const char *filename, FILE **file, unsigned int *path_id)
|
||||||
{
|
{
|
||||||
return COM_FindFile (filename, NULL, file);
|
return COM_FindFile (filename, NULL, file, path_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1601,7 +1609,7 @@ static byte *loadbuf;
|
||||||
static cache_user_t *loadcache;
|
static cache_user_t *loadcache;
|
||||||
static int loadsize;
|
static int loadsize;
|
||||||
|
|
||||||
byte *COM_LoadFile (const char *path, int usehunk)
|
byte *COM_LoadFile (const char *path, int usehunk, unsigned int *path_id)
|
||||||
{
|
{
|
||||||
int h;
|
int h;
|
||||||
byte *buf;
|
byte *buf;
|
||||||
|
@ -1611,7 +1619,7 @@ byte *COM_LoadFile (const char *path, int usehunk)
|
||||||
buf = NULL; // quiet compiler warning
|
buf = NULL; // quiet compiler warning
|
||||||
|
|
||||||
// look for it in the filesystem or pack files
|
// look for it in the filesystem or pack files
|
||||||
len = COM_OpenFile (path, &h);
|
len = COM_OpenFile (path, &h, path_id);
|
||||||
if (h == -1)
|
if (h == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -1662,35 +1670,35 @@ byte *COM_LoadFile (const char *path, int usehunk)
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
byte *COM_LoadHunkFile (const char *path)
|
byte *COM_LoadHunkFile (const char *path, unsigned int *path_id)
|
||||||
{
|
{
|
||||||
return COM_LoadFile (path, LOADFILE_HUNK);
|
return COM_LoadFile (path, LOADFILE_HUNK, path_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
byte *COM_LoadZoneFile (const char *path)
|
byte *COM_LoadZoneFile (const char *path, unsigned int *path_id)
|
||||||
{
|
{
|
||||||
return COM_LoadFile (path, LOADFILE_ZONE);
|
return COM_LoadFile (path, LOADFILE_ZONE, path_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
byte *COM_LoadTempFile (const char *path)
|
byte *COM_LoadTempFile (const char *path, unsigned int *path_id)
|
||||||
{
|
{
|
||||||
return COM_LoadFile (path, LOADFILE_TEMPHUNK);
|
return COM_LoadFile (path, LOADFILE_TEMPHUNK, path_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void COM_LoadCacheFile (const char *path, struct cache_user_s *cu)
|
void COM_LoadCacheFile (const char *path, struct cache_user_s *cu, unsigned int *path_id)
|
||||||
{
|
{
|
||||||
loadcache = cu;
|
loadcache = cu;
|
||||||
COM_LoadFile (path, LOADFILE_CACHE);
|
COM_LoadFile (path, LOADFILE_CACHE, path_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// uses temp hunk if larger than bufsize
|
// uses temp hunk if larger than bufsize
|
||||||
byte *COM_LoadStackFile (const char *path, void *buffer, int bufsize)
|
byte *COM_LoadStackFile (const char *path, void *buffer, int bufsize, unsigned int *path_id)
|
||||||
{
|
{
|
||||||
byte *buf;
|
byte *buf;
|
||||||
|
|
||||||
loadbuf = (byte *)buffer;
|
loadbuf = (byte *)buffer;
|
||||||
loadsize = bufsize;
|
loadsize = bufsize;
|
||||||
buf = COM_LoadFile (path, LOADFILE_STACK);
|
buf = COM_LoadFile (path, LOADFILE_STACK, path_id);
|
||||||
|
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
@ -1698,13 +1706,13 @@ byte *COM_LoadStackFile (const char *path, void *buffer, int bufsize)
|
||||||
// loads into a previously allocated buffer. if space is insufficient
|
// loads into a previously allocated buffer. if space is insufficient
|
||||||
// or the buffer is NULL, loads onto the hunk. bufsize is the actual
|
// or the buffer is NULL, loads onto the hunk. bufsize is the actual
|
||||||
// size (without the +1).
|
// size (without the +1).
|
||||||
byte *COM_LoadBufFile (const char *path, void *buffer, int *bufsize)
|
byte *COM_LoadBufFile (const char *path, void *buffer, int *bufsize, unsigned int *path_id)
|
||||||
{
|
{
|
||||||
byte *buf;
|
byte *buf;
|
||||||
|
|
||||||
loadbuf = (byte *)buffer;
|
loadbuf = (byte *)buffer;
|
||||||
loadsize = (*bufsize) + 1;
|
loadsize = (*bufsize) + 1;
|
||||||
buf = COM_LoadFile (path, LOADFILE_BUF);
|
buf = COM_LoadFile (path, LOADFILE_BUF, path_id);
|
||||||
*bufsize = (buf == NULL) ? 0 : com_filesize;
|
*bufsize = (buf == NULL) ? 0 : com_filesize;
|
||||||
if (loadbuf && buf && buf != loadbuf)
|
if (loadbuf && buf && buf != loadbuf)
|
||||||
Sys_Printf("LoadBufFile: insufficient buffer for %s not used.\n", path);
|
Sys_Printf("LoadBufFile: insufficient buffer for %s not used.\n", path);
|
||||||
|
@ -1713,9 +1721,9 @@ byte *COM_LoadBufFile (const char *path, void *buffer, int *bufsize)
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns malloc'd memory
|
// returns malloc'd memory
|
||||||
byte *COM_LoadMallocFile (const char *path)
|
byte *COM_LoadMallocFile (const char *path, unsigned int *path_id)
|
||||||
{
|
{
|
||||||
return COM_LoadFile (path, LOADFILE_MALLOC);
|
return COM_LoadFile (path, LOADFILE_MALLOC, path_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1801,14 +1809,21 @@ COM_AddGameDirectory -- johnfitz -- modified based on topaz's tutorial
|
||||||
void COM_AddGameDirectory (const char *dir)
|
void COM_AddGameDirectory (const char *dir)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
unsigned int path_id;
|
||||||
searchpath_t *search;
|
searchpath_t *search;
|
||||||
pack_t *pak;
|
pack_t *pak;
|
||||||
char pakfile[MAX_OSPATH];
|
char pakfile[MAX_OSPATH];
|
||||||
|
|
||||||
strcpy (com_gamedir, dir);
|
strcpy (com_gamedir, dir);
|
||||||
|
|
||||||
|
// assign a path_id to this game directory
|
||||||
|
if (com_searchpaths)
|
||||||
|
path_id = com_searchpaths->path_id << 1;
|
||||||
|
else path_id = 1U;
|
||||||
|
|
||||||
// add the directory to the search path
|
// add the directory to the search path
|
||||||
search = (searchpath_t *) Z_Malloc(sizeof(searchpath_t));
|
search = (searchpath_t *) Z_Malloc(sizeof(searchpath_t));
|
||||||
|
search->path_id = path_id;
|
||||||
strcpy (search->filename, dir);
|
strcpy (search->filename, dir);
|
||||||
search->next = com_searchpaths;
|
search->next = com_searchpaths;
|
||||||
com_searchpaths = search;
|
com_searchpaths = search;
|
||||||
|
@ -1821,6 +1836,7 @@ void COM_AddGameDirectory (const char *dir)
|
||||||
if (!pak)
|
if (!pak)
|
||||||
break;
|
break;
|
||||||
search = (searchpath_t *) Z_Malloc(sizeof(searchpath_t));
|
search = (searchpath_t *) Z_Malloc(sizeof(searchpath_t));
|
||||||
|
search->path_id = path_id;
|
||||||
search->pack = pak;
|
search->pack = pak;
|
||||||
search->next = com_searchpaths;
|
search->next = com_searchpaths;
|
||||||
com_searchpaths = search;
|
com_searchpaths = search;
|
||||||
|
|
|
@ -186,28 +186,31 @@ extern char com_gamedir[MAX_OSPATH];
|
||||||
extern int file_from_pak; // global indicating that file came from a pak
|
extern int file_from_pak; // global indicating that file came from a pak
|
||||||
|
|
||||||
void COM_WriteFile (const char *filename, const void *data, int len);
|
void COM_WriteFile (const char *filename, const void *data, int len);
|
||||||
int COM_OpenFile (const char *filename, int *hndl);
|
int COM_OpenFile (const char *filename, int *handle, unsigned int *path_id);
|
||||||
int COM_FOpenFile (const char *filename, FILE **file);
|
int COM_FOpenFile (const char *filename, FILE **file, unsigned int *path_id);
|
||||||
void COM_CloseFile (int h);
|
void COM_CloseFile (int h);
|
||||||
|
|
||||||
// these procedures open a file using COM_FindFile and loads it into a proper
|
// these procedures open a file using COM_FindFile and loads it into a proper
|
||||||
// buffer. the buffer is allocated with a total size of com_filesize + 1. the
|
// buffer. the buffer is allocated with a total size of com_filesize + 1. the
|
||||||
// procedures differ by their buffer allocation method.
|
// procedures differ by their buffer allocation method.
|
||||||
byte *COM_LoadStackFile (const char *path, void *buffer, int bufsize);
|
byte *COM_LoadStackFile (const char *path, void *buffer, int bufsize,
|
||||||
|
unsigned int *path_id);
|
||||||
// uses the specified stack stack buffer with the specified size
|
// uses the specified stack stack buffer with the specified size
|
||||||
// of bufsize. if bufsize is too short, uses temp hunk. the bufsize
|
// of bufsize. if bufsize is too short, uses temp hunk. the bufsize
|
||||||
// must include the +1
|
// must include the +1
|
||||||
byte *COM_LoadTempFile (const char *path);
|
byte *COM_LoadTempFile (const char *path, unsigned int *path_id);
|
||||||
// allocates the buffer on the temp hunk.
|
// allocates the buffer on the temp hunk.
|
||||||
byte *COM_LoadHunkFile (const char *path);
|
byte *COM_LoadHunkFile (const char *path, unsigned int *path_id);
|
||||||
// allocates the buffer on the hunk.
|
// allocates the buffer on the hunk.
|
||||||
byte *COM_LoadZoneFile (const char *path);
|
byte *COM_LoadZoneFile (const char *path, unsigned int *path_id);
|
||||||
// allocates the buffer on the zone.
|
// allocates the buffer on the zone.
|
||||||
void COM_LoadCacheFile (const char *path, struct cache_user_s *cu);
|
void COM_LoadCacheFile (const char *path, struct cache_user_s *cu,
|
||||||
|
unsigned int *path_id);
|
||||||
// uses cache mem for allocating the buffer.
|
// uses cache mem for allocating the buffer.
|
||||||
byte *COM_LoadMallocFile (const char *path);
|
byte *COM_LoadMallocFile (const char *path, unsigned int *path_id);
|
||||||
// allocates the buffer on the system mem (malloc).
|
// allocates the buffer on the system mem (malloc).
|
||||||
byte *COM_LoadBufFile (const char *path, void *buffer, int *bufsize);
|
byte *COM_LoadBufFile (const char *path, void *buffer, int *bufsize,
|
||||||
|
unsigned int *path_id);
|
||||||
// uses the specified pre-allocated buffer with bufsize + 1 size.
|
// uses the specified pre-allocated buffer with bufsize + 1 size.
|
||||||
// bufsize is the actual expected size (without the + 1). if the
|
// bufsize is the actual expected size (without the + 1). if the
|
||||||
// space is too short or the buffer is NULL, loads onto the hunk.
|
// space is too short or the buffer is NULL, loads onto the hunk.
|
||||||
|
|
|
@ -288,7 +288,7 @@ qpic_t *Draw_CachePic (const char *path)
|
||||||
//
|
//
|
||||||
// load the pic from disk
|
// load the pic from disk
|
||||||
//
|
//
|
||||||
dat = (qpic_t *)COM_LoadTempFile (path);
|
dat = (qpic_t *)COM_LoadTempFile (path, NULL);
|
||||||
if (!dat)
|
if (!dat)
|
||||||
Sys_Error ("Draw_CachePic: failed to load %s", path);
|
Sys_Error ("Draw_CachePic: failed to load %s", path);
|
||||||
SwapPic (dat);
|
SwapPic (dat);
|
||||||
|
@ -322,7 +322,7 @@ extern char *get_conback(void);
|
||||||
static qboolean have_mod_conback;
|
static qboolean have_mod_conback;
|
||||||
void Draw_CheckConback (void)
|
void Draw_CheckConback (void)
|
||||||
{
|
{
|
||||||
have_mod_conback = (COM_LoadTempFile("gfx/conback.lmp") != NULL);
|
have_mod_conback = (COM_LoadTempFile("gfx/conback.lmp", NULL) != NULL);
|
||||||
}
|
}
|
||||||
qpic_t *Draw_ConbackPic (void)
|
qpic_t *Draw_ConbackPic (void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -277,7 +277,7 @@ model_t *Mod_LoadModel (model_t *mod, qboolean crash)
|
||||||
//
|
//
|
||||||
// load the file
|
// load the file
|
||||||
//
|
//
|
||||||
buf = COM_LoadStackFile (mod->name, stackbuf, sizeof(stackbuf));
|
buf = COM_LoadStackFile (mod->name, stackbuf, sizeof(stackbuf), NULL);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
{
|
{
|
||||||
if (crash)
|
if (crash)
|
||||||
|
@ -640,7 +640,7 @@ void Mod_LoadLighting (lump_t *l)
|
||||||
COM_StripExtension(litfilename, litfilename);
|
COM_StripExtension(litfilename, litfilename);
|
||||||
strcat(litfilename, ".lit");
|
strcat(litfilename, ".lit");
|
||||||
mark = Hunk_LowMark();
|
mark = Hunk_LowMark();
|
||||||
data = (byte*) COM_LoadHunkFile (litfilename);
|
data = (byte*) COM_LoadHunkFile (litfilename, NULL);
|
||||||
if (data)
|
if (data)
|
||||||
{
|
{
|
||||||
if (data[0] == 'Q' && data[1] == 'L' && data[2] == 'I' && data[3] == 'T')
|
if (data[0] == 'Q' && data[1] == 'L' && data[2] == 'I' && data[3] == 'T')
|
||||||
|
|
|
@ -431,7 +431,7 @@ void TexMgr_LoadPalette (void)
|
||||||
int i, mark;
|
int i, mark;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
|
||||||
COM_FOpenFile ("gfx/palette.lmp", &f);
|
COM_FOpenFile ("gfx/palette.lmp", &f, NULL);
|
||||||
if (!f)
|
if (!f)
|
||||||
Sys_Error ("Couldn't load gfx/palette.lmp");
|
Sys_Error ("Couldn't load gfx/palette.lmp");
|
||||||
|
|
||||||
|
@ -1228,7 +1228,7 @@ void TexMgr_ReloadImage (gltexture_t *glt, int shirt, int pants)
|
||||||
if (glt->source_file[0] && glt->source_offset)
|
if (glt->source_file[0] && glt->source_offset)
|
||||||
{
|
{
|
||||||
//lump inside file
|
//lump inside file
|
||||||
data = COM_LoadHunkFile (glt->source_file);
|
data = COM_LoadHunkFile (glt->source_file, NULL);
|
||||||
if (!data)
|
if (!data)
|
||||||
goto invalid;
|
goto invalid;
|
||||||
data += glt->source_offset;
|
data += glt->source_offset;
|
||||||
|
|
|
@ -834,7 +834,7 @@ void Host_Init (quakeparms_t *parms)
|
||||||
|
|
||||||
if (cls.state != ca_dedicated)
|
if (cls.state != ca_dedicated)
|
||||||
{
|
{
|
||||||
host_colormap = (byte *)COM_LoadHunkFile ("gfx/colormap.lmp");
|
host_colormap = (byte *)COM_LoadHunkFile ("gfx/colormap.lmp", NULL);
|
||||||
if (!host_colormap)
|
if (!host_colormap)
|
||||||
Sys_Error ("Couldn't load gfx/colormap.lmp");
|
Sys_Error ("Couldn't load gfx/colormap.lmp");
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,7 @@ void Host_Quit_f (void)
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
|
|
||||||
// Declarations shared with common.c:
|
// Declarations shared with common.c:
|
||||||
|
// FIXME: **** CLEAN THIS MESS!!! ***
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
char name[MAX_QPATH];
|
char name[MAX_QPATH];
|
||||||
|
@ -75,6 +76,9 @@ typedef struct pack_s
|
||||||
|
|
||||||
typedef struct searchpath_s
|
typedef struct searchpath_s
|
||||||
{
|
{
|
||||||
|
unsigned int path_id; // identifier assigned to the game directory
|
||||||
|
// Note that <install_dir>/game1 and
|
||||||
|
// <userdir>/game1 have the same id.
|
||||||
char filename[MAX_OSPATH];
|
char filename[MAX_OSPATH];
|
||||||
pack_t *pack; // only one of filename / pack will be used
|
pack_t *pack; // only one of filename / pack will be used
|
||||||
struct searchpath_s *next;
|
struct searchpath_s *next;
|
||||||
|
@ -129,6 +133,7 @@ Host_Game_f
|
||||||
void Host_Game_f (void)
|
void Host_Game_f (void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
unsigned int path_id;
|
||||||
searchpath_t *search = com_searchpaths;
|
searchpath_t *search = com_searchpaths;
|
||||||
pack_t *pak;
|
pack_t *pak;
|
||||||
char pakfile[MAX_OSPATH]; //FIXME: it's confusing to use this string for two different things
|
char pakfile[MAX_OSPATH]; //FIXME: it's confusing to use this string for two different things
|
||||||
|
@ -172,7 +177,12 @@ void Host_Game_f (void)
|
||||||
|
|
||||||
if (Q_strcasecmp(Cmd_Argv(1), GAMENAME)) //game is not id1
|
if (Q_strcasecmp(Cmd_Argv(1), GAMENAME)) //game is not id1
|
||||||
{
|
{
|
||||||
|
// assign a path_id to this game directory
|
||||||
|
if (com_searchpaths)
|
||||||
|
path_id = com_searchpaths->path_id << 1;
|
||||||
|
else path_id = 1U;
|
||||||
search = (searchpath_t *) Z_Malloc(sizeof(searchpath_t));
|
search = (searchpath_t *) Z_Malloc(sizeof(searchpath_t));
|
||||||
|
search->path_id = path_id;
|
||||||
strcpy (search->filename, pakfile);
|
strcpy (search->filename, pakfile);
|
||||||
search->next = com_searchpaths;
|
search->next = com_searchpaths;
|
||||||
com_searchpaths = search;
|
com_searchpaths = search;
|
||||||
|
@ -185,6 +195,7 @@ void Host_Game_f (void)
|
||||||
if (!pak)
|
if (!pak)
|
||||||
break;
|
break;
|
||||||
search = (searchpath_t *) Z_Malloc(sizeof(searchpath_t));
|
search = (searchpath_t *) Z_Malloc(sizeof(searchpath_t));
|
||||||
|
search->path_id = path_id;
|
||||||
search->pack = pak;
|
search->pack = pak;
|
||||||
search->next = com_searchpaths;
|
search->next = com_searchpaths;
|
||||||
com_searchpaths = search;
|
com_searchpaths = search;
|
||||||
|
@ -876,7 +887,7 @@ void Host_Changelevel_f (void)
|
||||||
|
|
||||||
//johnfitz -- check for client having map before anything else
|
//johnfitz -- check for client having map before anything else
|
||||||
sprintf (level, "maps/%s.bsp", Cmd_Argv(1));
|
sprintf (level, "maps/%s.bsp", Cmd_Argv(1));
|
||||||
if (COM_OpenFile (level, &i) == -1)
|
if (COM_OpenFile (level, &i, NULL) == -1)
|
||||||
Host_Error ("cannot find map %s", level);
|
Host_Error ("cannot find map %s", level);
|
||||||
//johnfitz
|
//johnfitz
|
||||||
|
|
||||||
|
|
|
@ -38,12 +38,12 @@ byte *Image_LoadImage (char *name, int *width, int *height)
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
|
||||||
sprintf (loadfilename, "%s.tga", name);
|
sprintf (loadfilename, "%s.tga", name);
|
||||||
COM_FOpenFile (loadfilename, &f);
|
COM_FOpenFile (loadfilename, &f, NULL);
|
||||||
if (f)
|
if (f)
|
||||||
return Image_LoadTGA (f, width, height);
|
return Image_LoadTGA (f, width, height);
|
||||||
|
|
||||||
sprintf (loadfilename, "%s.pcx", name);
|
sprintf (loadfilename, "%s.pcx", name);
|
||||||
COM_FOpenFile (loadfilename, &f);
|
COM_FOpenFile (loadfilename, &f, NULL);
|
||||||
if (f)
|
if (f)
|
||||||
return Image_LoadPCX (f, width, height);
|
return Image_LoadPCX (f, width, height);
|
||||||
|
|
||||||
|
|
|
@ -1026,7 +1026,7 @@ void PR_LoadProgs (void)
|
||||||
|
|
||||||
CRC_Init (&pr_crc);
|
CRC_Init (&pr_crc);
|
||||||
|
|
||||||
progs = (dprograms_t *)COM_LoadHunkFile ("progs.dat");
|
progs = (dprograms_t *)COM_LoadHunkFile ("progs.dat", NULL);
|
||||||
if (!progs)
|
if (!progs)
|
||||||
Sys_Error ("PR_LoadProgs: couldn't load progs.dat");
|
Sys_Error ("PR_LoadProgs: couldn't load progs.dat");
|
||||||
Con_DPrintf ("Programs occupy %iK.\n", com_filesize/1024);
|
Con_DPrintf ("Programs occupy %iK.\n", com_filesize/1024);
|
||||||
|
|
|
@ -270,7 +270,7 @@ void R_ReadPointFile_f (void)
|
||||||
|
|
||||||
sprintf (name,"maps/%s.pts", sv.name);
|
sprintf (name,"maps/%s.pts", sv.name);
|
||||||
|
|
||||||
COM_FOpenFile (name, &f);
|
COM_FOpenFile (name, &f, NULL);
|
||||||
if (!f)
|
if (!f)
|
||||||
{
|
{
|
||||||
Con_Printf ("couldn't open %s\n", name);
|
Con_Printf ("couldn't open %s\n", name);
|
||||||
|
|
|
@ -113,7 +113,7 @@ sfxcache_t *S_LoadSound (sfx_t *s)
|
||||||
|
|
||||||
// Con_Printf ("loading %s\n",namebuffer);
|
// Con_Printf ("loading %s\n",namebuffer);
|
||||||
|
|
||||||
data = COM_LoadStackFile(namebuffer, stackbuf, sizeof(stackbuf));
|
data = COM_LoadStackFile(namebuffer, stackbuf, sizeof(stackbuf), NULL);
|
||||||
|
|
||||||
if (!data)
|
if (!data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -76,7 +76,7 @@ void W_LoadWadFile (void) //johnfitz -- filename is now hard-coded for honesty
|
||||||
//TODO: use cache_alloc
|
//TODO: use cache_alloc
|
||||||
if (wad_base)
|
if (wad_base)
|
||||||
free (wad_base);
|
free (wad_base);
|
||||||
wad_base = COM_LoadMallocFile (filename);
|
wad_base = COM_LoadMallocFile (filename, NULL);
|
||||||
if (!wad_base)
|
if (!wad_base)
|
||||||
Sys_Error ("W_LoadWadFile: couldn't load %s", filename);
|
Sys_Error ("W_LoadWadFile: couldn't load %s", filename);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue