Commit Graph

842 Commits

Author SHA1 Message Date
Lioncash e22ecf644d SpecMP1: Remove usage of const_cast
The preceding commit marked this mutex as mutable, so we can remove the
const_cast usage here.
2020-04-09 20:28:48 -04:00
Lioncash cf054f35a3 SpecBase: Remove usages of const_cast
It's generally the case that mutexes are marked as mutable whenever they
need to be used within a const class context, given they don't directly
participate as a bitwise member of the class, but only transiently exist
so that synchronization operations can occur.

Given that, marking the member as mutable in this case makes sense.
2020-04-09 20:26:31 -04:00
Lioncash fa2f37a14c DNAMP3/PAK: Make use of unique_ptr in getBuffer()
Same motivation as the previous change: seating the allocated memory
into a type that will always do the right thing immediately, rather than
later.
2020-04-05 10:20:59 -04:00
Lioncash 9e503edaf1 PAK: Make use of unique_ptr in getBuffer()
Same behavior, however we seat the allocated memory into a unique_ptr
from the get-go to prevent any possible memory being leaked.
2020-04-05 10:16:09 -04:00
Lioncash 11c40415f5 TXTR: Mark constexpr functions static
Same behavior, but makes them internally linked.
2020-03-31 20:36:45 -04:00
Lioncash d3295cbb87 TXTR: Make use of const(typedefs) where applicable
Same behavior, but signifies read-only semantics.

Also resolves a few -Wcast-qual warnings.
2020-03-31 17:36:17 -04:00
Lioncash 8132375c69 TXTR: Eliminate variable shadowing 2020-03-31 17:02:55 -04:00
Lioncash d337327b97 DNACommon: Mark hash overloads as noexcept
These functions shouldn't throw at all.

By extension, also mark the UniqueID class interfaces as noexcept.
2020-03-31 16:55:19 -04:00
Lioncash 96fa7af8b5 STRG: Convert file-scope std::vector to std::array
Eliminates a runtime-static constructor and heap allocation at program
start.
2020-03-31 14:15:09 -04:00
Lioncash 16c37abf79 DNAMP3: Prevent unnecessary copies 2020-03-31 13:24:34 -04:00
Lioncash 93f107cb79 STRG: Avoid unnecessary copies
Makes several functions significantly less copy intensive. See previous
commit for reason.
2020-03-31 13:23:21 -04:00
Lioncash 3d0270cf82 DNAMP2: Prevent unnecessary copies
Auto-deduces the exact type instead of using a similar, but slightly off
pair type (which causes a copy).
2020-03-31 13:19:50 -04:00
Lioncash d8ed1a5e79 RetroDataSpec: Convert typedefs to using aliases
Same behavior, but nicer to read.
2020-03-31 13:11:24 -04:00
Lioncash 9ef2fbba5a RetroDataSpec: Make use of make_unique where applicable
Same behavior, but without a mildly wonky way of performing it.
2020-03-31 13:06:27 -04:00
Lioncash 53694481e5 SpecMP2: Make use of emplace_back()'s return value
Same behavior, less code.
2020-03-31 12:46:20 -04:00
Lioncash e6f217bf25 SpecMP2: Prevent unnecessary copies in buildPaks()
Uses auto to properly deduce the intended return type in iteration (pair
with a const string), which prevents a copy from needing to be
generated.
2020-03-31 12:43:42 -04:00
Lioncash 97fd815afa SpecMP1: Make use of emplace_back() where applicable
Same behavior, but allows in-place construction.
2020-03-31 12:40:37 -04:00
Lioncash 9af90efb7d SpecMP1: Make use of emplace_back()'s return value
Same behavior, less code.
2020-03-31 12:38:31 -04:00
Lioncash 305262eb29 SpecMP1: Prevent unnecessary copies in buildPaks
Previously the type mismatched by a single const qualifier, which meant
a copy would have to occur.

