mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-12 11:10:39 +00:00
Mapster32: add config variable 'corruptcheck_heinum'.
With 3 modes: 0: auto-correction and warning disabled 1: auto-correction enabled (default, current behavior) 2: auto-correction and warning enabled git-svn-id: https://svn.eduke32.com/eduke32@5320 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
212343b390
commit
e8623165a7
4 changed files with 30 additions and 11 deletions
|
@ -251,7 +251,7 @@ static inline int32_t get_nextloopstart(int32_t loopstart)
|
||||||
#define MAXCORRUPTTHINGS 64
|
#define MAXCORRUPTTHINGS 64
|
||||||
extern int32_t corruptlevel, numcorruptthings, corruptthings[MAXCORRUPTTHINGS];
|
extern int32_t corruptlevel, numcorruptthings, corruptthings[MAXCORRUPTTHINGS];
|
||||||
extern int32_t autocorruptcheck;
|
extern int32_t autocorruptcheck;
|
||||||
extern int32_t corruptcheck_noalreadyrefd;
|
extern int32_t corruptcheck_noalreadyrefd, corruptcheck_heinum;
|
||||||
extern int32_t corrupt_tryfix_alt;
|
extern int32_t corrupt_tryfix_alt;
|
||||||
extern int32_t CheckMapCorruption(int32_t printfromlev, uint64_t tryfixing);
|
extern int32_t CheckMapCorruption(int32_t printfromlev, uint64_t tryfixing);
|
||||||
|
|
||||||
|
|
|
@ -209,6 +209,8 @@ int32_t loadsetup(const char *fn)
|
||||||
if (readconfig(fp, "autocorruptchecksec", val, VL) > 0) autocorruptcheck = max(0, atoi_safe(val));
|
if (readconfig(fp, "autocorruptchecksec", val, VL) > 0) autocorruptcheck = max(0, atoi_safe(val));
|
||||||
if (readconfig(fp, "corruptcheck_noalreadyrefd", val, VL) > 0)
|
if (readconfig(fp, "corruptcheck_noalreadyrefd", val, VL) > 0)
|
||||||
corruptcheck_noalreadyrefd = !!atoi_safe(val);
|
corruptcheck_noalreadyrefd = !!atoi_safe(val);
|
||||||
|
if (readconfig(fp, "corruptcheck_heinum", val, VL) > 0)
|
||||||
|
corruptcheck_heinum = clamp(atoi_safe(val), 0, 2);
|
||||||
if (readconfig(fp, "fixmaponsave_sprites", val, VL) > 0)
|
if (readconfig(fp, "fixmaponsave_sprites", val, VL) > 0)
|
||||||
fixmaponsave_sprites = !!atoi_safe(val);
|
fixmaponsave_sprites = !!atoi_safe(val);
|
||||||
if (readconfig(fp, "keeptexturestretch", val, VL) > 0)
|
if (readconfig(fp, "keeptexturestretch", val, VL) > 0)
|
||||||
|
@ -488,6 +490,10 @@ int32_t writesetup(const char *fn)
|
||||||
"; Ignore 'already referenced wall' warnings\n"
|
"; Ignore 'already referenced wall' warnings\n"
|
||||||
"corruptcheck_noalreadyrefd = %d\n"
|
"corruptcheck_noalreadyrefd = %d\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
"; Auto-correct inconsistent ceilingstat/floorstat bit 2 and .heinum?\n"
|
||||||
|
"; Set to 2, also warn on 'corruptcheck'.\n"
|
||||||
|
"corruptcheck_heinum = %d\n"
|
||||||
|
"\n"
|
||||||
"; Fix sprite sectnums when saving a map or entering 3D mode\n"
|
"; Fix sprite sectnums when saving a map or entering 3D mode\n"
|
||||||
"fixmaponsave_sprites = %d\n"
|
"fixmaponsave_sprites = %d\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -620,7 +626,7 @@ int32_t writesetup(const char *fn)
|
||||||
msens, unrealedlook, pk_uedaccel, quickmapcycling,
|
msens, unrealedlook, pk_uedaccel, quickmapcycling,
|
||||||
sideview_reversehrot,
|
sideview_reversehrot,
|
||||||
revertCTRL,scrollamount,pk_turnaccel,pk_turndecel,autosave,autocorruptcheck,
|
revertCTRL,scrollamount,pk_turnaccel,pk_turndecel,autosave,autocorruptcheck,
|
||||||
corruptcheck_noalreadyrefd, fixmaponsave_sprites, keeptexturestretch,
|
corruptcheck_noalreadyrefd, corruptcheck_heinum, fixmaponsave_sprites, keeptexturestretch,
|
||||||
showheightindicators,showambiencesounds,pathsearchmode,
|
showheightindicators,showambiencesounds,pathsearchmode,
|
||||||
m32_2d3dmode,m32_2d3dsize,m32_2d3d.x, m32_2d3d.y,
|
m32_2d3dmode,m32_2d3dsize,m32_2d3d.x, m32_2d3d.y,
|
||||||
autogray, //showinnergray,
|
autogray, //showinnergray,
|
||||||
|
|
|
@ -8547,11 +8547,7 @@ static int32_t osdcmd_vars_pk(const osdfuncparm_t *parm)
|
||||||
return OSDCMD_SHOWHELP;
|
return OSDCMD_SHOWHELP;
|
||||||
|
|
||||||
if (setval)
|
if (setval)
|
||||||
{
|
pk_uedaccel = clamp(atoi_safe(parm->parms[0]), 0, 5);
|
||||||
pk_uedaccel = atoi_safe(parm->parms[0]);
|
|
||||||
pk_uedaccel = pk_uedaccel<0 ? 0:pk_uedaccel;
|
|
||||||
pk_uedaccel = pk_uedaccel>5 ? 5:pk_uedaccel;
|
|
||||||
}
|
|
||||||
|
|
||||||
OSD_Printf("UnrealEd mouse navigation acceleration is %d\n", pk_uedaccel);
|
OSD_Printf("UnrealEd mouse navigation acceleration is %d\n", pk_uedaccel);
|
||||||
return OSDCMD_OK;
|
return OSDCMD_OK;
|
||||||
|
@ -8624,6 +8620,22 @@ static int32_t osdcmd_vars_pk(const osdfuncparm_t *parm)
|
||||||
return OSDCMD_OK;
|
return OSDCMD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!Bstrcasecmp(parm->name, "corruptcheck_heinum"))
|
||||||
|
{
|
||||||
|
if (parm->numparms > 1)
|
||||||
|
return OSDCMD_SHOWHELP;
|
||||||
|
|
||||||
|
static const char *mode[3] = {"disabled", "auto-correct only", "auto-correct and warn"};
|
||||||
|
|
||||||
|
if (setval)
|
||||||
|
corruptcheck_heinum = clamp(atoi_safe(parm->parms[0]), 0, 2);
|
||||||
|
|
||||||
|
OSD_Printf("Check inconsistent ceilingstat/floorstat bit 2 and .heinum: %s\n",
|
||||||
|
mode[corruptcheck_heinum]);
|
||||||
|
|
||||||
|
return OSDCMD_OK;
|
||||||
|
}
|
||||||
|
|
||||||
if (!Bstrcasecmp(parm->name, "keeptexturestretch"))
|
if (!Bstrcasecmp(parm->name, "keeptexturestretch"))
|
||||||
{
|
{
|
||||||
keeptexturestretch = !keeptexturestretch;
|
keeptexturestretch = !keeptexturestretch;
|
||||||
|
@ -9058,6 +9070,7 @@ static int32_t registerosdcommands(void)
|
||||||
OSD_RegisterFunction("show_heightindicators", "show_heightindicators {0, 1 or 2}: sets display of height indicators in 2D mode", osdcmd_vars_pk);
|
OSD_RegisterFunction("show_heightindicators", "show_heightindicators {0, 1 or 2}: sets display of height indicators in 2D mode", osdcmd_vars_pk);
|
||||||
OSD_RegisterFunction("show_ambiencesounds", "show_ambiencesounds {0, 1 or 2}>: sets display of MUSICANDSFX circles in 2D mode", osdcmd_vars_pk);
|
OSD_RegisterFunction("show_ambiencesounds", "show_ambiencesounds {0, 1 or 2}>: sets display of MUSICANDSFX circles in 2D mode", osdcmd_vars_pk);
|
||||||
OSD_RegisterFunction("corruptcheck_noalreadyrefd", "corruptcheck_noalreadyrefd: toggles ignoring of one-to-many red wall connections", osdcmd_vars_pk);
|
OSD_RegisterFunction("corruptcheck_noalreadyrefd", "corruptcheck_noalreadyrefd: toggles ignoring of one-to-many red wall connections", osdcmd_vars_pk);
|
||||||
|
OSD_RegisterFunction("corruptcheck_heinum", "corruptcheck_heinum: toggles auto-correcting inconsistent c/fstat bit 2 and heinum (2: also warn)", osdcmd_vars_pk);
|
||||||
OSD_RegisterFunction("keeptexturestretch", "toggles keeping texture stretching when dragging wall vertices", osdcmd_vars_pk);
|
OSD_RegisterFunction("keeptexturestretch", "toggles keeping texture stretching when dragging wall vertices", osdcmd_vars_pk);
|
||||||
|
|
||||||
OSD_RegisterFunction("corruptcheck", "corruptcheck {<seconds>|now|tryfix}: sets auto corruption check interval if <seconds> given, otherwise as indicated", osdcmd_vars_pk);
|
OSD_RegisterFunction("corruptcheck", "corruptcheck {<seconds>|now|tryfix}: sets auto corruption check interval if <seconds> given, otherwise as indicated", osdcmd_vars_pk);
|
||||||
|
|
|
@ -44,7 +44,7 @@ int32_t showambiencesounds=2;
|
||||||
int32_t autosave=180;
|
int32_t autosave=180;
|
||||||
|
|
||||||
int32_t autocorruptcheck;
|
int32_t autocorruptcheck;
|
||||||
int32_t corruptcheck_noalreadyrefd;
|
int32_t corruptcheck_noalreadyrefd, corruptcheck_heinum=1;
|
||||||
int32_t corrupt_tryfix_alt;
|
int32_t corrupt_tryfix_alt;
|
||||||
int32_t corruptlevel, numcorruptthings, corruptthings[MAXCORRUPTTHINGS];
|
int32_t corruptlevel, numcorruptthings, corruptthings[MAXCORRUPTTHINGS];
|
||||||
|
|
||||||
|
@ -941,6 +941,7 @@ int32_t CheckMapCorruption(int32_t printfromlev, uint64_t tryfixing)
|
||||||
CORRUPTCHK_PRINT(5, CORRUPT_SECTOR|i, "SECTOR[%d]: wallptr+wallnum=%d out of range: numwalls=%d", i, endwall, numwalls);
|
CORRUPTCHK_PRINT(5, CORRUPT_SECTOR|i, "SECTOR[%d]: wallptr+wallnum=%d out of range: numwalls=%d", i, endwall, numwalls);
|
||||||
|
|
||||||
// inconsistent cstat&2 and heinum checker
|
// inconsistent cstat&2 and heinum checker
|
||||||
|
if (corruptcheck_heinum)
|
||||||
{
|
{
|
||||||
const char *cflabel[2] = {"ceiling", "floor"};
|
const char *cflabel[2] = {"ceiling", "floor"};
|
||||||
|
|
||||||
|
@ -959,13 +960,12 @@ int32_t CheckMapCorruption(int32_t printfromlev, uint64_t tryfixing)
|
||||||
i, cflabel[j]);
|
i, cflabel[j]);
|
||||||
heinumcheckstat = 1;
|
heinumcheckstat = 1;
|
||||||
}
|
}
|
||||||
/*
|
else if (corruptcheck_heinum==2 && heinumcheckstat==0)
|
||||||
else if (heinumcheckstat==0)
|
|
||||||
{
|
{
|
||||||
CORRUPTCHK_PRINT(1, CORRUPT_SECTOR|i,
|
CORRUPTCHK_PRINT(1, CORRUPT_SECTOR|i,
|
||||||
"SECTOR[%d]: inconsistent %sstat&2 and heinum", i, cflabel[j]);
|
"SECTOR[%d]: inconsistent %sstat&2 and heinum", i, cflabel[j]);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
if (heinumcheckstat != 1)
|
if (heinumcheckstat != 1)
|
||||||
heinumcheckstat = 2;
|
heinumcheckstat = 2;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue