Commit Graph

2007 Commits

Author SHA1 Message Date
Phillip Stephens e43bfe1e58
More CChozoGhost imps 2020-03-05 07:42:12 -08:00
Phillip Stephens 58cca6ffa8
More chozoghost imps 2020-03-05 01:56:04 -08:00
Phillip Stephens 50a20d7322
More CChozoGhost imps 2020-03-04 18:41:11 -08:00
Phillip Stephens 9d77d7313c
More ChozoGhost imps 2020-03-04 18:41:10 -08:00
Phillip Stephens d91e86a94a
Initial CChozoGhost stubs 2020-03-04 18:41:10 -08:00
Phillip Stephens 2f9dd38bbe
Silence discard errors 2020-03-04 18:40:03 -08:00
Luke Street 74d01debe1
Merge pull request #180 from lioncash/flamethrower
CFlameThrower: Amend virtual interface discrepancies
2020-03-04 13:42:21 -05: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 f0c3903951 CSpacePirate: Make use of std::array with constexpr data
Makes data strongly typed, making pointer decay explicit.
2020-03-04 04:44:54 -05:00
Lioncash 4b3d48ebc1 CSpacePirate: Make static const data internally linked
Makes the symbols fully internally linked and also allows marking them
constexpr.
2020-03-04 04:33:11 -05:00
Phillip Stephens 09f7096913
Disable variable delta time 2020-03-03 16:50:25 -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
Luke S 617844efce
Merge pull request #175 from lioncash/fixme
CFlaahgraTentacle: Remove FIXME comment in ShouldAttack()
2020-02-29 16:56:50 -05:00
Lioncash 5e705515ed CFlaahgraTentacle: Remove FIXME comment in ShouldAttack()
GM8E v0 does exactly this, so we can consider this double-checked
2020-02-29 06:18:30 -05:00
Lioncash 9434be8562 CFlaahgraTentacle: Amend floating point value within Play case in AcceptScriptMsg()
GM8E v0 sets this to 0.04f.
2020-02-29 05:54:38 -05:00
Luke S 58a2f6aeb2
Merge pull request #173 from lioncash/c_str
Runtime: Remove unnecessary c_str() calls
2020-02-28 11:16:57 -05:00
Luke S e0b84df5de
Merge pull request #172 from lioncash/move
CCharacterInfo: Minor allocation related changes
2020-02-28 10:39:35 -05:00
Luke S e7de5311c2
Merge pull request #171 from lioncash/const
CPAS*: Minor cleanup
2020-02-28 10:37:36 -05:00
Luke S 55521fb5df
Merge pull request #170 from lioncash/collision
CollisionUtil: Replace FINDMINMAX macro with std::minmax()
2020-02-28 10:36:46 -05: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 718d8d5d6f CPASParmInfo: Make data members private
These aren't used outside of the class, we only need to make
EWeightFunction public.
2020-02-28 05:00:16 -05:00
Lioncash 9524208cd2 CCharacterInfo: Remove unnecessary top-level const in return value of GetAnimationIndex()
Same behavior, less code.
2020-02-28 04:56:45 -05:00
Lioncash 63cf485f27 CCharacterInfo: std::move std::string instance where applicable
Avoids potentially reallocating strings where it's not necessary to do
so.
2020-02-28 04:55:09 -05:00
Lioncash 435a6ea1d4 CCharacterInfo: Make use of emplace_back() where applicable
We can construct these elements in place. While we're at it, we can mark
the count variables at const to be explicit.
2020-02-28 04:51:18 -05:00
Lioncash d2c86f98d1 CCharacterInfo: std::move vectors in CParticleResData's constructor
Same behavior, but allows the caller to move into the constructor,
potentially avoiding copies altogether.
2020-02-28 04:49:07 -05:00
Lioncash d79b9d925e CPAS*: Make constructors explicit
Prevents undesirable implicit constructions from occurring.
2020-02-28 04:38:23 -05:00
Lioncash fe05c42be4 CPASAnimState: Remove const_cast usages
A cache is typically a use case for mutable (as the outside user of the
class wouldn't directly rely on the cache as part of the API, this would
only function to assist the API perform better), so we can mark the
selection cache as mutable and make the code nicer to read overall.
2020-02-28 04:33:42 -05:00
Lioncash 9cb5d11405 CollisionUtil: Replace FINDMINMAX macro with std::minmax()
Same thing, but already provided by the language.
2020-02-28 02:27:24 -05:00
Luke S 751838f00e
Merge pull request #166 from lioncash/redundant
CGroundMovement: Collapse 'dampUnderwater ? 0.2f : 0.2f' conditional
2020-02-26 13:19:22 -05:00
Luke S 5fa244a058
Merge pull request #165 from lioncash/elastic
CGroundMovement: Set optsCopy's wall elastic constant to 0.03f
2020-02-26 13:17:18 -05:00
Lioncash 62330903cc CGroundMovement: Collapse 'dampUnderwater ? 0.2f : 0.2f' conditional
The conditional itself aside, in GM8E v0, this is always assigned as
0.2f.
2020-02-26 04:18:58 -05:00
Lioncash 6afcf634b0 CGroundMovement: Set optsCopy's wall elastic constant to 0.03f
In GM8E v0, the wall elastic constant of the copied SMovementOptions
instance is set to 0.03f.
2020-02-26 04:12:09 -05:00
Lioncash 2b4888dcb6 CMidiManager: std::move sequencer within SetAudioSysHandle()
Provides the same behavior but without a redundant reference count
increment and then decrement.
2020-02-26 03:16:11 -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
Luke S 83507f0226
Merge pull request #162 from lioncash/false
CAuxWeapon: Replace always false condition with false in Fire()
2020-02-25 14:42:14 -05:00
Luke S 5454fc213b
Merge pull request #161 from lioncash/return
CPlayer: Add missing return within UpdateOrbitModeTimer()
2020-02-25 14:19:32 -05:00
Luke Street ae591d4817 Add MP1_VARIABLE_DELTA_TIME option (for high refresh rates; buggy) 2020-02-25 14:15:53 -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 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 4ae3bca176
Merge pull request #159 from lioncash/constexpr
CJellyZap: Make kPlayerFilter constexpr
2020-02-24 21:35:54 -05:00
Lioncash c3294977ff CJellyZap: Make kPlayerFilter constexpr
This can be trivially made constexpr. We can also make this a fully
internally linked identifier.
2020-02-24 20:12:58 -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
Luke S 1d9224f55c
Merge pull request #156 from lioncash/moving
CSkinnedModel: std::move constructor arguments where applicable
2020-02-24 03:00:59 -05:00
Luke S 551be30b9e
Merge pull request #155 from lioncash/initializer
CGraphics: Silence missing initializer warning
2020-02-24 03:00:31 -05:00
Luke S c8291ee3dc
Merge pull request #154 from lioncash/constexpr
CSamusDoll: Minor changes
2020-02-24 03:00:11 -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
Lioncash 6c6df4d4ee CSkinnedModel: std::move constructor arguments where applicable
Fairly straightforward change. We can move the elements here to make use
of the move constructor over the copy constructor.
2020-02-24 02:36:44 -05:00
Lioncash 35ae2c2981 CGraphics: Silence missing initializer warning
Makes the initializer field for the aspect member explicit along with
the rest of the supplied values.
2020-02-24 02:28:27 -05:00
Lioncash 7e2ef9c8ea CSamusDoll: Eliminate variable shadowing in Draw() 2020-02-24 01:50:44 -05:00
Lioncash 9042dddc8c CSamusDoll: Make use of std::array where applicable
Makes the data strongly typed and also allows tooling runtime checks for
debug builds if implementations support it (which MSVC, libstdc++ and
libc++ all support).
2020-02-24 01:48:13 -05:00
Lioncash 61dff4367d CSamusDoll: Make use of an anonymous namespace
Makes a separate area for internally linked data.
2020-02-24 01:39:23 -05:00
Lioncash 08ebecdaaf CSamusDoll: Mark skInitialOffset as constexpr
Allows the vector to be initialized at compile-time.
2020-02-24 01:34:59 -05:00
Luke Street 16586c200b Merge branch 'pr-153' 2020-02-21 13:46:52 -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
Jcw87 e835528fe8 MSVC compile fixes. 2020-02-16 00:10:08 -08:00
Phillip Stephens f251c73e6a
Merge branch 'pr-151' 2020-02-13 14:17:40 -08:00
Lioncash da4dde2437 CAtomicBeta: Correct division arithmetic error in Think()
This is supposed to be a multiplication, not a division (at least this
is what v0-00 does).
2020-02-12 04:57:07 -05:00
Phillip Stephens 0bdad38175
Merge branch 'pr-150' 2020-02-11 20:05:07 -08:00
Lioncash 88f445c94d CParasite: Make static CMaterialList instances constexpr where applicable
Same behavior, but allows the data to be stored within the read-only
segment.
2020-02-11 09:33:58 -05:00
Lioncash 1edcbf7ec6 CMetaree: Set locomotion type to crouched if deactivated in InActive()
v0-00 sets this locomotion type when the deactivation flag is set.
2020-02-07 19:32:51 -05:00
Phillip Stephens 61f9adfa70
Merge branch 'pr-148' 2020-02-07 14:25:31 -08:00
Phillip Stephens 6501d56baa
Merge branch 'pr-147' 2020-02-07 14:24:21 -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
Lioncash d4245b016f CPuddleToadGamma: Migrate static constants into the cpp file
Makes the data fully internally-linked. This also allows declaring
skBellyOffset as constexpr.

