Commit Graph

3059 Commits

Author SHA1 Message Date
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
Phillip Stephens 79ac5d76df
Update hecl, more CVar imps 2019-09-29 08:17:55 -07:00
Phillip Stephens 56b198838f
Update hecl 2019-09-29 05:44:37 -07:00
Phillip Stephens bb43821f31
Merge pull request #87 from lioncash/seedling
CSeedling: Convert array of std::string to array of std::string_view
2019-09-28 22:09:08 -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
Lioncash 08d4addc70 CSeedling: Organize source file includes
Tidies it up a little.
2019-09-28 20:08:45 -04:00
Phillip Stephens 00cff89141
Merge pull request #86 from lioncash/header
General: Normalize RuntimeCommon include paths
2019-09-28 08:02:35 -07:00
Phillip Stephens b60ad339d5
Fix CStringExtras::CompareCaseInsensitive, `std::lexicographical_compare` does not have the intended behavior 2019-09-28 08:00:49 -07:00
Lioncash a633b8e8fd General: Normalize RuntimeCommon include paths
Performs the same normalizing done to the RuntimeCommonB target, now all
of the runtime headers have normalized include paths.
2019-09-28 04:14:29 -04:00
Phillip Stephens 4b25d58caf
Update submodules 2019-09-27 20:38:47 -07:00
Phillip Stephens 720a052a6c
Merge pull request #85 from lioncash/constant
CCameraManager: Collapse private static variables into functions
2019-09-27 19:52:05 -07:00
Lioncash 359f505787 CCameraManager: Collapse private static variables into functions
Four of the five variables aren't modified, so they can be specified
directly within the functions and just be reused in place of the
variable names. This allows the constants to be elided or put into
read-only memory if necessary. It also makes the mutable value explicit.
2019-09-27 22:46:59 -04:00
Phillip Stephens 8591787409
Update submodules 2019-09-26 06:55:29 -07:00
Phillip Stephens 3a8d669b68
Merge pull request #84 from lioncash/emplace
CBooRenderer: Use emplace_back() where applicable
2019-09-26 06:54:57 -07:00
Phillip Stephens a914d5499a
Merge pull request #83 from lioncash/driver
CMemoryCardDriver: Correct erroneous fallthrough within HandleCardError
2019-09-26 06:54:46 -07:00
Phillip Stephens a735a9f5ce
Merge pull request #82 from lioncash/header2
General: Normalize RuntimeCommonB include paths
2019-09-26 06:54:10 -07:00
Lioncash 178e0e2cbc CBooRenderer: Use emplace_back() where applicable
Given the appended types consist of trivial types, it's more efficient
in this context to construct the data in place over using push_back,
which will cause a redundant copy (move semantics on trivial types are a
copy).
2019-09-24 22:51:38 -04:00
Lioncash 027c10464f CMemoryCardDriver: Correct erroneous fallthrough within HandleCardError()
In the game executable itself, there exists no fallthrough here (which
makes sense, given all IO errors would be reported as character set
errors, otherwise).
2019-09-24 16:36:43 -04:00
Lioncash 36d04456dd General: Normalize RuntimeCommonB include paths
Finishes the normalizing of all of includes within the RuntimeCommonB target's headers.
2019-09-23 17:22:37 -04:00
Phillip Stephens d6b70f37c2
Merge pull request #81 from lioncash/header
General: Normalize several headers' include paths
2019-09-22 22:05:41 -07:00
Lioncash 06789d1860 General: Normalize several headers' include paths
Normalizes the include paths and makes them consistent. Also adds any
missing includes relevant to the interface.
2019-09-22 20:36:33 -04:00
Phillip Stephens 8cdf7f3af3
Merge pull request #80 from lioncash/burst
CBurstFire: Use std::array where applicable
2019-09-22 13:49:10 -07:00
Lioncash 8dcffbb67f CBurstFire: Use std::array where applicable
Makes the array type strongly typed and prevents implicit array to
pointer decay.
2019-09-22 09:48:07 -04:00
Lioncash adf9610138 CBurstFire: Tidy up includes
Includes all necessary headers and uses a forward declaration where
applicable. Ensures inclusion changes in other headers don't break the compilation
of these headers and source files.
2019-09-22 09:45:01 -04:00
Phillip Stephens 2e8eec91ea
Missed one 2019-09-21 06:10:54 -07:00