mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-31 23:00:57 +00:00
Merge branch 'next' into io
This commit is contained in:
commit
bdad2ccc12
54 changed files with 600 additions and 181 deletions
2
.gitattributes
vendored
2
.gitattributes
vendored
|
@ -29,4 +29,6 @@
|
||||||
/libs/zlib/nintendods/README -whitespace
|
/libs/zlib/nintendods/README -whitespace
|
||||||
/libs/zlib/watcom/watcom_f.mak -crlf -whitespace
|
/libs/zlib/watcom/watcom_f.mak -crlf -whitespace
|
||||||
/libs/zlib/watcom/watcom_l.mak -crlf -whitespace
|
/libs/zlib/watcom/watcom_l.mak -crlf -whitespace
|
||||||
|
#Appveyor
|
||||||
|
/appveyor.yml -crlf -whitespace
|
||||||
# Other
|
# Other
|
||||||
|
|
33
.travis.yml
Normal file
33
.travis.yml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
language: c
|
||||||
|
sudo: required
|
||||||
|
dist: trusty
|
||||||
|
|
||||||
|
env:
|
||||||
|
- CFLAGS=-Wno-absolute-value -Werror
|
||||||
|
|
||||||
|
compiler:
|
||||||
|
- gcc
|
||||||
|
- clang
|
||||||
|
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- $HOME/srb2_cache
|
||||||
|
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- libsdl2-mixer-dev
|
||||||
|
- libpng-dev
|
||||||
|
- libgl1-mesa-dev
|
||||||
|
- libgme-dev
|
||||||
|
- p7zip-full
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- mkdir $HOME/srb2_cache
|
||||||
|
- wget --verbose --server-response -c http://rosenthalcastle.org/srb2/SRB2-v2114-assets.7z -O $HOME/srb2_cache/SRB2-v2114-assets.7z
|
||||||
|
- 7z x $HOME/srb2_cache/SRB2-v2114-assets.7z -oassets
|
||||||
|
- mkdir build
|
||||||
|
- cd build
|
||||||
|
- cmake ..
|
||||||
|
|
||||||
|
script: make
|
|
@ -23,13 +23,13 @@ endfunction()
|
||||||
# Macro to add OSX framework
|
# Macro to add OSX framework
|
||||||
macro(add_framework fwname appname)
|
macro(add_framework fwname appname)
|
||||||
find_library(FRAMEWORK_${fwname}
|
find_library(FRAMEWORK_${fwname}
|
||||||
NAMES ${fwname}
|
NAMES ${fwname}
|
||||||
PATHS ${CMAKE_OSX_SYSROOT}/System/Library
|
PATHS ${CMAKE_OSX_SYSROOT}/System/Library
|
||||||
${CMAKE_OSX_SYSROOT}/Library
|
${CMAKE_OSX_SYSROOT}/Library
|
||||||
/System/Library
|
/System/Library
|
||||||
/Library
|
/Library
|
||||||
PATH_SUFFIXES Frameworks
|
ATH_SUFFIXES Frameworks
|
||||||
NO_DEFAULT_PATH)
|
NO_DEFAULT_PATH)
|
||||||
if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
|
if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
|
||||||
MESSAGE(ERROR ": Framework ${fwname} not found")
|
MESSAGE(ERROR ": Framework ${fwname} not found")
|
||||||
else()
|
else()
|
||||||
|
@ -80,9 +80,6 @@ endif()
|
||||||
|
|
||||||
if(${CMAKE_SYSTEM} MATCHES "Darwin")
|
if(${CMAKE_SYSTEM} MATCHES "Darwin")
|
||||||
add_definitions(-DMACOSX)
|
add_definitions(-DMACOSX)
|
||||||
if(${CMAKE_C_COMPILER_ID} MATCHES "Clang")
|
|
||||||
set(CLANG ON)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
||||||
|
|
71
appveyor.yml
Normal file
71
appveyor.yml
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
version: 2.1.14.{branch}-{build}
|
||||||
|
os: MinGW
|
||||||
|
|
||||||
|
environment:
|
||||||
|
CC: i686-w64-mingw32-gcc
|
||||||
|
WINDRES: windres
|
||||||
|
MINGW_SDK: c:\msys64\mingw32
|
||||||
|
SDL2_URL: http://libsdl.org/release/SDL2-devel-2.0.4-mingw.tar.gz
|
||||||
|
SDL2_ARCHIVE: SDL2-devel-2.0.4-mingw.tar
|
||||||
|
SDL2_MOVE: SDL2-2.0.4\i686-w64-mingw32
|
||||||
|
SDL2_MIXER_URL: https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-2.0.1-mingw.tar.gz
|
||||||
|
SDL2_MIXER_ARCHIVE: SDL2_mixer-devel-2.0.1-mingw.tar
|
||||||
|
SDL2_MIXER_MOVE: SDL2_mixer-2.0.1\i686-w64-mingw32
|
||||||
|
|
||||||
|
cache:
|
||||||
|
- SDL2-devel-2.0.4-mingw.tar.gz
|
||||||
|
- SDL2_mixer-devel-2.0.1-mingw.tar.gz
|
||||||
|
|
||||||
|
install:
|
||||||
|
#Download SDL2
|
||||||
|
- if not exist "%SDL2_ARCHIVE%.gz" appveyor DownloadFile "%SDL2_URL%" -FileName "%SDL2_ARCHIVE%.gz"
|
||||||
|
- 7z x -y "%SDL2_ARCHIVE%.gz" -o%TMP% >null
|
||||||
|
- 7z x -y "%TMP%\%SDL2_ARCHIVE%" -o%TMP% >null
|
||||||
|
- robocopy /S /xx /ns /nc /nfl /ndl /np /njh /njs %TMP%\%SDL2_MOVE% %MINGW_SDK% || exit 0
|
||||||
|
- ps: (Get-Content ([System.Environment]::ExpandEnvironmentVariables("%TMP%\%SDL2_MOVE%\bin\sdl2-config"))) | ForEach-Object { $_ -replace "/usr/local/cross-tools/i686-w64-mingw32", ([System.Environment]::ExpandEnvironmentVariables("%MINGW_SDK%")) } | Set-Content ([System.Environment]::ExpandEnvironmentVariables("%MINGW_SDK%\bin\sdl2-config"))
|
||||||
|
- ps: (Get-Content ([System.Environment]::ExpandEnvironmentVariables("%TMP%\%SDL2_MOVE%\lib\cmake\SDL2\sdl2-config.cmake"))) | ForEach-Object { $_ -replace "/usr/local/cross-tools/i686-w64-mingw32", ([System.Environment]::ExpandEnvironmentVariables("%MINGW_SDK%")) } | Set-Content ([System.Environment]::ExpandEnvironmentVariables("%MINGW_SDK%\lib\cmake\SDL2\sdl2-config.cmake"))
|
||||||
|
- ps: (Get-Content ([System.Environment]::ExpandEnvironmentVariables("%TMP%\%SDL2_MOVE%\lib\pkgconfig\sdl2.pc"))) | ForEach-Object { $_ -replace "/usr/local/cross-tools/i686-w64-mingw32", ([System.Environment]::ExpandEnvironmentVariables("%MINGW_SDK%")) } | Set-Content ([System.Environment]::ExpandEnvironmentVariables("%MINGW_SDK%\lib\pkgconfig\sdl2.pc"))
|
||||||
|
#Download SDL2_Mixer
|
||||||
|
- if not exist "%SDL2_MIXER_ARCHIVE%.gz" appveyor DownloadFile "%SDL2_MIXER_URL%" -FileName "%SDL2_MIXER_ARCHIVE%.gz"
|
||||||
|
- 7z x -y "%SDL2_MIXER_ARCHIVE%.gz" -o%TMP% >null
|
||||||
|
- 7z x -y "%TMP%\%SDL2_MIXER_ARCHIVE%" -o%TMP% >null
|
||||||
|
- robocopy /S /xx /ns /nc /nfl /ndl /np /njh /njs %TMP%\%SDL2_MIXER_MOVE% %MINGW_SDK% || exit 0
|
||||||
|
- ps: (Get-Content ([System.Environment]::ExpandEnvironmentVariables("%TMP%\%SDL2_MIXER_MOVE%\lib\pkgconfig\SDL2_mixer.pc")))| ForEach-Object { $_ -replace "/usr/local/cross-tools/i686-w64-mingw32", ([System.Environment]::ExpandEnvironmentVariables("%MINGW_SDK%")) } | Set-Content ([System.Environment]::ExpandEnvironmentVariables("%MINGW_SDK%\lib\pkgconfig\SDL2_mixer.pc"))
|
||||||
|
|
||||||
|
before_build:
|
||||||
|
- set SDL_PKGCONFIG=%MINGW_SDK%\lib\pkgconfig\sdl2.pc
|
||||||
|
- set Path=%MINGW_SDK%\bin;%Path%
|
||||||
|
- i686-w64-mingw32-gcc --version
|
||||||
|
- mingw32-make --version
|
||||||
|
- set SRB2_MFLAGS=-C src MINGW=1 WARNINGMODE=1 NOASM=1 NOUPX=1 GCC53=1
|
||||||
|
|
||||||
|
build_script:
|
||||||
|
- cmd: mingw32-make.exe %SRB2_MFLAGS% SDL=1 clean
|
||||||
|
- cmd: mingw32-make.exe %SRB2_MFLAGS% SDL=1 ERRORMODE=1
|
||||||
|
|
||||||
|
after_build:
|
||||||
|
- cmd: git rev-parse --short %APPVEYOR_REPO_COMMIT%>%TMP%/gitshort.txt
|
||||||
|
- cmd: set /P GITSHORT=<%TMP%/gitshort.txt
|
||||||
|
- set BUILD_ARCHIVE=%APPVEYOR_REPO_BRANCH%-%GITSHORT%.7z
|
||||||
|
- cmd: 7z a %BUILD_ARCHIVE% bin\Mingw\Release -xr!.gitignore
|
||||||
|
- appveyor PushArtifact %BUILD_ARCHIVE%
|
||||||
|
|
||||||
|
test: off
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
- provider: FTP
|
||||||
|
protocol: ftps
|
||||||
|
host:
|
||||||
|
secure: NsLJEPIBvmwCOj8Tg8RoRQ==
|
||||||
|
username:
|
||||||
|
secure: ejxi5mvk7oLYu7QtbYojajEPigMy0mokaKhuEVuDZcA=
|
||||||
|
password:
|
||||||
|
secure: Hbn6Uy3lT0YZ88yFJ3aW4w==
|
||||||
|
folder: appveyor
|
||||||
|
application:
|
||||||
|
active_mode: false
|
||||||
|
|
||||||
|
|
||||||
|
on_finish:
|
||||||
|
#- cmd: echo xfreerdp /u:appveyor /cert-ignore +clipboard /v:<ip>:<port>
|
||||||
|
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
12
assets/debian/changelog
Normal file
12
assets/debian/changelog
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
srb2-data (2.1.14~1) unstable; urgency=low
|
||||||
|
|
||||||
|
* Updated for SRB2 v2.1.14
|
||||||
|
|
||||||
|
-- Alam Arias <alam+debian@srb2.org> Sat, 6 Jan 2016 11:00:00 -0500
|
||||||
|
|
||||||
|
|
||||||
|
srb2-data (2.0.6-2) maverick; urgency=high
|
||||||
|
|
||||||
|
* Initial proper release..
|
||||||
|
|
||||||
|
-- Callum Dickinson <gcfreak_ag20@hotmail.com> Sat, 29 Jan 2011 01:18:42 +1300
|
|
@ -37,7 +37,7 @@ RM := rm -rf
|
||||||
DIR := $(shell pwd)
|
DIR := $(shell pwd)
|
||||||
|
|
||||||
PACKAGE := $(shell cat $(DIR)/debian/control | grep 'Package:' | sed -e 's/Package: //g')
|
PACKAGE := $(shell cat $(DIR)/debian/control | grep 'Package:' | sed -e 's/Package: //g')
|
||||||
DATAFILES := drill.dta music.dta soar.dta zones.dta player.dta rings.wpn srb2.wad
|
DATAFILES := srb2.srb zones.dta player.dta rings.dta music.dta
|
||||||
|
|
||||||
DATADIR := usr/games/SRB2
|
DATADIR := usr/games/SRB2
|
||||||
RESOURCEDIR := .
|
RESOURCEDIR := .
|
||||||
|
@ -48,7 +48,7 @@ build:
|
||||||
# This will need to be updated every time SRB2 official version is
|
# This will need to be updated every time SRB2 official version is
|
||||||
# Copy data files to their install locations, and add data files to include-binaries
|
# Copy data files to their install locations, and add data files to include-binaries
|
||||||
for file in $(DATAFILES); do \
|
for file in $(DATAFILES); do \
|
||||||
$(WGET) http://alam.srb2.org/SRB2/2.0.6-Final/Resources/$$file; \
|
$(WGET) http://alam.srb2.org/SRB2/2.1.14-Final/Resources/$$file; \
|
||||||
if test "$$file" = "srb2.wad"; then \
|
if test "$$file" = "srb2.wad"; then \
|
||||||
$(INSTALL) $(RESOURCEDIR)/$$file $(DIR)/debian/tmp/$(DATADIR)/srb2.srb; \
|
$(INSTALL) $(RESOURCEDIR)/$$file $(DIR)/debian/tmp/$(DATADIR)/srb2.srb; \
|
||||||
else \
|
else \
|
1
assets/debian/source/format
Normal file
1
assets/debian/source/format
Normal file
|
@ -0,0 +1 @@
|
||||||
|
3.0 (native)
|
|
@ -1,5 +0,0 @@
|
||||||
srb2-data (2.0.6-2) maverick; urgency=high
|
|
||||||
|
|
||||||
* Initial proper release..
|
|
||||||
|
|
||||||
-- Callum Dickinson <gcfreak_ag20@hotmail.com> Sat, 29 Jan 2011 01:18:42 +1300
|
|
|
@ -1 +0,0 @@
|
||||||
3.0 (quilt)
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Find SDL2
|
# Find SDL2
|
||||||
# Once done, this will define
|
# Once done, this will define
|
||||||
#
|
#
|
||||||
# SDL2_FOUND - system has SDL2
|
# SDL2_FOUND - system has SDL2
|
||||||
# SDL2_INCLUDE_DIRS - SDL2 include directories
|
# SDL2_INCLUDE_DIRS - SDL2 include directories
|
||||||
# SDL2_LIBRARIES - link libraries
|
# SDL2_LIBRARIES - link libraries
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Find SDL2
|
# Find SDL2
|
||||||
# Once done, this will define
|
# Once done, this will define
|
||||||
#
|
#
|
||||||
# SDL2_MAIN_FOUND - system has SDL2
|
# SDL2_MAIN_FOUND - system has SDL2
|
||||||
# SDL2_MAIN_INCLUDE_DIRS - SDL2 include directories
|
# SDL2_MAIN_INCLUDE_DIRS - SDL2 include directories
|
||||||
# SDL2_MAIN_LIBRARIES - link libraries
|
# SDL2_MAIN_LIBRARIES - link libraries
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Find SDL2
|
# Find SDL2
|
||||||
# Once done, this will define
|
# Once done, this will define
|
||||||
#
|
#
|
||||||
# SDL2_MIXER_FOUND - system has SDL2
|
# SDL2_MIXER_FOUND - system has SDL2
|
||||||
# SDL2_MIXER_INCLUDE_DIRS - SDL2 include directories
|
# SDL2_MIXER_INCLUDE_DIRS - SDL2 include directories
|
||||||
# SDL2_MIXER_LIBRARIES - link libraries
|
# SDL2_MIXER_LIBRARIES - link libraries
|
||||||
|
|
|
@ -123,7 +123,7 @@ function (libfind_process PREFIX)
|
||||||
set(includeopts ${${PREFIX}_PROCESS_INCLUDES})
|
set(includeopts ${${PREFIX}_PROCESS_INCLUDES})
|
||||||
set(libraryopts ${${PREFIX}_PROCESS_LIBS})
|
set(libraryopts ${${PREFIX}_PROCESS_LIBS})
|
||||||
|
|
||||||
# Process deps to add to
|
# Process deps to add to
|
||||||
foreach (i ${PREFIX} ${${PREFIX}_DEPENDENCIES})
|
foreach (i ${PREFIX} ${${PREFIX}_DEPENDENCIES})
|
||||||
if (DEFINED ${i}_INCLUDE_OPTS OR DEFINED ${i}_LIBRARY_OPTS)
|
if (DEFINED ${i}_INCLUDE_OPTS OR DEFINED ${i}_LIBRARY_OPTS)
|
||||||
# The package seems to export option lists that we can use, woohoo!
|
# The package seems to export option lists that we can use, woohoo!
|
||||||
|
@ -146,11 +146,11 @@ function (libfind_process PREFIX)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
if (includeopts)
|
if (includeopts)
|
||||||
list(REMOVE_DUPLICATES includeopts)
|
list(REMOVE_DUPLICATES includeopts)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (libraryopts)
|
if (libraryopts)
|
||||||
list(REMOVE_DUPLICATES libraryopts)
|
list(REMOVE_DUPLICATES libraryopts)
|
||||||
endif()
|
endif()
|
||||||
|
@ -215,7 +215,7 @@ function (libfind_process PREFIX)
|
||||||
set (${PREFIX}_LIBRARIES ${libs} PARENT_SCOPE)
|
set (${PREFIX}_LIBRARIES ${libs} PARENT_SCOPE)
|
||||||
set (${PREFIX}_FOUND TRUE PARENT_SCOPE)
|
set (${PREFIX}_FOUND TRUE PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Format messages for debug info and the type of error
|
# Format messages for debug info and the type of error
|
||||||
|
|
14
debian/control
vendored
14
debian/control
vendored
|
@ -4,13 +4,19 @@ Source: srb2
|
||||||
Section: games
|
Section: games
|
||||||
Priority: extra
|
Priority: extra
|
||||||
Maintainer: Callum Dickinson <gcfreak_ag20@hotmail.com>
|
Maintainer: Callum Dickinson <gcfreak_ag20@hotmail.com>
|
||||||
Build-Depends: debhelper (>= 7.0.50~), libsdl1.2-dev (>= 1.2.7), libsdl-mixer1.2-dev (>= 1.2.7), libpng12-dev (>= 1.2.7), libglu1-dev | libglu-dev, libosmesa6-dev | libgl-dev, nasm [i386]
|
Build-Depends: debhelper (>= 7.0.50~),
|
||||||
|
libsdl2-dev,
|
||||||
|
libsdl2-mixer-dev,
|
||||||
|
libpng12-dev (>= 1.2.7),
|
||||||
|
libglu1-dev | libglu-dev,
|
||||||
|
libosmesa6-dev | libgl-dev,
|
||||||
|
nasm [i386]
|
||||||
Standards-Version: 3.8.4
|
Standards-Version: 3.8.4
|
||||||
Homepage: http://www.srb2.org
|
Homepage: http://www.srb2.org
|
||||||
|
|
||||||
Package: srb2
|
Package: srb2
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, srb2-data (= 2.0.6)
|
Depends: ${shlibs:Depends}, ${misc:Depends}, srb2-data (= 2.1.14)
|
||||||
Description: A cross-platform 3D Sonic fangame
|
Description: A cross-platform 3D Sonic fangame
|
||||||
Sonic Robo Blast 2 is a 3D open-source Sonic the Hedgehog
|
Sonic Robo Blast 2 is a 3D open-source Sonic the Hedgehog
|
||||||
fangame built using a modified version of the Doom Legacy
|
fangame built using a modified version of the Doom Legacy
|
||||||
|
@ -22,8 +28,8 @@ Description: A cross-platform 3D Sonic fangame
|
||||||
|
|
||||||
Package: srb2-dbg
|
Package: srb2-dbg
|
||||||
Architecture: any
|
Architecture: any
|
||||||
# FIXME: should be Depends: ${shlibs:Depends}, ${misc:Depends}, srb2-data (= 2.0.6), srb2 but dh_shlibdeps is being an asshat
|
# FIXME: should be Depends: ${shlibs:Depends}, ${misc:Depends}, srb2-data (= 2.1.14), srb2 but dh_shlibdeps is being an asshat
|
||||||
Depends: libc6, ${misc:Depends}, srb2-data (= 2.0.6), srb2
|
Depends: libc6, ${misc:Depends}, srb2-data (= 2.1.14), srb2
|
||||||
Description: A cross-platform 3D Sonic fangame
|
Description: A cross-platform 3D Sonic fangame
|
||||||
Sonic Robo Blast 2 is a 3D open-source Sonic the Hedgehog
|
Sonic Robo Blast 2 is a 3D open-source Sonic the Hedgehog
|
||||||
fangame built using a modified version of the Doom Legacy
|
fangame built using a modified version of the Doom Legacy
|
||||||
|
|
17
debian/rules
vendored
17
debian/rules
vendored
|
@ -59,16 +59,18 @@ DBGNAME = debug/$(EXENAME)
|
||||||
|
|
||||||
PKGDIR = usr/games
|
PKGDIR = usr/games
|
||||||
DBGDIR = usr/lib/debug/$(PKGDIR)
|
DBGDIR = usr/lib/debug/$(PKGDIR)
|
||||||
|
PIXMAPS_DIR = usr/share/pixmaps
|
||||||
|
DESKTOP_DIR = usr/share/applications
|
||||||
PREFIX = $(shell test "$(CROSS_COMPILE_BUILD)" != "$(CROSS_COMPILE_HOST)" && echo "PREFIX=$(CROSS_COMPILE_HOST)")
|
PREFIX = $(shell test "$(CROSS_COMPILE_BUILD)" != "$(CROSS_COMPILE_HOST)" && echo "PREFIX=$(CROSS_COMPILE_HOST)")
|
||||||
OS = LINUX=1
|
OS = LINUX=1
|
||||||
NONX86 = $(shell test "`echo $(CROSS_COMPILE_HOST) | grep 'i[3-6]86'`" || echo "NONX86=1")
|
NONX86 = $(shell test "`echo $(CROSS_COMPILE_HOST) | grep 'i[3-6]86'`" || echo "NONX86=1")
|
||||||
MAKEARGS = $(OS) $(NONX86) $(PREFIX) EXENAME=$(EXENAME) DBGNAME=$(DBGNAME) SDL_PKGCONFIG=sdl PNG_PKGCONFIG=libpng NOOBJDUMP=1
|
MAKEARGS = $(OS) $(NONX86) $(PREFIX) EXENAME=$(EXENAME) DBGNAME=$(DBGNAME) SDL_PKGCONFIG=sdl2 PNG_PKGCONFIG=libpng NOOBJDUMP=1
|
||||||
MENUFILE1 = ?package($(PACKAGE)):needs="X11" section="$(SECTION)"
|
MENUFILE1 = ?package($(PACKAGE)):needs="X11" section="$(SECTION)"
|
||||||
MENUFILE2 = title="$(TITLE)" command="/$(PKGDIR)/$(PACKAGE)"
|
MENUFILE2 = title="$(TITLE)" command="/$(PKGDIR)/$(PACKAGE)"
|
||||||
# FIXME pkg-config dir hacks
|
# FIXME pkg-config dir hacks
|
||||||
export PKG_CONFIG_LIBDIR = /usr/$(CROSS_COMPILE_HOST)/lib/pkgconfig
|
export PKG_CONFIG_LIBDIR = /usr/lib/$(CROSS_COMPILE_HOST)/pkgconfig
|
||||||
BINDIR := $(DIR)/bin/Linux/Release
|
BINDIR := $(DIR)/bin/Linux/Release
|
||||||
LDFLAGS += "-Wl,-rpath=/usr/$(CROSS_COMPILE_HOST)/lib/"
|
LDFLAGS += "-Wl,-rpath=/usr/lib/$(CROSS_COMPILE_HOST)"
|
||||||
|
|
||||||
build:
|
build:
|
||||||
$(MKDIR) $(BINDIR)/debug
|
$(MKDIR) $(BINDIR)/debug
|
||||||
|
@ -80,14 +82,23 @@ binary-indep:
|
||||||
echo "no need to do any arch-independent stuff"
|
echo "no need to do any arch-independent stuff"
|
||||||
|
|
||||||
binary-arch:
|
binary-arch:
|
||||||
|
# create ddirs
|
||||||
$(MKDIR) $(DIR)/debian/tmp/$(PKGDIR) $(DIR)/debian/tmp/$(DBGDIR)
|
$(MKDIR) $(DIR)/debian/tmp/$(PKGDIR) $(DIR)/debian/tmp/$(DBGDIR)
|
||||||
|
$(MKDIR) $(DIR)/debian/tmp/$(PKGDIR) $(DIR)/debian/tmp/$(DESKTOP_DIR)
|
||||||
|
$(MKDIR) $(DIR)/debian/tmp/$(PKGDIR) $(DIR)/debian/tmp/$(PIXMAPS_DIR)
|
||||||
|
# install main binaries
|
||||||
$(INSTALL) $(BINDIR)/$(EXENAME) $(DIR)/debian/tmp/$(PKGDIR)/$(PACKAGE)
|
$(INSTALL) $(BINDIR)/$(EXENAME) $(DIR)/debian/tmp/$(PKGDIR)/$(PACKAGE)
|
||||||
$(INSTALL) $(BINDIR)/$(DBGNAME) $(DIR)/debian/tmp/$(DBGDIR)/$(PACKAGE)
|
$(INSTALL) $(BINDIR)/$(DBGNAME) $(DIR)/debian/tmp/$(DBGDIR)/$(PACKAGE)
|
||||||
|
# Install desktop file and banner image
|
||||||
|
$(INSTALL) $(DIR)/srb2.png $(DIR)/debian/tmp/usr/share/pixmaps
|
||||||
|
$(INSTALL) $(DIR)/debian/srb2.desktop $(DIR)/debian/tmp/usr/share/applications
|
||||||
# add compiled binaries to include-binaries
|
# add compiled binaries to include-binaries
|
||||||
echo $(BINDIR)/$(EXENAME) >> $(DIR)/debian/source/include-binaries
|
echo $(BINDIR)/$(EXENAME) >> $(DIR)/debian/source/include-binaries
|
||||||
echo $(BINDIR)/$(EXENAME) >> $(DIR)/debian/source/include-binaries
|
echo $(BINDIR)/$(EXENAME) >> $(DIR)/debian/source/include-binaries
|
||||||
# Generate install folder files
|
# Generate install folder files
|
||||||
echo $(PKGDIR) > $(DIR)/debian/$(PACKAGE).install
|
echo $(PKGDIR) > $(DIR)/debian/$(PACKAGE).install
|
||||||
|
echo $(DESKTOP_DIR) >> $(DIR)/debian/$(PACKAGE).install
|
||||||
|
echo $(PIXMAPS_DIR) >> $(DIR)/debian/$(PACKAGE).install
|
||||||
echo $(DBGDIR) > $(DIR)/debian/$(DBGPKG).install
|
echo $(DBGDIR) > $(DIR)/debian/$(DBGPKG).install
|
||||||
|
|
||||||
binary: binary-arch
|
binary: binary-arch
|
||||||
|
|
10
debian/srb2.desktop
vendored
Normal file
10
debian/srb2.desktop
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Sonic Robo Blast 2
|
||||||
|
Comment=A free 3D Sonic the Hedgehog fan-game built using a modified ver. of the Doom Legacy source port
|
||||||
|
Encoding=UTF-8
|
||||||
|
Exec=srb2
|
||||||
|
Icon=/usr/share/pixmaps/srb2.png
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
StartupNotify=false
|
||||||
|
Categories=Application;Game;
|
BIN
srb2.png
Normal file
BIN
srb2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 153 KiB |
|
@ -168,7 +168,7 @@ set(SRB2_CORE_GAME_SOURCES
|
||||||
p_tick.h
|
p_tick.h
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT CLANG)
|
if(NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
|
||||||
set(SRB2_CORE_SOURCES ${SRB2_CORE_SOURCES} string.c)
|
set(SRB2_CORE_SOURCES ${SRB2_CORE_SOURCES} string.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -407,10 +407,14 @@ endif()
|
||||||
|
|
||||||
# Compatibility flag with later versions of GCC
|
# Compatibility flag with later versions of GCC
|
||||||
# We should really fix our code to not need this
|
# We should really fix our code to not need this
|
||||||
if(NOT CLANG AND NOT MSVC)
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -mno-ms-bitfields)
|
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -mno-ms-bitfields)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
|
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -Wno-absolute-value)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_definitions(-DCMAKECONFIG)
|
add_definitions(-DCMAKECONFIG)
|
||||||
|
|
||||||
#add_library(SRB2Core STATIC
|
#add_library(SRB2Core STATIC
|
||||||
|
@ -432,4 +436,4 @@ endif()
|
||||||
|
|
||||||
if(NOT ${SRB2_SDL2_AVAILABLE} AND NOT ${SRB2_WIN32_AVAILABLE})
|
if(NOT ${SRB2_SDL2_AVAILABLE} AND NOT ${SRB2_WIN32_AVAILABLE})
|
||||||
message(FATAL_ERROR "There are no targets available to build an SRB2 executable. :(")
|
message(FATAL_ERROR "There are no targets available to build an SRB2 executable. :(")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -7,6 +7,22 @@
|
||||||
# and other things
|
# and other things
|
||||||
#
|
#
|
||||||
|
|
||||||
|
ifdef GCC53
|
||||||
|
GCC52=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef GCC52
|
||||||
|
GCC51=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef GCC51
|
||||||
|
GCC49=1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef GCC49
|
||||||
|
GCC48=1
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef GCC48
|
ifdef GCC48
|
||||||
GCC47=1
|
GCC47=1
|
||||||
endif
|
endif
|
||||||
|
@ -139,6 +155,10 @@ WFLAGS+=-Wformat-security
|
||||||
ifndef GCC29
|
ifndef GCC29
|
||||||
#WFLAGS+=-Winit-self
|
#WFLAGS+=-Winit-self
|
||||||
endif
|
endif
|
||||||
|
ifdef GCC46
|
||||||
|
WFLAGS+=-Wno-suggest-attribute=noreturn
|
||||||
|
endif
|
||||||
|
|
||||||
ifndef MINGW
|
ifndef MINGW
|
||||||
ifdef GCC45
|
ifdef GCC45
|
||||||
WFLAGS+=-Wunsuffixed-float-constants
|
WFLAGS+=-Wunsuffixed-float-constants
|
||||||
|
@ -155,6 +175,7 @@ ifdef GCC43
|
||||||
endif
|
endif
|
||||||
WFLAGS+=$(OLDWFLAGS)
|
WFLAGS+=$(OLDWFLAGS)
|
||||||
|
|
||||||
|
|
||||||
#indicate platform and what interface use with
|
#indicate platform and what interface use with
|
||||||
ifndef WINCE
|
ifndef WINCE
|
||||||
ifndef XBOX
|
ifndef XBOX
|
||||||
|
|
|
@ -49,7 +49,7 @@ static inline void B_BuildTailsTiccmd(mobj_t *sonic, mobj_t *tails, ticcmd_t *cm
|
||||||
if (sonic->player->pflags & (PF_MACESPIN|PF_ITEMHANG))
|
if (sonic->player->pflags & (PF_MACESPIN|PF_ITEMHANG))
|
||||||
{
|
{
|
||||||
cmd->forwardmove = sonic->player->cmd.forwardmove;
|
cmd->forwardmove = sonic->player->cmd.forwardmove;
|
||||||
cmd->angleturn = abs(tails->angle - sonic->angle)>>16;
|
cmd->angleturn = abs((tails->angle - sonic->angle))>>16;
|
||||||
if (sonic->angle < tails->angle)
|
if (sonic->angle < tails->angle)
|
||||||
cmd->angleturn = -cmd->angleturn;
|
cmd->angleturn = -cmd->angleturn;
|
||||||
} else if (dist > FixedMul(512*FRACUNIT, tails->scale))
|
} else if (dist > FixedMul(512*FRACUNIT, tails->scale))
|
||||||
|
|
|
@ -202,7 +202,7 @@ static void CONS_Bind_f(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
key = G_KeyStringtoNum(COM_Argv(1));
|
key = G_KeyStringtoNum(COM_Argv(1));
|
||||||
if (!key)
|
if (key <= 0 || key >= NUMINPUTS)
|
||||||
{
|
{
|
||||||
CONS_Alert(CONS_NOTICE, M_GetText("Invalid key name\n"));
|
CONS_Alert(CONS_NOTICE, M_GetText("Invalid key name\n"));
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -210,13 +210,6 @@ extern FILE *logstream;
|
||||||
// Note that we use this to help keep internal testing in check; this is why v2.1.0 is not version "1".
|
// Note that we use this to help keep internal testing in check; this is why v2.1.0 is not version "1".
|
||||||
#define MODVERSION 19
|
#define MODVERSION 19
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// some tests, enable or disable it if it run or not
|
|
||||||
#define SPLITSCREEN
|
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
||||||
// The maximum number of players, multiplayer/networking.
|
// The maximum number of players, multiplayer/networking.
|
||||||
|
@ -352,11 +345,7 @@ void CONS_Debug(INT32 debugflags, const char *fmt, ...) FUNCDEBUG;
|
||||||
#include "m_swap.h"
|
#include "m_swap.h"
|
||||||
|
|
||||||
// Things that used to be in dstrings.h
|
// Things that used to be in dstrings.h
|
||||||
#define DEVMAPS "devmaps"
|
|
||||||
#define DEVDATA "devdata"
|
|
||||||
|
|
||||||
#define SAVEGAMENAME "srb2sav"
|
#define SAVEGAMENAME "srb2sav"
|
||||||
|
|
||||||
char savegamename[256];
|
char savegamename[256];
|
||||||
|
|
||||||
// m_misc.h
|
// m_misc.h
|
||||||
|
|
|
@ -603,7 +603,7 @@ static void F_IntroDrawScene(void)
|
||||||
|
|
||||||
if (finalecount-84 < 58) { // Pure Fat is driving up!
|
if (finalecount-84 < 58) { // Pure Fat is driving up!
|
||||||
int ftime = (finalecount-84);
|
int ftime = (finalecount-84);
|
||||||
x = (-189<<FRACBITS) + (FixedMul((6<<FRACBITS)+FRACUNIT/3, ftime<<FRACBITS) - FixedMul((6<<FRACBITS)+FRACUNIT/3, FixedDiv(FixedMul(ftime<<FRACBITS, ftime<<FRACBITS), 120<<FRACBITS)));
|
x = (-189*FRACUNIT) + (FixedMul((6<<FRACBITS)+FRACUNIT/3, ftime<<FRACBITS) - FixedMul((6<<FRACBITS)+FRACUNIT/3, FixedDiv(FixedMul(ftime<<FRACBITS, ftime<<FRACBITS), 120<<FRACBITS)));
|
||||||
y = (BASEVIDHEIGHT<<FRACBITS) - FixedMul(417<<FRACBITS, aspect);
|
y = (BASEVIDHEIGHT<<FRACBITS) - FixedMul(417<<FRACBITS, aspect);
|
||||||
// Draw the body
|
// Draw the body
|
||||||
V_DrawSciencePatch(x, y, V_SNAPTOLEFT|V_SNAPTOBOTTOM, (patch = W_CachePatchName("PUREFAT1", PU_CACHE)), aspect);
|
V_DrawSciencePatch(x, y, V_SNAPTOLEFT|V_SNAPTOBOTTOM, (patch = W_CachePatchName("PUREFAT1", PU_CACHE)), aspect);
|
||||||
|
|
|
@ -5571,7 +5571,7 @@ boolean G_CheckDemoStatus(void)
|
||||||
free(demobuffer);
|
free(demobuffer);
|
||||||
demorecording = false;
|
demorecording = false;
|
||||||
|
|
||||||
if (!modeattacking == ATTACKING_RECORD)
|
if (modeattacking != ATTACKING_RECORD)
|
||||||
{
|
{
|
||||||
if (saved)
|
if (saved)
|
||||||
CONS_Printf(M_GetText("Demo %s recorded\n"), demoname);
|
CONS_Printf(M_GetText("Demo %s recorded\n"), demoname);
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#include "g_input.h"
|
#include "g_input.h"
|
||||||
#include "keys.h"
|
#include "keys.h"
|
||||||
#include "hu_stuff.h" // need HUFONT start & end
|
#include "hu_stuff.h" // need HUFONT start & end
|
||||||
#include "keys.h"
|
|
||||||
#include "d_net.h"
|
#include "d_net.h"
|
||||||
#include "console.h"
|
#include "console.h"
|
||||||
|
|
||||||
|
@ -1042,13 +1041,13 @@ INT32 G_KeyStringtoNum(const char *keystr)
|
||||||
if (!keystr[1] && keystr[0] > ' ' && keystr[0] <= 'z')
|
if (!keystr[1] && keystr[0] > ' ' && keystr[0] <= 'z')
|
||||||
return keystr[0];
|
return keystr[0];
|
||||||
|
|
||||||
|
if (!strncmp(keystr, "KEY", 3) && keystr[3] >= '0' && keystr[3] <= '9')
|
||||||
|
return atoi(&keystr[3]);
|
||||||
|
|
||||||
for (j = 0; j < NUMKEYNAMES; j++)
|
for (j = 0; j < NUMKEYNAMES; j++)
|
||||||
if (!stricmp(keynames[j].name, keystr))
|
if (!stricmp(keynames[j].name, keystr))
|
||||||
return keynames[j].keynum;
|
return keynames[j].keynum;
|
||||||
|
|
||||||
if (strlen(keystr) > 3)
|
|
||||||
return atoi(&keystr[3]);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2856,7 +2856,6 @@ static void HWR_AddPolyObjectPlanes(void)
|
||||||
// : Draw one or more line segments.
|
// : Draw one or more line segments.
|
||||||
// Notes : Sets gr_cursectorlight to the light of the parent sector, to modulate wall textures
|
// Notes : Sets gr_cursectorlight to the light of the parent sector, to modulate wall textures
|
||||||
// -----------------+
|
// -----------------+
|
||||||
static lumpnum_t doomwaterflat; //set by R_InitFlats hack
|
|
||||||
static void HWR_Subsector(size_t num)
|
static void HWR_Subsector(size_t num)
|
||||||
{
|
{
|
||||||
INT16 count;
|
INT16 count;
|
||||||
|
@ -2867,7 +2866,6 @@ static void HWR_Subsector(size_t num)
|
||||||
INT32 ceilinglightlevel;
|
INT32 ceilinglightlevel;
|
||||||
INT32 locFloorHeight, locCeilingHeight;
|
INT32 locFloorHeight, locCeilingHeight;
|
||||||
INT32 light = 0;
|
INT32 light = 0;
|
||||||
fixed_t wh;
|
|
||||||
extracolormap_t *floorcolormap;
|
extracolormap_t *floorcolormap;
|
||||||
extracolormap_t *ceilingcolormap;
|
extracolormap_t *ceilingcolormap;
|
||||||
|
|
||||||
|
@ -3193,26 +3191,6 @@ static void HWR_Subsector(size_t num)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//20/08/99: Changed by Hurdler (taken from faB's code)
|
|
||||||
#ifdef DOPLANES
|
|
||||||
// -------------------- WATER IN DEV. TEST ------------------------
|
|
||||||
//dck hack : use abs(tag) for waterheight
|
|
||||||
//ilag : Since we changed to UINT16 for sector tags, simulate INT16
|
|
||||||
if (gr_frontsector->tag > 32767)
|
|
||||||
{
|
|
||||||
wh = ((65535-gr_frontsector->tag) <<FRACBITS) + (FRACUNIT/2);
|
|
||||||
if (wh > gr_frontsector->floorheight &&
|
|
||||||
wh < gr_frontsector->ceilingheight)
|
|
||||||
{
|
|
||||||
HWR_GetFlat(doomwaterflat);
|
|
||||||
HWR_RenderPlane(gr_frontsector,
|
|
||||||
&extrasubsectors[num], wh, PF_Translucent,
|
|
||||||
gr_frontsector->lightlevel, doomwaterflat,
|
|
||||||
NULL, 255, false, gr_frontsector->lightlist[light].extra_colormap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// -------------------- WATER IN DEV. TEST ------------------------
|
|
||||||
#endif
|
|
||||||
sub->validcount = validcount;
|
sub->validcount = validcount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5499,11 +5477,6 @@ void HWR_Startup(void)
|
||||||
HWR_AddEngineCommands();
|
HWR_AddEngineCommands();
|
||||||
HWR_InitTextureCache();
|
HWR_InitTextureCache();
|
||||||
|
|
||||||
// for test water translucent surface
|
|
||||||
doomwaterflat = W_CheckNumForName("FWATER1");
|
|
||||||
if (doomwaterflat == LUMPERROR) // if FWATER1 not found (in doom shareware)
|
|
||||||
doomwaterflat = W_GetNumForName("WATER0");
|
|
||||||
|
|
||||||
HWR_InitMD2();
|
HWR_InitMD2();
|
||||||
|
|
||||||
#ifdef ALAM_LIGHTING
|
#ifdef ALAM_LIGHTING
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "../r_things.h"
|
#include "../r_things.h"
|
||||||
|
|
||||||
#include "hw_main.h"
|
#include "hw_main.h"
|
||||||
|
#include "../v_video.h"
|
||||||
#ifdef HAVE_PNG
|
#ifdef HAVE_PNG
|
||||||
|
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
|
@ -881,6 +882,59 @@ static void md2_loadTexture(md2_t *model)
|
||||||
HWR_UnlockCachedPatch(grpatch);
|
HWR_UnlockCachedPatch(grpatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -----------------+
|
||||||
|
// md2_loadBlendTexture : Download a pcx or png texture for blending MD2 models
|
||||||
|
// -----------------+
|
||||||
|
static void md2_loadBlendTexture(md2_t *model)
|
||||||
|
{
|
||||||
|
GLPatch_t *grpatch;
|
||||||
|
char *filename = Z_Malloc(strlen(model->filename)+7, PU_STATIC, NULL);
|
||||||
|
strcpy(filename, model->filename);
|
||||||
|
|
||||||
|
FIL_ForceExtension(filename, "_blend.png");
|
||||||
|
|
||||||
|
if (model->blendgrpatch)
|
||||||
|
{
|
||||||
|
grpatch = model->blendgrpatch;
|
||||||
|
Z_Free(grpatch->mipmap.grInfo.data);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
grpatch = Z_Calloc(sizeof *grpatch, PU_HWRPATCHINFO,
|
||||||
|
&(model->blendgrpatch));
|
||||||
|
|
||||||
|
if (!grpatch->mipmap.downloaded && !grpatch->mipmap.grInfo.data)
|
||||||
|
{
|
||||||
|
int w = 0, h = 0;
|
||||||
|
#ifdef HAVE_PNG
|
||||||
|
grpatch->mipmap.grInfo.format = PNG_Load(filename, &w, &h, grpatch);
|
||||||
|
if (grpatch->mipmap.grInfo.format == 0)
|
||||||
|
#endif
|
||||||
|
grpatch->mipmap.grInfo.format = PCX_Load(filename, &w, &h, grpatch);
|
||||||
|
if (grpatch->mipmap.grInfo.format == 0)
|
||||||
|
{
|
||||||
|
Z_Free(filename);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
grpatch->mipmap.downloaded = 0;
|
||||||
|
grpatch->mipmap.flags = 0;
|
||||||
|
|
||||||
|
grpatch->width = (INT16)w;
|
||||||
|
grpatch->height = (INT16)h;
|
||||||
|
grpatch->mipmap.width = (UINT16)w;
|
||||||
|
grpatch->mipmap.height = (UINT16)h;
|
||||||
|
|
||||||
|
// not correct!
|
||||||
|
grpatch->mipmap.grInfo.smallLodLog2 = GR_LOD_LOG2_256;
|
||||||
|
grpatch->mipmap.grInfo.largeLodLog2 = GR_LOD_LOG2_256;
|
||||||
|
grpatch->mipmap.grInfo.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
||||||
|
}
|
||||||
|
HWD.pfnSetTexture(&grpatch->mipmap); // We do need to do this so that it can be cleared and knows to recreate it when necessary
|
||||||
|
HWR_UnlockCachedPatch(grpatch);
|
||||||
|
|
||||||
|
Z_Free(filename);
|
||||||
|
}
|
||||||
|
|
||||||
// Don't spam the console, or the OS with fopen requests!
|
// Don't spam the console, or the OS with fopen requests!
|
||||||
static boolean nomd2s = false;
|
static boolean nomd2s = false;
|
||||||
|
|
||||||
|
@ -1050,6 +1104,248 @@ spritemd2found:
|
||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void HWR_CreateBlendedTexture(GLPatch_t *gpatch, GLPatch_t *blendgpatch, GLMipmap_t *grmip, skincolors_t color)
|
||||||
|
{
|
||||||
|
UINT16 w = gpatch->width, h = gpatch->height;
|
||||||
|
UINT32 size = w*h;
|
||||||
|
RGBA_t *image, *blendimage, *cur, blendcolor;
|
||||||
|
|
||||||
|
if (grmip->width == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
grmip->width = gpatch->width;
|
||||||
|
grmip->height = gpatch->height;
|
||||||
|
|
||||||
|
// no wrap around, no chroma key
|
||||||
|
grmip->flags = 0;
|
||||||
|
// setup the texture info
|
||||||
|
grmip->grInfo.format = GR_RGBA;
|
||||||
|
}
|
||||||
|
|
||||||
|
Z_Free(grmip->grInfo.data);
|
||||||
|
grmip->grInfo.data = NULL;
|
||||||
|
|
||||||
|
cur = Z_Malloc(size*4, PU_HWRCACHE, &grmip->grInfo.data);
|
||||||
|
memset(cur, 0x00, size*4);
|
||||||
|
|
||||||
|
image = gpatch->mipmap.grInfo.data;
|
||||||
|
blendimage = blendgpatch->mipmap.grInfo.data;
|
||||||
|
|
||||||
|
switch (color)
|
||||||
|
{
|
||||||
|
case SKINCOLOR_WHITE:
|
||||||
|
blendcolor = V_GetColor(3);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_SILVER:
|
||||||
|
blendcolor = V_GetColor(10);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_GREY:
|
||||||
|
blendcolor = V_GetColor(15);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_BLACK:
|
||||||
|
blendcolor = V_GetColor(27);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_CYAN:
|
||||||
|
blendcolor = V_GetColor(215);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_TEAL:
|
||||||
|
blendcolor = V_GetColor(221);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_STEELBLUE:
|
||||||
|
blendcolor = V_GetColor(203);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_BLUE:
|
||||||
|
blendcolor = V_GetColor(232);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_PEACH:
|
||||||
|
blendcolor = V_GetColor(71);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_TAN:
|
||||||
|
blendcolor = V_GetColor(79);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_PINK:
|
||||||
|
blendcolor = V_GetColor(147);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_LAVENDER:
|
||||||
|
blendcolor = V_GetColor(251);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_PURPLE:
|
||||||
|
blendcolor = V_GetColor(195);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_ORANGE:
|
||||||
|
blendcolor = V_GetColor(87);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_ROSEWOOD:
|
||||||
|
blendcolor = V_GetColor(94);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_BEIGE:
|
||||||
|
blendcolor = V_GetColor(40);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_BROWN:
|
||||||
|
blendcolor = V_GetColor(57);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_RED:
|
||||||
|
blendcolor = V_GetColor(130);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_DARKRED:
|
||||||
|
blendcolor = V_GetColor(139);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_NEONGREEN:
|
||||||
|
blendcolor = V_GetColor(184);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_GREEN:
|
||||||
|
blendcolor = V_GetColor(166);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_ZIM:
|
||||||
|
blendcolor = V_GetColor(180);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_OLIVE:
|
||||||
|
blendcolor = V_GetColor(108);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_YELLOW:
|
||||||
|
blendcolor = V_GetColor(104);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_GOLD:
|
||||||
|
blendcolor = V_GetColor(115);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SKINCOLOR_SUPER1:
|
||||||
|
blendcolor = V_GetColor(97);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_SUPER2:
|
||||||
|
blendcolor = V_GetColor(100);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_SUPER3:
|
||||||
|
blendcolor = V_GetColor(103);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_SUPER4:
|
||||||
|
blendcolor = V_GetColor(113);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_SUPER5:
|
||||||
|
blendcolor = V_GetColor(116);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SKINCOLOR_TSUPER1:
|
||||||
|
blendcolor = V_GetColor(81);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_TSUPER2:
|
||||||
|
blendcolor = V_GetColor(82);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_TSUPER3:
|
||||||
|
blendcolor = V_GetColor(84);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_TSUPER4:
|
||||||
|
blendcolor = V_GetColor(85);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_TSUPER5:
|
||||||
|
blendcolor = V_GetColor(87);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SKINCOLOR_KSUPER1:
|
||||||
|
blendcolor = V_GetColor(122);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_KSUPER2:
|
||||||
|
blendcolor = V_GetColor(123);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_KSUPER3:
|
||||||
|
blendcolor = V_GetColor(124);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_KSUPER4:
|
||||||
|
blendcolor = V_GetColor(125);
|
||||||
|
break;
|
||||||
|
case SKINCOLOR_KSUPER5:
|
||||||
|
blendcolor = V_GetColor(126);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
blendcolor = V_GetColor(247);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (size--)
|
||||||
|
{
|
||||||
|
if (blendimage->s.alpha == 0)
|
||||||
|
{
|
||||||
|
// Don't bother with blending the pixel if the alpha of the blend pixel is 0
|
||||||
|
cur->rgba = image->rgba;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
INT32 tempcolor;
|
||||||
|
INT16 tempmult, tempalpha;
|
||||||
|
tempalpha = -(abs(blendimage->s.red-127)-127)*2;
|
||||||
|
if (tempalpha > 255)
|
||||||
|
tempalpha = 255;
|
||||||
|
else if (tempalpha < 0)
|
||||||
|
tempalpha = 0;
|
||||||
|
|
||||||
|
tempmult = (blendimage->s.red-127)*2;
|
||||||
|
if (tempmult > 255)
|
||||||
|
tempmult = 255;
|
||||||
|
else if (tempmult < 0)
|
||||||
|
tempmult = 0;
|
||||||
|
|
||||||
|
tempcolor = (image->s.red*(255-blendimage->s.alpha))/255 + ((tempmult + ((tempalpha*blendcolor.s.red)/255)) * blendimage->s.alpha)/255;
|
||||||
|
cur->s.red = (UINT8)tempcolor;
|
||||||
|
tempcolor = (image->s.green*(255-blendimage->s.alpha))/255 + ((tempmult + ((tempalpha*blendcolor.s.green)/255)) * blendimage->s.alpha)/255;
|
||||||
|
cur->s.green = (UINT8)tempcolor;
|
||||||
|
tempcolor = (image->s.blue*(255-blendimage->s.alpha))/255 + ((tempmult + ((tempalpha*blendcolor.s.blue)/255)) * blendimage->s.alpha)/255;
|
||||||
|
cur->s.blue = (UINT8)tempcolor;
|
||||||
|
cur->s.alpha = image->s.alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur++; image++; blendimage++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void HWR_GetBlendedTexture(GLPatch_t *gpatch, GLPatch_t *blendgpatch, const UINT8 *colormap, skincolors_t color)
|
||||||
|
{
|
||||||
|
// mostly copied from HWR_GetMappedPatch, hence the similarities and comment
|
||||||
|
GLMipmap_t *grmip, *newmip;
|
||||||
|
|
||||||
|
if (colormap == colormaps || colormap == NULL)
|
||||||
|
{
|
||||||
|
// Don't do any blending
|
||||||
|
HWD.pfnSetTexture(&gpatch->mipmap);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// search for the mimmap
|
||||||
|
// skip the first (no colormap translated)
|
||||||
|
for (grmip = &gpatch->mipmap; grmip->nextcolormap; )
|
||||||
|
{
|
||||||
|
grmip = grmip->nextcolormap;
|
||||||
|
if (grmip->colormap == colormap)
|
||||||
|
{
|
||||||
|
if (grmip->downloaded && grmip->grInfo.data)
|
||||||
|
{
|
||||||
|
HWD.pfnSetTexture(grmip); // found the colormap, set it to the correct texture
|
||||||
|
Z_ChangeTag(grmip->grInfo.data, PU_HWRCACHE_UNLOCKED);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If here, the blended texture has not been created
|
||||||
|
// So we create it
|
||||||
|
|
||||||
|
//BP: WARNING: don't free it manually without clearing the cache of harware renderer
|
||||||
|
// (it have a liste of mipmap)
|
||||||
|
// this malloc is cleared in HWR_FreeTextureCache
|
||||||
|
// (...) unfortunately z_malloc fragment alot the memory :(so malloc is better
|
||||||
|
newmip = calloc(1, sizeof (*newmip));
|
||||||
|
if (newmip == NULL)
|
||||||
|
I_Error("%s: Out of memory", "HWR_GetMappedPatch");
|
||||||
|
grmip->nextcolormap = newmip;
|
||||||
|
newmip->colormap = colormap;
|
||||||
|
|
||||||
|
HWR_CreateBlendedTexture(gpatch, blendgpatch, newmip, color);
|
||||||
|
|
||||||
|
HWD.pfnSetTexture(newmip);
|
||||||
|
Z_ChangeTag(newmip->grInfo.data, PU_HWRCACHE_UNLOCKED);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// -----------------+
|
// -----------------+
|
||||||
// HWR_DrawMD2 : Draw MD2
|
// HWR_DrawMD2 : Draw MD2
|
||||||
|
@ -1180,13 +1476,25 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
|
||||||
gpatch = md2->grpatch;
|
gpatch = md2->grpatch;
|
||||||
if (!gpatch || !gpatch->mipmap.grInfo.format || !gpatch->mipmap.downloaded)
|
if (!gpatch || !gpatch->mipmap.grInfo.format || !gpatch->mipmap.downloaded)
|
||||||
md2_loadTexture(md2);
|
md2_loadTexture(md2);
|
||||||
|
|
||||||
gpatch = md2->grpatch; // Load it again, because it isn't being loaded into gpatch after md2_loadtexture...
|
gpatch = md2->grpatch; // Load it again, because it isn't being loaded into gpatch after md2_loadtexture...
|
||||||
|
|
||||||
|
if ((gpatch && gpatch->mipmap.grInfo.format) // don't load the blend texture if the base texture isn't available
|
||||||
|
&& (!md2->blendgrpatch || !((GLPatch_t *)md2->blendgrpatch)->mipmap.grInfo.format || !((GLPatch_t *)md2->blendgrpatch)->mipmap.downloaded))
|
||||||
|
md2_loadBlendTexture(md2);
|
||||||
|
|
||||||
if (gpatch && gpatch->mipmap.grInfo.format) // else if meant that if a texture couldn't be loaded, it would just end up using something else's texture
|
if (gpatch && gpatch->mipmap.grInfo.format) // else if meant that if a texture couldn't be loaded, it would just end up using something else's texture
|
||||||
{
|
{
|
||||||
// This is safe, since we know the texture has been downloaded
|
if ((skincolors_t)spr->mobj->color != SKINCOLOR_NONE &&
|
||||||
HWD.pfnSetTexture(&gpatch->mipmap);
|
md2->blendgrpatch && ((GLPatch_t *)md2->blendgrpatch)->mipmap.grInfo.format
|
||||||
|
&& gpatch->width == ((GLPatch_t *)md2->blendgrpatch)->width && gpatch->height == ((GLPatch_t *)md2->blendgrpatch)->height)
|
||||||
|
{
|
||||||
|
HWR_GetBlendedTexture(gpatch, (GLPatch_t *)md2->blendgrpatch, spr->colormap, (skincolors_t)spr->mobj->color);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// This is safe, since we know the texture has been downloaded
|
||||||
|
HWD.pfnSetTexture(&gpatch->mipmap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -120,6 +120,7 @@ typedef struct
|
||||||
float offset;
|
float offset;
|
||||||
md2_model_t *model;
|
md2_model_t *model;
|
||||||
void *grpatch;
|
void *grpatch;
|
||||||
|
void *blendgrpatch;
|
||||||
boolean notfound;
|
boolean notfound;
|
||||||
INT32 skin;
|
INT32 skin;
|
||||||
} md2_t;
|
} md2_t;
|
||||||
|
|
|
@ -2371,7 +2371,7 @@ EXPORT void HWRAPI(MakeScreenTexture) (void)
|
||||||
Clamp2D(GL_TEXTURE_WRAP_S);
|
Clamp2D(GL_TEXTURE_WRAP_S);
|
||||||
Clamp2D(GL_TEXTURE_WRAP_T);
|
Clamp2D(GL_TEXTURE_WRAP_T);
|
||||||
#ifndef KOS_GL_COMPATIBILITY
|
#ifndef KOS_GL_COMPATIBILITY
|
||||||
pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, texsize, texsize, 0);
|
pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, texsize, texsize, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now
|
tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now
|
||||||
|
@ -2399,7 +2399,7 @@ EXPORT void HWRAPI(MakeScreenFinalTexture) (void)
|
||||||
Clamp2D(GL_TEXTURE_WRAP_S);
|
Clamp2D(GL_TEXTURE_WRAP_S);
|
||||||
Clamp2D(GL_TEXTURE_WRAP_T);
|
Clamp2D(GL_TEXTURE_WRAP_T);
|
||||||
#ifndef KOS_GL_COMPATIBILITY
|
#ifndef KOS_GL_COMPATIBILITY
|
||||||
pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, texsize, texsize, 0);
|
pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, texsize, texsize, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now
|
tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now
|
||||||
|
|
|
@ -4223,7 +4223,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
MT_GOOP, // painchance
|
MT_GOOP, // painchance
|
||||||
sfx_dmpain, // painsound
|
sfx_dmpain, // painsound
|
||||||
S_EGGMOBILE2_PAIN2, // meleestate
|
S_EGGMOBILE2_PAIN2, // meleestate
|
||||||
MT_EGGMOBILE2_POGO, // missilestate
|
(statenum_t)MT_EGGMOBILE2_POGO, // missilestate
|
||||||
S_EGGMOBILE2_DIE1, // deathstate
|
S_EGGMOBILE2_DIE1, // deathstate
|
||||||
S_EGGMOBILE2_FLEE1,// xdeathstate
|
S_EGGMOBILE2_FLEE1,// xdeathstate
|
||||||
sfx_cybdth, // deathsound
|
sfx_cybdth, // deathsound
|
||||||
|
|
|
@ -6074,7 +6074,7 @@ static void M_RoomMenu(INT32 choice)
|
||||||
|
|
||||||
for (i = 0; room_list[i].header.buffer[0]; i++)
|
for (i = 0; room_list[i].header.buffer[0]; i++)
|
||||||
{
|
{
|
||||||
if(room_list[i].name != '\0')
|
if(*room_list[i].name != '\0')
|
||||||
{
|
{
|
||||||
MP_RoomMenu[i+1].text = room_list[i].name;
|
MP_RoomMenu[i+1].text = room_list[i].name;
|
||||||
roomIds[i] = room_list[i].id;
|
roomIds[i] = room_list[i].id;
|
||||||
|
|
|
@ -677,7 +677,7 @@ static void M_PNGText(png_structp png_ptr, png_infop png_info_ptr, PNG_CONST png
|
||||||
else
|
else
|
||||||
snprintf(maptext, 8, "Unknown");
|
snprintf(maptext, 8, "Unknown");
|
||||||
|
|
||||||
if (gamestate == GS_LEVEL && mapheaderinfo[gamemap-1]->lvlttl)
|
if (gamestate == GS_LEVEL && mapheaderinfo[gamemap-1]->lvlttl[0] != '\0')
|
||||||
snprintf(lvlttltext, 48, "%s%s%s",
|
snprintf(lvlttltext, 48, "%s%s%s",
|
||||||
mapheaderinfo[gamemap-1]->lvlttl,
|
mapheaderinfo[gamemap-1]->lvlttl,
|
||||||
(mapheaderinfo[gamemap-1]->levelflags & LF_NOZONE) ? "" : " ZONE",
|
(mapheaderinfo[gamemap-1]->levelflags & LF_NOZONE) ? "" : " ZONE",
|
||||||
|
|
|
@ -6362,7 +6362,7 @@ void A_Boss2PogoTarget(mobj_t *actor)
|
||||||
|
|
||||||
if (actor->info->missilestate) // spawn the pogo stick collision box
|
if (actor->info->missilestate) // spawn the pogo stick collision box
|
||||||
{
|
{
|
||||||
mobj_t *pogo = P_SpawnMobj(actor->x, actor->y, actor->z - mobjinfo[actor->info->missilestate].height, actor->info->missilestate);
|
mobj_t *pogo = P_SpawnMobj(actor->x, actor->y, actor->z - mobjinfo[actor->info->missilestate].height, (mobjtype_t)actor->info->missilestate);
|
||||||
pogo->target = actor;
|
pogo->target = actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1339,6 +1339,9 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
player->pflags |= PF_ITEMHANG;
|
player->pflags |= PF_ITEMHANG;
|
||||||
|
|
||||||
|
// Can't jump first frame
|
||||||
|
player->pflags |= PF_JUMPSTASIS;
|
||||||
return;
|
return;
|
||||||
case MT_BIGMINE:
|
case MT_BIGMINE:
|
||||||
case MT_BIGAIRMINE:
|
case MT_BIGAIRMINE:
|
||||||
|
|
|
@ -503,7 +503,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
return true; // overhead
|
return true; // overhead
|
||||||
if (thing->z + thing->height < tmthing->z)
|
if (thing->z + thing->height < tmthing->z)
|
||||||
return true; // underneath
|
return true; // underneath
|
||||||
if (tmthing->player && tmthing->flags & MF_SHOOTABLE)
|
if (tmthing->player && tmthing->flags & MF_SHOOTABLE && thing->health > 0)
|
||||||
P_DamageMobj(tmthing, thing, thing, 1);
|
P_DamageMobj(tmthing, thing, thing, 1);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -514,7 +514,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
return true; // overhead
|
return true; // overhead
|
||||||
if (tmthing->z + tmthing->height < thing->z)
|
if (tmthing->z + tmthing->height < thing->z)
|
||||||
return true; // underneath
|
return true; // underneath
|
||||||
if (thing->player && thing->flags & MF_SHOOTABLE)
|
if (thing->player && thing->flags & MF_SHOOTABLE && tmthing->health > 0)
|
||||||
P_DamageMobj(thing, tmthing, tmthing, 1);
|
P_DamageMobj(thing, tmthing, tmthing, 1);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -2636,8 +2636,8 @@ isblocking:
|
||||||
|
|
||||||
climbangle += (ANGLE_90 * (whichside ? -1 : 1));
|
climbangle += (ANGLE_90 * (whichside ? -1 : 1));
|
||||||
|
|
||||||
if (((!slidemo->player->climbing && abs(slidemo->angle - ANGLE_90 - climbline) < ANGLE_45)
|
if (((!slidemo->player->climbing && abs((slidemo->angle - ANGLE_90 - climbline)) < ANGLE_45)
|
||||||
|| (slidemo->player->climbing == 1 && abs(slidemo->angle - climbline) < ANGLE_135))
|
|| (slidemo->player->climbing == 1 && abs((slidemo->angle - climbline)) < ANGLE_135))
|
||||||
&& P_IsClimbingValid(slidemo->player, climbangle))
|
&& P_IsClimbingValid(slidemo->player, climbangle))
|
||||||
{
|
{
|
||||||
slidemo->angle = climbangle;
|
slidemo->angle = climbangle;
|
||||||
|
|
|
@ -9696,7 +9696,7 @@ void P_SpawnHoopsAndRings(mapthing_t *mthing)
|
||||||
// Diagonal rings (handles both types)
|
// Diagonal rings (handles both types)
|
||||||
else if (mthing->type == 602 || mthing->type == 603) // Diagonal rings (5)
|
else if (mthing->type == 602 || mthing->type == 603) // Diagonal rings (5)
|
||||||
{
|
{
|
||||||
angle_t angle = ANGLE_45 * (mthing->angle/45);
|
angle_t angle = FixedAngle(mthing->angle*FRACUNIT);
|
||||||
mobjtype_t ringthing = MT_RING;
|
mobjtype_t ringthing = MT_RING;
|
||||||
INT32 iterations = 5;
|
INT32 iterations = 5;
|
||||||
if (mthing->type == 603)
|
if (mthing->type == 603)
|
||||||
|
|
|
@ -427,6 +427,8 @@ newseg:
|
||||||
// seg's ending vertex.
|
// seg's ending vertex.
|
||||||
for (i = 0; i < numsegs; ++i)
|
for (i = 0; i < numsegs; ++i)
|
||||||
{
|
{
|
||||||
|
if (segs[i].side != 0) // needs to be frontfacing
|
||||||
|
continue;
|
||||||
if (segs[i].v1->x == seg->v2->x && segs[i].v1->y == seg->v2->y)
|
if (segs[i].v1->x == seg->v2->x && segs[i].v1->y == seg->v2->y)
|
||||||
{
|
{
|
||||||
// Make sure you didn't already add this seg...
|
// Make sure you didn't already add this seg...
|
||||||
|
@ -593,6 +595,9 @@ static void Polyobj_spawnPolyObj(INT32 num, mobj_t *spawnSpot, INT32 id)
|
||||||
seg_t *seg = &segs[i];
|
seg_t *seg = &segs[i];
|
||||||
INT32 polyID, parentID;
|
INT32 polyID, parentID;
|
||||||
|
|
||||||
|
if (seg->side != 0) // needs to be frontfacing
|
||||||
|
continue;
|
||||||
|
|
||||||
if (seg->linedef->special != POLYOBJ_START_LINE)
|
if (seg->linedef->special != POLYOBJ_START_LINE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
15
src/p_user.c
15
src/p_user.c
|
@ -52,9 +52,6 @@
|
||||||
#include "hardware/hw_main.h"
|
#include "hardware/hw_main.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Index of the special effects (INVUL inverse) map.
|
|
||||||
#define INVERSECOLORMAP 32
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
static void P_NukeAllPlayers(player_t *player);
|
static void P_NukeAllPlayers(player_t *player);
|
||||||
#endif
|
#endif
|
||||||
|
@ -6343,8 +6340,7 @@ static void P_MovePlayer(player_t *player)
|
||||||
if (!(player->powers[pw_nocontrol] & (1<<15)))
|
if (!(player->powers[pw_nocontrol] & (1<<15)))
|
||||||
player->pflags |= PF_JUMPSTASIS;
|
player->pflags |= PF_JUMPSTASIS;
|
||||||
}
|
}
|
||||||
else
|
// note: don't unset stasis here
|
||||||
player->pflags &= ~PF_FULLSTASIS;
|
|
||||||
|
|
||||||
if (!player->spectator && G_TagGametype())
|
if (!player->spectator && G_TagGametype())
|
||||||
{
|
{
|
||||||
|
@ -7969,9 +7965,9 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
|
||||||
if (player == &players[consoleplayer])
|
if (player == &players[consoleplayer])
|
||||||
{
|
{
|
||||||
if (focusangle >= localangle)
|
if (focusangle >= localangle)
|
||||||
localangle += abs(focusangle - localangle)>>5;
|
localangle += abs((focusangle - localangle))>>5;
|
||||||
else
|
else
|
||||||
localangle -= abs(focusangle - localangle)>>5;
|
localangle -= abs((focusangle - localangle))>>5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (P_AnalogMove(player)) // Analog
|
else if (P_AnalogMove(player)) // Analog
|
||||||
|
@ -8931,6 +8927,11 @@ void P_PlayerThink(player_t *player)
|
||||||
if (!player->mo)
|
if (!player->mo)
|
||||||
return; // P_MovePlayer removed player->mo.
|
return; // P_MovePlayer removed player->mo.
|
||||||
|
|
||||||
|
// Unset statis flags after moving.
|
||||||
|
// In other words, if you manually set stasis via code,
|
||||||
|
// it lasts for one tic.
|
||||||
|
player->pflags &= ~PF_FULLSTASIS;
|
||||||
|
|
||||||
#ifdef POLYOBJECTS
|
#ifdef POLYOBJECTS
|
||||||
if (player->onconveyor == 1)
|
if (player->onconveyor == 1)
|
||||||
player->cmomy = player->cmomx = 0;
|
player->cmomy = player->cmomx = 0;
|
||||||
|
|
|
@ -32,7 +32,6 @@ sector_t *backsector;
|
||||||
// 896 drawsegs! So too bad here's a limit removal a-la-Boom
|
// 896 drawsegs! So too bad here's a limit removal a-la-Boom
|
||||||
drawseg_t *drawsegs = NULL;
|
drawseg_t *drawsegs = NULL;
|
||||||
drawseg_t *ds_p = NULL;
|
drawseg_t *ds_p = NULL;
|
||||||
drawseg_t *firstnewseg = NULL;
|
|
||||||
|
|
||||||
// indicates doors closed wrt automap bugfix:
|
// indicates doors closed wrt automap bugfix:
|
||||||
INT32 doorclosed;
|
INT32 doorclosed;
|
||||||
|
|
|
@ -30,7 +30,6 @@ extern INT32 checkcoord[12][4];
|
||||||
|
|
||||||
extern drawseg_t *drawsegs;
|
extern drawseg_t *drawsegs;
|
||||||
extern drawseg_t *ds_p;
|
extern drawseg_t *ds_p;
|
||||||
extern drawseg_t *firstnewseg;
|
|
||||||
extern INT32 doorclosed;
|
extern INT32 doorclosed;
|
||||||
|
|
||||||
typedef void (*drawfunc_t)(INT32 start, INT32 stop);
|
typedef void (*drawfunc_t)(INT32 start, INT32 stop);
|
||||||
|
|
|
@ -1486,13 +1486,11 @@ void R_StoreWallRange(INT32 start, INT32 stop)
|
||||||
if (ds_p == drawsegs+maxdrawsegs)
|
if (ds_p == drawsegs+maxdrawsegs)
|
||||||
{
|
{
|
||||||
size_t pos = ds_p - drawsegs;
|
size_t pos = ds_p - drawsegs;
|
||||||
size_t pos2 = firstnewseg - drawsegs;
|
|
||||||
size_t newmax = maxdrawsegs ? maxdrawsegs*2 : 128;
|
size_t newmax = maxdrawsegs ? maxdrawsegs*2 : 128;
|
||||||
if (firstseg)
|
if (firstseg)
|
||||||
firstseg = (drawseg_t *)(firstseg - drawsegs);
|
firstseg = (drawseg_t *)(firstseg - drawsegs);
|
||||||
drawsegs = Z_Realloc(drawsegs, newmax*sizeof (*drawsegs), PU_STATIC, NULL);
|
drawsegs = Z_Realloc(drawsegs, newmax*sizeof (*drawsegs), PU_STATIC, NULL);
|
||||||
ds_p = drawsegs + pos;
|
ds_p = drawsegs + pos;
|
||||||
firstnewseg = drawsegs + pos2;
|
|
||||||
maxdrawsegs = newmax;
|
maxdrawsegs = newmax;
|
||||||
if (firstseg)
|
if (firstseg)
|
||||||
firstseg = drawsegs + (size_t)firstseg;
|
firstseg = drawsegs + (size_t)firstseg;
|
||||||
|
|
|
@ -57,7 +57,7 @@ if(${SDL2_FOUND})
|
||||||
${SRB2_SDL2_SOURCES}
|
${SRB2_SDL2_SOURCES}
|
||||||
${SRB2_SDL2_HEADERS}
|
${SRB2_SDL2_HEADERS}
|
||||||
)
|
)
|
||||||
|
|
||||||
source_group("Main" FILES ${SRB2_CORE_SOURCES} ${SRB2_CORE_HEADERS})
|
source_group("Main" FILES ${SRB2_CORE_SOURCES} ${SRB2_CORE_HEADERS})
|
||||||
source_group("Renderer" FILES ${SRB2_CORE_RENDER_SOURCES})
|
source_group("Renderer" FILES ${SRB2_CORE_RENDER_SOURCES})
|
||||||
source_group("Game" FILES ${SRB2_CORE_GAME_SOURCES})
|
source_group("Game" FILES ${SRB2_CORE_GAME_SOURCES})
|
||||||
|
@ -117,7 +117,7 @@ if(${SDL2_FOUND})
|
||||||
add_executable(SRB2SDL2 MACOSX_BUNDLE WIN32 ${SRB2_SDL2_TOTAL_SOURCES})
|
add_executable(SRB2SDL2 MACOSX_BUNDLE WIN32 ${SRB2_SDL2_TOTAL_SOURCES})
|
||||||
set_target_properties(SRB2SDL2 PROPERTIES OUTPUT_NAME ${SRB2_SDL2_EXE_NAME})
|
set_target_properties(SRB2SDL2 PROPERTIES OUTPUT_NAME ${SRB2_SDL2_EXE_NAME})
|
||||||
|
|
||||||
if(CLANG)
|
if((CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))
|
||||||
add_framework(CoreFoundation SRB2SDL2)
|
add_framework(CoreFoundation SRB2SDL2)
|
||||||
add_framework(SDL2 SRB2SDL2)
|
add_framework(SDL2 SRB2SDL2)
|
||||||
add_framework(SDL2_mixer SRB2SDL2)
|
add_framework(SDL2_mixer SRB2SDL2)
|
||||||
|
@ -224,7 +224,7 @@ if(${SDL2_FOUND})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#### Installation ####
|
#### Installation ####
|
||||||
if (CLANG)
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||||
install(TARGETS SRB2SDL2
|
install(TARGETS SRB2SDL2
|
||||||
BUNDLE DESTINATION .
|
BUNDLE DESTINATION .
|
||||||
)
|
)
|
||||||
|
@ -265,7 +265,7 @@ if(${SDL2_FOUND})
|
||||||
|
|
||||||
|
|
||||||
# Mac bundle fixup
|
# Mac bundle fixup
|
||||||
if(CLANG)
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||||
install(CODE "
|
install(CODE "
|
||||||
include(BundleUtilities)
|
include(BundleUtilities)
|
||||||
fixup_bundle(\"${CMAKE_INSTALL_PREFIX}/Sonic Robo Blast 2.app\"
|
fixup_bundle(\"${CMAKE_INSTALL_PREFIX}/Sonic Robo Blast 2.app\"
|
||||||
|
@ -279,4 +279,4 @@ if(${SDL2_FOUND})
|
||||||
else()
|
else()
|
||||||
message(WARNING "SDL2 was not found, so the SDL2 target will not be available.")
|
message(WARNING "SDL2 was not found, so the SDL2 target will not be available.")
|
||||||
set(SRB2_SDL2_AVAILABLE NO PARENT_SCOPE)
|
set(SRB2_SDL2_AVAILABLE NO PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -119,6 +119,12 @@ ifdef SDL_NET
|
||||||
SDL_LDFLAGS+=-lSDL2_net
|
SDL_LDFLAGS+=-lSDL2_net
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef MINGW
|
||||||
|
ifndef NOSDLMAIN
|
||||||
|
SDLMAIN=1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef SDLMAIN
|
ifdef SDLMAIN
|
||||||
OPTS+=-DSDLMAIN
|
OPTS+=-DSDLMAIN
|
||||||
else
|
else
|
||||||
|
|
|
@ -55,6 +55,10 @@ PSP_MAIN_THREAD_STACK_SIZE_KB(256);
|
||||||
#include "i_ttf.h"
|
#include "i_ttf.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined (_WIN32) && !defined (main)
|
||||||
|
//#define SDLMAIN
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef SDLMAIN
|
#ifdef SDLMAIN
|
||||||
#include "SDL_main.h"
|
#include "SDL_main.h"
|
||||||
#elif defined(FORCESDLMAIN)
|
#elif defined(FORCESDLMAIN)
|
||||||
|
@ -132,7 +136,6 @@ static inline VOID MakeCodeWritable(VOID)
|
||||||
|
|
||||||
\return int
|
\return int
|
||||||
*/
|
*/
|
||||||
FUNCNORETURN
|
|
||||||
#if defined (_XBOX) && defined (__GNUC__)
|
#if defined (_XBOX) && defined (__GNUC__)
|
||||||
void XBoxStartup()
|
void XBoxStartup()
|
||||||
{
|
{
|
||||||
|
@ -141,8 +144,10 @@ void XBoxStartup()
|
||||||
myargv = NULL;
|
myargv = NULL;
|
||||||
#else
|
#else
|
||||||
#ifdef FORCESDLMAIN
|
#ifdef FORCESDLMAIN
|
||||||
|
FUNCNORETURN
|
||||||
int SDL_main(int argc, char **argv)
|
int SDL_main(int argc, char **argv)
|
||||||
#else
|
#else
|
||||||
|
FUNCNORETURN
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,9 +45,6 @@ typedef DWORD (WINAPI *p_timeGetTime) (void);
|
||||||
typedef UINT (WINAPI *p_timeEndPeriod) (UINT);
|
typedef UINT (WINAPI *p_timeEndPeriod) (UINT);
|
||||||
typedef HANDLE (WINAPI *p_OpenFileMappingA) (DWORD, BOOL, LPCSTR);
|
typedef HANDLE (WINAPI *p_OpenFileMappingA) (DWORD, BOOL, LPCSTR);
|
||||||
typedef LPVOID (WINAPI *p_MapViewOfFile) (HANDLE, DWORD, DWORD, DWORD, SIZE_T);
|
typedef LPVOID (WINAPI *p_MapViewOfFile) (HANDLE, DWORD, DWORD, DWORD, SIZE_T);
|
||||||
typedef HANDLE (WINAPI *p_GetCurrentProcess) (VOID);
|
|
||||||
typedef BOOL (WINAPI *p_GetProcessAffinityMask) (HANDLE, PDWORD_PTR, PDWORD_PTR);
|
|
||||||
typedef BOOL (WINAPI *p_SetProcessAffinityMask) (HANDLE, DWORD_PTR);
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -2779,7 +2776,6 @@ static const char *locateWad(void)
|
||||||
{
|
{
|
||||||
return returnWadPath;
|
return returnWadPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// examine default dirs
|
// examine default dirs
|
||||||
|
@ -3070,52 +3066,6 @@ const CPUInfoFlags *I_CPUInfo(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX)
|
// note CPUAFFINITY code used to reside here
|
||||||
static void CPUAffinity_OnChange(void);
|
void I_RegisterSysCommands(void) {}
|
||||||
static consvar_t cv_cpuaffinity = {"cpuaffinity", "-1", CV_SAVE | CV_CALL, NULL, CPUAffinity_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
|
||||||
|
|
||||||
static p_GetCurrentProcess pfnGetCurrentProcess = NULL;
|
|
||||||
static p_GetProcessAffinityMask pfnGetProcessAffinityMask = NULL;
|
|
||||||
static p_SetProcessAffinityMask pfnSetProcessAffinityMask = NULL;
|
|
||||||
|
|
||||||
static inline VOID GetAffinityFuncs(VOID)
|
|
||||||
{
|
|
||||||
HMODULE h = GetModuleHandleA("kernel32.dll");
|
|
||||||
pfnGetCurrentProcess = (p_GetCurrentProcess)GetProcAddress(h, "GetCurrentProcess");
|
|
||||||
pfnGetProcessAffinityMask = (p_GetProcessAffinityMask)GetProcAddress(h, "GetProcessAffinityMask");
|
|
||||||
pfnSetProcessAffinityMask = (p_SetProcessAffinityMask)GetProcAddress(h, "SetProcessAffinityMask");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void CPUAffinity_OnChange(void)
|
|
||||||
{
|
|
||||||
DWORD_PTR dwProcMask, dwSysMask;
|
|
||||||
HANDLE selfpid;
|
|
||||||
|
|
||||||
if (!pfnGetCurrentProcess || !pfnGetProcessAffinityMask || !pfnSetProcessAffinityMask)
|
|
||||||
return;
|
|
||||||
else
|
|
||||||
selfpid = pfnGetCurrentProcess();
|
|
||||||
|
|
||||||
pfnGetProcessAffinityMask(selfpid, &dwProcMask, &dwSysMask);
|
|
||||||
|
|
||||||
/* If resulting mask is zero, don't change anything and fall back to
|
|
||||||
* actual mask.
|
|
||||||
*/
|
|
||||||
if(dwSysMask & cv_cpuaffinity.value)
|
|
||||||
{
|
|
||||||
pfnSetProcessAffinityMask(selfpid, dwSysMask & cv_cpuaffinity.value);
|
|
||||||
CV_StealthSetValue(&cv_cpuaffinity, (INT32)(dwSysMask & cv_cpuaffinity.value));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
CV_StealthSetValue(&cv_cpuaffinity, (INT32)dwProcMask);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void I_RegisterSysCommands(void)
|
|
||||||
{
|
|
||||||
#if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX)
|
|
||||||
GetAffinityFuncs();
|
|
||||||
CV_RegisterVar(&cv_cpuaffinity);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1701,21 +1701,11 @@ void I_StartupGraphics(void)
|
||||||
keyboard_started = true;
|
keyboard_started = true;
|
||||||
|
|
||||||
#if !defined(HAVE_TTF)
|
#if !defined(HAVE_TTF)
|
||||||
#ifdef _WIN32 // Initialize Audio as well, otherwise Win32's DirectX can not use audio
|
// Previously audio was init here for questionable reasons?
|
||||||
if (SDL_InitSubSystem(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0)
|
|
||||||
#else //SDL_OpenAudio will do SDL_InitSubSystem(SDL_INIT_AUDIO)
|
|
||||||
if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0)
|
if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0)
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
CONS_Printf(M_GetText("Couldn't initialize SDL's Video System: %s\n"), SDL_GetError());
|
||||||
if (SDL_WasInit(SDL_INIT_AUDIO)==0)
|
return;
|
||||||
CONS_Printf(M_GetText("Couldn't initialize SDL's Audio System with Video System: %s\n"), SDL_GetError());
|
|
||||||
if (SDL_WasInit(SDL_INIT_VIDEO)==0)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
CONS_Printf(M_GetText("Couldn't initialize SDL's Video System: %s\n"), SDL_GetError());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
|
|
@ -77,7 +77,16 @@ static INT32 current_track;
|
||||||
void I_StartupSound(void)
|
void I_StartupSound(void)
|
||||||
{
|
{
|
||||||
I_Assert(!sound_started);
|
I_Assert(!sound_started);
|
||||||
sound_started = true;
|
|
||||||
|
// EE inits audio first so we're following along.
|
||||||
|
if (SDL_WasInit(SDL_INIT_AUDIO) == SDL_INIT_AUDIO)
|
||||||
|
CONS_Printf("SDL Audio already started\n");
|
||||||
|
else if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0)
|
||||||
|
{
|
||||||
|
CONS_Alert(CONS_ERROR, "Error initializing SDL Audio: %s\n", SDL_GetError());
|
||||||
|
// call to start audio failed -- we do not have it
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
midimode = false;
|
midimode = false;
|
||||||
music = NULL;
|
music = NULL;
|
||||||
|
@ -86,19 +95,31 @@ void I_StartupSound(void)
|
||||||
#if SDL_MIXER_VERSION_ATLEAST(1,2,11)
|
#if SDL_MIXER_VERSION_ATLEAST(1,2,11)
|
||||||
Mix_Init(MIX_INIT_FLAC|MIX_INIT_MOD|MIX_INIT_MP3|MIX_INIT_OGG);
|
Mix_Init(MIX_INIT_FLAC|MIX_INIT_MOD|MIX_INIT_MP3|MIX_INIT_OGG);
|
||||||
#endif
|
#endif
|
||||||
Mix_OpenAudio(44100, AUDIO_S16LSB, 2, 2048);
|
|
||||||
|
if (Mix_OpenAudio(44100, AUDIO_S16SYS, 2, 2048) < 0)
|
||||||
|
{
|
||||||
|
CONS_Alert(CONS_ERROR, "Error starting SDL_Mixer: %s\n", Mix_GetError());
|
||||||
|
// call to start audio failed -- we do not have it
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sound_started = true;
|
||||||
Mix_AllocateChannels(256);
|
Mix_AllocateChannels(256);
|
||||||
}
|
}
|
||||||
|
|
||||||
void I_ShutdownSound(void)
|
void I_ShutdownSound(void)
|
||||||
{
|
{
|
||||||
I_Assert(sound_started);
|
if (!sound_started)
|
||||||
|
return; // not an error condition
|
||||||
sound_started = false;
|
sound_started = false;
|
||||||
|
|
||||||
Mix_CloseAudio();
|
Mix_CloseAudio();
|
||||||
#if SDL_MIXER_VERSION_ATLEAST(1,2,11)
|
#if SDL_MIXER_VERSION_ATLEAST(1,2,11)
|
||||||
Mix_Quit();
|
Mix_Quit();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
SDL_QuitSubSystem(SDL_INIT_AUDIO);
|
||||||
|
|
||||||
#ifdef HAVE_LIBGME
|
#ifdef HAVE_LIBGME
|
||||||
if (gme)
|
if (gme)
|
||||||
gme_delete(gme);
|
gme_delete(gme);
|
||||||
|
|
|
@ -1213,6 +1213,16 @@ void I_StartupSound(void)
|
||||||
// Configure sound device
|
// Configure sound device
|
||||||
CONS_Printf("I_StartupSound:\n");
|
CONS_Printf("I_StartupSound:\n");
|
||||||
|
|
||||||
|
// EE inits audio first so we're following along.
|
||||||
|
if (SDL_WasInit(SDL_INIT_AUDIO) == SDL_INIT_AUDIO)
|
||||||
|
CONS_Printf("SDL Audio already started\n");
|
||||||
|
else if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0)
|
||||||
|
{
|
||||||
|
CONS_Alert(CONS_ERROR, "Error initializing SDL Audio: %s\n", SDL_GetError());
|
||||||
|
// call to start audio failed -- we do not have it
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Open the audio device
|
// Open the audio device
|
||||||
if (M_CheckParm ("-freq") && M_IsNextParm())
|
if (M_CheckParm ("-freq") && M_IsNextParm())
|
||||||
{
|
{
|
||||||
|
|
|
@ -3656,7 +3656,7 @@ const CPUInfoFlags *I_CPUInfo(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CPUAffinity_OnChange(void);
|
static void CPUAffinity_OnChange(void);
|
||||||
static consvar_t cv_cpuaffinity = {"cpuaffinity", "1", CV_SAVE | CV_CALL, NULL, CPUAffinity_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
static consvar_t cv_cpuaffinity = {"cpuaffinity", "-1", CV_CALL, NULL, CPUAffinity_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
typedef HANDLE (WINAPI *p_GetCurrentProcess) (VOID);
|
typedef HANDLE (WINAPI *p_GetCurrentProcess) (VOID);
|
||||||
static p_GetCurrentProcess pfnGetCurrentProcess = NULL;
|
static p_GetCurrentProcess pfnGetCurrentProcess = NULL;
|
||||||
|
|
Loading…
Reference in a new issue