Lioncash
8e89ac234f
CElementGen: Initialize x80_timeDeltaScale on construction
...
Provides deterministic state upon construction, which is nicer for
debugging.
2020-04-14 16:11:38 -04:00
Lioncash
384efebf55
CElementGen: Collapse loop into a ranged-for loop
...
Same behavior, nicer syntax.
2020-04-14 16:08:21 -04:00
Lioncash
c14721611b
CEnergyProjectile: Make use of const where applicable
...
While we're at it, make use of consistent bracing, given some
conditionals traveled over one line.
2020-04-14 15:47:45 -04:00
Luke Street
9cf95b5c10
Editor: Move cvars to CVarCommons
2020-04-14 15:20:51 -04:00
Luke Street
94be460a1b
MP1: Convert MP1_VARIABLE_DELTA_TIME to cvar
2020-04-14 14:41:02 -04:00
Lioncash
3c8ce3dc99
CGuiTextSupport: Amend typo in debug group label
...
This is within the Render() function, so we can rename the group name.
2020-04-14 13:34:50 -04:00
Lioncash
5381c011a0
CParticleElectric: Eliminate several sign conversion instances
...
Makes sign conversion cases explicit and eliminates them entirely in
other cases.
2020-04-14 12:30:38 -04:00
Lioncash
4cbf8ef513
CParticleElectric: Mark CGlobalRandom instance as maybe unused
...
This has a stateful destructor, so we mark it as unused to silence
unused variable warnings.
2020-04-14 12:16:25 -04:00
Lioncash
8aef2cf95d
CParticleElectric: Make use of const where applicable
...
Makes it easier to read long functions by knowing which variables are
mutable.
2020-04-14 04:20:03 -04:00
Lioncash
fed72614ef
CParticleSwoosh: Use const where applicable
...
Given the length of some functions, this makes following flow nicer,
since it's easier to visually see which variables get modified.
2020-04-14 03:56:27 -04:00
Lioncash
6fbf6734c2
CParticleSwoosh: Eliminate variable shadowing
2020-04-14 03:31:31 -04:00
Lioncash
480d27e68c
CParticleSwoosh: Initialize class data members
...
Makes for deterministic initial state.
2020-04-14 03:27:15 -04:00
Luke Street
112322be5a
Merge pull request #311 from lioncash/sign
...
CScanDisplay: Eliminate implicit sign conversions
2020-04-14 02:10:13 -04:00
Luke Street
594fe2fcbd
Merge pull request #310 from lioncash/table
...
CFluidPlane: Make use of std::array where applicable
2020-04-14 02:09:19 -04:00
Lioncash
59a788a987
CParticleGlobals: Eliminate implicit type conversions
...
Makes them all explicit for the reader.
2020-04-13 18:44:51 -04:00
Lioncash
2c7d10c4b4
CCompoundTargetReticle: Brace statements where applicable
2020-04-13 17:16:23 -04:00
Lioncash
85f930ef2e
CCompoundTargetReticle: Convert unnecessary floats into bools
...
Using floats here is extremely suspect and almost certainly
unintentional.
2020-04-13 16:54:45 -04:00
Lioncash
1767338aba
CCompoundTargetReticle: Make eliminate hardcoded size
...
We can just query the capacity to dehardcode it.
2020-04-13 16:52:01 -04:00
Lioncash
e26afe887f
CCompoundTargetReticle: Make use of std::array where applicable
...
Same behavior, stronger typing.
While we're at it, we can eliminate a case of variable shadowing.
2020-04-13 16:50:37 -04:00
Lioncash
c6278c0e9f
CCompoundTargetReticle: Initialize all data members
...
Provides deterministic initial state.
2020-04-13 16:41:28 -04:00
Lioncash
2850b7e7fb
CWallCrawlerSwarm: Initialize all CBoid members
...
Provides a deterministic initial state.
2020-04-13 16:36:24 -04:00
Lioncash
7fcd6f41cf
CStateMachine: Initialize data members where applicable
...
Provides a deterministic initial state.
2020-04-13 16:34:18 -04:00
Lioncash
0d97104cf2
CScriptSpindleCamera: Initialize x33c_24_inResetThink in constructor
...
Provides a deterministic initial state.
2020-04-13 16:32:41 -04:00
Lioncash
4341dfae50
CScriptPickup: Initialize x274_tractorTime in constructor
...
Provides a deterministic initial state upon construction.
2020-04-13 16:31:28 -04:00
Lioncash
a554e5d4a6
CPathFindSearch: Initialize xcc_result in constructor
...
Provides a deterministic initial state upon construction.
2020-04-13 16:29:12 -04:00
Lioncash
9f21f8ef55
CFluidPlaneCPU: Initialize m_cachedDoubleLightmapBlend and m_cachedAdditive
...
Provides a deterministic initial state upon construction.
2020-04-13 16:27:21 -04:00
Lioncash
498c940479
CFluidPlane: Initialize all members of SRippleInfo
...
Provides a deterministic initial state, which is useful for debugging.
2020-04-13 16:25:36 -04:00
Lioncash
5b9a689703
CParticleSwoosh: Initialize x68_frame on construction
...
Provides a deterministic initial state, which makes for nicer debugging.
2020-04-13 16:23:07 -04:00
Lioncash
93622d9b4b
CIntElement: Initialize x14_holdVal in CIESampleAndHold
...
Provides a deterministic initial state upon construction, which makes
for nicer debugging.
2020-04-13 16:20:51 -04:00
Lioncash
786675f307
CTextExecuteBuffer: Move initialization of xa8_curWordIt into initializer list
2020-04-13 16:18:38 -04:00
Lioncash
50ba80247b
CTextExecuteBuffer: Initialize xac_curY and xb0_curX in the constructor
...
Provides a deterministic initial state upon construction for easier
debugging.
2020-04-13 16:18:02 -04:00
Luke Street
654e3e705e
Update hecl; disable MP1_VARIABLE_DELTA_TIME
2020-04-13 15:02:07 -04:00
Lioncash
6806d4914c
CHudBossEnergyInterface: Initialize x0_alpha on construction
...
Provides a deterministic initial state which is helpful for debugging.
2020-04-13 15:00:44 -04:00
Lioncash
67786721ff
CHudBossEnergyInterface: Make use of structured bindings in constructor
...
Same behavior, minus a verbose type name.
2020-04-13 14:59:47 -04:00
Lioncash
4e6150acc4
CHudDecoInterface: Make missed virtual call in constructor explicit
...
Missed this one in the previous commit.
2020-04-13 14:54:15 -04:00
Lioncash
c8be142846
CHudDecoInterface: Make virtual calls in constructor explicitly qualified
...
Virtual functions called in a constructor or destructor are statically
resolved. Given this is a potential source of bugs, we qualify these
functions to make it explicit that this is indeed the kind of behavior
desired.
2020-04-13 14:52:34 -04:00
Lioncash
3a5a3e2011
CHudRadarInterface: Make use of const where applicable
...
Same behavior, but makes it obvious some references are only used in a
read-only manner.
2020-04-13 14:25:59 -04:00
Lioncash
29cd228d03
CMorphBall: Eliminate hardcoded sizes
...
We can query the container capacity directly instead of hardcoding it
in.
2020-04-13 14:10:52 -04:00
Lioncash
2ad45e481f
CAuxWeapon: Use names for sound IDs
...
Same behavior, but slightly more self-documenting on what they actually
are.
2020-04-13 10:36:38 -04:00
Phillip Stephens
5aae402149
Merge branch 'master' of ssh+git://git.axiodl.com:6431/AxioDL/urde
2020-04-13 00:48:15 -07:00
Phillip Stephens
6838515d3d
Fix ALPH default value
2020-04-13 00:48:00 -07:00
Lioncash
7d6e466b68
CDecalManager: Make use of std::nullopt where applicable
...
Same thing, less verbose.
2020-04-13 01:43:06 -04:00
Lioncash
6fc32f44df
CRumbleGenerator: Make use of fmt::print instead of printf
...
Less need to care about formatting specifiers.
2020-04-12 22:41:19 -04:00
Lioncash
0a01a30bf5
CScanDisplay: Eliminate implicit sign conversions
...
Removes implicit sign conversions and also dehardcodes quite a bit of
sizes.
2020-04-12 22:05:52 -04:00
Lioncash
8000fb9e42
CScannableObjectInfo: Remove hardcoded capacity size
...
We can just query the container for this.
2020-04-12 21:45:11 -04:00
Lioncash
e91432ebf0
CScannableObjectInfo: Make use of size_t in constructor
...
Gets rid of unnecessary zero extensions and keeps loop variables the
same sized type as the comparison type.
While we're at it we can collapse a loop into a ranged for and get rid
of some avoidable sign conversions.
2020-04-12 21:42:54 -04:00
Lioncash
414c06b33e
CScriptDebris: Make use of std::array
...
Same behavior, stronger typing.
2020-04-12 21:07:17 -04:00
Lioncash
7df73b6f4c
CScriptDock: Get rid of variable shadowing
...
Same behavior, less bug vectors.
2020-04-12 15:29:53 -04:00
Lioncash
7fb2b6ac0b
CScriptDock: Make dock material list constexpr
...
Same behavior, no runtime overhead.
2020-04-12 15:28:18 -04:00
Lioncash
175502cb0d
CScriptMazeNode: Make use of std::array where applicable
...
Same behavior, stronger typing.
2020-04-12 15:23:28 -04:00
Lioncash
c84f430852
CScriptPlatform: Simplify IsRider()
...
Same behavior, less code.
2020-04-12 15:11:24 -04:00
Lioncash
fd5c6f9e59
CScriptPlatform: Make use of TCastToConstPtr where applicable
...
Makes the read-only intent more explicit to the reader.
2020-04-12 14:59:59 -04:00
Lioncash
ff847eaf41
CScriptPlatform: Make platform material list constexpr
...
Same behavior, no runtime overhead.
2020-04-12 14:11:11 -04:00
Lioncash
1d112134cf
CScriptPlayerHint: Make use of std::any_of/std::find_if where applicable
...
Same behavior, can be simplified even further with ranges in the future.
2020-04-12 14:00:34 -04:00
Lioncash
ff123f7820
General: Make use of static_cast within point generators
...
The more restrictive static_cast is permissable when casting from void*.
2020-04-12 13:29:34 -04:00
Lioncash
5d85cd496a
CFluidPlane: Make use of std::array where applicable
...
Makes all the arrays strongly typed. We can also use type aliases to
greatly shorten some type definitions.
2020-04-12 12:17:12 -04:00
Lioncash
fa1e4f38df
CScriptWater: Mark SolidFilter as constexpr
...
Same behavior, minus runtime initializers.
2020-04-12 11:59:08 -04:00
Lioncash
dfa206eda9
CScriptSpecialFunction: Make use of std::array where applicable
...
Same behavior, stronger typing.
2020-04-12 11:58:08 -04:00
Lioncash
beaccf4f9e
CScriptSound: Mark kSolidFilter as constexpr
...
Same behavior minus runtime initializers.
2020-04-12 11:56:37 -04:00
Lioncash
2e575c184e
CPatterned: Make use of constexpr where applicable
2020-04-12 11:55:40 -04:00
Lioncash
d8e7239bc6
CKnockBackController: Make use of std::array where applicable
...
Same behavior, stronger typing.
2020-04-12 11:53:17 -04:00
Lioncash
b2ec3e7eac
CGameArea: Make use of std::array where applicable
...
Same behavior, stronger typing, and optional runtime checking in debug
mode.
2020-04-12 11:36:19 -04:00
Lioncash
a433a7852f
CIceBeam/CPhazonBeam: Make use of std::array where applicable
...
Same behavior, stronger typing.
2020-04-12 11:34:59 -04:00
Lioncash
b631b5f3a1
CGunWeapon: Mark skShootAnim as constexpr
...
Enforce it as constexpr. The initializer is likely optimized away
anyways, given the array only contains primitives, but this is more
consistent.
2020-04-12 11:31:28 -04:00
Lioncash
96e3eaf726
CSplashScreen: Make use of std::array where applicable
...
Same behavior, stronger typing.
2020-04-12 11:30:09 -04:00
Lioncash
f74471f603
CWarWasp: Make use of std::array where applicable
...
Same behavior, no array to pointer decay.
2020-04-12 11:23:30 -04:00
Lioncash
cb857bd737
CSpankWeed: Make use of std::array where applicable
...
Same behavior, but without array to pointer decay.
2020-04-12 11:21:08 -04:00
Lioncash
23bae06742
CNewIntroBoss: Make use of std::array where applicable
...
Same behavior but without implicit array to pointer decay.
2020-04-12 11:18:57 -04:00
Lioncash
02a684cfdf
CFlaahgra: Migrate static data into the cpp file
...
Same behavior, but completely makes them internally linked.
We can also make use of std::array and dehardcode some array sizes.
2020-04-12 11:16:35 -04:00
Lioncash
f5418d30aa
CEyeBall: Move string_view instance to cpp file
...
Same behavior, but gives the string full internal linkage.
2020-04-12 11:08:20 -04:00
Lioncash
bfea80fc4a
CBabygoth: Mark IsDestinationObstructed() as const
...
This doesn't alter class state, so we can mark it as const.
2020-04-12 11:05:56 -04:00
Lioncash
abd576a43a
CBabygoth: Make use of std::array where applicable
...
Same behavior, no implicit array to pointer decay. We can also move all
this data into the cpp file fully.
2020-04-12 11:03:50 -04:00
Lioncash
f1aca12e6b
CQuitGameScreen: Make use of std::array where applicable
...
Same behavior, but more strongly typed and without any implicit array to
pointer decay.
2020-04-12 10:59:07 -04:00
Lioncash
eba3270c14
CMFGame: Make use of std::array where applicable
2020-04-12 10:55:22 -04:00
Lioncash
c296f0ab8f
CInventoryScreen: Make use of std::array where applicable
...
Same behavior, stronger typing.
2020-04-12 10:52:03 -04:00
Lioncash
aee2259972
CTexturedQuadFilter: Mark DefaultRect as constexpr
...
Same behavior, minus runtime initializers.
2020-04-12 10:40:36 -04:00
Lioncash
3efc8486a4
CColoredQuadFilter: Mark DefaultRect as constexpr
...
Same behavior, minus runtime initializers.
2020-04-12 10:39:02 -04:00
Lioncash
e0c187c607
CModelBoo: Make use of std::array where applicable
...
Allows decoding some array sizes.
2020-04-12 10:35:56 -04:00
Lioncash
c203a0de7c
CGraphics: Mark skCubeBasisMats as constexpr
...
Same behavior, minus potential runtime initializers.
2020-04-12 10:31:07 -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
Lioncash
5fc0802373
CPathCamera: Mark kLineOfSightFilter as constexpr
...
Same behavior, minus any potential runtime initializers.
2020-04-12 10:21:35 -04:00
Lioncash
535c02abe8
CCameraShakeData: Mark skChargedShotCameraShakeData as constexpr
...
Same behavior, minus potential runtime initializers.
2020-04-12 10:20:24 -04:00
Lioncash
c662634226
CBallCamera: Mark BallCameraFilter as constexpr
...
Allows removal of runtime initializers.
2020-04-12 10:19:13 -04:00
Lioncash
14f6dd2cd8
CFluidUVMotion: Return std::array by value from CalculateFluidTextureOffset()
...
Same behavior, but allows for easier use of API and makes it harder to
misuse. It also makes it easier for analysis to determine out of bounds,
given we leverage std::array rather than a pointer that causes arrays to
decay and lose their size information.
2020-04-12 09:23:52 -04:00
Lioncash
3c8619ba44
CFluidPlaneManager: Make use of std::array where applicable
...
Eliminates any potential implicit array to pointer decay.
2020-04-12 09:09:18 -04:00
Lioncash
2069694b59
CFluidPlane: Make use of HasReference() instead of operator bool
...
Looks a little less out of place while performing the same behavior.
IDE's can also do lookup more reliably on a regular function as opposed
to a conversion operator.
2020-04-12 08:52:23 -04:00
Lioncash
aa8f17d847
CFire: Return std::nullopt in GetTouchBounds()
...
Avoids unnecessarily zeroing out the entire internal buffer in
std::optional in some implementations (libstdc++/libc++).
2020-04-12 08:46:23 -04:00
Lioncash
9e168d3497
CPlasmaProjectile: Make PlayerEffectResource instances contain CAssetIds
...
Uses the wrapper type instead of the raw type.
2020-04-12 07:30:00 -04:00
Lioncash
976bf0d83e
CGameOption: Mark C-Pad arrays constexpr
...
Allows elision of runtime initializers.
2020-04-12 05:43:14 -04:00
Lioncash
1085600f30
CGameOption: Eliminate truncations to bool
2020-04-12 05:43:14 -04:00
Luke Street
5e748a0d7f
Particle/C*EPulse: Fix implementations
2020-04-12 05:38:44 -04:00
Lioncash
3c9fef492a
CGameOptions: Mark GameOptionsRegistry as constexpr
...
Same behavior but eliminates potential runtime initializers.
2020-04-12 05:27:44 -04:00
Lioncash
d5e57b5348
CCompoundTargetReticle: Make skZeroRenderState constexpr
...
Allows eliding runtime initializers where applicable. Particularly for
the static data.
2020-04-12 04:19:53 -04:00
Luke Street
32134990c3
Merge pull request #309 from lioncash/constexpr8
...
CMorphBall: Make use of constexpr on file-scope arrays
2020-04-12 03:06:59 -04:00
Luke Street
56cebfbacd
Merge pull request #308 from AxioDL/fmtlib-update
...
Update fmtlib
2020-04-12 03:06:46 -04:00
Luke Street
9f8064b4a1
Merge pull request #307 from lioncash/constexpr7
...
CModel: Mark CModelFlag instances as constexpr where applicable
2020-04-12 03:06:12 -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
Lioncash
fef6711ce8
CMorphBall: Make use of constexpr on file-scope arrays
...
Same behavior, but allows elision of runtime initializers.
2020-04-11 20:41:52 -04:00
Lioncash
1b42bda711
CParticleDataFactory: Make operator bool() instances explicit
...
Gets rid of implicit error-prone conversions to bool
2020-04-11 20:33:02 -04:00
Lioncash
d6f2e27d8a
CParticleGlobals: Make use of std::array where applicable
2020-04-11 20:29:36 -04:00
Lioncash
7d42b2d763
CParticleGlobals: Initialize all data members
...
Provides a deterministic initial state.
2020-04-11 20:23:40 -04:00
Lioncash
9d6b9142bb
CParticleSwoosh: Make use of std::array where applicable
...
Same behavior, no implicit array to pointer decay.
2020-04-11 20:20:47 -04:00
Lioncash
76e226f831
CWorldTransManager: Convert one missed array over to std::array
2020-04-11 19:55:23 -04:00
Lioncash
58fdb64ab5
CWorldTransManager: Initialize all members on construction
...
Provides a deterministic initial state upon construction, making
debugging easier.
2020-04-11 19:53:30 -04:00
Lioncash
e72507b20c
CWorldTransManager: Make use of std::array where applicable
...
Provides stronger typing, and eliminates any potential implicit array to
pointer decay.
2020-04-11 19:50:49 -04:00
Lioncash
54dededb9b
CNewFlameThrower: Make constructor take a std::array by reference
...
Same behavior, but enforces the size requirement instead of accepting
any arbitrary const CAssetId* pointer.
2020-04-11 19:37:42 -04:00
Lioncash
fa0dcf5b12
WeaponCommon: Use string_view with get_asset_id_from_name()
...
Internal functions expect a std::string_view, so we can just make the
parameter a string_view as well to push the responsibility outwards into
the caller.
2020-04-11 19:33:00 -04:00
Lioncash
ff6c1fdd3d
IOStreams: Make constructors for CBitStreamReader and CZipInputStream explicit
...
Same behavior minus the error prone implicit constructions.
2020-04-11 19:23:28 -04:00
Jack Andersen
5b4441ac36
Update fmtlib
2020-04-11 12:51:39 -10:00
Lioncash
75c07677ed
CModel: Mark CModelFlag instances as constexpr where applicable
...
Allows more runtime initializes to potentially be elided.
2020-04-11 16:56:13 -04:00
Luke Street
7055b6983f
Merge pull request #306 from lioncash/random
...
CRandom16: Make constructor explicit
2020-04-11 16:36:51 -04:00
Lioncash
4bdcc5efdb
CModel: Make CModelFlags constexpr constructible.
...
Allows initializers to be elided where applicable.
While we're at it, we can make the conditional flag tests more explicit
and eliminate implicit truncation in the case of the second flag test.
2020-04-11 16:16:19 -04:00
Lioncash
75d8988ee8
CRandom16: Make constructor explicit
...
Same behavior, minus the implicit conversions upon construction.
2020-04-11 16:15:05 -04:00
Lioncash
01bb0f3840
CWorld: Separate enum definition from declaration
...
Allows more flexibility if anything ever gets moved around and is
arguably nicer to read.
2020-04-11 15:29:01 -04:00
Lioncash
515103aa92
CWeaponDescription: Make operator bool() explicit
...
Eliminates potential error-prone implicit conversions.
2020-04-11 15:04:55 -04:00
Lioncash
886d951736
CCameraShakeData: Make use of boolean literals where applicable in LoadCameraShakeData
...
Same behavior, minus the implicit conversions to bool.
2020-04-11 14:33:27 -04:00
Phillip Stephens
9375514868
Fix CRipper
2020-04-11 07:29:06 -07:00
Luke Street
072ac0df16
Runtime: Wrap printf calls in #ifndef NDEBUG
2020-04-11 02:35:55 -04:00
Luke Street
e23c3d3705
Runtime: Wrap fmt::print calls in #ifndef NDEBUG
2020-04-11 02:25:41 -04:00
Luke Street
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
Luke Street
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
Luke Street
22ac7d8099
CScriptCoverPoint: Fix GetAttackDirection return value
2020-04-11 02:09:58 -04:00
Luke Street
0339c16e20
CScriptCoverPoint: Fix GetAttackDirection
2020-04-11 02:02:28 -04:00
Luke Street
bb7e94f304
Runtime/World: Replace bitfield unions with constructor initializers
2020-04-11 01:50:10 -04:00
Luke Street
22880abb7e
Runtime/Weapon: Replace bitfield unions with constructor initializers
2020-04-11 00:49:02 -04:00
Luke Street
c7ca8dc3a7
Runtime/Particle: Replace bitfield unions with constructor initializers
2020-04-11 00:39:49 -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
Luke Street
f483f5c1e6
CPersistentOptions: Initialize bitfields in default constructor
2020-04-10 15:47:36 -04:00
Luke Street
153004faee
Runtime/MP1/World: Replace bitfield unions with constructor initializers
2020-04-10 15:33:05 -04:00
Luke Street
402e45ecb5
Runtime/MP1: Replace bitfield unions with constructor initializers
2020-04-10 15:25:40 -04:00
Luke Street
d23e76db54
Runtime/Input: Replace bitfield unions with constructor initializers
2020-04-10 15:12:46 -04:00
Luke Street
e38a7f97bd
Runtime/GuiSys: Replace bitfield unions with constructor initializers
2020-04-10 15:11:10 -04:00
Luke Street
232823ae69
Runtime/Graphics: Replace bitfield unions with constructor initializers
2020-04-10 15:03:31 -04:00
Luke Street
f83b970e75
Runtime/Collision: Replace bitfield unions with constructor initializers
2020-04-10 15:03:24 -04:00
Luke Street
4a3ce8453f
Runtime/Graphics: Replace bitfield unions with constructor initializers
2020-04-10 15:03:15 -04:00
Luke Street
496bb3e624
Runtime/Camera: Replace bitfield unions with constructor initializers
2020-04-10 15:03:05 -04:00
Luke Street
8e691d0f73
Runtime/Audio: Replace bitfield unions with constructor initializers
2020-04-10 15:02:55 -04:00
Luke Street
346d110b79
Runtime: Replace bitfield unions with constructor initializers
2020-04-10 15:02:36 -04:00
Lioncash
89e2e65100
CCameraManager: Eliminate variable shadowing
...
We can get rid of shadowing in an inner scope.
2020-04-10 13:43:55 -04:00
Lioncash
8e263ff11b
CMapWorldInfo: Name all function prototype parameters
...
Same thing but is more consistent and allows IDEs to do better parameter
introspection.
2020-04-10 13:25:47 -04:00
Lioncash
f74c2d446f
CEnvFxManager: Remove mutable keywords where applicable
...
We can just make the relevant functions non-const to remove the use of
mutable here.
2020-04-10 13:22:22 -04:00
Lioncash
1e6b6622fe
CGuiFrame: Remove unnecessary mutable specifiers
...
We can just drop the const qualifier on ProcessMouseInput() to make the
mutable specifier unnecessary.
2020-04-10 02:17:50 -04:00
Phillip Stephens
0085f0b16f
Merge branch 'mp2-fixes'
2020-04-09 20:27:22 -07:00
Lioncash
e0a4dc37a4
CPathFindSearch: Remove use of mutable on m_viz
...
We can just drop the const qualifier on DebugDraw() to get rid of the
need to specify this.
2020-04-09 21:50:01 -04:00
Lioncash
549f58d835
CScriptDamageableTrigger: Remove mutable specifier on x254_fluidPlane
...
This is no longer necessary now that Render() is non-const.
2020-04-09 21:46:57 -04:00
Lioncash
124356b4e7
CSimpleShadow: Remove mutable specifier on m_filter
...
This is no longer necessary now that we can remove the const qualifier
on Render().
2020-04-09 21:44:49 -04:00
Lioncash
cd0a3780c0
CRainSplashGenerator: Remove mutable specifier from m_renderer
...
We can just drop the const specifiers on relevant member functions to
get rid of the need for this.
2020-04-09 21:40:48 -04:00
Lioncash
2fadaf544d
CCompoundTargetReticle: Remove mutable specifier on x28_noDrawTicks
...
This is no longer needed at all.
2020-04-09 21:35:16 -04:00
Lioncash
b72d217a68
CCompoundTargetingReticle: Remove mutable specifier on m_scanRetRenderer
...
This can be trivially resolved by dropping const qualifiers on the
necessary member functions.
2020-04-09 21:31:22 -04:00
Lioncash
35ca901784
CHudRadarInterface: Remove mutable specifiers from class members
...
We can just drop the const qualifiers on the relevant member functions
to make these unnecessary.
2020-04-09 21:23:50 -04:00
Lioncash
27813e5fc3
CThardus: Remove mutable specifier from m_flareFilter
...
Now that Render() is non-const, this specifier is no longer necessary.
2020-04-09 21:19:56 -04:00
Lioncash
1bacb69fc2
CPlasmaProjectile: Remove mutable specifier from m_renderObjs
...
Now that Render() is non-const, this is no longer necessary.
2020-04-09 21:17:20 -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
b89069e1b8
CBooRenderer: Remove usages of const_cast
...
We can just remove the const qualifier on model here.
2020-04-09 20:22:50 -04:00
Lioncash
57d9e0f294
CFlaahgra: Remove two usages of const_cast
...
These are no longer necessary.
2020-04-09 20:21:04 -04:00
Lioncash
4834720bb0
CGrappleArm: Remove usage of const_cast in RenderXRayModel()
...
This is no longer necessary.
2020-04-09 20:18:45 -04:00
Luke Street
3b0b3a39f9
COmegaPirate/CPhazonHealingNodule/CPhazonPool: Remove usages of const_cast
2020-04-09 20:15:25 -04:00
Lioncash
0c1b47faf8
CProjectileWeapon: Remove usages of const_cast
...
Now that the base Render() function was made non-const, it's trivial to
apply this to the other classes like CProjectileWeapon.
2020-04-09 20:09:14 -04:00
Luke Street
6b814262fc
Merge remote-tracking branch 'origin/master' into omegapirate
2020-04-09 20:06:33 -04:00
Lioncash
a2f7527388
CScriptPlayerActor: Remove two usages of const_cast
...
While we're at it, we can also simplify the implementation of
GetPostConstructed().
2020-04-09 20:05:53 -04:00
Lioncash
c796cf5315
CScriptSpecialFunction: Remove unnecessary const_cast in AcceptScriptMsg()
...
This const_cast isn't required at all any more.
2020-04-09 19:55:31 -04:00
Jack Andersen
e858c929e3
Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde into mp2-fixes
2020-04-09 13:04:37 -10:00
Luke Street
d131d72efa
Merge pull request #302 from lioncash/render2
...
CActor: Make Render() a non-const function
2020-04-09 18:55:51 -04:00
Lioncash
b8afcb42a3
CFlaahgraTentacle: Make use of TCastToConstPtr where applicable
...
Same behavior, but makes the read-only semantics explicit.
2020-04-09 17:43:15 -04:00
Lioncash
ef70d894f5
CFlaahgraTentacle: Make private static data completely internally linked
...
Given these aren't referenced anywhere else, we can make them fully
internally linked. We can also make the joint list fully constexpr.
2020-04-09 17:38:06 -04:00
Lioncash
0e4bd8bf13
MP1: Make use of nullptr where applicable
...
Same behavior, more indicative of what is being passed.
2020-04-09 17:18:38 -04:00
Lioncash
aabc0b7114
CStateManager: Mark material filters and lists as constexpr in TestRayDamage()
...
Allows potential runtime initializers to be elided.
2020-04-09 14:52:52 -04:00
Lioncash
bfd17e4513
CActor: Make Render() a non-const function
...
A few implementations of Render() contain const-casts nested within its
their call hierarchy to get around the fact that this function is marked
const. We can just make the member function non-const to allow removal
of these casts in follow up changes.
2020-04-09 14:32:20 -04:00
Luke Street
7774bc06ca
Merge pull request #297 from lioncash/render
...
CActor: Make AddToRenderer() non-const
2020-04-09 10:55:16 -04:00
Luke Street
74bce8458b
Merge pull request #299 from lioncash/const2
...
CGunWeapon: Eliminate usages of const_cast
2020-04-09 10:46:52 -04:00
Luke Street
529fced48a
Merge pull request #298 from lioncash/filter
...
CCameraFilter: Make Draw() non-const
2020-04-09 10:46:37 -04:00
Luke Street
416ca4653b
CScriptEffect: Minor fixes
2020-04-07 23:39:01 -04:00
Luke Street
1f55b5f92e
CGrenadeLauncher: Fix UpdateFollowPlayer
2020-04-07 19:26:22 -04:00
Luke Street
1dc90f78d3
CScriptPlatform: Fix AddRider assign to copy
2020-04-07 15:41:26 -04:00
Lioncash
ad1f56bfda
CPowerBeam: Make use of std::array where applicable
...
Same behavior, stronger typing.
We can also narrow the scope of the array.
2020-04-07 13:57:06 -04:00
Lioncash
5405dad069
CWeaponMgr: Make use of size_t in IncrCount()
...
Keeps this function consistent with the previous change.
2020-04-07 13:40:14 -04:00
Lioncash
8ba2af9b5a
CWeaponMgr: Avoid unnecessary repeated std::map lookups
...
Avoids trivial redundant std::map indexes by doing the lookup once and
then referring to the looked up object instead of doing repeated
lookups.
2020-04-07 13:38:36 -04:00
Lioncash
db0091e9cd
CWordBreakTables: Make use of std::array where applicable
...
Same behavior, but allows directly querying iterators. We can also make
these arrays constexpr.
2020-04-07 13:24:23 -04:00
Lioncash
fe32cea8fc
CRainSplashGenerator: Always initialize x24_generateInterval
...
Provides a deterministic consistent initial state.
2020-04-07 13:02:02 -04:00
Lioncash
3ea8eb21cf
CInterpolationCamera: Always initialize x1d8_24_sinusoidal
...
Provides a deterministic consistent initial state.
2020-04-07 12:58:47 -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
45dca4a25b
CStreamAudioManager: Always initialize x74_oneshot
...
Provides deterministic consistent state when constructing the class.
2020-04-07 12:53:05 -04:00
Lioncash
3865dfbfe5
CSfxManager: Always initialize x1a_reverb and x55_cachedMaxVol
...
Provides a deterministic initial state.
2020-04-07 12:49:43 -04:00
Lioncash
2ab59eec52
CSfxManager: Make use of std::array where applicable
...
Same behavior, but with stronger typing.
2020-04-07 12:47:57 -04:00
Lioncash
d677d2ac1d
CSfxManager: Always initialize m_isEmitter
...
Provides a deterministic initial state.
While we're at it, we can remove an unnecessary initializer.
2020-04-07 12:42:03 -04:00
Lioncash
18ad2595cf
CCameraFilter: Always initialize m_shape
...
Provides a deterministic initial state and prevents any potential
uninitialized reads.
2020-04-07 12:36:45 -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
139d290d7d
CWorldTransManager: Mark lightPos as constexpr in UpdateLights()
...
Allows the compiler to optimize the initialization away if it chooses to
do so.
2020-04-07 07:23:14 -04:00
Lioncash
7ba5a5b183
CWorldLight: Explicitly default copy assignment, move assignment and move constructor
...
Makes the interface consistent with how the constructor is specified.
2020-04-07 07:19:50 -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
cf7d5be6c1
CTryclops: Fix incorrect transform being passed to Teleport() in LaunchPlayer()
...
GM8E v0 makes use of tmpXf here with Teleport(), not the passed in
transform.
2020-04-07 06:58:41 -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
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
f17042ab77
CStreamAudioManager: Make use of std::array where applicable
...
Dehardcodes a lot of repeated array sizes.
2020-04-07 06:01:14 -04:00
Luke Street
4d3050cac4
COmegaPirate: Add call to AvoidStaticCollisionWithinRadius
2020-04-06 16:57:48 -04:00
Luke Street
ab8e00880e
CPhazonHealingNodule: Add missing functions
2020-04-06 16:56:10 -04:00
Luke Street
61444da8ff
COmegaPirate: Implement all functions
2020-04-06 16:56:10 -04:00
Luke Street
a4b1e7f85f
COmegaPirate: Implement Faint, Growth, JumpBack, Suck; continue Think implementation
2020-04-06 16:56:10 -04:00
Luke Street
46afe6eae8
COmegaPirate: Implement DoubleSnap & finish DoUserAnimEvent
2020-04-06 16:56:10 -04:00
Luke Street
802849c711
CPhazonPool: Implementation
2020-04-06 16:56:10 -04:00
Luke Street
c9f96d47d2
CPhazonPool: Initial structure
2020-04-06 16:56:10 -04:00
Luke Street
80b383b68f
CPhazonHealingNodule: Add DEFINE_PATTERNED
2020-04-06 16:56:10 -04:00
Luke Street
4d48febca2
CPhazonHealingNodule: Implementation
2020-04-06 16:56:10 -04:00
Luke Street
0bef9104b5
CPhazonHealingNodule: Create class
2020-04-06 16:56:10 -04:00
Luke Street
93751972ac
COmegaPirate: Implement AcceptScriptMsg & collision setup
2020-04-06 16:56:10 -04:00
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