Commit Graph

1105 Commits

Author SHA1 Message Date
Lioncash 4a6c3cde3c CWorldLight: Eliminate variable shadowing
While we're at it, we can make use of structured bindings.
2020-04-23 07:25:07 -04:00
Lioncash 4e3363a98b CScriptActorKeyframe: Eliminate variable shadowing 2020-04-23 07:22:10 -04:00
Lioncash 9ec9f42457 CPathFindSearch: Eliminate variable shadowing 2020-04-23 07:19:41 -04:00
Lioncash 078acce378 CMorphBall: Eliminate variable shadowing 2020-04-23 07:18:43 -04:00
Lioncash eefeb5cd0b CGameArea: Remove undefined behavior type-punning in a few functions
We can make use of std::memcpy here to get around this.
2020-04-23 03:06:04 -04:00
Lioncash df3aed75fe CGameArea: Eliminate implicit sign conversions in Validate() 2020-04-23 02:53:24 -04:00
Phillip Stephens b1a897d246
CIceSheegoth: Implement Think 2020-04-22 15:06:15 -07:00
Phillip Stephens 3779b205b7
Initial CIceSheegoth stubout 2020-04-22 15:06:15 -07:00
Phillip Stephens 59f979db67
Actually implement AssetNameMap in DNAMP1 2020-04-22 03:38:48 -07:00
Luke Street 14c92e85ce Use pas::EAnimationState in CPAS* 2020-04-22 05:09:27 -04:00
Lioncash 535717fbd8 CGameArea: Make use of std::array where applicable 2020-04-22 02:19:14 -04:00
Lioncash 664d08469c CEnvFxManager: Make use of std::array where applicable
Same behavior, less code.
2020-04-22 02:16:37 -04:00
Lioncash 52f51c111a CAmbientAI: Return std::nullopt in GetTouchBounds()
Allows implementations to avoid zeroing out the internal buffer of the
std::optional.
2020-04-22 02:10:55 -04:00
Luke Street 8488dca336 CPlayer: Long fall anim/dmg fix 2020-04-21 20:43:34 -04:00
Luke Street 82aa99f858 CScriptCameraWaypoint: Fix Arrived 2020-04-21 20:35:37 -04:00
Luke Street 449d8409d8 CMagdolite: Fix lock-on, retreat & loader 2020-04-21 04:46:07 -04:00
Luke Street 5f66ab2219 CMagdolite: Minor cleanup 2020-04-21 01:32:16 -04:00
Phillip Stephens d1c796f2a9 Initial CMagdolite imps 2020-04-21 01:06:52 -04:00
Luke Street d3a44259c3
Merge pull request #315 from lioncash/init
RuntimeCommonB: Make use of bitfield initializers where applicable
2020-04-21 00:56:39 -04:00
Lioncash 554893ef85 RuntimeCommonB: Make use of bitfield initializers where applicable
Given that we now target C++20, we can make use of bitfield initializers
where applicable.
2020-04-20 15:57:25 -04:00
Luke Street 32c44cbf05 Merge branch 'master' into omegapirate
# Conflicts:
#	Runtime/GuiSys/CAuiImagePane.cpp
2020-04-19 22:12:18 -04:00
Luke Street 1fd28d3fc3 CStateMachine: Use logvisor report for state logging 2020-04-19 22:11:09 -04:00
Lioncash ecdedb5d8f CActorModelParticles: Make IsMediumOrLarge() parameter a const reference
Nothing about the parameter is modified.
2020-04-19 21:44:31 -04:00
Luke Street 24acb585f8 MSVC & zeus fixes; update hecl-gui 2020-04-19 21:09:30 -04:00
Luke Street a3e0c42794
Merge pull request #312 from lioncash/explicit
MkCastTo: Make operator bool instances explicit
2020-04-19 00:24:15 -04:00
Lioncash 2c3e5e205f MkCastTo: Make operator bool instances explicit
Prevents error prone implicit conversions.
2020-04-18 23:02:11 -04:00
Luke Street 30f2ac3f26 Merge branch 'master' into omegapirate 2020-04-18 18:14:51 -04:00
Phillip Stephens df75c00203
Fix WideScreenFilter crash 2020-04-17 15:32:26 -07:00
Lioncash 76f0b57340 General: Use bool literals where applicable
More indicative of the passed in type compared to raw values.
2020-04-17 17:43:56 -04:00
Lioncash 0b05c906df CScriptEffect: Eliminate variable shadowing
Avoids clashing names.
2020-04-17 16:31:02 -04:00
Lioncash 5491f3ff23 CKnockBackController: Simplify initialization of x24_ in constructor
Same behavior, less code.
2020-04-17 13:17:27 -04:00
Lioncash 26ac3b166d CKnockBackController: Make use of braces where applicable
Makes code more consistent.

