Luke Street
fb9765656c
COmegaPirate: Start implementation
2020-04-06 16:56:10 -04:00
Luke Street
9dd77d6a10
CGameCollision: Add AvoidStaticCollisionWithinRadius
2020-04-06 16:53:54 -04:00
Lioncash
cfa6299704
CShockWave: Resolve sign conversion warning
...
int was being used when size_t should have been.
2020-04-06 13:25:30 -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
92d65462b9
CCameraSpline: Resolve sign-conversion warnings
...
All call sites are already compatible with these changes, so they can
safely be made.
2020-04-06 12:50:28 -04:00
Lioncash
dd7d9c024f
CGameLight: Add parameter names to function prototypes
...
Same behavior, but more self-documenting from interface alone. Also
allows better parameter introspection.
2020-04-06 08:46:38 -04:00
Lioncash
5f7a33e2ec
CThardus: convert 0 literal to false
...
Same behavior, but matches the type of the parameter.
2020-04-06 08:43:41 -04:00
Lioncash
0a0ac955b5
CThardus: std::move std::vector instance in constructor
...
Same behavior, no reallocations.
2020-04-06 08:41:18 -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
0e0ca4caa9
CAnimSource: Eliminate variable shadowing
...
Gets rid of two -Wshadow warnings.
2020-04-06 07:04:49 -04:00
Lioncash
f7962cb3f7
CRasterFont: Extend CFontInfo buffer to 64 characters
...
GM8E v0 seems to be using at least a buffer 64 characters in size, not
40.
2020-04-06 06:59:22 -04:00
Lioncash
296cb3df2b
CMemoryCardDriver: Make use of std::array where applicable
...
Stronger typing and also allows eliminating several hardcoded data
sizes.
2020-04-06 06:23:48 -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
41c2ede092
CScriptWater: Make private const data internally linked
...
Same behavior, but allows completely hiding it from external view and
also allows making the data constexpr.
2020-04-06 05:42:15 -04:00
Lioncash
c9e8b3366d
CFluidPlane: Resolve constness related compile errors that slipped through
...
Gotta love Find References not, in fact, finding all the references.
2020-04-06 05:31:09 -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
d708337e90
CScriptDamageableTrigger: Make member variables private
...
Previously, everything about the class was made public.
2020-04-06 04:48:10 -04:00
Lioncash
27f3078c8a
CScriptDamageableTrigger: Mark x254_fluidPlane as mutable
...
A temporary stop-gap to hold over until Render is made non-const.
2020-04-06 04:45:33 -04:00
Lioncash
741adfe45c
CPASAnimParm: Make constexpr capable
...
Allows the type to be used in constexpr scenarios and allows for
compile-time elimination of initializers.
2020-04-06 02:55:05 -04:00
Lioncash
402216447a
CFluidPlane: Make Render() non-const
...
Allows making the shader instances non-mutable.
2020-04-06 02:18:14 -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
2e6bd0f05e
CGunWeapon: Eliminate usages of const_cast
...
Eliminates trivial usages of const_cast by making Draw related functions
non-const. This also allows removing the mutable specifiers from several
shader data members.
2020-04-06 00:52:47 -04:00
Lioncash
cabbfcc320
CActor: Make AddToRenderer() non-const
...
This member function alters instance state in a few implementations, so
it shouldn't be made const.
The state manager parameter also shouldn't be const. Retrieved data
from the post constructed instance is further modified in some
implementations. This removes the constness on this parameter in order
to fix more const_cast usages in a follow-up change.
2020-04-06 00:52:10 -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
Luke Street
58adce472a
CMappableObject: Fix call to data()
2020-04-06 00:03:34 -04:00
Lioncash
f77fb2089b
General: Pass std::nullopt to CAnimData::Render instead of {}
...
Prevents some implementations (libstdc++ and libc++) from completely zeroing out the underlying
buffer and instead sets a single byte flag.
Eliminates unnecessary memsets.
2020-04-05 08:24:42 -04:00
Phillip Stephens
786634e181
Merge branch 'master' of ssh+git://git.axiodl.com:6431/AxioDL/urde
2020-04-05 05:13:14 -07:00
Phillip Stephens
eab08cbe2d
Merge branch 'lioncash-find'
2020-04-05 05:12:25 -07:00
Lioncash
0a7ccace44
CCharacterFactory: Eliminate usages of const_cast within CreateCharacter()
...
We can simply make this member function non-const and eliminate the need
for casts like this.
2020-04-05 08:11:51 -04:00
Phillip Stephens
5fc8f2ccd2
Merge branch 'find' of https://github.com/lioncash/urde into lioncash-find
2020-04-05 05:11:20 -07:00
Phillip Stephens
28853f5ea6
Merge branch 'constexpr5' of https://github.com/lioncash/urde into lioncash-constexpr5
2020-04-05 05:10:42 -07:00
Lioncash
6ba0641b79
CCameraFilter: Make Draw() non-const
...
Eliminates another usage of const_cast.
2020-04-05 08:05:04 -04:00
Lioncash
b99122dae8
CFrontEndUI: Remove use of const_cast in Draw()
...
These casts are no longer necessary.
2020-04-05 07:12:07 -04:00
Lioncash
4d2e51c0b9
CSamusHud: Make Draw() non-const
...
Allows eliminating usages of const_cast.
2020-04-05 07:09:13 -04:00
Lioncash
3e9e434d96
CPlayerVisor: Make Draw() non-const
...
Allows eliminating const_cast usages.
2020-04-05 07:00:40 -04:00
Lioncash
be4e7f8ff7
CMFGame: Remove unnecessary const_cast
...
This is no longer necessary, considering that Draw() isn't const
qualified anymore.
2020-04-05 06:52:19 -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
039e43c511
CMapWorldInfo: Actually add the mutable specifiers
...
Note to self, actually stage changes before pushing.
2020-04-05 06:36:17 -04:00
Lioncash
42c560b9df
CMapWorldInfo: Remove use of const_cast
...
Same behavior, but explicitly marks the member variables as mutable.
This is fine given they act as an underlying cache and don't directly
alter the behavior of the interface.
2020-04-05 06:30:25 -04:00
Lioncash
2755f3f4f8
CMapWorldInfo: Eliminate truncation and sign conversion warnings
2020-04-05 06:29:27 -04:00
Lioncash
755529b67a
CMappableObject: Make use of std::array where applicable
...
Same behavior, but also allows eliminating hardcoded array sizes.
2020-04-05 06:15:18 -04:00
Lioncash
94264f6fe6
CRasterFont: Collapse loop into a std::find_if in InternalGetGlyph()
...
Same behavior, less code.
2020-04-05 06:01:29 -04:00
Lioncash
1279be5e56
CGraphics: Mark internal file-scope matrices as constexpr
...
Same behavior, but allows omission of runtime initializers.
2020-04-05 05:48:54 -04:00
Lioncash
95199848d3
CGraphics: Make use of std::array where applicable
2020-04-05 05:46:07 -04:00
Lioncash
8808a3a324
CFireFlea: Unindent FindSafeRoute()
...
Makes the function much nicer to follow by using guard clauses to
unindent the code.
2020-04-05 05:36:28 -04:00
Lioncash
99c564cfe4
CFireFlea: Make colors constexpr internal details
...
Same behavior, but makes the color constants fully internal details.
2020-04-05 05:25:47 -04:00
Lioncash
a49d26f800
CParticleElectric: Return std::nullopt in GetBounds()
...
Same behavior, but avoids zeroing out the internal buffer in some
implementations of std::optional.
2020-04-05 05:12:25 -04:00
Lioncash
852dd5c6bf
CParticleGenInfo: Collapse TCastToPtr into conditions
...
Same behavior, but more compact.
2020-04-05 05:10:28 -04:00
Lioncash
39e8ee9a80
CBodyState: Return 1.0f directly in UpdateLocomotionAnimation()
...
Same behavior, but less verbose.
2020-04-05 03:24:56 -04:00
Lioncash
71e3fb1817
CBodyState: Eliminate usages of const_cast
...
This is clearly modifying the command, so we should allow for modifying
of command instances if necessary.
2020-04-05 03:21:33 -04:00
Lioncash
1fb28a03a3
CBodyState: Mark reference parameters as const where applicable
...
Makes the parameters explicit about whether or not they're modified.
2020-04-05 03:10:35 -04:00
Lioncash
9ddb726155
CBodyState: Make use of const where applicable
...
Same behavior, but makes read-only intent explicit.
2020-04-05 02:58:22 -04:00
Lioncash
1b01b232e6
CCinematicCamera: Make use of const where applicable
...
Makes read-only intent explicit.
2020-04-05 01:45:08 -04:00
Lioncash
4e55edf0fe
CCameraSpline: Make use of TCastToConstPtr where applicable
...
Makes the read-only intent explicit.
2020-04-05 01:25:55 -04:00
Lioncash
7d8bcfbd5e
CCameraManager: Make use of TCastToConstPtr where applicable
...
Makes the read-only behavior explicit.
2020-04-05 01:19:51 -04:00
Lioncash
75cd9b6cf3
CBallCamera: Make use of TCastToConstPtr where applicable
...
Same behavior, but makes the read-only nature explicit.
2020-04-05 00:54:40 -04:00
Lioncash
8a732194a6
CGameCollision: Eliminate the use of const_cast
2020-04-05 00:30:58 -04:00
Lioncash
4c6ab60110
CGameOptions: Eliminate type punning in CHintOptions constructor and PutTo()
...
Type punning with unions is undefined behavior.
2020-04-03 02:19:28 -04:00
Lioncash
b122fd30a8
CGameProjectile: Return std::nullopt in GetTouchBounds()
...
Same behavior, but doesn't potentially unnecessary zero out the entirety
of the buffer within the optional and only sets a single byte.
2020-04-03 02:07:54 -04:00
Lioncash
d47f8c2784
CGameProjectile: Make use of TCastToConstPtr before
...
Same behavior, but more indiciative of read-only semantics.
2020-04-03 01:58:00 -04:00
Lioncash
eb1209b492
CFlameWarp: Dehardcode container sizes
...
Same behavior, less magic numbers.
2020-04-03 01:10:22 -04:00
Lioncash
ad30f0c61c
CActorModelParticles: Make GetParticleDGRPTokens take a std::string_view
...
Same behavior, but provides a more type-safe interface. All internal
functions called within the function operate on std::string_view
anyways.
2020-04-03 00:36:53 -04:00
Lioncash
75aa359855
CActorModelParticles: Use static_cast instead of reinterpret_cast in PointGenerator()
...
Casting from void* to a concrete type is permitted with static_cast.
2020-04-03 00:28:14 -04:00
Lioncash
a80838b2df
CActorModelParticles: Don't cast away const in SetupHook()
...
Now that we have a non-const overload, we don't need to cast away const
any longer, removing a cast-qual warning.
2020-04-03 00:26:35 -04:00
Lioncash
9ac1a94a5f
CActorModelParticles: Add non-const overload of FindSystem()
...
Same behavior but returns a non-const iterator, which will be used in a
following change.
2020-04-03 00:24:52 -04:00
Lioncash
b33fcf9e02
CActorModelParticles: Collapse FindSystem() into a find_if call
...
Same behavior, less code.
2020-04-03 00:22:37 -04:00
Lioncash
c913502d90
CActorModelParticles: Dehardcode container sizes where applicable
2020-04-03 00:08:09 -04:00
Lioncash
93dd28988d
CGameArea: Make use of std::make_unique where applicable
2020-04-02 22:02:57 -04:00
Lioncash
d240e40a17
CCameraShakeData: Make classes and structs constexpr where applicable
...
Same behavior, but allows eliminating file-scope initializers needing to
be run on program start.
2020-04-02 21:40:19 -04:00
Lioncash
f1e28a1290
CPlasmaBeam: Make use of std::array where applicable
...
Same behavior, no implicit array to pointer decay.
2020-04-02 21:10:51 -04:00
Lioncash
a8594d144b
CPlasmaProjectile: Make use of std::array where applicable
...
Allows dehardcoding array sizes.
2020-04-02 20:55:28 -04:00
Lioncash
66711ce023
CSamusHud: Dehardcode sizes where applicable
2020-04-02 08:34:38 -04:00
Lioncash
013b715c63
CSamusHud: Make use of std::array where applicable
...
Same behavior without any array->pointer decay.
2020-04-02 08:25:52 -04:00
Lioncash
333fee56e3
CPlayer: Const correctness and bracing consistency changes
...
Minor surface-level changes to make it nicer to see that certain
variables don't get modified within some operations.
Given some functions are quite large, this is generally nice to see.
2020-04-02 07:39:00 -04:00
Lioncash
e7e73e8658
CPlayer: Make use of std::make_unique for x76c_cameraBob
...
Same behavior, but more consistent with other usages of
std::make_unique.
2020-04-02 03:48:31 -04:00
Lioncash
e956402956
CPlayerEnergyDrain: Collapse loop into std::accumulate
...
Same behavior, less code.
2020-04-02 03:45:07 -04:00
Luke Street
ca6b3dd3f6
Merge pull request #294 from lioncash/cseg
...
CSegStatementSet: Minor changes
2020-04-02 02:32:00 -04:00
Luke Street
206be48b43
Merge pull request #292 from lioncash/automap
...
CAutoMapper: Eliminate usages of const_cast
2020-04-02 02:31:00 -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
d26521b41d
CElitePirate: Add missing const specifiers
...
Note to self: Remember to stage all of the necessary changes in commits.
2020-04-02 01:55:38 -04:00
Lioncash
b562905266
CElitePirate: Mark functions const where applicable
...
These don't modify instance state, so we can mark these as const.
2020-04-02 00:37:24 -04:00
Lioncash
b3753c6a92
CElitePirate: Make use of TCastToConstPtr where applicable
...
Makes read-only semantics more obvious at a glance.
2020-04-02 00:35:09 -04:00
Lioncash
60000c163b
CElitePirate: Collapse indexing into back() calls where applicable
...
Same behavior, but more compact.
2020-04-02 00:24:24 -04:00
Lioncash
6e179bfa87
CElitePirate: Remove unnecessary reference qualifiers
...
Same behavior, but makes locations where copies occur much more
explicit.
2020-04-02 00:22:48 -04:00