Lioncash
d4b9124b9f
rstl: Allow move constructors and assignment operators to be conditionally noexcept
...
Makes the constructors and assignment operators for reserved_vector
noexcept, allowing them to play nicely with standard facilities and
avoid needing to copy construct where avoidable.
2019-10-04 01:28:27 -04:00
Lioncash
b2d9283b3c
rstl: Provide full set of type aliases in reserved_vector
...
Allows for better integration with standard library facilities and
templates, now that types can be queried.
2019-10-04 00:43:47 -04:00
Lioncash
00a4df5aa6
rstl: Make use of variable templates where applicable
...
While we're at it, we can use if constexpr on some conditional checks.
2019-10-04 00:20:31 -04:00
Lioncash
cbcba6f184
rstl: Organize headers
...
We can also make includes a little nicer for the compiler by only
including logvisor headers when performing debug builds.
2019-10-04 00:08:46 -04:00
Phillip Stephens
b9b9eddd1e
Merge pull request #99 from lioncash/typo
...
CElementGen: Correct FourCC in SetTranslation()
2019-10-03 07:01:31 -07:00
Lioncash
66b198d1a4
CElementGen: Correct FourCC in SetTranslation()
...
The game executable checks for a FourCC of ELSC within this function,
not SELC.
2019-10-03 09:45:26 -04:00
Lioncash
67cd0d44c6
CAtomicBeta: Make skBombLocators an internal array
...
Like with CAtomicAlpha, we can also fully hide this array from external
view by making it internally linked.
2019-10-03 01:34:45 -04:00
Lioncash
abe8b9510b
CAtomicBeta: Organize cpp includes
2019-10-03 01:30:04 -04:00
Lioncash
e0e38b569e
CAtomicAlpha: Remove .data() call in SBomb constructor
...
We can just use the std::string_view constructor for std::string, which
eliminates an unnecessary strlen call.
2019-10-03 01:26:50 -04:00
Lioncash
18eb2b73b1
CAtomicAlpha: Use emplace_back where applicable
...
Simplifies the construction of the SBomb instances, while also
constructing in place.
2019-10-03 01:26:50 -04:00
Lioncash
c882003d37
CAtomicAlpha: Make skBombLocators an internal array
...
This is only used within the cpp file, so we can relocate its definition
there to make it fully internally-linked.
2019-10-03 01:26:50 -04:00
Lioncash
ee791d6a37
CAtomicAlpha: Organize cpp includes
2019-10-03 01:26:42 -04:00
Lioncash
44306ab528
CAutoMapper: Eliminate cases of variable shadowing
...
Silences two variable shadowing warnings.
2019-10-01 22:43:23 -04:00
Lioncash
3383e65761
CAutoMapper: Use size_t instead of u32 as loop variable type where applicable
...
Uses the same sized type as the .size() call to prevent potential
overflow false-positives.
2019-10-01 22:40:13 -04:00
Lioncash
eca34bede5
CAutoMapper: Use emplace_back where applicable
...
Allows for in-place construction.
2019-10-01 22:37:52 -04:00
Lioncash
23ca919c18
CAutoMapper: Use std::array where applicable
2019-10-01 22:31:07 -04:00
Lioncash
a5d18002be
CAutoMapper: Organize cpp includes
2019-10-01 22:12:15 -04:00
Phillip Stephens
b38ba6b636
Revert static_cast in MkCastTo.py
2019-10-01 07:27:20 -07:00
Phillip Stephens
df9b8bc05d
Merge pull request #90 from lioncash/noexcept
...
RetroTypes: Make functions noexcept where applicable
2019-10-01 06:44:39 -07:00
Phillip Stephens
60ecede3fd
Merge pull request #91 from lioncash/string
...
CAudioSys: Minor cleanup
2019-10-01 06:44:26 -07:00
Phillip Stephens
be2da2f363
Merge pull request #92 from lioncash/fwd
...
ICollisionFilter: Use forward declarations where applicable
2019-10-01 06:44:08 -07:00
Phillip Stephens
7d2ad7b1b2
Merge pull request #93 from lioncash/loop
...
CSlideShow: Use ranged for loops in constructor
2019-10-01 06:43:56 -07:00
Phillip Stephens
6bcdf98eeb
Merge pull request #94 from lioncash/default
...
CIOWin: Default the virtual destructor
2019-10-01 06:43:45 -07:00
Phillip Stephens
4d94923a23
Merge pull request #95 from lioncash/gen
...
MkCastTo: Use '_v' variants of type traits where applicable
2019-10-01 06:43:33 -07:00
Phillip Stephens
d2e9495686
Merge pull request #96 from lioncash/array2
...
CFinalInput, ControlMapper: Use std::array where applicable
2019-10-01 06:43:23 -07:00
Phillip Stephens
d5277b4d91
Remove invalid include
2019-10-01 06:41:55 -07:00
Jack Andersen
e1d46755a3
Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde
2019-09-30 21:41:42 -10:00
Jack Andersen
16ca0d24c2
Explicit Asset ID refactor
2019-09-30 21:38:03 -10:00
Lioncash
f0186e7ceb
ControlMapper: Use std::array where applicable
2019-10-01 02:11:02 -04:00
Lioncash
dc565969e6
CFinalInput: Use std::array where applicable
...
Allows simplifying copies and gets rid of hardcoded size values.
2019-10-01 01:59:56 -04:00
Lioncash
91bdfa86f6
MkCastTo: Use static_cast instead of reinterpret_cast
...
If the type is convertible to the other one, then a static_cast will be
able to perform the conversion (assuming the type itself is
constructible). If it isn't, then nullptr will just be converted to a
null version of T*.
2019-09-30 22:22:12 -04:00
Lioncash
bf65456a2c
MkCastTo: Use '_v' variants of type traits where applicable
...
Same thing, but less typing, slightly shrinking the file size.
2019-09-30 22:15:53 -04:00
Lioncash
99a7e64a8a
CIOWin: Default the virtual destructor
...
No functional change. Just maintains consistency with the rest of the
codebase.
2019-09-30 18:20:11 -04:00
Lioncash
2eb5e7c446
CSlideShow: Use emplace_back where applicable
...
Same behavior, but constructs in place instead of potentially copying.
2019-09-30 18:07:34 -04:00
Lioncash
b7e0dbd354
CSlideShow: Use ranged for loops in constructor
...
Same behavior, but without hard-coded magic size values.
2019-09-30 18:06:33 -04:00
Lioncash
4442421586
ICollisionFilter: Use forward declarations where applicable
...
With the headers all normalized, we can safely convert the only
ICollisionFilter include into a forward declaration.
2019-09-30 17:20:59 -04:00
Lioncash
9af64d3895
CAudioSys: Convert file-scope std::string into a constexpr string_view.
...
Eliminates a static constructor that needs to run at program start.
2019-09-30 11:03:47 -04:00
Lioncash
dea89e7664
CAudioSys: Remove construction of pairs in emplace calls
...
The purpose of emplace is to construct the pair within the map. While
using make_pair will result in the same behavior, it's a tad more
verbose than it needs to be.
2019-09-30 11:00:49 -04:00
Lioncash
f1d08c4fbf
CAudioSys: Place file-scope locals within an anonymous namespace
...
Prevents any potential violations of the ODR from occuring.
2019-09-30 10:59:31 -04:00
Lioncash
c77153b03c
RetroTypes: Make SObjectTag's operator bool explicit
...
Prevents potentially error-prone implicit conversions to bool.
2019-09-30 09:00:17 -04:00
Lioncash
8176bf75ef
RetroTypes: Make functions noexcept where applicable
...
Given these are used quite frequently, it's better to explicitly mark
these as noexcept so that they may be used within noexcept contexts.
2019-09-30 08:58:34 -04:00
Lioncash
c17b268c57
IVParamObj: Make default constructor of CVParamTransfer constexpr
...
std::shared_ptr's default constructor is constexpr, so we can apply it
to CVParamTransfer to allow using it within constexpr contexts, granting
more flexibility to the type.
2019-09-30 02:56:00 -04:00
Lioncash
cdf6361d6c
IVParamObj: Make rest of interface noexcept where applicable
...
Allows a few of these member functions to be used within noexcept
contexts.
2019-09-30 02:55:39 -04:00
Lioncash
026de44611
IVParamObj: Explicitly supply copy and move constructor/assingnment operators
...
Since the copy constructor is provided, we should explicitly specify the
others to make behavior explicit (and prevent the copy constructor from
being considered over the move constructor in certain scenarios).
2019-09-30 02:55:25 -04:00
Lioncash
541adb02d2
CToken: std::move buildParams within CObjectReference's constructor
...
CVParamTransfer contains a std::shared_ptr, so a copy here performs an
unnecessary reference count increment and decrement. We can std::move
here to avoid this.
2019-09-30 02:34:10 -04:00
Lioncash
2014650d58
CToken: Mark CToken's move constructor noexcept
...
The move constructor doesn't perform any behavior that would result in
an exception being thrown. Marking it as noexcept allows the type to
play nicely with facilities that make use of std::is_move_constructible
to determine whether copies can be avoided or not in certain
circumstances (e.g. the standard library; notably, std::vector).
We can't mark the move assignment operator as noexcept currently,
however, as it calls into interfaces outside of CToken.
2019-09-30 02:32:29 -04:00
Phillip Stephens
79ac5d76df
Update hecl, more CVar imps
2019-09-29 08:17:55 -07:00
Lioncash
6ad5de497f
CSeedling: Make skNeedleLocators an array of std::string_view
...
Makes the strings non-allocating. This also eliminates 12 runtime static
constructors that need to execute on program start.
2019-09-28 20:22:31 -04:00
Lioncash
3f743d5c9f
CSeedling: Use std::array with skNeedleLocators
...
Makes the array strongly-typed and impervious to implicit array to
pointer decay.
2019-09-28 20:21:24 -04:00
Lioncash
2a34b6be68
CSeedling: Move skNeedleLocators into the cpp file
...
This can be entirely hidden from external view, making it an
implementation detail.
2019-09-28 20:15:39 -04:00