Where applicable we can also unindent code.
2020-04-17 13:17:27 -04:00
Lioncash 58040eb53d CKnockBackController: Make CalculateExtraHurlVelocity() a const member function
This doesn't modify internal member state, so it can be marked const

While we're at it we can also invert the conditional to unindent the
main calculation.
2020-04-17 01:07:41 -04:00
Lioncash b55d1e4c77 CKnockBackController: Make use of const references where applicable
In many cases the CPatterned& parameter is only used for read-only
querying. We can make this explicit in the interface.
2020-04-17 01:03:12 -04:00
Lioncash 49cc019699 CKnockBackController: Make GetKnockBackCharacterState() a const member function
This doesn't modify internal instance state, so this can be made const.
2020-04-17 00:58:29 -04:00
Lioncash 529d7e58bd CFishCloud: Initialize x230_whichModel on construction
Provides a deterministic initial state.
2020-04-17 00:49:06 -04:00
Lioncash fa9f0fdc61 CFishCloud: Brace statements where applicable
Makes the code more uniform and consistent.

While we're in the same area, we can make use of const where applicable.
2020-04-17 00:47:25 -04:00
Lioncash ed125031f3 CFluidUVMotion: Collapse separate resize and assignment into a constructor call
We can pre-size and insert the elements all at the same time.
2020-04-16 21:11:31 -04:00
Phillip Stephens 582d8a6999
Initial PAL/JP/Trilogy imps, various cleanup 2020-04-15 22:26:14 -07:00
Phillip Stephens e553a9022f
Fix CMemoryCardSys 2020-04-15 04:27:06 -07:00
Luke Street b020904e84 Comment out printfs entirely 2020-04-14 22:14:27 -04:00
Luke Street eb89a17817 CDummyWorld: Fix IGetAreaId 2020-04-14 21:15:38 -04:00
Lioncash 6436184a3f CWorld: Make use of find_if in GetAreaIdForSaveId()
Same behavior minus any explicit mutable state.
2020-04-14 16:40:13 -04:00
Lioncash 86b94ad915 CWorld: Make use of std::find_if in IGetAreaId
Removes explicit mutable state. This can be further simplified in the
future with ranges.
2020-04-14 16:31:17 -04:00
Lioncash 655805ffcb CWorld: Add missing override specifier 2020-04-14 16:17:26 -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 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 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 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 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
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 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
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
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
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 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
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 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
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
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 416ca4653b CScriptEffect: Minor fixes 2020-04-07 23:39:01 -04:00
Luke Street 1dc90f78d3 CScriptPlatform: Fix AddRider assign to copy 2020-04-07 15:41:26 -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
Phillip Stephens ff0cf969c2
Initial CDrone imps 2020-04-06 13:58:36 -07:00
Phillip Stephens d033ddeb1d
Initial CDrone imp 2020-04-06 13:57:36 -07:00
Luke Street 46afe6eae8 COmegaPirate: Implement DoubleSnap & finish DoUserAnimEvent 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 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
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 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 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 402216447a CFluidPlane: Make Render() non-const
Allows making the shader instances non-mutable.
2020-04-06 02:18:14 -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 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
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 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 206be48b43
Merge pull request #292 from lioncash/automap
CAutoMapper: Eliminate usages of const_cast
2020-04-02 02:31:00 -04:00
Luke Street de59ea45eb ScriptLoader: Zero out itemCounts 2020-04-01 21:17:05 -04:00
Luke Street 1e15e0d1f3 Merge remote-tracking branch 'origin/master' into elitepirate
# Conflicts:
#	Runtime/World/CPatterned.hpp
2020-04-01 15:02:56 -04:00
Luke Street ffd94d1106 COmegaPirate: Stub 2020-03-31 14:17:47 -04:00
Lioncash 47555c725b CAutoMapper: Eliminate usages of const_cast
Same behavior, but makes it explicit from the interface that
modifications are clearly going on from within the class.
2020-03-31 06:57:07 -04:00
Phillip Stephens 7b0c043721
Merge pull request #288 from lioncash/explicit
Runtime: Add more usages of explicit
2020-03-31 01:19:40 -07:00
Lioncash 67f6666ea1 Runtime: Add more usages of explicit
Prevents error-prone implicit conversions where applicable.

