mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-10 14:42:13 +00:00
apply lmgamma to rbsp vertex lighting
opus should now be statically linked or something made the denormalised floats warning look less scary. fix the console-making-hud-pics invisible issue git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5172 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
4f73088dea
commit
4896954c8a
10 changed files with 202 additions and 104 deletions
109
engine/Makefile
109
engine/Makefile
|
@ -26,11 +26,12 @@ WHOAMI:=$(shell whoami)
|
|||
#update these to download+build a different version. this assumes that the url+subdirs etc contain a consistant version everywhere.
|
||||
JPEGVER=9b
|
||||
ZLIBVER=1.2.11
|
||||
PNGVER=1.6.29
|
||||
OGGVER=1.3.2
|
||||
PNGVER=1.6.34
|
||||
OGGVER=1.3.3
|
||||
VORBISVER=1.3.5
|
||||
SDL2VER=2.0.5
|
||||
SDL2VER=2.0.7
|
||||
SCINTILLAVER=373
|
||||
OPUSVER=1.2.1
|
||||
|
||||
#only limited forms of cross-making is supported
|
||||
#only the following 3 are supported
|
||||
|
@ -80,6 +81,9 @@ endif
|
|||
ifeq (,$(findstring DNO_SPEEX,$(FTE_CONFIG_EXTRA)))
|
||||
USE_SPEEX=1
|
||||
endif
|
||||
ifeq (,$(findstring DNO_OPUS,$(FTE_CONFIG_EXTRA)))
|
||||
USE_OPUS=1
|
||||
endif
|
||||
ifeq (,$(findstring DNO_BOTLIB,$(FTE_CONFIG_EXTRA)))
|
||||
USE_BOTLIB=1
|
||||
endif
|
||||
|
@ -862,13 +866,25 @@ ifeq (1,$(USE_BOTLIB))
|
|||
l_struct.o
|
||||
endif
|
||||
|
||||
ifeq (1,$(USE_OPUS))
|
||||
LIBOPUS_STATIC=-DOPUS_STATIC
|
||||
LIBOPUS_LDFLAGS=-lopus
|
||||
endif
|
||||
|
||||
ifeq (1,$(USE_VORBISFILE))
|
||||
LIBVORBISFILE_STATIC=-DLIBVORBISFILE_STATIC
|
||||
OGGVORBISFILE_STATIC=-DLIBVORBISFILE_STATIC
|
||||
else
|
||||
OGGVORBISLDFLAGS=
|
||||
LIBVORBISFILE_STATIC=
|
||||
OGGVORBISFILE_STATIC=
|
||||
endif
|
||||
|
||||
COMMONLIBFLAGS=
|
||||
CLIENTLIBFLAGS=$(COMMONLIBFLAGS) $(LIBOPUS_STATIC) $(OGGVORBISFILE_STATIC)
|
||||
SERVERLIBFLAGS=$(COMMONLIBFLAGS)
|
||||
COMMONLDDEPS=
|
||||
CLIENTLDDEPS=$(COMMONLDDEPS) $(LIBOPUS_LDFLAGS) $(OGGVORBISLDFLAGS)
|
||||
SERVERLDDEPS=$(COMMONLDDEPS)
|
||||
|
||||
#the defaults for sdl come first
|
||||
#CC_MACHINE:=$(shell $(CC) -dumpmachine)
|
||||
ifeq ($(FTE_TARGET),SDL2)
|
||||
|
@ -896,9 +912,9 @@ ifdef windir
|
|||
M_LDFLAGS=$(MLDFLAGS) -lmingw32 -lws2_32 `$(SDLCONFIG) --static-libs`
|
||||
SV_LDFLAGS=`$(SDLCONFIG) --static-libs`
|
||||
else
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) `$(SDLCONFIG) --static-libs`
|
||||
VK_LDFLAGS=$(VKLDFLAGS) $(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) `$(SDLCONFIG) --static-libs`
|
||||
M_LDFLAGS=$(MLDFLAGS) $(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) `$(SDLCONFIG) --static-libs`
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS) `$(SDLCONFIG) --static-libs`
|
||||
VK_LDFLAGS=$(VKLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS) `$(SDLCONFIG) --static-libs`
|
||||
M_LDFLAGS=$(MLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS) `$(SDLCONFIG) --static-libs`
|
||||
SV_LDFLAGS=`$(SDLCONFIG) --static-libs`
|
||||
endif
|
||||
GL_CFLAGS=-DFTE_SDL $(GLCFLAGS) `$(SDLCONFIG) --cflags`
|
||||
|
@ -936,7 +952,7 @@ endif
|
|||
#specific targets override those defaults as needed.
|
||||
#google native client
|
||||
ifeq ($(FTE_TARGET),nacl)
|
||||
OGGVORBISLDFLAGS=
|
||||
CLIENTLDDEPS=
|
||||
|
||||
NARCH ?= x86_32
|
||||
ifeq ($(shell uname -o 2>&1 | grep Cygwin),)
|
||||
|
@ -984,8 +1000,8 @@ ifeq ($(FTE_TARGET),nacl)
|
|||
|
||||
GLCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) sys_ppapi.o cd_null.o gl_vidppapi.o fs_ppapi.o snd_ppapi.o
|
||||
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(OGGVORBISLDFLAGS)
|
||||
M_LDFLAGS=$(GLLDFLAGS) $(OGGVORBISLDFLAGS)
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(CLIENTLDDEPS)
|
||||
M_LDFLAGS=$(GLLDFLAGS) $(CLIENTLDDEPS)
|
||||
|
||||
GLB_DIR=gl_nacl_$(NARCH)
|
||||
MINGL_DIR=mingl_nacl_$(NARCH)
|
||||
|
@ -1026,14 +1042,14 @@ ifeq (win_SDL,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET)))
|
|||
SV_LDFLAGS=$(MINGW_LIBS_DIR)/libz.a -lm -lmingw32 -lws2_32 -lwinmm `$(SDLCONFIG) --static-libs`
|
||||
QCC_LDFLAGS=$(MINGW_LIBS_DIR)/libz.a
|
||||
else
|
||||
GL_LDFLAGS=$(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32 $(GLLDFLAGS) `$(SDLCONFIG) --libs`
|
||||
VK_LDFLAGS=$(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32 $(GLLDFLAGS) `$(SDLCONFIG) --libs`
|
||||
M_LDFLAGS=$(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32 $(MLDFLAGS) `$(SDLCONFIG) --libs`
|
||||
GL_LDFLAGS=$(IMAGELDFLAGS) $(CLIENTLDDEPS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32 $(GLLDFLAGS) `$(SDLCONFIG) --libs`
|
||||
VK_LDFLAGS=$(IMAGELDFLAGS) $(CLIENTLDDEPS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32 $(GLLDFLAGS) `$(SDLCONFIG) --libs`
|
||||
M_LDFLAGS=$(IMAGELDFLAGS) $(CLIENTLDDEPS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32 $(MLDFLAGS) `$(SDLCONFIG) --libs`
|
||||
SV_LDFLAGS=$(MINGW_LIBS_DIR)/libz.a -lm -lmingw32 -lws2_32 -lwinmm `$(SDLCONFIG) --libs`
|
||||
QCC_LDFLAGS=$(MINGW_LIBS_DIR)/libz.a
|
||||
endif
|
||||
|
||||
GL_CFLAGS=-DFTE_SDL -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) -I$(LIBS_DIR) $(GLCFLAGS) $(LIBVORBISFILE_STATIC) $(DX7SDK) $(SPEEXCFLAGS)
|
||||
GL_CFLAGS=-DFTE_SDL -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) -I$(LIBS_DIR) $(GLCFLAGS) $(CLIENTLIBFLAGS) $(DX7SDK) $(SPEEXCFLAGS)
|
||||
|
||||
GLB_DIR=gl_mgw_sdl$(BITS)
|
||||
GLCL_DIR=glcl_mgw_sdl$(BITS)
|
||||
|
@ -1049,16 +1065,16 @@ ifeq (win_SDL,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET)))
|
|||
M_EXE_NAME=../$(EXE_NAME)-sdl$(BITS)$(EXEPOSTFIX)
|
||||
#with d3d...
|
||||
#MCL_OBJS=$(D3DGL_OBJS) $(GLQUAKE_OBJS) $(SOFTWARE_OBJS) $(D3DQUAKE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) gl_vidsdl.o snd_sdl.o cd_sdl.o sys_sdl.o in_sdl.o snd_directx.o $(LTO_END) resources.o $(LTO_START)
|
||||
#M_CFLAGS=$(D3DCFLAGS) $(VKCFLAGS) $(GLCFLAGS) -DFTE_SDL -I$(LIBS_DIR) -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) $(LIBVORBISFILE_STATIC) $(DX7SDK) $(SPEEXCFLAGS)
|
||||
#M_CFLAGS=$(D3DCFLAGS) $(VKCFLAGS) $(GLCFLAGS) -DFTE_SDL -I$(LIBS_DIR) -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) $(CLIENTLIBFLAGS) $(DX7SDK) $(SPEEXCFLAGS)
|
||||
#without d3d...
|
||||
MCL_OBJS=$(D3DGL_OBJS) $(GLQUAKE_OBJS) $(SOFTWARE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) gl_vidsdl.o snd_sdl.o cd_sdl.o sys_sdl.o in_sdl.o snd_directx.o $(LTO_END) resources.o $(LTO_START)
|
||||
M_CFLAGS=$(VKCFLAGS) $(GLCFLAGS) -DFTE_SDL -I$(LIBS_DIR) -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) $(LIBVORBISFILE_STATIC) $(DX7SDK) $(SPEEXCFLAGS)
|
||||
M_CFLAGS=$(VKCFLAGS) $(GLCFLAGS) -DFTE_SDL -I$(LIBS_DIR) -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) $(CLIENTLIBFLAGS) $(DX7SDK) $(SPEEXCFLAGS)
|
||||
|
||||
D3DCL_OBJS=$(D3DQUAKE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) snd_sdl.o cd_sdl.o sys_sdl.o in_sdl.o snd_directx.o $(D3DGL_OBJS) $(LTO_END) resources.o $(LTO_START)
|
||||
D3D_EXE_NAME=../$(EXE_NAME)-sdl-d3d$(BITS)$(EXEPOSTFIX)
|
||||
D3DCL_EXE_NAME=../$(EXE_NAME)-sdl-d3dcl$(BITS)$(EXEPOSTFIX)
|
||||
D3D_LDFLAGS=$(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32
|
||||
D3D_CFLAGS=$(D3DCFLAGS) -DFTE_SDL -DNO_XFLIP -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) $(LIBVORBISFILE_STATIC) $(DX7SDK) $(SPEEXCFLAGS)
|
||||
D3D_LDFLAGS=$(IMAGELDFLAGS) $(CLIENTLDDEPS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32
|
||||
D3D_CFLAGS=$(D3DCFLAGS) -DFTE_SDL -DNO_XFLIP -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) $(CLIENTLIBFLAGS) $(DX7SDK) $(SPEEXCFLAGS)
|
||||
D3DB_DIR=sdl_d3d_mgw$(BITS)
|
||||
D3DCL_DIR=sdl_d3dcl_mgw$(BITS)
|
||||
|
||||
|
@ -1066,7 +1082,7 @@ ifeq (win_SDL,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET)))
|
|||
VKCL_OBJS=$(VKQUAKE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) gl_bloom.o gl_vidsdl.o snd_sdl.o cd_sdl.o sys_sdl.o in_sdl.o snd_directx.o $(D3DGL_OBJS) $(LTO_END) resources.o $(LTO_START)
|
||||
VK_EXE_NAME=../$(EXE_NAME)-sdl-vk$(BITS)$(EXEPOSTFIX)
|
||||
VKCL_EXE_NAME=../$(EXE_NAME)-sdl-vkcl$(BITS)$(EXEPOSTFIX)
|
||||
VK_CFLAGS=$(VKCFLAGS) -DFTE_SDL -DNO_XFLIP -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) $(LIBVORBISFILE_STATIC) $(DX7SDK) $(SPEEXCFLAGS)
|
||||
VK_CFLAGS=$(VKCFLAGS) -DFTE_SDL -DNO_XFLIP -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) $(CLIENTLIBFLAGS) $(DX7SDK) $(SPEEXCFLAGS)
|
||||
VKB_DIR=sdl_vk_mgw$(BITS)
|
||||
VKCL_DIR=sdl_vkcl_mgw$(BITS)
|
||||
|
||||
|
@ -1215,8 +1231,8 @@ ifeq (win,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET)))
|
|||
GLCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) gl_vidnt.o $(WINDOWS_OBJS)
|
||||
GL_EXE_NAME=../fteglqw$(BITS)$(EXEPOSTFIX)
|
||||
GLCL_EXE_NAME=../fteglqwcl$(BITS)$(EXEPOSTFIX)
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows
|
||||
GL_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) $(DX7SDK) -DMULTITHREAD $(LIBVORBISFILE_STATIC) $(SPEEXCFLAGS)
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows
|
||||
GL_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) $(DX7SDK) -DMULTITHREAD $(CLIENTLIBFLAGS) $(SPEEXCFLAGS)
|
||||
GLB_DIR=gl_mgw$(BITS)
|
||||
GLCL_DIR=glcl_mgw$(BITS)
|
||||
|
||||
|
@ -1229,24 +1245,24 @@ ifeq (win,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET)))
|
|||
MCL_OBJS=$(D3DGL_OBJS) $(GLQUAKE_OBJS) $(SOFTWARE_OBJS) $(D3DQUAKE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) gl_vidnt.o gl_videgl.o $(WINDOWS_OBJS)
|
||||
M_EXE_NAME=../$(EXE_NAME)$(BITS)$(EXEPOSTFIX)
|
||||
MCL_EXE_NAME=../$(EXE_NAME)cl$(BITS)$(EXEPOSTFIX)
|
||||
M_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows
|
||||
M_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) $(D3DCFLAGS) $(DX7SDK) $(VKCFLAGS) -DMULTITHREAD $(LIBVORBISFILE_STATIC) $(SPEEXCFLAGS)
|
||||
M_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows
|
||||
M_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) $(D3DCFLAGS) $(DX7SDK) $(VKCFLAGS) -DMULTITHREAD $(CLIENTLIBFLAGS) $(SPEEXCFLAGS)
|
||||
MB_DIR=m_mgw$(BITS)
|
||||
MCL_DIR=mcl_mgw$(BITS)
|
||||
|
||||
D3DCL_OBJS=$(D3DQUAKE_OBJS) $(D3DGL_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) $(WINDOWS_OBJS)
|
||||
D3D_EXE_NAME=../fted3dqw$(BITS)$(EXEPOSTFIX)
|
||||
D3DCL_EXE_NAME=../fted3dclqw$(BITS)$(EXEPOSTFIX)
|
||||
D3D_LDFLAGS=$(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows
|
||||
D3D_CFLAGS=$(D3DCFLAGS) $(W32_CFLAGS) $(DX7SDK) -DMULTITHREAD $(LIBVORBISFILE_STATIC) $(SPEEXCFLAGS)
|
||||
D3D_LDFLAGS=$(IMAGELDFLAGS) $(CLIENTLDDEPS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows
|
||||
D3D_CFLAGS=$(D3DCFLAGS) $(W32_CFLAGS) $(DX7SDK) -DMULTITHREAD $(CLIENTLIBFLAGS) $(SPEEXCFLAGS)
|
||||
D3DB_DIR=d3d_mgw$(BITS)
|
||||
D3DCL_DIR=d3dcl_mgw$(BITS)
|
||||
|
||||
VKCL_OBJS=$(GLQUAKE_OBJS) $(D3DGL_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) $(WINDOWS_OBJS) gl_vidnt.o
|
||||
VK_EXE_NAME=../ftevkqw$(BITS)$(EXEPOSTFIX)
|
||||
VKCL_EXE_NAME=../ftevkclqw$(BITS)$(EXEPOSTFIX)
|
||||
VK_LDFLAGS=$(IMAGELDFLAGS) $(OGGVORBISLDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows
|
||||
VK_CFLAGS=$(VKCFLAGS) $(W32_CFLAGS) $(DX7SDK) -DMULTITHREAD $(LIBVORBISFILE_STATIC) $(SPEEXCFLAGS)
|
||||
VK_LDFLAGS=$(IMAGELDFLAGS) $(CLIENTLDDEPS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows
|
||||
VK_CFLAGS=$(VKCFLAGS) $(W32_CFLAGS) $(DX7SDK) -DMULTITHREAD $(CLIENTLIBFLAGS) $(SPEEXCFLAGS)
|
||||
VKB_DIR=vk_mgw$(BITS)
|
||||
VKCL_DIR=vkcl_mgw$(BITS)
|
||||
|
||||
|
@ -1291,7 +1307,7 @@ ifeq ($(FTE_TARGET),bsd)
|
|||
MINGL_DIR=mingl_bsd
|
||||
endif
|
||||
ifneq (,$(findstring linux,$(FTE_TARGET)))
|
||||
OGGVORBISLDFLAGS=
|
||||
CLIENTLDDEPS=
|
||||
|
||||
SV_DIR=sv_linux$(BITS)
|
||||
SV_EXE_NAME=../$(EXE_NAME)-sv$(BITS)
|
||||
|
@ -1315,7 +1331,7 @@ ifneq (,$(findstring linux,$(FTE_TARGET)))
|
|||
GLCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) gl_vidlinuxglx.o gl_videgl.o snd_alsa.o snd_linux.o snd_sdl.o cd_linux.o sys_linux.o sys_linux_threads.o
|
||||
GL_EXE_NAME=../$(EXE_NAME)-gl$(BITS)
|
||||
GLCL_EXE_NAME=../$(EXE_NAME)-glcl$(BITS)
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(OGGVORBISLDFLAGS)
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(CLIENTLDDEPS)
|
||||
GL_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include $(CL_CFLAGS)
|
||||
GLB_DIR=gl_linux$(BITS)
|
||||
GLCL_DIR=glcl_linux$(BITS)
|
||||
|
@ -1323,7 +1339,7 @@ ifneq (,$(findstring linux,$(FTE_TARGET)))
|
|||
VKCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) gl_vidlinuxglx.o gl_videgl.o snd_alsa.o snd_linux.o snd_sdl.o cd_linux.o sys_linux.o sys_linux_threads.o
|
||||
VK_EXE_NAME=../$(EXE_NAME)-vk$(BITS)
|
||||
VKCL_EXE_NAME=../$(EXE_NAME)-vkcl$(BITS)
|
||||
VK_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(OGGVORBISLDFLAGS)
|
||||
VK_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(CLIENTLDDEPS)
|
||||
VK_CFLAGS=$(VKCFLAGS) -I/usr/X11R6/include $(CL_CFLAGS)
|
||||
VKB_DIR=vk_linux$(BITS)
|
||||
VKCL_DIR=vkcl_linux$(BITS)
|
||||
|
@ -1380,7 +1396,7 @@ ifneq ($(shell echo $(FTE_TARGET)|grep macosx),)
|
|||
GLCL_DIR=glcl_macosx$(EXTENSION)$(BITS)
|
||||
MINGL_DIR=mingl_macosx$(EXTENSION)$(BITS)
|
||||
|
||||
OGGVORBISLDFLAGS=
|
||||
CLIENTLDDEPS=
|
||||
|
||||
GL_CFLAGS=$(GLCFLAGS) -D__MACOSX__ -L/sw/lib -I/sw/include -L/opt/local/lib -I/opt/local/include -I$(LIBS_DIR)
|
||||
ifeq ($(FTE_TARGET),macosx_x86)
|
||||
|
@ -1413,7 +1429,7 @@ ifeq ($(FTE_TARGET),morphos)
|
|||
|
||||
SV_DIR=sv_morphos
|
||||
SV_LDFLAGS=-ldl -lz
|
||||
OGGVORBISLDFLAGS=
|
||||
CLIENTLDDEPS=
|
||||
|
||||
GLCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) gl_vidmorphos.o in_morphos.o snd_morphos.o cd_null.o sys_morphos.o
|
||||
GL_EXE_NAME=../$(EXE_NAME)-morphos-gl
|
||||
|
@ -1450,7 +1466,7 @@ ifeq ($(FTE_TARGET),dos)
|
|||
VKCL_DIR=vkcl_dos
|
||||
|
||||
IMAGELDFLAGS=
|
||||
OGGVORBISLDFLAGS=
|
||||
CLIENTLDDEPS=
|
||||
|
||||
SOFTWARE_OBJS=sw_rast.o sw_backend.o sw_image.o
|
||||
|
||||
|
@ -1473,16 +1489,16 @@ ifeq ($(FTE_TARGET),cyg)
|
|||
GLCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) gl_vidlinuxglx.o snd_linux.o cd_null.o sys_linux.o sys_linux_threads.o
|
||||
GL_EXE_NAME=../$(EXE_NAME)-cyg-gl$(EXEPOSTFIX)
|
||||
GLCL_EXE_NAME=../$(EXE_NAME)-cyg-glcl$(EXEPOSTFIX)
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(OGGVORBISLDFLAGS) -lz -lltdl
|
||||
GL_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include $(SPEEXCFLAGS) $(LIBVORBISFILE_STATIC) -DUSE_LIBTOOL
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(CLIENTLDDEPS) -lz -lltdl
|
||||
GL_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include $(SPEEXCFLAGS) $(CLIENTLIBFLAGS) -DUSE_LIBTOOL
|
||||
GLB_DIR=gl_cygwin
|
||||
GLCL_DIR=glcl_cygwin
|
||||
|
||||
MCL_OBJS=$(D3DGL_OBJS) $(GLQUAKE_OBJS) $(SOFTWARE_OBJS) $(BOTLIB_OBJS) $(SPEEX_OBJS) gl_vidlinuxglx.o snd_linux.o cd_null.o sys_linux.o sys_linux_threads.o
|
||||
M_EXE_NAME=../$(EXE_NAME)-cyg$(EXEPOSTFIX)
|
||||
MCL_EXE_NAME=../$(EXE_NAME)-cyg-cl$(EXEPOSTFIX)
|
||||
M_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(OGGVORBISLDFLAGS) -lz -lltdl
|
||||
M_CFLAGS=$(GLCFLAGS) $(SPEEXCFLAGS) $(LIBVORBISFILE_STATIC) -DUSE_LIBTOOL
|
||||
M_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) $(CLIENTLDDEPS) -lz -lltdl
|
||||
M_CFLAGS=$(GLCFLAGS) $(SPEEXCFLAGS) $(CLIENTLIBFLAGS) -DUSE_LIBTOOL
|
||||
MB_DIR=m_cygwin
|
||||
MCL_DIR=mcl_cygwin
|
||||
|
||||
|
@ -1559,11 +1575,11 @@ ifeq ($(FTE_TARGET),web)
|
|||
GLB_DIR=gl_web
|
||||
GL_EXE_NAME=../ftewebgl.js
|
||||
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(OGGVORBISLDFLAGS)
|
||||
GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS)
|
||||
GL_CFLAGS=$(GLCFLAGS)
|
||||
|
||||
IMAGELDFLAGS=
|
||||
OGGVORBISLDFLAGS=
|
||||
CLIENTLDDEPS=
|
||||
|
||||
BOTLIB_CFLAGS=
|
||||
#generate deps properly
|
||||
|
@ -2111,7 +2127,9 @@ AR?=$(ARCH)-ar
|
|||
|
||||
CONFIGARGS+= -host=$(ARCH) --enable-shared=no CC="$(CC)"
|
||||
CONFIGARGS:= $(CONFIGARGS)
|
||||
#--disable-silent-rules
|
||||
#--disable-silent-rules
|
||||
|
||||
TOOLOVERRIDES+=CFLAGS="$$CFLAGS -Os"
|
||||
|
||||
|
||||
libs-$(ARCH)/libjpeg.a:
|
||||
|
@ -2130,11 +2148,16 @@ libs-$(ARCH)/libogg.a:
|
|||
test -f libogg-$(OGGVER).tar.gz || wget http://downloads.xiph.org/releases/ogg/libogg-$(OGGVER).tar.gz
|
||||
-test -f libs-$(ARCH)/libogg.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../libogg-$(OGGVER).tar.gz && cd libogg-$(OGGVER) && $(TOOLOVERRIDES) ./configure $(CONFIGARGS) && $(TOOLOVERRIDES) $(MAKE) && cp src/.libs/libogg.a ../ && $(TOOLOVERRIDES) $(AR) -s ../libogg.a && mkdir ../ogg && cp include/ogg/*.h ../ogg)
|
||||
|
||||
libs-$(ARCH)/libvorbis.a:
|
||||
libs-$(ARCH)/libvorbis.a: libs-$(ARCH)/libogg.a
|
||||
test -f libvorbis-$(VORBISVER).tar.gz || wget http://downloads.xiph.org/releases/vorbis/libvorbis-$(VORBISVER).tar.gz
|
||||
-test -f libs-$(ARCH)/libvorbisfile.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../libvorbis-$(VORBISVER).tar.gz && cd libvorbis-$(VORBISVER) && $(TOOLOVERRIDES) ./configure PKG_CONFIG= $(CONFIGARGS) --disable-oggtest --with-ogg-libraries=.. --with-ogg-includes=$(NATIVE_ABSBASE_DIR)/libs-$(ARCH)/libogg-$(OGGVER)/include && $(TOOLOVERRIDES) $(MAKE) && cp lib/.libs/libvorbis.a ../ && cp lib/.libs/libvorbisfile.a ../ && mkdir ../vorbis && cp include/vorbis/*.h ../vorbis)
|
||||
|
||||
makelibs: libs-$(ARCH)/libjpeg.a libs-$(ARCH)/libz.a libs-$(ARCH)/libpng.a libs-$(ARCH)/libogg.a libs-$(ARCH)/libvorbis.a
|
||||
libs-$(ARCH)/libopus.a:
|
||||
test -f opus-$(OPUSVER).tar.gz || wget https://archive.mozilla.org/pub/opus/opus-$(OPUSVER).tar.gz
|
||||
-test -f libs-$(ARCH)/libopus.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../opus-$(OPUSVER).tar.gz && cd opus-$(OPUSVER) && CFLAGS="$(CFLAGS) -Os" $(TOOLOVERRIDES) ./configure $(CONFIGARGS) && $(TOOLOVERRIDES) $(MAKE) && cp .libs/libopus.a ../ && cp include/opus*.h ../)
|
||||
|
||||
|
||||
makelibs: libs-$(ARCH)/libjpeg.a libs-$(ARCH)/libz.a libs-$(ARCH)/libpng.a libs-$(ARCH)/libogg.a libs-$(ARCH)/libvorbis.a libs-$(ARCH)/libopus.a
|
||||
|
||||
HTTP_OBJECTS=http/httpserver.c http/iwebiface.c common/fs_stdio.c
|
||||
$(RELEASE_DIR)/httpserver$(BITS): $(HTTP_OBJECTS)
|
||||
|
|
|
@ -5911,7 +5911,7 @@ void CL_ExecInitialConfigs(char *resetcommand)
|
|||
}
|
||||
else
|
||||
{ //they didn't give us an rc file!
|
||||
int cfg = COM_FDepthFile ("config.cfg", true);
|
||||
// int cfg = COM_FDepthFile ("config.cfg", true);
|
||||
int q3cfg = COM_FDepthFile ("q3config.cfg", true);
|
||||
// Cbuf_AddText ("bind ` toggleconsole\n", RESTRICT_LOCAL); //in case default.cfg does not exist. :(
|
||||
if (def!=FDEPTH_MISSING)
|
||||
|
|
|
@ -1015,17 +1015,28 @@ static void QCBUILTIN PF_R_AddEntity(pubprogfuncs_t *prinst, struct globalvars_s
|
|||
static void QCBUILTIN PF_R_RemoveEntity(pubprogfuncs_t *prinst, struct globalvars_s *pr_globals)
|
||||
{
|
||||
csqcedict_t *in = (void*)G_EDICT(prinst, OFS_PARM0);
|
||||
entity_t ent;
|
||||
int keynum, i;
|
||||
if (ED_ISFREE(in) || in->entnum == 0)
|
||||
{
|
||||
csqc_deprecated("Tried drawing a free/removed/world entity\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (CopyCSQCEdictToEntity(in, &ent))
|
||||
//work out the internal key that relates to the given ent. we'll remove all ents with the same key.
|
||||
if (in->xv->entnum && !in->xv->camera_transform) //yes, camera_transform is this hacky
|
||||
keynum = in->xv->entnum;
|
||||
else
|
||||
keynum = -in->entnum;
|
||||
|
||||
for (i = 0; i < cl_numvisedicts; )
|
||||
{
|
||||
CLQ1_AddShadow(&ent);
|
||||
V_AddAxisEntity(&ent);
|
||||
if (cl_visedicts[i].keynum == keynum)
|
||||
{
|
||||
cl_numvisedicts--;
|
||||
memmove(&cl_visedicts[i], &cl_visedicts[i+1], sizeof(*cl_visedicts)*(cl_numvisedicts-i));
|
||||
}
|
||||
else
|
||||
i++;
|
||||
}
|
||||
}
|
||||
void CL_AddDecal(shader_t *shader, vec3_t origin, vec3_t up, vec3_t side, vec3_t rgbvalue, float alphavalue);
|
||||
|
@ -6052,7 +6063,7 @@ static struct {
|
|||
{"clearscene", PF_R_ClearScene, 300}, // #300 void() clearscene (EXT_CSQC)
|
||||
{"addentities", PF_R_AddEntityMask, 301}, // #301 void(float mask) addentities (EXT_CSQC)
|
||||
{"addentity", PF_R_AddEntity, 302}, // #302 void(entity ent) addentity (EXT_CSQC)
|
||||
// {"removeentity", PF_R_RemoveEntity, 0},
|
||||
{"removeentity", PF_R_RemoveEntity, 0},
|
||||
{"setproperty", PF_R_SetViewFlag, 303}, // #303 float(float property, ...) setproperty (EXT_CSQC)
|
||||
{"renderscene", PF_R_RenderScene, 304}, // #304 void() renderscene (EXT_CSQC)
|
||||
|
||||
|
|
|
@ -2297,6 +2297,7 @@ static qboolean CModRBSP_LoadVertexes (model_t *mod, qbyte *mod_base, lump_t *l)
|
|||
vec2_t *lmout, *stout;
|
||||
vec4_t *cout;
|
||||
int sty;
|
||||
extern qbyte lmgamma[256];
|
||||
|
||||
in = (void *)(mod_base + l->fileofs);
|
||||
if (l->filelen % sizeof(*in))
|
||||
|
@ -2346,10 +2347,10 @@ static qboolean CModRBSP_LoadVertexes (model_t *mod, qbyte *mod_base, lump_t *l)
|
|||
}
|
||||
for (sty = 0; sty < MAXRLIGHTMAPS; sty++)
|
||||
{
|
||||
for ( j=0 ; j < 4 ; j++)
|
||||
{
|
||||
prv->colors4f_array[sty][i][j] = in->color[sty][j]/255.0f;
|
||||
}
|
||||
prv->colors4f_array[sty][i][0] = lmgamma[in->color[sty][0]]/255.0f;
|
||||
prv->colors4f_array[sty][i][1] = lmgamma[in->color[sty][1]]/255.0f;
|
||||
prv->colors4f_array[sty][i][2] = lmgamma[in->color[sty][2]]/255.0f;
|
||||
prv->colors4f_array[sty][i][3] = in->color[sty][3]/255.0f;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,8 +34,28 @@ void PF_buf_shutdown(pubprogfuncs_t *prinst);
|
|||
|
||||
void skel_info_f(void);
|
||||
void skel_generateragdoll_f(void);
|
||||
|
||||
#ifdef __SSE2__
|
||||
#include "xmmintrin.h"
|
||||
#endif
|
||||
|
||||
void PF_Common_RegisterCvars(void)
|
||||
{
|
||||
#ifndef QUAKETC
|
||||
#ifdef __SSE2__
|
||||
//disable FTZ and DAZ, in case some compiler left them on...
|
||||
unsigned int mxcsr = _mm_getcsr();
|
||||
if (mxcsr & 0x8040)
|
||||
{
|
||||
if (COM_CheckParm("-nodaz"))
|
||||
{
|
||||
Con_Printf("Disabling DAZ. This may have performance implications.\n");
|
||||
_mm_setcsr(mxcsr & ~(0x8040));
|
||||
}
|
||||
else
|
||||
Con_Printf(CON_WARNING "WARNING: denormalised floats are disabled. Use -nodaz to re-enable if mods malfunction\n");
|
||||
}
|
||||
#else
|
||||
volatile union
|
||||
{
|
||||
int i;
|
||||
|
@ -45,6 +65,8 @@ void PF_Common_RegisterCvars(void)
|
|||
b.i = 1;
|
||||
if (!(a.f && b.f))
|
||||
Con_Printf(CON_WARNING "WARNING: denormalised floats are disabled. Some mods might may malfunction\n");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
Cvar_Register (&sv_gameplayfix_blowupfallenzombies, cvargroup_progs);
|
||||
|
|
|
@ -214,6 +214,7 @@ typedef struct
|
|||
|
||||
int mipfilter[3];
|
||||
int picfilter[3];
|
||||
D3DSAMPLERSTATETYPE anisfilter;
|
||||
} d3dbackend_t;
|
||||
|
||||
typedef struct
|
||||
|
@ -290,17 +291,17 @@ static void BE_ApplyTMUState(unsigned int tu, unsigned int flags)
|
|||
int *filter = (flags & SHADER_PASS_UIPIC)?shaderstate.picfilter:shaderstate.mipfilter;
|
||||
|
||||
if ((filter[2] && !(flags & SHADER_PASS_NEAREST)) || (flags & SHADER_PASS_LINEAR))
|
||||
mag = D3DTEXF_ANISOTROPIC;//D3DTEXF_LINEAR;
|
||||
mag = shaderstate.anisfilter;
|
||||
else
|
||||
mag = D3DTEXF_POINT;
|
||||
if (filter[1] == -1 || (flags & IF_NOMIPMAP))
|
||||
mip = D3DTEXF_NONE;
|
||||
else if ((filter[1] && !(flags & SHADER_PASS_NEAREST)) || (flags & SHADER_PASS_LINEAR))
|
||||
mip = D3DTEXF_ANISOTROPIC;//D3DTEXF_LINEAR;
|
||||
mip = D3DTEXF_LINEAR;
|
||||
else
|
||||
mip = D3DTEXF_POINT;
|
||||
if ((filter[0] && !(flags & SHADER_PASS_NEAREST)) || (flags & SHADER_PASS_LINEAR))
|
||||
min = D3DTEXF_ANISOTROPIC;//D3DTEXF_LINEAR;
|
||||
min = shaderstate.anisfilter;
|
||||
else
|
||||
min = D3DTEXF_POINT;
|
||||
|
||||
|
@ -317,13 +318,21 @@ void D3D9_UpdateFiltering(image_t *imagelist, int filtermip[3], int filterpic[3]
|
|||
int i;
|
||||
memcpy(shaderstate.mipfilter, filtermip, sizeof(shaderstate.mipfilter));
|
||||
memcpy(shaderstate.picfilter, filterpic, sizeof(shaderstate.picfilter));
|
||||
if (anis <= 1)
|
||||
{
|
||||
anis = 1;
|
||||
shaderstate.anisfilter = D3DTEXF_LINEAR;
|
||||
}
|
||||
else
|
||||
shaderstate.anisfilter = D3DTEXF_ANISOTROPIC;
|
||||
|
||||
for (i = 0; i < MAX_TMUS; i++)
|
||||
{
|
||||
shaderstate.tmuflags[i] = ~shaderstate.tmuflags[i];
|
||||
BE_ApplyTMUState(i, ~shaderstate.tmuflags[i]);
|
||||
|
||||
IDirect3DDevice9_SetSamplerState(pD3DDev9, i, D3DSAMP_MAXANISOTROPY, anis);
|
||||
// IDirect3DDevice9_SetSamplerState(pD3DDev9, i, D3DSAMP_MIPMAPLODBIAS, 0); //negative lod bias? :s
|
||||
|
||||
// shaderstate.tmuflags[i] = ~shaderstate.tmuflags[i];
|
||||
BE_ApplyTMUState(i, ~shaderstate.tmuflags[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1440,7 +1449,7 @@ static void GenerateTCMods3(const shaderpass_t *pass, float *dest)
|
|||
mesh_t *mesh;
|
||||
unsigned int mno;
|
||||
// unsigned int fvertex = 0; //unused variable
|
||||
int i;
|
||||
// int i;
|
||||
float *src;
|
||||
float *out;
|
||||
for (mno = 0; mno < shaderstate.nummeshes; mno++)
|
||||
|
|
|
@ -1712,24 +1712,49 @@ struct font_s *Font_LoadFont(float vheight, const char *fontfilename)
|
|||
COM_WorkerPartialSync(f->singletexture, &f->singletexture->status, TEX_LOADING);
|
||||
}
|
||||
|
||||
for ( ; i < 32; i++)
|
||||
//halflife fonts are awkward. 256 chars are placed horizontally, and are 2 chars narrower than the height.
|
||||
//FIXME: we ought to reprocess the image, for old gpus to avoid downscaling...
|
||||
/*if (f->singletexture && f->singletexture->status == TEX_LOADED && f->singletexture->width == (f->singletexture->height-2) * 256)
|
||||
{
|
||||
// f->chars[i].texplane = INVALIDPLANE;
|
||||
}
|
||||
/*force it to load, even if there's nothing there*/
|
||||
for ( ; i < 128; i++)
|
||||
{
|
||||
c = Font_GetCharStore(f, i);
|
||||
f->txwidth = f->singletexture->width;
|
||||
f->txheight = f->singletexture->height;
|
||||
for ( ; i < 256; i++)
|
||||
{
|
||||
c = Font_GetCharStore(f, i);
|
||||
|
||||
c->advance = f->charheight;
|
||||
c->bmh = PLANEWIDTH/16;
|
||||
c->bmw = PLANEWIDTH/16;
|
||||
c->bmx = (i&15)*(PLANEWIDTH/16);
|
||||
c->bmy = (i/16)*(PLANEWIDTH/16);
|
||||
c->left = 0;
|
||||
c->top = 0;
|
||||
c->nextchar = 0; //these chars are not linked in
|
||||
c->texplane = BITMAPPLANE;
|
||||
c->advance = f->charheight;
|
||||
c->bmh = f->singletexture->height;
|
||||
c->bmw = f->singletexture->height-2;
|
||||
c->bmx = i*(f->singletexture->height-2);
|
||||
c->bmy = 0;
|
||||
c->left = 0;
|
||||
c->top = 0;
|
||||
c->nextchar = 0; //these chars are not linked in
|
||||
c->texplane = BITMAPPLANE;
|
||||
}
|
||||
return f; //fixme: no 0xe0XX range
|
||||
}
|
||||
else*/
|
||||
{
|
||||
for ( ; i < 32; i++)
|
||||
{
|
||||
// f->chars[i].texplane = INVALIDPLANE;
|
||||
}
|
||||
/*force it to load, even if there's nothing there*/
|
||||
for ( ; i < 128; i++)
|
||||
{
|
||||
c = Font_GetCharStore(f, i);
|
||||
|
||||
c->advance = f->charheight;
|
||||
c->bmh = PLANEWIDTH/16;
|
||||
c->bmw = PLANEWIDTH/16;
|
||||
c->bmx = (i&15)*(PLANEWIDTH/16);
|
||||
c->bmy = (i/16)*(PLANEWIDTH/16);
|
||||
c->left = 0;
|
||||
c->top = 0;
|
||||
c->nextchar = 0; //these chars are not linked in
|
||||
c->texplane = BITMAPPLANE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2108,7 +2133,8 @@ void Font_InvalidateColour(vec4_t newcolour)
|
|||
|
||||
if (font_colourmask & CON_NONCLEARBG)
|
||||
{
|
||||
Font_Flush();
|
||||
if (R2D_Flush)
|
||||
R2D_Flush();
|
||||
R2D_Flush = Font_Flush;
|
||||
}
|
||||
font_colourmask = CON_WHITEMASK;
|
||||
|
|
|
@ -3093,10 +3093,15 @@ QCC_sref_t QCC_PR_StatementFlags ( QCC_opcode_t *op, QCC_sref_t var_a, QCC_sref_
|
|||
case OP_ADD_EF:
|
||||
case OP_SUB_EF:
|
||||
if (flag_qccx) //no implicit cast. qccx always uses denormalised floats everywhere.
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "OP_ADD_EF: qccx entity offsets are unsafe, and denormals have limited precision");
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "OP_ADD_EF: qccx entity offsets are unsafe, and denormals are unsafe");
|
||||
else if (1)
|
||||
{ //slightly better defined.
|
||||
var_b = QCC_PR_StatementFlags(&pr_opcodes[OP_CONV_FTOI], var_b, nullsref, NULL, (flags&STFL_PRESERVEB)?STFL_PRESERVEA:0);
|
||||
return QCC_PR_StatementFlags(&pr_opcodes[(op==&pr_opcodes[OP_ADD_EF])?OP_ADD_EI:OP_SUB_EI], var_a, var_b, NULL, flags&STFL_PRESERVEA);
|
||||
}
|
||||
else
|
||||
{
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "OP_ADD_EF: denormals have limited precision");
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "OP_ADD_EF: denormals are unsafe");
|
||||
var_c = QCC_PR_GetSRef(NULL, "nextent", NULL, false, 0, false);
|
||||
if (!var_c.cast)
|
||||
QCC_PR_ParseError(0, "the nextent builtin is not defined");
|
||||
|
@ -3105,7 +3110,7 @@ QCC_sref_t QCC_PR_StatementFlags ( QCC_opcode_t *op, QCC_sref_t var_a, QCC_sref_
|
|||
var_b = QCC_PR_StatementFlags(&pr_opcodes[OP_MUL_F], var_c, var_b, NULL, 0);
|
||||
flags&=~STFL_PRESERVEB;
|
||||
}
|
||||
var_c = QCC_PR_StatementFlags(&pr_opcodes[(op==&pr_opcodes[OP_ADD_EF])?OP_ADD_F:OP_SUB_F], var_a, var_b, NULL, flags);
|
||||
var_c = QCC_PR_StatementFlags(&pr_opcodes[(op==&pr_opcodes[OP_ADD_EF])?OP_ADD_IF:OP_SUB_F], var_a, var_b, NULL, flags);
|
||||
var_c.cast = type_entity;
|
||||
return var_c;
|
||||
|
||||
|
@ -3346,8 +3351,8 @@ QCC_sref_t QCC_PR_StatementFlags ( QCC_opcode_t *op, QCC_sref_t var_a, QCC_sref_
|
|||
var_c = QCC_PR_GetSRef(NULL, "itof", NULL, false, 0, 0);
|
||||
if (!var_c.cast)
|
||||
{
|
||||
//with denormals, 5 * 1i -> 5i
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "itof emulation: denormals have limited precision");
|
||||
//with denormals, 5.0 * 1i -> 5i, and 5i / 1i = 5.0
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "itof emulation: denormals are unsafe");
|
||||
var_a = QCC_PR_StatementFlags(&pr_opcodes[OP_DIV_F], var_a, QCC_MakeIntConst(1), NULL, 0);
|
||||
}
|
||||
else
|
||||
|
@ -3373,7 +3378,7 @@ QCC_sref_t QCC_PR_StatementFlags ( QCC_opcode_t *op, QCC_sref_t var_a, QCC_sref_
|
|||
if (!var_c.cast)
|
||||
{
|
||||
//with denormals, 5 * 1i -> 5i
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "ftoi emulation: denormals have limited precision");
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "ftoi emulation: denormals are unsafe");
|
||||
var_a = QCC_PR_StatementFlags(&pr_opcodes[OP_MUL_F], var_a, QCC_MakeIntConst(1), NULL, 0);
|
||||
}
|
||||
else
|
||||
|
@ -5962,14 +5967,14 @@ QCC_sref_t QCC_PR_ParseFunctionCall (QCC_ref_t *funcref) //warning, the func cou
|
|||
|
||||
e = QCC_PR_Expression(TOP_PRIORITY, EXPR_DISALLOW_COMMA);
|
||||
QCC_PR_Expect(")");
|
||||
e = QCC_PR_StatementFlags(&pr_opcodes[OP_DIV_F], e, QCC_MakeIntConst(1), NULL, 0);
|
||||
e = QCC_PR_StatementFlags(&pr_opcodes[OP_DIV_I], e, QCC_MakeIntConst(1), NULL, 0);
|
||||
d = QCC_PR_GetSRef(NULL, "nextent", NULL, false, 0, false);
|
||||
if (!d.cast)
|
||||
QCC_PR_ParseError(0, "the nextent builtin is not defined");
|
||||
QCC_UnFreeTemp(e);
|
||||
d = QCC_PR_GenerateFunctionCall1 (nullsref, d, e, type_entity);
|
||||
d = QCC_PR_StatementFlags(&pr_opcodes[OP_DIV_F], d, QCC_MakeIntConst(1), NULL, 0);
|
||||
e = QCC_PR_StatementFlags(&pr_opcodes[OP_DIV_F], e, d, NULL, 0);
|
||||
d = QCC_PR_StatementFlags(&pr_opcodes[OP_DIV_I], d, QCC_MakeIntConst(1), NULL, 0);
|
||||
e = QCC_PR_StatementFlags(&pr_opcodes[OP_DIV_I], e, d, NULL, 0);
|
||||
|
||||
return e;
|
||||
}
|
||||
|
@ -6997,7 +7002,7 @@ QCC_ref_t *QCC_PR_ParseRefArrayPointer (QCC_ref_t *retbuf, QCC_ref_t *r, pbool a
|
|||
QCC_sref_t base = QCC_RefToDef(r, true);
|
||||
if (tmp.cast && tmp.cast->type == ev_float)
|
||||
{
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "string offsetting emulation: denormals have limited precision");
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "string offsetting emulation: denormals are unsafe");
|
||||
idx = QCC_PR_Statement(&pr_opcodes[OP_ADD_F], base, QCC_SupplyConversion(tmp, ev_float, true), NULL);
|
||||
}
|
||||
else
|
||||
|
@ -8655,7 +8660,7 @@ QCC_sref_t QCC_LoadFromArray(QCC_sref_t base, QCC_sref_t index, QCC_type_t *t, p
|
|||
return QCC_PR_StatementFlags(&pr_opcodes[OP_ADD_I], base, index, NULL, 0);
|
||||
else
|
||||
{
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "using denormals to accelerate field-array access");
|
||||
QCC_PR_ParseWarning(WARN_DENORMAL, "using denormals to accelerate field-array access, which is unsafe");
|
||||
return QCC_PR_StatementFlags(&pr_opcodes[OP_ADD_F], base, QCC_PR_StatementFlags(&pr_opcodes[OP_MUL_F], index, QCC_MakeIntConst(1), NULL, 0), NULL, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4438,20 +4438,21 @@ void QCC_SetDefaultProperties (void)
|
|||
qccwarningaction[i] = WA_ERROR;
|
||||
|
||||
//play with default warnings.
|
||||
qccwarningaction[WARN_NOTREFERENCEDCONST] = WA_IGNORE;
|
||||
qccwarningaction[WARN_MACROINSTRING] = WA_IGNORE;
|
||||
// qccwarningaction[WARN_ASSIGNMENTTOCONSTANT] = WA_IGNORE;
|
||||
qccwarningaction[WARN_EXTRAPRECACHE] = WA_IGNORE;
|
||||
qccwarningaction[WARN_DEADCODE] = WA_IGNORE;
|
||||
qccwarningaction[WARN_FTE_SPECIFIC] = WA_IGNORE;
|
||||
qccwarningaction[WARN_EXTENSION_USED] = WA_IGNORE;
|
||||
qccwarningaction[WARN_IFSTRING_USED] = WA_IGNORE;
|
||||
qccwarningaction[WARN_CORRECTEDRETURNTYPE] = WA_IGNORE;
|
||||
qccwarningaction[WARN_NOTUTF8] = WA_IGNORE;
|
||||
qccwarningaction[WARN_UNINITIALIZED] = WA_IGNORE; //not sure about this being ignored by default.
|
||||
qccwarningaction[WARN_SELFNOTTHIS] = WA_IGNORE;
|
||||
qccwarningaction[WARN_EVILPREPROCESSOR] = WA_WARN;//FIXME: make into WA_ERROR;
|
||||
qccwarningaction[WARN_IDENTICALPRECOMPILER] = WA_IGNORE;
|
||||
qccwarningaction[WARN_NOTREFERENCEDCONST] = WA_IGNORE;
|
||||
qccwarningaction[WARN_MACROINSTRING] = WA_IGNORE;
|
||||
// qccwarningaction[WARN_ASSIGNMENTTOCONSTANT] = WA_IGNORE;
|
||||
qccwarningaction[WARN_EXTRAPRECACHE] = WA_IGNORE;
|
||||
qccwarningaction[WARN_DEADCODE] = WA_IGNORE;
|
||||
qccwarningaction[WARN_FTE_SPECIFIC] = WA_IGNORE;
|
||||
qccwarningaction[WARN_EXTENSION_USED] = WA_IGNORE;
|
||||
qccwarningaction[WARN_IFSTRING_USED] = WA_IGNORE;
|
||||
qccwarningaction[WARN_CORRECTEDRETURNTYPE] = WA_IGNORE;
|
||||
qccwarningaction[WARN_NOTUTF8] = WA_IGNORE;
|
||||
qccwarningaction[WARN_UNINITIALIZED] = WA_IGNORE; //not sure about this being ignored by default.
|
||||
qccwarningaction[WARN_SELFNOTTHIS] = WA_IGNORE;
|
||||
qccwarningaction[WARN_EVILPREPROCESSOR] = WA_ERROR; //evil people do evil things. evil must be thwarted!
|
||||
qccwarningaction[WARN_IDENTICALPRECOMPILER] = WA_IGNORE;
|
||||
qccwarningaction[WARN_DENORMAL] = WA_ERROR; //DAZ provides a speedup on modern machines, so any engine compiled for sse2+ will have problems with denormals, so make their use look serious.
|
||||
|
||||
if (qcc_targetformat == QCF_HEXEN2 || qcc_targetformat == QCF_FTEH2)
|
||||
qccwarningaction[WARN_CASEINSENSITIVEFRAMEMACRO] = WA_IGNORE; //hexenc consides these fair game.
|
||||
|
|
|
@ -10276,7 +10276,7 @@ BuiltinList_t BuiltinList[] = { //nq qw h2 ebfs
|
|||
{"pointerstat", PF_pointerstat, 0, 0, 0, 0, D("void(float num, float type, __variant *address)", "Specifies what data to use in order to send various stats, in a non-client-specific way. num and type are as in clientstat, address however, is the address of the variable you would like to use (pass &foo).")},
|
||||
//END EXT_CSQC
|
||||
{"isbackbuffered", PF_isbackbuffered, 0, 0, 0, 234, D("float(entity player)", "Returns if the given player's network buffer will take multiple network frames in order to clear. If this builtin returns non-zero, you should delay or reduce the amount of reliable (and also unreliable) data that you are sending to that client.")},
|
||||
{"rotatevectorsbyangle",PF_rotatevectorsbyangles,0,0, 0, 235, "void(vector angle)"}, // #235
|
||||
{"rotatevectorsbyangle",PF_rotatevectorsbyangles,0,0, 0, 235, D("void(vector angle)", "rotates the v_forward,v_right,v_up matrix by the specified angles.")}, // #235
|
||||
{"rotatevectorsbyvectors",PF_rotatevectorsbymatrix,0,0, 0, 236, "void(vector fwd, vector right, vector up)"}, // #236
|
||||
{"skinforname", PF_skinforname, 0, 0, 0, 237, "float(float mdlindex, string skinname)"}, // #237
|
||||
{"shaderforname", PF_Fixme, 0, 0, 0, 238, D("float(string shadername, optional string defaultshader, ...)", "Caches the named shader and returns a handle to it.\nIf the shader could not be loaded from disk (missing file or ruleset_allow_shaders 0), it will be created from the 'defaultshader' string if specified, or a 'skin shader' default will be used.\ndefaultshader if not empty should include the outer {} that you would ordinarily find in a shader.")},
|
||||
|
@ -10387,7 +10387,7 @@ BuiltinList_t BuiltinList[] = { //nq qw h2 ebfs
|
|||
{"clearscene", PF_Fixme, 0, 0, 0, 300, D("void()", "Forgets all rentities, polygons, and temporary dlights. Resets all view properties to their default values.")},// (EXT_CSQC)
|
||||
{"addentities", PF_Fixme, 0, 0, 0, 301, D("void(float mask)", "Walks through all entities effectively doing this:\n if (ent.drawmask&mask){ if (!ent.predaw()) addentity(ent); }\nIf mask&MASK_DELTA, non-csqc entities, particles, and related effects will also be added to the rentity list.\n If mask&MASK_STDVIEWMODEL then the default view model will also be added.")},// (EXT_CSQC)
|
||||
{"addentity", PF_Fixme, 0, 0, 0, 302, D("void(entity ent)", "Copies the entity fields into a new rentity for later rendering via addscene.")},// (EXT_CSQC)
|
||||
{"removeentity", PF_Fixme, 0, 0, 0, 0, D("void(entity ent)", "Undoes all addentities with that entity, without removing ALL entities (useful for splitscreen).")},// (EXT_CSQC)
|
||||
{"removeentity", PF_Fixme, 0, 0, 0, 0, D("void(entity ent)", "Undoes all addentities added to the scene from the given entity, without removing ALL entities (useful for splitscreen/etc, readd modified versions as desired).")},// (EXT_CSQC)
|
||||
{"addtrisoup_simple",PF_Fixme, 0, 0, 0, 0, D("typedef float vec2[2];\ntypedef float vec3[3];\ntypedef float vec4[4];\ntypedef struct trisoup_simple_vert_s {vec3 xyz;vec2 st;vec4 rgba;} trisoup_simple_vert_t;\nvoid(string texturename, int flags, struct trisoup_simple_vert_s *verts, int *indexes, int numindexes)", "Adds the specified trisoup into the scene as additional geometry. This permits caching geometry to reduce builtin spam. Indexes are a triangle list (so eg quads will need 6 indicies to form two triangles). NOTE: this is not going to be a speedup over polygons if you're still generating lots of new data every frame.")},
|
||||
{"setproperty", PF_Fixme, 0, 0, 0, 303, D("#define setviewprop setproperty\nfloat(float property, ...)", "Allows you to override default view properties like viewport, fov, and whether the engine hud will be drawn. Different VF_ values have slightly different arguments, some are vectors, some floats.")},// (EXT_CSQC)
|
||||
{"renderscene", PF_Fixme, 0, 0, 0, 304, D("void()", "Draws all entities, polygons, and particles on the rentity list (which were added via addentities or addentity), using the various view properties set via setproperty. There is no ordering dependancy.\nThe scene must generally be cleared again before more entities are added, as entities will persist even over to the next frame.\nYou may call this builtin multiple times per frame, but should only be called from CSQC_UpdateView.")},// (EXT_CSQC)
|
||||
|
|
Loading…
Reference in a new issue