Kp
d1ac265c2c
Convert ai_local::goal_state to ai_static_state
2022-01-08 17:48:09 +00:00
Kp
37f3c10dd4
Convert ai_static::CURRENT_STATE to ai_static_state
2022-01-08 17:48:09 +00:00
Kp
c3937f391f
Convert ai_static::GOAL_STATE to enum
2022-01-08 17:48:09 +00:00
Kp
9fdf6005df
Convert ai_static::GOALSIDE to sidenum_t
2022-01-08 17:48:09 +00:00
Kp
c6d98df9fb
Move CURRENT_GUN out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
5128b84122
Move CURRENT_STATE out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
39e9673f54
Move GOAL_STATE out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
c10855939b
Move PATH_DIR out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
1f00d716de
Move SUBMODE/SUB_FLAGS out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
db90f0df62
Move GOALSIDE out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
ae44e0226e
Move CLOAKED out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
db7b528177
Move SKIP_AI_COUNT out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
197ed13d42
Move REMOTE_OWNER out of ai_static::flags
2022-01-08 17:48:09 +00:00
Kp
7015e3e93c
Move REMOTE_SLOT_NUM out of ai_static::flags
...
Some flags merit a type other than int8_t. Begin moving flags out to
distinct variables with their own type.
Add static_assert checks that the ABI relevant structures do not change.
2022-01-08 17:48:09 +00:00
Kp
b4341e69a5
Remove unnecessary definitions of get_static_size
...
These exist only to be declared, and never called.
2022-01-07 04:26:22 +00:00
Kp
941190ff32
Explicitly default d_fname copy constructor
...
clang warns that an implicit copy constructor is deprecated in the
presence of an explicitly defaulted copy-assignment operator.
Add an explicitly defaulted default constructor too, since the
explicitly defaulted copy constructor suppresses generation of an
implicit default constructor, and the default constructor is needed.
2022-01-07 04:26:22 +00:00
Kp
634d72760f
Remove unused-but-set variable common/misc/hmp.cpp: d
...
Also delete a now useless loop, which existed solely to update the value
of `d`.
2022-01-07 04:26:22 +00:00
Kp
223c59c5d4
Inline out object_number_array
...
Its main purpose is to pre-initialize the underlying std::array. This
can be done without a separate type.
2022-01-07 04:26:22 +00:00
Kp
f84783b95d
Use enum class for dlindexnum_t
2022-01-07 04:26:22 +00:00
Kreeblah
522acbf398
Updated enums and added define to silence deprecation warnings
2021-12-22 13:45:35 -08:00
Kp
14891bd5af
Merge branch kreeblah/macos-sign-app into master
...
Requested-by: Kreeblah <https://github.com/dxx-rebirth/dxx-rebirth/issues/611 >
2021-12-18 19:29:31 +00:00
Kp
411e113689
Show current zsh version if it is too low
2021-12-18 03:24:43 +00:00
Kp
4c2fdb7cd7
Use helper functions to always print script name on messages
...
For errors, also include the string `error: ` and redirect the text to
stderr.
2021-12-18 03:23:37 +00:00
Kp
58e15eaf5c
Fix spelling errors in codesign comment
2021-12-18 03:22:51 +00:00
Kreeblah
d39d043692
Switch password auth to use an environment variable, to avoid printing it in the SConstruct logs
2021-12-14 21:01:28 -08:00
Kreeblah
8fe7aab673
Add comments about how the notarization process works
2021-12-13 21:18:19 -08:00
Kreeblah
18d19dac16
Removed extraneous double quotes
2021-12-12 16:49:27 -08:00
Kreeblah
9115019fbe
Added comments to shell script
2021-12-12 16:38:53 -08:00
Kreeblah
b696a63190
Updated to pass in binary name instead of using glob
2021-12-12 16:04:31 -08:00
Kreeblah
f97d553013
Updated messages
2021-12-12 15:53:41 -08:00
Kreeblah
8d0aa0c6a8
Initial changes from feedback
2021-12-12 15:45:28 -08:00
Kreeblah
065ec3c4db
Remove unusd function
2021-12-11 16:01:47 -08:00
Kreeblah
0e735f2197
Added more status messages
2021-12-11 15:59:20 -08:00
Kreeblah
2c5e299140
Fixed message location
2021-12-11 15:56:59 -08:00
Kreeblah
4786427f79
Added signing/notarization script
2021-12-11 15:55:34 -08:00
Kp
328046d1ba
Use xrange for texture merge loops
2021-12-01 03:15:21 +00:00
Kp
b6a26ddc8c
Fix high score background truncation
...
Commit 4d6affd74d
("Fix SDL-only briefing crash") added a hack to
prevent a crash when the briefing window is automatically resized.
However, a logic error in that hack causes some subcanvases that were
not wrong to be truncated. Change the logic to fix those subcanvases,
such as the one used for rendering a background in the High Scores
window. The new logic still avoids the crash in in SDL-only mode.
Fixes: 4d6affd74d
("Fix SDL-only briefing crash")
2021-12-01 03:08:27 +00:00
Kp
f99ba91998
Pass user $PATH to Command() for dylibbundler
...
On some systems, such as the Apple M1 (ARM-based Macs),
dylibbundler is in $PATH, but not in a directory found by the limited
path that SCons uses for Command() invocations. This causes the SConf
test to succeed (because it uses the full $PATH), but the Command() to
fail (because it uses a reduced path). Fix this by using the user's
$PATH, if defined, for this Command() invocation.
Along the way, rework tool_bundle.py to use SCons' Node() objects in
place of direct path manipulation. This lets SCons produce better error
messages in some cases.
Reported-by: Kreeblah <https://github.com/dxx-rebirth/dxx-rebirth/pull/610 >
2021-11-08 01:53:05 +00:00
Kp
2fbddf7a5a
Use enum class for tmapinfo_flags
2021-11-01 03:37:20 +00:00
Kp
795b0e9111
Use enum class for station_number
2021-11-01 03:37:20 +00:00
Kp
3e02f99bcd
Use enum class for materialization_center_number
2021-11-01 03:37:20 +00:00
Kp
eea806bcc9
Pass underlying index_type through zip()
...
If std::common_type<range::index_type>... finds a common index_type
among all the zipped ranges, pass that common type through as
zip<...>::index_type. Otherwise, set zip<...>::index_type to void.
This allows enumerate(zip(...))) to report a better index_type.
2021-11-01 03:37:20 +00:00
Kp
4d6affd74d
Fix SDL-only briefing crash
...
Trim the bitmap's current width and height to be not more than its
parent. Otherwise, an automatic screen resize, such as triggered when
playing the robot briefings in Descent 2, will give the window a new
smaller bm_data, but continue to use the old dimensions. This then
causes load_briefing_screen -> gr_bitmap_scale_to -> scale_line to write
off the end of the smaller bm_data, causing memory corruption and
eventually a crash.
2021-11-01 03:37:20 +00:00
Kp
5eaa53d220
Fix SDL-only build
2021-11-01 03:37:20 +00:00
Kp
1596fad557
Change c_tmap_scanline_shaded argument to gr_fade_level
2021-11-01 03:37:20 +00:00
Kp
7ac96996d3
Change type of pixptr to const color_palette_index*
2021-11-01 03:37:20 +00:00
Kp
494ded9e04
Expand cur_tmap_ macros inline
...
These date to when there was a choice. Now, there is no choice. The
target functions are always in C.
2021-11-01 03:37:20 +00:00
Kp
29b619db99
Pass random generator to pick_random_point_in_seg
2021-11-01 03:37:20 +00:00
Kp
3da988708e
Change Side_opposite value_type to sidenum_t
2021-11-01 03:37:20 +00:00
Kp
6467929025
Consolidate Side_to_verts and Side_to_verts_int
...
They have been the same variable since
a8c3a7f10b
("Alias Side_to_verts to
Side_to_verts_int").
2021-11-01 03:37:20 +00:00
Kp
9fc7a14777
Fix LTO build of Descent 2
...
enum game_mode_flags must be visible in common code, which does not
define DXX_BUILD_DESCENT_II. To avoid One Definition Rule errors,
game_mode_flags must have the same definition in all files.
Fortunately, the DXX_BUILD_DESCENT_II definition is a superset of the
common definition, so the preprocessor guards can be replaced with
advisory comments.
Fixes: 2b718da343
("Use enum class for Game_mode, Newdemo_game_mode")
2021-11-01 03:37:20 +00:00
Kp
ba01b2bdc1
Convert some math functions to fixang
...
The value was always truncated internally anyway. Move the truncation
to the call boundary, since most callers started with a fixang.
2021-11-01 03:37:20 +00:00
Kp
3862edfb6c
Use enum class for segment_special
2021-11-01 03:37:19 +00:00
Kp
12a0f8e8e0
Use enum class for wall_state
2021-11-01 03:37:19 +00:00
Kp
76e2f2c6d9
Use enum class for wall_flags
2021-11-01 03:37:19 +00:00
Kp
f64ed06a9d
Use enum class for wall flag constants
2021-11-01 03:37:19 +00:00
Kp
a6f2db2502
Use enum class for player ranking
2021-11-01 03:37:19 +00:00
Kp
8ddfbd17e0
Use enum class for show_kill_list_mode
2021-11-01 03:37:19 +00:00
Kp
d22632ac48
Use enum class for msgsend_state
2021-11-01 03:37:19 +00:00
Kp
7cb34fda0c
Use enum class for network_game_type
2021-11-01 03:37:19 +00:00
Kp
eb7cedc35d
Expand macro Current_mission_longname
2021-11-01 03:37:19 +00:00
Kp
e69b7bd730
Expand macro Briefing_text_filename
2021-11-01 03:37:19 +00:00
Kp
bcc8118dd5
Expand macro Ending_text_filename
2021-11-01 03:37:19 +00:00
Kp
3d878ce04d
Expand macro Last_level
2021-11-01 03:37:19 +00:00
Kp
e36c4a17ab
Expand macro Last_secret_level
2021-11-01 03:37:19 +00:00
Kp
692c09bb7e
Expand macro N_secret_levels
2021-11-01 03:37:19 +00:00
Kp
013ef0ded7
Expand macro Secret_level_table
2021-11-01 03:37:19 +00:00
Kp
d10406c107
Expand macro Level_names
2021-11-01 03:37:19 +00:00
Kp
72cdb9b0cc
Expand macro Secret_level_names
2021-11-01 03:37:19 +00:00
Kp
c64d97307c
Pass level counts to allocate_levels
...
Avoid reading them from a global.
2021-11-01 03:37:19 +00:00
Kp
0c34a48418
Move Last_level_path_created to LevelUniqueObjectState.Level_path_created
...
Change it from the level number on which the path was created to a
true/false flag. The previous logic only tested whether the number was
equal to the current level number.
This also fixes a bug where the action was not available on the first
secret level, since that level is `-1`, and the value was set to `-1` to
indicate that it should be enabled.
2021-11-01 03:37:19 +00:00
Kp
0fcaa76fd1
Move Next_level_num to local scope
...
It does not need to be a global. For each function that uses it, it is
assigned earlier in that same function.
2021-11-01 03:37:19 +00:00
Kp
1a44112907
Remove objnum_local_to_remote wrapper
...
Always use the form that returns both fields.
2021-11-01 03:37:19 +00:00
Kp
57780e0450
Move window_is_visible,window_set_visible to be window methods
...
Shrink w_visible to uint8_t. Move it to pack better.
2021-11-01 03:37:18 +00:00
Kp
8eafbe6197
Shrink window::w_modal to uint8_t
2021-11-01 03:37:18 +00:00
Kp
3cca690728
Assign weakly-typed symbolic names to ogl_ubitmapm_cs special cases
2021-11-01 03:37:18 +00:00
Kp
961aae074a
Remove unused ogl_ubitmapm_cs argument scale
...
Every caller passes `F1_0`. Remove the argument, and propagate its
results through the function.
2021-11-01 03:37:18 +00:00
Kp
1a08ecc8c6
Remove window subfunction types
...
These were type safety mechanisms, which are obsolete now that all
window handlers are implemented through virtual function dispatch.
2021-10-13 02:37:51 +00:00
Kp
192988b004
Use enum class for weapon_info::persistent
2021-09-19 10:53:48 +00:00
Kp
21c530a3e2
Use enumerated_array for difficulty-level-specific arrays
2021-09-19 10:53:48 +00:00
Kp
7fc8c736b3
Pass Powerup_info to multi_prep_level_objects, filter_objects_from_level
2021-09-19 10:53:48 +00:00
Kp
4e75f8a933
Pass canvas to scores_view_menu
2021-09-19 10:53:48 +00:00
Kp
855697bf5d
Make font scaling constructors explicit
2021-09-19 10:53:48 +00:00
Kp
b05905ab4d
Delegate score comma handling to std::locale
2021-09-19 10:53:48 +00:00
Kp
e618851449
Pass canvas to savegame_chooser_newmenu
2021-09-19 10:53:48 +00:00
Kp
aba5fce3a9
Use enum class for gr fade_level
2021-09-19 10:53:48 +00:00
Kp
5caa4755b1
Shrink gr_blend to uint8_t
...
Larger values are not needed.
2021-09-19 10:53:48 +00:00
Kp
07c52f14f9
Save parent canvas in listbox_layout
2021-09-12 16:20:52 +00:00
Kp
8d67bcddb0
Record parent canvas in newmenu
...
Use it to avoid resetting to the screen canvas when preparing the
layout.
2021-09-12 16:20:52 +00:00
Kp
bb29e6fca8
Propagate canvas through more layers
2021-09-12 16:20:52 +00:00
Kp
8623ce3c6a
Pass canvas to ogl_draw_vertex_reticle
2021-09-12 16:20:52 +00:00
Kp
3c37552e5b
Use enum class bm_mode for grs_bitmap::type
2021-09-12 16:20:52 +00:00
Kp
e7aa9855e0
Compute menu border widths from screen canvas instead of screen
...
In practice, this should be the same result. However, this allows the
flexibility to use a canvas other than the screen.
2021-09-12 16:20:52 +00:00
Kp
21241471c6
Return string width/height from gr_get_string_size
...
Use structured bindings to capture the values on return, so that they
can be declared as `const` if they are immutable after initial
computation.
2021-09-12 16:20:52 +00:00
Kp
0750046bc1
Move retrieval of font average width out of gr_get_string_size
...
Most callers do not need it, and it is only vaguely related to the
purpose of measuring a particular string. For those callers that need
it, lift it out.
2021-09-12 16:20:52 +00:00
Kp
2fef4cddec
Pass canvas to do_cockpit_window_view
2021-09-12 16:20:52 +00:00
Kp
5881af50dd
Use __builtin_FILE,LINE for canvas location debugging
...
This avoids declaring macros for gr_set_default_canvas,
gr_set_current_canvas.
2021-09-12 16:20:52 +00:00
Kp
3aa1140700
Optimize out warn_printf on some targets
...
Some targets only ever use GUI warn functions. On those targets:
- initialize `warn_func` to `msgbox_warning` at compile time
- remove the runtime initialize of warn_func in main
On targets which do not call `clear_warn_func`, preprocess out its
declaration and definition.
Taken together, these changes allow some targets not to define
`warn_printf`.
2021-09-12 16:20:52 +00:00
Kp
bd6612a86b
Pass canvas to render_gauges
2021-09-12 16:20:52 +00:00
Kp
4b60205b2f
Propagate up show_boxed_message RenderFlag
...
It is always constant. Explicitly propagate its effects into callers,
then remove the argument.
2021-09-12 16:20:52 +00:00
Kp
df6777c632
Expand game_init_render_buffers inline
...
It is a single function, to add 2 arguments. Using a wrapper obfuscates
the logic.
2021-09-12 16:20:52 +00:00
Kp
98f2578293
Pass Game_mode as a parameter to gauges functions
...
Avoid reloading it from the global.
2021-09-12 16:20:52 +00:00
Kp
2b718da343
Use enum class for Game_mode, Newdemo_game_mode
2021-09-12 16:20:52 +00:00
Kp
48a3ac2c53
Lift ogl_start_frame eye handling into caller
2021-09-12 16:20:52 +00:00
Kp
7f51fa3ac5
Use enum class for VR StereoFormat
2021-09-12 16:20:52 +00:00
Kp
233f31893b
Only prepare pause time if it will be shown
...
Demo playback does not show time data, so there is no need to format it
when it will be hidden.
2021-09-12 16:20:52 +00:00
Kp
211f4ea274
Use window_rendered_data constructor to initialize time
2021-09-12 16:20:52 +00:00
Kp
2afe2f428f
Remove write-only member window_rendered_data::viewer
2021-09-12 16:20:52 +00:00
Kp
fdf5836031
Move g3 instance contexts onto the stack
2021-09-04 12:17:14 +00:00
Kp
6172b69329
Convert more font.cpp sites to use xrange
2021-09-04 12:17:14 +00:00
Kp
c99b67e359
Switch callers to unchecked_partial_range(range) where possible
...
Use unchecked_partial_range(range) instead of
unchecked_partial_range(iterator), since the range form can preserve the
underlying index_type.
2021-09-04 12:17:14 +00:00
Kp
b6bebcf6b8
Propagate T::index_type through partial_range
...
When partial_range is used on a container that defines index_type,
define that same index_type on the partial_range. This allows other
callers, such as enumerate(), to maintain the correct index type.
2021-09-04 12:17:14 +00:00
Kp
16aa554c0e
Remove anonymous namespace in partial_range
...
All the affected symbols are templates, so duplicate instantiations will
not cause duplicate definition errors. Removing the anonymous namespace
wrapper will allow equivalent definitions from different source files to
be folded together, reducing the size of the executable.
2021-09-04 12:17:14 +00:00
Kp
ef1c3d20c6
Compute required_buffer_size earlier in partial_range call tree
...
Push the computation up, so that invocations that differ only in the
length of their expression strings will resolve to the same template.
Rework unchecked_partial_range not to take expression strings if they
will not be used.
2021-09-04 12:17:14 +00:00
Kp
45d72183ce
Rename type/var for partial_range begin/end
...
- UO -> index_begin_type
- o -> index_begin
- UL -> index_end_type
- l -> index_end
- I -> range_exception
The original names were picked because `l` was the length of the
subrange. Rename these to more closely follow STL's begin/end
nomenclature.
`I` was used variously for an iterator type and for the exception type
thrown on error. Rename the latter to be descriptive.
2021-09-04 12:17:14 +00:00
Kp
23f03d0a5e
Add unit tests for partial_range
2021-09-04 12:17:14 +00:00
Kp
ae3dc7f934
Simplify computed color reset
...
gr_find_closest_color did not need it. Remove it. For the others,
resetting the count is sufficient. There is no need to reset the
individual elements.
2021-09-04 12:17:14 +00:00
Kp
fb3c2a4808
Narrow grs_canvas fg/bg color fields
2021-09-04 12:17:14 +00:00
Kp
2c2ef3fa33
Factor out common logic in rle conditionals
2021-09-04 12:17:14 +00:00
Kp
3697aabcdd
RLE processing: use varying pointer types instead of multiplication
2021-09-04 12:17:14 +00:00
Kp
5bd093b3cb
Rework gr_rle_getsize
...
- Add a limiter to let it return early when the result is predictable.
The first caller checks only whether the returned value is above a
threshold. Once the value goes above that threshold, its precise
value will not matter, so stop counting and return early.
- Add comments explaining some of the logic.
2021-09-04 12:17:14 +00:00
Kp
15f944b0b6
Skip trying to rle compress a paged-out bitmap
...
This would crash if it ever happened, so skip such bitmaps.
2021-09-04 12:17:14 +00:00
Kp
99e14b4100
Factor out common paths in gr_rle_encode
2021-09-04 12:17:14 +00:00
Kp
21f736ec37
Require grs_subcanvas for gr_init_sub_canvas
...
Prevent passing a canvas that is not specifically typed as a
grs_subcanvas.
2021-09-04 12:17:14 +00:00
Kp
8eabce8f27
Disallow direct construction of grs_canvas
...
Require use of grs_main_canvas or grs_subcanvas instead.
2021-09-04 12:17:14 +00:00
Kp
1c90863d63
Move grs_main_bitmap earlier in the header
2021-09-04 12:17:14 +00:00
Kp
44a50b6206
Make enumerate() index by array's index_type
2021-09-04 12:17:14 +00:00
Kp
983ad86e4b
Use enum class for trigger number
2021-09-04 12:17:14 +00:00
Kp
6ab3fb262b
Add convenience function underlying_value
...
Add a helper to deduce the enum type of a value, and use an appropriate
std::underlying_type<T> expression for that enum type. This avoids the
need to repeat the type of the enum at the site of each cast, and moves
the casts into the helper to make the callers easier to read.
2021-09-04 12:17:14 +00:00
Kp
c58d26a791
Use trgnum_t more consistently
2021-09-04 12:17:14 +00:00
Kp
6dcd89d494
Try harder to pick distant segments for thief/powerup respawn
2021-09-04 12:17:14 +00:00
Kp
7c09ca75c5
Fix valptridx build for gcc-7
...
In gcc-7, expressions on the false path of `if constexpr` are deleted
before they are considered "used", so a variable that is only used on a
deleted path is reported as an unused variable. Add an alternate path
that casts the variable to void so that it is always used.
2021-08-31 02:20:06 +00:00
Kp
514a146102
Update tool_bundle.py membership test for SCons 4.2.0
...
SConstruct 4.2.0 removes `Environment.has_key`[1]. Switch to use
`__contains__`, which works in SConstruct 4.1.0 and SConstruct 4.2.0.
[1]: https://scons.org/scons-420-is-available.html :
```
Internal has_key methods removed from SCons' dictionary-like objects SubstitutionEnvironment and OverrideEnvironment - in other words, an env - to match Python 3 which no longer has dict.has_key.
```
Reported-by: nastys <https://github.com/dxx-rebirth/dxx-rebirth/issues/561#issuecomment-907872094 >
Reported-by: Kreeblah <https://github.com/dxx-rebirth/dxx-rebirth/issues/561#issuecomment-907876676 >
2021-08-31 02:20:06 +00:00
Kp
828cadd54f
Use constexpr if in valptridx tests for allow_nullptr
2021-08-26 03:13:46 +00:00
Kp
5d39c52b0c
Remote write-only field UI_GADGET::status
2021-08-26 03:13:46 +00:00
Kp
be5061c072
Remove write-only field UI_GADGET::oldstatus
2021-08-26 03:13:46 +00:00
Kp
40c22d0663
Move render_frame helper inline
...
Most call sites had the correct lifetime already, and those that did not
can easily gain it with an extra block scope.
2021-08-26 03:13:45 +00:00
Kp
079ab168a4
Move View_zoom out of global scope
...
It is only used briefly, so it can be local.
2021-08-26 03:13:45 +00:00
Kp
3b5134896f
Remove unused return value of gr_bitmap_rle_compress
2021-08-26 03:13:45 +00:00
Kp
506ab6e5de
Make prohibit_void_ptr methods constexpr
2021-08-26 03:13:45 +00:00
Kp
d748e7bbfc
Add support for xrange steps other than +1
...
Prior to this, an xrange always started at the begin term and
incremented by 1 per step until it reached the end term. There was no
support for a step size other than 1. Add support for custom step size.
It is the caller's responsibility to pick a step size that will
eventually lead to (iter != end) evaluating to false.
2021-08-26 03:13:45 +00:00
Kp
56c98f5345
Improve error reporting for PHYSFSX_openWriteBuffered
...
Return the PHYSFS error code on failure, so that callers can report why
the open failed.
2021-07-25 23:00:56 +00:00
Kp
1c13d3c8d3
Improve error reporting for PHYSFSX_openReadBuffered
...
Return the PHYSFS error code on failure, so that callers can report why
the open failed.
2021-07-25 23:00:56 +00:00
Kp
b2968c55da
Improve error reporting for read_sndfile
...
Move error reporting down into read_sndfile, so that individual failure
paths can have specific error messages.
2021-07-25 23:00:56 +00:00
Kp
a7cbf60922
Return error code from PHYSFSRWOPS_openRead*
...
This improves error reporting for movies.
2021-07-25 23:00:56 +00:00
Kp
b814301120
Pass PhysFS error code to callers of PHYSFSX_addRelToSearchPath
...
Use PHYSFS_getLastErrorCode on the result. This allows init_movie to
report the reason a movie was unavailable.
2021-07-25 23:00:56 +00:00
Kp
1227625e7c
Remove unused return code of PHYSFSX_removeRelFromSearchPath
2021-07-25 23:00:56 +00:00
Kp
e0008cceb3
Use enum class for sound angle parameter
2021-06-28 03:37:51 +00:00
Kp
13e29c64f3
In debug builds, initialize newmenu_item type,text to poison values
...
This improves the chance that an unset value will abort rather than
displaying strange results. Release builds are unchanged.
2021-06-28 03:37:51 +00:00
Kp
ec4d75d44e
Switch decode_row from xrange to span to better express its operation
2021-06-28 03:37:51 +00:00
Kp
9c08b233a5
Move collision functions into namespaces
2021-06-28 03:37:51 +00:00
Kp
e1aac6949a
Replace __attribute_warn_unused_result with C++17 [[nodiscard]]
...
This eliminates a configure test, and may help readers understand the
annotation more readily.
2021-06-28 03:37:51 +00:00
Kp
770ae0cea5
Replace __attribute_noreturn with C++11 [[noreturn]]
...
This eliminates a configure test, and may help readers understand the
annotation more readily.
2021-06-28 03:37:50 +00:00
Kp
15057af2f9
Replace __noreturn with C++11 [[noreturn]]
...
This allows non-GNU-C compilers to see the attribute.
2021-06-28 03:37:50 +00:00
Kp
704f8f662d
Allow rvalue reference as input to enumerated_iterator
2021-06-28 03:37:50 +00:00
Kp
3466a6f818
Combine partial_range template constructors
...
Add an explicit check for rvalue ranges that own their storage, and then
allow any other rvalue input.
2021-06-28 03:37:50 +00:00
Kp
028f4f8a56
Use structured bindings to access enumerated ranges
2021-06-28 03:37:50 +00:00
Kp
7b12aac1bb
Transpose returned values for enumerate() of non-tuple
...
Match the order used for tuple.
2021-06-28 03:37:50 +00:00
Kp
212400d140
Convert nm_messagebox_str to use messagebox_newmenu
2021-06-28 03:37:50 +00:00
Kp
9044a19d78
Fold passive_messagebox_item into passive_messagebox
2021-06-28 03:37:50 +00:00
Kp
4c34875c84
Remove unused subfunction_handler
...
Previous commits eliminated all uses of it. Remove the unused stubs.
2021-06-28 03:37:50 +00:00
Kp
0c2f95e2cd
Remove write-only member window_rendered_data::rear_view
2021-06-28 03:37:50 +00:00
Kp
8a9eb82d6e
Factor out choosing bounty target
2021-06-28 03:37:50 +00:00
Kp
63ac8a1f5d
Move saved_text out of imenu_specific_type
...
This significantly shrinks newmenu_item, by not embedding a saved_text
in the union that is present in every newmenu_item.
2021-06-28 03:37:49 +00:00
Kp
d0d7545ec1
Unload robot movies on exit
2021-06-28 03:37:49 +00:00
Kp
76a7361786
Close descent.hog on exit
...
Add RAII wrappers for unmounting PHYSFS paths. Use them in places that
previously handled unmounting explicitly. Also, use it for descent.hog
/ descent2.hog, which previously were left mounted indefinitely.
2021-06-28 03:37:49 +00:00
Kp
1dba8e40ec
Move PHYSFSX_addRelToSearchPath pathname to caller
...
Some callers will need access to the computed path. Change the callers
to pass in a buffer for this path, and have PHYSFSX_addRelToSearchPath
fill that buffer directly.
2021-06-28 03:37:49 +00:00
Kp
c98c412fbb
Remove template indirection around PHYSFSX_getRealPath
...
All callers use a std::array<char, PATH_MAX>, so update the definition
to use that.
2021-06-28 03:37:49 +00:00
Kp
391a539ad2
Use enum class for PHYSFSX_addRelToSearchPath append/prepend parameter
2021-06-28 03:37:49 +00:00
Kp
93a7e34caf
Move newmenu_item slider storage of saved_text out of line
...
When other newmenu_item private members also move, this will make
newmenu_item smaller.
2021-06-28 03:37:49 +00:00
Kp
1936b771e1
Construct nm_item_input in place
2021-06-28 03:37:49 +00:00
Kp
ef6e36f7ee
Move newmenu_item union members into named union
2021-06-28 03:37:49 +00:00
Kp
821e68527d
Remove nm_set_item_input overload for char[]
...
Require use of std::array. There is no need to support both overloads.
2021-06-28 03:37:49 +00:00
Kp
2a504ee03e
Construct nm_item_menu in place
2021-06-28 03:37:49 +00:00
Kp
b5460a0a48
Construct nm_item_text in place
2021-06-28 03:37:49 +00:00
Kp
3d14dbacde
Remove digi_reset
...
It was only available in debug builds, and did nothing when called.
2021-06-28 03:37:49 +00:00
Kp
6e12644620
Remove write-only field digi_sound::bits
2021-06-28 03:37:49 +00:00
Kp
73c3474f8e
Reduce uses of RAIIdmem for local variables
2021-06-28 03:37:49 +00:00
Kp
ee07a45712
Simplify MALLOC invocations
...
Remove overload for C array decay, and fix up the call sites that
required it.
2021-06-28 03:37:48 +00:00
Kp
32b7899059
Remove const
qualifier from gr_init_bitmap
...
gr_init_bitmap can be passed a pointer to uninitialized memory, and
will save that pointer into the bitmap for the underlying memory to be
initialized later. In gcc-11, this triggers a warning because the
`const` qualifier leads gcc to expect that the memory will only be read
(while uninitialized) and not written.
Reported-by: TheDemonicSurfer <https://github.com/dxx-rebirth/dxx-rebirth/issues/593 >
2021-06-12 21:07:32 +00:00
Dave Milici
87adf05c75
Merge a9d14fc03d
into 48589d0fb0
2021-05-04 10:03:00 -07:00
C.W. Betts
48589d0fb0
Add App Category entries to the plists.
2021-04-30 14:43:15 -06:00
Dave Milici
ea6379de2d
Add above/below option sync blank interval for external sync doubler.
2021-04-08 14:07:35 -07:00
Kp
1843ed752c
Fix Windows build of kconfig.h
...
fbd05a1592
changed joy.h to include only fwd-event.h, but not event.h.
event.h included maths.h, which kconfig.h was relying on. Add an
inclusion of maths.h into kconfig.h to define `fix`.
Fixes: fbd05a1592
("optimize include files (include what you use)")
2021-04-04 22:01:25 +00:00
Kp
18c39192f6
Reduce use of global structures in cheat functions
2021-04-04 22:01:25 +00:00
Kp
02c99b7645
Consolidate stereo dimension math
...
Remove VR_half_width, VR_half_height. Their values are directly derived
from VR_stereo, and can be computed on demand.
2021-04-04 22:01:25 +00:00
Dave Milici
6bc0e822d2
Handle HUD overlays in separate screen rects for stereo renderings.
2021-03-17 16:30:31 -07:00
Dave Milici
f51e7b86b9
Reorganize & consolidate stereo vars per PR suggestions.
2021-03-15 11:32:10 -07:00
Dave Milici
4d9e656809
Enumerate stereo formats for better logic insulation.
2021-03-14 09:25:38 -07:00
Dave Milici
509da82ee8
Add -gl_stereoview option for selecting stereo viewport modes.
2021-03-12 10:07:45 -08:00
Dave Milici
8c8b7419b6
Improved conditionals for stereo vs non-stereo modes.
...
Hot-key handling for cycling thru stereo modes & parallax adjustments.
Simplified stereo adjustments for left/right eye separation & offsets.
Not quite compatible yet with Bob Akka stereo method from Descent 1.5.
Function key assignments different (F5..F8) due to pre-empted hot-keys.
ALT+SHIFT+F5: decrease eye separation (VR_eye_width)
ALT+SHIFT+F6: increase eye separation (VR_eye_width)
SHIFT+F5: decrease image shift (VR_eye_offset)
SHIFT+F6: increase image shift (VR_eye_offset)
ALT|SHIFT+F7: reset eye separation + image shift
ALT|SHIFT+F8: cycle thru half-width + half-height formats
Note for compiling dxx-rebirth snapshot on MacOSX:
export CXXFLAGS=-Wno-uninitialized
scons macos_add_frameworks=False
2021-03-11 12:32:01 -08:00
Dave Milici
bb903a1d80
Support stereo viewport rendering in half-height & half-width formats.
...
Enable stereo mode when launched via -gl_stereo option.
GL_STEREO quad buffering may not be available unless OGL layer
supports stereo pixel format descriptors.
Half-height viewport rendering for above/below format.
Half-width viewport rendering for side/by/side formats.
HUD & cockpit elements disabled when stereo views active.
2021-03-11 12:32:01 -08:00
Dave Milici
4169183342
Initial stereo rendering test in side-by-side format.
...
OGL layer used for rendering surfaces, so using left/right viewports absent stereo quad buffers.
Using legacy Descent +/- eye offset method for left/right stereo perspective rendering passes.
2021-03-11 12:32:01 -08:00
Kp
537e9fef37
Throw if a bitmap starts outside its parents boundaries
...
Such bitmaps will, at best, fail to render due to clipping. These
should never happen, so report it with an exception if it does.
2021-02-25 03:53:49 +00:00
Kp
1ec6fdb0b5
Add back forwarding includes
...
These are not necessary for proper compilation, but are included so that
a mismatch between the forward declaration and the definition will be
diagnosed immediately.
2021-02-20 23:46:51 +00:00
Kp
6a425bb2a7
Drop unnecessary includes
2021-02-20 23:46:51 +00:00
dimag0g
6282dd25b9
Merge fbd05a1592
into 8fdc326c2a
2021-02-16 21:30:26 -08:00
C.W. Betts
8fdc326c2a
Add CFBundleIdentifier to the plists.
2021-02-07 19:58:12 -07:00
Kp
00f6436959
Zero out newmenu_item::nm_private_imenu
...
Clear the largest union member to avoid issues with uninitialized
members. A future change will refine this to construct members to
specific values.
2021-02-08 01:56:15 +00:00
Dmitry Grigoryev
fbd05a1592
optimize include files (include what you use)
2021-02-06 21:38:50 +01:00
Kp
b0338164f7
Remove SDLMain.m
...
According to @raptor, this is not needed on modern OSX for SDL1 or SDL2,
and breaks the build on SDL2. Remove it.
Reported-by: raptor <https://github.com/dxx-rebirth/dxx-rebirth/issues/565 >
2021-02-06 17:53:53 +00:00
Kp
081024eb8f
Fix build for screenshot=legacy opengl=0
...
Reported-by: dimag0g <https://github.com/dxx-rebirth/dxx-rebirth/pull/568 >
2021-02-06 17:53:53 +00:00
Kp
6e52dc8db2
Shrink newmenu_item::right_offset
...
Its value never exceeds UINT8_MAX.
2021-02-06 17:53:53 +00:00
Kp
a4bc997be3
Pack newmenu_item more tightly
...
Move value down to eliminate one area of padding on 64-bit systems.
2021-02-06 17:53:53 +00:00
Kp
1afd0eeae2
Move NETFLAG_DOPOWERUP to netgame_info and clarify name
2021-01-25 00:45:07 +00:00
Kp
81a2d92ee9
Move ResolutionX, ResolutionY to CCfg
2021-01-25 00:45:07 +00:00
Kp
49944a3fbf
Use enum, not integral_constant, for netflag/netgrant constants
2021-01-25 00:45:07 +00:00
Kp
5d0d9dcc1a
Use primary_weapon_index_t for pick_up_primary
2021-01-25 00:45:07 +00:00
Kp
2196f6add5
Use enumerated_array for Secondary_ammo_max
2021-01-25 00:45:07 +00:00
Kp
6c63e11caa
Use enumerated_array for Secondary_weapon_to_weapon_info
2021-01-25 00:45:07 +00:00
Kp
b20fa0d77d
Use enumerated_array for Primary_weapon_to_weapon_info
2021-01-25 00:45:07 +00:00
Kp
9abf81c77a
Factor out logic for toggling between base/super weapons
2021-01-25 00:45:07 +00:00
Kp
f1cfbaa982
Use enum class for cockpit_3d_view
2021-01-25 00:45:07 +00:00
Kp
775d039083
Expand gcc memcpy workaround to gcc-10
...
The upstream bug is still not fixed.
2021-01-17 22:23:23 +00:00
Kp
77acae6510
Use enum class for weapon_box_user
2021-01-17 22:23:23 +00:00
Kp
b70f569178
Use enum class for OGL_TEXFILT_* constants
2021-01-17 22:23:23 +00:00
Kp
1843d375f2
Use enumerated_array for Secondary_weapon_to_powerup
2021-01-17 22:23:22 +00:00
Kp
e9f590eeb1
Use enumerated_array for Primary_weapon_to_powerup
2021-01-17 22:23:22 +00:00
Kp
baa2823953
Pass player_info to which_bomb
...
Previously, rendering the preferred bomb type could also change it if
the active type was exhausted. This is undesirable, since it depends on
the user to have a HUD mode which causes the bomb type to render.
Switch to only change the active type if the user tries to drop a bomb
while the active type is unavailable. Some call sites already switch
bomb types automatically on depletion. Those sites will still do so.
2021-01-17 22:23:22 +00:00
Kp
c868d32eba
Prevent copying class window
2020-12-27 22:03:09 +00:00
Kp
e4f8d02380
Make screen_resolution_menu inherit from newmenu
2020-12-27 22:03:09 +00:00
Kp
ed2bc8e213
Use enum class for nm_type
2020-12-27 22:03:09 +00:00
Kp
15f9b3d43f
Enable use of some STL algorithms on zip_iterator
...
std::find_if needs common iterator traits. Add the relevant type
definitions to zip_iterator.
Also add them to d_range, to avoid errors when a range is zipped.
2020-12-27 22:03:09 +00:00
Kp
d28ec4723e
Allow comparing const instances of screen_mode
2020-12-27 22:03:09 +00:00
Kp
ae021b12e7
Use named Difficulty_level enum members in MENU_DIFFICULTY_TEXT
2020-12-27 22:03:09 +00:00
Kp
995e25f740
Simplify dxx_gettext when defined(USE_BUILTIN_ENGLISH_TEXT_STRINGS)
2020-12-27 22:03:09 +00:00
Kp
daf53321bf
Remove return value of new_player_config
...
It always succeeds.
2020-12-27 22:03:09 +00:00
Kp
115c38cd77
Remove kmatrix_poll2
...
After the previous commit, its only purpose is to automatically dismiss
the window after 3 seconds. Users may be surprised by this, and the
automatic dismissal has limited value. Remove it and let the user
remain at the cancel dialog until a decision is made.
2020-12-27 22:03:09 +00:00
Kp
80fc124a63
Remove unnecessary definitions of static member variables
...
C++17 permits, but deprecates, this form. Remove it to simplify the
code.
2020-12-27 22:03:09 +00:00
Kp
e7629f35ee
Move newmenu_item::saved_text into the two sub-types that need it
2020-12-27 22:03:09 +00:00
Kp
e6875641c9
Move Newmenu_allowed_chars into individual newmenu_item
...
Allowed characters are more properly scoped to a specific text entry
field. Move them there to eliminate a global.
2020-12-27 22:03:09 +00:00
Kp
1f8c8e355b
Allow newmenu callers to choose whether to use a background box
...
Previously, callers chose whether to use a fullscreen background image,
and the newmenu code inferred that callers without a background image
wanted a background box, while those with a background image wanted no
box. Change newmenu_layout to take a parameter specifying the caller's
intent, so that a caller can choose to have any combination of a
background image and a background box.
2020-12-27 22:03:09 +00:00
Kp
2b9c146ff2
Convert glitz menu to inherit from newmenu
...
Add a static method to block until the menu closes, so that the glitz
menu can continue to block its caller.
2020-12-27 22:03:09 +00:00
Kp
c0601edde3
Move GammaLevel to CCfg
2020-12-27 22:03:09 +00:00
Kp
a4f41f8360
Pass grs_canvas& to print_clock
2020-12-27 22:03:09 +00:00
Kp
c1d6150015
Pass grs_font& to gr_set_curfont
2020-12-27 22:03:09 +00:00
Kp
916eb7a0f9
Extend DXX_CHECK_VAR_IS_DEFINED to work in ASan mode
...
When AddressSanitizer is enabled, include code to read from the checked
variable, to force AddressSanitizer to perform an accessibility check.
2020-12-27 22:03:09 +00:00
Kp
effa7435c2
Remove newmenu_listbox1
...
It is no longer used.
2020-12-27 22:03:09 +00:00
Kp
0c53d3a34f
Replace PHYSFSX_isNewPath with !PHYSFS_getMountPoint
...
PHYSFSX_isNewPath retrieves from PhysFS a list of all paths, then
searches them, and frees them at the end. PhysFS can search its own
list without needing the allocations, so delegate the work to it.
2020-12-27 22:03:09 +00:00
Kp
079602b91a
Inline string_array_t::tidy comparator
...
There is only one call, so the target can be moved into the
implementation. This removes use of a call-by-pointer.
2020-12-27 22:03:09 +00:00
Kp
095d660c55
Inline listbox_get_window
...
It is only used once.
2020-12-26 21:17:29 +00:00
Kp
def7e03260
Move listbox callback handling to a derived class
2020-12-26 21:17:29 +00:00
Kp
f43e98764a
Move listbox to newmenu.h
2020-12-26 21:17:29 +00:00
Kp
f01c29c779
Flatten newmenu_do* hierarchy
...
There is now a single caller for newmenu_do3. Inline do3 into do2, so
that do2 calls do4. Mark do4 as static.
2020-12-26 21:17:29 +00:00
Kp
d1ff6becb4
Move listbox_layout to newmenu.h
...
Rename listbox_create_structure to listbox_layout::create_structure.
2020-12-26 21:17:29 +00:00
Kp
2ded2b2d0c
Make kmatrix background optional
...
Previously, if the background failed to load, the kmatrix window was
immediately aborted. Change the logic so that a failure to load uses a
blank black background, but still shows the kmatrix window.
2020-12-26 21:17:29 +00:00
Kp
b9a27094eb
Pass menu_title through listbox functions
2020-12-26 21:17:29 +00:00
Kp
b63ccc63ca
Make passive_messagebox inherit from newmenu
...
passive_messagebox is only suitable when the user's selection does not
matter, so restrict to be used for cases where only one "choice" is
offered.
2020-12-26 21:17:29 +00:00
Kp
834f009dd7
Use enum class for wallnum_t
2020-12-26 21:17:29 +00:00
Kp
fc63029833
Move more symbols into namespaces
2020-12-26 21:17:29 +00:00