mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-11 07:11:39 +00:00
Mapster32: further 2d mode performance improvements. Sprites are also now displayed with their xrepeat and yrepeat taken into account. It's not perfect yet... needs more "jiggery-pokery"
git-svn-id: https://svn.eduke32.com/eduke32@5293 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
e20e6584d6
commit
868afddbc3
5 changed files with 280 additions and 229 deletions
|
@ -75,11 +75,17 @@ void hlineasm4(int32_t cnt, int32_t skiploadincs, int32_t paloffs, uint32_t by,
|
||||||
#ifdef CLASSIC_SLICE_BY_4
|
#ifdef CLASSIC_SLICE_BY_4
|
||||||
for (; cnt>=4; cnt-=4, pp-=4)
|
for (; cnt>=4; cnt-=4, pp-=4)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
*pp = palptr[buf[((bx>>log32.x)<<log.y)+(by>>log32.y)]];
|
*pp = palptr[buf[((bx>>log32.x)<<log.y)+(by>>log32.y)]];
|
||||||
*(pp-1) = palptr[buf[(((bx-inc.x)>>log32.x)<<log.y)+((by-inc.y)>>log32.y)]];
|
*(pp-1) = palptr[buf[(((bx-inc.x)>>log32.x)<<log.y)+((by-inc.y)>>log32.y)]];
|
||||||
*(pp-2) = palptr[buf[(((bx-(inc.x<<1))>>log32.x)<<log.y)+((by-(inc.y<<1))>>log32.y)]];
|
*(pp-2) = palptr[buf[(((bx-(inc.x<<1))>>log32.x)<<log.y)+((by-(inc.y<<1))>>log32.y)]];
|
||||||
*(pp-3) = palptr[buf[(((bx-(inc.x*3))>>log32.x)<<log.y)+((by-(inc.y*3))>>log32.y)]];
|
*(pp-3) = palptr[buf[(((bx-(inc.x*3))>>log32.x)<<log.y)+((by-(inc.y*3))>>log32.y)]];
|
||||||
|
#else
|
||||||
|
*(int32_t *)(pp-3) = palptr[buf[(((bx-(inc.x*3))>>log32.x)<<log.y)+((by-(inc.y*3))>>log32.y)]] +
|
||||||
|
(palptr[buf[(((bx-(inc.x<<1))>>log32.x)<<log.y)+((by-(inc.y<<1))>>log32.y)]]<<8) +
|
||||||
|
(palptr[buf[(((bx-inc.x)>>log32.x)<<log.y)+((by-inc.y)>>log32.y)]]<<16) +
|
||||||
|
(palptr[buf[((bx>>log32.x)<<log.y)+(by>>log32.y)]]<<24);
|
||||||
|
#endif
|
||||||
bx -= inc.x<<2;
|
bx -= inc.x<<2;
|
||||||
by -= inc.y<<2;
|
by -= inc.y<<2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1573,39 +1573,51 @@ static inline void drawline16base(int32_t bx, int32_t by, int32_t x1, int32_t y1
|
||||||
|
|
||||||
void drawsmallabel(const char *text, char col, char backcol, char border, int32_t dax, int32_t day, int32_t daz)
|
void drawsmallabel(const char *text, char col, char backcol, char border, int32_t dax, int32_t day, int32_t daz)
|
||||||
{
|
{
|
||||||
int32_t x1, y1, x2, y2;
|
|
||||||
|
|
||||||
screencoords(&dax,&day, dax-pos.x,day-pos.y, zoom);
|
screencoords(&dax,&day, dax-pos.x,day-pos.y, zoom);
|
||||||
|
|
||||||
if (m32_sideview)
|
if (m32_sideview)
|
||||||
day += getscreenvdisp(daz-pos.z, zoom);
|
day += getscreenvdisp(daz-pos.z, zoom);
|
||||||
|
|
||||||
x1 = halfxdim16+dax-(Bstrlen(text)<<1);
|
int32_t const x1 = halfxdim16+dax-(Bstrlen(text)<<1);
|
||||||
y1 = midydim16+day-4;
|
int32_t const y1 = midydim16+day-4;
|
||||||
x2 = x1 + (Bstrlen(text)<<2)+2;
|
int32_t const x2 = x1 + (Bstrlen(text)<<2)+2;
|
||||||
y2 = y1 + 7;
|
int32_t const y2 = y1 + 7;
|
||||||
|
|
||||||
int f = mulscale8(x2-x1, zoom);
|
int f = mulscale8(x2-x1, zoom);
|
||||||
|
|
||||||
if ((x1 > -f) && (x2 < xdim+f) && (y1 > -f) && (y2 < ydim16+f))
|
if ((x1 <= -f) || (x2 >= xdim + f) || (y1 <= -f) || (y2 >= ydim16 + f))
|
||||||
|
return;
|
||||||
|
|
||||||
|
printext16(x1,y1, col,backcol, text,1);
|
||||||
|
|
||||||
|
drawline16(x1-2, y1-2, x2-2, y1-2, border);
|
||||||
|
drawline16(x1-2, y2+1, x2-2, y2+1, border);
|
||||||
|
|
||||||
|
drawline16(x1-3, y1-1, x1-3, y2+0, border);
|
||||||
|
drawline16(x2-1, y1-1, x2-1, y2+0, border);
|
||||||
|
|
||||||
|
drawline16(x1-1,y1-1, x2-3,y1-1, backcol);
|
||||||
|
drawline16(x1-1,y2+0, x2-3,y2+0, backcol);
|
||||||
|
|
||||||
|
drawline16(x1-2,y1+0, x1-2,y2-1, backcol);
|
||||||
|
drawline16(x2-2,y1+0, x2-2,y2-1, backcol);
|
||||||
|
drawline16(x2-3,y1+0, x2-3,y2+0, backcol);
|
||||||
|
|
||||||
|
begindrawing(); //{{{
|
||||||
|
|
||||||
|
if ((unsigned)y1-1 < ydim16+0u && (unsigned) (x1-2) < xdim2d+0u && (unsigned) (x2-2) < xdim2d+0u)
|
||||||
{
|
{
|
||||||
printext16(x1,y1, col,backcol, text,1);
|
drawpixel((char *) (frameplace + ((y1-1) * bytesperline) + (x1-2)), border);
|
||||||
|
drawpixel((char *) (frameplace + ((y1-1) * bytesperline) + (x2-2)), border);
|
||||||
drawline16(x1-2, y1-2, x2-2, y1-2, border);
|
|
||||||
drawline16(x1-2, y2+2, x2-2, y2+2, border);
|
|
||||||
|
|
||||||
drawline16(x1-2, y1-1, x2-2, y1-1, border);
|
|
||||||
drawline16(x1-2, y2+1, x2-2, y2+1, border);
|
|
||||||
|
|
||||||
drawline16(x1-3, y1-1, x1-3, y2+1, border);
|
|
||||||
drawline16(x2-1, y1-1, x2-1, y2+1, border);
|
|
||||||
|
|
||||||
drawline16(x1-1,y1-1, x2-3,y1-1, backcol);
|
|
||||||
drawline16(x1-1,y2+1, x2-3,y2+1, backcol);
|
|
||||||
|
|
||||||
drawline16(x1-2,y1, x1-2,y2, backcol);
|
|
||||||
drawline16(x2-2,y1, x2-2,y2, backcol);
|
|
||||||
drawline16(x2-3,y1, x2-3,y2, backcol);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((unsigned) y2 < ydim16+0u && (unsigned) (x1-2) < xdim2d+0u && (unsigned) (x2-2) < xdim2d+0u)
|
||||||
|
{
|
||||||
|
drawpixel((char *) (frameplace + ((y2) * bytesperline) + (x1-2)), border);
|
||||||
|
drawpixel((char *) (frameplace + ((y2) * bytesperline) + (x2-2)), border);
|
||||||
|
}
|
||||||
|
|
||||||
|
enddrawing();
|
||||||
}
|
}
|
||||||
|
|
||||||
// backup highlighted sectors with sprites as mapinfo for later restoration
|
// backup highlighted sectors with sprites as mapinfo for later restoration
|
||||||
|
@ -3342,16 +3354,16 @@ void overheadeditor(void)
|
||||||
if (zoom < ztarget)
|
if (zoom < ztarget)
|
||||||
{
|
{
|
||||||
if ((ztarget - zoom) >> 3)
|
if ((ztarget - zoom) >> 3)
|
||||||
zoom += (ztarget - zoom) >> 3;
|
zoom += synctics * ((ztarget - zoom) >> 3);
|
||||||
else zoom++;
|
else zoom++;
|
||||||
zoom = min(zoom, ztarget);
|
zoom = min(zoom, ztarget);
|
||||||
if (zoom == 65536)
|
if (zoom >= 39936)
|
||||||
silentmessage("Ludicrous Zoom!");
|
silentmessage("Ludicrous Zoom!");
|
||||||
}
|
}
|
||||||
else if (zoom > ztarget)
|
else if (zoom > ztarget)
|
||||||
{
|
{
|
||||||
if ((zoom - ztarget) >> 3)
|
if ((zoom - ztarget) >> 3)
|
||||||
zoom -= (zoom - ztarget) >> 3;
|
zoom -= synctics * ((zoom - ztarget) >> 3);
|
||||||
else zoom--;
|
else zoom--;
|
||||||
zoom = max(zoom, ztarget);
|
zoom = max(zoom, ztarget);
|
||||||
}
|
}
|
||||||
|
@ -3478,34 +3490,30 @@ void overheadeditor(void)
|
||||||
|
|
||||||
draw2dgrid(pos.x,pos.y,pos.z,cursectnum,ang,zoom,grid);
|
draw2dgrid(pos.x,pos.y,pos.z,cursectnum,ang,zoom,grid);
|
||||||
CallExtPreCheckKeys();
|
CallExtPreCheckKeys();
|
||||||
|
|
||||||
{
|
|
||||||
int32_t cx, cy;
|
|
||||||
|
|
||||||
// Draw brown arrow (start)
|
|
||||||
screencoords(&x2, &y2, startpos.x-pos.x,startpos.y-pos.y, zoom);
|
|
||||||
if (m32_sideview)
|
|
||||||
y2 += getscreenvdisp(startpos.z-pos.z, zoom);
|
|
||||||
|
|
||||||
cx = halfxdim16+x2;
|
|
||||||
cy = midydim16+y2;
|
|
||||||
if ((cx >= 2 && cx <= xdim-3) && (cy >= 2 && cy <= ydim16-3))
|
|
||||||
{
|
|
||||||
int16_t angofs = m32_sideview ? m32_sideang : 0;
|
|
||||||
x1 = mulscale11(sintable[(startang+angofs+2560)&2047],zoom) / 768;
|
|
||||||
y1 = mulscale11(sintable[(startang+angofs+2048)&2047],zoom) / 768;
|
|
||||||
i = scalescreeny(x1);
|
|
||||||
j = scalescreeny(y1);
|
|
||||||
begindrawing(); //{{{
|
|
||||||
drawline16base(cx,cy, x1,j, -x1,-j, editorcolors[2]);
|
|
||||||
drawline16base(cx,cy, x1,j, +y1,-i, editorcolors[2]);
|
|
||||||
drawline16base(cx,cy, x1,j, -y1,+i, editorcolors[2]);
|
|
||||||
enddrawing(); //}}}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
draw2dscreen(&pos,cursectnum,ang,zoom,grid);
|
draw2dscreen(&pos,cursectnum,ang,zoom,grid);
|
||||||
|
|
||||||
|
// Draw brown arrow (start)
|
||||||
|
screencoords(&x2, &y2, startpos.x-pos.x,startpos.y-pos.y, zoom);
|
||||||
|
if (m32_sideview)
|
||||||
|
y2 += getscreenvdisp(startpos.z-pos.z, zoom);
|
||||||
|
|
||||||
|
int32_t cx = halfxdim16+x2;
|
||||||
|
int32_t cy = midydim16+y2;
|
||||||
|
|
||||||
|
if ((cx >= 2 && cx <= xdim-3) && (cy >= 2 && cy <= ydim16-3))
|
||||||
|
{
|
||||||
|
int16_t angofs = m32_sideview ? m32_sideang : 0;
|
||||||
|
x1 = mulscale11(sintable[(startang+angofs+2560)&2047],zoom) / 768;
|
||||||
|
y1 = mulscale11(sintable[(startang+angofs+2048)&2047],zoom) / 768;
|
||||||
|
i = scalescreeny(x1);
|
||||||
|
j = scalescreeny(y1);
|
||||||
|
begindrawing(); //{{{
|
||||||
|
drawline16base(cx,cy, x1,j, -x1,-j, editorcolors[6]);
|
||||||
|
drawline16base(cx,cy, x1,j, +y1,-i, editorcolors[6]);
|
||||||
|
drawline16base(cx,cy, x1,j, -y1,+i, editorcolors[6]);
|
||||||
|
enddrawing(); //}}}
|
||||||
|
}
|
||||||
|
|
||||||
begindrawing(); //{{{
|
begindrawing(); //{{{
|
||||||
|
|
||||||
if (keystatus[0x2a] && (pointhighlight&16384) && highlightcnt<=0) // LShift
|
if (keystatus[0x2a] && (pointhighlight&16384) && highlightcnt<=0) // LShift
|
||||||
|
@ -5914,7 +5922,7 @@ end_point_dragging:
|
||||||
{
|
{
|
||||||
int32_t didzoom=0;
|
int32_t didzoom=0;
|
||||||
|
|
||||||
if ((DOWN_BK(MOVEUP) || (bstatus&16)) && zoom < 65536)
|
if ((DOWN_BK(MOVEUP) || (bstatus&16)) && zoom < 39936)
|
||||||
{
|
{
|
||||||
if (DOWN_BK(MOVEUP))
|
if (DOWN_BK(MOVEUP))
|
||||||
{
|
{
|
||||||
|
@ -5953,7 +5961,7 @@ end_point_dragging:
|
||||||
pos.x = mousxplc;
|
pos.x = mousxplc;
|
||||||
pos.y = mousyplc;
|
pos.y = mousyplc;
|
||||||
}
|
}
|
||||||
ztarget = clamp(ztarget, 16, 65536);
|
ztarget = clamp(ztarget, 16, 39936);
|
||||||
|
|
||||||
_printmessage16("Zoom: %d",ztarget);
|
_printmessage16("Zoom: %d",ztarget);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7057,8 +7057,8 @@ static void fillpolygon(int32_t npoints)
|
||||||
x1 += mulscale12((day1<<12)+4095-y1, xinc);
|
x1 += mulscale12((day1<<12)+4095-y1, xinc);
|
||||||
for (y=day1; y<day2; y++)
|
for (y=day1; y<day2; y++)
|
||||||
{
|
{
|
||||||
if (dotp2[y])
|
Bassert(dotp2[y]);
|
||||||
*(dotp2[y]++) = x1>>12;
|
*(dotp2[y]++) = x1>>12;
|
||||||
x1 += xinc;
|
x1 += xinc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7067,8 +7067,8 @@ static void fillpolygon(int32_t npoints)
|
||||||
x2 += mulscale12((day2<<12)+4095-y2, xinc);
|
x2 += mulscale12((day2<<12)+4095-y2, xinc);
|
||||||
for (y=day2; y<day1; y++)
|
for (y=day2; y<day1; y++)
|
||||||
{
|
{
|
||||||
if (dotp1[y])
|
Bassert(dotp1[y]);
|
||||||
*(dotp1[y]++) = x2>>12;
|
*(dotp1[y]++) = x2>>12;
|
||||||
x2 += xinc;
|
x2 += xinc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7122,12 +7122,10 @@ static void fillpolygon(int32_t npoints)
|
||||||
{
|
{
|
||||||
//maphline
|
//maphline
|
||||||
const int32_t ox = x2+1-(xdim>>1);
|
const int32_t ox = x2+1-(xdim>>1);
|
||||||
const int32_t bx = ox*asm1 + globalposx;
|
|
||||||
const int32_t by = ox*asm2 - globalposy;
|
|
||||||
|
|
||||||
const intptr_t p = ylookup[y]+x2+frameplace;
|
hlineasm4(x2 - x1, -1L, globalshade << 8,
|
||||||
|
ox * asm2 - globalposy, ox * asm1 + globalposx,
|
||||||
hlineasm4(x2-x1,-1L,globalshade<<8,by,bx,p);
|
ylookup[y] + x2 + frameplace);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -13749,23 +13747,25 @@ void dragpoint(int16_t pointhighlight, int32_t dax, int32_t day, uint8_t flags)
|
||||||
//
|
//
|
||||||
int32_t lastwall(int16_t point)
|
int32_t lastwall(int16_t point)
|
||||||
{
|
{
|
||||||
int32_t i, cnt;
|
|
||||||
|
|
||||||
if (point > 0 && wall[point-1].point2 == point)
|
if (point > 0 && wall[point-1].point2 == point)
|
||||||
return point-1;
|
return point-1;
|
||||||
|
|
||||||
i = point;
|
int i = point, cnt = MAXWALLS;
|
||||||
cnt = MAXWALLS;
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
int32_t j = wall[i].point2;
|
int const j = wall[i].point2;
|
||||||
if (j == point) return(i);
|
|
||||||
i = j;
|
|
||||||
cnt--;
|
|
||||||
}
|
|
||||||
while (cnt > 0);
|
|
||||||
|
|
||||||
return(point);
|
if (j == point)
|
||||||
|
{
|
||||||
|
point = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
i = j;
|
||||||
|
}
|
||||||
|
while (--cnt);
|
||||||
|
|
||||||
|
return point;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -16523,16 +16523,16 @@ int32_t drawline16(int32_t x1, int32_t y1, int32_t x2, int32_t y2, char col)
|
||||||
|
|
||||||
if (y1 < 0)
|
if (y1 < 0)
|
||||||
{
|
{
|
||||||
if (d.x) x1 += scale(0-y1,d.x,d.y);
|
if (d.x)
|
||||||
|
x1 = clamp(x1 + scale(0 - y1, d.x, d.y), 0, xres - 1);
|
||||||
y1 = 0;
|
y1 = 0;
|
||||||
x1 = clamp(x1, 0, xres-1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (y2 >= ydim16)
|
if (y2 >= ydim16)
|
||||||
{
|
{
|
||||||
if (d.x) x2 += scale(ydim16-1-y2,d.x,d.y);
|
if (d.x)
|
||||||
|
x2 = clamp(x2 + scale(ydim16-1-y2, d.x, d.y), 0, xres-1);
|
||||||
y2 = ydim16-1;
|
y2 = ydim16-1;
|
||||||
x2 = clamp(x2, 0, xres-1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d.y < 0)
|
if (d.y < 0)
|
||||||
|
@ -16554,8 +16554,6 @@ int32_t drawline16(int32_t x1, int32_t y1, int32_t x2, int32_t y2, char col)
|
||||||
swaplong(&y1, &y2);
|
swaplong(&y1, &y2);
|
||||||
}
|
}
|
||||||
|
|
||||||
int df = 0;
|
|
||||||
uint32_t patc=UINT_MAX;
|
|
||||||
int pinc, inc = 1;
|
int pinc, inc = 1;
|
||||||
|
|
||||||
begindrawing(); //{{{
|
begindrawing(); //{{{
|
||||||
|
@ -16577,7 +16575,7 @@ int32_t drawline16(int32_t x1, int32_t y1, int32_t x2, int32_t y2, char col)
|
||||||
clearbufbyte((void *)p, d.x, ((int32_t) col<<24)|((int32_t) col<<16)|((int32_t) col<<8)|col);
|
clearbufbyte((void *)p, d.x, ((int32_t) col<<24)|((int32_t) col<<16)|((int32_t) col<<8)|col);
|
||||||
else if (drawlinepat == 0xffffffff)
|
else if (drawlinepat == 0xffffffff)
|
||||||
{
|
{
|
||||||
for (int i=d.x; i>0; i--)
|
for (int i=d.x, df=0; i>0; i--)
|
||||||
{
|
{
|
||||||
drawpixel((char *) p, col);
|
drawpixel((char *) p, col);
|
||||||
df += d.y;
|
df += d.y;
|
||||||
|
@ -16586,13 +16584,17 @@ int32_t drawline16(int32_t x1, int32_t y1, int32_t x2, int32_t y2, char col)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
for (int i=d.x; i>0; i--)
|
|
||||||
{
|
{
|
||||||
if (drawlinepat & pow2long[(++patc)&31])
|
uint32_t patc = UINT_MAX;
|
||||||
drawpixel((char *) p, col);
|
|
||||||
df += d.y;
|
for (int i=d.x, df=0; i>0; i--)
|
||||||
if (df >= d.x) { df -= d.x; p += pinc; }
|
{
|
||||||
p += inc;
|
if (drawlinepat & pow2long[(++patc)&31])
|
||||||
|
drawpixel((char *) p, col);
|
||||||
|
df += d.y;
|
||||||
|
if (df >= d.x) { df -= d.x; p += pinc; }
|
||||||
|
p += inc;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enddrawing(); //}}}
|
enddrawing(); //}}}
|
||||||
|
@ -16611,114 +16613,154 @@ FORCE_INLINE void drawline16mid(int32_t x1, int32_t y1, int32_t x2, int32_t y2,
|
||||||
// >16384: grow in y
|
// >16384: grow in y
|
||||||
void drawcircle16(int32_t x1, int32_t y1, int32_t r, int32_t eccen, char col)
|
void drawcircle16(int32_t x1, int32_t y1, int32_t r, int32_t eccen, char col)
|
||||||
{
|
{
|
||||||
if (eccen==16384)
|
if (eccen != 16384)
|
||||||
{
|
|
||||||
intptr_t p;
|
|
||||||
int32_t xp, yp, xpbpl, ypbpl, d, de, dse, patc=0;
|
|
||||||
|
|
||||||
uint32_t uxres = xres, uydim16 = ydim16;
|
|
||||||
|
|
||||||
if (r < 0) r = -r;
|
|
||||||
if (x1+r < 0 || x1-r >= xres) return;
|
|
||||||
if (y1+r < 0 || y1-r >= ydim16) return;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* d
|
|
||||||
* 6 | 7
|
|
||||||
* \ | /
|
|
||||||
* 5 \|/ 8
|
|
||||||
* c----+----a
|
|
||||||
* 4 /|\ 1
|
|
||||||
* / | \
|
|
||||||
* 3 | 2
|
|
||||||
* b
|
|
||||||
*/
|
|
||||||
|
|
||||||
xp = 0;
|
|
||||||
yp = r;
|
|
||||||
d = 1 - r;
|
|
||||||
de = 2;
|
|
||||||
dse = 5 - (r << 1);
|
|
||||||
|
|
||||||
begindrawing();
|
|
||||||
p = (y1*bytesperline)+x1+frameplace;
|
|
||||||
|
|
||||||
if (drawlinepat & pow2long[(patc++)&31])
|
|
||||||
{
|
|
||||||
if ((uint32_t)y1 < uydim16 && (uint32_t)(x1+r) < uxres)
|
|
||||||
drawpixel((char *)(p+r), col); // a
|
|
||||||
if ((uint32_t)x1 < uxres && (uint32_t)(y1+r) < uydim16)
|
|
||||||
drawpixel((char *)(p+(r*bytesperline)), col); // b
|
|
||||||
if ((uint32_t)y1 < uydim16 && (uint32_t)(x1-r) < uxres)
|
|
||||||
drawpixel((char *)(p-r), col); // c
|
|
||||||
if ((uint32_t)x1 < uxres && (uint32_t)(y1-r) < uydim16)
|
|
||||||
drawpixel((char *)(p-(r*bytesperline)), col); // d
|
|
||||||
}
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
if (d < 0)
|
|
||||||
{
|
|
||||||
d += de;
|
|
||||||
de += 2;
|
|
||||||
dse += 2;
|
|
||||||
xp++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
d += dse;
|
|
||||||
de += 2;
|
|
||||||
dse += 4;
|
|
||||||
xp++;
|
|
||||||
yp--;
|
|
||||||
}
|
|
||||||
|
|
||||||
ypbpl = yp*bytesperline;
|
|
||||||
xpbpl = xp*bytesperline;
|
|
||||||
if (drawlinepat & pow2long[(patc++)&31])
|
|
||||||
{
|
|
||||||
if ((uint32_t)(x1+yp) < uxres && (uint32_t)(y1+xp) < uydim16)
|
|
||||||
drawpixel_safe((char *)(p+yp+xpbpl), col); // 1
|
|
||||||
if ((uint32_t)(x1+xp) < uxres && (uint32_t)(y1+yp) < uydim16)
|
|
||||||
drawpixel_safe((char *)(p+xp+ypbpl), col); // 2
|
|
||||||
if ((uint32_t)(x1-xp) < uxres && (uint32_t)(y1+yp) < uydim16)
|
|
||||||
drawpixel_safe((char *)(p-xp+ypbpl), col); // 3
|
|
||||||
if ((uint32_t)(x1-yp) < uxres && (uint32_t)(y1+xp) < uydim16)
|
|
||||||
drawpixel_safe((char *)(p-yp+xpbpl), col); // 4
|
|
||||||
if ((uint32_t)(x1-yp) < uxres && (uint32_t)(y1-xp) < uydim16)
|
|
||||||
drawpixel_safe((char *)(p-yp-xpbpl), col); // 5
|
|
||||||
if ((uint32_t)(x1-xp) < uxres && (uint32_t)(y1-yp) < uydim16)
|
|
||||||
drawpixel_safe((char *)(p-xp-ypbpl), col); // 6
|
|
||||||
if ((uint32_t)(x1+xp) < uxres && (uint32_t)(y1-yp) < uydim16)
|
|
||||||
drawpixel_safe((char *)(p+xp-ypbpl), col); // 7
|
|
||||||
if ((uint32_t)(x1+yp) < uxres && (uint32_t)(y1-xp) < uydim16)
|
|
||||||
drawpixel_safe((char *)(p+yp-xpbpl), col); // 8
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while (yp > xp);
|
|
||||||
enddrawing();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
// JonoF's rough approximation of a circle
|
// JonoF's rough approximation of a circle
|
||||||
int32_t l,spx,spy,lpx,lpy,px,py;
|
int32_t l, spx, spy, lpx, lpy, px, py;
|
||||||
|
|
||||||
spx = lpx = x1 + mulscale14(r,sintable[0]);
|
spx = lpx = x1 + mulscale14(r, sintable[0]);
|
||||||
spy = lpy = y1 + mulscale14(eccen, mulscale14(r,sintable[512]));
|
spy = lpy = y1 + mulscale14(eccen, mulscale14(r, sintable[512]));
|
||||||
|
|
||||||
for (l=64; l<2048; l+=64)
|
for (l=64; l<2048; l+=64)
|
||||||
{
|
{
|
||||||
px = x1 + mulscale14(r,sintable[l]);
|
px = x1 + mulscale14(r, sintable[l]);
|
||||||
py = y1 + mulscale14(eccen, mulscale14(r,sintable[(l+512)&2047]));
|
py = y1 + mulscale14(eccen, mulscale14(r, sintable[(l+512)&2047]));
|
||||||
|
|
||||||
drawline16(lpx,lpy,px,py,col);
|
drawline16(lpx, lpy, px, py, col);
|
||||||
|
|
||||||
lpx = px;
|
lpx = px;
|
||||||
lpy = py;
|
lpy = py;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawline16(lpx,lpy,spx,spy,col);
|
drawline16(lpx, lpy, spx, spy, col);
|
||||||
|
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (r < 0) r = -r;
|
||||||
|
if (x1+r < 0 || x1-r >= xres) return;
|
||||||
|
if (y1+r < 0 || y1-r >= ydim16) return;
|
||||||
|
|
||||||
|
uint32_t const uxres = xres, uydim16 = ydim16;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* d
|
||||||
|
* 6 | 7
|
||||||
|
* \ | /
|
||||||
|
* 5 \|/ 8
|
||||||
|
* c----+----a
|
||||||
|
* 4 /|\ 1
|
||||||
|
* / | \
|
||||||
|
* 3 | 2
|
||||||
|
* b
|
||||||
|
*/
|
||||||
|
|
||||||
|
begindrawing();
|
||||||
|
intptr_t const p = (y1*bytesperline)+x1+frameplace;
|
||||||
|
|
||||||
|
uint32_t patc = UINT_MAX;
|
||||||
|
|
||||||
|
if (drawlinepat == 0xffffffff || drawlinepat & pow2long[(++patc)&31])
|
||||||
|
{
|
||||||
|
if ((uint32_t)y1 < uydim16 && (uint32_t)(x1+r) < uxres)
|
||||||
|
drawpixel((char *)(p+r), col); // a
|
||||||
|
if ((uint32_t)x1 < uxres && (uint32_t)(y1+r) < uydim16)
|
||||||
|
drawpixel((char *)(p+(r*bytesperline)), col); // b
|
||||||
|
if ((uint32_t)y1 < uydim16 && (uint32_t)(x1-r) < uxres)
|
||||||
|
drawpixel((char *)(p-r), col); // c
|
||||||
|
if ((uint32_t)x1 < uxres && (uint32_t)(y1-r) < uydim16)
|
||||||
|
drawpixel((char *)(p-(r*bytesperline)), col); // d
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t xp = 0, yp = r;
|
||||||
|
int32_t d = 1 - r, de = 2, dse = 5 - (r << 1);
|
||||||
|
|
||||||
|
if (drawlinepat != 0xffffffff)
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if (d < 0)
|
||||||
|
{
|
||||||
|
d += de;
|
||||||
|
dse += 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
d += dse;
|
||||||
|
dse += 4;
|
||||||
|
yp--;
|
||||||
|
}
|
||||||
|
|
||||||
|
xp++;
|
||||||
|
de += 2;
|
||||||
|
|
||||||
|
int32_t ypbpl = yp*bytesperline;
|
||||||
|
int32_t xpbpl = xp*bytesperline;
|
||||||
|
|
||||||
|
if (drawlinepat & pow2long[(++patc) & 31])
|
||||||
|
{
|
||||||
|
if ((uint32_t)(x1 + yp) < uxres && (uint32_t)(y1 + xp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p + yp + xpbpl), col); // 1
|
||||||
|
if ((uint32_t)(x1 + xp) < uxres && (uint32_t)(y1 + yp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p + xp + ypbpl), col); // 2
|
||||||
|
if ((uint32_t)(x1 - xp) < uxres && (uint32_t)(y1 + yp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p - xp + ypbpl), col); // 3
|
||||||
|
if ((uint32_t)(x1 - yp) < uxres && (uint32_t)(y1 + xp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p - yp + xpbpl), col); // 4
|
||||||
|
if ((uint32_t)(x1 - yp) < uxres && (uint32_t)(y1 - xp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p - yp - xpbpl), col); // 5
|
||||||
|
if ((uint32_t)(x1 - xp) < uxres && (uint32_t)(y1 - yp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p - xp - ypbpl), col); // 6
|
||||||
|
if ((uint32_t)(x1 + xp) < uxres && (uint32_t)(y1 - yp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p + xp - ypbpl), col); // 7
|
||||||
|
if ((uint32_t)(x1 + yp) < uxres && (uint32_t)(y1 - xp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p + yp - xpbpl), col); // 8
|
||||||
|
}
|
||||||
|
} while (yp > xp);
|
||||||
|
|
||||||
|
enddrawing();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if (d < 0)
|
||||||
|
{
|
||||||
|
d += de;
|
||||||
|
dse += 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
d += dse;
|
||||||
|
dse += 4;
|
||||||
|
yp--;
|
||||||
|
}
|
||||||
|
|
||||||
|
xp++;
|
||||||
|
de += 2;
|
||||||
|
|
||||||
|
int32_t ypbpl = yp*bytesperline;
|
||||||
|
int32_t xpbpl = xp*bytesperline;
|
||||||
|
|
||||||
|
if ((uint32_t)(x1 + yp) < uxres && (uint32_t)(y1 + xp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p + yp + xpbpl), col); // 1
|
||||||
|
if ((uint32_t)(x1 + xp) < uxres && (uint32_t)(y1 + yp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p + xp + ypbpl), col); // 2
|
||||||
|
if ((uint32_t)(x1 - xp) < uxres && (uint32_t)(y1 + yp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p - xp + ypbpl), col); // 3
|
||||||
|
if ((uint32_t)(x1 - yp) < uxres && (uint32_t)(y1 + xp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p - yp + xpbpl), col); // 4
|
||||||
|
if ((uint32_t)(x1 - yp) < uxres && (uint32_t)(y1 - xp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p - yp - xpbpl), col); // 5
|
||||||
|
if ((uint32_t)(x1 - xp) < uxres && (uint32_t)(y1 - yp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p - xp - ypbpl), col); // 6
|
||||||
|
if ((uint32_t)(x1 + xp) < uxres && (uint32_t)(y1 - yp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p + xp - ypbpl), col); // 7
|
||||||
|
if ((uint32_t)(x1 + yp) < uxres && (uint32_t)(y1 - xp) < uydim16)
|
||||||
|
drawpixel_safe((char *)(p + yp - xpbpl), col); // 8
|
||||||
|
} while (yp > xp);
|
||||||
|
|
||||||
|
enddrawing();
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -17021,14 +17063,8 @@ void draw2dgrid(int32_t posxe, int32_t posye, int32_t posze, int16_t cursectnum,
|
||||||
static void drawscreen_drawwall(int32_t i, int32_t posxe, int32_t posye, int32_t posze, int32_t zoome, int32_t grayp)
|
static void drawscreen_drawwall(int32_t i, int32_t posxe, int32_t posye, int32_t posze, int32_t zoome, int32_t grayp)
|
||||||
{
|
{
|
||||||
const walltype *wal = &wall[i];
|
const walltype *wal = &wall[i];
|
||||||
int32_t j, x1, y1, x2, y2, dz = 0, dz2 = 0;
|
|
||||||
int32_t fz=0,fzn=0;
|
|
||||||
// intptr_t tempint;
|
|
||||||
char col;
|
|
||||||
|
|
||||||
int64_t dist,dx,dy;
|
int32_t j = wal->nextwall;
|
||||||
|
|
||||||
j = wal->nextwall;
|
|
||||||
#if 0
|
#if 0
|
||||||
if (editstatus == 0)
|
if (editstatus == 0)
|
||||||
{
|
{
|
||||||
|
@ -17042,34 +17078,32 @@ static void drawscreen_drawwall(int32_t i, int32_t posxe, int32_t posye, int32_t
|
||||||
if (!m32_sideview && !(grayp&2) && (j >= 0) && (i > j)) return;
|
if (!m32_sideview && !(grayp&2) && (j >= 0) && (i > j)) return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char col;
|
||||||
|
|
||||||
if (grayp&1)
|
if (grayp&1)
|
||||||
{
|
|
||||||
col = 8;
|
col = 8;
|
||||||
}
|
|
||||||
else if (j < 0)
|
else if (j < 0)
|
||||||
{
|
col = (i == linehighlight) && !(totalclock & 16) ? 7 : 15;
|
||||||
col = 15;
|
|
||||||
if (i == linehighlight)
|
|
||||||
col = (totalclock & 16) ? 15 : 7;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
col = 33;
|
|
||||||
if ((wal->cstat&1) != 0)
|
|
||||||
col = 5;
|
|
||||||
if ((unsigned)wal->nextwall < MAXWALLS && ((wal->cstat^wall[j].cstat)&1))
|
if ((unsigned)wal->nextwall < MAXWALLS && ((wal->cstat^wall[j].cstat)&1))
|
||||||
col = 2;
|
col = 2;
|
||||||
|
else if ((wal->cstat&1) != 0)
|
||||||
|
col = 5;
|
||||||
|
else col = 33;
|
||||||
|
|
||||||
if ((i == linehighlight) || ((linehighlight >= 0) && (i == wall[linehighlight].nextwall)))
|
if ((i == linehighlight) || ((linehighlight >= 0) && (i == wall[linehighlight].nextwall)))
|
||||||
if (totalclock & 16)
|
if (totalclock & 16)
|
||||||
col += (2<<2);
|
col += (2<<2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t x1, y1, x2, y2;
|
||||||
screencoords(&x1,&y1, wal->x-posxe,wal->y-posye, zoome);
|
screencoords(&x1,&y1, wal->x-posxe,wal->y-posye, zoome);
|
||||||
screencoords(&x2,&y2, wall[wal->point2].x-posxe,wall[wal->point2].y-posye, zoome);
|
screencoords(&x2,&y2, wall[wal->point2].x-posxe,wall[wal->point2].y-posye, zoome);
|
||||||
|
|
||||||
dx = wal->x-wall[wal->point2].x;
|
int64_t dx = wal->x-wall[wal->point2].x;
|
||||||
dy = wal->y-wall[wal->point2].y;
|
int64_t dy = wal->y-wall[wal->point2].y;
|
||||||
dist = dx*dx+dy*dy;
|
int64_t dist = dx*dx+dy*dy;
|
||||||
|
|
||||||
if (dist > INT32_MAX)
|
if (dist > INT32_MAX)
|
||||||
{
|
{
|
||||||
|
@ -17086,17 +17120,18 @@ static void drawscreen_drawwall(int32_t i, int32_t posxe, int32_t posye, int32_t
|
||||||
else if (circlewall >= 0 && (i == circlewall || wal->nextwall == circlewall))
|
else if (circlewall >= 0 && (i == circlewall || wal->nextwall == circlewall))
|
||||||
col = 14;
|
col = 14;
|
||||||
|
|
||||||
|
int32_t fz=0, fzn=0;
|
||||||
|
|
||||||
if (m32_sideview)
|
if (m32_sideview)
|
||||||
{
|
{
|
||||||
// draw vertical line to neighboring wall
|
// draw vertical line to neighboring wall
|
||||||
int32_t fz2;
|
|
||||||
int32_t sect = sectorofwall(i);
|
int32_t sect = sectorofwall(i);
|
||||||
|
|
||||||
fz = getflorzofslope(sect, wal->x,wal->y);
|
fz = getflorzofslope(sect, wal->x,wal->y);
|
||||||
fz2 = getflorzofslope(sect, wall[wal->point2].x,wall[wal->point2].y);
|
int32_t fz2 = getflorzofslope(sect, wall[wal->point2].x,wall[wal->point2].y);
|
||||||
|
|
||||||
dz = getscreenvdisp(fz-posze,zoome);
|
int32_t dz = getscreenvdisp(fz-posze,zoome);
|
||||||
dz2 = getscreenvdisp(fz2-posze,zoome);
|
int32_t dz2 = getscreenvdisp(fz2-posze,zoome);
|
||||||
|
|
||||||
y1 += dz;
|
y1 += dz;
|
||||||
y2 += dz2;
|
y2 += dz2;
|
||||||
|
@ -17110,6 +17145,7 @@ static void drawscreen_drawwall(int32_t i, int32_t posxe, int32_t posye, int32_t
|
||||||
#ifdef YAX_ENABLE
|
#ifdef YAX_ENABLE
|
||||||
{
|
{
|
||||||
int16_t nw = yax_getnextwall(i, YAX_CEILING);
|
int16_t nw = yax_getnextwall(i, YAX_CEILING);
|
||||||
|
|
||||||
if (nw >= 0)
|
if (nw >= 0)
|
||||||
{
|
{
|
||||||
int32_t odrawlinepat = drawlinepat;
|
int32_t odrawlinepat = drawlinepat;
|
||||||
|
@ -17150,27 +17186,25 @@ static void drawscreen_drawwall(int32_t i, int32_t posxe, int32_t posye, int32_t
|
||||||
|
|
||||||
if (wal->nextsector >= 0)
|
if (wal->nextsector >= 0)
|
||||||
{
|
{
|
||||||
int32_t z1 = sector[sectorofwall(i)].floorz;
|
int32_t const z1 = sector[sectorofwall(i)].floorz;
|
||||||
int32_t z2 = sector[wal->nextsector].floorz;
|
int32_t const z2 = sector[wal->nextsector].floorz;
|
||||||
|
|
||||||
if (z1 != z2 || showheightindicators == 2)
|
if (z1 != z2 || showheightindicators == 2)
|
||||||
{
|
{
|
||||||
// Red walls. Show them on equal-height walls ONLY with setting 2.
|
// Red walls. Show them on equal-height walls ONLY with setting 2.
|
||||||
int32_t bb = (z2 < z1);
|
int32_t const bb = (z2 < z1);
|
||||||
int32_t dx = mulscale11(sintable[(k+1024 + 1024*bb)&2047],min(4096, zoome)) / 2560;
|
int32_t const dx = mulscale11(sintable[(k+1024 + 1024*bb)&2047],min(4096, zoome)) / 2560;
|
||||||
int32_t dy = mulscale11(sintable[(k+512 + 1024*bb)&2047],min(4096, zoome)) / 2560;
|
int32_t const dy = scalescreeny(mulscale11(sintable[(k+512 + 1024*bb)&2047], min(4096, zoome)) / 2560);
|
||||||
|
|
||||||
dy = scalescreeny(dy);
|
|
||||||
drawline16mid(dax,day, dax+dx,day+dy, editorcolors[col]);
|
drawline16mid(dax,day, dax+dx,day+dy, editorcolors[col]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (showheightindicators == 2)
|
else if (showheightindicators == 2)
|
||||||
{
|
{
|
||||||
// Show them on white walls ONLY with setting 2.
|
// Show them on white walls ONLY with setting 2.
|
||||||
int32_t dx = mulscale11(sintable[(k+2048)&2047],min(4096, zoome)) / 2560;
|
int32_t const dx = mulscale11(sintable[(k+2048)&2047],min(4096, zoome)) / 2560;
|
||||||
int32_t dy = mulscale11(sintable[(k+1536)&2047],min(4096, zoome)) / 2560;
|
int32_t const dy = scalescreeny(mulscale11(sintable[(k+1536)&2047], min(4096, zoome)) / 2560);
|
||||||
|
|
||||||
dy = scalescreeny(dy);
|
|
||||||
drawline16mid(dax,day, dax+dx,day+dy, editorcolors[col]);
|
drawline16mid(dax,day, dax+dx,day+dy, editorcolors[col]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17181,11 +17215,14 @@ static void drawscreen_drawwall(int32_t i, int32_t posxe, int32_t posye, int32_t
|
||||||
{
|
{
|
||||||
int32_t pointsize = 2;
|
int32_t pointsize = 2;
|
||||||
|
|
||||||
|
col = 15;
|
||||||
|
|
||||||
if (i == pointhighlight || ((pointhighlight < MAXWALLS) && (pointhighlight >= 0) &&
|
if (i == pointhighlight || ((pointhighlight < MAXWALLS) && (pointhighlight >= 0) &&
|
||||||
(wall[i].x == wall[pointhighlight].x) && (wall[i].y == wall[pointhighlight].y)))
|
(wall[i].x == wall[pointhighlight].x) && (wall[i].y == wall[pointhighlight].y)))
|
||||||
{
|
{
|
||||||
if (totalclock & 16)
|
if (totalclock & 16)
|
||||||
pointsize++;
|
pointsize++;
|
||||||
|
else col = 7;
|
||||||
}
|
}
|
||||||
else //if (highlightcnt > 0)
|
else //if (highlightcnt > 0)
|
||||||
{
|
{
|
||||||
|
@ -17193,10 +17230,10 @@ static void drawscreen_drawwall(int32_t i, int32_t posxe, int32_t posye, int32_t
|
||||||
{
|
{
|
||||||
if (totalclock & 16)
|
if (totalclock & 16)
|
||||||
pointsize++;
|
pointsize++;
|
||||||
|
else col = 7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
col = 15;
|
|
||||||
if (m32_sideview)
|
if (m32_sideview)
|
||||||
{
|
{
|
||||||
if (wal->nextwall >= 0)
|
if (wal->nextwall >= 0)
|
||||||
|
@ -17208,10 +17245,7 @@ static void drawscreen_drawwall(int32_t i, int32_t posxe, int32_t posye, int32_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// tempint = ((midydim16+y1)*bytesperline)+(halfxdim16+x1)+frameplace;
|
drawcircle16(halfxdim16+x1, midydim16+y1, pointsize, 16384, editorcolors[col]);
|
||||||
do
|
|
||||||
drawcircle16(halfxdim16+x1, midydim16+y1, pointsize--, 16384, editorcolors[col]);
|
|
||||||
while (pointsize);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -269,13 +269,13 @@ void swapbuf4(void *a, void *b, int32_t c)
|
||||||
void clearbufbyte(void *D, int32_t c, int32_t a)
|
void clearbufbyte(void *D, int32_t c, int32_t a)
|
||||||
{
|
{
|
||||||
// Cringe City
|
// Cringe City
|
||||||
|
int32_t const m[4] = { 0xffl, 0xff00l, 0xff0000l, (int32_t)0xff000000l };
|
||||||
|
int32_t z = 0;
|
||||||
char *p = (char *)D;
|
char *p = (char *)D;
|
||||||
int32_t m[4] = { 0xffl,0xff00l,0xff0000l,(int32_t)0xff000000l };
|
|
||||||
int32_t n[4] = { 0,8,16,24 };
|
|
||||||
int32_t z=0;
|
|
||||||
while ((c--) > 0)
|
while ((c--) > 0)
|
||||||
{
|
{
|
||||||
*(p++) = (uint8_t)((a & m[z])>>n[z]);
|
*(p++) = (uint8_t)((a & m[z])>>(z<<3));
|
||||||
z=(z+1)&3;
|
z=(z+1)&3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -866,7 +866,7 @@ const char *SectorEffectorText(int32_t spritenum)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (cursprite == spritenum)
|
if (cursprite == spritenum)
|
||||||
Bsprintf(tempbuf, "SE %d %s", sprite[spritenum].lotag, lo);
|
Bsprintf(tempbuf, "SE %d %s", TrackerCast(sprite[spritenum].lotag), lo);
|
||||||
else Bstrcpy(tempbuf, lo);
|
else Bstrcpy(tempbuf, lo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7705,7 +7705,7 @@ static void Keys2d(void)
|
||||||
|
|
||||||
if (autogrid)
|
if (autogrid)
|
||||||
{
|
{
|
||||||
grid = 0;
|
grid = -1;
|
||||||
|
|
||||||
while (grid++ < 7)
|
while (grid++ < 7)
|
||||||
{
|
{
|
||||||
|
@ -10256,8 +10256,11 @@ void ExtPreCheckKeys(void) // just before drawrooms
|
||||||
if (xp1 < -f || xp1 > xdim+f || yp1 < -f || yp1 > ydim16+f)
|
if (xp1 < -f || xp1 > xdim+f || yp1 < -f || yp1 > ydim16+f)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
const int32_t oviewingrange=viewingrange, oyxaspect=yxaspect;
|
||||||
|
setaspect(yxaspect, divscale16(sprite[i].yrepeat, sprite[i].xrepeat));
|
||||||
rotatesprite(xp1<<16,yp1<<16,zoom<<5,daang,picnum,
|
rotatesprite(xp1<<16,yp1<<16,zoom<<5,daang,picnum,
|
||||||
shade,sprite[i].pal,flags,0,0,xdim-1,ydim16-1);
|
shade,sprite[i].pal,flags|1024,0,0,xdim-1,ydim16-1);
|
||||||
|
setaspect(oviewingrange, oyxaspect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue