Commit Graph

984 Commits

Author SHA1 Message Date
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
Phillip Stephens 244e9febb3
Minor fixes 2020-04-08 12:20:27 -07:00
Phillip Stephens 94dbd091ae
Implement CDroneLaser 2020-04-08 10:54:46 -07:00
Luke Street 1f55b5f92e CGrenadeLauncher: Fix UpdateFollowPlayer 2020-04-07 19:26:22 -04:00
Phillip Stephens 784e956819
Drone: Remove redundant include 2020-04-07 16:13:11 -07:00
Phillip Stephens 37c8b9d33c
Drone: Implement Think 2020-04-07 16:11:50 -07: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
Phillip Stephens 4c3caa2a7f
Drone: Initial Think imp 2020-04-06 13:58:39 -07:00
Phillip Stephens e4c3248ad8
Drone: Start implementing state functions 2020-04-06 13:58:39 -07:00
Phillip Stephens 08b1dbcf4f
Drone: Implement AcceptScriptMsg 2020-04-06 13:58:39 -07:00
Phillip Stephens ff0cf969c2
Initial CDrone imps 2020-04-06 13:58:36 -07:00
Luke Street 4d3050cac4 COmegaPirate: Add call to AvoidStaticCollisionWithinRadius 2020-04-06 16:57:48 -04:00
Phillip Stephens d033ddeb1d
Initial CDrone imp 2020-04-06 13:57:36 -07: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
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 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 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 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 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 8808a3a324 CFireFlea: Unindent FindSafeRoute()
Makes the function much nicer to follow by using guard clauses to
unindent the code.
2020-04-05 05:36:28 -04:00
Lioncash 99c564cfe4 CFireFlea: Make colors constexpr internal details
Same behavior, but makes the color constants fully internal details.
2020-04-05 05:25:47 -04:00
Lioncash 66711ce023 CSamusHud: Dehardcode sizes where applicable 2020-04-02 08:34:38 -04:00
Lioncash 013b715c63 CSamusHud: Make use of std::array where applicable
Same behavior without any array->pointer decay.
2020-04-02 08:25:52 -04:00
Luke Street 206be48b43
Merge pull request #292 from lioncash/automap
CAutoMapper: Eliminate usages of const_cast
2020-04-02 02:31:00 -04:00
Lioncash d26521b41d CElitePirate: Add missing const specifiers
Note to self: Remember to stage all of the necessary changes in commits.
2020-04-02 01:55:38 -04:00
Lioncash b562905266 CElitePirate: Mark functions const where applicable
These don't modify instance state, so we can mark these as const.
2020-04-02 00:37:24 -04:00
Lioncash b3753c6a92 CElitePirate: Make use of TCastToConstPtr where applicable
Makes read-only semantics more obvious at a glance.
2020-04-02 00:35:09 -04:00
Lioncash 60000c163b CElitePirate: Collapse indexing into back() calls where applicable
Same behavior, but more compact.
2020-04-02 00:24:24 -04:00
Lioncash 6e179bfa87 CElitePirate: Remove unnecessary reference qualifiers
Same behavior, but makes locations where copies occur much more
explicit.
2020-04-02 00:22:48 -04:00
Lioncash 6017e99aac CGrenadeLauncher: Remove stray reference qualifier on a copy operation
Same behavior, but more explicit about a copy needing to occur here.
2020-04-01 23:59:05 -04:00
Lioncash b95d84a570 CGrenadeLauncher: Resolve sign conversion warnings in constructor 2020-04-01 23:57:53 -04:00
Lioncash f10eb618bf CGrenadeLauncher: Remove reference qualifiers where unnecessary
While allowed by the standard, this obscures cases where actual copies
are occurring.
2020-04-01 23:56:07 -04:00
Lioncash e3775a8fca CRidley: qualify virtual function call in constructor
Signifies that we intentionally want to call this virtual function in
the constructor.
2020-04-01 23:09:11 -04:00
Lioncash 388e5f2e7f CRidley: Make use of std::make_unique where applicable 2020-04-01 23:08:08 -04:00
Luke Street 62e58553c5 CBouncyGrenade/CGrenadeLauncher: Explicit constructor fixes 2020-04-01 15:32:38 -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 0c1f4fa738 CElitePirate/etc: Use prefix increment/decrement 2020-04-01 15:01:44 -04:00
Luke Street bb7699be46 CElitePirate/CShockWave: Renaming 2020-04-01 14:54:01 -04:00
Luke Street 162b232979 CElitePirate: Fix melee & contact damage 2020-04-01 03:39:05 -04:00
Luke Street d4ff239f91 CShockWave: Implement Touch 2020-04-01 02:41:31 -04:00
Luke Street 6e5c32abfd CBouncyGrenade: Pass bounding box to CPhysicsActor 2020-04-01 01:38:48 -04:00
Luke Street deba91bfc0 CGrenadeLauncher: Fix rendering 2020-03-31 21:29:14 -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
Lioncash 1415265ef2 Runtime: Default destructors where applicable
Same behavior, but allows the destructors to be trivial, etc.
2020-03-31 04:50:26 -04:00
Lioncash 67f6666ea1 Runtime: Add more usages of explicit
Prevents error-prone implicit conversions where applicable.

