summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Howard2014-08-13 21:14:21 -0400
committerSimon Howard2014-08-13 21:14:21 -0400
commit6b422a3ed52742adeb57da3fa934090130696d2a (patch)
tree2313b0b6344ee12d7a6869bb12b1bf1fa72867f7
parentb83132a4962787aabf2e07ae90d37d6d87b001b3 (diff)
parentaf553de8c714a80ea6ada5cc7487c689ed9fccb0 (diff)
downloadchocolate-doom-6b422a3ed52742adeb57da3fa934090130696d2a.tar.gz
chocolate-doom-6b422a3ed52742adeb57da3fa934090130696d2a.tar.bz2
chocolate-doom-6b422a3ed52742adeb57da3fa934090130696d2a.zip
Merge branch 'master' of github.com:chocolate-doom/chocolate-doom
-rw-r--r--configure.ac7
-rw-r--r--man/.gitignore8
-rw-r--r--msvc/doom.vcproj7
-rw-r--r--msvc/heretic.vcproj14
-rw-r--r--msvc/hexen.vcproj14
-rw-r--r--src/.gitignore5
-rw-r--r--src/Makefile.am15
-rw-r--r--src/deh_io.c1
-rw-r--r--src/deh_main.c6
-rw-r--r--src/doom-screensaver.desktop.in6
-rw-r--r--src/doom.desktop.in2
-rw-r--r--src/doom/p_enemy.c5
-rw-r--r--src/doom/p_local.h14
-rw-r--r--src/doom/p_map.c11
-rw-r--r--src/heretic.desktop.in7
-rw-r--r--src/hexen.desktop.in7
-rw-r--r--src/setup/joystick.c27
-rw-r--r--src/setup/setup.desktop.in6
-rw-r--r--src/strife.desktop.in7
19 files changed, 136 insertions, 33 deletions
diff --git a/configure.ac b/configure.ac
index a9c3d8cb..fcefdc60 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,7 @@
AC_INIT(Chocolate Doom, 2.0.0, fraggle@gmail.com, chocolate-doom)
-PACKAGE_SHORTDESC="Conservative Doom source port"
+PACKAGE_SHORTNAME=${PACKAGE_NAME% Doom}
+PACKAGE_SHORTDESC="Conservative source port"
PACKAGE_COPYRIGHT="Copyright (C) 1993-2013"
PACKAGE_LICENSE="GNU General Public License, version 2"
PACKAGE_MAINTAINER="Simon Howard"
@@ -135,6 +136,7 @@ AC_SUBST(SDLNET_LIBS)
AC_SUBST(ac_aux_dir)
+AC_SUBST(PACKAGE_SHORTNAME)
AC_SUBST(PACKAGE_SHORTDESC)
AC_SUBST(PACKAGE_COPYRIGHT)
AC_SUBST(PACKAGE_LICENSE)
@@ -160,13 +162,16 @@ src/Makefile
src/doom.desktop
src/doom-screensaver.desktop
src/doom/Makefile
+src/heretic.desktop
src/heretic/Makefile
+src/hexen.desktop
src/hexen/Makefile
src/resource.rc
src/setup-res.rc
src/setup/Makefile
src/setup/setup.desktop
src/setup/setup-manifest.xml
+src/strife.desktop
src/strife/Makefile
textscreen/Makefile
textscreen/examples/Makefile
diff --git a/man/.gitignore b/man/.gitignore
index b7b7be5f..502283ac 100644
--- a/man/.gitignore
+++ b/man/.gitignore
@@ -1,3 +1,11 @@
+CMDLINE.doom
+CMDLINE.heretic
+CMDLINE.hexen
+CMDLINE.strife
+INSTALL.doom
+INSTALL.heretic
+INSTALL.hexen
+INSTALL.strife
Makefile.in
Makefile
*.6
diff --git a/msvc/doom.vcproj b/msvc/doom.vcproj
index 16b6537c..7f98d3a5 100644
--- a/msvc/doom.vcproj
+++ b/msvc/doom.vcproj
@@ -123,14 +123,18 @@
<Tool
Name="VCCLCompilerTool"
Optimization="2"
+ InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ OmitFramePointers="true"
+ WholeProgramOptimization="true"
AdditionalIncludeDirectories=".;..\src;..\src\doom;..\textscreen;..\pcsound;..\opl"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PROGRAM_PREFIX=&quot;\&quot;chocolate-\&quot;&quot;"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
- DebugInformationFormat="3"
+ DebugInformationFormat="0"
CompileAs="1"
/>
<Tool
@@ -149,6 +153,7 @@
LinkIncremental="0"
IgnoreDefaultLibraryNames="msvcrtd"
GenerateDebugInformation="false"
+ GenerateMapFile="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
diff --git a/msvc/heretic.vcproj b/msvc/heretic.vcproj
index a5f775ac..3b80ce3c 100644
--- a/msvc/heretic.vcproj
+++ b/msvc/heretic.vcproj
@@ -115,14 +115,17 @@
<Tool
Name="VCCLCompilerTool"
Optimization="2"
+ InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ OmitFramePointers="true"
+ WholeProgramOptimization="true"
AdditionalIncludeDirectories=".;..\src;..\src\heretic;..\textscreen;..\pcsound;..\opl"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PROGRAM_PREFIX=&quot;\&quot;chocolate-\&quot;&quot;"
- StringPooling="true"
- ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
- WarningLevel="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
/>
@@ -139,11 +142,16 @@
Name="VCLinkerTool"
AdditionalDependencies="SDL.lib SDL_mixer.lib SDL_net.lib SDLmain.lib"
OutputFile="$(OutDir)\chocolate-heretic.exe"
+ LinkIncremental="0"
IgnoreDefaultLibraryNames="msvcrtd"
GenerateDebugInformation="false"
+ GenerateMapFile="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
+ LinkTimeCodeGeneration="1"
+ DataExecutionPrevention="0"
+ TurnOffAssemblyGeneration="false"
TargetMachine="1"
/>
<Tool
diff --git a/msvc/hexen.vcproj b/msvc/hexen.vcproj
index 86dc2e54..1b1e3b4e 100644
--- a/msvc/hexen.vcproj
+++ b/msvc/hexen.vcproj
@@ -116,14 +116,17 @@
<Tool
Name="VCCLCompilerTool"
Optimization="2"
+ InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ OmitFramePointers="true"
+ WholeProgramOptimization="true"
AdditionalIncludeDirectories=".;..\src;..\src\hexen;..\textscreen;..\pcsound;..\opl"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PROGRAM_PREFIX=&quot;\&quot;chocolate-\&quot;&quot;"
- StringPooling="true"
- ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
- WarningLevel="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
/>
@@ -140,11 +143,16 @@
Name="VCLinkerTool"
AdditionalDependencies="SDL.lib SDL_mixer.lib SDL_net.lib SDLmain.lib"
OutputFile="$(OutDir)\chocolate-hexen.exe"
+ LinkIncremental="0"
IgnoreDefaultLibraryNames="msvcrtd"
GenerateDebugInformation="false"
+ GenerateMapFile="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
+ LinkTimeCodeGeneration="1"
+ DataExecutionPrevention="0"
+ TurnOffAssemblyGeneration="false"
TargetMachine="1"
/>
<Tool
diff --git a/src/.gitignore b/src/.gitignore
index aa8a4c05..a0cf15b4 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -6,6 +6,11 @@ chocolate-doom
chocolate-heretic
chocolate-hexen
chocolate-server
+chocolate-strife
+chocolate-doom-setup
+chocolate-heretic-setup
+chocolate-hexen-setup
+chocolate-strife-setup
chocolate-setup
*.exe
*.desktop
diff --git a/src/Makefile.am b/src/Makefile.am
index 5c9d15f4..16496d88 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -218,11 +218,24 @@ EXTRA_DIST = \
manifest.xml
appdir = $(prefix)/share/applications
-app_DATA = @PROGRAM_PREFIX@doom.desktop
+app_DATA = \
+ @PROGRAM_PREFIX@doom.desktop \
+ @PROGRAM_PREFIX@heretic.desktop \
+ @PROGRAM_PREFIX@hexen.desktop \
+ @PROGRAM_PREFIX@strife.desktop
@PROGRAM_PREFIX@doom.desktop : doom.desktop
cp doom.desktop $@
+@PROGRAM_PREFIX@heretic.desktop : heretic.desktop
+ cp heretic.desktop $@
+
+@PROGRAM_PREFIX@hexen.desktop : hexen.desktop
+ cp hexen.desktop $@
+
+@PROGRAM_PREFIX@strife.desktop : strife.desktop
+ cp strife.desktop $@
+
screensaverdir = $(prefix)/share/applications/screensavers
screensaver_DATA = @PROGRAM_PREFIX@doom-screensaver.desktop
diff --git a/src/deh_io.c b/src/deh_io.c
index 9f76563d..778170fd 100644
--- a/src/deh_io.c
+++ b/src/deh_io.c
@@ -137,6 +137,7 @@ void DEH_CloseFile(deh_context_t *context)
W_ReleaseLumpNum(context->lumpnum);
}
+ free(context->filename);
Z_Free(context->readbuffer);
Z_Free(context);
}
diff --git a/src/deh_main.c b/src/deh_main.c
index ff0236b1..c98962a9 100644
--- a/src/deh_main.c
+++ b/src/deh_main.c
@@ -346,6 +346,12 @@ int DEH_LoadLump(int lumpnum, boolean allow_long)
deh_context_t *context;
boolean long_strings, long_cheats;
+ if (!deh_initialized)
+ {
+ InitializeSections();
+ deh_initialized = true;
+ }
+
if (allow_long)
{
long_strings = deh_allow_long_strings;
diff --git a/src/doom-screensaver.desktop.in b/src/doom-screensaver.desktop.in
index 315f964c..deb7274a 100644
--- a/src/doom-screensaver.desktop.in
+++ b/src/doom-screensaver.desktop.in
@@ -1,12 +1,10 @@
-
[Desktop Entry]
-Name=@PACKAGE_NAME@
+Name=@PACKAGE_SHORTNAME@ Doom
Comment=@PACKAGE_SHORTDESC@
TryExec=@PROGRAM_PREFIX@doom
Exec=@PROGRAM_PREFIX@doom
StartupNotify=false
Terminal=false
Type=Application
-OnlyShowIn=GNOME;
+OnlyShowIn=GNOME;MATE;
Categories=Screensaver;
-
diff --git a/src/doom.desktop.in b/src/doom.desktop.in
index 44b76e62..e554a244 100644
--- a/src/doom.desktop.in
+++ b/src/doom.desktop.in
@@ -1,5 +1,5 @@
[Desktop Entry]
-Name=@PACKAGE_NAME@
+Name=@PACKAGE_SHORTNAME@ Doom
Exec=@PROGRAM_PREFIX@doom
Icon=@PROGRAM_PREFIX@doom
Type=Application
diff --git a/src/doom/p_enemy.c b/src/doom/p_enemy.c
index ba2b011b..a7df6a01 100644
--- a/src/doom/p_enemy.c
+++ b/src/doom/p_enemy.c
@@ -257,11 +257,6 @@ boolean P_CheckMissileRange (mobj_t* actor)
fixed_t xspeed[8] = {FRACUNIT,47000,0,-47000,-FRACUNIT,-47000,0,47000};
fixed_t yspeed[8] = {0,47000,FRACUNIT,47000,0,-47000,-FRACUNIT,-47000};
-#define MAXSPECIALCROSS 8
-
-extern line_t* spechit[MAXSPECIALCROSS];
-extern int numspechit;
-
boolean P_Move (mobj_t* actor)
{
fixed_t tryx;
diff --git a/src/doom/p_local.h b/src/doom/p_local.h
index fea6f1ea..95fa4053 100644
--- a/src/doom/p_local.h
+++ b/src/doom/p_local.h
@@ -208,6 +208,20 @@ extern fixed_t tmceilingz;
extern line_t* ceilingline;
+// fraggle: I have increased the size of this buffer. In the original Doom,
+// overrunning past this limit caused other bits of memory to be overwritten,
+// affecting demo playback. However, in doing so, the limit was still
+// exceeded. So we have to support more than 8 specials.
+//
+// We keep the original limit, to detect what variables in memory were
+// overwritten (see SpechitOverrun())
+
+#define MAXSPECIALCROSS 20
+#define MAXSPECIALCROSS_ORIGINAL 8
+
+extern line_t* spechit[MAXSPECIALCROSS];
+extern int numspechit;
+
boolean P_CheckPosition (mobj_t *thing, fixed_t x, fixed_t y);
boolean P_TryMove (mobj_t* thing, fixed_t x, fixed_t y);
boolean P_TeleportMove (mobj_t* thing, fixed_t x, fixed_t y);
diff --git a/src/doom/p_map.c b/src/doom/p_map.c
index bf92fcea..e371869a 100644
--- a/src/doom/p_map.c
+++ b/src/doom/p_map.c
@@ -82,17 +82,6 @@ line_t* ceilingline;
// keep track of special lines as they are hit,
// but don't process them until the move is proven valid
-// fraggle: I have increased the size of this buffer. In the original Doom,
-// overrunning past this limit caused other bits of memory to be overwritten,
-// affecting demo playback. However, in doing so, the limit was still
-// exceeded. So we have to support more than 8 specials.
-//
-// We keep the original limit, to detect what variables in memory were
-// overwritten (see SpechitOverrun())
-
-#define MAXSPECIALCROSS 20
-#define MAXSPECIALCROSS_ORIGINAL 8
-
line_t* spechit[MAXSPECIALCROSS];
int numspechit;
diff --git a/src/heretic.desktop.in b/src/heretic.desktop.in
new file mode 100644
index 00000000..54ef6a83
--- /dev/null
+++ b/src/heretic.desktop.in
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=@PACKAGE_SHORTNAME@ Heretic
+Exec=@PROGRAM_PREFIX@heretic
+Icon=@PROGRAM_PREFIX@doom
+Type=Application
+Comment=@PACKAGE_SHORTDESC@
+Categories=Game;ActionGame;
diff --git a/src/hexen.desktop.in b/src/hexen.desktop.in
new file mode 100644
index 00000000..14603840
--- /dev/null
+++ b/src/hexen.desktop.in
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=@PACKAGE_SHORTNAME@ Hexen
+Exec=@PROGRAM_PREFIX@hexen
+Icon=@PROGRAM_PREFIX@doom
+Type=Application
+Comment=@PACKAGE_SHORTDESC@
+Categories=Game;ActionGame;
diff --git a/src/setup/joystick.c b/src/setup/joystick.c
index b57667f4..4cc62fe1 100644
--- a/src/setup/joystick.c
+++ b/src/setup/joystick.c
@@ -206,6 +206,26 @@ static const joystick_config_t xbox360_controller[] =
{NULL, 0},
};
+// Xbox 360 controller under Linux.
+static const joystick_config_t xbox360_controller_linux[] =
+{
+ {"joystick_x_axis", CREATE_HAT_AXIS(0, HAT_AXIS_HORIZONTAL)},
+ {"joystick_y_axis", CREATE_HAT_AXIS(0, HAT_AXIS_VERTICAL)},
+ // Ideally we'd like the trigger buttons to be strafe left/right
+ // But Linux presents each trigger button as its own axis, which
+ // we can't really work with. So we have to settle for a
+ // suboptimal setup.
+ {"joyb_fire", 2}, // X
+ {"joyb_speed", 0}, // A
+ {"joyb_jump", 3}, // Y
+ {"joyb_use", 1}, // B
+ {"joyb_strafeleft", 4}, // LB
+ {"joyb_straferight", 5}, // RB
+ {"joyb_menu_activate", 7}, // Start
+ {"joyb_prevweapon", 6}, // Back
+ {NULL, 0},
+};
+
// Logitech Dual Action (F310, F710). Thanks to Brad Harding for details.
static const joystick_config_t logitech_f310_controller[] =
{
@@ -249,6 +269,13 @@ static const known_joystick_t known_joysticks[] =
xbox360_controller,
},
+ // Xbox 360 controller as it appears on Linux.
+ {
+ "Microsoft X-Box 360 pad",
+ 6, 11, 1,
+ xbox360_controller_linux,
+ },
+
{
"Logitech Dual Action",
4, 12, 1,
diff --git a/src/setup/setup.desktop.in b/src/setup/setup.desktop.in
index 4b1cf69c..91decb41 100644
--- a/src/setup/setup.desktop.in
+++ b/src/setup/setup.desktop.in
@@ -1,7 +1,7 @@
[Desktop Entry]
-Name=@PACKAGE_NAME@ Setup
-Exec=@PROGRAM_PREFIX@doom-setup
+Name=@PACKAGE_SHORTNAME@ Setup
+Exec=@PROGRAM_PREFIX@setup
Icon=@PROGRAM_PREFIX@setup
Type=Application
-Comment=Setup tool for @PACKAGE_NAME@
+Comment=Setup tool for @PACKAGE_SHORTNAME@
Categories=Settings
diff --git a/src/strife.desktop.in b/src/strife.desktop.in
new file mode 100644
index 00000000..eb44c61d
--- /dev/null
+++ b/src/strife.desktop.in
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=@PACKAGE_SHORTNAME@ Strife
+Exec=@PROGRAM_PREFIX@strife
+Icon=@PROGRAM_PREFIX@doom
+Type=Application
+Comment=@PACKAGE_SHORTDESC@
+Categories=Game;ActionGame;