Commit graph

300 commits

Author SHA1 Message Date
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 02e7490c63 When printing Gamelog, make sure canvas is NULL 2008-11-17 23:28:59 +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 30f85fd3f9 When Error() is called, set Function_mode to FMODE_EXIT... basically to prevent the messagebox would try to render the game in background if the Error would happen while mission loading 2008-11-10 00:17:03 +00:00
zicodxx 7d96dea2a5 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 3bf0eff09b Reverting integer casts for font spacings - was for testing only - not intended to go into the last revision 2008-11-09 14:46:31 +00:00
zicodxx 8a2da79504 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 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 21e59bca6f Made move_towards_segment_center() use move_towards_vector() instead of just changing object position suddenly - smoother; Changed back the robot:controlcen collision back to original - the AI just relies to often on no-damage collisions, especially when our segment suddenly is a controlcen 2008-11-03 11:39:56 +00:00
zicodxx 61dfe70f5c Fixed Typo 2008-11-03 11:36:16 +00:00
zicodxx 54be20c5e1 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 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 b174709a1b 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 debb9d7159 Make glLinewidth depend on screen height, not width (for Widescreen monitors) (commit came with last revision, sorry) 2008-10-31 16:58:44 +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
kreatordxx 76ddc8559d Allow hires Mac demo graphics, fix endian issue with reading GameBitmapXlat (fixing crash on PowerPC Macs using PC demo), put a return on the end of an error message 2008-10-31 13:09:30 +00:00
zicodxx 23a2d3f9dc 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 218e73b50f Show debug help screen options in release build as well as some might be actually useful for players 2008-10-30 10:45:13 +00:00
zicodxx 8bd64b367d Docs update: Infos about Jukebox over SDL_mixer, SDL_mixer is not experimental anymore, yet another .de->.com change 2008-10-29 23:29:46 +00:00
zicodxx 3522661758 Cast LINE_SPACING to integer for menu Scrollbox usages - fixing scrolling issues with non-integer-scaled font sizes 2008-10-29 11:50:15 +00:00
zicodxx b95db9b579 Yet another check for collide sounds as FixedStep is not necessarily true if the actual collision happens 2008-10-29 11:04:45 +00:00
zicodxx beb2ab07ef 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 52ed53f829 Revisited Kip's non-Tracker changes and implemented to D2X: Prettier SConstruct output, Forgotten newlines at end of files, Improvement in dl_list code, Revamped menu GUI defines; I am NOT HAPPY I have to do these changes seperately 2008-10-28 17:58:54 +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 a471aa0f2f 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 820961c99a 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 21efb60807 Fixed handling for multi_quit_game; Always keep setting -1 for ping table entry of current player so just not to use any previous entry 2008-10-23 09:17:54 +00:00
zicodxx 804e26d96f 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
kreatordxx 3a9ee43dcd Fix some gcc 4.0 warnings (-wall flag) 2008-10-21 11:38:03 +00:00
zicodxx 640aad4541 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 fcc853ffe8 resolution 1440x960 to 1440x900 - typo 2008-10-20 11:11:56 +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 8637e3ff01 Update object segment after object position interpolation. This is always done in DEBUG, but not in RELEASE, where further movement would break at segment check 2008-10-01 11:53:27 +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 e3ee0c2c19 Make network endian code more consistent between DXX's, use PUT/GET_INTEL macros more, remove redundant no_cpp_precomp macro 2008-07-26 06:14:31 +00:00
zicodxx 9ecb663ed3 Fixed IPX default socket (typo); Using function pointer for IPX-based sockets instead of globals 2008-07-19 22:28:31 +00:00
kreatordxx 1e0aa51ac1 No using chdir for Mac OS 9 - it doesn't have it 2008-07-01 11:22:36 +00:00
kreatordxx 4def3501ef Make sure the right audio CD track is played when starting a level 2008-07-01 11:18:37 +00:00
kreatordxx adffb1065b Add snprintf for Mac OS 9 2008-07-01 11:15:52 +00:00
kreatordxx bfa9cb8843 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
zicodxx 5514c90179 Do not apply new bump_two_objects() when companion object colliding with controlcen due to inability of companion to find alternatives 2008-06-28 10:52:10 +00:00
kreatordxx 1b89b021d8 make sure it knows whether an audio CD just inserted is the official one 2008-06-17 13:41:29 +00:00
kreatordxx 0b7aa9dc0d add necessary #includes for last commit (whoops) 2008-06-15 11:48:01 +00:00
kreatordxx 558b2399a3 tidy up music keys, ALT-SHIFT-F9 ejects audio CDs 2008-06-15 08:50:05 +00:00
zicodxx 6d35c8d91f Fixed scores write (wasn't PhysFS); Fixed PLAYING_BUILTING_MISSION in D1X; Better call for DoJasonInterpolate in demo code (hopefully) 2008-06-14 23:29:39 +00:00
zicodxx 8a1222c961 Setting GameArg.SndNoSound to true if SDL_mixer init fails 2008-06-12 08:01:00 +00:00
zicodxx 3dd8b60118 Improved Player relay for Endlevel status; Fixed leaving when UDP hosts leaves; Fixed multi_frame_calling while demos since demos can be Game_mode & GM_MULTI; Re-added lost collision fix between robots and reactor; Made state_defaut_item static so selected state slot stays selected 2008-06-11 21:18:50 +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
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
kreatordxx 164e1f2350 give render_frame call both arguments (compiler error) 2008-05-24 08:56:56 +00:00
zicodxx 6b1ef665bf Reverting screenshot stuff - error prone 2008-05-21 21:59:16 +00:00
zicodxx dcba6e84bd Added a new set of preset resolutions 2008-05-21 21:50:14 +00:00
zicodxx f0e0d797da Updated docs 2008-05-21 14:25:00 +00:00
zicodxx 264014081e Make Screenshots over backbuffer; Implmented filtered mouse delta reading 2008-05-21 13:58:27 +00:00
zicodxx 8632098a9f Decreasing divisor for mouse axis reading - making mouse sensitivity practically much higher 2008-05-19 21:58:49 +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 8d6a5f125c Added support for another egistered D1 HOG with different patching order... damn you PARALLAX 2008-05-19 12:45:33 +00:00
zicodxx 0afae4e25c If a key combo is called which uses key of default wepaon binding, flush inputs 2008-05-19 11:31:15 +00:00
zicodxx 6f5d6fd2e2 Reworked keys for song changing a bit; Added Song control keys to help menu 2008-05-18 13:20:06 +00:00
kreatordxx a7d8f850a9 set Jukebox as the default jukebox path, for Mac OS 9 look for dxx.ini outside the app bundle 2008-05-18 07:13:07 +00:00
kreatordxx 6ff14e726c remember the last IP address entered for UDP instead of parsing -ip_hostaddr 2008-05-16 11:39:27 +00:00
kreatordxx bfbb7c50ad use atoi instead of sscanf for plx reading, so the setting for showing the reticle is read properly on big endian computers 2008-05-10 10:46:34 +00:00
zicodxx e6ec09869e Some code improvements and small fixes 2008-05-08 18:29:52 +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
kreatordxx acb56ca502 make sure it doesn't try to write to gamelog.txt after it's closed 2008-04-27 05:06:30 +00:00
kreatordxx a7d9bba643 get it to work for Mac OS 9 2008-04-24 14:27:54 +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 410dadb7c9 Hack to force DOS-style newlines for _WIN32 in gamelog.txt 2008-04-21 23:03:18 +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 53ed00581b Fixing collision bugs; Cleaning hudmsg.h; Solving death sequence timer without GameTime and removed another global 2008-04-13 13:52:58 +00:00
zicodxx 44682b4d8a Fixing collision bugs; Cleaning hudmsg.h; Solving death sequence timer without GameTime and removed another global 2008-04-13 13:14:19 +00:00
zicodxx 9729e0adc3 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 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
kreatordxx a62060bacf show a messagebox if there's an error and graphics are initialised, update Xcode project 2008-04-08 12:51:21 +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
kreatordxx 2b94bf476a add support for Mac D1 sounds (converted to RAW format), update Xcode project 2008-03-27 10:43:35 +00:00
zicodxx b4bbed6ed8 Do not actually blit movie frame if palette has been changed 2008-03-25 13:12:27 +00:00
zicodxx 3a747dbdee include/loadgl.h, main/newmenu.c, main/titles.c: Added definitions for OpenGL fucntions which might not be included in system headers; Cleaned and declared briefings palette hacks [EMULATING_D1 needs work]; Menu right border shadow was too wide; 2008-03-25 12:28:02 +00:00
zicodxx 96f1a961f6 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:42 +00:00
kreatordxx 932607cab4 allow hoard.ham to go in 'Data' subdirectory 2008-03-22 06:23:19 +00:00
kreatordxx 34046e15ac add prototypes for show_game_stats and network_do_join_game to fix warnings 2008-03-22 04:57:52 +00:00
kreatordxx 10e956ccde allow dxx.ini to stay with the binary for *NIX systems, with Mac OS 9 don't put user-created files inside the .app bundle 2008-03-22 04:48:37 +00:00
kreatordxx 337434dcf5 allow dxx.ini to stay with the binary for *NIX systems, with Mac OS 9 don't put user-created files inside the .app bundle 2008-03-21 13:52:54 +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
kreatordxx bc7c48320b update d2x.xcode to build universal binaries (requires Xcode 2.1 or greater), update source file list 2008-03-19 12:08:23 +00:00
zicodxx 6479a897b2 Fixed some memory issues; Fixed some HUD element alignment; Only send NetDrv packets if NetDrvInstalled is true; Fixed demo glitches; Actually using Game_mode in demos to make Newdemo_game_mode hacking obsolete 2008-03-08 22:37:09 +00:00
zicodxx 10f39559bf Fixed wrong font width spacing, -gl_prshot, mission loading, null-terminatinon in several menus, cockpit glitch; Improved gl_reticle, -noredundancy; Some code cleanup 2008-02-27 22:05:58 +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
kreatordxx 4d6d0dd246 fix bug where a Mac host crashes on starting a game 2008-02-24 06:40:56 +00:00
kreatordxx 0b4ec2d6ab make sure the right error message is shown if it can't open a demo 2008-02-24 06:37:34 +00:00
kreatordxx ba1203b822 use d_ memory functions in hmp2mid, since I already started to erroneously 2008-02-17 04:47:38 +00:00
kreatordxx bdabfbfd5a don't try and free mid_track_buf if it isn't allocated, if midi conversion doesn't work 2008-02-17 01:52:37 +00:00