Commit graph

3435 commits

Author SHA1 Message Date
Kp 0132750380 Pass canvas to draw_afterburner_bar 2017-03-10 01:22:31 +00:00
Kp 4ecae34ec5 Pass canvas to sb_draw_shield_num 2017-03-10 01:22:30 +00:00
Kp 3a8bb51e45 Pass canvas to sb_draw_afterburner 2017-03-10 01:22:30 +00:00
Kp 94f2776af4 Pass canvas to sb_draw_energy_bar 2017-03-10 01:22:30 +00:00
Kp 98a27e4f09 Cache canvas in draw_static 2017-03-10 01:22:30 +00:00
Kp 4fd064a374 Pass canvas to draw_wbu_overlay 2017-03-10 01:22:30 +00:00
Kp c5fe4f28e2 Pass canvas to hud_show_flag 2017-03-10 01:22:30 +00:00
Kp 9fb81eed3d Pass canvas to hud_show_orbs 2017-03-10 01:22:29 +00:00
Kp 817bd73e5e Pass canvas to hud_show_keys 2017-03-10 01:22:29 +00:00
Kp 3645abf0df Pass canvas to show_homing_warning 2017-03-10 01:22:29 +00:00
Kp 98463f506e Pass canvas to kc_drawinput 2017-03-10 01:22:29 +00:00
Kp ed2cb63abb Pass canvas to kc_drawquestion 2017-03-10 01:22:29 +00:00
Kp 357099d81e Pass font to get_item_height 2017-03-10 01:22:29 +00:00
Kp 4dd4e49fd1 Pass canvas to kc_gr_2y_string 2017-03-10 01:22:29 +00:00
Kp 3f15f5c0a3 Cache canvas in show_boxed_message 2017-03-10 01:22:28 +00:00
Kp f0eac8f250 Combine CM_FULL_COCKPIT, CM_REAR_VIEW switch paths 2017-03-10 01:22:28 +00:00
Kp a1e8d19715 Factor out screenshot save code 2017-03-10 01:22:28 +00:00
Kp f5a17abbe8 Pass canvas to show_HUD_names 2017-03-10 01:22:28 +00:00
Kp b6778f65c7 Cache canvas in printscreen handler 2017-03-10 01:22:28 +00:00
Kp 7410ad343c Pass canvas to render_mine 2017-03-10 01:22:28 +00:00
Kp 8542940b24 Pass canvas to render_frame 2017-03-10 01:22:27 +00:00
Kp 7e1ba509ff Cache canvas in init_cockpit 2017-03-10 01:22:27 +00:00
Kp 393e96b8d8 Unify SDL/OGL save_screen_shot
This simplifies maintenance and reduces the potential for inconsistency.
It also cleans up one existing inconsistency.
2017-03-10 01:22:27 +00:00
Chris Taylor 38250ce76f Make sure D1 type bosses in D2 play looping sound on save game load
D1 bosses in D2 can teleport after 0.58.1.
2017-03-05 08:32:06 +08:00
Kp 2fae106945 Reindent FireLaser fusion handling to quell -Wmisleading-indentation
The code was correct as-is, but gcc-6 warns.  Reindent to eliminate the
warning.
2017-03-04 22:25:54 +00:00
Kp a8c3a7f10b Alias Side_to_verts to Side_to_verts_int 2017-03-04 22:25:54 +00:00
Kp f03fee7eca Fix ordering of boss weapon collision test
Reported-by: ryusei117 <https://github.com/dxx-rebirth/dxx-rebirth/issues/332>
Fixes: 1f929796c3 ("Fix excess fusion reflection")
2017-03-04 22:25:54 +00:00
Kp 986c76e00f Merge branch select_missile into master 2017-03-02 02:45:31 +00:00
Chris Taylor 6670d8c203 Save secondary weapons flags for 0.58.1 compatibility
Set secondary weapon flags to appropriate values when saving game, so that if it's loaded with 0.58.1 or earlier the player can actually select all secondary weapons they have at least one of (while not causing side effects with demo data). Fixes issue referred to in comment https://github.com/dxx-rebirth/dxx-rebirth/issues/291#issuecomment-282528356
2017-03-01 14:15:38 +08:00
Kp cebd2fd36d Pass object &to boss_init_all_segments
The index is not needed.
2017-03-01 02:48:41 +00:00
Kp b5294784db Pass object &to init_boss_segments
init_boss_segments no longer needs to save and restore the boss position
and size.  Remove that, and switch the pointer to `const object &` to
enforce it.
2017-03-01 02:48:40 +00:00
Kp 482dcf0ba3 Avoid temporarily moving boss while probing layout
Expose sphere_intersects_wall and call it directly from
boss_fits_in_seg, so that boss_fits_in_seg does not need to modify the
position and segment of the boss during the test.
2017-03-01 02:48:40 +00:00
Chris Taylor c2ea427f79 Don't teleport to original segment if boss won't fit
Unless there are no other segments. Fixes issue #329.
2017-02-27 18:43:24 +08:00
Chris Taylor 19e4c07bb0 Bosses generated by a robot maker or even released by another robot will now teleport
Fixes issue #328.
2017-02-26 10:21:10 +08:00
Chris Taylor 32286ed4fc Play boss looping immediately on loading saved game
If boss has teleported before, even before a loaded state was saved, play the boss looping sound immediately when loading the saved game (if near the boss). Resolves issue #326.
2017-02-26 10:21:10 +08:00
Kp ba914fea81 Pass up various return values 2017-02-26 00:00:02 +00:00
Kp 673baa15e9 Clear FakingInvul when enabling real invulnerability 2017-02-26 00:00:01 +00:00
Kp 8a89313ec4 Move compute_segment_center body to dcx 2017-02-22 03:05:44 +00:00
Kp 892d450022 Move compute_center_point_on_side body to dcx 2017-02-22 03:05:43 +00:00
Kp df54e345fe Remove write-only fvi_hit_seg 2017-02-22 03:05:43 +00:00
Kp 08e4a6e620 Use stdint constants for some INT*_MAX
clang becomes confused trying to determine which vm_distance_squared
constructor to use for a literal input of 0x7fffffffffffffff, even
though the size of the input requires it to be `long` and only one
constructor can take a `long`.  Switch from an explicit
0x7fffffffffffffff to the symbolic constant INT64_MAX, which has the
same value, but a platform-appropriate suffix to force the compiler to
pick the right type.

