2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-05-14 19:11:22 +00:00

427 Commits

Author SHA1 Message Date
Lioncash
d66f534a8c CParticleDatabase: Simplify insert into emplace call
Same behavior, but much more succinct and constructs the std::string in
place.
2020-08-25 18:44:58 -04:00
87437881a0 CCharAnimTime & CPOINode: Fix operator< 2020-08-24 18:42:43 -04:00
3f17c72b30 CCharAnimTime: Fix operator== between Infinity 2020-08-24 02:28:18 -04:00
Lioncash
b88dd6b373 CGroundMovement: Make use of designated initializers
Same behavior, less duplication of variable names.
2020-08-02 22:54:34 -04:00
Lioncash
97f2576e2a CFBStreamedCompression: Eliminate undefined pointer casting
Some (but not all pointer casting in this file is undefined behavior).
To rectify this, we can make use of a light wrapper around memcpy to
make all of this well-defined.
2020-08-02 03:34:32 -04:00
Lioncash
4b140d8954 CAnimData: Move variable closer to usage spot
Keeps the code localized, and doesn't unnecessarily execute the
constructor until necessary.
2020-08-02 02:20:10 -04:00
Lioncash
4e9b22962c CModelData: Remove usages of const_cast
Allows readers to know that these functions do affect member state.
2020-08-01 23:45:49 -04:00
Lioncash
e9084df80b CFBStreamedAnimReaderTotals: Remove redundant memset
We can just make use of make_unique instead, which does it as part of
the interface.
2020-08-01 06:29:21 -04:00
ca96676057 Merge remote-tracking branch 'origin/icesheegoth' 2020-06-06 16:27:08 -04:00
Lioncash
a0bdb2588f CParticleDatabase: Make use of heterogenous lookup
Resolves a TODO. (Technically this can be done with C++17 only, as
std::map allows heterogenous lookup since that standard).

