Partially fixes bug #3034382 and a few other ones.

git-svn-id: https://svn.eduke32.com/eduke32@1679 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2010-08-02 18:59:59 +00:00
parent c825727234
commit a1a5f9cb5a
6 changed files with 70 additions and 23 deletions

View file

@ -47,6 +47,8 @@ extern char somethingintab;
extern uint8_t buildkeys[NUMBUILDKEYS];
extern double vid_gamma_3d, vid_contrast_3d, vid_brightness_3d;
extern int32_t ydim16, xdimgame, ydimgame, bppgame, xdim2d, ydim2d, forcesetup;
extern int32_t unrealedlook, quickmapcycling;
extern int32_t pk_turnaccel,pk_turndecel,pk_uedaccel;

View file

@ -80,6 +80,10 @@ extern int32_t totalclocklock;
int32_t synctics = 0, lockclock = 0;
// those ones save the respective 3d video vars while in 2d mode
// so that exiting from mapster32 in 2d mode saves the correct ones
double vid_gamma_3d=-1, vid_contrast_3d=-1, vid_brightness_3d=-1;
extern char vgacompatible;
extern char picsiz[MAXTILES];
@ -486,7 +490,10 @@ int32_t app_main(int32_t argc, const char **argv)
if (cursectnum == -1)
{
double gamma = vid_gamma, brightness = vid_brightness, contrast = vid_contrast;
vid_gamma_3d = vid_gamma;
vid_brightness_3d = vid_brightness;
vid_contrast_3d = vid_contrast;
vid_gamma = vid_contrast = 1.0;
vid_brightness = 0.0;
@ -500,9 +507,12 @@ int32_t app_main(int32_t argc, const char **argv)
}
overheadeditor();
keystatus[buildkeys[BK_MODE2D_3D]] = 0;
vid_gamma = gamma;
vid_contrast = contrast;
vid_brightness = brightness;
vid_gamma = vid_gamma_3d;
vid_contrast = vid_contrast_3d;
vid_brightness = vid_brightness_3d;
vid_gamma_3d = vid_contrast_3d = vid_brightness_3d = -1;
setbrightness(GAMMA_CALC,palette,0);
}
@ -1186,17 +1196,24 @@ void editinput(void)
if (keystatus[buildkeys[BK_MODE2D_3D]]) // Enter
{
double gamma = vid_gamma, contrast = vid_contrast, brightness = vid_brightness;
vid_gamma_3d = vid_gamma;
vid_contrast_3d = vid_contrast;
vid_brightness_3d = vid_brightness;
vid_gamma = vid_contrast = 1.0;
vid_brightness = 0.0;
setbrightness(0,palette,0);
keystatus[buildkeys[BK_MODE2D_3D]] = 0;
overheadeditor();
keystatus[buildkeys[BK_MODE2D_3D]] = 0;
vid_gamma = gamma;
vid_contrast = contrast;
vid_brightness = brightness;
vid_gamma = vid_gamma_3d;
vid_contrast = vid_contrast_3d;
vid_brightness = vid_brightness_3d;
vid_gamma_3d = vid_contrast_3d = vid_brightness_3d = -1;
setbrightness(GAMMA_CALC,palette,0);
}
@ -1338,7 +1355,9 @@ void overheadeditor(void)
while ((keystatus[buildkeys[BK_MODE2D_3D]]>>1) == 0)
{
if (!((vel|angvel|svel) //DOWN_BK(MOVEFORWARD) || DOWN_BK(MOVEBACKWARD) || DOWN_BK(TURNLEFT) || DOWN_BK(TURNRIGHT)
|| DOWN_BK(MOVEUP) || DOWN_BK(MOVEDOWN) || bstatus || OSD_IsMoving()))
|| DOWN_BK(MOVEUP) || DOWN_BK(MOVEDOWN)
|| keystatus[0x48] || keystatus[0x4b] || keystatus[0x4d] || keystatus[0x50] // keypad keys
|| bstatus || OSD_IsMoving()))
{
if (totalclock > waitdelay)
{
@ -1454,8 +1473,9 @@ void overheadeditor(void)
numwalls = newnumwalls;
if (numwalls < 0) numwalls = tempint;
if ((getticks() - lastdraw) >= 5 || (vel|angvel|svel) || DOWN_BK(MOVEUP) || DOWN_BK(MOVEDOWN) || mousx || mousy || bstatus ||
newnumwalls>=0 || OSD_IsMoving())
if ((getticks() - lastdraw) >= 5 || (vel|angvel|svel) || DOWN_BK(MOVEUP) || DOWN_BK(MOVEDOWN)
|| mousx || mousy || bstatus
|| newnumwalls>=0 || OSD_IsMoving())
{
lastdraw = getticks();
@ -2659,6 +2679,8 @@ SKIP:
pos.y = mousyplc;
}
}
else if ((oldmousebstatus&6) > 0)
updatesector(pos.x,pos.y,&cursectnum);
if (circlewall != -1 && (keystatus[0x4a] || ((bstatus&32) && !eitherCTRL))) // -
{

View file

@ -490,7 +490,10 @@ int32_t writesetup(const char *fn)
#ifdef RENDERTYPEWIN
maxrefreshfreq, windowpos, windowx, windowy,
#endif
vid_gamma, vid_brightness, vid_contrast, game_executable,
vid_gamma_3d>=0?vid_gamma_3d:vid_gamma,
vid_brightness_3d>=0?vid_brightness_3d:vid_brightness,
vid_contrast_3d>=0?vid_contrast_3d:vid_contrast,
game_executable,
#if 0
option[7]>>4, option[2],
#endif

View file

@ -1332,11 +1332,18 @@ int32_t trytexcache(char *fn, int32_t len, int32_t dameth, char effect, texcache
if (i > -1)
{
texcacheindex *t = cacheptrs[i];
len = t->len;
offset = t->offset;
if (!t)
i = -1;
else
{
len = t->len;
offset = t->offset;
}
/*initprintf("%s %d got a match for %s offset %d\n",__FILE__, __LINE__, cachefn,offset);*/
}
else return -1; // didn't find it
if (i < 0)
return -1; // didn't find it
cachepos = offset;
}

View file

@ -84,6 +84,8 @@ definequote 30 PARALLAX BIAS: %f
definequote 31 SPECULAR FACTOR: %f
definequote 32 SPECULAR POWER: %f
definequote 33 PAL: %d
define PRSCALE 1000
// NOTE: inline constants >=32768 are sometimes broken ATM (when loading a second time?).
// This should always work
@ -649,16 +651,24 @@ onevent EVENT_ANALYZESPRITES
state tduprot
state tduplin
/*
ife searchstat 3
for i drawnsprites
{
set j tsprite[i].owner
switch sprite[j].picnum
case LIZTROOP spritepal 1 break
case PIGCOP spritepal 2 break
case BOSS1 spritepal 6 break
endswitch
}
ife tsprite[i].owner searchwall
{
qsprintf TQUOTE 33 tsprite[i].pal
quote TQUOTE
break
}
*/
// switch sprite[j].picnum
// case LIZTROOP spritepal 1 break
// case PIGCOP spritepal 2 break
// case BOSS1 spritepal 6 break
// endswitch
}
endevent
onevent EVENT_KEYS3D

View file

@ -5825,7 +5825,10 @@ static void Keys3d(void)
if (PRESSED_KEYSC(F11)) //F11 - brightness
{
static int16_t brightness;
static int16_t brightness = -1;
if (brightness==-1)
brightness = ((int16_t)((vid_gamma-1.0)*10.0))&15;
brightness = brightness + (1-2*eitherSHIFT);
brightness &= 15;