mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-12 21:01:00 +00:00
Merge remote-tracking branch 'srb2public/next' into merge-next
This commit is contained in:
commit
aa16edec1d
32 changed files with 471 additions and 57 deletions
3
SRB2.cbp
3
SRB2.cbp
|
@ -1549,6 +1549,9 @@ HW3SOUND for 3D hardware sound support
|
||||||
<Unit filename="src/lua_baselib.c">
|
<Unit filename="src/lua_baselib.c">
|
||||||
<Option compilerVar="CC" />
|
<Option compilerVar="CC" />
|
||||||
</Unit>
|
</Unit>
|
||||||
|
<Unit filename="src/lua_blockmaplib.c">
|
||||||
|
<Option compilerVar="CC" />
|
||||||
|
</Unit>
|
||||||
<Unit filename="src/lua_consolelib.c">
|
<Unit filename="src/lua_consolelib.c">
|
||||||
<Option compilerVar="CC" />
|
<Option compilerVar="CC" />
|
||||||
</Unit>
|
</Unit>
|
||||||
|
|
|
@ -3,10 +3,45 @@ srb2 for Debian
|
||||||
|
|
||||||
SRB2 Debian package!
|
SRB2 Debian package!
|
||||||
Hi there, to rebuild this package just use the SRB2 Makefile system, or, optionally, run
|
Hi there, to rebuild this package just use the SRB2 Makefile system, or, optionally, run
|
||||||
dpkg-buildpackage in the in /bin/Resources directory. You can build these with or without a key
|
dpkg-buildpackage in the in /assets directory. You can build these with or without a key
|
||||||
if you want, but if you want to put these on a repo, generate your own GnuPG key as per the
|
if you want, but if you want to put these on a repo, generate your own GnuPG key as per the
|
||||||
https://help.ubuntu.com/community/GnuPrivacyGuardHowto instructions and pass the -k<keyid>
|
https://help.ubuntu.com/community/GnuPrivacyGuardHowto instructions and pass the -k<keyid>
|
||||||
command to debuild. Make sure you export the key footprint and give them to your users to install
|
command to debuild. Make sure you export the key footprint and give them to your users to install
|
||||||
with apt-key add. Thanks!
|
with apt-key add. Thanks!
|
||||||
|
|
||||||
-- Callum Dickinson <gcfreak_ag20@hotmail.com> Fri, 26 Nov 2010 18:25:31 +1300
|
-- Callum Dickinson <gcfreak_ag20@hotmail.com> Fri, 26 Nov 2010 18:25:31 +1300
|
||||||
|
|
||||||
|
|
||||||
|
Signing for Launchpad PPA
|
||||||
|
|
||||||
|
First, follow the above instructions to generate a GnuPG key with your identity. You will need
|
||||||
|
to publish the fingerprint of that key to Ubuntu's key server.
|
||||||
|
|
||||||
|
https://help.ubuntu.com/community/GnuPrivacyGuardHowto#Uploading_the_key_to_Ubuntu_keyserver
|
||||||
|
|
||||||
|
Next, you will have to add that key fingerprint to your Launchpad account. Go to your Launchpad
|
||||||
|
profile and click the yellow Edit button next to "OpenPGP keys". Once you add the key, you can
|
||||||
|
upload signed source packages and publish them onto your PPA.
|
||||||
|
|
||||||
|
IF YOU UPLOAD A PACKAGE and Launchpad does NOT send you a confirmation or rejection email, that
|
||||||
|
means your key is not set up correctly with your Launchpad account.
|
||||||
|
|
||||||
|
|
||||||
|
Building for Launchpad PPA
|
||||||
|
|
||||||
|
Use these steps to prepare building a source package for Launchpad:
|
||||||
|
|
||||||
|
1. Highly recommend copying the assets/ folder to outside your repo folder, or else the asset
|
||||||
|
files may be included in the main source package, when you build that.
|
||||||
|
2. cd [wherever-your-assets-folder-is]/assets/
|
||||||
|
3. debuild -T clean (optional, if you already have asset files)
|
||||||
|
|
||||||
|
Building the source package is a two-step process:
|
||||||
|
|
||||||
|
1. debuild -T build (this downloads the asset files from srb2.org if necessary)
|
||||||
|
2. debuild -S (builds the source package for Launchpad, including the asset files)
|
||||||
|
|
||||||
|
Then follow the instructions at <https://help.launchpad.net/Packaging/PPA/Uploading> to upload
|
||||||
|
to your PPA and have Launchpad build your binary deb packages.
|
||||||
|
|
||||||
|
-- Marco Zafra <marco.a.zafra@gmail.com> Mon, 26 Nov 2018 21:13:00 -0500
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
srb2-data (2.1.21~7) trusty; urgency=high
|
||||||
|
|
||||||
|
* Updated for SRB2 v2.1.21
|
||||||
|
|
||||||
|
-- Marco Zafra <marco.a.zafra@gmail.com> Mon, 26 Nov 2018 14:31:00 -0500
|
||||||
|
|
||||||
|
|
||||||
srb2-data (2.1.14~1) unstable; urgency=low
|
srb2-data (2.1.14~1) unstable; urgency=low
|
||||||
|
|
||||||
* Updated for SRB2 v2.1.14
|
* Updated for SRB2 v2.1.14
|
||||||
|
|
|
@ -3,8 +3,9 @@
|
||||||
Source: srb2-data
|
Source: srb2-data
|
||||||
Section: games
|
Section: games
|
||||||
Priority: extra
|
Priority: extra
|
||||||
Maintainer: Callum Dickinson <gcfreak_ag20@hotmail.com>
|
Maintainer: Sonic Team Junior <stjr@srb2.org>
|
||||||
Build-Depends: debhelper (>= 7.0.50~)
|
Build-Depends: debhelper (>= 7.0.50~),
|
||||||
|
wget
|
||||||
Standards-Version: 3.8.4
|
Standards-Version: 3.8.4
|
||||||
Homepage: http://www.srb2.org
|
Homepage: http://www.srb2.org
|
||||||
|
|
||||||
|
@ -15,8 +16,7 @@ Description: A cross-platform 3D Sonic fangame
|
||||||
fangame built using a modified version of the Doom Legacy
|
fangame built using a modified version of the Doom Legacy
|
||||||
port of Doom. SRB2 is closely inspired by the original
|
port of Doom. SRB2 is closely inspired by the original
|
||||||
Sonic games from the Sega Genesis, and attempts to recreate
|
Sonic games from the Sega Genesis, and attempts to recreate
|
||||||
the design in 3D. While SRB2 isn't fully completed, it already
|
the design in 3D. It features tons of levels, enemies, speed,
|
||||||
features tons of levels, enemies, speed, and quite a lot
|
and quite a lot of the fun that the original Sonic games provided.
|
||||||
of the fun that the original Sonic games provided.
|
|
||||||
This is the data package that provides the data files that
|
This is the data package that provides the data files that
|
||||||
SRB2 requires to run, it will not work without it.
|
SRB2 requires to run; it will not work without it.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
This work was packaged for Debian by:
|
This work was packaged for Debian by:
|
||||||
|
|
||||||
Callum Dickinson <gcfreak_ag20@hotmail.com> on Fri, 26 Nov 2010 15:19:16 +1300
|
Marco Zafra <marco.a.zafra@gmail.com> Mon, 26 Nov 2018 14:31:00 -0500
|
||||||
|
|
||||||
It was downloaded from:
|
It was downloaded from:
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ Upstream Author(s):
|
||||||
|
|
||||||
Copyright:
|
Copyright:
|
||||||
|
|
||||||
Copyright (C) 1998-2010 Sonic Team Junior
|
Copyright (C) 1998-2018 Sonic Team Junior
|
||||||
|
|
||||||
License:
|
License:
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ License:
|
||||||
The Debian packaging is:
|
The Debian packaging is:
|
||||||
|
|
||||||
Copyright (C) 2010 Callum Dickinson <gcfreak_ag20@hotmail.com>
|
Copyright (C) 2010 Callum Dickinson <gcfreak_ag20@hotmail.com>
|
||||||
|
Copyright (C) 2010-2018 Sonic Team Junior <stjr@srb2.org>
|
||||||
|
|
||||||
and is licensed under the GPL version 2,
|
and is licensed under the GPL version 2,
|
||||||
see "/usr/share/common-licenses/GPL-2".
|
see "/usr/share/common-licenses/GPL-2".
|
||||||
|
|
|
@ -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 := srb2.srb zones.dta player.dta rings.dta music.dta
|
DATAFILES := srb2.srb zones.dta player.dta rings.dta music.dta patch.dta README.txt LICENSE.txt LICENSE-3RD-PARTY.txt
|
||||||
|
|
||||||
DATADIR := usr/games/SRB2
|
DATADIR := usr/games/SRB2
|
||||||
RESOURCEDIR := .
|
RESOURCEDIR := .
|
||||||
|
@ -45,16 +45,21 @@ WGET := wget -P $(RESOURCEDIR) -c -nc
|
||||||
|
|
||||||
build:
|
build:
|
||||||
$(MKDIR) $(DIR)/debian/tmp/$(DATADIR)
|
$(MKDIR) $(DIR)/debian/tmp/$(DATADIR)
|
||||||
|
> $(DIR)/debian/source/include-binaries
|
||||||
# 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.1.14-Final/Resources/$$file; \
|
if [ ! -f $(RESOURCEDIR)/$$file ]; then \
|
||||||
if test "$$file" = "srb2.wad"; then \
|
$(WGET) http://alam.srb2.org/SRB2/2.1.21-Final/Resources/$$file; \
|
||||||
$(INSTALL) $(RESOURCEDIR)/$$file $(DIR)/debian/tmp/$(DATADIR)/srb2.srb; \
|
fi; \
|
||||||
else \
|
if [ -f $(RESOURCEDIR)/$$file ]; then \
|
||||||
$(INSTALL) $(RESOURCEDIR)/$$file $(DIR)/debian/tmp/$(DATADIR)/$$file; \
|
$(INSTALL) $(RESOURCEDIR)/$$file $(DIR)/debian/tmp/$(DATADIR)/$$file; \
|
||||||
|
echo $(RESOURCEDIR)/$$file >> $(DIR)/debian/source/include-binaries; \
|
||||||
|
fi; \
|
||||||
|
if [ ! -f $(DIR)/debian/tmp/$(DATADIR)/$$file ]; then \
|
||||||
|
echo $(DIR)/debian/tmp/$(DATADIR)/$$file not found and could not be downloaded!; \
|
||||||
|
return 1; \
|
||||||
fi; \
|
fi; \
|
||||||
echo $(RESOURCEDIR)/$$file >> $(DIR)/debian/source/include-binaries; \
|
|
||||||
done
|
done
|
||||||
|
|
||||||
binary-indep:
|
binary-indep:
|
||||||
|
@ -95,15 +100,18 @@ binary: binary-indep
|
||||||
dh_builddeb
|
dh_builddeb
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) $(RESOURCEDIR)/*.wad
|
$(RM) $(DIR)/debian/tmp/*; \
|
||||||
$(RM) $(RESOURCEDIR)/*.dta
|
$(RM) $(DIR)/debian/$(PACKAGE).install; \
|
||||||
$(RM) $(RESOURCEDIR)/*.plr
|
$(RM) $(DIR)/debian/files; \
|
||||||
$(RM) $(RESOURCEDIR)/*.wpn
|
|
||||||
$(RM) $(RESOURCEDIR)/*.srb
|
clean-all: clean
|
||||||
$(RM) $(RESOURCEDIR)/*.dll
|
$(RM) $(RESOURCEDIR)/*.wad; \
|
||||||
$(RM) $(DIR)/debian/tmp/*
|
$(RM) $(RESOURCEDIR)/*.dta; \
|
||||||
$(RM) $(DIR)/debian/$(PACKAGE).install
|
$(RM) $(RESOURCEDIR)/*.plr; \
|
||||||
$(RM) $(DIR)/debian/files
|
$(RM) $(RESOURCEDIR)/*.wpn; \
|
||||||
$(RM) $(DIR)/debian/source/include-binaries
|
$(RM) $(RESOURCEDIR)/*.srb; \
|
||||||
|
$(RM) $(RESOURCEDIR)/*.dll; \
|
||||||
|
$(RM) $(RESOURCEDIR)/*.txt; \
|
||||||
|
$(RM) $(DIR)/debian/source/include-binaries; \
|
||||||
|
|
||||||
.PHONY: all clean binary binary-arch binary-indep build
|
.PHONY: all clean binary binary-arch binary-indep build
|
||||||
|
|
1
assets/debian/source/options
Normal file
1
assets/debian/source/options
Normal file
|
@ -0,0 +1 @@
|
||||||
|
tar-ignore = "tmp/*"
|
35
debian/README.Debian
vendored
35
debian/README.Debian
vendored
|
@ -9,3 +9,38 @@ instructions and pass the -k<keyid> command to debuild. Make sure you export the
|
||||||
and give them to your users to install with apt-key add. Thanks!
|
and give them to your users to install with apt-key add. Thanks!
|
||||||
|
|
||||||
-- Callum Dickinson <gcfreak_ag20@hotmail.com> Fri, 26 Nov 2010 18:25:31 +1300
|
-- Callum Dickinson <gcfreak_ag20@hotmail.com> Fri, 26 Nov 2010 18:25:31 +1300
|
||||||
|
|
||||||
|
|
||||||
|
Signing for Launchpad PPA
|
||||||
|
|
||||||
|
First, follow the above instructions to generate a GnuPG key with your identity. You will need
|
||||||
|
to publish the fingerprint of that key to Ubuntu's key server.
|
||||||
|
|
||||||
|
https://help.ubuntu.com/community/GnuPrivacyGuardHowto#Uploading_the_key_to_Ubuntu_keyserver
|
||||||
|
|
||||||
|
Next, you will have to add that key fingerprint to your Launchpad account. Go to your Launchpad
|
||||||
|
profile and click the yellow Edit button next to "OpenPGP keys". Once you add the key, you can
|
||||||
|
upload signed source packages and publish them onto your PPA.
|
||||||
|
|
||||||
|
IF YOU UPLOAD A PACKAGE and Launchpad does NOT send you a confirmation or rejection email, that
|
||||||
|
means your key is not set up correctly with your Launchpad account.
|
||||||
|
|
||||||
|
|
||||||
|
Building for Launchpad PPA
|
||||||
|
|
||||||
|
Use these steps to prepare building a source package for Launchpad:
|
||||||
|
|
||||||
|
1. cd [srb2repo]
|
||||||
|
2. git reset --hard; git clean -fd; git clean -fx;
|
||||||
|
* Resets your repo folder to a committed state and removes untracked files
|
||||||
|
* If you built srb2-data in the assets/ folder, MAKE SURE THAT FOLDER DOES NOT HAVE ASSETS,
|
||||||
|
OR THEY MAY BE INCLUDED IN THE MAIN SOURCE PACKAGE!
|
||||||
|
|
||||||
|
Building the source package takes just one step:
|
||||||
|
|
||||||
|
1. debuild -S (builds the source package for Launchpad)
|
||||||
|
|
||||||
|
Then follow the instructions at <https://help.launchpad.net/Packaging/PPA/Uploading> to upload
|
||||||
|
to your PPA and have Launchpad build your binary deb packages.
|
||||||
|
|
||||||
|
-- Marco Zafra <marco.a.zafra@gmail.com> Mon, 26 Nov 2018 21:13:00 -0500
|
||||||
|
|
4
debian/README.source
vendored
4
debian/README.source
vendored
|
@ -22,6 +22,10 @@ Build instructions:
|
||||||
|
|
||||||
make -C src LINUX=1
|
make -C src LINUX=1
|
||||||
|
|
||||||
|
Build instructions for non-X86 devices (such as X64):
|
||||||
|
|
||||||
|
make -C src LINUX=1 NONX86=1
|
||||||
|
|
||||||
Build instructions to build for Wii Linux/SRB2Wii on a PowerPC system,
|
Build instructions to build for Wii Linux/SRB2Wii on a PowerPC system,
|
||||||
follow cross-compiling instructions for cross-compiling on a x86 system:
|
follow cross-compiling instructions for cross-compiling on a x86 system:
|
||||||
|
|
||||||
|
|
7
debian/changelog
vendored
7
debian/changelog
vendored
|
@ -1,3 +1,10 @@
|
||||||
|
srb2 (2.1.21~9) trusty; urgency=high
|
||||||
|
|
||||||
|
* SRB2 v2.1.21 release
|
||||||
|
|
||||||
|
-- Marco Zafra <marco.a.zafra@gmail.com> Mon, 27 Nov 2018 16:45:00 -0500
|
||||||
|
|
||||||
|
|
||||||
srb2 (2.0.6-5) maverick; urgency=high
|
srb2 (2.0.6-5) maverick; urgency=high
|
||||||
|
|
||||||
* Initial proper release..
|
* Initial proper release..
|
||||||
|
|
23
debian/control
vendored
23
debian/control
vendored
|
@ -3,11 +3,13 @@
|
||||||
Source: srb2
|
Source: srb2
|
||||||
Section: games
|
Section: games
|
||||||
Priority: extra
|
Priority: extra
|
||||||
Maintainer: Callum Dickinson <gcfreak_ag20@hotmail.com>
|
Maintainer: Sonic Team Junior <stjr@srb2.org>
|
||||||
Build-Depends: debhelper (>= 7.0.50~),
|
Build-Depends: debhelper (>= 7.0.50~),
|
||||||
libsdl2-dev,
|
libsdl2-dev,
|
||||||
libsdl2-mixer-dev,
|
libsdl2-mixer-dev,
|
||||||
libpng12-dev (>= 1.2.7),
|
libpng12-dev (>= 1.2.7) | libpng-dev,
|
||||||
|
zlib1g-dev,
|
||||||
|
libgme-dev,
|
||||||
libglu1-dev | libglu-dev,
|
libglu1-dev | libglu-dev,
|
||||||
libosmesa6-dev | libgl-dev,
|
libosmesa6-dev | libgl-dev,
|
||||||
nasm [i386]
|
nasm [i386]
|
||||||
|
@ -16,27 +18,26 @@ Homepage: http://www.srb2.org
|
||||||
|
|
||||||
Package: srb2
|
Package: srb2
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, srb2-data (= 2.1.14)
|
Depends: ${shlibs:Depends}, ${misc:Depends}, srb2-data (>= 2.1.15), srb2-data (<= 2.1.21)
|
||||||
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
|
||||||
port of Doom. SRB2 is closely inspired by the original
|
port of Doom. SRB2 is closely inspired by the original
|
||||||
Sonic games from the Sega Genesis, and attempts to recreate
|
Sonic games from the Sega Genesis, and attempts to recreate
|
||||||
the design in 3D. While SRB2 isn't fully completed, it already
|
the design in 3D. It features tons of levels, enemies, speed,
|
||||||
features tons of levels, enemies, speed, and quite a lot
|
and quite a lot of the fun that the original Sonic games provided.
|
||||||
of the fun that the original Sonic games provided.
|
|
||||||
|
|
||||||
Package: srb2-dbg
|
Package: srb2-dbg
|
||||||
Architecture: any
|
Architecture: any
|
||||||
# FIXME: should be Depends: ${shlibs:Depends}, ${misc:Depends}, srb2-data (= 2.1.14), 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.1.14), srb2
|
Depends: libc6, ${misc:Depends}, srb2-data (>= 2.1.15), srb2-data (<= 2.1.21), 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
|
||||||
port of Doom. SRB2 is closely inspired by the original
|
port of Doom. SRB2 is closely inspired by the original
|
||||||
Sonic games from the Sega Genesis, and attempts to recreate
|
Sonic games from the Sega Genesis, and attempts to recreate
|
||||||
the design in 3D. While SRB2 isn't fully completed, it already
|
the design in 3D. It features tons of levels, enemies, speed,
|
||||||
features tons of levels, enemies, speed, and quite a lot
|
and quite a lot of the fun that the original Sonic games provided.
|
||||||
of the fun that the original Sonic games provided.
|
This is a debug binary; its symbols will be loaded by gdb
|
||||||
This is a debug binary, its symbols will be loaded by gdb
|
|
||||||
when the user starts the game with gdb for debugging.
|
when the user starts the game with gdb for debugging.
|
||||||
|
|
3
debian/copyright
vendored
3
debian/copyright
vendored
|
@ -1,6 +1,6 @@
|
||||||
This work was packaged for Debian by:
|
This work was packaged for Debian by:
|
||||||
|
|
||||||
Callum Dickinson <gcfreak_ag20@hotmail.com> on Fri, 26 Nov 2010 15:19:16 +1300
|
Marco Zafra <marco.a.zafra@gmail.com> Mon, 26 Nov 2018 14:31:00 -0500
|
||||||
|
|
||||||
It was downloaded from:
|
It was downloaded from:
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ License:
|
||||||
The Debian packaging is:
|
The Debian packaging is:
|
||||||
|
|
||||||
Copyright (C) 2010 Callum Dickinson <gcfreak_ag20@hotmail.com>
|
Copyright (C) 2010 Callum Dickinson <gcfreak_ag20@hotmail.com>
|
||||||
|
Copyright (C) 2010-2018 Sonic Team Junior <stjr@srb2.org>
|
||||||
|
|
||||||
and is licensed under the GPL version 2,
|
and is licensed under the GPL version 2,
|
||||||
see "/usr/share/common-licenses/GPL-2".
|
see "/usr/share/common-licenses/GPL-2".
|
||||||
|
|
3
debian/docs
vendored
3
debian/docs
vendored
|
@ -1 +1,4 @@
|
||||||
README.md
|
README.md
|
||||||
|
assets/README.txt
|
||||||
|
assets/LICENSE.txt
|
||||||
|
assets/LICENSE-3RD-PARTY.txt
|
||||||
|
|
27
debian/rules
vendored
27
debian/rules
vendored
|
@ -57,21 +57,32 @@ SECTION = Games/Action
|
||||||
EXENAME = srb2
|
EXENAME = srb2
|
||||||
DBGNAME = debug/$(EXENAME)
|
DBGNAME = debug/$(EXENAME)
|
||||||
|
|
||||||
PKGDIR = usr/games
|
PKGDIR = usr/games/SRB2
|
||||||
DBGDIR = usr/lib/debug/$(PKGDIR)
|
DBGDIR = usr/lib/debug/$(PKGDIR)
|
||||||
PIXMAPS_DIR = usr/share/pixmaps
|
PIXMAPS_DIR = usr/share/pixmaps
|
||||||
DESKTOP_DIR = usr/share/applications
|
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=sdl2 PNG_PKGCONFIG=libpng NOOBJDUMP=1
|
MAKEARGS = $(OS) $(NONX86) $(PREFIX) EXENAME=$(EXENAME) DBGNAME=$(DBGNAME) NOOBJDUMP=1 # SDL_PKGCONFIG=sdl2 PNG_PKGCONFIG=libpng
|
||||||
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
|
|
||||||
export PKG_CONFIG_LIBDIR = /usr/lib/$(CROSS_COMPILE_HOST)/pkgconfig
|
|
||||||
BINDIR := $(DIR)/bin/Linux/Release
|
BINDIR := $(DIR)/bin/Linux/Release
|
||||||
|
|
||||||
|
# FIXME pkg-config dir hacks
|
||||||
|
# Launchpad doesn't need this; it actually makes i386 builds fail due to cross-compile
|
||||||
|
# export PKG_CONFIG_LIBDIR = /usr/lib/$(CROSS_COMPILE_HOST)/pkgconfig
|
||||||
LDFLAGS += "-Wl,-rpath=/usr/lib/$(CROSS_COMPILE_HOST)"
|
LDFLAGS += "-Wl,-rpath=/usr/lib/$(CROSS_COMPILE_HOST)"
|
||||||
|
|
||||||
|
# Some libgme-dev packages don't use pkg-config yet, so include the linker flag ourselves
|
||||||
|
PKG_CONFIG?=pkg-config
|
||||||
|
LIBGME_PKGCONFIG?=libgme
|
||||||
|
LIBGME_LDFLAGS?=$(shell $(PKG_CONFIG) $(LIBGME_PKGCONFIG) --libs)
|
||||||
|
|
||||||
|
ifeq ($(LIBGME_LDFLAGS),)
|
||||||
|
MAKEARGS += LIBGME_LDFLAGS=-lgme
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
$(MKDIR) $(BINDIR)/debug
|
$(MKDIR) $(BINDIR)/debug
|
||||||
$(MAKE) -C $(DIR)/src $(MAKEARGS)
|
$(MAKE) -C $(DIR)/src $(MAKEARGS)
|
||||||
|
@ -100,8 +111,8 @@ binary-arch:
|
||||||
echo $(DESKTOP_DIR) >> $(DIR)/debian/$(PACKAGE).install
|
echo $(DESKTOP_DIR) >> $(DIR)/debian/$(PACKAGE).install
|
||||||
echo $(PIXMAPS_DIR) >> $(DIR)/debian/$(PACKAGE).install
|
echo $(PIXMAPS_DIR) >> $(DIR)/debian/$(PACKAGE).install
|
||||||
echo $(DBGDIR) > $(DIR)/debian/$(DBGPKG).install
|
echo $(DBGDIR) > $(DIR)/debian/$(DBGPKG).install
|
||||||
|
# Launchpad only calls binary-arch, so just move everything up
|
||||||
binary: binary-arch
|
#binary: binary-arch
|
||||||
# Generate .desktop specifications
|
# Generate .desktop specifications
|
||||||
echo "`echo '$(MENUFILE1)\\'`" > $(DIR)/debian/menu
|
echo "`echo '$(MENUFILE1)\\'`" > $(DIR)/debian/menu
|
||||||
echo " `echo '$(MENUFILE2)'`" >> $(DIR)/debian/menu
|
echo " `echo '$(MENUFILE2)'`" >> $(DIR)/debian/menu
|
||||||
|
@ -133,6 +144,8 @@ binary: binary-arch
|
||||||
dh_md5sums
|
dh_md5sums
|
||||||
dh_builddeb
|
dh_builddeb
|
||||||
|
|
||||||
|
binary: binary-arch
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -C $(DIR)/src $(MAKEARGS) clean cleandep
|
$(MAKE) -C $(DIR)/src $(MAKEARGS) clean cleandep
|
||||||
$(RM) $(BINDIR)/*
|
$(RM) $(BINDIR)/*
|
||||||
|
@ -145,4 +158,4 @@ clean:
|
||||||
$(RM) $(DIR)/debian/files
|
$(RM) $(DIR)/debian/files
|
||||||
$(RM) $(DIR)/debian/source/include-binaries
|
$(RM) $(DIR)/debian/source/include-binaries
|
||||||
|
|
||||||
.PHONY: all clean binary binary-arch binary-indep build
|
.PHONY: all clean binary binary-indep build
|
||||||
|
|
10
debian/source/options
vendored
Normal file
10
debian/source/options
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
tar-ignore = "assets/*.srb"
|
||||||
|
tar-ignore = "assets/*.pk3"
|
||||||
|
tar-ignore = "assets/*.dta"
|
||||||
|
tar-ignore = "assets/*.wad"
|
||||||
|
tar-ignore = "assets/debian/srb2-data/*"
|
||||||
|
tar-ignore = "assets/debian/tmp/*"
|
||||||
|
tar-ignore = "*.obj"
|
||||||
|
tar-ignore = "*.dep"
|
||||||
|
tar-ignore = ".git/*"
|
||||||
|
tar-ignore = ".git*"
|
4
debian/srb2.desktop
vendored
4
debian/srb2.desktop
vendored
|
@ -1,8 +1,8 @@
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=Sonic Robo Blast 2
|
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
|
Comment=A free 3D Sonic the Hedgehog fangame closely inspired by the original Sonic games on the Sega Genesis.
|
||||||
Encoding=UTF-8
|
Encoding=UTF-8
|
||||||
Exec=srb2
|
Exec=/usr/games/SRB2/srb2
|
||||||
Icon=/usr/share/pixmaps/srb2.png
|
Icon=/usr/share/pixmaps/srb2.png
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
|
|
BIN
srb2.png
BIN
srb2.png
Binary file not shown.
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 6.1 KiB |
BIN
srb2banner.png
Normal file
BIN
srb2banner.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 153 KiB |
|
@ -239,6 +239,7 @@ if(${SRB2_CONFIG_HAVE_BLUA})
|
||||||
add_definitions(-DHAVE_BLUA)
|
add_definitions(-DHAVE_BLUA)
|
||||||
set(SRB2_LUA_SOURCES
|
set(SRB2_LUA_SOURCES
|
||||||
lua_baselib.c
|
lua_baselib.c
|
||||||
|
lua_blockmaplib.c
|
||||||
lua_consolelib.c
|
lua_consolelib.c
|
||||||
lua_hooklib.c
|
lua_hooklib.c
|
||||||
lua_hudlib.c
|
lua_hudlib.c
|
||||||
|
|
|
@ -39,6 +39,7 @@ OBJS:=$(OBJS) \
|
||||||
$(OBJDIR)/lvm.o \
|
$(OBJDIR)/lvm.o \
|
||||||
$(OBJDIR)/lua_script.o \
|
$(OBJDIR)/lua_script.o \
|
||||||
$(OBJDIR)/lua_baselib.o \
|
$(OBJDIR)/lua_baselib.o \
|
||||||
|
$(OBJDIR)/lua_blockmaplib.o \
|
||||||
$(OBJDIR)/lua_mathlib.o \
|
$(OBJDIR)/lua_mathlib.o \
|
||||||
$(OBJDIR)/lua_hooklib.o \
|
$(OBJDIR)/lua_hooklib.o \
|
||||||
$(OBJDIR)/lua_consolelib.o \
|
$(OBJDIR)/lua_consolelib.o \
|
||||||
|
|
|
@ -2310,6 +2310,9 @@ static void Got_Mapcmd(UINT8 **cp, INT32 playernum)
|
||||||
INT32 resetplayer = 1, lastgametype;
|
INT32 resetplayer = 1, lastgametype;
|
||||||
UINT8 skipprecutscene, FLS;
|
UINT8 skipprecutscene, FLS;
|
||||||
boolean pencoremode;
|
boolean pencoremode;
|
||||||
|
#ifdef HAVE_BLUA
|
||||||
|
INT16 mapnumber;
|
||||||
|
#endif
|
||||||
|
|
||||||
forceresetplayers = deferencoremode = false;
|
forceresetplayers = deferencoremode = false;
|
||||||
|
|
||||||
|
@ -2377,7 +2380,8 @@ static void Got_Mapcmd(UINT8 **cp, INT32 playernum)
|
||||||
SetPlayerSkinByNum(0, cv_chooseskin.value-1);
|
SetPlayerSkinByNum(0, cv_chooseskin.value-1);
|
||||||
|
|
||||||
#ifdef HAVE_BLUA
|
#ifdef HAVE_BLUA
|
||||||
LUAh_MapChange();
|
mapnumber = M_MapNumber(mapname[3], mapname[4]);
|
||||||
|
LUAh_MapChange(mapnumber);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
G_InitNew(pencoremode, mapname, resetplayer, skipprecutscene);
|
G_InitNew(pencoremode, mapname, resetplayer, skipprecutscene);
|
||||||
|
|
13
src/g_game.c
13
src/g_game.c
|
@ -2988,14 +2988,12 @@ void G_DoReborn(INT32 playernum)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#ifdef HAVE_BLUA
|
|
||||||
{
|
{
|
||||||
LUAh_MapChange();
|
#ifdef HAVE_BLUA
|
||||||
|
LUAh_MapChange(gamemap);
|
||||||
#endif
|
#endif
|
||||||
G_DoLoadLevel(true);
|
G_DoLoadLevel(true);
|
||||||
#ifdef HAVE_BLUA
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}*/
|
}*/
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -4400,7 +4398,12 @@ void G_InitNew(UINT8 pencoremode, const char *mapname, boolean resetplayer, bool
|
||||||
if (!skipprecutscene && mapheaderinfo[gamemap-1]->precutscenenum && !modeattacking) // Start a custom cutscene.
|
if (!skipprecutscene && mapheaderinfo[gamemap-1]->precutscenenum && !modeattacking) // Start a custom cutscene.
|
||||||
F_StartCustomCutscene(mapheaderinfo[gamemap-1]->precutscenenum-1, true, resetplayer);
|
F_StartCustomCutscene(mapheaderinfo[gamemap-1]->precutscenenum-1, true, resetplayer);
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
#ifdef HAVE_BLUA
|
||||||
|
LUAh_MapChange(gamemap);
|
||||||
|
#endif
|
||||||
G_DoLoadLevel(resetplayer);
|
G_DoLoadLevel(resetplayer);
|
||||||
|
}
|
||||||
|
|
||||||
if (netgame)
|
if (netgame)
|
||||||
{
|
{
|
||||||
|
@ -5915,7 +5918,7 @@ void G_DoPlayDemo(char *defdemoname)
|
||||||
demo_start = false;
|
demo_start = false;
|
||||||
|
|
||||||
#ifdef HAVE_BLUA
|
#ifdef HAVE_BLUA
|
||||||
LUAh_MapChange();
|
LUAh_MapChange(gamemap);
|
||||||
#endif
|
#endif
|
||||||
displayplayer = consoleplayer = 0;
|
displayplayer = consoleplayer = 0;
|
||||||
memset(playeringame,0,sizeof(playeringame));
|
memset(playeringame,0,sizeof(playeringame));
|
||||||
|
|
266
src/lua_blockmaplib.c
Normal file
266
src/lua_blockmaplib.c
Normal file
|
@ -0,0 +1,266 @@
|
||||||
|
// SONIC ROBO BLAST 2
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Copyright (C) 2016 by Iestyn "Monster Iestyn" Jealous.
|
||||||
|
// Copyright (C) 2016 by Sonic Team Junior.
|
||||||
|
//
|
||||||
|
// This program is free software distributed under the
|
||||||
|
// terms of the GNU General Public License, version 2.
|
||||||
|
// See the 'LICENSE' file for more details.
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
/// \file lua_blockmaplib.c
|
||||||
|
/// \brief blockmap library for Lua scripting
|
||||||
|
|
||||||
|
#include "doomdef.h"
|
||||||
|
#ifdef HAVE_BLUA
|
||||||
|
#include "p_local.h"
|
||||||
|
#include "r_main.h" // validcount
|
||||||
|
#include "lua_script.h"
|
||||||
|
#include "lua_libs.h"
|
||||||
|
//#include "lua_hud.h" // hud_running errors
|
||||||
|
|
||||||
|
static const char *const search_opt[] = {
|
||||||
|
"objects",
|
||||||
|
"lines",
|
||||||
|
NULL};
|
||||||
|
|
||||||
|
// a quickly-made function pointer typedef used by lib_searchBlockmap...
|
||||||
|
// return values:
|
||||||
|
// 0 - normal, no interruptions
|
||||||
|
// 1 - stop search through current block
|
||||||
|
// 2 - stop search completely
|
||||||
|
typedef UINT8 (*blockmap_func)(lua_State *, INT32, INT32, mobj_t *);
|
||||||
|
|
||||||
|
static boolean blockfuncerror = false; // errors should only print once per search blockmap call
|
||||||
|
|
||||||
|
// Helper function for "objects" search
|
||||||
|
static UINT8 lib_searchBlockmap_Objects(lua_State *L, INT32 x, INT32 y, mobj_t *thing)
|
||||||
|
{
|
||||||
|
mobj_t *mobj, *bnext = NULL;
|
||||||
|
|
||||||
|
if (x < 0 || y < 0 || x >= bmapwidth || y >= bmapheight)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
// Check interaction with the objects in the blockmap.
|
||||||
|
for (mobj = blocklinks[y*bmapwidth + x]; mobj; mobj = bnext)
|
||||||
|
{
|
||||||
|
P_SetTarget(&bnext, mobj->bnext); // We want to note our reference to bnext here incase it is MF_NOTHINK and gets removed!
|
||||||
|
if (mobj == thing)
|
||||||
|
continue; // our thing just found itself, so move on
|
||||||
|
lua_pushvalue(L, 1); // push function
|
||||||
|
LUA_PushUserdata(L, thing, META_MOBJ);
|
||||||
|
LUA_PushUserdata(L, mobj, META_MOBJ);
|
||||||
|
if (lua_pcall(gL, 2, 1, 0)) {
|
||||||
|
if (!blockfuncerror || cv_debug & DBG_LUA)
|
||||||
|
CONS_Alert(CONS_WARNING,"%s\n",lua_tostring(gL, -1));
|
||||||
|
lua_pop(gL, 1);
|
||||||
|
blockfuncerror = true;
|
||||||
|
return 0; // *shrugs*
|
||||||
|
}
|
||||||
|
if (!lua_isnil(gL, -1))
|
||||||
|
{ // if nil, continue
|
||||||
|
if (lua_toboolean(gL, -1))
|
||||||
|
return 2; // stop whole search
|
||||||
|
else
|
||||||
|
return 1; // stop block search
|
||||||
|
}
|
||||||
|
lua_pop(gL, 1);
|
||||||
|
if (P_MobjWasRemoved(thing) // func just popped our thing, cannot continue.
|
||||||
|
|| (bnext && P_MobjWasRemoved(bnext))) // func just broke blockmap chain, cannot continue.
|
||||||
|
{
|
||||||
|
P_SetTarget(&bnext, NULL);
|
||||||
|
return (P_MobjWasRemoved(thing)) ? 2 : 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function for "lines" search
|
||||||
|
static UINT8 lib_searchBlockmap_Lines(lua_State *L, INT32 x, INT32 y, mobj_t *thing)
|
||||||
|
{
|
||||||
|
INT32 offset;
|
||||||
|
const INT32 *list; // Big blockmap
|
||||||
|
#ifdef POLYOBJECTS
|
||||||
|
polymaplink_t *plink; // haleyjd 02/22/06
|
||||||
|
#endif
|
||||||
|
line_t *ld;
|
||||||
|
|
||||||
|
if (x < 0 || y < 0 || x >= bmapwidth || y >= bmapheight)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
offset = y*bmapwidth + x;
|
||||||
|
|
||||||
|
#ifdef POLYOBJECTS
|
||||||
|
// haleyjd 02/22/06: consider polyobject lines
|
||||||
|
plink = polyblocklinks[offset];
|
||||||
|
|
||||||
|
while (plink)
|
||||||
|
{
|
||||||
|
polyobj_t *po = plink->po;
|
||||||
|
|
||||||
|
if (po->validcount != validcount) // if polyobj hasn't been checked
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
po->validcount = validcount;
|
||||||
|
|
||||||
|
for (i = 0; i < po->numLines; ++i)
|
||||||
|
{
|
||||||
|
if (po->lines[i]->validcount == validcount) // line has been checked
|
||||||
|
continue;
|
||||||
|
po->lines[i]->validcount = validcount;
|
||||||
|
|
||||||
|
lua_pushvalue(L, 1);
|
||||||
|
LUA_PushUserdata(L, thing, META_MOBJ);
|
||||||
|
LUA_PushUserdata(L, po->lines[i], META_LINE);
|
||||||
|
if (lua_pcall(gL, 2, 1, 0)) {
|
||||||
|
if (!blockfuncerror || cv_debug & DBG_LUA)
|
||||||
|
CONS_Alert(CONS_WARNING,"%s\n",lua_tostring(gL, -1));
|
||||||
|
lua_pop(gL, 1);
|
||||||
|
blockfuncerror = true;
|
||||||
|
return 0; // *shrugs*
|
||||||
|
}
|
||||||
|
if (!lua_isnil(gL, -1))
|
||||||
|
{ // if nil, continue
|
||||||
|
if (lua_toboolean(gL, -1))
|
||||||
|
return 2; // stop whole search
|
||||||
|
else
|
||||||
|
return 1; // stop block search
|
||||||
|
}
|
||||||
|
lua_pop(gL, 1);
|
||||||
|
if (P_MobjWasRemoved(thing))
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
plink = (polymaplink_t *)(plink->link.next);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
offset = *(blockmap + offset); // offset = blockmap[y*bmapwidth+x];
|
||||||
|
|
||||||
|
// First index is really empty, so +1 it.
|
||||||
|
for (list = blockmaplump + offset + 1; *list != -1; list++)
|
||||||
|
{
|
||||||
|
ld = &lines[*list];
|
||||||
|
|
||||||
|
if (ld->validcount == validcount)
|
||||||
|
continue; // Line has already been checked.
|
||||||
|
|
||||||
|
ld->validcount = validcount;
|
||||||
|
|
||||||
|
lua_pushvalue(L, 1);
|
||||||
|
LUA_PushUserdata(L, thing, META_MOBJ);
|
||||||
|
LUA_PushUserdata(L, ld, META_LINE);
|
||||||
|
if (lua_pcall(gL, 2, 1, 0)) {
|
||||||
|
if (!blockfuncerror || cv_debug & DBG_LUA)
|
||||||
|
CONS_Alert(CONS_WARNING,"%s\n",lua_tostring(gL, -1));
|
||||||
|
lua_pop(gL, 1);
|
||||||
|
blockfuncerror = true;
|
||||||
|
return 0; // *shrugs*
|
||||||
|
}
|
||||||
|
if (!lua_isnil(gL, -1))
|
||||||
|
{ // if nil, continue
|
||||||
|
if (lua_toboolean(gL, -1))
|
||||||
|
return 2; // stop whole search
|
||||||
|
else
|
||||||
|
return 1; // stop block search
|
||||||
|
}
|
||||||
|
lua_pop(gL, 1);
|
||||||
|
if (P_MobjWasRemoved(thing))
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
return 0; // Everything was checked.
|
||||||
|
}
|
||||||
|
|
||||||
|
// The searchBlockmap function
|
||||||
|
// arguments: searchBlockmap(searchtype, function, mobj, [x1, x2, y1, y2])
|
||||||
|
// return value:
|
||||||
|
// true = search completely uninteruppted,
|
||||||
|
// false = searching of at least one block stopped mid-way (including if the whole search was stopped)
|
||||||
|
static int lib_searchBlockmap(lua_State *L)
|
||||||
|
{
|
||||||
|
int searchtype = luaL_checkoption(L, 1, "objects", search_opt);
|
||||||
|
int n;
|
||||||
|
mobj_t *mobj;
|
||||||
|
INT32 xl, xh, yl, yh, bx, by;
|
||||||
|
fixed_t x1, x2, y1, y2;
|
||||||
|
boolean retval = true;
|
||||||
|
UINT8 funcret = 0;
|
||||||
|
blockmap_func searchFunc;
|
||||||
|
|
||||||
|
lua_remove(L, 1); // remove searchtype, stack is now function, mobj, [x1, x2, y1, y2]
|
||||||
|
luaL_checktype(L, 1, LUA_TFUNCTION);
|
||||||
|
|
||||||
|
switch (searchtype)
|
||||||
|
{
|
||||||
|
case 0: // "objects"
|
||||||
|
default:
|
||||||
|
searchFunc = lib_searchBlockmap_Objects;
|
||||||
|
break;
|
||||||
|
case 1: // "lines"
|
||||||
|
searchFunc = lib_searchBlockmap_Lines;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// the mobj we are searching around, the "calling" mobj we could say
|
||||||
|
mobj = *((mobj_t **)luaL_checkudata(L, 2, META_MOBJ));
|
||||||
|
if (!mobj)
|
||||||
|
return LUA_ErrInvalid(L, "mobj_t");
|
||||||
|
|
||||||
|
n = lua_gettop(L);
|
||||||
|
|
||||||
|
if (n > 2) // specific x/y ranges have been supplied
|
||||||
|
{
|
||||||
|
if (n < 6)
|
||||||
|
return luaL_error(L, "arguments 4 to 6 not all given (expected 4 fixed-point integers)");
|
||||||
|
|
||||||
|
x1 = luaL_checkfixed(L, 3);
|
||||||
|
x2 = luaL_checkfixed(L, 4);
|
||||||
|
y1 = luaL_checkfixed(L, 5);
|
||||||
|
y2 = luaL_checkfixed(L, 6);
|
||||||
|
}
|
||||||
|
else // mobj and function only - search around mobj's radius by default
|
||||||
|
{
|
||||||
|
fixed_t radius = mobj->radius + MAXRADIUS;
|
||||||
|
x1 = mobj->x - radius;
|
||||||
|
x2 = mobj->x + radius;
|
||||||
|
y1 = mobj->y - radius;
|
||||||
|
y2 = mobj->y + radius;
|
||||||
|
}
|
||||||
|
lua_settop(L, 2); // pop everything except function, mobj
|
||||||
|
|
||||||
|
xl = (unsigned)(x1 - bmaporgx)>>MAPBLOCKSHIFT;
|
||||||
|
xh = (unsigned)(x2 - bmaporgx)>>MAPBLOCKSHIFT;
|
||||||
|
yl = (unsigned)(y1 - bmaporgy)>>MAPBLOCKSHIFT;
|
||||||
|
yh = (unsigned)(y2 - bmaporgy)>>MAPBLOCKSHIFT;
|
||||||
|
|
||||||
|
BMBOUNDFIX(xl, xh, yl, yh);
|
||||||
|
|
||||||
|
blockfuncerror = false; // reset
|
||||||
|
validcount++;
|
||||||
|
for (bx = xl; bx <= xh; bx++)
|
||||||
|
for (by = yl; by <= yh; by++)
|
||||||
|
{
|
||||||
|
funcret = searchFunc(L, bx, by, mobj);
|
||||||
|
// return value of searchFunc determines searchFunc's return value and/or when to stop
|
||||||
|
if (funcret == 2){ // stop whole search
|
||||||
|
lua_pushboolean(L, false); // return false
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else if (funcret == 1) // search was interrupted for this block
|
||||||
|
retval = false; // this changes the return value, but doesn't stop the whole search
|
||||||
|
// else don't do anything, continue as normal
|
||||||
|
if (P_MobjWasRemoved(mobj)){ // ...unless the original object was removed
|
||||||
|
lua_pushboolean(L, false); // in which case we have to stop now regardless
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lua_pushboolean(L, retval);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int LUA_BlockmapLib(lua_State *L)
|
||||||
|
{
|
||||||
|
lua_register(L, "searchBlockmap", lib_searchBlockmap);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -55,7 +55,7 @@ enum hook {
|
||||||
};
|
};
|
||||||
extern const char *const hookNames[];
|
extern const char *const hookNames[];
|
||||||
|
|
||||||
void LUAh_MapChange(void); // Hook for map change (before load)
|
void LUAh_MapChange(INT16 mapnumber); // Hook for map change (before load)
|
||||||
void LUAh_MapLoad(void); // Hook for map load
|
void LUAh_MapLoad(void); // Hook for map load
|
||||||
void LUAh_PlayerJoin(int playernum); // Hook for Got_AddPlayer
|
void LUAh_PlayerJoin(int playernum); // Hook for Got_AddPlayer
|
||||||
void LUAh_ThinkFrame(void); // Hook for frame (after mobj and player thinkers)
|
void LUAh_ThinkFrame(void); // Hook for frame (after mobj and player thinkers)
|
||||||
|
|
|
@ -333,14 +333,14 @@ boolean LUAh_PlayerHook(player_t *plr, enum hook which)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hook for map change (before load)
|
// Hook for map change (before load)
|
||||||
void LUAh_MapChange(void)
|
void LUAh_MapChange(INT16 mapnumber)
|
||||||
{
|
{
|
||||||
hook_p hookp;
|
hook_p hookp;
|
||||||
if (!gL || !(hooksAvailable[hook_MapChange/8] & (1<<(hook_MapChange%8))))
|
if (!gL || !(hooksAvailable[hook_MapChange/8] & (1<<(hook_MapChange%8))))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
lua_settop(gL, 0);
|
lua_settop(gL, 0);
|
||||||
lua_pushinteger(gL, gamemap);
|
lua_pushinteger(gL, mapnumber);
|
||||||
|
|
||||||
for (hookp = roothook; hookp; hookp = hookp->next)
|
for (hookp = roothook; hookp; hookp = hookp->next)
|
||||||
if (hookp->type == hook_MapChange)
|
if (hookp->type == hook_MapChange)
|
||||||
|
|
|
@ -71,6 +71,7 @@ int LUA_PlayerLib(lua_State *L);
|
||||||
int LUA_SkinLib(lua_State *L);
|
int LUA_SkinLib(lua_State *L);
|
||||||
int LUA_ThinkerLib(lua_State *L);
|
int LUA_ThinkerLib(lua_State *L);
|
||||||
int LUA_MapLib(lua_State *L);
|
int LUA_MapLib(lua_State *L);
|
||||||
|
int LUA_BlockmapLib(lua_State *L);
|
||||||
int LUA_HudLib(lua_State *L);
|
int LUA_HudLib(lua_State *L);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -51,6 +51,7 @@ static lua_CFunction liblist[] = {
|
||||||
LUA_SkinLib, // skin_t, skins[]
|
LUA_SkinLib, // skin_t, skins[]
|
||||||
LUA_ThinkerLib, // thinker_t
|
LUA_ThinkerLib, // thinker_t
|
||||||
LUA_MapLib, // line_t, side_t, sector_t, subsector_t
|
LUA_MapLib, // line_t, side_t, sector_t, subsector_t
|
||||||
|
LUA_BlockmapLib, // blockmap stuff
|
||||||
LUA_HudLib, // HUD stuff
|
LUA_HudLib, // HUD stuff
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
|
@ -304,6 +304,7 @@
|
||||||
<ClCompile Include="..\i_tcp.c" />
|
<ClCompile Include="..\i_tcp.c" />
|
||||||
<ClCompile Include="..\k_kart.c" />
|
<ClCompile Include="..\k_kart.c" />
|
||||||
<ClCompile Include="..\lua_baselib.c" />
|
<ClCompile Include="..\lua_baselib.c" />
|
||||||
|
<ClCompile Include="..\lua_blockmaplib.c" />
|
||||||
<ClCompile Include="..\lua_consolelib.c" />
|
<ClCompile Include="..\lua_consolelib.c" />
|
||||||
<ClCompile Include="..\lua_hooklib.c" />
|
<ClCompile Include="..\lua_hooklib.c" />
|
||||||
<ClCompile Include="..\lua_hudlib.c" />
|
<ClCompile Include="..\lua_hudlib.c" />
|
||||||
|
|
|
@ -642,6 +642,9 @@
|
||||||
<ClCompile Include="..\lua_baselib.c">
|
<ClCompile Include="..\lua_baselib.c">
|
||||||
<Filter>LUA</Filter>
|
<Filter>LUA</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\lua_blockmaplib.c">
|
||||||
|
<Filter>LUA</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\lua_consolelib.c">
|
<ClCompile Include="..\lua_consolelib.c">
|
||||||
<Filter>LUA</Filter>
|
<Filter>LUA</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
|
@ -118,10 +118,10 @@ void W_Shutdown(void)
|
||||||
while (numwadfiles--)
|
while (numwadfiles--)
|
||||||
{
|
{
|
||||||
fclose(wadfiles[numwadfiles]->handle);
|
fclose(wadfiles[numwadfiles]->handle);
|
||||||
Z_Free(wadfiles[numwadfiles]->lumpinfo);
|
|
||||||
Z_Free(wadfiles[numwadfiles]->filename);
|
Z_Free(wadfiles[numwadfiles]->filename);
|
||||||
while (wadfiles[numwadfiles]->numlumps--)
|
while (wadfiles[numwadfiles]->numlumps--)
|
||||||
Z_Free(wadfiles[numwadfiles]->lumpinfo[wadfiles[numwadfiles]->numlumps].name2);
|
Z_Free(wadfiles[numwadfiles]->lumpinfo[wadfiles[numwadfiles]->numlumps].name2);
|
||||||
|
Z_Free(wadfiles[numwadfiles]->lumpinfo);
|
||||||
Z_Free(wadfiles[numwadfiles]);
|
Z_Free(wadfiles[numwadfiles]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,6 +132,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\i_tcp.c" />
|
<ClCompile Include="..\i_tcp.c" />
|
||||||
<ClCompile Include="..\lua_baselib.c" />
|
<ClCompile Include="..\lua_baselib.c" />
|
||||||
|
<ClCompile Include="..\lua_blockmaplib.c" />
|
||||||
<ClCompile Include="..\lua_consolelib.c" />
|
<ClCompile Include="..\lua_consolelib.c" />
|
||||||
<ClCompile Include="..\lua_hooklib.c" />
|
<ClCompile Include="..\lua_hooklib.c" />
|
||||||
<ClCompile Include="..\lua_hudlib.c" />
|
<ClCompile Include="..\lua_hudlib.c" />
|
||||||
|
|
|
@ -228,6 +228,9 @@
|
||||||
<ClCompile Include="..\lua_baselib.c">
|
<ClCompile Include="..\lua_baselib.c">
|
||||||
<Filter>LUA</Filter>
|
<Filter>LUA</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\lua_blockmaplib.c">
|
||||||
|
<Filter>LUA</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\lua_consolelib.c">
|
<ClCompile Include="..\lua_consolelib.c">
|
||||||
<Filter>LUA</Filter>
|
<Filter>LUA</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
Loading…
Reference in a new issue