From fad541b37775895b819f5b5f81a9ed4cd0b9e073 Mon Sep 17 00:00:00 2001 From: terminx Date: Sat, 16 Feb 2008 22:27:08 +0000 Subject: [PATCH] Part 1 of 64-bit patch from Stephen Anthony git-svn-id: https://svn.eduke32.com/eduke32@618 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/build/Makefile.shared | 5 ++ polymer/build/include/baselayer.h | 5 +- polymer/build/include/build.h | 8 ++- polymer/build/include/cache1d.h | 8 +-- polymer/build/include/compat.h | 7 +++ polymer/build/src/build.c | 3 +- polymer/build/src/cache1d.c | 85 ++++++++++++++++++------------ polymer/build/src/engine.c | 30 ++++++----- polymer/build/src/sdlayer.c | 7 +-- polymer/eduke32/Makefile | 2 +- polymer/eduke32/source/actors.c | 1 + polymer/eduke32/source/anim.c | 5 +- polymer/eduke32/source/duke3d.h | 6 ++- polymer/eduke32/source/game.c | 2 +- polymer/eduke32/source/mapster32.h | 5 +- polymer/eduke32/source/savegame.c | 2 +- 16 files changed, 114 insertions(+), 67 deletions(-) diff --git a/polymer/build/Makefile.shared b/polymer/build/Makefile.shared index da8c2aafc..d4c9e0815 100644 --- a/polymer/build/Makefile.shared +++ b/polymer/build/Makefile.shared @@ -48,6 +48,7 @@ endif ifeq ($(PLATFORM),LINUX) RENDERTYPE=SDL + BUILDCFLAGS+= -DHAVE_INTTYPES GTKCOMPAT32=0 ifeq ($(findstring x86_64,$(shell uname -m)),x86_64) @@ -57,16 +58,20 @@ ifeq ($(PLATFORM),LINUX) BUILDCFLAGS+= -m32 #override WITHOUT_GTK=0 GTKCOMPAT32=1 + else + override NOASM=1 endif endif endif ifeq ($(PLATFORM),WINDOWS) RENDERTYPE ?= WIN + BUILDCFLAGS+= -DHAVE_INTTYPES EXESUFFIX=.exe LIBS+= -lmingwex -lwinmm -L$(DXROOT)/lib -lwsock32 -lcomctl32 #-lshfolder endif ifeq ($(PLATFORM),BSD) RENDERTYPE=SDL + BUILDCFLAGS+= -DHAVE_INTTYPES endif ifeq ($(PLATFORM),BEOS) RENDERTYPE=SDL diff --git a/polymer/build/include/baselayer.h b/polymer/build/include/baselayer.h index 058cfc906..2564ae04b 100644 --- a/polymer/build/include/baselayer.h +++ b/polymer/build/include/baselayer.h @@ -5,6 +5,8 @@ #ifndef __baselayer_h__ #define __baselayer_h__ +#include "compat.h" + #ifdef __cplusplus extern "C" { #endif @@ -22,7 +24,8 @@ extern int startwin_settitle(const char *); extern int startwin_idle(void *); // video -extern int xres, yres, bpp, fullscreen, bytesperline, imageSize, frameplace; +extern int xres, yres, bpp, fullscreen, bytesperline, imageSize; +extern intptr_t frameplace; extern char offscreenrendering; extern void (*baselayer_onvideomodechange)(int); diff --git a/polymer/build/include/build.h b/polymer/build/include/build.h index dd28d3101..7bc80f753 100644 --- a/polymer/build/include/build.h +++ b/polymer/build/include/build.h @@ -9,6 +9,8 @@ #ifndef __build_h__ #define __build_h__ +#include "compat.h" + #ifdef __cplusplus extern "C" { #endif @@ -188,8 +190,9 @@ EXTERN spritetype *sprite; EXTERN int spritesortcnt; EXTERN spritetype *tsprite; -EXTERN int xdim, ydim, ylookup[MAXYDIM+1], numpages; +EXTERN int xdim, ydim, numpages; EXTERN int yxaspect, viewingrange; +EXTERN intptr_t ylookup[MAXYDIM+1]; #define MAXVALIDMODES 256 EXTERN int validmodecnt; @@ -226,7 +229,8 @@ EXTERN short tilesizx[MAXTILES], tilesizy[MAXTILES]; EXTERN char picsiz[MAXTILES]; EXTERN char walock[MAXTILES]; EXTERN int pow2long[32]; -EXTERN int numtiles, picanm[MAXTILES], waloff[MAXTILES]; +EXTERN int numtiles, picanm[MAXTILES]; +EXTERN intptr_t waloff[MAXTILES]; // stores pointers to cache -- SA EXTERN int windowpos, windowx, windowy; diff --git a/polymer/build/include/cache1d.h b/polymer/build/include/cache1d.h index 8b440ac06..f0f1208a5 100644 --- a/polymer/build/include/cache1d.h +++ b/polymer/build/include/cache1d.h @@ -3,13 +3,15 @@ #ifndef __cache1d_h__ #define __cache1d_h__ +#include "compat.h" + #ifdef __cplusplus extern "C" { #endif -void initcache(int dacachestart, int dacachesize); -void allocache(int *newhandle, int newbytes, char *newlockptr); -void suckcache(int *suckptr); +void initcache(intptr_t dacachestart, int dacachesize); +void allocache(intptr_t *newhandle, int newbytes, char *newlockptr); +void suckcache(intptr_t *suckptr); void agecache(void); extern int pathsearchmode; // 0 = gamefs mode (default), 1 = localfs mode (editor's mode) diff --git a/polymer/build/include/compat.h b/polymer/build/include/compat.h index 4d87d327d..0743f0f38 100644 --- a/polymer/build/include/compat.h +++ b/polymer/build/include/compat.h @@ -5,6 +5,13 @@ #ifndef __compat_h__ #define __compat_h__ +// This gives us access to 'intptr_t' and 'uintptr_t', which are +// abstractions to the size of a pointer on a given platform +// (ie, they're guaranteed to be the same size as a pointer) +#ifdef HAVE_INTTYPES +# include +#endif + // Define this to rewrite all 'B' versions to library functions. This // is for platforms which give us a standard sort of C library so we // link directly. Platforms like PalmOS which don't have a standard C diff --git a/polymer/build/src/build.c b/polymer/build/src/build.c index 40c0054ea..f0e98d4d1 100644 --- a/polymer/build/src/build.c +++ b/polymer/build/src/build.c @@ -79,7 +79,8 @@ extern char vgacompatible; extern char picsiz[MAXTILES]; extern int startposx, startposy, startposz; extern short startang, startsectnum; -extern int frameplace, ydim16, halfxdim16, midydim16; +extern int ydim16, halfxdim16, midydim16; +extern intptr_t frameplace; int xdim2d = 640, ydim2d = 480, xdimgame = 640, ydimgame = 480, bppgame = 8; int forcesetup = 1; diff --git a/polymer/build/src/cache1d.c b/polymer/build/src/cache1d.c index 5d10732ee..3ad81f598 100644 --- a/polymer/build/src/cache1d.c +++ b/polymer/build/src/cache1d.c @@ -37,16 +37,16 @@ static int kzipopen(char *filnam) // Step 1: Allocate a nice BIG buffer, like from 1MB-4MB and // Call initcache(int cachestart, int cachesize) where // -// cachestart = (int)(pointer to start of BIG buffer) +// cachestart = (intptr_t)(pointer to start of BIG buffer) // cachesize = length of BIG buffer // -// Step 2: Call allocache(int *bufptr, int bufsiz, char *lockptr) +// Step 2: Call allocache(intptr_t *bufptr, int bufsiz, char *lockptr) // whenever you need to allocate a buffer, where: // -// *bufptr = pointer to 4-byte pointer to buffer +// *bufptr = pointer to multi-byte pointer to buffer // Confused? Using this method, cache2d can remove // previously allocated things from the cache safely by -// setting the 4-byte pointer to 0. +// setting the multi-byte pointer to 0. // bufsiz = number of bytes to allocate // *lockptr = pointer to locking char which tells whether // the region can be removed or not. If *lockptr = 0 then @@ -64,8 +64,9 @@ static int kzipopen(char *filnam) static int cachesize = 0; int cachecount = 0; char zerochar = 0; -int cachestart = 0, cacnum = 0, agecount = 0; -typedef struct { int *hand, leng; char *lock ; } cactype; +intptr_t cachestart = 0; +int cacnum = 0, agecount = 0; +typedef struct { intptr_t *hand, leng; char *lock ; } cactype; cactype cac[MAXCACHEOBJECTS]; static int lockrecip[200]; @@ -79,14 +80,25 @@ static void reportandexit(char *errormessage); extern char pow2char[8]; -void initcache(int dacachestart, int dacachesize) +void initcache(intptr_t dacachestart, int dacachesize) { int i; for (i=1;i<200;i++) lockrecip[i] = (1<<28)/(200-i); - cachestart = dacachestart; - cachesize = dacachesize; + // The following code was relocated here from engine.c, since this + // function is only ever called once (from there), and it seems to + // really belong here: + // + // initcache((FP_OFF(pic)+15)&0xfffffff0,(cachesize-((-FP_OFF(pic))&15))&0xfffffff0); + // + // I'm not sure why it's necessary, but the code is making sure the + // cache starts on a multiple of 16 bytes?? -- SA + +//printf("BEFORE: cachestart = %x, cachesize = %d\n", dacachestart, dacachesize); + cachestart = ((uintptr_t)dacachestart+15)&~(uintptr_t)0xf; + cachesize = (dacachesize-((-(uintptr_t)(dacachestart))&0xf))&~(uintptr_t)0xf; +//printf("AFTER : cachestart = %x, cachesize = %d\n", cachestart, cachesize); cac[0].leng = cachesize; cac[0].lock = &zerochar; @@ -95,16 +107,19 @@ void initcache(int dacachestart, int dacachesize) initprintf("initcache(): Initialised with %d bytes\n", dacachesize); } -void allocache(int *newhandle, int newbytes, char *newlockptr) +void allocache(intptr_t *newhandle, int newbytes, char *newlockptr) { int i, /*j,*/ z, zz, bestz=0, daval, bestval, besto=0, o1, o2, sucklen, suckz; - newbytes = ((newbytes+15)&0xfffffff0); - +//printf(" ==> asking for %d bytes, ", newbytes); + // Make all requests a multiple of 16 bytes + newbytes = (newbytes+15)&0xfffffff0; +//printf("allocated %d bytes\n", newbytes); + if ((unsigned)newbytes > (unsigned)cachesize) { Bprintf("Cachesize: %d\n",cachesize); - Bprintf("*Newhandle: 0x%x, Newbytes: %d, *Newlock: %d\n",(int)newhandle,newbytes,*newlockptr); + Bprintf("*Newhandle: 0x%x, Newbytes: %d, *Newlock: %d\n",(intptr_t)newhandle,newbytes,*newlockptr); reportandexit("BUFFER TOO BIG TO FIT IN CACHE!"); } @@ -147,7 +162,7 @@ void allocache(int *newhandle, int newbytes, char *newlockptr) //Remove all blocks except 1 suckz -= (bestz+1); cacnum -= suckz; copybufbyte(&cac[bestz+suckz],&cac[bestz],(cacnum-bestz)*sizeof(cactype)); - cac[bestz].hand = newhandle; *newhandle = cachestart+besto; + cac[bestz].hand = newhandle; *newhandle = cachestart+(intptr_t)besto; cac[bestz].leng = newbytes; cac[bestz].lock = newlockptr; cachecount++; @@ -172,7 +187,7 @@ void allocache(int *newhandle, int newbytes, char *newlockptr) cac[bestz].lock = &zerochar; } -void suckcache(int *suckptr) +void suckcache(intptr_t *suckptr) { int i; @@ -1096,11 +1111,11 @@ int kdfread(void *buffer, bsize_t dasizeof, bsize_t count, int fil) char *ptr; lzwbuflock[0] = lzwbuflock[1] = lzwbuflock[2] = lzwbuflock[3] = lzwbuflock[4] = 200; - if (lzwbuf1 == NULL) allocache((int *)&lzwbuf1,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[0]); - if (lzwbuf2 == NULL) allocache((int *)&lzwbuf2,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[1]); - if (lzwbuf3 == NULL) allocache((int *)&lzwbuf3,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[2]); - if (lzwbuf4 == NULL) allocache((int *)&lzwbuf4,LZWSIZE,&lzwbuflock[3]); - if (lzwbuf5 == NULL) allocache((int *)&lzwbuf5,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[4]); + if (lzwbuf1 == NULL) allocache((intptr_t *)&lzwbuf1,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[0]); + if (lzwbuf2 == NULL) allocache((intptr_t *)&lzwbuf2,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[1]); + if (lzwbuf3 == NULL) allocache((intptr_t *)&lzwbuf3,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[2]); + if (lzwbuf4 == NULL) allocache((intptr_t *)&lzwbuf4,LZWSIZE,&lzwbuflock[3]); + if (lzwbuf5 == NULL) allocache((intptr_t *)&lzwbuf5,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[4]); if (dasizeof > LZWSIZE) { count *= dasizeof; dasizeof = 1; } ptr = (char *)buffer; @@ -1135,11 +1150,11 @@ int dfread(void *buffer, bsize_t dasizeof, bsize_t count, BFILE *fil) char *ptr; lzwbuflock[0] = lzwbuflock[1] = lzwbuflock[2] = lzwbuflock[3] = lzwbuflock[4] = 200; - if (lzwbuf1 == NULL) allocache((int *)&lzwbuf1,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[0]); - if (lzwbuf2 == NULL) allocache((int *)&lzwbuf2,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[1]); - if (lzwbuf3 == NULL) allocache((int *)&lzwbuf3,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[2]); - if (lzwbuf4 == NULL) allocache((int *)&lzwbuf4,LZWSIZE,&lzwbuflock[3]); - if (lzwbuf5 == NULL) allocache((int *)&lzwbuf5,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[4]); + if (lzwbuf1 == NULL) allocache((intptr_t *)&lzwbuf1,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[0]); + if (lzwbuf2 == NULL) allocache((intptr_t *)&lzwbuf2,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[1]); + if (lzwbuf3 == NULL) allocache((intptr_t *)&lzwbuf3,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[2]); + if (lzwbuf4 == NULL) allocache((intptr_t *)&lzwbuf4,LZWSIZE,&lzwbuflock[3]); + if (lzwbuf5 == NULL) allocache((intptr_t *)&lzwbuf5,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[4]); if (dasizeof > LZWSIZE) { count *= dasizeof; dasizeof = 1; } ptr = (char *)buffer; @@ -1174,11 +1189,11 @@ void kdfwrite(void *buffer, bsize_t dasizeof, bsize_t count, int fil) char *ptr; lzwbuflock[0] = lzwbuflock[1] = lzwbuflock[2] = lzwbuflock[3] = lzwbuflock[4] = 200; - if (lzwbuf1 == NULL) allocache((int *)&lzwbuf1,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[0]); - if (lzwbuf2 == NULL) allocache((int *)&lzwbuf2,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[1]); - if (lzwbuf3 == NULL) allocache((int *)&lzwbuf3,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[2]); - if (lzwbuf4 == NULL) allocache((int *)&lzwbuf4,LZWSIZE,&lzwbuflock[3]); - if (lzwbuf5 == NULL) allocache((int *)&lzwbuf5,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[4]); + if (lzwbuf1 == NULL) allocache((intptr_t *)&lzwbuf1,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[0]); + if (lzwbuf2 == NULL) allocache((intptr_t *)&lzwbuf2,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[1]); + if (lzwbuf3 == NULL) allocache((intptr_t *)&lzwbuf3,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[2]); + if (lzwbuf4 == NULL) allocache((intptr_t *)&lzwbuf4,LZWSIZE,&lzwbuflock[3]); + if (lzwbuf5 == NULL) allocache((intptr_t *)&lzwbuf5,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[4]); if (dasizeof > LZWSIZE) { count *= dasizeof; dasizeof = 1; } ptr = (char *)buffer; @@ -1218,11 +1233,11 @@ void dfwrite(void *buffer, bsize_t dasizeof, bsize_t count, BFILE *fil) char *ptr; lzwbuflock[0] = lzwbuflock[1] = lzwbuflock[2] = lzwbuflock[3] = lzwbuflock[4] = 200; - if (lzwbuf1 == NULL) allocache((int *)&lzwbuf1,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[0]); - if (lzwbuf2 == NULL) allocache((int *)&lzwbuf2,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[1]); - if (lzwbuf3 == NULL) allocache((int *)&lzwbuf3,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[2]); - if (lzwbuf4 == NULL) allocache((int *)&lzwbuf4,LZWSIZE,&lzwbuflock[3]); - if (lzwbuf5 == NULL) allocache((int *)&lzwbuf5,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[4]); + if (lzwbuf1 == NULL) allocache((intptr_t *)&lzwbuf1,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[0]); + if (lzwbuf2 == NULL) allocache((intptr_t *)&lzwbuf2,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[1]); + if (lzwbuf3 == NULL) allocache((intptr_t *)&lzwbuf3,(LZWSIZE+(LZWSIZE>>4))*2,&lzwbuflock[2]); + if (lzwbuf4 == NULL) allocache((intptr_t *)&lzwbuf4,LZWSIZE,&lzwbuflock[3]); + if (lzwbuf5 == NULL) allocache((intptr_t *)&lzwbuf5,LZWSIZE+(LZWSIZE>>4),&lzwbuflock[4]); if (dasizeof > LZWSIZE) { count *= dasizeof; dasizeof = 1; } ptr = (char *)buffer; diff --git a/polymer/build/src/engine.c b/polymer/build/src/engine.c index 780d43c52..f5f253e03 100644 --- a/polymer/build/src/engine.c +++ b/polymer/build/src/engine.c @@ -70,7 +70,7 @@ static int lowrecip[1024], nytooclose, nytoofar; static unsigned int distrecip[65536]; #endif -static int *lookups = NULL; +static intptr_t *lookups = NULL; static char lookupsalloctype = 255; int dommxoverlay = 1, beforedrawrooms = 1, indrawroomsandmasks = 0; @@ -586,7 +586,8 @@ int /*viewoffset,*/ frameoffset; static int nrx1[8], nry1[8], nrx2[8], nry2[8]; // JBF 20031206: Thanks Ken static int rxi[8], ryi[8], rzi[8], rxi2[8], ryi2[8], rzi2[8]; -static int xsi[8], ysi[8], *horizlookup=0, *horizlookup2=0, horizycent; +static int xsi[8], ysi[8], horizycent; +static intptr_t *horizlookup=0, *horizlookup2=0; int globalposx, globalposy, globalposz, globalhoriz; short globalang, globalcursectnum; @@ -604,7 +605,8 @@ int vplce[4], vince[4], palookupoffse[4], bufplce[4]; char globalxshift, globalyshift; int globalxpanning, globalypanning, globalshade; short globalpicnum, globalshiftval; -int globalzd, globalbufplc, globalyscale, globalorientation; +int globalzd, globalyscale, globalorientation; +intptr_t globalbufplc; int globalx1, globaly1, globalx2, globaly2, globalx3, globaly3, globalzx; int globalx, globaly, globalz; @@ -1157,7 +1159,7 @@ static void hline(int xr, int yp) asm2 = globaly2*r; s = ((int)getpalookup((int)mulscale16(r,globvis),globalshade)<<8); - hlineasm4(xr-xl,0L,s,globalx2*r+globalypanning,globaly1*r+globalxpanning, + hlineasm4(xr-xl,0,s,globalx2*r+globalypanning,globaly1*r+globalxpanning, ylookup[yp]+xr+frameoffset); } @@ -5220,9 +5222,9 @@ static void loadpalette(void) kread(fil,&numpalookups,2); numpalookups = B_LITTLE16(numpalookups); if ((palookup[0] = (char *)kkmalloc(numpalookups<<8)) == NULL) - allocache((int*)&palookup[0],numpalookups<<8,&permanentlock); + allocache((intptr_t*)&palookup[0],numpalookups<<8,&permanentlock); if ((transluc = (char *)kkmalloc(65536L)) == NULL) - allocache((int*)&transluc,65536,&permanentlock); + allocache((intptr_t*)&transluc,65536,&permanentlock); globalpalwritten = palookup[0]; globalpal = 0; setpalookupaddress(globalpalwritten); @@ -7672,23 +7674,23 @@ int setgamemode(char davidoption, int daxdim, int daydim, int dabpp) xdim = daxdim; ydim = daydim; - j = ydim*4*sizeof(int); //Leave room for horizlookup&horizlookup2 + j = ydim*4*sizeof(intptr_t); //Leave room for horizlookup&horizlookup2 if (lookups != NULL) { if (lookupsalloctype == 0) kkfree((void *)lookups); - if (lookupsalloctype == 1) suckcache((int *)lookups); + if (lookupsalloctype == 1) suckcache(lookups); lookups = NULL; } lookupsalloctype = 0; - if ((lookups = (int *)kkmalloc(j<<1)) == NULL) + if ((lookups = (intptr_t *)kkmalloc(j<<1)) == NULL) { - allocache((int *)&lookups,j<<1,&permanentlock); + allocache((intptr_t *)&lookups,j<<1,&permanentlock); lookupsalloctype = 1; } - horizlookup = (int *)(lookups); - horizlookup2 = (int *)(FP_OFF(lookups)+j); + horizlookup = lookups; + horizlookup2 = (intptr_t *)((intptr_t)lookups+j); // FIXME_SA horizycent = ((ydim*4)>>1); //Force drawrooms to call dosetaspect & recalculate stuff @@ -7875,7 +7877,7 @@ int loadpics(char *filename, int askedsize) cachesize -= 65536L; if (cachesize < 65536) return(-1); } - initcache((FP_OFF(pic)+15)&0xfffffff0,(cachesize-((-FP_OFF(pic))&15))&0xfffffff0); + initcache((intptr_t) pic, cachesize); for (i=0;ipixels; + frameplace = (intptr_t)sdl_surface->pixels; if (sdl_surface->pitch != bytesperline || modechange) { diff --git a/polymer/eduke32/Makefile b/polymer/eduke32/Makefile index 6f6f68c62..817eecb93 100644 --- a/polymer/eduke32/Makefile +++ b/polymer/eduke32/Makefile @@ -9,7 +9,7 @@ POLYMOST = 1 USE_OPENGL = 1 NOASM = 0 LINKED_GTK = 0 -BUILD32_ON_64 = 1 +BUILD32_ON_64 = 0 # Debugging options RELEASE?=1 diff --git a/polymer/eduke32/source/actors.c b/polymer/eduke32/source/actors.c index ee494c74a..3b4cd9da4 100644 --- a/polymer/eduke32/source/actors.c +++ b/polymer/eduke32/source/actors.c @@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. //------------------------------------------------------------------------- #include "duke3d.h" #include "gamedef.h" +#include "compat.h" extern int numenvsnds; extern int actor_tog; diff --git a/polymer/eduke32/source/anim.c b/polymer/eduke32/source/anim.c index 1596357cb..b1ed5797a 100644 --- a/polymer/eduke32/source/anim.c +++ b/polymer/eduke32/source/anim.c @@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "duke3d.h" #include "animlib.h" #include "mouse.h" +#include "compat.h" void endanimsounds(int fr) { @@ -226,7 +227,7 @@ void playanm(const char *fn,char t) walock[TILE_ANIM] = 219+t; - allocache((int *)&animbuf,length,&walock[TILE_ANIM]); + allocache((intptr_t *)&animbuf,length,&walock[TILE_ANIM]); tilesizx[TILE_ANIM] = 200; tilesizy[TILE_ANIM] = 320; @@ -283,7 +284,7 @@ void playanm(const char *fn,char t) else if (ud.volume_number == 1) ototalclock += 18; else ototalclock += 10; - waloff[TILE_ANIM] = FP_OFF(ANIM_DrawFrame(i)); + waloff[TILE_ANIM] = (intptr_t)ANIM_DrawFrame(i); invalidatetile(TILE_ANIM, 0, 1<<4); // JBF 20031228 rotatesprite(0<<16,0<<16,65536L,512,TILE_ANIM,0,0,2+4+8+16+64, 0,0,xdim-1,ydim-1); nextpage(); diff --git a/polymer/eduke32/source/duke3d.h b/polymer/eduke32/source/duke3d.h index 9c4ee5a49..8701aa9f6 100644 --- a/polymer/eduke32/source/duke3d.h +++ b/polymer/eduke32/source/duke3d.h @@ -586,13 +586,15 @@ extern int screenpeek; extern int current_menu; extern int tempwallptr,animatecnt; -extern int lockclock,frameplace; +extern int lockclock; +extern intptr_t frameplace; extern char display_mirror,loadfromgrouponly,rtsplaying; extern int groupfile; extern int ototalclock; -extern int *animateptr[MAXANIMATES], animategoal[MAXANIMATES]; +extern int *animateptr[MAXANIMATES]; +extern int animategoal[MAXANIMATES]; extern int animatevel[MAXANIMATES]; // extern int oanimateval[MAXANIMATES]; extern short neartagsector, neartagwall, neartagsprite; diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index 11e756ce5..c97a8d0d1 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -4054,7 +4054,7 @@ void displayrooms(int snum,int smoothratio) { walock[TILE_SAVESHOT] = 199; if (waloff[TILE_SAVESHOT] == 0) - allocache((int *)&waloff[TILE_SAVESHOT],200*320,&walock[TILE_SAVESHOT]); + allocache(&waloff[TILE_SAVESHOT],200*320,&walock[TILE_SAVESHOT]); setviewtotile(TILE_SAVESHOT,200L,320L); } else if (getrendermode() == 0 && ((ud.screen_tilting && p->rotscrnang) || ud.detail==0)) diff --git a/polymer/eduke32/source/mapster32.h b/polymer/eduke32/source/mapster32.h index 541421d60..f506a9f54 100644 --- a/polymer/eduke32/source/mapster32.h +++ b/polymer/eduke32/source/mapster32.h @@ -20,6 +20,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ //------------------------------------------------------------------------- +#include "compat.h" + #define TICSPERFRAME 3 // #define VULGARITY @@ -139,7 +141,8 @@ extern char custom2dcolors; extern char mlook; int intro=0; -extern int frameplace, ydim16, halfxdim16, midydim16, zoom; +extern int ydim16, halfxdim16, midydim16, zoom; +extern intptr_t frameplace; extern char pow2char[8]; static int acurpalette=0; diff --git a/polymer/eduke32/source/savegame.c b/polymer/eduke32/source/savegame.c index dd6e0a102..b13fd5086 100644 --- a/polymer/eduke32/source/savegame.c +++ b/polymer/eduke32/source/savegame.c @@ -576,7 +576,7 @@ int saveplayer(int spot) if (!waloff[TILE_SAVESHOT]) { walock[TILE_SAVESHOT] = 254; - allocache((int *)&waloff[TILE_SAVESHOT],200*320,&walock[TILE_SAVESHOT]); + allocache(&waloff[TILE_SAVESHOT],200*320,&walock[TILE_SAVESHOT]); clearbuf((void*)waloff[TILE_SAVESHOT],(200*320)/4,0); walock[TILE_SAVESHOT] = 1; }