Kp
2eda0d98ee
Add workaround for Win32 array::size() triggering -Wuseless-cast
...
As described in commit 674a921
("Add workaround for Win32 wrong type for
size_t"), std::array on Win32 returns type std::size_t, which is
`unsigned int` instead of the `unsigned long` seen on Linux. Calling
std::min requires both arguments to have the same type. On Linux, this
required casting the result of size() to `unsigned` to match the other
input. On Win32, that cast provokes a -Wuseless-cast warning. Add a
workaround by removing the cast and instead explicitly setting the type
of std::min's arguments to `unsigned`, then relying on the compiler to
perform an implicit conversion from `unsigned long` to `unsigned int`
on Linux. The value is always small enough to fit in an `unsigned int`,
so no precision loss will occur.
2016-08-19 03:41:42 +00:00
Kp
14c7683afa
Remove useless cast in gameseq.cpp
2016-07-15 03:43:03 +00:00
Kp
a7c64d6f97
Convert simple int casts from C style to static_cast<>
2016-07-07 03:08:13 +00:00
Kp
9128ff7c35
Move Next_laser_fire_time to player_info
2016-07-06 01:54:26 +00:00
Kp
bd3db75108
Move Next_missile_fire_time to player_info
2016-07-06 01:54:26 +00:00
Kp
a554d7e2c4
Move Next_flare_fire_time into player_info
2016-07-06 01:54:25 +00:00
Kp
3fe581c84a
Cache reference to local player object
2016-07-03 00:54:16 +00:00
Kp
3272caed7d
Cache reference to local player energy
2016-07-03 00:54:16 +00:00
Kp
15f2471be0
Cache reference to local player shields
2016-07-03 00:54:16 +00:00
Kp
b9804e6e58
Cache reference to local player cloak time
2016-07-03 00:54:15 +00:00
Kp
c3e2edaff0
Cache reference to local player invulnerable time
2016-07-03 00:54:15 +00:00
Kp
96b258e958
Cache reference to local player flags
2016-07-03 00:54:15 +00:00
Kp
ce5cce0708
Update delayed weapon when updating primary for grant
...
Grant processing code sets `Primary_weapon` to the user's preferred
weapon, but the delayed autoselect code then changed it back to
something else. Call select_primary_weapon instead of directly updating
`Primary_weapon`, so that `Delayed_primary` is updated too.
This also fixes a bug where the demo always recorded the player
switching to lasers/concussion, instead of the values that the player
actually received from the grant.
Reported-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/issues/184 >
2016-06-25 23:21:36 +00:00
zico
5c72b57b13
Initialize weapons on new game to prevent spawning with weapons selected in previous game if launching with Granted Weapons
2016-06-20 11:57:31 +02:00
Kp
231223895d
Rewrite simple pointer casts from C style to reinterpret_cast<>
...
This pass only targets commonly used standard types.
s/(\(\s*\(\(un\)\?signed\|int\|char\|short\|long\|float\|double\|s\?size_t\|\(u\?int[[:digit:]]\+_t\)\)\s*\*\)\s*)\s*(/reinterpret_cast<\1>(/g
2016-06-05 01:04:26 +00:00
Kp
b282bea173
Rewrite simple integer casts from C style to static_cast<>
...
This pass only targets commonly used standard types.
s/(\(\s*\(\(un\)\?signed\|int\|char\|short\|long\|float\|double\|s\?size_t\|\(u\?int[[:digit:]]\+_t\)\)\)\s*)\s*(/static_cast<\1>(/g
2016-06-05 01:04:26 +00:00
Kp
7fdce88558
Add parentheses around target of simple casts
...
C casts do not require parentheses. C++ casts require grouping around
the target. Prepare for conversion to C++ casts by adding otherwise
unnecessary parentheses around the target of simple C casts.
This pass does not attempt to process expressions that involve
any subexpression that can nest arbitrarily, such as parentheses or
brackets. It also works only on commonly used standard types.
(int) a->b; // changed
(int) a[b]; // not changed
s/\((\s*\(\(un\)\?signed\|int\|char\|short\|long\|float\|double\|s\?size_t\|\(u\?int[[:digit:]]\+_t\)\)\s*\**\s*)\s*\)\([&+-]\?\)\([[:alnum:]_.]\+\s*->\s*\)*\([[:alnum:]_.]\+\)\(\s*\([];+>)*\/^%,|&<>]\)\|$\|\(\s*-\s*[^>]\)\)/\1(\5\6\7)\8/g
2016-06-05 01:04:25 +00:00
Kp
b31446340c
Rewrite cast of (ubyte*) to standard type uint8_t
...
s/(\s*ubyte\s*\*\s*)/(uint8_t *)/g
2016-06-05 01:04:25 +00:00
zico
660d18c312
Check for GM_MULTI together with Netgame.InvulAppear in init_player_stats_new_ship(). Otherwise going into Singleplayer after starting a Multiplayer match with this option set can translate this effect into Singleplayer.
2016-05-30 15:00:07 +02:00
Kp
3fb16c1d7a
Propagate bm_mode::linear into pcx_read_bitmap
2016-05-28 17:31:26 +00:00
Kp
398596c468
Use enum for bitmap mode
2016-05-28 17:31:26 +00:00
Kp
c1503d0e0f
Widen scope of player_info preservation
2016-03-19 19:08:11 +00:00
Kp
dc70dd61a5
Move gameseq_init_network_players call into LoadLevel
...
gameseq_init_network_players updates the Players array after loading a
level. This should always be done, since players may change their
object number across levels. Move the call into LoadLevel since some
callers failed to do it.
2016-03-19 19:08:10 +00:00
Kp
8a09513934
Cache get_local_player in init_player_stats_level
2016-03-18 02:05:16 +00:00
Kp
be17cc929d
Combine count_number_of_{robots,hostages} into template
2016-03-17 03:34:24 +00:00
Kp
0f35160d55
Shorten gameseq_init_network_players
2016-03-17 03:34:23 +00:00
Kp
95ab6076a4
Move FakingInvul to player_info
...
Every player can fake invulnerability independently. In preparation for
host tracking, store FakingInvul as a player property, not a static
global.
2016-02-27 19:02:21 +00:00
zico
901a554e96
New powerup management code: Addeed functions and packet type to keep track of original and current level inventory as well as player and thief inventories. Calling maybe_drop_net_powerup() for all ammo based weapons except Concussion missiles. Limiting maybe_drop_net_powerup() to only spawn items missing from initial level inventory. Added function to let host respawn items that were lost for whatever reason. Expanded maybe_drop_net_powerup() and child functions to be able to drop item based on a random player. Changed back maybe_drop_secondary_weapon_egg() to its original behavior, dropping 3 of each type max.
2016-02-25 14:11:08 +01:00
Kp
cc18ad2b68
Fix some -Wshadow warnings
2016-02-12 04:02:28 +00:00
Kp
2fd6a425b0
Remove highest_valid
2016-02-12 04:02:28 +00:00
Kp
b57f08c798
Use partial_const_range
2016-02-12 04:02:28 +00:00
Kp
4e29e2625d
Move multi_endlevel_poll* lookups to menu creation
2016-01-26 03:45:06 +00:00
Kp
1880648c2b
Use ?: for endlevel glitz menu
2016-01-10 21:18:09 +00:00
Kp
a3ae630829
Remove default argument for basic_ptridx(index)
2016-01-09 16:38:14 +00:00
Kp
47190be8e9
Fold Player_exploded into Player_dead_state
2016-01-09 16:38:10 +00:00
Kp
e222a13495
Remove sprintf from gameseq.cpp
2016-01-03 20:21:36 +00:00
Kp
f4a5040a60
Remove write-only Last_laser_fired_time
2015-12-22 04:18:52 +00:00
Kp
e8c34be843
Use v*ptr* factories with highest_valid
2015-12-22 04:18:51 +00:00
Kp
2b51578ba6
Use enum class for Player_dead_state (formerly Player_is_dead)
2015-12-15 04:09:35 +00:00
Kp
26e948d5f1
Uninline namespace dsx
2015-12-13 18:00:49 +00:00
Kp
dc8c0323d8
Uninline namespace dcx
2015-12-13 18:00:49 +00:00
Kp
8109379fdd
Use inline namespace dsx for similar/misc/
2015-12-13 18:00:48 +00:00
Kp
8a97c173a3
Remove useless gr_remap_mono_fonts
...
gr_remap_mono_fonts searches for fonts with !(font->ft_flags & FT_COLOR)
and calls gr_remap_font on any it finds.
gr_remap_font starts with:
if (!(font->ft_flags & FT_COLOR))
return;
2015-12-04 03:36:32 +00:00
Kp
708dc0a7e1
Use vobjptr/vcobjptr for more Objects[] access
2015-12-03 03:26:49 +00:00
Kp
0c75aecc45
Check most uses of object id
2015-11-27 03:56:13 +00:00
Kp
44753209d6
Move homing_object_dist to object.ctype.player_info
2015-11-14 18:17:22 +00:00
Kp
52051c427b
Move invulnerable_time to object.ctype.player_info
2015-11-14 18:17:21 +00:00
Kp
9eb8aba4c9
Move cloak_time to object.ctype.player_info
2015-11-14 18:17:21 +00:00
Kp
6b353cb9ac
Move player powerup_flags to object.ctype.player_info
2015-11-07 21:55:59 +00:00
Kp
8a81e25ab0
Move player laser_level to object.ctype.player_info
2015-11-07 21:55:59 +00:00
Kp
b788d0b563
Move player primary_weapon_flags to object.ctype.player_info
2015-11-07 21:55:59 +00:00
Kp
8d6949efa6
Move player killer_objnum to object.ctype.player_info
2015-11-07 21:55:59 +00:00
Kp
6037372cdf
Move player vulcan_ammo to object.ctype.player_info
2015-11-07 21:55:59 +00:00
Kp
e227ef1b32
Move player secondary_ammo to object.ctype.player_info
2015-11-07 21:55:58 +00:00
Kp
6fd6436f14
Move player energy to object.ctype.player_info
2015-11-07 21:55:58 +00:00
Kp
2e28a491f2
Move player shields to struct object
2015-11-07 21:55:58 +00:00
Kp
6eb1676ada
Bulk clear secondary_ammo
2015-11-07 21:55:58 +00:00
Kp
df5e02aed0
Use macro get_local_player_invulnerable_time for player's invulnerable_time
2015-10-30 02:52:56 +00:00
Kp
0285efe49d
Use macro get_local_player_cloak_time for player's cloak_time
2015-10-30 02:52:56 +00:00
Kp
17b8b64980
Use macro get_local_player_flags for player's flags
2015-10-30 02:52:56 +00:00
Kp
92f78caf22
Use macro get_local_player_vulcan_ammo for player's vulcan_ammo
2015-10-30 02:52:56 +00:00
Kp
dc5dfb80e8
Use macro get_local_player_secondary_ammo for player's secondary_ammo
2015-10-30 02:52:56 +00:00
Kp
ea5b7a08c1
Use macro get_local_player_energy for local player's energy
2015-10-30 02:52:55 +00:00
Kp
3ffd207e44
Use macro get_local_player_shields for local player's shields
2015-10-30 02:52:55 +00:00
Kp
070444157e
Use type safe player flags
2015-10-30 02:52:55 +00:00
Kp
7ac2840bfe
Rename Netgame.player_flags to .net_player_flags
...
The simple name conflicts with an upcoming change.
2015-10-30 02:52:54 +00:00
Kp
64c161c4b2
Remove unnecessary zero of .invulnerable_time
2015-10-30 02:52:54 +00:00
Kp
4882558d6e
Remove unnecessary zero of .cloak_time
2015-10-30 02:52:54 +00:00
Kp
e130ea7b36
Remove unnecessary secondary_weapon_flags
2015-10-30 02:52:53 +00:00
Kp
78de0ac119
Add fwd-event.h with forward declarations of event.h
2015-10-09 02:46:10 +00:00
Kp
35cd1261df
Respect autoselect order for granted items
...
Additionally, improve handling of Primary_last_was_super. Previously,
it was cleared to 0, which made sense if the ship starts with only
lasers. Now that the ship can start with other weapons, clearing
Primary_last_was_super to 0 may override a player's choice. Preserve
player's last-was-super choice when the grant gives both the base and
super forms of a weapon.
Requested-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/issues/140 > [for the Primary_weapon part]
2015-09-26 21:17:14 +00:00
Kp
c4a8432081
Remove WORDS_NEED_ALIGNMENT memcpy src cast to const uint8_t*
...
The cast provokes a warning on systems that require alignment, so remove
it. memcpy takes const void* input, so the cast is unnecessary.
Reported-by: MattWatt <https://github.com/dxx-rebirth/dxx-rebirth/issues/119 >
2015-09-13 21:02:19 +00:00
Kp
bdbd56c024
Use C++ <cinclude> style
2015-09-09 03:27:52 +00:00
Kp
bda7fef3a0
Use get_local_player to compute reference to local player
2015-07-25 23:10:46 +00:00
Kp
f38e80c053
Use get_local_plrobj to compute reference to object of local player
2015-07-25 23:10:45 +00:00
Kp
cf678a23ac
Pass vcsegptridx/vcsegptr to find_point_seg
2015-07-18 21:01:55 +00:00
Kp
fe42d32a89
Use valptr for gameseq.cpp
2015-07-12 01:04:20 +00:00
Kp
fe360b18e3
Implement secluded spawns
2015-07-04 21:01:18 +00:00
Kp
3905f1a668
Enable -Wcast-qual
2015-06-13 22:42:21 +00:00
Kp
bbb0b225b4
Use valptr for gameseq highest_valid
2015-06-13 22:42:17 +00:00
Kp
c53b734abb
Compute slide segments early
...
Store slide flag in segment to save one byte per segment.
2015-05-17 20:37:59 +00:00
Kp
0d564814f5
Convert Primary_weapon to primary_weapon_index_t
2015-04-26 20:15:57 +00:00
Kp
8d849b2b39
Wrap laser level in class
...
Move enum laser_level_t to weapon.h for the new class.
2015-04-26 20:15:56 +00:00
Kp
4381b81497
Pack spawn granted items in D1
2015-04-19 04:18:53 +00:00
Kp
b32298df5a
Rewrite powerup cap code to centralize logic
2015-04-19 04:18:53 +00:00
Kp
c338862ad6
Reduce gauges.h includes
2015-04-19 04:18:51 +00:00
Kp
32b4b8f0bb
Use enum class for level save/load
2015-04-19 04:18:49 +00:00
Kp
6a4c7ed78e
Inline away D1 secret_restore values
2015-04-02 02:36:53 +00:00
Kp
90fbebf8fd
Convert most global arrays to array<>
2015-04-02 02:36:52 +00:00
Kp
6e96ff3e00
Fix ambiguous use of INTEL_SHORT/INTEL_INT
2015-04-02 02:36:52 +00:00
Kp
598a5e42a2
Allow granting items at player spawn
2015-03-28 17:18:02 +00:00
Kp
b32d1c76c9
Move powerup size reset into set_powerup_id
2015-03-28 17:18:02 +00:00
Kp
0707664ae1
Use enum for kmatrix_view result
2015-03-24 02:07:42 +00:00
zico
8d686ab23b
implemented return value for kmatrix_view() so we can properly bail out of the game loop in AdvanceLevel()
2015-03-23 03:03:22 +01:00
zico
8292efe622
made code for level progression more similar between D1X and D2X
2015-03-23 02:43:31 +01:00
Kp
91d31b1952
Wrap object signature in subtype
2015-03-22 18:49:21 +00:00
Kp
7bf49fe551
Fix clang -Wmissing-braces warnings
2015-03-22 18:49:21 +00:00
Kp
ddd9d71633
Reset object size when bashed to shield
...
Drakona noted in Retro that objects retain their original size when
converted to shields. Fixed in Retro as "Objects turned into shields
were sometimes the wrong size."
Reported-by: Drakona <catherine.e.darrow@gmail.com>
2015-03-09 03:33:07 +00:00
Kp
dc8b88eed4
Convert various loops to range_for
2015-02-14 22:48:27 +00:00
Kp
99a4a0ed62
Capture range_for by-value temporaries as const
...
Modifying a by-value temporary does not affect the underlying container,
so modifying it is almost always a bug. Require use of a by-reference
capture when modification is desired.
sed -i -e 's/range_for\s*(\s*\(const\s\+\)\?auto\s\+\([[:alpha:]_]\)/range_for (const auto \2/g'
2015-02-05 03:03:49 +00:00
Kp
ae0a00a893
Return timer_query() from timer_update()
...
Most timer_update sites immediately query the timer, so return it to
save them the call.
2015-02-05 03:03:48 +00:00
Kp
d4117871a1
Use range_for for intro movies
2015-01-29 04:27:36 +00:00
Kp
c6664a45a6
Add newmenu_do helper for array<newmenu_item, N>
2015-01-18 01:58:32 +00:00
Kp
fa10e51999
Add helper nm_item_text
2015-01-18 01:58:31 +00:00
Kp
67e503b9b7
Add helper nm_item_menu
2015-01-18 01:58:31 +00:00
Kp
030a811661
Pass nullptr for Descent 1 state_save_all filename_override
2014-12-30 02:09:23 +00:00
Kp
fbac119095
Propagate use of objptridx_t
2014-12-23 04:20:27 +00:00
Kp
499b1d3b66
Use range_for for NumNetPlayerPositions
2014-12-23 04:20:27 +00:00
Kp
0f30d4eb72
Use PHYSFSX_gets_line_t for Current_level_palette
2014-12-20 04:36:08 +00:00
Kp
90666ba19b
Use PHYSFSX_gets_line_t for Current_level_name
2014-12-20 04:36:07 +00:00
Kp
6a00d387af
Combine secret/non-secret level glitz
2014-12-18 04:12:39 +00:00
Kp
a622aecd58
Pass vcobjptridx_t to digi_ functions
2014-12-13 17:47:06 +00:00
Kp
c990701d87
Pass show_fullscr arg by &
2014-12-02 03:35:01 +00:00
Kp
95539512d5
Pass pcx_read_bitmap arg by &
2014-12-02 03:35:01 +00:00
Kp
594c597621
Pass gr_init_bitmap_data arg by &
2014-11-30 22:09:20 +00:00
Kp
97332b848c
Pass gr_free_bitmap_data arg by &
2014-11-30 22:09:20 +00:00
Kp
f9a339dfc8
Pass bash_to_shield arg as vobjptr_t
2014-11-26 04:02:08 +00:00
Kp
5aaf847c41
Fix various -Wnarrowing errors
2014-11-26 03:39:21 +00:00
Kp
2c349136cc
Avoid slicing into segnum_t local
2014-11-20 03:00:36 +00:00
Kp
40eb2e6b01
Add vm_vec_scale_add that returns result
2014-11-02 03:43:57 +00:00
Kp
8a89eff0bb
Pass compute_center_point_on_side vector by &
2014-10-30 03:32:27 +00:00
Kp
53aa70cecb
Use vsegptridx_t
2014-10-28 03:08:51 +00:00
Kp
7e955c2c7b
Pass object_create_explosion_sub position by &
2014-10-26 21:36:25 +00:00
Kp
9dea4b4d88
Pass sound vms_vector arg by &
2014-10-26 21:33:50 +00:00
Kp
a32547af16
Pass position-related vms_vector arg by &
2014-10-22 02:46:03 +00:00
Kp
aff354926e
Remove unused bash_to_shield parameter s
2014-10-17 02:07:52 +00:00
Kp
7f648c0f5f
Wrap segment iteration idiom
2014-10-12 23:10:05 +00:00
Kp
fb641b3250
Wrap object iteration idiom
2014-10-12 23:05:46 +00:00
Kp
a8f853aa7a
Pass d_event arg by const&
2014-10-04 22:36:13 +00:00
Kp
af26259158
Remove unnecessary padding in segment sides
2014-10-04 17:53:03 +00:00
Kp
4104bf4f11
Pass vm_vec_scale_add arguments by &
2014-09-28 21:43:14 +00:00
Kp
a5723ed187
Adjust Player_num checks for unsigned Player_num
2014-09-27 22:57:15 +00:00
Kp
e6b9f3f923
Use typedef for player number
2014-09-21 22:10:12 +00:00
Kp
703f60ac3f
Fix -Wtype-limits warnings
2014-09-21 21:41:55 +00:00
Kp
73a0aee004
Use accessor for side::type
2014-09-06 22:36:58 +00:00
Kp
d312248d45
Return int_fast32_t from find_connect_side
2014-09-06 04:06:18 +00:00
Kp
c057ee57ed
Cache calls of WALL_IS_DOORWAY
2014-09-02 22:15:07 +00:00
Kp
fea751bc62
Use std::string for mission path
2014-08-24 17:45:30 +00:00
Kp
66cb80c343
Propagate use of objptridx
2014-08-17 20:31:18 +00:00
Kp
125d9257be
Use special type names for segment/object numbers
2014-08-13 02:57:12 +00:00
Kp
79d2c968a3
Use array<> for Players
2014-08-08 03:02:59 +00:00
Kp
6020c9c013
Use d_fname for DOS filenames
2014-07-25 02:54:31 +00:00
Kp
7552ceb259
Remove unused arguments
2014-07-16 03:24:40 +00:00
Kp
dc87c78fd2
Mark grs_bitmap as prohibit_void_ptr
2014-07-16 03:14:04 +00:00
Matt Vandermeulen
28f307eb85
Fixes #5 - Byteswap header renamed to byteutil, plus sed magic
...
[Kp: switch to #pragma for byteutil.h]
2014-07-03 02:03:08 +00:00
zico
ad7cb106bc
Changed custom D1X license to GPLv3
2014-06-01 19:55:23 +02:00
Kp
a2427f58b5
Use special type to reduce pointer/index conversions
2014-01-12 19:32:12 +00:00
Kp
a3dd2ea963
Pass objptridx_t to create_player_appearance_effect
2014-01-11 22:57:55 +00:00
Kp
9a5d0f6f09
Use symbolic values for segment/object first/none
2014-01-06 04:17:55 +00:00
Kp
b1c5307eb1
Use array for palette_array_t
2013-12-22 00:37:36 +00:00
Kp
a3d66a3b37
Add typedef palette_array_t for palette data
2013-12-22 00:05:13 +00:00
Kp
11a0c44a3c
Use do_screen_message instead of do_screen_message_fmt where possible
2013-12-17 04:03:35 +00:00
Kp
92e8cb7a31
Add type checking to newmenu subfunction userdata
2013-12-15 21:54:38 +00:00
Kp
5d306d06be
Switch endlevel message dialog not to use nm_messagebox1
2013-12-15 19:00:59 +00:00
Kp
cea46651fc
Check type of window handler function
2013-12-15 18:51:26 +00:00
Kp
2bd302cddd
Move Controls ubyte values into substructure
2013-12-13 03:47:57 +00:00
zico
e195290fe4
Added quick load ability for savestates
2013-12-10 18:13:32 +01:00
Kp
2d920e5f7b
Move similar/main/gameseq.c -> similar/main/gameseq.cpp
2013-11-24 22:49:52 +00:00