Commit Graph

414 Commits

Author SHA1 Message Date
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 515103aa92 CWeaponDescription: Make operator bool() explicit
Eliminates potential error-prone implicit conversions.
2020-04-11 15:04:55 -04:00
Luke Street c7ca8dc3a7 Runtime/Particle: Replace bitfield unions with constructor initializers 2020-04-11 00:39:49 -04:00
Luke Street 6b814262fc Merge remote-tracking branch 'origin/master' into omegapirate 2020-04-09 20:06:33 -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 0bef9104b5 CPhazonHealingNodule: Create class 2020-04-06 16:56:10 -04:00
Lioncash a49d26f800 CParticleElectric: Return std::nullopt in GetBounds()
Same behavior, but avoids zeroing out the internal buffer in some
implementations of std::optional.
2020-04-05 05:12:25 -04:00
Lioncash eb1209b492 CFlameWarp: Dehardcode container sizes
Same behavior, less magic numbers.
2020-04-03 01:10:22 -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 81dcc0604b CParticleElectric: Make use of std::array where applicable
Prevents array to pointer decay.
2020-03-25 03:58:37 -04:00
Lioncash c61bee13db CParticleElectric: Add parameters to function prototypes
Makes the interface more self-documenting.
2020-03-25 03:58:37 -04:00
Phillip Stephens af2738c7b1
Merge pull request #269 from lioncash/sconv
CParticleSwoosh: Resolve sign-conversion warnings
2020-03-23 23:29:44 -07:00
Phillip Stephens 00691c1175
Merge pull request #268 from lioncash/intconst
CIntElement: Remove const_cast
2020-03-23 23:29:26 -07:00
Phillip Stephens bb9359c579
Merge pull request #266 from lioncash/make
CParticleElectric: Use std::make_unique where applicable
2020-03-23 23:28:59 -07:00
Phillip Stephens 734f1d2db5
Merge pull request #264 from lioncash/move
General: Remove unnecessary std::move calls
2020-03-23 23:28:24 -07:00
Phillip Stephens 425f8d4cc8
Merge pull request #263 from lioncash/array3
CDecal: Make use of std::array where applicable
2020-03-23 23:28:08 -07:00
Lioncash 7a29f4bf52 CParticleSwoosh: Resolve sign-conversion warnings
Resolves trivial warnings within loop condition checks.
2020-03-23 00:38:23 -04:00
Lioncash a2517a504e CIntElement: Remove const_cast
CIESampleAndHold caches values internally for use later in a non-visible
manner to the user of the class. This is a good place for mutable to be
used.

