mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-12 11:10:39 +00:00
Address crash when model skins have invalid file names. Affected surfaces will not be drawn, but FPS will plummet as mdloadskin() is called repeatedly. A more optimal solution would either flag the surface as invalid (so the renderers skip it) or reject the entire model when defs are loaded.
http://forums.duke4.net/topic/6031-eduke32-crashes-if-hrp-model-skin-not-available/ git-svn-id: https://svn.eduke32.com/eduke32@3164 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
a418bec8c2
commit
9b57e0ea51
1 changed files with 5 additions and 0 deletions
|
@ -797,10 +797,14 @@ int32_t mdloadskin(md2model_t *m, int32_t number, int32_t pal, int32_t surf)
|
||||||
//OSD_Printf("Using def skin 0,0 as fallback, pal=%d\n", pal);
|
//OSD_Printf("Using def skin 0,0 as fallback, pal=%d\n", pal);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
return 0;
|
||||||
|
#if 0
|
||||||
{
|
{
|
||||||
|
// fall back to the model-defined texture
|
||||||
if ((unsigned)number >= (unsigned)m->numskins)
|
if ((unsigned)number >= (unsigned)m->numskins)
|
||||||
number = 0;
|
number = 0;
|
||||||
|
|
||||||
|
// m->skinfn is undefined when md3model_t is cast to md2model_t --> crash
|
||||||
skinfile = m->skinfn + number*64;
|
skinfile = m->skinfn + number*64;
|
||||||
texidx = &m->texid[number*(HICEFFECTMASK+1) + hicfxmask(pal)];
|
texidx = &m->texid[number*(HICEFFECTMASK+1) + hicfxmask(pal)];
|
||||||
Bstrncpyz(fn, m->basepath, BMAX_PATH);
|
Bstrncpyz(fn, m->basepath, BMAX_PATH);
|
||||||
|
@ -808,6 +812,7 @@ int32_t mdloadskin(md2model_t *m, int32_t number, int32_t pal, int32_t surf)
|
||||||
Bstrcat(fn,skinfile);
|
Bstrcat(fn,skinfile);
|
||||||
//OSD_Printf("Using MD2/MD3 skin (%d) %s, pal=%d\n",number,skinfile,pal);
|
//OSD_Printf("Using MD2/MD3 skin (%d) %s, pal=%d\n",number,skinfile,pal);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!skinfile[0])
|
if (!skinfile[0])
|
||||||
|
|
Loading…
Reference in a new issue