This targets the regular RuntimeCommon target this time around.
2020-03-31 03:53:49 -04:00
Lioncash 260dbaca7d CAnimData: Rename IceModel() to GetIceModel()
Allows const overloading to work and prevents compilation errors from
occuring if the const qualifier on an instance changes over refactoring.
2020-03-31 01:26:00 -04:00
Luke Street 2e3d1c980b CElitePirate: Implement AttractProjectiles; fix CGameProjectile material list 2020-03-30 23:10:51 -04:00
Luke Street 684bbd5903 CElitePirate: Bug fixes, make member variables private, cleanup 2020-03-30 20:40:38 -04:00
Lioncash 3e4731bf7f CWallCrawlerSwarm: Minor tidying changes
- Amends formatting according to clang-format.
- Makes use of const where applicable
- More consistent bracing
2020-03-30 19:05:48 -04:00
Lioncash e5a0959ef0 CWallCrawlerSwarm: Make use of size_t where applicable
Avoids unnecessary upper register clearing.
2020-03-30 19:05:48 -04:00
Lioncash e1273faa68 CWallCrawlerSwarm: Eliminate some sign conversion warnings
Same behavior, less warnings.
2020-03-30 19:05:48 -04:00
Lioncash 7ff3d29794 CWallCrawlerSwarm: Mark static const data as constexpr
Same behavior, but allows elision of initializers. While we're at it, we
can convert an array over to std::array.
2020-03-30 05:44:35 -04:00
Luke Street bc08792523 CBouncyGrenade implementation 2020-03-30 03:05:16 -04:00
Lioncash 312b8f219a CWorld: Dehardcode magic number in CheckWorldComplete()
Same behavior, no magic number.
2020-03-30 00:58:03 -04:00
Lioncash 802ac13812 CWorld: Make use of std::array where applicable 2020-03-30 00:54:38 -04:00
Lioncash 79b1e26052 IGameArea: Amend formatting of EChain
Makes for nicer visual scanning.
2020-03-30 00:47:29 -04:00
Phillip Stephens 0db6f96a17
Merge pull request #279 from lioncash/constexpr
CScannableParameters: Mark CScannableParameters as constexpr
2020-03-27 23:54:26 -07:00
Lioncash 2558da714e Runtime: Remove unnecessary smart pointer .get() calls
Same behavior, less code to read.
2020-03-27 20:50:45 -04:00
Lioncash 194cdf145f Runtime: Use nullptr where applicable
Same behavior, but no magic 0 value.

