summaryrefslogtreecommitdiff
path: root/src/setup
AgeCommit message (Collapse)Author
2014-04-30joystick: Add virtual-physical button mapping.Simon Howard
The solution to solving #386 is to add a layer of indirection: the game code can only support up to ~20 joystick buttons, but this doesn't matter as long as we never want to bind more than 20 buttons to actions anyway. Redefine the game's notion of buttons to be based on "virtual" joystick buttons, and map these buttons to physical (SDL) buttons based on configuration file variables.
2014-04-29setup: Detect and ignore bad joystick axes.Simon Howard
In some cases a joystick axis can be "stuck" and have a large uncentered value. These must be detected and ignored, otherwise the axis can be chosen during calibration instead of the user's actual desired axis.
2014-04-29setup: Allow backspace or del to clear controls.Simon Howard
Backspace or delete clears other input boxes; make it do the same for keyboard, mouse and joystick inputs.
2014-04-28setup: Detect and configure hat-based D-pads.Simon Howard
As a second fallback, if all joysticks are centered and no buttons are pressed, look at the hats on the joystick to see if one of those is uncentered. Bizarre as it seems, some gamepads actually present the D-pad as a hat.
2014-04-28setup: Add support for button axis calibration.Simon Howard
Detect when we need to configure a "button axis" by falling back to buttons when none of the joystick axes are significantly outside of the centered range. Add extra calibration stages to get the D-pad buttons for right and down in these cases.
2014-04-19setup: Make iwad_t pointers const.Simon Howard
The table of IWAD data is stored in const memory, so make all iwad_t pointers const to fix compiler warnings.
2014-04-19setup: Change labelling to clarify gamepad support.Simon Howard
Vanilla Doom's setup.exe only made reference to "joysticks" as back then gamepads were relatively uncommon for PCs and ports for game controllers canonically known as "joystick ports". Nowadays it's far more likely (and ergonomic) that the player will be using a gamepad than a joystick. Change the labelling to refer to "Gamepad/Joystick" or "controller" instead.
2014-04-19joystick: Add joystick button to toggle menu.Simon Howard
When using a joystick or gamepad it's nice to be able to bring up the menu without having to reach for the keyboard. This makes modern gamepads more useful/usable.
2014-04-19joystick: Add an axis to allow strafing.Simon Howard
Modern gamepads typically have 2-3 D-pads and joysticks. This means that it's desirable to be able to use one joystick for turning and another for strafing. Add another axis in addition to the current X and y axes that performs strafe movement.
2014-04-13setup: Call TXT_Shutdown on exit.Simon Howard
Some systems (fbcon SDL driver) get messed up if not cleanly shut down. Make sure that we call SDL_QuitSubsystem on shutdown.
2014-04-12video: Change default for screen_bpp to 0.Simon Howard
Some machines don't work well with 8-bit screen depths any more. It's better to default to just using the machine's native color depth instead. Change the default to 0 (for SDL_SetVideoMode this means "use native color depth"), auto-adjust to native color depth on startup if screen_bpp=0 (so that debug messages at least make sense) and document for the config file value that a value of zero means "use native".
2014-04-10setup: Save selected game when browsing menus.Simon Howard
Once a game type (IWAD) has been selected, remember that selection rather than resetting to the first item in the list when the window is closed and reopened. This fixes #169 (thanks Alexandre Xavier).
2014-04-09setup: Show error when server address not entered.Simon Howard
Don't launch the game if a server address has not been entered; show a message to the user instead. This fixes #121.
2014-04-05setup: Add missing argument to M_StringJoin.Simon Howard
Last argument to M_StringJoin needs to be NULL.
2014-04-05setup: Adjust positioning of sound dialog.Simon Howard
When configuring Chocolate Strife the sound dialog can become quite tall, and the dialog is visibly uncentered vertically. Move it up slightly to counterbalance it.
2014-04-01textscreen: Use safe string functions.Simon Howard
Define TXT_{StringCopy,StringConcat,snprintf,vsnprintf} as analogs of the m_misc.c versions so that the textscreen library does not need a dependency on the Doom code, and change all textscreen code to use these instead of unsafe functions. This fixes #372.
2014-04-01setup: Eliminate use of sprintf().Simon Howard
Use M_snprintf() or M_StringJoin() instead where appropriate. This fixes #371.
2014-04-01Replace all snprintf() calls with M_snprintf().Simon Howard
The Windows API has an _snprintf function that is not the same as Unix's snprintf(): if the string is truncated then no trailing NUL character is appended. This makes the function unsafe. Define a replacement/wrapper called M_snprintf that works the same but always appends a trailing NUL, for safety on Windows and other OSes that behave like this. Do the same thing for vsnprintf(), and update HACKING to list snprintf/vsnprintf as forbidden functions. This fixes #375; thanks to Quasar for pointing out the different behavior of these functions.
2014-03-29setup: Eliminate use of unsafe string functions.Simon Howard
Eliminate use of strcpy, strcat, strncpy, and use the new safe alternatives.
2014-03-29misc: Add string utility functions.Simon Howard
It's more readable to write "M_StringEndsWith(..." than doing a bunch of pointer arithmetic, and this is a common pattern. Also add M_StringStartsWith, M_StringJoin and M_StringCopy. The latter is a safe alternative for strcpy() that works the same as OpenBSD's strlcpy(). Use these functions in a few places where it makes sense.
2014-03-27setup: Make default sound volumes match Vanilla.Simon Howard
Doom, Heretic, Hexen and Strife have different default SFX and music volumes. Make sure the setup tool sets the appropriate default when creating a new configuration file. Thanks to Alexandre-Xavier for reporting this and providing the correct defaults. This fixes #347.
2014-03-23setup: Add missing snd_maxslicetime_ms variable.Simon Howard
Preserve the snd_maxslicetime_ms variable when loading/saving configs in the setup tool.
2014-03-23music: Add config var for external music program.Simon Howard
Mix_SetMusicCMD() allows a program to be specified to configure an external program to be invoked for music playback. Add a config variable (snd_musiccmd) to allow this to be set from a configuration file. Thanks to Holering for his comments on Doomworld about how to do this.
2014-03-18Add a dedicated key for taking screenshots.Fabian Greffrath
2014-03-17Add PNG screenshots to advanced video options menu.Fabian Greffrath
2014-03-17Allow for PNG screenshots.Fabian Greffrath
2014-03-16hexen: Increase maximum level number to MAP60.Simon Howard
Hexen: Deathkings of the Dark Citadel uses levels up to MAP60, not MAP40 as used in hexen.wad. Bump up the limit for Hexen to MAP60 so that it is possible to play multiplayer games with hexdd.wad loaded. Thanks to Rhiyo for the bug report. This fixes #312.
2014-03-13Allow to rebind artifact keys in Hexen.Fabian Greffrath
2013-12-23setup: Add key_mission to the controls group.svdijk
Otherwise, the same key can be bound to "Show mission" and one of the other "More controls..." at the same time.
2013-12-04Fix 'make clean' where some files were not being cleaned (thanksSimon Howard
fabian). Subversion-branch: /branches/v2-branch Subversion-revision: 2756
2013-11-19Fix crash when using fallback Doom IWAD and selecting level.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2754
2013-10-31Only show 'flying' controls when configuring Heretic or Hexen, notSimon Howard
Strife (thanks Alexandre-Xavier). Subversion-branch: /branches/v2-branch Subversion-revision: 2736
2013-10-31Fix setup tool Windows resource file to include the application manifestSimon Howard
correctly. This was previously fixed on trunk but not merged. Also update the manifest to add GUIDs for Windows 8. Subversion-branch: /branches/v2-branch Subversion-revision: 2734
2013-10-28Add missing asmv3 namespace to setup manifest (oops).Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2728
2013-10-28Declare Windows binaries as DPI-aware to prevent the OS from applyingSimon Howard
DPI virtualization. Subversion-branch: /branches/v2-branch Subversion-revision: 2727
2013-10-26Default to windowed mode in OS X, as there is an SDL bug that can causeSimon Howard
crashing in fullscreen mode (thanks Ryan Peel). Subversion-branch: /branches/v2-branch Subversion-revision: 2721
2013-10-26Select fallback IWADs that match the game we are configuring (thanksSimon Howard
Alexandre Xavier). Subversion-branch: /branches/v2-branch Subversion-revision: 2719
2013-10-20Use OPL MIDI playback as the default music device.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2714
2013-10-16Fix bug with freeing of static strings, accidentally introduced inSimon Howard
r2633. Subversion-branch: /branches/v2-branch Subversion-revision: 2712
2013-10-15Rip out special casing on Windows that defaults to the SDL directxSimon Howard
driver over the Windows GDI one. This causes far too many problems. Subversion-branch: /branches/v2-branch Subversion-revision: 2710
2013-10-06Finish implementation of Hexen CD audio music mode.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2694
2013-09-29Preserve libsamplerate_scale in the setup tool.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2691
2013-09-21Fix setup tool desktop file to point to chocolate-doom-setup.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2674
2013-09-20Set setup tool title so that it it shows the name of the correct gameSimon Howard
being configured, not just always "Chocolate Doom". Subversion-branch: /branches/v2-branch Subversion-revision: 2669
2013-09-04Fix setup tool defaults for GUS/Timidity path config variables (thanksSimon Howard
Alexandre Xavier). Subversion-branch: /branches/v2-branch Subversion-revision: 2633
2013-08-17Fix IWAD auto-selection when joining a game in the setup tool (thanksSimon Howard
Alexandre Xavier). Subversion-branch: /branches/v2-branch Subversion-revision: 2619
2013-08-11Remove Windows CE support.Simon Howard
What support exists is for obsolete devices I no longer possess; I've never been contacted about the port and it's been several years since I even bothered to build a new version. All the extra overrides are clutter that can just be removed. Subversion-branch: /branches/v2-branch Subversion-revision: 2615
2013-04-01Add configuration boxes for GUS and Timidity configuration.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2578
2013-04-01Merge from trunk.Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2577
2013-03-27Remove duplicate definition of M_OEMToUTF8() (thanks exp(x)).Simon Howard
Subversion-branch: /branches/v2-branch Subversion-revision: 2569