Commit Graph

213 Commits

Author SHA1 Message Date
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 28853f5ea6
Merge branch 'constexpr5' of https://github.com/lioncash/urde into lioncash-constexpr5 2020-04-05 05:10:42 -07:00
Lioncash b122fd30a8 CGameProjectile: Return std::nullopt in GetTouchBounds()
Same behavior, but doesn't potentially unnecessary zero out the entirety
of the buffer within the optional and only sets a single byte.
2020-04-03 02:07:54 -04:00
Lioncash d47f8c2784 CGameProjectile: Make use of TCastToConstPtr before
Same behavior, but more indiciative of read-only semantics.
2020-04-03 01:58:00 -04:00
Lioncash d240e40a17 CCameraShakeData: Make classes and structs constexpr where applicable
Same behavior, but allows eliminating file-scope initializers needing to
be run on program start.
2020-04-02 21:40:19 -04:00
Lioncash f1e28a1290 CPlasmaBeam: Make use of std::array where applicable
Same behavior, no implicit array to pointer decay.
2020-04-02 21:10:51 -04:00
Lioncash a8594d144b CPlasmaProjectile: Make use of std::array where applicable
Allows dehardcoding array sizes.
2020-04-02 20:55:28 -04:00
Luke Street 1e15e0d1f3 Merge remote-tracking branch 'origin/master' into elitepirate
# Conflicts:
#	Runtime/World/CPatterned.hpp
2020-04-01 15:02:56 -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 2e3d1c980b CElitePirate: Implement AttractProjectiles; fix CGameProjectile material list 2020-03-30 23:10:51 -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 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
Lioncash 98b9556f3e CProjectileWeapon: Return std::nullopt instead of {} where applicable
Prevents some implementations from zeroing out their internal buffer
unnecessarily (libstdc++ and libc++).
2020-03-25 16:03:09 -04:00
Lioncash 6365f2ee1c CPowerBomb: Return std::nullopt in GetTouchBounds()
Avoids unnecessary zeroing of the internal buffer of std::optional in
some implementations (libstdc++ and libc++).
2020-03-25 15:56:59 -04:00
Luke Street 7ee2a3b912
Merge pull request #254 from AxioDL/flyingpirate
CFlyingPirate implementation
2020-03-25 03:01:10 -04:00
Phillip Stephens dbbf9e33fd
Merge pull request #262 from lioncash/nullopt
CBeamProjectile: Explicitly return std::nullopt in GetTouchBounds()
2020-03-23 23:27:54 -07:00
Lioncash bf590dd855 CBeamProjectile: Explicitly return std::nullopt in GetTouchBounds()
Allows some implementations to completely avoid zeroing out the internal
buffer within the std::optional instance.
2020-03-21 01:46:59 -04:00
Lioncash 5b7e440ff7 CBomb: Make file-scope material filter constexpr
Allows the data to be placed into the read-only segment.
2020-03-21 01:42:46 -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
Lioncash fc466ff062 CFlameThrower: Resolve sign-conversion warnings in DoCollisionCheck()
Resolves trivial sign conversion warnings and also makes some variables
const where applicable.
2020-03-17 21:55:24 -04:00
Lioncash 258409bc7d CGrappleArm: Remove const_cast within RenderXRayModel()
Same behavior, but without a cast.
2020-03-16 19:53:04 -04:00
Lioncash 9063b16d36 CGrappleArm: Convert reinterpret_cast to static_cast in PointGenerator()
It's permissible to use static_cast when converting from void* to
another type.
2020-03-16 19:16:46 -04:00
Lioncash 0cbfc6d169 CGrappleArm: Move skDependencyNames into BuildSuitDependencyList()
Same behavior, but narrows the visible scope of the array.
2020-03-16 19:12:55 -04:00
Lioncash d0d6210ccd CGrappleArm: Resolve sign mismatch warnings in loops 2020-03-16 19:11:16 -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 eb38d96d9a
Merge pull request #214 from lioncash/virtual
CGunWeapon: Make destructor virtual
2020-03-12 15:11:02 -07:00
Phillip Stephens 7601888e34
Merge pull request #212 from lioncash/power-color
CPowerBomb: Make kFadeColor internally linked
2020-03-12 15:10:40 -07:00
Phillip Stephens ce5ce35743
Merge pull request #210 from lioncash/bob
CPlayerCameraBob: Minor cleanup
2020-03-12 15:10:19 -07:00
Phillip Stephens 2a2b471671
Merge pull request #209 from lioncash/cast
CPlayerGun: Minor cleanup
2020-03-12 15:10:07 -07:00
Phillip Stephens ac46b898bc
Merge pull request #208 from lioncash/wave
CWaveBuster: Implement GetTouchBounds()
2020-03-12 15:09:57 -07:00
Phillip Stephens 196a545f9a
Merge pull request #207 from lioncash/get
CElectricBeamProjectile: Remove unnecessary get() calls in PreRender()
2020-03-12 15:09:47 -07:00
Lioncash 2c091ac124 CGunWeapon: Make destructor virtual
This class is used as polymorphic type, so the destructor should be
marked as virtual to prevent any potential undefined behavior.