This improves the readability of the GetValue() implementation.
2020-03-22 06:05:59 -04:00
Lioncash 34a0e9f23d CParticleElectric: Use std::make_unique where applicable
Makes it obvious that std::unique_ptr instances are being created within the
implementation code.
2020-03-22 05:27:49 -04:00
Lioncash 0e54861455 General: Remove unnecessary std::move calls
There's no real need to std::move a primitive type. A copy will be
performed either way. We can remove std::move in this case to improve
readability.
2020-03-22 00:56:04 -04:00
Lioncash 2b4b7c36a5 CDecal: Make use of std::array where applicable
Same behavior, but with stronger-typing and no implicit array to pointer
decay.
2020-03-21 01:53:41 -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 097d4a4422 Runtime: Collapse emplace_back() calls where applicable
Same behavior, but with less code.
2020-03-13 17:14:44 -04:00
Phillip Stephens 97e33bdf11
Merge pull request #213 from lioncash/unique
CProjectileWeaponDataFactory: Make GetGeneratorDesc() return a unique_ptr
2020-03-12 15:10:49 -07:00
Lioncash 05bccae70e CDecalDataFactory: Make GetGeneratorDesc() return a unique_ptr
Same behavior, but with safer memory management.
2020-03-12 14:46:02 -04:00
Lioncash 1f42b9be93 CParticleElectricDataFactory: Make GetGeneratorDesc() return a unique_ptr
Same behavior, but with safer memory management.
2020-03-12 14:20:48 -04:00
Lioncash 59bbbdf41c CParticleSwooshDataFactory: Make GetGeneratorDesc() return a unique_ptr
Same behavior, but with safer memory management.
2020-03-12 14:17:42 -04:00
Lioncash 93121c38f7 CProjectileWeaponDataFactory: Make GetGeneratorDesc() return a unique_ptr
Same behavior, but with safer memory management.
2020-03-12 14:00:23 -04:00
Lioncash 15dce1683e CElementGen: std::move TToken instance in constructor
Allows the parameter to be moved into via calling code.
2020-03-09 13:07:53 -04:00
Lioncash af2a82b5a7 CElementGen: Make GetSystemCount() a const member function
This doesn't modify internal member state, so this can be made a const
member function.
2020-03-09 13:03:42 -04:00
Lioncash a8486cf479 CElementGen: Resolve sign-conversion warnings in loops
Prevents implicit truncation to int from occurring.
2020-03-09 13:01:42 -04:00
Lioncash 9db07b037a CElementGen: Make use of std::array where applicable 2020-03-09 12:53:28 -04:00
Lioncash 35adfe8abf CElementGen: Alphabetize forward declarations
Makes them nicer to visually scan over.
2020-03-09 12:33:24 -04:00
Lioncash 13afd9b033 CRealElement: Remove redundant instance() call in CRELifetimeTween::GetValue()
This only needs to be called once.
2020-01-29 02:07:55 -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 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 6a3eba0091
Merge pull request #103 from lioncash/unique
CParticleDataFactory: Use unique_ptr where applicable
2019-10-18 01:01:40 -07:00
Lioncash af7d8e9095 CUVElement: Provide initial value for cv in GetValueUV()
The game executable itself sets this variable to an initial value of 1
prior to calling cycleFrames' GetValue() member function.
2019-10-11 17:05:26 -04:00
Lioncash 35fb0e4911 CUVElement: Use const where applicable
While we're at it, we can also make conversions to float explicit.
2019-10-11 17:05:23 -04:00
Lioncash 7430b70b73 CParticleDataFactory: Use unique_ptr where applicable
Same behavior, but makes the functions a little safer in terms of memory
management.
2019-10-11 15:16:13 -04:00
Lioncash 8b58cdc268 CIntElement: Add class to handle RTOI int elements
Within the int element handling code, there seems to be a missing
implementation (with the FourCC 'RTOI'), which seems to take two 32-bit
floating point values, multiplies them, then converts the result to a 32-bit
integer.
2019-10-06 08:52:41 -04:00
Lioncash ff940612bc CIntElement: Make use of std::clamp within CIEClamp's overrides
Same behavior, less code.
2019-10-04 19:51:38 -04:00
Lioncash 3407a59ad7 CIntElement: Simplify CIEKeyframeEmitter's GetMaxValue()
We can just use std::max_element here to collapse the loop into an
assignment.
2019-10-04 19:46:36 -04:00
Lioncash af0c2c41e3 CIntElement: Organize cpp includes 2019-10-04 19:38:31 -04:00
Lioncash 83873b580e CIntElement: Join variable declarations with assignments where applicable 2019-10-04 19:38:26 -04:00
Lioncash 66b198d1a4 CElementGen: Correct FourCC in SetTranslation()
The game executable checks for a FourCC of ELSC within this function,
not SELC.
2019-10-03 09:45:26 -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 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 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 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 7a3da1f7a6 Massive fmtlib refactor 2019-07-19 18:27:21 -10:00
Jack Andersen fd0bfc3acf Minor flamethrower and babygoth fixes 2019-06-30 20:14:42 -10:00
Phillip Stephens 6df0fcde50 Minor CElementGen cleanup, implement CFlaahgraPlants 2019-06-20 14:17:03 -07: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
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 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
Jack Andersen 99b1a8ef49 Lots of bug fixes 2019-03-12 17:46:20 -10:00
Jack Andersen 2f963b9ce3 Various bug fixes 2019-03-08 22:58:27 -10:00
Jack Andersen 8b9f073635 Various rendering fixes 2019-03-02 20:19:42 -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
Jack Andersen d60fcc99c9 Fix CNewIntroBoss and particle bugs 2019-01-04 17:28:02 -10:00
Phillip Stephens d30ceb6611 More CPuddleSpore implementations 2018-12-12 11:50:37 -08:00
Jack Andersen 636c82a568 New code style refactor 2018-12-07 19:30:43 -10:00
Jack Andersen 7c7da6671a SIMD refactor 2018-12-07 15:49:15 -10:00
Jack Andersen 9c88971df6 Initial CSpacePirate and rag doll imps 2018-11-23 22:09:35 -10:00
Phillip Stephens a7e81073ae CDamageInfo fixes, initial CPuffer 2018-11-13 20:16:11 -08:00
Phillip Stephens 89ece2e9b2 Proper CRandom16 usage
More CScriptGunTurret imps
2018-11-09 18:48:06 -08:00
Jack Andersen 1aab0528f3 Various bug fixes 2018-11-07 14:53:38 -10:00
Jack Andersen 3ef7386978 Proper interleaved rendering of indirect-textured particle instances 2018-11-04 21:25:28 -10:00
Jack Andersen 4c306e7e40 Implement CHUDBillboardEffect, bug fixes 2018-11-03 15:08:44 -10:00
Phillip Stephens dd30f51761 Initial CScriptGun implementation, more loaders 2018-10-27 17:20:30 -07:00
Jack Andersen 29dad50cca Particle, map and line renderer fixes 2018-10-25 18:37:22 -10:00
Jack Andersen 8fb77eac2c Various bug fixes 2018-10-20 18:14:00 -10: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
Jack Andersen 9461e98512 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/urde into shader-refactor 2018-10-06 16:59:32 -10:00
Jack Andersen c307e354ca Huge shader refactor 2018-10-06 16:59:17 -10:00
Phillip Stephens 94fd52d0ea HUD and CPlayer bug fixes 2018-09-20 11:17:09 -07:00
Phillip Stephens c3d8967605 Implement CPowerBomb 2018-09-09 18:04:57 -07:00
Jack Andersen 5a60a0acfc Amuse API changes 2018-08-27 19:44:16 -10:00
Jack Andersen cd3bba2f0e Working grapple beam 2018-06-20 14:57:57 -10:00
Jack Andersen 941c4d793c Fix CScriptEffect translation set 2018-06-12 16:32:02 -10:00
Jack Andersen 8f9d7da3ee Implement tessellation shader for HLSL 2018-06-07 15:15:46 -10:00
Jack Andersen a5f25bf3f4 Fix water rendering 2018-06-02 20:11:39 -10:00
Jack Andersen cc6d79e280 Various bug fixes 2018-05-26 18:22:38 -10:00
Jack Andersen 70b3404b7c Windows build fixes and warning avoidance 2018-05-24 20:39:38 -10:00
Jack Andersen f60af632b3 Big fixes and big memory leak refactor (linux only for now) 2018-05-19 20:14:57 -10:00
Jack Andersen 979a54a8a8 More bug fixes 2018-05-17 18:16:33 -10:00
Phillip Stephens 0c49c8ea9e Implement CScriptActorKeyframe 2018-05-14 14:44:09 -07:00
Phillip Stephens 8d395d932e Implement CScriptEffect, more fixes for CScritDock 2018-05-13 20:38:36 -07:00
Jack Andersen 9130b9459a More particle bug fixes 2018-05-13 13:27:47 -10:00
Jack Andersen faf0ac7d27 Particle POI fix, implement ORNT mode for particles 2018-05-12 18:09:11 -10:00
Jack Andersen 12430610f1 Lots of bug fixes 2018-05-09 21:25:26 -10:00
Phillip Stephens 711c3e0d2c Remove rstl::optional_object, various cleanups, implement CExplosion and CScriptDoor 2018-04-29 20:12:41 -07:00
Phillip Stephens 6d60ccfd04 Various fixes and tweaks, Implement CExplosion, Add cheats 2018-04-26 14:12:20 -07:00
Jack Andersen 7100ed437f macOS decal rendering support 2018-03-16 17:41:01 -10:00
Jack Andersen 017185109f Fix disappearing actor issue 2018-03-04 13:23:21 -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 ac8dfde174 Various bug fixes and CActor rendering 2018-02-04 20:56:09 -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 7a179eb10a Various bug fixes 2018-01-13 20:44:22 -10:00
Jack Andersen 73ae278c87 Several collision fixes 2017-12-17 16:54:50 -10:00
Jack Andersen 8901ac2150 Various fixes 2017-12-09 19:30:01 -10:00
Jack Andersen 3894749675 Changes to support boo object tracker API 2017-11-04 20:17:12 -10:00
Jack Andersen 484a4900a0 CMorphBall Complete 2017-09-29 17:45:57 -10:00
Jack Andersen 2c4967ca4d More work on CMorphBall 2017-09-16 17:13:03 -10:00
Jack Andersen 27cee61765 Implement array-based rstl::reserved_vector 2017-09-10 21:08:30 -10:00
Jack Andersen 10092821c8 Initial round of CMorphBall implementations 2017-09-10 16:18:49 -10:00
Jack Andersen 53ec80ce72 Implement CFlameWarp 2017-09-09 23:04:51 -10:00
Jack Andersen 149eed4b73 Implement CAuxBeam 2017-09-09 14:36:21 -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
Phillip Stephens 870e8c80ee Refactor ResId into CAssetId 2017-08-12 22:26:14 -07:00
Phillip Stephens 2dee7c72cb Fix build error 2017-08-01 03:08:42 -07:00
Phillip Stephens 9afacd791b CActorModelParticles work 2017-07-31 03:47:04 -07:00
Jack Andersen 6c257e1811 Work on CPlayer 2017-07-15 20:13:37 -10:00
Jack Andersen 47e73f9f80 Add particle data binding for rendering PMUS quads 2017-06-12 08:20:07 -10:00
Jack Andersen 14a4bc2050 ZERY fix 2017-06-10 18:07:09 -10:00
Jack Andersen f8f3bf407a Finish CParticleElectric 2017-06-10 16:57:35 -10:00
Jack Andersen f3acc97d63 Implement actual CParticleSwoosh rendering 2017-06-09 19:34:39 -10:00
Jack Andersen 302bd76ebd Implement remaining CParticleSwoosh renderers 2017-06-05 19:05:09 -10:00
Jack Andersen a07097855b Work on CParticleSwoosh renderers 2017-06-04 16:40:29 -10:00
Jack Andersen ca9170bc88 Several initial CParticleSwoosh implementations 2017-06-03 18:54:47 -10:00
Jack Andersen 6da6e37d42 Conform CElementGen with retail 2017-06-03 15:01:09 -10:00
Jack Andersen db8a7d3433 CParticleDatabase implementations 2017-06-02 20:03:07 -10:00
Jack Andersen 08cbeceb80 Windows build fixes 2017-05-08 09:10:09 -10:00
Jack Andersen b2d375a1d7 Finish CSamusDoll 2017-05-05 19:21:42 -10:00
Jack Andersen db12dd2ea2 Implement CStateManager::Update 2017-03-23 19:30:16 -10:00
Jack Andersen 6c81cea420 Windows fixes and updated rendering interface 2017-03-17 13:33:02 -10:00
Jack Andersen 1629882113 Refactors to support fog volume rendering 2017-03-13 21:03:58 -10:00
Jack Andersen c407e75943 Frontface culling support for Metal 2017-03-10 11:08:51 -10:00
Jack Andersen ce723d5505 Frontface culling support boo sync 2017-03-10 10:52:53 -10:00
Jack Andersen 9b9ba95d45 Sync with boo shader cache 2017-03-05 13:03:23 -10:00
Jack Andersen cac0e328f7 Tons of DrawWorld-related implementations 2017-03-03 18:31:08 -10:00
Phillip Stephens ac5f28eeff Add missing factories, update hecl 2017-02-13 13:29:00 -08:00
Phillip Stephens a8f5efb6e5 Fix command line args on macOS when passed via open, implement CScriptCameraPitchVolume 2017-01-23 02:31:15 -08:00