Mapster32: add cvar/mapster32.cfg option "keeptexturestretch".

If enabled, dragging wall vertices will correct the xrepeat after the
mouse button is released, so that the pre-drag absolute stretching is
restored.

git-svn-id: https://svn.eduke32.com/eduke32@3398 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2013-01-16 20:38:56 +00:00
parent 8bca521ef4
commit dc9f4eb360
4 changed files with 24 additions and 6 deletions

View file

@ -141,6 +141,8 @@ extern int32_t getinvdisplacement(int32_t *dx, int32_t *dy, int32_t dz) ATTRIBUT
extern int32_t getscreenvdisp(int32_t bz, int32_t zoome); extern int32_t getscreenvdisp(int32_t bz, int32_t zoome);
extern void setup_sideview_sincos(void); extern void setup_sideview_sincos(void);
extern int8_t keeptexturestretch;
extern int32_t wallength(int16_t i); extern int32_t wallength(int16_t i);
extern void fixrepeats(int16_t i); extern void fixrepeats(int16_t i);
extern uint32_t getlenbyrep(int32_t len, int32_t repeat); extern uint32_t getlenbyrep(int32_t len, int32_t repeat);

View file

@ -199,6 +199,7 @@ int32_t pk_turnaccel=16;
int32_t pk_turndecel=12; int32_t pk_turndecel=12;
int32_t pk_uedaccel=3; int32_t pk_uedaccel=3;
int8_t keeptexturestretch = 1;
int8_t sideview_reversehrot = 0; int8_t sideview_reversehrot = 0;
char lastpm16buf[156]; char lastpm16buf[156];
@ -5185,7 +5186,7 @@ end_autoredwall:
if (dragwall[i] < 0) if (dragwall[i] < 0)
break; break;
if (olen[i] != 0) if (keeptexturestretch && olen[i] != 0)
{ {
#ifndef YAX_ENABLE #ifndef YAX_ENABLE
j = dragwall[i]; j = dragwall[i];

View file

@ -266,13 +266,14 @@ int32_t loadsetup(const char *fn)
if (readconfig(fp, "turndecel", val, VL) > 0) pk_turndecel = atoi_safe(val); if (readconfig(fp, "turndecel", val, VL) > 0) pk_turndecel = atoi_safe(val);
// if (readconfig(fp, "autosave", val, VL) > 0) autosave = atoi_safe(val)*60;
if (readconfig(fp, "autosavesec", val, VL) > 0) autosave = max(0, atoi_safe(val)); if (readconfig(fp, "autosavesec", val, VL) > 0) autosave = max(0, atoi_safe(val));
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, "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)
keeptexturestretch = !!atoi_safe(val);
if (readconfig(fp, "showheightindicators", val, VL) > 0) if (readconfig(fp, "showheightindicators", val, VL) > 0)
showheightindicators = clamp(atoi_safe(val), 0, 2); showheightindicators = clamp(atoi_safe(val), 0, 2);
@ -488,6 +489,9 @@ int32_t writesetup(const char *fn)
"; 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"
"; Keep texture stretching when dragging wall vertices\n"
"keeptexturestretch = %d\n"
"\n"
"; Height indicators (0:none, 1:only 2-sided&different, 2:all)\n" "; Height indicators (0:none, 1:only 2-sided&different, 2:all)\n"
"showheightindicators = %d\n" "showheightindicators = %d\n"
"\n" "\n"
@ -497,8 +501,8 @@ int32_t writesetup(const char *fn)
"; TROR: Automatic grayout of plain (non-extended) sectors,\n" "; TROR: Automatic grayout of plain (non-extended) sectors,\n"
"; toggled with Ctrl-A:\n" "; toggled with Ctrl-A:\n"
"autogray = %d\n" "autogray = %d\n"
"; TROR: Show inner gray walls, toggled with Ctrl-Alt-A:\n" // "; TROR: Show inner gray walls, toggled with Ctrl-Alt-A:\n"
"showinnergray = %d\n" // "showinnergray = %d\n"
"\n" "\n"
"; 2D mode display type (0:classic, 1:textured, 2:textured/animated)\n" "; 2D mode display type (0:classic, 1:textured, 2:textured/animated)\n"
"graphicsmode = %d\n" "graphicsmode = %d\n"
@ -598,8 +602,9 @@ 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, showheightindicators,showambiencesounds, corruptcheck_noalreadyrefd, fixmaponsave_sprites, keeptexturestretch,
autogray,showinnergray, showheightindicators,showambiencesounds,
autogray, //showinnergray,
graphicsmode, graphicsmode,
MixRate,AmbienceToggle,ParentalLock, !!m32_osd_tryscript, MixRate,AmbienceToggle,ParentalLock, !!m32_osd_tryscript,
#if 1 #if 1

View file

@ -9105,6 +9105,14 @@ static int32_t osdcmd_vars_pk(const osdfuncparm_t *parm)
return OSDCMD_OK; return OSDCMD_OK;
} }
if (!Bstrcasecmp(parm->name, "keeptexturestretch"))
{
keeptexturestretch = !keeptexturestretch;
OSD_Printf("Keep texture stretching when dragging wall vertices: %s\n",
ONOFF(keeptexturestretch));
return OSDCMD_OK;
}
if (!Bstrcasecmp(parm->name, "corruptcheck")) if (!Bstrcasecmp(parm->name, "corruptcheck"))
{ {
if (parm->numparms >= 1) if (parm->numparms >= 1)
@ -9501,6 +9509,8 @@ 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("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);
#ifdef USE_OPENGL #ifdef USE_OPENGL
OSD_RegisterFunction("tint", "tint <pal> <r> <g> <b> <flags>: queries or sets hightile tinting", osdcmd_tint); OSD_RegisterFunction("tint", "tint <pal> <r> <g> <b> <flags>: queries or sets hightile tinting", osdcmd_tint);