mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-21 07:11:16 +00:00
Match functions to BETA
This commit is contained in:
parent
6b3fcafbe1
commit
5f297218fc
@ -30,6 +30,7 @@ DECOMP_SIZE_ASSERT(Matrix4, 0x08)
|
|||||||
DECOMP_SIZE_ASSERT(MxMatrix, 0x48)
|
DECOMP_SIZE_ASSERT(MxMatrix, 0x48)
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10001e60
|
// FUNCTION: LEGO1 0x10001e60
|
||||||
|
// FUNCTION: BETA10 0x1002a0d0
|
||||||
Helicopter::Helicopter()
|
Helicopter::Helicopter()
|
||||||
{
|
{
|
||||||
m_maxLinearVel = 60;
|
m_maxLinearVel = 60;
|
||||||
@ -43,6 +44,7 @@ Helicopter::~Helicopter()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100032c0
|
// FUNCTION: LEGO1 0x100032c0
|
||||||
|
// FUNCTION: BETA10 0x1002a16d
|
||||||
MxResult Helicopter::Create(MxDSAction& p_dsAction)
|
MxResult Helicopter::Create(MxDSAction& p_dsAction)
|
||||||
{
|
{
|
||||||
MxResult result = IslePathActor::Create(p_dsAction);
|
MxResult result = IslePathActor::Create(p_dsAction);
|
||||||
@ -52,6 +54,8 @@ MxResult Helicopter::Create(MxDSAction& p_dsAction)
|
|||||||
((Act3*) m_world)->SetHelicopter(this);
|
((Act3*) m_world)->SetHelicopter(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(m_world);
|
||||||
|
|
||||||
if (m_world != NULL) {
|
if (m_world != NULL) {
|
||||||
m_world->Add(this);
|
m_world->Add(this);
|
||||||
}
|
}
|
||||||
@ -61,6 +65,7 @@ MxResult Helicopter::Create(MxDSAction& p_dsAction)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10003320
|
// FUNCTION: LEGO1 0x10003320
|
||||||
|
// FUNCTION: BETA10 0x1002a240
|
||||||
void Helicopter::CreateState()
|
void Helicopter::CreateState()
|
||||||
{
|
{
|
||||||
m_state = (HelicopterState*) GameState()->GetState("HelicopterState");
|
m_state = (HelicopterState*) GameState()->GetState("HelicopterState");
|
||||||
@ -70,8 +75,11 @@ void Helicopter::CreateState()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10003360
|
// FUNCTION: LEGO1 0x10003360
|
||||||
|
// FUNCTION: BETA10 0x1002a29a
|
||||||
void Helicopter::Exit()
|
void Helicopter::Exit()
|
||||||
{
|
{
|
||||||
|
assert(UserActor() == this);
|
||||||
|
|
||||||
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
|
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
|
||||||
SpawnPlayer(
|
SpawnPlayer(
|
||||||
LegoGameState::e_unk40,
|
LegoGameState::e_unk40,
|
||||||
@ -110,6 +118,7 @@ void Helicopter::Exit()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10003480
|
// FUNCTION: LEGO1 0x10003480
|
||||||
|
// FUNCTION: BETA10 0x1002a3db
|
||||||
MxLong Helicopter::HandleClick()
|
MxLong Helicopter::HandleClick()
|
||||||
{
|
{
|
||||||
if (!FUN_1003ef60()) {
|
if (!FUN_1003ef60()) {
|
||||||
@ -118,6 +127,7 @@ MxLong Helicopter::HandleClick()
|
|||||||
|
|
||||||
if (!m_world) {
|
if (!m_world) {
|
||||||
m_world = CurrentWorld();
|
m_world = CurrentWorld();
|
||||||
|
assert(m_world);
|
||||||
}
|
}
|
||||||
|
|
||||||
AnimationManager()->FUN_1005f6d0(FALSE);
|
AnimationManager()->FUN_1005f6d0(FALSE);
|
||||||
@ -163,6 +173,8 @@ MxLong Helicopter::HandleClick()
|
|||||||
MxLong Helicopter::HandleControl(LegoControlManagerNotificationParam& p_param)
|
MxLong Helicopter::HandleControl(LegoControlManagerNotificationParam& p_param)
|
||||||
{
|
{
|
||||||
MxLong result = 0;
|
MxLong result = 0;
|
||||||
|
|
||||||
|
assert(m_world);
|
||||||
MxAtomId script;
|
MxAtomId script;
|
||||||
|
|
||||||
switch (GameState()->GetCurrentAct()) {
|
switch (GameState()->GetCurrentAct()) {
|
||||||
@ -199,9 +211,10 @@ MxLong Helicopter::HandleControl(LegoControlManagerNotificationParam& p_param)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Act1State* state = (Act1State*) GameState()->GetState("Act1State");
|
Act1State* act1State = (Act1State*) GameState()->GetState("Act1State");
|
||||||
|
assert(act1State);
|
||||||
if (m_state->m_unk0x08 == 0) {
|
if (m_state->m_unk0x08 == 0) {
|
||||||
state->m_unk0x018 = 4;
|
act1State->m_unk0x018 = 4;
|
||||||
m_state->m_unk0x08 = 1;
|
m_state->m_unk0x08 = 1;
|
||||||
m_world->RemoveActor(this);
|
m_world->RemoveActor(this);
|
||||||
InvokeAction(Extra::ActionType::e_start, script, IsleScript::c_HelicopterTakeOff_Anim, NULL);
|
InvokeAction(Extra::ActionType::e_start, script, IsleScript::c_HelicopterTakeOff_Anim, NULL);
|
||||||
@ -303,9 +316,9 @@ MxLong Helicopter::HandleEndAnim(LegoEndAnimNotificationParam& p_param)
|
|||||||
switch (m_state->m_unk0x08) {
|
switch (m_state->m_unk0x08) {
|
||||||
case 1: {
|
case 1: {
|
||||||
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
|
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
|
||||||
Act1State* act1state = (Act1State*) GameState()->GetState("Act1State");
|
Act1State* act1State = (Act1State*) GameState()->GetState("Act1State");
|
||||||
assert(act1state);
|
assert(act1State);
|
||||||
act1state->m_unk0x018 = 4;
|
act1State->m_unk0x018 = 4;
|
||||||
SpawnPlayer(
|
SpawnPlayer(
|
||||||
LegoGameState::e_unk42,
|
LegoGameState::e_unk42,
|
||||||
TRUE,
|
TRUE,
|
||||||
@ -344,9 +357,9 @@ MxLong Helicopter::HandleEndAnim(LegoEndAnimNotificationParam& p_param)
|
|||||||
m_world->GetCameraController()->SetWorldTransform(at, dir, up);
|
m_world->GetCameraController()->SetWorldTransform(at, dir, up);
|
||||||
|
|
||||||
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
|
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
|
||||||
Act1State* act1state = (Act1State*) GameState()->GetState("Act1State");
|
Act1State* act1State = (Act1State*) GameState()->GetState("Act1State");
|
||||||
assert(act1state);
|
assert(act1State);
|
||||||
act1state->m_unk0x018 = 0;
|
act1State->m_unk0x018 = 0;
|
||||||
SpawnPlayer(
|
SpawnPlayer(
|
||||||
LegoGameState::e_unk41,
|
LegoGameState::e_unk41,
|
||||||
TRUE,
|
TRUE,
|
||||||
@ -423,7 +436,7 @@ void Helicopter::Animate(float p_time)
|
|||||||
((Act3*) m_world)->FUN_10073430();
|
((Act3*) m_world)->FUN_10073430();
|
||||||
}
|
}
|
||||||
|
|
||||||
LegoPathActor::m_actorState = c_disabled;
|
SetActorState(c_disabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@ -164,9 +164,8 @@ inline int UnknownMx4DPointFloat::BETA_1004aaa0(Matrix4& p_matrix, float p_f)
|
|||||||
if (FUN_100040a0(v, p_f) == 0) {
|
if (FUN_100040a0(v, p_f) == 0) {
|
||||||
return p_matrix.FromQuaternion(v);
|
return p_matrix.FromQuaternion(v);
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10004520
|
// FUNCTION: LEGO1 0x10004520
|
||||||
@ -201,12 +200,14 @@ inline int UnknownMx4DPointFloat::FUN_100040a0(Vector4& p_v, float p_f)
|
|||||||
p_v[3] = (1.0 - p_f) * acos((double) p_v[3]) * 2.0;
|
p_v[3] = (1.0 - p_f) * acos((double) p_v[3]) * 2.0;
|
||||||
return p_v.NormalizeQuaternion();
|
return p_v.NormalizeQuaternion();
|
||||||
}
|
}
|
||||||
else if (m_unk0x30 == c_bit2) {
|
|
||||||
|
if (m_unk0x30 == c_bit2) {
|
||||||
p_v = m_unk0x18;
|
p_v = m_unk0x18;
|
||||||
p_v[3] = p_f * acos((double) p_v[3]) * 2.0;
|
p_v[3] = p_f * acos((double) p_v[3]) * 2.0;
|
||||||
return p_v.NormalizeQuaternion();
|
return p_v.NormalizeQuaternion();
|
||||||
}
|
}
|
||||||
else if (m_unk0x30 == (c_bit1 | c_bit2)) {
|
|
||||||
|
if (m_unk0x30 == (c_bit1 | c_bit2)) {
|
||||||
int i;
|
int i;
|
||||||
double d1 = p_v.Dot(m_unk0x00, m_unk0x18);
|
double d1 = p_v.Dot(m_unk0x00, m_unk0x18);
|
||||||
double a;
|
double a;
|
||||||
@ -243,9 +244,8 @@ inline int UnknownMx4DPointFloat::FUN_100040a0(Vector4& p_v, float p_f)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // MXGEOMETRY3D_H
|
#endif // MXGEOMETRY3D_H
|
||||||
|
|||||||
@ -286,8 +286,9 @@ inline int Matrix4::FromQuaternion(const Vector4& p_vec)
|
|||||||
m_data[2][3] = 0;
|
m_data[2][3] = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1005a590
|
// FUNCTION: BETA10 0x1005a590
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user