Commit Graph

856 Commits

Author SHA1 Message Date
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
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
Phillip Stephens 8d90edd55f
Initial CChozoGhost imp 2020-01-20 20:00:40 -08:00
Lioncash ab2ad38220 CPatterned: Mark CMaterialList instance in CollidedWith as constexpr
This isn't ever modified, so we can mark it constexpr to eliminate
potential runtime initializers.
2020-01-15 14:48:21 -05:00
Phillip Stephens 841996a872
More work on CThardus 2020-01-05 20:24:54 -08: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 21159e604e
More CThardus 2019-12-14 15:50:29 -08:00
Phillip Stephens 8689d599c5
GCC Fixes 2019-12-14 01:14:58 -08:00
Phillip Stephens 70747e23d5
Fix font rendering and world teleporter in MPT and PAL 2019-12-11 10:55:19 -08:00
Phillip Stephens 697a100bca
Implement CScriptSpecialFunction::ThinkAreaDamage, and more CThardus 2019-11-24 07:32: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 e059f224d4
Fix behavior translation, still needs work 2019-11-13 10:44:43 -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 940ab1f662 World/CFluidPlaneGPU: Name variable to be more meaningful in RenderStripWithRipples() 2019-11-09 20:22:16 -05:00
Lioncash 136a229a1a Graphics/Shaders: Use std::array where applicable
Makes the arrays strongly typed and impervious to array->pointer decay.
This also allows simplifying some operations (such as being able to call
fill() instead of needing to use std::fill, etc).
2019-11-09 20:22:16 -05: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 f2c207b85e
Fix regression 2019-11-06 10:12:20 -08:00
Phillip Stephens 297513c8d4
Fix Impact Crater causing an infinite loop for simply not having a skybox 2019-11-06 09:33:45 -08:00
Phillip Stephens 77b61b0e68
Fix saves sending you to incorrect rooms, fix triggers 2019-11-05 09:18: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
Phillip Stephens 246e233dce
Cleanup CPathFindArea 2019-10-24 22:44:37 -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 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 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 019ee29a0c CPlayer: Make file-scope CMaterialFilter instances constexpr
Now that the interface is constexpr, we can mark these as constexpr.
2019-09-19 15:18:44 -04:00
Lioncash 6ec903f9ac CPlayer: Use std::array where applicable
Makes the arrays strongly-typed and impervious to implicit
array->pointer decay. We can also eliminate a few hardcoded magic
values.
2019-09-18 12:28:44 -04:00
Lioncash 70fb763180 CPlayer: Enclose translation-unit-local data within an anonymous namespace
Keeps all local data within one spot and prevents any potential ODR
violations related to them from occurring.
2019-09-18 12:27:15 -04:00
Lioncash 33f10e2552 CPlayer: Organize includes 2019-09-18 11:50:26 -04:00
Lioncash 45cdc38ac0 CPlayer: Use size_t with SfxIdFromMaterial
Allows passing in sizes without potential truncation from size_t,
allowing nicer use of std::size() to dehardcode some magic values.
2019-09-17 14:52:42 -04: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 e4b22ea9d8 CMorphBall: Place internally linked data within an anonymous namespace
Keeps all internal data within one place and also prevents any potential
ODR violations from occurring in relation to any of these.
2019-09-16 14:53:52 -04:00
Lioncash 8c59ace5fe CMorphBall: Clean up includes 2019-09-16 14:43:33 -04:00
Lioncash 0281029015 CEntityInfo: std::move vector in constructor
Allows calling code to potentially avoid copies altogether by moving
into the constructor.
2019-09-15 16:22:35 -04:00
Lioncash 0d2b2f45a8 CStringExtras: Prevent potential out of bounds reads with CompareCaseInsensitive
The strcasecmp and _stricmp functions expect the passed in strings to
be null-terminated, however we we're also exposing a std::string_view
overload for that function. std::string_view instances aren't required
to be null-terminated, so this makes the interface a little unsafe.

We can use std::lexicographical_compare() to provide the same behavior
and also properly handle the case of non-null-terminated strings.
2019-09-14 16:43:04 -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 5baf3206f4 CActorModelParticles: Make DGRP array constexpr
Technically this array wasn't readonly and contained a sequence of
modifiable elements. We can make this constexpr so that the compiler can
definitively place it into the read-only segment.
2019-09-09 20:44:23 -04:00
Lioncash c9271809a7 CAiFuncMap: Remove unused static std::vector
This isn't used, so we can remove it and get rid of a static
constructor.
2019-09-08 18:08:10 -04:00
Lioncash 20a0585cc5 CAiFuncMap: Convert typedefs into type aliases
Same thing, but reads a little nicer.
2019-09-08 18:08:10 -04:00
Lioncash 2f06fcba0a CAiFuncMap: Avoid redundant map lookups in getters
We can just use the result of the find operation instead of rehashing
into the map to retrieve the entry.

This also allows us to make the getter const qualified.
2019-09-08 18:08:10 -04:00
Lioncash 1cfe83d8d1 CAiFuncMap: Replace map indexing with emplace in the constructor
Provides the same behavior, but without default initializing a map entry
that immediately gets overridden in the assignment.
2019-09-08 18:08:10 -04:00
Lioncash 2c6aed7033 World/CScript*: Pass by reference over by value
Based off the use of the const, it's likely that these were intended to
be references, rather than be copied by value
2019-09-06 10:49:54 -04:00
Phillip Stephens 256994c199
Initial CEnergyBall, update submodules, various fixes 2019-08-31 02:02:21 -07:00
Lioncash fa608acb06 CPatterned: Correct use of bool in bitfield
This is incremented within PathFind(), however, because the type within
this bitfield is a bool, this can trigger compilation warnings (rightly
so). So we can make it a uint32_t to make it obvious that the
incrementing behavior is intended.
2019-08-23 22:26:07 -04:00
Phillip Stephens 9866bac443 Update jbus, initial CEnergyBall stub 2019-08-23 01:32:48 -07:00