For general clarity, switch some other instances of integer maximum
literals to symbolic constants of the same value.

This commit has no effect on the generated code (except for changes to
line numbers).

Reported-by: kreatordxx <https://github.com/dxx-rebirth/dxx-rebirth/pull/324>
Fixes: 17208cca79 ("Disallow int for vm_distance_squared")
2017-02-22 03:05:43 +00:00
Chris Taylor 05b8cc4897 Exit GameProcessFrame() when game over
After getting game over, playing a demo would result in the 'Game Over' banner being shown. When loading a saved game, it would fail an assert when trying to obj_delete a NULL Dead_player_camera in dead_player_end().
2017-02-20 08:04:55 +08:00
Chris Taylor b17a9f8550 start_time() time when game over
After getting game over, the game would be stopped when playing a demo or loading a saved game. This is now fixed.
2017-02-20 08:04:55 +08:00
Kp dc090958d1 Reduce D1 spreadfire cost
Reported-by: zicodxx <https://github.com/dxx-rebirth/dxx-rebirth/issues/322>
Analyzed-by: kreatordxx <https://github.com/dxx-rebirth/dxx-rebirth/issues/322#issuecomment-280896375>
Fixes: 10ff2b9ea2 ("Change Primary_weapon_to_weapon_info key to weapon_id_type")
2017-02-19 19:33:45 +00:00
Kp 6cd6189681 Never pass nullptr to ai_door_is_openable
When objp is nullptr, ai_door_is_openable assumes Buddy_objnum is a
valid object number, but this assumption is not guaranteed to be true.
When it is false, the game crashes.  This crash can be triggered by a
brain robot trying to make nearby robots snipe.

Fix the crash by passing the robot of interest.

Reported-by: Yarn <http://www.dxx-rebirth.com/frm/index.php/topic,2165.0.html>
2017-02-19 19:33:45 +00:00
Kp 859b399d20 Use mask for Secondary_last_was_super 2017-02-19 19:33:45 +00:00
Kp aeb452f715 Fold do_weapon_n_item_stuff toggle sound 2017-02-19 19:33:44 +00:00
Kp 7c658fd8cd Use mask for Primary_last_was_super 2017-02-19 19:33:44 +00:00
Kp 16dde117fd Reduce scope of state_restore_all_sub j 2017-02-19 19:33:44 +00:00
Kp a6cd87613c Pass polymodel &to free_model 2017-02-19 19:33:44 +00:00