Commit graph

177 commits

Author SHA1 Message Date
zicodxx a3e499c141 Changed default Audio-buffer size to 2048 bytes. Should prevent crackly playback on some systems 2010-03-03 21:27:48 +00:00
kreatordxx 5163fd97d6 No more crashing if an invalid Jukebox path is entered - default to MIDI 2010-02-27 13:05:34 +00:00
kreatordxx 726bd6ee20 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 5afebdf580 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 f687fc9bd0 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 5adb2fb3fb Send EVENT_WINDOW_DEACTIVATE before EVENT_WINDOW_ACTIVATE, ensuring cursor remains shown when appropriate 2010-02-05 14:05:57 +00:00
kreatordxx 98d5b76928 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 eb92f445ca 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 5ac8cf2b2d 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 e46606821f 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 3f90a9cb41 Make response to EVENT_WINDOW_CLOSE conform to 'handling' system - returning 1 means abort closing 2010-01-28 03:27:49 +00:00
kreatordxx c50b954c00 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 b6452e75b7 Change newmenu and listbox callback systems, adding use of d_event, for greater flexibility 2010-01-07 14:49:07 +00:00
kreatordxx b835361586 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
kreatordxx 8f9d869452 Make the automap into a 'window', make kconfig.c more similar between D1X and D2X 2009-12-02 13:49:54 +00:00
zicodxx 53c19912fa 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
kreatordxx 57c71476fc Only list resolutions that can actually be used, using new gr_check_mode 2009-11-17 14:27:39 +00:00
kreatordxx ceb4ff38fc Make the game screen into a \'window\', handling events through event_process 2009-08-10 10:47:17 +00:00
kreatordxx 692a8ffa1e Add include directives for last commit (whoops) 2009-05-22 10:53:14 +00:00
kreatordxx a1c9e3986e Add new window system, not used yet 2009-05-21 12:16:39 +00:00
kreatordxx bf512bb9ec Remove redundant conf.h directives 2009-04-30 13:01:31 +00:00
kreatordxx b537639fac 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 4f535cff23 Made MouseFilter selectable over Controls menu while defaulting to OFF - Saved in PLX 2009-01-17 11:02:59 +00:00
zicodxx 6f7e70bb82 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
zicodxx fb939d8abb Patch from Damjan Cvetko <zobo@lana.krneki.org> for better support building with a non-free compiler... 2009-01-15 01:00:19 +00:00
kreatordxx 26a648365c Use a 2D array to allow playing of songs by track number in future 2009-01-13 12:39:03 +00:00
kreatordxx 777f76aedf Get Mac command keys working, MACINTOSH code cleanup, update Xcode project 2008-12-07 12:26:43 +00:00
zicodxx 02b1872aa9 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 6f39ab836f 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 1de53497b2 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 2004be28a8 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 b914c8dc2f 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 9cc62df60d 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 51c322d3aa 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 490726b4ac 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 6dc900f51d 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
zicodxx 43348dfa12 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 f108f30ffd 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
kreatordxx 558b2399a3 tidy up music keys, ALT-SHIFT-F9 ejects audio CDs 2008-06-15 08:50:05 +00:00
zicodxx 8a1222c961 Setting GameArg.SndNoSound to true if SDL_mixer init fails 2008-06-12 08:01:00 +00:00
zicodxx 8b36f8aaac Small doc update; Improved SDL_mixer / Jukebox handling if no resource (sound) is available 2008-06-05 16:30:11 +00:00
zicodxx c61b18b576 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
zicodxx 057523af2c Only stop music at jukebox_stop() if MIDI jukebox_loaded - otherwise user can stop Jukebox with keys but not start it again 2008-06-01 22:33:21 +00:00
zicodxx 3d1e2ed850 Using Windows code to play HMP files on Windows build; Fixed Jukebox keys in help screen; Allow -noredundancy in Singleplayer; Fixed processing of Console keys if Console is not active; Added Multiplayer hints to README; Made INI wrapping safer and more accurate 2008-06-01 12:53:03 +00:00
kreatordxx 846c9231ed allow an audio CD to be played if it's inserted after DXX is launched, hopefully find the first audio CD if multiple CDs are inserted 2008-05-28 10:38:30 +00:00
zicodxx e19a1238de Set sound distance to 0 for HUD sound taunts; Making Jukebox not crash if -nosound is enabled (should stop Jukebox since no digi system enabled); Lowered mouse axis speed a bit again; Increasing MAX_VECS to 5000 2008-05-25 08:19:31 +00:00
kreatordxx fd95b79cae Add audio CD support to D1X, fix associated bugs 2008-05-24 08:59:35 +00:00
zicodxx 8ff7e7d166 Make Screenshots over backbuffer; Implmented filtered mouse delta reading 2008-05-21 14:06:44 +00:00
zicodxx 264014081e Make Screenshots over backbuffer; Implmented filtered mouse delta reading 2008-05-21 13:58:27 +00:00
zicodxx 5d7dc33e0c Added -nomusic ability for SDL_mixer API; Added -gl_fontfixwidth to scale fonts with fixed aspect on widescreen resolutions, scaled to height 2008-05-19 19:28:27 +00:00
zicodxx e6ec09869e Some code improvements and small fixes 2008-05-08 18:29:52 +00:00
zicodxx 9709081498 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:11:30 +00:00
zicodxx b772706508 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 ec7f8b68de 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
zicodxx 5d19c11124 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 d457f9430d 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 9bcea627d1 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 3a52d03d21 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 44bbb66101 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 d2365d65f0 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 f3d8d50a94 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 b6f477a398 Cleanung up arch/ a little bit; Added mouse delta time interval for more more accurate reading at high FPS 2008-01-29 14:49:54 +00:00
kreatordxx 9e47ebc29f allow custom MIDI in add-on hogs to be used without caching everything 2008-01-25 11:08:50 +00:00
zicodxx d7b3c878ed Fixed memory issue as Joystick freeing; Case-insensitive mission-loading; Added support for non-Hog'ed missions; Improved writing functions for config and player files 2008-01-23 17:28:28 +00:00
zicodxx 62f6f40ab3 Code cleanup - old/unused/obsolete multiplayer code and more 2007-12-29 14:18:49 +00:00
zicodxx df7a1ca071 Introduced timer_delay2 as replacement for timer_delay to sleep according to given FPS rate considering calc time between frames 2007-11-21 12:46:09 +00:00
kreatordxx e474abb5a0 port the jukebox to PhysicsFS for Mac OS 9 compatibility 2007-11-10 08:51:30 +00:00
kreatordxx fef59bdb3f various fixes towards getting it to build for Mac OS 9 again 2007-11-06 01:30:07 +00:00
md2211 c6407e0c2d Fixed crash on absent or invalid jukebox directory (testing scandir() return value) 2007-11-05 13:41:20 +00:00
kreatordxx 0907af33fc hack to remove warning when compiling on Mac OS X (constant/variable dirent parameter of file selection callback for scandir) 2007-11-03 05:50:45 +00:00
md2211 b78a60d697 Fixed non-working jukebox next song advance (missing hook) 2007-10-28 16:52:22 +00:00
zicodxx b334ff5b97 Set SOUND_BUFFER_SIZE for SDL_mixer to 1024 to minimize delay; Removed MIDI-existance check and store all music to Music/ subdirectory of writedir - keeps clean if user has tons of levels; Added SDL_mixer command-line help output; Reworked PHYSFSX_init and removed SysUserDir so we can finally read args without a hassle; Stored MAXIMUM_FPS in game.h - where it belongs to 2007-10-13 23:52:17 +00:00
md2211 69492c702f Big args code refactoring, fixed issue with userdir d2x.ini, and a few other small things 2007-10-12 20:09:26 +00:00
zicodxx 6584e989a0 Fixed some command-line options 2007-10-12 19:36:16 +00:00
zicodxx 95533db358 Fixed some command-line options 2007-10-12 14:21:21 +00:00
md2211 07245a0bc2 Enabled SDL_mixer sound backend for D2 movie playback. Works with SDL_mixer 1.2.8. 2007-10-11 13:23:00 +00:00
zicodxx 2a889d2d9c Moved Windows midi functions to digi_audio_* functions 2007-09-30 13:38:25 +00:00
zicodxx e955dff203 Updated docs; Removed GP2X support since I won't support this device anymore 2007-09-28 22:44:04 +00:00
md2211 a0b4cac982 * Removed executable flag on most files
* Reverted value of SOUND_MAX_VOLUME
2007-09-21 19:06:05 +00:00
md2211 84e32c1f4f Fixed missing stuff for NDEBUG in digi.c, in revisions 610/611 2007-09-18 19:24:44 +00:00
md2211 324c0df6a1 * Huge SDL_mixer refactoring; sound backend now selectable at runtime, in D1X & D2X
* Sound system now uses a set of function pointers (digi.c) as a single interface to either SDL or SDL_mixer
* Ported jukebox functionality to D2X
2007-09-18 13:37:39 +00:00
zicodxx b35d8bc170 Improved CPU cycles sleeping for -nicefps - moved out of main frame calc loop and taking care of 10ms timer inaccuracy 2007-08-25 23:35:19 +00:00
zicodxx be2eff9ae3 Moved piggy init loading for D1 missions to load_mission_d1 2007-08-24 13:36:01 +00:00
zicodxx 2434d100a8 FindArg cleanup - GL-Debug and SDL arguments 2007-07-23 18:13:49 +00:00
zicodxx 8e2aa8ea2a Cleaned up more FindArg's - general Debug Options; Cleanups 2007-07-18 20:13:17 +00:00
zicodxx 29ef28bef3 Cleaned up more FindArg's - (most important) OpenGL Options 2007-07-15 21:22:07 +00:00
zicodxx a2a6959d39 Cleaned up more FindArg's - Graphics Options 2007-07-15 15:23:45 +00:00
zicodxx 8217e50e0c Cleaned up more FindArg's - Sound Options 2007-07-14 22:36:04 +00:00
zicodxx 8efe1ea653 Placing FindArg calls to seperated function, putting variables to a struct - frist step, not finished, yet; Large code cleanup 2007-07-14 20:33:42 +00:00
zicodxx 37b563d4cd complete removal of hmiplay-code usage 2007-06-15 08:10:19 +00:00
zicodxx b7f02568c0 fixed more compiler warnings 2007-06-11 15:54:09 +00:00
kreatordxx 657e71fc93 look for music files in "Music" dir, store MIDI's in "Music/<hogfile>" to better support custom MIDI music 2007-05-27 05:27:17 +00:00
zicodxx f20ec1e42e Added config field to map a Mouse Axis/Wheel to cycle Primary and Secondary weapons; lots of controls-related code cleaning 2007-05-14 13:38:44 +00:00
zicodxx 49eaa12468 removed deprecated Makefile stuff 2007-05-03 15:16:27 +00:00
zicodxx f1d191f665 removed -nocdrom argument, only use Redbook audio if specified with -redbook 2007-04-15 11:02:55 +00:00
kreatordxx 4ff4ddd0a3 include SDL/SDL.h for all platforms and physfs/physfs.h for Mac OS X to avoid having to add some hard-coded include paths 2007-04-09 02:41:45 +00:00
kreatordxx 55bd12c349 remove final remains of VR_current_page and VR_use_paging, resolution variable cleanup - remove VGA_current_mode, VR_screen_mode, VR_render_buffer[0].cv_bitmap.bm_w/h and VR_render_width/height (Game_screen_mode is the actual resolution put in an int, not an index) 2007-04-05 13:23:44 +00:00
kreatordxx 751cbe1a91 add gr_flip, allowing significant cleanup including the moving of gr_show_canvas, Pages and VR_screen_pages to arch/dos/gr.c 2007-03-21 11:32:33 +00:00
zicodxx 558977d846 make Joystick Deadzone save in PLX file (Thanks xatmes) 2007-03-04 15:41:11 +00:00
zicodxx effde7d236 Added ENTER as Game key 2007-02-19 23:28:43 +00:00