summaryrefslogtreecommitdiff
path: root/setup
diff options
context:
space:
mode:
Diffstat (limited to 'setup')
-rw-r--r--setup/.gitignore11
-rw-r--r--setup/Makefile.am56
-rw-r--r--setup/compatibility.c46
-rw-r--r--setup/compatibility.h31
-rw-r--r--setup/configfile.c803
-rw-r--r--setup/configfile.h44
-rw-r--r--setup/display.c759
-rw-r--r--setup/display.h38
-rw-r--r--setup/execute.c454
-rw-r--r--setup/execute.h45
-rw-r--r--setup/joystick.c446
-rw-r--r--setup/joystick.h44
-rw-r--r--setup/keyboard.c374
-rw-r--r--setup/keyboard.h107
-rw-r--r--setup/m_argv.c65
-rw-r--r--setup/m_argv.h42
-rw-r--r--setup/mainmenu.c315
-rw-r--r--setup/mouse.c163
-rw-r--r--setup/mouse.h47
-rw-r--r--setup/multiplayer.c850
-rw-r--r--setup/multiplayer.h37
-rw-r--r--setup/setup-manifest.xml.in33
-rw-r--r--setup/setup-res.rc.in24
-rw-r--r--setup/setup.desktop.in7
-rw-r--r--setup/setup_icon.c262
-rw-r--r--setup/sound.c178
-rw-r--r--setup/sound.h54
-rw-r--r--setup/txt_joybinput.c230
-rw-r--r--setup/txt_joybinput.h47
-rw-r--r--setup/txt_keyinput.c195
-rw-r--r--setup/txt_keyinput.h45
-rw-r--r--setup/txt_mouseinput.c187
-rw-r--r--setup/txt_mouseinput.h45
33 files changed, 0 insertions, 6084 deletions
diff --git a/setup/.gitignore b/setup/.gitignore
deleted file mode 100644
index ff78f4c5..00000000
--- a/setup/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-Makefile.in
-Makefile
-.deps
-setup-manifest.xml
-setup.desktop
-*-setup
-*-setup.desktop
-*.rc
-*.exe
-tags
-TAGS
diff --git a/setup/Makefile.am b/setup/Makefile.am
deleted file mode 100644
index 37bea567..00000000
--- a/setup/Makefile.am
+++ /dev/null
@@ -1,56 +0,0 @@
-
-gamesdir = $(prefix)/games
-
-AM_CFLAGS = -I../textscreen -I../src @SDLMIXER_CFLAGS@
-
-games_PROGRAMS = @PROGRAM_PREFIX@setup
-
-SOURCE_FILES = \
- compatibility.c compatibility.h \
- configfile.c configfile.h \
- display.c display.h \
- joystick.c joystick.h \
- keyboard.c keyboard.h \
- m_argv.c m_argv.h \
- mainmenu.c \
- mouse.c mouse.h \
- multiplayer.c multiplayer.h \
- sound.c sound.h \
- execute.c execute.h \
- txt_joybinput.c txt_joybinput.h \
- txt_keyinput.c txt_keyinput.h \
- txt_mouseinput.c txt_mouseinput.h
-
-EXTRA_DIST= \
- setup_icon.c
-
-if HAVE_WINDRES
-@PROGRAM_PREFIX@setup_SOURCES=$(SOURCE_FILES) setup-res.rc
-else
-@PROGRAM_PREFIX@setup_SOURCES=$(SOURCE_FILES)
-endif
-
-@PROGRAM_PREFIX@setup_LDADD = \
- ../wince/libc_wince.a \
- ../textscreen/libtextscreen.a \
- @SDLMIXER_LIBS@ \
- @LDFLAGS@
-
-appdir = $(prefix)/share/applications
-app_DATA = @PROGRAM_PREFIX@setup.desktop
-
-@PROGRAM_PREFIX@setup.desktop : setup.desktop
- cp $^ $@
-
-.rc.o:
- $(WINDRES) $^ -o $@
-%.o : %.rc
- $(WINDRES) $^ -o $@
-
-if HAVE_PYTHON
-
-setup_icon.c : ../data/setup8.ico
- ../data/convert-icon $^ $@
-
-endif
-
diff --git a/setup/compatibility.c b/setup/compatibility.c
deleted file mode 100644
index bebf5a87..00000000
--- a/setup/compatibility.c
+++ /dev/null
@@ -1,46 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-// Sound control menu
-
-#include <stdlib.h>
-
-#include "textscreen.h"
-
-#include "compatibility.h"
-
-int vanilla_savegame_limit = 1;
-int vanilla_demo_limit = 1;
-
-void CompatibilitySettings(void)
-{
- txt_window_t *window;
-
- window = TXT_NewWindow("Compatibility");
-
- TXT_AddWidgets(window,
- TXT_NewCheckBox("Vanilla savegame limit",
- &vanilla_savegame_limit),
- TXT_NewCheckBox("Vanilla demo limit",
- &vanilla_demo_limit),
- NULL);
-}
-
diff --git a/setup/compatibility.h b/setup/compatibility.h
deleted file mode 100644
index 1d46b174..00000000
--- a/setup/compatibility.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef SETUP_COMPATIBILITY_H
-#define SETUP_COMPATIBILITY_H
-
-extern int vanilla_savegame_limit;
-extern int vanilla_demo_limit;
-
-void CompatibilitySettings(void);
-
-#endif /* #ifndef SETUP_COMPATIBILITY_H */
-
diff --git a/setup/configfile.c b/setup/configfile.c
deleted file mode 100644
index 6a6eb3f6..00000000
--- a/setup/configfile.c
+++ /dev/null
@@ -1,803 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 1993-1996 Id Software, Inc.
-// Copyright(C) 2005 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-//
-// DESCRIPTION:
-// Configuration file load/save code.
-//
-//-----------------------------------------------------------------------------
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-// for mkdir:
-
-#ifdef _WIN32
-#include <io.h>
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#else
-#include <sys/stat.h>
-#include <sys/types.h>
-#endif
-
-#include "SDL_mixer.h"
-
-#include "config.h"
-
-#include "doomfeatures.h"
-#include "doomkeys.h"
-#include "doomtype.h"
-#include "d_englsh.h"
-
-#include "m_argv.h"
-
-#include "compatibility.h"
-#include "display.h"
-#include "joystick.h"
-#include "keyboard.h"
-#include "mouse.h"
-#include "multiplayer.h"
-#include "sound.h"
-
-char *configdir;
-
-//
-// Create a directory
-//
-
-void M_MakeDirectory(char *path)
-{
-#ifdef _WIN32
- mkdir(path);
-#else
- mkdir(path, 0755);
-#endif
-}
-
-
-//
-// M_SetConfigDir:
-//
-// Sets the location of the configuration directory, where configuration
-// files are stored - default.cfg, chocolate-doom.cfg, savegames, etc.
-//
-
-void M_SetConfigDir(void)
-{
-#if !defined(_WIN32) || defined(_WIN32_WCE)
-
- // Configuration settings are stored in ~/.chocolate-doom/,
- // except on Windows, where we behave like Vanilla Doom and
- // save in the current directory.
-
- char *homedir;
-
- homedir = getenv("HOME");
-
- if (homedir != NULL)
- {
- // put all configuration in a config directory off the
- // homedir
-
- configdir = malloc(strlen(homedir) + strlen(PACKAGE_TARNAME) + 5);
-
- sprintf(configdir, "%s%c.%s%c", homedir, DIR_SEPARATOR,
- PACKAGE_TARNAME, DIR_SEPARATOR);
-
- // make the directory if it doesnt already exist
-
- M_MakeDirectory(configdir);
- }
- else
-#endif /* #ifndef _WIN32 */
- {
-#if defined(_WIN32) && !defined(_WIN32_WCE)
- // when given the -cdrom option, save config+savegames in
- // c:\doomdata. This only applies under Windows.
-
- if (M_CheckParm("-cdrom") > 0)
- {
- printf(D_CDROM);
- configdir = strdup("c:\\doomdata\\");
-
- M_MakeDirectory(configdir);
- }
- else
-#endif
- {
- configdir = strdup("");
- }
- }
-}
-
-
-
-//
-// DEFAULTS
-//
-
-// These are options that are not controlled by setup.
-
-static int showMessages = 1;
-static int screenblocks = 9;
-static int detailLevel = 0;
-static int usegamma = 0;
-
-// dos specific options: these are unused but should be maintained
-// so that the config file can be shared between chocolate
-// doom and doom.exe
-
-static int snd_sbport = 0;
-static int snd_sbirq = 0;
-static int snd_sbdma = 0;
-static int snd_mport = 0;
-
-typedef enum
-{
- DEFAULT_INT,
- DEFAULT_INT_HEX,
- DEFAULT_STRING,
- DEFAULT_FLOAT,
- DEFAULT_KEY,
-} default_type_t;
-
-typedef struct
-{
- // Name of the variable
- char * name;
-
- // Pointer to the location in memory of the variable
- void * location;
-
- // Type of the variable
- default_type_t type;
-
- // If this is a key value, the original integer scancode we read from
- // the config file before translating it to the internal key value.
- // If zero, we didn't read this value from a config file.
- int untranslated;
-
- // The value we translated the scancode into when we read the
- // config file on startup. If the variable value is different from
- // this, it has been changed and needs to be converted; otherwise,
- // use the 'untranslated' value.
- int original_translated;
-} default_t;
-
-typedef struct
-{
- default_t *defaults;
- int numdefaults;
- char *filename;
-} default_collection_t;
-
-static default_t doom_defaults_list[] =
-{
- {"mouse_sensitivity", &mouseSensitivity, DEFAULT_INT, 0, 0},
- {"sfx_volume",&sfxVolume, DEFAULT_INT, 0, 0},
- {"music_volume",&musicVolume, DEFAULT_INT, 0, 0},
- {"show_messages",&showMessages, DEFAULT_INT, 0, 0},
-
- {"key_right",&key_right, DEFAULT_KEY, 0, 0},
- {"key_left",&key_left, DEFAULT_KEY, 0, 0},
- {"key_up",&key_up, DEFAULT_KEY, 0, 0},
- {"key_down",&key_down, DEFAULT_KEY, 0, 0},
- {"key_strafeleft",&key_strafeleft, DEFAULT_KEY, 0, 0},
- {"key_straferight",&key_straferight, DEFAULT_KEY, 0, 0},
-
- {"key_fire",&key_fire, DEFAULT_KEY, 0, 0},
- {"key_use",&key_use, DEFAULT_KEY, 0, 0},
- {"key_strafe",&key_strafe, DEFAULT_KEY, 0, 0},
- {"key_speed",&key_speed, DEFAULT_KEY, 0, 0},
-
- {"use_mouse",&usemouse, DEFAULT_INT, 0, 0},
- {"mouseb_fire",&mousebfire, DEFAULT_INT, 0, 0},
- {"mouseb_strafe",&mousebstrafe, DEFAULT_INT, 0, 0},
- {"mouseb_forward",&mousebforward, DEFAULT_INT, 0, 0},
-
- {"use_joystick",&usejoystick, DEFAULT_INT, 0, 0},
- {"joyb_fire",&joybfire, DEFAULT_INT, 0, 0},
- {"joyb_strafe",&joybstrafe, DEFAULT_INT, 0, 0},
- {"joyb_use",&joybuse, DEFAULT_INT, 0, 0},
- {"joyb_speed",&joybspeed, DEFAULT_INT, 0, 0},
-
- {"screenblocks",&screenblocks, DEFAULT_INT, 0, 0},
- {"detaillevel",&detailLevel, DEFAULT_INT, 0, 0},
-
- {"snd_channels",&numChannels, DEFAULT_INT, 0, 0},
-
- {"snd_musicdevice", &snd_musicdevice, DEFAULT_INT, 0, 0},
- {"snd_sfxdevice", &snd_sfxdevice, DEFAULT_INT, 0, 0},
- {"snd_sbport", &snd_sbport, DEFAULT_INT, 0, 0},
- {"snd_sbirq", &snd_sbirq, DEFAULT_INT, 0, 0},
- {"snd_sbdma", &snd_sbdma, DEFAULT_INT, 0, 0},
- {"snd_mport", &snd_mport, DEFAULT_INT, 0, 0},
-
- {"usegamma", &usegamma, DEFAULT_INT, 0, 0},
-
- {"chatmacro0", &chat_macros[0], DEFAULT_STRING, 0, 0 },
- {"chatmacro1", &chat_macros[1], DEFAULT_STRING, 0, 0 },
- {"chatmacro2", &chat_macros[2], DEFAULT_STRING, 0, 0 },
- {"chatmacro3", &chat_macros[3], DEFAULT_STRING, 0, 0 },
- {"chatmacro4", &chat_macros[4], DEFAULT_STRING, 0, 0 },
- {"chatmacro5", &chat_macros[5], DEFAULT_STRING, 0, 0 },
- {"chatmacro6", &chat_macros[6], DEFAULT_STRING, 0, 0 },
- {"chatmacro7", &chat_macros[7], DEFAULT_STRING, 0, 0 },
- {"chatmacro8", &chat_macros[8], DEFAULT_STRING, 0, 0 },
- {"chatmacro9", &chat_macros[9], DEFAULT_STRING, 0, 0 },
-
-};
-
-static default_collection_t doom_defaults =
-{
- doom_defaults_list,
- arrlen(doom_defaults_list),
- NULL,
-};
-
-static default_t extra_defaults_list[] =
-{
- {"autoadjust_video_settings", &autoadjust_video_settings, DEFAULT_INT, 0, 0},
- {"fullscreen", &fullscreen, DEFAULT_INT, 0, 0},
- {"aspect_ratio_correct", &aspect_ratio_correct, DEFAULT_INT, 0, 0},
- {"startup_delay", &startup_delay, DEFAULT_INT, 0, 0},
- {"screen_width", &screen_width, DEFAULT_INT, 0, 0},
- {"screen_height", &screen_height, DEFAULT_INT, 0, 0},
- {"screen_bpp", &screen_bpp, DEFAULT_INT, 0, 0},
- {"grabmouse", &grabmouse, DEFAULT_INT, 0, 0},
- {"novert", &novert, DEFAULT_INT, 0, 0},
- {"mouse_acceleration", &mouse_acceleration, DEFAULT_FLOAT, 0, 0},
- {"mouse_threshold", &mouse_threshold, DEFAULT_INT, 0, 0},
- {"snd_samplerate", &snd_samplerate, DEFAULT_INT, 0, 0},
- {"opl_io_port", &opl_io_port, DEFAULT_INT_HEX, 0, 0},
- {"show_endoom", &show_endoom, DEFAULT_INT, 0, 0},
- {"vanilla_savegame_limit", &vanilla_savegame_limit, DEFAULT_INT, 0, 0},
- {"vanilla_demo_limit", &vanilla_demo_limit, DEFAULT_INT, 0, 0},
- {"vanilla_keyboard_mapping", &vanilla_keyboard_mapping, DEFAULT_INT, 0, 0},
-#ifdef FEATURE_MULTIPLAYER
- {"player_name", &net_player_name, DEFAULT_STRING, 0, 0},
-#endif
- {"video_driver", &video_driver, DEFAULT_STRING, 0, 0},
- {"joystick_index", &joystick_index, DEFAULT_INT, 0, 0},
- {"joystick_x_axis", &joystick_x_axis, DEFAULT_INT, 0, 0},
- {"joystick_x_invert", &joystick_x_invert, DEFAULT_INT, 0, 0},
- {"joystick_y_axis", &joystick_y_axis, DEFAULT_INT, 0, 0},
- {"joystick_y_invert", &joystick_y_invert, DEFAULT_INT, 0, 0},
- {"joyb_strafeleft", &joybstrafeleft, DEFAULT_INT, 0, 0},
- {"joyb_straferight", &joybstraferight, DEFAULT_INT, 0, 0},
- {"joyb_prevweapon", &joybprevweapon, DEFAULT_INT, 0, 0},
- {"joyb_nextweapon", &joybnextweapon, DEFAULT_INT, 0, 0},
- {"dclick_use", &dclick_use, DEFAULT_INT, 0, 0},
- {"mouseb_strafeleft", &mousebstrafeleft, DEFAULT_INT, 0, 0},
- {"mouseb_straferight", &mousebstraferight, DEFAULT_INT, 0, 0},
- {"mouseb_use", &mousebuse, DEFAULT_INT, 0, 0},
- {"mouseb_backward", &mousebbackward, DEFAULT_INT, 0, 0},
- {"mouseb_prevweapon", &mousebprevweapon, DEFAULT_INT, 0, 0},
- {"mouseb_nextweapon", &mousebnextweapon, DEFAULT_INT, 0, 0},
- {"use_libsamplerate", &use_libsamplerate, DEFAULT_INT, 0, 0},
-
- {"key_pause", &key_pause, DEFAULT_KEY, 0, 0},
- {"key_menu_activate", &key_menu_activate, DEFAULT_KEY, 0, 0},
- {"key_menu_up", &key_menu_up, DEFAULT_KEY, 0, 0},
- {"key_menu_down", &key_menu_down, DEFAULT_KEY, 0, 0},
- {"key_menu_left", &key_menu_left, DEFAULT_KEY, 0, 0},
- {"key_menu_right", &key_menu_right, DEFAULT_KEY, 0, 0},
- {"key_menu_back", &key_menu_back, DEFAULT_KEY, 0, 0},
- {"key_menu_forward", &key_menu_forward, DEFAULT_KEY, 0, 0},
- {"key_menu_confirm", &key_menu_confirm, DEFAULT_KEY, 0, 0},
- {"key_menu_abort", &key_menu_abort, DEFAULT_KEY, 0, 0},
- {"key_menu_help", &key_menu_help, DEFAULT_KEY, 0, 0},
- {"key_menu_save", &key_menu_save, DEFAULT_KEY, 0, 0},
- {"key_menu_load", &key_menu_load, DEFAULT_KEY, 0, 0},
- {"key_menu_volume", &key_menu_volume, DEFAULT_KEY, 0, 0},
- {"key_menu_detail", &key_menu_detail, DEFAULT_KEY, 0, 0},
- {"key_menu_qsave", &key_menu_qsave, DEFAULT_KEY, 0, 0},
- {"key_menu_endgame", &key_menu_endgame, DEFAULT_KEY, 0, 0},
- {"key_menu_messages", &key_menu_messages, DEFAULT_KEY, 0, 0},
- {"key_menu_qload", &key_menu_qload, DEFAULT_KEY, 0, 0},
- {"key_menu_quit", &key_menu_quit, DEFAULT_KEY, 0, 0},
- {"key_menu_gamma", &key_menu_gamma, DEFAULT_KEY, 0, 0},
- {"key_spy", &key_spy, DEFAULT_KEY, 0, 0},
- {"key_menu_incscreen", &key_menu_incscreen, DEFAULT_KEY, 0, 0},
- {"key_menu_decscreen", &key_menu_decscreen, DEFAULT_KEY, 0, 0},
-
- {"key_map_toggle", &key_map_toggle, DEFAULT_KEY, 0, 0},
- {"key_map_north", &key_map_north, DEFAULT_KEY, 0, 0},
- {"key_map_south", &key_map_south, DEFAULT_KEY, 0, 0},
- {"key_map_east", &key_map_east, DEFAULT_KEY, 0, 0},
- {"key_map_west", &key_map_west, DEFAULT_KEY, 0, 0},
- {"key_map_zoomin", &key_map_zoomin, DEFAULT_KEY, 0, 0},
- {"key_map_zoomout", &key_map_zoomout, DEFAULT_KEY, 0, 0},
- {"key_map_maxzoom", &key_map_maxzoom, DEFAULT_KEY, 0, 0},
- {"key_map_follow", &key_map_follow, DEFAULT_KEY, 0, 0},
- {"key_map_grid", &key_map_grid, DEFAULT_KEY, 0, 0},
- {"key_map_mark", &key_map_mark, DEFAULT_KEY, 0, 0},
- {"key_map_clearmark", &key_map_clearmark, DEFAULT_KEY, 0, 0},
- {"key_weapon1", &key_weapon1, DEFAULT_KEY, 0, 0},
- {"key_weapon2", &key_weapon2, DEFAULT_KEY, 0, 0},
- {"key_weapon3", &key_weapon3, DEFAULT_KEY, 0, 0},
- {"key_weapon4", &key_weapon4, DEFAULT_KEY, 0, 0},
- {"key_weapon5", &key_weapon5, DEFAULT_KEY, 0, 0},
- {"key_weapon6", &key_weapon6, DEFAULT_KEY, 0, 0},
- {"key_weapon7", &key_weapon7, DEFAULT_KEY, 0, 0},
- {"key_weapon8", &key_weapon8, DEFAULT_KEY, 0, 0},
- {"key_prevweapon", &key_prevweapon, DEFAULT_KEY, 0, 0},
- {"key_nextweapon", &key_nextweapon, DEFAULT_KEY, 0, 0},
- {"key_message_refresh", &key_message_refresh, DEFAULT_KEY, 0, 0},
- {"key_demo_quit", &key_demo_quit, DEFAULT_KEY, 0, 0},
- {"key_multi_msg", &key_multi_msg, DEFAULT_KEY, 0, 0},
- {"key_multi_msgplayer1", &key_multi_msgplayer[0], DEFAULT_KEY, 0, 0},
- {"key_multi_msgplayer2", &key_multi_msgplayer[1], DEFAULT_KEY, 0, 0},
- {"key_multi_msgplayer3", &key_multi_msgplayer[2], DEFAULT_KEY, 0, 0},
- {"key_multi_msgplayer4", &key_multi_msgplayer[3], DEFAULT_KEY, 0, 0},
-};
-
-static default_collection_t extra_defaults =
-{
- extra_defaults_list,
- arrlen(extra_defaults_list),
- NULL,
-};
-
-static int scantokey[128] =
-{
- 0 , 27, '1', '2', '3', '4', '5', '6',
- '7', '8', '9', '0', '-', '=', KEY_BACKSPACE, 9,
- 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
- 'o', 'p', '[', ']', 13, KEY_RCTRL, 'a', 's',
- 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
- '\'', '`', KEY_RSHIFT,'\\', 'z', 'x', 'c', 'v',
- 'b', 'n', 'm', ',', '.', '/', KEY_RSHIFT,KEYP_MULTIPLY,
- KEY_RALT, ' ', KEY_CAPSLOCK,KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5,
- KEY_F6, KEY_F7, KEY_F8, KEY_F9, KEY_F10, KEY_PAUSE,KEY_SCRLCK,KEY_HOME,
- KEY_UPARROW,KEY_PGUP,KEYP_MINUS,KEY_LEFTARROW,KEYP_5,KEY_RIGHTARROW,KEYP_PLUS,KEY_END,
- KEY_DOWNARROW,KEY_PGDN,KEY_INS,KEY_DEL,0, 0, 0, KEY_F11,
- KEY_F12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-
-static void SaveDefaultCollection(default_collection_t *collection)
-{
- default_t *defaults;
- int i, v;
- FILE *f;
-
- f = fopen (collection->filename, "w");
- if (!f)
- return; // can't write the file, but don't complain
-
- defaults = collection->defaults;
-
- for (i=0 ; i<collection->numdefaults ; i++)
- {
- int chars_written;
-
- // Print the name and line up all values at 30 characters
-
- chars_written = fprintf(f, "%s ", defaults[i].name);
-
- for (; chars_written < 30; ++chars_written)
- fprintf(f, " ");
-
- // Print the value
-
- switch (defaults[i].type)
- {
- case DEFAULT_KEY:
-
- // use the untranslated version if we can, to reduce
- // the possibility of screwing up the user's config
- // file
-
- v = * (int *) defaults[i].location;
-
- if (v == KEY_RSHIFT)
- {
- // Special case: for shift, force scan code for
- // right shift, as this is what Vanilla uses.
- // This overrides the change check below, to fix
- // configuration files made by old versions that
- // mistakenly used the scan code for left shift.
-
- v = 54;
- }
- else if (defaults[i].untranslated
- && v == defaults[i].original_translated)
- {
- // Has not been changed since the last time we
- // read the config file.
-
- v = defaults[i].untranslated;
- }
- else
- {
- // search for a reverse mapping back to a scancode
- // in the scantokey table
-
- int s;
-
- for (s=0; s<128; ++s)
- {
- if (scantokey[s] == v)
- {
- v = s;
- break;
- }
- }
- }
-
- fprintf(f, "%i", v);
- break;
-
- case DEFAULT_INT_HEX:
- fprintf(f, "0x%x", * (int *) defaults[i].location);
- break;
-
- case DEFAULT_INT:
- fprintf(f, "%i", * (int *) defaults[i].location);
- break;
-
- case DEFAULT_FLOAT:
- fprintf(f, "%f", * (float *) defaults[i].location);
- break;
-
- case DEFAULT_STRING:
- fprintf(f,"\"%s\"", * (char **) (defaults[i].location));
- break;
- }
-
- fprintf(f, "\n");
- }
-
- fclose (f);
-}
-
-// Parses integer values in the configuration file
-
-static int ParseIntParameter(char *strparm)
-{
- int parm;
-
- if (strparm[0] == '0' && strparm[1] == 'x')
- sscanf(strparm+2, "%x", &parm);
- else
- sscanf(strparm, "%i", &parm);
-
- return parm;
-}
-
-static void LoadDefaultCollection(default_collection_t *collection)
-{
- default_t *defaults = collection->defaults;
- int i;
- FILE* f;
- char defname[80];
- char strparm[100];
-
- // read the file in, overriding any set defaults
- f = fopen(collection->filename, "r");
-
- if (!f)
- {
- // File not opened, but don't complain
-
- return;
- }
-
- while (!feof(f))
- {
- if (fscanf (f, "%79s %[^\n]\n", defname, strparm) != 2)
- {
- // This line doesn't match
-
- continue;
- }
-
- // Strip off trailing non-printable characters (\r characters
- // from DOS text files)
-
- while (strlen(strparm) > 0 && !isprint(strparm[strlen(strparm)-1]))
- {
- strparm[strlen(strparm)-1] = '\0';
- }
-
- // Find the setting in the list
-
- for (i=0; i<collection->numdefaults; ++i)
- {
- default_t *def = &collection->defaults[i];
- char *s;
- int intparm;
-
- if (strcmp(defname, def->name) != 0)
- {
- // not this one
- continue;
- }
-
- // parameter found
-
- switch (def->type)
- {
- case DEFAULT_STRING:
- s = strdup(strparm + 1);
- s[strlen(s) - 1] = '\0';
- * (char **) def->location = s;
- break;
-
- case DEFAULT_INT:
- case DEFAULT_INT_HEX:
- * (int *) def->location = ParseIntParameter(strparm);
- break;
-
- case DEFAULT_KEY:
-
- // translate scancodes read from config
- // file (save the old value in untranslated)
-
- intparm = ParseIntParameter(strparm);
- defaults[i].untranslated = intparm;
-
- if (intparm >= 0 && intparm < 128)
- {
- intparm = scantokey[intparm];
- }
- else
- {
- intparm = 0;
- }
-
- defaults[i].original_translated = intparm;
- * (int *) def->location = intparm;
- break;
-
- case DEFAULT_FLOAT:
- * (float *) def->location = atof(strparm);
- break;
- }
-
- // finish
-
- break;
- }
- }
-
- fclose (f);
-}
-
-//
-// M_SaveDefaults
-//
-
-void M_SaveDefaults (void)
-{
- SaveDefaultCollection(&doom_defaults);
- SaveDefaultCollection(&extra_defaults);
-}
-
-
-//
-// M_LoadDefaults
-//
-
-void M_LoadDefaults (void)
-{
- int i;
-
- // check for a custom default file
- i = M_CheckParm ("-config");
-
- if (i && i<myargc-1)
- {
- doom_defaults.filename = myargv[i+1];
- printf (" default file: %s\n",doom_defaults.filename);
- }
- else
- {
- doom_defaults.filename = malloc(strlen(configdir) + 20);
- sprintf(doom_defaults.filename, "%sdefault.cfg", configdir);
- }
-
-// printf("saving config in %s\n", doom_defaults.filename);
-
- i = M_CheckParm("-extraconfig");
-
- if (i && i<myargc-1)
- {
- extra_defaults.filename = myargv[i+1];
- printf(" extra configuration file: %s\n",
- extra_defaults.filename);
- }
- else
- {
- extra_defaults.filename
- = malloc(strlen(configdir) + strlen(PROGRAM_PREFIX) + 15);
- sprintf(extra_defaults.filename, "%s%sdoom.cfg",
- configdir, PROGRAM_PREFIX);
- }
-
- LoadDefaultCollection(&doom_defaults);
- LoadDefaultCollection(&extra_defaults);
-}
-
-//
-// Save normal (default.cfg) defaults to a given file
-//
-
-void M_SaveMainDefaults(char *filename)
-{
- char *main_filename;
-
- // Save the normal filename and set this one
-
- main_filename = doom_defaults.filename;
- doom_defaults.filename = filename;
-
- // Save the file
-
- SaveDefaultCollection(&doom_defaults);
-
- // Restore the normal filename
-
- doom_defaults.filename = main_filename;
-}
-
-//
-// Save extra (chocolate-doom.cfg) defaults to a given file
-//
-
-void M_SaveExtraDefaults(char *filename)
-{
- char *main_filename;
-
- // Save the normal filename and set this one
-
- main_filename = extra_defaults.filename;
- extra_defaults.filename = filename;
-
- // Save the file
-
- SaveDefaultCollection(&extra_defaults);
-
- // Restore the normal filename
-
- extra_defaults.filename = main_filename;
-}
-
-#ifdef _WIN32_WCE
-
-static int SystemHasKeyboard(void)
-{
- HKEY key;
- DWORD valtype;
- DWORD valsize;
- DWORD result;
-
- if (RegOpenKeyExW(HKEY_CURRENT_USER,
- L"\\Software\\Microsoft\\Shell", 0,
- KEY_READ, &key) != ERROR_SUCCESS)
- {
- return 0;
- }
-
- valtype = REG_SZ;
- valsize = sizeof(DWORD);
-
- if (RegQueryValueExW(key, L"HasKeyboard", NULL, &valtype,
- (LPBYTE) &result, &valsize) != ERROR_SUCCESS)
- {
- result = 0;
- }
-
- // Close the key
-
- RegCloseKey(key);
-
- return result;
-}
-
-//
-// Apply custom defaults for Windows CE.
-//
-
-static void M_ApplyWindowsCEDefaults(void)
-{
- // If the system doesn't have a keyboard, patch the default
- // configuration to use the hardware keys.
-
- if (!SystemHasKeyboard())
- {
- key_use = KEY_F1;
- key_fire = KEY_F2;
- key_menu_activate = KEY_F3;
- key_map_toggle = KEY_F4;
-
- key_menu_help = 0;
- key_menu_save = 0;
- key_menu_load = 0;
- key_menu_volume = 0;
-
- key_menu_confirm = KEY_ENTER;
- key_menu_back = KEY_F2;
- key_menu_abort = KEY_F2;
- }
-}
-
-
-#endif
-
-//
-// Apply custom patches to the default values depending on the
-// platform we are running on.
-//
-
-void M_ApplyPlatformDefaults(void)
-{
-#ifdef _WIN32_WCE
- M_ApplyWindowsCEDefaults();
-#endif
-
- // Before SDL_mixer version 1.2.11, MIDI music caused the game
- // to crash when it looped. If this is an old SDL_mixer version,
- // disable MIDI.
-
-#ifdef __MACOSX__
- {
- const SDL_version *v = Mix_Linked_Version();
-
- if (SDL_VERSIONNUM(v->major, v->minor, v->patch)
- < SDL_VERSIONNUM(1, 2, 11))
- {
- snd_musicdevice = SNDDEVICE_NONE;
- }
- }
-#endif
-
- // Windows Vista or later? Set screen color depth to
- // 32 bits per pixel, as 8-bit palettized screen modes
- // don't work properly in recent versions.
-
-#if defined(_WIN32) && !defined(_WIN32_WCE)
- {
- OSVERSIONINFOEX version_info;
-
- ZeroMemory(&version_info, sizeof(OSVERSIONINFOEX));
- version_info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
-
- GetVersionEx((OSVERSIONINFO *) &version_info);
-
- if (version_info.dwPlatformId == VER_PLATFORM_WIN32_NT
- && version_info.dwMajorVersion >= 6)
- {
- screen_bpp = 32;
- }
- }
-#endif
-}
-
diff --git a/setup/configfile.h b/setup/configfile.h
deleted file mode 100644
index 3ef2cf9b..00000000
--- a/setup/configfile.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 1993-1996 Id Software, Inc.
-// Copyright(C) 2005 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-// DESCRIPTION:
-//
-//
-//-----------------------------------------------------------------------------
-
-
-#ifndef __SETUP_CONFIG__
-#define __SETUP_CONFIG__
-
-extern char *configdir;
-
-void M_LoadDefaults (void);
-void M_SaveDefaults (void);
-
-void M_SetConfigDir(void);
-
-void M_SaveMainDefaults(char *filename);
-void M_SaveExtraDefaults(char *filename);
-
-void M_ApplyPlatformDefaults(void);
-
-#endif
-
diff --git a/setup/display.c b/setup/display.c
deleted file mode 100644
index f15b2b06..00000000
--- a/setup/display.c
+++ /dev/null
@@ -1,759 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#include <string.h>
-
-#ifdef _WIN32_WCE
-#include "libc_wince.h"
-#endif
-
-#include "textscreen.h"
-
-#include "display.h"
-
-extern void RestartTextscreen(void);
-
-typedef struct
-{
- char *description;
- int bpp;
-} pixel_depth_t;
-
-// List of supported pixel depths.
-
-static pixel_depth_t pixel_depths[] =
-{
- { "8-bit", 8 },
- { "16-bit", 16 },
- { "24-bit", 24 },
- { "32-bit", 32 },
-};
-
-// List of strings containing supported pixel depths.
-
-static char **supported_bpps;
-static int num_supported_bpps;
-
-typedef struct
-{
- int w, h;
-} screen_mode_t;
-
-// List of aspect ratio-uncorrected modes
-
-static screen_mode_t screen_modes_unscaled[] =
-{
- { 320, 200 },
- { 640, 400 },
- { 960, 600 },
- { 1280, 800 },
- { 1600, 1000 },
- { 0, 0},
-};
-
-// List of aspect ratio-corrected modes
-
-static screen_mode_t screen_modes_scaled[] =
-{
- { 256, 200 },
- { 320, 240 },
- { 512, 400 },
- { 640, 480 },
- { 800, 600 },
- { 960, 720 },
- { 1024, 800 },
- { 1280, 960 },
- { 1280, 1000 },
- { 1600, 1200 },
- { 0, 0},
-};
-
-// List of fullscreen modes generated at runtime
-
-static screen_mode_t *screen_modes_fullscreen = NULL;
-static int num_screen_modes_fullscreen;
-
-static int vidmode = 0;
-
-char *video_driver = "";
-int autoadjust_video_settings = 1;
-int aspect_ratio_correct = 1;
-int fullscreen = 1;
-int screen_width = 320;
-int screen_height = 200;
-int screen_bpp = 8;
-int startup_delay = 1000;
-int show_endoom = 1;
-
-// These are the last screen width/height values that were chosen by the
-// user. These are used when finding the "nearest" mode, so when
-// changing the fullscreen / aspect ratio options, the setting does not
-// jump around.
-
-static int selected_screen_width = 0, selected_screen_height;
-
-// Index into the supported_bpps of the selected pixel depth.
-
-static int selected_bpp = 0;
-
-static int system_video_env_set;
-
-// Set the SDL_VIDEODRIVER environment variable
-
-void SetDisplayDriver(void)
-{
- static int first_time = 1;
-
- if (first_time)
- {
- system_video_env_set = getenv("SDL_VIDEODRIVER") != NULL;
-
- first_time = 0;
- }
-
- // Don't override the command line environment, if it has been set.
-
- if (system_video_env_set)
- {
- return;
- }
-
- // Use the value from the configuration file, if it has been set.
-
- if (strcmp(video_driver, "") != 0)
- {
- char *env_string;
-
- env_string = malloc(strlen(video_driver) + 30);
- sprintf(env_string, "SDL_VIDEODRIVER=%s", video_driver);
- putenv(env_string);
- free(env_string);
- }
- else
- {
-#if defined(_WIN32) && !defined(_WIN32_WCE)
- // On Windows, use DirectX over windib by default.
-
- putenv("SDL_VIDEODRIVER=directx");
-#endif
- }
-}
-
-// Query SDL as to whether any fullscreen modes are available for the
-// specified pixel depth.
-
-static int PixelDepthSupported(int bpp)
-{
- SDL_PixelFormat format;
- SDL_Rect **modes;
-
- format.BitsPerPixel = bpp;
- format.BytesPerPixel = (bpp + 7) / 8;
-
- modes = SDL_ListModes(&format, SDL_FULLSCREEN);
-
- return modes != NULL;
-}
-
-// Query SDL and populate the supported_bpps array.
-
-static void IdentifyPixelDepths(void)
-{
- unsigned int i;
- unsigned int num_depths = sizeof(pixel_depths) / sizeof(*pixel_depths);
-
- if (supported_bpps != NULL)
- {
- free(supported_bpps);
- }
-
- supported_bpps = malloc(sizeof(char *) * num_depths);
- num_supported_bpps = 0;
-
- // Check each bit depth to determine if modes are available.
-
- for (i = 0; i < num_depths; ++i)
- {
- // If modes are available, add this bit depth to the list.
-
- if (PixelDepthSupported(pixel_depths[i].bpp))
- {
- supported_bpps[num_supported_bpps] = pixel_depths[i].description;
- ++num_supported_bpps;
- }
- }
-
- // No supported pixel depths? That's kind of a problem. Add 8bpp
- // as a fallback.
-
- if (num_supported_bpps == 0)
- {
- supported_bpps[0] = pixel_depths[0].description;
- ++num_supported_bpps;
- }
-}
-
-// Get the screen pixel depth corresponding to what selected_bpp is set to.
-
-static int GetSelectedBPP(void)
-{
- unsigned int num_depths = sizeof(pixel_depths) / sizeof(*pixel_depths);
- unsigned int i;
-
- // Find which pixel depth is selected, and set screen_bpp.
-
- for (i = 0; i < num_depths; ++i)
- {
- if (pixel_depths[i].description == supported_bpps[selected_bpp])
- {
- return pixel_depths[i].bpp;
- }
- }
-
- // Default fallback value.
-
- return 8;
-}
-
-// Get the index into supported_bpps of the specified pixel depth string.
-
-static int GetSupportedBPPIndex(char *description)
-{
- unsigned int i;
-
- for (i = 0; i < num_supported_bpps; ++i)
- {
- if (supported_bpps[i] == description)
- {
- return i;
- }
- }
-
- return -1;
-}
-
-// Set selected_bpp to match screen_bpp.
-
-static int TrySetSelectedBPP(void)
-{
- unsigned int num_depths = sizeof(pixel_depths) / sizeof(*pixel_depths);
- unsigned int i;
-
- // Search pixel_depths, find the bpp that corresponds to screen_bpp,
- // then set selected_bpp to match.
-
- for (i = 0; i < num_depths; ++i)
- {
- if (pixel_depths[i].bpp == screen_bpp)
- {
- selected_bpp = GetSupportedBPPIndex(pixel_depths[i].description);
-
- if (selected_bpp >= 0)
- {
- return 1;
- }
- }
- }
-
- return 0;
-}
-
-static void SetSelectedBPP(void)
-{
- const SDL_VideoInfo *info;
-
- if (TrySetSelectedBPP())
- {
- return;
- }
-
- // screen_bpp does not match any supported pixel depth. Query SDL
- // to find out what it recommends using.
-
- info = SDL_GetVideoInfo();
-
- if (info != NULL && info->vfmt != NULL)
- {
- screen_bpp = info->vfmt->BitsPerPixel;
- }
-
- // Try again.
-
- if (!TrySetSelectedBPP())
- {
- // Give up and just use the first in the list.
-
- selected_bpp = 0;
- screen_bpp = GetSelectedBPP();
- }
-}
-
-static void ModeSelected(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(mode))
-{
- TXT_CAST_ARG(screen_mode_t, mode);
-
- screen_width = mode->w;
- screen_height = mode->h;
-
- // This is now the most recently selected screen width
-
- selected_screen_width = screen_width;
- selected_screen_height = screen_height;
-}
-
-static int GoodFullscreenMode(screen_mode_t *mode)
-{
- int w, h;
-
- w = mode->w;
- h = mode->h;
-
- // 320x200 and 640x400 are always good (special case)
-
- if ((w == 320 && h == 200) || (w == 640 && h == 400))
- {
- return 1;
- }
-
- // Special case: 320x240 letterboxed mode is okay (but not aspect
- // ratio corrected 320x240)
-
- if (w == 320 && h == 240 && !aspect_ratio_correct)
- {
- return 1;
- }
-
- // Ignore all modes less than 640x480
-
- return w >= 640 && h >= 480;
-}
-
-// Build screen_modes_fullscreen
-
-static void BuildFullscreenModesList(void)
-{
- SDL_PixelFormat format;
- SDL_Rect **modes;
- screen_mode_t *m1;
- screen_mode_t *m2;
- screen_mode_t m;
- int num_modes;
- int i;
-
- // Free the existing modes list, if one exists
-
- if (screen_modes_fullscreen != NULL)
- {
- free(screen_modes_fullscreen);
- }
-
- // Get a list of fullscreen modes and find out how many
- // modes are in the list.
-
- format.BitsPerPixel = screen_bpp;
- format.BytesPerPixel = (screen_bpp + 7) / 8;
-
- modes = SDL_ListModes(&format, SDL_FULLSCREEN);
-
- if (modes == NULL || modes == (SDL_Rect **) -1)
- {
- num_modes = 0;
- }
- else
- {
- for (num_modes=0; modes[num_modes] != NULL; ++num_modes);
- }
-
- // Build the screen_modes_fullscreen array
-
- screen_modes_fullscreen = malloc(sizeof(screen_mode_t) * (num_modes + 1));
-
- for (i=0; i<num_modes; ++i)
- {
- screen_modes_fullscreen[i].w = modes[i]->w;
- screen_modes_fullscreen[i].h = modes[i]->h;
- }
-
- screen_modes_fullscreen[i].w = 0;
- screen_modes_fullscreen[i].h = 0;
-
- // Reverse the order of the modes list (smallest modes first)
-
- for (i=0; i<num_modes / 2; ++i)
- {
- m1 = &screen_modes_fullscreen[i];
- m2 = &screen_modes_fullscreen[num_modes - 1 - i];
-
- memcpy(&m, m1, sizeof(screen_mode_t));
- memcpy(m1, m2, sizeof(screen_mode_t));
- memcpy(m2, &m, sizeof(screen_mode_t));
- }
-
- num_screen_modes_fullscreen = num_modes;
-}
-
-static int FindBestMode(screen_mode_t *modes)
-{
- int i;
- int best_mode;
- int best_mode_diff;
- int diff;
-
- best_mode = -1;
- best_mode_diff = 0;
-
- for (i=0; modes[i].w != 0; ++i)
- {
- if (fullscreen && !GoodFullscreenMode(&modes[i]))
- {
- continue;
- }
-
- diff = (selected_screen_width - modes[i].w)
- * (selected_screen_width - modes[i].w)
- + (selected_screen_height - modes[i].h)
- * (selected_screen_height - modes[i].h);
-
- if (best_mode == -1 || diff < best_mode_diff)
- {
- best_mode_diff = diff;
- best_mode = i;
- }
- }
-
- return best_mode;
-}
-
-static void GenerateModesTable(TXT_UNCAST_ARG(widget),
- TXT_UNCAST_ARG(modes_table))
-{
- TXT_CAST_ARG(txt_table_t, modes_table);
- char buf[15];
- screen_mode_t *modes;
- txt_radiobutton_t *rbutton;
- int i;
-
- // Pick which modes list to use
-
- if (fullscreen)
- {
- if (screen_modes_fullscreen == NULL)
- {
- BuildFullscreenModesList();
- }
-
- modes = screen_modes_fullscreen;
- }
- else if (aspect_ratio_correct)
- {
- modes = screen_modes_scaled;
- }
- else
- {
- modes = screen_modes_unscaled;
- }
-
- // Build the table
-
- TXT_ClearTable(modes_table);
- TXT_SetColumnWidths(modes_table, 14, 14, 14, 14, 14);
-
- for (i=0; modes[i].w != 0; ++i)
- {
- // Skip bad fullscreen modes
-
- if (fullscreen && !GoodFullscreenMode(&modes[i]))
- {
- continue;
- }
-
- sprintf(buf, "%ix%i", modes[i].w, modes[i].h);
- rbutton = TXT_NewRadioButton(buf, &vidmode, i);
- TXT_AddWidget(modes_table, rbutton);
- TXT_SignalConnect(rbutton, "selected", ModeSelected, &modes[i]);
- }
-
- // Find the nearest mode in the list that matches the current
- // settings
-
- vidmode = FindBestMode(modes);
-
- if (vidmode > 0)
- {
- screen_width = modes[vidmode].w;
- screen_height = modes[vidmode].h;
- }
-}
-
-// Callback invoked when the BPP selector is changed.
-
-static void UpdateBPP(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(modes_table))
-{
- TXT_CAST_ARG(txt_table_t, modes_table);
-
- screen_bpp = GetSelectedBPP();
-
- // Rebuild list of fullscreen modes.
-
- BuildFullscreenModesList();
- GenerateModesTable(NULL, modes_table);
-}
-
-static void UpdateModeSeparator(TXT_UNCAST_ARG(widget),
- TXT_UNCAST_ARG(separator))
-{
- TXT_CAST_ARG(txt_separator_t, separator);
-
- if (fullscreen)
- {
- TXT_SetSeparatorLabel(separator, "Screen mode");
- }
- else
- {
- TXT_SetSeparatorLabel(separator, "Window size");
- }
-}
-
-#if defined(_WIN32) && !defined(_WIN32_WCE)
-
-static int use_directx = 1;
-
-static void SetWin32VideoDriver(void)
-{
- if (!strcmp(video_driver, "windib"))
- {
- use_directx = 0;
- }
- else
- {
- use_directx = 1;
- }
-}
-
-static void UpdateVideoDriver(TXT_UNCAST_ARG(widget),
- TXT_UNCAST_ARG(modes_table))
-{
- TXT_CAST_ARG(txt_table_t, modes_table);
-
- if (use_directx)
- {
- video_driver = "";
- }
- else
- {
- video_driver = "windib";
- }
-
- // When the video driver is changed, we need to restart the textscreen
- // library.
-
- RestartTextscreen();
-
- // Rebuild the list of supported pixel depths.
-
- IdentifyPixelDepths();
- SetSelectedBPP();
-
- // Rebuild the video modes list
-
- BuildFullscreenModesList();
- GenerateModesTable(NULL, modes_table);
-}
-
-#endif
-
-static void AdvancedDisplayConfig(TXT_UNCAST_ARG(widget),
- TXT_UNCAST_ARG(modes_table))
-{
- TXT_CAST_ARG(txt_table_t, modes_table);
- txt_window_t *window;
- txt_checkbox_t *ar_checkbox;
-
- window = TXT_NewWindow("Advanced display options");
-
- TXT_SetColumnWidths(window, 35);
-
- TXT_AddWidgets(window,
- ar_checkbox = TXT_NewCheckBox("Fix aspect ratio",
- &aspect_ratio_correct),
- TXT_NewCheckBox("Show ENDOOM screen on exit", &show_endoom),
- NULL);
-
- TXT_SignalConnect(ar_checkbox, "changed", GenerateModesTable, modes_table);
-
- // On Windows, there is an extra control to change between
- // the Windows GDI and DirectX video drivers.
-
-#if defined(_WIN32) && !defined(_WIN32_WCE)
- {
- txt_radiobutton_t *dx_button, *gdi_button;
-
- TXT_AddWidgets(window,
- TXT_NewSeparator("Windows video driver"),
- dx_button = TXT_NewRadioButton("DirectX",
- &use_directx, 1),
- gdi_button = TXT_NewRadioButton("Windows GDI",
- &use_directx, 0),
- NULL);
-
- TXT_SignalConnect(dx_button, "selected",
- UpdateVideoDriver, modes_table);
- TXT_SignalConnect(gdi_button, "selected",
- UpdateVideoDriver, modes_table);
- SetWin32VideoDriver();
- }
-#endif
-}
-
-void ConfigDisplay(void)
-{
- txt_window_t *window;
- txt_table_t *modes_table;
- txt_separator_t *modes_separator;
- txt_table_t *bpp_table;
- txt_window_action_t *advanced_button;
- txt_checkbox_t *fs_checkbox;
- int i;
- int num_columns;
- int num_rows;
- int window_y;
-
- // What color depths are supported? Generate supported_bpps array
- // and set selected_bpp to match the current value of screen_bpp.
-
- IdentifyPixelDepths();
- SetSelectedBPP();
-
- // First time in? Initialise selected_screen_{width,height}
-
- if (selected_screen_width == 0)
- {
- selected_screen_width = screen_width;
- selected_screen_height = screen_height;
- }
-
- // Open the window
-
- window = TXT_NewWindow("Display Configuration");
-
- // Some machines can have lots of video modes. This tries to
- // keep a limit of six lines by increasing the number of
- // columns. In extreme cases, the window is moved up slightly.
-
- BuildFullscreenModesList();
-
- if (num_screen_modes_fullscreen <= 24)
- {
- num_columns = 3;
- }
- else if (num_screen_modes_fullscreen <= 40)
- {
- num_columns = 4;
- }
- else
- {
- num_columns = 5;
- }
-
- modes_table = TXT_NewTable(num_columns);
-
- // Build window:
-
- TXT_AddWidget(window,
- fs_checkbox = TXT_NewCheckBox("Full screen", &fullscreen));
-
- if (num_supported_bpps > 1)
- {
- TXT_AddWidgets(window,
- TXT_NewSeparator("Color depth"),
- bpp_table = TXT_NewTable(4),
- NULL);
-
- for (i = 0; i < num_supported_bpps; ++i)
- {
- txt_radiobutton_t *button;
-
- button = TXT_NewRadioButton(supported_bpps[i],
- &selected_bpp, i);
-
- TXT_AddWidget(bpp_table, button);
- TXT_SignalConnect(button, "selected", UpdateBPP, modes_table);
- }
- }
-
- TXT_AddWidgets(window,
- modes_separator = TXT_NewSeparator(""),
- modes_table,
- NULL);
-
- TXT_SignalConnect(fs_checkbox, "changed",
- GenerateModesTable, modes_table);
- TXT_SignalConnect(fs_checkbox, "changed",
- UpdateModeSeparator, modes_separator);
-
- // How many rows high will the configuration window be?
- // Need to take into account number of fullscreen modes, and also
- // number of supported pixel depths.
- // The windowed modes list is four rows, so take the maximum of
- // windowed and fullscreen.
-
- num_rows = (num_screen_modes_fullscreen + num_columns - 1) / num_columns;
-
- if (num_rows < 4)
- {
- num_rows = 4;
- }
-
- if (num_supported_bpps > 1)
- {
- num_rows += 2;
- }
-
- if (num_rows < 14)
- {
- window_y = 8 - ((num_rows + 1) / 2);
- }
- else
- {
- window_y = 1;
- }
-
- // The window is set at a fixed vertical position. This keeps
- // the top of the window stationary when switching between
- // fullscreen and windowed mode (which causes the window's
- // height to change).
-
- TXT_SetWindowPosition(window, TXT_HORIZ_CENTER, TXT_VERT_TOP,
- TXT_SCREEN_W / 2, window_y);
-
- GenerateModesTable(NULL, modes_table);
- UpdateModeSeparator(NULL, modes_separator);
-
- // Button to open "advanced" window.
- // Need to pass a pointer to the modes table, as some of the options
- // in there trigger a rebuild of it.
-
- advanced_button = TXT_NewWindowAction('a', "Advanced");
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER, advanced_button);
- TXT_SignalConnect(advanced_button, "pressed",
- AdvancedDisplayConfig, modes_table);
-}
-
diff --git a/setup/display.h b/setup/display.h
deleted file mode 100644
index 2419e807..00000000
--- a/setup/display.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef SETUP_DISPLAY_H
-#define SETUP_DISPLAY_H
-
-extern int autoadjust_video_settings;
-extern int aspect_ratio_correct;
-extern int fullscreen;
-extern int screen_width, screen_height;
-extern int screen_bpp;
-extern int startup_delay;
-extern int show_endoom;
-extern char *video_driver;
-
-void ConfigDisplay(void);
-void SetDisplayDriver(void);
-
-#endif /* #ifndef SETUP_DISPLAY_H */
-
diff --git a/setup/execute.c b/setup/execute.c
deleted file mode 100644
index 69442b5d..00000000
--- a/setup/execute.c
+++ /dev/null
@@ -1,454 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-// Code for invoking Doom
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <sys/types.h>
-
-#if defined(_WIN32_WCE)
-#include "libc_wince.h"
-#endif
-
-#ifdef _WIN32
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <process.h>
-
-#else
-
-#include <sys/wait.h>
-#include <unistd.h>
-
-#endif
-
-#include "textscreen.h"
-
-#include "config.h"
-#include "configfile.h"
-#include "execute.h"
-#include "m_argv.h"
-
-#ifdef _WIN32
-#define DOOM_BINARY PACKAGE_TARNAME ".exe"
-#else
-#define DOOM_BINARY PACKAGE_TARNAME
-#endif
-
-#ifdef _WIN32
-#define DIR_SEPARATOR '\\'
-#define PATH_SEPARATOR ';'
-#else
-#define DIR_SEPARATOR '/'
-#define PATH_SEPARATOR ':'
-#endif
-
-struct execute_context_s
-{
- char *response_file;
- FILE *stream;
-};
-
-// Returns the path to a temporary file of the given name, stored
-// inside the system temporary directory.
-
-static char *TempFile(char *s)
-{
- char *result;
- char *tempdir;
-
-#ifdef _WIN32
- // Check the TEMP environment variable to find the location.
-
- tempdir = getenv("TEMP");
-
- if (tempdir == NULL)
- {
- tempdir = ".";
- }
-#else
- // In Unix, just use /tmp.
-
- tempdir = "/tmp";
-#endif
-
- result = malloc(strlen(tempdir) + strlen(s) + 2);
- sprintf(result, "%s%c%s", tempdir, DIR_SEPARATOR, s);
-
- return result;
-}
-
-static int ArgumentNeedsEscape(char *arg)
-{
- char *p;
-
- for (p = arg; *p != '\0'; ++p)
- {
- if (isspace(*p))
- {
- return 1;
- }
- }
-
- return 0;
-}
-
-// Arguments passed to the setup tool should be passed through to the
-// game when launching a game. Calling this adds all arguments from
-// myargv to the output context.
-
-void PassThroughArguments(execute_context_t *context)
-{
- int i;
-
- for (i = 1; i < myargc; ++i)
- {
- if (ArgumentNeedsEscape(myargv[i]))
- {
- AddCmdLineParameter(context, "\"%s\"", myargv[i]);
- }
- else
- {
- AddCmdLineParameter(context, "%s", myargv[i]);
- }
- }
-}
-
-execute_context_t *NewExecuteContext(void)
-{
- execute_context_t *result;
-
- result = malloc(sizeof(execute_context_t));
-
- result->response_file = TempFile("chocolat.rsp");
- result->stream = fopen(result->response_file, "w");
-
- if (result->stream == NULL)
- {
- fprintf(stderr, "Error opening response file\n");
- exit(-1);
- }
-
- return result;
-}
-
-void AddCmdLineParameter(execute_context_t *context, char *s, ...)
-{
- va_list args;
-
- va_start(args, s);
-
- vfprintf(context->stream, s, args);
- fprintf(context->stream, "\n");
-}
-
-#if defined(_WIN32)
-
-// Wait for the specified process to exit. Returns the exit code.
-
-static unsigned int WaitForProcessExit(HANDLE subprocess)
-{
- DWORD exit_code;
-
- for (;;)
- {
- WaitForSingleObject(subprocess, INFINITE);
-
- if (!GetExitCodeProcess(subprocess, &exit_code))
- {
- return -1;
- }
-
- if (exit_code != STILL_ACTIVE)
- {
- return exit_code;
- }
- }
-}
-
-static void ConcatWCString(wchar_t *buf, const char *value)
-{
- MultiByteToWideChar(CP_OEMCP, 0,
- value, strlen(value) + 1,
- buf + wcslen(buf), strlen(value) + 1);
-}
-
-// Build the command line string, a wide character string of the form:
-//
-// "program" "arg"
-
-static wchar_t *BuildCommandLine(const char *program, const char *arg)
-{
- wchar_t exe_path[MAX_PATH];
- wchar_t *result;
- wchar_t *sep;
-
- // Get the path to this .exe file.
-
- GetModuleFileNameW(NULL, exe_path, MAX_PATH);
-
- // Allocate buffer to contain result string.
-
- result = calloc(wcslen(exe_path) + strlen(program) + strlen(arg) + 6,
- sizeof(wchar_t));
-
- wcscpy(result, L"\"");
-
- // Copy the path part of the filename (including ending \)
- // into the result buffer:
-
- sep = wcsrchr(exe_path, DIR_SEPARATOR);
-
- if (sep != NULL)
- {
- wcsncpy(result + 1, exe_path, sep - exe_path + 1);
- result[sep - exe_path + 2] = '\0';
- }
-
- // Concatenate the name of the program:
-
- ConcatWCString(result, program);
-
- // End of program name, start of argument:
-
- wcscat(result, L"\" \"");
-
- ConcatWCString(result, arg);
-
- wcscat(result, L"\"");
-
- return result;
-}
-
-static int ExecuteCommand(const char *program, const char *arg)
-{
- STARTUPINFOW startup_info;
- PROCESS_INFORMATION proc_info;
- wchar_t *command;
- int result = 0;
-
- command = BuildCommandLine(program, arg);
-
- // Invoke the program:
-
- memset(&proc_info, 0, sizeof(proc_info));
- memset(&startup_info, 0, sizeof(startup_info));
- startup_info.cb = sizeof(startup_info);
-
- if (!CreateProcessW(NULL, command,
- NULL, NULL, FALSE, 0, NULL, NULL,
- &startup_info, &proc_info))
- {
- result = -1;
- }
- else
- {
- // Wait for the process to finish, and save the exit code.
-
- result = WaitForProcessExit(proc_info.hProcess);
-
- CloseHandle(proc_info.hProcess);
- CloseHandle(proc_info.hThread);
- }
-
- free(command);
-
- return result;
-}
-
-#else
-
-// Given the specified program name, get the full path to the program,
-// assuming that it is in the same directory as this program is.
-
-static char *GetFullExePath(const char *program)
-{
- char *result;
- char *sep;
- unsigned int path_len;
-
- sep = strrchr(myargv[0], DIR_SEPARATOR);
-
- if (sep == NULL)
- {
- result = strdup(program);
- }
- else
- {
- path_len = sep - myargv[0] + 1;
-
- result = malloc(strlen(program) + path_len + 1);
-
- strncpy(result, myargv[0], path_len);
- result[path_len] = '\0';
-
- strcat(result, program);
- }
-
- return result;
-}
-
-static int ExecuteCommand(const char *program, const char *arg)
-{
- pid_t childpid;
- int result;
- const char *argv[3];
-
- childpid = fork();
-
- if (childpid == 0)
- {
- // This is the child. Execute the command.
-
- argv[0] = GetFullExePath(program);
- argv[1] = arg;
- argv[2] = NULL;
-
- execvp(argv[0], (char **) argv);
-
- exit(0x80);
- }
- else
- {
- // This is the parent. Wait for the child to finish, and return
- // the status code.
-
- waitpid(childpid, &result, 0);
-
- if (WIFEXITED(result) && WEXITSTATUS(result) != 0x80)
- {
- return WEXITSTATUS(result);
- }
- else
- {
- return -1;
- }
- }
-}
-
-#endif
-
-int ExecuteDoom(execute_context_t *context)
-{
- char *response_file_arg;
- int result;
-
- fclose(context->stream);
-
- // Build the command line
-
- response_file_arg = malloc(strlen(context->response_file) + 2);
- sprintf(response_file_arg, "@%s", context->response_file);
-
- // Run Doom
-
- result = ExecuteCommand(DOOM_BINARY, response_file_arg);
-
- free(response_file_arg);
-
- // Destroy context
- remove(context->response_file);
- free(context->response_file);
- free(context);
-
- return result;
-}
-
-static void TestCallback(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(data))
-{
- execute_context_t *exec;
- char *main_cfg;
- char *extra_cfg;
- txt_window_t *testwindow;
- txt_label_t *label;
-
- testwindow = TXT_NewWindow("Starting Doom");
-
- label = TXT_NewLabel("Starting Doom to test the\n"
- "settings. Please wait.");
- TXT_SetWidgetAlign(label, TXT_HORIZ_CENTER);
- TXT_AddWidget(testwindow, label);
- TXT_DrawDesktop();
-
- // Save temporary configuration files with the current configuration
-
- main_cfg = TempFile("tmp.cfg");
- extra_cfg = TempFile("extratmp.cfg");
-
- M_SaveMainDefaults(main_cfg);
- M_SaveExtraDefaults(extra_cfg);
-
- // Run with the -testcontrols parameter
-
- exec = NewExecuteContext();
- AddCmdLineParameter(exec, "-testcontrols");
- AddCmdLineParameter(exec, "-config \"%s\"", main_cfg);
- AddCmdLineParameter(exec, "-extraconfig \"%s\"", extra_cfg);
- ExecuteDoom(exec);
-
- TXT_CloseWindow(testwindow);
-
- // Delete the temporary config files
-
- remove(main_cfg);
- remove(extra_cfg);
- free(main_cfg);
- free(extra_cfg);
-}
-
-txt_window_action_t *TestConfigAction(void)
-{
- txt_window_action_t *test_action;
-
- test_action = TXT_NewWindowAction('t', "Test");
- TXT_SignalConnect(test_action, "pressed", TestCallback, NULL);
-
- return test_action;
-}
-
-// Invokes Doom to find which IWADs are installed.
-// This is a cheap hack to avoid duplication of the complicated install
-// path searching code inside Doom.
-
-int FindInstalledIWADs(void)
-{
- execute_context_t *context;
- int result;
-
- context = NewExecuteContext();
- AddCmdLineParameter(context, "-findiwads");
- result = ExecuteDoom(context);
-
- if (result < 0)
- {
- return 0;
- }
- else
- {
- return result;
- }
-}
-
diff --git a/setup/execute.h b/setup/execute.h
deleted file mode 100644
index 25f1f10a..00000000
--- a/setup/execute.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef TESTCONFIG_H
-#define TESTCONFIG_H
-
-#include "textscreen.h"
-
-typedef struct execute_context_s execute_context_t;
-
-#define IWAD_DOOM2 (1 << 0) /* doom2.wad */
-#define IWAD_PLUTONIA (1 << 1) /* plutonia.wad */
-#define IWAD_TNT (1 << 2) /* tnt.wad */
-#define IWAD_DOOM (1 << 3) /* doom.wad */
-#define IWAD_DOOM1 (1 << 4) /* doom1.wad */
-#define IWAD_CHEX (1 << 5) /* chex.wad */
-
-execute_context_t *NewExecuteContext(void);
-void AddCmdLineParameter(execute_context_t *context, char *s, ...);
-void PassThroughArguments(execute_context_t *context);
-int ExecuteDoom(execute_context_t *context);
-int FindInstalledIWADs(void);
-
-txt_window_action_t *TestConfigAction(void);
-
-#endif /* #ifndef TESTCONFIG_H */
-
diff --git a/setup/joystick.c b/setup/joystick.c
deleted file mode 100644
index 5d2dfd68..00000000
--- a/setup/joystick.c
+++ /dev/null
@@ -1,446 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2007 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#include <stdlib.h>
-
-#include "doomtype.h"
-#include "textscreen.h"
-#include "txt_joybinput.h"
-
-#include "execute.h"
-#include "joystick.h"
-
-typedef enum
-{
- CALIBRATE_CENTER,
- CALIBRATE_LEFT,
- CALIBRATE_UP,
-} calibration_stage_t;
-
-// SDL joystick successfully initialized?
-
-static int joystick_initted = 0;
-
-// Joystick enable/disable
-
-int usejoystick = 0;
-
-// Button mappings
-
-int joybfire = 0;
-int joybstrafe = 1;
-int joybuse = 3;
-int joybspeed = 2;
-int joybstrafeleft = -1;
-int joybstraferight = -1;
-int joybprevweapon = -1;
-int joybnextweapon = -1;
-
-// Joystick to use, as an SDL joystick index:
-
-int joystick_index = -1;
-
-// Which joystick axis to use for horizontal movement, and whether to
-// invert the direction:
-
-int joystick_x_axis = 0;
-int joystick_x_invert = 0;
-
-// Which joystick axis to use for vertical movement, and whether to
-// invert the direction:
-
-int joystick_y_axis = 1;
-int joystick_y_invert = 0;
-
-static txt_button_t *joystick_button;
-
-static int *all_joystick_buttons[] = {
- &joybstraferight, &joybstrafeleft, &joybfire, &joybspeed,
- &joybuse, &joybstrafe, &joybprevweapon, &joybnextweapon
-};
-
-//
-// Calibration
-//
-
-static txt_window_t *calibration_window;
-static txt_label_t *calibration_label;
-static calibration_stage_t calibrate_stage;
-static SDL_Joystick **all_joysticks = NULL;
-
-// Set the label showing the name of the currently selected joystick
-
-static void SetJoystickButtonLabel(void)
-{
- char *name;
-
- name = "None set";
-
- if (joystick_initted
- && joystick_index >= 0 && joystick_index < SDL_NumJoysticks())
- {
- name = (char *) SDL_JoystickName(joystick_index);
- }
-
- TXT_SetButtonLabel(joystick_button, name);
-}
-
-// Try to open all joysticks visible to SDL.
-
-static int OpenAllJoysticks(void)
-{
- int i;
- int num_joysticks;
- int result;
-
- if (!joystick_initted)
- {
- return 0;
- }
-
- // SDL_JoystickOpen() all joysticks.
-
- num_joysticks = SDL_NumJoysticks();
-
- all_joysticks = malloc(sizeof(SDL_Joystick *) * num_joysticks);
-
- result = 0;
-
- for (i=0; i<num_joysticks; ++i)
- {
- all_joysticks[i] = SDL_JoystickOpen(i);
-
- // If any joystick is successfully opened, return true.
-
- if (all_joysticks[i] != NULL)
- {
- result = 1;
- }
- }
-
- // Success? Turn on joystick events.
-
- if (result)
- {
- SDL_JoystickEventState(SDL_ENABLE);
- }
- else
- {
- free(all_joysticks);
- all_joysticks = NULL;
- }
-
- return result;
-}
-
-// Close all the joysticks opened with OpenAllJoysticks()
-
-static void CloseAllJoysticks(void)
-{
- int i;
- int num_joysticks;
-
- num_joysticks = SDL_NumJoysticks();
-
- for (i=0; i<num_joysticks; ++i)
- {
- if (all_joysticks[i] != NULL)
- {
- SDL_JoystickClose(all_joysticks[i]);
- }
- }
-
- SDL_JoystickEventState(SDL_DISABLE);
-
- free(all_joysticks);
- all_joysticks = NULL;
-}
-
-static void SetCalibrationLabel(void)
-{
- char *message = "???";
-
- switch (calibrate_stage)
- {
- case CALIBRATE_CENTER:
- message = "Move the joystick to the\n"
- "center, and press a button.";
- break;
- case CALIBRATE_UP:
- message = "Move the joystick up,\n"
- "and press a button.";
- break;
- case CALIBRATE_LEFT:
- message = "Move the joystick to the\n"
- "left, and press a button.";
- break;
- }
-
- TXT_SetLabel(calibration_label, message);
-}
-
-static void CalibrateAxis(int *axis_index, int *axis_invert)
-{
- SDL_Joystick *joystick;
- int best_axis;
- int best_value;
- int best_invert;
- Sint16 axis_value;
- int i;
-
- joystick = all_joysticks[joystick_index];
-
- // Check all axes to find which axis has the largest value. We test
- // for one axis at a time, so eg. when we prompt to push the joystick
- // left, whichever axis has the largest value is the left axis.
-
- best_axis = 0;
- best_value = 0;
- best_invert = 0;
-
- for (i=0; i<SDL_JoystickNumAxes(joystick); ++i)
- {
- axis_value = SDL_JoystickGetAxis(joystick, i);
-
- if (abs(axis_value) > best_value)
- {
- best_value = abs(axis_value);
- best_invert = axis_value > 0;
- best_axis = i;
- }
- }
-
- // Save the best values we have found
-
- *axis_index = best_axis;
- *axis_invert = best_invert;
-}
-
-static int CalibrationEventCallback(SDL_Event *event, void *user_data)
-{
- if (event->type == SDL_JOYBUTTONDOWN
- && (joystick_index == -1 || event->jbutton.which == joystick_index))
- {
- switch (calibrate_stage)
- {
- case CALIBRATE_CENTER:
- // Centering stage selects which joystick to use.
- joystick_index = event->jbutton.which;
- break;
-
- case CALIBRATE_LEFT:
- CalibrateAxis(&joystick_x_axis, &joystick_x_invert);
- break;
-
- case CALIBRATE_UP:
- CalibrateAxis(&joystick_y_axis, &joystick_y_invert);
- break;
- }
-
- if (calibrate_stage == CALIBRATE_UP)
- {
- // Final stage; close the window
-
- TXT_CloseWindow(calibration_window);
- }
- else
- {
- // Advance to the next calibration stage
-
- ++calibrate_stage;
- SetCalibrationLabel();
- }
-
- return 1;
- }
-
- return 0;
-}
-
-static void NoJoystick(void)
-{
- txt_window_t *window;
-
- window = TXT_NewWindow(NULL);
-
- TXT_AddWidget(window,
- TXT_NewLabel("No joysticks could be opened.\n\n"
- "Try configuring your joystick from within\n"
- "your OS first."));
-
- TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL);
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER,
- TXT_NewWindowEscapeAction(window));
- TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL);
-
- joystick_index = -1;
- SetJoystickButtonLabel();
-}
-
-static void CalibrateWindowClosed(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
-{
- CloseAllJoysticks();
- TXT_SDL_SetEventCallback(NULL, NULL);
- SetJoystickButtonLabel();
-}
-
-static void CalibrateJoystick(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
-{
- calibrate_stage = CALIBRATE_CENTER;
-
- // Try to open all available joysticks. If none are opened successfully,
- // bomb out with an error.
-
- if (!OpenAllJoysticks())
- {
- NoJoystick();
- return;
- }
-
- calibration_window = TXT_NewWindow("Joystick calibration");
-
- TXT_AddWidgets(calibration_window,
- TXT_NewLabel("Please follow the following instructions\n"
- "in order to calibrate your joystick."),
- TXT_NewStrut(0, 1),
- calibration_label = TXT_NewLabel("zzz"),
- TXT_NewStrut(0, 1),
- NULL);
-
- TXT_SetWindowAction(calibration_window, TXT_HORIZ_LEFT, NULL);
- TXT_SetWindowAction(calibration_window, TXT_HORIZ_CENTER,
- TXT_NewWindowAbortAction(calibration_window));
- TXT_SetWindowAction(calibration_window, TXT_HORIZ_RIGHT, NULL);
-
- TXT_SetWidgetAlign(calibration_label, TXT_HORIZ_CENTER);
- TXT_SDL_SetEventCallback(CalibrationEventCallback, NULL);
-
- TXT_SignalConnect(calibration_window, "closed", CalibrateWindowClosed, NULL);
-
- // Start calibration
-
- joystick_index = -1;
- calibrate_stage = CALIBRATE_CENTER;
-
- SetCalibrationLabel();
-}
-
-void JoyButtonSetCallback(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(variable))
-{
- TXT_CAST_ARG(int, variable);
- unsigned int i;
-
- // Only allow a button to be bound to one action at a time. If
- // we assign a key that another action is using, set that other action
- // to -1.
-
- for (i=0; i<arrlen(all_joystick_buttons); ++i)
- {
- if (variable != all_joystick_buttons[i]
- && *variable == *all_joystick_buttons[i])
- {
- *all_joystick_buttons[i] = -1;
- }
- }
-}
-
-
-//
-// GUI
-//
-
-static void JoystickWindowClosed(TXT_UNCAST_ARG(window), TXT_UNCAST_ARG(unused))
-{
- if (joystick_initted)
- {
- SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
- joystick_initted = 0;
- }
-}
-
-static void AddJoystickControl(txt_table_t *table, char *label, int *var)
-{
- txt_joystick_input_t *joy_input;
-
- joy_input = TXT_NewJoystickInput(var);
-
- TXT_AddWidget(table, TXT_NewLabel(label));
- TXT_AddWidget(table, joy_input);
-
- TXT_SignalConnect(joy_input, "set", JoyButtonSetCallback, var);
-}
-
-void ConfigJoystick(void)
-{
- txt_window_t *window;
- txt_table_t *button_table;
- txt_table_t *joystick_table;
-
- if (!joystick_initted)
- {
- joystick_initted = SDL_Init(SDL_INIT_JOYSTICK) >= 0;
- }
-
- window = TXT_NewWindow("Joystick configuration");
-
- TXT_AddWidgets(window,
- TXT_NewCheckBox("Enable joystick", &usejoystick),
- joystick_table = TXT_NewTable(2),
- TXT_NewSeparator("Joystick buttons"),
- button_table = TXT_NewTable(2),
- NULL);
-
- TXT_SetColumnWidths(joystick_table, 20, 15);
-
- TXT_AddWidgets(joystick_table,
- TXT_NewLabel("Current joystick"),
- joystick_button = TXT_NewButton("zzzz"),
- NULL);
-
- TXT_SetColumnWidths(button_table, 20, 15);
-
- AddJoystickControl(button_table, "Fire", &joybfire);
- AddJoystickControl(button_table, "Use", &joybuse);
-
- // High values of joybspeed are used to activate the "always run mode"
- // trick in Vanilla Doom. If this has been enabled, not only is the
- // joybspeed value meaningless, but the control itself is useless.
-
- if (joybspeed < 20)
- {
- AddJoystickControl(button_table, "Speed", &joybspeed);
- }
-
- AddJoystickControl(button_table, "Strafe", &joybstrafe);
-
- AddJoystickControl(button_table, "Strafe Left", &joybstrafeleft);
- AddJoystickControl(button_table, "Strafe Right", &joybstraferight);
- AddJoystickControl(button_table, "Previous weapon", &joybprevweapon);
- AddJoystickControl(button_table, "Next weapon", &joybnextweapon);
-
- TXT_SignalConnect(joystick_button, "pressed", CalibrateJoystick, NULL);
- TXT_SignalConnect(window, "closed", JoystickWindowClosed, NULL);
-
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction());
-
- SetJoystickButtonLabel();
-}
-
diff --git a/setup/joystick.h b/setup/joystick.h
deleted file mode 100644
index 5d3973c5..00000000
--- a/setup/joystick.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef SETUP_JOYSTICK_H
-#define SETUP_JOYSTICK_H
-
-extern int usejoystick;
-extern int joybfire;
-extern int joybstrafe;
-extern int joybuse;
-extern int joybspeed;
-extern int joybstrafeleft;
-extern int joybstraferight;
-extern int joybprevweapon;
-extern int joybnextweapon;
-
-extern int joystick_index;
-extern int joystick_x_axis;
-extern int joystick_x_invert;
-extern int joystick_y_axis;
-extern int joystick_y_invert;
-
-void ConfigJoystick(void);
-
-#endif /* #ifndef SETUP_JOYSTICK_H */
-
diff --git a/setup/keyboard.c b/setup/keyboard.c
deleted file mode 100644
index 81976f85..00000000
--- a/setup/keyboard.c
+++ /dev/null
@@ -1,374 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#include "textscreen.h"
-#include "doomtype.h"
-
-#include "execute.h"
-#include "txt_keyinput.h"
-
-#include "joystick.h"
-#include "keyboard.h"
-
-int key_left = KEY_LEFTARROW;
-int key_right = KEY_RIGHTARROW;
-int key_up = KEY_UPARROW;
-int key_down = KEY_DOWNARROW;
-int key_strafeleft = ',';
-int key_straferight = '.';
-int key_fire = KEY_RCTRL;
-int key_use = ' ';
-int key_strafe = KEY_RALT;
-int key_speed = KEY_RSHIFT;
-
-int key_pause = KEY_PAUSE;
-
-// Menu keys:
-
-int key_menu_activate = KEY_ESCAPE;
-int key_menu_up = KEY_UPARROW;
-int key_menu_down = KEY_DOWNARROW;
-int key_menu_left = KEY_LEFTARROW;
-int key_menu_right = KEY_RIGHTARROW;
-int key_menu_back = KEY_BACKSPACE;
-int key_menu_forward = KEY_ENTER;
-int key_menu_confirm = 'y';
-int key_menu_abort = 'n';
-
-int key_menu_help = KEY_F1;
-int key_menu_save = KEY_F2;
-int key_menu_load = KEY_F3;
-int key_menu_volume = KEY_F4;
-int key_menu_detail = KEY_F5;
-int key_menu_qsave = KEY_F6;
-int key_menu_endgame = KEY_F7;
-int key_menu_messages = KEY_F8;
-int key_menu_qload = KEY_F9;
-int key_menu_quit = KEY_F10;
-int key_menu_gamma = KEY_F11;
-int key_spy = KEY_F12;
-
-int key_menu_incscreen = KEY_EQUALS;
-int key_menu_decscreen = KEY_MINUS;
-
-int key_map_north = KEY_UPARROW;
-int key_map_south = KEY_DOWNARROW;
-int key_map_east = KEY_RIGHTARROW;
-int key_map_west = KEY_LEFTARROW;
-int key_map_zoomin = '=';
-int key_map_zoomout = '-';
-int key_map_toggle = KEY_TAB;
-int key_map_maxzoom = '0';
-int key_map_follow = 'f';
-int key_map_grid = 'g';
-int key_map_mark = 'm';
-int key_map_clearmark = 'c';
-
-int key_weapon1 = '1';
-int key_weapon2 = '2';
-int key_weapon3 = '3';
-int key_weapon4 = '4';
-int key_weapon5 = '5';
-int key_weapon6 = '6';
-int key_weapon7 = '7';
-int key_weapon8 = '8';
-int key_prevweapon = 0;
-int key_nextweapon = 0;
-
-int key_message_refresh = KEY_ENTER;
-int key_demo_quit = 'q';
-
-int key_multi_msg = 't';
-int key_multi_msgplayer[] = { 'g', 'i', 'b', 'r' };
-
-int vanilla_keyboard_mapping = 1;
-
-static int always_run = 0;
-
-// Keys within these groups cannot have the same value.
-
-static int *controls[] = { &key_left, &key_right, &key_up, &key_down,
- &key_strafeleft, &key_straferight, &key_fire,
- &key_use, &key_strafe, &key_speed,
- &key_pause,
- &key_weapon1, &key_weapon2, &key_weapon3,
- &key_weapon4, &key_weapon5, &key_weapon6,
- &key_weapon7, &key_weapon8,
- &key_prevweapon, &key_nextweapon, NULL };
-
-static int *menu_nav[] = { &key_menu_activate, &key_menu_up, &key_menu_down,
- &key_menu_left, &key_menu_right, &key_menu_back,
- &key_menu_forward, NULL };
-
-static int *shortcuts[] = { &key_menu_help, &key_menu_save, &key_menu_load,
- &key_menu_volume, &key_menu_detail, &key_menu_qsave,
- &key_menu_endgame, &key_menu_messages, &key_spy,
- &key_menu_qload, &key_menu_quit, &key_menu_gamma,
- &key_menu_incscreen, &key_menu_decscreen,
- &key_message_refresh, &key_multi_msg,
- &key_multi_msgplayer[0], &key_multi_msgplayer[1],
- &key_multi_msgplayer[2], &key_multi_msgplayer[3] };
-
-static int *map_keys[] = { &key_map_north, &key_map_south, &key_map_east,
- &key_map_west, &key_map_zoomin, &key_map_zoomout,
- &key_map_toggle, &key_map_maxzoom, &key_map_follow,
- &key_map_grid, &key_map_mark, &key_map_clearmark,
- NULL };
-
-static void UpdateJoybSpeed(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(var))
-{
- if (always_run)
- {
- /*
- <Janizdreg> if you want to pick one for chocolate doom to use,
- pick 29, since that is the most universal one that
- also works with heretic, hexen and strife =P
-
- NB. This choice also works with original, ultimate and final exes.
- */
-
- joybspeed = 29;
- }
- else
- {
- joybspeed = 0;
- }
-}
-
-static int VarInGroup(int *variable, int **group)
-{
- unsigned int i;
-
- for (i=0; group[i] != NULL; ++i)
- {
- if (group[i] == variable)
- {
- return 1;
- }
- }
-
- return 0;
-}
-
-static void CheckKeyGroup(int *variable, int **group)
-{
- unsigned int i;
-
- // Don't check unless the variable is in this group.
-
- if (!VarInGroup(variable, group))
- {
- return;
- }
-
- // If another variable has the same value as the new value, reset it.
-
- for (i=0; group[i] != NULL; ++i)
- {
- if (*variable == *group[i] && group[i] != variable)
- {
- // A different key has the same value. Clear the existing
- // value. This ensures that no two keys can have the same
- // value.
-
- *group[i] = 0;
- }
- }
-}
-
-// Callback invoked when a key control is set
-
-static void KeySetCallback(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(variable))
-{
- TXT_CAST_ARG(int, variable);
-
- CheckKeyGroup(variable, controls);
- CheckKeyGroup(variable, menu_nav);
- CheckKeyGroup(variable, shortcuts);
- CheckKeyGroup(variable, map_keys);
-}
-
-// Add a label and keyboard input to the specified table.
-
-static void AddKeyControl(txt_table_t *table, char *name, int *var)
-{
- txt_key_input_t *key_input;
-
- TXT_AddWidget(table, TXT_NewLabel(name));
- key_input = TXT_NewKeyInput(var);
- TXT_AddWidget(table, key_input);
-
- TXT_SignalConnect(key_input, "set", KeySetCallback, var);
-}
-
-static void OtherKeysDialog(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
-{
- txt_window_t *window;
- txt_table_t *table;
- txt_scrollpane_t *scrollpane;
-
- window = TXT_NewWindow("Other keys");
-
- table = TXT_NewTable(2);
-
- TXT_SetColumnWidths(table, 25, 10);
-
- TXT_AddWidgets(table, TXT_NewLabel(" - Weapons - "),
- TXT_NewStrut(0, 0),
- NULL);
-
- AddKeyControl(table, "Weapon 1", &key_weapon1);
- AddKeyControl(table, "Weapon 2", &key_weapon2);
- AddKeyControl(table, "Weapon 3", &key_weapon3);
- AddKeyControl(table, "Weapon 4", &key_weapon4);
- AddKeyControl(table, "Weapon 5", &key_weapon5);
- AddKeyControl(table, "Weapon 6", &key_weapon6);
- AddKeyControl(table, "Weapon 7", &key_weapon7);
- AddKeyControl(table, "Weapon 8", &key_weapon8);
- AddKeyControl(table, "Previous weapon", &key_prevweapon);
- AddKeyControl(table, "Next weapon", &key_nextweapon);
-
- TXT_AddWidgets(table, TXT_NewStrut(0, 1),
- TXT_NewStrut(0, 1),
- TXT_NewLabel(" - Menu navigation - "),
- TXT_NewStrut(0, 0),
- NULL);
-
- AddKeyControl(table, "Activate menu", &key_menu_activate);
- AddKeyControl(table, "Move cursor up", &key_menu_up);
- AddKeyControl(table, "Move cursor down", &key_menu_down);
- AddKeyControl(table, "Move slider left", &key_menu_left);
- AddKeyControl(table, "Move slider right", &key_menu_right);
- AddKeyControl(table, "Go to previous menu", &key_menu_back);
- AddKeyControl(table, "Activate menu item", &key_menu_forward);
- AddKeyControl(table, "Confirm action", &key_menu_confirm);
- AddKeyControl(table, "Cancel action", &key_menu_abort);
-
- TXT_AddWidgets(table, TXT_NewStrut(0, 1),
- TXT_NewStrut(0, 1),
- TXT_NewLabel(" - Shortcut keys - "),
- TXT_NewStrut(0, 0),
- NULL);
-
- AddKeyControl(table, "Pause game", &key_pause);
- AddKeyControl(table, "Help screen", &key_menu_help);
- AddKeyControl(table, "Save game", &key_menu_save);
- AddKeyControl(table, "Load game", &key_menu_load);
- AddKeyControl(table, "Sound volume", &key_menu_volume);
- AddKeyControl(table, "Toggle detail", &key_menu_detail);
- AddKeyControl(table, "Quick save", &key_menu_qsave);
- AddKeyControl(table, "End game", &key_menu_endgame);
- AddKeyControl(table, "Toggle messages", &key_menu_messages);
- AddKeyControl(table, "Quick load", &key_menu_qload);
- AddKeyControl(table, "Quit game", &key_menu_quit);
- AddKeyControl(table, "Toggle gamma", &key_menu_gamma);
- AddKeyControl(table, "Multiplayer spy", &key_spy);
-
- AddKeyControl(table, "Increase screen size", &key_menu_incscreen);
- AddKeyControl(table, "Decrease screen size", &key_menu_decscreen);
-
- AddKeyControl(table, "Display last message", &key_message_refresh);
- AddKeyControl(table, "Finish recording demo", &key_demo_quit);
-
- TXT_AddWidgets(table, TXT_NewStrut(0, 1),
- TXT_NewStrut(0, 1),
- TXT_NewLabel(" - Multiplayer - "),
- TXT_NewStrut(0, 0),
- NULL);
-
- AddKeyControl(table, "Send message", &key_multi_msg);
- AddKeyControl(table, "- to green", &key_multi_msgplayer[0]);
- AddKeyControl(table, "- to indigo", &key_multi_msgplayer[1]);
- AddKeyControl(table, "- to brown", &key_multi_msgplayer[2]);
- AddKeyControl(table, "- to red", &key_multi_msgplayer[3]);
-
- TXT_AddWidgets(table, TXT_NewStrut(0, 1),
- TXT_NewStrut(0, 1),
- TXT_NewLabel(" - Map - "),
- TXT_NewStrut(0, 0),
- NULL);
-
- AddKeyControl(table, "Toggle map", &key_map_toggle);
- AddKeyControl(table, "Zoom in", &key_map_zoomin);
- AddKeyControl(table, "Zoom out", &key_map_zoomout);
- AddKeyControl(table, "Maximum zoom out", &key_map_maxzoom);
- AddKeyControl(table, "Follow mode", &key_map_follow);
- AddKeyControl(table, "Pan north", &key_map_north);
- AddKeyControl(table, "Pan south", &key_map_south);
- AddKeyControl(table, "Pan east", &key_map_east);
- AddKeyControl(table, "Pan west", &key_map_west);
- AddKeyControl(table, "Toggle grid", &key_map_grid);
- AddKeyControl(table, "Mark location", &key_map_mark);
- AddKeyControl(table, "Clear all marks", &key_map_clearmark);
-
- scrollpane = TXT_NewScrollPane(0, 12, table);
-
- TXT_AddWidget(window, scrollpane);
-}
-
-void ConfigKeyboard(void)
-{
- txt_window_t *window;
- txt_table_t *movement_table;
- txt_table_t *action_table;
- txt_checkbox_t *run_control;
-
- always_run = joybspeed >= 20;
-
- window = TXT_NewWindow("Keyboard configuration");
-
- TXT_AddWidgets(window,
- TXT_NewSeparator("Movement"),
- movement_table = TXT_NewTable(4),
-
- TXT_NewSeparator("Action"),
- action_table = TXT_NewTable(4),
- TXT_NewButton2("Other keys...", OtherKeysDialog, NULL),
- NULL);
-
- TXT_AddWidgets(window,
- TXT_NewSeparator("Misc."),
- run_control = TXT_NewCheckBox("Always run", &always_run),
- TXT_NewInvertedCheckBox("Use native keyboard mapping",
- &vanilla_keyboard_mapping),
- NULL);
-
- TXT_SetColumnWidths(movement_table, 15, 4, 15, 4);
-
- TXT_SignalConnect(run_control, "changed", UpdateJoybSpeed, NULL);
-
- AddKeyControl(movement_table, "Move Forward", &key_up);
- AddKeyControl(movement_table, " Strafe Left", &key_strafeleft);
- AddKeyControl(movement_table, "Move Backward", &key_down);
- AddKeyControl(movement_table, " Strafe Right", &key_straferight);
- AddKeyControl(movement_table, "Turn Left", &key_left);
- AddKeyControl(movement_table, " Speed On", &key_speed);
- AddKeyControl(movement_table, "Turn Right", &key_right);
- AddKeyControl(movement_table, " Strafe On", &key_strafe);
-
- TXT_SetColumnWidths(action_table, 15, 4, 15, 4);
-
- AddKeyControl(action_table, "Fire/Attack", &key_fire);
- AddKeyControl(action_table, " Use", &key_use);
-
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction());
-}
-
diff --git a/setup/keyboard.h b/setup/keyboard.h
deleted file mode 100644
index 73510861..00000000
--- a/setup/keyboard.h
+++ /dev/null
@@ -1,107 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef SETUP_KEYBOARD_H
-#define SETUP_KEYBOARD_H
-
-extern int key_left;
-extern int key_right;
-extern int key_up;
-extern int key_down;
-extern int key_strafeleft;
-extern int key_straferight;
-extern int key_fire;
-extern int key_use;
-extern int key_strafe;
-extern int key_speed;
-extern int joybspeed;
-extern int vanilla_keyboard_mapping;
-
-extern int key_pause;
-
-// Multiplayer messages:
-
-extern int key_multi_msg;
-extern int key_multi_msgplayer[];
-
-// Menu keys:
-
-extern int key_menu_activate;
-extern int key_menu_up;
-extern int key_menu_down;
-extern int key_menu_left;
-extern int key_menu_right;
-extern int key_menu_back;
-extern int key_menu_forward;
-extern int key_menu_confirm;
-extern int key_menu_abort;
-
-extern int key_menu_help;
-extern int key_menu_save;
-extern int key_menu_load;
-extern int key_menu_volume;
-extern int key_menu_detail;
-extern int key_menu_qsave;
-extern int key_menu_endgame;
-extern int key_menu_messages;
-extern int key_menu_qload;
-extern int key_menu_quit;
-extern int key_menu_gamma;
-extern int key_spy;
-
-extern int key_menu_incscreen;
-extern int key_menu_decscreen;
-
-// Automap keys:
-
-extern int key_map_north;
-extern int key_map_south;
-extern int key_map_east;
-extern int key_map_west;
-extern int key_map_zoomin;
-extern int key_map_zoomout;
-extern int key_map_toggle;
-extern int key_map_maxzoom;
-extern int key_map_follow;
-extern int key_map_grid;
-extern int key_map_mark;
-extern int key_map_clearmark;
-
-// Weapon keys:
-
-extern int key_weapon1;
-extern int key_weapon2;
-extern int key_weapon3;
-extern int key_weapon4;
-extern int key_weapon5;
-extern int key_weapon6;
-extern int key_weapon7;
-extern int key_weapon8;
-extern int key_prevweapon;
-extern int key_nextweapon;
-
-extern int key_message_refresh;
-extern int key_demo_quit;
-
-void ConfigKeyboard(void);
-
-#endif /* #ifndef SETUP_KEYBOARD_H */
-
diff --git a/setup/m_argv.c b/setup/m_argv.c
deleted file mode 100644
index ae9ab917..00000000
--- a/setup/m_argv.c
+++ /dev/null
@@ -1,65 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 1993-1996 Id Software, Inc.
-// Copyright(C) 2005 Simon Howard
-// Copyright(C) 2008 "GhostlyDeath" (ghostlydeath@gmail.com)
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-// DESCRIPTION:
-//
-//-----------------------------------------------------------------------------
-
-
-
-#include <string.h>
-
-int myargc;
-char** myargv;
-
-// From doomdef.h -- no need to include it all!
-#ifdef _WIN32
-#define snprintf _snprintf
-#define vsnprintf _vsnprintf
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
-#else
-#include <strings.h>
-#endif
-
-//
-// M_CheckParm
-// Checks for the given parameter
-// in the program's command line arguments.
-// Returns the argument number (1 to argc-1)
-// or 0 if not present
-int M_CheckParm (char *check)
-{
- int i;
-
- for (i = 1;i<myargc;i++)
- {
- if ( !strcasecmp(check, myargv[i]) )
- return i;
- }
-
- return 0;
-}
-
-
-
-
diff --git a/setup/m_argv.h b/setup/m_argv.h
deleted file mode 100644
index bd1518b9..00000000
--- a/setup/m_argv.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 1993-1996 Id Software, Inc.
-// Copyright(C) 2005 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-// DESCRIPTION:
-// Nil.
-//
-//-----------------------------------------------------------------------------
-
-
-#ifndef __M_ARGV__
-#define __M_ARGV__
-
-//
-// MISC
-//
-extern int myargc;
-extern char** myargv;
-
-// Returns the position of the given parameter
-// in the arg list (0 if not found).
-int M_CheckParm (char* check);
-
-
-#endif
diff --git a/setup/mainmenu.c b/setup/mainmenu.c
deleted file mode 100644
index a3dfafed..00000000
--- a/setup/mainmenu.c
+++ /dev/null
@@ -1,315 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef _WIN32_WCE
-#include "libc_wince.h"
-#endif
-
-#include "config.h"
-#include "textscreen.h"
-
-#include "execute.h"
-
-#include "configfile.h"
-#include "m_argv.h"
-
-#include "setup_icon.c"
-
-#include "compatibility.h"
-#include "display.h"
-#include "joystick.h"
-#include "keyboard.h"
-#include "mouse.h"
-#include "multiplayer.h"
-#include "sound.h"
-
-static const int cheat_sequence[] =
-{
- KEY_UPARROW, KEY_UPARROW, KEY_DOWNARROW, KEY_DOWNARROW,
- KEY_LEFTARROW, KEY_RIGHTARROW, KEY_LEFTARROW, KEY_RIGHTARROW,
- 'b', 'a', KEY_ENTER, 0
-};
-
-static unsigned int cheat_sequence_index = 0;
-
-// I think these are good "sensible" defaults:
-
-static void SensibleDefaults(void)
-{
- key_up = 'w';
- key_down = 's';
- key_strafeleft = 'a';
- key_straferight = 'd';
- mousebprevweapon = 4;
- mousebnextweapon = 3;
- snd_musicdevice = 3;
- joybspeed = 29;
- vanilla_savegame_limit = 0;
- vanilla_keyboard_mapping = 0;
- vanilla_demo_limit = 0;
- show_endoom = 0;
- dclick_use = 0;
- novert = 1;
-}
-
-static int MainMenuKeyPress(txt_window_t *window, int key, void *user_data)
-{
- if (key == cheat_sequence[cheat_sequence_index])
- {
- ++cheat_sequence_index;
-
- if (cheat_sequence[cheat_sequence_index] == 0)
- {
- SensibleDefaults();
- cheat_sequence_index = 0;
-
- window = TXT_NewWindow(NULL);
- TXT_AddWidget(window, TXT_NewLabel(" \x01 "));
- TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL);
-
- return 1;
- }
- }
- else
- {
- cheat_sequence_index = 0;
- }
-
- return 0;
-}
-
-static void DoQuit(void *widget, void *dosave)
-{
- if (dosave != NULL)
- {
- M_SaveDefaults();
- }
-
- exit(0);
-}
-
-static void QuitConfirm(void *unused1, void *unused2)
-{
- txt_window_t *window;
- txt_label_t *label;
- txt_button_t *yes_button;
- txt_button_t *no_button;
-
- window = TXT_NewWindow(NULL);
-
- TXT_AddWidgets(window,
- label = TXT_NewLabel("Exiting setup.\nSave settings?"),
- TXT_NewStrut(24, 0),
- yes_button = TXT_NewButton2(" Yes ", DoQuit, DoQuit),
- no_button = TXT_NewButton2(" No ", DoQuit, NULL),
- NULL);
-
- TXT_SetWidgetAlign(label, TXT_HORIZ_CENTER);
- TXT_SetWidgetAlign(yes_button, TXT_HORIZ_CENTER);
- TXT_SetWidgetAlign(no_button, TXT_HORIZ_CENTER);
-
- // Only an "abort" button in the middle.
- TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL);
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER,
- TXT_NewWindowAbortAction(window));
- TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL);
-}
-
-static void LaunchDoom(void *unused1, void *unused2)
-{
- execute_context_t *exec;
-
- // Save configuration first
-
- M_SaveDefaults();
-
- // Shut down textscreen GUI
-
- TXT_Shutdown();
-
- // Launch Doom
-
- exec = NewExecuteContext();
- PassThroughArguments(exec);
- ExecuteDoom(exec);
-
- exit(0);
-}
-
-void MainMenu(void)
-{
- txt_window_t *window;
- txt_window_action_t *quit_action;
- txt_window_action_t *warp_action;
-
- window = TXT_NewWindow("Main Menu");
-
- TXT_AddWidgets(window,
- TXT_NewButton2("Configure Display",
- (TxtWidgetSignalFunc) ConfigDisplay, NULL),
- TXT_NewButton2("Configure Joystick",
- (TxtWidgetSignalFunc) ConfigJoystick, NULL),
- TXT_NewButton2("Configure Keyboard",
- (TxtWidgetSignalFunc) ConfigKeyboard, NULL),
- TXT_NewButton2("Configure Mouse",
- (TxtWidgetSignalFunc) ConfigMouse, NULL),
- TXT_NewButton2("Configure Sound",
- (TxtWidgetSignalFunc) ConfigSound, NULL),
- TXT_NewButton2("Compatibility",
- (TxtWidgetSignalFunc) CompatibilitySettings, NULL),
- TXT_NewButton2("Save parameters and launch DOOM", LaunchDoom, NULL),
- TXT_NewStrut(0, 1),
- TXT_NewButton2("Start a Network Game",
- (TxtWidgetSignalFunc) StartMultiGame, NULL),
- TXT_NewButton2("Join a Network Game",
- (TxtWidgetSignalFunc) JoinMultiGame, NULL),
- TXT_NewButton2("Multiplayer Configuration",
- (TxtWidgetSignalFunc) MultiplayerConfig, NULL),
- NULL);
-
- quit_action = TXT_NewWindowAction(KEY_ESCAPE, "Quit");
- warp_action = TXT_NewWindowAction(KEY_F1, "Warp");
- TXT_SignalConnect(quit_action, "pressed", QuitConfirm, NULL);
- TXT_SignalConnect(warp_action, "pressed",
- (TxtWidgetSignalFunc) WarpMenu, NULL);
- TXT_SetWindowAction(window, TXT_HORIZ_LEFT, quit_action);
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER, warp_action);
-
- TXT_SetKeyListener(window, MainMenuKeyPress, NULL);
-}
-
-//
-// Initialize all configuration variables, load config file, etc
-//
-
-static void InitConfig(void)
-{
- M_ApplyPlatformDefaults();
-
- SetChatMacroDefaults();
- SetPlayerNameDefault();
-
- M_SetConfigDir();
- M_LoadDefaults();
-}
-
-//
-// Application icon
-//
-
-static void SetIcon(void)
-{
- SDL_Surface *surface;
- Uint8 *mask;
- int i;
-
- // Generate the mask
-
- mask = malloc(setup_icon_w * setup_icon_h / 8);
- memset(mask, 0, setup_icon_w * setup_icon_h / 8);
-
- for (i=0; i<setup_icon_w * setup_icon_h; ++i)
- {
- if (setup_icon_data[i * 3] != 0x00
- || setup_icon_data[i * 3 + 1] != 0x00
- || setup_icon_data[i * 3 + 2] != 0x00)
- {
- mask[i / 8] |= 1 << (7 - i % 8);
- }
- }
-
-
- surface = SDL_CreateRGBSurfaceFrom(setup_icon_data,
- setup_icon_w,
- setup_icon_h,
- 24,
- setup_icon_w * 3,
- 0xff << 0,
- 0xff << 8,
- 0xff << 16,
- 0);
-
- SDL_WM_SetIcon(surface, mask);
- SDL_FreeSurface(surface);
- free(mask);
-}
-
-// Initialize the textscreen library.
-
-static void InitTextscreen(void)
-{
- SetDisplayDriver();
-
- if (!TXT_Init())
- {
- fprintf(stderr, "Failed to initialize GUI\n");
- exit(-1);
- }
-
- TXT_SetDesktopTitle(PACKAGE_NAME " Setup ver " PACKAGE_VERSION);
- SetIcon();
-}
-
-// Restart the textscreen library. Used when the video_driver variable
-// is changed.
-
-void RestartTextscreen(void)
-{
- TXT_Shutdown();
- InitTextscreen();
-}
-
-//
-// Initialize and run the textscreen GUI.
-//
-
-static void RunGUI(void)
-{
- InitTextscreen();
- MainMenu();
-
- TXT_GUIMainLoop();
-}
-
-int main(int argc, char *argv[])
-{
- myargc = argc;
- myargv = argv;
-
-#ifdef _WIN32_WCE
-
- // Windows CE has no environment, but SDL provides an implementation.
- // Populate the environment with the values we normally find.
-
- PopulateEnvironment();
-
-#endif
-
- InitConfig();
- RunGUI();
-
- return 0;
-}
-
diff --git a/setup/mouse.c b/setup/mouse.c
deleted file mode 100644
index 7931e79e..00000000
--- a/setup/mouse.c
+++ /dev/null
@@ -1,163 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#include <stdlib.h>
-
-#include "textscreen.h"
-#include "doomtype.h"
-
-#include "execute.h"
-#include "txt_mouseinput.h"
-
-#include "mouse.h"
-
-int usemouse = 1;
-
-int novert = 0;
-int mouseSensitivity = 5;
-float mouse_acceleration = 2.0;
-int mouse_threshold = 10;
-int grabmouse = 1;
-
-int mousebfire = 0;
-int mousebforward = 2;
-int mousebstrafe = 1;
-int mousebstrafeleft = -1;
-int mousebstraferight = -1;
-int mousebbackward = -1;
-int mousebuse = -1;
-int mousebprevweapon = -1;
-int mousebnextweapon = -1;
-
-int dclick_use = 1;
-
-static int *all_mouse_buttons[] = {
- &mousebfire,
- &mousebstrafe,
- &mousebforward,
- &mousebstrafeleft,
- &mousebstraferight,
- &mousebbackward,
- &mousebuse,
- &mousebprevweapon,
- &mousebnextweapon
-};
-
-static void MouseSetCallback(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(variable))
-{
- TXT_CAST_ARG(int, variable);
- unsigned int i;
-
- // Check if the same mouse button is used for a different action
- // If so, set the other action(s) to -1 (unset)
-
- for (i=0; i<arrlen(all_mouse_buttons); ++i)
- {
- if (*all_mouse_buttons[i] == *variable
- && all_mouse_buttons[i] != variable)
- {
- *all_mouse_buttons[i] = -1;
- }
- }
-}
-
-static void AddMouseControl(txt_table_t *table, char *label, int *var)
-{
- txt_mouse_input_t *mouse_input;
-
- TXT_AddWidget(table, TXT_NewLabel(label));
-
- mouse_input = TXT_NewMouseInput(var);
- TXT_AddWidget(table, mouse_input);
-
- TXT_SignalConnect(mouse_input, "set", MouseSetCallback, var);
-}
-
-static void ConfigExtraButtons(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
-{
- txt_window_t *window;
- txt_table_t *buttons_table;
-
- window = TXT_NewWindow("Additional mouse buttons");
-
- TXT_AddWidgets(window,
- buttons_table = TXT_NewTable(2),
- NULL);
-
- TXT_SetColumnWidths(buttons_table, 29, 5);
-
- AddMouseControl(buttons_table, "Move backward", &mousebbackward);
- AddMouseControl(buttons_table, "Use", &mousebuse);
- AddMouseControl(buttons_table, "Strafe left", &mousebstrafeleft);
- AddMouseControl(buttons_table, "Strafe right", &mousebstraferight);
- AddMouseControl(buttons_table, "Previous weapon", &mousebprevweapon);
- AddMouseControl(buttons_table, "Next weapon", &mousebnextweapon);
-}
-
-void ConfigMouse(void)
-{
- txt_window_t *window;
- txt_table_t *motion_table;
- txt_table_t *buttons_table;
- txt_button_t *more_buttons;
-
- window = TXT_NewWindow("Mouse configuration");
-
- TXT_AddWidgets(window,
- TXT_NewCheckBox("Enable mouse", &usemouse),
- TXT_NewInvertedCheckBox("Allow vertical mouse movement",
- &novert),
- TXT_NewCheckBox("Grab mouse in windowed mode",
- &grabmouse),
- TXT_NewCheckBox("Double click acts as \"use\"",
- &dclick_use),
-
- TXT_NewSeparator("Mouse motion"),
- motion_table = TXT_NewTable(2),
-
- TXT_NewSeparator("Buttons"),
- buttons_table = TXT_NewTable(2),
- more_buttons = TXT_NewButton("More buttons..."),
-
- NULL);
-
- TXT_SetColumnWidths(motion_table, 27, 5);
-
- TXT_AddWidgets(motion_table,
- TXT_NewLabel("Speed"),
- TXT_NewSpinControl(&mouseSensitivity, 1, 256),
- TXT_NewLabel("Acceleration"),
- TXT_NewFloatSpinControl(&mouse_acceleration, 1.0, 5.0),
- TXT_NewLabel("Acceleration threshold"),
- TXT_NewSpinControl(&mouse_threshold, 0, 32),
- NULL);
-
- TXT_SetColumnWidths(buttons_table, 27, 5);
-
- AddMouseControl(buttons_table, "Move forward", &mousebforward);
- AddMouseControl(buttons_table, "Strafe on", &mousebstrafe);
- AddMouseControl(buttons_table, "Fire weapon", &mousebfire);
-
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction());
-
- TXT_SignalConnect(more_buttons, "pressed", ConfigExtraButtons, NULL);
-}
-
diff --git a/setup/mouse.h b/setup/mouse.h
deleted file mode 100644
index 48270caa..00000000
--- a/setup/mouse.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef SETUP_MOUSE_H
-#define SETUP_MOUSE_H
-
-extern int usemouse;
-
-extern int novert;
-extern int mouseSensitivity;
-extern float mouse_acceleration;
-extern int mouse_threshold;
-extern int grabmouse;
-extern int mousebfire;
-extern int mousebforward;
-extern int mousebstrafe;
-extern int mousebstrafeleft;
-extern int mousebstraferight;
-extern int mousebbackward;
-extern int mousebuse;
-extern int dclick_use;
-extern int mousebprevweapon;
-extern int mousebnextweapon;
-
-void ConfigMouse(void);
-
-
-#endif /* #ifndef SETUP_MOUSE_H */
-
diff --git a/setup/multiplayer.c b/setup/multiplayer.c
deleted file mode 100644
index f558e2ab..00000000
--- a/setup/multiplayer.c
+++ /dev/null
@@ -1,850 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "d_englsh.h"
-#include "textscreen.h"
-#include "doomtype.h"
-
-#include "configfile.h"
-
-#include "execute.h"
-
-#include "multiplayer.h"
-
-#define NUM_WADS 10
-#define NUM_EXTRA_PARAMS 10
-
-typedef struct
-{
- char *filename;
- char *description;
- int mask;
-} iwad_t;
-
-typedef enum
-{
- WARP_DOOM1,
- WARP_DOOM2,
-} warptype_t;
-
-typedef enum
-{
- JOIN_AUTO_LAN,
- JOIN_ADDRESS,
-} jointype_t;
-
-static iwad_t iwads[] =
-{
- { "doom.wad", "Doom", IWAD_DOOM },
- { "doom2.wad", "Doom 2", IWAD_DOOM2 },
- { "tnt.wad", "Final Doom: TNT", IWAD_TNT },
- { "plutonia.wad", "Final Doom: Plutonia", IWAD_PLUTONIA },
- { "doom1.wad", "Doom shareware", IWAD_DOOM1 },
- { "chex.wad", "Chex Quest", IWAD_CHEX },
-};
-
-// Array of IWADs found to be installed
-
-static char *found_iwads[6];
-
-// Index of the currently selected IWAD
-
-static int found_iwad_selected;
-
-// Filename to pass to '-iwad'.
-
-static char *iwadfile;
-
-static char *skills[] =
-{
- "I'm too young to die.",
- "Hey, not too rough.",
- "Hurt me plenty.",
- "Ultra-Violence.",
- "NIGHTMARE!",
-};
-
-static char *chex_skills[] =
-{
- "Easy does it",
- "Not so sticky",
- "Gobs of goo",
- "Extreme ooze",
- "SUPER SLIMEY!"
-};
-
-static char *gamemodes[] =
-{
- "Co-operative",
- "Deathmatch",
- "Deathmatch 2.0",
-};
-
-char *net_player_name;
-char *chat_macros[10];
-
-static int jointype = JOIN_ADDRESS;
-
-static char *wads[NUM_WADS];
-static char *extra_params[NUM_EXTRA_PARAMS];
-static int skill = 2;
-static int nomonsters = 0;
-static int deathmatch = 0;
-static int fast = 0;
-static int respawn = 0;
-static int udpport = 2342;
-static int timer = 0;
-static int privateserver = 0;
-
-static txt_dropdown_list_t *skillbutton;
-static txt_button_t *warpbutton;
-static warptype_t warptype = WARP_DOOM2;
-static int warpepisode = 1;
-static int warpmap = 1;
-
-// Address to connect to when joining a game
-
-static char *connect_address = NULL;
-
-// Find an IWAD from its description
-
-static iwad_t *GetIWADForDescription(char *description)
-{
- unsigned int i;
-
- for (i=0; i<arrlen(iwads); ++i)
- {
- if (!strcmp(iwads[i].description, description))
- {
- return &iwads[i];
- }
- }
-
- return NULL;
-}
-
-static iwad_t *GetCurrentIWAD(void)
-{
- return GetIWADForDescription(found_iwads[found_iwad_selected]);
-}
-
-
-static void AddWADs(execute_context_t *exec)
-{
- int have_wads = 0;
- int i;
-
- for (i=0; i<NUM_WADS; ++i)
- {
- if (wads[i] != NULL && strlen(wads[i]) > 0)
- {
- if (!have_wads)
- {
- AddCmdLineParameter(exec, "-file");
- }
-
- AddCmdLineParameter(exec, "\"%s\"", wads[i]);
- }
- }
-}
-
-static void AddExtraParameters(execute_context_t *exec)
-{
- int i;
-
- for (i=0; i<NUM_EXTRA_PARAMS; ++i)
- {
- if (extra_params[i] != NULL && strlen(extra_params[i]) > 0)
- {
- AddCmdLineParameter(exec, extra_params[i]);
- }
- }
-}
-
-static void AddIWADParameter(execute_context_t *exec)
-{
- if (iwadfile != NULL)
- {
- AddCmdLineParameter(exec, "-iwad %s", iwadfile);
- }
-}
-
-// Callback function invoked to launch the game.
-// This is used when starting a server and also when starting a
-// single player game via the "warp" menu.
-
-static void StartGame(int multiplayer)
-{
- execute_context_t *exec;
-
- exec = NewExecuteContext();
-
- // Extra parameters come first, before all others; this way,
- // they can override any of the options set in the dialog.
-
- AddExtraParameters(exec);
-
- AddIWADParameter(exec);
- AddCmdLineParameter(exec, "-skill %i", skill + 1);
-
- if (nomonsters)
- {
- AddCmdLineParameter(exec, "-nomonsters");
- }
-
- if (fast)
- {
- AddCmdLineParameter(exec, "-fast");
- }
-
- if (respawn)
- {
- AddCmdLineParameter(exec, "-respawn");
- }
-
- if (warptype == WARP_DOOM1)
- {
- // TODO: select IWAD based on warp type
- AddCmdLineParameter(exec, "-warp %i %i", warpepisode, warpmap);
- }
- else if (warptype == WARP_DOOM2)
- {
- AddCmdLineParameter(exec, "-warp %i", warpmap);
- }
-
- // Multiplayer-specific options:
-
- if (multiplayer)
- {
- AddCmdLineParameter(exec, "-server");
- AddCmdLineParameter(exec, "-port %i", udpport);
-
- if (deathmatch == 1)
- {
- AddCmdLineParameter(exec, "-deathmatch");
- }
- else if (deathmatch == 2)
- {
- AddCmdLineParameter(exec, "-altdeath");
- }
-
- if (timer > 0)
- {
- AddCmdLineParameter(exec, "-timer %i", timer);
- }
-
- if (privateserver)
- {
- AddCmdLineParameter(exec, "-privateserver");
- }
- }
-
- AddWADs(exec);
-
- TXT_Shutdown();
-
- M_SaveDefaults();
- PassThroughArguments(exec);
-
- ExecuteDoom(exec);
-
- exit(0);
-}
-
-static void StartServerGame(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
-{
- StartGame(1);
-}
-
-static void StartSinglePlayerGame(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
-{
- StartGame(0);
-}
-
-static void UpdateWarpButton(void)
-{
- char buf[10];
-
- if (warptype == WARP_DOOM1)
- {
- sprintf(buf, "E%iM%i", warpepisode, warpmap);
- }
- else if (warptype == WARP_DOOM2)
- {
- sprintf(buf, "MAP%02i", warpmap);
- }
-
- TXT_SetButtonLabel(warpbutton, buf);
-}
-
-static void UpdateSkillButton(void)
-{
- iwad_t *iwad = GetCurrentIWAD();
-
- if (iwad->mask == IWAD_CHEX)
- {
- skillbutton->values = chex_skills;
- }
- else
- {
- skillbutton->values = skills;
- }
-}
-
-static void SetDoom1Warp(TXT_UNCAST_ARG(widget), void *val)
-{
- int l;
-
- l = (int) val;
-
- warpepisode = l / 10;
- warpmap = l % 10;
-
- UpdateWarpButton();
-}
-
-static void SetDoom2Warp(TXT_UNCAST_ARG(widget), void *val)
-{
- int l;
-
- l = (int) val;
-
- warpmap = l;
-
- UpdateWarpButton();
-}
-
-static void CloseLevelSelectDialog(TXT_UNCAST_ARG(button), TXT_UNCAST_ARG(window))
-{
- TXT_CAST_ARG(txt_window_t, window);
-
- TXT_CloseWindow(window);
-}
-
-static void LevelSelectDialog(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(user_data))
-{
- txt_window_t *window;
- txt_table_t *table;
- txt_button_t *button;
- iwad_t *iwad;
- char buf[10];
- int x, y;
- int l;
- int i;
-
- window = TXT_NewWindow("Select level");
-
- table = TXT_NewTable(4);
-
- TXT_AddWidget(window, table);
-
- if (warptype == WARP_DOOM1)
- {
- // ExMy levels
-
- iwad = GetCurrentIWAD();
-
- for (i=0; i<4 * 9; ++i)
- {
- x = (i % 4) + 1;
- y = (i / 4) + 1;
-
- // chex.wad only has E1M1-E1M5.
-
- if (iwad->mask == IWAD_CHEX && (x > 1 || y > 5))
- {
- continue;
- }
-
- // doom1.wad only has E1
-
- if (iwad->mask == IWAD_DOOM1 && x > 1)
- {
- continue;
- }
-
- sprintf(buf, " E%iM%i ", x, y);
- button = TXT_NewButton(buf);
- TXT_SignalConnect(button, "pressed",
- SetDoom1Warp, (void *) (x * 10 + y));
- TXT_SignalConnect(button, "pressed",
- CloseLevelSelectDialog, window);
- TXT_AddWidget(table, button);
-
- if (warpepisode == x && warpmap == y)
- {
- TXT_SelectWidget(table, button);
- }
- }
- }
- else
- {
- for (i=0; i<32; ++i)
- {
- x = i % 4;
- y = i / 4;
-
- l = x * 8 + y + 1;
-
- sprintf(buf, " MAP%02i ", l);
- button = TXT_NewButton(buf);
- TXT_SignalConnect(button, "pressed",
- SetDoom2Warp, (void *) l);
- TXT_SignalConnect(button, "pressed",
- CloseLevelSelectDialog, window);
- TXT_AddWidget(table, button);
-
- if (warpmap == l)
- {
- TXT_SelectWidget(table, button);
- }
- }
- }
-}
-
-static void IWADSelected(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
-{
- iwad_t *iwad;
-
- // Find the iwad_t selected
-
- iwad = GetCurrentIWAD();
-
- // Update iwadfile
-
- iwadfile = iwad->filename;
-}
-
-// Called when the IWAD button is changed, to update warptype.
-
-static void UpdateWarpType(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
-{
- warptype_t new_warptype;
- iwad_t *iwad;
-
- // Get the selected IWAD
-
- iwad = GetIWADForDescription(found_iwads[found_iwad_selected]);
-
- // Find the new warp type
-
- if (iwad->mask & (IWAD_DOOM | IWAD_DOOM1 | IWAD_CHEX))
- {
- new_warptype = WARP_DOOM1;
- }
- else
- {
- new_warptype = WARP_DOOM2;
- }
-
- // Reset to E1M1 / MAP01 when the warp type is changed.
-
- if (new_warptype != warptype)
- {
- warpepisode = 1;
- warpmap = 1;
- }
-
- warptype = new_warptype;
-
- UpdateWarpButton();
- UpdateSkillButton();
-}
-
-static txt_widget_t *IWADSelector(void)
-{
- txt_dropdown_list_t *dropdown;
- txt_widget_t *result;
- int installed_iwads;
- int num_iwads;
- unsigned int i;
-
- // Find out what WADs are installed
-
- installed_iwads = FindInstalledIWADs();
-
- // Build a list of the descriptions for all installed IWADs
-
- num_iwads = 0;
-
- for (i=0; i<arrlen(iwads); ++i)
- {
- if (installed_iwads & iwads[i].mask)
- {
- found_iwads[num_iwads] = iwads[i].description;
- ++num_iwads;
- }
- }
-
- // If no IWADs are found, provide Doom 2 as an option, but
- // we're probably screwed.
-
- if (num_iwads == 0)
- {
- found_iwads[0] = "Doom 2";
- num_iwads = 1;
- }
-
- // Build a dropdown list of IWADs
-
- if (num_iwads < 2)
- {
- // We have only one IWAD. Show as a label.
-
- result = (txt_widget_t *) TXT_NewLabel(found_iwads[0]);
- }
- else
- {
- // Dropdown list allowing IWAD to be selected.
-
- dropdown = TXT_NewDropdownList(&found_iwad_selected,
- found_iwads, num_iwads);
-
- TXT_SignalConnect(dropdown, "changed", IWADSelected, NULL);
-
- result = (txt_widget_t *) dropdown;
- }
-
- // Select first in the list.
-
- found_iwad_selected = 0;
- IWADSelected(NULL, NULL);
-
- return result;
-}
-
-// Create the window action button to start the game. This invokes
-// a different callback depending on whether to start a multiplayer
-// or single player game.
-
-static txt_window_action_t *StartGameAction(int multiplayer)
-{
- txt_window_action_t *action;
- TxtWidgetSignalFunc callback;
-
- action = TXT_NewWindowAction(KEY_F10, "Start");
-
- if (multiplayer)
- {
- callback = StartServerGame;
- }
- else
- {
- callback = StartSinglePlayerGame;
- }
-
- TXT_SignalConnect(action, "pressed", callback, NULL);
-
- return action;
-}
-
-static void OpenWadsWindow(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(user_data))
-{
- txt_window_t *window;
- int i;
-
- window = TXT_NewWindow("Add WADs");
-
- for (i=0; i<NUM_WADS; ++i)
- {
- TXT_AddWidget(window, TXT_NewInputBox(&wads[i], 60));
- }
-}
-
-static void OpenExtraParamsWindow(TXT_UNCAST_ARG(widget),
- TXT_UNCAST_ARG(user_data))
-{
- txt_window_t *window;
- int i;
-
- window = TXT_NewWindow("Extra command line parameters");
-
- for (i=0; i<NUM_EXTRA_PARAMS; ++i)
- {
- TXT_AddWidget(window, TXT_NewInputBox(&extra_params[i], 70));
- }
-}
-
-static txt_window_action_t *WadWindowAction(void)
-{
- txt_window_action_t *action;
-
- action = TXT_NewWindowAction('w', "Add WADs");
- TXT_SignalConnect(action, "pressed", OpenWadsWindow, NULL);
-
- return action;
-}
-
-// "Start game" menu. This is used for the start server window
-// and the single player warp menu. The parameters specify
-// the window title and whether to display multiplayer options.
-
-static void StartGameMenu(char *window_title, int multiplayer)
-{
- txt_window_t *window;
- txt_table_t *gameopt_table;
- txt_table_t *advanced_table;
- txt_widget_t *iwad_selector;
-
- window = TXT_NewWindow(window_title);
-
- TXT_AddWidgets(window,
- gameopt_table = TXT_NewTable(2),
- TXT_NewSeparator("Monster options"),
- TXT_NewInvertedCheckBox("Monsters enabled", &nomonsters),
- TXT_NewCheckBox("Fast monsters", &fast),
- TXT_NewCheckBox("Respawning monsters", &respawn),
- TXT_NewSeparator("Advanced"),
- advanced_table = TXT_NewTable(2),
- NULL);
-
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER, WadWindowAction());
- TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, StartGameAction(multiplayer));
-
- TXT_SetColumnWidths(gameopt_table, 12, 6);
-
- TXT_AddWidgets(gameopt_table,
- TXT_NewLabel("Game"),
- iwad_selector = IWADSelector(),
- TXT_NewLabel("Skill"),
- skillbutton = TXT_NewDropdownList(&skill, skills, 5),
- TXT_NewLabel("Level warp"),
- warpbutton = TXT_NewButton2("????", LevelSelectDialog, NULL),
- NULL);
-
- if (multiplayer)
- {
- TXT_AddWidgets(gameopt_table,
- TXT_NewLabel("Game type"),
- TXT_NewDropdownList(&deathmatch, gamemodes, 3),
- TXT_NewLabel("Time limit"),
- TXT_NewHorizBox(TXT_NewIntInputBox(&timer, 2),
- TXT_NewLabel("minutes"),
- NULL),
- NULL);
-
- TXT_AddWidget(window,
- TXT_NewInvertedCheckBox("Register with master server",
- &privateserver));
-
- TXT_AddWidgets(advanced_table,
- TXT_NewLabel("UDP port"),
- TXT_NewIntInputBox(&udpport, 5),
- NULL);
- }
-
- TXT_AddWidget(window,
- TXT_NewButton2("Add extra parameters...",
- OpenExtraParamsWindow, NULL));
-
- TXT_SetColumnWidths(advanced_table, 12, 6);
-
- TXT_SignalConnect(iwad_selector, "changed", UpdateWarpType, NULL);
-
- UpdateWarpType(NULL, NULL);
- UpdateWarpButton();
-}
-
-void StartMultiGame(void)
-{
- StartGameMenu("Start multiplayer game", 1);
-}
-
-void WarpMenu(void)
-{
- StartGameMenu("Level Warp", 0);
-}
-
-static void DoJoinGame(void *unused1, void *unused2)
-{
- execute_context_t *exec;
-
- exec = NewExecuteContext();
-
- if (jointype == JOIN_ADDRESS)
- {
- AddCmdLineParameter(exec, "-connect %s", connect_address);
- }
- else if (jointype == JOIN_AUTO_LAN)
- {
- AddCmdLineParameter(exec, "-autojoin");
- }
-
- // Extra parameters come first, so that they can be used to override
- // the other parameters.
-
- AddExtraParameters(exec);
- AddIWADParameter(exec);
- AddWADs(exec);
-
- TXT_Shutdown();
-
- M_SaveDefaults();
-
- PassThroughArguments(exec);
-
- ExecuteDoom(exec);
-
- exit(0);
-}
-
-static txt_window_action_t *JoinGameAction(void)
-{
- txt_window_action_t *action;
-
- action = TXT_NewWindowAction(KEY_F10, "Connect");
- TXT_SignalConnect(action, "pressed", DoJoinGame, NULL);
-
- return action;
-}
-
-// When an address is entered, select "address" mode.
-
-static void SelectAddressJoin(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
-{
- jointype = JOIN_ADDRESS;
-}
-
-void JoinMultiGame(void)
-{
- txt_window_t *window;
- txt_table_t *gameopt_table;
- txt_table_t *serveropt_table;
- txt_inputbox_t *address_box;
-
- window = TXT_NewWindow("Join multiplayer game");
-
- TXT_AddWidgets(window,
- gameopt_table = TXT_NewTable(2),
- TXT_NewSeparator("Server"),
- serveropt_table = TXT_NewTable(2),
- TXT_NewStrut(0, 1),
- TXT_NewButton2("Add extra parameters...", OpenExtraParamsWindow, NULL),
- NULL);
-
- TXT_SetColumnWidths(gameopt_table, 12, 12);
-
- TXT_AddWidgets(gameopt_table,
- TXT_NewLabel("Game"),
- IWADSelector(),
- NULL);
-
- TXT_AddWidgets(serveropt_table,
- TXT_NewRadioButton("Connect to address:",
- &jointype, JOIN_ADDRESS),
- address_box = TXT_NewInputBox(&connect_address, 30),
- TXT_NewRadioButton("Auto-join LAN game",
- &jointype, JOIN_AUTO_LAN),
- NULL);
-
- TXT_SignalConnect(address_box, "changed", SelectAddressJoin, NULL);
- TXT_SelectWidget(window, address_box);
-
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER, WadWindowAction());
- TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, JoinGameAction());
-}
-
-void SetChatMacroDefaults(void)
-{
- int i;
- char *defaults[] =
- {
- HUSTR_CHATMACRO1,
- HUSTR_CHATMACRO2,
- HUSTR_CHATMACRO3,
- HUSTR_CHATMACRO4,
- HUSTR_CHATMACRO5,
- HUSTR_CHATMACRO6,
- HUSTR_CHATMACRO7,
- HUSTR_CHATMACRO8,
- HUSTR_CHATMACRO9,
- HUSTR_CHATMACRO0,
- };
-
- // If the chat macros have not been set, initialize with defaults.
-
- for (i=0; i<10; ++i)
- {
- if (chat_macros[i] == NULL)
- {
- chat_macros[i] = strdup(defaults[i]);
- }
- }
-}
-
-void SetPlayerNameDefault(void)
-{
- if (net_player_name == NULL)
- {
- net_player_name = getenv("USER");
- }
-
- if (net_player_name == NULL)
- {
- net_player_name = getenv("USERNAME");
- }
-
- if (net_player_name == NULL)
- {
- net_player_name = "player";
- }
-}
-
-void MultiplayerConfig(void)
-{
- txt_window_t *window;
- txt_label_t *label;
- txt_table_t *table;
- char buf[10];
- int i;
-
- window = TXT_NewWindow("Multiplayer Configuration");
-
- TXT_AddWidgets(window,
- TXT_NewStrut(0, 1),
- TXT_NewHorizBox(TXT_NewLabel("Player name: "),
- TXT_NewInputBox(&net_player_name, 25),
- NULL),
- TXT_NewStrut(0, 1),
- TXT_NewSeparator("Chat macros"),
- NULL);
-
- table = TXT_NewTable(2);
-
- for (i=0; i<10; ++i)
- {
- sprintf(buf, "#%i ", i + 1);
-
- label = TXT_NewLabel(buf);
- TXT_SetFGColor(label, TXT_COLOR_BRIGHT_CYAN);
-
- TXT_AddWidgets(table,
- label,
- TXT_NewInputBox(&chat_macros[(i + 1) % 10], 40),
- NULL);
- }
-
- TXT_AddWidget(window, table);
-}
-
diff --git a/setup/multiplayer.h b/setup/multiplayer.h
deleted file mode 100644
index bc88318c..00000000
--- a/setup/multiplayer.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef SETUP_MULTIPLAYER_H
-#define SETUP_MULTIPLAYER_H
-
-extern char *net_player_name;
-extern char *chat_macros[10];
-
-void StartMultiGame(void);
-void WarpMenu(void);
-void JoinMultiGame(void);
-void MultiplayerConfig(void);
-
-void SetChatMacroDefaults(void);
-void SetPlayerNameDefault(void);
-
-#endif /* #ifndef SETUP_MULTIPLAYER_H */
-
diff --git a/setup/setup-manifest.xml.in b/setup/setup-manifest.xml.in
deleted file mode 100644
index ff879263..00000000
--- a/setup/setup-manifest.xml.in
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-
-<!-- Magic manifest file that should make Windows Vista/7 not
- attempt to gain elevated privileges for chocolate-setup.
-
- Based on:
-
- http://www.cygwin.com/ml/cygwin/2006-12/msg00580.html
- -->
-
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
- <!-- The "name" field in this tag should be the same as the executable's
- name -->
- <assemblyIdentity version="0.0.0.0" processorArchitecture="X86"
- name="@PROGRAM_PREFIX@setup.exe" type="win32"/>
- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
- <security>
- <requestedPrivileges>
- <requestedExecutionLevel level="asInvoker" uiAccess="false" />
- </requestedPrivileges>
- </security>
- </trustInfo>
-
- <!-- Stop the Program Compatibility Assistant appearing: -->
-
- <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
- <application>
- <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> <!-- 7 -->
- <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <!-- Vista -->
- </application>
- </compatibility>
-</assembly>
-
diff --git a/setup/setup-res.rc.in b/setup/setup-res.rc.in
deleted file mode 100644
index 2bc3106c..00000000
--- a/setup/setup-res.rc.in
+++ /dev/null
@@ -1,24 +0,0 @@
-1 ICON "../data/setup.ico"
-
-1 24 MOVEABLE PURE "setup-manifest.xml"
-
-1 VERSIONINFO
-PRODUCTVERSION @WINDOWS_RC_VERSION@
-FILEVERSION @WINDOWS_RC_VERSION@
-FILETYPE 1
-{
- BLOCK "StringFileInfo"
- {
- BLOCK "040904E4"
- {
- VALUE "FileVersion", "@PACKAGE_VERSION@"
- VALUE "FileDescription", "@PACKAGE_STRING@ Setup"
- VALUE "InternalName", "@PACKAGE_TARNAME@"
- VALUE "CompanyName", "@PACKAGE_BUGREPORT@"
- VALUE "LegalCopyright", "GNU General Public License"
- VALUE "ProductName", "@PACKAGE_NAME@ Setup"
- VALUE "ProductVersion", "@PACKAGE_VERSION@"
- }
- }
-}
-
diff --git a/setup/setup.desktop.in b/setup/setup.desktop.in
deleted file mode 100644
index 79fb38be..00000000
--- a/setup/setup.desktop.in
+++ /dev/null
@@ -1,7 +0,0 @@
-[Desktop Entry]
-Name=@PACKAGE_NAME@ Setup
-Exec=@PROGRAM_PREFIX@setup
-Icon=@PROGRAM_PREFIX@setup
-Type=Application
-Comment=Setup tool for @PACKAGE_NAME@
-Categories=Settings;ConsoleOnly;
diff --git a/setup/setup_icon.c b/setup/setup_icon.c
deleted file mode 100644
index 1c18c56f..00000000
--- a/setup/setup_icon.c
+++ /dev/null
@@ -1,262 +0,0 @@
-static int setup_icon_w = 32;
-static int setup_icon_h = 32;
-
-static unsigned char setup_icon_data[] = {
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xa2,0x86,0x73,
- 0xa9,0x8d,0x7a, 0xbc,0x9f,0x8c, 0xda,0xba,0xa0, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0xbe,0x8e,0x68, 0xd7,0xb9,0xa5, 0xeb,0xd8,0xcd, 0xd3,0xbf,0xae,
- 0xbe,0xa1,0x8d, 0xeb,0xd8,0xcd, 0xc2,0x9d,0x86, 0x95,0x5d,0x38,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x78,0x7a,0x77, 0x78,0x7a,0x77,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x78,0x7a,0x77, 0x78,0x7a,0x77, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x9f,0x82,0x6a,
- 0xc5,0x9e,0x81, 0xd1,0xb2,0x98, 0xd4,0xac,0x8e, 0xeb,0xd8,0xcd,
- 0xc4,0x9b,0x79, 0xad,0x71,0x45, 0xd4,0xac,0x8e, 0xb9,0x93,0x76,
- 0xa1,0x75,0x56, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x78,0x7a,0x77, 0x6d,0x6f,0x6c, 0xcb,0xce,0xca,
- 0x51,0x52,0x50, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x5b,0x5d,0x5a,
- 0xca,0xcc,0xc9, 0x77,0x79,0x76, 0x78,0x7a,0x77, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0xda,0xb4,0x9c, 0xd3,0xa3,0x83,
- 0xaf,0x91,0x78, 0xa7,0x83,0x6d, 0xc4,0xa7,0x93, 0xee,0xe2,0xd5,
- 0xeb,0xd8,0xcd, 0x8c,0x60,0x3d, 0x92,0x6f,0x59, 0xd0,0xa7,0x84,
- 0x84,0x54,0x33, 0xba,0x83,0x5b, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x78,0x7a,0x77, 0xa0,0xa2,0x9f, 0xdf,0xe1,0xde,
- 0x58,0x5a,0x58, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x64,0x65,0x63,
- 0xdd,0xdf,0xdc, 0xa8,0xaa,0xa7, 0x78,0x7a,0x77, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0xd4,0xb5,0x9b, 0xc3,0x8c,0x63, 0xc4,0x94,0x6e,
- 0x98,0x66,0x45, 0x78,0x50,0x2d, 0xd7,0xb9,0xa5, 0xee,0xdc,0xd1,
- 0xc4,0x9b,0x79, 0xb6,0x80,0x58, 0x65,0x45,0x26, 0xb6,0x79,0x4d,
- 0xcf,0xa5,0x83, 0x9a,0x6e,0x50, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x82,0x83,0x81, 0xbb,0xbd,0xba, 0xde,0xe0,0xdd,
- 0x58,0x5a,0x58, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x64,0x65,0x63,
- 0xdc,0xde,0xdb, 0xc4,0xc6,0xc3, 0x78,0x7a,0x77, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x9e,0x7b,0x65, 0xbc,0x8c,0x67, 0xaa,0x7d,0x5e, 0xa1,0x75,0x56,
- 0x89,0x5f,0x41, 0xc4,0xa7,0x93, 0xb7,0x88,0x63, 0x90,0x6c,0x51,
- 0x79,0x4b,0x2b, 0x8c,0x5b,0x34, 0x76,0x4e,0x31, 0x7f,0x50,0x30,
- 0xcf,0xa5,0x83, 0xd4,0xac,0x8e, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x77,0x79,0x76, 0xd2,0xd4,0xd1, 0xde,0xe0,0xdd,
- 0x64,0x65,0x63, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x68,0x69,0x67,
- 0xdb,0xdd,0xda, 0xda,0xdc,0xd9, 0x78,0x7a,0x77, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd8,0xb8,0x9e,
- 0xd4,0xac,0x8e, 0xc5,0x9e,0x81, 0xab,0x7e,0x5f, 0x9c,0x6f,0x4b,
- 0xbe,0xa1,0x8d, 0x8c,0x60,0x3d, 0x6e,0x47,0x2b, 0x87,0x5e,0x40,
- 0x5a,0x3b,0x23, 0x68,0x42,0x26, 0x65,0x40,0x23, 0x53,0x36,0x22,
- 0x7e,0x55,0x38, 0xce,0x9f,0x7e, 0xc3,0x8c,0x63, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x77,0x79,0x76, 0xe1,0xe4,0xe0, 0xe1,0xe4,0xe0,
- 0xc4,0xc6,0xc3, 0x83,0x85,0x82, 0x8c,0x8d,0x8a, 0xd2,0xd4,0xd1,
- 0xee,0xdc,0xd1, 0xe1,0xe4,0xe0, 0x78,0x7a,0x77, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xcb,0x9a,0x74,
- 0xb6,0x80,0x58, 0x8c,0x60,0x3d, 0x76,0x4e,0x31, 0x88,0x57,0x31,
- 0x83,0x53,0x33, 0x84,0x54,0x33, 0x95,0x5d,0x38, 0x79,0x4b,0x2b,
- 0x5c,0x38,0x22, 0x84,0x54,0x33, 0x55,0x37,0x1e, 0x96,0x6b,0x4d,
- 0xb4,0x7f,0x5c, 0xba,0x83,0x5b, 0xb8,0x7b,0x4f, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x9a,0x9b,0x98, 0xd9,0xdb,0xd7,
- 0xe1,0xe4,0xe0, 0xde,0xe0,0xdd, 0xdd,0xdf,0xdc, 0xe0,0xe2,0xdf,
- 0xda,0xdc,0xd9, 0xa3,0xa5,0xa1, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xc0,0x89,0x60,
- 0x89,0x5f,0x41, 0x84,0x54,0x33, 0x84,0x54,0x33, 0x8a,0x5a,0x39,
- 0x8f,0x5d,0x37, 0x78,0x50,0x2d, 0x8c,0x5b,0x34, 0x5a,0x3b,0x23,
- 0x5e,0x3f,0x27, 0x76,0x4e,0x31, 0x97,0x64,0x3d, 0x74,0x4b,0x29,
- 0x78,0x50,0x2d, 0x7b,0x4d,0x2c, 0xb6,0x80,0x58, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x64,0x65,0x63,
- 0xbe,0xc1,0xbd, 0xee,0xdc,0xd1, 0xe1,0xe4,0xe0, 0xc2,0xc4,0xc1,
- 0x68,0x69,0x67, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x95,0x62,0x3b,
- 0x84,0x54,0x33, 0x88,0x57,0x31, 0x7e,0x6e,0x64, 0xc4,0x94,0x6e,
- 0x76,0x4e,0x31, 0x90,0x6c,0x51, 0xa1,0x7c,0x60, 0x9a,0x6e,0x50,
- 0x95,0x5d,0x38, 0xbc,0x7f,0x53, 0xad,0x71,0x45, 0x76,0x4e,0x31,
- 0x53,0x36,0x22, 0x4b,0x2f,0x1c, 0x70,0x49,0x2c, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x51,0x52,0x50, 0xd2,0xd4,0xd1, 0xe0,0xe2,0xdf, 0x77,0x79,0x76,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x84,0x54,0x33,
- 0xa3,0x86,0x6e, 0xc4,0x94,0x6e, 0x88,0x64,0x44, 0xbc,0x8c,0x67,
- 0x9c,0x6f,0x4b, 0xa1,0x6d,0x45, 0x93,0x60,0x3a, 0xad,0x71,0x3f,
- 0xb4,0x7f,0x5c, 0xbc,0x8c,0x67, 0xc0,0x89,0x60, 0xb3,0x76,0x4b,
- 0xb8,0x7b,0x4f, 0x88,0x64,0x44, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x4a,0x4b,0x49, 0xdc,0xde,0xdb, 0xe1,0xe4,0xe0, 0x79,0x7b,0x78,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xa7,0x83,0x6d,
- 0xac,0x86,0x6a, 0x76,0x4e,0x31, 0x84,0x54,0x33, 0x5c,0x38,0x22,
- 0x57,0x38,0x20, 0x6c,0x46,0x29, 0x95,0x62,0x3b, 0xa3,0x6e,0x41,
- 0xb3,0x76,0x4b, 0xb8,0x7b,0x4f, 0x9d,0x64,0x3f, 0x7e,0x4f,0x2f,
- 0x63,0x3e,0x27, 0x95,0x62,0x3b, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x51,0x52,0x50, 0xdd,0xdf,0xdc, 0xe0,0xe2,0xdf, 0x82,0x83,0x81,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xb6,0x80,0x58,
- 0x98,0x74,0x59, 0x67,0x41,0x25, 0x4b,0x35,0x25, 0x81,0x52,0x31,
- 0x76,0x4e,0x31, 0x7b,0x4d,0x2c, 0x7e,0x4f,0x2f, 0x84,0x54,0x33,
- 0x8f,0x5d,0x37, 0x95,0x5d,0x38, 0x78,0x50,0x2d, 0x65,0x45,0x26,
- 0x65,0x40,0x23, 0x7e,0x4f,0x2f, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x55,0x56,0x54, 0xee,0xdc,0xd1, 0xde,0xe0,0xdd, 0x8c,0x8d,0x8a,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xb4,0x7f,0x5c,
- 0x86,0x56,0x35, 0x8c,0x60,0x3d, 0x89,0x5f,0x41, 0x63,0x44,0x2b,
- 0x57,0x38,0x20, 0x86,0x56,0x35, 0x88,0x57,0x31, 0x95,0x5d,0x38,
- 0x97,0x64,0x3d, 0x63,0x3e,0x27, 0x50,0x33,0x20, 0x78,0x50,0x2d,
- 0x78,0x50,0x2d, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x58,0x5a,0x58, 0xe0,0xe2,0xdf, 0xde,0xe0,0xdd, 0x8c,0x8d,0x8a,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x86,0x56,0x35, 0x63,0x3e,0x27, 0xa8,0x6d,0x42, 0x50,0x33,0x20,
- 0x63,0x3e,0x27, 0x74,0x4b,0x29, 0x53,0x36,0x22, 0x78,0x50,0x2d,
- 0x42,0x30,0x14, 0x4d,0x3e,0x15, 0x4d,0x3e,0x15, 0x7c,0x5b,0x29,
- 0x8a,0x71,0x27, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x64,0x65,0x63, 0xe1,0xe4,0xe0, 0xe1,0xe4,0xe0, 0x91,0x93,0x90,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x6e,0x47,0x2b, 0x65,0x45,0x26, 0x5d,0x42,0x22, 0x65,0x45,0x26,
- 0x78,0x50,0x2d, 0x5d,0x42,0x22, 0x5e,0x3f,0x27, 0x4d,0x3e,0x15,
- 0x4d,0x3e,0x15, 0x67,0x58,0x21, 0x4f,0x44,0x19, 0x5f,0x51,0x19,
- 0x8a,0x76,0x2a, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x68,0x69,0x67, 0xdf,0xe1,0xde, 0xe0,0xe2,0xdf, 0x9a,0x9b,0x98,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x8a,0x71,0x27, 0x53,0x46,0x15,
- 0x53,0x46,0x15, 0x67,0x58,0x21, 0x58,0x4c,0x1b, 0x5b,0x4f,0x1d,
- 0x5b,0x4f,0x1d, 0x67,0x58,0x21, 0x5b,0x4f,0x1d, 0x8a,0x71,0x27,
- 0x8c,0x77,0x24, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x70,0x72,0x6f, 0xe1,0xe4,0xe0, 0xe1,0xe4,0xe0, 0x9a,0x9b,0x98,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0xac,0x93,0x39, 0x7e,0x66,0x23,
- 0x69,0x5a,0x1b, 0x6b,0x5b,0x1d, 0x67,0x58,0x21, 0x53,0x46,0x15,
- 0x4d,0x3e,0x15, 0x9f,0x88,0x35, 0xb7,0x9c,0x3b, 0xac,0x93,0x39,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x77,0x79,0x76, 0xdf,0xe1,0xde, 0xe0,0xe2,0xdf, 0xa3,0xa5,0xa1,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0xb1,0x97,0x36, 0x6f,0x5f,0x21,
- 0x7e,0x66,0x23, 0x8c,0x77,0x24, 0x84,0x70,0x24, 0x78,0x67,0x22,
- 0x8e,0x79,0x26, 0x8a,0x71,0x27, 0xb7,0x9c,0x3b, 0x9b,0x84,0x29,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x82,0x83,0x81, 0xe1,0xe4,0xe0, 0xe1,0xe4,0xe0, 0xa8,0xaa,0xa7,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0xac,0x93,0x39, 0x89,0x75,0x29,
- 0x7e,0x66,0x23, 0x75,0x64,0x1f, 0x94,0x7e,0x2b, 0x7e,0x66,0x23,
- 0x9f,0x88,0x35, 0xb6,0x9d,0x4a, 0xb6,0x9d,0x4a, 0xc4,0xa8,0x3f,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x82,0x83,0x81, 0xe0,0xe2,0xdf, 0xde,0xe0,0xdd, 0xab,0xad,0xaa,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x80,0x6d,0x28,
- 0xac,0x93,0x39, 0x97,0x82,0x36, 0xac,0x94,0x41, 0xac,0x93,0x39,
- 0x97,0x82,0x36, 0xa2,0x8a,0x30, 0xbd,0xa3,0x48, 0x8a,0x71,0x27,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x77,0x79,0x76, 0xe0,0xe2,0xdf, 0xd8,0xda,0xd6, 0xab,0xad,0xaa,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xae,0x95,0x33,
- 0x7e,0x66,0x23, 0x9f,0x88,0x35, 0x9f,0x88,0x35, 0x7e,0x66,0x23,
- 0x8a,0x71,0x27, 0xaf,0x96,0x3c, 0xbd,0xa2,0x41, 0x8a,0x76,0x2a,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x68,0x69,0x67,
- 0xc2,0xc4,0xc1, 0xe0,0xe2,0xdf, 0xdf,0xe1,0xde, 0xbe,0xc1,0xbd,
- 0x5f,0x61,0x5e, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xaf,0x96,0x3c,
- 0x87,0x73,0x27, 0xb2,0x99,0x3f, 0x6f,0x5f,0x21, 0xa8,0x90,0x36,
- 0x97,0x82,0x36, 0x9f,0x88,0x35, 0xb7,0x9c,0x3b, 0x8c,0x77,0x24,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0xa3,0xa5,0xa1, 0xeb,0xd8,0xcd,
- 0xe0,0xe2,0xdf, 0xee,0xdc,0xd1, 0xdf,0xe1,0xde, 0xe1,0xe4,0xe0,
- 0xda,0xdc,0xd9, 0x9a,0x9b,0x98, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xb2,0x99,0x3f,
- 0xaf,0x96,0x3c, 0x96,0x80,0x2d, 0xbd,0xa3,0x48, 0x97,0x82,0x36,
- 0xb6,0x9d,0x4a, 0xb8,0xa0,0x4c, 0xc1,0xa7,0x4c, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x78,0x7a,0x77, 0xdf,0xe1,0xde, 0xe0,0xe2,0xdf,
- 0xd2,0xd4,0xd1, 0x8c,0x8d,0x8a, 0x82,0x83,0x81, 0xc7,0xc9,0xc6,
- 0xe1,0xe4,0xe0, 0xe1,0xe4,0xe0, 0x78,0x7a,0x77, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x96,0x80,0x2d, 0xb5,0x9c,0x49, 0xb2,0x99,0x3f, 0xb2,0x9a,0x47,
- 0xb0,0x97,0x3d, 0xc1,0xa7,0x4c, 0x96,0x80,0x2d, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x78,0x7a,0x77, 0xd9,0xdb,0xd7, 0xda,0xdc,0xd9,
- 0x68,0x69,0x67, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x64,0x65,0x63,
- 0xdd,0xdf,0xdc, 0xd2,0xd4,0xd1, 0x78,0x7a,0x77, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x9c,0x85,0x2b, 0xaa,0x91,0x2f, 0xb1,0x97,0x36, 0xa2,0x8a,0x30,
- 0x7e,0x66,0x23, 0xb1,0x97,0x36, 0xb4,0x99,0x30, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x79,0x7b,0x78, 0xc4,0xc6,0xc3, 0xd9,0xdb,0xd7,
- 0x64,0x65,0x63, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x55,0x56,0x54,
- 0xdf,0xe1,0xde, 0xbb,0xbd,0xba, 0x78,0x7a,0x77, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x9f,0x88,0x35, 0xb8,0x9e,0x44, 0x8a,0x71,0x27, 0xa6,0x8f,0x3c,
- 0xbd,0xa3,0x48, 0x96,0x80,0x2d, 0x9f,0x88,0x35, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x82,0x83,0x81, 0xa8,0xaa,0xa7, 0xdf,0xe1,0xde,
- 0x64,0x65,0x63, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x58,0x5a,0x58,
- 0xee,0xdc,0xd1, 0xa0,0xa2,0x9f, 0x78,0x7a,0x77, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0xb0,0x97,0x3d, 0xb7,0x9c,0x3b, 0xac,0x94,0x41, 0xb2,0x99,0x3f,
- 0xb6,0x9b,0x32, 0xb7,0x9c,0x3b, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x77,0x79,0x76, 0x77,0x79,0x76, 0xca,0xcc,0xc9,
- 0x5b,0x5d,0x5a, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x51,0x52,0x50,
- 0xcb,0xce,0xca, 0x68,0x69,0x67, 0x79,0x7b,0x78, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0xbd,0xa2,0x41, 0xa6,0x8f,0x3c, 0xb0,0x97,0x3d, 0xb2,0x9a,0x47,
- 0xac,0x93,0x39, 0x9f,0x88,0x35, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x77,0x79,0x76, 0x78,0x7a,0x77,
- 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x82,0x83,0x81, 0x79,0x7b,0x78, 0x00,0x00,0x00, 0x00,0x00,0x00,
-
-};
diff --git a/setup/sound.c b/setup/sound.c
deleted file mode 100644
index 7386e789..00000000
--- a/setup/sound.c
+++ /dev/null
@@ -1,178 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-// Sound control menu
-
-#include <stdlib.h>
-
-#include "textscreen.h"
-
-#include "sound.h"
-
-typedef enum
-{
- SFXMODE_DISABLED,
- SFXMODE_PCSPEAKER,
- SFXMODE_DIGITAL,
- NUM_SFXMODES
-} sfxmode_t;
-
-typedef enum
-{
- MUSMODE_DISABLED,
- MUSMODE_OPL,
- MUSMODE_NATIVE,
- NUM_MUSMODES
-} musmode_t;
-
-static char *sfxmode_strings[] =
-{
- "Disabled",
- "PC speaker",
- "Digital",
-};
-
-static char *musmode_strings[] =
-{
- "Disabled",
- "OPL (Adlib/SB)",
- "Native MIDI"
-};
-
-int snd_sfxdevice = SNDDEVICE_SB;
-int numChannels = 8;
-int sfxVolume = 8;
-
-int snd_musicdevice = SNDDEVICE_GENMIDI;
-int musicVolume = 8;
-
-int snd_samplerate = 44100;
-int opl_io_port = 0x388;
-
-int use_libsamplerate = 0;
-
-static int snd_sfxmode;
-static int snd_musmode;
-
-static void UpdateSndDevices(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(data))
-{
- switch (snd_sfxmode)
- {
- case SFXMODE_DISABLED:
- snd_sfxdevice = SNDDEVICE_NONE;
- break;
- case SFXMODE_PCSPEAKER:
- snd_sfxdevice = SNDDEVICE_PCSPEAKER;
- break;
- case SFXMODE_DIGITAL:
- snd_sfxdevice = SNDDEVICE_SB;
- break;
- }
-
- switch (snd_musmode)
- {
- case MUSMODE_DISABLED:
- snd_musicdevice = SNDDEVICE_NONE;
- break;
- case MUSMODE_OPL:
- snd_musicdevice = SNDDEVICE_SB;
- break;
- case MUSMODE_NATIVE:
- snd_musicdevice = SNDDEVICE_GENMIDI;
- break;
- }
-}
-
-void ConfigSound(void)
-{
- txt_window_t *window;
- txt_table_t *sfx_table;
- txt_table_t *music_table;
- txt_dropdown_list_t *sfx_mode_control;
- txt_dropdown_list_t *mus_mode_control;
-
- if (snd_sfxdevice == SNDDEVICE_PCSPEAKER)
- {
- snd_sfxmode = SFXMODE_PCSPEAKER;
- }
- else if (snd_sfxdevice >= SNDDEVICE_SB)
- {
- snd_sfxmode = SFXMODE_DIGITAL;
- }
- else
- {
- snd_sfxmode = SFXMODE_DISABLED;
- }
-
- if (snd_musicdevice == SNDDEVICE_GENMIDI)
- {
- snd_musmode = MUSMODE_NATIVE;
- }
- else if (snd_musicdevice == SNDDEVICE_SB
- || snd_musicdevice == SNDDEVICE_ADLIB
- || snd_musicdevice == SNDDEVICE_AWE32)
- {
- snd_musmode = MUSMODE_OPL;
- }
- else
- {
- snd_musmode = MUSMODE_DISABLED;
- }
-
- window = TXT_NewWindow("Sound configuration");
-
- TXT_AddWidgets(window,
- TXT_NewSeparator("Sound effects"),
- sfx_table = TXT_NewTable(2),
- TXT_NewSeparator("Music"),
- music_table = TXT_NewTable(2),
- NULL);
-
- TXT_SetColumnWidths(sfx_table, 20, 14);
-
- TXT_AddWidgets(sfx_table,
- TXT_NewLabel("Sound effects"),
- sfx_mode_control = TXT_NewDropdownList(&snd_sfxmode,
- sfxmode_strings,
- NUM_SFXMODES),
- TXT_NewLabel("Sound channels"),
- TXT_NewSpinControl(&numChannels, 1, 8),
- TXT_NewLabel("SFX volume"),
- TXT_NewSpinControl(&sfxVolume, 0, 15),
- NULL);
-
- TXT_SetColumnWidths(music_table, 20, 14);
-
- TXT_AddWidgets(music_table,
- TXT_NewLabel("Music playback"),
- mus_mode_control = TXT_NewDropdownList(&snd_musmode,
- musmode_strings,
- NUM_MUSMODES),
- TXT_NewLabel("Music volume"),
- TXT_NewSpinControl(&musicVolume, 0, 15),
- NULL);
-
- TXT_SignalConnect(sfx_mode_control, "changed",
- UpdateSndDevices, NULL);
- TXT_SignalConnect(mus_mode_control, "changed",
- UpdateSndDevices, NULL);
-}
-
diff --git a/setup/sound.h b/setup/sound.h
deleted file mode 100644
index eb386d6f..00000000
--- a/setup/sound.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef SETUP_SOUND_H
-#define SETUP_SOUND_H
-
-enum
-{
- SNDDEVICE_NONE = 0,
- SNDDEVICE_PCSPEAKER = 1,
- SNDDEVICE_ADLIB = 2,
- SNDDEVICE_SB = 3,
- SNDDEVICE_PAS = 4,
- SNDDEVICE_GUS = 5,
- SNDDEVICE_WAVEBLASTER = 6,
- SNDDEVICE_SOUNDCANVAS = 7,
- SNDDEVICE_GENMIDI = 8,
- SNDDEVICE_AWE32 = 9,
-};
-
-extern int snd_sfxdevice;
-extern int numChannels;
-extern int sfxVolume;
-
-extern int snd_musicdevice;
-extern int musicVolume;
-
-extern int snd_samplerate;
-extern int opl_io_port;
-
-extern int use_libsamplerate;
-
-void ConfigSound(void);
-
-#endif /* #ifndef SETUP_SOUND_H */
-
diff --git a/setup/txt_joybinput.c b/setup/txt_joybinput.c
deleted file mode 100644
index 9ad26a45..00000000
--- a/setup/txt_joybinput.c
+++ /dev/null
@@ -1,230 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "SDL_joystick.h"
-
-#include "doomkeys.h"
-#include "joystick.h"
-
-#include "txt_joybinput.h"
-#include "txt_gui.h"
-#include "txt_io.h"
-#include "txt_label.h"
-#include "txt_sdl.h"
-#include "txt_window.h"
-
-#define JOYSTICK_INPUT_WIDTH 10
-
-// Called in response to SDL events when the prompt window is open:
-
-static int EventCallback(SDL_Event *event, TXT_UNCAST_ARG(joystick_input))
-{
- TXT_CAST_ARG(txt_joystick_input_t, joystick_input);
-
- // Got the joystick button press?
-
- if (event->type == SDL_JOYBUTTONDOWN)
- {
- *joystick_input->variable = event->jbutton.button;
-
- if (joystick_input->check_conflicts)
- {
- TXT_EmitSignal(joystick_input, "set");
- }
-
- TXT_CloseWindow(joystick_input->prompt_window);
- return 1;
- }
-
- return 0;
-}
-
-// When the prompt window is closed, disable the event callback function;
-// we are no longer interested in receiving notification of events.
-
-static void PromptWindowClosed(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(joystick))
-{
- TXT_CAST_ARG(SDL_Joystick, joystick);
-
- SDL_JoystickClose(joystick);
- TXT_SDL_SetEventCallback(NULL, NULL);
- SDL_JoystickEventState(SDL_DISABLE);
- SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
-}
-
-static void OpenErrorWindow(void)
-{
- txt_window_t *window;
-
- window = TXT_NewWindow(NULL);
-
- TXT_AddWidget(window, TXT_NewLabel("Please configure a joystick first!"));
-
- TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL);
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER,
- TXT_NewWindowEscapeAction(window));
- TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL);
-}
-
-static void OpenPromptWindow(txt_joystick_input_t *joystick_input)
-{
- txt_window_t *window;
- txt_label_t *label;
- SDL_Joystick *joystick;
-
- // Silently update when the shift button is held down.
-
- joystick_input->check_conflicts = !TXT_GetModifierState(TXT_MOD_SHIFT);
-
- if (SDL_Init(SDL_INIT_JOYSTICK) < 0)
- {
- return;
- }
-
- // Check the current joystick is valid
-
- joystick = SDL_JoystickOpen(joystick_index);
-
- if (joystick == NULL)
- {
- OpenErrorWindow();
- return;
- }
-
- // Open the prompt window
-
- window = TXT_NewWindow(NULL);
- TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL);
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER,
- TXT_NewWindowAbortAction(window));
- TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL);
-
- label = TXT_NewLabel("Press the new joystick button...");
-
- TXT_AddWidget(window, label);
- TXT_SetWidgetAlign(label, TXT_HORIZ_CENTER);
- TXT_SDL_SetEventCallback(EventCallback, joystick_input);
- TXT_SignalConnect(window, "closed", PromptWindowClosed, joystick);
- joystick_input->prompt_window = window;
-
- SDL_JoystickEventState(SDL_ENABLE);
-}
-
-static void TXT_JoystickInputSizeCalc(TXT_UNCAST_ARG(joystick_input))
-{
- TXT_CAST_ARG(txt_joystick_input_t, joystick_input);
-
- // All joystickinputs are the same size.
-
- joystick_input->widget.w = JOYSTICK_INPUT_WIDTH;
- joystick_input->widget.h = 1;
-}
-
-static void GetJoystickButtonDescription(int button, char *buf)
-{
- sprintf(buf, "BUTTON #%i", button + 1);
-}
-
-static void TXT_JoystickInputDrawer(TXT_UNCAST_ARG(joystick_input), int selected)
-{
- TXT_CAST_ARG(txt_joystick_input_t, joystick_input);
- char buf[20];
- int i;
-
- if (*joystick_input->variable < 0)
- {
- strcpy(buf, "(none)");
- }
- else
- {
- GetJoystickButtonDescription(*joystick_input->variable, buf);
- }
-
- TXT_SetWidgetBG(joystick_input, selected);
- TXT_FGColor(TXT_COLOR_BRIGHT_WHITE);
-
- TXT_DrawString(buf);
-
- for (i=strlen(buf); i<JOYSTICK_INPUT_WIDTH; ++i)
- {
- TXT_DrawString(" ");
- }
-}
-
-static void TXT_JoystickInputDestructor(TXT_UNCAST_ARG(joystick_input))
-{
-}
-
-static int TXT_JoystickInputKeyPress(TXT_UNCAST_ARG(joystick_input), int joystick)
-{
- TXT_CAST_ARG(txt_joystick_input_t, joystick_input);
-
- if (joystick == KEY_ENTER)
- {
- // Open a window to prompt for the new joystick press
-
- OpenPromptWindow(joystick_input);
-
- return 1;
- }
-
- return 0;
-}
-
-static void TXT_JoystickInputMousePress(TXT_UNCAST_ARG(widget), int x, int y, int b)
-{
- TXT_CAST_ARG(txt_joystick_input_t, widget);
-
- // Clicking is like pressing enter
-
- if (b == TXT_MOUSE_LEFT)
- {
- TXT_JoystickInputKeyPress(widget, KEY_ENTER);
- }
-}
-
-txt_widget_class_t txt_joystick_input_class =
-{
- TXT_AlwaysSelectable,
- TXT_JoystickInputSizeCalc,
- TXT_JoystickInputDrawer,
- TXT_JoystickInputKeyPress,
- TXT_JoystickInputDestructor,
- TXT_JoystickInputMousePress,
- NULL,
-};
-
-txt_joystick_input_t *TXT_NewJoystickInput(int *variable)
-{
- txt_joystick_input_t *joystick_input;
-
- joystick_input = malloc(sizeof(txt_joystick_input_t));
-
- TXT_InitWidget(joystick_input, &txt_joystick_input_class);
- joystick_input->variable = variable;
-
- return joystick_input;
-}
-
diff --git a/setup/txt_joybinput.h b/setup/txt_joybinput.h
deleted file mode 100644
index 69ec4a1f..00000000
--- a/setup/txt_joybinput.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2007 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef TXT_JOYB_INPUT_H
-#define TXT_JOYB_INPUT_H
-
-typedef struct txt_joystick_input_s txt_joystick_input_t;
-
-#include "txt_widget.h"
-#include "txt_window.h"
-
-//
-// A joystick input is like an input box. When selected, a box pops up
-// allowing a joystick button to be pressed to select it.
-//
-
-struct txt_joystick_input_s
-{
- txt_widget_t widget;
- int *variable;
- txt_window_t *prompt_window;
- int check_conflicts;
-};
-
-txt_joystick_input_t *TXT_NewJoystickInput(int *variable);
-
-#endif /* #ifndef TXT_JOYB_INPUT_H */
-
-
diff --git a/setup/txt_keyinput.c b/setup/txt_keyinput.c
deleted file mode 100644
index 6f1ee4dd..00000000
--- a/setup/txt_keyinput.c
+++ /dev/null
@@ -1,195 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "doomkeys.h"
-
-#include "txt_keyinput.h"
-#include "txt_gui.h"
-#include "txt_io.h"
-#include "txt_label.h"
-#include "txt_window.h"
-
-#define KEY_INPUT_WIDTH 8
-
-static int KeyPressCallback(txt_window_t *window, int key,
- TXT_UNCAST_ARG(key_input))
-{
- TXT_CAST_ARG(txt_key_input_t, key_input);
-
- if (key != KEY_ESCAPE)
- {
- // Got the key press. Save to the variable and close the window.
-
- *key_input->variable = key;
-
- if (key_input->check_conflicts)
- {
- TXT_EmitSignal(key_input, "set");
- }
-
- TXT_CloseWindow(window);
-
- // Re-enable key mappings now that we have the key
-
- TXT_EnableKeyMapping(1);
-
- return 1;
- }
- else
- {
- return 0;
- }
-}
-
-static void ReleaseGrab(TXT_UNCAST_ARG(window), TXT_UNCAST_ARG(unused))
-{
- SDL_WM_GrabInput(SDL_GRAB_OFF);
-}
-
-static void OpenPromptWindow(txt_key_input_t *key_input)
-{
- txt_window_t *window;
- txt_label_t *label;
-
- // Silently update when the shift button is held down.
-
- key_input->check_conflicts = !TXT_GetModifierState(TXT_MOD_SHIFT);
-
- window = TXT_NewWindow(NULL);
- TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL);
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER,
- TXT_NewWindowAbortAction(window));
- TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL);
-
- label = TXT_NewLabel("Press the new key...");
-
- TXT_AddWidget(window, label);
- TXT_SetWidgetAlign(label, TXT_HORIZ_CENTER);
-
- TXT_SetKeyListener(window, KeyPressCallback, key_input);
-
- // Disable key mappings while we prompt for the key press
-
- TXT_EnableKeyMapping(0);
-
- // Grab input while reading the key. On Windows Mobile
- // handheld devices, the hardware keypresses are only
- // detected when input is grabbed.
-
- SDL_WM_GrabInput(SDL_GRAB_ON);
- TXT_SignalConnect(window, "closed", ReleaseGrab, NULL);
-}
-
-static void TXT_KeyInputSizeCalc(TXT_UNCAST_ARG(key_input))
-{
- TXT_CAST_ARG(txt_key_input_t, key_input);
-
- // All keyinputs are the same size.
-
- key_input->widget.w = KEY_INPUT_WIDTH;
- key_input->widget.h = 1;
-}
-
-
-static void TXT_KeyInputDrawer(TXT_UNCAST_ARG(key_input), int selected)
-{
- TXT_CAST_ARG(txt_key_input_t, key_input);
- char buf[20];
- int i;
-
- if (*key_input->variable == 0)
- {
- strcpy(buf, "(none)");
- }
- else
- {
- TXT_GetKeyDescription(*key_input->variable, buf);
- }
-
- TXT_SetWidgetBG(key_input, selected);
- TXT_FGColor(TXT_COLOR_BRIGHT_WHITE);
-
- TXT_DrawString(buf);
-
- for (i=strlen(buf); i<KEY_INPUT_WIDTH; ++i)
- {
- TXT_DrawString(" ");
- }
-}
-
-static void TXT_KeyInputDestructor(TXT_UNCAST_ARG(key_input))
-{
-}
-
-static int TXT_KeyInputKeyPress(TXT_UNCAST_ARG(key_input), int key)
-{
- TXT_CAST_ARG(txt_key_input_t, key_input);
-
- if (key == KEY_ENTER)
- {
- // Open a window to prompt for the new key press
-
- OpenPromptWindow(key_input);
-
- return 1;
- }
-
- return 0;
-}
-
-static void TXT_KeyInputMousePress(TXT_UNCAST_ARG(widget), int x, int y, int b)
-{
- TXT_CAST_ARG(txt_key_input_t, widget);
-
- // Clicking is like pressing enter
-
- if (b == TXT_MOUSE_LEFT)
- {
- TXT_KeyInputKeyPress(widget, KEY_ENTER);
- }
-}
-
-txt_widget_class_t txt_key_input_class =
-{
- TXT_AlwaysSelectable,
- TXT_KeyInputSizeCalc,
- TXT_KeyInputDrawer,
- TXT_KeyInputKeyPress,
- TXT_KeyInputDestructor,
- TXT_KeyInputMousePress,
- NULL,
-};
-
-txt_key_input_t *TXT_NewKeyInput(int *variable)
-{
- txt_key_input_t *key_input;
-
- key_input = malloc(sizeof(txt_key_input_t));
-
- TXT_InitWidget(key_input, &txt_key_input_class);
- key_input->variable = variable;
-
- return key_input;
-}
-
diff --git a/setup/txt_keyinput.h b/setup/txt_keyinput.h
deleted file mode 100644
index 5df0b2e3..00000000
--- a/setup/txt_keyinput.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef TXT_KEY_INPUT_H
-#define TXT_KEY_INPUT_H
-
-typedef struct txt_key_input_s txt_key_input_t;
-
-#include "txt_widget.h"
-
-//
-// A key input is like an input box. When selected, a box pops up
-// allowing a key to be selected.
-//
-
-struct txt_key_input_s
-{
- txt_widget_t widget;
- int *variable;
- int check_conflicts;
-};
-
-txt_key_input_t *TXT_NewKeyInput(int *variable);
-
-#endif /* #ifndef TXT_KEY_INPUT_H */
-
-
diff --git a/setup/txt_mouseinput.c b/setup/txt_mouseinput.c
deleted file mode 100644
index c3e17299..00000000
--- a/setup/txt_mouseinput.c
+++ /dev/null
@@ -1,187 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "doomkeys.h"
-
-#include "txt_mouseinput.h"
-#include "txt_gui.h"
-#include "txt_io.h"
-#include "txt_label.h"
-#include "txt_window.h"
-
-#define MOUSE_INPUT_WIDTH 8
-
-static int MousePressCallback(txt_window_t *window,
- int x, int y, int b,
- TXT_UNCAST_ARG(mouse_input))
-{
- TXT_CAST_ARG(txt_mouse_input_t, mouse_input);
-
- // Got the mouse press. Save to the variable and close the window.
-
- *mouse_input->variable = b - TXT_MOUSE_BASE;
-
- if (mouse_input->check_conflicts)
- {
- TXT_EmitSignal(mouse_input, "set");
- }
-
- TXT_CloseWindow(window);
-
- return 1;
-}
-
-static void OpenPromptWindow(txt_mouse_input_t *mouse_input)
-{
- txt_window_t *window;
- txt_label_t *label;
-
- // Silently update when the shift key is held down.
- mouse_input->check_conflicts = !TXT_GetModifierState(TXT_MOD_SHIFT);
-
- window = TXT_NewWindow(NULL);
- TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL);
- TXT_SetWindowAction(window, TXT_HORIZ_CENTER,
- TXT_NewWindowAbortAction(window));
- TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL);
-
- label = TXT_NewLabel("Press the new mouse button...");
-
- TXT_AddWidget(window, label);
- TXT_SetWidgetAlign(label, TXT_HORIZ_CENTER);
-
- TXT_SetMouseListener(window, MousePressCallback, mouse_input);
-}
-
-static void TXT_MouseInputSizeCalc(TXT_UNCAST_ARG(mouse_input))
-{
- TXT_CAST_ARG(txt_mouse_input_t, mouse_input);
-
- // All mouseinputs are the same size.
-
- mouse_input->widget.w = MOUSE_INPUT_WIDTH;
- mouse_input->widget.h = 1;
-}
-
-static void GetMouseButtonDescription(int button, char *buf)
-{
- switch (button)
- {
- case 0:
- strcpy(buf, "LEFT");
- break;
- case 1:
- strcpy(buf, "RIGHT");
- break;
- case 2:
- strcpy(buf, "MID");
- break;
- default:
- sprintf(buf, "BUTTON #%i", button + 1);
- break;
- }
-}
-
-static void TXT_MouseInputDrawer(TXT_UNCAST_ARG(mouse_input), int selected)
-{
- TXT_CAST_ARG(txt_mouse_input_t, mouse_input);
- char buf[20];
- int i;
-
- if (*mouse_input->variable < 0)
- {
- strcpy(buf, "(none)");
- }
- else
- {
- GetMouseButtonDescription(*mouse_input->variable, buf);
- }
-
- TXT_SetWidgetBG(mouse_input, selected);
- TXT_FGColor(TXT_COLOR_BRIGHT_WHITE);
-
- TXT_DrawString(buf);
-
- for (i=strlen(buf); i<MOUSE_INPUT_WIDTH; ++i)
- {
- TXT_DrawString(" ");
- }
-}
-
-static void TXT_MouseInputDestructor(TXT_UNCAST_ARG(mouse_input))
-{
-}
-
-static int TXT_MouseInputKeyPress(TXT_UNCAST_ARG(mouse_input), int mouse)
-{
- TXT_CAST_ARG(txt_mouse_input_t, mouse_input);
-
- if (mouse == KEY_ENTER)
- {
- // Open a window to prompt for the new mouse press
-
- OpenPromptWindow(mouse_input);
-
- return 1;
- }
-
- return 0;
-}
-
-static void TXT_MouseInputMousePress(TXT_UNCAST_ARG(widget), int x, int y, int b)
-{
- TXT_CAST_ARG(txt_mouse_input_t, widget);
-
- // Clicking is like pressing enter
-
- if (b == TXT_MOUSE_LEFT)
- {
- TXT_MouseInputKeyPress(widget, KEY_ENTER);
- }
-}
-
-txt_widget_class_t txt_mouse_input_class =
-{
- TXT_AlwaysSelectable,
- TXT_MouseInputSizeCalc,
- TXT_MouseInputDrawer,
- TXT_MouseInputKeyPress,
- TXT_MouseInputDestructor,
- TXT_MouseInputMousePress,
- NULL,
-};
-
-txt_mouse_input_t *TXT_NewMouseInput(int *variable)
-{
- txt_mouse_input_t *mouse_input;
-
- mouse_input = malloc(sizeof(txt_mouse_input_t));
-
- TXT_InitWidget(mouse_input, &txt_mouse_input_class);
- mouse_input->variable = variable;
-
- return mouse_input;
-}
-
diff --git a/setup/txt_mouseinput.h b/setup/txt_mouseinput.h
deleted file mode 100644
index ef3ec2aa..00000000
--- a/setup/txt_mouseinput.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 2006 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-
-#ifndef TXT_MOUSE_INPUT_H
-#define TXT_MOUSE_INPUT_H
-
-typedef struct txt_mouse_input_s txt_mouse_input_t;
-
-#include "txt_widget.h"
-
-//
-// A mouse input is like an input box. When selected, a box pops up
-// allowing a mouse to be selected.
-//
-
-struct txt_mouse_input_s
-{
- txt_widget_t widget;
- int *variable;
- int check_conflicts;
-};
-
-txt_mouse_input_t *TXT_NewMouseInput(int *variable);
-
-#endif /* #ifndef TXT_MOUSE_INPUT_H */
-
-