Instead, we can use auto to avoid this issue from occurring and allowing
the proper type to be automatically deduced.
2020-03-31 12:36:18 -04:00
Lioncash ac28575e9d SpecMP3: Make use of emplace_back()'s return value
Same behavior, less code.
2020-03-31 12:33:51 -04:00
Lioncash be1d77f550 SpecMP3: Remove unnecessary initializer 2020-03-31 12:33:51 -04:00
Lioncash 94c4c0f102 SpecMP3: Prevent unnecessary copies
Prevents iterating over elements by value and also uses auto to ensure
the iterated item matches 1:1.
2020-03-31 12:32:57 -04:00
Lioncash 315becf1b5 ATBL: Collapse std::vector construction and resize into one another
Same behavior, less code.
2020-03-31 07:36:26 -04:00
Lioncash 3e084d2ae2 AROTBuilder: Convert defines into constexpr variables
Same behavior, but with concrete types.
2020-03-31 07:33:25 -04:00
Lioncash da4b1d5e7d AROTBuilder: Collapse manual loops into ranged for loops
Same behavior, minus the induction variable to follow
2020-03-31 07:31:04 -04:00
Lioncash 84141eeb25 AROTBuilder: Eliminate variable shadowing 2020-03-31 07:31:04 -04:00
Lioncash a2709f1d20 AROTBuilder: Make use of std::array where applicable
While we're at it, we can dehardcode some sizes.
2020-03-31 07:31:01 -04:00
Jack Andersen 76fc829c6b Merge branch 'new-particle-metaclass' 2020-03-30 11:38:01 -10:00
Lioncash 8d0a8ea52e SCAN: Convert file-scope std::vector into constexpr std::array
Same behavior, but without any runtime heap allocations at program
start.
2020-03-29 08:46:03 -04:00
Jack Andersen 566b15766c Refactor particle serialization to use generative meta-information 2020-03-28 21:29:27 -10:00
Phillip Stephens 1c5fd85b57
Correct ITweakPlayerRes offset 2020-03-01 16:56:38 -08:00
Luke S be51b0323f
Merge pull request #169 from lioncash/array
ITweakPlayerRes: Make use of std::array where applicable
2020-02-28 10:35:57 -05:00
Luke S 1cfe88fab1
Merge pull request #168 from lioncash/bind
SpecBase: Remove redundant std::bind
2020-02-28 10:35:30 -05:00
Lioncash 3f3b0e6ba8 ITweakPlayerRes: Make use of std::array where applicable
Performs the same changes that were recently applied to ITweakGunRes for
consistency. Also eliminates some sign conversion warnings and
deduplicates some array sizes.
2020-02-28 01:50:32 -05:00
Lioncash be4252127b SpecBase: Remove redundant std::bind
std::thread can already execute the supplied function as is without the
assistance of std::bind.
2020-02-28 01:25:14 -05:00
Lioncash fc3ef2fddd SpecBase: Flatten loop within flattenDependenciesBlend()
We can use insert() with make_move_iterator() to perform the same
behavior, minus unnecessary copies.

While we're at it, we can collapse the code within the Area case, since
it's the exact same as the Mesh code.
2020-02-26 14:52:20 -05:00
Luke S 08604d770a
Merge pull request #163 from lioncash/data
ITweakGunRes: Minor cleanup
2020-02-25 22:32:25 -05:00
Lioncash e80d9c7192 ITweakGunRes: Make use of std::array where applicable
Deduplicates a few array sizes and makes the member variables more
strongly typed.
2020-02-25 15:50:37 -05:00
Lioncash b608a72aad ITweakGunRes: Remove unnecessary c_str() calls
These functions already return the data type that GetResourceIdByName()
expects. Has the side-effect of also eliminating unnecessary strlen
calls.
2020-02-25 15:34:22 -05:00
Lioncash a92bc16265 ITweakPlayerRes: Remove unnecessary calls to .data()
All of these functions return a string_view, which is accepted by
GetResourceIdByName(), so this avoids several unnecessary std::strlen
calls.
2020-02-25 02:09:45 -05:00
Lioncash 189b03c001 ITweakPlayerRes: Fix mismatched icon retrievals within ResolveResources()
Previously, all of these icons were using the first top icon, rather
than their own respective icons.

This amends that.
2020-02-25 02:07:15 -05:00
Lioncash 5ff100fdd1 DNAMP1/ScriptObjects: Convert SCRIPT_OBJECT_DB into a std::array
Now that all elements of the std::vector would otherwise be constexpr,
we can use a std::array here instead, given they're all able to
deterministically be available at compile-time.

This gets rid of a runtime static heap allocation at program start.
2020-02-24 03:42:24 -05:00
Lioncash 2ec236fc45 DNAMP1/ScriptObjects: Trim headers in ScriptObjects.hpp
All of these can be migrated into the cpp file, since they're only used
there.

Greatly reduces the amount of work the preprocessor has to do in files
that include this one.
2020-02-24 03:42:05 -05:00
Lioncash e27ac1e2a1 DNAMP1/ScriptObjects: Eliminate several runtime static constructors
All of these entries make use of captureless lambdas, so there's no need
to make use of std::function. We can just use a regular function
pointer, which allows making all of the file-static entries within
IScriptObject constexpr. Eliminating all of their runtime static
constructors.
2020-02-24 03:20:39 -05:00
Jcw87 7be3f4febb Fixed character type mismatch. 2020-02-15 12:24:50 -08:00
Phillip Stephens 8d90edd55f
Initial CChozoGhost imp 2020-01-20 20:00:40 -08:00
Luke Street 56c3221733 Merge branch 'blender2.81' 2019-12-22 18:32:55 -05:00
Phillip Stephens 1a13f7e4ee
Update submodules, initial CTextureCache 2019-12-10 20:51:33 -08:00
Luke Street cce11d3cd9 Blender 2.81 support 2019-12-10 18:45:55 -05:00
Phillip Stephens 34e78a2dd0
Move CParticleGlobals from the executable and onto the heap, minor fixes, update wiki link 2019-12-03 00:47:05 -08:00