Commit graph

310 commits

Author SHA1 Message Date
zicodxx 4a0d15fbcd One more take on Mouse cursor friendliness: Merged mouse_toggle_cursor and mouse_toggle_grab; instead of trying to use SDL_GetAppState (which does not work as expected on Windows) to release mouse, use strict calls of mouse_toggle_cursor so we at least have a free mouse outside of Game_wind and Automap; decreased time to automatically hide cursor; added mouse_close to release mouse in case of emergency 2010-07-28 17:27:35 +00:00
zicodxx 60e93e4deb Moved digi_set_digi_volume call from config loading to designated audio subsystem init function so it will be correctly set after the sound system is auctionlly initialized 2010-07-27 20:42:54 +00:00
zicodxx 4f5d6ea605 Fixing automatic mouse release function - still this does not seem to work in every case 2010-07-27 19:42:28 +00:00
zicodxx 7acab7150c Overhauling showing/grabbing cursor and also taking care of case if program looses focus; store old_delta_x/y in mouse info structure 2010-07-26 18:10:21 +00:00
kreatordxx 5a66d422bd Exit SDL_PollEvent early if window changes, to avoid menu problems when pressing keys fast; fix 'condition is always false' warning 2010-07-25 00:49:33 +00:00
zicodxx 764798b732 Removed redundant Winsock calls from Windows-specific IPX code - it's already in net_ipx.c 2010-07-19 18:28:33 +00:00
zicodxx 9070771c47 Merged all HMP-related code into hmp.c/h; Also introduced new HMP to MIDI conversion functions based on JJFFE which use former Win32-related HMP-code - fixes some bugs in MIDI conversion and cleaner 2010-07-18 20:28:15 +00:00
zicodxx c2603a0b49 For normal digital audio (11/22Khz) use buffer of 1024 for all platforms to prevent delay 2010-07-17 13:07:23 +00:00
zicodxx ac840f306b Only use one single call of timer_get_fixed_seconds() for whole SDL event loop; Abstracted grabbing mouse and mouse cursor toogle to mouse functions instead of calling SDL functions inside of non-arch code; Automatically hide mouse cursor if it's not used for more than 3 seconds; Reworked placement of mouse grabbing toggle; Do not read any mouse input if -nomouse is given 2010-07-16 11:07:42 +00:00
zicodxx 9933bb81ce Added expandable classes for HUD messages (like D1X but slacked) to better handle Multi messages or redundant messages; Rewrote HUD code completely; Changes -playermessages to -multimessages since this is more appropriate; Removed remnants of -mprofile 2010-07-13 06:35:25 +00:00
zicodxx 5c077028da Also send event KEY_COMMAND if there's somethig in our Unicode buffer since not every Unicode key corresponds to a keysym on every layout 2010-07-08 10:55:20 +00:00
zicodxx 2f95d5933f Fixing issue introduced in rev1139: Game could of course not open music files which are not inside Searchpath or added to it - re-added playing over absolute path 2010-07-05 07:41:30 +00:00
zicodxx f2b31713b7 For playing music over SDL_mixer always use handle over PhysFS to save the path building mess; When building Jukebox path, only try to build full path if given path is actually a child of Searchpath 2010-06-27 14:30:12 +00:00
zicodxx 509e5be5a7 Added function to list valid resolutions and build resolutions menu dynamically with the resulting list 2010-06-24 09:29:11 +00:00
zicodxx 5cff370262 Fixing digi_win32_ functions I broke yesterday. THANKS ZIF\! 2010-06-15 18:27:10 +00:00
zicodxx 4678e1e815 Process -nomusic argument again 2010-06-14 17:55:25 +00:00
zicodxx 63966cab5c rev1112 contd: Killed juggling around with adding Jukebox paths - must always be removed correctly if Jukebox loading fails 2010-06-14 15:32:55 +00:00
zicodxx 36e20a419a Use strrchr instead of strchr for music filename extension in case there are dots in the filename 2010-06-14 10:43:30 +00:00
zicodxx 196a149c71 Small fix and improvement for Jukebox path detection 2010-06-14 10:33:36 +00:00
zicodxx 958859e7d6 Added missing newline at EOF 2010-06-14 08:19:27 +00:00
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 020a51fe09 Comment out redundant calls to event_poll, fixing rapid bomb dropping bug (and probably others) 2010-05-03 10:47:10 +00:00
kreatordxx 5650b4ce48 Merge d_event and newmenu_event enum's, hopefully fixing compiler warnings in GCC 4.5.0 2010-05-03 08:44:46 +00:00
kreatordxx 53fc092ebf Actually play endgame music when game is finished, play briefing music instead of hum if appropriate 2010-04-05 11:54:23 +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 3ba90f69e0 Make newmenu_do3 and newmenu_dotiny return as soon as the newmenu is created, which will allow the main menu (and others) to persist 2010-04-03 07:24:50 +00:00
kreatordxx d749889c89 Add a default event handler for screenshots, entering debugger, Redbook repeating etc 2010-04-02 05:01:08 +00:00
kreatordxx 1ff3f56c1c Add EVENT_MOUSE_BUTTON_DOWN and EVENT_MOUSE_BUTTON_UP, use for all windows except game and editor. Fixes crash on iMac G5 when pressing keys to progress through briefing 2010-03-24 07:26:52 +00:00
kreatordxx 05cc0f32af Make fullscreen movies into windows, maintain performance of robot briefing movies with necessary move of gr_flip 2010-03-17 09:44:19 +00:00
kreatordxx e5496b9653 Change audio buffer size back to 1024 for Mac only - fixing crackly music 2010-03-09 03:08:00 +00:00
zicodxx e6d1b5c668 Changed default Audio-buffer size to 2048 bytes. Should prevent crackly playback on some systems 2010-03-03 21:27:48 +00:00
kreatordxx 1dbd60254c No more crashing if an invalid Jukebox path is entered - default to MIDI 2010-02-27 13:05:34 +00:00
kreatordxx 67c05798d3 Move call to callback outside of loop in key_handler, now deleting a second demo using CTRL-D actually works 2010-02-25 04:27:15 +00:00
zicodxx 29f475c345 Cleaning up Joystick code and on the way supporting more axes and buttons; Also fixed bug with channel_mask byte causing trouble using some axes ingame; Added argument to set environment variable which disables sticky keys (for SDL >= 1.2.14) 2010-02-14 18:48:02 +00:00
kreatordxx 970fd8c2d2 Don't send an EVENT_WINDOW_DEACTIVATED when closing a window if it wasn't the front window, now the game works properly after you're shown on the high scores 2010-02-08 06:08:55 +00:00
kreatordxx fa7ab97783 Send EVENT_WINDOW_DEACTIVATE before EVENT_WINDOW_ACTIVATE, ensuring cursor remains shown when appropriate 2010-02-05 14:05:57 +00:00
kreatordxx 999a1b2949 Put LeaveGame longjmp back, but in response to new EVENT_WINDOW_CLOSED, fixing demo issues; fix compiler error in last commit 2010-02-02 07:52:03 +00:00
kreatordxx 9fd714a083 Add EVENT_WINDOW_DEACTIVATED; move many game_flush_inputs, start_time and stop_time calls to game_handler as well as digi_pause_digi_sounds and digi_resume_digi_sounds 2010-02-02 03:38:29 +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
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 2bcf54b77a Added real Doublebuffering to SDL-build; While on the way, making Bpp selection available for SDL-build, too 2010-01-29 21:53:17 +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 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 b3b87fc62d Make pause box a window 2010-01-09 09:19:26 +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 d450c3e6f4 Make newmenus into windows, allowing redrawing of automap and game to take place outside of newmenu.c; remove redundant keyd_repeat 2009-12-26 01:08:57 +00:00
zicodxx f7b82723c4 Fixing possible string overflow while using KALI_PROCESS_NAME 2009-12-11 10:13:27 +00:00
kreatordxx 7ebcf32e45 Make the automap into a 'window', make kconfig.c more similar between D1X and D2X 2009-12-02 13:49:54 +00:00
zicodxx 86fcdc5d81 Draw Endlevel sequence with correct DepthFunc 2009-11-30 19:11:46 +00:00
kreatordxx 062668357e Change NET_UDP to USE_UDP 2009-11-30 13:09:57 +00:00
zicodxx e819422d30 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 17:07:14 +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
zicodxx e9d4eb051e Fixed building error on Windows caused by false socket variable; Fixed compiler Warnings on Mac; Updated Mac build files; Unification in version numbering 2009-11-28 20:57:57 +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 d7e33667bf Make the game screen into a \'window\', handling events through event_process 2009-08-10 10:47:17 +00:00
kreatordxx ab40bd7566 Add include directives for last commit (whoops) 2009-05-22 10:53:14 +00:00
kreatordxx 45ba0ca307 Add new window system, not used yet 2009-05-21 12:16:39 +00:00
kreatordxx db27b1723d Remove redundant conf.h directives 2009-04-30 13:01:31 +00:00
kreatordxx 36e6885115 Disable network support for Mac OS X for now 2009-04-30 12:30:14 +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 b63f988d37 New level render order for better seperation and blending between transculent level geometry and sprites 2009-01-30 11:50:25 +00:00
kreatordxx cf8981eb76 Update version to 0.55.1 for Mac 2009-01-26 05:41:45 +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 cf5c44321c Error handling while dumping TGA file - (partially) Patch by v66r 2009-01-16 00:12:04 +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 c37285c217 Fixed typo in mouse delta reading cleaning not up Z-Axis; Giving automap a nicer Frameloop; Small cleanup 2009-01-15 20:55:35 +00:00
kiplingw 70fd9452f1 Added: Better support for non-free compiler... (patch from Damjan Cvetko <zobo@lana.krneki.org>) 2009-01-14 19:54:45 +00:00
zicodxx 6038280726 Added some randomness to collision sound delays and synced robot-player collision sprites to same steps 2009-01-13 16:53:10 +00:00
kreatordxx 81de582264 Use a 2D array to allow playing of songs by track number in future 2009-01-13 12:39:03 +00:00
kreatordxx b7a0db130b Increment Mac version number, update project for latest Xcode 2008-12-27 09:19:19 +00:00
kreatordxx 410707171e Set SHAREPATH to "." so reading data from DXX's directory ACTUALLY WORKS 2008-12-21 08:59:17 +00:00
kreatordxx f257e48ddc Get Mac command keys working, MACINTOSH code cleanup, update Xcode project 2008-12-07 12:26:43 +00:00
zicodxx c11f203abd Deactivated depth writing fo g3_draw_bitmap() sprites to prevent rendering errors when clipped in some cases 2008-11-26 01:24:58 +00:00
zicodxx 076e466009 Yet another UNICODE overhaul - Using seperate buffer for UNICODE chars and only use it in key_ascii() while still using keysyms for the rest of the program so we do not screw up readings by key values altered by modifers - possibly still room to optimize 2008-11-17 23:38:43 +00:00
zicodxx be02298290 Added other SDL_(Un)LockAudio statements to protect the audio_mixcallback function - making that hopefully stable on multicores; Resetting warn_func at quit_request so we do not accidently show any menu; Open gamelog.txt unbuffered 2008-11-15 20:49:54 +00:00
zicodxx aee0198f2e Using a clean flow for closing game data at the end of main() instead of using atexit; Now only use atexit for SDL stuff, error, mem, console (and editor which we do later); Small Cleanup 2008-11-14 16:56:40 +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 804ac4c683 Only read UNICODE values from 31 to 254 to make sure we do not read any non-printable characters and prefer the keysym that way; Added left and right Command Key for MAC Keyboards 2008-11-07 11:09:29 +00:00
zicodxx 483a981d2f I always forget glLineWidth takes previous setting if arg is <=0; Made the decodebuffer for cockpit static as the bitmap data pointer points to it 2008-11-01 15:40:00 +00:00
zicodxx b2213b6f2e Make sure that if we use UNICODE, we always take non-control type chars and - as we only want lowercase letters - convert chars if shift is pressed 2008-11-01 02:49:29 +00:00
zicodxx ab0524f95b Always use printable UNICODE characters for the key_handler and included routine to assign key symbols to UNICODE so we get an equivalent of a Key-Released state which we need for the Keyboard buffer; Removed the shifted_ascii_value field from key_props and stored all usable characters in seperate rows; Improves Text input and makes keyboard mapping independent from keyboard layout without breaking any compability 2008-10-31 16:57:36 +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 92cec5ced3 Removed hack for Cockpit-window transparencies and added function to decode and add alpha to the bitmap directly (now works in non-OGL as well); Using sub-bitmaps for Cockpit-windows and menu backgrounds; Cleaned old bkg stuff from menu GUI 2008-10-28 13:28:10 +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
kreatordxx 87d3f3522d Keep Xcode project up-to-date, look in 'SDL' directory for SDL.h 2008-10-04 11:50:16 +00:00
zicodxx 6054bf7e90 Added new function to calculate common timesteps; Increased MAXIMUM_FPS to 200 for release and 1000 for debug; Used fixed sim_time for do_physics_sim and Interpolating to ensure collisions stay accurate at high FPS; New code and faster code for dot products by The_Lion; Disabled Nice-FPS and common Frame-Loop if VSync is active; More accurate delta timer for mouse (consider overhead); Added SDL_(Un)LockAudio for old SDL Audio interface; General support for up to 16 mouse buttons; Code cleanup; Made some AI movement and Player shaking FPS-independent 2008-09-30 00:18:39 +00:00
zicodxx 63d2c4a2cf Added new function to calculate common timesteps; Increased MAXIMUM_FPS to 200 for release and 1000 for debug; Used fixed sim_time for do_physics_sim and Interpolating to ensure collisions stay accurate at high FPS; New code and faster code for dot products by The_Lion; Disabled Nice-FPS and common Frame-Loop if VSync is active; More accurate delta timer for mouse (consider overhead); Added SDL_(Un)LockAudio for old SDL Audio interface; General support for up to 16 mouse buttons; Code cleanup; Made some AI movement and Player shaking FPS-independent 2008-09-30 00:07:07 +00:00
zicodxx e54992a974 Fixed IPX default socket (typo); Using function pointer for IPX-based sockets instead of globals 2008-07-19 22:28:31 +00:00
kreatordxx ea58e300f0 Increment version number for Mac, ensure Get Info strings copy to bundle, use correct Mac OS X SDKs 2008-07-01 11:09:46 +00:00
kreatordxx 16cfedcccd tidy up music keys, ALT-SHIFT-F9 ejects audio CDs 2008-06-15 08:50:05 +00:00
zicodxx db87da1ac5 Setting GameArg.SndNoSound to true if SDL_mixer init fails 2008-06-12 08:01:00 +00:00
zicodxx 051acd3e18 Small doc update; Improved SDL_mixer / Jukebox handling if no resource (sound) is available 2008-06-05 16:30:11 +00:00