Kp
c355e207fe
Refactor song loading
...
Use an RAII object to manage allocations and keep the length and pointer
together.
2019-08-25 16:43:17 +00:00
Kp
2b2ca67de5
Add enumerated_iterator::operator==
...
Defining _GLIBCXX_DEBUG introduces a dependency on this method.
Implement it so that _GLIBCXX_DEBUG can be used.
2019-08-24 18:14:16 +00:00
Kp
dd0f639176
Avoid reducing player's highest-level when replaying a non-MRU level
...
If the level was not the most recently played, a save is forced so that
it can be marked as most recently played. However, the logic to force
the save also forced an update of the highest-level field, even if that
reduced it.
- Rename the parameter to clarify its meaning.
- Add comments explaining the logic to force the save.
- Only update the highest-level field when the update would increase the saved value
2019-08-24 04:32:24 +00:00
Kp
ade6ee4195
Move exit_segnum to d_player_unique_endlevel_state
...
exit_segnum is set during load_endlevel_data, which currently runs too
early for this to depend on the exit used, and thus to be player-unique.
That data should be loaded at need, when the level ends, rather than
during level setup. This can be addressed later, when support for
multiple exits is improved.
2019-08-15 01:34:22 +00:00
Kp
2daf788b34
Move transition_segnum to d_player_unique_endlevel_state
...
transition_segnum is a function of how the player exited the mine, since
there could be multiple exit tunnels, although current code appears not
to handle that well in other places. Therefore, it needs to be
per-player data, not part of the level data, where it would not depend
on the player exiting.
2019-08-15 01:34:22 +00:00
Kp
9bafdc9078
Move Death_sequence_aborted to d_game_view_unique_state
2019-08-15 01:34:22 +00:00
Kp
6f9657cf9b
Move controlcen_death_silence to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
9f0b455f6d
Move Reactor_strength to d_level_shared_control_center_state
2019-08-15 01:34:22 +00:00
Kp
9689a7f7d2
Move Base_control_center_explosion_time to d_level_shared_control_center_state
2019-08-15 01:34:22 +00:00
Kp
f2eebca6c3
Move Last_time_cc_vis_check to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
d9d536afda
Move Control_center_player_been_seen to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
0826881fa0
Move Dead_controlcen_object_num to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
d0a9d8db98
Move Control_center_present to d_level_unique_control_center_state
...
This could be a shared variable instead, since it cannot be directly
influenced by gameplay. However, it is influenced by the game mode, and
keeping shared variables that are mode-specific would be more complexity
for very little savings.
2019-08-15 01:34:22 +00:00
Kp
11278eb153
Rename Control_center_next_fire_time to Frametime_until_next_fire
...
Clarify the type of the value.
2019-08-15 01:34:22 +00:00
Kp
195f5e7d9f
Move Control_center_next_fire_time to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
885296b136
Move Control_center_been_hit to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
f988948eef
Move Countdown_timer to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
21c927584b
Move Total_countdown_time to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
707b3c5b0d
Move Countdown_seconds_left to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
519edb9e16
Move Control_center_destroyed to d_level_unique_control_center_state
2019-08-15 01:34:22 +00:00
Kp
0d9e032c60
Factor out some multi net_destroy_controlcen usage
2019-08-15 01:34:22 +00:00
Kp
8997f622bd
is_proximity_bomb_or_smart_mine*: s/smart/player_smart/g
...
As documented in zico's commit 38fabd7c49
, robot smart mines have a
different ID number than player smart mines. Rename the test functions
to clarify that they only recognize player smart mines, but not robot
smart mines.
git grep -l is_proximity_bomb_or_smart_mine | xargs sed -i -e 's/is_proximity_bomb_or_smart_mine/is_proximity_bomb_or_player_smart_mine/g'
2019-08-15 01:34:22 +00:00
Kp
2ceb0168f2
Split is_proximity_bomb_or_smart_mine* to d1x/d2x
2019-08-15 01:34:22 +00:00
Kp
b8cb819bb4
Make read_sndfile static for D1
...
Currently, only D2 can reread sounds. Restore static for D1
read_sndfile.
2019-08-15 01:34:22 +00:00
Kp
aa9bea4b92
Remove redundant declaration of Piggy_hamfile_version
2019-08-15 01:34:22 +00:00
ziplantil
d9c113c315
load .s11,.s22 when loading D2 mission to allow custom sounds
2019-08-13 22:47:22 +03:00
Christian Beckhäuser
38fabd7c49
Fixed two issues with game's transparency effects feature (which I introduced when implementing it): First, Superprox mines dropped by enemies were made undesirably transparent since they have their own ID not considered by is_proximity_bomb_or_smart_mine(). Second, only some force field textures in D2X had transparency effects since the game has two different textures for force fields - eclip num 78 and 93 - but only the former was defined and used in is_alphablend_eclip()
2019-08-08 11:57:52 +02:00
Kp
f0faac66d4
Move Seismic_tremor_magnitude to d_level_unique_seismic_state
2019-08-06 02:59:41 +00:00
Kp
4b0f797d7e
Move Secret_return_orient to d_level_shared_segment_state
2019-08-06 02:59:41 +00:00
Kp
ad16d90dd5
Move Secret_return_segment to d_level_shared_segment_state
2019-08-06 02:59:41 +00:00
Kp
625d863c55
Move Smega_detonate_times to d_level_unique_seismic_state::Earthshaker_detonate_times
2019-08-06 02:59:41 +00:00
Kp
140711cb35
Move Next_seismic_sound_time to d_level_unique_seismic_state
2019-08-06 02:59:41 +00:00
Kp
8fd231e501
Move Seismic_tremor_volume to d_level_unique_seismic_state
2019-08-06 02:59:41 +00:00
Kp
42778ff7fa
Move Level_shake_duration to d_level_shared_seismic_state
2019-08-06 02:59:41 +00:00
Kp
b8fa75c8cb
Move Level_shake_frequency to d_level_shared_seismic_state
2019-08-06 02:59:41 +00:00
Kp
184337e6e1
Move Seismic_disturbance_end_time to d_level_unique_seismic_state
2019-08-06 02:59:40 +00:00
Kp
ef0e64d421
Move awareness events to d_level_unique_robot_awareness_state
2019-08-06 02:59:40 +00:00
Kp
03214c0e6f
Fix original game bug that meant to reset camera flag, but did not
2019-08-06 02:59:40 +00:00
Kp
215252b8ca
Fold Final_boss_is_dead into Final_boss_countdown_time
2019-08-06 02:59:40 +00:00
Kp
5455a65d33
Move Final_boss_countdown_time to d_game_unique_state
2019-08-06 02:59:40 +00:00
Kp
3d8c02fefa
Move Final_boss_is_dead to d_game_unique_state
2019-08-06 02:59:40 +00:00
Kp
7d803cf63e
Move some save/restore functions to dcx/dsx as appropriate
2019-08-06 02:59:40 +00:00
Kp
be84013494
Move Boss_hit_time to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
0a74eb6989
Move Boss_hit_this_frame to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
75440153a0
Move Boss_dying_sound_playing to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
a0c242c46f
Move Boss_dying_start_time to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
63d869fa0c
Move Boss_dying to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
4ec96337b6
Move Last_teleport_time to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
69404ebc6e
Move Boss_cloak_start_time to d_level_unique_boss_state
2019-08-06 02:59:40 +00:00
Kp
184be218b7
Emulate D1 bosses more accurately
...
Use D1 timing for gating, cloaking, and teleporting
2019-08-06 02:59:40 +00:00