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
2e8eec91ea
Missed one
2019-09-21 06:10:54 -07:00
Phillip Stephens
68e2fad74f
Fix TCastTo.hpp inclusions, add comment to warn against modifying include path
2019-09-21 06:07:13 -07:00
Phillip Stephens
79121b6f47
Update submodules
2019-09-21 05:47:22 -07:00
Phillip Stephens
a89852fc46
Merge pull request #79 from lioncash/trunc
...
CAuiEnergyBarT01: Prevent truncation within DownloadBarCoordFunc
2019-09-21 05:44:27 -07:00
Phillip Stephens
88e057bf11
Merge pull request #78 from lioncash/const2
...
CGuiWidgetDrawParms: Mark Default instance as const
2019-09-21 05:44:00 -07:00
Phillip Stephens
110f07256d
Merge pull request #77 from lioncash/state
...
CPlayerState: Make use of std::array where applicable
2019-09-21 05:43:49 -07:00
Phillip Stephens
87497edcf9
Merge pull request #76 from lioncash/player
...
CPlayer: Make file-scope CMaterialFilter instances constexpr
2019-09-21 05:43:38 -07:00
Lioncash
3f06dd0a64
CAuiEnergyBarT01: Prevent truncation within DownloadBarCoordFunc
...
Without float literals, the calculation is performed in double precision
and then truncated down to float implicitly.
2019-09-19 22:31:46 -04:00
Lioncash
04cc300019
CGuiWidgetDrawParms: Mark Default instance as const
...
This isn't ever modified, so it can be made const to prevent
unintentional modification (and allow it to be placed within the RO
segment).
2019-09-19 21:46:11 -04:00
Lioncash
f49c8e9d6c
CPlayerState: Use std::array where applicable
...
Prevents implicit array->pointer decay and makes for a more convenient
data type.
2019-09-19 15:42:50 -04:00
Lioncash
f4fd182741
CPlayerState: Move arrays into an anonymous namespace where applicable
...
Keeps local arrays together and makes it impossible to accidentally
violate the ODR.
2019-09-19 15:36:39 -04:00
Lioncash
bc285913c8
CPlayerState: Organize includes
2019-09-19 15:27:20 -04: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
Phillip Stephens
9c2fd54546
Merge pull request #75 from lioncash/matlist
...
CMaterialFilter/CMaterialList: Make interface constexpr
2019-09-19 01:21:56 -07:00
Phillip Stephens
a4262dc4d2
Merge pull request #74 from lioncash/player
...
CPlayer: Use std::array where applicable
2019-09-19 01:18:46 -07:00
Lioncash
2d8111531f
CMaterialFilter: Make interface constexpr
...
A few instances of CMaterialFilter are constructed at file-scope using
the Make* functions and the constructor. Given these aren't constexpr,
this means these are technically runtime function calls. We can make
these constexpr to allow the initialization to be done at compile-time,
slightly improving startup time.
2019-09-18 13:00:04 -04:00
Lioncash
0e39c64bfc
CMaterialList: Make interface constexpr
2019-09-18 12:45:11 -04:00
Lioncash
1f13fc05a0
CMaterialFilter/CMaterialList: Amend inclusions
2019-09-18 12:38:14 -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
Phillip Stephens
b5d829379e
Merge pull request #73 from lioncash/size
...
CPlayer: Use size_t with SfxIdFromMaterial
2019-09-18 01:41:47 -07: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
Phillip Stephens
5b4580e5bf
Merge pull request #72 from lioncash/array
...
CMorphBall: Use std::array where applicable
2019-09-17 01:30:44 -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
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
Phillip Stephens
823df9643a
Merge pull request #71 from lioncash/enum
...
CSortedLists: Minor changes
2019-09-15 22:06:06 -07:00
Phillip Stephens
3e9cb69c32
Merge pull request #70 from lioncash/move
...
CEntityInfo: std::move vector in constructor
2019-09-15 22:05:57 -07:00
Lioncash
a5ab077dc3
CSortedLists: Use std::array where applicable
...
Prevents implicit array to pointer decay and allows us to simplify a bit
of the code.
2019-09-15 19:27:19 -04:00
Lioncash
f5d486f0ca
CSortedLists: Turn ESortedList into an enum class
...
Prevents namespace pollution and makes the type more strongly-enforced
with regards to implicit conversions
2019-09-15 18:52:02 -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
Phillip Stephens
cc236dcaba
Merge pull request #69 from lioncash/frontend
...
CFrontEndUI: Use std::array where applicable
2019-09-14 19:24:12 -07:00
Phillip Stephens
0120a43e0e
Merge pull request #68 from lioncash/insensitive
...
CStringExtras: Prevent potential out of bounds reads with CompareCaseInsensitive
2019-09-14 19:23:59 -07:00
Lioncash
991d048694
CStringExtras: Prevent undefined behavior within IndexOfSubstring
...
Unlikely to occur, but does completely prevent the case of undefined
behavior if a non-ascii character ends up within the given string.
2019-09-14 16:43:06 -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
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
Phillip Stephens
9b816d471b
Compile fixes
2019-09-14 10:08:09 -07:00
Phillip Stephens
30fb3827cd
Update submodules
2019-09-14 08:47:26 -07:00
Phillip Stephens
16ce349f1c
Merge pull request #67 from lioncash/endian
...
General: Be explicit about athena's Endian type
2019-09-14 08:38:53 -07:00
Lioncash
5b7f159233
General: Be explicit about athena's Endian type
...
Allows this code to still compile if the Endian type is ever changed
into a strong enumeration.
2019-09-14 11:01:01 -04:00
Phillip Stephens
002ca71104
Update hecl
2019-09-13 00:12:09 -07:00
Phillip Stephens
613f690c42
Merge pull request #66 from lioncash/lockfire
...
CCompoundTargetReticle: Fix typo in lock fire string
2019-09-13 00:11:37 -07:00
Phillip Stephens
4004876a6d
Merge pull request #65 from lioncash/unique
...
Runtime: Make use of std::make_unique where applicable
2019-09-13 00:10:43 -07:00
Lioncash
0aa749ce0c
CCompoundTargetReticle: Fix typo in lock fire string
...
In the actual game executable, the string is stored with a lower-case 'i', not an upper-case one.
2019-09-12 06:40:52 -04:00
Lioncash
20696fd500
CCompoundTargetReticle: Declare file-scope strings as arrays
...
Reduces the overall size of the resulting binary, as only the string
data will be stored rather than the string and a pointer pointing to
said string data.
2019-09-12 06:38:05 -04:00