mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-11 18:50:46 +00:00
git-svn-id: https://svn.eduke32.com/eduke32@1336 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
e48c4c2c87
commit
dba312e61b
12 changed files with 130 additions and 266 deletions
|
@ -45,7 +45,7 @@ CC=cl
|
||||||
AS=ml
|
AS=ml
|
||||||
RC=rc
|
RC=rc
|
||||||
LINK=link /opt:nowin98 /opt:ref /nologo
|
LINK=link /opt:nowin98 /opt:ref /nologo
|
||||||
CFLAGS=$(CFLAGS) /nologo /MD /J $(flags_cl) $(TARGETOPTS) /I$(INC) /I$(DXROOT)\include" /I$(MSSDKROOT)\include" /I$(PLATFORMSDK)\include" # /I$(ENETROOT)\include"
|
CFLAGS=$(CFLAGS) /nologo /MD /J $(flags_cl) $(TARGETOPTS) /I$(INC) /I$(MSSDKROOT)\include" /I$(PLATFORMSDK)\include" /I$(DXROOT)\include" # /I$(ENETROOT)\include"
|
||||||
ASFLAGS=/nologo /coff /c
|
ASFLAGS=/nologo /coff /c
|
||||||
EXESUFFIX=.exe
|
EXESUFFIX=.exe
|
||||||
!ifdef DEBUG
|
!ifdef DEBUG
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// ISO C9x compliant stdint.h for Microsoft Visual Studio
|
// ISO C9x compliant stdint.h for Microsoft Visual Studio
|
||||||
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
|
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
|
||||||
//
|
//
|
||||||
// Copyright (c) 2006 Alexander Chemeris
|
// Copyright (c) 2006-2008 Alexander Chemeris
|
||||||
//
|
//
|
||||||
// Redistribution and use in source and binary forms, with or without
|
// Redistribution and use in source and binary forms, with or without
|
||||||
// modification, are permitted provided that the following conditions are met:
|
// modification, are permitted provided that the following conditions are met:
|
||||||
|
@ -53,6 +53,16 @@
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Define _W64 macros to mark types changing their size, like intptr_t.
|
||||||
|
#ifndef _W64
|
||||||
|
# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
|
||||||
|
# define _W64 __w64
|
||||||
|
# else
|
||||||
|
# define _W64
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// 7.18.1 Integer types
|
// 7.18.1 Integer types
|
||||||
|
|
||||||
// 7.18.1.1 Exact-width integer types
|
// 7.18.1.1 Exact-width integer types
|
||||||
|
@ -90,8 +100,8 @@ typedef uint64_t uint_fast64_t;
|
||||||
typedef __int64 intptr_t;
|
typedef __int64 intptr_t;
|
||||||
typedef unsigned __int64 uintptr_t;
|
typedef unsigned __int64 uintptr_t;
|
||||||
#else // _WIN64 ][
|
#else // _WIN64 ][
|
||||||
typedef int32_t intptr_t;
|
typedef _W64 int intptr_t;
|
||||||
typedef uint32_t uintptr_t;
|
typedef _W64 unsigned int uintptr_t;
|
||||||
#endif // _WIN64 ]
|
#endif // _WIN64 ]
|
||||||
|
|
||||||
// 7.18.1.5 Greatest-width integer types
|
// 7.18.1.5 Greatest-width integer types
|
||||||
|
|
|
@ -78,9 +78,9 @@ struct cacheitem_t
|
||||||
|
|
||||||
typedef struct cacheitem_t texcacheindex;
|
typedef struct cacheitem_t texcacheindex;
|
||||||
|
|
||||||
extern texcacheindex firstcacheindex;
|
extern texcacheindex *firstcacheindex;
|
||||||
extern texcacheindex *curcacheindex;
|
extern texcacheindex *curcacheindex;
|
||||||
extern texcacheindex *cacheptrs[MAXTILES<<2];
|
extern texcacheindex *cacheptrs[MAXTILES<<1];
|
||||||
extern int32_t numcacheentries;
|
extern int32_t numcacheentries;
|
||||||
|
|
||||||
int32_t dxtfilter(int32_t fil, texcachepicture *pict, char *pic, void *midbuf, char *packbuf, uint32_t miplen);
|
int32_t dxtfilter(int32_t fil, texcachepicture *pict, char *pic, void *midbuf, char *packbuf, uint32_t miplen);
|
||||||
|
|
|
@ -7373,7 +7373,9 @@ int32_t loadmaphack(char *filename)
|
||||||
memset(spriteext, 0, sizeof(spriteext_t) * MAXSPRITES);
|
memset(spriteext, 0, sizeof(spriteext_t) * MAXSPRITES);
|
||||||
memset(spritesmooth, 0, sizeof(spritesmooth_t) * (MAXSPRITES+MAXUNIQHUDID));
|
memset(spritesmooth, 0, sizeof(spritesmooth_t) * (MAXSPRITES+MAXUNIQHUDID));
|
||||||
|
|
||||||
|
#ifdef POLYMER
|
||||||
staticlightcount = 0;
|
staticlightcount = 0;
|
||||||
|
#endif // POLYMER
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
@ -7526,6 +7528,7 @@ int32_t loadmaphack(char *filename)
|
||||||
}
|
}
|
||||||
spriteext[whichsprite].flags |= SPREXT_AWAY2;
|
spriteext[whichsprite].flags |= SPREXT_AWAY2;
|
||||||
break;
|
break;
|
||||||
|
#ifdef POLYMER
|
||||||
case T_LIGHT: // light sector x y z range r g b radius faderadius angle horiz minshade maxshade priority
|
case T_LIGHT: // light sector x y z range r g b radius faderadius angle horiz minshade maxshade priority
|
||||||
{
|
{
|
||||||
int32_t value;
|
int32_t value;
|
||||||
|
@ -7564,6 +7567,7 @@ int32_t loadmaphack(char *filename)
|
||||||
staticlightcount++;
|
staticlightcount++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif // POLYMER
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// unrecognised token
|
// unrecognised token
|
||||||
|
@ -7766,7 +7770,11 @@ int32_t setgamemode(char davidoption, int32_t daxdim, int32_t daydim, int32_t da
|
||||||
if (nogl) dabpp = 8;
|
if (nogl) dabpp = 8;
|
||||||
#endif
|
#endif
|
||||||
if ((qsetmode == 200) && (videomodereset == 0) &&
|
if ((qsetmode == 200) && (videomodereset == 0) &&
|
||||||
(davidoption == fullscreen) && (xdim == daxdim) && (ydim == daydim) && (bpp == dabpp) && glrendmode != 4)
|
(davidoption == fullscreen) && (xdim == daxdim) && (ydim == daydim) && (bpp == dabpp)
|
||||||
|
#ifdef POLYMER
|
||||||
|
&& glrendmode != 4
|
||||||
|
#endif // POLYMER
|
||||||
|
)
|
||||||
return(0);
|
return(0);
|
||||||
|
|
||||||
strcpy(kensmessage,"!!!! BUILD engine&tools programmed by Ken Silverman of E.G. RI. (c) Copyright 1995 Ken Silverman. Summary: BUILD = Ken. !!!!");
|
strcpy(kensmessage,"!!!! BUILD engine&tools programmed by Ken Silverman of E.G. RI. (c) Copyright 1995 Ken Silverman. Summary: BUILD = Ken. !!!!");
|
||||||
|
|
|
@ -152,21 +152,6 @@ static int32_t fullbrightloadingpass = 0;
|
||||||
static int32_t fullbrightdrawingpass = 0;
|
static int32_t fullbrightdrawingpass = 0;
|
||||||
static int32_t shadeforfullbrightpass;
|
static int32_t shadeforfullbrightpass;
|
||||||
|
|
||||||
/*
|
|
||||||
// Depth peeling control
|
|
||||||
int32_t r_depthpeeling = 0; // cvar toggling general depth peeling usage
|
|
||||||
int32_t r_peelscount = 5; // cvar controlling the number of peeling layers
|
|
||||||
int32_t r_curpeel = -1; // cvar controlling the display of independant peeling layers
|
|
||||||
int32_t peelcompiling = 0; // internal control var to disable blending when compiling the peeling display list
|
|
||||||
int32_t newpeelscount = 0; // temporary var for peels count changing during the game
|
|
||||||
|
|
||||||
// Depth peeling data
|
|
||||||
GLuint ztexture[3]; // secondary Z-buffers identifier
|
|
||||||
GLuint *peels; // peels identifiers
|
|
||||||
GLuint *peelfbos; // peels FBOs identifiers
|
|
||||||
GLuint peelprogram[2]; // ARBfp peeling fragment program
|
|
||||||
*/
|
|
||||||
|
|
||||||
float curpolygonoffset; // internal polygon offset stack for drawing flat sprites to avoid depth fighting
|
float curpolygonoffset; // internal polygon offset stack for drawing flat sprites to avoid depth fighting
|
||||||
|
|
||||||
// Detail mapping cvar
|
// Detail mapping cvar
|
||||||
|
@ -338,9 +323,9 @@ char TEXCACHEFILE[BMAX_PATH] = "textures";
|
||||||
int32_t mdtims, omdtims;
|
int32_t mdtims, omdtims;
|
||||||
float alphahackarray[MAXTILES];
|
float alphahackarray[MAXTILES];
|
||||||
|
|
||||||
texcacheindex firstcacheindex;
|
texcacheindex *firstcacheindex = NULL;
|
||||||
texcacheindex *curcacheindex = NULL;
|
texcacheindex *curcacheindex = NULL;
|
||||||
texcacheindex *cacheptrs[MAXTILES<<2];
|
texcacheindex *cacheptrs[MAXTILES<<1];
|
||||||
int32_t numcacheentries = 0;
|
int32_t numcacheentries = 0;
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -680,21 +665,6 @@ void polymost_glreset()
|
||||||
memset(gltexcachead,0,sizeof(gltexcachead));
|
memset(gltexcachead,0,sizeof(gltexcachead));
|
||||||
glox1 = -1;
|
glox1 = -1;
|
||||||
|
|
||||||
// Depth peeling cleanup
|
|
||||||
/*
|
|
||||||
if (peels)
|
|
||||||
{
|
|
||||||
bglDeleteProgramsARB(2, peelprogram);
|
|
||||||
bglDeleteFramebuffersEXT(r_peelscount + 1, peelfbos);
|
|
||||||
bglDeleteTextures(r_peelscount + 1, peels);
|
|
||||||
bglDeleteTextures(3, ztexture);
|
|
||||||
free(peels);
|
|
||||||
free(peelfbos);
|
|
||||||
|
|
||||||
peels = NULL;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (cachefilehandle != -1)
|
if (cachefilehandle != -1)
|
||||||
{
|
{
|
||||||
Bclose(cachefilehandle);
|
Bclose(cachefilehandle);
|
||||||
|
@ -706,17 +676,12 @@ void polymost_glreset()
|
||||||
Bfclose(cacheindexptr);
|
Bfclose(cacheindexptr);
|
||||||
cacheindexptr = NULL;
|
cacheindexptr = NULL;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
texcacheindex *index;
|
|
||||||
|
|
||||||
curcacheindex = firstcacheindex.next;
|
for (i = 0; i < numcacheentries; i++)
|
||||||
while (curcacheindex)
|
if (cacheptrs[i])
|
||||||
{
|
{
|
||||||
index = curcacheindex;
|
Bfree(cacheptrs[i]);
|
||||||
curcacheindex = curcacheindex->next;
|
cacheptrs[i] = NULL;
|
||||||
Bfree(index);
|
|
||||||
}
|
|
||||||
firstcacheindex.next = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -725,35 +690,6 @@ void polymost_glinit()
|
||||||
{
|
{
|
||||||
GLfloat col[4];
|
GLfloat col[4];
|
||||||
int32_t i;
|
int32_t i;
|
||||||
/*
|
|
||||||
char notpeeledprogramstring[] =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"OPTION ARB_fog_exp2;\n"
|
|
||||||
"OPTION ARB_fragment_program_shadow;\n"
|
|
||||||
"TEMP texsample;\n"
|
|
||||||
"TEMP depthresult;\n"
|
|
||||||
"TEX depthresult, fragment.position, texture[1], SHADOWRECT;\n"
|
|
||||||
"ADD depthresult.a, depthresult.a, -0.5;\n"
|
|
||||||
"KIL depthresult.a;\n"
|
|
||||||
"TEX texsample, fragment.texcoord[0], texture[0], 2D;\n"
|
|
||||||
"MUL result.color, fragment.color, texsample;\n"
|
|
||||||
"END\n";
|
|
||||||
char peeledprogramstring[] =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"OPTION ARB_fog_exp2;\n"
|
|
||||||
"OPTION ARB_fragment_program_shadow;\n"
|
|
||||||
"TEMP texsample;\n"
|
|
||||||
"TEMP depthresult;\n"
|
|
||||||
"TEX depthresult, fragment.position, texture[2], SHADOWRECT;\n"
|
|
||||||
"ADD depthresult.a, depthresult.a, -0.5;\n"
|
|
||||||
"KIL depthresult.a;\n"
|
|
||||||
"TEX depthresult, fragment.position, texture[1], SHADOWRECT;\n"
|
|
||||||
"ADD depthresult.a, depthresult.a, -0.5;\n"
|
|
||||||
"KIL depthresult.a;\n"
|
|
||||||
"TEX texsample, fragment.texcoord[0], texture[0], 2D;\n"
|
|
||||||
"MUL result.color, fragment.color, texsample;\n"
|
|
||||||
"END\n";
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (!Bstrcmp(glinfo.vendor, "NVIDIA Corporation"))
|
if (!Bstrcmp(glinfo.vendor, "NVIDIA Corporation"))
|
||||||
{
|
{
|
||||||
|
@ -783,14 +719,6 @@ void polymost_glinit()
|
||||||
bglEnable(GL_MULTISAMPLE_ARB);
|
bglEnable(GL_MULTISAMPLE_ARB);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
if (r_depthpeeling && (!glinfo.arbfp || !glinfo.depthtex || !glinfo.shadow || !glinfo.fbos || !glinfo.rect || !glinfo.multitex))
|
|
||||||
{
|
|
||||||
OSD_Printf("Your OpenGL implementation doesn't support depth peeling. Disabling...\n");
|
|
||||||
r_depthpeeling = 0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (r_detailmapping && (!glinfo.multitex || !glinfo.envcombine))
|
if (r_detailmapping && (!glinfo.multitex || !glinfo.envcombine))
|
||||||
{
|
{
|
||||||
OSD_Printf("Your OpenGL implementation doesn't support detail mapping. Disabling...\n");
|
OSD_Printf("Your OpenGL implementation doesn't support detail mapping. Disabling...\n");
|
||||||
|
@ -809,80 +737,6 @@ void polymost_glinit()
|
||||||
r_vbos = 0;
|
r_vbos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//depth peeling initialization
|
|
||||||
/*
|
|
||||||
if (r_depthpeeling)
|
|
||||||
{
|
|
||||||
if (newpeelscount)
|
|
||||||
{
|
|
||||||
r_peelscount = newpeelscount;
|
|
||||||
newpeelscount = 0;
|
|
||||||
}
|
|
||||||
// create the secondary Z-buffers and the Z-backbuffer
|
|
||||||
bglGenTextures(3, ztexture);
|
|
||||||
|
|
||||||
i = 0;
|
|
||||||
while (i < 3)
|
|
||||||
{
|
|
||||||
bglBindTexture(GL_TEXTURE_RECTANGLE, ztexture[i]);
|
|
||||||
bglCopyTexImage2D(GL_TEXTURE_RECTANGLE, 0, GL_DEPTH_COMPONENT, 0, 0, xdim, ydim, 0);
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_WRAP_S, GL_CLAMP);
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_WRAP_T, GL_CLAMP);
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_COMPARE_MODE_ARB, GL_COMPARE_R_TO_TEXTURE_ARB);
|
|
||||||
if (i < 2)
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_COMPARE_FUNC_ARB, GL_GREATER);
|
|
||||||
else
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_COMPARE_FUNC_ARB, GL_LESS);
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_DEPTH_TEXTURE_MODE_ARB, GL_ALPHA);
|
|
||||||
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create the various peeling layers as well as the FBOs to render to them
|
|
||||||
peels = malloc((r_peelscount + 1) * sizeof(GLuint));
|
|
||||||
bglGenTextures(r_peelscount + 1, peels);
|
|
||||||
|
|
||||||
peelfbos = malloc((r_peelscount + 1) * sizeof(GLuint));
|
|
||||||
bglGenFramebuffersEXT(r_peelscount + 1, peelfbos);
|
|
||||||
|
|
||||||
i = 0;
|
|
||||||
while (i <= r_peelscount)
|
|
||||||
{
|
|
||||||
bglBindTexture(GL_TEXTURE_RECTANGLE, peels[i]);
|
|
||||||
bglCopyTexImage2D(GL_TEXTURE_RECTANGLE, 0, GL_RGBA, 0, 0, xdim, ydim, 0);
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_WRAP_S, GL_CLAMP);
|
|
||||||
bglTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_WRAP_T, GL_CLAMP);
|
|
||||||
|
|
||||||
bglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, peelfbos[i]);
|
|
||||||
bglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_RECTANGLE, peels[i], 0);
|
|
||||||
if (i == r_peelscount) // bakcbuffer
|
|
||||||
bglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_RECTANGLE, ztexture[2], 0);
|
|
||||||
else if (i < (r_peelscount - 1))
|
|
||||||
bglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_RECTANGLE, ztexture[i % 2], 0);
|
|
||||||
|
|
||||||
if (bglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) != GL_FRAMEBUFFER_COMPLETE_EXT)
|
|
||||||
{
|
|
||||||
OSD_Printf("FBO #%d initialization failed.\n", i);
|
|
||||||
}
|
|
||||||
|
|
||||||
bglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
|
||||||
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create the peeling fragment programs
|
|
||||||
bglGenProgramsARB(2, peelprogram);
|
|
||||||
bglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, peelprogram[0]);
|
|
||||||
bglProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, strlen(notpeeledprogramstring), notpeeledprogramstring);
|
|
||||||
bglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, peelprogram[1]);
|
|
||||||
bglProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, strlen(peeledprogramstring), peeledprogramstring);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
bglEnableClientState(GL_VERTEX_ARRAY);
|
bglEnableClientState(GL_VERTEX_ARRAY);
|
||||||
bglEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
bglEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||||
|
|
||||||
|
@ -898,16 +752,25 @@ void polymost_glinit()
|
||||||
cacheindexptr = NULL;
|
cacheindexptr = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
curcacheindex = &firstcacheindex;
|
for (i = 0; i < numcacheentries; i++)
|
||||||
|
if (cacheptrs[i])
|
||||||
|
{
|
||||||
|
Bfree(cacheptrs[i]);
|
||||||
|
cacheptrs[i] = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
curcacheindex = firstcacheindex = Bcalloc(1, sizeof(texcacheindex));
|
||||||
numcacheentries = 0;
|
numcacheentries = 0;
|
||||||
Bmemset(&firstcacheindex, 0, sizeof(texcacheindex));
|
|
||||||
Bmemset(&cacheptrs[0], 0, sizeof(cacheptrs));
|
// Bmemset(&firstcacheindex, 0, sizeof(texcacheindex));
|
||||||
|
// Bmemset(&cacheptrs[0], 0, sizeof(cacheptrs));
|
||||||
|
|
||||||
hash_init(&cacheH);
|
hash_init(&cacheH);
|
||||||
LoadCacheOffsets();
|
LoadCacheOffsets();
|
||||||
|
|
||||||
Bstrcpy(ptempbuf,TEXCACHEFILE);
|
Bstrcpy(ptempbuf,TEXCACHEFILE);
|
||||||
Bstrcat(ptempbuf,".cache");
|
Bstrcat(ptempbuf,".cache");
|
||||||
cacheindexptr = Bfopen(ptempbuf, "at");
|
cacheindexptr = Bfopen(ptempbuf, "at+");
|
||||||
if (!cacheindexptr)
|
if (!cacheindexptr)
|
||||||
{
|
{
|
||||||
glusetexcache = 0;
|
glusetexcache = 0;
|
||||||
|
@ -934,20 +797,22 @@ void polymost_glinit()
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
||||||
curcacheindex = &firstcacheindex;
|
curcacheindex = firstcacheindex;
|
||||||
while (curcacheindex->next)
|
while (curcacheindex->next)
|
||||||
{
|
{
|
||||||
i += curcacheindex->len;
|
i += curcacheindex->len;
|
||||||
curcacheindex = curcacheindex->next;
|
curcacheindex = curcacheindex->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
curcacheindex = &firstcacheindex;
|
curcacheindex = firstcacheindex;
|
||||||
initprintf("Cache contains %d bytes of garbage data\n",Blseek(cachefilehandle, 0, BSEEK_END)-i);
|
initprintf("Cache contains %d bytes of garbage data\n",Blseek(cachefilehandle, 0, BSEEK_END)-i);
|
||||||
// Blseek(cachefilehandle, 0, BSEEK_SET);
|
// Blseek(cachefilehandle, 0, BSEEK_SET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void invalidatecache(void)
|
void invalidatecache(void)
|
||||||
{
|
{
|
||||||
|
int32_t i;
|
||||||
|
|
||||||
polymost_glreset();
|
polymost_glreset();
|
||||||
if (cachefilehandle != -1)
|
if (cachefilehandle != -1)
|
||||||
{
|
{
|
||||||
|
@ -960,22 +825,20 @@ void invalidatecache(void)
|
||||||
Bfclose(cacheindexptr);
|
Bfclose(cacheindexptr);
|
||||||
cacheindexptr = NULL;
|
cacheindexptr = NULL;
|
||||||
}
|
}
|
||||||
{
|
|
||||||
texcacheindex *index;
|
|
||||||
|
|
||||||
curcacheindex = firstcacheindex.next;
|
for (i = 0; i < numcacheentries; i++)
|
||||||
while (curcacheindex)
|
if (cacheptrs[i])
|
||||||
{
|
{
|
||||||
index = curcacheindex;
|
Bfree(cacheptrs[i]);
|
||||||
curcacheindex = curcacheindex->next;
|
cacheptrs[i] = NULL;
|
||||||
Bfree(index);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
curcacheindex = &firstcacheindex;
|
curcacheindex = firstcacheindex = Bcalloc(1, sizeof(texcacheindex));
|
||||||
numcacheentries = 0;
|
numcacheentries = 0;
|
||||||
Bmemset(&firstcacheindex, 0, sizeof(texcacheindex));
|
|
||||||
Bmemset(&cacheptrs[0], 0, sizeof(cacheptrs));
|
// Bmemset(&firstcacheindex, 0, sizeof(texcacheindex));
|
||||||
|
// Bmemset(&cacheptrs[0], 0, sizeof(cacheptrs));
|
||||||
|
|
||||||
hash_init(&cacheH);
|
hash_init(&cacheH);
|
||||||
// LoadCacheOffsets();
|
// LoadCacheOffsets();
|
||||||
|
|
||||||
|
@ -983,7 +846,7 @@ void invalidatecache(void)
|
||||||
unlink(ptempbuf);
|
unlink(ptempbuf);
|
||||||
Bstrcat(ptempbuf,".cache");
|
Bstrcat(ptempbuf,".cache");
|
||||||
unlink(ptempbuf);
|
unlink(ptempbuf);
|
||||||
cacheindexptr = Bfopen(ptempbuf, "at");
|
cacheindexptr = Bfopen(ptempbuf, "at+");
|
||||||
if (!cacheindexptr)
|
if (!cacheindexptr)
|
||||||
{
|
{
|
||||||
glusetexcache = 0;
|
glusetexcache = 0;
|
||||||
|
@ -1770,7 +1633,7 @@ int32_t gloadtile_hi(int32_t dapic,int32_t dapalnum, int32_t facen, hicreplctyp
|
||||||
|
|
||||||
if ((filh = kopen4load(fn, 0)) < 0) return -1;
|
if ((filh = kopen4load(fn, 0)) < 0) return -1;
|
||||||
|
|
||||||
picfil = (char *)malloc(picfillen); if (!picfil) { kclose(filh); return 1; }
|
picfil = (char *)malloc(picfillen+1); if (!picfil) { kclose(filh); return 1; }
|
||||||
kread(filh, picfil, picfillen);
|
kread(filh, picfil, picfillen);
|
||||||
kclose(filh);
|
kclose(filh);
|
||||||
|
|
||||||
|
@ -1860,6 +1723,9 @@ int32_t gloadtile_hi(int32_t dapic,int32_t dapalnum, int32_t facen, hicreplctyp
|
||||||
else texfmt = GL_BGRA;
|
else texfmt = GL_BGRA;
|
||||||
free(picfil); picfil = 0;
|
free(picfil); picfil = 0;
|
||||||
|
|
||||||
|
if (tsizx>>r_downsize <= tilesizx[dapic] || tsizy>>r_downsize <= tilesizy[dapic])
|
||||||
|
hicr->flags |= 17;
|
||||||
|
|
||||||
if (glinfo.texcompr && glusetexcompr && !(hicr->flags & 1))
|
if (glinfo.texcompr && glusetexcompr && !(hicr->flags & 1))
|
||||||
intexfmt = (hasalpha == 255) ? GL_COMPRESSED_RGBA_S3TC_DXT3_EXT : GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
|
intexfmt = (hasalpha == 255) ? GL_COMPRESSED_RGBA_S3TC_DXT3_EXT : GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
|
||||||
else if (hasalpha == 255) intexfmt = GL_RGB;
|
else if (hasalpha == 255) intexfmt = GL_RGB;
|
||||||
|
@ -1908,6 +1774,9 @@ int32_t gloadtile_hi(int32_t dapic,int32_t dapalnum, int32_t facen, hicreplctyp
|
||||||
|
|
||||||
if (pic) free(pic);
|
if (pic) free(pic);
|
||||||
|
|
||||||
|
if (tsizx>>r_downsize <= tilesizx[dapic] || tsizy>>r_downsize <= tilesizy[dapic])
|
||||||
|
hicr->flags |= 17;
|
||||||
|
|
||||||
pth->picnum = dapic;
|
pth->picnum = dapic;
|
||||||
pth->effects = effect;
|
pth->effects = effect;
|
||||||
pth->flags = ((dameth&4)>>2) + 2 + ((facen>0)<<2); if (hasalpha != 255) pth->flags |= 8;
|
pth->flags = ((dameth&4)>>2) + 2 + ((facen>0)<<2); if (hasalpha != 255) pth->flags |= 8;
|
||||||
|
@ -2071,7 +1940,7 @@ void drawpoly(double *dpx, double *dpy, int32_t n, int32_t method)
|
||||||
|
|
||||||
// detail texture
|
// detail texture
|
||||||
detailpth = NULL;
|
detailpth = NULL;
|
||||||
if (r_detailmapping && usehightile /*&& !r_depthpeeling*/ && !drawingskybox &&
|
if (r_detailmapping && usehightile && !drawingskybox &&
|
||||||
hicfindsubst(globalpicnum, DETAILPAL, 0))
|
hicfindsubst(globalpicnum, DETAILPAL, 0))
|
||||||
detailpth = gltexcache(globalpicnum, DETAILPAL, method&(~3));
|
detailpth = gltexcache(globalpicnum, DETAILPAL, method&(~3));
|
||||||
|
|
||||||
|
@ -2117,7 +1986,7 @@ void drawpoly(double *dpx, double *dpy, int32_t n, int32_t method)
|
||||||
|
|
||||||
// glow texture
|
// glow texture
|
||||||
glowpth = NULL;
|
glowpth = NULL;
|
||||||
if (r_glowmapping && usehightile /*&& !r_depthpeeling*/ && !drawingskybox &&
|
if (r_glowmapping && usehightile && !drawingskybox &&
|
||||||
hicfindsubst(globalpicnum, GLOWPAL, 0))
|
hicfindsubst(globalpicnum, GLOWPAL, 0))
|
||||||
glowpth = gltexcache(globalpicnum, GLOWPAL, method&(~3));
|
glowpth = gltexcache(globalpicnum, GLOWPAL, method&(~3));
|
||||||
|
|
||||||
|
@ -2171,7 +2040,6 @@ void drawpoly(double *dpx, double *dpy, int32_t n, int32_t method)
|
||||||
if ((!(method&3)) && (!fullbrightdrawingpass))
|
if ((!(method&3)) && (!fullbrightdrawingpass))
|
||||||
{
|
{
|
||||||
bglDisable(GL_BLEND);
|
bglDisable(GL_BLEND);
|
||||||
/* if (!peelcompiling)*/
|
|
||||||
bglDisable(GL_ALPHA_TEST);
|
bglDisable(GL_ALPHA_TEST);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2181,7 +2049,6 @@ void drawpoly(double *dpx, double *dpy, int32_t n, int32_t method)
|
||||||
if (alphahackarray[globalpicnum])
|
if (alphahackarray[globalpicnum])
|
||||||
al=alphahackarray[globalpicnum];
|
al=alphahackarray[globalpicnum];
|
||||||
if (!waloff[globalpicnum]) al = 0.0; // invalid textures ignore the alpha cutoff settings
|
if (!waloff[globalpicnum]) al = 0.0; // invalid textures ignore the alpha cutoff settings
|
||||||
/* if (!peelcompiling)*/
|
|
||||||
bglEnable(GL_BLEND);
|
bglEnable(GL_BLEND);
|
||||||
bglEnable(GL_ALPHA_TEST);
|
bglEnable(GL_ALPHA_TEST);
|
||||||
bglAlphaFunc(GL_GREATER,al);
|
bglAlphaFunc(GL_GREATER,al);
|
||||||
|
@ -4279,15 +4146,6 @@ void polymost_drawrooms()
|
||||||
globalposy += cosglobalang/1024;
|
globalposy += cosglobalang/1024;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
if (r_depthpeeling)
|
|
||||||
{
|
|
||||||
bglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, peelfbos[r_peelscount]);
|
|
||||||
bglPushAttrib(GL_VIEWPORT_BIT);
|
|
||||||
bglViewport(0, 0, xdim, ydim);
|
|
||||||
//bglClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -4525,18 +4383,6 @@ void polymost_drawmaskwall(int32_t damaskwallcnt)
|
||||||
globalpal = (int32_t)((uint8_t)wal->pal);
|
globalpal = (int32_t)((uint8_t)wal->pal);
|
||||||
globalorientation = (int32_t)wal->cstat;
|
globalorientation = (int32_t)wal->cstat;
|
||||||
|
|
||||||
/*
|
|
||||||
#ifdef USE_OPENGL
|
|
||||||
if (r_depthpeeling)
|
|
||||||
{
|
|
||||||
if ((((wal->cstat&128) || (gltexmayhavealpha(globalpicnum,globalpal)))) && !peelcompiling)
|
|
||||||
return; // discard translucent sprite if drawing the backbuffer when doing depth peeling
|
|
||||||
if (!(((wal->cstat&128) || (gltexmayhavealpha(globalpicnum,globalpal)))) && peelcompiling)
|
|
||||||
return; // discard opaque sprite when composing the depth peels
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
|
|
||||||
sx0 = (float)(wal->x-globalposx); sx1 = (float)(wal2->x-globalposx);
|
sx0 = (float)(wal->x-globalposx); sx1 = (float)(wal2->x-globalposx);
|
||||||
sy0 = (float)(wal->y-globalposy); sy1 = (float)(wal2->y-globalposy);
|
sy0 = (float)(wal->y-globalposy); sy1 = (float)(wal2->y-globalposy);
|
||||||
yp0 = sx0*gcosang2 + sy0*gsinang2;
|
yp0 = sx0*gcosang2 + sy0*gsinang2;
|
||||||
|
@ -4776,15 +4622,6 @@ void polymost_drawsprite(int32_t snum)
|
||||||
if (tspr->cstat&2) { if (!(tspr->cstat&512)) method = 2+4; else method = 3+4; }
|
if (tspr->cstat&2) { if (!(tspr->cstat&512)) method = 2+4; else method = 3+4; }
|
||||||
|
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
/*
|
|
||||||
if (r_depthpeeling)
|
|
||||||
{
|
|
||||||
if ((((tspr->cstat&2) || (gltexmayhavealpha(globalpicnum,tspr->pal)))) && !peelcompiling)
|
|
||||||
return; // discard translucent sprite if drawing the backbuffer when doing depth peeling
|
|
||||||
if (!(((tspr->cstat&2) || (gltexmayhavealpha(globalpicnum,tspr->pal)))) && peelcompiling)
|
|
||||||
return; // discard opaque sprite when composing the depth peels
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (!nofog && rendmode >= 3)
|
if (!nofog && rendmode >= 3)
|
||||||
{
|
{
|
||||||
|
@ -6094,46 +5931,6 @@ static int32_t osdcmd_polymostvars(const osdfuncparm_t *parm)
|
||||||
else gltexmiplevel = val;
|
else gltexmiplevel = val;
|
||||||
return OSDCMD_OK;
|
return OSDCMD_OK;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
else if (!Bstrcasecmp(parm->name, "r_depthpeeling"))
|
|
||||||
{
|
|
||||||
if (showval) { OSD_Printf("r_depthpeeling is %d\n", r_depthpeeling); }
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!glinfo.arbfp || !glinfo.depthtex || !glinfo.shadow || !glinfo.fbos || !glinfo.rect)
|
|
||||||
{
|
|
||||||
OSD_Printf("r_depthpeeling: Your OpenGL implementation doesn't support depth peeling.\n");
|
|
||||||
r_depthpeeling = 0;
|
|
||||||
return OSDCMD_OK;
|
|
||||||
}
|
|
||||||
r_depthpeeling = (val != 0);
|
|
||||||
resetvideomode();
|
|
||||||
if (setgamemode(fullscreen,xdim,ydim,bpp))
|
|
||||||
OSD_Printf("restartvid: Reset failed...\n");
|
|
||||||
}
|
|
||||||
return OSDCMD_OK;
|
|
||||||
}
|
|
||||||
else if (!Bstrcasecmp(parm->name, "r_peelscount"))
|
|
||||||
{
|
|
||||||
if (showval) { OSD_Printf("r_peelscount is %d\n", r_peelscount); }
|
|
||||||
else if (val < 1) { OSD_Printf("Value out of range.\n"); }
|
|
||||||
else
|
|
||||||
{
|
|
||||||
newpeelscount = val;
|
|
||||||
resetvideomode();
|
|
||||||
if (setgamemode(fullscreen,xdim,ydim,bpp))
|
|
||||||
OSD_Printf("restartvid: Reset failed...\n");
|
|
||||||
}
|
|
||||||
return OSDCMD_OK;
|
|
||||||
}
|
|
||||||
else if (!Bstrcasecmp(parm->name, "r_curpeel"))
|
|
||||||
{
|
|
||||||
if (showval) { OSD_Printf("r_curpeel is %d\n", r_curpeel); }
|
|
||||||
else if ((val < -1) || (val >= r_peelscount)) { OSD_Printf("Value out of range.\n"); }
|
|
||||||
else r_curpeel = val;
|
|
||||||
return OSDCMD_OK;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
else if (!Bstrcasecmp(parm->name, "r_detailmapping"))
|
else if (!Bstrcasecmp(parm->name, "r_detailmapping"))
|
||||||
{
|
{
|
||||||
if (showval) { OSD_Printf("r_detailmapping is %d\n", r_detailmapping); }
|
if (showval) { OSD_Printf("r_detailmapping is %d\n", r_detailmapping); }
|
||||||
|
@ -6322,10 +6119,6 @@ void polymost_initosdfuncs(void)
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
OSD_RegisterFunction("r_animsmoothing","r_animsmoothing: enable/disable model animation smoothing",osdcmd_polymostvars);
|
OSD_RegisterFunction("r_animsmoothing","r_animsmoothing: enable/disable model animation smoothing",osdcmd_polymostvars);
|
||||||
OSD_RegisterFunction("r_modelocclusionchecking","r_modelocclusionchecking: enable/disable hack to cull \"obstructed\" models",osdcmd_polymostvars);
|
OSD_RegisterFunction("r_modelocclusionchecking","r_modelocclusionchecking: enable/disable hack to cull \"obstructed\" models",osdcmd_polymostvars);
|
||||||
/*
|
|
||||||
OSD_RegisterFunction("r_curpeel","r_curpeel: allows to display one depth layer at a time (for development purposes)",osdcmd_polymostvars);
|
|
||||||
OSD_RegisterFunction("r_depthpeeling","r_depthpeeling: enable/disable order-independant transparency",osdcmd_polymostvars);
|
|
||||||
*/
|
|
||||||
OSD_RegisterFunction("r_detailmapping","r_detailmapping: enable/disable detail mapping",osdcmd_polymostvars);
|
OSD_RegisterFunction("r_detailmapping","r_detailmapping: enable/disable detail mapping",osdcmd_polymostvars);
|
||||||
OSD_RegisterFunction("r_downsize","r_downsize: controls downsizing factor for hires textures",osdcmd_polymostvars);
|
OSD_RegisterFunction("r_downsize","r_downsize: controls downsizing factor for hires textures",osdcmd_polymostvars);
|
||||||
OSD_RegisterFunction("r_fullbrights","r_fullbrights: enable/disable fullbright textures",osdcmd_polymostvars);
|
OSD_RegisterFunction("r_fullbrights","r_fullbrights: enable/disable fullbright textures",osdcmd_polymostvars);
|
||||||
|
@ -6334,7 +6127,6 @@ void polymost_initosdfuncs(void)
|
||||||
OSD_RegisterFunction("r_nvmultisamplehint","r_nvmultisamplehint: enable/disable Nvidia multisampling hinting",osdcmd_polymostvars);
|
OSD_RegisterFunction("r_nvmultisamplehint","r_nvmultisamplehint: enable/disable Nvidia multisampling hinting",osdcmd_polymostvars);
|
||||||
OSD_RegisterFunction("r_parallaxskyclamping","r_parallaxskyclamping: enable/disable parallaxed floor/ceiling sky texture clamping",osdcmd_polymostvars);
|
OSD_RegisterFunction("r_parallaxskyclamping","r_parallaxskyclamping: enable/disable parallaxed floor/ceiling sky texture clamping",osdcmd_polymostvars);
|
||||||
OSD_RegisterFunction("r_parallaxskypanning","r_parallaxskypanning: enable/disable parallaxed floor/ceiling panning when drawing a parallaxed sky",osdcmd_polymostvars);
|
OSD_RegisterFunction("r_parallaxskypanning","r_parallaxskypanning: enable/disable parallaxed floor/ceiling panning when drawing a parallaxed sky",osdcmd_polymostvars);
|
||||||
/* OSD_RegisterFunction("r_peelscount","r_peelscount: sets the number of depth layers for depth peeling",osdcmd_polymostvars);*/
|
|
||||||
OSD_RegisterFunction("r_polygonmode","r_polygonmode: debugging feature",osdcmd_polymostvars); //FUK
|
OSD_RegisterFunction("r_polygonmode","r_polygonmode: debugging feature",osdcmd_polymostvars); //FUK
|
||||||
OSD_RegisterFunction("r_redbluemode","r_redbluemode: enable/disable experimental OpenGL red-blue glasses mode",osdcmd_polymostvars);
|
OSD_RegisterFunction("r_redbluemode","r_redbluemode: enable/disable experimental OpenGL red-blue glasses mode",osdcmd_polymostvars);
|
||||||
OSD_RegisterFunction("r_shadescale","r_shadescale: multiplier for lighting",osdcmd_polymostvars);
|
OSD_RegisterFunction("r_shadescale","r_shadescale: multiplier for lighting",osdcmd_polymostvars);
|
||||||
|
|
|
@ -592,6 +592,7 @@ static void G_MoveZombieActors(void)
|
||||||
{
|
{
|
||||||
if (x < 30000)
|
if (x < 30000)
|
||||||
{
|
{
|
||||||
|
#ifdef POLYMER
|
||||||
switch (DynamicTileMap[s->picnum])
|
switch (DynamicTileMap[s->picnum])
|
||||||
{
|
{
|
||||||
case FLOORFLAME__STATIC:
|
case FLOORFLAME__STATIC:
|
||||||
|
@ -633,6 +634,7 @@ static void G_MoveZombieActors(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif // POLYMER
|
||||||
|
|
||||||
ActorExtra[i].timetosleep++;
|
ActorExtra[i].timetosleep++;
|
||||||
if (ActorExtra[i].timetosleep >= (x>>8))
|
if (ActorExtra[i].timetosleep >= (x>>8))
|
||||||
|
@ -685,6 +687,8 @@ static void G_MoveZombieActors(void)
|
||||||
ActorExtra[i].timetosleep = 0;
|
ActorExtra[i].timetosleep = 0;
|
||||||
changespritestat(i,6);
|
changespritestat(i,6);
|
||||||
break;
|
break;
|
||||||
|
case RECON__STATIC:
|
||||||
|
CS |= 257;
|
||||||
default:
|
default:
|
||||||
ActorExtra[i].timetosleep = 0;
|
ActorExtra[i].timetosleep = 0;
|
||||||
A_PlayAlertSound(i);
|
A_PlayAlertSound(i);
|
||||||
|
@ -3644,6 +3648,7 @@ static void G_MoveActors(void)
|
||||||
if (s->z < sector[sect].ceilingz+(32<<8))
|
if (s->z < sector[sect].ceilingz+(32<<8))
|
||||||
s->z = sector[sect].ceilingz+(32<<8);
|
s->z = sector[sect].ceilingz+(32<<8);
|
||||||
|
|
||||||
|
#ifdef POLYMER
|
||||||
gamelights[gamelightcount&(PR_MAXLIGHTS-1)].sector = s->sectnum;
|
gamelights[gamelightcount&(PR_MAXLIGHTS-1)].sector = s->sectnum;
|
||||||
gamelights[gamelightcount&(PR_MAXLIGHTS-1)].x = s->x;
|
gamelights[gamelightcount&(PR_MAXLIGHTS-1)].x = s->x;
|
||||||
gamelights[gamelightcount&(PR_MAXLIGHTS-1)].y = s->y;
|
gamelights[gamelightcount&(PR_MAXLIGHTS-1)].y = s->y;
|
||||||
|
@ -3663,6 +3668,7 @@ static void G_MoveActors(void)
|
||||||
|
|
||||||
if (gamelightcount < PR_MAXLIGHTS)
|
if (gamelightcount < PR_MAXLIGHTS)
|
||||||
gamelightcount++;
|
gamelightcount++;
|
||||||
|
#endif // POLYMER
|
||||||
|
|
||||||
if (ud.multimode < 2)
|
if (ud.multimode < 2)
|
||||||
{
|
{
|
||||||
|
|
|
@ -278,6 +278,7 @@ static inline int32_t G_GetTeamPalette(int32_t team)
|
||||||
|
|
||||||
static inline void G_AddGameLight(int32_t radius, int32_t sector, int32_t x, int32_t y, int32_t z, int32_t range, int32_t color, int32_t priority)
|
static inline void G_AddGameLight(int32_t radius, int32_t sector, int32_t x, int32_t y, int32_t z, int32_t range, int32_t color, int32_t priority)
|
||||||
{
|
{
|
||||||
|
#ifdef POLYMER
|
||||||
gamelights[gamelightcount&(PR_MAXLIGHTS-1)].radius = radius;
|
gamelights[gamelightcount&(PR_MAXLIGHTS-1)].radius = radius;
|
||||||
gamelights[gamelightcount&(PR_MAXLIGHTS-1)].sector = sector;
|
gamelights[gamelightcount&(PR_MAXLIGHTS-1)].sector = sector;
|
||||||
|
|
||||||
|
@ -296,6 +297,16 @@ static inline void G_AddGameLight(int32_t radius, int32_t sector, int32_t x, int
|
||||||
|
|
||||||
if (gamelightcount < PR_MAXLIGHTS)
|
if (gamelightcount < PR_MAXLIGHTS)
|
||||||
gamelightcount++;
|
gamelightcount++;
|
||||||
|
#else
|
||||||
|
UNREFERENCED_PARAMETER(radius);
|
||||||
|
UNREFERENCED_PARAMETER(sector);
|
||||||
|
UNREFERENCED_PARAMETER(x);
|
||||||
|
UNREFERENCED_PARAMETER(y);
|
||||||
|
UNREFERENCED_PARAMETER(z);
|
||||||
|
UNREFERENCED_PARAMETER(range);
|
||||||
|
UNREFERENCED_PARAMETER(color);
|
||||||
|
UNREFERENCED_PARAMETER(priority);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void se40code(int32_t x,int32_t y,int32_t z,int32_t a,int32_t h, int32_t smoothratio);
|
extern void se40code(int32_t x,int32_t y,int32_t z,int32_t a,int32_t h, int32_t smoothratio);
|
||||||
|
|
|
@ -5938,13 +5938,12 @@ int32_t A_Spawn(int32_t j, int32_t pn)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sp->extra = 130;
|
sp->extra = 130;
|
||||||
}
|
CS |= 256; // Make it hitable
|
||||||
|
} else CS |= 257;
|
||||||
|
|
||||||
if (sp->picnum == REACTOR || sp->picnum == REACTOR2)
|
if (sp->picnum == REACTOR || sp->picnum == REACTOR2)
|
||||||
sp->extra = g_impactDamage;
|
sp->extra = g_impactDamage;
|
||||||
|
|
||||||
CS |= 257; // Make it hitable
|
|
||||||
|
|
||||||
if (ud.multimode < 2 && sp->pal != 0)
|
if (ud.multimode < 2 && sp->pal != 0)
|
||||||
{
|
{
|
||||||
sp->xrepeat = sp->yrepeat = 0;
|
sp->xrepeat = sp->yrepeat = 0;
|
||||||
|
@ -7352,6 +7351,7 @@ PALONLY:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef POLYMER
|
||||||
switch (DynamicTileMap[s->picnum-1])
|
switch (DynamicTileMap[s->picnum-1])
|
||||||
{
|
{
|
||||||
case DIPSWITCH__STATIC:
|
case DIPSWITCH__STATIC:
|
||||||
|
@ -7391,9 +7391,10 @@ PALONLY:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
switch (DynamicTileMap[s->picnum])
|
switch (DynamicTileMap[s->picnum])
|
||||||
{
|
{
|
||||||
|
#ifdef POLYMER
|
||||||
case DIPSWITCH__STATIC:
|
case DIPSWITCH__STATIC:
|
||||||
case DIPSWITCH2__STATIC:
|
case DIPSWITCH2__STATIC:
|
||||||
case DIPSWITCH3__STATIC:
|
case DIPSWITCH3__STATIC:
|
||||||
|
@ -7430,7 +7431,7 @@ PALONLY:
|
||||||
framelightcount++;
|
framelightcount++;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
case LASERLINE__STATIC:
|
case LASERLINE__STATIC:
|
||||||
if (sector[t->sectnum].lotag == 2) t->pal = 8;
|
if (sector[t->sectnum].lotag == 2) t->pal = 8;
|
||||||
t->z = sprite[s->owner].z-(3<<8);
|
t->z = sprite[s->owner].z-(3<<8);
|
||||||
|
@ -12812,8 +12813,10 @@ static int32_t G_DoMoveThings(void)
|
||||||
|
|
||||||
if (ud.recstat == 1) G_DemoRecord();
|
if (ud.recstat == 1) G_DemoRecord();
|
||||||
|
|
||||||
|
#ifdef POLYMER
|
||||||
if (ud.pause_on == 0)
|
if (ud.pause_on == 0)
|
||||||
gamelightcount = 0;
|
gamelightcount = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (ud.pause_on == 0)
|
if (ud.pause_on == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5108,7 +5108,10 @@ repeatcase:
|
||||||
struct stat st;
|
struct stat st;
|
||||||
int32_t fullscreen = ud.config.ScreenMode;
|
int32_t fullscreen = ud.config.ScreenMode;
|
||||||
int32_t xdim = ud.config.ScreenWidth, ydim = ud.config.ScreenHeight, bpp = ud.config.ScreenBPP;
|
int32_t xdim = ud.config.ScreenWidth, ydim = ud.config.ScreenHeight, bpp = ud.config.ScreenBPP;
|
||||||
int32_t usemouse = ud.config.UseMouse, usejoy = ud.config.UseJoystick, glrm = glrendmode;
|
int32_t usemouse = ud.config.UseMouse, usejoy = ud.config.UseJoystick;
|
||||||
|
#ifdef POLYMOST
|
||||||
|
int32_t glrm = glrendmode;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (stat(mod_dir, &st) < 0)
|
if (stat(mod_dir, &st) < 0)
|
||||||
{
|
{
|
||||||
|
@ -5150,7 +5153,10 @@ repeatcase:
|
||||||
ud.config.ScreenBPP = bpp;
|
ud.config.ScreenBPP = bpp;
|
||||||
ud.config.UseMouse = usemouse;
|
ud.config.UseMouse = usemouse;
|
||||||
ud.config.UseJoystick = usejoy;
|
ud.config.UseJoystick = usejoy;
|
||||||
|
#ifdef POLYMOST
|
||||||
glrendmode = glrm;
|
glrendmode = glrm;
|
||||||
|
#endif // POLYMOST
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -3327,7 +3327,14 @@ cheat_for_port_credits:
|
||||||
nydim = (newvidmode==validmodecnt)?ydim:validmode[newvidmode].ydim;
|
nydim = (newvidmode==validmodecnt)?ydim:validmode[newvidmode].ydim;
|
||||||
nfs = newfullscreen;
|
nfs = newfullscreen;
|
||||||
nbpp = (newvidmode==validmodecnt)?bpp:validmode[newvidmode].bpp;
|
nbpp = (newvidmode==validmodecnt)?bpp:validmode[newvidmode].bpp;
|
||||||
nrend = (vidsets[newvidset] & 0x20000) ? (nbpp==8?2:glrendmode) : 0;
|
nrend = (vidsets[newvidset] & 0x20000) ? (nbpp==8?2:
|
||||||
|
#ifdef POLYMOST
|
||||||
|
glrendmode
|
||||||
|
#else
|
||||||
|
0
|
||||||
|
#endif // POLYMOST
|
||||||
|
|
||||||
|
) : 0;
|
||||||
|
|
||||||
if (setgamemode(nfs, nxdim, nydim, nbpp) < 0)
|
if (setgamemode(nfs, nxdim, nydim, nbpp) < 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -345,6 +345,7 @@ int32_t A_Shoot(int32_t i,int32_t atwith)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef POLYMER
|
||||||
switch (DynamicTileMap[atwith])
|
switch (DynamicTileMap[atwith])
|
||||||
{
|
{
|
||||||
case FIRELASER__STATIC:
|
case FIRELASER__STATIC:
|
||||||
|
@ -378,12 +379,14 @@ int32_t A_Shoot(int32_t i,int32_t atwith)
|
||||||
gamelightcount++;
|
gamelightcount++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif // POLYMER
|
||||||
}
|
}
|
||||||
|
|
||||||
if (A_CheckSpriteTileFlags(atwith,SPRITE_PROJECTILE))
|
if (A_CheckSpriteTileFlags(atwith,SPRITE_PROJECTILE))
|
||||||
{
|
{
|
||||||
/* Custom projectiles. This is a big hack. */
|
/* Custom projectiles. This is a big hack. */
|
||||||
|
|
||||||
|
#ifdef POLYMER
|
||||||
if (ProjectileData[atwith].flashcolor)
|
if (ProjectileData[atwith].flashcolor)
|
||||||
{
|
{
|
||||||
G_AddGameLight(0, s->sectnum, s->x+((sintable[(s->ang+512)&2047])>>7),
|
G_AddGameLight(0, s->sectnum, s->x+((sintable[(s->ang+512)&2047])>>7),
|
||||||
|
@ -409,6 +412,7 @@ int32_t A_Shoot(int32_t i,int32_t atwith)
|
||||||
if (gamelightcount < PR_MAXLIGHTS)
|
if (gamelightcount < PR_MAXLIGHTS)
|
||||||
gamelightcount++;
|
gamelightcount++;
|
||||||
}
|
}
|
||||||
|
#endif // POLYMER
|
||||||
|
|
||||||
if (ProjectileData[atwith].offset == 0) ProjectileData[atwith].offset = 1;
|
if (ProjectileData[atwith].offset == 0) ProjectileData[atwith].offset = 1;
|
||||||
|
|
||||||
|
@ -2171,11 +2175,15 @@ void P_FireWeapon(DukePlayer_t *p)
|
||||||
|
|
||||||
if (!(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_NOVISIBLE))
|
if (!(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_NOVISIBLE))
|
||||||
{
|
{
|
||||||
|
#ifdef POLYMER
|
||||||
spritetype *s = &sprite[p->i];
|
spritetype *s = &sprite[p->i];
|
||||||
|
#endif // POLYMER
|
||||||
|
|
||||||
|
|
||||||
lastvisinc = totalclock+32;
|
lastvisinc = totalclock+32;
|
||||||
p->visibility = 0;
|
p->visibility = 0;
|
||||||
|
|
||||||
|
#ifdef POLYMER
|
||||||
G_AddGameLight(0, s->sectnum, s->x+((sintable[(p->ang+512)&2047])>>7), s->y+((sintable[(p->ang)&2047])>>7),
|
G_AddGameLight(0, s->sectnum, s->x+((sintable[(p->ang+512)&2047])>>7), s->y+((sintable[(p->ang)&2047])>>7),
|
||||||
s->z-PHEIGHT, 4096, aplWeaponFlashColor[p->curr_weapon][snum],1);
|
s->z-PHEIGHT, 4096, aplWeaponFlashColor[p->curr_weapon][snum],1);
|
||||||
|
|
||||||
|
@ -2199,6 +2207,7 @@ void P_FireWeapon(DukePlayer_t *p)
|
||||||
|
|
||||||
if (gamelightcount < PR_MAXLIGHTS)
|
if (gamelightcount < PR_MAXLIGHTS)
|
||||||
gamelightcount++;
|
gamelightcount++;
|
||||||
|
#endif // POLYMER
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if( //!(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_CHECKATRELOAD) &&
|
/* if( //!(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_CHECKATRELOAD) &&
|
||||||
|
|
|
@ -240,8 +240,13 @@ int32_t G_LoadPlayer(int32_t spot)
|
||||||
if (kdfread(§or[0],sizeof(sectortype),MAXSECTORS,fil) != MAXSECTORS) goto corrupt;
|
if (kdfread(§or[0],sizeof(sectortype),MAXSECTORS,fil) != MAXSECTORS) goto corrupt;
|
||||||
if (kdfread(&sprite[0],sizeof(spritetype),MAXSPRITES,fil) != MAXSPRITES) goto corrupt;
|
if (kdfread(&sprite[0],sizeof(spritetype),MAXSPRITES,fil) != MAXSPRITES) goto corrupt;
|
||||||
if (kdfread(&spriteext[0],sizeof(spriteext_t),MAXSPRITES,fil) != MAXSPRITES) goto corrupt;
|
if (kdfread(&spriteext[0],sizeof(spriteext_t),MAXSPRITES,fil) != MAXSPRITES) goto corrupt;
|
||||||
|
|
||||||
|
#ifdef POLYMER
|
||||||
if (kdfread(&staticlightcount,sizeof(int32_t),1,fil) != 1) goto corrupt;
|
if (kdfread(&staticlightcount,sizeof(int32_t),1,fil) != 1) goto corrupt;
|
||||||
if (kdfread(&staticlights[0],sizeof(_prlight),PR_MAXLIGHTS,fil) != PR_MAXLIGHTS) goto corrupt;
|
if (kdfread(&staticlights[0],sizeof(_prlight),staticlightcount,fil) != staticlightcount) goto corrupt;
|
||||||
|
#else
|
||||||
|
if (kdfread(&i,sizeof(int32_t),1,fil) != 1) goto corrupt;
|
||||||
|
#endif // POLYMER
|
||||||
|
|
||||||
#if defined(POLYMOST) && defined(USE_OPENGL)
|
#if defined(POLYMOST) && defined(USE_OPENGL)
|
||||||
for (i=0; i<MAXSPRITES; i++)
|
for (i=0; i<MAXSPRITES; i++)
|
||||||
|
@ -681,8 +686,15 @@ int32_t G_SavePlayer(int32_t spot)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
dfwrite(&spriteext[0],sizeof(spriteext_t),MAXSPRITES,fil);
|
dfwrite(&spriteext[0],sizeof(spriteext_t),MAXSPRITES,fil);
|
||||||
|
|
||||||
|
#ifdef POLYMER
|
||||||
dfwrite(&staticlightcount,sizeof(int32_t),1,fil);
|
dfwrite(&staticlightcount,sizeof(int32_t),1,fil);
|
||||||
dfwrite(&staticlights[0],sizeof(_prlight),PR_MAXLIGHTS,fil);
|
dfwrite(&staticlights[0],sizeof(_prlight),staticlightcount,fil);
|
||||||
|
#else
|
||||||
|
i = 0;
|
||||||
|
dfwrite(&i,sizeof(int32_t),1,fil);
|
||||||
|
#endif // POLYMER
|
||||||
|
|
||||||
#if defined(POLYMOST) && defined(USE_OPENGL)
|
#if defined(POLYMOST) && defined(USE_OPENGL)
|
||||||
for (i=0; i<MAXSPRITES; i++)if (spriteext[i].mdanimtims)spriteext[i].mdanimtims+=mdtims;
|
for (i=0; i<MAXSPRITES; i++)if (spriteext[i].mdanimtims)spriteext[i].mdanimtims+=mdtims;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue