diff --git a/engine/Makefile b/engine/Makefile index 5655f95cb..7eb07184d 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -78,7 +78,7 @@ ifneq (,$(BRANDING)) -include game_$(BRANDING).mak endif ifneq (,$(FTE_CONFIG)) - export FTE_CONFIG_EXTRA:=$(shell $(CC) -xc -E -P -DCOMPILE_OPTS common/config_$(FTE_CONFIG).h) + export FTE_CONFIG_EXTRA:=$(shell $(CC) -xc -E -P -DFTE_TARGET_$(FTE_TARGET) -DCOMPILE_OPTS common/config_$(FTE_CONFIG).h) BRANDFLAGS+=-DCONFIG_FILE_NAME=config_$(FTE_CONFIG).h $(FTE_CONFIG_EXTRA) EXE_NAME=$(FTE_CONFIG) endif @@ -94,9 +94,13 @@ endif ifeq (,$(findstring DNO_VORBISFILE,$(FTE_CONFIG_EXTRA))) USE_VORBISFILE=1 endif -#ifeq (,$(findstring DNO_FREETYPE,$(FTE_CONFIG_EXTRA))) -# USE_FREETYPE=1 -#endif +ifneq (,$(findstring DLINK_FREETYPE,$(FTE_CONFIG_EXTRA))) + LINK_FREETYPE=1 + LINK_PNG=1 +endif +ifneq (,$(findstring DLINK_PNG,$(FTE_CONFIG_EXTRA))) + LINK_PNG=1 +endif ifneq (,$(findstring -Os,$(FTE_CONFIG_EXTRA))) CPUOPTIMIZATIONS+=-Os BRANDFLAGS:=$(filter-out -O%,$(BRANDFLAGS)) @@ -185,6 +189,7 @@ ANT?=ant JAVA_HOME?=/usr JAVATOOL=$(JAVA_HOME)/bin/ ANDROID_SCRIPT=android +DO_CMAKE=cmake -DCMAKE_C_COMPILER="$(firstword $(CC))" -DCMAKE_C_FLAGS="$(wordlist 2,99,$(CC)) $(CPUOPTIMIZATIONS)" -DCMAKE_CXX_COMPILER="$(firstword $(CXX))" -DCMAKE_CXX_FLAGS="$(wordlist 2,99,$(CXX)) $(CPUOPTIMIZATIONS)" ifeq ($(DROID_ARCH),) #armeabi armeabi-v7a arm64-v8a x86 x86_64 mips mips64 @@ -871,10 +876,14 @@ else OGGVORBISLDFLAGS= OGGVORBISFILE_STATIC= endif -ifeq (1,$(USE_FREETYPE)) +ifeq (1,$(LINK_FREETYPE)) LIBFREETYPE_STATIC=-DFREETYPE_STATIC LIBFREETYPE_LDFLAGS=-lfreetype endif +ifeq (1,$(LINK_PNG)) + LIBFREETYPE_STATIC=-DAVAIL_PNG + LIBFREETYPE_LDFLAGS=-lpng +endif ifeq (1,$(strip $(INTERNAL_BULLET))) COMMON_OBJS+=com_phys_bullet.o ALL_CFLAGS+=-I/usr/include/bullet -I$(ARCHLIBS)/bullet3-$(BULLETVER)/src @@ -910,9 +919,9 @@ ifdef windir M_LDFLAGS=$(MLDFLAGS) -lmingw32 -lws2_32 `$(SDLCONFIG) --static-libs` SV_LDFLAGS=`$(SDLCONFIG) --static-libs` else - GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS) `$(SDLCONFIG) --static-libs` - VK_LDFLAGS=$(VKLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS) `$(SDLCONFIG) --static-libs` - M_LDFLAGS=$(MLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS) `$(SDLCONFIG) --static-libs` + GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(SDLCONFIG) --static-libs` + VK_LDFLAGS=$(VKLDFLAGS) $(IMAGELDFLAGS) `$(SDLCONFIG) --static-libs` + M_LDFLAGS=$(MLDFLAGS) $(IMAGELDFLAGS) `$(SDLCONFIG) --static-libs` SV_LDFLAGS=`$(SDLCONFIG) --static-libs` endif GL_CFLAGS=-DFTE_SDL $(GLCFLAGS) `$(SDLCONFIG) --cflags` @@ -955,6 +964,7 @@ endif #google native client ifeq ($(FTE_TARGET),nacl) CLIENTLDDEPS= + SERVERLDDEPS= NARCH ?= x86_32 ifeq ($(shell uname -o 2>&1 | grep Cygwin),) @@ -1006,8 +1016,8 @@ ifeq ($(FTE_TARGET),nacl) GLCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) sys_ppapi.o cd_null.o gl_vidppapi.o fs_ppapi.o snd_ppapi.o - GL_LDFLAGS=$(GLLDFLAGS) $(CLIENTLDDEPS) - M_LDFLAGS=$(GLLDFLAGS) $(CLIENTLDDEPS) + GL_LDFLAGS=$(GLLDFLAGS) + M_LDFLAGS=$(GLLDFLAGS) GLB_DIR=gl_nacl_$(NARCH) MINGL_DIR=mingl_nacl_$(NARCH) @@ -1025,6 +1035,7 @@ endif #FTE_TARGET=win32_SDL | FTE_TARGET=win64_SDL (MinGW32 + SDL | MinGW64 + SDL) ifeq (win_SDL,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET))) LIBS_DIR=./libs + DO_CMAKE+=-DCMAKE_SYSTEM_NAME=Windows -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="NEVER" ifneq (,$(findstring win64,$(FTE_TARGET))) BITS=64 @@ -1048,9 +1059,9 @@ 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) $(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` + GL_LDFLAGS=$(IMAGELDFLAGS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32 $(GLLDFLAGS) `$(SDLCONFIG) --libs` + VK_LDFLAGS=$(IMAGELDFLAGS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32 $(GLLDFLAGS) `$(SDLCONFIG) --libs` + M_LDFLAGS=$(IMAGELDFLAGS) -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 @@ -1079,7 +1090,7 @@ ifeq (win_SDL,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET))) D3DCL_OBJS=$(D3DQUAKE_OBJS) $(BOTLIB_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) $(CLIENTLDDEPS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32 + D3D_LDFLAGS=$(IMAGELDFLAGS) -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) D3DB_DIR=sdl_d3d_mgw$(BITS) D3DCL_DIR=sdl_d3dcl_mgw$(BITS) @@ -1204,6 +1215,9 @@ endif #FTE_TARGET=win32 | FTE_TARGET=win64 (MinGW32 | MinGW64) ifeq (win,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET))) # The extra object file called resources.o is specific for MinGW to link the icon in +# DO_CMAKE+=-DCMAKE_SYSTEM_NAME=Windows -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="NEVER" + + DO_CMAKE=cmake -DCMAKE_TOOLCHAIN_FILE=/home/spike/fteqw/fteqw-code/cmakesucks.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_C_COMPILER="$(firstword $(CC))" -DCMAKE_C_FLAGS="$(wordlist 2,99,$(CC))" -DCMAKE_CXX_COMPILER="$(firstword $(CXX))" -DCMAKE_CXX_FLAGS="$(wordlist 2,99,$(CXX))" #cygwin's gcc requires an extra command to use mingw instead of cygwin (default paths, etc). ifneq ($(shell $(CC) -dumpmachine 2>&1 | grep cygwin),) @@ -1238,7 +1252,7 @@ ifeq (win,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET))) GLCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) gl_vidnt.o $(WINDOWS_OBJS) GL_EXE_NAME=../fteglqw$(BITS)$(EXEPOSTFIX) GLCL_EXE_NAME=../fteglqwcl$(BITS)$(EXEPOSTFIX) - GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows + GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows GL_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) $(DX7SDK) -DMULTITHREAD $(CLIENTLIBFLAGS) GLB_DIR=gl_mgw$(BITS) GLCL_DIR=glcl_mgw$(BITS) @@ -1252,7 +1266,7 @@ ifeq (win,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET))) MCL_OBJS=$(D3DGL_OBJS) $(GLQUAKE_OBJS) $(SOFTWARE_OBJS) $(D3DQUAKE_OBJS) $(BOTLIB_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) $(CLIENTLDDEPS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows + M_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows M_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) $(D3DCFLAGS) $(DX7SDK) $(VKCFLAGS) -DMULTITHREAD $(CLIENTLIBFLAGS) MB_DIR=m_mgw$(BITS) MCL_DIR=mcl_mgw$(BITS) @@ -1260,7 +1274,7 @@ ifeq (win,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET))) D3DCL_OBJS=$(D3DQUAKE_OBJS) $(D3DGL_OBJS) $(BOTLIB_OBJS) $(WINDOWS_OBJS) D3D_EXE_NAME=../fted3dqw$(BITS)$(EXEPOSTFIX) D3DCL_EXE_NAME=../fted3dclqw$(BITS)$(EXEPOSTFIX) - D3D_LDFLAGS=$(IMAGELDFLAGS) $(CLIENTLDDEPS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows + D3D_LDFLAGS=$(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows D3D_CFLAGS=$(D3DCFLAGS) $(W32_CFLAGS) $(DX7SDK) -DMULTITHREAD $(CLIENTLIBFLAGS) D3DB_DIR=d3d_mgw$(BITS) D3DCL_DIR=d3dcl_mgw$(BITS) @@ -1268,7 +1282,7 @@ ifeq (win,$(findstring win,$(FTE_TARGET))$(findstring _SDL,$(FTE_TARGET))) VKCL_OBJS=$(GLQUAKE_OBJS) $(D3DGL_OBJS) $(BOTLIB_OBJS) $(WINDOWS_OBJS) gl_vidnt.o VK_EXE_NAME=../ftevkqw$(BITS)$(EXEPOSTFIX) VKCL_EXE_NAME=../ftevkclqw$(BITS)$(EXEPOSTFIX) - VK_LDFLAGS=$(IMAGELDFLAGS) $(CLIENTLDDEPS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows + VK_LDFLAGS=$(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -Wl,--subsystem,windows VK_CFLAGS=$(VKCFLAGS) $(W32_CFLAGS) $(DX7SDK) -DMULTITHREAD $(CLIENTLIBFLAGS) VKB_DIR=vk_mgw$(BITS) VKCL_DIR=vkcl_mgw$(BITS) @@ -1358,7 +1372,7 @@ ifneq (,$(findstring linux,$(FTE_TARGET))) GLCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) gl_vidlinuxglx.o gl_vidwayland.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) $(CLIENTLDDEPS) + GL_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) GL_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include $(CL_CFLAGS) $(CLIENTLIBFLAGS) GLB_DIR=gl_linux$(BITS) GLCL_DIR=glcl_linux$(BITS) @@ -1366,7 +1380,7 @@ ifneq (,$(findstring linux,$(FTE_TARGET))) VKCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_OBJS) gl_vidlinuxglx.o gl_vidwayland.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) $(CLIENTLDDEPS) + VK_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) VK_CFLAGS=$(VKCFLAGS) -I/usr/X11R6/include $(CL_CFLAGS) $(CLIENTLIBFLAGS) VKB_DIR=vk_linux$(BITS) VKCL_DIR=vkcl_linux$(BITS) @@ -1420,8 +1434,6 @@ ifneq ($(shell echo $(FTE_TARGET)|grep macosx),) GLCL_DIR=glcl_macosx$(EXTENSION)$(BITS) MINGL_DIR=mingl_macosx$(EXTENSION)$(BITS) - 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) GL_CFLAGS=$(GLCFLAGS) -D__MACOSX__ -L/sw/lib -I/sw/include -L/opt/local/lib -I/opt/local/include -I$(LIBS_DIR) @@ -1453,7 +1465,6 @@ ifeq ($(FTE_TARGET),morphos) SV_DIR=sv_morphos SV_LDFLAGS=-ldl -lz - 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 @@ -1490,7 +1501,6 @@ ifeq ($(FTE_TARGET),dos) VKCL_DIR=vkcl_dos IMAGELDFLAGS= - CLIENTLDDEPS= SOFTWARE_OBJS=sw_rast.o sw_backend.o sw_image.o @@ -1513,7 +1523,7 @@ ifeq ($(FTE_TARGET),cyg) GLCL_OBJS=$(GL_OBJS) $(D3DGL_OBJS) $(GLQUAKE_OBJS) $(BOTLIB_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) $(CLIENTLDDEPS) -lz -lltdl + GL_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) -lz -lltdl GL_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include $(CLIENTLIBFLAGS) -DUSE_LIBTOOL GLB_DIR=gl_cygwin GLCL_DIR=glcl_cygwin @@ -1521,7 +1531,7 @@ ifeq ($(FTE_TARGET),cyg) MCL_OBJS=$(D3DGL_OBJS) $(GLQUAKE_OBJS) $(SOFTWARE_OBJS) $(BOTLIB_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) $(CLIENTLDDEPS) -lz -lltdl + M_LDFLAGS=$(GLLDFLAGS) $(XLDFLAGS) -lz -lltdl M_CFLAGS=$(GLCFLAGS) $(CLIENTLIBFLAGS) -DUSE_LIBTOOL MB_DIR=m_cygwin MCL_DIR=mcl_cygwin @@ -1534,6 +1544,10 @@ endif ifeq ($(FTE_TARGET),droid) BASELDFLAGS=-lz + + #erk! FIXME! + CLIENTLDDEPS= + SERVERLDDEPS= SYS_DROID_O=sys_droid.o sys_linux_threads.o GL_DROID_O=gl_viddroid.o $(SYS_DROID_O) @@ -1598,11 +1612,12 @@ ifeq ($(FTE_TARGET),web) GLB_DIR=gl_web GL_EXE_NAME=../ftewebgl.js - GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) $(CLIENTLDDEPS) + GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) GL_CFLAGS=$(GLCFLAGS) IMAGELDFLAGS= CLIENTLDDEPS= + SERVERLDDEPS= BOTLIB_CFLAGS= #generate deps properly @@ -1756,7 +1771,7 @@ _cl-profile: reldir @$(MAKE) _out-profile EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(CLIENT_ONLY_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS" _clsv-rel: reldir - @$(MAKE) _out-rel EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(JOINT_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS SERVER_OBJS" + $(DO_ECHO) $(MAKE) _out-rel EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(JOINT_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS SERVER_OBJS" _clsv-dbg: debugdir @$(MAKE) _out-dbg EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(JOINT_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS SERVER_OBJS" @@ -1765,7 +1780,7 @@ _clsv-profile: reldir @$(MAKE) _out-profile EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(JOINT_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS SERVER_OBJS" sv-tmp: reldir debugdir - @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(SV_EXE_NAME)" WCFLAGS="$(SV_CFLAGS)" LDFLAGS="$(ARCH_LDFLAGS) $(SV_LDFLAGS) $(LDFLAGS)" OBJS="SV_OBJS" + @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(SV_EXE_NAME)" WCFLAGS="$(SV_CFLAGS)" LDFLAGS="$(ARCH_LDFLAGS) $(SV_LDFLAGS) $(LDFLAGS) $(SERVERLDDEPS)" OBJS="SV_OBJS" sv-rel: @$(MAKE) sv-tmp TYPE=_out-rel OUT_DIR="$(RELEASE_DIR)/$(NCDIRPREFIX)$(SV_DIR)" sv-dbg: @@ -1774,9 +1789,9 @@ sv-profile: @$(MAKE) sv-tmp TYPE=_out-profile OUT_DIR="$(PROFILE_DIR)/$(NCDIRPREFIX)$(SV_DIR)" d3dcl-tmp: - @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(D3DCL_EXE_NAME)" WCFLAGS="$(D3D_CFLAGS)" LDFLAGS="$(D3D_LDFLAGS) $(LDFLAGS)" SOBJS="$(D3DCL_OBJS)" + @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(D3DCL_EXE_NAME)" WCFLAGS="$(D3D_CFLAGS)" LDFLAGS="$(D3D_LDFLAGS) $(LDFLAGS) $(CLIENTLDDEPS)" SOBJS="$(D3DCL_OBJS)" d3d-tmp: - @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(D3D_EXE_NAME)" WCFLAGS="$(D3D_CFLAGS)" LDFLAGS="$(D3D_LDFLAGS) $(LDFLAGS)" SOBJS="$(D3DCL_OBJS)" + @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(D3D_EXE_NAME)" WCFLAGS="$(D3D_CFLAGS)" LDFLAGS="$(D3D_LDFLAGS) $(LDFLAGS) $(CLIENTLDDEPS)" SOBJS="$(D3DCL_OBJS)" d3dcl-rel: @$(MAKE) d3dcl-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(NCDIRPREFIX)$(D3DCL_DIR)" @@ -1795,9 +1810,9 @@ d3d-profile: vkcl-tmp: - @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(VKCL_EXE_NAME)" WCFLAGS="$(VK_CFLAGS)" LDFLAGS="$(VK_LDFLAGS) $(LDFLAGS)" SOBJS="$(VKCL_OBJS)" + @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(VKCL_EXE_NAME)" WCFLAGS="$(VK_CFLAGS)" LDFLAGS="$(VK_LDFLAGS) $(LDFLAGS) $(CLIENTLDDEPS)" SOBJS="$(VKCL_OBJS)" vk-tmp: - @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(VK_EXE_NAME)" WCFLAGS="$(VK_CFLAGS)" LDFLAGS="$(VK_LDFLAGS) $(LDFLAGS)" SOBJS="$(VKCL_OBJS)" + @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(VK_EXE_NAME)" WCFLAGS="$(VK_CFLAGS)" LDFLAGS="$(VK_LDFLAGS) $(LDFLAGS) $(CLIENTLDDEPS)" SOBJS="$(VKCL_OBJS)" vkcl-rel: @$(MAKE) vkcl-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(NCDIRPREFIX)$(VKCL_DIR)" @@ -1815,9 +1830,9 @@ vk-profile: glcl-tmp: - @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(GLCL_EXE_NAME)" WCFLAGS="$(GL_CFLAGS)" LDFLAGS="$(GL_LDFLAGS) $(LDFLAGS)" SOBJS="$(GLCL_OBJS)" + @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(GLCL_EXE_NAME)" WCFLAGS="$(GL_CFLAGS)" LDFLAGS="$(GL_LDFLAGS) $(LDFLAGS) $(CLIENTLDDEPS)" SOBJS="$(GLCL_OBJS)" gl-tmp: - @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(GL_EXE_NAME)" WCFLAGS="$(GL_CFLAGS)" LDFLAGS="$(GL_LDFLAGS) $(LDFLAGS)" SOBJS="$(GLCL_OBJS)" + @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(GL_EXE_NAME)" WCFLAGS="$(GL_CFLAGS)" LDFLAGS="$(GL_LDFLAGS) $(LDFLAGS) $(CLIENTLDDEPS)" SOBJS="$(GLCL_OBJS)" glcl-rel: @$(MAKE) glcl-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(NCDIRPREFIX)$(GLCL_DIR)" @@ -1833,7 +1848,7 @@ gl-profile: @$(MAKE) gl-tmp TYPE=_clsv-profile OUT_DIR="$(PROFILE_DIR)/$(NCDIRPREFIX)$(GLB_DIR)" mingl-tmp: reldir - @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(MINGL_EXE_NAME)" WCFLAGS="$(GL_CFLAGS) -DMINIMAL" LDFLAGS="$(GL_LDFLAGS) $(LDFLAGS)" SOBJS="$(GLCL_OBJS)" + @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(MINGL_EXE_NAME)" WCFLAGS="$(GL_CFLAGS) -DMINIMAL" LDFLAGS="$(GL_LDFLAGS) $(LDFLAGS) $(CLIENTLDDEPS)" SOBJS="$(GLCL_OBJS)" mingl-rel: @$(MAKE) mingl-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(NCDIRPREFIX)$(MINGL_DIR)" mingl-dbg: @@ -1842,9 +1857,9 @@ mingl-profile: @$(MAKE) mingl-tmp TYPE=_cl-profile OUT_DIR="$(PROFILE_DIR)/$(NCDIRPREFIX)$(MINGL_DIR)" mcl-tmp: - @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(MCL_EXE_NAME)" WCFLAGS="$(M_CFLAGS)" LDFLAGS="$(M_LDFLAGS) $(LDFLAGS)" SOBJS="$(MCL_OBJS)" + @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(MCL_EXE_NAME)" WCFLAGS="$(M_CFLAGS)" LDFLAGS="$(M_LDFLAGS) $(LDFLAGS) $(CLIENTLDDEPS)" SOBJS="$(MCL_OBJS)" m-tmp: - @$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(M_EXE_NAME)" WCFLAGS="$(M_CFLAGS)" LDFLAGS="$(M_LDFLAGS) $(LDFLAGS)" SOBJS="$(MCL_OBJS)" + $(DO_ECHO) $(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(M_EXE_NAME)" WCFLAGS="$(M_CFLAGS)" LDFLAGS="$(M_LDFLAGS) $(LDFLAGS) $(CLIENTLDDEPS)" SOBJS="$(MCL_OBJS)" mcl-rel: @$(MAKE) mcl-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(NCDIRPREFIX)$(MCL_DIR)" @@ -1853,7 +1868,7 @@ mcl-dbg: mcl-profile: @$(MAKE) mcl-tmp TYPE=_cl-profile OUT_DIR="$(PROFILE_DIR)/$(NCDIRPREFIX)$(MCL_DIR)" m-rel: - @$(MAKE) m-tmp TYPE=_clsv-rel OUT_DIR="$(RELEASE_DIR)/$(NCDIRPREFIX)$(MB_DIR)" + $(DO_ECHO) $(MAKE) m-tmp TYPE=_clsv-rel OUT_DIR="$(RELEASE_DIR)/$(NCDIRPREFIX)$(MB_DIR)" m-dbg: @$(MAKE) m-tmp TYPE=_clsv-dbg OUT_DIR="$(DEBUG_DIR)/$(NCDIRPREFIX)$(MB_DIR)" m-profile: @@ -2189,8 +2204,8 @@ libs-$(ARCH)/libfreetype.a: -test -f libs-$(ARCH)/libfreetype.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../freetype-$(FREETYPEVER).tar.gz && cd freetype-$(FREETYPEVER) && CFLAGS="$(CFLAGS) -Os" $(TOOLOVERRIDES) ./configure $(CONFIGARGS) && $(TOOLOVERRIDES) $(MAKE) && cp objs/.libs/libfreetype.a ../ && cp -r include/ ../) libs-$(ARCH)/libBulletDynamics.a: - test -f bullet3-$(BULLETVER).tar.gz || wget https://github.com/bulletphysics/bullet3/archive/$(BULLETVER).tar.gz - -test -f libs-$(ARCH)/libBulletDynamics.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../bullet3-$(BULLETVER).tar.gz && cd bullet3-$(BULLETVER) && CFLAGS="$(CFLAGS) -Os" $(TOOLOVERRIDES) cmake . && $(TOOLOVERRIDES) $(MAKE) LinearMath BulletDynamics BulletCollision && cp src/LinearMath/libLinearMath.a src/BulletDynamics/libBulletDynamics.a src/BulletCollision/libBulletCollision.a src/btBulletCollisionCommon.h src/btBulletDynamicsCommon.h ..) + test -f bullet3-$(BULLETVER).tar.gz || wget https://github.com/bulletphysics/bullet3/archive/$(BULLETVER).tar.gz -O bullet3-$(BULLETVER).tar.gz + -test -f libs-$(ARCH)/libBulletDynamics.a || (mkdir -p libs-$(ARCH) && cd libs-$(ARCH) && tar -xvzf ../bullet3-$(BULLETVER).tar.gz && cd bullet3-$(BULLETVER) && CFLAGS="$(CFLAGS) -Os" $(TOOLOVERRIDES) $(DO_CMAKE) . && $(TOOLOVERRIDES) $(MAKE) LinearMath BulletDynamics BulletCollision && cp src/LinearMath/libLinearMath.a src/BulletDynamics/libBulletDynamics.a src/BulletCollision/libBulletCollision.a src/btBulletCollisionCommon.h src/btBulletDynamicsCommon.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 libs-$(ARCH)/libspeex.a libs-$(ARCH)/libspeexdsp.a libs-$(ARCH)/libfreetype.a $(MAKELIBS) diff --git a/engine/common/common.c b/engine/common/common.c index a7df8ebb6..d77240c3c 100644 --- a/engine/common/common.c +++ b/engine/common/common.c @@ -2911,7 +2911,7 @@ char *COM_DeFunString(conchar_t *str, conchar_t *stop, char *out, int outsize, q } if (d & CON_2NDCHARSETTEXT) { //FIXME: convert to quake glyphs... - if (!com_parseutf8.ival && !forceutf8 && codepoint >= 0 && codepoint <= 255) + if (!com_parseutf8.ival && !forceutf8 && codepoint <= 255) { //strip the flag and encode it in private use (so it gets encoded as quake-compatible) d &= ~CON_2NDCHARSETTEXT; codepoint |= 0xe000; diff --git a/engine/common/config_wastes.h b/engine/common/config_wastes.h index bbadffccf..fff798082 100644 --- a/engine/common/config_wastes.h +++ b/engine/common/config_wastes.h @@ -25,10 +25,6 @@ #define USE_INTERNAL_BULLET #undef MENU_NATIVECODE // Will make a debut eventually, hopefully -#if defined(WIN32) -#define FREETYPE_STATIC -#endif - // What do we use #ifndef GLQUAKE #define GLQUAKE @@ -177,7 +173,9 @@ #ifdef USE_INTERNAL_BULLET //makefile will respond to this by trying to link bullet into the engine itself, instead of as a plugin. -DLINK_INTERNAL_BULLET #endif - +#if defined(FTE_TARGET_win32) || defined(FTE_TARGET_win64) +-DLINK_FREETYPE +#endif -DNO_SPEEX //disable static speex #ifndef BOTLIB_STATIC diff --git a/engine/common/sys_linux_threads.c b/engine/common/sys_linux_threads.c index 66e849ab8..f05ef4164 100644 --- a/engine/common/sys_linux_threads.c +++ b/engine/common/sys_linux_threads.c @@ -104,8 +104,10 @@ void *Sys_CreateThread(char *name, int (*func)(void *), void *args, int priority thread = NULL; } pthread_attr_destroy(&attr); -#if defined(DEBUG) && defined(__USE_GNU) && __GLIBC_PREREQ(2,12) +#if defined(DEBUG) && defined(__USE_GNU) && defined(__GLIBC_PREREQ) +#if __GLIBC_PREREQ(2,12) pthread_setname_np(*thread, name); +#endif #endif return (void *)thread; @@ -132,8 +134,10 @@ void *Sys_CreateThread(char *name, int (*func)(void *), void *args, int priority } pthread_attr_destroy(&attr); -#if defined(DEBUG) && defined(__USE_GNU) && __GLIBC_PREREQ(2,12) +#if defined(DEBUG) && defined(__USE_GNU) && defined(__GLIBC_PREREQ) +#if __GLIBC_PREREQ(2,12) pthread_setname_np(*thread, name); +#endif #endif return (void *)thread; diff --git a/engine/server/sv_ccmds.c b/engine/server/sv_ccmds.c index bbf90abc1..c0cc3c4a8 100644 --- a/engine/server/sv_ccmds.c +++ b/engine/server/sv_ccmds.c @@ -483,10 +483,12 @@ void SV_Map_f (void) char *nextserver; qboolean preserveplayers= false; qboolean isrestart = false; //don't hurt settings +#ifdef SAVEDGAMES qboolean newunit = false; //no hubcache + qboolean q2savetos0 = false; +#endif qboolean flushparms = false; //flush parms+serverflags qboolean cinematic = false; //new map is .cin / .roq or something - qboolean q2savetos0 = false; #ifdef Q3SERVER qboolean q3singleplayer = false; //forces g_gametype to 2 (otherwise clears if it was 2). #endif @@ -531,12 +533,14 @@ void SV_Map_f (void) startspot = ((Cmd_Argc() == 2)?NULL:Cmd_Argv(2)); } - q2savetos0 = !strcmp(Cmd_Argv(0), "gamemap") && !isDedicated; //q2 #ifdef Q3SERVER q3singleplayer = !strcmp(Cmd_Argv(0), "spmap"); #endif flushparms = !strcmp(Cmd_Argv(0), "map") || !strcmp(Cmd_Argv(0), "spmap"); +#ifdef SAVEDGAMES newunit = flushparms || (!strcmp(Cmd_Argv(0), "changelevel") && !startspot); + q2savetos0 = !strcmp(Cmd_Argv(0), "gamemap") && !isDedicated; //q2 +#endif sv.mapchangelocked = false; @@ -576,8 +580,10 @@ void SV_Map_f (void) Q_strncpyz(level, svs.name, sizeof(level)); isrestart = true; flushparms = false; +#ifdef SAVEDGAMES newunit = false; q2savetos0 = false; +#endif if (!*level) { @@ -615,7 +621,9 @@ void SV_Map_f (void) if (*level == '*') { memmove(level, level+1, strlen(level)); +#ifdef SAVEDGAMES newunit=true; +#endif } #ifndef SERVERONLY SCR_ImageName(level); @@ -1862,7 +1870,9 @@ static void SV_Status_f (void) int columns = 80; extern cvar_t sv_listen_qw; +#if defined(TCPCONNECT) && !defined(CLIENTONLY) extern cvar_t net_enable_tls, net_enable_http, net_enable_webrtcbroker, net_enable_websockets, net_enable_qizmo, net_enable_qtv; +#endif #ifdef NQPROT extern cvar_t sv_listen_nq, sv_listen_dp; #endif @@ -1936,6 +1946,7 @@ static void SV_Status_f (void) else if (net_enable_dtls.ival) Con_Printf(" DTLS"); #endif +#if defined(TCPCONNECT) && !defined(CLIENTONLY) if (net_enable_tls.ival) Con_Printf(" TLS"); if (net_enable_http.ival) @@ -1948,6 +1959,7 @@ static void SV_Status_f (void) Con_Printf(" QZ"); if (net_enable_qtv.ival) Con_Printf(" QTV"); +#endif Con_Printf("\n"); break; } diff --git a/engine/server/sv_send.c b/engine/server/sv_send.c index 73791a211..7320335d0 100644 --- a/engine/server/sv_send.c +++ b/engine/server/sv_send.c @@ -1032,7 +1032,7 @@ void SV_MulticastProtExt(vec3_t origin, multicast_t to, int dimension_mask, int { if (oneclient != split) { - if (split->spectator && split->spec_track >= 0 && oneclient == &svs.clients[split->spec_track]) + if (andspecs && split->spectator && split->spec_track >= 0 && oneclient == &svs.clients[split->spec_track]) ; else continue; diff --git a/plugins/bullet/bulletplug.cpp b/plugins/bullet/bulletplug.cpp index 5a851af74..1e854cebd 100644 --- a/plugins/bullet/bulletplug.cpp +++ b/plugins/bullet/bulletplug.cpp @@ -57,6 +57,7 @@ static int VectorCompare (const vec3_t v1, const vec3_t v2) static rbeplugfuncs_t *rbefuncs; + //============================================================================ // physics engine support //============================================================================ @@ -66,6 +67,13 @@ static rbeplugfuncs_t *rbefuncs; #include "btBulletDynamicsCommon.h" +//not sure where these are going. seems to be an issue only on windows. +#ifndef max +#define max(a,b) ((a) > (b) ? (a) : (b)) +#endif +#ifndef min +#define min(a,b) ((a) < (b) ? (a) : (b)) +#endif static void World_Bullet_RunCmd(world_t *world, rbecommandqueue_t *cmd); @@ -341,7 +349,8 @@ static void World_Bullet_Frame_JointFromEntity(world_t *world, wedict_t *ed) int enemy = 0, aiment = 0; wedict_t *e1, *e2; // vec_t CFM, ERP, FMax; - vec_t Stop, Vel; + vec_t Stop; +// vec_t Vel; vec3_t forward; movetype = (int)ed->v->movetype; jointtype = (int)ed->xv->jointtype; @@ -371,7 +380,7 @@ static void World_Bullet_Frame_JointFromEntity(world_t *world, wedict_t *ed) // float R = 2.0 * D * sqrt(K); // we assume D is premultiplied by sqrt(sprungMass) // CFM = 1.0 / (rbe->ode_step * K + R); // always > 0 // ERP = rbe->ode_step * K * CFM; - Vel = 0; +// Vel = 0; // FMax = 0; Stop = movedir[2]; } @@ -379,7 +388,7 @@ static void World_Bullet_Frame_JointFromEntity(world_t *world, wedict_t *ed) { // CFM = 0; // ERP = 0; - Vel = movedir[0]; +// Vel = movedir[0]; // FMax = -movedir[1]; // TODO do we need to multiply with world.physics.ode_step? Stop = movedir[2] > 0 ? movedir[2] : BT_INFINITY; } @@ -387,7 +396,7 @@ static void World_Bullet_Frame_JointFromEntity(world_t *world, wedict_t *ed) { // CFM = 0; // ERP = 0; - Vel = 0; +// Vel = 0; // FMax = 0; Stop = BT_INFINITY; } @@ -573,9 +582,10 @@ static qboolean QDECL World_Bullet_RagCreateBody(world_t *world, rbebody_t *body { btRigidBody *body = NULL; btCollisionShape *geom = NULL; - float radius, length; + float radius; +// float length; bulletcontext_t *ctx = (bulletcontext_t*)world->rbe; - int axisindex; +// int axisindex; ctx->hasextraobjs = true; switch(bodyinfo->geomshape) @@ -617,7 +627,7 @@ static qboolean QDECL World_Bullet_RagCreateBody(world_t *world, rbebody_t *body break; */ default: - Con_DPrintf("World_Bullet_RagCreateBody: unsupported geomshape\n", bodyinfo->geomshape); + Con_DPrintf("World_Bullet_RagCreateBody: unsupported geomshape %i\n", bodyinfo->geomshape); case GEOMTYPE_BOX: geom = new btBoxShape(btVector3(bodyinfo->dimensions[0], bodyinfo->dimensions[1], bodyinfo->dimensions[2]) * 0.5); break; @@ -756,7 +766,7 @@ static void QDECL World_Bullet_RagMatrixFromJoint(rbejoint_t *joint, rbejointinf static void QDECL World_Bullet_RagMatrixFromBody(world_t *world, rbebody_t *bodyptr, float *mat) { - bulletcontext_t *ctx = (bulletcontext_t*)world->rbe; +// bulletcontext_t *ctx = (bulletcontext_t*)world->rbe; btRigidBody *body = (btRigidBody*)bodyptr->body; MatFromTransform(mat, body->getCenterOfMassTransform()); } @@ -971,9 +981,9 @@ static void World_Bullet_Frame_BodyFromEntity(world_t *world, wedict_t *ed) { bulletcontext_t *ctx = (bulletcontext_t*)world->rbe; btRigidBody *body = NULL; - btScalar mass; +// btScalar mass; float test; - void *dataID; +// void *dataID; model_t *model; int axisindex; int modelindex = 0; @@ -993,13 +1003,13 @@ static void World_Bullet_Frame_BodyFromEntity(world_t *world, wedict_t *ed) vec3_t spinvelocity; vec3_t up; vec3_t velocity; - vec_t f; +// vec_t f; vec_t length; vec_t massval = 1.0f; // vec_t movelimit; vec_t radius; vec_t scale; - vec_t spinlimit; +// vec_t spinlimit; qboolean gravity; geomtype = (int)ed->xv->geomtype; @@ -1383,8 +1393,8 @@ static void World_Bullet_Frame_BodyFromEntity(world_t *world, wedict_t *ed) if (modified && body) { // dVector3 r[3]; - float entitymatrix[16]; - float bodymatrix[16]; +// float entitymatrix[16]; +// float bodymatrix[16]; #if 0 Con_Printf("entity %i got changed by QC\n", (int) (ed - prog->edicts)); @@ -1608,6 +1618,7 @@ static void QDECL World_Bullet_Frame(world_t *world, double frametime, double gr struct bulletcontext_s *ctx = (struct bulletcontext_s*)world->rbe; if (world->rbe_hasphysicsents || ctx->hasextraobjs) { + int iters; unsigned int i; wedict_t *ed; @@ -1642,7 +1653,10 @@ static void QDECL World_Bullet_Frame(world_t *world, double frametime, double gr ctx->dworld->setGravity(btVector3(0, 0, -gravity)); - ctx->dworld->stepSimulation(frametime, max(0, physics_bullet_maxiterationsperframe->value), 1/bound(1, physics_bullet_framerate->value, 500)); + iters=physics_bullet_maxiterationsperframe->value; + if (iters < 0) + iters = 0; + ctx->dworld->stepSimulation(frametime, iters, 1/bound(1, physics_bullet_framerate->value, 500)); // set the tolerance for closeness of objects // dWorldSetContactSurfaceLayer(world->rbe.world, max(0, physics_bullet_contactsurfacelayer.value)); @@ -1722,6 +1736,7 @@ static void QDECL World_Bullet_PushCommand(world_t *world, rbecommandqueue_t *va ctx->cmdqueuetail = ctx->cmdqueuehead = cmd; } +/* static void QDECL World_Bullet_TraceEntity(world_t *world, vec3_t start, vec3_t end, wedict_t *ed) { struct bulletcontext_s *ctx = (struct bulletcontext_s*)world->rbe; @@ -1740,6 +1755,7 @@ static void QDECL World_Bullet_TraceEntity(world_t *world, vec3_t start, vec3_t btTransform to(btMatrix3x3(1, 0, 0, 0, 1, 0, 0, 0, 1), btVector3(end[0], end[1], end[2])); ctx->dworld->convexSweepTest((btConvexShape*)shape, from, to, result, 1); } +*/ static void QDECL World_Bullet_Start(world_t *world) {