This also more closely matches the GM8E v0 binary itself.
2020-03-12 17:20:45 -04:00
Lioncash ee952b9c99 CPowerBomb: Make kFadeColor internally linked
Hides the name from external view entirely and allows the color instance
to be constexpr.
2020-03-12 10:13:37 -04: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 73f11a6132 CPlayerGun: Make use of std::array where applicable 2020-03-09 16:33:10 -04:00
Lioncash 1838e43078 CPlayerGun: Relocate file-static variables and constants into a single anonymous namespace
Keeps all file-static variables organized together.
2020-03-09 16:15:55 -04:00
Lioncash 3abaccb238 CPlayerGun: Resolve trivial implicit sign conversion warnings 2020-03-09 16:04:13 -04:00
Lioncash 9e5dc627ea CWaveBuster: Implement GetTouchBounds()
Implements GetTouchBounds() according to the implementation within the
GM8E v0 binary.

Fills out the implementation of CWaveBuster a little bit.
2020-03-09 14:51:04 -04:00
Lioncash 06dfc3406e CElectricBeamProjectile: Remove unnecessary get() calls in PreRender()
Same behavior, less code.
2020-03-09 13:55:26 -04:00
Luke Street 830db8772d Merge remote-tracking branch 'origin/master' into chozoghosts 2020-03-09 10:12:40 -04:00
Phillip Stephens 3011a839eb
Merge pull request #194 from lioncash/init
CProjectileInfo: Initialize result variable to false within PredictInterceptPos
2020-03-08 18:02:41 -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 27fb2008dc CProjectileInfo: Initialize result variable to false within PredictInterceptPos()
GM8E v0 sets this to false before performing any further calculations.
This also prevents accidental uninitialized usages from occurring if
this is ever changed in the future.

While we're in the same area we can make bracing consistent.
2020-03-06 21:57:39 -05:00
Phillip Stephens 1cccaac115
Final CChozoGhost imps 2020-03-06 07:16:55 -08:00
Lioncash 88cb5acdca CFlameThrower: Amend virtual interface discrepancies
GM8E v0 overrides Render(), GetTouchBounds() and Touch() and does
nothing within them. This updates the interface to match it.
2020-03-04 06:52:50 -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 S 08604d770a
Merge pull request #163 from lioncash/data
ITweakGunRes: Minor cleanup
2020-02-25 22:32:25 -05:00
Lioncash e80d9c7192 ITweakGunRes: Make use of std::array where applicable
Deduplicates a few array sizes and makes the member variables more
strongly typed.
2020-02-25 15:50:37 -05:00
Lioncash 450bcd019e CAuxWeapon: Replace always false condition with false in Fire()
Given we already check if chargeState is Normal previously, there's no
way that this can also be Charged at the same time.
2020-02-25 04:36:10 -05:00