Commit Graph

332 Commits

Author SHA1 Message Date
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
Lioncash 3d5ed90d1a CWeaponMode: Make constexpr capable
Given this is such a simple type, this can be made usable with
constexpr. This allows the type to be usable at file-scope without
potentially incurring a runtime constructor.
2020-01-23 23:12:18 -05:00
Lioncash 221cc5c6b8 RuntimeCommonB: Normalize cpp file includes
Like the prior changes normalizing the inclusions within headers, this
tackles the cpp files of the RuntimeCommonB target, making these source
files consistent with their headers.
2019-12-22 18:12:04 -05:00
Phillip Stephens 34e78a2dd0
Move CParticleGlobals from the executable and onto the heap, minor fixes, update wiki link 2019-12-03 00:47:05 -08:00
Phillip Stephens 697a100bca
Implement CScriptSpecialFunction::ThinkAreaDamage, and more CThardus 2019-11-24 07:32:45 -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
Lioncash 26a9ceab60 CGunWeapon: Eliminate const_cast usages in DrawMuzzleFx()
We can just make the temporary variable non-const to eliminate the need
for const_casts.
2019-10-19 01:11:19 -04:00
Lioncash 271ee6d8c3 CGunWeapon: Make use of algorithms where applicable
We can leverage these to also eliminate some hardcoded sizes.
2019-10-19 01:11:05 -04:00
Lioncash c228baf5f7 CGunWeapon: Make use of std::array where applicable
Makes the arrays strongly typed and also allows us to dehardcode some
loop boundary constants.
2019-10-19 01:07:01 -04:00
Lioncash c36e6a85b9 CGunWeapon: Organize cpp includes
Makes the source file consistent with the header.
2019-10-19 00:03:38 -04:00
Lioncash 36d04456dd General: Normalize RuntimeCommonB include paths
Finishes the normalizing of all of includes within the RuntimeCommonB target's headers.
2019-09-23 17:22:37 -04:00
Lioncash 06789d1860 General: Normalize several headers' include paths
Normalizes the include paths and makes them consistent. Also adds any
missing includes relevant to the interface.
2019-09-22 20:36:33 -04:00
Lioncash 8dcffbb67f CBurstFire: Use std::array where applicable
Makes the array type strongly typed and prevents implicit array to
pointer decay.
2019-09-22 09:48:07 -04:00
Lioncash adf9610138 CBurstFire: Tidy up includes
Includes all necessary headers and uses a forward declaration where
applicable. Ensures inclusion changes in other headers don't break the compilation
of these headers and source files.
2019-09-22 09:45:01 -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 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 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
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 09f917a9aa Runtime/Weapon/CGameProjectile: Fix misnamed virtual function
This has a vaguely equivalent name to FluidFXThink (which has an
uppercase X). Given this function isn't explicitly called anywhere
directly, this is assumed to be a typo.
2019-08-14 02:00:09 -04:00
Phillip Stephens ebdcfb6b51 Initial CMetroidBeta imps 2019-08-11 08:14:52 -07:00
Lioncash 2059535b55 RuntimeCommonB: Use the override specifier where applicable
Applies the override keyword where applicable to indicate visually where
member function overriding is occurring. This only targets
the RuntimeCommonB target as a starting point, which resolves around
900+ cases where the keyword could be used.
2019-08-09 09:13:26 -04: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 328749d1ba More CFlaahgra imps, initial CTryclops imps 2019-07-16 08:54:07 -07:00
Jack Andersen 003146f614 Work on CBabygoth 2019-06-29 21:29:49 -10:00
Jack Andersen 77af3f0ebd CPuddleToadGamma and animation system fixes 2019-06-20 20:02:56 -10:00
Jack Andersen 9ccc4227cb Initial support for asynchronous shader compilation 2019-06-15 20:25:29 -10:00
Jack Andersen 87023b432e Fixes in ANIM cooking 2019-06-15 16:22:23 -10:00
Jack Andersen e218b8aeb5 CActorContraption fixes, better CMake dependency handling 2019-06-11 16:05:17 -10:00
Jack Andersen 410d7896f7 Support for rendering dynamic cubemaps 2019-05-31 17:41:01 -10:00
Phillip Stephens 81f1e22fc2 More CFlameThrower imps, implement `CScriptSpecialFunction::ThinkChaffTarget` and `CScriptSpecialFunction::ObjectFollowObject` 2019-05-09 19:33:56 -07:00
Phillip Stephens 28071851ad Initial CFlameThrower imps 2019-04-16 01:00:46 -07: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
Jack Andersen 99b1a8ef49 Lots of bug fixes 2019-03-12 17:46:20 -10:00
Jack Andersen 8df0a4913c zeus constexpr refactor and thermal visor fixes 2019-02-23 21:15:54 -10:00
Jack Andersen 48eaa2545b Working CScriptGunTurret 2019-02-17 19:47:46 -10:00
Jack Andersen ad2681f857 Windows fixes 2019-01-28 22:28:35 -10:00
Phillip Stephens 049f51382b Initial CAtomicBeta imps, needs variable names 2019-01-22 21:59:53 -08:00
Jack Andersen 851e113dc0 Implement CWarWasp 2019-01-15 18:22:44 -10:00
Jack Andersen f9b0614327 Various bug fixes 2019-01-04 22:34:09 -10:00
Jack Andersen 5b55320e9b Implement CPlasmaProjectile 2019-01-02 17:47:28 -10:00
Phillip Stephens 4f3c8daf27 Initial CBabygoth imps 2018-12-31 00:37:52 -08:00
Phillip Stephens d657a8ecf6 Implement CAtomicAlpha 2018-12-17 20:42:17 -08:00
Jack Andersen b7f35e0528 CRelAngle fix 2018-12-16 17:52:51 -10:00
Jack Andersen ec1cb75b25 Finish CSpacePirate implementation 2018-12-12 21:39:16 -10:00
Jack Andersen 636c82a568 New code style refactor 2018-12-07 19:30:43 -10:00
Jack Andersen 41ae32be31 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2018-12-07 18:36:12 -10:00
Jack Andersen 7c7da6671a SIMD refactor 2018-12-07 15:49:15 -10:00
Phillip Stephens 9b2fd002c6 Implement CEyeBall, disable CPuddleToadGamma (preventing softlocks), initial CSpankWeed 2018-12-01 18:32:26 -08:00
Jack Andersen e1fa938127 Work on CSpacePirate 2018-11-25 16:15:44 -10:00
Jack Andersen 9c88971df6 Initial CSpacePirate and rag doll imps 2018-11-23 22:09:35 -10:00
Jack Andersen 22da3a0f89 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2018-11-18 15:19:58 -10:00
Jack Andersen 35a3923cdf Various bug fixes 2018-11-18 15:19:44 -10:00
Phillip Stephens b2b0a6aee0 CMetaree imps 2018-11-17 21:10:06 -08:00
Jack Andersen 57c1196599 Various bug fixes 2018-11-17 18:01:29 -10:00
Phillip Stephens ea4848196a Implement CNewIntroBoss 2018-11-16 21:05:57 -08:00
Jack Andersen d4bb7d64eb All CPatterned functions implemented 2018-11-10 17:27:54 -10:00
Phillip Stephens dd30f51761 Initial CScriptGun implementation, more loaders 2018-10-27 17:20:30 -07:00
Jack Andersen 3f4aeffb17 Merge branch 'shader-refactor' 2018-10-15 17:17:37 -10:00
Phillip Stephens bbfe61efbf Various loader implementations 2018-10-11 15:57:05 -07:00
Jack Andersen c91e5df986 Convert to pragma once 2018-10-06 17:42:33 -10:00
Phillip Stephens 02d54fd5ca Initial CParasite implementation 2018-09-16 16:22:35 -07:00
Phillip Stephens c3d8967605 Implement CPowerBomb 2018-09-09 18:04:57 -07:00
Phillip Stephens 489470feda Implement CBomb 2018-09-08 18:13:56 -07:00
Jack Andersen e46ec80b64 Integrate Amuse into hecl cook/extract for MP1/2 2018-09-02 14:46:16 -10:00
Phillip Stephens 56a48cd624 Initial DNAMP3 fixes various missing loader imps 2018-07-08 16:03:35 -07:00
Jack Andersen cd3bba2f0e Working grapple beam 2018-06-20 14:57:57 -10:00
Phillip Stephens de952f8e8b Implement god mode, and CWeaponMgr 2018-06-13 12:36:11 -07:00
Jack Andersen 5fb95d69d3 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde 2018-06-06 18:44:11 -10:00
Jack Andersen ac424ff9eb Implement CFluidPlaneGPU for GPU-computed water ripples 2018-06-06 18:43:26 -10:00
Phillip Stephens 53f5265648 Sometimes I hate git 2018-06-04 12:30:04 -07:00
Phillip Stephens cb2b9fa8bd Initial CScriptGunTurret Implementation 2018-06-04 12:15:35 -07:00
Jack Andersen 70b3404b7c Windows build fixes and warning avoidance 2018-05-24 20:39:38 -10:00
Jack Andersen 12430610f1 Lots of bug fixes 2018-05-09 21:25:26 -10:00
Phillip Stephens f5ea144b47 Various level streaming fixes, remove support for uncooked rep 2018-05-06 17:47:40 -07:00
Phillip Stephens 711c3e0d2c Remove rstl::optional_object, various cleanups, implement CExplosion and CScriptDoor 2018-04-29 20:12:41 -07:00
Jack Andersen 7100ed437f macOS decal rendering support 2018-03-16 17:41:01 -10:00
Jack Andersen 08569104c2 Projectile collision fix 2018-03-14 14:27:45 -10:00
Jack Andersen 74ce62726d Working space warp effect for charge beam 2018-02-12 20:46:59 -10:00
Jack Andersen e263345b0a Fix ShotSmoke effect 2018-02-12 12:27:40 -10:00
Jack Andersen 46a4a37cc6 Initial working projectiles 2018-02-11 19:30:21 -10:00
Jack Andersen 547471c6ba Work on projectiles 2018-02-10 19:27:00 -10:00
Jack Andersen 3754962301 Finish CProjectileWeapon 2018-02-09 20:26:12 -10:00
Jack Andersen 083571e693 Work on CGameProjectile 2018-02-08 21:12:26 -10:00
Jack Andersen ae6797f24b Fix player dynamic collision 2018-02-07 20:18:27 -10:00
Jack Andersen 59af54afad Merge branch 'master' of ssh://gitlab.axiodl.com:6431/AxioDL/urde 2018-02-04 20:57:18 -10:00
Jack Andersen ac8dfde174 Various bug fixes and CActor rendering 2018-02-04 20:56:09 -10:00
Jack Andersen 97835607d9 More windows build fixes 2018-02-03 20:46:47 -10:00
Jack Andersen 93fc2d8072 Initial fixNES integration 2018-02-01 13:19:34 -10:00
Jack Andersen 36f1473f3e All animation nodes implemented 2018-01-29 15:04:01 -10:00
Jack Andersen bb10423267 Various particle bug fixes 2018-01-26 22:34:46 -10:00
Jack Andersen 13a31be23b Implement rumble classes 2018-01-25 23:48:42 -10:00
Jack Andersen 47b3d57c3a Arm cannon rendering fixes 2018-01-14 21:39:25 -10:00
Jack Andersen 7a179eb10a Various bug fixes 2018-01-13 20:44:22 -10:00
Jack Andersen 168fab6b14 HUD rendering bug fixes 2018-01-05 20:50:42 -10:00
Jack Andersen 8301adc3d6 Huge compile performance refactor 2017-12-28 22:08:12 -10:00
Jack Andersen 6854cb9df7 Various bug fixes 2017-11-23 22:23:28 -10:00
Jack Andersen f7ec7bdc0c string_view refactor 2017-11-12 20:19:18 -10:00
Jack Andersen 742ab2514f First skybox and HUD rendering 2017-11-11 19:14:57 -10:00
Jack Andersen 3894749675 Changes to support boo object tracker API 2017-11-04 20:17:12 -10:00
Phillip Stephens 5941a61ae6 Update hecl, implement CScriptPickup 2017-10-14 22:44:07 -07:00
Jack Andersen 30ae347420 Implement CWorldShadow and texture clamp mode 2017-09-30 18:26:46 -10:00
Jack Andersen 10092821c8 Initial round of CMorphBall implementations 2017-09-10 16:18:49 -10:00
Jack Andersen 149eed4b73 Implement CAuxBeam 2017-09-09 14:36:21 -10:00
Jack Andersen 0907c52ca3 Implement beam subclasses 2017-09-06 17:55:31 -10:00
Jack Andersen 361aa1512b Finish CGunWeapon 2017-09-04 17:00:19 -10:00
Jack Andersen 640623f3ef Finish CGrappleArm 2017-09-03 16:22:46 -10:00
Jack Andersen 91600c31bf Add CPlayerGun holo effect rendering 2017-09-02 19:53:38 -10:00
Jack Andersen 35ab6e4803 Finish CPlayerGun 2017-09-01 18:06:05 -10:00
Jack Andersen ddb1d584b7 More work on CPlayerGun 2017-08-30 16:42:37 -10:00
Phillip Stephens 9b5ec8f86d Fix visigen/hecl dependencies; Cleanup ViewManager; Various implementations 2017-08-29 06:17:52 -07:00
Jack Andersen 1f7e8e1033 Additional CPlayerGun implementations; downcast macro for tweak pointers 2017-08-26 17:02:18 -10:00
Jack Andersen 86ada63867 Work on CPlayerGun 2017-08-25 18:36:25 -10:00
Jack Andersen ed991a6ac0 Initial CPlayerGun implementations 2017-08-24 20:18:09 -10:00
Jack Andersen e8a55d84d4 Implement CRainSplashGenerator and finish CPlayerGun constructor 2017-08-21 17:20:22 -10:00
Jack Andersen c66f9d0ec7 Add CPU-based skinning path for vertex manipulation effects 2017-08-20 19:46:59 -10:00
Jack Andersen 96b17ac73d Implement MetroidPrimeStage1 loader 2017-08-19 19:23:22 -10:00
Jack Andersen 3fa80babf6 More CPlayer implementations 2017-08-18 20:52:13 -10:00
Jack Andersen 8e8ce66799 Additional CPlayer implementations 2017-08-15 19:34:02 -10:00
Jack Andersen 02f8f77b57 Merge branch 'master' of https://github.com/AxioDL/urde 2017-08-12 22:19:33 -10:00
Jack Andersen e25d2a423d Nearly finish CScriptWater 2017-08-12 21:56:35 -10:00
Phillip Stephens 870e8c80ee Refactor ResId into CAssetId 2017-08-12 22:26:14 -07:00
Jack Andersen 925aa3fe1a More CPlayer imps 2017-07-30 19:19:05 -10:00
Jack Andersen 4528a6b60a Additional CPlayer work 2017-07-23 13:45:04 -10:00
Jack Andersen 5f02951f72 Work on CPlayer 2017-07-19 20:04:40 -10:00
Jack Andersen c5514b3374 More CPlayer implementations 2017-07-19 07:47:57 -10:00
Jack Andersen 4017f2acdd Implement CPlayer::UpdateGrappleState 2017-07-17 20:11:37 -10:00
Jack Andersen a71e48cf43 More work on CPlayer 2017-07-16 17:04:14 -10:00
Jack Andersen 6c257e1811 Work on CPlayer 2017-07-15 20:13:37 -10:00
Jack Andersen bfb16a3a0d Various CPlayer and CBodyStateCmdMgr imps 2017-07-05 08:34:12 -10:00
Phillip Stephens 38a13868f0 Compile fixes, and initial asset name parser 2017-07-02 03:18:38 -07:00
Jack Andersen 71a361f54e Work on collision related implementations 2017-06-17 15:58:13 -10:00
Jack Andersen 4f33422423 Lots of CPlayer implementations 2017-06-11 18:23:34 -10:00
Jack Andersen f8f3bf407a Finish CParticleElectric 2017-06-10 16:57:35 -10:00
Jack Andersen 6701ac264d CParticleSwooshShaders HLSL implementation 2017-06-09 20:13:16 -10:00
Phillip Stephens 9c32213790 Finish CActorContraption 2017-05-20 00:41:49 -07:00
Phillip Stephens 40a0d8395a Initial CActorContraption and weapon imps 2017-05-18 03:58:15 -07:00
Jack Andersen 9cb9d4df1d Windows build fixes 2017-05-11 09:42:43 -10:00
Phillip Stephens 3c566c2d8c Minor CActorParameters cleanup, initial CFlameThrower 2017-05-10 03:03:29 -07:00
Phillip Stephens 8687d613d4 Initial CActorContraption imps 2017-05-09 06:27:07 -07:00
Jack Andersen 6056857cab Windows build fixes 2017-04-14 20:16:38 -10:00
Jack Andersen 9cd421888d Additional HUD work 2017-04-08 20:14:22 -10:00
Jack Andersen e070844e8a Additional HUD work 2017-04-08 10:40:36 -10:00
Jack Andersen dc781f5c67 Additional HUD interfaces 2017-04-03 19:48:13 -10:00
Jack Andersen b3c94f1d2b Lots of HUD-related implementations 2017-04-01 17:03:37 -10:00
Jack Andersen c069666307 Player reflection and other imps 2017-03-25 19:53:04 -10:00
Jack Andersen db12dd2ea2 Implement CStateManager::Update 2017-03-23 19:30:16 -10:00
Jack Andersen 56328c3e4d Lots of CMFGame integration 2017-02-17 16:19:50 -10:00
Phillip Stephens 933e731817 CTweakPlayerGun rep (THE FINAL ONE YAY!!!) 2017-01-26 18:58:21 -08:00
Jack Andersen da91c921cb Bitfield initializer bug fixes 2017-01-24 18:40:19 -10:00
Phillip Stephens d1b55e23db TCastToPtr adjustments 2017-01-18 14:30:02 -08:00
Phillip Stephens 65fb75737f CScriptTrigger work 2017-01-14 19:59:37 -08:00
Jack Andersen e2c671e9b4 TCastTo implementation 2017-01-14 17:07:01 -10:00
Phillip Stephens 353dbadfe9 Code cleanup and corrections 2017-01-06 17:58:05 -08:00
Phillip Stephens af1e22a62d Start naming EMaterialTypes values 2016-12-29 13:38:59 -08:00
Phillip Stephens 8460b3b565 Complete C*Projectile construction chain, add CScriptBeam 2016-12-22 11:57:21 -08:00
Phillip Stephens 37aab51253 Formatting, and more script object implementations 2016-12-19 10:27:58 -08:00
Jack Andersen 3a24b35df7 Windows fixes 2016-12-10 15:54:08 -10:00
Phillip Stephens 5793c8df87 More gun implementations, and script objects 2016-12-09 18:35:20 -08:00
Phillip Stephens be40ebc8db Move weapon code to RuntimeWeapon 2016-11-22 12:43:16 -08:00