mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-05 05:06:24 +00:00
Add HU_UpdatePatch, recaches patch only if it exists in pwad
This commit is contained in:
parent
ffa2af7e07
commit
8012d00684
4 changed files with 43 additions and 6 deletions
|
|
@ -302,19 +302,47 @@ void HU_Init(void)
|
|||
HU_LoadGraphics();
|
||||
}
|
||||
|
||||
patch_t *HU_CachePatch(const char *format, ...)
|
||||
patch_t *HU_UpdatePatch(patch_t **user, const char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char buffer[9];
|
||||
|
||||
lumpnum_t lump;
|
||||
patch_t *patch;
|
||||
|
||||
va_start (ap, format);
|
||||
vsprintf(buffer, format, ap);
|
||||
vsnprintf(buffer, sizeof buffer, format, ap);
|
||||
va_end (ap);
|
||||
|
||||
if (W_CheckNumForName(buffer) == LUMPERROR)
|
||||
return NULL;
|
||||
if (user && p_adding_file != INT16_MAX)
|
||||
{
|
||||
lump = W_CheckNumForNamePwad(buffer, p_adding_file, 0);
|
||||
|
||||
/* no update in this wad */
|
||||
if (lump == INT16_MAX)
|
||||
return *user;
|
||||
|
||||
lump |= (p_adding_file << 16);
|
||||
}
|
||||
else
|
||||
return (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
|
||||
{
|
||||
lump = W_CheckNumForName(buffer);
|
||||
|
||||
if (lump == LUMPERROR)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
patch = W_CachePatchNum(lump, PU_HUDGFX);
|
||||
|
||||
if (user)
|
||||
{
|
||||
if (*user)
|
||||
Patch_Free(*user);
|
||||
|
||||
*user = patch;
|
||||
}
|
||||
|
||||
return patch;
|
||||
}
|
||||
|
||||
static inline void HU_Stop(void)
|
||||
|
|
|
|||
|
|
@ -123,7 +123,8 @@ void HU_Init(void);
|
|||
void HU_LoadGraphics(void);
|
||||
|
||||
// Load a HUDGFX patch or NULL.
|
||||
patch_t *HU_CachePatch(const char *format, ...);
|
||||
patch_t *HU_UpdatePatch(patch_t **user, const char *format, ...);
|
||||
#define HU_CachePatch(...) HU_UpdatePatch(NULL, __VA_ARGS__)
|
||||
|
||||
// reset heads up when consoleplayer respawns.
|
||||
void HU_Start(void);
|
||||
|
|
|
|||
|
|
@ -4319,6 +4319,8 @@ static lumpinfo_t* FindFolder(const char *folName, UINT16 *start, UINT16 *end, l
|
|||
return lumpinfo;
|
||||
}
|
||||
|
||||
UINT16 p_adding_file = INT16_MAX;
|
||||
|
||||
//
|
||||
// Add a wadfile to the active wad files,
|
||||
// replace sounds, musics, patches, textures, sprites and maps
|
||||
|
|
@ -4356,6 +4358,8 @@ boolean P_AddWadFile(const char *wadfilename)
|
|||
else
|
||||
wadnum = (UINT16)(numwadfiles-1);
|
||||
|
||||
p_adding_file = wadnum;
|
||||
|
||||
switch(wadfiles[wadnum]->type)
|
||||
{
|
||||
case RET_PK3:
|
||||
|
|
@ -4538,5 +4542,7 @@ boolean P_AddWadFile(const char *wadfilename)
|
|||
|
||||
refreshdirmenu &= ~REFRESHDIR_GAMEDATA; // Under usual circumstances we'd wait for REFRESHDIR_GAMEDATA to disappear the next frame, but it's a bit too dangerous for that...
|
||||
|
||||
p_adding_file = INT16_MAX;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,6 +93,8 @@ INT32 P_CheckLevelFlat(const char *flatname);
|
|||
extern size_t nummapthings;
|
||||
extern mapthing_t *mapthings;
|
||||
|
||||
extern UINT16 p_adding_file;
|
||||
|
||||
void P_SetupLevelSky(const char *skytexname, boolean global);
|
||||
#ifdef SCANTHINGS
|
||||
void P_ScanThings(INT16 mapnum, INT16 wadnum, INT16 lumpnum);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue