Commit graph

409 commits

Author SHA1 Message Date
Chris Taylor dc84147b51 All gadgets now send events 2012-03-03 20:19:15 +08:00
zicodxx 4366adbea9 break out of loop in event_send() in case window_send_event() closed the window to prevent invalid read on memory 2011-11-27 21:36:02 +01:00
zicodxx 2f08947f48 Introduced extra short based on MULTI_PROTO_VERSION for version-independent Multiplayer-compability-check; Changed version to 0.57.2 to make new version checking not cause problems with stable release 0.57.1; Removed old version_major/minor variables from netgame and player structures since DXX handles this independently; Cleaned up old version stuff and copyright messages 2011-11-02 01:04:42 +01:00
Chris Taylor 6978ef2dd0 Return 1 (event handled) in ui_dialog_handler for mouse button events if the mouse was in the dialog 2011-10-30 19:09:11 +08:00
Chris Taylor 5dc76799f2 Add support for 'modeless' windows - windows that will allow events to be passed on to the underlying window. Intended for the editor 2011-10-09 18:32:53 +08:00
zicodxx 52f3f87359 Avoided variable array initializations which some compilers do not like; Also made sure declarations happen first inside (sub)functions; Fixed set but unused variables 2011-09-26 23:00:24 +02:00
zicodxx d9ca3a2287 Removed support for IPX protocol and MS-DOS-Multiplayer-compability due to age and lack of real need and to really improve on the Multiplayer without adding too much complexity for backwards-compability 2011-09-14 01:15:32 +02:00
Chris Taylor 81f2b39cb3 Define USE_TRACKER for Mac OS X, remove reference to deleted cfile.h 2011-09-13 09:42:37 +08:00
Chris Taylor 94f896c169 Move EVENT_MOUSE_DOUBLE_CLICKED support from ui/mouse.c to arch/sdl/mouse.c for tidiness and to possibly use it outside the editor 2011-09-12 11:03:57 +08:00
zicodxx 7275fd8b87 Changed version to 0.57.1; Updated release notes 2011-07-16 21:21:14 +02:00
zicodxx 5ea72ad2fc Fixing Redbook hooks: Initialize last_check_time in RBACheckFinishedHook(); Execute RBACheckFinishedHook() during EVENT_WINDOW_DRAW in standard_handler() as EVENT_IDLE rarely happens if you have a shivering Joystick connected for example 2011-07-16 16:02:22 +02:00
zicodxx b83e27005f Bail out of hmp_reset() if midiOutOpen fails and return error with -debug set; execute hmp_reset() before first song plays; renamed digi_win32_stop_current_song() to digi_win32_stop_midi_song() to keep naming convention; Fixed some compiler warnings 2011-07-15 10:43:03 +02:00
zicodxx 97f2bb11cb Stability fixes: avoid somfusions with same named variables in one function; Properly sort out players from player list that use too long filenames; Removed call for gr_set_fontcolor in kconfig where no canvas is set, causing crashes when trying to reassign a button, key or axis 2011-07-13 23:26:43 +02:00
zicodxx 325fe4f23f Make sure hmp_reset() is only executed if a song was playing 2011-07-08 01:46:31 +02:00
zicodxx dd991fbf6b Got rid of cfile code: Renamed cfile-functions to use PHYSFSX-naming convention, Replaced cfile-macros with proper PHYSFS(X) calls; Introduced PHYSFSX_exists() which can check case-sensitive or case-insensitive to give more flexibility with game content 2011-06-01 09:59:55 +02:00
zicodxx d34936d775 Added own channel management to SDL_mixer sound interface since the builtin channel management of this lib cannot handle our needs; Little code cleanup 2011-05-30 02:17:45 +02:00
zicodxx 52a4c9ff59 In event_process() if a window closes while being drawn and there isn't a previous window we can get the next from just finish processing for this frame 2011-05-26 09:41:28 +02:00
zicodxx 2a60b32da2 Removed key_flush() call from save_screen_shot() - not needed anymore due to new input reading and only screws up ingame controls 2011-05-19 23:49:04 +02:00
zicodxx dbd7e83c35 Changed version from 0.56 to 0.57; Added first draft for RELEASE-NOTES.txt; updated docs 2011-05-07 02:51:21 +02:00
zicodxx ec3bf88bec Enabled Tracker support for Mac OS 2011-05-07 00:53:54 +02:00
zicodxx 4e21bb9cd2 When reading ingame controls only flush mouse delta timer-based since reading is event-based already, allowing high precision no matter the game speed; Removed Mouse smoothing/filtering as it's now unnecessary due to event-based motion handling 2011-04-22 13:01:38 +02:00
zicodxx 89ef310ec6 Added SDLK_WORLD_** symbols to keyboard array to enable layout specific keys and make the game more flexible 2011-04-21 21:22:46 +02:00
Chris Taylor cc5a7d1359 Fix broken m3u playlist support (in jukebox_play() path resolving); point to default descent.m3u playlist for Mac OS X (will be included in bundle); better error reporting in mix_play_file(); only make relative Jukebox path in the menu absolute after browsing it - relative paths are more flexible; allow select_file_recursive() to figure out PhysicsFS relative paths passed to it; stop the music if Jukebox is chosen and unavailable (used to just keep playing the last song) 2011-04-18 20:32:36 +08:00
zicodxx 025f04c389 Smash texture list when switching between window mode and fullscreen prevent invalid textures; Made code to capture Screenshots more similar between OpenGL and OpenGL ES 2011-04-10 12:29:06 +02:00
zicodxx eb7e001c2f Made lighting code work with actual RGB values and added feature to let certain objects emit colored dynamic light as well as let mine flash red when control center destroyed (OpenGL-only at the moment) 2011-04-07 22:32:51 +02:00
zicodxx 7f18afd5d7 Client-side implementation for Tracker support by Matt 1360 Vandermeulen including improvements in udp_dns_filladdr and IPv4/IPv6 compability; Very little adjustments by me, too including IPv6 support for Windows (untested); Actual tracker code will follow later as seperate branch when it's done 2011-04-05 02:24:34 +02:00
zicodxx d05344d723 Fixes for OpenGL ES implementation 2011-03-28 01:57:18 +02:00
zicodxx c960d5505a Added cv_fade_level to canvas structure to replace Gr_scanline_darkening_level; Added cv_blend_func to canvas structure to set blending; Introduced gr_settransblend to set cv_fade_level and cv_blend_func; Added function to set normal blending, additive alpha blending and additive color blending; Moved Special transparency effects from g3_draw_bitmap to render_object to set individual transparency and/or blending for each object outside of OpenGL-specific code; Added special blending for fuelcenter and force field effects as well; Removed unused LASER_HACK code; Renamed OglAlphaEffects variable of PalyerCfg to AlphaEffects as I plan to implement this kind of effects for Software renderer, too 2011-02-23 17:46:39 +01:00
zicodxx ffee2235a9 Set zNear for gluPerspective to 0.1 to prevent ugly clipping while passing illusory walls; Set zFar to 5000.0 to prevent disappearing automap in large distance - all still sane enough for Intel chips so my eeePC is safe nyahahaha 2011-02-18 00:43:05 +01:00
zicodxx d020a3136e Draw laser effects with special blending instead of disabled DepthMask; Added special blending for transparency effects as well to let them kick more ass; Corrections while rendering outside part of endlevel sequence with disabled depth testing and dynamically changing Render_depth to make the mine exit visible again while not rendering the exit tunnel tru the planet terrain 2011-02-18 00:17:51 +01:00
zicodxx 097dd32c5a New approach to handle a bunch of closing windows - removed window_do_close() again, reworked game_leave_menus by checking window_get_front() and closing this window until it's Game_wind, while event_process checking if window still exists after drawing and if not, take next window from previous which should be updated by then 2011-02-12 23:58:41 +01:00
zicodxx 43ebcd249b Added secondary weapon indicators to new reticle types; Fixed disks being drawn as circles - whoops 2011-02-10 20:53:23 +01:00
zicodxx 031420cf74 Simplified ogl version of gr.c in terms of SDL video flags and fullscreen toggle; Added command-line/INI option to remove borders from windowed program 2011-02-10 15:30:08 +01:00
zicodxx 7b5102a0f9 Fixed memory leak produced by drawing circles and disks 2011-02-09 17:18:35 +01:00
zicodxx 488c44f9cf Increased key repeat values to react a little more like the MS-DOS version of the game but a little slower so I can still stop at the correct item; In automap reorganized control_info swapping as well as wiggle state handling to properly work in connection with the new input handling and Multiplayer where game is not paused 2011-02-06 14:25:37 +01:00
zicodxx c7a65c9313 Included new window structure flag w_closing_state and let window_close() set this flag - after drawing all windows, check them again and call window_do_close() which then actually closes the window(s) marked to. Solving all sorts of problems when windows close while being drawn (network error messageboxes, game_leave_menus(), etc.) 2011-02-03 11:48:27 +01:00
zicodxx 21836c5c6b After rendering Reboot reticle, reset glLineWidth to default value again 2011-02-02 02:12:05 +01:00
zicodxx 96782e092a Added event types for all input actions; Rewrote kconfig code to work with events; static defined inputs will not trigger kconfig-mapped inputs anymore; Simplified keyboard, mouse and joystick code a lot due to event-based handling; Added function to toggle SDL key repeats on and off; Put timer_update() to event_process; Removed return when event_poll() is idle to get cursor hiding to work again; Added a small delay between cursoe hiding and re-enabling to cursor will not accidentially enable by SDL event centering cursor while hiding 2011-02-02 01:36:49 +01:00
zicodxx 518e01fbe8 In event_process() check for wind->next before sending EVENT_WINDOW_DRAW in case drawing will free wind 2011-01-26 11:55:47 +01:00
zicodxx 33d3b1c6a8 Added a simple random function for the Jukebox; Removed one small printf I once added for debugging 2011-01-20 12:17:30 +01:00
zicodxx 9f6cbc8c6c Retired most of the Assembler code except the generic i386 scanline renderer; Removed all leftovers of Direct3D implementation; On the way make a some code more similar between D1X-Rebirth and D2X-Rebirth 2011-01-19 21:35:14 +01:00
zicodxx d5ac0af494 Before duplicating last pixel column or row in ogl_filltexbuf, make sure we are still in actual bitmap boundaries; Incrementing defines SHIELD_GAUGE_Y, SHIP_GAUGE_Y for HIRESMODE to fit these gauges pixel-correct in Cockpit mode 2011-01-17 15:00:26 +01:00
Chris Taylor b64794e1b4 Still send idle events when receiving SDL joystick events, fixing possible joystick issues 2011-01-17 12:17:21 +08:00
zicodxx acb1494124 in ogl_filltexbuf add pixel row matching color of bitmap edge to get a clean border when filtering cockpit overlay bitmaps 2011-01-16 19:33:41 +01:00
zicodxx 025a6c3951 Added feature to enable Anisotropic filtering is supported by hardware or driver; Reworked way of handling texture filtering information so ingame switching is possible again 2011-01-16 01:50:42 +01:00
zicodxx a52875f96e Fixed alpha limit for ogl_ulinec(), gr_uricle(), gr_disk() 2011-01-15 20:51:17 +01:00
zicodxx c0dfe46173 Fixed some compiler warnings 2011-01-15 00:33:13 +01:00
Chris Taylor 030aef43e3 For editor, replace use of ui_mega_process() with event_process(), with the editor's own default event handler; add EVENT_MOUSE_MOVED event with event_mouse_get_delta() accessor; add event_key_get() to replace ugly casting; rename mouse_get_button() with event_mouse_get_button() to keep with name convention; only send idle events when there are no input events so editor still works properly (or the same anyway); add and use event_send() function for input events (including idle) 2011-01-14 17:51:13 +08:00
zicodxx 02c5c1bda9 Reverted most of the last commit - didn't work well when timer was updated too frequently 2011-01-11 00:37:45 +01:00
zicodxx 4026c8a73a In timer_update() use i2f and fixdiv for SDL_GetTicks() to get more accurate values to F64_RunTime; Added rollover check for SDL_GetTicks() to timer_delay2() 2011-01-10 22:59:00 +01:00
zicodxx 39e956e2bc Added different reticle types with RGBA and size settings; Apply RGBA and size to FlightSim Indicator and Guided Crosshair; Added Brightness Slider to Graphics options menu; Added OpenGL usage for gr_disk 2011-01-10 16:12:04 +01:00
zicodxx adad856f38 Improvement on the HMP track loop feature by TURRICAN; Added small template fix for descent.hmp which is supposed to be activated soon as we have some kind or Checksum function 2011-01-09 17:51:48 +01:00
zicodxx cdac541815 Fix small bug in vertex_array for ogl_ubitblt_i 2011-01-06 20:13:04 +01:00
zicodxx 449a5dffb1 Added OpenGL ES support - contributed by Florian Feucht and Oliver Haag 2011-01-06 12:43:58 +01:00
zicodxx 3adc5fe77a Saving weapon keys in PLX like in D1X-Rebirth; Added Cycle Primary/Secondary for Mouse which makes wheel axis cycling unnecessary and also let Weapon Keys be assigned to a Mouse button; If GameArg.NoStickyKeys do flush these keys so they can be used as normal game keys - otherwise ban them; Fixed crash when reassigning mouse button greater than 3; Joystick/Mouse function taking button as argument now check for sanity of this value so they can safely be used in kconfig code and deal with unassigned key values 2011-01-03 01:09:09 +01:00
zicodxx 8dcbb3bd81 Introduced function key_ismodlck to get the status of modifier keys or sticky keys; Let sticky keys survive flush so we can accurately use their real states; Added key repeating via SDL; Depending on status of KEY_NUMLOCK keypad will either be used as numerical or arrow input in menus; Fixed small typo for mouse.h include in credits.c 2011-01-02 18:07:44 +01:00
zicodxx 6e81498a86 Added Sensitivity/Deadzone menu with sliders for each movement based action seperated for joystick and mouse to support all kinds of configuration - regardless the amount of joystick axes and whatnot; SDL_WM_GrabInput does not only capture mouse but also focus keyboard input - changed code to respect this fact and made grabbing a menu option which is enabled by default 2010-12-28 19:11:10 +01:00
zicodxx f429c8c1ea Disabling IPv6 support for OS X since in Snow Leopard it's buggy, making all Multiplayer pretty much impossible - re-activating soon as proper patches from Apple are in sight 2010-12-24 10:06:38 +01:00
zicodxx fe84fa3a9a Made GameTime to GameTime64 using fix64; Changed all structures saving GameTime64 for internal timer purposes to store fix64 and added converting functions to save such times in fix; For Savegames/Demos always reset GameTime64 to 0 while saving and putting all timer values to safe limits, Multiplayer objects are sent in similar fashion 2010-12-22 01:17:59 +01:00
zicodxx 70e43722e1 In window_close() prev window did not get EVENT_WINDOW_ACTIVATED but the recent closed window got it causing previous window not being activated anymore and a bunch of memory errors 2010-12-22 01:11:14 +01:00
zicodxx 3bcb0ecdde Introduced new data type fix64 to be used for new timers which can last 4462756 years instead of 9 hours; Introduced new timer functions to update and query program time; Used new timer all over the program except GameTime (which comes next) 2010-12-11 00:18:17 +01:00
Chris Taylor 3ef5dff1a6 Add CON_DEBUG level con_printf's for basic events (not EVENT_IDLE or EVENT_DRAW though) 2010-12-05 21:51:34 +08:00
Chris Taylor 47236b142f Add missing stuff to get it to build on Mac OS X; turn fullscreen off when showing a messagebox for Mac 2010-12-01 00:00:46 +08:00
zicodxx e883f01ec9 Add support for Windows native error/warning boxes; Only print to stdout on Linux/other *nix; Fixed redundant printing of Error and Warning via stdout 2010-11-30 13:46:23 +01:00
zicodxx acac225493 Large improvement for _WIN32 native MIDI code by TURRICAN0: supprt for HMP track loop, seamless song looping, GS reset, pausing/resuming midi, volume control for each MIDI channel; Set GameArg.SndDisableSdlMixer automatically if compiled without SDL_mixer support; On _WIN32 play HMP natively again 2010-11-28 16:49:40 +01:00
Chris Taylor 4fa20a3d9f Add support for OS native error/warning boxes, only implemented for Mac for now 2010-11-28 20:08:29 +08:00
Chris Taylor dc85211d37 Make sure read_m3u won't read past the end of the buffer, causing a crash 2010-11-22 20:49:44 +08:00
zicodxx 1482048152 Created function PHYSFSX_isNewPath to check wether given path has already been added to Searchpath or not; Used PHYSFSX_isNewPath for menu browsing code instead it's own implementation; Using PHYSFSX_isNewPath for Jukebox directory, too to make sure Jukebox will not accidentially remove Game content depending on user selection; Also only keep Jukebox directory added until files are stored to prevent any other file present in this path can override or add anything to the game 2010-11-21 12:55:35 +01:00
Chris Taylor 53eef82836 Make sure read_m3u won't read past the end of the buffer, causing a crash 2010-11-13 13:11:25 +08:00
zicodxx 583d035b89 Apply transparency to Hoard Orb if effect activated 2010-11-08 23:39:53 +01:00
zicodxx ae22f8e037 Instead of writing converted MIDI to file, write to buffer so it can be played directly 2010-10-29 17:40:42 +02:00
Chris Taylor e57ffac570 Fix errors for Mac OS 9, Mac OS X 'd2x' target builds again 2010-10-16 18:57:50 +08:00
zicodxx 283172aff6 Added format arguments to all printf, sprintf and snprintf calls missing them to prevent warnings/errors with some distributions of gcc 2010-10-14 16:46:20 +02:00
Chris Taylor 846699a2e6 Fix errors for Mac OS 9, Mac OS X 'd2x' target builds again 2010-10-10 18:48:24 +08:00
kreatordxx ba7d0513c3 Add support for M3U playlists, tweak 'Jukebox playing' message so it shows the end of the path when truncating 2010-09-26 13:15:20 +00:00
kreatordxx 9b47f46e5c Enable IPv6 for Mac OS X 2010-09-17 09:44:45 +00:00
zicodxx 7e6ab4745a DXX-Rebirth release v0.56 2010-09-04 13:06:50 +00:00
zicodxx 5923bce64d When opening music file via filehandle, made sure buffer is freed after playing to prevent major memory leakage 2010-09-02 14:00:26 +00:00
zicodxx 099c8cf86f Rewrote code to control Texture Filtering a little so it's easier to apply Mipmaps for different parts of the game independently; Made Movie Filtering a menu option which must be enabled seperately; Added Movie Subtitles toggle to misc game options 2010-09-02 13:55:28 +00:00
kreatordxx 466f51e8f5 On Mac OS X - no longer have to copy SDL_mixer.h to SDL framework; frameworks can now be in /Library/Frameworks; fix for obscure compile error involving u_int32_t 2010-09-02 00:07:37 +00:00
kreatordxx 55871bba3e Add path browsing feature to make song file/directory selection easier 2010-08-27 14:09:19 +00:00
kreatordxx 39fd679cb9 Use more reliable Mix_LoadMUS for music in directory searchpaths, so WAVE's and MP3's are correctly loaded (probably others) 2010-08-22 13:27:47 +00:00
zicodxx 6c61d30ffa Added res-file to be linked in Windows build to show icon in Filemanager; converted icon file to be smaller 2010-08-21 17:08:53 +00:00
zicodxx 9a42f9ca8b Bind WM-Icon to application 2010-08-21 06:51:13 +00:00
zicodxx 47255f4e31 For each Music playback system defining own volume scaling definition which was wrong for SDL_mixer 2010-08-19 15:54:19 +00:00
kreatordxx afb0c08a1e Between event sending, exit event_process if front window is different, fixing netgame joining problem introduced with commit on 20100731 2010-08-06 06:49:45 +00:00
zicodxx e8c22880b9 If mouse_toggle_cursor is set to activate, do not toggle ursor visibility as mouse_update_cursor_and_grab might decide it should be hidden 2010-08-01 17:46:13 +00:00
zicodxx fd32ea98c4 Builtin music list now dynamically allocated and not limited to 30 songs; Instead of never loading new level when loading savestate ingame, only do this for Redbook and Custom Music playing order 'continously'; if no endlevel song is specified in Custom Music continue with level music 2010-08-01 17:42:38 +00:00
zicodxx c50081f72c Added event_flush to take place in game_flush_inputs which will clean SDL events which may be buffered while event_process was suspended; suspend Game_Wind while loading restoring save state while playing a level to properly flush controls and reset timer; when toggeling cursor, also directly modify the mouse to wanted behaviour instead of waiting for mouse_update_cursor_and_grab 2010-07-30 17:59:21 +00:00
zicodxx 808dbae5ed Using rather sane values for gluPerspective - fixing Z-Fighting bugs on Intel chips; in Fullscreen toggle, always apply new viewing values independent of Screen_mode 2010-07-29 20:19:52 +00:00
zicodxx 100cbe51cb 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 9f5860a54a 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 0e0b04c138 Fixing automatic mouse release function - still this does not seem to work in every case 2010-07-27 19:42:28 +00:00
zicodxx 3a67eed1a8 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 88373bd89d 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 4ed5696661 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 27c1d4733a 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 c25dfdc7e7 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 f2df60a12d 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 0ce37b89bb 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