mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-07-09 16:05:52 +00:00
CScriptPlatform: Fix AddRider assign to copy
This commit is contained in:
parent
4d3050cac4
commit
1dc90f78d3
@ -24,19 +24,19 @@ static CMaterialList MakePlatformMaterialList() {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
CScriptPlatform::CScriptPlatform(
|
CScriptPlatform::CScriptPlatform(TUniqueId uid, std::string_view name, const CEntityInfo& info,
|
||||||
TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData,
|
const zeus::CTransform& xf, CModelData&& mData, const CActorParameters& actParms,
|
||||||
const CActorParameters& actParms, const zeus::CAABox& aabb, float speed, bool detectCollision, float xrayAlpha,
|
const zeus::CAABox& aabb, float speed, bool detectCollision, float xrayAlpha,
|
||||||
bool active, const CHealthInfo& hInfo, const CDamageVulnerability& dVuln,
|
bool active, const CHealthInfo& hInfo, const CDamageVulnerability& dVuln,
|
||||||
const std::optional<TLockedToken<CCollidableOBBTreeGroupContainer>>& dcln, bool rainSplashes,
|
std::optional<TLockedToken<CCollidableOBBTreeGroupContainer>> dcln,
|
||||||
u32 maxRainSplashes, u32 rainGenRate)
|
bool rainSplashes, u32 maxRainSplashes, u32 rainGenRate)
|
||||||
: CPhysicsActor(uid, active, name, info, xf, std::move(mData), MakePlatformMaterialList(), aabb, SMoverData(15000.f),
|
: CPhysicsActor(uid, active, name, info, xf, std::move(mData), MakePlatformMaterialList(), aabb, SMoverData(15000.f),
|
||||||
actParms, 0.3f, 0.1f)
|
actParms, 0.3f, 0.1f)
|
||||||
, x25c_currentSpeed(speed)
|
, x25c_currentSpeed(speed)
|
||||||
, x28c_initialHealth(hInfo)
|
, x28c_initialHealth(hInfo)
|
||||||
, x294_health(hInfo)
|
, x294_health(hInfo)
|
||||||
, x29c_damageVuln(dVuln)
|
, x29c_damageVuln(dVuln)
|
||||||
, x304_treeGroupContainer(dcln) {
|
, x304_treeGroupContainer(std::move(dcln)) {
|
||||||
x348_xrayAlpha = xrayAlpha;
|
x348_xrayAlpha = xrayAlpha;
|
||||||
x34c_maxRainSplashes = maxRainSplashes;
|
x34c_maxRainSplashes = maxRainSplashes;
|
||||||
x350_rainGenRate = rainGenRate;
|
x350_rainGenRate = rainGenRate;
|
||||||
@ -374,7 +374,8 @@ void CScriptPlatform::BuildSlaveList(CStateManager& mgr) {
|
|||||||
|
|
||||||
void CScriptPlatform::AddRider(std::vector<SRiders>& riders, TUniqueId riderId, const CPhysicsActor* ridee,
|
void CScriptPlatform::AddRider(std::vector<SRiders>& riders, TUniqueId riderId, const CPhysicsActor* ridee,
|
||||||
CStateManager& mgr) {
|
CStateManager& mgr) {
|
||||||
auto search = std::find_if(riders.begin(), riders.end(), [riderId](const SRiders& r) { return r.x0_uid == riderId; });
|
const auto& search =
|
||||||
|
std::find_if(riders.begin(), riders.end(), [riderId](const SRiders& r) { return r.x0_uid == riderId; });
|
||||||
if (search == riders.end()) {
|
if (search == riders.end()) {
|
||||||
zeus::CTransform xf;
|
zeus::CTransform xf;
|
||||||
if (TCastToPtr<CPhysicsActor> act = mgr.ObjectById(riderId)) {
|
if (TCastToPtr<CPhysicsActor> act = mgr.ObjectById(riderId)) {
|
||||||
@ -388,7 +389,7 @@ void CScriptPlatform::AddRider(std::vector<SRiders>& riders, TUniqueId riderId,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CScriptPlatform::AddSlave(TUniqueId id, CStateManager& mgr) {
|
void CScriptPlatform::AddSlave(TUniqueId id, CStateManager& mgr) {
|
||||||
auto search = std::find_if(x338_slavesDynamic.begin(), x338_slavesDynamic.end(),
|
const auto& search = std::find_if(x338_slavesDynamic.begin(), x338_slavesDynamic.end(),
|
||||||
[id](const SRiders& r) { return r.x0_uid == id; });
|
[id](const SRiders& r) { return r.x0_uid == id; });
|
||||||
if (search == x338_slavesDynamic.end()) {
|
if (search == x338_slavesDynamic.end()) {
|
||||||
if (TCastToPtr<CActor> act = mgr.ObjectById(id)) {
|
if (TCastToPtr<CActor> act = mgr.ObjectById(id)) {
|
||||||
|
@ -31,7 +31,7 @@ struct SRiders {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class CScriptPlatform : public CPhysicsActor {
|
class CScriptPlatform : public CPhysicsActor {
|
||||||
u32 x254_;
|
// u32 x254_;
|
||||||
TUniqueId x258_currentWaypoint = kInvalidUniqueId;
|
TUniqueId x258_currentWaypoint = kInvalidUniqueId;
|
||||||
TUniqueId x25a_targetWaypoint = kInvalidUniqueId;
|
TUniqueId x25a_targetWaypoint = kInvalidUniqueId;
|
||||||
float x25c_currentSpeed;
|
float x25c_currentSpeed;
|
||||||
@ -83,7 +83,7 @@ public:
|
|||||||
CModelData&& mData, const CActorParameters& actParms, const zeus::CAABox& aabb, float speed,
|
CModelData&& mData, const CActorParameters& actParms, const zeus::CAABox& aabb, float speed,
|
||||||
bool detectCollision, float xrayAlpha, bool active, const CHealthInfo& hInfo,
|
bool detectCollision, float xrayAlpha, bool active, const CHealthInfo& hInfo,
|
||||||
const CDamageVulnerability& dVuln,
|
const CDamageVulnerability& dVuln,
|
||||||
const std::optional<TLockedToken<CCollidableOBBTreeGroupContainer>>& dcln, bool rainSplashes,
|
std::optional<TLockedToken<CCollidableOBBTreeGroupContainer>> dcln, bool rainSplashes,
|
||||||
u32 maxRainSplashes, u32 rainGenRate);
|
u32 maxRainSplashes, u32 rainGenRate);
|
||||||
|
|
||||||
void Accept(IVisitor& visitor) override;
|
void Accept(IVisitor& visitor) override;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user