While we're in the same area, we can do minor cosmetic changes.
2020-03-27 20:18:54 -04:00
Lioncash 05988ce31c CScannableParameters: Mark CScannableParameters as constexpr
This only contains a single member, so this can trivially be marked
constexpr.
2020-03-27 20:07:33 -04:00
Phillip Stephens e0fe365dfd
Merge pull request #278 from lioncash/explicit
General: Make use of explicit constructors where applicable
2020-03-27 14:10:19 -07:00
Lioncash 241a66dc0a General: Make use of explicit constructors where applicable
Gets rid of potential error prone implicitly constructing constructors.
2020-03-27 06:00:17 -04:00
Luke Street c33703bd93 CElitePirate: Start impl; create CGrenadeLauncher 2020-03-26 03:30:54 -04:00
Lioncash 74600588fa Add missing includes pt.2
Some missing includes that actually need to be present.
2020-03-26 03:14:03 -04:00
Lioncash be6b5406a9 CPatterned/ScriptLoader: Convert function typedefs to using aliases
Same thing, but more readable.
2020-03-26 03:09:56 -04:00
Lioncash d9a9e0f51e CEnvFxManager: Take std::vector by value and std::move
Same behavior, but allows calling code to move into the parameter,
avoiding copies.
2020-03-26 02:56:10 -04:00
Lioncash 51afa94e8c Add missing includes where applicable
Resolves a few required dependencies
2020-03-26 01:10:55 -04:00
Lioncash 4169e3d91d CSnakeWeedSwarm: Mark several member functions as const
These don't alter instance state, so they can be const member functions.
2020-03-26 01:05:32 -04:00
Lioncash 43e0d16c5d CSnakeWeedSwarm: Use emplace_back in CreateBoid()
Same behavior, but with in-place construction instead.
2020-03-26 01:00:29 -04:00
Lioncash 2164854e87 CVisorFlare: Pass flares by value and use std::move
Same behavior, but allows calling code to move into the parameter and
avoid copies entirely.
2020-03-26 00:32:49 -04:00
Lioncash c5c888daa6 CRippleManager: Rename Ripples() to GetRipples()
Allows const overloading to work and prevents compilation errors from
occurring if the constness ever changes.
2020-03-25 04:22:34 -04:00
Lioncash 4f9e53933e CPathFindArea: Amend bitset size
The previous commit meant to contain this size.
2020-03-25 04:15:55 -04:00
Lioncash d0292fdc5d CPathFindArea: Make use of std::bitmap with CPFBitSet
Same behavior, but without the need to roll the operations ourselves.
2020-03-25 04:12:55 -04:00
Luke Street 7ee2a3b912
Merge pull request #254 from AxioDL/flyingpirate
CFlyingPirate implementation
2020-03-25 03:01:10 -04:00
Luke Street 556f870dc8 Merge branch 'pr-277' 2020-03-25 02:09:09 -04:00
Luke Street 8314d5b6ef Merge branch 'pr-255' 2020-03-25 02:09:02 -04:00
Lioncash 40fc3f9dd8 CModelBoo: Remove usages of const_cast
Many functions are modifying internals of CBooModel and const-casting
is performed in order to work around functions being const when they
really shouldn't be.

