mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-11 07:11:39 +00:00
more polymer-override variable twiddling in m32script, fixes and beautifying.
git-svn-id: https://svn.eduke32.com/eduke32@1648 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
8120821f8d
commit
30877e925a
8 changed files with 540 additions and 320 deletions
|
@ -11,12 +11,23 @@ gamevar l 0 1
|
||||||
gamevar m 0 1
|
gamevar m 0 1
|
||||||
gamevar p 0 1
|
gamevar p 0 1
|
||||||
gamevar q 0 1
|
gamevar q 0 1
|
||||||
|
gamevar r 0 1
|
||||||
|
|
||||||
|
gamevar x 0 0
|
||||||
|
gamevar y 0 0
|
||||||
|
gamevar z 0 0
|
||||||
|
|
||||||
gamevar gi 0 0
|
gamevar gi 0 0
|
||||||
gamevar gj 0 0
|
gamevar gj 0 0
|
||||||
gamevar gk 0 0
|
gamevar gk 0 0
|
||||||
|
|
||||||
|
gamevar dx 0 0
|
||||||
|
gamevar dy 0 0
|
||||||
|
gamevar dz 0 0
|
||||||
|
gamevar dang 0 0
|
||||||
|
|
||||||
gamevar tmp 0 0
|
gamevar tmp 0 0
|
||||||
|
gamevar cnt 0 0
|
||||||
|
|
||||||
gamevar davr 65536 0
|
gamevar davr 65536 0
|
||||||
gamevar dayx 65536 0
|
gamevar dayx 65536 0
|
||||||
|
@ -65,6 +76,19 @@ definequote 25 WALL[%d].NEXTSECTOR=%d out of range: numsectors=%d!!!
|
||||||
|
|
||||||
definequote 26 FLOAT ACCESS TEST
|
definequote 26 FLOAT ACCESS TEST
|
||||||
|
|
||||||
|
definequote 27 OVERRIDE POLYMER PARALLAX & SPECULAR: OFF
|
||||||
|
definequote 28 OVERRIDE POLYMER PARALLAX & SPECULAR: ON
|
||||||
|
|
||||||
|
definequote 29 PARALLAX SCALE: %f
|
||||||
|
definequote 30 PARALLAX BIAS: %f
|
||||||
|
definequote 31 SPECULAR FACTOR: %f
|
||||||
|
definequote 32 SPECULAR POWER: %f
|
||||||
|
|
||||||
|
define PRSCALE 1000
|
||||||
|
// NOTE: inline constants >=32768 are sometimes broken ATM (when loading a second time?).
|
||||||
|
// This should always work
|
||||||
|
define MAXSPECULAR 100000
|
||||||
|
|
||||||
gamearray ar 128
|
gamearray ar 128
|
||||||
gamearray parm 8
|
gamearray parm 8
|
||||||
|
|
||||||
|
@ -136,27 +160,107 @@ defstate printlights
|
||||||
ends
|
ends
|
||||||
|
|
||||||
// convenient polymer SE light manipulation with keypad keys
|
// convenient polymer SE light manipulation with keypad keys
|
||||||
|
// when aiming at light SE (49 or 50):
|
||||||
|
// KP 4,5,6,8: angle/horiz
|
||||||
|
// KP 7,9: range
|
||||||
|
// KP+/-: radius
|
||||||
|
// KP 1,2,3: RGB color (Shift inverts)
|
||||||
|
//
|
||||||
|
// when aiming at wall or sector:
|
||||||
|
// KP/ enable/disable overrides
|
||||||
|
// when overrides are on:
|
||||||
|
// KP 4,7: parallaxscale
|
||||||
|
// KP 8,9: parallaxbias
|
||||||
|
// KP 1,2: specularfactor
|
||||||
|
// KP 3,6: specularpower
|
||||||
|
//
|
||||||
|
// Also try Shift and/or Ctrl modifiers for different increments
|
||||||
defstate fiddlewithlights
|
defstate fiddlewithlights
|
||||||
ifn searchstat 0 ifn searchstat 4 nullop
|
ife searchstat 3 nullop else
|
||||||
|
{
|
||||||
|
ifhitkey KEY_gSLASH
|
||||||
|
{
|
||||||
|
ife pr_overrideparallax 0
|
||||||
|
{
|
||||||
|
set pr_overrideparallax 1
|
||||||
|
set pr_overridespecular 1
|
||||||
|
quote 28
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// polymer override parallaxscale
|
set pr_overrideparallax 0
|
||||||
set j 0
|
set pr_overridespecular 0
|
||||||
ifhitkey KEY_KP8 set j 1
|
quote 27
|
||||||
ifhitkey KEY_KP5 set j -1
|
}
|
||||||
ifeithershift nullop else mul j 10
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ifn j 0
|
// if aiming at sector or wall
|
||||||
|
ife searchstat 3 nullop
|
||||||
|
else ifn pr_overrideparallax 0
|
||||||
{
|
{
|
||||||
set k pr_parallaxscale // also available: ~bias, specularfactor, ~power
|
// polymer override parallaxscale
|
||||||
ftoi k 2000000 // must convert to scaled integer
|
set j 0 set k 0
|
||||||
add k j
|
|
||||||
itof k 2000000 // convert back
|
ifhitkey KEY_KP4 set j -1
|
||||||
|
ifhitkey KEY_KP7 set j 1
|
||||||
|
ifn j 0 set k 1
|
||||||
|
|
||||||
|
ifhitkey KEY_KP8 set j -1
|
||||||
|
ifhitkey KEY_KP9 set j 1
|
||||||
|
ife k 0 ifn j 0 set k 2
|
||||||
|
|
||||||
|
ifhitkey KEY_KP1 set j -1
|
||||||
|
ifhitkey KEY_KP2 set j 1
|
||||||
|
ife k 0 ifn j 0 set k 3
|
||||||
|
|
||||||
|
ifhitkey KEY_KP3 set j -1
|
||||||
|
ifhitkey KEY_KP6 set j 1
|
||||||
|
ife k 0 ifn j 0 set k 4
|
||||||
|
|
||||||
|
ifeithershift mul j 2 else mul j 10
|
||||||
|
ifeitherctrl mul j 10
|
||||||
|
|
||||||
|
switch k
|
||||||
|
case 0: break;
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
|
set k pr_parallaxscale
|
||||||
|
ftoi k PRSCALE // must convert to scaled integer, scale is 1:PRSCALE
|
||||||
|
add k j, clamp k -10000 10000
|
||||||
|
itof k PRSCALE // convert back
|
||||||
|
qsprintf TQUOTE 29 k, quote TQUOTE
|
||||||
set pr_parallaxscale k
|
set pr_parallaxscale k
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
|
set k pr_parallaxbias
|
||||||
|
ftoi k PRSCALE, add k j, clamp k -10000 10000, itof k PRSCALE
|
||||||
|
qsprintf TQUOTE 30 k, quote TQUOTE
|
||||||
|
set pr_parallaxbias k
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
{
|
||||||
|
set k pr_specularfactor
|
||||||
|
ftoi k PRSCALE, add k j, clamp k -10000 MAXSPECULAR, itof k PRSCALE
|
||||||
|
qsprintf TQUOTE 31 k, quote TQUOTE
|
||||||
|
set pr_specularfactor k
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4:
|
||||||
|
{
|
||||||
|
set k pr_specularpower
|
||||||
|
ftoi k PRSCALE, add k j, clamp k -10000 MAXSPECULAR, itof k PRSCALE
|
||||||
|
qsprintf TQUOTE 32 k, quote TQUOTE
|
||||||
|
set pr_specularpower k
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
endswitch
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
// if aiming at an SE with lotag 49 or 50
|
||||||
|
|
||||||
ife searchstat 3 ife sprite[searchwall].picnum SECTOREFFECTOR
|
ife searchstat 3 ife sprite[searchwall].picnum SECTOREFFECTOR
|
||||||
ifge sprite[searchwall].lotag 49 ifle sprite[searchwall].lotag 50
|
ifge sprite[searchwall].lotag 49 ifle sprite[searchwall].lotag 50
|
||||||
{
|
{
|
||||||
|
@ -252,6 +356,7 @@ defstate fiddlewithlights
|
||||||
}
|
}
|
||||||
ends
|
ends
|
||||||
|
|
||||||
|
/*
|
||||||
defstate testkeyavail
|
defstate testkeyavail
|
||||||
for i range 27
|
for i range 27
|
||||||
{
|
{
|
||||||
|
@ -271,10 +376,46 @@ defstate testkeyavail
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ends
|
ends
|
||||||
|
*/
|
||||||
|
|
||||||
//onevent EVENT_PREKEYS2D
|
// rotate highlighted sprites around selected (closest to mouse) sprite
|
||||||
|
// global parameter: dang
|
||||||
|
defstate rotselspr
|
||||||
|
ifg highlightcnt 0
|
||||||
|
ifge pointhighlight 16384, ifl pointhighlight 32768
|
||||||
|
{
|
||||||
|
ife dang 0 return
|
||||||
|
|
||||||
|
set p pointhighlight, and p 16383
|
||||||
|
|
||||||
|
add sprite[p].ang dang
|
||||||
|
|
||||||
|
for i selsprites, ifn i p
|
||||||
|
{
|
||||||
|
rotatepoint sprite[p].x sprite[p].y .x .y dang (x y)
|
||||||
|
add .ang dang
|
||||||
|
bsetsprite I x y .z
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ends
|
||||||
|
|
||||||
|
onevent EVENT_PREKEYS2D
|
||||||
// state testkeyavail
|
// state testkeyavail
|
||||||
//endevent
|
|
||||||
|
set j 0
|
||||||
|
ifeitherctrl
|
||||||
|
{
|
||||||
|
ifhitkey KEY_COMMA set j -1
|
||||||
|
ifhitkey KEY_PERIOD set j 1
|
||||||
|
}
|
||||||
|
|
||||||
|
ifn j 0
|
||||||
|
{
|
||||||
|
mul j 512
|
||||||
|
set dang j
|
||||||
|
state rotselspr
|
||||||
|
}
|
||||||
|
endevent
|
||||||
|
|
||||||
onevent EVENT_PREKEYS3D
|
onevent EVENT_PREKEYS3D
|
||||||
// state testkeyavail
|
// state testkeyavail
|
||||||
|
@ -347,26 +488,45 @@ onevent EVENT_INSERTSPRITE2D
|
||||||
}
|
}
|
||||||
endevent
|
endevent
|
||||||
|
|
||||||
// rotates and duplicates selected sprites around
|
|
||||||
// pivot sprite (extra=123, ang:dang, yrepeat<<5:dz (pos. if pal!=0), lo:cnt)
|
//////////////////// SPRITE DUPLICATORS ////////////////////
|
||||||
|
|
||||||
|
defstate transcnt
|
||||||
|
ifle cnt 0 { inv cnt, add cnt 128 }
|
||||||
|
ends
|
||||||
|
|
||||||
|
define DUP_ROT_MAGIC 123
|
||||||
|
|
||||||
|
// duplicates and rotates selected sprites around
|
||||||
|
// pivot sprite with fields
|
||||||
|
// .extra=123 (magic)
|
||||||
|
// .ang: angle delta
|
||||||
|
// .yrepeat*32: z delta (positive if pal!=0, i.e. going down)
|
||||||
|
// .shade: count (-128 to 0 -> 255 to 128)
|
||||||
defstate duprot
|
defstate duprot
|
||||||
ifn searchstat 3 return
|
ifn searchstat 3 return
|
||||||
ifn sprite[searchwall].extra 123 return
|
ifn sprite[searchwall].extra DUP_ROT_MAGIC return
|
||||||
ifl sprite[searchwall].shade 1 return
|
|
||||||
set k searchwall
|
|
||||||
|
|
||||||
for i range sprite[k].shade
|
set p searchwall // pivot sprite
|
||||||
|
set cnt sprite[p].shade, state transcnt
|
||||||
|
|
||||||
|
set sprite[p].extra -1
|
||||||
|
|
||||||
|
for i range cnt
|
||||||
{
|
{
|
||||||
for j selsprites, ifn j k
|
for j selsprites, ifn j p
|
||||||
{
|
{
|
||||||
dupsprite j
|
dupsprite j // duplicate sprite j, I becomes index of newly created sprite
|
||||||
set tmp i, add tmp 1, mul tmp sprite[k].ang
|
|
||||||
rotatepoint sprite[k].x sprite[k].y .x .y tmp (l m)
|
set dang i, add dang 1, mul dang sprite[p].ang
|
||||||
add .ang tmp
|
rotatepoint sprite[p].x sprite[p].y .x .y dang (x y)
|
||||||
set tmp i, add tmp 1, mul tmp sprite[k].yrepeat, shiftl tmp 5
|
add .ang dang
|
||||||
ife sprite[k].pal 0 inv tmp
|
|
||||||
add tmp .z
|
set z i, add z 1, mul z sprite[p].yrepeat, shiftl z 5
|
||||||
bsetsprite I l m tmp
|
ife sprite[p].pal 0, inv z
|
||||||
|
add z .z
|
||||||
|
|
||||||
|
bsetsprite I x y z
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ends
|
ends
|
||||||
|
@ -374,33 +534,120 @@ ends
|
||||||
// same as above but with tsprite[], as a kind of preview
|
// same as above but with tsprite[], as a kind of preview
|
||||||
defstate tduprot
|
defstate tduprot
|
||||||
ifn searchstat 3 return
|
ifn searchstat 3 return
|
||||||
ifn sprite[searchwall].extra 123 return
|
ifn sprite[searchwall].extra DUP_ROT_MAGIC return
|
||||||
ifl sprite[searchwall].shade 1 return
|
|
||||||
set k searchwall
|
|
||||||
|
|
||||||
for i range sprite[k].shade
|
set p searchwall // pivot sprite
|
||||||
|
set cnt sprite[p].shade, state transcnt
|
||||||
|
|
||||||
|
for i range cnt
|
||||||
{
|
{
|
||||||
for j selsprites, ifn j k
|
for j selsprites, ifn j p
|
||||||
{
|
{
|
||||||
set p spritesortcnt
|
set k spritesortcnt
|
||||||
tdupsprite j
|
tdupsprite j
|
||||||
set tmp i, add tmp 1, mul tmp sprite[k].ang
|
|
||||||
rotatepoint sprite[k].x sprite[k].y tsprite[p].x tsprite[p].y tmp (l m)
|
set dang i, add dang 1, mul dang sprite[p].ang
|
||||||
add tsprite[p].ang tmp
|
rotatepoint sprite[p].x sprite[p].y tsprite[k].x tsprite[k].y dang (x y)
|
||||||
set tmp i, add tmp 1, mul tmp sprite[k].yrepeat, shiftl tmp 5
|
add tsprite[k].ang dang
|
||||||
ife sprite[k].pal 0 inv tmp
|
|
||||||
add tmp tsprite[p].z
|
set z i, add z 1, mul z sprite[p].yrepeat, shiftl z 5
|
||||||
set tsprite[p].x l
|
ife sprite[p].pal 0 inv z
|
||||||
set tsprite[p].y m
|
add z tsprite[k].z
|
||||||
set tsprite[p].z tmp
|
|
||||||
or tsprite[p].cstat 514
|
set tsprite[k].x x
|
||||||
// bsetsprite I l m tmp
|
set tsprite[k].y y
|
||||||
|
set tsprite[k].z z
|
||||||
|
|
||||||
|
or tsprite[k].cstat 514
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ends
|
||||||
|
|
||||||
|
define DUP_LIN_MAGIC 234
|
||||||
|
define DUP_LIN_MAGIC2 345
|
||||||
|
|
||||||
|
// duplicates and translates selected sprites in the direction between two
|
||||||
|
// reference sprites with fields
|
||||||
|
// .extra=234 (1st sprite), =345 (2nd, aimed at sprite)
|
||||||
|
// .shade: count (-128 to 0 -> 255 to 128)
|
||||||
|
defstate duplin
|
||||||
|
ifn searchstat 3 return
|
||||||
|
ifn sprite[searchwall].extra DUP_LIN_MAGIC2 return
|
||||||
|
|
||||||
|
set r searchwall // 2nd reference point
|
||||||
|
|
||||||
|
set cnt sprite[r].shade, state transcnt
|
||||||
|
|
||||||
|
set p -1 // 1st reference point
|
||||||
|
for i selsprites, ifn i r
|
||||||
|
{
|
||||||
|
ife .extra DUP_LIN_MAGIC { set p i, break }
|
||||||
|
}
|
||||||
|
ifl p 0 return
|
||||||
|
|
||||||
|
set sprite[p].extra -1
|
||||||
|
set sprite[r].extra -1
|
||||||
|
|
||||||
|
set dx sprite[r].x, sub dx sprite[p].x
|
||||||
|
set dy sprite[r].y, sub dy sprite[p].y
|
||||||
|
set dz sprite[r].z, sub dz sprite[p].z
|
||||||
|
|
||||||
|
for i range cnt
|
||||||
|
{
|
||||||
|
for j selsprites, ifn j r
|
||||||
|
{
|
||||||
|
dupsprite j
|
||||||
|
|
||||||
|
set x i, add x 1, mul x dx, add x .x
|
||||||
|
set y i, add y 1, mul y dy, add y .y
|
||||||
|
set z i, add z 1, mul z dz, add z .z
|
||||||
|
bsetsprite I x y z
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ends
|
||||||
|
|
||||||
|
defstate tduplin
|
||||||
|
ifn searchstat 3 return
|
||||||
|
ifn sprite[searchwall].extra DUP_LIN_MAGIC2 return
|
||||||
|
|
||||||
|
set r searchwall // 2nd reference point
|
||||||
|
|
||||||
|
set cnt sprite[r].shade, state transcnt
|
||||||
|
|
||||||
|
set p -1 // 1st reference point
|
||||||
|
for i selsprites, ifn i r
|
||||||
|
{
|
||||||
|
ife .extra DUP_LIN_MAGIC { set p i, break }
|
||||||
|
}
|
||||||
|
ifl p 0 return
|
||||||
|
|
||||||
|
set dx sprite[r].x, sub dx sprite[p].x
|
||||||
|
set dy sprite[r].y, sub dy sprite[p].y
|
||||||
|
set dz sprite[r].z, sub dz sprite[p].z
|
||||||
|
|
||||||
|
for i range cnt
|
||||||
|
{
|
||||||
|
for j selsprites, ifn j r
|
||||||
|
{
|
||||||
|
set k spritesortcnt
|
||||||
|
tdupsprite j
|
||||||
|
|
||||||
|
set tmp i, add tmp 1, mul tmp dx
|
||||||
|
add tsprite[k].x tmp
|
||||||
|
set tmp i, add tmp 1, mul tmp dy
|
||||||
|
add tsprite[k].y tmp
|
||||||
|
set tmp i, add tmp 1, mul tmp dz
|
||||||
|
add tsprite[k].z tmp
|
||||||
|
|
||||||
|
or tsprite[k].cstat 514
|
||||||
|
// bsetsprite I x y z
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ends
|
ends
|
||||||
|
|
||||||
onevent EVENT_ANALYZESPRITES
|
onevent EVENT_ANALYZESPRITES
|
||||||
state tduprot
|
state tduprot
|
||||||
|
state tduplin
|
||||||
/*
|
/*
|
||||||
for i drawnsprites
|
for i drawnsprites
|
||||||
{
|
{
|
||||||
|
@ -517,10 +764,13 @@ onevent EVENT_KEYS3D
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else ife sprite[searchwall].extra 123
|
else ife sprite[searchwall].extra DUP_ROT_MAGIC
|
||||||
{
|
{
|
||||||
state duprot
|
state duprot
|
||||||
add sprite[searchwall].extra 1
|
}
|
||||||
|
else ife sprite[searchwall].extra DUP_LIN_MAGIC2
|
||||||
|
{
|
||||||
|
state duplin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,6 +833,7 @@ gamevar endwall 0 0
|
||||||
defstate corruptchk
|
defstate corruptchk
|
||||||
ifle numsectors MAXSECTORS ifle numwalls MAXWALLS nullop else
|
ifle numsectors MAXSECTORS ifle numwalls MAXWALLS nullop else
|
||||||
{ quote 19 printmessage16 19 return }
|
{ quote 19 printmessage16 19 return }
|
||||||
|
|
||||||
set ewall 0 // expected wall index
|
set ewall 0 // expected wall index
|
||||||
for i allsectors
|
for i allsectors
|
||||||
{
|
{
|
||||||
|
|
|
@ -130,6 +130,8 @@ static inline int32_t wallength(int16_t i)
|
||||||
return ksqrt(dax*dax + day*day);
|
return ksqrt(dax*dax + day*day);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define CLEARLINES2D(Startline, Numlines, Color) clearbuf((char *)(frameplace + ((Startline)*bytesperline)), (bytesperline*(Numlines))>>2, (Color))
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -286,8 +286,8 @@ static int32_t osdcmd_vidmode(const osdfuncparm_t *parm)
|
||||||
ydim2d = ydim;
|
ydim2d = ydim;
|
||||||
|
|
||||||
begindrawing(); //{{{
|
begindrawing(); //{{{
|
||||||
clearbuf((char *)(frameplace + (ydim16*bytesperline)), (bytesperline*STATUS2DSIZ2) >> 2, 0x00000000l);
|
|
||||||
clearbuf((char *)frameplace, (ydim16*bytesperline) >> 2, 0L);
|
CLEARLINES2D(0, ydim16+STATUS2DSIZ, 0);
|
||||||
|
|
||||||
ydim16 = ydim;
|
ydim16 = ydim;
|
||||||
// drawline16(0,ydim-STATUS2DSIZ,xdim-1,ydim-STATUS2DSIZ,editorcolors[1]);
|
// drawline16(0,ydim-STATUS2DSIZ,xdim-1,ydim-STATUS2DSIZ,editorcolors[1]);
|
||||||
|
@ -1107,8 +1107,8 @@ void editinput(void)
|
||||||
{
|
{
|
||||||
sprite[i].cstat = (sprite[i].cstat&~48)|(16+64);
|
sprite[i].cstat = (sprite[i].cstat&~48)|(16+64);
|
||||||
if (hitinfo.hitwall >= 0)
|
if (hitinfo.hitwall >= 0)
|
||||||
sprite[i].ang = ((getangle(POINT2(hitinfo.hitwall).x-wall[hitinfo.hitwall].x,
|
sprite[i].ang = (getangle(POINT2(hitinfo.hitwall).x-wall[hitinfo.hitwall].x,
|
||||||
POINT2(hitinfo.hitwall).y-wall[hitinfo.hitwall].y)+512)&2047);
|
POINT2(hitinfo.hitwall).y-wall[hitinfo.hitwall].y)+512)&2047;
|
||||||
|
|
||||||
//Make sure sprite's in right sector
|
//Make sure sprite's in right sector
|
||||||
if (inside(sprite[i].x,sprite[i].y,sprite[i].sectnum) == 0)
|
if (inside(sprite[i].x,sprite[i].y,sprite[i].sectnum) == 0)
|
||||||
|
@ -1175,10 +1175,11 @@ void editinput(void)
|
||||||
if (keystatus[buildkeys[BK_MODE2D_3D]]) // Enter
|
if (keystatus[buildkeys[BK_MODE2D_3D]]) // Enter
|
||||||
{
|
{
|
||||||
double gamma = vid_gamma;
|
double gamma = vid_gamma;
|
||||||
keystatus[buildkeys[BK_MODE2D_3D]] = 0;
|
|
||||||
vid_gamma = 1.0;
|
vid_gamma = 1.0;
|
||||||
setbrightness(0,palette,0);
|
setbrightness(0,palette,0);
|
||||||
|
keystatus[buildkeys[BK_MODE2D_3D]] = 0;
|
||||||
overheadeditor();
|
overheadeditor();
|
||||||
|
keystatus[buildkeys[BK_MODE2D_3D]] = 0;
|
||||||
vid_gamma = gamma;
|
vid_gamma = gamma;
|
||||||
setbrightness(brightness,palette,0);
|
setbrightness(brightness,palette,0);
|
||||||
}
|
}
|
||||||
|
@ -1283,8 +1284,8 @@ void overheadeditor(void)
|
||||||
oposz = pos.z;
|
oposz = pos.z;
|
||||||
|
|
||||||
begindrawing(); //{{{
|
begindrawing(); //{{{
|
||||||
clearbuf((char *)(frameplace + (ydim16*bytesperline)), (bytesperline*STATUS2DSIZ2) >> 2, 0x00000000l);
|
|
||||||
clearbuf((char *)frameplace, (ydim16*bytesperline) >> 2, 0L);
|
CLEARLINES2D(0, ydim, 0);
|
||||||
|
|
||||||
ydim16 = ydim;
|
ydim16 = ydim;
|
||||||
// drawline16(0,ydim-STATUS2DSIZ2,xdim-1,ydim-STATUS2DSIZ2,editorcolors[1]);
|
// drawline16(0,ydim-STATUS2DSIZ2,xdim-1,ydim-STATUS2DSIZ2,editorcolors[1]);
|
||||||
|
@ -1696,10 +1697,10 @@ void overheadeditor(void)
|
||||||
{
|
{
|
||||||
int32_t about_x=keystatus[0x2d];
|
int32_t about_x=keystatus[0x2d];
|
||||||
|
|
||||||
keystatus[0x2d] = keystatus[0x15] = 0;
|
|
||||||
|
|
||||||
if (highlightsectorcnt > 0)
|
if (highlightsectorcnt > 0)
|
||||||
{
|
{
|
||||||
|
keystatus[0x2d] = keystatus[0x15] = 0;
|
||||||
|
|
||||||
k = 0;
|
k = 0;
|
||||||
dax = 0;
|
dax = 0;
|
||||||
day = 0;
|
day = 0;
|
||||||
|
@ -3153,7 +3154,7 @@ SKIP:
|
||||||
split = 0;
|
split = 0;
|
||||||
|
|
||||||
//clearbufbyte(&wall[newnumwalls],sizeof(walltype),0L);
|
//clearbufbyte(&wall[newnumwalls],sizeof(walltype),0L);
|
||||||
memset(&wall[newnumwalls],0,sizeof(walltype));
|
Bmemset(&wall[newnumwalls],0,sizeof(walltype));
|
||||||
wall[newnumwalls].extra = -1;
|
wall[newnumwalls].extra = -1;
|
||||||
|
|
||||||
wall[newnumwalls].x = mousxplc;
|
wall[newnumwalls].x = mousxplc;
|
||||||
|
@ -3231,7 +3232,7 @@ SKIP:
|
||||||
if (bad == 0)
|
if (bad == 0)
|
||||||
{
|
{
|
||||||
//clearbufbyte(&wall[newnumwalls],sizeof(walltype),0L);
|
//clearbufbyte(&wall[newnumwalls],sizeof(walltype),0L);
|
||||||
memset(&wall[newnumwalls],0,sizeof(walltype));
|
Bmemset(&wall[newnumwalls],0,sizeof(walltype));
|
||||||
wall[newnumwalls].extra = -1;
|
wall[newnumwalls].extra = -1;
|
||||||
|
|
||||||
wall[newnumwalls].x = mousxplc;
|
wall[newnumwalls].x = mousxplc;
|
||||||
|
@ -3269,7 +3270,7 @@ SKIP:
|
||||||
flipwalls(numwalls,newnumwalls);
|
flipwalls(numwalls,newnumwalls);
|
||||||
|
|
||||||
//clearbufbyte(§or[numsectors],sizeof(sectortype),0L);
|
//clearbufbyte(§or[numsectors],sizeof(sectortype),0L);
|
||||||
memset(§or[numsectors],0,sizeof(sectortype));
|
Bmemset(§or[numsectors],0,sizeof(sectortype));
|
||||||
sector[numsectors].extra = -1;
|
sector[numsectors].extra = -1;
|
||||||
|
|
||||||
sector[numsectors].wallptr = numwalls;
|
sector[numsectors].wallptr = numwalls;
|
||||||
|
@ -3338,7 +3339,7 @@ SKIP:
|
||||||
flipwalls(numwalls,newnumwalls);
|
flipwalls(numwalls,newnumwalls);
|
||||||
|
|
||||||
//clearbufbyte(§or[numsectors],sizeof(sectortype),0L);
|
//clearbufbyte(§or[numsectors],sizeof(sectortype),0L);
|
||||||
memset(§or[numsectors],0,sizeof(sectortype));
|
Bmemset(§or[numsectors],0,sizeof(sectortype));
|
||||||
sector[numsectors].extra = -1;
|
sector[numsectors].extra = -1;
|
||||||
|
|
||||||
sector[numsectors].wallptr = numwalls;
|
sector[numsectors].wallptr = numwalls;
|
||||||
|
@ -4973,18 +4974,18 @@ int32_t overridepm16y = -1;
|
||||||
|
|
||||||
void clearmidstatbar16(void)
|
void clearmidstatbar16(void)
|
||||||
{
|
{
|
||||||
int32_t x = overridepm16y<0 ? STATUS2DSIZ : overridepm16y;
|
int32_t y = overridepm16y<0 ? STATUS2DSIZ : overridepm16y;
|
||||||
|
|
||||||
begindrawing();
|
begindrawing();
|
||||||
ydim16 = ydim;
|
// ydim16 = ydim;
|
||||||
|
|
||||||
// clearbuf((char *)(frameplace + (bytesperline*(ydim-STATUS2DSIZ+25L))),(bytesperline*(STATUS2DSIZ-1-(25<<1))) >> 2, 0x08080808l);
|
// clearbuf((char *)(frameplace + (bytesperline*(ydim-STATUS2DSIZ+25L))),(bytesperline*(STATUS2DSIZ-1-(25<<1))) >> 2, 0x08080808l);
|
||||||
clearbuf((char *)(frameplace + (bytesperline*(ydim-x+25L))), (bytesperline*(STATUS2DSIZ+2-(25<<1))) >> 2, 0x00000000l);
|
|
||||||
|
|
||||||
/*
|
CLEARLINES2D(ydim-y+25, STATUS2DSIZ+2-(25<<1), 0);
|
||||||
drawline16(0,ydim-STATUS2DSIZ,0,ydim-1,editorcolors[7]);
|
|
||||||
drawline16base(xdim,ydim, -1,-STATUS2DSIZ, -1,-1, editorcolors[7]);
|
// drawline16(0,ydim-STATUS2DSIZ,0,ydim-1,editorcolors[7]);
|
||||||
*/
|
// drawline16base(xdim,ydim, -1,-STATUS2DSIZ, -1,-1, editorcolors[7]);
|
||||||
|
|
||||||
ydim16 = ydim-STATUS2DSIZ2;
|
ydim16 = ydim-STATUS2DSIZ2;
|
||||||
enddrawing();
|
enddrawing();
|
||||||
}
|
}
|
||||||
|
@ -4992,22 +4993,23 @@ void clearmidstatbar16(void)
|
||||||
static void clearministatbar16(void)
|
static void clearministatbar16(void)
|
||||||
{
|
{
|
||||||
int32_t i, col = whitecol - 21;
|
int32_t i, col = whitecol - 21;
|
||||||
char tempbuf[32];
|
static const char *tempbuf = "Mapster32" VERSION;
|
||||||
|
|
||||||
begindrawing();
|
begindrawing();
|
||||||
|
|
||||||
for (i=ydim-STATUS2DSIZ2; i<ydim; i++)
|
for (i=ydim-STATUS2DSIZ2; i<ydim; i++)
|
||||||
{
|
{
|
||||||
// drawline256(0, i<<12, xdim<<12, i<<12, col);
|
// drawline256(0, i<<12, xdim<<12, i<<12, col);
|
||||||
clearbufbyte((char *)(frameplace + (i*bytesperline)), (bytesperline), ((int32_t)col<<24)|((int32_t)col<<16)|((int32_t)col<<8)|col);
|
CLEARLINES2D(i, 1, (col<<24)|(col<<16)|(col<<8)|col);
|
||||||
|
|
||||||
col--;
|
col--;
|
||||||
if (col <= 0) break;
|
if (col <= 0) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
clearbufbyte((char *)(frameplace + (i*bytesperline)), (ydim-i)*(bytesperline), 0);
|
CLEARLINES2D(i, ydim-i, 0);
|
||||||
|
|
||||||
Bsprintf(tempbuf, "Mapster32" VERSION);
|
printext16(xdim2d-(Bstrlen(tempbuf)<<3)-3, ydim2d-STATUS2DSIZ2+10, editorcolors[4],-1, tempbuf, 0);
|
||||||
printext16(xdim2d-(Bstrlen(tempbuf)<<3)-3,ydim2d-STATUS2DSIZ2+10L, editorcolors[4],-1,tempbuf,0);
|
printext16(xdim2d-(Bstrlen(tempbuf)<<3)-2, ydim2d-STATUS2DSIZ2+9, editorcolors[12],-1, tempbuf, 0);
|
||||||
printext16(xdim2d-(Bstrlen(tempbuf)<<3)-2,ydim2d-STATUS2DSIZ2+9L, editorcolors[12],-1,tempbuf,0);
|
|
||||||
|
|
||||||
enddrawing();
|
enddrawing();
|
||||||
}
|
}
|
||||||
|
@ -5317,7 +5319,8 @@ static int32_t menuselect(void)
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
begindrawing();
|
begindrawing();
|
||||||
clearbuf((char *)frameplace, (bytesperline*ydim16) >> 2, 0l);
|
|
||||||
|
CLEARLINES2D(0, ydim16, 0);
|
||||||
|
|
||||||
if (pathsearchmode)
|
if (pathsearchmode)
|
||||||
Bstrcpy(buffer,"Local filesystem mode; press F for game filesystem.");
|
Bstrcpy(buffer,"Local filesystem mode; press F for game filesystem.");
|
||||||
|
@ -5343,7 +5346,7 @@ static int32_t menuselect(void)
|
||||||
for (i=0; ((i<listsize) && dir); i++, dir=dir->next)
|
for (i=0; ((i<listsize) && dir); i++, dir=dir->next)
|
||||||
{
|
{
|
||||||
int32_t c = (dir->type == CACHE1D_FIND_DIR ? 2 : 3); //PK
|
int32_t c = (dir->type == CACHE1D_FIND_DIR ? 2 : 3); //PK
|
||||||
memset(buffer,0,sizeof(buffer));
|
Bmemset(buffer,0,sizeof(buffer));
|
||||||
Bstrncpy(buffer,dir->name,25);
|
Bstrncpy(buffer,dir->name,25);
|
||||||
if (Bstrlen(buffer) == 25)
|
if (Bstrlen(buffer) == 25)
|
||||||
buffer[21] = buffer[22] = buffer[23] = '.', buffer[24] = 0;
|
buffer[21] = buffer[22] = buffer[23] = '.', buffer[24] = 0;
|
||||||
|
@ -5539,7 +5542,7 @@ static int32_t menuselect(void)
|
||||||
ch = 0;
|
ch = 0;
|
||||||
|
|
||||||
begindrawing();
|
begindrawing();
|
||||||
clearbuf((char *)frameplace, (bytesperline*ydim16) >> 2, 0l);
|
CLEARLINES2D(0, ydim16, 0);
|
||||||
enddrawing();
|
enddrawing();
|
||||||
showframe(1);
|
showframe(1);
|
||||||
}
|
}
|
||||||
|
@ -5703,7 +5706,7 @@ int32_t loadnames(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
//clearbufbyte(names, sizeof(names), 0);
|
//clearbufbyte(names, sizeof(names), 0);
|
||||||
memset(names,0,sizeof(names));
|
Bmemset(names,0,sizeof(names));
|
||||||
|
|
||||||
initprintf("Loading NAMES.H\n");
|
initprintf("Loading NAMES.H\n");
|
||||||
|
|
||||||
|
@ -5830,9 +5833,9 @@ void printcoords16(int32_t posxe, int32_t posye, int16_t ange)
|
||||||
m = (numsectors > MAXSECTORSV7 || numwalls > MAXWALLSV7 || numsprites > MAXSPRITESV7);
|
m = (numsectors > MAXSECTORSV7 || numwalls > MAXWALLSV7 || numsprites > MAXSPRITESV7);
|
||||||
|
|
||||||
Bsprintf(snotbuf,"%d/%d sect. %d/%d walls %d/%d spri.",
|
Bsprintf(snotbuf,"%d/%d sect. %d/%d walls %d/%d spri.",
|
||||||
numsectors,m?MAXSECTORSV8:MAXSECTORSV7,
|
numsectors, m?MAXSECTORSV8:MAXSECTORSV7,
|
||||||
numwalls,m?MAXWALLSV8:MAXWALLSV7,
|
numwalls, m?MAXWALLSV8:MAXWALLSV7,
|
||||||
numsprites,m?MAXSPRITESV8:MAXSPRITESV7);
|
numsprites, m?MAXSPRITESV8:MAXSPRITESV7);
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
while ((snotbuf[i] != 0) && (i < 46))
|
while ((snotbuf[i] != 0) && (i < 46))
|
||||||
|
@ -5910,156 +5913,122 @@ void copysector(int16_t soursector, int16_t destsector, int16_t deststartwall, c
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define DOPRINT(Yofs, fmt, ...) \
|
||||||
|
Bsprintf(snotbuf, fmt, ## __VA_ARGS__); \
|
||||||
|
printext16(8+col*200, ydim/*-(row*96)*/-STATUS2DSIZ+Yofs, color, -1, snotbuf, 0);
|
||||||
|
|
||||||
void showsectordata(int16_t sectnum)
|
void showsectordata(int16_t sectnum)
|
||||||
{
|
{
|
||||||
|
sectortype *sec;
|
||||||
char snotbuf[80];
|
char snotbuf[80];
|
||||||
int32_t col = 1, row = 0;
|
int32_t col=0; //,row = 0;
|
||||||
int32_t mode = (sectnum & 16384);
|
int32_t mode = (sectnum & 16384);
|
||||||
int32_t color = mode?whitecol:editorcolors[11];
|
int32_t color = mode?whitecol:editorcolors[11];
|
||||||
|
|
||||||
sectnum &= ~16384;
|
sectnum &= ~16384;
|
||||||
|
sec = §or[sectnum];
|
||||||
|
|
||||||
if (mode)
|
if (mode)
|
||||||
{
|
{
|
||||||
_printmessage16("^10Sector %d %s ^O(F7 to edit)",sectnum, ExtGetSectorCaption(sectnum));
|
_printmessage16("^10Sector %d %s ^O(F7 to edit)", sectnum, ExtGetSectorCaption(sectnum));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Bsprintf(snotbuf,"^10Sector %d",sectnum);
|
DOPRINT(32, "^10Sector %d", sectnum);
|
||||||
printext16(8,ydim-(row*96)-STATUS2DSIZ+32,color,-1,snotbuf,0);
|
DOPRINT(48, "Firstwall: %d", sec->wallptr);
|
||||||
Bsprintf(snotbuf,"Firstwall: %d",sector[sectnum].wallptr);
|
DOPRINT(56, "Numberofwalls: %d", sec->wallnum);
|
||||||
printext16(8,ydim-(row*96)-STATUS2DSIZ+48,color,-1,snotbuf,0);
|
DOPRINT(64, "Firstsprite: %d", headspritesect[sectnum]);
|
||||||
Bsprintf(snotbuf,"Numberofwalls: %d",sector[sectnum].wallnum);
|
DOPRINT(72, "Tags: %d, %d", sec->hitag, sec->lotag);
|
||||||
printext16(8,ydim-(row*96)-STATUS2DSIZ+56,color,-1,snotbuf,0);
|
DOPRINT(80, " (0x%x), (0x%x)", sec->hitag, sec->lotag);
|
||||||
Bsprintf(snotbuf,"Firstsprite: %d",headspritesect[sectnum]);
|
DOPRINT(88, "Extra: %d", sec->extra);
|
||||||
printext16(8,ydim-(row*96)-STATUS2DSIZ+64,color,-1,snotbuf,0);
|
DOPRINT(96, "Visibility: %d", sec->visibility);
|
||||||
Bsprintf(snotbuf,"Tags: %d, %d",sector[sectnum].hitag,sector[sectnum].lotag);
|
DOPRINT(104, "Pixel height: %d", (sec->floorz-sec->ceilingz)>>8);
|
||||||
printext16(8,ydim-(row*96)-STATUS2DSIZ+72,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf," (0x%x), (0x%x)",sector[sectnum].hitag,sector[sectnum].lotag);
|
|
||||||
printext16(8,ydim-(row*96)-STATUS2DSIZ+80,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Extra: %d",sector[sectnum].extra);
|
|
||||||
printext16(8,ydim-(row*96)-STATUS2DSIZ+88,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Visibility: %d",sector[sectnum].visibility);
|
|
||||||
printext16(8,ydim-(row*96)-STATUS2DSIZ+96,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Pixel height: %d",(sector[sectnum].floorz-sector[sectnum].ceilingz)>>8);
|
|
||||||
printext16(8,ydim-(row*96)-STATUS2DSIZ+104,color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
col++;
|
col++;
|
||||||
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*96)-STATUS2DSIZ+32,color,-1,"^10CEILING:^O",0);
|
DOPRINT(32, "^10CEILING:^O");
|
||||||
Bsprintf(snotbuf,"Flags (hex): %x",sector[sectnum].ceilingstat);
|
DOPRINT(48, "Flags (hex): %x", sec->ceilingstat);
|
||||||
printext16(8+((col-1)*200),ydim-(row*96)-STATUS2DSIZ+48,color,-1,snotbuf,0);
|
DOPRINT(56, "(X, Y)pan: %d, %d", sec->ceilingxpanning, sec->ceilingypanning);
|
||||||
Bsprintf(snotbuf,"(X,Y)pan: %d, %d",sector[sectnum].ceilingxpanning,sector[sectnum].ceilingypanning);
|
DOPRINT(64, "Shade byte: %d", sec->ceilingshade);
|
||||||
printext16(8+((col-1)*200),ydim-(row*96)-STATUS2DSIZ+56,color,-1,snotbuf,0);
|
DOPRINT(72, "Z-coordinate: %d", sec->ceilingz);
|
||||||
Bsprintf(snotbuf,"Shade byte: %d",sector[sectnum].ceilingshade);
|
DOPRINT(80, "Tile number: %d", sec->ceilingpicnum);
|
||||||
printext16(8+((col-1)*200),ydim-(row*96)-STATUS2DSIZ+64,color,-1,snotbuf,0);
|
DOPRINT(88, "Ceiling heinum: %d", sec->ceilingheinum);
|
||||||
Bsprintf(snotbuf,"Z-coordinate: %d",sector[sectnum].ceilingz);
|
DOPRINT(96, "Palookup number: %d", sec->ceilingpal);
|
||||||
printext16(8+((col-1)*200),ydim-(row*96)-STATUS2DSIZ+72,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Tile number: %d",sector[sectnum].ceilingpicnum);
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*96)-STATUS2DSIZ+80,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Ceiling heinum: %d",sector[sectnum].ceilingheinum);
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*96)-STATUS2DSIZ+88,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Palookup number: %d",sector[sectnum].ceilingpal);
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*96)-STATUS2DSIZ+96,color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
col++;
|
col++;
|
||||||
|
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+32,color,-1,"^10FLOOR:^O",0);
|
DOPRINT(32, "^10FLOOR:^O");
|
||||||
Bsprintf(snotbuf,"Flags (hex): %x",sector[sectnum].floorstat);
|
DOPRINT(48, "Flags (hex): %x", sec->floorstat);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+48,color,-1,snotbuf,0);
|
DOPRINT(56, "(X, Y)pan: %d, %d", sec->floorxpanning, sec->floorypanning);
|
||||||
Bsprintf(snotbuf,"(X,Y)pan: %d, %d",sector[sectnum].floorxpanning,sector[sectnum].floorypanning);
|
DOPRINT(64, "Shade byte: %d", sec->floorshade);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+56,color,-1,snotbuf,0);
|
DOPRINT(72, "Z-coordinate: %d", sec->floorz);
|
||||||
Bsprintf(snotbuf,"Shade byte: %d",sector[sectnum].floorshade);
|
DOPRINT(80, "Tile number: %d", sec->floorpicnum);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+64,color,-1,snotbuf,0);
|
DOPRINT(88, "Floor heinum: %d", sec->floorheinum);
|
||||||
Bsprintf(snotbuf,"Z-coordinate: %d",sector[sectnum].floorz);
|
DOPRINT(96, "Palookup number: %d", sec->floorpal);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+72,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Tile number: %d",sector[sectnum].floorpicnum);
|
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+80,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Floor heinum: %d",sector[sectnum].floorheinum);
|
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+88,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Palookup number: %d",sector[sectnum].floorpal);
|
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+96,color,-1,snotbuf,0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void showwalldata(int16_t wallnum)
|
void showwalldata(int16_t wallnum)
|
||||||
{
|
{
|
||||||
int32_t dax;
|
walltype *wal;
|
||||||
|
int32_t sec;
|
||||||
char snotbuf[80];
|
char snotbuf[80];
|
||||||
int32_t col = 1, row = 0;
|
int32_t col=0; //, row = 0;
|
||||||
int32_t mode = (wallnum & 16384);
|
int32_t mode = (wallnum & 16384);
|
||||||
int32_t color = mode?whitecol:editorcolors[11];
|
int32_t color = mode?whitecol:editorcolors[11];
|
||||||
|
|
||||||
wallnum &= ~16384;
|
wallnum &= ~16384;
|
||||||
|
wal = &wall[wallnum];
|
||||||
|
|
||||||
if (mode)
|
if (mode)
|
||||||
{
|
{
|
||||||
_printmessage16("^10Wall %d %s ^O(F8 to edit)",wallnum, ExtGetWallCaption(wallnum));
|
_printmessage16("^10Wall %d %s ^O(F8 to edit)", wallnum, ExtGetWallCaption(wallnum));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Bsprintf(snotbuf,"^10Wall %d",wallnum);
|
DOPRINT(32, "^10Wall %d", wallnum);
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+32,color,-1,snotbuf,0);
|
DOPRINT(48, "X-coordinate: %d", wal->x);
|
||||||
Bsprintf(snotbuf,"X-coordinate: %d",wall[wallnum].x);
|
DOPRINT(56, "Y-coordinate: %d", wal->y);
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+48,color,-1,snotbuf,0);
|
DOPRINT(64, "Point2: %d", wal->point2);
|
||||||
Bsprintf(snotbuf,"Y-coordinate: %d",wall[wallnum].y);
|
DOPRINT(72, "Sector: ^010%d", sectorofwall(wallnum));
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+56,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Point2: %d",wall[wallnum].point2);
|
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+64,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Sector: ^010%d",sectorofwall(wallnum));
|
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+72,color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
Bsprintf(snotbuf,"Tags: %d, %d",wall[wallnum].hitag,wall[wallnum].lotag);
|
DOPRINT(88, "Tags: %d, %d", wal->hitag, wal->lotag);
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+88,color,-1,snotbuf,0);
|
DOPRINT(96, " (0x%x), (0x%x)", wal->hitag, wal->lotag);
|
||||||
Bsprintf(snotbuf," (0x%x), (0x%x)",wall[wallnum].hitag,wall[wallnum].lotag);
|
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+96,color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
col++;
|
col++;
|
||||||
|
|
||||||
Bsprintf(snotbuf,"^10%s^O",names[wall[wallnum].picnum]);
|
DOPRINT(32, "^10%s^O", (wal->picnum>=0 && wal->picnum<MAXTILES) ? names[wal->picnum] : "!INVALID!");
|
||||||
printext16(8+((col-1)*200),ydim-(row*80)-STATUS2DSIZ+32,color,-1,snotbuf,0);
|
DOPRINT(48, "Flags (hex): %x", wal->cstat);
|
||||||
Bsprintf(snotbuf,"Flags (hex): %x",wall[wallnum].cstat);
|
DOPRINT(56, "Shade: %d", wal->shade);
|
||||||
printext16(8+((col-1)*200),ydim-(row*80)-STATUS2DSIZ+48,color,-1,snotbuf,0);
|
DOPRINT(64, "Pal: %d", wal->pal);
|
||||||
Bsprintf(snotbuf,"Shade: %d",wall[wallnum].shade);
|
DOPRINT(72, "(X, Y)repeat: %d, %d", wal->xrepeat, wal->yrepeat);
|
||||||
printext16(8+((col-1)*200),ydim-(row*80)-STATUS2DSIZ+56,color,-1,snotbuf,0);
|
DOPRINT(80, "(X, Y)pan: %d, %d", wal->xpanning, wal->ypanning);
|
||||||
Bsprintf(snotbuf,"Pal: %d",wall[wallnum].pal);
|
DOPRINT(88, "Tile number: %d", wal->picnum);
|
||||||
printext16(8+((col-1)*200),ydim-(row*80)-STATUS2DSIZ+64,color,-1,snotbuf,0);
|
DOPRINT(96, "OverTile number: %d", wal->overpicnum);
|
||||||
Bsprintf(snotbuf,"(X,Y)repeat: %d, %d",wall[wallnum].xrepeat,wall[wallnum].yrepeat);
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*80)-STATUS2DSIZ+72,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"(X,Y)pan: %d, %d",wall[wallnum].xpanning,wall[wallnum].ypanning);
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*80)-STATUS2DSIZ+80,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Tile number: %d",wall[wallnum].picnum);
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*80)-STATUS2DSIZ+88,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"OverTile number: %d",wall[wallnum].overpicnum);
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*80)-STATUS2DSIZ+96,color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
col++;
|
col++;
|
||||||
|
|
||||||
Bsprintf(snotbuf,"nextsector: %d",wall[wallnum].nextsector);
|
DOPRINT(48-(mode?16:0), "nextsector: %d", wal->nextsector);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+48-(mode?16:0),color,-1,snotbuf,0);
|
DOPRINT(56-(mode?16:0), "nextwall: %d", wal->nextwall);
|
||||||
Bsprintf(snotbuf,"nextwall: %d",wall[wallnum].nextwall);
|
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+56-(mode?16:0),color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
Bsprintf(snotbuf,"Extra: %d",wall[wallnum].extra);
|
DOPRINT(72-(mode?16:0), "Extra: %d", wal->extra);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+72-(mode?16:0),color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
// TX 20050102 I'm not sure what unit dist<<4 is supposed to be, but dist itself is correct in terms of game coordinates as one would expect
|
// TX 20050102 I'm not sure what unit dist<<4 is supposed to be, but dist itself is correct in terms of game coordinates as one would expect
|
||||||
|
DOPRINT(96-(mode?16:0), "Wall length: %d", wallength(wallnum));
|
||||||
|
|
||||||
Bsprintf(snotbuf, "Wall length: %d", wallength(wallnum));
|
sec = sectorofwall(wallnum);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+96-(mode?16:0),color,-1,snotbuf,0);
|
DOPRINT(104-(mode?16:0), "Pixel height: %d", (sector[sec].floorz-sector[sec].ceilingz)>>8);
|
||||||
|
|
||||||
dax = (int32_t)sectorofwall(wallnum);
|
|
||||||
Bsprintf(snotbuf,"Pixel height: %d",(sector[dax].floorz-sector[dax].ceilingz)>>8);
|
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+104-(mode?16:0),color,-1,snotbuf,0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void showspritedata(int16_t spritenum)
|
void showspritedata(int16_t spritenum)
|
||||||
{
|
{
|
||||||
|
spritetype *spr;
|
||||||
char snotbuf[80];
|
char snotbuf[80];
|
||||||
int32_t col = 1, row = 0;
|
int32_t col=0; //, row = 0;
|
||||||
int32_t mode = (spritenum & 16384);
|
int32_t mode = (spritenum & 16384);
|
||||||
int32_t color = mode?whitecol:editorcolors[11];
|
int32_t color = mode?whitecol:editorcolors[11];
|
||||||
|
|
||||||
spritenum &= ~16384;
|
spritenum &= ~16384;
|
||||||
|
spr = &sprite[spritenum];
|
||||||
|
|
||||||
if (mode)
|
if (mode)
|
||||||
{
|
{
|
||||||
|
@ -6067,69 +6036,43 @@ void showspritedata(int16_t spritenum)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Bsprintf(snotbuf,"^10Sprite %d",spritenum);
|
DOPRINT(32, "^10Sprite %d", spritenum);
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+32,color,-1,snotbuf,0);
|
DOPRINT(48, "X-coordinate: %d", spr->x);
|
||||||
Bsprintf(snotbuf,"X-coordinate: %d",sprite[spritenum].x);
|
DOPRINT(56, "Y-coordinate: %d", spr->y);
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+48,color,-1,snotbuf,0);
|
DOPRINT(64, "Z-coordinate: %d", spr->z);
|
||||||
Bsprintf(snotbuf,"Y-coordinate: %d",sprite[spritenum].y);
|
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+56,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Z-coordinate: %d",sprite[spritenum].z);
|
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+64,color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
Bsprintf(snotbuf,"Sectnum: ^010%d",sprite[spritenum].sectnum);
|
DOPRINT(72, "Sectnum: ^010%d", spr->sectnum);
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+72,color,-1,snotbuf,0);
|
DOPRINT(80, "Statnum: %d", spr->statnum);
|
||||||
Bsprintf(snotbuf,"Statnum: %d",sprite[spritenum].statnum);
|
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+80,color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
Bsprintf(snotbuf,"Tags: %d, %d",sprite[spritenum].hitag,sprite[spritenum].lotag);
|
DOPRINT(96, "Tags: %d, %d", spr->hitag, spr->lotag);
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+96,color,-1,snotbuf,0);
|
DOPRINT(104, " (0x%x), (0x%x)", spr->hitag, spr->lotag);
|
||||||
Bsprintf(snotbuf," (0x%x), (0x%x)",sprite[spritenum].hitag,sprite[spritenum].lotag);
|
|
||||||
printext16(8,ydim-(row*80)-STATUS2DSIZ+104,color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
col++;
|
col++;
|
||||||
|
|
||||||
Bsprintf(snotbuf,"^10%s^O",names[sprite[spritenum].picnum]);
|
DOPRINT(32, "^10%s^O", (spr->picnum>=0 && spr->picnum<MAXTILES) ? names[spr->picnum] : "!INVALID!");
|
||||||
printext16(8+((col-1)*200),ydim-(row*72)-STATUS2DSIZ+32,color,-1,snotbuf,0);
|
DOPRINT(48, "Flags (hex): %x", spr->cstat);
|
||||||
Bsprintf(snotbuf,"Flags (hex): %x",sprite[spritenum].cstat);
|
DOPRINT(56, "Shade: %d", spr->shade);
|
||||||
printext16(8+((col-1)*200),ydim-(row*72)-STATUS2DSIZ+48,color,-1,snotbuf,0);
|
DOPRINT(64, "Pal: %d", spr->pal);
|
||||||
Bsprintf(snotbuf,"Shade: %d",sprite[spritenum].shade);
|
DOPRINT(72, "(X, Y)repeat: %d, %d", spr->xrepeat, spr->yrepeat);
|
||||||
printext16(8+((col-1)*200),ydim-(row*72)-STATUS2DSIZ+56,color,-1,snotbuf,0);
|
DOPRINT(80, "(X, Y)offset: %d, %d", spr->xoffset, spr->yoffset);
|
||||||
Bsprintf(snotbuf,"Pal: %d",sprite[spritenum].pal);
|
DOPRINT(88, "Tile number: %d", spr->picnum);
|
||||||
printext16(8+((col-1)*200),ydim-(row*72)-STATUS2DSIZ+64,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"(X,Y)repeat: %d, %d",sprite[spritenum].xrepeat,sprite[spritenum].yrepeat);
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*72)-STATUS2DSIZ+72,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"(X,Y)offset: %d, %d",sprite[spritenum].xoffset,sprite[spritenum].yoffset);
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*72)-STATUS2DSIZ+80,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Tile number: %d",sprite[spritenum].picnum);
|
|
||||||
printext16(8+((col-1)*200),ydim-(row*72)-STATUS2DSIZ+88,color,-1,snotbuf,0);
|
|
||||||
|
|
||||||
col++;
|
col++;
|
||||||
|
|
||||||
Bsprintf(snotbuf,"Angle (2048 degrees): %d",sprite[spritenum].ang);
|
DOPRINT(48, "Angle (2048 degrees): %d", spr->ang);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+48,color,-1,snotbuf,0);
|
DOPRINT(56, "X-Velocity: %d", spr->xvel);
|
||||||
Bsprintf(snotbuf,"X-Velocity: %d",sprite[spritenum].xvel);
|
DOPRINT(64, "Y-Velocity: %d", spr->yvel);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+56,color,-1,snotbuf,0);
|
DOPRINT(72, "Z-Velocity: %d", spr->zvel);
|
||||||
Bsprintf(snotbuf,"Y-Velocity: %d",sprite[spritenum].yvel);
|
DOPRINT(80, "Owner: %d", spr->owner);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+64,color,-1,snotbuf,0);
|
DOPRINT(88, "Clipdist: %d", spr->clipdist);
|
||||||
Bsprintf(snotbuf,"Z-Velocity: %d",sprite[spritenum].zvel);
|
DOPRINT(96, "Extra: %d", spr->extra);
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+72,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Owner: %d",sprite[spritenum].owner);
|
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+80,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Clipdist: %d",sprite[spritenum].clipdist);
|
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+88,color,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Extra: %d",sprite[spritenum].extra);
|
|
||||||
printext16(8+((col-1)*200),ydim-STATUS2DSIZ+96,color,-1,snotbuf,0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// gets called once per totalclock increment since last call (at least in sdlayer.c)
|
#undef DOPRINT
|
||||||
|
|
||||||
|
// gets called once per totalclock increment since last call
|
||||||
void keytimerstuff(void)
|
void keytimerstuff(void)
|
||||||
{
|
{
|
||||||
// static int32_t ltotalclock=0;
|
|
||||||
// int32_t fac=1; //(totalclock-ltotalclock);
|
|
||||||
|
|
||||||
// if (fac==0) return;
|
|
||||||
// ltotalclock=totalclock;
|
|
||||||
|
|
||||||
if (DOWN_BK(STRAFE) == 0)
|
if (DOWN_BK(STRAFE) == 0)
|
||||||
{
|
{
|
||||||
if (DOWN_BK(TURNLEFT)) angvel = max(angvel-pk_turnaccel, -128);
|
if (DOWN_BK(TURNLEFT)) angvel = max(angvel-pk_turnaccel, -128);
|
||||||
|
@ -6151,8 +6094,7 @@ void keytimerstuff(void)
|
||||||
if (svel > 0) svel = max(svel-6, 0);
|
if (svel > 0) svel = max(svel-6, 0);
|
||||||
if (vel < 0) vel = min(vel+6, 0);
|
if (vel < 0) vel = min(vel+6, 0);
|
||||||
if (vel > 0) vel = max(vel-6, 0);
|
if (vel > 0) vel = max(vel-6, 0);
|
||||||
/* if(mlook)
|
/* if(mlook) pos.z -= (horiz-101)*(vel/40); */
|
||||||
pos.z -= (horiz-101)*(vel/40); */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t snfillprintf(char *outbuf, size_t bufsiz, int32_t fill, const char *fmt, ...)
|
int32_t snfillprintf(char *outbuf, size_t bufsiz, int32_t fill, const char *fmt, ...)
|
||||||
|
@ -6300,7 +6242,7 @@ static void AlignWalls(int32_t nWall0, int32_t z0, int32_t nWall1, int32_t z1, i
|
||||||
|
|
||||||
z1 = GetWallZPeg(nWall1);
|
z1 = GetWallZPeg(nWall1);
|
||||||
|
|
||||||
for (n=(picsiz[nTile]>>4); ((1<<n)<tilesizy[nTile]); n++);
|
for (n=picsiz[nTile]>>4; (1<<n)<tilesizy[nTile]; n++);
|
||||||
|
|
||||||
wall[nWall1].yrepeat = wall[nWall0].yrepeat;
|
wall[nWall1].yrepeat = wall[nWall0].yrepeat;
|
||||||
wall[nWall1].ypanning = (uint8_t)(wall[nWall0].ypanning+(((z1-z0)*wall[nWall0].yrepeat)>>(n+3)));
|
wall[nWall1].ypanning = (uint8_t)(wall[nWall0].ypanning+(((z1-z0)*wall[nWall0].yrepeat)>>(n+3)));
|
||||||
|
@ -6315,7 +6257,7 @@ void AutoAlignWalls(int32_t nWall0, int32_t ply)
|
||||||
if (ply == 0)
|
if (ply == 0)
|
||||||
{
|
{
|
||||||
//clear visited bits
|
//clear visited bits
|
||||||
memset(visited,0,sizeof(visited));
|
Bmemset(visited,0,sizeof(visited));
|
||||||
visited[nWall0] = 1;
|
visited[nWall0] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1370,8 +1370,8 @@ void OSD_Draw(void)
|
||||||
|
|
||||||
clearbackground(osdcols,osdrowscur+1);
|
clearbackground(osdcols,osdrowscur+1);
|
||||||
|
|
||||||
if (osdver[0])
|
if (osdver[0] && osdrowscur>2)
|
||||||
drawosdstr(osdcols-osdverlen,osdrowscur,osdver,osdverlen,(sintable[(totalclock<<4)&2047]>>11),osdverpal);
|
drawosdstr(osdcols-osdverlen,osdrowscur-2,osdver,osdverlen,(sintable[(totalclock<<4)&2047]>>11),osdverpal);
|
||||||
|
|
||||||
for (; lines>0; lines--, row--)
|
for (; lines>0; lines--, row--)
|
||||||
{
|
{
|
||||||
|
|
Binary file not shown.
|
@ -205,9 +205,8 @@ static void drawgradient()
|
||||||
int32_t i, col = whitecol-21;
|
int32_t i, col = whitecol-21;
|
||||||
begindrawing();
|
begindrawing();
|
||||||
for (i=ydim-STATUS2DSIZ+16; i<ydim && col>0; i++,col--)
|
for (i=ydim-STATUS2DSIZ+16; i<ydim && col>0; i++,col--)
|
||||||
clearbufbyte((char *)(frameplace + i*bytesperline), bytesperline,
|
CLEARLINES2D(i, 1, (col<<24)|(col<<16)|(col<<8)|col);
|
||||||
(col<<24)|(col<<16)|(col<<8)|col);
|
CLEARLINES2D(i, ydim-i, 0);
|
||||||
clearbufbyte((char *)(frameplace + i*bytesperline), (ydim-i)*bytesperline, 0);
|
|
||||||
enddrawing();
|
enddrawing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1022,8 +1021,8 @@ void ExtShowSectorData(int16_t sectnum) //F5
|
||||||
printmessage16("Level %s",levelname);
|
printmessage16("Level %s",levelname);
|
||||||
|
|
||||||
#define PRSTAT(Str, Tiledef) \
|
#define PRSTAT(Str, Tiledef) \
|
||||||
PrintStatus(Str, numsprite[Tiledef], x, y+yi, 11); \
|
PrintStatus(Str, numsprite[Tiledef], x, y+yi, numsprite[Tiledef]?11:7); \
|
||||||
PrintStatus("",multisprite[Tiledef], x2,y+yi, 9); \
|
PrintStatus("",multisprite[Tiledef], x2,y+yi, multisprite[Tiledef]?9:7); \
|
||||||
yi++;
|
yi++;
|
||||||
|
|
||||||
ydim -= 8; // vvvvvv reset at end!!
|
ydim -= 8; // vvvvvv reset at end!!
|
||||||
|
@ -1162,7 +1161,7 @@ void ExtShowWallData(int16_t wallnum) //F6
|
||||||
clearmidstatbar16();
|
clearmidstatbar16();
|
||||||
drawgradient();
|
drawgradient();
|
||||||
|
|
||||||
printmessage16("Level %s next tag %d",levelname,nextfreetag);
|
printmessage16("Level %s next tag %d", levelname, nextfreetag);
|
||||||
|
|
||||||
|
|
||||||
#define CASES_LIZTROOP \
|
#define CASES_LIZTROOP \
|
||||||
|
@ -1254,9 +1253,9 @@ void ExtShowWallData(int16_t wallnum) //F6
|
||||||
|
|
||||||
x=2+runi*34;
|
x=2+runi*34;
|
||||||
y=4;
|
y=4;
|
||||||
PrintStatus(runi==0?"Normal Actors =":"Respawn", total,x,y,11);
|
PrintStatus(runi==0?"Normal actors:":"Respawn actors:", total, x, y, 11);
|
||||||
|
|
||||||
#define PRSTAT(Str, Tiledef) PrintStatus(Str, numsprite[Tiledef], x, y+(yi++), 11);
|
#define PRSTAT(Str, Tiledef) PrintStatus(Str, numsprite[Tiledef], x, y+(yi++), numsprite[Tiledef]?11:7);
|
||||||
yi=1;
|
yi=1;
|
||||||
|
|
||||||
PRSTAT(" Liztroop =", LIZTROOP);
|
PRSTAT(" Liztroop =", LIZTROOP);
|
||||||
|
@ -1273,7 +1272,7 @@ void ExtShowWallData(int16_t wallnum) //F6
|
||||||
yi=1;
|
yi=1;
|
||||||
PRSTAT("Slimer =", GREENSLIME);
|
PRSTAT("Slimer =", GREENSLIME);
|
||||||
PRSTAT("Boss1 =", BOSS1);
|
PRSTAT("Boss1 =", BOSS1);
|
||||||
PrintStatus("MiniBoss1 =",multisprite[BOSS1], x, y+(yi++), 11);
|
PrintStatus("MiniBoss1 =", multisprite[BOSS1], x, y+(yi++), multisprite[BOSS1]?11:7);
|
||||||
PRSTAT("Boss2 =", BOSS2);
|
PRSTAT("Boss2 =", BOSS2);
|
||||||
PRSTAT("Boss3 =", BOSS3);
|
PRSTAT("Boss3 =", BOSS3);
|
||||||
PRSTAT("Riot Tank =", TANK);
|
PRSTAT("Riot Tank =", TANK);
|
||||||
|
@ -1478,7 +1477,7 @@ HELPFILE_ERROR:
|
||||||
// why can't MSVC allocate an array of variable size?!
|
// why can't MSVC allocate an array of variable size?!
|
||||||
#define IHELP_NUMDISPLINES 110 // ((overridepm16y>>4)+(overridepm16y>>5)+(overridepm16y>>7)-2)
|
#define IHELP_NUMDISPLINES 110 // ((overridepm16y>>4)+(overridepm16y>>5)+(overridepm16y>>7)-2)
|
||||||
#define IHELP_PATLEN 45
|
#define IHELP_PATLEN 45
|
||||||
extern int32_t overridepm16y; // influences printmessage16() and clearmidstatbar16()
|
extern int32_t overridepm16y; // influences clearmidstatbar16()
|
||||||
|
|
||||||
static void IntegratedHelp()
|
static void IntegratedHelp()
|
||||||
{
|
{
|
||||||
|
@ -1493,18 +1492,15 @@ static void IntegratedHelp()
|
||||||
char disptext[IHELP_NUMDISPLINES][80];
|
char disptext[IHELP_NUMDISPLINES][80];
|
||||||
char oldpattern[IHELP_PATLEN+1];
|
char oldpattern[IHELP_PATLEN+1];
|
||||||
|
|
||||||
drawgradient();
|
Bmemset(oldpattern, 0, sizeof(char));
|
||||||
|
|
||||||
begindrawing();
|
|
||||||
printext16(9, ydim2d-overridepm16y+9, editorcolors[4], -1, "Help Mode", 0);
|
|
||||||
printext16(8, ydim2d-overridepm16y+8, editorcolors[12], -1, "Help Mode", 0);
|
|
||||||
enddrawing();
|
|
||||||
|
|
||||||
memset(oldpattern, 0, sizeof(char));
|
|
||||||
// clearmidstatbar16();
|
// clearmidstatbar16();
|
||||||
|
|
||||||
while (keystatus[KEYSC_ESC]==0 && keystatus[KEYSC_Q]==0 && keystatus[KEYSC_F1]==0)
|
while (keystatus[KEYSC_ESC]==0 && keystatus[KEYSC_Q]==0 && keystatus[KEYSC_F1]==0)
|
||||||
{
|
{
|
||||||
|
begindrawing();
|
||||||
|
CLEARLINES2D(0, ydim, 0);
|
||||||
|
enddrawing();
|
||||||
|
|
||||||
idle_waitevent();
|
idle_waitevent();
|
||||||
if (handleevents())
|
if (handleevents())
|
||||||
quitevent = 0;
|
quitevent = 0;
|
||||||
|
@ -1604,10 +1600,9 @@ static void IntegratedHelp()
|
||||||
showframe(1);
|
showframe(1);
|
||||||
|
|
||||||
idle_waitevent();
|
idle_waitevent();
|
||||||
|
|
||||||
if (handleevents())
|
if (handleevents())
|
||||||
{
|
quitevent = 0;
|
||||||
if (quitevent) quitevent = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ch = bgetchar();
|
ch = bgetchar();
|
||||||
|
|
||||||
|
@ -1673,11 +1668,12 @@ ENDFOR1:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
drawgradient();
|
// drawgradient();
|
||||||
|
|
||||||
begindrawing();
|
begindrawing();
|
||||||
printext16(9, ydim2d-overridepm16y+9, editorcolors[4], -1, "Help Mode", 0);
|
printext16(9, ydim2d-overridepm16y+9, editorcolors[4], -1, "Help Mode", 0);
|
||||||
printext16(8, ydim2d-overridepm16y+8, editorcolors[12], -1, "Help Mode", 0);
|
printext16(8, ydim2d-overridepm16y+8, editorcolors[12], -1, "Help Mode", 0);
|
||||||
|
printext16(8 + 9*8 + 2*8, ydim2d-overridepm16y+8, editorcolors[15], -1, "(S:search)", 0);
|
||||||
enddrawing();
|
enddrawing();
|
||||||
|
|
||||||
if (curhp < helppage[0]->numlines)
|
if (curhp < helppage[0]->numlines)
|
||||||
|
@ -1688,12 +1684,14 @@ ENDFOR1:
|
||||||
for (i=0; j=(curhp==0)?(i+curline+1):(i+curline),
|
for (i=0; j=(curhp==0)?(i+curline+1):(i+curline),
|
||||||
i<IHELP_NUMDISPLINES && j<helppage[curhp]->numlines; i++)
|
i<IHELP_NUMDISPLINES && j<helppage[curhp]->numlines; i++)
|
||||||
{
|
{
|
||||||
if (ydim-overridepm16y+28+i*9+32 >= ydim) break;
|
if (ydim-overridepm16y+28+i*9+32 >= ydim)
|
||||||
|
break;
|
||||||
Bmemcpy(disptext[i], helppage[curhp]->line[j], 80);
|
Bmemcpy(disptext[i], helppage[curhp]->line[j], 80);
|
||||||
printext16(8,ydim-overridepm16y+28+i*9,editorcolors[10],
|
printext16(8, ydim-overridepm16y+28+i*9, editorcolors[10],
|
||||||
(j==highlightline && curhp==highlighthp
|
(j==highlightline && curhp==highlighthp
|
||||||
&& totalclock-lasthighlighttime<120*5)?editorcolors[1]:-1,
|
&& totalclock-lasthighlighttime<120*5) ?
|
||||||
disptext[i],0);
|
editorcolors[1] : -1,
|
||||||
|
disptext[i], 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
showframe(1);
|
showframe(1);
|
||||||
|
@ -1865,15 +1863,20 @@ static void SoundDisplay()
|
||||||
while (keystatus[KEYSC_ESC]==0 && keystatus[KEYSC_Q]==0 && keystatus[KEYSC_F2]==0
|
while (keystatus[KEYSC_ESC]==0 && keystatus[KEYSC_Q]==0 && keystatus[KEYSC_F2]==0
|
||||||
&& keystatus[buildkeys[BK_MODE2D_3D]]==0) // quickjump to 3d mode
|
&& keystatus[buildkeys[BK_MODE2D_3D]]==0) // quickjump to 3d mode
|
||||||
{
|
{
|
||||||
|
begindrawing();
|
||||||
|
CLEARLINES2D(0, ydim16, 0);
|
||||||
|
enddrawing();
|
||||||
|
|
||||||
idle_waitevent();
|
idle_waitevent();
|
||||||
if (handleevents())
|
if (handleevents())
|
||||||
quitevent = 0;
|
quitevent = 0;
|
||||||
|
|
||||||
drawgradient();
|
// drawgradient();
|
||||||
|
|
||||||
begindrawing();
|
begindrawing();
|
||||||
printext16(9, ydim2d-overridepm16y+9, editorcolors[4], -1, "Sound Index", 0);
|
printext16(9, ydim2d-overridepm16y+9, editorcolors[4], -1, "Sound Index", 0);
|
||||||
printext16(8, ydim2d-overridepm16y+8, editorcolors[12], -1, "Sound Index", 0);
|
printext16(8, ydim2d-overridepm16y+8, editorcolors[12], -1, "Sound Index", 0);
|
||||||
|
printext16(8 + 11*8 + 2*8, ydim2d-overridepm16y+8, editorcolors[15], -1, "(SPACE:play, S:sort)", 0);
|
||||||
enddrawing();
|
enddrawing();
|
||||||
|
|
||||||
if (PRESSED_KEYSC(G)) // goto specified sound#
|
if (PRESSED_KEYSC(G)) // goto specified sound#
|
||||||
|
@ -1956,14 +1959,12 @@ static void SoundDisplay()
|
||||||
bflushchars();
|
bflushchars();
|
||||||
while (bad == 0)
|
while (bad == 0)
|
||||||
{
|
{
|
||||||
_printmessage16("Sort by: (S)num (D)ef (F)ile ori(g) or (12345)");
|
_printmessage16("Sort by: (S)oundnum (D)ef (F)ile ori(g) or flags (12345)");
|
||||||
showframe(1);
|
showframe(1);
|
||||||
|
|
||||||
idle_waitevent();
|
idle_waitevent();
|
||||||
if (handleevents())
|
if (handleevents())
|
||||||
{
|
quitevent = 0;
|
||||||
if (quitevent) quitevent = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ch = bgetchar();
|
ch = bgetchar();
|
||||||
|
|
||||||
|
@ -2621,6 +2622,8 @@ static int32_t AskIfSure(char *text)
|
||||||
|
|
||||||
while ((keystatus[KEYSC_ESC]|keystatus[KEYSC_ENTER]|keystatus[KEYSC_SPACE]|keystatus[KEYSC_N]) == 0)
|
while ((keystatus[KEYSC_ESC]|keystatus[KEYSC_ENTER]|keystatus[KEYSC_SPACE]|keystatus[KEYSC_N]) == 0)
|
||||||
{
|
{
|
||||||
|
idle_waitevent();
|
||||||
|
|
||||||
if (handleevents())
|
if (handleevents())
|
||||||
{
|
{
|
||||||
if (quitevent)
|
if (quitevent)
|
||||||
|
@ -2629,7 +2632,6 @@ static int32_t AskIfSure(char *text)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
idle();
|
|
||||||
|
|
||||||
if (PRESSED_KEYSC(Y) || PRESSED_KEYSC(ENTER))
|
if (PRESSED_KEYSC(Y) || PRESSED_KEYSC(ENTER))
|
||||||
{
|
{
|
||||||
|
@ -2638,11 +2640,8 @@ static int32_t AskIfSure(char *text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (PRESSED_KEYSC(ESC))
|
if (PRESSED_KEYSC(ESC))
|
||||||
{
|
|
||||||
retval = 1;
|
retval = 1;
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(retval);
|
return(retval);
|
||||||
}
|
}
|
||||||
|
@ -2682,7 +2681,7 @@ static int32_t DrawTiles(int32_t iTopLeft, int32_t iSelected, int32_t nXTiles, i
|
||||||
|
|
||||||
static int32_t m32gettile(int32_t idInitialTile)
|
static int32_t m32gettile(int32_t idInitialTile)
|
||||||
{
|
{
|
||||||
int32_t gap, temp;
|
int32_t gap, temp, zoomsz;
|
||||||
int32_t nXTiles, nYTiles, nDisplayedTiles;
|
int32_t nXTiles, nYTiles, nDisplayedTiles;
|
||||||
int32_t i;
|
int32_t i;
|
||||||
int32_t iTile, iTopLeftTile;
|
int32_t iTile, iTopLeftTile;
|
||||||
|
@ -2822,8 +2821,10 @@ static int32_t m32gettile(int32_t idInitialTile)
|
||||||
iTopLeftTile = iTile - (iTile % nXTiles);
|
iTopLeftTile = iTile - (iTile % nXTiles);
|
||||||
iTopLeftTile = clamp(iTopLeftTile, 0, MAXTILES-nDisplayedTiles);
|
iTopLeftTile = clamp(iTopLeftTile, 0, MAXTILES-nDisplayedTiles);
|
||||||
|
|
||||||
searchx = ((iTile-iTopLeftTile)%nXTiles)*ZoomToThumbSize[s_Zoom] + ZoomToThumbSize[s_Zoom]/2;
|
zoomsz = ZoomToThumbSize[s_Zoom];
|
||||||
searchy = ((iTile-iTopLeftTile)/nXTiles)*ZoomToThumbSize[s_Zoom] + ZoomToThumbSize[s_Zoom]/2;
|
|
||||||
|
searchx = ((iTile-iTopLeftTile)%nXTiles)*zoomsz + zoomsz/2;
|
||||||
|
searchy = ((iTile-iTopLeftTile)/nXTiles)*zoomsz + zoomsz/2;
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
// Start of key handling code //
|
// Start of key handling code //
|
||||||
|
@ -2831,8 +2832,21 @@ static int32_t m32gettile(int32_t idInitialTile)
|
||||||
|
|
||||||
while ((keystatus[KEYSC_ENTER]|keystatus[KEYSC_ESC]|(bstatus&1)) == 0) // <- Presumably one of these is escape key ??
|
while ((keystatus[KEYSC_ENTER]|keystatus[KEYSC_ESC]|(bstatus&1)) == 0) // <- Presumably one of these is escape key ??
|
||||||
{
|
{
|
||||||
|
zoomsz = ZoomToThumbSize[s_Zoom];
|
||||||
|
|
||||||
DrawTiles(iTopLeftTile, (iTile >= localartlookupnum) ? localartlookupnum-1 : iTile,
|
DrawTiles(iTopLeftTile, (iTile >= localartlookupnum) ? localartlookupnum-1 : iTile,
|
||||||
nXTiles, nYTiles, ZoomToThumbSize[s_Zoom], moffset);
|
nXTiles, nYTiles, zoomsz, moffset);
|
||||||
|
|
||||||
|
|
||||||
|
idle_waitevent_timeout(500);
|
||||||
|
// SDL seems to miss mousewheel events when rotated slowly.
|
||||||
|
// These kludgy things seem to make it better, but I'm not sure.
|
||||||
|
idle();
|
||||||
|
idle();
|
||||||
|
|
||||||
|
if (handleevents())
|
||||||
|
quitevent = 0;
|
||||||
|
|
||||||
|
|
||||||
getmousevalues(&mousedx,&mousedy,&bstatus);
|
getmousevalues(&mousedx,&mousedy,&bstatus);
|
||||||
searchx += mousedx;
|
searchx += mousedx;
|
||||||
|
@ -2850,52 +2864,43 @@ static int32_t m32gettile(int32_t idInitialTile)
|
||||||
moffset=0;
|
moffset=0;
|
||||||
searchy -= mousedy*2;
|
searchy -= mousedy*2;
|
||||||
}
|
}
|
||||||
while (moffset>ZoomToThumbSize[s_Zoom])
|
|
||||||
|
while (moffset > zoomsz)
|
||||||
{
|
{
|
||||||
iTopLeftTile-=nXTiles;
|
iTopLeftTile -= nXTiles;
|
||||||
moffset-=ZoomToThumbSize[s_Zoom];
|
moffset -= zoomsz;
|
||||||
}
|
}
|
||||||
while (moffset<-ZoomToThumbSize[s_Zoom])
|
while (moffset < -zoomsz)
|
||||||
{
|
{
|
||||||
iTopLeftTile+=nXTiles;
|
iTopLeftTile += nXTiles;
|
||||||
moffset+=ZoomToThumbSize[s_Zoom];
|
moffset += zoomsz;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keep the pointer visible at all times.
|
// Keep the pointer visible at all times.
|
||||||
temp = min((ZoomToThumbSize[s_Zoom] / 2), 12);
|
temp = min(zoomsz/2, 12);
|
||||||
if (searchx < temp) searchx = temp;
|
searchx = clamp(searchx, temp, xdim-temp);
|
||||||
if (searchy < temp) searchy = temp;
|
searchy = clamp(searchy, temp, ydim-temp);
|
||||||
if (searchx > xdim - temp) searchx = xdim - temp;
|
|
||||||
if (searchy > ydim - temp) searchy = ydim - temp;
|
|
||||||
|
|
||||||
scrollmode=!(eitherCTRL^revertCTRL);
|
scrollmode = !(eitherCTRL^revertCTRL);
|
||||||
if (bstatus&16 && scrollmode && iTopLeftTile > 0)
|
if (bstatus&16 && scrollmode && iTopLeftTile > 0)
|
||||||
{
|
{
|
||||||
mouseb &= ~16;
|
mouseb &= ~16;
|
||||||
iTopLeftTile -= (nXTiles*scrollamount);
|
iTopLeftTile -= (nXTiles*scrollamount);
|
||||||
}
|
}
|
||||||
if (bstatus&32 && scrollmode && iTopLeftTile < localartlookupnum-nDisplayedTiles-1)
|
else if (bstatus&32 && scrollmode && iTopLeftTile < localartlookupnum-nDisplayedTiles-1)
|
||||||
{
|
{
|
||||||
mouseb &= ~32;
|
mouseb &= ~32;
|
||||||
iTopLeftTile += (nXTiles*scrollamount);
|
iTopLeftTile += (nXTiles*scrollamount);
|
||||||
}
|
}
|
||||||
|
|
||||||
mtile=iTile=(searchx/ZoomToThumbSize[s_Zoom])+((searchy-moffset)/ZoomToThumbSize[s_Zoom])*nXTiles+iTopLeftTile;
|
mtile = iTile = searchx/zoomsz + ((searchy-moffset)/zoomsz)*nXTiles + iTopLeftTile;
|
||||||
while (iTile >= iTopLeftTile + nDisplayedTiles)
|
while (iTile >= iTopLeftTile + nDisplayedTiles)
|
||||||
{
|
{
|
||||||
iTile-=nXTiles;
|
iTile -= nXTiles;
|
||||||
mtile=iTile;
|
mtile = iTile;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bpp==8) // no idea why, but it breaks the mousewheel else :/
|
|
||||||
idle_waitevent();
|
|
||||||
else
|
|
||||||
idle();
|
|
||||||
|
|
||||||
if (handleevents())
|
|
||||||
quitevent = 0;
|
|
||||||
|
|
||||||
// These two lines are so obvious I don't need to comment them ...;-)
|
// These two lines are so obvious I don't need to comment them ...;-)
|
||||||
synctics = totalclock-lockclock;
|
synctics = totalclock-lockclock;
|
||||||
lockclock += synctics;
|
lockclock += synctics;
|
||||||
|
@ -2925,13 +2930,17 @@ static int32_t m32gettile(int32_t idInitialTile)
|
||||||
s_Zoom--;
|
s_Zoom--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iTile >= localartlookupnum)iTile = localartlookupnum-1;
|
zoomsz = ZoomToThumbSize[s_Zoom];
|
||||||
|
|
||||||
|
if (iTile >= localartlookupnum)
|
||||||
|
iTile = localartlookupnum-1;
|
||||||
|
|
||||||
// Calculate new num of tiles to display
|
// Calculate new num of tiles to display
|
||||||
nXTiles = xdim / ZoomToThumbSize[s_Zoom];
|
nXTiles = xdim / zoomsz;
|
||||||
nYTiles = ydim / ZoomToThumbSize[s_Zoom];
|
nYTiles = ydim / zoomsz;
|
||||||
// Refuse to draw less than half of a row.
|
// Refuse to draw less than half of a row.
|
||||||
if (ZoomToThumbSize[s_Zoom]/2 < 12) nYTiles--;
|
if (zoomsz/2 < 12)
|
||||||
|
nYTiles--;
|
||||||
nDisplayedTiles = nXTiles * nYTiles;
|
nDisplayedTiles = nXTiles * nYTiles;
|
||||||
|
|
||||||
// Determine if the top-left displayed tile needs to
|
// Determine if the top-left displayed tile needs to
|
||||||
|
@ -2940,8 +2949,7 @@ static int32_t m32gettile(int32_t idInitialTile)
|
||||||
iTopLeftTile = clamp(iTopLeftTile, 0, MAXTILES - nDisplayedTiles);
|
iTopLeftTile = clamp(iTopLeftTile, 0, MAXTILES - nDisplayedTiles);
|
||||||
|
|
||||||
// scroll window so mouse points the same tile as it was before zooming
|
// scroll window so mouse points the same tile as it was before zooming
|
||||||
iTopLeftTile -= (searchx/ZoomToThumbSize[s_Zoom]) + ((searchy-moffset)/ZoomToThumbSize[s_Zoom])*nXTiles
|
iTopLeftTile -= searchx/zoomsz + ((searchy-moffset)/zoomsz)*nXTiles + iTopLeftTile-iTile;
|
||||||
+ iTopLeftTile-iTile;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PRESSED_KEYSC(LEFT))
|
if (PRESSED_KEYSC(LEFT))
|
||||||
|
@ -3041,8 +3049,8 @@ static int32_t m32gettile(int32_t idInitialTile)
|
||||||
}
|
}
|
||||||
if (mtile!=iTile) // if changed by keyboard, update mouse cursor
|
if (mtile!=iTile) // if changed by keyboard, update mouse cursor
|
||||||
{
|
{
|
||||||
searchx=((iTile-iTopLeftTile)%nXTiles)*ZoomToThumbSize[s_Zoom]+ZoomToThumbSize[s_Zoom]/2;
|
searchx = ((iTile-iTopLeftTile)%nXTiles) * zoomsz + zoomsz/2;
|
||||||
searchy=((iTile-iTopLeftTile)/nXTiles)*ZoomToThumbSize[s_Zoom]+ZoomToThumbSize[s_Zoom]/2+moffset;
|
searchy = ((iTile-iTopLeftTile)/nXTiles) * zoomsz + zoomsz/2 + moffset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4302,7 +4310,7 @@ static void Keys3d(void)
|
||||||
{
|
{
|
||||||
if (AIMING_AT_SPRITE)
|
if (AIMING_AT_SPRITE)
|
||||||
{
|
{
|
||||||
sprite[searchwall].ang += tsign<<(eitherSHIFT*7);
|
sprite[searchwall].ang += tsign<<(!eitherSHIFT*7);
|
||||||
sprite[searchwall].ang &= 2047;
|
sprite[searchwall].ang &= 2047;
|
||||||
message("Sprite %d angle: %d", searchwall, sprite[searchwall].ang);
|
message("Sprite %d angle: %d", searchwall, sprite[searchwall].ang);
|
||||||
}
|
}
|
||||||
|
@ -4969,11 +4977,11 @@ static void Keys3d(void)
|
||||||
|
|
||||||
tempbuf[0] = 0;
|
tempbuf[0] = 0;
|
||||||
|
|
||||||
if (bstatus&4 && !(bstatus&(1|2)) && !unrealedlook) //PK
|
if ((bstatus&(4|2|1))==4 && !unrealedlook) //PK
|
||||||
Bsprintf(tempbuf,"VIEW");
|
Bsprintf(tempbuf,"VIEW");
|
||||||
else if (bstatus&2 && !(bstatus&1))
|
else if ((bstatus&(2|1))==2)
|
||||||
Bsprintf(tempbuf,"Z");
|
Bsprintf(tempbuf,"Z%s", keystatus[KEYSC_HOME]?" 256":keystatus[KEYSC_END]?" 512":"");
|
||||||
else if (bstatus&1 && !(bstatus&2))
|
else if ((bstatus&(2|1))==1)
|
||||||
Bsprintf(tempbuf,"LOCK");
|
Bsprintf(tempbuf,"LOCK");
|
||||||
|
|
||||||
if (bstatus&1)
|
if (bstatus&1)
|
||||||
|
@ -6377,8 +6385,11 @@ static void Keys2d(void)
|
||||||
if (keystatus[KEYSC_TAB]) //TAB
|
if (keystatus[KEYSC_TAB]) //TAB
|
||||||
{
|
{
|
||||||
if (cursectornum >= 0)
|
if (cursectornum >= 0)
|
||||||
|
{
|
||||||
|
drawgradient();
|
||||||
showsectordata((int16_t)i);
|
showsectordata((int16_t)i);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (!(keystatus[KEYSC_F5]|keystatus[KEYSC_F6]|keystatus[KEYSC_F7]|keystatus[KEYSC_F8]))
|
else if (!(keystatus[KEYSC_F5]|keystatus[KEYSC_F6]|keystatus[KEYSC_F7]|keystatus[KEYSC_F8]))
|
||||||
{
|
{
|
||||||
static int32_t counter = 0;
|
static int32_t counter = 0;
|
||||||
|
@ -6498,7 +6509,7 @@ static void Keys2d(void)
|
||||||
cursprite = ppointhighlight&16383;
|
cursprite = ppointhighlight&16383;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PRESSED_KEYSC(F9)) // F9 f1=3b
|
if (keystatus[KEYSC_F9]) // F9 f1=3b
|
||||||
Show2dText("sthelp.hlp");
|
Show2dText("sthelp.hlp");
|
||||||
|
|
||||||
/* start Mapster32 */
|
/* start Mapster32 */
|
||||||
|
@ -6627,7 +6638,7 @@ static void Keys2d(void)
|
||||||
i &= ~48;
|
i &= ~48;
|
||||||
sprite[cursprite].cstat = i;
|
sprite[cursprite].cstat = i;
|
||||||
|
|
||||||
message("Sprite %d now view aligned", cursprite, aligntype[(i&48)/16]);
|
message("Sprite %d now %s aligned", cursprite, aligntype[(i&48)/16]);
|
||||||
asksave = 1;
|
asksave = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -834,9 +834,9 @@ skip_check:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
int32_t bits=Gv_GetVarX(*insptr), scale=*(insptr+1);
|
int32_t bits=Gv_GetVarX(*insptr), scale=*(insptr+1);
|
||||||
double fval=(double)(*((float*)&bits));
|
float fval = *((float*)&bits);
|
||||||
|
|
||||||
Gv_SetVarX(*insptr, (int32_t)((fval/scale)*2e9));
|
Gv_SetVarX(*insptr, (int32_t)(fval * scale));
|
||||||
}
|
}
|
||||||
insptr += 2;
|
insptr += 2;
|
||||||
continue;
|
continue;
|
||||||
|
@ -845,7 +845,7 @@ skip_check:
|
||||||
insptr++;
|
insptr++;
|
||||||
{
|
{
|
||||||
int32_t scaled=Gv_GetVarX(*insptr), scale=*(insptr+1);
|
int32_t scaled=Gv_GetVarX(*insptr), scale=*(insptr+1);
|
||||||
float fval = (float)((((double)scaled)*scale)/2e9);
|
float fval = (float)scaled/(float)scale;
|
||||||
|
|
||||||
Gv_SetVarX(*insptr, *((int32_t *)&fval));
|
Gv_SetVarX(*insptr, *((int32_t *)&fval));
|
||||||
}
|
}
|
||||||
|
@ -2281,6 +2281,20 @@ badindex:
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'f':
|
||||||
|
{
|
||||||
|
char buf[64];
|
||||||
|
int32_t ii = 0;
|
||||||
|
|
||||||
|
Bsprintf(buf, "%f", *((float *)&arg[i++]));
|
||||||
|
|
||||||
|
ii = Bstrlen(buf);
|
||||||
|
Bmemcpy(&tmpbuf[j], buf, ii);
|
||||||
|
j += ii;
|
||||||
|
k++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 's':
|
case 's':
|
||||||
{
|
{
|
||||||
if (arg[i]>=0 && arg[i]<MAXQUOTES && ScriptQuotes[arg[i]])
|
if (arg[i]>=0 && arg[i]<MAXQUOTES && ScriptQuotes[arg[i]])
|
||||||
|
|
|
@ -78,7 +78,7 @@ int32_t S_SoundStartup(void)
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
MixRate = 44100;
|
MixRate = 44100;
|
||||||
#else
|
#else
|
||||||
MixRate = 48000;
|
MixRate = 44100;
|
||||||
#endif
|
#endif
|
||||||
fxdevicetype = ASS_AutoDetect;
|
fxdevicetype = ASS_AutoDetect;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue