Commit graph

885 commits

Author SHA1 Message Date
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 7b1bfbbf2c Removed leftover of mouse grabbing from set_screen_mode - forgot to do this in rev1192 2010-07-29 21:28:53 +00:00
kreatordxx db15309f5f Tidy up use of set_screen_mode 2010-07-29 08:30:46 +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
kreatordxx 1f6e72f781 Show stars background for died in mine and secret level messageboxes; equalise fuelcen.h and cntrlcen.h 2010-07-27 11:41:43 +00:00
kreatordxx c7da78f144 Fix crash caused by last commit (whoops) 2010-07-25 02:43:22 +00:00
kreatordxx 961fd2b1b8 For menus, only call the user function for closing immediately before closing, fixing memory errors when the user function frees memory 2010-07-25 02:30:53 +00:00
kreatordxx 936f46fbeb Rewrite quit system, fixing *many* bugs with it :P 2010-07-25 01:22:44 +00:00
zicodxx 6c4cd7b22e Fixing crash when joinging game over UDP Netlist: when exiting the menu for any reason, return 0 instead of following the code and possibly lead to drawing text from a newly free'd pointer - D'OH 2010-07-21 16:58:38 +00:00
zicodxx 8d78876d13 Thanks to Marix for hinting me I should not init a pointer with quotes if I plan to allocate/free it... my stupid-level officially broke the record 2010-07-20 18:38:29 +00:00
zicodxx d99abc5afd Fixing some harmless compiler warnings caused by missing includes, missing newlines at end of file; cleaned up strutil.h 2010-07-19 18:17:08 +00:00
zicodxx d78a16e229 In briefings make sure Current_color cannot exceed possible array bounds 2010-07-19 17:30:25 +00:00
zicodxx c6594d2184 Introduced state_quick_item so we can safly check if there is a valid quicksave slot wihtout messing around with state_Default_item which is supposed to always show a valid slot in the first place 2010-07-19 17:07:12 +00:00
zicodxx f5aa8ce8bc Instead of screwing by possibly using negative array indicies in find_seg_side() return -1. In ordering segments make this result in unimportant order; Taking in some Asserts which were disabled years ago by me. Let's fix this for real when we get to it 2010-07-17 11:57:07 +00:00
zicodxx fc44ec76f5 Removed OGL hack to fix overlapping room in D1 lvl19 and rather move vertex a little. Still a hack but now without messing Depth test 2010-07-17 11:19:29 +00:00
zicodxx 2c1045d4b5 If newdemo_start_playback fails if random file is given set -autodemo to 0 to prevent endless loop 2010-07-16 13:03:12 +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 1833474b12 Fixing showing options menu in demos - was still called (or rather not) by obsolete variable 2010-07-16 06:27:49 +00:00
kreatordxx f16671a077 Make sure the right canvas is set for titles and briefings, fixing bug where briefing is shown in the cockpit when using 'freespace' cheat 2010-07-15 09:45:25 +00:00
zicodxx 896a3770c8 Scale tab stops in briefings to font-size correctly 2010-07-15 09:22:33 +00:00
zicodxx ac8cf9aaf6 Cleaned the variables used for newdemo code; Instead of giving both old and new values to special recording functions, added new variables to demo code serving this purpose and also checking for redundant record calls which only would waste bytes; Removed duplicated-object-id-hack which did not work as expected and caused jittering on playback; In that process, found a bug where Num_open_doors might nor be set correctly - cleaned that up a little and got also rid of one aweful goto; Made sure cloaked walls are recorded FPS-independent but rather fade-value-dependent 2010-07-15 06:09:23 +00:00
zicodxx 8c19958db8 Cleaned the variables used for newdemo code; Instead of giving both old and new values to special recording functions, added new variables to demo code serving this purpose and also checking for redundant record calls which only would waste bytes; Removed duplicated-object-id-hack which did not work as expected and caused jittering on playback; In that process, found a bug where Num_open_doors might nor be set correctly - cleaned that up a little and got also rid of one aweful goto; Made sure cloaked walls are recorded FPS-independent but rather fade-value-dependent 2010-07-15 05:40:25 +00:00
zicodxx debfa159d7 Addition for last revision - just screwed up my working copies 2010-07-13 06:45:15 +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
zicodxx 65679c7c0f Trying to improve reliability to find appropriate homing object by using vm_vec_mag/normalize instead of their *quick equivalents; Removed code which supposedly meant to track objects near reticle - don't like that 2010-07-09 07:58:48 +00:00
zicodxx b6d7b9d266 When reading mission file, check for sanity of possible breifing or ending to make sure author did not just screw up the file; Fixed slight bug when playing ending briefings from secret levels 2010-07-08 22:20:39 +00:00
zicodxx 98a1b97fb9 When reading mission file, check for sanity of possible breifing or ending to make sure author did not just screw up the file; Fixed slight bug when playing ending briefings from secret levels 2010-07-08 22:12:53 +00:00
zicodxx 1093aa0d07 Improved hanlding for closing sockets - doing via closing of Game_wind when available or in specific multi menus; Also handling GM_GAME_OVER setting over Game_wind closing as well if apprpriate - cleaner and helps to cleanup multi when mission is over 2010-07-08 09:35:59 +00:00
zicodxx cb1b0bdb26 Reworked handling of Netlist now also showing full game info; Prevent Clients from sending lite_info; Make lite_info show numconnected instead of numplayers as this would show disconnected ones as well; Removed reusing ports on different instances in Windows build - only screws up several games running on one machine 2010-07-08 06:37:23 +00:00
zicodxx 98fb362850 Fixing building on Windows if SDL_Mixer is not a target 2010-07-05 12:14:49 +00:00
zicodxx 0b8e26161b Reducing sending objects per frame from 20 to 1 again to reduce possibility of timeout on stressed systems 2010-07-05 12:12:12 +00:00
zicodxx 02247f5abb When selecting coop game mode, make sure that besides max players menu values also actual player number is set and menu text is updated properly 2010-07-05 08:05:32 +00:00
zicodxx d74b94b9bd Addition for rev1152: After setting mouse button, reset mouse state properly 2010-07-05 07:53:38 +00:00
zicodxx 74674220ff Fixing issue when assigning mouse button if a citem is still pointed out; Fixing still processing key commands even if we want to assign a key 2010-07-05 07:31:03 +00:00
zicodxx 9d3abbbf32 Fixes for rev1148: Was too hasty with calling net_udp_close; Fixing typo in WSACleanup() 2010-07-04 13:57:21 +00:00
zicodxx 0a143da860 Since time is not suspended between levels in Multiplayer, call reset_time after level change. Apply this in Singleplayer, too since it should always be safe - and appropriate - to reset timer_value soon as a new level begins 2010-07-04 13:12:08 +00:00
zicodxx faab4b0acb Implemented Winsock functions for UDP which I totally forgot about; Now when leaving game in any way, close sockets and Winsock stuff 2010-07-04 12:47:30 +00:00
zicodxx 4d5ff1bd29 Fixed Compiler-warning on Windows; Fixing Windows build which was not linking against SDL 2010-07-04 07:07:51 +00:00
zicodxx 3ee2d7c4fa Renamed manual_join to direct_join; Aligned letlist tabs a little bit 2010-07-01 09:08:30 +00:00
zicodxx 3033cea7b4 Always try to open UDP default port when discovering Netgames and give warning if that fails; If entered IP address cannot be resoled, do not warn me twice 2010-06-30 15:57:13 +00:00
zicodxx f81a5d8601 Removed SurfingNet global and made tabs a parameter of newmenu_dotiny; Same procedure with MenuReordering which is replaced with newmenu_doreorder to set reordering flag specifically 2010-06-30 15:26:27 +00:00
zicodxx 03be2fae70 If multi_level_sync() fails, restart menu music since level music is playing already 2010-06-29 21:14:30 +00:00
zicodxx ca9c43d07f Improved handling of multi level sync and exit smoothly back to the menus; Fixed another small bug in lite_info broadcasting which was sending full info; By broadcasting full info, host could cripple Netgame so a new security measure is implemented to protect host from letting his game be overwritten from outside 2010-06-29 20:51:38 +00:00
zicodxx a54a0a6975 Added UDP Netlist to join LAN games discovered/announced via broadcast 2010-06-29 16:41:08 +00:00
zicodxx ead78aa6aa Aligned default width for IPX-Netlist menu to fit possible items a bit better; Fixed two small bugs when sending and receiving lite_info in UDP; Allowed broadcast on UDP sockets (for later use) 2010-06-29 06:47:46 +00:00
zicodxx 7849947519 When starting, leaving or changing a level in any way, use more ordered approach to set Game_wind visible or invisible. Fixing timer-issues after level-change and makes hiding of Game_wind obsolete for certain messageboxes; Moved GameTime and weapon timer variables out of reset_time since this function is not appropriate for this and is not needed between levels anymore due to window management handling start/stop_time properly 2010-06-27 11:28:26 +00:00
zicodxx d18e8f08fe Made Briefing printing sound apply everytime there is chattering enabled. Even if it would be logical to have it only with flashing cursor, most briefings - even Counterstrike - forget to toggle it correctly 2010-06-25 06:35:29 +00:00
zicodxx c33a8e49a3 rev1134 revisited: When inregulary exiting a level by warp cheat, suspend Game_wind and reactivate again after the switch 2010-06-24 17:17:28 +00:00
zicodxx 6a81273645 When inregulary exiting a level by warp cheat, set canvas to NULL so cockpit canvas will not apply furthermore 2010-06-24 14:00:01 +00:00
zicodxx 5a8ff256ae Added function to list valid resolutions and build resolutions menu dynamically with the resulting list 2010-06-24 09:29:11 +00:00
zicodxx 16b0092af7 main/newmenu.c: Fix for last rev1130 - store resolution and font-size in matching data type 2010-06-23 13:39:52 +00:00
zicodxx d79cc8bcbf If no player exists and GameCfg.LasterPlayer is unset, give user a nice default for convenience and - more important - let menu stop to nag about missing callsign and thereby showing the player creation dialogue over and over again 2010-06-23 12:57:28 +00:00
zicodxx 171386bc24 Making menus recreated on the fly in case resolution or font-size changes; Removing arguments to pass width and height to menu which was not used except on one IPX menu; Fixing measurement of menu strings of type NM_TYPE_INPUT_MENU; Fixing slight bug in freeing IPX netlist 2010-06-23 11:44:12 +00:00
zicodxx c935ecfa99 Make sure GAME_FONT is set when reading out briefing text so char dimensions will always be stored correctly 2010-06-21 21:43:10 +00:00
zicodxx c02ca51f4e For starting demo, seperate hide_menus() and game_setup() since between this, demo must load the actual level and it's palette; Fixed small bug in interpolate_frame() causing interpolation happening in very first frame causing file read corruption 2010-06-20 20:32:30 +00:00
zicodxx 950b4c9ada Re-balanced homing-device turn values introduced in rev1118 based on comparisons to many levels played 2010-06-19 17:03:51 +00:00
zicodxx a56e56f034 Show movies in correct aspect; Added mipmap generation to movie texture if Texture filtering enabled - can also be disabled seperately 2010-06-19 16:42:07 +00:00
zicodxx da0d7c1f61 For briefings, keep elementes of show_briefing_bitmap and show_animated_bitmap in correct aspect 2010-06-19 16:24:34 +00:00
zicodxx 7fd13388fb emoved PHYSFSX_getFreeDiskSpace and relying on success of buffered writing to see if demo recording must be stopped 2010-06-18 08:22:45 +00:00
zicodxx 221076a3f5 Introducing gr_bitblt_find_transparent_area to dynamically detect boundaries of sub cancas used for CM_REAR_VIEW; On the way also allowing to create weapon box sub bitmaps from uncompressed cockpit bitmaps 2010-06-18 07:31:06 +00:00
zicodxx 992f66f04c If picking up one missile out of a four-pack, use singular description instead of plural 2010-06-17 09:45:05 +00:00
zicodxx a01ae0f445 Fixing digi_win32_ functions I broke yesterday. THANKS ZIF\! 2010-06-15 18:27:10 +00:00
zicodxx 2ba931acca Fixing typo in Netgame help screen 2010-06-15 17:20:37 +00:00
zicodxx ee53409d18 Removed the previously used homers code and instead used old one to keep good ol' Gameplay; Removed FrameCount steps from track_track_goal() and scaled homing vector accordingly to this change, including properly scaling it to FrameTime; Made code more similar between D1X and D2X; Introduced different turn rates for different difficulty levels 2010-06-15 16:24:56 +00:00
zicodxx cac223991f Resetting GameTime, Next/Last_flare/laser/missile_time in reset_time() together so GameTime-rollover-fallbacks will not create a massive delay when starting a new level 2010-06-14 21:59:41 +00:00
zicodxx 9877d658f3 Process -nomusic argument again 2010-06-14 17:55:25 +00:00
zicodxx 321115f8f3 Made reactor damage with persistent weapons FPS-independent but still a bit stronger than normal 2010-06-14 15:17:03 +00:00
zicodxx 3a839c5b31 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 cc12616895 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 8f324ded75 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 58ef7993a5 Properly specify number of items for do_options_menu, so the options menu actually shows 2010-05-03 08:22:50 +00:00
kreatordxx 6cc629dc6a Actually fix endgame music, make briefing beep only play when flashing_cursor is on, no restarting music when reloading a saved game 2010-04-05 13:48:23 +00:00
kreatordxx 66bad6378f 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 046ef88c77 Make menus for hosting a netgame stack, make quitting work with newmenu_do2 and simpler 2010-04-04 09:41:53 +00:00
kreatordxx 493b07e3da 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 5c0cdfe2d6 Move copyright drawing to main menu's event handler for tidiness 2010-04-03 10:16:53 +00:00
kreatordxx 33545ae73f Remove calls to nm_draw_background1 to show newmenus stacked 2010-04-03 09:10:20 +00:00
kreatordxx c430dd214e Make main menu persist to streamline redrawing (later) 2010-04-03 08:35:56 +00:00
kreatordxx 0c8c99fd13 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 beb39df2d4 Keep demo selector just after playing one, for convenience 2010-04-02 05:24:47 +00:00
kreatordxx dae5968170 Add a default event handler for screenshots, entering debugger, Redbook repeating etc 2010-04-02 05:01:08 +00:00
kreatordxx df6882b499 Hide the game window so the exit movie has a black background 2010-03-31 09:52:38 +00:00
kreatordxx 4b4c906a3f Fix bug introduced in last commit where the player can't escape from the death sequence (whoops) 2010-03-31 09:38:25 +00:00
kreatordxx 00450cfc32 Make game respond to EVENT_KEY_COMMAND for key commands, allowing default key handler (later) 2010-03-31 09:18:28 +00:00
kreatordxx 068d11b745 Make gamecntl.c more similar between D1X and D2X 2010-03-31 06:19:37 +00:00
kreatordxx d94176ffd8 Don't reshow the mission menu after playing a level intro movie 2010-03-30 03:47:51 +00:00
kreatordxx 1f62f35477 D1X: Fix black and white swapping when viewing robots in briefings using Mac data; D2X: For Descent 1 briefings, only change the palette to groupa.256 for brief03.pcx - the robot screen. Improves palette use for sdl build 2010-03-30 03:37:29 +00:00
zicodxx 6c77dd5ecd For casting light from Player-object, smooth out thrust to prevent flickering on high FPS 2010-03-28 09:53:12 +00:00
kreatordxx 3eda191002 Check menus[0], not menus[i] in hide_menus - fixing possible crash 2010-03-27 08:00:53 +00:00
kreatordxx e57602f117 Finally fix bug where if you start a single player game then a multiplayer game, time is stopped. Always start time if it's stopped and the game window is activated 2010-03-27 04:30:59 +00:00
kreatordxx 8ca12ad562 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 94e8a83bb4 Initialise 'playing' to 0 for UDP kmatrix, making sure player progresses to next level; always return 1 when starting to join a UDP game so it doesn't immediately return to the main menu 2010-03-27 02:54:41 +00:00
zicodxx 9d2a7773c8 Fixing uninitialized angles for robots in briefings 2010-03-26 21:27:55 +00:00
zicodxx 2563d73389 Ignore case-sensitivity for cfile_init/close/size and PHYSFSX_openReadBuffered; Give error message if default sound file cannot be opened so user knows what's going on 2010-03-26 21:17:56 +00:00
kreatordxx 95d7c4491d Make all windows except game and editor use EVENT_KEY_COMMAND, returning 1 if handled; pass NULL instead of userdata for the PCX filename, for newmenu_do1 2010-03-26 14:05:40 +00:00
zicodxx 19ad0ace53 In Endlevel sequence, re-align big explosion to draw in front of exit model, relative to viewer; Re-organized tex files for Briefings and Endings and created more general code to play them; Re-aligned Dravis' head 2010-03-25 23:37:19 +00:00
kreatordxx 73ba0a078f Make sure got_z is not reset to 0 for Descent 1 missions - fixing crash, also make sure briefing hum is not played through more than one channel 2010-03-25 03:08:01 +00:00
kreatordxx dec98a025e Only show briefing background if we have one, fixing arithmetic crash with SDL Video build 2010-03-24 13:59:42 +00:00
kreatordxx 037bbd8786 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 40c735e20e Fix error introduced with credits, make title screen a window. Only the editor left now... 2010-03-22 04:44:35 +00:00
kreatordxx 247943fa11 Make credits screen a window 2010-03-22 03:31:02 +00:00
kreatordxx 98aa279527 Fix bug introduced in last commit - when the last level is finished, hide the game window - making sure the cockpit isn't drawn over the kmatrix screen 2010-03-21 02:20:07 +00:00
kreatordxx d9262cb4b6 Hide game window between levels, fixing bug where many textures are loaded with the wrong palette when advancing to the next multiplayer level 2010-03-21 00:54:56 +00:00
kreatordxx 3ed3dd8adf Fix bug - make sure time isn't stopped for multiplayer when aborting, so starting a second game doesn't result in a frozen game 2010-03-20 13:53:08 +00:00
kreatordxx 6ca05c2dce Make kmatrixs into windows, rename Fuelcen_seconds_left to Countdown_seconds_left for consistency 2010-03-20 13:21:53 +00:00
kreatordxx 7b478e9853 Make all listboxes fall back to main event loop for flexibility 2010-03-18 07:02:38 +00:00
kreatordxx 0fe66266fc Make briefing into a window, allowing more flexibility with other windows and tidying code up 2010-03-18 04:31:47 +00:00
kreatordxx 310b265e3f Show intro movie properly when idle in main menu, including subtitles if on 2010-03-18 02:49:02 +00:00
kreatordxx 9e6815c51b 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 59a10f14d6 Fix memory error for listbox when clicking in the region where there are no items 2010-03-14 01:54:34 +00:00
kreatordxx 3b91da551b Put most local variables in show_briefing in 'briefing' struct, to make briefing a window in future 2010-03-10 08:43:47 +00:00
kreatordxx 62e4bd1f6c Put parameters in functions from do_briefing_screens to show_briefing in 'briefing' struct, to make briefing a window in future 2010-03-09 04:59:14 +00:00
kreatordxx a29874493f Put briefing globals in 'briefing' struct, pass this by parameter 2010-03-09 02:41:34 +00:00
zicodxx bade5d93d9 Init variables/strings at the beginning of load_mission() to prevent errors if demo content is used 2010-03-04 17:19:47 +00:00
kreatordxx 2b90001487 Make titles.c more similar between D1X and D2X 2010-03-01 07:27:51 +00:00
kreatordxx dce43a654d Actually change to MIDI if Jukebox was selected 2010-02-27 12:50:30 +00:00
kreatordxx 746832e8ab 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 504bf67445 Resetting menu->mouse_state after changing a key in kconfig so you will not accidentially activate a new field when left mouse button is assigned 2010-02-25 15:20:01 +00:00
kreatordxx 1f479a756c Call game_flush_inputs for all windows' EVENT_WINDOW_ACTIVATED, so clicking on a pilot doesn't bring up the multiplayer screen for example 2010-02-25 08:00:15 +00:00
kreatordxx d1254c8222 Put fast save back, using Alt-F1 instead of F6 2010-02-25 03:08:10 +00:00
zicodxx 76b4afea52 Due to the change of GameCfg.ControlType, Mouselook was broken - fixed 2010-02-23 23:23:21 +00:00
zicodxx 7816fa03ab Adding a Failsafe to Songs-reading so it will not accidentially read over current Array-boundaries 2010-02-23 16:05:11 +00:00
zicodxx 7e83a3532e Add to help how to send a message to a specific player in Multiplayer; Removed NoBombs command as this is covered by the weapons selection in Multiplayer game creation 2010-02-23 15:22:28 +00:00
zicodxx 64af50c05a Make Version-check for UDP also cover Micro-versions; Making sure versioning will act same way as conf.h for MacOS 2010-02-23 15:05:50 +00:00
zicodxx 62455c2a9b Overhaul for CONTROLS menu; Cleaned kconfig-code a little and slacked out keymap arrays 2010-02-21 01:25:27 +00:00
zicodxx 2f9916c46b Making reading of descent.sng a bit more flexible; Not dynamically allocated, yet, since missions are not as well 2010-02-19 15:30:57 +00:00
zicodxx 9ac473335f The little light bulb showing homing warning in Cockpit was broken and I replaced it; Rewritten code to show weapon text in Cockpit and Statusbar slightly; Instead of using hardcoded weapon strings, use from descent.txb and fixed too long spreadfire string properly 2010-02-19 00:24:32 +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
zicodxx 66dfa869b1 Write gamelog.txt buffered so it will not stress the medium it's saved on 2010-02-08 14:28:12 +00:00
zicodxx 6ecba78025 Introduced hitobj_list for persistent weapon objects to keep track of multiple objects the weapon is in contect with to prevent it from doing FPS-based damage; Made persistent weapon objects not die on debris but just decrease their shields like when an ordinary player/robot is hit - makes more sense 2010-02-08 13:24:42 +00:00
kreatordxx 13c192eb3f Don't make another Game_wind when advancing a level, fixing failed asserts / slow turning 2010-02-08 05:34:43 +00:00
kreatordxx bae063e41c Move all globals in scores.c into struct members/local variables 2010-02-08 04:10:21 +00:00
kreatordxx 8a4602a3f6 Split select_filename into [existing] RegisterPlayer and select_demo for better clarity 2010-02-07 12:10:52 +00:00
kreatordxx 210ea6ad5f Move MAX_SUBMODELS from inferno.h to polyobj.h, fixing #include loop by removing some (mainly object.h) and instead using explicit 'struct' declarations; compile net_ipx.c for Mac SDL Video build 2010-02-07 07:28:49 +00:00
kreatordxx ff1c8547f3 Make the scores menu into a window 2010-02-07 06:00:10 +00:00
kreatordxx afa0d75fb6 Create the main event loop and use it for the game and main menu 2010-02-07 04:34:21 +00:00
kreatordxx f8dd214654 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 55a6e7f97e Set the correct scroll position for the listbox when it's shown 2010-02-06 01:41:38 +00:00
kreatordxx f730b25932 Reset last_palette_loaded in nm_draw_background1 as before, it's needed for using the right palette when advancing a level 2010-02-06 01:19:40 +00:00
zicodxx 32259f33a3 In do_physics_sim() only set velocity from movement for certain objects which actually do collisions like Player or Robots - otherwise we might be able to shoot down projectiles or produce other unfortunate glitches 2010-02-05 18:49:24 +00:00
kreatordxx 35f0aa14f7 No showing the main menu background between loading a level and playing it, fixing palette issue when autoplaying a demo 2010-02-05 08:53:20 +00:00
kreatordxx 9d7bce257c Put the full_palette_save and palette_restore calls in the game handler for tidiness; remove leftover redundant digi_resume_digi_sounds calls 2010-02-05 02:31:36 +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 0f6def2613 Hide all other windows before showing error dialog, hopefully so errors don't happen while the error dialog is there 2010-02-02 05:51:32 +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 35584d725b 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 90e4b4ed95 Adding a bunch of memset's to menu/automap creations so we won't run into uninitialized variables 2010-01-31 21:51:59 +00:00
kreatordxx ff04fd682e Fix crashing when doing menus in multiplayer, don't let player move when in automap 2010-01-31 07:45:26 +00:00
kreatordxx dab9a9f5a6 Fix memory errors, but still dynamically allocate menu and lb so it doesn't have to stay in newmenu_do4 and newmenu_listbox1 respectively 2010-01-31 04:30:48 +00:00
zicodxx 6cbf0ca110 Fixed two memory errors inside menu GUI 2010-01-30 22:49:43 +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 b2db38be4c Initialise lb->first_item to 0, not -1, preventing crash if you make a listbox selection very quickly 2010-01-29 06:36:39 +00:00
kreatordxx f83741d89f For multiplayer, close menus from game_handler by doing frame processing in response to EVENT_WINDOW_DRAW, replacing multi_menu_poll system with single multi_menu_check call 2010-01-29 03:36:44 +00:00
zicodxx 1e6251a6ee Resetting DemoDoLeft/Right correctly at start of each demo 2010-01-29 00:30:54 +00:00
zicodxx 61e67d9fe9 Improved Object signature assignment and made sure there will be no duplicates; Also used short-ranged values only so Demo system won't screw up 2010-01-28 15:26:27 +00:00
kreatordxx 5d3ea4051f Allow user to abort close, for whatever reason (helps with my next commit) 2010-01-28 04:53:56 +00:00
kreatordxx f6c32d7518 Tidy up newmenu_show/hide_cursor calls 2010-01-28 04:24:25 +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
zicodxx 27b9a8c2a2 Added a new code to properly re-record view/cockpit-events at beginning and end of Demo recording so views will be fine if switched before recording started; Also added lost sequence to record Rear-view reset between levels; Last but not least, record wall tmaps in D1X-Rebirth so opened/blasted doors will be shown correctly if opened/blasted before recording; Everything done without breaking the Demo format 2010-01-28 01:08:36 +00:00
zicodxx 3d9791ca69 Made PlayerCfg.CockpitMode an array to hold two values: 0 to store the actual cockpit, 1 to also store Letterbox, Rear, etc. Greatly helps to switch and restore views - especially in Demo playback which now properly selects modes 2010-01-28 00:04:29 +00:00
kreatordxx 71c656200b 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 3a116769be Remove all uses of LeaveGame jmpbuf to allow more changing of main loop 2010-01-27 04:30:31 +00:00
zicodxx 422c745cfa Once again improving Demo Interpolation code, regarding changes from rev993, reducing Viewport flicker and jitter 2010-01-26 12:04:50 +00:00
zicodxx 2a6c9d0dbd Rewrote code for showing Cloak-effect on Cockpit and Statusbar, because it became bugged with changed order of function calls do_cloaked_stuff() and render_gauges(); Fixed cockpit switches for Guided missile when Player is in Rear-View - the original code never considered that 2010-01-24 17:38:13 +00:00
kreatordxx b552ba900d Move the editor call out of the Function_mode loop, for later overhaul 2010-01-23 14:19:21 +00:00
zicodxx 5eaf164d72 Removed the new Demo Interpolating code and added the improvements to the old one 2010-01-20 23:28:35 +00:00
kreatordxx 62a9214bc3 Fix major issues with last commit - tidy up window callbacks to dodge EVENT_WINDOW_ACTIVATED where it's unnecessary or erroneous to respond to, fix compiling error 2010-01-20 11:04:09 +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 fc84dd37b2 Make net_ipx_show_game_rules and net_udp_show_game_rules into windows 2010-01-19 14:53:06 +00:00
kreatordxx 69305fb7f2 Make kconfig menus into windows - allowing drawing of the game screen behind, changing of item to change while question mark flashing and clicking out of item change 2010-01-18 05:53:13 +00:00
kreatordxx fc32bff5bc 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 3d41df6447 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 c6cbb6b9f8 Make pause box a window 2010-01-09 09:19:26 +00:00
kreatordxx d7d5a8cd20 Make escort menu a window, now the game is drawn behind it 2010-01-09 01:56:38 +00:00
kreatordxx 624ae0b6d0 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 b6452e75b7 Change newmenu and listbox callback systems, adding use of d_event, for greater flexibility 2010-01-07 14:49:07 +00:00
zicodxx 7653e8ee12 New Interpolation method for demos and a small hack to fix this Interpolation if duplicate object signatures appear (mostly) 2010-01-07 00:01:36 +00:00
kreatordxx 2505f63f2b Put most of the remaining globals in automap.c in the 'automap' struct 2009-12-27 12:27:44 +00:00
kreatordxx f0fa1c81d9 Make listboxes into windows 2009-12-27 05:00:45 +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 dcc375c5dd Make sure the Game_wind only gets freed once when escaping demo playback 2009-12-14 13:27:05 +00:00
kreatordxx 55f2419a09 Make sure the Game_wind always gets freed when exiting the game screen, fixing flashing automap and framerate reduction after playing demos 2009-12-12 11:34:32 +00:00
kreatordxx 19806aa7ec 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 1603b87e40 Removing old use of variable already_showing_info which was removed from newmenu code 2009-12-07 15:00:49 +00:00
zicodxx 7449e5bac7 Removing old use of variable already_showing_info which was removed from newmenu code 2009-12-07 14:58:59 +00:00
kreatordxx 992648620c Make newmenu.c nearly identical between D1X and D2X 2009-12-05 09:48:18 +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 4a6b3f2b8b Squishing string-related bugs in Bomb display and Weapon reordering 2009-12-01 14:50:09 +00:00
zicodxx f782692332 Making files in 2d directory more similar and removed unused and broken code; Fixing a bunch of memory errors; Removed stack protecting flag for gcc in debug mode 2009-11-30 22:42:55 +00:00
zicodxx 621844e3f3 Draw Endlevel sequence with correct DepthFunc 2009-11-30 19:11:46 +00:00
zicodxx 01972042d6 Reintroduced Newdemo_game_mode to prevent demo playback from entering code parts it should not and fixing a bug with Multiplayer demos along the way, introduced in rev. 953 2009-11-30 14:59:37 +00:00
zicodxx 62b75469dd 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 6b6b66af0c 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 0d4a53766e Again making the joining safer 2009-11-25 00:26:26 +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
zicodxx 1ec38c1503 Improved Disconnect-handling between levels; Improved Kick-handling; Do not say that IPv4 and IPv6 builds are not compatible in scons -h anymore 2009-11-24 15:20:09 +00:00
zicodxx 34019d6414 Remove the IP check when processing game info or version deny as the IP might be translated (IPv6 especially) 2009-11-24 12:12:15 +00:00
zicodxx febe5d124d 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 57c71476fc Only list resolutions that can actually be used, using new gr_check_mode 2009-11-17 14:27:39 +00:00
kreatordxx 00347f0bcb Add endian converter for demos, read shareware demos, various bugfixes to demo system 2009-11-15 08:22:08 +00:00
kreatordxx 4a00fdf805 Read big endian savegames on little endian computers and vice versa 2009-10-05 02:51:37 +00:00
kreatordxx 64ff080a66 Fix compile error with ai_restore_state and include necessary ogl_init.h in state.c (whoops) 2009-09-11 05:15:53 +00:00
kreatordxx f9e89df131 Make state.c more similar between D1X and D2X 2009-08-22 07:21:19 +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 dd8f679724 Make game.c more similar between D1X and D2X, making related changes to other files (\!) 2009-07-01 11:35:33 +00:00
kreatordxx 532bdc3a2f Make inferno.c more similar between D1X and D2X 2009-05-31 07:20:26 +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 67fa9e0e49 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 bed89343af Make some files more similar between D1X and D2X 2009-05-03 12:31:30 +00:00
kreatordxx 19eacfa87f Make sure HoardEquipped returns 1 if hoard.ham is in the Data folder, hence properly allowing hoard.ham to be in the Data folder 2009-05-03 12:14:16 +00:00
kreatordxx bf512bb9ec Remove redundant conf.h directives 2009-04-30 13:01:31 +00:00
zicodxx fb112d7dfb 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 b3bf4813df 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 8da36f8873 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 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 ec28629cc3 Small positional correction for homing-warning bitmap 2009-02-23 10:21:25 +00:00
zicodxx 984e0c053f 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 6d018dc5fc Fixed param handling of expl_obj in do_explosion_sequence for the case that free_object_slots might have it set to OF_SHOULD_BE_DEAD before it's actually attached to another object 2009-02-22 10:53:10 +00:00
zicodxx 03db82be7d Made Max_used_objects an absolute defined value; Made num_objects globally available; Restricted Weapon drops to MAX_USED_OBJECTS; When dropping Secondary weapon, drop 4-pack if possible 2009-02-17 11:34:16 +00:00
zicodxx 084295bf96 Made connect-state handling in kmatrix flow even more failsafe 2009-02-15 19:12:16 +00:00
zicodxx 80084bb032 Added list to keep trace of received PDATA packets so receiver won't interpret them several times 2009-02-15 19:03:57 +00:00
zicodxx 1ec572c7d1 When creating new player, make sure string is long enough for use with players dir 2009-02-09 10:59:59 +00:00
zicodxx 487fed2fbd Removed PH_SCALE on Keyboard readings as caps movement not in sync to FrameTime; Removed scaled Joystick reading as it's not necessary anymore 2009-02-09 10:52:42 +00:00
zicodxx 256a60b1ce 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 33e2375db3 Fixed connect-state mess in order of kmatrix flow 2009-02-08 12:49:27 +00:00
zicodxx eea393c935 Small docs update; Noloss thinking flaw correccted: Add a special type for PDATA packets that need to be ACK'd so other clients won't ACK everything 2009-02-06 09:40:00 +00:00
zicodxx 8d5657b472 Close out fire from queue list as this is not necessarily needed to keep games in sync; While processing the noloss queue, only process 5 packets max 2009-02-03 10:56:22 +00:00
zicodxx 98fe14c6d8 Made FPS string statically right-justified - unrelated to actual FPS string width preventing jumps 2009-02-02 09:02:29 +00:00
zicodxx 8e7fe53610 Defined some default cockpit modes in Demo mode so we do not get invalid values when demo starts in non-default-view mode (as new HUD modes are only triggered at beginning and end of event); Removed Newdemo_flying_guided global; Init seismic disturbances in demo mode just to make sure tey are switched off when coming from game mode; Made initialisation for Missile_viewer signature saving global so we can reset it for each new level and make sure we get a correct missile view; Fixed regression in Ai_last_missile_camera 2009-02-02 08:49:58 +00:00
zicodxx 4d59723cc2 Added Packet-loss prevention code for Netgames 2009-01-31 23:47:15 +00:00
zicodxx 28b1ccbb52 Fixing bug with incorrect/missing UDP port termination 2009-01-31 14:52:06 +00:00
zicodxx b8ae980f86 New level render order for better seperation and blending between transculent level geometry and sprites 2009-01-30 11:50:25 +00:00
zicodxx b2036d7048 Decreasing delay from timer_delay2 to timer_delay for sending/receiving packets when connecting to UDP host due to FPS-dependent inconsistencies in timer_delay2 causing packets possibly not received or sent frequently 2009-01-29 11:15:18 +00:00
zicodxx 3217f39990 Changed function naming convention in netdrv and below to general Descent code convention 2009-01-26 05:01:18 +00:00
zicodxx 7b48d47be4 Removed some old code to smooth FrameTime we don't need anymore 2009-01-24 22:44:57 +00:00
zicodxx 3531adace7 New condition to switch to Interpolated demo playback - the old one did NOT make ANY sense at all 2009-01-22 12:30:32 +00:00
zicodxx 265ff9ed28 Took out old missile tracking code to be selectable over command-line to preserve consistency 2009-01-17 11:11:07 +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 ac3f773883 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 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
zicodxx e0a87df7ee Added some randomness to collision sound delays and synced robot-player collision sprites to same steps 2009-01-13 16:53:10 +00:00
zicodxx 8c4d0f62df Adjusted D1 Lifter collision damage according to D2 to scale with FPS as Melee combats can happen in every frame; Actually set velocity from movement when colliding with objects 2009-01-13 01:19:19 +00:00
zicodxx 680a1527a7 Fixed condition for protocol version checking when joining a game - must be allowed for both original and D2X version 2009-01-08 01:20:05 +00:00
kiplingw 3420d76931 Fixed: Segfault via buffer overflow when attempting to start or join a UDP/IP netgame in both d1x-rebirth and d2x-rebirth. Reproduceable on my box only in release mode and not debug... 2008-12-27 04:23:56 +00:00
kreatordxx 3d10deeb20 Make Redbook the default for Mac, because MIDI is buggy 2008-12-23 10:05:23 +00:00
kreatordxx 45801a75d8 Fix Mac OS 9 compile issues, update Xcode project 2008-12-21 08:54:03 +00:00