Merge branch 'fix-runtime-errors' into 'fix-asserts'

Fix errors revealed by PARANOIA

See merge request KartKrew/Kart!925
This commit is contained in:
toaster 2023-02-17 00:44:03 +00:00
commit baaec4c197
4 changed files with 35 additions and 6 deletions

View file

@ -6088,7 +6088,20 @@ const char *COLOR_ENUMS[] = {
"CHAOSEMERALD6",
"CHAOSEMERALD7",
"INVINCFLASH"
"INVINCFLASH",
"POSNUM",
"POSNUM_WIN1",
"POSNUM_WIN2",
"POSNUM_WIN3",
"POSNUM_LOSE1",
"POSNUM_LOSE2",
"POSNUM_LOSE3",
"POSNUM_BEST1",
"POSNUM_BEST2",
"POSNUM_BEST3",
"POSNUM_BEST4",
"POSNUM_BEST5",
"POSNUM_BEST6",
};
const char *const KARTHUD_LIST[] = {

View file

@ -2015,7 +2015,10 @@ void G_RecordDemo(const char *name)
// if (demobuf.buffer)
// Z_Free(demobuf.buffer);
// FIXME: this file doesn't manage its memory and actually free this when it's done using it
Z_Free(demobuf.buffer);
P_SaveBufferAlloc(&demobuf, maxsize);
Z_SetUser(demobuf.buffer, (void**)&demobuf.buffer);
demobuf.p = NULL;
demo.recording = true;
@ -2028,7 +2031,10 @@ void G_RecordMetal(void)
if (M_CheckParm("-maxdemo") && M_IsNextParm())
maxsize = atoi(M_GetNextParm()) * 1024;
// FIXME: this file doesn't manage its memory and actually free this when it's done using it
Z_Free(demobuf.buffer);
P_SaveBufferAlloc(&demobuf, maxsize);
Z_SetUser(demobuf.buffer, (void**)&demobuf.buffer);
demobuf.p = NULL;
metalrecording = true;
@ -3051,7 +3057,10 @@ void G_DoPlayDemo(char *defdemoname)
return;
}
// FIXME: this file doesn't manage its memory and actually free this when it's done using it
Z_Free(demobuf.buffer);
P_SaveBufferAlloc(&demobuf, vLump->size);
Z_SetUser(demobuf.buffer, (void**)&demobuf.buffer);
memcpy(demobuf.buffer, vLump->data, vLump->size);
vres_Free(vRes);

View file

@ -1245,7 +1245,14 @@ static patch_t *R_CacheSpriteBrightMap(const spriteinfo_t *sprinfo, UINT8 frame)
name = sprinfo->bright[SPRINFO_DEFAULT_PIVOT];
}
return W_CachePatchNum(W_CheckNumForLongName(name), PU_SPRITE);
const lumpnum_t num = W_CheckNumForLongName(name);
if (num == LUMPERROR)
{
return NULL;
}
return W_CachePatchNum(num, PU_SPRITE);
}
//

View file

@ -989,8 +989,8 @@ void S_UpdateClosedCaptions(void)
void S_SetSfxVolume(INT32 volume)
{
CV_SetValue(&cv_soundvolume, volume);
actualsfxvolume = cv_soundvolume.value * USER_VOLUME_SCALE;
//CV_SetValue(&cv_soundvolume, volume);
actualsfxvolume = volume * USER_VOLUME_SCALE;
#ifdef HW3SOUND
hws_mode == HWS_DEFAULT_MODE ? I_SetSfxVolume(volume&0x1F) : HW3S_SetSfxVolume(volume&0x1F);
@ -2349,8 +2349,8 @@ void S_SetMusicVolume(INT32 digvolume)
if (digvolume < 0)
digvolume = cv_digmusicvolume.value;
CV_SetValue(&cv_digmusicvolume, digvolume);
actualdigmusicvolume = cv_digmusicvolume.value * USER_VOLUME_SCALE;
//CV_SetValue(&cv_digmusicvolume, digvolume);
actualdigmusicvolume = digvolume * USER_VOLUME_SCALE;
I_SetMusicVolume(digvolume);
}