2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 23:07:42 +00:00

Initial CFlameThrower imps

This commit is contained in:
2019-04-16 01:00:46 -07:00
parent 1f10769af3
commit 28071851ad
9 changed files with 87 additions and 15 deletions

View File

@@ -542,10 +542,28 @@ void CScriptSpecialFunction::ThinkIntroBossRingController(float dt, CStateManage
}
}
void CScriptSpecialFunction::ThinkPlayerFollowLocator(float, CStateManager&) {}
void CScriptSpecialFunction::ThinkPlayerFollowLocator(float, CStateManager& mgr) {
for (const SConnection& conn : GetConnectionList()) {
if (conn.x0_state == EScriptObjectState::Play && conn.x4_msg == EScriptObjectMessage::Activate) {
auto search = mgr.GetIdListForScript(conn.x8_objId);
for (auto it = search.first; it != search.second; ++it) {
if (TCastToConstPtr<CActor> act = mgr.GetObjectById(it->second)) {
zeus::CTransform xf = act->GetTransform() * act->GetLocatorTransform(xec_locatorName);
CPlayer& pl = mgr.GetPlayer();
pl.SetTransform(xf);
pl.SetVelocityWR({});
pl.SetAngularVelocityWR({});
pl.ClearForcesAndTorques();
return;
}
}
}
}
}
void CScriptSpecialFunction::ThinkSpinnerController(float, CStateManager&,
CScriptSpecialFunction::ESpinnerControllerMode) {}
void CScriptSpecialFunction::ThinkSpinnerController(float, CStateManager&, ESpinnerControllerMode) {
}
void CScriptSpecialFunction::ThinkObjectFollowLocator(float, CStateManager& mgr) {
TUniqueId followerAct = kInvalidUniqueId;