This amends the function signatures in order to allow these functions to
exist without const_cast, making code much nicer to read.
2020-03-25 02:01:46 -04:00
Lioncash e38d86fe59 CPhysicsActor: Amend constructor names for CPhysicsState
These were previously undescriptive names despite the member variables
being fully named. We can amend the parameters here.
2020-03-25 01:56:58 -04:00
Lioncash 81ae6bdda2 CPhysicsActor: Add names to parameters in prototypes
Allows better introspection in IDEs and makes the interface itself more
self-documenting.
2020-03-25 01:54:17 -04:00
Lioncash ab6c45c7a8 CWorld: Provide parameter names for prototypes
More self-documenting from the interface alone and allows IDE
inspections at callsites to be better.
2020-03-25 01:27:56 -04:00
Lioncash f2b1e44ee1 CEntity: Rename ConnectionList() to GetConnectionList()
Allows const overloading to function, preventing compilation errors from
occuring across constness changes.
2020-03-24 21:29:44 -04:00
Lioncash 8644b8393b CEntity: Add parameter names to interface
Allows IDEs to perform better parameter inspection.
2020-03-24 21:28:15 -04:00
Phillip Stephens e8f0d29a3b
Merge pull request #275 from lioncash/const-over
CPlayerState: Rename HealthInfo() to GetHealthInfo()
2020-03-24 17:45:59 -07:00
Phillip Stephens c72f388929
Merge pull request #273 from lioncash/team-uninit
CTeamAiMgr: Initialize x90_timeSinceMelee and x90_timeSinceRanged to 0.0f in constructor
2020-03-24 17:45:29 -07:00
Phillip Stephens 9aece39445
Merge pull request #272 from lioncash/uninit
CFluidPlane: Always initialize mul to 0.0f in CalculateRippleIntensity()
2020-03-24 17:45:15 -07:00
Lioncash ef93a601eb CPlayerState: Rename HealthInfo() to GetHealthInfo()
Allows const overloading to function and prevents compilation errors
from occurring if constness changes through future changes of any sort.
2020-03-24 06:20:37 -04:00
Lioncash 64d0563872 CTeamAiMgr: Initialize x90_timeSinceMelee and x90_timeSinceRanged to 0.0f in constructor
Makes all class members have a deterministic initial state.
2020-03-24 05:19:05 -04:00
Lioncash f416a814a1 CFluidPlane: Always initialize mul to 0.0f in CalculateRippleIntensity()
Avoids a -Wmaybe-uninitialized warning.
2020-03-24 05:14:01 -04:00
Lioncash 35ea097028 CPlayer: Add parameter names to prototypes
Makes them more self-documenting from the interface alone and also
allows IDEs to perform better parameter and argument inspection.
2020-03-24 04:33:54 -04:00
Phillip Stephens fc87bd8022
Merge pull request #270 from lioncash/brace
CPlayer: Un-nest code within FinishNewScan()
2020-03-23 23:29:59 -07:00
Phillip Stephens 2e43266714
Merge pull request #258 from lioncash/emplaced
General: Make use of emplace_back where applicable
2020-03-23 23:26:51 -07:00
Lioncash 70c51c3a86 CPlayer: Un-nest code within FinishNewScan()
Makes this function much nicer to read.
2020-03-23 02:44:44 -04:00
Lioncash fc4df76afc General: Make use of emplace_back where applicable
Allows for in-place construction. Also results in less code to read in
certain usages.
2020-03-21 00:30:12 -04:00
Lioncash 8a9e76a345 CWorld: Rename IMapWorld to IGetMapWorld()
Allows const overloading to function properly and prevents potential
compilation errors from occurring if constness on functions is ever
changed.
2020-03-20 23:27:07 -04:00
Luke Street 13d8c3fdd1 CFlyingPirate: First draft almost done 2020-03-18 01:18:48 -04:00
Luke Street 5765fd8951 CFlyingPirate: Method definitions & CFlyingPirateRagDoll constructor 2020-03-18 01:18:48 -04:00
Luke Street fcf7044bf2 Merge remote-tracking branch 'github/recovery' 2020-03-18 00:45:49 -04:00
Luke Street 87eeafe0b0 CSnakeWeedSwarm: Renaming & cleanup 2020-03-16 20:15:22 -04:00
Luke Street 4eaed95c11
Merge pull request #222 from lioncash/view
CGameOptions: Make use of std::string_view where applicable
2020-03-15 19:44:47 -04:00
Lioncash 659b8a43d3 CGameOptions: Make use of std::string_view where applicable
Enforces the use of valid strings in the interface. Also reduces c_str()
noise a little bit.
2020-03-14 20:09:23 -04:00
Lioncash 097d4a4422 Runtime: Collapse emplace_back() calls where applicable
Same behavior, but with less code.
2020-03-13 17:14:44 -04:00
Phillip Stephens 8badbd3f35
Merge pull request #211 from lioncash/init
CPlayerEnergyDrain: Initialize x10_energyDrainTime on construction
2020-03-12 15:10:28 -07:00
Phillip Stephens ce5ce35743
Merge pull request #210 from lioncash/bob
CPlayerCameraBob: Minor cleanup
2020-03-12 15:10:19 -07:00
Lioncash d51518dc57 CPlayerEnergyDrain: Make constructor explicit
Prevents error-prone implicit constructions from occurring.
2020-03-12 10:01:31 -04:00
Lioncash e628cbf1be CPlayerEnergyDrain: Initialize x10_energyDrainTime on construction
GM8E v0 initializes this to zero when constructing the class. This also
makes the entire class have a consistent initial state.
2020-03-12 09:57:43 -04:00
Luke Street cfd568bb39 Merge branch 'chozoghosts' 2020-03-11 17:17:00 -04:00
Phillip Stephens 190c369aeb
Fix crashes with FusionSuit active 2020-03-11 06:48:30 -07:00
Lioncash 179d19412b CPlayerCameraBob: Make static non-const member variables private
Prevents accidental modification of the values from occurring in code
that makes use of them. Many of these constants aren't even used outside
of the class itself in the first place.
2020-03-09 20:55:12 -04:00
Lioncash f622ed364d CPlayerCameraBob: Make use of std::array where applicable 2020-03-09 20:33:37 -04:00
Luke Street 830db8772d Merge remote-tracking branch 'origin/master' into chozoghosts 2020-03-09 10:12:40 -04:00
Phillip Stephens d93df18a37
Fix `CScriptDistanceFog::AcceptScriptMessage` 2020-03-08 23:18:57 -07:00
Luke Street 6e9a80de5d CVisorFlare: Rename "near" to avoid MSVC conflict 2020-03-08 23:44:44 -04:00
Phillip Stephens dd54f93da4
Merge pull request #195 from lioncash/unused
CPlayer: Make use of unused CCollidableAABox in ProcessInput()
2020-03-08 18:02:52 -07:00
Phillip Stephens f06c26e7d6
Fix infinite loop in CObjectList, and add an assert to detect invalid assignments 2020-03-07 09:14:07 -08:00
Lioncash 830e1c59d2 CPlayer: Make nearby variables const
Makes nearby variables from the previous change const to make their
immutability explicit.
2020-03-06 22:08:56 -05:00
Lioncash a2b6b4515d CPlayer: Make use of unused CCollidableAABox in ProcessInput()
GM8E v0 makes use of the temporary collidable AA box. This amends the
code to make use of it.
2020-03-06 22:06:44 -05:00
Phillip Stephens 17f25457c5
CGameArea::CAreaObjectList fix 2020-03-06 16:20:52 -08:00
Phillip Stephens 1cccaac115
Final CChozoGhost imps 2020-03-06 07:16:55 -08:00
Lioncash 6917132a94 CThardus: std::move vector instances in constructor
Previously the std::move calls wouldn't do anything, as the parameters
were constant references, so we can take them by value and move into the
constructor and then move the parameters into the member variables.

