diff --git a/.gitattributes b/.gitattributes
index 7751149ac..c2e507352 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,15 +1,17 @@
#Source code
+/Makefile text=auto
/src/*.c text=auto
/src/*.h text=auto
/src/*.s text=auto
/src/*.m text=auto
/src/*.xpm text=auto
/src/Makefile text=auto
+/tools/Makefile text=auto
/src/Make*.cfg text=auto
/src/CMakeLists.txt text=auto
+*.mk -whitespace text=auto
# Windows EOL
*.cs -crlf -whitespace
-*.mk -crlf -whitespace
*.bat -crlf -whitespace
*.dev -crlf -whitespace
*.dsp -crlf -whitespace
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 000000000..b292bfc06
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,434 @@
+variables:
+ GIT_STRATEGY: clone
+ GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/$CI_PROJECT_PATH
+
+default:
+ image: debian:stable-slim
+
+ cache:
+ - key: ccache-$CI_PROJECT_PATH_SLUG-$CI_JOB_NAME_SLUG
+ fallback_keys:
+ - cache-$CI_PROJECT_PATH_SLUG-$CI_DEFAULT_BRANCH
+ - cache-$CI_PROJECT_PATH_SLUG-default
+ paths:
+ - ccache
+ - ccache_statslog
+
+ - key: apt-$CI_JOB_IMAGE
+ paths:
+ - apt-cache
+ unprotect: true
+
+ before_script:
+ - - |
+ # debconf
+ echo -e "\e[0Ksection_start:`date +%s`:debconf[collapsed=true]\r\e[0KSetup debconf's environment"
+ - export DEBIAN_FRONTEND="noninteractive"
+ - export DEBIAN_PRIORITY="low"
+ - export DEBCONF_NONINTERACTIVE_SEEN="true"
+ - |
+ # debconf
+ echo -e "\e[0Ksection_end:`date +%s`:debconf\r\e[0K"
+ - - |
+ # dpkg_aa
+ echo -e "\e[0Ksection_start:`date +%s`:dpkg_aa[collapsed=true]\r\e[0KAdding architectures to dpkg"
+ - dpkg --add-architecture i386
+ - dpkg --add-architecture amd64
+ - dpkg --add-architecture arm64
+ - |
+ # dpkg_aa
+ echo -e "\e[0Ksection_end:`date +%s`:dpkg_aa\r\e[0K"
+ - - |
+ # apt_conf
+ echo -e "\e[0Ksection_start:`date +%s`:apt_conf[collapsed=true]\r\e[0KSetting up APT conf"
+ - export APT_CACHE_DIR=`pwd`/apt-cache
+ - mkdir --parents --verbose $APT_CACHE_DIR/partial/
+ - touch /etc/apt/apt.conf.d/99build
+ - |
+ # apt.conf
+ echo Adding options to apt.conf':'
+ - |
+ # APT::Install-Recommends
+ echo APT::Install-Recommends "false"\; | tee --append /etc/apt/apt.conf.d/99build
+ - |
+ # quit
+ echo quiet "1"\; | tee --append /etc/apt/apt.conf.d/99build
+ - |
+ # APT::Get::Assume-Yes
+ echo APT::Get::Assume-Yes "true"\; | tee --append /etc/apt/apt.conf.d/99build
+ - |
+ # Dir::Cache::Archives
+ echo Dir::Cache::Archives "$APT_CACHE_DIR"\; | tee --append /etc/apt/apt.conf.d/99build
+ - |
+ # apt_conf
+ echo -e "\e[0Ksection_end:`date +%s`:apt_conf\r\e[0K"
+ - - |
+ # apt_update
+ echo -e "\e[0Ksection_start:`date +%s`:apt_update[collapsed=true]\r\e[0KUpdating APT listing"
+ - apt-get update
+ - |
+ # apt_update
+ echo -e "\e[0Ksection_end:`date +%s`:apt_update\r\e[0K"
+
+ - - |
+ # apt_pre
+ echo -e "\e[0Ksection_start:`date +%s`:apt_pre[collapsed=true]\r\e[0KInstalling pre packages"
+ - apt-get install apt-utils
+ - |
+ # apt_pre
+ echo -e "\e[0Ksection_end:`date +%s`:apt_pre\r\e[0K"
+
+ - - |
+ # apt_upgrade
+ echo -e "\e[0Ksection_start:`date +%s`:apt_upgrade[collapsed=true]\r\e[0KUpdating existing packages"
+ - apt-get upgrade
+ - |
+ # apt_update
+ echo -e "\e[0Ksection_end:`date +%s`:apt_upgrade\r\e[0K"
+
+ - - |
+ # apt_common
+ echo -e "\e[0Ksection_start:`date +%s`:apt_common[collapsed=true]\r\e[0KInstalling common packages"
+ - apt-get install make git ccache nasm
+ - |
+ # apt_common
+ echo -e "\e[0Ksection_end:`date +%s`:apt_common\r\e[0K"
+
+ - - |
+ # ccache_config
+ echo -e "\e[0Ksection_start:`date +%s`:ccache_config[collapsed=true]\r\e[0KSetting up ccache config"
+ - mkdir --parents --verbose ~/.ccache/
+ - touch ~/.ccache/ccache.conf
+ - |
+ # cache.conf
+ echo Adding ccache configution option
+ - |
+ # base_dir
+ echo base_dir = $PWD | tee --append ~/.ccache/ccache.conf
+ - |
+ # cache_dir
+ echo cache_dir = $PWD/ccache | tee --append ~/.ccache/ccache.conf
+ - |
+ # compiler_check
+ echo compiler_check = content | tee --append ~/.ccache/ccache.conf
+ - |
+ # stats_log
+ echo stats_log = $PWD/ccache_statslog | tee --append ~/.ccache/ccache.conf
+ - |
+ # max_size
+ echo max_size = 50M | tee --append ~/.ccache/ccache.conf
+ - |
+ # ccache_config
+ echo -e "\e[0Ksection_end:`date +%s`:ccache_config\r\e[0K"
+
+ - - |
+ # cache_reset
+ echo -e "\e[0Ksection_start:`date +%s`:ccache_reset[collapsed=true]\r\e[0KResetting ccache statistics"
+ - ccache --zero-stats
+ - ccache --show-stats
+ - |
+ # ccache_reset
+ echo -e "\e[0Ksection_end:`date +%s`:ccache_reset\r\e[0K"
+
+ artifacts:
+ paths:
+ - "bin/"
+ - "src/comptime.h"
+ name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME_SLUG"
+
+ after_script:
+ - - |
+ # apt_clean
+ echo -e "\e[0Ksection_start:`date +%s`:apt_clean[collapsed=true]\r\e[0KCleaning of unneeded APT packages"
+ - apt-get autoclean
+ - |
+ # apt_clean
+ echo -e "\e[0Ksection_end:`date +%s`:apt_clean\r\e[0K"
+
+ - - |
+ # ccache_stats
+ echo -e "\e[0Ksection_start:`date +%s`:ccache_stats[collapsed=true]\r\e[0Kccache statistics:"
+ - ccache --show-stats --verbose
+ - ccache --show-log-stats --verbose
+ - |
+ # ccahe_stats
+ echo -e "\e[0Ksection_end:`date +%s`:ccache_stats\r\e[0K"
+
+stages:
+ - build
+
+Debian testing GCC:
+ stage: build
+ image: debian:testing-slim
+
+ allow_failure: true
+
+ artifacts:
+ name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-testing-gcc"
+
+ variables:
+ CC: gcc
+ LDFLAGS: -Wl,-fuse-ld=gold
+
+ script:
+ - - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
+ - apt-get install gcc
+ - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
+
+ - - |
+ # apt_development
+ echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
+ - apt-get install libsdl2-mixer-dev libpng-dev libcurl4-openssl-dev libgme-dev libopenmpt-dev
+ - |
+ # apt_development
+ echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"
+
+ - - |
+ # make
+ echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
+ - make --directory=src --keep-going CCACHE=1 ERRORMODE=1 NONX86=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 NONX86=1
+ - |
+ # make
+ echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
+
+Windows x86:
+ stage: build
+
+ artifacts:
+ paths:
+ - "bin/"
+ - "src/comptime.h"
+ expose_as: "Win32"
+ name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-Win32"
+
+ variables:
+ PREFIX: i686-w64-mingw32
+
+ script:
+ - - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
+ - apt-get install gcc-mingw-w64-i686-win32
+ - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
+
+ - - |
+ # make
+ echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
+ - make --directory=src --keep-going CCACHE=1 ERRORMODE=1 MINGW=1 SDL=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 MINGW=1 SDL=1
+ - |
+ # make
+ echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
+
+Debian stable:amd64:
+ stage: build
+
+ artifacts:
+ paths:
+ - "bin/"
+ - "src/comptime.h"
+ expose_as: "Debian amd64"
+ name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-x86-64"
+
+ variables:
+ CC: x86_64-linux-gnu-gcc
+ LDFLAGS: -Wl,-fuse-ld=gold
+ OBJCOPY: x86_64-linux-gnu-objcopy
+ OBJDUMP: x86_64-linux-gnu-objdump
+ PKG_CONFIG_PATH: /usr/lib/x86_64-linux-gnu/pkgconfig
+
+ script:
+ - - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
+ - apt-get install gcc-x86-64-linux-gnu || apt-get install gcc
+ - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
+
+ - - |
+ # apt_development
+ echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
+ - apt-get install libsdl2-mixer-dev:amd64 libpng-dev:amd64 libcurl4-openssl-dev:amd64 libgme-dev:amd64 libopenmpt-dev:amd64
+ - |
+ # apt_development
+ echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"
+
+ - - |
+ # make
+ echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
+ - make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX64=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX64=1
+ - |
+ # make
+ echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
+
+Debian stable:i386:
+ stage: build
+
+ artifacts:
+ paths:
+ - "bin/"
+ - "src/comptime.h"
+ expose_as: "Debian i386"
+ name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-i686"
+
+ variables:
+ CC: i686-linux-gnu-gcc
+ OBJCOPY: i686-linux-gnu-objcopy
+ OBJDUMP: i686-linux-gnu-objdump
+ PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig
+
+ script:
+ - - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
+ - apt-get install gcc-i686-linux-gnu || apt-get install gcc
+ - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
+
+ - - |
+ # apt_development
+ echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
+ - apt-get install libsdl2-mixer-dev:i386 libpng-dev:i386 libcurl4-openssl-dev:i386 libgme-dev:i386 libopenmpt-dev:i386
+ - |
+ # apt_development
+ echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"
+
+ - - |
+ # make
+ echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
+ - make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX=1
+ - |
+ # make
+ echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
+
+Debian stable:arm64:
+ stage: build
+
+ artifacts:
+ paths:
+ - "bin/"
+ - "src/comptime.h"
+ expose_as: "Debian arm64"
+ name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-aarch64"
+
+ variables:
+ CC: aarch64-linux-gnu-gcc
+ LDFLAGS: -Wl,-fuse-ld=gold
+ OBJCOPY: aarch64-linux-gnu-objcopy
+ OBJDUMP: aarch64-linux-gnu-objdump
+ PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
+
+ script:
+ - - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
+ - apt-get install gcc-aarch64-linux-gnu || apt-get install gcc
+ - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
+
+ - - |
+ # apt_development
+ echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
+ - apt-get install libsdl2-mixer-dev:arm64 libpng-dev:arm64 libcurl4-openssl-dev:arm64 libgme-dev:arm64 libopenmpt-dev:arm64
+ - |
+ # apt_development
+ echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"
+
+ - - |
+ # make
+ echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
+ - make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX64=1 ERRORMODE=1 NONX86=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 LINUX64=1 NONX86=1
+ - |
+ # make
+ echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
+
+Windows x64:
+ stage: build
+
+ artifacts:
+ paths:
+ - "bin/"
+ - "src/comptime.h"
+ expose_as: "Win64"
+ name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-Win64"
+
+ variables:
+ PREFIX: x86_64-w64-mingw32
+
+ script:
+ - - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
+ - apt-get install gcc-mingw-w64-x86-64-win32
+ - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
+
+ - - |
+ # make
+ echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
+ - make --directory=src --keep-going CCACHE=1 ERRORMODE=1 MINGW64=1 SDL=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 MINGW64=1 SDL=1
+ - |
+ # make
+ echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
+
+Debian stable Clang:
+ stage: build
+
+ allow_failure: true
+
+ artifacts:
+ name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-clang"
+
+ variables:
+ CC: clang
+ WFLAGS: -Wno-cast-align
+ CFLAGS: -Wno-cast-align
+ LDFLAGS: -Wl,-fuse-ld=gold
+
+ script:
+ - - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_start:`date +%s`:apt_toolchain[collapsed=true]\r\e[0KInstalling toolchain packages"
+ - apt-get install clang
+ - |
+ # apt_toolchain
+ echo -e "\e[0Ksection_end:`date +%s`:apt_toolchain\r\e[0K"
+
+ - - |
+ # apt_development
+ echo -e "\e[0Ksection_start:`date +%s`:apt_development[collapsed=true]\r\e[0KInstalling development packages"
+ - apt-get install libsdl2-mixer-dev libpng-dev libcurl4-openssl-dev libgme-dev libopenmpt-dev
+ - |
+ # apt_development
+ echo -e "\e[0Ksection_end:`date +%s`:apt_development\r\e[0K"
+
+ - - |
+ # make
+ echo -e "\e[0Ksection_start:`date +%s`:make[collapsed=false]\r\e[0KCompiling SRB2"
+ - make --directory=src --keep-going CCACHE=1 ERRORMODE=1 NONX86=1 || make --directory=src --keep-going CCACHE=1 ERRORMODE=1 NONX86=1
+ - |
+ # make
+ echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
+
+Debian testing Clang:
+ extends: Debian stable Clang
+
+ image: debian:testing-slim
+
+ artifacts:
+ name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-testing-clang"
+
+ variables:
+ CC: clang
+ WFLAGS: -Wno-cast-align -Wno-deprecated-non-prototype
+ CFLAGS: -Wno-cast-align -Wno-deprecated-non-prototype
+ LDFLAGS: -Wl,-fuse-ld=gold
diff --git a/cpdebug.mk b/cpdebug.mk
index 6baedf227..75f08c66f 100644
--- a/cpdebug.mk
+++ b/cpdebug.mk
@@ -3,12 +3,12 @@ ifdef ComSpec
COMSPEC=$(ComSpec)
endif
ifdef COMSPEC
-OBJCOPY=objcopy.exe
-OBJDUMP=objdump.exe
+OBJCOPY?=objcopy.exe
+OBJDUMP?=objdump.exe
GZIP?=gzip.exe
else
-OBJCOPY=objcopy
-OBJDUMP=objdump
+OBJCOPY?=objcopy
+OBJDUMP?=objdump
GZIP?=gzip
endif
DBGNAME=$(BIN).debug
diff --git a/src/Android.mk b/src/Android.mk
index 035d48887..235c4b81e 100644
--- a/src/Android.mk
+++ b/src/Android.mk
@@ -8,11 +8,7 @@ LOCAL_SRC_FILES := am_map.c \
command.c \
comptime.c \
console.c \
- d_clisrv.c \
d_main.c \
- d_net.c \
- d_netcmd.c \
- d_netfil.c \
dehacked.c \
f_finale.c \
f_wipe.c \
@@ -20,7 +16,6 @@ LOCAL_SRC_FILES := am_map.c \
g_game.c \
g_input.c \
hu_stuff.c \
- i_tcp.c \
info.c \
lzf.c \
m_argv.c \
@@ -32,7 +27,6 @@ LOCAL_SRC_FILES := am_map.c \
m_queue.c \
m_random.c \
md5.c \
- mserv.c \
p_ceilng.c \
p_enemy.c \
p_fab.c \
@@ -61,6 +55,7 @@ LOCAL_SRC_FILES := am_map.c \
r_things.c \
s_sound.c \
screen.c \
+ snake.c \
sounds.c \
st_stuff.c \
string.c \
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b926b3b7a..22c1def27 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -6,10 +6,6 @@ add_executable(SRB2SDL2 MACOSX_BUNDLE WIN32
config.h.in
string.c
d_main.c
- d_clisrv.c
- d_net.c
- d_netfil.c
- d_netcmd.c
dehacked.c
deh_soc.c
deh_lua.c
@@ -83,12 +79,10 @@ add_executable(SRB2SDL2 MACOSX_BUNDLE WIN32
sounds.c
w_wad.c
filesrch.c
- mserv.c
- http-mserv.c
- i_tcp.c
lzf.c
b_bot.c
u_list.c
+ snake.c
lua_script.c
lua_baselib.c
lua_mathlib.c
@@ -149,6 +143,7 @@ set(SRB2_CONFIG_DEV_BUILD OFF CACHE BOOL
"Compile a development build of SRB2.")
add_subdirectory(blua)
+add_subdirectory(netcode)
# OS macros
if (UNIX)
diff --git a/src/Makefile b/src/Makefile
index 1fdd3f824..a0a18be76 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -140,9 +140,9 @@ endif
OBJDUMP_OPTS?=--wide --source --line-numbers
-OBJCOPY:=$(call Prefix,objcopy)
-OBJDUMP:=$(call Prefix,objdump)
-WINDRES:=$(call Prefix,windres)
+OBJCOPY?=$(call Prefix,objcopy)
+OBJDUMP?=$(call Prefix,objdump)
+WINDRES?=$(call Prefix,windres)
GZIP?=gzip
GZIP_OPTS?=-9 -f -n
diff --git a/src/Makefile.d/detect.mk b/src/Makefile.d/detect.mk
index aca498721..9e2736946 100644
--- a/src/Makefile.d/detect.mk
+++ b/src/Makefile.d/detect.mk
@@ -56,15 +56,18 @@ endif
# This must have high to low order.
gcc_versions:=\
- 102 101\
- 93 92 91\
- 84 83 82 81\
- 75 74 73 72 71\
- 64 63 62 61\
- 55 54 53 52 51\
+ 132 131 130\
+ 123 122 121 120\
+ 114 113 112 111 110\
+ 105 104 103 102 101 100\
+ 95 94 93 92 91 90\
+ 85 84 83 82 81 80\
+ 75 74 73 72 71 70\
+ 64 63 62 61 60\
+ 55 54 53 52 51 50\
49 48 47 46 45 44 43 42 41 40
-latest_gcc_version:=10.2
+latest_gcc_version:=13.2
# Automatically set version flag, but not if one was
# manually set. And don't bother if this is a clean only
@@ -74,13 +77,18 @@ ifeq (,$(call Wildvar,GCC% destructive))
# can't use $(CC) --version here since that uses argv[0] to display the name
# also gcc outputs the information to stderr, so I had to do 2>&1
# this program really doesn't like identifying itself
-version:=$(shell $(CC) -v 2>&1)
+shellversion:=$(shell $(CC) -v 2>&1)
+# Try to remove "-win32"
+version:=$(subst -win32,.0,$(shellversion))
# check if this is in fact GCC
ifneq (,$(findstring gcc version,$(version)))
# in stark contrast to the name, gcc will give me a nicely formatted version number for free
-version:=$(shell $(CC) -dumpfullversion)
+shellversion:=$(shell $(CC) -dumpfullversion)
+
+# Try to remove "-win32"
+version:=$(subst -win32,.0,$(shellversion))
# Turn version into words of major, minor
v:=$(subst ., ,$(version))
diff --git a/src/Makefile.d/features.mk b/src/Makefile.d/features.mk
index b8e11c434..8b713718c 100644
--- a/src/Makefile.d/features.mk
+++ b/src/Makefile.d/features.mk
@@ -1,66 +1,66 @@
-#
-# Makefile for feature flags.
-#
-
-passthru_opts+=\
- NO_IPV6 NOHW NOMD5 NOPOSTPROCESSING\
- MOBJCONSISTANCY PACKETDROP ZDEBUG\
- HAVE_MINIUPNPC\
-
-# build with debugging information
-ifdef DEBUGMODE
-PACKETDROP=1
-opts+=-DPARANOIA -DRANGECHECK
-endif
-
-ifndef NOHW
-opts+=-DHWRENDER
-sources+=$(call List,hardware/Sourcefile)
-endif
-
-ifndef NOMD5
-sources+=md5.c
-endif
-
-ifndef NOZLIB
-ifndef NOPNG
-ifdef PNG_PKGCONFIG
-$(eval $(call Use_pkg_config,PNG_PKGCONFIG))
-else
-PNG_CONFIG?=$(call Prefix,libpng-config)
-$(eval $(call Configure,PNG,$(PNG_CONFIG) \
- $(if $(PNG_STATIC),--static),,--ldflags))
-endif
-ifdef LINUX
-opts+=-D_LARGEFILE64_SOURCE
-endif
-opts+=-DHAVE_PNG
-sources+=apng.c
-endif
-endif
-
-ifndef NOCURL
-CURLCONFIG?=curl-config
-$(eval $(call Configure,CURL,$(CURLCONFIG)))
-opts+=-DHAVE_CURL
-endif
-
-ifdef HAVE_MINIUPNPC
-libs+=-lminiupnpc
-endif
-
-# (Valgrind is a memory debugger.)
-ifdef VALGRIND
-VALGRIND_PKGCONFIG?=valgrind
-$(eval $(call Use_pkg_config,VALGRIND))
-ZDEBUG=1
-opts+=-DHAVE_VALGRIND
-endif
-
-default_packages:=\
- GME/libgme/LIBGME\
- OPENMPT/libopenmpt/LIBOPENMPT\
- ZLIB/zlib\
-
-$(foreach p,$(default_packages),\
- $(eval $(call Check_pkg_config,$(p))))
+#
+# Makefile for feature flags.
+#
+
+passthru_opts+=\
+ NO_IPV6 NOHW NOMD5 NOPOSTPROCESSING\
+ MOBJCONSISTANCY PACKETDROP ZDEBUG\
+ HAVE_MINIUPNPC\
+
+# build with debugging information
+ifdef DEBUGMODE
+PACKETDROP=1
+opts+=-DPARANOIA -DRANGECHECK
+endif
+
+ifndef NOHW
+opts+=-DHWRENDER
+sources+=$(call List,hardware/Sourcefile)
+endif
+
+ifndef NOMD5
+sources+=md5.c
+endif
+
+ifndef NOZLIB
+ifndef NOPNG
+ifdef PNG_PKGCONFIG
+$(eval $(call Use_pkg_config,PNG_PKGCONFIG))
+else
+PNG_CONFIG?=$(call Prefix,libpng-config)
+$(eval $(call Configure,PNG,$(PNG_CONFIG) \
+ $(if $(PNG_STATIC),--static),,--ldflags))
+endif
+ifdef LINUX
+opts+=-D_LARGEFILE64_SOURCE
+endif
+opts+=-DHAVE_PNG
+sources+=apng.c
+endif
+endif
+
+ifndef NOCURL
+CURLCONFIG?=curl-config
+$(eval $(call Configure,CURL,$(CURLCONFIG)))
+opts+=-DHAVE_CURL
+endif
+
+ifdef HAVE_MINIUPNPC
+libs+=-lminiupnpc
+endif
+
+# (Valgrind is a memory debugger.)
+ifdef VALGRIND
+VALGRIND_PKGCONFIG?=valgrind
+$(eval $(call Use_pkg_config,VALGRIND))
+ZDEBUG=1
+opts+=-DHAVE_VALGRIND
+endif
+
+default_packages:=\
+ GME/libgme/LIBGME\
+ OPENMPT/libopenmpt/LIBOPENMPT\
+ ZLIB/zlib\
+
+$(foreach p,$(default_packages),\
+ $(eval $(call Check_pkg_config,$(p))))
diff --git a/src/dummy/i_system.c b/src/dummy/i_system.c
index 125d2e8ae..70e1ef4ec 100644
--- a/src/dummy/i_system.c
+++ b/src/dummy/i_system.c
@@ -14,13 +14,18 @@ size_t I_GetFreeMem(size_t *total)
return 0;
}
-void I_Sleep(UINT32 ms){}
+void I_Sleep(UINT32 ms)
+{
+ (void)ms;
+}
-precise_t I_GetPreciseTime(void) {
+precise_t I_GetPreciseTime(void)
+{
return 0;
}
-UINT64 I_GetPrecisePrecision(void) {
+UINT64 I_GetPrecisePrecision(void)
+{
return 1000000;
}
@@ -182,10 +187,12 @@ const char *I_ClipboardPaste(void)
size_t I_GetRandomBytes(char *destination, size_t amount)
{
+ (void)destination;
+ (void)amount;
return 0;
}
-void I_RegisterSysCommands(void) {}
+void I_RegisterSysCommands(void){}
void I_GetCursorPosition(INT32 *x, INT32 *y)
{
diff --git a/src/g_demo.c b/src/g_demo.c
index 4e959bcf3..cb168dfd9 100644
--- a/src/g_demo.c
+++ b/src/g_demo.c
@@ -1891,16 +1891,9 @@ UINT8 G_CmpDemoTime(char *oldname, char *newname)
p++; // VERSION
p++; // SUBVERSION
oldversion = READUINT16(p);
- switch(oldversion) // demoversion
+ if (oldversion < 0x000c || oldversion > DEMOVERSION)
{
- case DEMOVERSION: // latest always supported
- case 0x000f: // The previous demoversions also supported
- case 0x000e:
- case 0x000d: // all that changed between then and now was longer color name
- case 0x000c:
- break;
- // too old, cannot support.
- default:
+ // too old (or new), cannot support
CONS_Alert(CONS_NOTICE, M_GetText("File '%s' invalid format. It will be overwritten.\n"), oldname);
Z_Free(buffer);
return UINT8_MAX;
@@ -1973,14 +1966,11 @@ void G_DoPlayDemo(char *defdemoname)
UINT8 i;
lumpnum_t l;
char skin[17],color[MAXCOLORNAME+1],*n,*pdemoname;
- UINT8 version,subversion,charability,charability2,thrustfactor,accelstart,acceleration,cnamelen;
+ UINT8 version,subversion,charability,charability2,thrustfactor,accelstart,acceleration;
pflags_t pflags;
UINT32 randseed, followitem;
fixed_t camerascale,shieldscale,actionspd,mindash,maxdash,normalspeed,runspeed,jumpfactor,height,spinheight;
char msg[1024];
-#ifdef OLD22DEMOCOMPAT
- boolean use_old_demo_vars = false;
-#endif
skin[16] = '\0';
color[MAXCOLORNAME] = '\0';
@@ -2039,23 +2029,13 @@ void G_DoPlayDemo(char *defdemoname)
subversion = READUINT8(demo_p);
demoversion = READUINT16(demo_p);
demo_forwardmove_rng = (demoversion < 0x0010);
- switch(demoversion)
- {
- case 0x000f:
- case 0x000d:
- case 0x000e:
- case DEMOVERSION: // latest always supported
- cnamelen = MAXCOLORNAME;
- break;
#ifdef OLD22DEMOCOMPAT
- // all that changed between then and now was longer color name
- case 0x000c:
- cnamelen = 16;
- use_old_demo_vars = true;
- break;
+ if (demoversion < 0x000c || demoversion > DEMOVERSION)
+#else
+ if (demoversion < 0x000d || demoversion > DEMOVERSION)
#endif
- // too old, cannot support.
- default:
+ {
+ // too old (or new), cannot support
snprintf(msg, 1024, M_GetText("%s is an incompatible replay format and cannot be played.\n"), pdemoname);
CONS_Alert(CONS_ERROR, "%s", msg);
M_StartMessage(msg, NULL, MM_NOTHING);
@@ -2182,8 +2162,8 @@ void G_DoPlayDemo(char *defdemoname)
demo_p += 16;
// Color
- M_Memcpy(color,demo_p,cnamelen);
- demo_p += cnamelen;
+ M_Memcpy(color, demo_p, (demoversion < 0x000d) ? 16 : MAXCOLORNAME);
+ demo_p += (demoversion < 0x000d) ? 16 : MAXCOLORNAME;
charability = READUINT8(demo_p);
charability2 = READUINT8(demo_p);
@@ -2219,7 +2199,7 @@ void G_DoPlayDemo(char *defdemoname)
// net var data
#ifdef OLD22DEMOCOMPAT
- if (use_old_demo_vars)
+ if (demoversion < 0x000d)
CV_LoadOldDemoVars(&demo_p);
else
#endif
@@ -2352,19 +2332,13 @@ UINT8 G_CheckDemoForError(char *defdemoname)
demo_p++; // version
demo_p++; // subversion
our_demo_version = READUINT16(demo_p);
- switch(our_demo_version)
- {
- case 0x000d:
- case 0x000e:
- case 0x000f:
- case DEMOVERSION: // latest always supported
- break;
#ifdef OLD22DEMOCOMPAT
- case 0x000c:
- break;
+ if (our_demo_version < 0x000c || our_demo_version > DEMOVERSION)
+#else
+ if (our_demo_version < 0x000d || our_demo_version > DEMOVERSION)
#endif
- // too old, cannot support.
- default:
+ {
+ // too old (or new), cannot support
return DFILE_ERROR_NOTDEMO;
}
demo_p += 16; // demo checksum
@@ -2386,7 +2360,6 @@ void G_AddGhost(char *defdemoname)
INT32 i;
lumpnum_t l;
char name[17],skin[17],color[MAXCOLORNAME+1],*n,*pdemoname,md5[16];
- UINT8 cnamelen;
demoghost *gh;
UINT8 flags, subversion;
UINT8 *buffer,*p;
@@ -2438,20 +2411,9 @@ void G_AddGhost(char *defdemoname)
p++; // VERSION
subversion = READUINT8(p); // SUBVERSION
ghostversion = READUINT16(p);
- switch(ghostversion)
+ if (ghostversion < 0x000c || ghostversion > DEMOVERSION)
{
- case 0x000f:
- case 0x000d:
- case 0x000e:
- case DEMOVERSION: // latest always supported
- cnamelen = MAXCOLORNAME;
- break;
- // all that changed between then and now was longer color name
- case 0x000c:
- cnamelen = 16;
- break;
- // too old, cannot support.
- default:
+ // too old (or new), cannot support
CONS_Alert(CONS_NOTICE, M_GetText("Ghost %s: Demo version incompatible.\n"), pdemoname);
Z_Free(pdemoname);
Z_Free(buffer);
@@ -2514,8 +2476,8 @@ void G_AddGhost(char *defdemoname)
p += 16;
// Color
- M_Memcpy(color, p,cnamelen);
- p += cnamelen;
+ M_Memcpy(color, p, (ghostversion < 0x000d) ? 16 : MAXCOLORNAME);
+ p += (ghostversion < 0x000d) ? 16 : MAXCOLORNAME;
// Ghosts do not have a player structure to put this in.
p++; // charability
@@ -2698,16 +2660,9 @@ void G_DoPlayMetal(void)
metal_p++; // VERSION
metal_p++; // SUBVERSION
metalversion = READUINT16(metal_p);
- switch(metalversion)
+ if (metalversion < 0x000c || metalversion > DEMOVERSION)
{
- case DEMOVERSION: // latest always supported
- case 0x000f:
- case 0x000e: // There are checks wheter the momentum is from older demo versions or not
- case 0x000d: // all that changed between then and now was longer color name
- case 0x000c:
- break;
- // too old, cannot support.
- default:
+ // too old (or new), cannot support
CONS_Alert(CONS_WARNING, M_GetText("Failed to load bot recording for this map, format version incompatible.\n"));
Z_Free(metalbuffer);
return;
diff --git a/src/hardware/hw_batching.c b/src/hardware/hw_batching.c
index d1b84a5ee..dc0b5ee5b 100644
--- a/src/hardware/hw_batching.c
+++ b/src/hardware/hw_batching.c
@@ -42,10 +42,10 @@ int unsortedVertexArrayAllocSize = 65536;
// Call HWR_RenderBatches to render all the collected geometry.
void HWR_StartBatching(void)
{
- if (currently_batching)
- I_Error("Repeat call to HWR_StartBatching without HWR_RenderBatches");
+ if (currently_batching)
+ I_Error("Repeat call to HWR_StartBatching without HWR_RenderBatches");
- // init arrays if that has not been done yet
+ // init arrays if that has not been done yet
if (!finalVertexArray)
{
finalVertexArray = malloc(finalVertexArrayAllocSize * sizeof(FOutVector));
@@ -55,7 +55,7 @@ void HWR_StartBatching(void)
unsortedVertexArray = malloc(unsortedVertexArrayAllocSize * sizeof(FOutVector));
}
- currently_batching = true;
+ currently_batching = true;
}
// This replaces the direct calls to pfnSetTexture in cases where batching is available.
diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 59af61753..dfb80e502 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -4141,14 +4141,11 @@ static void HWR_DrawSprite(gl_vissprite_t *spr)
float xscale, yscale;
float xoffset, yoffset;
float leftoffset, topoffset;
- float scale = spr->scale;
float zoffset = (P_MobjFlip(spr->mobj) * 0.05f);
pslope_t *splatslope = NULL;
INT32 i;
renderflags_t renderflags = spr->renderflags;
- if (renderflags & RF_SHADOWEFFECTS)
- scale *= spr->shadowscale;
if (spr->rotateflags & SRF_3D || renderflags & RF_NOSPLATBILLBOARD)
angle = spr->mobj->angle;
diff --git a/src/hardware/hw_md2.c b/src/hardware/hw_md2.c
index 6123eb9a9..0f8342135 100644
--- a/src/hardware/hw_md2.c
+++ b/src/hardware/hw_md2.c
@@ -486,7 +486,7 @@ void HWR_InitModels(void)
size_t i;
INT32 s;
FILE *f;
- char name[24], filename[32];
+ char name[26], filename[32];
float scale, offset;
size_t prefixlen;
@@ -585,7 +585,7 @@ modelfound:
void HWR_AddPlayerModel(int skin) // For skins that were added after startup
{
FILE *f;
- char name[24], filename[32];
+ char name[26], filename[32];
float scale, offset;
size_t prefixlen;
@@ -644,7 +644,7 @@ void HWR_AddSpriteModel(size_t spritenum) // For sprites that were added after s
// name[24] is used to check for names in the models.dat file that match with sprites or player skins
// sprite names are always 4 characters long, and names is for player skins can be up to 19 characters long
// PLAYERMODELPREFIX is 6 characters long
- char name[24], filename[32];
+ char name[26], filename[32];
float scale, offset;
if (nomd2s)
diff --git a/src/hardware/hw_model.c b/src/hardware/hw_model.c
index b69bce0e2..4b6bce6f7 100644
--- a/src/hardware/hw_model.c
+++ b/src/hardware/hw_model.c
@@ -672,6 +672,9 @@ void GeneratePolygonNormals(model_t *model, int ztag)
for (k = 0; k < mesh->numTriangles; k++)
{
+ /// TODO: normalize vectors
+ (void)vertices;
+ (void)polyNormals;
// Vector::Normal(vertices, polyNormals);
vertices += 3 * 3;
polyNormals++;
diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index 8cb6d185d..1821550b8 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -3544,7 +3544,7 @@ static int lib_gAddGametype(lua_State *L)
// Partly lifted from Got_AddPlayer
static int lib_gAddPlayer(lua_State *L)
{
- INT16 i, newplayernum, botcount = 1;
+ INT16 i, newplayernum;
player_t *newplayer;
SINT8 skinnum = 0, bot;
@@ -3552,10 +3552,8 @@ static int lib_gAddPlayer(lua_State *L)
{
if (!playeringame[i])
break;
-
- if (players[i].bot)
- botcount++; // How many of us are there already?
}
+
if (i >= MAXPLAYERS)
{
lua_pushnil(L);
diff --git a/src/m_menu.c b/src/m_menu.c
index 0d11b30e8..523430ed8 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -2752,6 +2752,7 @@ void M_SetMenuCurBackground(const char *defaultname)
{
char name[9];
strncpy(name, defaultname, 8);
+ name[8] = '\0';
M_IterateMenuTree(MIT_SetCurBackground, &name);
}
diff --git a/src/netcode/CMakeLists.txt b/src/netcode/CMakeLists.txt
new file mode 100644
index 000000000..69b976d17
--- /dev/null
+++ b/src/netcode/CMakeLists.txt
@@ -0,0 +1,15 @@
+target_sources(SRB2SDL2 PRIVATE
+ d_clisrv.c
+ server_connection.c
+ client_connection.c
+ tic_command.c
+ net_command.c
+ gamestate.c
+ commands.c
+ d_net.c
+ d_netcmd.c
+ d_netfil.c
+ http-mserv.c
+ i_tcp.c
+ mserv.c
+)
diff --git a/src/netcode/client_connection.c b/src/netcode/client_connection.c
index a81ac7e97..907021e7d 100644
--- a/src/netcode/client_connection.c
+++ b/src/netcode/client_connection.c
@@ -572,7 +572,7 @@ static boolean CL_FinishedFileList(void)
CL_Reset();
D_StartTitle();
M_StartMessage(M_GetText(
- "An error occured when trying to\n"
+ "An error occurred when trying to\n"
"download missing addons.\n"
"(This is almost always a problem\n"
"with the server, not your game.)\n\n"
diff --git a/src/netcode/commands.c b/src/netcode/commands.c
index 4228027d2..4b67198ba 100644
--- a/src/netcode/commands.c
+++ b/src/netcode/commands.c
@@ -96,7 +96,7 @@ void Ban_Load_File(boolean warning)
Ban_Clear();
- for (size_t i=0; fgets(buffer, (int)sizeof(buffer), f); i++)
+ for (; fgets(buffer, (int)sizeof(buffer), f);)
{
address = strtok(buffer, " \t\r\n");
mask = strtok(NULL, " \t\r\n");
diff --git a/src/netcode/gamestate.c b/src/netcode/gamestate.c
index 005e81ba9..f36347c6d 100644
--- a/src/netcode/gamestate.c
+++ b/src/netcode/gamestate.c
@@ -284,7 +284,7 @@ void Command_ResendGamestate(void)
netbuffer->packettype = PT_WILLRESENDGAMESTATE;
if (!HSendPacket(playernode[playernum], true, 0, 0))
{
- CONS_Alert(CONS_ERROR, M_GetText("A problem occured, please try again.\n"));
+ CONS_Alert(CONS_ERROR, M_GetText("A problem occurred, please try again.\n"));
return;
}
}
diff --git a/src/p_map.c b/src/p_map.c
index 80135db74..251837876 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -3730,7 +3730,9 @@ void P_SlideMove(mobj_t *mo)
boolean papercol = false;
vertex_t v1, v2; // fake vertexes
- line_t junk; // fake linedef
+ static line_t junk; // fake linedef
+
+ memset(&junk, 0x00, sizeof(junk));
if (tmhitthing && mo->z + mo->height > tmhitthing->z && mo->z < tmhitthing->z + tmhitthing->height)
{
diff --git a/src/p_user.c b/src/p_user.c
index 24e3f8111..5730d476d 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -11160,7 +11160,7 @@ static void P_MinecartThink(player_t *player)
detright->drawonlyforplayer = player;
}
else
- P_RemoveMobj(detleft);
+ P_RemoveMobj(detright);
}
}
else
diff --git a/src/r_main.c b/src/r_main.c
index 54f7d7639..0655bd06f 100644
--- a/src/r_main.c
+++ b/src/r_main.c
@@ -249,7 +249,7 @@ static void FlipCam2_OnChange(void)
//
// killough 5/2/98: reformatted
//
-INT32 R_PointOnSide(fixed_t x, fixed_t y, node_t *node)
+INT32 R_PointOnSide(fixed_t x, fixed_t y, node_t *restrict node)
{
if (!node->dx)
return x <= node->x ? node->dy > 0 : node->dy < 0;
@@ -261,9 +261,10 @@ INT32 R_PointOnSide(fixed_t x, fixed_t y, node_t *node)
fixed_t dy = (y >> 1) - (node->y >> 1);
// Try to quickly decide by looking at sign bits.
- if ((node->dy ^ node->dx ^ dx ^ dy) < 0)
- return (node->dy ^ dx) < 0; // (left is negative)
- return FixedMul(dy, node->dx>>FRACBITS) >= FixedMul(node->dy>>FRACBITS, dx);
+ // also use a mask to avoid branch prediction
+ INT32 mask = (node->dy ^ node->dx ^ dx ^ dy) >> 31;
+ return (mask & ((node->dy ^ dx) < 0)) | // (left is negative)
+ (~mask & (FixedMul(dy, node->dx>>FRACBITS) >= FixedMul(node->dy>>FRACBITS, dx)));
}
// killough 5/2/98: reformatted
diff --git a/src/sdl/Srb2SDL-vc10.vcxproj b/src/sdl/Srb2SDL-vc10.vcxproj
index 0b95cd0b2..9b51cfb80 100644
--- a/src/sdl/Srb2SDL-vc10.vcxproj
+++ b/src/sdl/Srb2SDL-vc10.vcxproj
@@ -262,7 +262,6 @@
-
@@ -297,6 +296,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -329,6 +343,7 @@
+
@@ -400,11 +415,7 @@
-
-
-
-
@@ -427,10 +438,6 @@
-
- true
-
-
@@ -451,8 +458,6 @@
-
-
@@ -466,6 +471,22 @@
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
@@ -510,6 +531,7 @@
+
diff --git a/src/sdl/Srb2SDL-vc10.vcxproj.filters b/src/sdl/Srb2SDL-vc10.vcxproj.filters
index eb37ce9da..96501b216 100644
--- a/src/sdl/Srb2SDL-vc10.vcxproj.filters
+++ b/src/sdl/Srb2SDL-vc10.vcxproj.filters
@@ -156,24 +156,12 @@
D_Doom
-
- D_Doom
-
D_Doom
D_Doom
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
D_Doom
@@ -279,9 +267,6 @@
I_Interface
-
- I_Interface
-
I_Interface
@@ -306,12 +291,6 @@
I_Interface
-
- I_Interface
-
-
- I_Interface
-
LUA
@@ -372,6 +351,54 @@
M_Misc
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ I_Interface
+
+
+ I_Interface
+
+
+ I_Interface
+
+
+ I_Interface
+
+
+ I_Interface
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
O_Other
@@ -465,6 +492,9 @@
R_Rend
+
+ M_Misc
+
S_Sounds
@@ -639,21 +669,9 @@
D_Doom
-
- D_Doom
-
D_Doom
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
D_Doom
@@ -732,18 +750,9 @@
I_Interface
-
- I_Interface
-
I_Interface
-
- I_Interface
-
-
- I_Interface
-
LUA
@@ -831,6 +840,48 @@
M_Misc
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ I_Interface
+
+
+ I_Interface
+
+
+ I_Interface
+
+
+ I_Interface
+
+
+ D_Doom
+
+
+ D_Doom
+
+
+ D_Doom
+
M_Misc
@@ -954,6 +1005,9 @@
R_Rend
+
+ M_Misc
+
S_Sounds
diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c
index f4f2eaf56..b05f40ee3 100644
--- a/src/sdl/i_system.c
+++ b/src/sdl/i_system.c
@@ -2266,7 +2266,7 @@ void I_Sleep(UINT32 ms)
}
#ifdef NEWSIGNALHANDLER
-static void newsignalhandler_Warn(const char *pr)
+ATTRNORETURN static FUNCNORETURN void newsignalhandler_Warn(const char *pr)
{
char text[128];
@@ -3035,11 +3035,11 @@ size_t I_GetFreeMem(size_t *total)
#ifdef FREEBSD
u_int v_free_count, v_page_size, v_page_count;
size_t size = sizeof(v_free_count);
- sysctlbyname("vm.stat.vm.v_free_count", &v_free_count, &size, NULL, 0);
- size_t size = sizeof(v_page_size);
- sysctlbyname("vm.stat.vm.v_page_size", &v_page_size, &size, NULL, 0);
- size_t size = sizeof(v_page_count);
- sysctlbyname("vm.stat.vm.v_page_count", &v_page_count, &size, NULL, 0);
+ sysctlbyname("vm.stats.vm.v_free_count", &v_free_count, &size, NULL, 0);
+ size = sizeof(v_page_size);
+ sysctlbyname("vm.stats.vm.v_page_size", &v_page_size, &size, NULL, 0);
+ size = sizeof(v_page_count);
+ sysctlbyname("vm.stats.vm.v_page_count", &v_page_count, &size, NULL, 0);
if (total)
*total = v_page_count * v_page_size;