Reduces number of allocations necessary for lookups.
2020-05-27 06:54:22 -04:00
Lioncash
fecfb14f35 CBodyState: Make references const where applicable
The referenced objects aren't modified
2020-05-25 22:21:36 -04:00
6ad1aa79ab Merge branch 'master' into metroid 2020-05-16 23:12:00 -04:00
Lioncash
4b5074b298 RuntimeCommon: Const qualify auto references where source is const
Marks references that would be deduced as const automatically with const
to be explicit to the reader.
2020-05-12 20:32:51 -04:00
9608efc222 CMetroid: Implement KnockBack, TelegraphAttack & more 2020-05-09 18:39:11 -04:00
7759b3f0dc CBodyStateCmdMgr: constexpr CBodyStateCmds 2020-05-09 18:37:34 -04:00
e8ce4c2e27 CMetroid: More function implementations 2020-05-09 02:51:02 -04:00
Lioncash
579ae79291 General: Mark CMaterialFilter instances constexpr where applicable
Allows omission of runtime overhead.
2020-05-07 14:14:18 -04:00
973eb622c7 CAnimTreeSequence: Add EpsilonZero check 2020-04-30 02:17:06 -04:00
abfd5a464f CGroundMovement: Fix CheckFalling not being called consistently 2020-04-29 02:09:20 -04:00
7b9fecfdc6
CIceSheegoth: Final state implementations 2020-04-24 07:36:49 -07:00
b1a897d246
CIceSheegoth: Implement Think 2020-04-22 15:06:15 -07:00
Lioncash
f24559890a TSegIdMap: Make use of std::array where applicable
Stronger typing and eliminates array to pointer decay.
2020-04-22 01:59:29 -04:00
Lioncash
fa3e639a9d RuntimeCommon: Make use of bitfield initializers where applicable
Continues and finishes the migration towards initializing all bitfield
members where applicable
2020-04-21 17:16:19 -04:00
24acb585f8 MSVC & zeus fixes; update hecl-gui 2020-04-19 21:09:30 -04:00
56cebfbacd
Merge pull request #308 from AxioDL/fmtlib-update
Update fmtlib
2020-04-12 03:06:46 -04:00
Lioncash
1fff540102 CAnimPlaybackParms: Make class constexpr constructible
Allows for removal of some trivial runtime initializers.
2020-04-11 20:55:46 -04:00
Jack Andersen
5b4441ac36 Update fmtlib 2020-04-11 12:51:39 -10:00
0fc53c91dc
Merge pull request #303 from lioncash/size
IAnimReader: Make use of size_t for capacity and iterators
2020-04-11 02:12:41 -04:00
304340bd35
Merge pull request #304 from AxioDL/remove-union-bitfields
Runtime: Replace bitfield unions with explicit initializers
2020-04-11 02:12:21 -04:00
Lioncash
0414235e76 CTransitionDatabaseGame: Tidy up GetMetaTrans()
We can leverage auto here to make the lambda functions significantly
less verbose.
2020-04-10 23:51:18 -04:00
Lioncash
72370910ad IAnimReader: Make use of size_t for capacity and iterators
Allows using container sizes and capacities without needing to cast
them, allowing for dehardcoding of array sizes in some scenarios.
2020-04-10 23:24:52 -04:00
4a3ce8453f Runtime/Graphics: Replace bitfield unions with constructor initializers 2020-04-10 15:03:15 -04:00
74bce8458b
Merge pull request #299 from lioncash/const2
CGunWeapon: Eliminate usages of const_cast
2020-04-09 10:46:52 -04:00
Lioncash
db9a52fae3 CBodyState: Resolve sign conversion warnings in GetLocoAnimation() 2020-04-07 12:56:29 -04:00
Lioncash
ce710a94f6 CBodyState: Always initialize x3c8_primeTime
Provides a deterministic consistent state upon construction
2020-04-07 12:55:41 -04:00
Lioncash
5fe494f683 CLayoutDescription: Always initialize xc_scale
Provides a total deterministic initial state for the data member.
2020-04-07 12:34:15 -04:00
Lioncash
c3ddbfae89 CBodyState: Always initialize x8_jumpType
Provides a deterministic initial state for the member.
2020-04-07 12:32:06 -04:00
Lioncash
56f48e8745 CAdditiveBodyState: Dehardcode array size 2020-04-07 12:31:33 -04:00
Lioncash
2b1a86794b CAdditiveBodyState: Make use of std::array where applicable
Same behavior, stronger typing.
2020-04-07 12:27:47 -04:00
Lioncash
18c0111edb CModelData: Give all function prototype parameters names
Makes the interface more self-documenting and allows IDE introspection
to function better.
2020-04-07 07:13:18 -04:00
Lioncash
f0ff83e39a CTransitionDatabase: Add virtual destructor
Prevents any undefined behavior from occurring through polymorphic
usage.
2020-04-07 06:04:58 -04:00
Lioncash
8182688b34 CAnimationDatabase: Add virtual destructor
Given this class is used polymorphically, this is cautionary to prevent
any potential undefined behavior from occurring through refactors over
time.
2020-04-07 06:03:14 -04:00
Lioncash
f96ea81d69 CPASDatabase: Resolve sign-conversion warnings
We can leverage size_t here to resolve sign-conversion warnings.

While we're in the same area, we can remove a use of at() for
std::vector, given a bounds check already precedes it.
2020-04-06 13:21:06 -04:00
Lioncash
8dcd6b3109 CBodyState: Make use of HasAnims()
We can replace the usages of GetNumAnims with this now.
2020-04-06 13:17:19 -04:00
Lioncash
891fd05442 CPASAnimState: Add HasAnims()
GetNumAnims() is only used in two places to do existence checking. We
can just provide a dedicated function for this and also have size
querying as well.
2020-04-06 13:15:13 -04:00
Lioncash
6381f021b7 CPASAnimState: Make use of size_t for GetAnimParmData()
Given the rest of the interface now uses size_t, we can convert this
over. While we're at it, we can also take the result of the at() call
inside of it in order to avoid any copies of data altogether.
2020-04-06 13:10:43 -04:00
Lioncash
17c1582ba2 CPASAnimState: Make PickRandomAnimation() private
This isn't used externally anywhere.
2020-04-06 13:06:31 -04:00
Lioncash
0b74a3e995 CPASAnimState: Make use of size_t for indices
Same behavior, but plays nicer with containers.

This can technically result in less zero-extensions with regards to
memory indexing and registers, but this wasn't the underlying reason for the change.
2020-04-06 13:02:22 -04:00
Lioncash
4043b63721 CPASAnimState: Make computation functions private
These are currently only used internally.
2020-04-06 12:56:29 -04:00
Lioncash
0e0ca4caa9 CAnimSource: Eliminate variable shadowing
Gets rid of two -Wshadow warnings.
2020-04-06 07:04:49 -04:00