Kp
745de17c41
Use T::index_type for highest_valid
2015-07-13 01:09:36 +00:00
Kp
012b65a37c
Pass vcobjptridx to check_trigger
2015-07-12 01:04:22 +00:00
Kp
13bcdcf0ca
Use valptr for fireball.cpp
2015-07-12 01:04:19 +00:00
Kp
fdd2356eac
Use segptridx for Cursegp, Markedsegp
2015-07-12 01:04:18 +00:00
Kp
aa890e5d29
Pass only valptr_t to fuelcen_delete
2015-07-12 01:04:18 +00:00
Kp
a8fadce19f
Pass only vobjptr_t to obj_unlink
2015-07-12 01:04:17 +00:00
Kp
e54b550c59
Pass only vobjptr_t to multi_reset_player_object
2015-07-12 01:04:17 +00:00
Kp
1b6999ff4d
Switch get_seg_masks from vcsegptridx_t to vcsegptr_t
...
The index component is not needed.
2015-07-12 01:04:17 +00:00
Kp
8b7c5c3e2b
Rewrite valptridx
...
Move decisions out to policy classes. Provide trivial copy
construction/assignment. Simplify checking for unsafe conversions.
2015-07-09 03:12:45 +00:00
Kp
658102a868
Improve static_assert test
...
Previously, SConstruct tested whether static_assert worked with trivial
constant expressions. Extend the test to more complicated expressions
like the ones used in the program.
Replace the typedef based approach with an inline enum to avoid warnings
about unused local typedefs.
Allow use with compilers that lack working static_assert or that cannot
accept complicated expressions. Add a non-checking definition that uses
the input parameter. This prevents warnings when types or constants are
used only for the static_assert.
2015-07-09 03:12:45 +00:00
Kp
4a742e3fc4
Parenthesize static_assert expression
...
When static_assert is a macro, it must have two arguments as seen by the
preprocessor. Add an identity mapping to the native case to enforce
this, and fix up all the sites that break with the new rule.
2015-07-09 03:12:45 +00:00
Kp
fe360b18e3
Implement secluded spawns
2015-07-04 21:01:18 +00:00
Kp
c03fe30fc2
Move similar/arch/sdl/timer.cpp -> common/arch/sdl/timer.cpp
2015-07-04 21:01:17 +00:00
Kp
d73e5a24c3
Reduce scope of ifdef(D1||D2)
2015-07-04 21:01:17 +00:00
Kp
f42a3fe241
Improve Cfg locality
2015-07-04 21:01:17 +00:00
Kp
06b453d617
Enable D1 weapon drops
2015-07-02 02:37:55 +00:00
zico
cd27af9e41
Made MULTI_POSITION and MULTI_ROBOT_POSITION use quaternion packets to increase precision of powerup drops, robot movement and their firing; Also decreased priority of the first iteration of MULTI_POSITION from 2 to 1 as the first packet does not need to be protected but just serves as a convinient excuse to flush the multi data buffer
2015-06-28 19:20:46 +02:00
Kp
0c106b67f2
Make convert_raw_joy_axis static
2015-06-23 03:04:47 +00:00
Kp
24b88c28c7
Fix cmd queue append
2015-06-21 22:30:28 +00:00
Kp
29aa820dc0
Only respawn when the player presses fire
...
Only respawn when the player presses a fire key/button (primary,
secondary, or flare). Only clear primary, second, flare, and bomb when
respawning. This allows dead players to use the automap or change their
camera views.
This is a necessary step to flushing only the firing inputs on respawn,
as requested by Mako88 in
<https://github.com/dxx-rebirth/dxx-rebirth/issues/104 >. Currently,
inputs are flushed again by the activation of the game window, so
respawn still flushes all inputs.
#1 0x00005555555cee19 in game_flush_inputs () at similar/main/game.cpp:374
#2 game_handler (event=...) at similar/main/game.cpp:1114
#3 0x0000555555576113 in window_send_event (wind=..., event=...) at common/arch/sdl/window.cpp:208
#4 0x000055555557627b in WINDOW_SEND_EVENT (file=0x5555556dc126 "common/arch/sdl/window.cpp", e=0x5555556dc141 "EVENT_WINDOW_ACTIVATED", line=179, event=..., w=...) at common/include/window.h:111
#5 window_set_visible (w=..., visible=visible@entry=1) at common/arch/sdl/window.cpp:179
#6 0x00005555555e90f5 in window_set_visible (visible=1, wind=<optimized out>) at common/include/window.h:90
#7 DoPlayerDead () at similar/main/gameseq.cpp:1479
#8 0x000055555563ed65 in dead_player_frame () at similar/main/object.cpp:1486
#9 0x00005555555cf4df in GameProcessFrame () at similar/main/game.cpp:1329
#10 game_handler (event=...) at similar/main/game.cpp:1157
2015-06-20 16:16:43 +00:00
Kp
968cdbecf4
Add non-aborting UserError for user-caused fatal errors
2015-06-16 03:15:40 +00:00
Kp
c72a3a9b11
Make Stuck_objects static
2015-06-13 22:42:21 +00:00
Kp
3905f1a668
Enable -Wcast-qual
2015-06-13 22:42:21 +00:00
Kp
1dc0e24f30
Propagate swap_bytes argument for create_shortpos
...
In every case but one, create_shortpos was called with a constant flag
equal to words_bigendian. The demo system called it with a constant 0.
Split create_shortpos into create_shortpos_little and
create_shortpos_native. Use create_shortpos_native for the demo system,
and create_shortpos_little everywhere else.
2015-06-13 22:42:21 +00:00
Kp
ce72014e2e
Always parse WORDS_BIGENDIAN and !WORDS_BIGENDIAN
2015-06-13 22:42:21 +00:00
Kp
5573ed6bea
Cache font scale X float
2015-06-13 22:42:20 +00:00
Kp
49854c08dd
Change FSPACX/FSPACY macros to inline functions
2015-06-13 22:42:20 +00:00
Kp
302e344979
Warn when UI_GADGET_* are immediately freed
2015-06-13 22:42:19 +00:00
Kp
9ecb8d8601
Use fwdvalptridx instead of inline forward declarations
2015-06-13 22:42:16 +00:00
Kp
286753d210
Fix valptridx operator& definition
2015-06-13 22:42:15 +00:00
Kp
9125ae32cd
Make objnum unsigned
2015-06-13 22:42:15 +00:00
Kp
00c1429ebf
Use enum for Escort_special_goal
2015-06-13 22:42:15 +00:00
Kp
148c0f44c8
Convert segnum_t to uint16_t
2015-06-13 22:42:15 +00:00
Kp
fcaacaebde
Factor out valptridx test for *_none
2015-06-13 22:42:15 +00:00
Kp
8358dfcd0b
Support biased pointers to help memory debuggers
2015-06-13 22:42:15 +00:00
Kp
d5b5846657
Fix serial *_type -fno-inline build
2015-06-11 03:06:58 +00:00
Kp
5124c510f8
Fix serial endian_access -fno-inline build
2015-06-11 03:06:58 +00:00
Kp
06c363fb19
Fix UI_GADGET -fno-inline build
...
Fixes: 95e3ac1e5b
("Use integral_constant for UI kind")
2015-06-11 03:06:58 +00:00
Kp
64ee9e0047
Improve memdebug d_strdup trace
2015-06-11 03:06:58 +00:00
John Ackerman
fe71a94d53
Implement Nonlinear Joystick Settings
...
[Kp: fix whitespace; squash fixes into main]
Requested-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/pull/84 >
2015-06-11 01:41:26 +00:00
Kp
7c436f1fbb
Merge pull #39 into unification/master
...
Requested-by: btb <https://github.com/dxx-rebirth/dxx-rebirth/pull/39 >
Acked-by: Matt1360 <https://github.com/dxx-rebirth/dxx-rebirth/pull/39#issuecomment-88712761 >
Acked-by: zico <https://github.com/dxx-rebirth/dxx-rebirth/pull/39#issuecomment-88907523 >
2015-06-07 16:21:37 +00:00
Kp
0e80080b7b
Fix -Wvla error in cmd_execute
2015-06-07 16:20:48 +00:00
Kp
b77db2f638
Use RAIIdmem for cmd_queue_t command_line
2015-06-07 16:20:47 +00:00
Kp
3cab20a501
Move cmd local classes into anonymous namespace
2015-06-07 16:20:47 +00:00
Kp
9a451a9168
Pass cvar_registervariable cvar by &
2015-06-07 16:20:47 +00:00
Kp
4c778ed26b
Add const to cmd prototype
2015-06-07 16:20:47 +00:00
Kp
23349f06e1
Use std::forward_list for cmd_queue
2015-06-07 16:20:47 +00:00
Kp
6bc96bd72b
Remove unaliased entries from map
2015-06-07 16:20:47 +00:00
Kp
e33b037b83
Use RAIIdmem for cmd_alias_t value
2015-06-07 16:20:47 +00:00
Kp
3dec5551ca
Use std::map for cmd_alias_list
2015-06-07 16:20:47 +00:00
Kp
948a4fc184
Use std::map for cmd_list
2015-06-07 16:20:47 +00:00
Kp
1afa132c18
Simplify cli gr_string call
2015-06-07 16:20:47 +00:00
Kp
ddb521c5e7
Use std::map for cvar_list
2015-06-07 16:20:46 +00:00
Kp
2be3ce1f01
Use std::string for cvar string
2015-06-07 16:20:46 +00:00
Kp
ff452dbded
Move CLI code to common
...
None of it depends on D1 vs D2.
2015-06-07 16:20:46 +00:00
Kp
1115114e3d
Remove unnecessary old-style const stripping cast
...
This cast was necessary only because cvar_set_cvar was not properly
const.
2015-06-07 16:20:46 +00:00
Kp
204b7d7cb7
Remove dangerous const-removing constructor
...
Fortunately, this constructor was unnecessary. If it had ever been
used, later code could d_free() read-only storage.
2015-06-07 16:20:46 +00:00
Kp
3718678576
Reduce cvar.h includes
2015-06-07 16:20:46 +00:00
Kp
3b54c50230
Use std::bitset for laser hitobj mask
2015-06-06 18:03:45 +00:00
Kp
f7de7d132a
Add initial support for minimum_size
2015-06-05 02:34:40 +00:00
Kp
a8bb0ad07d
Use integral_constant for serial constants
2015-06-05 02:34:40 +00:00
Kp
39b705b352
Use integral_constant for grant masks
2015-06-05 02:34:40 +00:00
Kp
a918692a23
Preprocess out EDITOR-only vm_vec_ang_2_matrix
...
Remove vm_vec_ang_2_matrix from non-EDITOR builds so that
sincos_2_matrix has only one caller, allowing compiler to implicitly
inline it.
2015-06-02 03:03:32 +00:00
Kp
0f6a82963a
Inline fix_sincos in vm_extract_angles_matrix
2015-06-02 03:03:32 +00:00
Kp
0141e9ed78
Remove redundant fix_sincos calls
...
The result is immediately overwritten. Skip computing it.
2015-06-02 03:03:32 +00:00
Kp
b207aa6900
Shorten vm_angles_2_matrix
2015-06-02 03:03:31 +00:00
Kp
33204bac5c
Make Break_on_object static
2015-06-02 03:03:31 +00:00
Kp
bb5fd12ffe
Pass vcobjptr to object_intersects_wall
2015-06-02 03:03:31 +00:00
zico
2bfe21183e
Changing homing turn times to 30 FPS base again by user request
2015-06-01 15:27:34 +02:00
zico
b04282e791
Using one global yet independent timeer for homing missiles similar to d_tick instead of having one in each missile object. Also decreased HOMING_TURNING_TIME to 25 FPS base
2015-05-30 18:29:41 +02:00
zico
7ba3d1317b
Isolated all of the homing code into time-depending condition determined by track_turn_time and added track_turn_tick to make target re-discovery dependent on the individual missile tracking instead of global d_tick_count
2015-05-28 15:22:40 +02:00
Kp
b6a9b2a853
Pass vsegptridx to wall_toggle
2015-05-28 03:08:40 +00:00
Kp
850853326c
Pass vsegptridx to gate_in_robot
2015-05-28 03:08:39 +00:00
Kp
5cc38ea06c
Pass vcsegptridx to digi_link_sound_to_pos
2015-05-28 03:08:39 +00:00
Kp
babfa9d8e7
Construct d_event_mousebutton
2015-05-28 03:08:39 +00:00
Kp
692038f284
Cache modifier keys
2015-05-28 03:08:38 +00:00
Kp
25186ca984
Remove write-only keyd_last_released
2015-05-28 03:08:38 +00:00
Kp
badad2ef33
Remove write-only keyd_last_pressed
2015-05-28 03:08:38 +00:00
Kp
abfd8e4d83
Split mouse_toggle_cursor
2015-05-28 03:08:38 +00:00
Kp
73300a285d
Merge "change u_int*_t to C99 standard uint*_t"
...
Requested-by: btb <https://github.com/dxx-rebirth/dxx-rebirth/pull/67 >
Acked-by: Matt1360 <https://github.com/dxx-rebirth/dxx-rebirth/pull/67#issuecomment-104806115 >
2015-05-23 17:36:29 +00:00
zico
1f6ae58f52
Added HANDS_OFF_PERIOD define for multibot to make sure code will not break if MAX_ROBOTS_CONTROLLED changes
2015-05-23 18:18:20 +02:00
Kp
2f00efdcc6
Fix gcc-4.6 weapon build
...
gcc-4.6 chokes on `static constexpr type value{};`, but accepts
`static constexpr auto value = type{};`
Fixes: 9d213b5282
("Wrap player_has_weapon return type")
2015-05-22 03:33:20 +00:00
Kp
ef1abd87e8
Fix gcc-4.6 digi build
...
gcc-4.6 chokes on `static constexpr type value{};`, but accepts
`static constexpr auto value = type{};`
Fixes: ae8b99ae7d
("Use RAIIdigi_sound for briefing printing_channel")
2015-05-22 03:33:20 +00:00
Kp
63cea8bb23
Fix gcc-4.6 ui build
...
gcc-4.6 chokes on `static constexpr type value{};`, but accepts
`static constexpr auto value = type{};`
Fixes: 95e3ac1e5b
("Use integral_constant for UI kind")
2015-05-22 03:33:19 +00:00
Kp
0fc7b1898c
Fix gcc-4.6 serial build
...
gcc-4.6 chokes on `static constexpr type value{};`, but accepts
`static constexpr auto value = type{};`
Fixes: 9595aec2fb
("Use integral_constant for endian constants")
2015-05-22 03:33:19 +00:00
Kp
cc2a5e9790
Use gr_free_bitmap_data for Orb_icons
2015-05-22 03:33:19 +00:00
Bradley Bell
bdacd2f7d7
change u_int*_t to C99 standard uint*_t
2015-05-18 17:12:53 -07: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
265ad59e9c
Remove set_default_handler
...
standard_handler is the only handler. Use it directly.
2015-05-14 02:23:13 +00:00
Kp
e50b0d479e
Inline event_mouse_get_delta
2015-05-14 02:23:13 +00:00
Kp
2a8b79f868
Inline event_mouse_get_button
2015-05-14 02:23:13 +00:00
Kp
0ece005dfa
Use screen_mode for screen resolution
2015-05-14 02:23:13 +00:00
Kp
2d9af1e348
Propagate gr_init argument
2015-05-14 02:23:13 +00:00
Kp
cb873563c8
Move reticle menu to macro
2015-05-14 02:23:13 +00:00
Kp
ac3b1d6aa3
Switch do_cockpit_window_view to vobjptr_t
...
Only the wake_up_rendered_objects hack needed a vobjptridx_t. Switch to
vobjptr_t.
2015-05-13 03:20:28 +00:00
Kp
5810faf33d
Make Ai_last_missile_camera object*
2015-05-13 03:20:28 +00:00
Kp
38e8967fba
Split event_toggle_focus
2015-05-09 17:39:03 +00:00
Kp
f248006df5
Remove unused mouse_get_btns
2015-05-09 17:39:03 +00:00
Kp
044ef0773a
Shorten partial_range error reporting
2015-05-09 17:39:02 +00:00
Kp
f92e890f50
Improve valptridx exception reporting
2015-05-09 17:39:02 +00:00
Kp
29f239d6b1
Raise PHYSFSX_exists bool check to caller
...
All callers use a constant value, so raise the check into the caller to
let the optimizer delete the unnecessary branch.
2015-05-09 17:39:02 +00:00
Kp
371838c74e
Use unique_ptr to manage GLsync fence
2015-05-09 17:39:01 +00:00
Kp
5a2c11c7ad
Precompute OGL sync wait_timeout milliseconds
2015-05-09 17:39:01 +00:00
Kp
2e2c17669c
Shorten timer_delay
2015-05-09 17:39:01 +00:00
Kp
b1992b5e59
Shorten timer_delay2
2015-05-09 17:39:01 +00:00
Kp
ed86b53395
Make Muzzle_queue_index static
2015-05-09 17:39:01 +00:00
Kp
1cdc43d71a
Split object_create_egg
2015-05-09 17:39:01 +00:00
Kp
f5b02ce6a0
Remove write-only ai_static D1 follow_path_start_seg
2015-05-09 17:39:01 +00:00
Kp
7dae02fbb4
Remove write-only ai_static D1 follow_path_end_seg
2015-05-09 17:39:00 +00:00
Kp
3b59a71e11
Remove unused D1 last_see_time
2015-05-09 17:39:00 +00:00
Kp
83baf4dfe8
Remove unused D1 last_attack_time
2015-05-09 17:39:00 +00:00
Kp
9a4f7a32bf
Pass vcsegptr to fuelcen_give_fuel
2015-05-09 17:39:00 +00:00
Kp
6dccb811b7
Pass unsigned x/y to gr_pixel
2015-05-09 17:39:00 +00:00
Kp
cf87ebe54d
Remove write-only grs_bitmap::bm_handle
2015-05-09 17:38:59 +00:00
Kp
b124b3d75f
Shorten Hline/Vline
2015-05-09 17:38:59 +00:00
Kp
a51a7110e8
Pass vobjptridx_t to multi_send_position
2015-05-09 17:38:59 +00:00
Kp
b5eae4c809
Split create_smart_children
2015-05-09 17:38:58 +00:00
Kp
08a42a68ff
Pass vcobjptridx to laser_are_related
2015-05-09 17:38:58 +00:00
Kp
ae8ee3651a
Enable vcvalptr(P*)
2015-05-09 17:38:58 +00:00
Kp
bdee338e34
Preserve array size for ui_get_filename
2015-05-09 17:38:58 +00:00
Kp
649993982f
Enable tail call optimization in menubar_close
2015-05-09 17:38:58 +00:00
Kp
36ce989db6
Refactor get_next_segment
2015-05-09 17:38:58 +00:00
Kp
fc4b686d9d
Store PHYSFS_list element count in list when needed
2015-05-09 17:38:57 +00:00
Kp
68834fb929
Expand render_mine window_rendered_data helper inline
2015-05-05 03:20:42 +00:00
Kp
1d08cb6058
Fix file_get*list nullptr without constructor inheritance
2015-05-05 03:20:42 +00:00
Kp
9dc22b1ee6
Expand DXX_CXX11_EXPLICIT_DELETE
...
Various functions use the non-macro form, so support for =delete is
already mandatory. Remove the remnants of support for compilers which
lack =delete and replace it with a hard stop when the compiler rejects
declaring explicitly deleted functions.
2015-05-01 02:18:33 +00:00
Kp
9f01dcf0db
Use signed multiplier in fix_sincos
...
Fixes: a5b83d19de
("Simplify fix_sin/fix_cos calls")
2015-04-30 03:32:27 +00:00
Kp
6431b9d821
Include <cstdint> for maths.h
2015-04-30 03:32:26 +00:00
Kp
a5b83d19de
Simplify fix_sin/fix_cos calls
2015-04-29 03:35:09 +00:00
Kp
e30e0ebb94
Shorten vm_vec_copy_scale
2015-04-29 03:35:09 +00:00
Kp
bfd434fb15
Switch object_signature_t forward declaration to class
...
Although struct and class are interchangeable in this context, clang
whines when the program mixes them. Use 'class' consistently to silence
this warning.
Reported-by: btb <91d31b1952 (commitcomment-10903195)
>
Fixes: 91d31b1952
("Wrap object signature in subtype")
2015-04-26 20:15:57 +00:00
Kp
0d564814f5
Convert Primary_weapon to primary_weapon_index_t
2015-04-26 20:15:57 +00:00
Kp
67e5e8c6c1
Remove unused gr_make_blend_table
2015-04-26 20:15:57 +00:00
Kp
ace2235ad8
Remove unused gr_make_cthru_table
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
6792c1bc4b
Enable -Wunused-parameter
2015-04-26 20:15:56 +00:00
Kp
cca163fc30
Split select_weapon
2015-04-26 20:15:52 +00:00
Kp
f789e29b41
Simplify check_to_use_primary
2015-04-26 20:15:52 +00:00
Kp
610f603ebf
Pass weapon_name to select_weapon
2015-04-26 20:15:52 +00:00
Kp
10b9206a9b
Split do_weapon_select
2015-04-26 20:15:51 +00:00
Kp
4d046c5336
Split auto_select_weapon
2015-04-26 20:15:51 +00:00
Kp
8e5a63700b
Use enum class for ai_mode
2015-04-26 20:15:51 +00:00
Kp
f15ec9c86a
Use enum for AIM constants
2015-04-26 20:15:51 +00:00
Kp
e883d7c872
Use enum class for AIB constants
2015-04-26 20:15:51 +00:00
Kp
c3925353fd
Use null_sentinel_iterator for PHYSFS_list_t
2015-04-26 20:15:51 +00:00
Kp
143c536c77
Use PHYSFS_list_t for more functions
2015-04-26 20:15:50 +00:00
Kp
44adc83ca4
Use std::remove_if in file_get*list
2015-04-26 20:15:50 +00:00
Kp
f00ec13c0f
Use std::move_backward for file_getdirlist
2015-04-26 20:15:50 +00:00
Kp
fd6ac87c25
Fix trigger_none checks
2015-04-26 20:15:50 +00:00
Kp
5d0a640449
Always inline PHYSFS check functions
...
The checking is done at compile time, so force them inline to ensure
the optimizer recognizes constants.
2015-04-26 20:15:50 +00:00