This targets the regular RuntimeCommon target this time around.
2020-03-31 03:53:49 -04:00
Luke Street b43d4eaddc CElitePirate: Implement SpecialAttack, CShockWave 2020-03-31 03:29:00 -04:00
Luke Street f0927d937a CGrenadeLauncher: Remove redundant CColor 2020-03-30 23:39:41 -04:00
Luke Street 782a13c0a4 CGrenadeLauncher: Fix CModelFlags assignment 2020-03-30 23:31:46 -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
Luke Street ed254b460e Revert some clang-tidy changes 2020-03-30 19:42:11 -04:00
Luke Street 571050245d Add .clang-tidy and apply fixes 2020-03-30 19:31:14 -04:00
Luke Street bc1135f0cf CBouncyGrenade: Use explicit SMoverData constructor 2020-03-30 03:14:33 -04:00
Luke Street bc08792523 CBouncyGrenade implementation 2020-03-30 03:05:16 -04:00
Luke Street fbbd73db48 CGrenadeLauncher implementation 2020-03-29 23:45:55 -04:00
Lioncash 6dce70895c CIOWin: Make Draw() non-const
Allows removing several const_cast usages within the codebase.
2020-03-29 21:56:49 -04:00
Luke Street 4ada5a00cb CElitePirate: Nearly complete implementation 2020-03-29 03:28:14 -04:00
Luke Street 4f7e0a85a3 CElitePirate: More function implementations 2020-03-27 02:47:34 -04:00
Lioncash e46a37e893 MP1: Make use of std::array where applicable
Same behavior, stronger typing, and allows eliminating hardcoded sizes
in some places.
2020-03-27 01:07:29 -04:00
Lioncash a77b9cb609 MP1: Join namespaces
Same behavior, less code.
2020-03-27 01:02:35 -04:00
Luke Street 108fd502bf CElitePirate/CFlyingPirate: Updates from symbol map 2020-03-26 21:42:18 -04:00
Luke Street 0886a39d81 CElitePirate: DoUserAnimEvent; create CShockWave 2020-03-26 18:09:50 -04:00
Luke Street 6150548e91 CElitePirate: Finish implementing AcceptScriptMsg 2020-03-26 15:24:56 -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
Phillip Stephens 566c356612 Initial ElitePirate imps 2020-03-25 18:14:15 -04:00
Phillip Stephens e5df609673 CElitePirate: Initial stubbing 2020-03-25 18:14:15 -04:00
Luke Street c08b5a4c98 CFlyingPirate: Fix Aqua Pirates 2020-03-25 03:48:10 -04:00
Luke Street da648b18d8 CSpankWeed: Fix collision manager null deref 2020-03-25 03:47:56 -04:00
Luke Street 7ee2a3b912
Merge pull request #254 from AxioDL/flyingpirate
CFlyingPirate implementation
2020-03-25 03:01:10 -04:00
Luke Street 815d83d843 CFlyingPirateRagDoll: Fix particles & length constraints 2020-03-25 02:57:57 -04:00
Lioncash 51c1ffecd6 CActorContraption: Add names to parameters in prototypes
Makes it more self-documenting from the interface alone.
2020-03-25 02:46:22 -04:00
Lioncash 0cc8e76d64 CActorContraption: Make use of structured bindings where applicable
Same behavior, but with better names than `first` or `second`.
2020-03-20 23:13:29 -04:00
Luke Street 6d757f021f CFlyingPirateRagDoll: Implement Update 2020-03-18 04:50:41 -04:00
Luke Street 851304ded9 CFlyingPirate: Finish Think implementation 2020-03-18 02:53:53 -04:00
Phillip Stephens eb9efbf8c3
Initial PATH support for MP2 2020-03-17 23:12:43 -07:00
Luke Street 642bf379ce CFlyingPirate: Add CPathFindSearch flags 2020-03-18 01:39:32 -04:00
Luke Street 6f89dbb240 CFlyingPirate: More small fixes 2020-03-18 01:20:24 -04:00
Luke Street 932615593e CFlyingPirateRagDoll: Implement PreRender, Prime 2020-03-18 01:20:24 -04:00
Luke Street 57386e6269 CFlyingPirate: Small fixes 2020-03-18 01:19:23 -04:00
Luke Street 8897d38c6a CFlyingPirate: Fix Lurk state delay 2020-03-18 01:19:23 -04:00
Luke Street 651e28e921 CFlyingPirate: Fix TargetPatrol 2020-03-18 01:19:23 -04:00
Luke Street 26ae8beb74 CFlyingPirate: Small fixes 2020-03-18 01:19:23 -04:00
Luke Street 1bcd0916ca CFlyingPirate: Fixes; implement all functions 2020-03-18 01:18:48 -04:00
Luke Street 13d8c3fdd1 CFlyingPirate: First draft almost done 2020-03-18 01:18:48 -04:00
Luke Street 11ea9d3aa6 CFlyingPirate: More method implementations 2020-03-18 01:18:48 -04:00
Luke Street d4982270e8 CFlyingPirate: Start implementing methods 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 e925dc2628 CFlyingPirate: Start implementation 2020-03-18 01:18:48 -04:00
Lioncash b52e8dc6aa CMainFlow: std::move shared_ptr in SetGameState
Same behavior, but without a redundant atomic reference count
increment/decrement.
2020-03-17 19:15:09 -04:00
Luke Street dc77fb0c41
Merge pull request #234 from lioncash/puddle
CPuddleSpore: Make static const class data internally linked
2020-03-16 19:11:04 -04:00
Lioncash ff8e4c18a1 CPuffer: Make use of std::array where applicable
Allows direct size querying, which allows removing the use of direct
hardcoded array sizes.
2020-03-16 16:37:40 -04:00
Lioncash 2ae02eefb0 CPuddleSpore: Make static const class data internally linked
Makes the data an implementation detail and also allows for the
string_view array to be declared constexpr.
2020-03-16 16:26:19 -04:00
Luke Street 2f7e2dd85e
Merge pull request #231 from lioncash/blur
CPauseScreenBlur: Remove const_cast in Draw()
2020-03-16 16:14:03 -04:00
Luke Street 6ea64becb4
Merge pull request #230 from lioncash/pause2
CPauseScreenBase: Minor cleanup
2020-03-16 16:13:42 -04:00
Lioncash b9be092635 CPauseScreenBlur: Remove const_cast in Draw()
Draw() clearly modifies the internals of the class in a non-caching
manner, so this member function should really not have a const qualifier
on it.
2020-03-16 16:00:12 -04:00
Phillip Stephens 574fc9b840
CJellyZap fixes 2020-03-15 19:00:52 -07:00
Lioncash 1a7ad1a7f6 CPauseScreenBase: Make use of std::array in GetImagePaneName()
We can make use of std::array here and also make the array constexpr.
This can also be moved into the function in order to hide its scope.
2020-03-15 21:26:59 -04:00
Lioncash 6e921e3258 CPauseScreenBase: Mark colors as constexpr within UpdateSideTable()
Same behavior, but allows eliding construction at runtime.
2020-03-15 21:26:47 -04:00
Phillip Stephens df4487bae8
Merge pull request #215 from lioncash/none
CFrontEndUI: Default initialize SFrontEndFrame's x4_action to EAction::None
2020-03-12 15:11:11 -07:00
Phillip Stephens 3a37be9d27
Minor CFlaahgra fixes 2020-03-12 15:06:01 -07:00
Lioncash 90e866d2d5 CFrontEndUI: Default initialize SFrontEndFrame's x4_action to EAction::None
This is the initial value that GM8E v0 assigns to this member variable.
Previously it was being left uninitialized on construction.
2020-03-12 17:35:36 -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
Luke Street 860f7c7f33 CChozoGhost: Minor fixes & renaming 2020-03-11 02:16:55 -04:00
Luke Street 123ddfd33a CChozoGhost: InPosition -> ShouldAttack 2020-03-11 00:22:03 -04:00
Luke Street 155cd3759f CChozoGhost: Minor FindBestAnchor fixes 2020-03-10 23:47:14 -04:00
Luke Street 5c9dd55b80 CChozoGhost: Fix IsOnGround 2020-03-09 10:41:34 -04:00
Luke Street 830db8772d Merge remote-tracking branch 'origin/master' into chozoghosts 2020-03-09 10:12:40 -04:00
Lioncash 2a1df559a9 CLogBookScreen: Remove unconditional return true in IsScanComplete()
This was temporarily added in for debugging purposes in the past but was
never removed.
2020-03-08 11:15:13 -04:00
Phillip Stephens 052aa80bac
Fix initial AI issues 2020-03-06 18:03:13 -08:00
Phillip Stephens 76e0a1f8f5
Merge pull request #192 from lioncash/init
CEyeball: Eliminate unnecessary runtime initializer in Think()
2020-03-06 16:15:15 -08:00
Phillip Stephens b44e43c7c0
Merge pull request #187 from lioncash/make
CThardus: Minor tidying changes
2020-03-06 16:13:42 -08:00
Phillip Stephens ab65fae969
Merge pull request #186 from lioncash/array
CInGameGuiManager: Make use of std::array where applicable
2020-03-06 16:13:33 -08:00
Phillip Stephens 96af6157bd
Merge pull request #183 from lioncash/move
CThardus: std::move vector instances in constructor
2020-03-06 16:12:53 -08:00
Phillip Stephens 1cccaac115
Final CChozoGhost imps 2020-03-06 07:16:55 -08:00
Lioncash 00ff91eece CEyeball: Remove unnecessary .get() call
Dereferencing is already supported on smart pointers, so we don't need
to call .get() here.
2020-03-06 07:30:27 -05:00
Lioncash c3809162bf CEyeball: Eliminate unnecessary runtime initialzer in Think()
We can just fold the result into the constant directly, which allows us
to avoid the need for a static runtime initializer. This is bit-exact
with what the result would be, so this is fine.
2020-03-06 07:30:05 -05:00
Lioncash 3717480eeb CThardus: Make use of std::array where applicable
Dehardcodes some sizes and gets rid of two instances of implicit sign
conversions.
2020-03-05 23:22:30 -05:00
Lioncash 3b6218fa67 CThardus: Make use of std::make_unique where applicable
Same thing, but more straightforward.
2020-03-05 23:15:24 -05:00
Lioncash 84fde9ceca CInGameGuiManager: Make use of std::array where applicable
Allows us to eliminate some hardcoded array sizes.
2020-03-05 22:02:29 -05: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
Lioncash 50f8f3e17e CInGameGuiManager: Take std::shared_ptr by const reference in DoStateTransition()
Trivially avoids an atomic reference count increment and decrement.
2020-03-05 20:47:07 -05:00
Phillip Stephens e43bfe1e58
More CChozoGhost imps 2020-03-05 07:42:12 -08:00
Phillip Stephens 58cca6ffa8
More chozoghost imps 2020-03-05 01:56:04 -08:00
Phillip Stephens 50a20d7322
More CChozoGhost imps 2020-03-04 18:41:11 -08:00
Phillip Stephens 9d77d7313c
More ChozoGhost imps 2020-03-04 18:41:10 -08:00
Phillip Stephens d91e86a94a
Initial CChozoGhost stubs 2020-03-04 18:41:10 -08:00
Lioncash f0c3903951 CSpacePirate: Make use of std::array with constexpr data
Makes data strongly typed, making pointer decay explicit.
2020-03-04 04:44:54 -05:00
Lioncash 4b3d48ebc1 CSpacePirate: Make static const data internally linked
Makes the symbols fully internally linked and also allows marking them
constexpr.
2020-03-04 04:33:11 -05:00
Phillip Stephens 09f7096913
Disable variable delta time 2020-03-03 16:50:25 -08:00
Phillip Stephens 80dbc1920c
Update submodules 2020-03-03 16:49:13 -08:00
Luke Street 9e0e053906 CScriptSpecialFunction: Further ThinkSpinnerController implementation 2020-03-03 03:31:58 -05:00
Phillip Stephens 9f5f0abab4
More CThardus imps, add reference CTevPass imps 2020-02-29 17:11:41 -08:00
Luke S 617844efce
Merge pull request #175 from lioncash/fixme
CFlaahgraTentacle: Remove FIXME comment in ShouldAttack()
2020-02-29 16:56:50 -05:00
Lioncash 5e705515ed CFlaahgraTentacle: Remove FIXME comment in ShouldAttack()
GM8E v0 does exactly this, so we can consider this double-checked
2020-02-29 06:18:30 -05:00
Lioncash 9434be8562 CFlaahgraTentacle: Amend floating point value within Play case in AcceptScriptMsg()
GM8E v0 sets this to 0.04f.
2020-02-29 05:54:38 -05: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
Luke Street ae591d4817 Add MP1_VARIABLE_DELTA_TIME option (for high refresh rates; buggy) 2020-02-25 14:15:53 -05:00
Lioncash c3294977ff CJellyZap: Make kPlayerFilter constexpr
This can be trivially made constexpr. We can also make this a fully
internally linked identifier.
2020-02-24 20:12:58 -05:00
Luke S c8291ee3dc
Merge pull request #154 from lioncash/constexpr
CSamusDoll: Minor changes
2020-02-24 03:00:11 -05:00
Lioncash 7e2ef9c8ea CSamusDoll: Eliminate variable shadowing in Draw() 2020-02-24 01:50:44 -05:00
Lioncash 9042dddc8c CSamusDoll: Make use of std::array where applicable
Makes the data strongly typed and also allows tooling runtime checks for
debug builds if implementations support it (which MSVC, libstdc++ and
libc++ all support).
2020-02-24 01:48:13 -05:00
Lioncash 61dff4367d CSamusDoll: Make use of an anonymous namespace
Makes a separate area for internally linked data.
2020-02-24 01:39:23 -05:00
Lioncash 08ebecdaaf CSamusDoll: Mark skInitialOffset as constexpr
Allows the vector to be initialized at compile-time.
2020-02-24 01:34:59 -05:00
Phillip Stephens f251c73e6a
Merge branch 'pr-151' 2020-02-13 14:17:40 -08:00
Lioncash da4dde2437 CAtomicBeta: Correct division arithmetic error in Think()
This is supposed to be a multiplication, not a division (at least this
is what v0-00 does).
2020-02-12 04:57:07 -05:00
Phillip Stephens 0bdad38175
Merge branch 'pr-150' 2020-02-11 20:05:07 -08:00
Lioncash 88f445c94d CParasite: Make static CMaterialList instances constexpr where applicable
Same behavior, but allows the data to be stored within the read-only
segment.
2020-02-11 09:33:58 -05:00
Lioncash 1edcbf7ec6 CMetaree: Set locomotion type to crouched if deactivated in InActive()
v0-00 sets this locomotion type when the deactivation flag is set.
2020-02-07 19:32:51 -05:00
Phillip Stephens 61f9adfa70
Merge branch 'pr-148' 2020-02-07 14:25:31 -08:00
Phillip Stephens 6501d56baa
Merge branch 'pr-147' 2020-02-07 14:24:21 -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
Lioncash d4245b016f CPuddleToadGamma: Migrate static constants into the cpp file
Makes the data fully internally-linked. This also allows declaring
skBellyOffset as constexpr.

