Commit Graph

1495 Commits

Author SHA1 Message Date
Phillip Stephens 823df9643a
Merge pull request #71 from lioncash/enum
CSortedLists: Minor changes
2019-09-15 22:06:06 -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 613f690c42
Merge pull request #66 from lioncash/lockfire
CCompoundTargetReticle: Fix typo in lock fire string
2019-09-13 00:11:37 -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
Lioncash 267fd2962a CCompoundTargetReticle: Move private strings into the cpp file
This is an internal detail, so we don't need to expose this in the
header,
2019-09-12 05:45:53 -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 9983366a53 RumbleFxTable: Use std::array for the lookup table
Strongly enforces the type of the array and also allows size querying,
etc, directly from the type.
2019-09-10 19:13:34 -04:00
Lioncash d7493d5920 CRumbleVoice: Make SAdsrDelta interface constexpr
Makes the API consistent between SAdsrData and SAdsrDelta.
2019-09-10 19:13:34 -04:00
Lioncash 6ca5143b15 CRumbleVoice: Make SAdsrData constructors constexpr
Technically all file-scope instances have runtime-static constructors
otherwise. This allows the compiler to completely elide them from a
language point of view.
2019-09-10 19:02:22 -04:00
Phillip Stephens 60409d2f6a
Merge pull request #63 from lioncash/char
CActorModelParticles: Make DGRP array constexpr
2019-09-10 04:03:06 -07: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
Phillip Stephens e2ab93dfac
Update submodules 2019-09-09 04:21:01 -07:00
Phillip Stephens f07fc458d2
Merge pull request #62 from lioncash/crc
CCRC32: Move table declaration into the cpp file
2019-09-08 17:49:44 -07:00
Lioncash f430a00314 CCRC32: Move table declaration into the cpp file
This can be moved entirely into the cpp file, making it an
implementation detail.
2019-09-08 18:18:29 -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
Phillip Stephens 12c3942e65
Merge pull request #57 from lioncash/ref
World/CScript*: Pass by reference over by value
2019-09-06 23:21:23 -07:00
Phillip Stephens eae1f1ab82
Merge pull request #56 from lioncash/tentacle
MP1/CFlaahgraTentacle: Amend sphere collision list appending
2019-09-06 23:21:01 -07:00
Lioncash 5b1e783a90 ControlMapper: Prevent array overrun cases
These should be comparing with >=, not >.

The command table descriptions also weren't kept in sync with the
enumeration.
2019-09-06 11:18:13 -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
Lioncash d25f4fa9a3 MP1/CFlaahgraTentacle: Amend sphere collision list appending
This was always using the first element in the array to append t the
output joint list, resulting in incorrect names and radius values.
2019-09-06 09:43:32 -04:00
Phillip Stephens a1819ca079
Merge pull request #50 from lioncash/jbus
General: Amend relevant code to compile with jbus changes
2019-09-03 23:12:06 -07:00
Phillip Stephens 2d1d11fb56
Update submodules, fix compiling against kabufuda 2019-09-03 23:11:04 -07:00
Lioncash 5aafd3935b CGBASupport: Amend code to compile with jbus changes 2019-09-04 01:56:08 -04:00
Lioncash d5fa8b72b0 CStringTable: Remove unnecessary initializer
std::unique_ptr always initializes to nullptr. We can remove this
implicit convertion from 0 to nullptr.
2019-09-01 03:16:54 -04:00
Lioncash e23dfbd8db CStringTable: Use std::array instead of std::vector
Gets rid of a static constructor, as well as a few heap allocations
2019-09-01 03:13:45 -04:00
Phillip Stephens 256994c199
Initial CEnergyBall, update submodules, various fixes 2019-08-31 02:02:21 -07:00
Lioncash 1d3062b33f General: Make use of FopenUnique where applicable
Migrates to the hecl Fopen variant that automatically closes its
contained file handle if it goes out of scope.
2019-08-26 15:03:58 -04:00
Phillip Stephens 2a60b9fbf4
Update submodules, minor fixes 2019-08-25 18:29:25 -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
Phillip Stephens e855cbd902 Update hecl, fix CFlickerBat's targetable state being inverted 2019-08-20 06:58:13 -07:00
Phillip Stephens a41bd828e7 Update submodules 2019-08-18 18:49:54 -07:00
Phillip Stephens fa7785d024 Fix GetAreaFog 2019-08-14 12:56:46 -07: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
Phillip Stephens 2ace76e3d2
Merge pull request #41 from lioncash/const
RuntimeCommon: Use const on member functions where applicable
2019-08-14 06:36:27 -07:00
Phillip Stephens bab78f96a5
Merge pull request #40 from lioncash/constexpr
RetroTypes: Make types constexpr where applicable
2019-08-14 06:36:16 -07:00