mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-24 10:40:46 +00:00
git-svn-id: https://svn.eduke32.com/eduke32@1062 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
37d375a0ff
commit
60526dbb26
10 changed files with 167 additions and 182 deletions
|
@ -43,7 +43,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BUILDDATE " 20080905"
|
#define BUILDDATE " 20080907"
|
||||||
#define VERSION " 1.2.0devel"
|
#define VERSION " 1.2.0devel"
|
||||||
|
|
||||||
static int floor_over_floor;
|
static int floor_over_floor;
|
||||||
|
@ -3178,10 +3178,10 @@ static void DoSpriteOrnament(int i)
|
||||||
short hitsect, hitwall, hitsprite;
|
short hitsect, hitwall, hitsprite;
|
||||||
|
|
||||||
hitscan(sprite[i].x,sprite[i].y,sprite[i].z,sprite[i].sectnum,
|
hitscan(sprite[i].x,sprite[i].y,sprite[i].z,sprite[i].sectnum,
|
||||||
sintable[(sprite[i].ang+2560+1024)&2047],
|
sintable[(sprite[i].ang+2560+1024)&2047],
|
||||||
sintable[(sprite[i].ang+2048+1024)&2047],
|
sintable[(sprite[i].ang+2048+1024)&2047],
|
||||||
0,
|
0,
|
||||||
&hitsect,&hitwall,&hitsprite,&hitx,&hity,&hitz,CLIPMASK1);
|
&hitsect,&hitwall,&hitsprite,&hitx,&hity,&hitz,CLIPMASK1);
|
||||||
|
|
||||||
sprite[i].x = hitx;
|
sprite[i].x = hitx;
|
||||||
sprite[i].y = hity;
|
sprite[i].y = hity;
|
||||||
|
@ -3270,8 +3270,7 @@ void rendertext(short startspr)
|
||||||
if (quitevent) quitevent = 0;
|
if (quitevent) quitevent = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// vertical gap in "relative" pixels (256 z-units for yrepeat=64)
|
if (keystatus[KEYSC_UP]) // vertical gap in pixels (32 x-units)
|
||||||
if (keystatus[KEYSC_UP])
|
|
||||||
{
|
{
|
||||||
keystatus[KEYSC_UP]=0;
|
keystatus[KEYSC_UP]=0;
|
||||||
if (vgap<255) vgap++;
|
if (vgap<255) vgap++;
|
||||||
|
@ -3282,8 +3281,7 @@ void rendertext(short startspr)
|
||||||
if (vgap>0) vgap--;
|
if (vgap>0) vgap--;
|
||||||
}
|
}
|
||||||
|
|
||||||
// horizontal gap in half "relative" pixels (16 x-units for xrepeat=64)
|
if (keystatus[KEYSC_RIGHT]) // horizontal gap in half pixels
|
||||||
if (keystatus[KEYSC_RIGHT])
|
|
||||||
{
|
{
|
||||||
keystatus[KEYSC_RIGHT]=0;
|
keystatus[KEYSC_RIGHT]=0;
|
||||||
if (hgap<255) hgap++;
|
if (hgap<255) hgap++;
|
||||||
|
@ -3294,7 +3292,7 @@ void rendertext(short startspr)
|
||||||
if (hgap>0) hgap--;
|
if (hgap>0) hgap--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keystatus[KEYSC_INSERT]) // space gap in half "relative" pixels
|
if (keystatus[KEYSC_INSERT]) // space gap in half pixels
|
||||||
{
|
{
|
||||||
keystatus[KEYSC_INSERT]=0;
|
keystatus[KEYSC_INSERT]=0;
|
||||||
if (spcgap[basetidx]<255) spcgap[basetidx]++;
|
if (spcgap[basetidx]<255) spcgap[basetidx]++;
|
||||||
|
@ -3327,33 +3325,6 @@ void rendertext(short startspr)
|
||||||
if (sprite[curspr].pal>0) sprite[curspr].pal--;
|
if (sprite[curspr].pal>0) sprite[curspr].pal--;
|
||||||
}
|
}
|
||||||
|
|
||||||
t=0;
|
|
||||||
if (keystatus[KEYSC_gUP]) // offsets
|
|
||||||
{
|
|
||||||
keystatus[KEYSC_gUP]=0; t=1;
|
|
||||||
if (sprite[curspr].yoffset<127) sprite[curspr].yoffset++;
|
|
||||||
}
|
|
||||||
if (keystatus[KEYSC_gDOWN])
|
|
||||||
{
|
|
||||||
keystatus[KEYSC_gDOWN]=0; t=1;
|
|
||||||
if (sprite[curspr].yoffset>-128) sprite[curspr].yoffset--;
|
|
||||||
}
|
|
||||||
if (keystatus[KEYSC_gLEFT])
|
|
||||||
{
|
|
||||||
keystatus[KEYSC_gLEFT]=0; t=1;
|
|
||||||
if (sprite[curspr].xoffset<127) sprite[curspr].xoffset++;
|
|
||||||
}
|
|
||||||
if (keystatus[KEYSC_gRIGHT])
|
|
||||||
{
|
|
||||||
keystatus[KEYSC_gRIGHT]=0; t=1;
|
|
||||||
if (sprite[curspr].xoffset>-128) sprite[curspr].xoffset--;
|
|
||||||
}
|
|
||||||
if (t==1)
|
|
||||||
{
|
|
||||||
Bsprintf(tempbuf,"Offset: %d,%d",sprite[curspr].xoffset,sprite[curspr].yoffset);
|
|
||||||
message(tempbuf);
|
|
||||||
}
|
|
||||||
|
|
||||||
drawrooms(posx,posy,posz,ang,horiz,cursectnum);
|
drawrooms(posx,posy,posz,ang,horiz,cursectnum);
|
||||||
#ifdef SUPERBUILD
|
#ifdef SUPERBUILD
|
||||||
ExtAnalyzeSprites();
|
ExtAnalyzeSprites();
|
||||||
|
@ -3458,6 +3429,7 @@ void rendertext(short startspr)
|
||||||
sprite[i].pal = sprite[curspr].pal;
|
sprite[i].pal = sprite[curspr].pal;
|
||||||
sprite[i].xrepeat = sprite[curspr].xrepeat;
|
sprite[i].xrepeat = sprite[curspr].xrepeat;
|
||||||
sprite[i].yrepeat = sprite[curspr].yrepeat;
|
sprite[i].yrepeat = sprite[curspr].yrepeat;
|
||||||
|
sprite[i].xoffset = 0, sprite[i].yoffset = 0;
|
||||||
sprite[i].ang = daang;
|
sprite[i].ang = daang;
|
||||||
sprite[i].xvel = 0; sprite[i].yvel = 0; sprite[i].zvel = 0;
|
sprite[i].xvel = 0; sprite[i].yvel = 0; sprite[i].zvel = 0;
|
||||||
sprite[i].owner = -1;
|
sprite[i].owner = -1;
|
||||||
|
@ -3469,20 +3441,7 @@ void rendertext(short startspr)
|
||||||
sprite[i].xoffset = -(((picanm[sprite[i].picnum])>>8)&255);
|
sprite[i].xoffset = -(((picanm[sprite[i].picnum])>>8)&255);
|
||||||
sprite[i].yoffset = -(((picanm[sprite[i].picnum])>>16)&255);
|
sprite[i].yoffset = -(((picanm[sprite[i].picnum])>>16)&255);
|
||||||
|
|
||||||
// Tweaking the position of some letters that are still a bit off
|
// TODO: tweaking the position of some letters that are still a bit off
|
||||||
if (basetile == STARTALPHANUM)
|
|
||||||
{
|
|
||||||
if (ch=='^') sprite[i].yoffset = 1;
|
|
||||||
if (ch=='q' || ch=='Q') sprite[i].yoffset = -2;
|
|
||||||
if (ch==';') sprite[i].yoffset = -3;
|
|
||||||
}
|
|
||||||
else if (basetile == MINIFONT)
|
|
||||||
{
|
|
||||||
if (ch=='\'') sprite[i].yoffset = 3;
|
|
||||||
if (ch=='q' || ch=='Q') sprite[i].yoffset = -1;
|
|
||||||
if (ch==':') sprite[i].yoffset = 1;
|
|
||||||
if (ch=='"') sprite[i].yoffset = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
DoSpriteOrnament(i);
|
DoSpriteOrnament(i);
|
||||||
|
|
||||||
|
@ -3562,7 +3521,7 @@ void rendertext(short startspr)
|
||||||
|
|
||||||
static void Keys3d(void)
|
static void Keys3d(void)
|
||||||
{
|
{
|
||||||
int i,count,rate,nexti,changedir;
|
int i,count,nexti,changedir;
|
||||||
int j, k, tempint = 0, hiz, loz;
|
int j, k, tempint = 0, hiz, loz;
|
||||||
int hihit, lohit;
|
int hihit, lohit;
|
||||||
char smooshyalign=0, repeatpanalign=0, buffer[80];
|
char smooshyalign=0, repeatpanalign=0, buffer[80];
|
||||||
|
@ -5026,22 +4985,41 @@ static void Keys3d(void)
|
||||||
|
|
||||||
// DoWater(horiz);
|
// DoWater(horiz);
|
||||||
|
|
||||||
if (totalclock != clockval[clockcnt])
|
if (framerateon)
|
||||||
{
|
{
|
||||||
rate=(120*AVERAGEFRAMES)/(totalclock-clockval[clockcnt]);
|
static int FrameCount = 0;
|
||||||
clockval[clockcnt] = totalclock;
|
static int LastCount = 0;
|
||||||
if (framerateon)
|
static int LastSec = 0;
|
||||||
|
static int LastMS = 0;
|
||||||
|
int ms = getticks();
|
||||||
|
int howlong = ms - LastMS;
|
||||||
|
if (howlong >= 0)
|
||||||
{
|
{
|
||||||
int x = (xdimgame <= 640);
|
int thisSec = ms/1000;
|
||||||
int p = 32>>x;
|
int x = (xdim <= 640);
|
||||||
|
int chars = Bsprintf(tempbuf, "%2u ms (%3u fps)", howlong, LastCount);
|
||||||
|
|
||||||
Bsprintf(tempbuf,"%4d",max(rate,0));
|
if (!x)
|
||||||
printext256(xdimgame-p-1+1,0+2,0,-1,tempbuf,x);
|
{
|
||||||
printext256(xdimgame-p-1,0+1,(rate < 40) ? COLOR_RED : COLOR_WHITE,-1,tempbuf,x);
|
printext256(windowx2-(chars<<3)+1,windowy1+2,0,-1,tempbuf,x);
|
||||||
enddrawing();
|
printext256(windowx2-(chars<<3),windowy1+1,COLOR_WHITE,-1,tempbuf,x);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printext256(windowx2-(chars<<2)+1,windowy1+2,0,-1,tempbuf,x);
|
||||||
|
printext256(windowx2-(chars<<2),windowy1+1,COLOR_WHITE,-1,tempbuf,x);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LastSec < thisSec)
|
||||||
|
{
|
||||||
|
LastCount = FrameCount / (thisSec - LastSec);
|
||||||
|
LastSec = thisSec;
|
||||||
|
FrameCount = 0;
|
||||||
|
}
|
||||||
|
FrameCount++;
|
||||||
}
|
}
|
||||||
|
LastMS = ms;
|
||||||
}
|
}
|
||||||
clockcnt = ((clockcnt+1)&(AVERAGEFRAMES-1));
|
|
||||||
|
|
||||||
tempbuf[0] = 0;
|
tempbuf[0] = 0;
|
||||||
if (bstatus&4 && !(bstatus&(1|2)) && !unrealedlook) //PK
|
if (bstatus&4 && !(bstatus&(1|2)) && !unrealedlook) //PK
|
||||||
|
@ -6576,13 +6554,15 @@ static void Keys2d(void)
|
||||||
|
|
||||||
if (sprite[i].picnum == 5 /*&& zoom >= 256*/ && sprite[i].sectnum != MAXSECTORS)
|
if (sprite[i].picnum == 5 /*&& zoom >= 256*/ && sprite[i].sectnum != MAXSECTORS)
|
||||||
{
|
{
|
||||||
radius = mulscale15(sprite[i].hitag,zoom);
|
radius = mulscale14(sprite[i].hitag,zoom);
|
||||||
col = 6;
|
col = 6;
|
||||||
if (i+16384 == pointhighlight)
|
if (i+16384 == pointhighlight)
|
||||||
if (totalclock & 32) col += (2<<2);
|
if (totalclock & 32) col += (2<<2);
|
||||||
// drawlinepat = 0xf0f0f0f0;
|
drawlinepat = 0xf0f0f0f0;
|
||||||
drawcircle16(halfxdim16+xp1, midydim16+yp1, radius, col);
|
drawcircle16(halfxdim16+xp1, midydim16+yp1, radius, col);
|
||||||
// drawlinepat = 0xffffffff;
|
drawlinepat = 0xffffffff;
|
||||||
|
// radius = mulscale15(sprite[i].hitag,zoom);
|
||||||
|
// drawcircle16(halfxdim16+xp1, midydim16+yp1, radius, col);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
enddrawing();
|
enddrawing();
|
||||||
|
@ -9716,15 +9696,12 @@ static void FuncMenuOpts(void)
|
||||||
printext16(8,ydim-STATUS2DSIZ+72,11,-1,snotbuf,0);
|
printext16(8,ydim-STATUS2DSIZ+72,11,-1,snotbuf,0);
|
||||||
Bsprintf(snotbuf,"Global Z coord shift");
|
Bsprintf(snotbuf,"Global Z coord shift");
|
||||||
printext16(8,ydim-STATUS2DSIZ+80,11,-1,snotbuf,0);
|
printext16(8,ydim-STATUS2DSIZ+80,11,-1,snotbuf,0);
|
||||||
Bsprintf(snotbuf,"Up-size selected sectors");
|
Bsprintf(snotbuf,"Resize selection");
|
||||||
printext16(8,ydim-STATUS2DSIZ+88,11,-1,snotbuf,0);
|
printext16(8,ydim-STATUS2DSIZ+88,11,-1,snotbuf,0);
|
||||||
Bsprintf(snotbuf,"Down-size selected sects");
|
|
||||||
printext16(8,ydim-STATUS2DSIZ+96,11,-1,snotbuf,0);
|
|
||||||
Bsprintf(snotbuf,"Global shade divide");
|
Bsprintf(snotbuf,"Global shade divide");
|
||||||
printext16(8,ydim-STATUS2DSIZ+104,11,-1,snotbuf,0);
|
printext16(8,ydim-STATUS2DSIZ+96,11,-1,snotbuf,0);
|
||||||
|
|
||||||
Bsprintf(snotbuf,"Global visibility divide");
|
Bsprintf(snotbuf,"Global visibility divide");
|
||||||
printext16(200,ydim-STATUS2DSIZ+48,11,-1,snotbuf,0);
|
printext16(8,ydim-STATUS2DSIZ+104,11,-1,snotbuf,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void FuncMenu(void)
|
static void FuncMenu(void)
|
||||||
|
@ -9765,6 +9742,7 @@ static void FuncMenu(void)
|
||||||
}
|
}
|
||||||
keystatus[KEYSC_UP] = 0;
|
keystatus[KEYSC_UP] = 0;
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
if (keystatus[KEYSC_LEFT])
|
if (keystatus[KEYSC_LEFT])
|
||||||
{
|
{
|
||||||
/* if (col == 2)
|
/* if (col == 2)
|
||||||
|
@ -9784,12 +9762,13 @@ static void FuncMenu(void)
|
||||||
col = 0;
|
col = 0;
|
||||||
xpos = 8;
|
xpos = 8;
|
||||||
rowmax = 7;
|
rowmax = 7;
|
||||||
dispwidth = 23;
|
dispwidth = 24;
|
||||||
disptext[dispwidth] = 0;
|
disptext[dispwidth] = 0;
|
||||||
if (row > rowmax) row = rowmax;
|
if (row > rowmax) row = rowmax;
|
||||||
}
|
}
|
||||||
keystatus[KEYSC_LEFT] = 0;
|
keystatus[KEYSC_LEFT] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keystatus[KEYSC_RIGHT])
|
if (keystatus[KEYSC_RIGHT])
|
||||||
{
|
{
|
||||||
if (col == 0)
|
if (col == 0)
|
||||||
|
@ -9814,6 +9793,7 @@ static void FuncMenu(void)
|
||||||
} */
|
} */
|
||||||
keystatus[KEYSC_RIGHT] = 0;
|
keystatus[KEYSC_RIGHT] = 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
if (keystatus[KEYSC_ENTER])
|
if (keystatus[KEYSC_ENTER])
|
||||||
{
|
{
|
||||||
keystatus[KEYSC_ENTER] = 0;
|
keystatus[KEYSC_ENTER] = 0;
|
||||||
|
@ -9932,35 +9912,36 @@ static void FuncMenu(void)
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
{
|
{
|
||||||
for (i=Bsprintf(disptext,"Up-size selected sectors"); i < dispwidth; i++) disptext[i] = ' ';
|
for (i=Bsprintf(disptext,"Resize selection"); i < dispwidth; i++) disptext[i] = ' ';
|
||||||
if (editval)
|
if (editval)
|
||||||
{
|
{
|
||||||
j=getnumber16("Size multiplier: ",1,8,0);
|
j=getnumber16("Percentage of original: ",100,1000,0);
|
||||||
if (j!=1)
|
if (j!=100)
|
||||||
{
|
{
|
||||||
int w, currsector, start_wall, end_wall;
|
int w, currsector, start_wall, end_wall;
|
||||||
|
double size = (j/100.f);
|
||||||
for (i = 0; i < highlightsectorcnt; i++)
|
for (i = 0; i < highlightsectorcnt; i++)
|
||||||
{
|
{
|
||||||
currsector = highlightsector[i];
|
currsector = highlightsector[i];
|
||||||
sector[currsector].ceilingz *= j;
|
sector[currsector].ceilingz *= size;
|
||||||
sector[currsector].floorz *= j;
|
sector[currsector].floorz *= size;
|
||||||
// Do all the walls in the sector
|
// Do all the walls in the sector
|
||||||
start_wall = sector[currsector].wallptr;
|
start_wall = sector[currsector].wallptr;
|
||||||
end_wall = start_wall + sector[currsector].wallnum;
|
end_wall = start_wall + sector[currsector].wallnum;
|
||||||
for (w = start_wall; w < end_wall; w++)
|
for (w = start_wall; w < end_wall; w++)
|
||||||
{
|
{
|
||||||
wall[w].x *= j;
|
wall[w].x *= size;
|
||||||
wall[w].y *= j;
|
wall[w].y *= size;
|
||||||
wall[w].yrepeat = min(wall[w].yrepeat/j,255);
|
wall[w].yrepeat = min(wall[w].yrepeat/size,255);
|
||||||
}
|
}
|
||||||
w = headspritesect[highlightsector[i]];
|
w = headspritesect[highlightsector[i]];
|
||||||
while (w >= 0)
|
while (w >= 0)
|
||||||
{
|
{
|
||||||
sprite[w].x *= j;
|
sprite[w].x *= size;
|
||||||
sprite[w].y *= j;
|
sprite[w].y *= size;
|
||||||
sprite[w].z *= j;
|
sprite[w].z *= size;
|
||||||
sprite[w].xrepeat = min(max(sprite[w].xrepeat*j,1),255);
|
sprite[w].xrepeat = min(max(sprite[w].xrepeat*size,1),255);
|
||||||
sprite[w].yrepeat = min(max(sprite[w].yrepeat*j,1),255);
|
sprite[w].yrepeat = min(max(sprite[w].yrepeat*size,1),255);
|
||||||
w = nextspritesect[w];
|
w = nextspritesect[w];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9971,46 +9952,6 @@ static void FuncMenu(void)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
{
|
|
||||||
for (i=Bsprintf(disptext,"Down-size selected sects"); i < dispwidth; i++) disptext[i] = ' ';
|
|
||||||
if (editval)
|
|
||||||
{
|
|
||||||
j=getnumber16("Size divisor: ",1,8,0);
|
|
||||||
if (j!=1)
|
|
||||||
{
|
|
||||||
int w, currsector, start_wall, end_wall;
|
|
||||||
for (i = 0; i < highlightsectorcnt; i++)
|
|
||||||
{
|
|
||||||
currsector = highlightsector[i];
|
|
||||||
sector[currsector].ceilingz /= j;
|
|
||||||
sector[currsector].floorz /= j;
|
|
||||||
// Do all the walls in the sector
|
|
||||||
start_wall = sector[currsector].wallptr;
|
|
||||||
end_wall = start_wall + sector[currsector].wallnum;
|
|
||||||
for (w = start_wall; w < end_wall; w++)
|
|
||||||
{
|
|
||||||
wall[w].x /= j;
|
|
||||||
wall[w].y /= j;
|
|
||||||
wall[w].yrepeat = min(wall[w].yrepeat*j,255);
|
|
||||||
}
|
|
||||||
w = headspritesect[highlightsector[i]];
|
|
||||||
while (w >= 0)
|
|
||||||
{
|
|
||||||
sprite[w].x /= j;
|
|
||||||
sprite[w].y /= j;
|
|
||||||
sprite[w].z /= j;
|
|
||||||
sprite[w].xrepeat = min(max(sprite[w].xrepeat/j,1),255);
|
|
||||||
sprite[w].yrepeat = min(max(sprite[w].yrepeat/j,1),255);
|
|
||||||
w = nextspritesect[w];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printmessage16("Map scaled");
|
|
||||||
}
|
|
||||||
else printmessage16("Aborted");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
{
|
{
|
||||||
for (i=Bsprintf(disptext,"Global shade divide"); i < dispwidth; i++) disptext[i] = ' ';
|
for (i=Bsprintf(disptext,"Global shade divide"); i < dispwidth; i++) disptext[i] = ' ';
|
||||||
if (editval)
|
if (editval)
|
||||||
|
@ -10033,12 +9974,7 @@ static void FuncMenu(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
case 7:
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
switch (row)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
{
|
{
|
||||||
for (i=Bsprintf(disptext,"Global visibility divide"); i < dispwidth; i++) disptext[i] = ' ';
|
for (i=Bsprintf(disptext,"Global visibility divide"); i < dispwidth; i++) disptext[i] = ' ';
|
||||||
if (editval)
|
if (editval)
|
||||||
|
|
|
@ -477,7 +477,7 @@ typedef struct {
|
||||||
short somethingonplayer,on_crane,i,one_parallax_sectnum;
|
short somethingonplayer,on_crane,i,one_parallax_sectnum;
|
||||||
short over_shoulder_on,random_club_frame,fist_incs;
|
short over_shoulder_on,random_club_frame,fist_incs;
|
||||||
short one_eighty_count,cheat_phase;
|
short one_eighty_count,cheat_phase;
|
||||||
short dummyplayersprite,extra_extra8,quick_kick;
|
short dummyplayersprite,extra_extra8,quick_kick,last_quick_kick;
|
||||||
short heat_amount,actorsqu,timebeforeexit,customexitsound;
|
short heat_amount,actorsqu,timebeforeexit,customexitsound;
|
||||||
|
|
||||||
short weaprecs[16],weapreccnt;
|
short weaprecs[16],weapreccnt;
|
||||||
|
|
|
@ -2560,17 +2560,62 @@ static void coolgaugetext(int snum)
|
||||||
|
|
||||||
static void ShowFrameRate(void)
|
static void ShowFrameRate(void)
|
||||||
{
|
{
|
||||||
static int frameval[AVERAGEFRAMES], framecnt = 0;
|
// adapted from ZDoom because I like it better than what we had
|
||||||
|
// applicable ZDoom code available under GPL from csDoom
|
||||||
if (totalclock != frameval[framecnt])
|
if (ud.tickrate == 1)
|
||||||
{
|
{
|
||||||
framerate=(timer*AVERAGEFRAMES)/(totalclock-frameval[framecnt]);
|
static int FrameCount = 0;
|
||||||
frameval[framecnt] = totalclock;
|
static int LastCount = 0;
|
||||||
if (ud.tickrate)
|
static int LastSec = 0;
|
||||||
|
static int LastMS = 0;
|
||||||
|
int ms = getticks();
|
||||||
|
int howlong = ms - LastMS;
|
||||||
|
if (howlong >= 0)
|
||||||
|
{
|
||||||
|
int thisSec = ms/1000;
|
||||||
|
int x = (xdim <= 640);
|
||||||
|
int chars = Bsprintf(tempbuf, "%2u ms (%3u fps)", howlong, LastCount);
|
||||||
|
|
||||||
|
if (!x)
|
||||||
|
{
|
||||||
|
printext256(windowx2-(chars<<3)+1,windowy1+2,0,-1,tempbuf,x);
|
||||||
|
printext256(windowx2-(chars<<3),windowy1+1,COLOR_WHITE,-1,tempbuf,x);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printext256(windowx2-(chars<<2)+1,windowy1+2,0,-1,tempbuf,x);
|
||||||
|
printext256(windowx2-(chars<<2),windowy1+1,COLOR_WHITE,-1,tempbuf,x);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (numplayers > 1)
|
||||||
|
if ((totalclock - lastpackettime) > 1)
|
||||||
|
{
|
||||||
|
for (howlong = (totalclock - lastpackettime);howlong>0 && howlong<(xdim>>2);howlong--)
|
||||||
|
printext256(4L*howlong,0,COLOR_WHITE,-1,".",0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LastSec < thisSec)
|
||||||
|
{
|
||||||
|
framerate = LastCount = FrameCount / (thisSec - LastSec);
|
||||||
|
LastSec = thisSec;
|
||||||
|
FrameCount = 0;
|
||||||
|
}
|
||||||
|
FrameCount++;
|
||||||
|
}
|
||||||
|
LastMS = ms;
|
||||||
|
}
|
||||||
|
else if (ud.tickrate == 2)
|
||||||
|
{
|
||||||
|
static int frameval[AVERAGEFRAMES], framecnt = 0;
|
||||||
|
|
||||||
|
if (totalclock != frameval[framecnt])
|
||||||
{
|
{
|
||||||
int x = (xdim <= 640);
|
int x = (xdim <= 640);
|
||||||
int p = 32>>x;
|
int p = 32>>x;
|
||||||
|
|
||||||
|
framerate=(timer*AVERAGEFRAMES)/(totalclock-frameval[framecnt]);
|
||||||
|
frameval[framecnt] = totalclock;
|
||||||
|
|
||||||
Bsprintf(tempbuf,"%4d",max(framerate,0));
|
Bsprintf(tempbuf,"%4d",max(framerate,0));
|
||||||
printext256(windowx2-p+1,windowy1+2,0,-1,tempbuf,x);
|
printext256(windowx2-p+1,windowy1+2,0,-1,tempbuf,x);
|
||||||
printext256(windowx2-p,windowy1+1,(framerate < 40) ? COLOR_RED : COLOR_WHITE,-1,tempbuf,x);
|
printext256(windowx2-p,windowy1+1,(framerate < 40) ? COLOR_RED : COLOR_WHITE,-1,tempbuf,x);
|
||||||
|
@ -2582,45 +2627,35 @@ static void ShowFrameRate(void)
|
||||||
printext256(4L*p,0,COLOR_WHITE,-1,".",0);
|
printext256(4L*p,0,COLOR_WHITE,-1,".",0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
framecnt = ((framecnt+1)&(AVERAGEFRAMES-1));
|
||||||
}
|
}
|
||||||
framecnt = ((framecnt+1)&(AVERAGEFRAMES-1));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ShowCoordinates(int snum)
|
static void ShowCoordinates(int snum)
|
||||||
{
|
{
|
||||||
int y = 8;
|
int y = 16;
|
||||||
|
|
||||||
if ((gametype_flags[ud.coop] & GAMETYPE_FLAG_FRAGBAR))
|
if ((gametype_flags[ud.coop] & GAMETYPE_FLAG_FRAGBAR))
|
||||||
{
|
{
|
||||||
if (ud.multimode > 4)
|
if (ud.multimode > 4)
|
||||||
y = 24;
|
y = 32;
|
||||||
else if (ud.multimode > 1)
|
else if (ud.multimode > 1)
|
||||||
y = 16;
|
y = 24;
|
||||||
}
|
}
|
||||||
sprintf(tempbuf,"X= %d",g_player[snum].ps->posx);
|
sprintf(tempbuf,"XYZ= (%d,%d,%d)",g_player[snum].ps->posx,g_player[snum].ps->posy,g_player[snum].ps->posz);
|
||||||
printext256(250L,y,31,-1,tempbuf,0);
|
printext256(250L,y,31,-1,tempbuf,0);
|
||||||
sprintf(tempbuf,"Y= %d",g_player[snum].ps->posy);
|
Bsprintf(tempbuf,"A/H= %d,%d",g_player[snum].ps->ang,g_player[snum].ps->horiz);
|
||||||
printext256(250L,y+9L,31,-1,tempbuf,0);
|
printext256(250L,y+9L,31,-1,tempbuf,0);
|
||||||
Bsprintf(tempbuf,"Z= %d",g_player[snum].ps->posz);
|
|
||||||
printext256(250L,y+18L,31,-1,tempbuf,0);
|
|
||||||
Bsprintf(tempbuf,"A= %d",g_player[snum].ps->ang);
|
|
||||||
printext256(250L,y+27L,31,-1,tempbuf,0);
|
|
||||||
Bsprintf(tempbuf,"H= %d",g_player[snum].ps->horiz);
|
|
||||||
printext256(250L,y+36L,31,-1,tempbuf,0);
|
|
||||||
Bsprintf(tempbuf,"ZV= %d",g_player[snum].ps->poszv);
|
Bsprintf(tempbuf,"ZV= %d",g_player[snum].ps->poszv);
|
||||||
printext256(250L,y+45L,31,-1,tempbuf,0);
|
printext256(250L,y+18L,31,-1,tempbuf,0);
|
||||||
Bsprintf(tempbuf,"OG= %d",g_player[snum].ps->on_ground);
|
Bsprintf(tempbuf,"OG= %d",g_player[snum].ps->on_ground);
|
||||||
printext256(250L,y+54L,31,-1,tempbuf,0);
|
printext256(250L,y+27L,31,-1,tempbuf,0);
|
||||||
Bsprintf(tempbuf,"AM= %d",g_player[snum].ps->ammo_amount[GROW_WEAPON]);
|
|
||||||
printext256(250L,y+63L,31,-1,tempbuf,0);
|
|
||||||
Bsprintf(tempbuf,"LFW= %d",g_player[snum].ps->last_full_weapon);
|
|
||||||
printext256(250L,y+72L,31,-1,tempbuf,0);
|
|
||||||
Bsprintf(tempbuf,"SECTL= %d",sector[g_player[snum].ps->cursectnum].lotag);
|
Bsprintf(tempbuf,"SECTL= %d",sector[g_player[snum].ps->cursectnum].lotag);
|
||||||
printext256(250L,y+81L,31,-1,tempbuf,0);
|
printext256(250L,y+36L,31,-1,tempbuf,0);
|
||||||
Bsprintf(tempbuf,"SEED= %d",randomseed);
|
Bsprintf(tempbuf,"SEED= %d",randomseed);
|
||||||
printext256(250L,y+90L,31,-1,tempbuf,0);
|
printext256(250L,y+45L,31,-1,tempbuf,0);
|
||||||
Bsprintf(tempbuf,"THOLD= %d",g_player[snum].ps->transporter_hold);
|
Bsprintf(tempbuf,"THOLD= %d",g_player[snum].ps->transporter_hold);
|
||||||
printext256(250L,y+99L+7,31,-1,tempbuf,0);
|
printext256(250L,y+54L+7,31,-1,tempbuf,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void operatefta(void)
|
static void operatefta(void)
|
||||||
|
|
|
@ -776,6 +776,7 @@ const memberlabel_t playerlabels[]=
|
||||||
{ "max_player_health", PLAYER_MAX_PLAYER_HEALTH, 0, 0 },
|
{ "max_player_health", PLAYER_MAX_PLAYER_HEALTH, 0, 0 },
|
||||||
{ "max_shield_amount", PLAYER_MAX_SHIELD_AMOUNT, 0, 0 },
|
{ "max_shield_amount", PLAYER_MAX_SHIELD_AMOUNT, 0, 0 },
|
||||||
{ "max_ammo_amount", PLAYER_MAX_AMMO_AMOUNT, LABEL_HASPARM2, MAX_WEAPONS },
|
{ "max_ammo_amount", PLAYER_MAX_AMMO_AMOUNT, LABEL_HASPARM2, MAX_WEAPONS },
|
||||||
|
{ "last_quick_kick", PLAYER_LAST_QUICK_KICK, 0, 0 },
|
||||||
{ "", -1, 0, 0 } // END OF LIST
|
{ "", -1, 0, 0 } // END OF LIST
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -73,14 +73,14 @@ extern const memberlabel_t userdeflabels[];
|
||||||
extern const memberlabel_t inputlabels[];
|
extern const memberlabel_t inputlabels[];
|
||||||
extern const memberlabel_t tsprlabels[];
|
extern const memberlabel_t tsprlabels[];
|
||||||
|
|
||||||
extern void DoUserDef(int iSet, int lLabelID, int lVar2);
|
extern void DoUserDef(int iSet, int lLabelID, int lVar2);
|
||||||
extern void DoThisProjectile(int iSet, int lVar1, int lLabelID, int lVar2);
|
extern void DoThisProjectile(int iSet, int lVar1, int lLabelID, int lVar2);
|
||||||
extern void DoPlayer(int iSet, int lVar1, int lLabelID, int lVar2, int lParm2);
|
extern void DoPlayer(int iSet, int lVar1, int lLabelID, int lVar2, int lParm2);
|
||||||
extern void DoInput(int iSet, int lVar1, int lLabelID, int lVar2);
|
extern void DoInput(int iSet, int lVar1, int lLabelID, int lVar2);
|
||||||
extern void DoWall(int iSet, int lVar1, int lLabelID, int lVar2);
|
extern void DoWall(int iSet, int lVar1, int lLabelID, int lVar2);
|
||||||
extern void DoSector(int iSet, int lVar1, int lLabelID, int lVar2);
|
extern void DoSector(int iSet, int lVar1, int lLabelID, int lVar2);
|
||||||
extern void DoActor(int iSet, int lVar1, int lLabelID, int lVar2, int lParm2);
|
extern void DoActor(int iSet, int lVar1, int lLabelID, int lVar2, int lParm2);
|
||||||
extern void DoTsprite(int iSet, int lVar1, int lLabelID, int lVar2);
|
extern void DoTsprite(int iSet, int lVar1, int lLabelID, int lVar2);
|
||||||
extern void DoProjectile(int iSet, int lVar1, int lLabelID, int lVar2);
|
extern void DoProjectile(int iSet, int lVar1, int lLabelID, int lVar2);
|
||||||
|
|
||||||
#define CON_ERROR OSD_ERROR "Line %d, %s: "
|
#define CON_ERROR OSD_ERROR "Line %d, %s: "
|
||||||
|
@ -270,6 +270,7 @@ enum playerlabels
|
||||||
PLAYER_MAX_PLAYER_HEALTH,
|
PLAYER_MAX_PLAYER_HEALTH,
|
||||||
PLAYER_MAX_SHIELD_AMOUNT,
|
PLAYER_MAX_SHIELD_AMOUNT,
|
||||||
PLAYER_MAX_AMMO_AMOUNT,
|
PLAYER_MAX_AMMO_AMOUNT,
|
||||||
|
PLAYER_LAST_QUICK_KICK,
|
||||||
PLAYER_END
|
PLAYER_END
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2505,6 +2505,15 @@ void DoPlayer(int iSet, int lVar1, int lLabelID, int lVar2, int lParm2)
|
||||||
SetGameVarID(lVar2, g_player[iPlayer].ps->max_ammo_amount[lParm2], g_i, g_p);
|
SetGameVarID(lVar2, g_player[iPlayer].ps->max_ammo_amount[lParm2], g_i, g_p);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
case PLAYER_LAST_QUICK_KICK:
|
||||||
|
if (iSet)
|
||||||
|
{
|
||||||
|
g_player[iPlayer].ps->last_quick_kick=lValue;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SetGameVarID(lVar2, g_player[iPlayer].ps->last_quick_kick, g_i, g_p);
|
||||||
|
return;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,11 +43,10 @@ extern short editstatus, searchit;
|
||||||
extern int searchx, searchy, osearchx, osearchy; //search input
|
extern int searchx, searchy, osearchx, osearchy; //search input
|
||||||
extern short searchsector, searchwall, searchstat; //search output
|
extern short searchsector, searchwall, searchstat; //search output
|
||||||
|
|
||||||
#define AVERAGEFRAMES 128
|
|
||||||
#define COLOR_RED 248
|
#define COLOR_RED 248
|
||||||
#define COLOR_WHITE 31
|
#define COLOR_WHITE 31
|
||||||
|
|
||||||
static int ototalclock = 0, clockval[AVERAGEFRAMES], clockcnt = 0;
|
static int ototalclock = 0;
|
||||||
|
|
||||||
#define NUMOPTIONS 9
|
#define NUMOPTIONS 9
|
||||||
|
|
||||||
|
|
|
@ -748,7 +748,7 @@ cvarmappings cvar[] =
|
||||||
#endif
|
#endif
|
||||||
{ "r_drawweapon", "r_drawweapon: enable/disable weapon drawing", (void*)&ud.drawweapon, CVAR_INT, 0, 0, 2 },
|
{ "r_drawweapon", "r_drawweapon: enable/disable weapon drawing", (void*)&ud.drawweapon, CVAR_INT, 0, 0, 2 },
|
||||||
{ "osdhightile", "osdhightile: enable/disable hires art replacements for console text", (void*)&osdhightile, CVAR_BOOL, 0, 0, 1 },
|
{ "osdhightile", "osdhightile: enable/disable hires art replacements for console text", (void*)&osdhightile, CVAR_BOOL, 0, 0, 1 },
|
||||||
{ "r_showfps", "r_showfps: show the frame rate counter", (void*)&ud.tickrate, CVAR_BOOL, 0, 0, 1 },
|
{ "r_showfps", "r_showfps: show the frame rate counter", (void*)&ud.tickrate, CVAR_INT, 0, 0, 2 },
|
||||||
{ "r_shadows", "r_shadows: enable/disable sprite and model shadows", (void*)&ud.shadows, CVAR_BOOL, 0, 0, 1 },
|
{ "r_shadows", "r_shadows: enable/disable sprite and model shadows", (void*)&ud.shadows, CVAR_BOOL, 0, 0, 1 },
|
||||||
{ "r_precache", "r_precache: enable/disable the pre-level caching routine", (void*)&ud.config.useprecache, CVAR_BOOL, 0, 0, 1 },
|
{ "r_precache", "r_precache: enable/disable the pre-level caching routine", (void*)&ud.config.useprecache, CVAR_BOOL, 0, 0, 1 },
|
||||||
|
|
||||||
|
|
|
@ -2143,7 +2143,7 @@ static void myospalw(int x, int y, int tilenum, int shade, int orientation, int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int fistsign, last_quick_kick[MAXPLAYERS];
|
static int fistsign;
|
||||||
|
|
||||||
void displayweapon(int snum)
|
void displayweapon(int snum)
|
||||||
{
|
{
|
||||||
|
@ -2200,7 +2200,7 @@ void displayweapon(int snum)
|
||||||
if (GetGameVarID(g_iReturnVarID,p->i,snum) == 0)
|
if (GetGameVarID(g_iReturnVarID,p->i,snum) == 0)
|
||||||
{
|
{
|
||||||
j = 14-p->quick_kick;
|
j = 14-p->quick_kick;
|
||||||
if (j != 14 || last_quick_kick[snum])
|
if (j != 14 || p->last_quick_kick)
|
||||||
{
|
{
|
||||||
if (sprite[p->i].pal == 1)
|
if (sprite[p->i].pal == 1)
|
||||||
pal = 1;
|
pal = 1;
|
||||||
|
@ -3151,12 +3151,12 @@ static int doincrements(player_struct *p)
|
||||||
|
|
||||||
if (p->quick_kick > 0 && sprite[p->i].pal != 1)
|
if (p->quick_kick > 0 && sprite[p->i].pal != 1)
|
||||||
{
|
{
|
||||||
last_quick_kick[snum] = p->quick_kick+1;
|
p->last_quick_kick = p->quick_kick+1;
|
||||||
p->quick_kick--;
|
p->quick_kick--;
|
||||||
if (p->quick_kick == 8)
|
if (p->quick_kick == 8)
|
||||||
shoot(p->i,KNEE);
|
shoot(p->i,KNEE);
|
||||||
}
|
}
|
||||||
else if (last_quick_kick[snum] > 0) last_quick_kick[snum]--;
|
else if (p->last_quick_kick > 0) p->last_quick_kick--;
|
||||||
|
|
||||||
if (p->access_incs && sprite[p->i].pal != 1)
|
if (p->access_incs && sprite[p->i].pal != 1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -238,13 +238,17 @@ static INT_PTR CALLBACK ConfigPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L
|
||||||
if (i != CB_ERR) i = ComboBox_GetItemData((HWND)lParam, i);
|
if (i != CB_ERR) i = ComboBox_GetItemData((HWND)lParam, i);
|
||||||
if (i != CB_ERR)
|
if (i != CB_ERR)
|
||||||
{
|
{
|
||||||
for (j=0,dir=finddirs;dir != NULL;dir=dir->next,j++)
|
if (i==0)
|
||||||
if (j == i)
|
settings.gamedir = NULL;
|
||||||
{
|
else
|
||||||
if (i==0) settings.gamedir = NULL;
|
{
|
||||||
else settings.gamedir = dir->prev->name;
|
for (j=1,dir=finddirs;dir != NULL;dir=dir->next,j++)
|
||||||
break;
|
if (j == i)
|
||||||
}
|
{
|
||||||
|
settings.gamedir = dir->name;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
Loading…
Reference in a new issue