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
Lioncash
66f5685590
CMaterialFilter: Mark skPassEverything as constexpr
...
Removes any potential runtime initializers.
2020-04-12 10:28:02 -04:00
Lioncash
724505e6dc
CAreaOctTree: Make use of std::array where applicable
...
Prevents any implicit array to pointer decay from occurring.
2020-04-12 10:25:41 -04:00
Luke Street
f83b970e75
Runtime/Collision: Replace bitfield unions with constructor initializers
2020-04-10 15:03:24 -04:00
Lioncash
061b7f9a98
CCollisionActorManager: Remove usage of const_cast
...
We can just make Destroy() a non-const member function to eliminate the
need for this cast.
2020-04-09 20:33:49 -04:00
Lioncash
40f184bfac
ICollisionFilter: Add virtual destructor
...
Prevents any potential undefined behavior from occurring through
polymorphic use.
2020-04-07 06:06:56 -04:00
Luke Street
9dd77d6a10
CGameCollision: Add AvoidStaticCollisionWithinRadius
2020-04-06 16:53:54 -04:00
Lioncash
6e7e761126
CCollidableOBBTree: Don't cast away const in constructor
...
Same behavior, minus a cast.
2020-04-06 07:11:34 -04:00
Lioncash
c97fedd989
CCollisionSurface: Return std::array by reference from GetVerts()
...
Same behavior, facilitates better static analysis for out-of-bounds
accesses, and also even allows size querying if necessary.
2020-04-06 06:02:52 -04:00
Lioncash
ecf3cfdb49
CCollisionSurface: Collapse separate CVector3f instances into std::array
...
Will allow converting GetVertices() over to returning a reference to
std::array, rather than simply a pointer.
2020-04-06 05:54:24 -04:00
Lioncash
f0eadfe56c
CMetroidAreaCollider: Make use of std::array where applicable
...
Makes arrays strongly typed and allows eliminating some hardcoded array
sizes. We can also use it to make input data to some data types and
functions significantly more informative.
This also makes it easier for static analysis tools to track out of
bounds accesses if they ever occur.
2020-04-06 05:19:13 -04:00
Lioncash
22eb5c837e
CollisionUtil: Make use of const where applicable
...
Makes it explicit which variables are mutating within algorithms, making
them nicer to follow.
2020-04-06 02:02:52 -04:00
Lioncash
39f5fddd63
CollisionUtil: Make use of std::array where applicable
...
Same behavior, stronger typing. Also allows dehardcoding some array
sizes.
2020-04-06 01:41:16 -04:00
Lioncash
80c6424fd0
CCollidableOBBTree: Eliminate variable shadowing
...
Resolves a -Wshadow warning.
2020-04-06 01:23:08 -04:00
Lioncash
c3ba3927db
CCollidableOBBTree: Make use of std::array where applicable
...
Same behavior, stronger typing.
2020-04-06 01:21:20 -04:00
Lioncash
e76804079d
COBBTree: Return std::array from GetTriangleVertexIndices() directly
...
While the game binary uses an out pointer here, we can slightly modify
it in this case in order to make it more difficult to misuse the
call-sites by returning the data directly as a std::array.
2020-04-06 01:17:24 -04:00
Lioncash
248a4e57c9
COBBTree: Always initialize x4c_hit
...
Same behavior, but provides deterministic state on construction, which
can make debugging much nicer.
2020-04-06 01:05:29 -04:00
Lioncash
c6952442c7
COBBTree: Remove use of operator bool directly
...
Same behavior, but more idiomatic.
2020-04-06 01:01:44 -04:00
Lioncash
e34db8c0e6
COBBTree: Eliminate sign conversion warnings
...
Multiplying a u16 results in an int.
2020-04-06 01:00:58 -04:00
Lioncash
19cfb92d5d
COBBTree: Simplify make_unique call
...
We can use nullptr here instead of typing out the name of the type.
2020-04-06 00:51:04 -04:00
Lioncash
a952ff1110
CCollisionEdge: Make constructors constexpr
...
Makes the default and non-stream iterator constexpr, which allows for
elimination of a runtime initializer.
2020-04-05 06:46:03 -04:00
Lioncash
af6e3b21f8
COBBTree: Make use of std::array where applicable
2020-04-05 06:41:22 -04:00
Lioncash
8a732194a6
CGameCollision: Eliminate the use of const_cast
2020-04-05 00:30:58 -04:00
Lioncash
0ae638eef9
CCollisionActorManager: Make use of std::nullopt
...
Gets rid of unnecessary zeroing out of the internal buffer on some
implementations.
2020-04-02 02:08:15 -04:00
Lioncash
6931737aef
CCollisionActorManager: Minor tidying
...
Bracing consistency and using const where applicable.
2020-04-02 02:06:44 -04:00
Lioncash
67f6666ea1
Runtime: Add more usages of explicit
...
Prevents error-prone implicit conversions where applicable.
This targets the regular RuntimeCommon target this time around.
2020-03-31 03:53:49 -04:00
Lioncash
51afa94e8c
Add missing includes where applicable
...
Resolves a few required dependencies
2020-03-26 01:10:55 -04:00
Luke Street
f91536ebee
Merge branch 'pr-276'
2020-03-25 02:09:05 -04:00
Lioncash
855fc0ced9
CAreaOctTree: Add names to parameters in prototypes
...
Allows IDEs to perform better inspections at call sites.
2020-03-25 00:45:33 -04:00
Lioncash
f323638fb7
CCollisionActor: Provide parameter names in interface where applicable
...
Makes the interface more self-documenting at a glance and allows IDEs to
do better parameter inspection at call sites.
2020-03-24 21:16:30 -04:00
Luke Street
66c321d4a8
Merge pull request #246 from lioncash/def
...
CCollisionInfoList: Simplify definition of begin() and end()
2020-03-18 01:04:19 -04:00
Lioncash
457c116275
CCollisionInfoList: Simplify definition of begin() and end()
...
Same behavior, but without a verbose return type.
2020-03-17 21:41:54 -04:00
Lioncash
a9082bc445
CCollisionActor: Mark gkDefaultCollisionActorMaterials as constexpr
...
While we're at it, change the g to s, since it's internally linked.
2020-03-15 20:04:15 -04:00
Phillip Stephens
e43bfe1e58
More CChozoGhost imps
2020-03-05 07:42:12 -08:00
Lioncash
9cb5d11405
CollisionUtil: Replace FINDMINMAX macro with std::minmax()
...
Same thing, but already provided by the language.
2020-02-28 02:27:24 -05:00
Phillip Stephens
60f8dfb9d1
Final CCollisionInfoList imps
2020-02-07 14:20:04 -08:00
Lioncash
1cb289f243
RuntimeCommon: Normalize cpp inclusions
...
Normalizes the headers for the cpp files in the RuntimeCommon target.
Now all headers and source files within the RuntimeCommon/RuntimeCommonB
targets are normalized and consistent with one another.
2020-01-15 09:15:47 -05:00
Phillip Stephens
21159e604e
More CThardus
2019-12-14 15:50:29 -08:00
Phillip Stephens
a1c7692d36
More CRidley imps
2019-11-12 12:25:21 -08:00
Phillip Stephens
6c1f682e0f
Initial CRidley implementation
2019-11-09 15:48:46 -08:00
Phillip Stephens
b87f94802d
Merge pull request #120 from lioncash/collision
...
CCollisionResponseData: Minor changes
2019-10-30 01:13:40 -07:00
Phillip Stephens
ec7f6804cb
Merge pull request #119 from lioncash/constexpr
...
CollisionPrimitive: Make collision primitive types constexpr capable
2019-10-30 01:13:31 -07:00
Lioncash
fff7b90c85
CCollisionResponseData: In-class initialize primitives
...
Avoids needing to give them their own entry within the constructor
initializer list.
2019-10-29 19:43:23 -04:00
Lioncash
156c0e8cd0
CCollisionResponseData: Name parameters in function declarations
...
Allows IDEs and other introspection tools to be more useful when
indicating parameters in function calls.
2019-10-29 19:41:53 -04:00
Lioncash
9c391f90e3
CCollisionResponseData: Join vector initializations into constructor initializer list
...
Generally provides marginally better code generation.
We can also fill x10_sfx with the invalid SFX constant at the same time
instead of performing a resize and then filling it again.
2019-10-29 19:41:53 -04:00
Lioncash
3d67088697
CCollisionResponseData: Make use of std::array where applicable
...
Allows us to replace some heap allocating file-scope std::vector
instances with constexpr std::arrays, eliminating quite a few static
constructors.
2019-10-29 19:41:48 -04:00
Lioncash
c1beec5bb0
CCollisionResponseData: Organize cpp inclusions
...
Organizes them alphabetically to make for better human reading.
2019-10-29 19:27:21 -04:00
Lioncash
d7dd256d38
CollisionPrimitive: Make use of constexpr types where applicable
...
We can now mark some usages of these types as constexpr and also make
them fully internal to the translation unit.
2019-10-29 18:36:26 -04:00
Lioncash
5c7bb9e7d7
CollisionPrimitive: Make collisition primitive types and comparisons constexpr capable
...
Allows them to be used within constexpr contexts.
2019-10-29 18:36:21 -04:00
Lioncash
660d092cad
CSegId: Add member functions for querying validity
...
Allows querying validity of segment IDs without hardcoding the magic
value that signifies an invalid ID.
2019-10-26 22:43:11 -04:00