mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 03:00:46 +00:00
git-svn-id: https://svn.eduke32.com/eduke32@1312 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
39b1908be8
commit
ec71eebecb
15 changed files with 329 additions and 93 deletions
|
@ -23,7 +23,7 @@ flags_link=/RELEASE
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
|
||||||
DXROOT=c:\sdks\dx6
|
DXROOT="U:\SDKs\Microsoft DirectX SDK (April 2007)
|
||||||
MSSDKROOT="N:\Program Files\Microsoft Visual Studio 9.0\VC
|
MSSDKROOT="N:\Program Files\Microsoft Visual Studio 9.0\VC
|
||||||
PLATFORMSDK="N:\Program Files\Microsoft Visual Studio 9.0\VC\PlatformSDK
|
PLATFORMSDK="N:\Program Files\Microsoft Visual Studio 9.0\VC\PlatformSDK
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ MT=mt
|
||||||
CFLAGS= /MD /J /nologo $(flags_cl) \
|
CFLAGS= /MD /J /nologo $(flags_cl) \
|
||||||
/I$(INC) /I$(EINC)\ /I$(SRC)\jmact /I$(SRC)\jaudiolib /I$(MSSDKROOT)\include" /I$(PLATFORMSDK)\include" \
|
/I$(INC) /I$(EINC)\ /I$(SRC)\jmact /I$(SRC)\jaudiolib /I$(MSSDKROOT)\include" /I$(PLATFORMSDK)\include" \
|
||||||
/DNOCOPYPROTECT /D "_CRT_SECURE_NO_DEPRECATE" -W2 $(ENGINEOPTS) \
|
/DNOCOPYPROTECT /D "_CRT_SECURE_NO_DEPRECATE" -W2 $(ENGINEOPTS) \
|
||||||
/I$(DXROOT)\include /DRENDERTYPEWIN=1
|
/I$(DXROOT)\include" /DRENDERTYPEWIN=1
|
||||||
LIBS=user32.lib gdi32.lib shell32.lib dxguid.lib winmm.lib wsock32.lib comctl32.lib \
|
LIBS=user32.lib gdi32.lib shell32.lib dxguid.lib winmm.lib wsock32.lib comctl32.lib \
|
||||||
/NODEFAULTLIB:libFLAC.lib /NODEFAULTLIB:glu32.lib /NODEFAULTLIB:LIBCMT.lib /NODEFAULTLIB:LIBCMTD.lib
|
/NODEFAULTLIB:libFLAC.lib /NODEFAULTLIB:glu32.lib /NODEFAULTLIB:LIBCMT.lib /NODEFAULTLIB:LIBCMTD.lib
|
||||||
|
|
||||||
|
@ -146,15 +146,15 @@ EDITOROBJS=$(OBJ)\astub.$o \
|
||||||
all: eduke32$(EXESUFFIX) mapster32$(EXESUFFIX) # duke3d_w32$(EXESUFFIX);
|
all: eduke32$(EXESUFFIX) mapster32$(EXESUFFIX) # duke3d_w32$(EXESUFFIX);
|
||||||
|
|
||||||
eduke32$(EXESUFFIX): $(GAMEOBJS) $(EOBJ)\$(ENGINELIB)
|
eduke32$(EXESUFFIX): $(GAMEOBJS) $(EOBJ)\$(ENGINELIB)
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib\x86" /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
$(MT) -manifest $@.manifest $(RSRC)\manifest.game.xml -hashupdate -outputresource:$@ -out:$@.manifest
|
$(MT) -manifest $@.manifest $(RSRC)\manifest.game.xml -hashupdate -outputresource:$@ -out:$@.manifest
|
||||||
|
|
||||||
mapster32$(EXESUFFIX): $(EDITOROBJS) $(EOBJ)\$(ENGINELIB) $(EOBJ)\$(EDITORLIB)
|
mapster32$(EXESUFFIX): $(EDITOROBJS) $(EOBJ)\$(ENGINELIB) $(EOBJ)\$(EDITORLIB)
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib\x86" /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
$(MT) -manifest $@.manifest $(RSRC)\manifest.build.xml -hashupdate -outputresource:$@ -out:$@.manifest
|
$(MT) -manifest $@.manifest $(RSRC)\manifest.build.xml -hashupdate -outputresource:$@ -out:$@.manifest
|
||||||
|
|
||||||
duke3d_w32$(EXESUFFIX): $(OBJ)/wrapper.$o
|
duke3d_w32$(EXESUFFIX): $(OBJ)/wrapper.$o
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib\x86" /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
$(MT) -manifest $@.manifest -outputresource:$@
|
$(MT) -manifest $@.manifest -outputresource:$@
|
||||||
|
|
||||||
!include Makefile.deps
|
!include Makefile.deps
|
||||||
|
|
|
@ -19,9 +19,9 @@ asm=masm
|
||||||
ENGINELIB=engine.lib
|
ENGINELIB=engine.lib
|
||||||
EDITORLIB=build.lib
|
EDITORLIB=build.lib
|
||||||
|
|
||||||
DXROOT=c:\sdks\dx6
|
DXROOT="U:\SDKs\Microsoft DirectX SDK (April 2007)
|
||||||
MSSDKROOT="C:\Program Files\Microsoft Visual Studio 8\VC
|
MSSDKROOT="N:\Program Files\Microsoft Visual Studio 9.0\VC
|
||||||
PLATFORMSDK="C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK
|
PLATFORMSDK="N:\Program Files\Microsoft Visual Studio 9.0\VC\PlatformSDK
|
||||||
# ENETROOT=$(SRC)\enet
|
# ENETROOT=$(SRC)\enet
|
||||||
|
|
||||||
# /D these to enable certain features of the port's compile process
|
# /D these to enable certain features of the port's compile process
|
||||||
|
@ -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$(DXROOT)\include" /I$(MSSDKROOT)\include" /I$(PLATFORMSDK)\include" # /I$(ENETROOT)\include"
|
||||||
ASFLAGS=/nologo /coff /c
|
ASFLAGS=/nologo /coff /c
|
||||||
EXESUFFIX=.exe
|
EXESUFFIX=.exe
|
||||||
!ifdef DEBUG
|
!ifdef DEBUG
|
||||||
|
@ -127,23 +127,23 @@ $(OBJ)\$(EDITORLIB): $(EDITOROBJS)
|
||||||
|
|
||||||
# the tools
|
# the tools
|
||||||
kextract$(EXESUFFIX): $(OBJ)\kextract.$o $(OBJ)\compat.$o
|
kextract$(EXESUFFIX): $(OBJ)\kextract.$o $(OBJ)\compat.$o
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:CONSOLE /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:CONSOLE /LIBPATH:$(DXROOT)\lib\x86" /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
$(MT) -manifest $@.manifest -outputresource:$@
|
$(MT) -manifest $@.manifest -outputresource:$@
|
||||||
|
|
||||||
kgroup$(EXESUFFIX): $(OBJ)\kgroup.$o $(OBJ)\compat.$o
|
kgroup$(EXESUFFIX): $(OBJ)\kgroup.$o $(OBJ)\compat.$o
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:CONSOLE /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:CONSOLE /LIBPATH:$(DXROOT)\lib\x86" /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
$(MT) -manifest $@.manifest -outputresource:$@
|
$(MT) -manifest $@.manifest -outputresource:$@
|
||||||
|
|
||||||
transpal$(EXESUFFIX): $(OBJ)\transpal.$o $(OBJ)\pragmas.$o $(OBJ)\compat.$o
|
transpal$(EXESUFFIX): $(OBJ)\transpal.$o $(OBJ)\pragmas.$o $(OBJ)\compat.$o
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:CONSOLE /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:CONSOLE /LIBPATH:$(DXROOT)\lib\x86" /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
$(MT) -manifest $@.manifest -outputresource:$@
|
$(MT) -manifest $@.manifest -outputresource:$@
|
||||||
|
|
||||||
wad2map$(EXESUFFIX): $(OBJ)\wad2map.$o $(OBJ)\pragmas.$o $(OBJ)\compat.$o
|
wad2map$(EXESUFFIX): $(OBJ)\wad2map.$o $(OBJ)\pragmas.$o $(OBJ)\compat.$o
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:CONSOLE /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:CONSOLE /LIBPATH:$(DXROOT)\lib\x86" /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
$(MT) -manifest $@.manifest -outputresource:$@
|
$(MT) -manifest $@.manifest -outputresource:$@
|
||||||
|
|
||||||
wad2art$(EXESUFFIX): $(OBJ)\wad2art.$o $(OBJ)\pragmas.$o $(OBJ)\compat.$o
|
wad2art$(EXESUFFIX): $(OBJ)\wad2art.$o $(OBJ)\pragmas.$o $(OBJ)\compat.$o
|
||||||
$(LINK) /OUT:$@ /SUBSYSTEM:CONSOLE /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
$(LINK) /OUT:$@ /SUBSYSTEM:CONSOLE /LIBPATH:$(DXROOT)\lib\x86" /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib
|
||||||
$(MT) -manifest $@.manifest -outputresource:$@
|
$(MT) -manifest $@.manifest -outputresource:$@
|
||||||
|
|
||||||
# DEPENDENCIES
|
# DEPENDENCIES
|
||||||
|
|
|
@ -279,7 +279,7 @@ void polymer_setanimatesprites(animatespritesptr animatesprites,
|
||||||
// CORE
|
// CORE
|
||||||
static void polymer_displayrooms(int16_t sectnum);
|
static void polymer_displayrooms(int16_t sectnum);
|
||||||
static void polymer_drawplane(_prplane* plane);
|
static void polymer_drawplane(_prplane* plane);
|
||||||
static void polymer_inb4mirror(GLfloat* buffer, GLfloat* plane);
|
static inline void polymer_inb4mirror(GLfloat* buffer, GLfloat* plane);
|
||||||
static void polymer_animatesprites(void);
|
static void polymer_animatesprites(void);
|
||||||
// SECTORS
|
// SECTORS
|
||||||
static int32_t polymer_initsector(int16_t sectnum);
|
static int32_t polymer_initsector(int16_t sectnum);
|
||||||
|
@ -295,12 +295,12 @@ static void polymer_updatewall(int16_t wallnum);
|
||||||
static void polymer_drawwall(int16_t sectnum, int16_t wallnum);
|
static void polymer_drawwall(int16_t sectnum, int16_t wallnum);
|
||||||
// HSR
|
// HSR
|
||||||
static void polymer_buffertoplane(GLfloat* buffer, GLushort* indices, int32_t indicecount, GLfloat* plane, GLfloat* t, GLfloat* b, GLfloat* n);
|
static void polymer_buffertoplane(GLfloat* buffer, GLushort* indices, int32_t indicecount, GLfloat* plane, GLfloat* t, GLfloat* b, GLfloat* n);
|
||||||
static void polymer_crossproduct(GLfloat* in_a, GLfloat* in_b, GLfloat* out);
|
static inline void polymer_crossproduct(GLfloat* in_a, GLfloat* in_b, GLfloat* out);
|
||||||
static void polymer_transformpoint(float* inpos, float* pos, float* matrix);
|
static inline void polymer_transformpoint(float* inpos, float* pos, float* matrix);
|
||||||
static void polymer_pokesector(int16_t sectnum);
|
static inline void polymer_pokesector(int16_t sectnum);
|
||||||
static void polymer_extractfrustum(GLfloat* modelview, GLfloat* projection, float* frustum);
|
static void polymer_extractfrustum(GLfloat* modelview, GLfloat* projection, float* frustum);
|
||||||
static int32_t polymer_planeinfrustum(_prplane *plane, float* frustum);
|
static int32_t polymer_planeinfrustum(_prplane *plane, float* frustum);
|
||||||
static void polymer_scansprites(int16_t sectnum, spritetype* tsprite, int32_t* spritesortcnt);
|
static inline void polymer_scansprites(int16_t sectnum, spritetype* tsprite, int32_t* spritesortcnt);
|
||||||
// SKIES
|
// SKIES
|
||||||
static void polymer_getsky(void);
|
static void polymer_getsky(void);
|
||||||
static void polymer_drawsky(int16_t tilenum);
|
static void polymer_drawsky(int16_t tilenum);
|
||||||
|
@ -321,7 +321,7 @@ static void polymer_compileprogram(int32_t programbits);
|
||||||
static void polymer_resetlights(void);
|
static void polymer_resetlights(void);
|
||||||
static void polymer_addlight(_prlight light);
|
static void polymer_addlight(_prlight light);
|
||||||
static int32_t polymer_planeinlight(_prplane* plane, _prlight* light);
|
static int32_t polymer_planeinlight(_prplane* plane, _prlight* light);
|
||||||
static void polymer_culllight(char lightindex);
|
static inline void polymer_culllight(char lightindex);
|
||||||
static void polymer_prepareshadows(void);
|
static void polymer_prepareshadows(void);
|
||||||
static void polymer_applylights(void);
|
static void polymer_applylights(void);
|
||||||
// RENDER TARGETS
|
// RENDER TARGETS
|
||||||
|
|
|
@ -237,7 +237,7 @@ int32_t baselayer_init(void)
|
||||||
" 2 - Polygonal textured software\n"
|
" 2 - Polygonal textured software\n"
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
" 3 - Polygonal OpenGL\n"
|
" 3 - Polygonal OpenGL\n"
|
||||||
// " 4 - great justice renderer\n"
|
" 4 - Great justice renderer\n"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
osdfunc_setrendermode);
|
osdfunc_setrendermode);
|
||||||
|
|
|
@ -5733,8 +5733,8 @@ void uninitengine(void)
|
||||||
Bfree(tsprite);
|
Bfree(tsprite);
|
||||||
if (spriteext != NULL)
|
if (spriteext != NULL)
|
||||||
Bfree(spriteext);
|
Bfree(spriteext);
|
||||||
if (spritesmooth != NULL)
|
// if (spritesmooth != NULL)
|
||||||
Bfree(spritesmooth);
|
// Bfree(spritesmooth);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6824,8 +6824,8 @@ int32_t loadboard(char *filename, char fromwhere, int32_t *daposx, int32_t *dapo
|
||||||
kclose(fil);
|
kclose(fil);
|
||||||
|
|
||||||
#if defined(POLYMOST) && defined(USE_OPENGL)
|
#if defined(POLYMOST) && defined(USE_OPENGL)
|
||||||
memset(spriteext, 0, sizeof(spriteext_t) * MAXSPRITES);
|
Bmemset(spriteext, 0, sizeof(spriteext_t) * MAXSPRITES);
|
||||||
memset(spritesmooth, 0, sizeof(spritesmooth_t) * (MAXSPRITES+MAXUNIQHUDID));
|
Bmemset(spritesmooth, 0, sizeof(spritesmooth_t) * (MAXSPRITES+MAXUNIQHUDID));
|
||||||
|
|
||||||
# ifdef POLYMER
|
# ifdef POLYMER
|
||||||
if (rendmode == 4)
|
if (rendmode == 4)
|
||||||
|
@ -7827,10 +7827,7 @@ int32_t setgamemode(char davidoption, int32_t daxdim, int32_t daydim, int32_t da
|
||||||
}
|
}
|
||||||
# ifdef POLYMER
|
# ifdef POLYMER
|
||||||
if (rendmode == 4)
|
if (rendmode == 4)
|
||||||
{
|
|
||||||
polymer_init();
|
polymer_init();
|
||||||
// polymer_glinit();
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
qsetmode = 200;
|
qsetmode = 200;
|
||||||
|
|
|
@ -37,7 +37,7 @@ _prwall *prwalls[MAXWALLS];
|
||||||
_prplane spriteplane;
|
_prplane spriteplane;
|
||||||
_prmaterial mdspritematerial;
|
_prmaterial mdspritematerial;
|
||||||
|
|
||||||
GLfloat vertsprite[4 * 5] =
|
static GLfloat vertsprite[4 * 5] =
|
||||||
{
|
{
|
||||||
-0.5f, 0.0f, 0.0f,
|
-0.5f, 0.0f, 0.0f,
|
||||||
0.0f, 1.0f,
|
0.0f, 1.0f,
|
||||||
|
@ -49,7 +49,7 @@ GLfloat vertsprite[4 * 5] =
|
||||||
0.0f, 0.0f,
|
0.0f, 0.0f,
|
||||||
};
|
};
|
||||||
|
|
||||||
GLfloat horizsprite[4 * 5] =
|
static GLfloat horizsprite[4 * 5] =
|
||||||
{
|
{
|
||||||
-0.5f, 0.0f, -0.5f,
|
-0.5f, 0.0f, -0.5f,
|
||||||
0.0f, 1.0f,
|
0.0f, 1.0f,
|
||||||
|
@ -61,7 +61,7 @@ GLfloat horizsprite[4 * 5] =
|
||||||
0.0f, 0.0f,
|
0.0f, 0.0f,
|
||||||
};
|
};
|
||||||
|
|
||||||
GLfloat skyboxdata[4 * 5 * 6] =
|
static GLfloat skyboxdata[4 * 5 * 6] =
|
||||||
{
|
{
|
||||||
// -ZY
|
// -ZY
|
||||||
-0.5f, -0.5f, 0.5f,
|
-0.5f, -0.5f, 0.5f,
|
||||||
|
@ -142,7 +142,7 @@ int32_t gamelightcount;
|
||||||
_prlight framelights[PR_MAXLIGHTS];
|
_prlight framelights[PR_MAXLIGHTS];
|
||||||
int32_t framelightcount;
|
int32_t framelightcount;
|
||||||
|
|
||||||
GLfloat shadowBias[] =
|
static GLfloat shadowBias[] =
|
||||||
{
|
{
|
||||||
0.5, 0.0, 0.0, 0.0,
|
0.5, 0.0, 0.0, 0.0,
|
||||||
0.0, 0.5, 0.0, 0.0,
|
0.0, 0.5, 0.0, 0.0,
|
||||||
|
@ -552,24 +552,13 @@ int32_t polymer_init(void)
|
||||||
|
|
||||||
if (pr_verbosity >= 1) OSD_Printf("Initalizing Polymer subsystem...\n");
|
if (pr_verbosity >= 1) OSD_Printf("Initalizing Polymer subsystem...\n");
|
||||||
|
|
||||||
i = 0;
|
Bmemset(&prsectors[0], sizeof(prsectors[0]) * MAXSECTORS, 0);
|
||||||
while (i < MAXSECTORS)
|
Bmemset(&prwalls[0], sizeof(prwalls[0]) * MAXWALLS, 0);
|
||||||
{
|
|
||||||
prsectors[i] = NULL;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
i = 0;
|
|
||||||
while (i < MAXWALLS)
|
|
||||||
{
|
|
||||||
prwalls[i] = NULL;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
prtess = bgluNewTess();
|
prtess = bgluNewTess();
|
||||||
if (prtess == 0)
|
if (prtess == 0)
|
||||||
{
|
{
|
||||||
if (pr_verbosity >= 1) OSD_Printf("PR : Tesselator initialization failed.\n");
|
OSD_Printf("PR : Tesselator initialization failed.\n");
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -892,19 +881,19 @@ void polymer_drawsprite(int32_t snum)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((tspr->cstat>>4) & 3) == 0)
|
if (((tspr->cstat>>4) & 3) == 0)
|
||||||
xratio = (float)(tspr->xrepeat) * 32.0f / 160.0f;
|
xratio = (float)(tspr->xrepeat) * 0.20f;
|
||||||
else
|
else
|
||||||
xratio = (float)(tspr->xrepeat) / 4.0f;
|
xratio = (float)(tspr->xrepeat) * 0.25f;
|
||||||
|
|
||||||
yratio = (float)(tspr->yrepeat) / 4.0f;
|
yratio = (float)(tspr->yrepeat) * 0.25f;
|
||||||
|
|
||||||
|
xsize = tilesizx[curpicnum];
|
||||||
|
ysize = tilesizy[curpicnum];
|
||||||
|
|
||||||
if (usehightile && h_xsize[curpicnum])
|
if (usehightile && h_xsize[curpicnum])
|
||||||
{
|
{
|
||||||
xsize = h_xsize[curpicnum];
|
xsize = h_xsize[curpicnum];
|
||||||
ysize = h_ysize[curpicnum];
|
ysize = h_ysize[curpicnum];
|
||||||
} else {
|
|
||||||
xsize = tilesizx[curpicnum];
|
|
||||||
ysize = tilesizy[curpicnum];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xsize *= xratio;
|
xsize *= xratio;
|
||||||
|
@ -1035,6 +1024,13 @@ void polymer_setanimatesprites(animatespritesptr animatesprites,
|
||||||
asi.smoothratio = smoothratio;
|
asi.smoothratio = smoothratio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int16_t sectorqueue[MAXSECTORS];
|
||||||
|
static int16_t querydelay[MAXSECTORS];
|
||||||
|
static GLuint queryid[MAXWALLS];
|
||||||
|
static int16_t drawingstate[MAXSECTORS];
|
||||||
|
static spritetype localtsprite[MAXSPRITESONSCREEN];
|
||||||
|
static int16_t localmaskwall[MAXWALLSB];
|
||||||
|
|
||||||
// CORE
|
// CORE
|
||||||
static void polymer_displayrooms(int16_t dacursectnum)
|
static void polymer_displayrooms(int16_t dacursectnum)
|
||||||
{
|
{
|
||||||
|
@ -1044,16 +1040,11 @@ static void polymer_displayrooms(int16_t dacursectnum)
|
||||||
int16_t doquery;
|
int16_t doquery;
|
||||||
int32_t front;
|
int32_t front;
|
||||||
int32_t back;
|
int32_t back;
|
||||||
int16_t sectorqueue[MAXSECTORS];
|
|
||||||
int16_t querydelay[MAXSECTORS];
|
|
||||||
GLuint queryid[MAXWALLS];
|
|
||||||
int16_t drawingstate[MAXSECTORS];
|
|
||||||
GLfloat localmodelviewmatrix[16];
|
GLfloat localmodelviewmatrix[16];
|
||||||
GLfloat localprojectionmatrix[16];
|
GLfloat localprojectionmatrix[16];
|
||||||
float frustum[5 * 4];
|
float frustum[5 * 4];
|
||||||
int32_t localspritesortcnt;
|
int32_t localspritesortcnt;
|
||||||
spritetype localtsprite[MAXSPRITESONSCREEN];
|
int16_t localmaskwallcnt;
|
||||||
int16_t localmaskwall[MAXWALLSB], localmaskwallcnt;
|
|
||||||
_prmirror mirrorlist[10];
|
_prmirror mirrorlist[10];
|
||||||
int mirrorcount;
|
int mirrorcount;
|
||||||
int32_t gx, gy, gz, px, py, pz;
|
int32_t gx, gy, gz, px, py, pz;
|
||||||
|
@ -1423,7 +1414,7 @@ static void polymer_drawplane(_prplane* plane)
|
||||||
plane->drawn = 1;
|
plane->drawn = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void polymer_inb4mirror(GLfloat* buffer, GLfloat* plane)
|
static inline void polymer_inb4mirror(GLfloat* buffer, GLfloat* plane)
|
||||||
{
|
{
|
||||||
float pv;
|
float pv;
|
||||||
float reflectionmatrix[16];
|
float reflectionmatrix[16];
|
||||||
|
@ -2406,7 +2397,7 @@ static void polymer_buffertoplane(GLfloat* buffer, GLushort* indices, in
|
||||||
|
|
||||||
norm = plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2];
|
norm = plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2];
|
||||||
|
|
||||||
if (norm >= 15000) // hack to work around a precision issue with slopes
|
if (norm >= 5000) // hack to work around a precision issue with slopes
|
||||||
{
|
{
|
||||||
// normalize the normal/plane equation and calculate its plane norm
|
// normalize the normal/plane equation and calculate its plane norm
|
||||||
norm = -sqrt(norm);
|
norm = -sqrt(norm);
|
||||||
|
@ -2476,14 +2467,14 @@ static void polymer_buffertoplane(GLfloat* buffer, GLushort* indices, in
|
||||||
while (i < indicecount);
|
while (i < indicecount);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void polymer_crossproduct(GLfloat* in_a, GLfloat* in_b, GLfloat* out)
|
static inline void polymer_crossproduct(GLfloat* in_a, GLfloat* in_b, GLfloat* out)
|
||||||
{
|
{
|
||||||
out[0] = in_a[1] * in_b[2] - in_a[2] * in_b[1];
|
out[0] = in_a[1] * in_b[2] - in_a[2] * in_b[1];
|
||||||
out[1] = in_a[2] * in_b[0] - in_a[0] * in_b[2];
|
out[1] = in_a[2] * in_b[0] - in_a[0] * in_b[2];
|
||||||
out[2] = in_a[0] * in_b[1] - in_a[1] * in_b[0];
|
out[2] = in_a[0] * in_b[1] - in_a[1] * in_b[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void polymer_transformpoint(float* inpos, float* pos, float* matrix)
|
static inline void polymer_transformpoint(float* inpos, float* pos, float* matrix)
|
||||||
{
|
{
|
||||||
pos[0] = inpos[0] * matrix[0] +
|
pos[0] = inpos[0] * matrix[0] +
|
||||||
inpos[1] * matrix[4] +
|
inpos[1] * matrix[4] +
|
||||||
|
@ -2499,7 +2490,7 @@ static void polymer_transformpoint(float* inpos, float* pos, float* matr
|
||||||
+ matrix[14];
|
+ matrix[14];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void polymer_pokesector(int16_t sectnum)
|
static inline void polymer_pokesector(int16_t sectnum)
|
||||||
{
|
{
|
||||||
sectortype *sec;
|
sectortype *sec;
|
||||||
_prsector *s;
|
_prsector *s;
|
||||||
|
@ -2580,7 +2571,7 @@ static int32_t polymer_planeinfrustum(_prplane *plane, float* frustum)
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void polymer_scansprites(int16_t sectnum, spritetype* localtsprite, int32_t* localspritesortcnt)
|
static inline void polymer_scansprites(int16_t sectnum, spritetype* localtsprite, int32_t* localspritesortcnt)
|
||||||
{
|
{
|
||||||
int32_t i;
|
int32_t i;
|
||||||
spritetype *spr;
|
spritetype *spr;
|
||||||
|
@ -3803,7 +3794,7 @@ static int32_t polymer_planeinlight(_prplane* plane, _prlight* light)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void polymer_culllight(char lightindex)
|
static inline void polymer_culllight(char lightindex)
|
||||||
{
|
{
|
||||||
_prlight* light;
|
_prlight* light;
|
||||||
int32_t front;
|
int32_t front;
|
||||||
|
|
|
@ -2680,8 +2680,88 @@ static void G_MoveWeapons(void)
|
||||||
|
|
||||||
switch (DynamicTileMap[s->picnum])
|
switch (DynamicTileMap[s->picnum])
|
||||||
{
|
{
|
||||||
|
case FREEZEBLAST__STATIC:
|
||||||
|
gamelights[gamelightcount].radius = 0;
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].x = s->x;
|
||||||
|
gamelights[gamelightcount].y = s->y;
|
||||||
|
gamelights[gamelightcount].z = s->z;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].range = 2048;
|
||||||
|
gamelights[gamelightcount].range -= rand()%((gamelights[gamelightcount].range>>3)+1);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 128;
|
||||||
|
gamelights[gamelightcount].color[1] = 128;
|
||||||
|
gamelights[gamelightcount].color[2] = 255;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case COOLEXPLOSION1__STATIC:
|
||||||
|
gamelights[gamelightcount].radius = 0;
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].x = s->x;
|
||||||
|
gamelights[gamelightcount].y = s->y;
|
||||||
|
gamelights[gamelightcount].z = s->z;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].range = 3072;
|
||||||
|
gamelights[gamelightcount].range -= rand()%((gamelights[gamelightcount].range>>3)+1);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 128;
|
||||||
|
gamelights[gamelightcount].color[1] = 0;
|
||||||
|
gamelights[gamelightcount].color[2] = 255;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SHRINKSPARK__STATIC:
|
||||||
|
gamelights[gamelightcount].radius = 0;
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].x = s->x;
|
||||||
|
gamelights[gamelightcount].y = s->y;
|
||||||
|
gamelights[gamelightcount].z = s->z;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].range = tilesizx[s->picnum]*tilesizy[s->picnum];
|
||||||
|
gamelights[gamelightcount].range -= rand()%((gamelights[gamelightcount].range>>3)+1);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 128;
|
||||||
|
gamelights[gamelightcount].color[1] = 255;
|
||||||
|
gamelights[gamelightcount].color[2] = 128;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
break;
|
||||||
|
|
||||||
case RPG__STATIC:
|
case RPG__STATIC:
|
||||||
if (ActorExtra[i].picnum != BOSS2 && s->xrepeat >= 10 && sector[s->sectnum].lotag != 2)
|
case FIRELASER__STATIC:
|
||||||
|
gamelights[gamelightcount].radius = 0;
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].x = s->x;
|
||||||
|
gamelights[gamelightcount].y = s->y;
|
||||||
|
gamelights[gamelightcount].z = s->z;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].range = tilesizx[s->picnum]*tilesizy[s->picnum];
|
||||||
|
gamelights[gamelightcount].range -= rand()%((gamelights[gamelightcount].range>>3)+1);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 255;
|
||||||
|
gamelights[gamelightcount].color[1] = 80;
|
||||||
|
gamelights[gamelightcount].color[2] = 0;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
|
||||||
|
if (DynamicTileMap[s->picnum] == RPG__STATIC && ActorExtra[i].picnum != BOSS2 &&
|
||||||
|
s->xrepeat >= 10 && sector[s->sectnum].lotag != 2)
|
||||||
{
|
{
|
||||||
j = A_Spawn(i,SMALLSMOKE);
|
j = A_Spawn(i,SMALLSMOKE);
|
||||||
sprite[j].z += (1<<8);
|
sprite[j].z += (1<<8);
|
||||||
|
@ -3323,6 +3403,47 @@ static void G_MoveActors(void)
|
||||||
}
|
}
|
||||||
switch (DynamicTileMap[switchpicnum])
|
switch (DynamicTileMap[switchpicnum])
|
||||||
{
|
{
|
||||||
|
case ATOMICHEALTH__STATIC:
|
||||||
|
gamelights[gamelightcount].radius = 0;
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].x = s->x;
|
||||||
|
gamelights[gamelightcount].y = s->y;
|
||||||
|
gamelights[gamelightcount].z = s->z;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].range = 2048;
|
||||||
|
gamelights[gamelightcount].range -= rand()%((gamelights[gamelightcount].range>>3)+1);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 128;
|
||||||
|
gamelights[gamelightcount].color[1] = 128;
|
||||||
|
gamelights[gamelightcount].color[2] = 255;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FIRE__STATIC:
|
||||||
|
case FIRE2__STATIC:
|
||||||
|
gamelights[gamelightcount].radius = 0;
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].x = s->x;
|
||||||
|
gamelights[gamelightcount].y = s->y;
|
||||||
|
gamelights[gamelightcount].z = s->z;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].range = tilesizx[s->picnum]*tilesizy[s->picnum];
|
||||||
|
gamelights[gamelightcount].range -= rand()%((gamelights[gamelightcount].range>>3)+1);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 255;
|
||||||
|
gamelights[gamelightcount].color[1] = 80;
|
||||||
|
gamelights[gamelightcount].color[2] = 0;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
break;
|
||||||
|
|
||||||
case DUCK__STATIC:
|
case DUCK__STATIC:
|
||||||
case TARGET__STATIC:
|
case TARGET__STATIC:
|
||||||
if (s->cstat&32)
|
if (s->cstat&32)
|
||||||
|
@ -5063,11 +5184,77 @@ static void G_MoveMisc(void) // STATNUM 5
|
||||||
case FORCERIPPLE__STATIC:
|
case FORCERIPPLE__STATIC:
|
||||||
case TRANSPORTERSTAR__STATIC:
|
case TRANSPORTERSTAR__STATIC:
|
||||||
case TRANSPORTERBEAM__STATIC:
|
case TRANSPORTERBEAM__STATIC:
|
||||||
|
{
|
||||||
|
switch (DynamicTileMap[switchpicnum])
|
||||||
|
{
|
||||||
|
case BURNING__STATIC:
|
||||||
|
case BURNING2__STATIC:
|
||||||
|
case EXPLOSION2__STATIC:
|
||||||
|
gamelights[gamelightcount].radius = 0;
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].x = s->x;
|
||||||
|
gamelights[gamelightcount].y = s->y;
|
||||||
|
gamelights[gamelightcount].z = s->z;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].range = tilesizx[s->picnum]*tilesizy[s->picnum];
|
||||||
|
gamelights[gamelightcount].range -= rand()%((gamelights[gamelightcount].range>>3)+1);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 255;
|
||||||
|
gamelights[gamelightcount].color[1] = 80;
|
||||||
|
gamelights[gamelightcount].color[2] = 0;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
break;
|
||||||
|
case FORCERIPPLE__STATIC:
|
||||||
|
case TRANSPORTERSTAR__STATIC:
|
||||||
|
case TRANSPORTERBEAM__STATIC:
|
||||||
|
gamelights[gamelightcount].radius = 0;
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].x = s->x;
|
||||||
|
gamelights[gamelightcount].y = s->y;
|
||||||
|
gamelights[gamelightcount].z = s->z;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].range = tilesizx[s->picnum]*tilesizy[s->picnum];
|
||||||
|
gamelights[gamelightcount].range -= rand()%((gamelights[gamelightcount].range>>3)+1);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 80;
|
||||||
|
gamelights[gamelightcount].color[1] = 80;
|
||||||
|
gamelights[gamelightcount].color[2] = 255;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
break;
|
||||||
|
case SHRINKEREXPLOSION__STATIC:
|
||||||
|
gamelights[gamelightcount].radius = 0;
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].x = s->x;
|
||||||
|
gamelights[gamelightcount].y = s->y;
|
||||||
|
gamelights[gamelightcount].z = s->z;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].range = tilesizx[s->picnum]*tilesizy[s->picnum];
|
||||||
|
gamelights[gamelightcount].range -= rand()%((gamelights[gamelightcount].range>>3)+1);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 128;
|
||||||
|
gamelights[gamelightcount].color[1] = 255;
|
||||||
|
gamelights[gamelightcount].color[2] = 128;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (!actorscrptr[sprite[i].picnum])
|
if (!actorscrptr[sprite[i].picnum])
|
||||||
goto BOLT;
|
goto BOLT;
|
||||||
p = A_FindPlayer(s,&x);
|
p = A_FindPlayer(s,&x);
|
||||||
A_Execute(i,p,x);
|
A_Execute(i,p,x);
|
||||||
goto BOLT;
|
goto BOLT;
|
||||||
|
}
|
||||||
|
|
||||||
case SHELL__STATIC:
|
case SHELL__STATIC:
|
||||||
case SHOTGUNSHELL__STATIC:
|
case SHOTGUNSHELL__STATIC:
|
||||||
|
@ -7612,8 +7799,6 @@ int32_t A_CheckSwitchTile(int32_t i)
|
||||||
|
|
||||||
void G_MoveWorld(void)
|
void G_MoveWorld(void)
|
||||||
{
|
{
|
||||||
gamelightcount = 0;
|
|
||||||
|
|
||||||
G_MoveZombieActors(); //ST 2
|
G_MoveZombieActors(); //ST 2
|
||||||
G_MoveWeapons(); //ST 4
|
G_MoveWeapons(); //ST 4
|
||||||
G_MoveTransports(); //ST 9
|
G_MoveTransports(); //ST 9
|
||||||
|
|
|
@ -228,7 +228,7 @@ void G_PlayAnim(const char *fn,char t)
|
||||||
|
|
||||||
walock[TILE_ANIM] = 219+t;
|
walock[TILE_ANIM] = 219+t;
|
||||||
|
|
||||||
allocache((intptr_t *)&animbuf,length,&walock[TILE_ANIM]);
|
allocache((intptr_t *)&animbuf,length+1,&walock[TILE_ANIM]);
|
||||||
|
|
||||||
tilesizx[TILE_ANIM] = 200;
|
tilesizx[TILE_ANIM] = 200;
|
||||||
tilesizy[TILE_ANIM] = 320;
|
tilesizy[TILE_ANIM] = 320;
|
||||||
|
|
|
@ -52,7 +52,7 @@ extern "C" {
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
|
|
||||||
#define APPNAME "EDuke32"
|
#define APPNAME "EDuke32"
|
||||||
#define VERSION " 1.5.0devel"
|
#define VERSION " 2.0.0devel"
|
||||||
// this is checked against http://eduke32.com/VERSION
|
// this is checked against http://eduke32.com/VERSION
|
||||||
extern const char *s_buildDate;
|
extern const char *s_buildDate;
|
||||||
#define HEAD2 APPNAME VERSION
|
#define HEAD2 APPNAME VERSION
|
||||||
|
|
|
@ -7369,6 +7369,7 @@ PALONLY:
|
||||||
case FLOORFLAME__STATIC:
|
case FLOORFLAME__STATIC:
|
||||||
|
|
||||||
#ifdef POLYMER
|
#ifdef POLYMER
|
||||||
|
/*
|
||||||
framelights[framelightcount].radius = 0;
|
framelights[framelightcount].radius = 0;
|
||||||
framelights[framelightcount].sector = t->sectnum;
|
framelights[framelightcount].sector = t->sectnum;
|
||||||
|
|
||||||
|
@ -7401,6 +7402,7 @@ PALONLY:
|
||||||
}
|
}
|
||||||
|
|
||||||
framelightcount++;
|
framelightcount++;
|
||||||
|
*/
|
||||||
#endif
|
#endif
|
||||||
if (t->picnum == EXPLOSION2)
|
if (t->picnum == EXPLOSION2)
|
||||||
{
|
{
|
||||||
|
@ -7418,6 +7420,7 @@ PALONLY:
|
||||||
t->z = sector[t->sectnum].floorz;
|
t->z = sector[t->sectnum].floorz;
|
||||||
t->shade = -127;
|
t->shade = -127;
|
||||||
#ifdef POLYMER
|
#ifdef POLYMER
|
||||||
|
/*
|
||||||
framelights[framelightcount].radius = 0;
|
framelights[framelightcount].radius = 0;
|
||||||
framelights[framelightcount].sector = t->sectnum;
|
framelights[framelightcount].sector = t->sectnum;
|
||||||
|
|
||||||
|
@ -7435,12 +7438,14 @@ PALONLY:
|
||||||
framelights[framelightcount].priority = 0;
|
framelights[framelightcount].priority = 0;
|
||||||
|
|
||||||
framelightcount++;
|
framelightcount++;
|
||||||
|
*/
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case COOLEXPLOSION1__STATIC:
|
case COOLEXPLOSION1__STATIC:
|
||||||
t->shade = -127;
|
t->shade = -127;
|
||||||
t->picnum += (s->shade>>1);
|
t->picnum += (s->shade>>1);
|
||||||
#ifdef POLYMER
|
#ifdef POLYMER
|
||||||
|
/*
|
||||||
framelights[framelightcount].radius = 0;
|
framelights[framelightcount].radius = 0;
|
||||||
framelights[framelightcount].sector = t->sectnum;
|
framelights[framelightcount].sector = t->sectnum;
|
||||||
|
|
||||||
|
@ -7458,6 +7463,7 @@ PALONLY:
|
||||||
framelights[framelightcount].priority = 0;
|
framelights[framelightcount].priority = 0;
|
||||||
|
|
||||||
framelightcount++;
|
framelightcount++;
|
||||||
|
*/
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case PLAYERONWATER__STATIC:
|
case PLAYERONWATER__STATIC:
|
||||||
|
@ -8441,11 +8447,13 @@ static void G_HandleLocalKeys(void)
|
||||||
if (i == 5 && g_player[myconnectindex].ps->fta > 0 && g_player[myconnectindex].ps->ftq == 26)
|
if (i == 5 && g_player[myconnectindex].ps->fta > 0 && g_player[myconnectindex].ps->ftq == 26)
|
||||||
{
|
{
|
||||||
i = (VOLUMEALL?MAXVOLUMES*MAXLEVELS:6);
|
i = (VOLUMEALL?MAXVOLUMES*MAXLEVELS:6);
|
||||||
|
g_musicIndex = (g_musicIndex+1)%i;
|
||||||
|
while (MapInfo[(uint8_t)g_musicIndex].musicfn == NULL)
|
||||||
|
{
|
||||||
g_musicIndex++;
|
g_musicIndex++;
|
||||||
while ((MapInfo[(uint8_t)g_musicIndex].musicfn == NULL) && g_musicIndex < i)
|
if (g_musicIndex >= i)
|
||||||
g_musicIndex++;
|
|
||||||
if (g_musicIndex == i)
|
|
||||||
g_musicIndex = 0;
|
g_musicIndex = 0;
|
||||||
|
}
|
||||||
if (MapInfo[(uint8_t)g_musicIndex].musicfn != NULL)
|
if (MapInfo[(uint8_t)g_musicIndex].musicfn != NULL)
|
||||||
{
|
{
|
||||||
if (S_PlayMusic(&MapInfo[(uint8_t)g_musicIndex].musicfn[0],g_musicIndex))
|
if (S_PlayMusic(&MapInfo[(uint8_t)g_musicIndex].musicfn[0],g_musicIndex))
|
||||||
|
@ -12803,6 +12811,8 @@ static int32_t G_DoMoveThings(void)
|
||||||
|
|
||||||
if (ud.recstat == 1) G_DemoRecord();
|
if (ud.recstat == 1) G_DemoRecord();
|
||||||
|
|
||||||
|
gamelightcount = 0;
|
||||||
|
|
||||||
if (ud.pause_on == 0)
|
if (ud.pause_on == 0)
|
||||||
{
|
{
|
||||||
g_globalRandom = krand();
|
g_globalRandom = krand();
|
||||||
|
|
|
@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
#include "duke3d.h"
|
#include "duke3d.h"
|
||||||
|
|
||||||
const char *s_buildDate = "20090313";
|
const char *s_buildDate = "20090412";
|
||||||
char *MusicPtr = NULL;
|
char *MusicPtr = NULL;
|
||||||
int32_t g_musicSize;
|
int32_t g_musicSize;
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com)
|
||||||
|
|
||||||
#include "mpu401.h"
|
#include "mpu401.h"
|
||||||
#include "compat.h"
|
#include "compat.h"
|
||||||
|
#include "osd.h"
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
@ -51,7 +52,7 @@ MIDIEVENTHEAD;
|
||||||
#define PAD(x) ((((x)+3)&(~3)))
|
#define PAD(x) ((((x)+3)&(~3)))
|
||||||
|
|
||||||
#define BUFFERLEN (32*4*4)
|
#define BUFFERLEN (32*4*4)
|
||||||
#define NUMBUFFERS 6
|
#define NUMBUFFERS 8
|
||||||
static char eventbuf[NUMBUFFERS][BUFFERLEN];
|
static char eventbuf[NUMBUFFERS][BUFFERLEN];
|
||||||
static int32_t eventcnt[NUMBUFFERS];
|
static int32_t eventcnt[NUMBUFFERS];
|
||||||
static MIDIHDR bufferheaders[NUMBUFFERS];
|
static MIDIHDR bufferheaders[NUMBUFFERS];
|
||||||
|
@ -91,7 +92,7 @@ void MPU_FinishBuffer(int32_t buffer)
|
||||||
bufferheaders[buffer].dwBytesRecorded = eventcnt[buffer];
|
bufferheaders[buffer].dwBytesRecorded = eventcnt[buffer];
|
||||||
midiOutPrepareHeader((HMIDIOUT)hmido, &bufferheaders[buffer], sizeof(MIDIHDR));
|
midiOutPrepareHeader((HMIDIOUT)hmido, &bufferheaders[buffer], sizeof(MIDIHDR));
|
||||||
midiStreamOut(hmido, &bufferheaders[buffer], sizeof(MIDIHDR));
|
midiStreamOut(hmido, &bufferheaders[buffer], sizeof(MIDIHDR));
|
||||||
// printf("Sending %d bytes (buffer %d)\n",eventcnt[buffer],buffer);
|
// OSD_Printf("Sending %d bytes (buffer %d)\n",eventcnt[buffer],buffer);
|
||||||
_MPU_BuffersWaiting++;
|
_MPU_BuffersWaiting++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +129,7 @@ void CALLBACK MPU_MIDICallback(HMIDIOUT handle, UINT uMsg, DWORD dwInstance, DWO
|
||||||
if (dwParam1 == (uint32_t)&bufferheaders[i])
|
if (dwParam1 == (uint32_t)&bufferheaders[i])
|
||||||
{
|
{
|
||||||
eventcnt[i] = 0; // marks the buffer as free
|
eventcnt[i] = 0; // marks the buffer as free
|
||||||
// printf("Finished buffer %d\n",i);
|
// OSD_Printf("Finished buffer %d\n",i);
|
||||||
_MPU_BuffersWaiting--;
|
_MPU_BuffersWaiting--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -171,7 +172,7 @@ void MPU_SendMidi(char *data, int32_t count)
|
||||||
nextbuffer = MPU_GetNextBuffer();
|
nextbuffer = MPU_GetNextBuffer();
|
||||||
if (nextbuffer < 0)
|
if (nextbuffer < 0)
|
||||||
{
|
{
|
||||||
// printf("All buffers full!\n");
|
// OSD_Printf("All buffers full!\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
MPU_FinishBuffer(_MPU_CurrentBuffer);
|
MPU_FinishBuffer(_MPU_CurrentBuffer);
|
||||||
|
@ -193,7 +194,7 @@ void MPU_SendMidi(char *data, int32_t count)
|
||||||
nextbuffer = MPU_GetNextBuffer();
|
nextbuffer = MPU_GetNextBuffer();
|
||||||
if (nextbuffer < 0)
|
if (nextbuffer < 0)
|
||||||
{
|
{
|
||||||
// printf("All buffers full!\n");
|
// OSD_Printf("All buffers full!\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
MPU_FinishBuffer(_MPU_CurrentBuffer);
|
MPU_FinishBuffer(_MPU_CurrentBuffer);
|
||||||
|
|
|
@ -2111,8 +2111,50 @@ void P_FireWeapon(DukePlayer_t *p)
|
||||||
|
|
||||||
if (!(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_NOVISIBLE))
|
if (!(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_NOVISIBLE))
|
||||||
{
|
{
|
||||||
|
spritetype *s = &sprite[p->i];
|
||||||
|
|
||||||
lastvisinc = totalclock+32;
|
lastvisinc = totalclock+32;
|
||||||
p->visibility = 0;
|
p->visibility = 0;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].radius = 0;
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].x = s->x;
|
||||||
|
gamelights[gamelightcount].y = s->y;
|
||||||
|
gamelights[gamelightcount].z = s->z-PHEIGHT;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].range = 4096;
|
||||||
|
gamelights[gamelightcount].range -= rand()%((gamelights[gamelightcount].range>>3)+1);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 255;
|
||||||
|
gamelights[gamelightcount].color[1] = 80;
|
||||||
|
gamelights[gamelightcount].color[2] = 0;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].sector = s->sectnum;
|
||||||
|
gamelights[gamelightcount].x = s->x+((sintable[(p->ang+512)&2047])>>5);
|
||||||
|
gamelights[gamelightcount].y = s->y+((sintable[(p->ang)&2047])>>5);
|
||||||
|
|
||||||
|
gamelights[gamelightcount].z = s->z-PHEIGHT;
|
||||||
|
gamelights[gamelightcount].range = 8192;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].angle = (s->ang+1024)&2047;
|
||||||
|
gamelights[gamelightcount].horiz = 100;
|
||||||
|
gamelights[gamelightcount].radius = 256;
|
||||||
|
gamelights[gamelightcount].faderadius = 200;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].color[0] = 255;
|
||||||
|
gamelights[gamelightcount].color[1] = 80;
|
||||||
|
gamelights[gamelightcount].color[2] = 0;
|
||||||
|
|
||||||
|
gamelights[gamelightcount].priority = 0;
|
||||||
|
|
||||||
|
gamelightcount++;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if( //!(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_CHECKATRELOAD) &&
|
/* if( //!(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_CHECKATRELOAD) &&
|
||||||
|
|
|
@ -214,7 +214,7 @@ void S_MenuSound(void)
|
||||||
|
|
||||||
void _playmusic(const char *fn)
|
void _playmusic(const char *fn)
|
||||||
{
|
{
|
||||||
int32_t fp, l;
|
int32_t fp, l, i;
|
||||||
|
|
||||||
if (fn == NULL) return;
|
if (fn == NULL) return;
|
||||||
|
|
||||||
|
@ -223,18 +223,27 @@ void _playmusic(const char *fn)
|
||||||
|
|
||||||
fp = kopen4loadfrommod((char *)fn,0);
|
fp = kopen4loadfrommod((char *)fn,0);
|
||||||
|
|
||||||
if (fp == -1) return;
|
if (fp == -1)
|
||||||
|
{
|
||||||
|
OSD_Printf(OSD_ERROR "S_PlayMusic(): error: can't open '%s' for playback!",fn);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
l = kfilelength(fp);
|
l = kfilelength(fp);
|
||||||
MUSIC_StopSong();
|
MUSIC_StopSong();
|
||||||
|
|
||||||
if (!MusicPtr) MusicPtr = Bcalloc(1, l);
|
MusicPtr = Brealloc(MusicPtr, l);
|
||||||
else MusicPtr = Brealloc(MusicPtr, l);
|
if ((i = kread(fp, (char *)MusicPtr, l)) != l)
|
||||||
|
{
|
||||||
|
OSD_Printf(OSD_ERROR "S_PlayMusic(): error: read %d bytes from '%s', needed %d\n",i, fn, l);
|
||||||
|
kclose(fp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
kclose(fp);
|
||||||
|
|
||||||
g_musicSize=l;
|
g_musicSize=l;
|
||||||
|
|
||||||
kread(fp, (char *)MusicPtr, l);
|
|
||||||
kclose(fp);
|
|
||||||
// FIXME: I need this to get the music volume initialized (not sure why) -- Jim Bentler
|
// FIXME: I need this to get the music volume initialized (not sure why) -- Jim Bentler
|
||||||
MUSIC_SetVolume(ud.config.MusicVolume);
|
MUSIC_SetVolume(ud.config.MusicVolume);
|
||||||
MUSIC_PlaySong((char *)MusicPtr, MUSIC_LoopSong);
|
MUSIC_PlaySong((char *)MusicPtr, MUSIC_LoopSong);
|
||||||
|
|
|
@ -197,6 +197,7 @@ char Net_RandomSync(void)
|
||||||
updatecrc(crc,Net_PlayerSync2() & 255);
|
updatecrc(crc,Net_PlayerSync2() & 255);
|
||||||
updatecrc(crc,Net_WeaponSync() & 255);
|
updatecrc(crc,Net_WeaponSync() & 255);
|
||||||
updatecrc(crc,Net_ActorSync() & 255);
|
updatecrc(crc,Net_ActorSync() & 255);
|
||||||
|
updatecrc(crc,Net_MapSync() & 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ((uint8_t) crc & 255);
|
return ((uint8_t) crc & 255);
|
||||||
|
|
Loading…
Reference in a new issue