While we're at it, we can initialize the vectors in place instead of
constructing and then assigning to them.
2020-03-05 21:19:32 -05:00
Phillip Stephens 9d77d7313c
More ChozoGhost imps 2020-03-04 18:41:10 -08:00
Phillip Stephens 2f9dd38bbe
Silence discard errors 2020-03-04 18:40:03 -08:00
Phillip Stephens 80dbc1920c
Update submodules 2020-03-03 16:49:13 -08:00
Phillip Stephens 366d6b96ee
Merge pull request #178 from lioncash/data
CScriptGunTurret: Remove unnecessary data() call in AcceptScriptMsg()
2020-03-03 16:43:43 -08:00
Phillip Stephens abfd77c3ba
Merge pull request #177 from lioncash/burst
CScriptGunTurret: Move static const data into the cpp file
2020-03-03 16:43:34 -08:00
Lioncash 70c3a7ddf5 CScriptGunTurret: Remove unnecessary data() call in AcceptScriptMsg()
We can use append() instead of data(). This allows the size of the
string view instance to be used directly instead of redundantly doing a
string size lookup.
2020-03-03 06:30:20 -05:00
Luke Street 9e0e053906 CScriptSpecialFunction: Further ThinkSpinnerController implementation 2020-03-03 03:31:58 -05:00
Lioncash 245a8145c7 CScriptGunTurret: Make use of std::array with file-static data 2020-03-03 03:12:35 -05:00
Lioncash f4fc17bee0 CScriptGunTurret: Move static const data into the cpp file
Makes the data fully internally linked and also allows making said data
constexpr.
2020-03-03 03:05:02 -05:00
Luke Street 12393d4c4d CSnakeWeedSwarm: Fix lighting 2020-03-01 03:05:16 -05:00
Luke Street 17b9813b3e CSnakeWeedSwarm: Rendering & state fixes 2020-03-01 02:52:17 -05:00
Luke Street f064bc2f7b CSnakeWeedSwarm: Initialize bitfields; some more cleanup 2020-03-01 01:59:12 -05:00
Luke Street 046fbe7760 CSnakeWeedSwarm: Cleanup, renaming & fixes 2020-03-01 01:59:12 -05:00
Luke Street 34a80aab81 CSnakeWeedSwarm: Implement ApplyRadiusDamage 2020-03-01 01:59:12 -05:00
Luke Street f50f5cedef CSnakeWeedSwarm: Implement remaining methods 2020-03-01 01:59:12 -05:00
Phillip Stephens 9f5f0abab4
More CThardus imps, add reference CTevPass imps 2020-02-29 17:11:41 -08:00
Lioncash f1256faeb7 Runtime: Remove unnecessary c_str() calls
Makes for less noisy code and also gets rid of unnecessary std::strlen
calls in the case things are passed to a std::string_view parameter.
2020-02-28 05:26:41 -05:00
Lioncash 79c409c5e0 CPlayer: Add missing return within UpdateOrbitModeTimer()
Previously, any call to this function would always reset the timer to
0.0, rather than potentially decrement it.

