Commit Graph

2722 Commits

Author SHA1 Message Date
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
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