Commit graph

180 commits

Author SHA1 Message Date
zicodxx f09a336184 Increased SDL_mixer music abilities to play non-hmp from HOGs, having Level-music path to play, options to specify non-level tracks and added various playing order methods; Abstracted SDL_mixer- and Redbook-interfaces; Simplified program flow through all music functions 2010-06-14 08:13:16 +00:00
kreatordxx e960307bdd Properly specify number of items for do_options_menu, so the options menu actually shows 2010-05-03 08:22:50 +00:00
kreatordxx 90e3796f97 Make menus for hosting a netgame stack, make quitting work with newmenu_do2 and simpler 2010-04-04 09:41:53 +00:00
kreatordxx 76b0fb35ef Get rid of a heap of uses of Function_mode, quit properly (freeing all windows and asking for confirmation for game) when clicking close box 2010-04-04 01:31:48 +00:00
kreatordxx 643c57614b Move copyright drawing to main menu's event handler for tidiness 2010-04-03 10:16:53 +00:00
kreatordxx 11edfb2aa6 Make main menu persist to streamline redrawing (later) 2010-04-03 08:35:56 +00:00
kreatordxx fb53348ddc Keep demo selector just after playing one, for convenience 2010-04-02 05:24:47 +00:00
kreatordxx c0739acdfe Check menus[0], not menus[i] in hide_menus - fixing possible crash 2010-03-27 08:00:53 +00:00
kreatordxx 71dfec9fdb Hide mission dialog before the level intro screens are shown, make sure it doesn't try to show it again after it was closed - fixing bad memory access 2010-03-27 03:24:14 +00:00
kreatordxx d98bb97c48 Make all listboxes fall back to main event loop for flexibility 2010-03-18 07:02:38 +00:00
kreatordxx 5ee9ccd867 Show intro movie properly when idle in main menu, including subtitles if on 2010-03-18 02:49:02 +00:00
kreatordxx 303c3d91b1 Actually change to MIDI if Jukebox was selected 2010-02-27 12:50:30 +00:00
kreatordxx 7046ea43ff Handle all user input in callback for sounds menu, being more judicious about when to restart the music. Also make the jukebox path input a NM_TYPE_INPUT_MENU, allowing the user to abort changes 2010-02-26 08:42:44 +00:00
zicodxx 675d6d395a Overhaul for CONTROLS menu; Cleaned kconfig-code a little and slacked out keymap arrays 2010-02-21 01:25:27 +00:00
kreatordxx 9acd0ba3a6 Move all globals in scores.c into struct members/local variables 2010-02-08 04:10:21 +00:00
kreatordxx 09f7bd6d57 Split select_filename into [existing] RegisterPlayer and select_demo for better clarity 2010-02-07 12:10:52 +00:00
kreatordxx 1f33e08116 Create the main event loop and use it for the game and main menu 2010-02-07 04:34:21 +00:00
kreatordxx 5f73aa9005 Handle player selection and demo playing in filename_menu_handler, fixing bug where it won't leave the player listbox if there's no LastPlayer; close do_options dialog when changing resolution 2010-02-06 05:21:45 +00:00
kreatordxx 5c923e864d Leave kconfig_idle early if exiting kconfig to avoid erroneous memory access; initialise menu's citem properly; add EVENT_NEWMENU_CHANGED; activate USE_IPX in Xcode while I'm still changing net_ipx.c 2010-02-01 06:55:38 +00:00
zicodxx d7a139207d Fixed two memory errors inside menu GUI 2010-01-30 22:49:43 +00:00
kreatordxx 21d8d86d5b Send EVENT_KEY_COMMAND from key.c; add EVENT_NEWMENU_DRAW for state restore; place newmenu and listbox calls to callback so they can override ALL newmenu behaviour 2010-01-30 03:24:19 +00:00
zicodxx 9c4408adb2 When deleting a player also delete the Multiplayer efficiency file 2010-01-29 00:35:20 +00:00
kreatordxx 9d4e69c7a9 Make response to EVENT_WINDOW_CLOSE conform to 'handling' system - returning 1 means abort closing 2010-01-28 03:27:49 +00:00
kreatordxx 00641e9aa4 Allow escape from player listbox if appropriate; call RegisterPlayer only from main menu for more flexibility; actually use file_list block so deleting players/demos doesn't crash it 2010-01-27 09:11:47 +00:00
kreatordxx b6b9cc1546 Move the editor call out of the Function_mode loop, for later overhaul 2010-01-23 14:19:21 +00:00
kreatordxx 88d1b32914 Add EVENT_WINDOW_ACTIVATED, change EVENT_DRAW to EVENT_WINDOW_DRAW and EVENT_CLOSE to EVENT_WINDOW_CLOSE 2010-01-20 05:10:32 +00:00
kreatordxx 633b1b0804 Respond to EVENT_NEWMENU_SELECTED for options_menuset and input_menuset, so the input menu will have THE event loop for kconfig 2010-01-17 14:42:59 +00:00
kreatordxx e52f47e741 For get_filename, put mode and find variables in a structure - fixing 64-bit problem and allowing freeing of PHYSFS file list in callback in future, respectively 2010-01-15 13:02:28 +00:00
kreatordxx b97e08dfdc Add EVENT_NEWMENU_SELECTED, allowing a newmenu/listbox selection to be handled in the callback. Demonstrate with "Select Song" menu 2010-01-08 01:55:12 +00:00
kreatordxx 6b4d952ebc Change newmenu and listbox callback systems, adding use of d_event, for greater flexibility 2010-01-07 14:49:07 +00:00
kreatordxx a7d99b894c Move newmenu_get_filename to menu.c, call it get_filename and have it use newmenu_listbox1; support long demo filenames 2009-12-08 11:01:36 +00:00
zicodxx 6a00504d89 Adding macros USE_UDP and USE_IPX for the compiler to compile with either UDP- and/or IPX-support and removed the older IPX macros 2009-11-29 16:46:13 +00:00
kreatordxx 9192b5ede6 Fix some compile errors, including for the non-NETWORK build 2009-11-28 07:51:06 +00:00
zicodxx fb08673f54 Removed timer_get_approx_seconds() and replaced with timer_get_fixed seconds since it was too inaccurate and created significant offset 2009-11-24 22:43:41 +00:00
zicodxx dbf4d55839 Abstracting networking protocols - Step 4: Implemented new UDP layer with Client/Server communication, Packet Loss Prevention and strict Version checking. Netgames list will follow later. 2009-11-24 09:48:53 +00:00
kreatordxx 96d305e54c Only list resolutions that can actually be used, using new gr_check_mode 2009-11-17 14:27:39 +00:00
kreatordxx 78d9b8f15f Make inferno.c more similar between D1X and D2X 2009-05-31 07:20:26 +00:00
kreatordxx d7d319624b Add option to force either Redbook or Jukebox to use the playing order for the game CD 2009-05-06 12:19:28 +00:00
kreatordxx f139dda3a6 Make some files more similar between D1X and D2X 2009-05-03 12:31:30 +00:00
zicodxx 85b086c0ef Abstracting networking protocols - Step 3: Renaming network_* functions to net_ipx_*, writing wrappers for protocol dependend functions in multi.c, Implementing protocol selection and Cleanup - Next up: Implementing new UDP layer 2009-04-09 07:41:30 +00:00
zicodxx 0c36fecb42 Abstracting networking protocols - Step 2: Introducing new structure to hold protocol-dependend and -independend information about Netgame and it's Players; Further isolation of the IPX code and renaming the netdrv_* code to ipxdrv_* as this is now actually IPX-only; Next up: Renaming network_* functions to net_ipx_*, writing wrappers for protocol dependend functions in multi.c, Implementing protocol selection and Cleanup 2009-03-20 12:10:38 +00:00
zicodxx 0fc0fff7f1 Abstracting networking protocols - Step 1: Renaming network-related files; Removing net_ipx.h (former network.h) includes from as much files as possible to make isolation of IPX-related functions easier in Step 2; Version defines Cleanup - needed later for good Version-Checking 2009-03-04 21:04:43 +00:00
kreatordxx f149ace782 Associate the jukebox with Redbook Audio via new 'extmusic' layer - separating from MIDI and making it handle ALL music (not just game music) 2009-03-03 12:55:27 +00:00
zicodxx 80debdb4d5 Made our Cockpit-Transparency decoding function a bit safer for current and possibly new code flow 2009-02-23 10:15:23 +00:00
zicodxx 4ee0b415ad Make sure HostAddr buffer is directly saved as soon as we confirm it in the entry field 2009-02-08 12:55:50 +00:00
zicodxx 6ba4be9e2b Changed function naming convention in netdrv and below to general Descent code convention 2009-01-26 05:01:18 +00:00
zicodxx e6c160ca85 Made MouseFilter selectable over Controls menu while defaulting to OFF - Saved in PLX 2009-01-17 11:02:59 +00:00
zicodxx e04250e266 Reduced size of vectorial reticle to match the size of the original one; Only scale fonts by float if Texture filtering is on - otherwise scale by int 2009-01-15 23:58:36 +00:00
zicodxx 2b5c8d2b77 Removed (#if 0) the unfinished Tracker stuff for our Release so it won't confuse the Win32 build 2008-12-20 11:57:03 +00:00
zicodxx 828d753668 Seperated help screens for game, netgame and demo; Also show them in Controls menu; Small Menu UI fix for ScrollOffset when calling menus in a scrolled area of a menu 2008-12-13 12:58:57 +00:00
zicodxx 9424a5be86 Small Cleanup: Using timer_delay for credits timer as timer_delay2 would respect VSync and change speed of the Credits scrolling; Cleaned that Start/Join Netgame cases up a bit; Removed the excessive use of atexit in newmenu... more to come 2008-11-09 23:51:19 +00:00
zicodxx 15d25cc54a Always keep aspect scaling (lowest scalar of width and height) for fonts, lines, dots, spheres, reticle and non-Cockpit-/Statusbar-related HUD-elements; Moved the Cockpit alpha decoding to gauges.c and created a seperate bitmap for the alpha fields and create subbitmaps from this one - more memory but this way we do not modify the cockpit bitmap itself 2008-11-09 14:31:30 +00:00
zicodxx 4b0041d815 Fixed possible overflows in Jukebox Path; Menu GUI improvements: Correct inputbox scaling for font widths, a little performance boost when determinating string-part to show in inputbox, make it possible to flip over from first/last menu entry to last/first even if it's a ScrollBox, Scrolling via Maousebutton now works with delay; Made reading for Piggy data always break up in loops when reached end of file instead of provoking possible error if *data-count < max-data-count* 2008-11-01 01:19:52 +00:00
zicodxx 85b303e5e1 Add a messagebox informing to restart the game if either VSync or 4x Multisampling has been (de)selected 2008-10-30 15:00:32 +00:00
zicodxx cf147bcd4c Scale fonts by float values and filter them if texture filtering is on; Another fix for the code flow in change_res() as the check for minimal custom resolution always failed 2008-10-29 11:03:31 +00:00
zicodxx 7e1141a881 Cleanup: Renderstats; Made PRShot a non-OpenGL-related feature and added to Misc Options; Added command for SDL_ASYNCBLIT to command-line args 2008-10-28 17:04:35 +00:00
zicodxx 7d91cc91f8 Fixes for my last revisions: More reliable check for cockpit_decode_alpha, more reliable check is newmenu sub-bitmap needs to be re-created, call gr_set_mode() in change_res() with correct Game_screen_mode 2008-10-28 15:32:12 +00:00
zicodxx a26e5e3284 Removing reset of Game_screen_mode while change_res Fullscreen toggle (wtf is the point?); Adding a third valid state for UDP peers so we can get more order in handshaking process - should fix problem when two clients join (and shake) simultaniously 2008-10-22 15:31:24 +00:00
zicodxx c09620f160 Readded -ip_hostaddr optional to the value stored in descent.cfg for automated program starts or whatever; Fix by Locate: Correctly close UDP sockets on Win32; Fix by Locate: Ability to select Secret levels on Multiplayer in D1X again which was broken in r619 2008-10-20 12:34:45 +00:00
zicodxx d5da444a40 resolution 1440x960 to 1440x900 - typo 2008-10-20 11:11:56 +00:00
zicodxx 69c66b9afb Setting Fullscreen toggle setting the GameCfg value at each change, not only in change_res(); Do not allow the toggle while playing since ALT-GR+ENTER could be used as game-keys; Reorganized Resolutions menu to automatically calculate aspect ratio for preset resolutions and making custom fields exclusive 2008-10-19 12:53:30 +00:00
zicodxx 03e026756e Giving credits function ability to use custom creditfile (again); Made laser-offset for laser exclusive so Prox mines won't go tru doors; Preventing cycling tru cockpit modes while dead, but allowing to load a state; Implemented D2X' lighting code to D1X (faster, better, sexier - weeee); Try to hop over some errors regarding walls/doors in levels instead of using -1 indexes for arrays; Made the briefing text ptr a bit more failsafe in case the file is corrupt/non-standard; Made scores use the menu screen even in GAME OVER; Fixed bug in neighbour fields of Weapon Keys table; Added the Weapon Keys stuff to TABLE_CREATION; Fixed bug where D2X did not recall applied resolution in the resolutions menu; Simpler check to create DEMO_DIR; Seperated X/Y sensitivity for mouse and joystick; Flush controls when Automap toggles so keypress won't deactivate it again; Made FrameCount in Demos aligned to the Dropframe condition; Added KEy to ttoggle playback text off; Gracefully exit demo code if demo is corrupt; Removed that new percent counter because many old demos seem to have corrupted last frames; Closing endlevel data file if IFF error so the mission still can be freed; Fixed Cruising for keyboard which was not aligned to FPS correctly; Used mouse delta scaling in kconfig.c instead of mouse.c to not screw up when delta is requested in non-ingame situations - it actually belongs to the controls IMHO; Now support up to 8 joysticks; Changed some leftover malloc's to d_malloc and free to d_free 2008-10-16 17:27:02 +00:00
kiplingw 4328ddcb05 Added: Mostly stubbed out test code for game tracker server stuff...
Fixed: Cleaned up some GUI macro code in menu.c...
Updated: CHANGELOG.txt for end user level changes...
SConstruct: Cleaned up build system a bit with prettier build messages, added a feature or two, and included tracker source
Fixed: Fixed harmless warnings on no new line at end of some source files...
2008-07-26 17:57:13 +00:00
zicodxx 26502298d9 Generally increasing Menu rendering from 20 to 50 FPS; Allowed Fullscreen toggle in Pause menu and correctly releasing mouse; Fixed broken Death sequence timer; Fixed incorrect data offset for UDP player relay; Fixed crash in Multiplayer summary; Reworked player loading a little bit, making sure kconfig controls are all set; Some small Status bar correction; Implemented real Pause/Reume for Jukebox via SDL_mixer 2008-06-04 19:30:43 +00:00
kreatordxx 565ea29e05 Add audio CD support to D1X, fix associated bugs 2008-05-24 08:59:35 +00:00
zicodxx cf5deacfe8 Added a new set of preset resolutions 2008-05-21 21:50:14 +00:00
kreatordxx 3aa8f5ece7 remember the last IP address entered for UDP instead of parsing -ip_hostaddr 2008-05-16 11:39:27 +00:00
zicodxx 91e2934ca1 Return unicode characters in key_to_ascii for non-EN keyboard layouts; Fixed sound menu issue if not compiled with SDL_mixer; switched -ip_norelay to -ip_relay since it's not tested enough; Renamed jukebox_free() to jukebox_unload() to stay with naming-convention 2008-05-07 14:02:01 +00:00
zicodxx 039b8b551e Extended Jukebox capabilities for looping and continous playing and added jukebox_free() which allows calling jukebox_load() being able to load a new directory; Added Jukebox options to sound options menu; Removed loop hack for Windows MIDI playback; SDL_mixer implementation can now be used for Windows build as well 2008-05-01 21:40:34 +00:00
kreatordxx 27e288b21d get it to work for Mac OS 9 2008-04-24 14:27:54 +00:00
zicodxx ec70ae0413 Added function gr_set_attributes to change Options like Texture Filtering and SDL_GL attributes while runtime (if supported); Added 4x Multisample support 2008-04-22 08:29:29 +00:00
zicodxx 96ed7fa827 Reworked timer_delay2() and calc_frame_time() to be more accurate and CPU-friendly; -nicefps replayced by -nonicefps to disable sleeping for calc_frame_time; Implemented VSync via SDL; Fixed compilation issues; Code cleanup 2008-04-21 18:39:49 +00:00
zicodxx a40b362ced Made joy_flush also resetting button state; Improved glReticle; Implemented Fallback resolution if SDL may fail; Code cleanup 2008-04-19 19:11:32 +00:00
zicodxx d3aca2140d Reverted homers turn_radius again to respect higher difficulty levels; Added PRShot to menus; Fixed typo in OglAlphaEffects saving 2008-04-13 10:59:10 +00:00
zicodxx 24d1cf52f6 Added structure for values saved in PLR/PLX files; Added most common command-line options to options menu 2008-04-13 00:28:36 +00:00
zicodxx a172315d4a Implemented Console-style game logging system to print graphics, to stdout and gamelog.txt; Added structure to keep values for descent.cfg; Added aspect and Texture Filtering to descent.cfg; Removed mono code - printing important stuff over console; Removed some obsolete or very common defines; Code cleanup and small fixes 2008-04-06 20:23:28 +00:00
zicodxx 70973d6a5d Implemented D2X code for wepaon cycling and reordering; Added lock status for mouse axis weapon cycling because of scaled mouse delta; Due to player feedback (any my opinion) making homer turn rate smaller to make them a bit harder to dodge; Preventing write of player data while Demo playback; Small code cleanup and corrections 2008-03-23 13:03:26 +00:00
zicodxx f014231a78 Simplification of palette code; Properly screen clearing in SDL-only build when palette changes; Removed obsolete functions like gr_update (replaced by gr_flip), gr_palette_fade_in/out, gr_palette_clear; Added functionality to render Automap while menu display as well; Improved blocking of some controls code while Automap active; Fixed some compiler warnings 2008-03-20 23:23:46 +00:00
zicodxx 8eb5c965d2 Reworked fonts routines - makes easier to expand and scale correctly; Reworked menus with better border scaling, improved rendering and cleanups; Improved font priniting ingame, better alignment; Reworked Netgame list; Real Doublebuffering in SDL-mode; Removed old and unused sources 2008-02-24 14:41:27 +00:00
zicodxx d9e23370f9 Implemented PhysFS support; Implemended D2X memory functions; Code cleanups 2008-01-23 17:25:09 +00:00
zicodxx 7c38557284 Removed SDL Gammaramp code (obsolete); Improvements on Demo code 2008-01-13 13:27:58 +00:00
zicodxx a18d40f312 Safe timer rollover in menu idle-demo function; Reintroduced menu shortcuts; Implemented support for menu scrolling if nitems > 15 2008-01-08 21:02:06 +00:00
zicodxx 091526789e Added BigEndian-related multiplayer/network code (unfinished); Re-Added IPX Socket option to Host menu for IPX games; Removed ForceVersionCheck global - conditions with driver->type; Merged netmisc.* and netpkt.*; Handling host disconnect for UDP games in network.c 2008-01-08 16:33:19 +00:00
zicodxx 96cc6e1006 Cleaned/Rewritten/Renamed lower level network layer to make it (look) less IPX-oriented 2008-01-02 15:36:51 +00:00
zicodxx 285da809a8 Code cleanup - old/unused/obsolete multiplayer code and more 2007-12-29 14:18:49 +00:00
zicodxx d6c708c111 Implemented new UDP/IP interface with Server-Relay (for firewalled users) and IPv6 compability; Fixed memory issues; If arguments -gl_mipmap and -gl_trilinear used both, always select -gl_trilinear 2007-12-17 22:45:45 +00:00
zicodxx 827f0d5fd1 Correctly saving Reverse Stereo setting; Added Demo playback help keys; aligned Demo recording to 20 frames per second to save lots of hard drive space 2007-11-06 20:33:22 +00:00
zicodxx 4f399bbfea Improvements for -gl_prshot; Improved show_netgame_info(); Removed obsolete multisave code; Removed mekh stuff and wide cleanings in whole multi code; Incremented MULTI_PROTO_D1X_VER (for version checks in the future if needed); Renamed 'D1X-only game' to 'Version Check' 2007-10-31 00:49:24 +00:00
zicodxx 60e30cb40a Small fixes; Code cleanup; Implemented PR-Screenshot feature 2007-10-18 14:44:02 +00:00
zicodxx 18d7e3fb69 Updated docs; Removed GP2X support since I won't support this device anymore 2007-09-28 22:44:04 +00:00
md2211 d393f32eed * Removed executable flag on most files
* Reverted value of SOUND_MAX_VOLUME
2007-09-21 19:06:05 +00:00
zicodxx 4d02c92db5 Fixes and improvements on -ip_hostaddr; Fixed paltte bug in SDL build 2007-08-09 12:28:17 +00:00
zicodxx c5b265db30 Added -ip_hostaddr argument to specify a host IP address via command-line/INI 2007-08-08 21:11:51 +00:00
zicodxx eea4b87d86 Fixed excessive use of set_screen_mode; Menu fixes 2007-08-08 18:06:33 +00:00
zicodxx 2860b159e9 Set default value for Game_screen_mode which is necessary if there's no config file yet; Made resolution switching more failsafe by not allowing resolutions below 320x200; Cleaned up briefings code (I hope so) 2007-08-08 12:38:13 +00:00
zicodxx de70147783 Cleanup in Config- and PLX-code; Saving Resolution in Config file so it will apply directly at game-init; Removed seperated resolution mode for menus, SCREEN_MENU now always uses Game_screen_mode; Last FindArg cleanups 2007-07-26 23:56:00 +00:00
zicodxx d6d1a2ca1f Code cleanup and small fixes 2007-07-22 01:34:00 +00:00
zicodxx ca9e82fe80 Cleaned up more FindArg's - general Debug Options; Cleanups 2007-07-18 20:13:17 +00:00
zicodxx e274230e38 Cleaned up more FindArg's - Networking Options; Some fixes 2007-07-16 02:34:51 +00:00
zicodxx c19d49d65d Cleaned up more FindArg's - (most important) OpenGL Options 2007-07-15 21:22:07 +00:00