GM8E v0 always returns within the conditional.
2020-02-25 02:17:22 -05:00
Luke S 97ab8a56d9
Merge pull request #157 from lioncash/optional-goo
CScriptVisorGoo: Use std::make_optional where applicable
2020-02-24 03:12:17 -05:00
Lioncash b3b71a2e76 CScriptVisorGoo: Use std::make_optional where applicable
Same behavior, but without a verbose type name.
2020-02-24 02:57:47 -05:00
Luke Street f1dd82066a Start implementing CSnakeWeedSwarm 2020-02-20 23:27:12 -05:00
Luke Street a978b030c3 Fix infra model for CWallCrawlerSwarm 2020-02-20 21:50:54 -05:00
Phillip Stephens 61f9adfa70
Merge branch 'pr-148' 2020-02-07 14:25:31 -08:00
Phillip Stephens 60f8dfb9d1
Final CCollisionInfoList imps 2020-02-07 14:20:04 -08:00
Lioncash 16f7925652 CFireFlea: Set CPathFindSearch's padding to 50.0f within AcceptScriptMsg()
v0-00 sets the padding member of CPathFindSearch here to 50.0, not a
member variable that's part of the CFireFlea class.
2020-02-07 16:27:56 -05:00
Phillip Stephens 569886de6a
Merge pull request #142 from lioncash/decay
CScriptPlatform: Amend delta time value in AcceptScriptMsg for deletion
2020-02-03 14:44:21 -08:00
Phillip Stephens 48570cd956
Merge pull request #141 from lioncash/dock-aa
CScript*: Return std::nullopt in GetTouchBounds()
2020-02-03 14:43:58 -08:00
Phillip Stephens 06d7a3e00a
Merge pull request #140 from lioncash/enum-class
CScriptDock: Make EDockState an enum class
2020-02-03 14:43:28 -08:00
Lioncash 3147d39cd9 CScript*: Return std::nullopt in GetTouchBounds()
In some implementations, returning via default construction for
std::optional can cause the entire inner buffer to be zeroed out.

Returning with std::nullopt causes only the internal validity flag to be
set and nothing more.
2020-02-01 01:06:43 -05:00
Lioncash c944d04614 CScriptPlatform: Amend delta time value in AcceptScriptMsg for deletion
Game code makes use of 1.66666675f here, not 0.0f.
2020-01-31 23:53:39 -05:00
Lioncash 9a8f99faa5 CScriptDock: Make EDockState an enum class
Makes the enum type strongly typed. All usages currently allow for this
anyways.
2020-01-31 21:34:10 -05:00
Lioncash 458ff8949a IGameArea: Make Dock's reference count variable signed
In all usage cases, this variable is used with functions that expect a
signed value. This eliminates quite a few signed mismatch warnings.
2020-01-31 21:29:53 -05:00
Lioncash a3ebe8727f CScriptSound: Remove active check within AcceptScriptMsg() deactivate path
Game code doesn't check for active status within this branch, and
there's no comment indicating whether or not this difference was intentional.
2020-01-31 17:37:46 -05:00
Lioncash 495ff19aad CDamageInfo: Make certain constructors constexpr
Allows eliminating potential runtime static constructors by allowing
file-scope instances to be declared constexpr.
2020-01-31 02:06:14 -05:00
Phillip Stephens 968c3394c6
Merge pull request #135 from lioncash/dash-elements
CPlayer: Add missing element to skDashStrafeDistances
2020-01-30 20:12:00 -08:00
Phillip Stephens d7f475166f
Merge pull request #134 from lioncash/function-error
CPlayer: Fix function call mismatch within SidewaysDashAllowed()
2020-01-30 20:11:49 -08:00
Phillip Stephens 11352ef042
Merge pull request #131 from lioncash/top-const
CActor: Remove top-level const from GetScaledLocatorTransform() and GetLocatorTransform()
2020-01-30 20:11:12 -08:00
Lioncash 29ca2b6062 CPlayer: Add missing element to skDashStrafeDistances
This was previously missing the initial element within the array,
causing all the elements in the table to be shifted to the left by one.
This corrects that.
2020-01-29 03:51:50 -05:00
Lioncash 264c897bb5 CPlayer: Fix function call mismatch within SidewaysDashAllowed()
This function actually calls GetPressInput() here, not
GetDigitalInput().
2020-01-29 03:18:36 -05:00
Lioncash edf5511af4 CActor: Remove top-level const from GetScaledLocatorTransform() and GetLocatorTransform()
Same behavior, less code.
2020-01-29 01:50:31 -05:00