Commit Graph

2835 Commits

Author SHA1 Message Date
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
Phillip Stephens 6422eec3ce
Merge pull request #98 from lioncash/alpha
CAtomicAlpha/CAtomicBeta: Minor changes
2019-10-03 06:41:54 -07: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
Phillip Stephens c0c214cc56
Merge pull request #97 from lioncash/mapper
CAutoMapper: Minor changes
2019-10-02 19:40:19 -07: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
Phillip Stephens 81a019b1e0
Update hecl 2019-09-30 02:16:31 -07:00
Phillip Stephens 1af7146427
Merge pull request #89 from lioncash/noexcept 2019-09-30 02:13:47 -07: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