From ca83297b1066c887594f4651a057feb52f41c3bc Mon Sep 17 00:00:00 2001 From: terminx Date: Sat, 31 May 2008 01:57:14 +0000 Subject: [PATCH] git-svn-id: https://svn.eduke32.com/eduke32@747 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/build/include/build.h | 3 +- polymer/build/src/engine.c | 23 +++++ polymer/eduke32/source/astub.c | 179 +++++++++++++++++++-------------- 3 files changed, 127 insertions(+), 78 deletions(-) diff --git a/polymer/build/include/build.h b/polymer/build/include/build.h index 5dd251c00..03cde578b 100644 --- a/polymer/build/include/build.h +++ b/polymer/build/include/build.h @@ -171,9 +171,10 @@ typedef struct BPACK { } spriteexttype; typedef struct BPACK { + float smoothduration; short mdcurframe, mdoldframe; short mdsmooth; - float smoothduration; + char filler[2]; } spritesmoothtype; #define SPREXT_NOTMD 1 diff --git a/polymer/build/src/engine.c b/polymer/build/src/engine.c index 9060162c9..800ab266f 100644 --- a/polymer/build/src/engine.c +++ b/polymer/build/src/engine.c @@ -5612,6 +5612,18 @@ static void sighandler(int sig, const siginfo_t *info, void *ctx) // preinitengine // static int preinitcalled = 0; + +#define DYNALLOC_ARRAYS + +#ifndef DYNALLOC_ARRAYS +spriteexttype spriteext_s[MAXSPRITES+MAXUNIQHUDID]; +spritesmoothtype spritesmooth_s[MAXSPRITES+MAXUNIQHUDID]; +sectortype sector_s[MAXSECTORS]; +walltype wall_s[MAXWALLS]; +spritetype sprite_s[MAXSPRITES]; +spritetype tsprite_s[MAXSPRITESONSCREEN]; +#endif + int preinitengine(void) { char *e; @@ -5621,6 +5633,7 @@ int preinitengine(void) // this shite is to help get around data segment size limits on some platforms +#ifdef DYNALLOC_ARRAYS sector = Bcalloc(MAXSECTORS,sizeof(sectortype)); wall = Bcalloc(MAXWALLS,sizeof(walltype)); sprite = Bcalloc(MAXSPRITES,sizeof(spritetype)); @@ -5630,6 +5643,14 @@ int preinitengine(void) if (!sector || !wall || !sprite || !tsprite || !spriteext || !spritesmooth) return 1; +#else + sector = sector_s; + wall = wall_s; + sprite = sprite_s; + tsprite = tsprite_s; + spriteext = spriteext_s; + spritesmooth = spritesmooth_s; +#endif if ((e = Bgetenv("BUILD_NOP6")) != NULL) if (!Bstrcasecmp(e, "TRUE")) @@ -5758,6 +5779,7 @@ void uninitengine(void) for (i=0;i 0) + { + if (sprite[searchwall].picnum==SECTOREFFECTOR) + Bsprintf(lines[num++],"^251Sprite %d^31 %s",searchwall,SectorEffectorText(searchwall)); + else Bsprintf(lines[num++],"^251Sprite %d^31 %s",searchwall,names[sprite[searchwall].picnum]); + } + else Bsprintf(lines[num++],"^251Sprite %d^31, picnum %d",searchwall,sprite[searchwall].picnum); + Bsprintf(lines[num++],"Elevation:%d",getflorzofslope(searchsector,sprite[searchwall].x,sprite[searchwall].y)-sprite[searchwall].z); + } + break; } - Bsprintf(lines[num++],"Panning: %3d, %3d",wall[searchwall].xpanning,wall[searchwall].ypanning); - Bsprintf(lines[num++],"Repeat: %3d, %3d",wall[searchwall].xrepeat,wall[searchwall].yrepeat); - Bsprintf(lines[num++],"Overpic: %3d",wall[searchwall].overpicnum); - lines[num++][0]=0; - Bsprintf(lines[num++],"^251Wall %d^31",searchwall); - if (wall[searchwall].nextsector!=-1) - Bsprintf(lines[num++],"LoHeight:%d, HiHeight:%d, Length:%d",height1,height3,dist); - else - Bsprintf(lines[num++],"Height:%d, Length:%d",height2,dist); - break; - case 1: - drawtileinfo("Current",WIND1X,WIND1Y,sector[searchsector].ceilingpicnum,sector[searchsector].ceilingshade, - sector[searchsector].ceilingpal,sector[searchsector].ceilingstat, - sector[searchsector].lotag,sector[searchsector].hitag,sector[searchsector].extra); - - Bsprintf(lines[num++],"Panning: %d,%d",sector[searchsector].ceilingxpanning,sector[searchsector].ceilingypanning); - Bsprintf(lines[num++],"CeilingZ: %d",sector[searchsector].ceilingz); - Bsprintf(lines[num++],"Slope: %d",sector[searchsector].ceilingheinum); - lines[num++][0]=0; - Bsprintf(lines[num++],"^251Sector %d^31 ceiling Lotag:%s",searchsector,ExtGetSectorCaption(searchsector)); - Bsprintf(lines[num++],"Height: %d, Visibility:%d",height2,sector[searchsector].visibility); - break; - case 2: - drawtileinfo("Current",WIND1X,WIND1Y,sector[searchsector].floorpicnum,sector[searchsector].floorshade, - sector[searchsector].floorpal,sector[searchsector].floorstat, - sector[searchsector].lotag,sector[searchsector].hitag,sector[searchsector].extra); - - Bsprintf(lines[num++],"Panning: %d,%d",sector[searchsector].floorxpanning,sector[searchsector].floorypanning); - Bsprintf(lines[num++],"FloorZ: %d",sector[searchsector].floorz); - Bsprintf(lines[num++],"Slope: %d",sector[searchsector].floorheinum); - lines[num++][0]=0; - Bsprintf(lines[num++],"^251Sector %d^31 floor Lotag:%s",searchsector,ExtGetSectorCaption(searchsector)); - Bsprintf(lines[num++],"Height:%d, Visibility:%d",height2,sector[searchsector].visibility); - break; - case 3: - drawtileinfo("Current",WIND1X,WIND1Y,sprite[searchwall].picnum,sprite[searchwall].shade, - sprite[searchwall].pal,sprite[searchwall].cstat,sprite[searchwall].lotag, - sprite[searchwall].hitag,sprite[searchwall].extra); - - Bsprintf(lines[num++],"Repeat: %d,%d",sprite[searchwall].xrepeat,sprite[searchwall].yrepeat); - Bsprintf(lines[num++],"PosXY: %d,%d",sprite[searchwall].x,sprite[searchwall].y); - Bsprintf(lines[num++],"PosZ: "" %d",sprite[searchwall].z);// prevents tab character - lines[num++][0]=0; - - if (strlen(names[sprite[searchwall].picnum]) > 0) - { - if (sprite[searchwall].picnum==SECTOREFFECTOR) - Bsprintf(lines[num++],"^251Sprite %d^31 %s",searchwall,SectorEffectorText(searchwall)); - else Bsprintf(lines[num++],"^251Sprite %d^31 %s",searchwall,names[sprite[searchwall].picnum]); - } - else Bsprintf(lines[num++],"^251Sprite %d^31, picnum %d",searchwall,sprite[searchwall].picnum); - Bsprintf(lines[num++],"Elevation:%d",getflorzofslope(searchsector,sprite[searchwall].x,sprite[searchwall].y)-sprite[searchwall].z); - break; } x=WIND1X;y=WIND1Y; x*=xdimgame/320.; y*=ydimgame/200.; y+=(ydimgame>>6)*8; + if (getmessageleng) + { + while (num < 4) + lines[num++][0] = 0; + Bsprintf(lines[num++],"^251%s",getmessage); + } begindrawing(); for (i=0;i 0) { - charsperline = 64; +// charsperline = 64; //if (dimensionmode[snum] == 2) charsperline = 80; - if (qsetmode == 200) +/* if (qsetmode == 200) { for (i=0;i<=getmessageleng;i+=charsperline) { @@ -7688,7 +7712,8 @@ static void Keys2d3d(void) enddrawing(); } } - else printmessage16(getmessage); + else */ if (qsetmode != 200) + printmessage16(getmessage); if (totalclock > getmessagetimeoff) getmessageleng = 0; }