While we're at it, we can also make the solid filter constexpr as well,
given it isn't modified anywhere. This allows the data to be placed
within the read-only segment and potentially gets rid of a runtime
static constructor.
2020-02-07 15:55:23 -05:00
Lioncash 0dd7e3e7bf CFlickerBat: Add missing SetMuted() call within Death()
v0-00 contains a call to SetMuted(false) in game code.
2020-02-07 09:38:56 -05:00
Phillip Stephens 330a1bff76
Merge pull request #145 from lioncash/blood-collision
CBloodFlower: Implement GetCollisionResponseType
2020-02-03 14:45:21 -08:00
Phillip Stephens 67e4c2e135
Merge pull request #144 from lioncash/blood-const
CBloodFlower: Mark sFireEffects as constexpr
2020-02-03 14:45:02 -08:00
Lioncash d1a714cf1a CBloodFlower: Implement GetCollisionResponseType
CBloodFlower seems to be missing the implementation from v0-00. This
change adds in its equivalent behavior.
2020-02-03 10:42:26 -05:00
Lioncash 855841607b CBloodFlower: Mark sFireEffects as constexpr
Allows the strings to be put into the read-only section of the binary
(and makes it explicit that the strings aren't modified).

While we're at it we can make use of std::array.
2020-02-03 10:14:19 -05:00
Lioncash f675bc3857 CWarWasp: Amend damping radius value within ApplyNormalSteering()
GM8E v0-00 uses 2.5 for the second Arrival() damping radius value, not 3.0.
2020-02-01 16:37:23 -05:00
Phillip Stephens 8d90edd55f
Initial CChozoGhost imp 2020-01-20 20:00:40 -08:00
Luke Street 72e068419f Merge branch 'pr-126' 2020-01-17 19:57:50 -05:00
Lioncash 9ce652bfd6 CNewIntroBoss: Correct base class call to DoUserAnimEvent()
This function actually calls CPatterned's implementation of
DoUserAnimEvent(), not CActor's.
2020-01-15 15:32:18 -05:00
Lioncash 1cb289f243 RuntimeCommon: Normalize cpp inclusions
Normalizes the headers for the cpp files in the RuntimeCommon target.
Now all headers and source files within the RuntimeCommon/RuntimeCommonB
targets are normalized and consistent with one another.
2020-01-15 09:15:47 -05:00
Phillip Stephens 677687f228
Merge branch 'master' of ssh+git://git.axiodl.com/AxioDL/urde 2020-01-05 20:25:21 -08:00
Phillip Stephens 841996a872
More work on CThardus 2020-01-05 20:24:54 -08:00
Luke Street 67d0fa55df Fix shriekbat damage 2020-01-02 19:54:59 -05:00
Phillip Stephens 21159e604e
More CThardus 2019-12-14 15:50:29 -08:00
Phillip Stephens 1a13f7e4ee
Update submodules, initial CTextureCache 2019-12-10 20:51:33 -08:00
Phillip Stephens 697a100bca
Implement CScriptSpecialFunction::ThinkAreaDamage, and more CThardus 2019-11-24 07:32:45 -08:00
Phillip Stephens 655dc01a06
Add support for override paks 2019-11-21 07:37:08 -08:00
Phillip Stephens b23575f2aa
Stop GCC's whining 2019-11-19 15:15:45 -08:00
Phillip Stephens 8b6dff70b4
Properly cleanup Xorg in visigen, various fixes and cleanups in URDE, more CRidley imps 2019-11-19 15:06:25 -08:00
Phillip Stephens 4762c7b832
Finish Ridley's AI function implementations 2019-11-14 08:39:20 -08:00
Phillip Stephens e059f224d4
Fix behavior translation, still needs work 2019-11-13 10:44:43 -08:00
Phillip Stephens 8881376195
Some ridley fixes 2019-11-13 09:58:49 -08:00
Phillip Stephens a1c7692d36
More CRidley imps 2019-11-12 12:25:21 -08:00
Phillip Stephens 3b101267f8
Merge pull request #88 from lioncash/radar
Graphics/Shaders: Minor changes
2019-11-10 08:03:42 -08:00
Lioncash 902f4fb5c5 Graphics/Shaders: Use forward declarations where applicable
Now, with all of the headers normalized, we can safely convert some
headers into forward declarations without needing to worry about
potentially breaking code in other headers or source files.
2019-11-09 20:22:09 -05:00
Phillip Stephens 6c1f682e0f
Initial CRidley implementation 2019-11-09 15:48:46 -08:00
Phillip Stephens 77b61b0e68
Fix saves sending you to incorrect rooms, fix triggers 2019-11-05 09:18:14 -08:00
Phillip Stephens 1a5179feb2
Fix CSpacePirate activating too early 2019-11-05 02:22:14 -08:00
Phillip Stephens e5c8592d5a
Merge pull request #118 from lioncash/seg
CSegId: Minor changes
2019-10-26 19:51:08 -07:00
Lioncash 660d092cad CSegId: Add member functions for querying validity
Allows querying validity of segment IDs without hardcoding the magic
value that signifies an invalid ID.
2019-10-26 22:43:11 -04:00
Lioncash c4ad797953 CArtifactDoll: Collapse loop into std::all_of
Same thing, but directly stores to a variable.
2019-10-26 14:57:21 -04:00
Lioncash 7a8edc8d5e CArtifactDoll: Make use of std::array where applicable 2019-10-26 14:57:21 -04:00
Lioncash 26b24d604a CArtifactDoll: Make use of an anonymous namespace
Provides a unified section to place internally linked data.
2019-10-26 14:57:21 -04:00
Lioncash bea9c5bb74 CArtifactDoll: Organize cpp includes 2019-10-26 14:57:17 -04:00
Lioncash 3a0daa3ab9 CLogBookScreen: Use forward declarations where applicable
Allows for avoiding the over exposing of types through the header when
included in other translation units or headers.
2019-10-15 10:25:43 -04:00
Lioncash 5b8f3f6693 CLogBookScreen: Organize cpp includes
Tidies them up to be consistent with its header.
2019-10-15 10:13:30 -04:00
Lioncash 4db0e49851 CLogBookScreen: Invert conditional within UpdateBodyText()
Allows unindenting the contained code by one level.
2019-10-15 10:05:53 -04:00
Lioncash b93f7a4ceb CLogBookScreen: Use std::u16string's append() member instead of operator+
Appends to the existing buffer instead of constructing a superfluous
temporary.
2019-10-15 10:03:54 -04:00
Lioncash d64824d3e5 CLogBookScreen: Make use of std::any_of within IsScanCategoryReady()
Same thing but collapses into a single return.
2019-10-15 10:00:15 -04:00
Lioncash 251a2a7723 CLogBookScreen: Make use of structured bindings where applicable
Allows decomposing long pair names into their constituent elements
2019-10-15 09:57:24 -04:00
Lioncash f21ee0786a CLogBookScreen: Make signed/unsigned/FP conversions explicit
Silences warnings relating to signed/unsigned comparisons and
conversions to floating-point types.
2019-10-15 09:36:10 -04:00
Lioncash 3951a07bfa CLogBookScreen: Dehardcode constants where applicable
We can just query the containers for the iteration value
2019-10-15 09:16:13 -04:00
Lioncash 4b78d51a85 CLogBookScreen: Use emplace_back where applicable
Allows simplifying code and constructing elements in place instead of
copying them (which is what would occur with the defautl move
constructor).
2019-10-15 07:22:01 -04:00
Phillip Stephens 5f0f3ea45c
More tweak CVars 2019-10-05 07:07:13 -07:00
Lioncash 67cd0d44c6 CAtomicBeta: Make skBombLocators an internal array
Like with CAtomicAlpha, we can also fully hide this array from external
view by making it internally linked.
2019-10-03 01:34:45 -04:00
Lioncash abe8b9510b CAtomicBeta: Organize cpp includes 2019-10-03 01:30:04 -04:00
Lioncash e0e38b569e CAtomicAlpha: Remove .data() call in SBomb constructor
We can just use the std::string_view constructor for std::string, which
eliminates an unnecessary strlen call.
2019-10-03 01:26:50 -04:00
Lioncash 18eb2b73b1 CAtomicAlpha: Use emplace_back where applicable
Simplifies the construction of the SBomb instances, while also
constructing in place.
2019-10-03 01:26:50 -04:00
Lioncash c882003d37 CAtomicAlpha: Make skBombLocators an internal array
This is only used within the cpp file, so we can relocate its definition
there to make it fully internally-linked.
2019-10-03 01:26:50 -04:00
Lioncash ee791d6a37 CAtomicAlpha: Organize cpp includes 2019-10-03 01:26:42 -04:00
Phillip Stephens 7d2ad7b1b2
Merge pull request #93 from lioncash/loop
CSlideShow: Use ranged for loops in constructor
2019-10-01 06:43:56 -07:00
Phillip Stephens d2e9495686
Merge pull request #96 from lioncash/array2
CFinalInput, ControlMapper: Use std::array where applicable
2019-10-01 06:43:23 -07:00
Jack Andersen e1d46755a3 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2019-09-30 21:41:42 -10:00
Jack Andersen 16ca0d24c2 Explicit Asset ID refactor 2019-09-30 21:38:03 -10:00
Lioncash dc565969e6 CFinalInput: Use std::array where applicable
Allows simplifying copies and gets rid of hardcoded size values.
2019-10-01 01:59:56 -04:00
Lioncash 2eb5e7c446 CSlideShow: Use emplace_back where applicable
Same behavior, but constructs in place instead of potentially copying.
2019-09-30 18:07:34 -04:00
Lioncash b7e0dbd354 CSlideShow: Use ranged for loops in constructor
Same behavior, but without hard-coded magic size values.
2019-09-30 18:06:33 -04:00
Lioncash 6ad5de497f CSeedling: Make skNeedleLocators an array of std::string_view
Makes the strings non-allocating. This also eliminates 12 runtime static
constructors that need to execute on program start.
2019-09-28 20:22:31 -04:00
Lioncash 3f743d5c9f CSeedling: Use std::array with skNeedleLocators
Makes the array strongly-typed and impervious to implicit array to
pointer decay.
2019-09-28 20:21:24 -04:00
Lioncash 2a34b6be68 CSeedling: Move skNeedleLocators into the cpp file
This can be entirely hidden from external view, making it an
implementation detail.
2019-09-28 20:15:39 -04:00
Lioncash 08d4addc70 CSeedling: Organize source file includes
Tidies it up a little.
2019-09-28 20:08:45 -04:00
Lioncash a633b8e8fd General: Normalize RuntimeCommon include paths
Performs the same normalizing done to the RuntimeCommonB target, now all
of the runtime headers have normalized include paths.
2019-09-28 04:14:29 -04:00
Lioncash 027c10464f CMemoryCardDriver: Correct erroneous fallthrough within HandleCardError()
In the game executable itself, there exists no fallthrough here (which
makes sense, given all IO errors would be reported as character set
errors, otherwise).
2019-09-24 16:36:43 -04:00
Phillip Stephens 68e2fad74f
Fix TCastTo.hpp inclusions, add comment to warn against modifying include path 2019-09-21 06:07:13 -07:00
Lioncash 96f035f24b CMorphBall: Use std::array where applicable
Makes the arrays strongly-typed and impervious to implicit
array->pointer decay.

This also uncovered an out of bounds memory read within UpdateEffects
cause by said array->pointer decay.
2019-09-16 21:11:30 -04:00
Lioncash 86218421f5 CFrontEndUI: Use std::array where applicable
Makes the array types strongly-typed and also allows us to eliminate a
few magic values within the code.
2019-09-14 16:26:29 -04:00
Lioncash b6ea391755 CFrontEndUI: Enclose file-local data within an anonymous namespace
Gets rid of the need to write static, and also makes it impossible to
violate the ODR for any declared types within the namespace (e.g.
FEMovie).
2019-09-14 15:45:17 -04:00
Lioncash 2a10e547d2 CFrontEndUI: Sort includes
Tidies up the includes for the translation unit and alphabetizes them
for easier reading.
2019-09-14 15:42:12 -04:00
Lioncash f9079f0215 Runtime: Make use of std::make_unique where applicable
Makes use of the C++14 make_unique allocation function to allocate class
instances where applicable instead of a reset with a new operator within
it.

This doesn't touch cases where buffers are allocated, given make_unique
would zero-initialize them.
2019-09-12 04:09:48 -04:00
Lioncash 9983366a53 RumbleFxTable: Use std::array for the lookup table
Strongly enforces the type of the array and also allows size querying,
etc, directly from the type.
2019-09-10 19:13:34 -04:00
Lioncash d25f4fa9a3 MP1/CFlaahgraTentacle: Amend sphere collision list appending
This was always using the first element in the array to append t the
output joint list, resulting in incorrect names and radius values.
2019-09-06 09:43:32 -04:00
Lioncash 5aafd3935b CGBASupport: Amend code to compile with jbus changes 2019-09-04 01:56:08 -04:00
Phillip Stephens 256994c199
Initial CEnergyBall, update submodules, various fixes 2019-08-31 02:02:21 -07:00
Phillip Stephens 9866bac443 Update jbus, initial CEnergyBall stub 2019-08-23 01:32:48 -07:00
Phillip Stephens e855cbd902 Update hecl, fix CFlickerBat's targetable state being inverted 2019-08-20 06:58:13 -07:00
Lioncash afab3e0327 Runtime: Make const/non-const getters have the same name
Makes for a more consistent interface, as getters won't have different
names to remember based off whether or not they're const qualified.
2019-08-14 12:45:57 -04:00
Phillip Stephens 2ace76e3d2
Merge pull request #41 from lioncash/const
RuntimeCommon: Use const on member functions where applicable
2019-08-14 06:36:27 -07:00
Phillip Stephens 64489c7461
Merge pull request #39 from lioncash/bind
MP1: Migrate from std::bind to lambdas
2019-08-14 06:36:06 -07:00
Lioncash d3d629d405 RuntimeCommon: Use const on member functions where applicable
Adds missing const qualifiers on class member functions that don't
modify instance state.
2019-08-14 09:25:39 -04:00
Lioncash 8b7945e76f MP1: Migrate from std::bind to lambdas
Provides a more straightforward means of supplying custom behavior in
place. Lambdas also typically optimize better compared to std::bind
objects.
2019-08-14 04:55:21 -04:00
Lioncash acb9ac92e7 Runtime/CGameOptions: Use std::array where applicable
Makes the data a little more strongly typed; preventing implicit
array->pointer decay. It also allows simplifying assignments within the
CGameState code.

While we're at it, we can also eliminate several instances of magic
numbers related to the array sizes throughout the code.
2019-08-14 03:24:00 -04:00
Phillip Stephens 7eb3bce499 Update submodules, more CMetroidBeta imps 2019-08-13 14:41:15 -07:00
Phillip Stephens ebdcfb6b51 Initial CMetroidBeta imps 2019-08-11 08:14:52 -07:00
Phillip Stephens a572100176 Add CRipper files 2019-08-10 20:02:54 -07:00
Phillip Stephens ad5e395a51 Fixes for `override` modernization 2019-08-10 17:49:41 -07:00
Phillip Stephens 1e625e0995 Fix missed `override` declarations 2019-08-09 15:07:52 -07:00
Lioncash 9312eef905 RuntimeCommon: Use override where applicable
Continues the override modernization by applying it to the main
RuntimeCommon target. Resolves around 1100+ cases where override can be
used.
2019-08-09 17:39:42 -04:00
Phillip Stephens 2f65d6d3a2 Merge branch 'namespace' of https://github.com/lioncash/urde into lioncache-namespace 2019-08-08 20:33:05 -07:00
Lioncash fc906eec66 MP1/CMFGame: Remove erroneous forward declaration
This type is actually defined within the urde::MP1 namespace, not the
top-level urde namespace.

We remove the namespace itself however, given the header for that type
is already being included.
2019-08-08 23:10:00 -04:00
Phillip Stephens ff83dbc676 Minor fixes and cleanup 2019-08-03 17:02:53 -07:00
Jack Andersen 5acf9ecbcf Graphics debug groups and bug fixes 2019-07-20 22:42:52 -10:00
Jack Andersen b4fe474de3 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2019-07-19 18:29:06 -10:00
Jack Andersen 7a3da1f7a6 Massive fmtlib refactor 2019-07-19 18:27:21 -10:00
Phillip Stephens 1a9ca77603 Update ScriptObject DNAs to match known values 2019-07-19 01:30:11 -07:00
Phillip Stephens e552030d40 Fix approach PathFind call 2019-07-16 15:33:18 -07:00
Phillip Stephens 18d6372c28 Finish CTryclops patterned functions 2019-07-16 15:28:14 -07:00
Phillip Stephens 328749d1ba More CFlaahgra imps, initial CTryclops imps 2019-07-16 08:54:07 -07:00
Jack Andersen e38a3ece89 More CBabygoth fixes 2019-07-06 22:22:35 -10:00
Jack Andersen fd0bfc3acf Minor flamethrower and babygoth fixes 2019-06-30 20:14:42 -10:00
Jack Andersen 003146f614 Work on CBabygoth 2019-06-29 21:29:49 -10:00
Phillip Stephens 44cae7bdb9 More CFlaahgra imps 2019-06-26 18:06:03 -07:00
Jack Andersen a1745cff96 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2019-06-20 20:03:26 -10:00
Jack Andersen 77af3f0ebd CPuddleToadGamma and animation system fixes 2019-06-20 20:02:56 -10:00
Phillip Stephens eb43e9bdee Silly compile fixes 2019-06-20 14:27:50 -07:00
Phillip Stephens a67ea52617 More CFlaahgraImps 2019-06-20 14:22:06 -07:00
Phillip Stephens 6df0fcde50 Minor CElementGen cleanup, implement CFlaahgraPlants 2019-06-20 14:17:03 -07:00
Phillip Stephens 8c35cd02f0 More CFlaahgra imps 2019-06-19 14:11:13 -07:00
Phillip Stephens 568e15a89a More Flaahgra imps 2019-06-18 18:55:38 -07:00
Phillip Stephens 6ae550e9d6 More CFlaahgra imps 2019-06-17 18:39:56 -07:00
Jack Andersen 9ccc4227cb Initial support for asynchronous shader compilation 2019-06-15 20:25:29 -10:00
Jack Andersen 8266f52cc2 rstl::optional is no more 2019-06-11 16:14:39 -10:00
Jack Andersen 0e8e3e906c Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2019-06-11 16:05:44 -10:00
Jack Andersen e218b8aeb5 CActorContraption fixes, better CMake dependency handling 2019-06-11 16:05:17 -10:00
Phillip Stephens b7b65b04a4 Initial Flaahgra implementations 2019-06-10 01:28:33 -07:00
Phillip Stephens 0322b5b234 CFlaahgraTentacle doesn't actually create a shadow 2019-06-09 17:13:19 -07:00
Phillip Stephens b251bc541f CFlaahgraTentacle implementations (needs testing) 2019-06-09 17:09:07 -07:00
Jack Andersen 77d0ef942d Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2019-06-05 14:08:24 -10:00
Jack Andersen b7aa3e06d2 Per-stage shader hashing 2019-06-05 14:07:50 -10:00
Jack Andersen 410d7896f7 Support for rendering dynamic cubemaps 2019-05-31 17:41:01 -10:00
Phillip Stephens b18576cf58 Initial CMagdolite imps 2019-05-14 15:30:15 -07:00
Phillip Stephens 28071851ad Initial CFlameThrower imps 2019-04-16 01:00:46 -07:00
Jack Andersen 3a0d2930fa Numerous uninitialized memory fixes 2019-04-06 19:14:48 -10:00
Jack Andersen b72cc490e8 Implement CFishCloud 2019-04-02 18:32:31 -10:00
Phillip Stephens 799ff4a64b Finalize CBloodFlower imps 2019-03-23 22:45:47 -07:00
Phillip Stephens 27643313f9 Implement CBloodFlower and more CBabygoth imps 2019-03-22 17:36:10 -07:00
Jack Andersen 99b1a8ef49 Lots of bug fixes 2019-03-12 17:46:20 -10:00
Jack Andersen 52b36795ac Proper handling for persistently resident resources 2019-03-09 23:37:36 -10:00
Jack Andersen 2f963b9ce3 Various bug fixes 2019-03-08 22:58:27 -10:00
Jack Andersen 67b9882dbe Thermal visor fixes 2019-02-24 22:14:59 -10:00
Jack Andersen 8df0a4913c zeus constexpr refactor and thermal visor fixes 2019-02-23 21:15:54 -10:00