mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-11 07:11:39 +00:00
separate objects for polymost.c/mdsprite.c/hightile.c and friends
git-svn-id: https://svn.eduke32.com/eduke32@1173 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
b2274e1968
commit
c94b4d63cb
16 changed files with 410 additions and 225 deletions
|
@ -113,6 +113,11 @@ ENGINEOBJS+= \
|
|||
$(OBJ)/crc32.$o \
|
||||
$(OBJ)/defs.$o \
|
||||
$(OBJ)/engine.$o \
|
||||
$(OBJ)/polymost.$o \
|
||||
$(OBJ)/hightile.$o \
|
||||
$(OBJ)/mdsprite.$o \
|
||||
$(OBJ)/textfont.$o \
|
||||
$(OBJ)/smalltextfont.$o \
|
||||
$(OBJ)/glbuild.$o \
|
||||
$(OBJ)/kplib.$o \
|
||||
$(OBJ)/lzf_c.$o \
|
||||
|
|
|
@ -9,7 +9,12 @@ $(OBJ)/compat.$o: $(SRC)/compat.c $(INC)/compat.h
|
|||
$(OBJ)/config.$o: $(SRC)/config.c $(INC)/compat.h $(INC)/osd.h $(INC)/editor.h
|
||||
$(OBJ)/crc32.$o: $(SRC)/crc32.c $(INC)/crc32.h
|
||||
$(OBJ)/defs.$o: $(SRC)/defs.c $(INC)/build.h $(INC)/baselayer.h $(INC)/scriptfile.h $(INC)/compat.h
|
||||
$(OBJ)/engine.$o: $(SRC)/engine.c $(SRC)/polymost.c $(INC)/kplib.h $(SRC)/hightile.c $(SRC)/mdsprite.c $(INC)/md4.h $(INC)/lzf.h $(INC)/lzwnew.h $(INC)/compat.h $(INC)/build.h $(INC)/pragmas.h $(INC)/cache1d.h $(INC)/a.h $(INC)/osd.h $(INC)/baselayer.h $(INC)/polymer.h $(INC)/polymost.h $(INC)/mdsprite.h
|
||||
$(OBJ)/engine.$o: $(SRC)/engine.c $(INC)/compat.h $(INC)/build.h $(INC)/pragmas.h $(INC)/cache1d.h $(INC)/a.h $(INC)/osd.h $(INC)/baselayer.h $(SRC)/engine_priv.h $(INC)/polymost.h $(INC)/hightile.h $(INC)/mdsprite.h $(INC)/polymer.h
|
||||
$(OBJ)/polymost.$o: $(SRC)/polymost.c $(INC)/md4.h $(INC)/lzf.h $(INC)/lzwnew.h $(SRC)/engine_priv.h $(INC)/polymost.h $(INC)/hightile.h $(INC)/mdsprite.h
|
||||
$(OBJ)/hightile.$o: $(SRC)/hightile.c $(INC)/kplib.h $(INC)/hightile.h
|
||||
$(OBJ)/mdsprite.$o: $(SRC)/mdsprite.c $(SRC)/engine_priv.h $(INC)/polymost.h $(INC)/hightile.h $(INC)/mdsprite.h
|
||||
$(OBJ)/textfont.$o: $(SRC)/textfont.c
|
||||
$(OBJ)/smalltextfont.$o: $(SRC)/smalltextfont.c
|
||||
$(OBJ)/glbuild.$o: $(SRC)/glbuild.c $(INC)/glbuild.h $(INC)/baselayer.h
|
||||
$(OBJ)/kplib.$o: $(SRC)/kplib.c $(INC)/compat.h
|
||||
$(OBJ)/lzf_c.$o: $(SRC)/lzf_c.c $(SRC)/lzfP.h
|
||||
|
@ -28,7 +33,7 @@ $(OBJ)/sound.$o: $(SRC)/sound.c $(INC)/osd.h $(INC)/compat.h $(INC)/cache1d.h
|
|||
$(OBJ)/winlayer.$o: $(SRC)/winlayer.c $(INC)/compat.h $(INC)/winlayer.h $(INC)/baselayer.h $(INC)/pragmas.h $(INC)/build.h $(INC)/a.h $(INC)/osd.h $(INC)/dxdidf.h $(INC)/glbuild.h
|
||||
$(OBJ)/gtkbits.$o: $(SRC)/gtkbits.c $(INC)/baselayer.h $(INC)/build.h $(INC)/dynamicgtk.h
|
||||
$(OBJ)/dynamicgtk.$o: $(SRC)/dynamicgtk.c $(INC)/dynamicgtk.h
|
||||
$(OBJ)/polymer.$o: $(SRC)/polymer.c $(INC)/polymer.h $(INC)/compat.h $(INC)/build.h $(INC)/glbuild.h $(INC)/osd.h $(INC)/polymost.h $(INC)/pragmas.h $(INC)/mdsprite.h
|
||||
$(OBJ)/polymer.$o: $(SRC)/polymer.c $(INC)/polymer.h $(INC)/compat.h $(INC)/build.h $(INC)/glbuild.h $(INC)/osd.h $(INC)/pragmas.h $(INC)/mdsprite.h
|
||||
|
||||
$(OBJ)/buildres.$(res): $(SRC)/misc/buildres.rc $(INC)/startwin.editor.h
|
||||
$(OBJ)/startwin.editor.$o: $(SRC)/startwin.editor.c $(INC)/build.h $(INC)/editor.h $(INC)/winlayer.h $(INC)/compat.h $(INC)/startwin.editor.h
|
||||
|
|
|
@ -61,6 +61,11 @@ ENGINEOBJS= \
|
|||
$(OBJ)\crc32.$o \
|
||||
$(OBJ)\defs.$o \
|
||||
$(OBJ)\engine.$o \
|
||||
$(OBJ)\polymost.$o \
|
||||
$(OBJ)\hightile.$o \
|
||||
$(OBJ)\mdsprite.$o \
|
||||
$(OBJ)\textfont.$o \
|
||||
$(OBJ)\smalltextfont.$o \
|
||||
$(OBJ)\glbuild.$o \
|
||||
$(OBJ)\kplib.$o \
|
||||
$(OBJ)\lzf_c.$o \
|
||||
|
|
|
@ -542,6 +542,7 @@ extern int glredbluemode;
|
|||
extern int glusetexcache, glusetexcachecompression;
|
||||
extern int glmultisample, glnvmultisamplehint;
|
||||
extern int glwidescreen, glprojectionhacks;
|
||||
extern int gltexmaxsize;
|
||||
void gltexapplyprops (void);
|
||||
void invalidatecache(void);
|
||||
|
||||
|
|
40
polymer/eduke32/build/include/hightile.h
Normal file
40
polymer/eduke32/build/include/hightile.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
#ifndef HIGHTILE_PRIV_H
|
||||
#define HIGHTILE_PRIV_H
|
||||
|
||||
struct hicskybox_t {
|
||||
int ignore;
|
||||
char *face[6];
|
||||
};
|
||||
|
||||
typedef struct hicreplc_t {
|
||||
struct hicreplc_t *next;
|
||||
char palnum, ignore, flags, filler;
|
||||
char *filename;
|
||||
float alphacut, xscale, yscale;
|
||||
struct hicskybox_t *skybox;
|
||||
} hicreplctyp;
|
||||
|
||||
extern palette_t hictinting[MAXPALOOKUPS];
|
||||
extern hicreplctyp *hicreplc[MAXTILES];
|
||||
extern char hicfirstinit;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char magic[4]; // 'PMST', was 'Polymost'
|
||||
int xdim, ydim; // of image, unpadded
|
||||
int flags; // 1 = !2^x, 2 = has alpha, 4 = lzw compressed
|
||||
int quality; // r_downsize at the time the cache was written
|
||||
} texcacheheader;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int size;
|
||||
int format;
|
||||
int xdim, ydim; // of mipmap (possibly padded)
|
||||
int border, depth;
|
||||
} texcachepicture;
|
||||
|
||||
hicreplctyp * hicfindsubst(int picnum, int palnum, int skybox);
|
||||
#define HICEFFECTMASK (1|2|4|8)
|
||||
|
||||
#endif
|
|
@ -221,5 +221,23 @@ EXTERN mdmodel **models;
|
|||
|
||||
void updateanimation(md2model *m, spritetype *tspr);
|
||||
int mdloadskin(md2model *m, int number, int pal, int surf);
|
||||
void mdinit(void);
|
||||
void freeallmodels(void);
|
||||
void clearskins(void);
|
||||
int mddraw(spritetype *tspr);
|
||||
|
||||
typedef struct { float xadd, yadd, zadd; short angadd, flags; } hudtyp;
|
||||
|
||||
EXTERN hudtyp hudmem[2][MAXTILES]; //~320KB ... ok for now ... could replace with dynamic alloc
|
||||
|
||||
EXTERN int mdinited;
|
||||
EXTERN int mdpause;
|
||||
EXTERN int nummodelsalloced, nextmodelid;
|
||||
EXTERN voxmodel *voxmodels[MAXVOXELS];
|
||||
|
||||
void voxfree(voxmodel *m);
|
||||
voxmodel *voxload(const char *filnam);
|
||||
int voxdraw(voxmodel *m, spritetype *tspr);
|
||||
|
||||
|
||||
#endif // !_mdsprite_h_
|
||||
|
|
|
@ -26,8 +26,9 @@
|
|||
# include "build.h"
|
||||
# include "glbuild.h"
|
||||
# include "osd.h"
|
||||
# include "polymost.h"
|
||||
# include "hightile.h"
|
||||
# include "mdsprite.h"
|
||||
# include "polymost.h"
|
||||
# include "pragmas.h"
|
||||
# include <math.h>
|
||||
|
||||
|
|
|
@ -1,20 +1,90 @@
|
|||
#ifndef _polymost_h_
|
||||
# define _polymost_h_
|
||||
#ifndef _polymost_h_
|
||||
# define _polymost_h_
|
||||
|
||||
# include "glbuild.h"
|
||||
#ifdef POLYMOST
|
||||
|
||||
struct hicskybox_t {
|
||||
int ignore;
|
||||
char *face[6];
|
||||
#define CULL_OFFSET 384
|
||||
#define CULL_DELAY 2
|
||||
#define MAXCULLCHECKS 1024
|
||||
|
||||
extern int lastcullcheck;
|
||||
extern char cullmodel[MAXSPRITES];
|
||||
extern int cullcheckcnt;
|
||||
|
||||
#define PI 3.14159265358979323
|
||||
|
||||
typedef struct { unsigned char r, g, b, a; } coltype;
|
||||
|
||||
extern int rendmode;
|
||||
extern float gtang;
|
||||
extern float glox1, gloy1;
|
||||
extern double gxyaspect, grhalfxdown10x;
|
||||
extern double gcosang, gsinang, gcosang2, gsinang2;
|
||||
extern double gchang, gshang, gctang, gstang;
|
||||
|
||||
struct glfiltermodes {
|
||||
char *name;
|
||||
int min,mag;
|
||||
};
|
||||
#define numglfiltermodes 6
|
||||
extern struct glfiltermodes glfiltermodes[numglfiltermodes];
|
||||
|
||||
extern const char *TEXCACHEDIR;
|
||||
void phex(unsigned char v, char *s);
|
||||
void uploadtexture(int doalloc, int xsiz, int ysiz, int intexfmt, int texfmt, coltype *pic, int tsizx, int tsizy, int dameth);
|
||||
void polymost_drawsprite(int snum);
|
||||
void polymost_drawmaskwall(int damaskwallcnt);
|
||||
void polymost_dorotatesprite(int sx, int sy, int z, short a, short picnum,
|
||||
signed char dashade, char dapalnum, char dastat, int cx1, int cy1, int cx2, int cy2, int uniqid);
|
||||
void polymost_fillpolygon(int npoints);
|
||||
void polymost_initosdfuncs(void);
|
||||
void polymost_drawrooms(void);
|
||||
|
||||
void polymost_glinit(void);
|
||||
void polymost_glreset(void);
|
||||
|
||||
void gltexinvalidate(int dapicnum, int dapalnum, int dameth);
|
||||
void gltexinvalidateall(void);
|
||||
void gltexinvalidate8(void);
|
||||
int polymost_printext256(int xpos, int ypos, short col, short backcol, char *name, char fontsize);
|
||||
|
||||
// Depth peeling control
|
||||
extern int r_curpeel;
|
||||
extern float curpolygonoffset;
|
||||
extern int peelcompiling;
|
||||
|
||||
// Depth peeling data
|
||||
extern GLuint ztexture[3];
|
||||
extern GLuint *peels;
|
||||
extern GLuint *peelfbos;
|
||||
extern GLuint peelprogram[2];
|
||||
|
||||
extern int cachefilehandle;
|
||||
extern FILE *cacheindexptr;
|
||||
extern struct HASH_table cacheH;
|
||||
|
||||
struct cache_entry
|
||||
{
|
||||
char name[BMAX_PATH];
|
||||
int offset;
|
||||
int len;
|
||||
struct cache_entry *next;
|
||||
};
|
||||
|
||||
typedef struct hicreplc_t {
|
||||
struct hicreplc_t *next;
|
||||
char palnum, ignore, flags, filler;
|
||||
char *filename;
|
||||
float alphacut, xscale, yscale;
|
||||
struct hicskybox_t *skybox;
|
||||
} hicreplctyp;
|
||||
typedef struct cache_entry texcacheindex;
|
||||
|
||||
extern texcacheindex firstcacheindex;
|
||||
extern texcacheindex *datextures;
|
||||
extern texcacheindex *cacheptrs[MAXTILES<<2];
|
||||
extern int numcacheentries;
|
||||
|
||||
int dxtfilter(int fil, texcachepicture *pict, char *pic, void *midbuf, char *packbuf, unsigned int miplen);
|
||||
int dedxtfilter(int fil, texcachepicture *pict, char *pic, void *midbuf, char *packbuf, int ispacked);
|
||||
|
||||
void writexcache(char *fn, int len, int dameth, char effect, texcacheheader *head);
|
||||
|
||||
extern float shadescale;
|
||||
extern float alphahackarray[MAXTILES];
|
||||
|
||||
typedef struct pthtyp_t
|
||||
{
|
||||
|
@ -34,7 +104,6 @@ typedef struct pthtyp_t
|
|||
char *palmap;int size;
|
||||
} pthtyp;
|
||||
|
||||
hicreplctyp * hicfindsubst(int picnum, int palnum, int skybox);
|
||||
pthtyp * gltexcache (int dapicnum, int dapalnum, int dameth);
|
||||
|
||||
extern palette_t hictinting[MAXPALOOKUPS];
|
||||
|
@ -47,6 +116,6 @@ extern float shadescale;
|
|||
extern int globalnoeffect;
|
||||
extern int drawingskybox;
|
||||
|
||||
#define HICEFFECTMASK (1|2|4|8)
|
||||
#endif
|
||||
|
||||
#endif // !_polymost_h_
|
||||
#endif
|
|
@ -22,27 +22,24 @@
|
|||
#include "scriptfile.h"
|
||||
|
||||
#ifdef POLYMOST
|
||||
# ifdef USE_OPENGL
|
||||
# include "glbuild.h"
|
||||
# ifdef POLYMER
|
||||
# include "polymer.h"
|
||||
# endif
|
||||
# endif
|
||||
# include "hightile.h"
|
||||
# include "mdsprite.h"
|
||||
# include "polymost.h"
|
||||
# ifdef _WIN32
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# include <windows.h>
|
||||
# endif
|
||||
# ifdef USE_OPENGL
|
||||
# include "glbuild.h"
|
||||
# ifdef POLYMER
|
||||
# include "polymer.h"
|
||||
# endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#define MAXCLIPNUM 1024
|
||||
#define MAXPERMS 512
|
||||
#define MAXTILEFILES 256
|
||||
#define MAXYSAVES ((MAXXDIM*MAXSPRITES)>>7)
|
||||
#define MAXNODESPERLINE 42 //Warning: This depends on MAXYSAVES & MAXYDIM!
|
||||
#define MAXCLIPDIST 1024
|
||||
|
||||
#include "engine_priv.h"
|
||||
|
||||
void *kmalloc(bsize_t size) { return(Bmalloc(size)); }
|
||||
#define kkmalloc kmalloc
|
||||
|
@ -93,7 +90,7 @@ static char tempbuf[MAXWALLS];
|
|||
int ebpbak, espbak;
|
||||
int slopalookup[16384]; // was 2048
|
||||
#if defined(USE_OPENGL)
|
||||
static palette_t palookupfog[MAXPALOOKUPS];
|
||||
palette_t palookupfog[MAXPALOOKUPS];
|
||||
#endif
|
||||
|
||||
static char permanentlock = 255;
|
||||
|
@ -122,9 +119,8 @@ int pow2long[32] =
|
|||
int reciptable[2048], fpuasm;
|
||||
|
||||
char britable[16][256]; // JBF 20040207: full 8bit precision
|
||||
//char textfont[1024], smalltextfont[1024];
|
||||
#include "textfont.c"
|
||||
#include "smalltextfont.c"
|
||||
|
||||
extern char textfont[2048], smalltextfont[2048];
|
||||
|
||||
static char kensmessage[128];
|
||||
char *engineerrstr = "No error";
|
||||
|
@ -191,21 +187,6 @@ int msqrtasm(unsigned int);
|
|||
modify exact [eax ebx ecx]
|
||||
int krecipasm(int);
|
||||
|
||||
#pragma aux setgotpic =\
|
||||
"mov ebx, eax",\
|
||||
"cmp byte ptr walock[eax], 200",\
|
||||
"jae skipit",\
|
||||
"mov byte ptr walock[eax], 199",\
|
||||
"skipit: shr eax, 3",\
|
||||
"and ebx, 7",\
|
||||
"mov dl, byte ptr gotpic[eax]",\
|
||||
"mov bl, byte ptr pow2char[ebx]",\
|
||||
"or dl, bl",\
|
||||
"mov byte ptr gotpic[eax], dl",\
|
||||
parm [eax]\
|
||||
modify exact [eax ebx ecx edx]
|
||||
void setgotpic(int);
|
||||
|
||||
#pragma aux getclipmask =\
|
||||
"sar eax, 31",\
|
||||
"add ebx, ebx",\
|
||||
|
@ -314,27 +295,6 @@ static inline int krecipasm(int a)
|
|||
}
|
||||
}
|
||||
|
||||
static inline void setgotpic(int a)
|
||||
{
|
||||
_asm
|
||||
{
|
||||
push ebx
|
||||
mov eax, a
|
||||
mov ebx, eax
|
||||
cmp byte ptr walock[eax], 200
|
||||
jae skipit
|
||||
mov byte ptr walock[eax], 199
|
||||
skipit:
|
||||
shr eax, 3
|
||||
and ebx, 7
|
||||
mov dl, byte ptr gotpic[eax]
|
||||
mov bl, byte ptr pow2char[ebx]
|
||||
or dl, bl
|
||||
mov byte ptr gotpic[eax], dl
|
||||
pop ebx
|
||||
}
|
||||
}
|
||||
|
||||
static inline int getclipmask(int a, int b, int c, int d)
|
||||
{
|
||||
_asm
|
||||
|
@ -425,24 +385,6 @@ beg:
|
|||
: "=a" (__r) : "c" (__c) : "edx","ebx", "cc"); \
|
||||
__r; })
|
||||
|
||||
#define setgotpic(a) \
|
||||
({ int __a=(a); \
|
||||
__asm__ __volatile__ ( \
|
||||
"movl %%eax, %%ebx\n\t" \
|
||||
"cmpb $200, "ASMSYM("walock")"(%%eax)\n\t" \
|
||||
"jae 0f\n\t" \
|
||||
"movb $199, "ASMSYM("walock")"(%%eax)\n\t" \
|
||||
"0:\n\t" \
|
||||
"shrl $3, %%eax\n\t" \
|
||||
"andl $7, %%ebx\n\t" \
|
||||
"movb "ASMSYM("gotpic")"(%%eax), %%dl\n\t" \
|
||||
"movb "ASMSYM("pow2char")"(%%ebx), %%bl\n\t" \
|
||||
"orb %%bl, %%dl\n\t" \
|
||||
"movb %%dl, "ASMSYM("gotpic")"(%%eax)" \
|
||||
: "=a" (__a) : "a" (__a) \
|
||||
: "ebx", "edx", "memory", "cc"); \
|
||||
__a; })
|
||||
|
||||
#define krecipasm(a) \
|
||||
({ int __a=(a); \
|
||||
__asm__ __volatile__ ( \
|
||||
|
@ -532,12 +474,6 @@ static inline int msqrtasm(unsigned int c)
|
|||
return a;
|
||||
}
|
||||
|
||||
static inline void setgotpic(int tilenume)
|
||||
{
|
||||
if (walock[tilenume] < 200) walock[tilenume] = 199;
|
||||
gotpic[tilenume>>3] |= pow2char[tilenume&7];
|
||||
}
|
||||
|
||||
static inline int krecipasm(int i)
|
||||
{
|
||||
// Ken did this
|
||||
|
@ -562,12 +498,12 @@ inline int getkensmessagecrc(int b)
|
|||
#endif
|
||||
|
||||
|
||||
static int xb1[MAXWALLSB], yb1[MAXWALLSB], xb2[MAXWALLSB], yb2[MAXWALLSB];
|
||||
static int rx1[MAXWALLSB], ry1[MAXWALLSB], rx2[MAXWALLSB], ry2[MAXWALLSB];
|
||||
static short p2[MAXWALLSB], thesector[MAXWALLSB];
|
||||
int xb1[MAXWALLSB], yb1[MAXWALLSB], xb2[MAXWALLSB], yb2[MAXWALLSB];
|
||||
int rx1[MAXWALLSB], ry1[MAXWALLSB], rx2[MAXWALLSB], ry2[MAXWALLSB];
|
||||
short p2[MAXWALLSB], thesector[MAXWALLSB];
|
||||
short thewall[MAXWALLSB];
|
||||
|
||||
static short bunchfirst[MAXWALLSB], bunchlast[MAXWALLSB];
|
||||
short bunchfirst[MAXWALLSB], bunchlast[MAXWALLSB];
|
||||
|
||||
static short smost[MAXYSAVES], smostcnt;
|
||||
static short smoststart[MAXWALLSB];
|
||||
|
@ -617,13 +553,13 @@ intptr_t globalbufplc;
|
|||
int globalx1, globaly1, globalx2, globaly2, globalx3, globaly3, globalzx;
|
||||
int globalx, globaly, globalz;
|
||||
|
||||
static short sectorborder[256], sectorbordercnt;
|
||||
short sectorborder[256], sectorbordercnt;
|
||||
static char tablesloaded = 0;
|
||||
int pageoffset, ydim16, qsetmode = 0;
|
||||
int startposx, startposy, startposz;
|
||||
short startang, startsectnum;
|
||||
short pointhighlight, linehighlight, highlightcnt;
|
||||
static int lastx[MAXYDIM];
|
||||
int lastx[MAXYDIM];
|
||||
char *transluc = NULL, paletteloaded = 0;
|
||||
|
||||
int halfxdim16, midydim16;
|
||||
|
@ -639,7 +575,7 @@ static int colscan[27];
|
|||
static short clipnum, hitwalls[4];
|
||||
int hitscangoalx = (1<<29)-1, hitscangoaly = (1<<29)-1;
|
||||
#ifdef POLYMOST
|
||||
static int hitallsprites = 0;
|
||||
int hitallsprites = 0;
|
||||
#endif
|
||||
|
||||
typedef struct { int x1, y1, x2, y2; } linetype;
|
||||
|
@ -679,7 +615,7 @@ double msens = 1.0;
|
|||
static char artfilename[20];
|
||||
static int numtilefiles, artfil = -1, artfilnum, artfilplc;
|
||||
|
||||
static char inpreparemirror = 0;
|
||||
char inpreparemirror = 0;
|
||||
static int mirrorsx1, mirrorsy1, mirrorsx2, mirrorsy2;
|
||||
|
||||
static int setviewcnt = 0; // interface layers use this now
|
||||
|
@ -706,26 +642,6 @@ char palfadedelta = 0;
|
|||
//int cacheresets = 0,cacheinvalidates = 0;
|
||||
|
||||
|
||||
//============================================================================= //POLYMOST BEGINS
|
||||
#ifdef POLYMOST
|
||||
static void scansector(short sectnum);
|
||||
#include "polymost.h"
|
||||
#include "hightile.c"
|
||||
#include "polymost.c"
|
||||
#else
|
||||
void hicsetpalettetint(int palnum, unsigned char r, unsigned char g, unsigned char b, unsigned char effect)
|
||||
{ UNREFERENCED_PARAMETER(palnum); UNREFERENCED_PARAMETER(r); UNREFERENCED_PARAMETER(g); UNREFERENCED_PARAMETER(b); UNREFERENCED_PARAMETER(effect);}
|
||||
int hicsetsubsttex(int picnum, int palnum, char *filen, float alphacut, float xscale, float yscale, char flags)
|
||||
{ UNREFERENCED_PARAMETER(picnum); UNREFERENCED_PARAMETER(palnum); UNREFERENCED_PARAMETER(filen); UNREFERENCED_PARAMETER(alphacut); UNREFERENCED_PARAMETER(xscale); UNREFERENCED_PARAMETER(yscale); UNREFERENCED_PARAMETER(flags); return 0;}
|
||||
int hicsetskybox(int picnum, int palnum, char *faces[6])
|
||||
{ UNREFERENCED_PARAMETER(picnum); UNREFERENCED_PARAMETER(palnum); UNREFERENCED_PARAMETER(faces); return 0;}
|
||||
int hicclearsubst(int picnum, int palnum)
|
||||
{ UNREFERENCED_PARAMETER(picnum); UNREFERENCED_PARAMETER(palnum);return 0;}
|
||||
int polymost_drawtilescreen(int tilex, int tiley, int wallnum, int dimen, int tilezoom)
|
||||
{ UNREFERENCED_PARAMETER(tilex); UNREFERENCED_PARAMETER(tiley); UNREFERENCED_PARAMETER(wallnum); UNREFERENCED_PARAMETER(dimen); UNREFERENCED_PARAMETER(tilezoom);return -1;}
|
||||
#endif
|
||||
//============================================================================= //POLYMOST ENDS
|
||||
|
||||
//
|
||||
// getpalookup (internal)
|
||||
//
|
||||
|
@ -1042,7 +958,7 @@ static void maskwallscan(int x1, int x2, short *uwal, short *dwal, int *swal, in
|
|||
//
|
||||
// wallfront (internal)
|
||||
//
|
||||
static int wallfront(int l1, int l2)
|
||||
int wallfront(int l1, int l2)
|
||||
{
|
||||
walltype *wal;
|
||||
int x11, y11, x21, y21, x12, y12, x22, y22, dx, dy, t1, t2;
|
||||
|
@ -1407,7 +1323,7 @@ static int owallmost(short *mostbuf, int w, int z)
|
|||
//
|
||||
// wallmost (internal)
|
||||
//
|
||||
static int wallmost(short *mostbuf, int w, int sectnum, char dastat)
|
||||
int wallmost(short *mostbuf, int w, int sectnum, char dastat)
|
||||
{
|
||||
int bad, i, j, t, y, z, inty, intz, xcross, yinc, fw;
|
||||
int x1, y1, z1, x2, y2, z2, xv, yv, dx, dy, dasqr, oz1, oz2;
|
||||
|
|
132
polymer/eduke32/build/src/engine_priv.h
Normal file
132
polymer/eduke32/build/src/engine_priv.h
Normal file
|
@ -0,0 +1,132 @@
|
|||
#ifndef ENGINE_PRIV_H
|
||||
#define ENGINE_PRIV_H
|
||||
|
||||
#define MAXCLIPNUM 1024
|
||||
#define MAXPERMS 512
|
||||
#define MAXTILEFILES 256
|
||||
#define MAXYSAVES ((MAXXDIM*MAXSPRITES)>>7)
|
||||
#define MAXNODESPERLINE 42 //Warning: This depends on MAXYSAVES & MAXYDIM!
|
||||
#define MAXCLIPDIST 1024
|
||||
|
||||
extern char pow2char[8];
|
||||
extern int pow2int[32];
|
||||
|
||||
extern short thesector[MAXWALLSB], thewall[MAXWALLSB];
|
||||
extern short bunchfirst[MAXWALLSB], bunchlast[MAXWALLSB];
|
||||
extern short maskwall[MAXWALLSB], maskwallcnt;
|
||||
extern spritetype *tspriteptr[MAXSPRITESONSCREEN];
|
||||
extern int xdimen, xdimenrecip, halfxdimen, xdimenscale, xdimscale, ydimen;
|
||||
extern int frameoffset;
|
||||
extern int globalposx, globalposy, globalposz, globalhoriz;
|
||||
extern short globalang, globalcursectnum;
|
||||
extern int globalpal, cosglobalang, singlobalang;
|
||||
extern int cosviewingrangeglobalang, sinviewingrangeglobalang;
|
||||
extern int globalvisibility;
|
||||
extern int xyaspect;
|
||||
extern int asm1, asm2, asm3, asm4;
|
||||
extern int globalshade;
|
||||
extern short globalpicnum;
|
||||
extern int globalx1, globaly2;
|
||||
extern int globalorientation;
|
||||
|
||||
extern short searchit;
|
||||
extern int searchx, searchy;
|
||||
extern short searchsector, searchwall, searchstat;
|
||||
|
||||
extern char inpreparemirror;
|
||||
|
||||
extern int curbrightness, gammabrightness;
|
||||
extern char britable[16][256];
|
||||
extern char picsiz[MAXTILES];
|
||||
extern int lastx[MAXYDIM];
|
||||
extern char *transluc;
|
||||
extern short sectorborder[256], sectorbordercnt;
|
||||
extern int qsetmode;
|
||||
extern int hitallsprites;
|
||||
|
||||
extern int xb1[MAXWALLSB];
|
||||
extern int rx1[MAXWALLSB], ry1[MAXWALLSB];
|
||||
extern short p2[MAXWALLSB];
|
||||
extern short numscans, numhits, numbunches;
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
extern palette_t palookupfog[MAXPALOOKUPS];
|
||||
#endif
|
||||
|
||||
int wallmost(short *mostbuf, int w, int sectnum, char dastat);
|
||||
int wallfront(int l1, int l2);
|
||||
int animateoffs(short tilenum, short fakevar);
|
||||
|
||||
extern int indrawroomsandmasks;
|
||||
|
||||
|
||||
#if defined(__WATCOMC__) && !defined(NOASM)
|
||||
|
||||
#pragma aux setgotpic =\
|
||||
"mov ebx, eax",\
|
||||
"cmp byte ptr walock[eax], 200",\
|
||||
"jae skipit",\
|
||||
"mov byte ptr walock[eax], 199",\
|
||||
"skipit: shr eax, 3",\
|
||||
"and ebx, 7",\
|
||||
"mov dl, byte ptr gotpic[eax]",\
|
||||
"mov bl, byte ptr pow2char[ebx]",\
|
||||
"or dl, bl",\
|
||||
"mov byte ptr gotpic[eax], dl",\
|
||||
parm [eax]\
|
||||
modify exact [eax ebx ecx edx]
|
||||
void setgotpic(int);
|
||||
|
||||
#elif defined(_MSC_VER) && !defined(NOASM) // __WATCOMC__
|
||||
|
||||
static inline void setgotpic(int a)
|
||||
{
|
||||
_asm {
|
||||
push ebx
|
||||
mov eax, a
|
||||
mov ebx, eax
|
||||
cmp byte ptr walock[eax], 200
|
||||
jae skipit
|
||||
mov byte ptr walock[eax], 199
|
||||
skipit:
|
||||
shr eax, 3
|
||||
and ebx, 7
|
||||
mov dl, byte ptr gotpic[eax]
|
||||
mov bl, byte ptr pow2char[ebx]
|
||||
or dl, bl
|
||||
mov byte ptr gotpic[eax], dl
|
||||
pop ebx
|
||||
}
|
||||
}
|
||||
|
||||
#elif defined(__GNUC__) && defined(__i386__) && !defined(NOASM) // _MSC_VER
|
||||
|
||||
#define setgotpic(a) \
|
||||
({ int __a=(a); \
|
||||
__asm__ __volatile__ ( \
|
||||
"movl %%eax, %%ebx\n\t" \
|
||||
"cmpb $200, "ASMSYM("walock")"(%%eax)\n\t" \
|
||||
"jae 0f\n\t" \
|
||||
"movb $199, "ASMSYM("walock")"(%%eax)\n\t" \
|
||||
"0:\n\t" \
|
||||
"shrl $3, %%eax\n\t" \
|
||||
"andl $7, %%ebx\n\t" \
|
||||
"movb "ASMSYM("gotpic")"(%%eax), %%dl\n\t" \
|
||||
"movb "ASMSYM("pow2char")"(%%ebx), %%bl\n\t" \
|
||||
"orb %%bl, %%dl\n\t" \
|
||||
"movb %%dl, "ASMSYM("gotpic")"(%%eax)" \
|
||||
: "=a" (__a) : "a" (__a) \
|
||||
: "ebx", "edx", "memory", "cc"); \
|
||||
__a; })
|
||||
|
||||
#else // __GNUC__ && __i386__
|
||||
|
||||
static inline void setgotpic(int tilenume)
|
||||
{
|
||||
if (walock[tilenume] < 200) walock[tilenume] = 199;
|
||||
gotpic[tilenume>>3] |= pow2char[tilenume&7];
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* ENGINE_PRIV_H */
|
|
@ -4,26 +4,18 @@
|
|||
* See the included license file "BUILDLIC.TXT" for license info.
|
||||
*/
|
||||
|
||||
#include "kplib.h"
|
||||
#ifdef POLYMOST
|
||||
|
||||
#include "build.h"
|
||||
#include "compat.h"
|
||||
#include "kplib.h"
|
||||
#include "hightile.h"
|
||||
|
||||
|
||||
palette_t hictinting[MAXPALOOKUPS];
|
||||
|
||||
//moved into polymost.h
|
||||
//#define HICEFFECTMASK (1|2|4)
|
||||
/*struct hicskybox_t {
|
||||
int ignore;
|
||||
char *face[6];
|
||||
};
|
||||
|
||||
typedef struct hicreplc_t {
|
||||
struct hicreplc_t *next;
|
||||
char palnum, ignore, flags, filler;
|
||||
char *filename;
|
||||
float alphacut;
|
||||
struct hicskybox_t *skybox;
|
||||
} hicreplctyp;*/
|
||||
static hicreplctyp *hicreplc[MAXTILES];
|
||||
static char hicfirstinit = 0;
|
||||
hicreplctyp *hicreplc[MAXTILES];
|
||||
char hicfirstinit = 0;
|
||||
|
||||
//
|
||||
// find the index into hicreplc[] which contains the replacement tile particulars
|
||||
|
@ -290,3 +282,13 @@ int hicclearsubst(int picnum, int palnum)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#else /* POLYMOST */
|
||||
|
||||
void hicsetpalettetint(int palnum, unsigned char r, unsigned char g, unsigned char b, unsigned char effect) { }
|
||||
int hicsetsubsttex(int picnum, int palnum, char *filen, float alphacut) { return 0; }
|
||||
int hicsetskybox(int picnum, int palnum, char *faces[6]) { return 0; }
|
||||
int hicclearsubst(int picnum, int palnum) { return 0; }
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,7 +1,19 @@
|
|||
//------------------------------------- MD2/MD3 LIBRARY BEGINS -------------------------------------
|
||||
|
||||
#include "compat.h"
|
||||
#include "build.h"
|
||||
#include "glbuild.h"
|
||||
#include "pragmas.h"
|
||||
#include "baselayer.h"
|
||||
#include "engine_priv.h"
|
||||
#include "hightile.h"
|
||||
#include "polymost.h"
|
||||
#include "mdsprite.h"
|
||||
static voxmodel *voxmodels[MAXVOXELS];
|
||||
#include "cache1d.h"
|
||||
#include "kplib.h"
|
||||
#include "md4.h"
|
||||
|
||||
voxmodel *voxmodels[MAXVOXELS];
|
||||
int curextra=MAXTILES;
|
||||
|
||||
int addtileP(int model,int tile,int pallet)
|
||||
|
@ -29,15 +41,11 @@ int Ptile2tile(int tile,int pallet)
|
|||
return t;
|
||||
}
|
||||
|
||||
//Move this to appropriate place!
|
||||
typedef struct { float xadd, yadd, zadd; short angadd, flags; } hudtyp;
|
||||
hudtyp hudmem[2][MAXTILES]; //~320KB ... ok for now ... could replace with dynamic alloc
|
||||
|
||||
static char mdinited=0;
|
||||
int mdinited=0;
|
||||
int mdpause=0;
|
||||
|
||||
#define MODELALLOCGROUP 256
|
||||
static int nummodelsalloced = 0, nextmodelid = 0;
|
||||
int nummodelsalloced = 0, nextmodelid = 0;
|
||||
|
||||
static int maxmodelverts = 0, allocmodelverts = 0;
|
||||
static int maxmodeltris = 0, allocmodeltris = 0;
|
||||
|
@ -54,7 +62,7 @@ int globalnoeffect=0;
|
|||
|
||||
extern int timerticspersec;
|
||||
|
||||
static void freeallmodels()
|
||||
void freeallmodels()
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -87,7 +95,7 @@ static void freeallmodels()
|
|||
}
|
||||
}
|
||||
|
||||
static void clearskins()
|
||||
void clearskins()
|
||||
{
|
||||
mdmodel *m;
|
||||
int i, j;
|
||||
|
@ -134,7 +142,7 @@ static void clearskins()
|
|||
}
|
||||
}
|
||||
|
||||
static void mdinit()
|
||||
void mdinit()
|
||||
{
|
||||
memset(hudmem,0,sizeof(hudmem));
|
||||
freeallmodels();
|
||||
|
@ -2701,7 +2709,7 @@ static int loadvxl(const char *filnam)
|
|||
}
|
||||
#endif
|
||||
|
||||
static void voxfree(voxmodel *m)
|
||||
void voxfree(voxmodel *m)
|
||||
{
|
||||
if (!m) return;
|
||||
if (m->mytex) free(m->mytex);
|
||||
|
@ -2710,7 +2718,7 @@ static void voxfree(voxmodel *m)
|
|||
free(m);
|
||||
}
|
||||
|
||||
static voxmodel *voxload(const char *filnam)
|
||||
voxmodel *voxload(const char *filnam)
|
||||
{
|
||||
int i, is8bit, ret;
|
||||
voxmodel *vm;
|
||||
|
@ -2741,7 +2749,7 @@ static voxmodel *voxload(const char *filnam)
|
|||
}
|
||||
|
||||
//Draw voxel model as perfect cubes
|
||||
static int voxdraw(voxmodel *m, spritetype *tspr)
|
||||
int voxdraw(voxmodel *m, spritetype *tspr)
|
||||
{
|
||||
point3d fp, m0, a0;
|
||||
int i, j, fi, xx, yy, zz;
|
||||
|
|
|
@ -65,7 +65,25 @@ Low priority:
|
|||
|
||||
**************************************************************************************************/
|
||||
|
||||
int animateoffs(short tilenum, short fakevar);
|
||||
|
||||
#ifdef POLYMOST
|
||||
|
||||
#include "compat.h"
|
||||
#include "build.h"
|
||||
#include "glbuild.h"
|
||||
#include "pragmas.h"
|
||||
#include "baselayer.h"
|
||||
#include "osd.h"
|
||||
#include "engine_priv.h"
|
||||
#include "hightile.h"
|
||||
#include "mdsprite.h"
|
||||
#include "polymost.h"
|
||||
#include "scriptfile.h"
|
||||
#include "cache1d.h"
|
||||
#include "kplib.h"
|
||||
|
||||
extern char textfont[2048], smalltextfont[2048];
|
||||
|
||||
int rendmode=0;
|
||||
int usemodels=1, usehightile=1;
|
||||
|
||||
|
@ -82,13 +100,12 @@ static double dxb1[MAXWALLSB], dxb2[MAXWALLSB];
|
|||
#define LINTERPSIZ 4 //log2 of interpolation size. 4:pretty fast&acceptable quality, 0:best quality/slow!
|
||||
#define DEPTHDEBUG 0 //1:render distance instead of texture, for debugging only!, 0:default
|
||||
#define FOGSCALE 0.0000640
|
||||
#define PI 3.14159265358979323
|
||||
|
||||
float shadescale = 1.050;
|
||||
|
||||
static double gyxscale, gxyaspect, gviewxrange, ghalfx, grhalfxdown10, grhalfxdown10x, ghoriz;
|
||||
static double gcosang, gsinang, gcosang2, gsinang2;
|
||||
static double gchang, gshang, gctang, gstang, gvisibility;
|
||||
double gyxscale, gxyaspect, gviewxrange, ghalfx, grhalfxdown10, grhalfxdown10x, ghoriz;
|
||||
double gcosang, gsinang, gcosang2, gsinang2;
|
||||
double gchang, gshang, gctang, gstang, gvisibility;
|
||||
float gtang = 0.0;
|
||||
double guo, gux, guy; //Screen-based texture mapping parameters
|
||||
double gvo, gvx, gvy;
|
||||
|
@ -105,11 +122,7 @@ static int srepeat = 0, trepeat = 0;
|
|||
int glredbluemode = 0;
|
||||
static int lastglredbluemode = 0, redblueclearcnt = 0;
|
||||
|
||||
static struct glfiltermodes
|
||||
{
|
||||
char *name;
|
||||
int min,mag;
|
||||
} glfiltermodes[] =
|
||||
struct glfiltermodes glfiltermodes[numglfiltermodes] =
|
||||
{
|
||||
{"GL_NEAREST",GL_NEAREST,GL_NEAREST},
|
||||
{"GL_LINEAR",GL_LINEAR,GL_LINEAR},
|
||||
|
@ -118,7 +131,6 @@ static struct glfiltermodes
|
|||
{"GL_NEAREST_MIPMAP_LINEAR",GL_NEAREST_MIPMAP_LINEAR,GL_NEAREST},
|
||||
{"GL_LINEAR_MIPMAP_LINEAR",GL_LINEAR_MIPMAP_LINEAR,GL_LINEAR}
|
||||
};
|
||||
#define numglfiltermodes (sizeof(glfiltermodes)/sizeof(glfiltermodes[0]))
|
||||
|
||||
int glanisotropy = 1; // 0 = maximum supported by card
|
||||
int glusetexcompr = 1;
|
||||
|
@ -144,15 +156,15 @@ static int shadeforfullbrightpass;
|
|||
int r_depthpeeling = 0; // cvar toggling general depth peeling usage
|
||||
int r_peelscount = 5; // cvar controlling the number of peeling layers
|
||||
int r_curpeel = -1; // cvar controlling the display of independant peeling layers
|
||||
static float curpolygonoffset; // internal polygon offset stack for drawing flat sprites to avoid depth fighting
|
||||
static int peelcompiling = 0; // internal control var to disable blending when compiling the peeling display list
|
||||
static int newpeelscount = 0; // temporary var for peels count changing during the game
|
||||
float curpolygonoffset; // internal polygon offset stack for drawing flat sprites to avoid depth fighting
|
||||
int peelcompiling = 0; // internal control var to disable blending when compiling the peeling display list
|
||||
int newpeelscount = 0; // temporary var for peels count changing during the game
|
||||
|
||||
// Depth peeling data
|
||||
static GLuint ztexture[3]; // secondary Z-buffers identifier
|
||||
static GLuint *peels; // peels identifiers
|
||||
static GLuint *peelfbos; // peels FBOs identifiers
|
||||
static GLuint peelprogram[2]; // ARBfp peeling fragment program
|
||||
GLuint ztexture[3]; // secondary Z-buffers identifier
|
||||
GLuint *peels; // peels identifiers
|
||||
GLuint *peelfbos; // peels FBOs identifiers
|
||||
GLuint peelprogram[2]; // ARBfp peeling fragment program
|
||||
|
||||
// Detail mapping cvar
|
||||
int r_detailmapping = 1;
|
||||
|
@ -195,6 +207,8 @@ static float fogresult, fogcol[4];
|
|||
}
|
||||
#endif
|
||||
|
||||
static char tempbuf[MAXWALLSB<<1];
|
||||
|
||||
// polymost ART sky control
|
||||
int r_parallaxskyclamping = 1;
|
||||
int r_parallaxskypanning = 0;
|
||||
|
@ -310,9 +324,6 @@ void drawline2d(float x0, float y0, float x1, float y1, char col)
|
|||
}
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
typedef struct { unsigned char r, g, b, a; } coltype;
|
||||
|
||||
static void uploadtexture(int doalloc, int xsiz, int ysiz, int intexfmt, int texfmt, coltype *pic, int tsizx, int tsizy, int dameth);
|
||||
|
||||
#include "md4.h"
|
||||
|
||||
|
@ -328,51 +339,18 @@ static void uploadtexture(int doalloc, int xsiz, int ysiz, int intexfmt, int tex
|
|||
int cachefilehandle = -1; // texture cache file handle
|
||||
FILE *cacheindexptr = NULL;
|
||||
|
||||
static struct HASH_table cacheH = { MAXTILES<<2, NULL };
|
||||
struct HASH_table cacheH = { MAXTILES<<2, NULL };
|
||||
|
||||
char TEXCACHEFILE[BMAX_PATH] = "textures";
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char magic[4]; // 'PMST', was 'Polymost'
|
||||
int xdim, ydim; // of image, unpadded
|
||||
int flags; // 1 = !2^x, 2 = has alpha, 4 = lzw compressed
|
||||
int quality; // r_downsize at the time the cache was written
|
||||
} texcacheheader;
|
||||
typedef struct
|
||||
{
|
||||
int size;
|
||||
int format;
|
||||
int xdim, ydim; // of mipmap (possibly padded)
|
||||
int border, depth;
|
||||
} texcachepicture;
|
||||
|
||||
int dxtfilter(int fil, texcachepicture *pict, char *pic, void *midbuf, char *packbuf, unsigned int miplen);
|
||||
int dedxtfilter(int fil, texcachepicture *pict, char *pic, void *midbuf, char *packbuf, int ispacked);
|
||||
|
||||
static inline void phex(unsigned char v, char *s);
|
||||
void writexcache(char *fn, int len, int dameth, char effect, texcacheheader *head);
|
||||
|
||||
int mdtims, omdtims;
|
||||
float alphahackarray[MAXTILES];
|
||||
|
||||
struct cache_entry
|
||||
{
|
||||
char name[BMAX_PATH];
|
||||
int offset;
|
||||
int len;
|
||||
struct cache_entry *next;
|
||||
};
|
||||
|
||||
typedef struct cache_entry texcacheindex;
|
||||
|
||||
texcacheindex firstcacheindex;
|
||||
texcacheindex *datextures = NULL;
|
||||
texcacheindex *cacheptrs[MAXTILES<<2];
|
||||
int numcacheentries = 0;
|
||||
|
||||
#include "mdsprite.c"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
//TEXTURE MANAGEMENT: treats same texture with different .PAL as a separate texture. This makes the
|
||||
// max number of virtual textures very large (MAXTILES*256). Instead of allocating a handle for
|
||||
|
@ -398,7 +376,7 @@ int numcacheentries = 0;
|
|||
} pthtyp;*/
|
||||
|
||||
#define GLTEXCACHEADSIZ 8192
|
||||
static pthtyp *gltexcachead[GLTEXCACHEADSIZ];
|
||||
pthtyp *gltexcachead[GLTEXCACHEADSIZ];
|
||||
|
||||
int drawingskybox = 0;
|
||||
|
||||
|
@ -654,7 +632,7 @@ void gltexapplyprops(void)
|
|||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
static int LoadCacheOffsets(void);
|
||||
static float glox1, gloy1, glox2, gloy2;
|
||||
float glox1, gloy1, glox2, gloy2;
|
||||
|
||||
//Use this for both initialization and uninitialization of OpenGL.
|
||||
static int gltexcacnum = -1;
|
||||
|
@ -1140,7 +1118,7 @@ void fixtransparency(coltype *dapic, int daxsiz, int daysiz, int daxsiz2, int da
|
|||
}
|
||||
}
|
||||
|
||||
static void uploadtexture(int doalloc, int xsiz, int ysiz, int intexfmt, int texfmt, coltype *pic, int tsizx, int tsizy, int dameth)
|
||||
void uploadtexture(int doalloc, int xsiz, int ysiz, int intexfmt, int texfmt, coltype *pic, int tsizx, int tsizy, int dameth)
|
||||
{
|
||||
coltype *wpptr, *rpptr;
|
||||
int x2, y2, j, js=0, x3, y3, y, x, r, g, b, a, k;
|
||||
|
@ -1423,7 +1401,7 @@ static int LoadCacheOffsets(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline void phex(unsigned char v, char *s)
|
||||
void phex(unsigned char v, char *s)
|
||||
{
|
||||
int x;
|
||||
x = v>>4;
|
||||
|
@ -1513,7 +1491,7 @@ void writexcache(char *fn, int len, int dameth, char effect, texcacheheader *hea
|
|||
void *midbuf = NULL;
|
||||
unsigned int alloclen=0, level, miplen;
|
||||
unsigned int padx=0, pady=0;
|
||||
GLuint gi;
|
||||
GLint gi;
|
||||
int offset = 0;
|
||||
|
||||
if (!glinfo.texcompr || !glusetexcompr || !glusetexcache || !cacheindexptr || cachefilehandle < 0) return;
|
||||
|
@ -4198,7 +4176,6 @@ static void polymost_drawalls(int bunch)
|
|||
}
|
||||
}
|
||||
|
||||
static int wallfront(int, int);
|
||||
static int polymost_bunchfront(int b1, int b2)
|
||||
{
|
||||
double x1b1, x1b2, x2b1, x2b2;
|
||||
|
@ -4749,10 +4726,6 @@ void polymost_drawmaskwall(int damaskwallcnt)
|
|||
drawpoly(dpx,dpy,n,method);
|
||||
}
|
||||
|
||||
#define CULL_OFFSET 384
|
||||
#define CULL_DELAY 2
|
||||
#define MAXCULLCHECKS 1024
|
||||
|
||||
int lastcullcheck = 0;
|
||||
char cullmodel[MAXSPRITES];
|
||||
int cullcheckcnt = 0;
|
||||
|
@ -6729,4 +6702,11 @@ int dedxtfilter(int fil, texcachepicture *pict, char *pic, void *midbuf, char *p
|
|||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#else /* POLYMOST */
|
||||
|
||||
int polymost_drawtilescreen (int tilex, int tiley, int wallnum, int dimen) { return -1; }
|
||||
|
||||
#endif
|
||||
|
||||
// vim:ts=4:sw=4:
|
||||
|
|
|
@ -36,9 +36,6 @@ extern "C" {
|
|||
#include "compat.h"
|
||||
#include "a.h"
|
||||
#include "build.h"
|
||||
#if defined(POLYMOST) && defined(USE_OPENGL)
|
||||
# include "polymost.h"
|
||||
#endif
|
||||
#ifdef POLYMER
|
||||
# include "polymer.h"
|
||||
#endif
|
||||
|
|
|
@ -44,6 +44,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#include "kplib.h"
|
||||
//#include "crc32.h"
|
||||
#include "util_lib.h"
|
||||
#include "hightile.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
|
|
|
@ -910,7 +910,12 @@ static int X_DoExecute(void)
|
|||
insptr++;
|
||||
if (g_sp->picnum == APLAYER)
|
||||
g_sp->pal = g_player[g_sp->yvel].ps->palookup;
|
||||
else g_sp->pal = ActorExtra[g_i].tempang;
|
||||
else
|
||||
{
|
||||
if (g_sp->pal == 1 && g_sp->extra == 0) // hack for frozen
|
||||
g_sp->extra++;
|
||||
g_sp->pal = ActorExtra[g_i].tempang;
|
||||
}
|
||||
ActorExtra[g_i].tempang = 0;
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in a new issue