Fixes some stuff

git-svn-id: https://svn.eduke32.com/eduke32@1058 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
terminx 2008-09-06 06:22:31 +00:00
parent b881cc116c
commit 7da94e0041
4 changed files with 308 additions and 282 deletions

View file

@ -4286,8 +4286,8 @@ CANCEL:
if (keystatus[1])
{
keystatus[1] = 0;
printmessage16("(N)ew, (L)oad, (S)ave, save (A)s, (Q)uit,");
// printext16(200L+248, ydim-STATUS2DSIZ+17L, 9, 0, "(U)ndo, (R)edo", 0);
printmessage16("(N)ew, (L)oad, (S)ave, save (A)s, (Q)uit");
// printext16(200L+248, ydim-STATUS2DSIZ+20L, 9, 0, "(U)ndo, (R)edo", 0);
showframe(1);
bflushchars();
bad = 1;
@ -5248,11 +5248,15 @@ int _getnumber16(char *namestart, int num, int maxnumber, char sign, void *(func
ch = bgetchar();
if (func != NULL)
Bsprintf(buffer,"%s^011%s",namestart,(char *)func((int)danum));
else Bsprintf(buffer,"%s^011%d",namestart,danum);
Bsprintf(buffer,"%s^011%d",namestart,danum);
if (totalclock & 32) Bstrcat(buffer,"_ ");
printmessage16(buffer);
if (func != NULL)
{
Bsprintf(buffer,"^011%s",(char *)func((int)danum));
printext16(200L-24, ydim-STATUS2DSIZ+20L, 9, 0, buffer, 0);
}
showframe(1);
if (ch >= '0' && ch <= '9')
@ -5320,12 +5324,15 @@ int _getnumber256(char *namestart, int num, int maxnumber, char sign, void *(fun
ExtCheckKeys();
if (func != NULL)
Bsprintf(buffer,"%s%s",namestart,(char *)func((int)danum));
else Bsprintf(buffer,"%s%d",namestart,danum);
Bsprintf(buffer,"%s%d",namestart,danum);
if (totalclock & 32) Bstrcat(buffer,"_ ");
printmessage256(0, 0, buffer);
if (func != NULL)
{
Bsprintf(buffer,"%s",(char *)func((int)danum));
printmessage256(0, 9, buffer);
}
showframe(1);
if (ch >= '0' && ch <= '9')
@ -6336,7 +6343,7 @@ void _printmessage16(const char *fmt, ...)
i++;
}
snotbuf[54] = 0;
printext16(200L-24, ybase+17L, 9, 0, snotbuf, 0);
printext16(200L-24, ybase+20L, 9, 0, snotbuf, 0);
enddrawing();
}

View file

@ -43,7 +43,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <windows.h>
#endif
#define BUILDDATE " 20080904"
#define BUILDDATE " 20080905"
#define VERSION " 1.2.0devel"
static int floor_over_floor;
@ -365,72 +365,72 @@ const char *ExtGetSectorType(int lotag)
switch (lotag)
{
case 1:
Bsprintf(tempbuf,"1 WATER (SE 7)");
Bsprintf(tempbuf,"WATER (SE 7)");
break;
case 2:
Bsprintf(tempbuf,"2 UNDERWATER (SE 7)");
Bsprintf(tempbuf,"UNDERWATER (SE 7)");
break;
case 9:
Bsprintf(tempbuf,"9 STAR TREK DOORS");
Bsprintf(tempbuf,"STAR TREK DOORS");
break;
case 15:
Bsprintf(tempbuf,"15 ELEVATOR TRANSPORT (SE 17)");
Bsprintf(tempbuf,"ELEVATOR TRANSPORT (SE 17)");
break;
case 16:
Bsprintf(tempbuf,"16 ELEVATOR PLATFORM DOWN");
Bsprintf(tempbuf,"ELEVATOR PLATFORM DOWN");
break;
case 17:
Bsprintf(tempbuf,"17 ELEVATOR PLATFORM UP");
Bsprintf(tempbuf,"ELEVATOR PLATFORM UP");
break;
case 18:
Bsprintf(tempbuf,"18 ELEVATOR DOWN");
Bsprintf(tempbuf,"ELEVATOR DOWN");
break;
case 19:
Bsprintf(tempbuf,"19 ELEVATOR UP");
Bsprintf(tempbuf,"ELEVATOR UP");
break;
case 20:
Bsprintf(tempbuf,"20 CEILING DOOR");
Bsprintf(tempbuf,"CEILING DOOR");
break;
case 21:
Bsprintf(tempbuf,"21 FLOOR DOOR");
Bsprintf(tempbuf,"FLOOR DOOR");
break;
case 22:
Bsprintf(tempbuf,"22 SPLIT DOOR");
Bsprintf(tempbuf,"SPLIT DOOR");
break;
case 23:
Bsprintf(tempbuf,"23 SWING DOOR (SE 11)");
Bsprintf(tempbuf,"SWING DOOR (SE 11)");
break;
case 25:
Bsprintf(tempbuf,"25 SLIDE DOOR (SE 15)");
Bsprintf(tempbuf,"SLIDE DOOR (SE 15)");
break;
case 26:
Bsprintf(tempbuf,"26 SPLIT STAR TREK DOOR");
Bsprintf(tempbuf,"SPLIT STAR TREK DOOR");
break;
case 27:
Bsprintf(tempbuf,"27 BRIDGE (SE 20)");
Bsprintf(tempbuf,"BRIDGE (SE 20)");
break;
case 28:
Bsprintf(tempbuf,"28 DROP FLOOR (SE 21)");
Bsprintf(tempbuf,"DROP FLOOR (SE 21)");
break;
case 29:
Bsprintf(tempbuf,"29 TEETH DOOR (SE 22)");
Bsprintf(tempbuf,"TEETH DOOR (SE 22)");
break;
case 30:
Bsprintf(tempbuf,"30 ROTATE RISE BRIDGE");
Bsprintf(tempbuf,"ROTATE RISE BRIDGE");
break;
case 31:
Bsprintf(tempbuf,"31 2 WAY TRAIN (SE=30)");
Bsprintf(tempbuf,"2 WAY TRAIN (SE=30)");
break;
case 32767:
Bsprintf(tempbuf,"32767 SECRET ROOM");
Bsprintf(tempbuf,"SECRET ROOM");
break;
case -1:
Bsprintf(tempbuf,"65535 END OF LEVEL");
Bsprintf(tempbuf,"END OF LEVEL");
break;
default :
if (lotag > 10000 && lotag < 32767)
Bsprintf(tempbuf,"%d 1 TIME SOUND",lotag);
else Bsprintf(tempbuf,"%hu",lotag);
Bsprintf(tempbuf,"1 TIME SOUND");
// else Bsprintf(tempbuf,"%hu",lotag);
break;
}
return(tempbuf);
@ -454,8 +454,8 @@ const char *ExtGetSectorCaption(short sectnum)
{
Bstrcpy(lo,ExtGetSectorType(sector[sectnum].lotag));
if (qsetmode != 200)
Bsprintf(tempbuf,"%hu,%s",sector[sectnum].hitag,lo);
else Bstrcpy(tempbuf,lo);
Bsprintf(tempbuf,"%hu,%hu %s",sector[sectnum].hitag,sector[sectnum].lotag,lo);
else Bsprintf(tempbuf,"%hu %s",sector[sectnum].lotag,lo);
}
return(tempbuf);
}
@ -3097,12 +3097,14 @@ void getnumberptr256(char *namestart, void *num, int bytes, int maxnumber, char
ExtCheckKeys();
if (func != NULL)
Bsprintf(buffer,"%s%s",namestart,(char *)func((int)danum));
else Bsprintf(buffer,"%s%d",namestart,danum);
Bsprintf(buffer,"%s%d",namestart,danum);
if (totalclock & 32) Bstrcat(buffer,"_ ");
printmessage256(0, 0, buffer);
if (func != NULL)
{
Bsprintf(buffer,"%s",(char *)func((int)danum));
printmessage256(0, 9, buffer);
}
showframe(1);
if (ch >= '0' && ch <= '9')
@ -3169,6 +3171,34 @@ void getnumberptr256(char *namestart, void *num, int bytes, int maxnumber, char
}
}
static void DoSpriteOrnament(int i)
{
int j;
int hitx, hity, hitz;
short hitsect, hitwall, hitsprite;
hitscan(sprite[i].x,sprite[i].y,sprite[i].z,sprite[i].sectnum,
sintable[(sprite[i].ang+2560+1024)&2047],
sintable[(sprite[i].ang+2048+1024)&2047],
0,
&hitsect,&hitwall,&hitsprite,&hitx,&hity,&hitz,CLIPMASK1);
sprite[i].x = hitx;
sprite[i].y = hity;
sprite[i].z = hitz;
changespritesect(i,hitsect);
if (hitwall >= 0)
sprite[i].ang = ((getangle(wall[wall[hitwall].point2].x-wall[hitwall].x,wall[wall[hitwall].point2].y-wall[hitwall].y)+512)&2047);
//Make sure sprite's in right sector
if (inside(sprite[i].x,sprite[i].y,sprite[i].sectnum) == 0)
{
j = wall[hitwall].point2;
sprite[i].x -= ksgn(wall[j].y-wall[hitwall].y);
sprite[i].y += ksgn(wall[j].x-wall[hitwall].x);
}
}
int64 ldistsqr(spritetype *s1,spritetype *s2)
{
return (((int64)(s2->x - s1->x))*((int64)(s2->x - s1->x)) +
@ -3188,7 +3218,7 @@ void rendertext(short startspr)
spritetype *sp;
if (startspr<0 || startspr>=MAXSPRITES ||
sprite[startspr].statnum >= MAXSTATUS)
sprite[startspr].statnum == MAXSTATUS)
return;
if ((sprite[startspr].cstat&16) == 0)
@ -3340,6 +3370,8 @@ void rendertext(short startspr)
if (good)
{
short sect;
// mapping char->tilenum
if (basetile==STARTALPHANUM)
{
@ -3379,11 +3411,15 @@ void rendertext(short startspr)
// inside(...): too restricitve?
// if somebody wants to change this, keep BACKSPACE in mind,
// it iterates over sprites of only one sector
if (numsprites<MAXSPRITES && inside(dax,day,sprite[curspr].sectnum)==1)
{
sect = sprite[curspr].sectnum;
dax += ((sp->xrepeat*(hgap+tilesizx[sp->picnum]+tilesizx[t])*sintable[daang])>>17);
day -= ((sp->xrepeat*(hgap+tilesizx[sp->picnum]+tilesizx[t])*sintable[(daang+512)&2047])>>17);
dax += sintable[(sprite[curspr].ang+2560)&2047]>>17;
day += sintable[(sprite[curspr].ang+2048)&2047]>>17;
updatesector(dax,day,&sect);
if (numsprites < MAXSPRITES && sect >= 0)
{
i = insertsprite(sprite[curspr].sectnum,0);
sprite[i].x = dax, sprite[i].y = day;
sprite[i].z = sprite[curspr].z;
@ -3407,6 +3443,8 @@ void rendertext(short startspr)
// TODO: tweaking the position of some letters that are still a bit off
DoSpriteOrnament(i);
for (k=0;k<MAXTILES;k++)
localartfreq[k] = 0;
for (k=0;k<MAXSPRITES;k++)
@ -3485,9 +3523,9 @@ static void Keys3d(void)
{
int i,count,rate,nexti,changedir;
int j, k, tempint = 0, hiz, loz;
int hitx, hity, hitz, hihit, lohit;
int hihit, lohit;
char smooshyalign=0, repeatpanalign=0, buffer[80];
short startwall, endwall, dasector, hitsect, hitwall, hitsprite, statnum=0;
short startwall, endwall, dasector, statnum=0;
char tempbuf[128];
/* start Mapster32 */
@ -4052,26 +4090,7 @@ static void Keys3d(void)
asksave = 1;
i = searchwall;
hitscan(sprite[i].x,sprite[i].y,sprite[i].z,sprite[i].sectnum,
sintable[(sprite[i].ang+2560+1024)&2047],
sintable[(sprite[i].ang+2048+1024)&2047],
0,
&hitsect,&hitwall,&hitsprite,&hitx,&hity,&hitz,CLIPMASK1);
sprite[i].x = hitx;
sprite[i].y = hity;
sprite[i].z = hitz;
changespritesect(i,hitsect);
if (hitwall >= 0)
sprite[i].ang = ((getangle(wall[wall[hitwall].point2].x-wall[hitwall].x,wall[wall[hitwall].point2].y-wall[hitwall].y)+512)&2047);
//Make sure sprite's in right sector
if (inside(sprite[i].x,sprite[i].y,sprite[i].sectnum) == 0)
{
j = wall[hitwall].point2;
sprite[i].x -= ksgn(wall[j].y-wall[hitwall].y);
sprite[i].y += ksgn(wall[j].x-wall[hitwall].x);
}
DoSpriteOrnament(i);
Bsprintf(getmessage,"Sprite %d ornament onto wall",i);
message(getmessage);
}

View file

@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//-------------------------------------------------------------------------
// this is checked against http://eduke32.com/VERSION
#define BUILDDATE " 20080904"
#define BUILDDATE " 20080905"
#define APPNAME "EDuke32"
#define VERSION " 1.5.0devel"
#define HEAD2 APPNAME VERSION BUILDDATE

View file

@ -1074,7 +1074,7 @@ static int parse(void)
hittype[g_i].extra = 1;
g_sp->zvel = 0;
}
else if (g_sp->zvel > 2048 /* && sector[g_sp->sectnum].lotag != 1*/)
else if (g_sp->zvel > 2048 && sector[g_sp->sectnum].lotag != 1)
{
j = g_sp->sectnum;
pushmove(&g_sp->x,&g_sp->y,&g_sp->z,(short*)&j,128L,(4L<<8),(4L<<8),CLIPMASK0);