Commit graph

936 commits

Author SHA1 Message Date
Chris Taylor a5c4992c58 Give ui_get_filename a callback for its dialog. Happy new year 2012-01-02 15:49:08 +08:00
Chris Taylor 1c6ecbece0 Make editor menubar and associated menus into windows; either remove or make event-based all the B1_* macros 2011-12-31 17:10:40 +08:00
Chris Taylor ff3f419c31 Remove redundant canvas, next and prev members in the UI_DIALOG struct 2011-12-18 20:33:51 +08:00
zicodxx b4bf4e8c75 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:35:58 +01:00
zicodxx 1a89c345a8 Just as in Descent 2, let flares die in lava 2011-11-25 22:45:40 +01:00
zicodxx b3329c6c86 Fixed forgotten MALLOC in g3_draw_morphing_model crashing game when rendering morphing robot (created from matcen for example) 2011-11-25 11:40:41 +01:00
zicodxx 49649ab697 calling scrape_object_on_wall in each case of HIT_WALL more reliable to properly do hazard surface damage and prevent weapon objects from possibly sliding against walls 2011-11-24 11:30:29 +01:00
zicodxx 84b60ab017 Smoothed disabling of friendly fire to re-enable splash damage possible when friendly fire is disabled 2011-11-24 11:04:43 +01:00
zicodxx 517bc77692 Sliders can now be operated with Numpad arrows if numlock if off 2011-11-14 22:14:52 +01:00
Chris Taylor d1a995ef6d Make ui_userbox_do fully event-responsive 2011-11-14 19:27:04 +08:00
Chris Taylor 33b1b6118d Make ui_scroll_do fully event-responsive, make sure scrolling actually works by calling all controls' ui_*_do functions (like before) 2011-11-12 12:46:29 +08:00
Chris Taylor 1c305434f4 Make ui_radio_do fully event-responsive 2011-11-06 20:05:43 +08:00
Chris Taylor d8a1aaff32 Make ui_listbox_do fully event-responsive 2011-11-06 11:05:45 +08:00
Chris Taylor 744e51c877 Say when the event was handled for ui_inputbox_do (was already event-responsive) 2011-11-05 20:11:48 +08:00
Chris Taylor ee05f99a3c Fix implicit function declaration in last commit, make ui_icon_do fully event-responsive 2011-11-05 19:43:54 +08:00
Chris Taylor d2d68bc4ee Make ui_checkbox_do fully event-responsive 2011-11-05 17:45:10 +08:00
Chris Taylor b15bbb982d Fix crash on exit for non-Linux, when it tries to show an editor warning (unfreed blocks) but doesn't have the images to render it 2011-11-05 17:23:20 +08:00
Chris Taylor 89b36e8be0 Make B1_JUST_PRESSED event-based, leave ui_dialog_do_gadgets early if a key makes another gadget current, make ui_button_do fully event-responsive (but won't *send* events yet) 2011-11-05 17:07:25 +08:00
zicodxx 2b6a62a5b9 Do not attempt to check for MULTI_PROTO_VERSION when requesting lite_info 2011-11-03 14:26:43 +01:00
zicodxx 1371874e0d 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:38 +01:00
Chris Taylor 1200f8017b Return 1 (event handled) in ui_dialog_handler for mouse button events if the mouse was in the dialog 2011-10-30 19:08:02 +08:00
Chris Taylor 91e0f976f7 Pass the event to the individual gadgets' 'do' functions, fix compile warnings introduced in last commit 2011-10-25 09:38:12 +08:00
Chris Taylor 5d6c06c723 Pass the event to ui_dialog_do_gadgets and use it in that immediate function 2011-10-23 17:07:18 +08:00
Chris Taylor 87c8c25580 Move calls to ui_dialog_do_gadgets to the dialog event handler, making sure ui_event_handler gets called beforehand 2011-10-09 20:30:31 +08:00
Chris Taylor 8e0579c4a6 Fix comparison is always false warning 2011-10-09 20:07:21 +08:00
Chris Taylor 3121fb4990 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:31:44 +08:00
Chris Taylor 5f87108ba4 Initialise dyn_light using memset, fixing a warning 2011-10-09 18:25:33 +08:00
zicodxx fb775b35c3 Fixed set but unused variables 2011-09-27 01:31:17 +02:00
zicodxx bcdbff0665 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:23 +02:00
zicodxx aafc5ec877 Gave throttle it's own sensitivity and deadzone settings; Added patch by Hans de Goede to let Slide-On and Bank-On settings use invert settings from Slide- and Bank-axes 2011-09-26 20:22:35 +02:00
zicodxx d8263a85b6 Made the .desktop file follow the official specifications; Added explicit link to libmath for newer versions of binutils; Fixed crash using PhysFS 1.x in PHYSFSX_addArchiveContent() 2011-09-26 19:15:39 +02:00
zicodxx c2b3c64314 Code consistency checks by _Tyr_; Fixed set but unused variables 2011-09-26 19:03:12 +02:00
zicodxx 22316fa5d6 Code consistency checks by _Tyr_; Fixed set but unused variables 2011-09-26 18:58:06 +02:00
zicodxx 80e69421d8 Fixed misuse of gr_bitblt_find_transparent_area() caused rear view to be shifted on some cockpits 2011-09-25 01:01:51 +02:00
zicodxx 0df7146226 Reworked wall_toggle() to work with index for segnum instead of a pointer, hopefully making the consistency check less error prone 2011-09-24 22:03:33 +02:00
zicodxx 4e299e4f83 Consistency check for segment number in find_vector_intersection() and obj_create(); Added more debug output for invalid segment numberin get_seg_masks() 2011-09-24 11:15:24 +02:00
zicodxx 7a4d7e3bc4 When restoring Coop players and make turn them into ghosts perform a check if this player is actually a valid player so we do not just blindly use any object number from a possibly uninitialized player structure 2011-09-23 19:48:45 +02:00
zicodxx 8f483e690b Added wrapper functions dxx_sendto and dxx_recvfrom to collect simple statistics about amount and size of packets sent/received per second; Actually fixed packet scheduling in main UDP frame - was sending more than intended - stupid me 2011-09-21 20:03:41 +02:00
zicodxx 60f8606813 Streamlined joining, rejoining, disconnecting players and timeouts, getting rid of unwanted rejoin messages and let host remove a player for good without rejoining it via pdata packet to really get rid of lossy or unwanted players; Care for rollover of pkt_num of stored mdata packets 2011-09-21 12:04:09 +02:00
zicodxx 5f17f6a40b Removed saving/restoring the state of Packet Loss Prevention from Netgame profiles 2011-09-19 13:41:58 +02:00
zicodxx 3cad8885d4 Reworked Packet Loss Prevention: If an important packet could not be recovered until it timed out, dump player who failed sending/receiving it; Noloss queue can proces spackets until a certain traffic has been reached; In main UDP frame schedule different types of packets depending on PPS to decrease traffic produced in one frame, hopefully preventing too much loss in high-traffic situations; Small code cleanups; Added new dump signal for loss of important packet; When dumping player also disconnect that one in case the dumped player does not accept the signal 2011-09-19 13:01:08 +02:00
zicodxx 6fdf44035e Added new priority level for MDATA packets to also send them ASAP without the need for an ACK; Streamlined sending multibot and fire packets and on the way artificially and automatically scaling fire rates, energy/ammo usage and damage of weapons in Multiplayer to decrease traffic easy way without changing the Gameplay 2011-09-15 10:45:45 +02:00
zicodxx 7638390173 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:20 +02:00
Chris Taylor 5e17460eb6 Define USE_TRACKER for Mac OS X, remove reference to deleted cfile.h 2011-09-13 09:41:08 +08:00
Chris Taylor 05d02b49ed Mention Mac command keys 2011-09-13 09:26:47 +08:00
Chris Taylor 67b94d08b9 Put back the instructions for installing the PC data 2011-09-13 09:22:25 +08:00
Chris Taylor 3f5506ee72 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:02:30 +08:00
zicodxx d1a471dedc Due to conversion from fix64 to fix Boss_dying_start_time was not 0 when saving even if boss was not dead - fixed; Fixed warning about set but unused variable 2011-08-26 18:56:18 +02:00
zicodxx a2bdb63149 Added Polygon model viewer and GameBitmaps viewer in non-Release build for debugging, messing around, DXX-Redrawn, etc. 2011-07-20 14:44:46 +02:00
zicodxx 25060a4441 Changed my eMail address 2011-07-19 22:00:25 +02:00
zicodxx 43e3be131c Keep copyright information up to date 2011-07-19 11:36:12 +02:00
zicodxx d850bcc14e Properly call multi_leave_game() when host leaves multi game to let clients exit smoothly 2011-07-19 11:30:21 +02:00
zicodxx 23c04c17e1 Changed version to 0.57.1; Updated release notes 2011-07-16 21:21:11 +02:00
zicodxx c8b7f65809 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:20 +02:00
zicodxx 5c660b3a2d Correctly proceed to new Redbook track if songnum != Song_playing (hopefully - to confirm); Using songs_stop_all() in songs_uninit() to clear redundancy; added some notes to functions to shine a bit light on the mess of some functions 2011-07-16 11:36:36 +02:00
zicodxx 497dfd0b09 properly check and fix viewMatrix in free flight auotmap 2011-07-15 16:01:37 +02:00
zicodxx 632f001f16 Fixed typo in Packets per sec. in GAME_RULES screen; Reduced max amount of games shown on netlist to 900 to reduce RAM usage... as if we'd ever reach this 2011-07-15 11:46:04 +02:00
zicodxx 77f0edf8ac 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:01 +02:00
zicodxx 83f64ec080 When colliding with robot not controlled by us in Multi-Robot game do not apply force or damage - wait until the robot is under our control - preventing juggeling robots back and forth between players and creating massive damage 2011-07-14 13:36:24 +02:00
zicodxx cf23e6bb24 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:42 +02:00
zicodxx 8bc5fd54a1 Fixed uninitialized bytes in multi_do_create_robot_powerups() and two set but unused variables 2011-07-12 15:34:47 +02:00
zicodxx 387645f7c8 Add fallback routine from D2 source in wall_frame_process() to automatically set open-flag if wall state is set to opened 2011-07-12 00:08:55 +02:00
zicodxx c4c93e5cf1 Added complex error output if illegal segnum passed to get_seg_masks(); Fixed warning about set but unused variables 2011-07-10 01:09:40 +02:00
zicodxx e8a1f903f9 Added new dynamic light calculation which works with find_connected_distance() preventing vertecies to be lit up without connection to light source but still maintaining illumination. Still deactivated as it needs more optimization - planned for 0.58. Removed old alternative dynamic lighting which was suppoed to work via fvi but way slower than the new one 2011-07-09 21:39:19 +02:00
zicodxx 72073d7ed6 Make sure hmp_reset() is only executed if a song was playing 2011-07-08 01:46:27 +02:00
zicodxx dbdf7e27dc Slight improvement for Packet Loss Prevention: Be able to send to 35 packets per call of net_udp_noloss_process_queue() and also let counter only increase if a packet was actually sent, making sure the queue is not stuck on the first 5 packets in the list 2011-07-08 01:23:41 +02:00
zicodxx 1bc5378f78 Only call show_netplayerinfo() if GM_MULTI is set and reset netplayerinfo_on in game_setup() 2011-07-04 11:23:50 +02:00
zicodxx 53fca9dd44 When initializing ai object correctly initialize Ai_local_info to prevent glitches like random submodel angles 2011-07-02 22:48:10 +02:00
zicodxx 2da37871b8 Made formatting for help text more consistent and prettier; Somewhat changed the code for help text so we can use variables in the help text. For example: If we change MAXIMUM_FPS, it will automatically be displayed in the help text without manual editing needed 2011-07-01 01:01:06 +02:00
zicodxx 4fcfe5618c changed variables and pointer carrying vertex indexes from short to int to handle levels with over 900 segments properly 2011-06-30 12:23:38 +02:00
zicodxx 66978064d1 Due to design issue in demo system initial recording of doors could place same texture on front and back sides of doors - fixed as good as possible (wish I could expand the demo format) 2011-06-29 14:53:42 +02:00
zicodxx 3be8070aa5 Correctly disable/initialize Multiplayer features not supported by IPX games for compability; Removed show_games_rules as there isn't much useful to show there; Some more code simplicity 2011-06-28 22:00:41 +02:00
zicodxx 13fe431c7b Fixed possible memory corruption when saving Current_mission_filename which is not necessarily a 9 byte long allocated string; Bit safer string handling with snprintf; Fixed set but unused variables like a boss 2011-06-28 09:16:21 +02:00
zicodxx 8c0c5d4d81 when entering secret level reset Control_center_destroyed when we start the level and not in between as it will break sending endlevel packets 2011-06-27 18:17:04 +02:00
zicodxx 71caea4ee2 Fixed object sync for latecoming clients which was broken due to a very, very, VERY stupid mistake... 2011-06-24 13:09:39 +02:00
zicodxx a605c03076 For Hotshot and above made homing missiles turn to player a bit less agressive which is hardly noticable but slightly increases the chance to shake off a projective even if dodged without perfect timing. This makes possible to survive in case a player/bot shoots several homing projectiles in spread fashion 2011-06-23 09:50:14 +02:00
zicodxx e26a5bb354 PlayerCfg.MultiMessages was supposed to only show messages of class HM_MULTI but turned out to only block HM_REDUNDANT, too. Fixed this copy/paste error of mine 2011-06-23 09:23:53 +02:00
zicodxx ad850557ca in compute_light_emission() handle RT_NONE for delayed explosion fireballs 2011-06-20 11:30:11 +02:00
zicodxx fa85aa820d By using fixed distance bumping for fix_illegal_wall_intersection making the whole process much more reliable on sharp edges 2011-06-17 00:33:42 +02:00
zicodxx df59103290 Condition for sound sample number for SOUND_CHEATER was reversed between Shareware and Full Release content 2011-06-13 17:22:13 +02:00
zicodxx 24b8426dd5 Saturate colored dynamic light just like normal one - makes the hwole thing a bit less colorful but makes for better balanced color mixing (theoretically) and does not reduce static light 2011-06-09 10:28:55 +02:00
zicodxx 425eef904d Definition of dynlight_time should have been static to archive timed light calculations 2011-06-07 17:31:45 +02:00
zicodxx 96c6458eb8 For all filename strings use PATH_MAX as size, make sure they are inited correctly and only fill them with snprintf instead of sprintf 2011-06-06 21:17:16 +02:00
zicodxx ed5cefb117 For all filename strings use PATH_MAX as size, make sure they are inited correctly and only fill them with snprintf instead of sprintf 2011-06-06 16:33:10 +02:00
zicodxx 856ac49a7b for flexibility in terms of modding, allow player ship textures in Multiplayer be <= N_PLAYER_SHIP_TEXTURES and not hit Assert but pull out Eroor if there are more 2011-06-04 22:50:35 +02:00
zicodxx 5d1cf695e2 Fix weapon selection sounds fpr pc shareware and do not allow selecting weapons not available in this content (i.e. if obtained by cheat) 2011-06-04 13:17:54 +02:00
zicodxx bc7089fd7e Since set_dynamic_light() is not necessarily processed each frame, added own counter for delayed precession of vertex-clight calculation; Added possibility to page in a bitmap in case an object which has never been rendered before is supposed to cast light visible by the player 2011-06-04 10:04:35 +02:00
zicodxx 852d9d0334 Added proper colored lighting handling for RT_POWERUP which I not noticed was wrong before ... darn dim glowing powerups 2011-06-01 15:49:03 +02:00
zicodxx fc985c3ccb Executing timer_update() at the beginning of calc_frame_time in case event_process() taking a significant amount of time to reach the game window and therefor could make FrameTime be inaccurate 2011-06-01 15:06:14 +02:00
zicodxx dcc964817e 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:51 +02:00
zicodxx 21082c6db2 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:42 +02:00
zicodxx 75af2aa90c Made netgame setup menu more flexible towards (constant or temporary) changes in available game modes 2011-05-28 12:07:36 +02:00
zicodxx b9995f3e34 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:26 +02:00
zicodxx af7c22faa2 Added multi_send_data_direct to send multibuf to a specific player (i.e. Host<->Client, not Client<->Client); Overhauled kill sending/receiving and computation to rely in host information about game_mode-related variables (team_vector, Bounty_target) which are vital for consistent kill computation; Added function to send/update game_mode-related variables and solve /move command with this as well instead of workaround via updating lite_info; Introduced /move commend from Descent2 to move players between teams 2011-05-25 15:25:06 +02:00
zicodxx 6628a6efbe When restoring Coop setting from netgame profile don't forget to fix max players variable 2011-05-22 20:04:40 +02:00
zicodxx 6fe57317cc Like in BigEndian builds do netmisc_calc_checksum() only with expected items of segment/side struct to prevent different checksums in case these structs change; Fixed several issues when building with editor; Fixed compiler warning regarding set but unused variable 2011-05-22 19:54:44 +02:00
zicodxx bfad1aac59 Making D1X- and D2X-Rebirth more similar in behavior of which player limit is needed to start team-based game in both RELEASE and DEBUG builds 2011-05-20 16:15:04 +02:00
zicodxx 06c0311a7a Made Automap Free Flight controls an optional feature which can be set in MISC OPTIONS; Fixed possible path string issue in plyr_read_stats_v() and fixed compiler warning regarding set but unused variable 2011-05-20 12:23:22 +02:00
zicodxx bbe0ccb64f Rearranged code to check for netgame-closed flag and refuse-players flag so they are updated correctly if another part of the code changes the menu item without activating it 2011-05-20 11:48:17 +02:00
zicodxx 1f70e1dd23 Updated docs and fixed some typos 2011-05-20 00:14:40 +02:00