While we're at it, we can also make the solid filter constexpr as well,
given it isn't modified anywhere. This allows the data to be placed
within the read-only segment and potentially gets rid of a runtime
static constructor.
2020-02-07 15:55:23 -05:00
Lioncash 0dd7e3e7bf CFlickerBat: Add missing SetMuted() call within Death()
v0-00 contains a call to SetMuted(false) in game code.
2020-02-07 09:38:56 -05:00
Phillip Stephens 330a1bff76
Merge pull request #145 from lioncash/blood-collision
CBloodFlower: Implement GetCollisionResponseType
2020-02-03 14:45:21 -08:00
Phillip Stephens 67e4c2e135
Merge pull request #144 from lioncash/blood-const
CBloodFlower: Mark sFireEffects as constexpr
2020-02-03 14:45:02 -08:00
Phillip Stephens 28ee845564
Merge pull request #143 from lioncash/steering
CWarWasp: Amend damping radius value within ApplyNormalSteering()
2020-02-03 14:44:39 -08: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 d1a714cf1a CBloodFlower: Implement GetCollisionResponseType
CBloodFlower seems to be missing the implementation from v0-00. This
change adds in its equivalent behavior.
2020-02-03 10:42:26 -05:00
Lioncash 855841607b CBloodFlower: Mark sFireEffects as constexpr
Allows the strings to be put into the read-only section of the binary
(and makes it explicit that the strings aren't modified).

While we're at it we can make use of std::array.
2020-02-03 10:14:19 -05:00
Lioncash f675bc3857 CWarWasp: Amend damping radius value within ApplyNormalSteering()
GM8E v0-00 uses 2.5 for the second Arrival() damping radius value, not 3.0.
2020-02-01 16:37:23 -05: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 918f1a9fcb
Merge pull request #136 from lioncash/rainsplash
CRainSplashGenerator: Amend lower bound constant for speed in SSplashLine::Update()
2020-01-30 20:12:11 -08: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 b1322a5613
Merge pull request #133 from lioncash/trunc-float
CTextParser: Resolve double->float truncation within ParseTag()
2020-01-30 20:11:39 -08:00
Phillip Stephens 0116e56332
Merge pull request #132 from lioncash/static-instance
CRealElement: Remove redundant instance() call in CRELifetimeTween::GetValue()
2020-01-30 20:11:24 -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
Phillip Stephens 9eb69dfd8b
Merge pull request #130 from lioncash/naming
CAutoMapper: Make SAutoMapperRenderState constructor parameter names more informative
2020-01-30 20:10:54 -08:00
Phillip Stephens 004d8bab22
Merge pull request #129 from lioncash/emplace
CGuiTextSupport: Make use of emplace_back() in AddText()
2020-01-30 20:10:41 -08:00
Lioncash 1aa24bd287 CRainSplashGenerator: Amend lower bound constant for speed in SSplashLine::Update()
Game code actually uses a constant of 4.0f as the lower bound for speed, not
0.015625f.
2020-01-30 22:20:49 -05: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 03f2ebc768 CTextParser: Resolve double->float truncation within ParseTag()
This should be prepended with the f suffix to prevent double to float
implicit truncation.
2020-01-29 02:26:50 -05: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 edf5511af4 CActor: Remove top-level const from GetScaledLocatorTransform() and GetLocatorTransform()
Same behavior, less code.
2020-01-29 01:50:31 -05:00
Lioncash 88cecd80ec CAutoMapper: In-class initialize SAutoMapperRenderState member variables
Simplifies the parameterized constructor a little bit and provides a
consistent initial state for the default constructor.
2020-01-28 13:29:59 -05:00
Lioncash 50fbd2ad42 CAutoMapper: Make SAutoMapperRenderState constructor parameter names more informative 2020-01-28 13:26:48 -05:00
Lioncash 7f20cd0883 CGuiTextSupport: Make use of emplace_back() in AddText()
Same behavior, less code.
2020-01-28 00:22:19 -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 516ea136f4
Merge pr-127 2020-01-20 20:05:21 -08:00
Phillip Stephens 8d90edd55f
Initial CChozoGhost imp 2020-01-20 20:00:40 -08:00
Lioncash b847930a85 CCameraManager: Collapse loop into std::find_if in RemoveCameraShaker
We can collapse the loop into a find_if call here, since it only does a
look up and nothing more.
2020-01-20 12:57:23 -05:00
Lioncash b3fcbf9a89 CCameraManager: Resolve signed/unsigned mismatch in RemoveCameraShaker
An unsigned value is passed into RemoveCameraShaker at its only usage
spot. This also resolves unsigned/signed comparisons within the function
itself.
2020-01-20 12:51:52 -05:00
Luke Street 72e068419f Merge branch 'pr-126' 2020-01-17 19:57:50 -05:00
Luke Street a66a965437 Merge branch 'pr-125' 2020-01-17 19:57:48 -05:00
Lioncash 9ce652bfd6 CNewIntroBoss: Correct base class call to DoUserAnimEvent()
This function actually calls CPatterned's implementation of
DoUserAnimEvent(), not CActor's.
2020-01-15 15:32:18 -05: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
Lioncash 1cb289f243 RuntimeCommon: Normalize cpp inclusions
Normalizes the headers for the cpp files in the RuntimeCommon target.
Now all headers and source files within the RuntimeCommon/RuntimeCommonB
targets are normalized and consistent with one another.
2020-01-15 09:15:47 -05:00
Phillip Stephens 677687f228
Merge branch 'master' of ssh+git://git.axiodl.com/AxioDL/urde 2020-01-05 20:25:21 -08:00
Phillip Stephens 841996a872
More work on CThardus 2020-01-05 20:24:54 -08:00
Luke Street 67d0fa55df Fix shriekbat damage 2020-01-02 19:54:59 -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 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 b507799478
Add texture info lookup 2019-12-11 00:37:30 -08:00
Phillip Stephens 1a13f7e4ee
Update submodules, initial CTextureCache 2019-12-10 20:51:33 -08:00
Phillip Stephens 4e5921c952
Update submodules 2019-12-10 20:51:23 -08: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 655dc01a06
Add support for override paks 2019-11-21 07:37:08 -08:00
Phillip Stephens b23575f2aa
Stop GCC's whining 2019-11-19 15:15: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 4762c7b832
Finish Ridley's AI function implementations 2019-11-14 08:39:20 -08:00
Phillip Stephens e059f224d4
Fix behavior translation, still needs work 2019-11-13 10:44:43 -08:00
Phillip Stephens 8881376195
Some ridley fixes 2019-11-13 09:58:49 -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 417506572c Graphics/Shaders/CCameraBlurFilter: Move Vert definition into cpp file
This is private and not used anywhere in the exposed interface, so this
can be moved into the cpp file to make it an implementation detail and
allow moving a zeus header into the cpp file.
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 21ed1b6660
Merge branch 'master' of ssh+git://git.axiodl.com/AxioDL/urde 2019-11-09 15:49:09 -08:00
Phillip Stephens 6c1f682e0f
Initial CRidley implementation 2019-11-09 15:48:46 -08:00
Lioncash 0546553f2d IOStreams: Replace CZipSupport with lambda functions
We can safely replace the class with direct lambda functions, given they
don't need to capture any state.
2019-11-09 02:57:39 -05:00
Lioncash 9a728a38d6 IOStreams: Use 1U when shifting bitmasks
Otherwise this is technically shifting a signed value, which can lead to
warnings. While we're at it, we can use UINT32_MAX instead of
0xFFFFFFFF to mean the same thing.
2019-11-08 19:05:45 -05:00
Lioncash 95a0b0e559 IOStreams: Remove reinterpret_casts where applicable
We can simply make use of writeBytes() where applicable, which does it
for us, which makes the code a slight bit less verbose.
2019-11-08 18:55:13 -05:00
Lioncash 3894c0539e IOStreams: Use fmt where applicable
Eliminates the use of printf and instead uses fmt so types can
automatically be formatted without the use of casts.

While we're at it, we can resolve a sign-conversion warning in
PrintBinary().
2019-11-08 18:51:07 -05:00
Lioncash cf8fe1861f IOStreams: Normalize cpp file inclusions 2019-11-08 18:45:31 -05: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 1a5179feb2
Fix CSpacePirate activating too early 2019-11-05 02:22:14 -08:00
Phillip Stephens b87f94802d
Merge pull request #120 from lioncash/collision
CCollisionResponseData: Minor changes
2019-10-30 01:13:40 -07:00
Phillip Stephens ec7f6804cb
Merge pull request #119 from lioncash/constexpr
CollisionPrimitive: Make collision primitive types constexpr capable
2019-10-30 01:13:31 -07:00
Lioncash fff7b90c85 CCollisionResponseData: In-class initialize primitives
Avoids needing to give them their own entry within the constructor
initializer list.
2019-10-29 19:43:23 -04:00
Lioncash 156c0e8cd0 CCollisionResponseData: Name parameters in function declarations
Allows IDEs and other introspection tools to be more useful when
indicating parameters in function calls.
2019-10-29 19:41:53 -04:00
Lioncash 9c391f90e3 CCollisionResponseData: Join vector initializations into constructor initializer list
Generally provides marginally better code generation.

We can also fill x10_sfx with the invalid SFX constant at the same time
instead of performing a resize and then filling it again.
2019-10-29 19:41:53 -04:00
Lioncash 3d67088697 CCollisionResponseData: Make use of std::array where applicable
Allows us to replace some heap allocating file-scope std::vector
instances with constexpr std::arrays, eliminating quite a few static
constructors.
2019-10-29 19:41:48 -04:00
Lioncash c1beec5bb0 CCollisionResponseData: Organize cpp inclusions
Organizes them alphabetically to make for better human reading.
2019-10-29 19:27:21 -04:00
Lioncash d7dd256d38 CollisionPrimitive: Make use of constexpr types where applicable
We can now mark some usages of these types as constexpr and also make
them fully internal to the translation unit.
2019-10-29 18:36:26 -04:00
Lioncash 5c7bb9e7d7 CollisionPrimitive: Make collisition primitive types and comparisons constexpr capable
Allows them to be used within constexpr contexts.
2019-10-29 18:36:21 -04: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 118fb22ce0
Merge pull request #117 from lioncash/layout
CCharLayoutInfo: Minor changes
2019-10-26 18:37:59 -07:00
Lioncash 30af6f0bfb CSegId: Make constexpr capable
Allows the class to be used within constexpr contexts, given it's such a
small class.
2019-10-26 21:36:30 -04:00
Lioncash 69831b4a13 CCharLayoutInfo: Make constructors explicit
Makes constructions of the types visibly explicit, given they aren't
conversion constructors.
2019-10-26 21:27:03 -04:00
Lioncash bb9da96870 CCharLayoutInfo: Invert conditional within GetFromParentUnrotated()
Inverts the conditional to be in terms of the true case, making it a
little nicer to read.
2019-10-26 21:24:10 -04:00
Lioncash 9193f4c4d7 CCharLayoutInfo: Make use of const where applicable
Makes trivial variables const to make it explicit that they aren't
modified.
2019-10-26 21:21:57 -04:00
Lioncash 293d19cf13 CCharLayoutInfo: std::move std::string instance in CCharLayoutInfo constructor
Avoids performing a copy (and by extension also avoids redundant
allocations).
2019-10-26 21:19:57 -04:00
Lioncash e7b0470f55 CCharLayoutInfo: Use heterogenous lookup with std::map
Allows using std::string_view with std::map without the need to
construct a completely new std::string instance. Making the lookups via
GetSegIdFromString() completely non-allocating.

Notably, this also allows it to properly function with
non-null-terminated string_view instances.
2019-10-26 21:17:49 -04:00
Phillip Stephens 0042e44521
Merge pull request #116 from lioncash/name
CParticleGenInfo: Use slightly more full names for parameters where applicable
2019-10-26 17:51:57 -07:00
Phillip Stephens 83c0ad1e72
Merge pull request #114 from lioncash/model
CModel: Implement CModelFlags' operator!= in terms of operator==
2019-10-26 17:51:40 -07:00
Phillip Stephens 5865552d7f
Merge pull request #113 from lioncash/artifact
CArtifactDoll: Minor changes
2019-10-26 17:51:30 -07:00
Lioncash bbdfe3d962 CParticleGenInfo: Provide slightly more full names for parameters where applicable
Makes Intellisense and any function highlighting systems a little more
informative.
2019-10-26 20:37:35 -04:00
Lioncash a82dd4f11f CParticleGenInfo: Name bool parameter for SetParticleEmission
Allows the parameter name to be visible in code completion and
highlighting.
2019-10-26 20:32:44 -04:00
Lioncash 8f28786048 CModel: Implement CModelFlags' operator!= in terms of operator==
Same behavior, less code.
2019-10-26 14:58:38 -04:00
Lioncash c4ad797953 CArtifactDoll: Collapse loop into std::all_of
Same thing, but directly stores to a variable.
2019-10-26 14:57:21 -04:00
Lioncash 7a8edc8d5e CArtifactDoll: Make use of std::array where applicable 2019-10-26 14:57:21 -04:00
Lioncash 26b24d604a CArtifactDoll: Make use of an anonymous namespace
Provides a unified section to place internally linked data.
2019-10-26 14:57:21 -04:00
Lioncash bea9c5bb74 CArtifactDoll: Organize cpp includes 2019-10-26 14:57:17 -04:00
Phillip Stephens 5efd827e99
Merge pull request #115 from lioncash/const
CAnimData: Remove usage of const_cast within Touch()
2019-10-24 22:47:14 -07:00
Phillip Stephens 246e233dce
Cleanup CPathFindArea 2019-10-24 22:44:37 -07:00
Lioncash eae1a1d06d CAnimData: Remove usage of const_cast within Touch()
We can just call the function normally without the need for a
const_cast.
2019-10-23 20:44:19 -04:00
Phillip Stephens 18382e5bb6
Merge pull request #112 from lioncash/emplace
rstl: Return reference to emplaced element in emplace_back()
2019-10-20 18:33:06 -07:00
Lioncash 18f64dac8d rstl: Amend unrelated clang-format discrepancies
Avoids others being hit by these if any changes in the header ever need
to be made in the future.
2019-10-19 02:06:33 -04:00
Lioncash 15e856404d rstl: Return reference to emplaced element in emplace_back()
Follows the behavior of the C++17 variant of emplace_back, which returns
a reference to the emplaced element.

This allows eliminating cases like:

container.emplace_back(some, things, arguments);
container.back().blah();

... // subsequent modifications to the element

given we can just retrieve the reference from the emplace_back call.
2019-10-19 02:05:09 -04: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
Phillip Stephens 6a3eba0091
Merge pull request #103 from lioncash/unique
CParticleDataFactory: Use unique_ptr where applicable
2019-10-18 01:01:40 -07:00
Phillip Stephens c63ee167da
Merge pull request #110 from lioncash/override
MkCastTo: Use override where applicable
2019-10-18 01:00:31 -07:00
Lioncash 853df176ed MkCastTo: Use override where applicable
Generates the derived classes with the override specifier to prevent
warnings.
2019-10-17 22:15:25 -04:00
Lioncash 3a0daa3ab9 CLogBookScreen: Use forward declarations where applicable
Allows for avoiding the over exposing of types through the header when
included in other translation units or headers.
2019-10-15 10:25:43 -04:00
Lioncash 5b8f3f6693 CLogBookScreen: Organize cpp includes
Tidies them up to be consistent with its header.
2019-10-15 10:13:30 -04:00
Lioncash 4db0e49851 CLogBookScreen: Invert conditional within UpdateBodyText()
Allows unindenting the contained code by one level.
2019-10-15 10:05:53 -04:00
Lioncash b93f7a4ceb CLogBookScreen: Use std::u16string's append() member instead of operator+
Appends to the existing buffer instead of constructing a superfluous
temporary.
2019-10-15 10:03:54 -04:00
Lioncash d64824d3e5 CLogBookScreen: Make use of std::any_of within IsScanCategoryReady()
Same thing but collapses into a single return.
2019-10-15 10:00:15 -04:00
Lioncash 251a2a7723 CLogBookScreen: Make use of structured bindings where applicable
Allows decomposing long pair names into their constituent elements
2019-10-15 09:57:24 -04:00
Lioncash f21ee0786a CLogBookScreen: Make signed/unsigned/FP conversions explicit
Silences warnings relating to signed/unsigned comparisons and
conversions to floating-point types.
2019-10-15 09:36:10 -04:00
Lioncash 3951a07bfa CLogBookScreen: Dehardcode constants where applicable
We can just query the containers for the iteration value
2019-10-15 09:16:13 -04:00
Lioncash 4b78d51a85 CLogBookScreen: Use emplace_back where applicable
Allows simplifying code and constructing elements in place instead of
copying them (which is what would occur with the defautl move
constructor).
2019-10-15 07:22:01 -04:00
Phillip Stephens 76f90569ca
Merge pull request #108 from lioncash/case
CAutoMapper: Collapse case statements in ProcessMapZoomInput()
2019-10-13 13:12:20 -07:00
Lioncash 040c724a8a CAutoMapper: Collapse case statements in ProcessMapZoomInput()
Same behavior as the game executable, but without the code duplication.
2019-10-12 13:57:01 -04:00
Phillip Stephens 668f8da97d
Merge pull request #106 from lioncash/find
CCollisionPrimitive: Simplify the InitAdd* member functions
2019-10-12 07:29:13 -07:00
Phillip Stephens 6996ebfbec
Merge pull request #105 from lioncash/collision
CCollisionPrimitive: Minor cleanup
2019-10-12 07:29:04 -07:00
Phillip Stephens aa956fff55
Merge pull request #104 from lioncash/cuv
CUVElement: Provide initial value for cv in GetValueUV()
2019-10-12 07:28:54 -07:00
Lioncash 21c1ed2940 CBallCamera: Use bool instead of float for holding boolean value
Using a float is very suspect and also more expensive in terms of
code-gen to access and modify the variable.
2019-10-12 02:25:24 -04:00
Lioncash 5f4aba60e1 CCollisionPrimitive: Simplify the InitAdd* member functions
We can extract the duplicated behavior out into its own member function
and then reuse it in order to deduplicate repeated behavior.

This allows simplifying the member functions in a manner that allows
declaring most of the variables const. The lack of mutable behavior
within these functions makes it much nicer to read.
2019-10-12 00:27:18 -04:00
Lioncash d2a44dbc0b CollidableAABox: Default destructor
Same behavior, but remains consistent with the rest of the codebase.
2019-10-11 22:53:01 -04:00
Lioncash da4a33f01a CCollisionPrimitive: Default virtual destructor
Same behavior, but more consistent with the existing interface, given
a constructor is defaulted.
2019-10-11 22:39:58 -04:00
Lioncash 9cbe8ba885 CCollisionPrimitive: Use using for type aliases where applicable
Same behavior, better readability.
2019-10-11 22:36:57 -04: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
Phillip Stephens 5f0f3ea45c
More tweak CVars 2019-10-05 07:07:13 -07: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 d4b9124b9f rstl: Allow move constructors and assignment operators to be conditionally noexcept
Makes the constructors and assignment operators for reserved_vector
noexcept, allowing them to play nicely with standard facilities and
avoid needing to copy construct where avoidable.
2019-10-04 01:28:27 -04:00
Lioncash b2d9283b3c rstl: Provide full set of type aliases in reserved_vector
Allows for better integration with standard library facilities and
templates, now that types can be queried.
2019-10-04 00:43:47 -04:00
Lioncash 00a4df5aa6 rstl: Make use of variable templates where applicable
While we're at it, we can use if constexpr on some conditional checks.
2019-10-04 00:20:31 -04:00
Lioncash cbcba6f184 rstl: Organize headers
We can also make includes a little nicer for the compiler by only
including logvisor headers when performing debug builds.
2019-10-04 00:08:46 -04:00
Phillip Stephens b9b9eddd1e
Merge pull request #99 from lioncash/typo
CElementGen: Correct FourCC in SetTranslation()
2019-10-03 07:01:31 -07: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 67cd0d44c6 CAtomicBeta: Make skBombLocators an internal array
Like with CAtomicAlpha, we can also fully hide this array from external
view by making it internally linked.
2019-10-03 01:34:45 -04:00
Lioncash abe8b9510b CAtomicBeta: Organize cpp includes 2019-10-03 01:30:04 -04:00
Lioncash e0e38b569e CAtomicAlpha: Remove .data() call in SBomb constructor
We can just use the std::string_view constructor for std::string, which
eliminates an unnecessary strlen call.
2019-10-03 01:26:50 -04:00
Lioncash 18eb2b73b1 CAtomicAlpha: Use emplace_back where applicable
Simplifies the construction of the SBomb instances, while also
constructing in place.
2019-10-03 01:26:50 -04:00
Lioncash c882003d37 CAtomicAlpha: Make skBombLocators an internal array
This is only used within the cpp file, so we can relocate its definition
there to make it fully internally-linked.
2019-10-03 01:26:50 -04:00
Lioncash ee791d6a37 CAtomicAlpha: Organize cpp includes 2019-10-03 01:26:42 -04:00
Lioncash 44306ab528 CAutoMapper: Eliminate cases of variable shadowing
Silences two variable shadowing warnings.
2019-10-01 22:43:23 -04:00
Lioncash 3383e65761 CAutoMapper: Use size_t instead of u32 as loop variable type where applicable
Uses the same sized type as the .size() call to prevent potential
overflow false-positives.
2019-10-01 22:40:13 -04:00
Lioncash eca34bede5 CAutoMapper: Use emplace_back where applicable
Allows for in-place construction.
2019-10-01 22:37:52 -04:00
Lioncash 23ca919c18 CAutoMapper: Use std::array where applicable 2019-10-01 22:31:07 -04:00
Lioncash a5d18002be CAutoMapper: Organize cpp includes 2019-10-01 22:12:15 -04:00
Phillip Stephens b38ba6b636
Revert static_cast in MkCastTo.py 2019-10-01 07:27:20 -07:00
Phillip Stephens df9b8bc05d
Merge pull request #90 from lioncash/noexcept
RetroTypes: Make functions noexcept where applicable
2019-10-01 06:44:39 -07:00
Phillip Stephens 60ecede3fd
Merge pull request #91 from lioncash/string
CAudioSys: Minor cleanup
2019-10-01 06:44:26 -07:00
Phillip Stephens be2da2f363
Merge pull request #92 from lioncash/fwd
ICollisionFilter: Use forward declarations where applicable
2019-10-01 06:44:08 -07:00
Phillip Stephens 7d2ad7b1b2
Merge pull request #93 from lioncash/loop
CSlideShow: Use ranged for loops in constructor
2019-10-01 06:43:56 -07:00
Phillip Stephens 6bcdf98eeb
Merge pull request #94 from lioncash/default
CIOWin: Default the virtual destructor
2019-10-01 06:43:45 -07:00