mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-11 18:41:14 +00:00
Merge remote-tracking branch 'isle/master'
This commit is contained in:
commit
c0e41a8ef6
@ -13,7 +13,7 @@ struct LegoPathEdgeContainer;
|
|||||||
struct LegoOrientedEdge;
|
struct LegoOrientedEdge;
|
||||||
class LegoWEEdge;
|
class LegoWEEdge;
|
||||||
|
|
||||||
extern MxLong g_unk0x100f3308;
|
extern MxLong g_timeLastHitSoundPlayed;
|
||||||
extern const char* g_strHIT_WALL_SOUND;
|
extern const char* g_strHIT_WALL_SOUND;
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d6e28
|
// VTABLE: LEGO1 0x100d6e28
|
||||||
|
|||||||
@ -144,10 +144,10 @@ class LegoRaceCar : public LegoCarRaceActor, public LegoRaceMap {
|
|||||||
MxResult VTable0x9c() override; // vtable+0x9c
|
MxResult VTable0x9c() override; // vtable+0x9c
|
||||||
|
|
||||||
virtual void SetMaxLinearVelocity(float p_maxLinearVelocity);
|
virtual void SetMaxLinearVelocity(float p_maxLinearVelocity);
|
||||||
virtual void FUN_10012ff0(float p_param);
|
virtual void KickCamera(float p_param);
|
||||||
virtual MxU32 HandleSkeletonKicks(float p_param1);
|
virtual MxU32 HandleSkeletonKicks(float p_param1);
|
||||||
|
|
||||||
static void FUN_10012de0();
|
static void InitYouCantStopSound();
|
||||||
static void InitSoundIndices();
|
static void InitSoundIndices();
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x10014240
|
// SYNTHETIC: LEGO1 0x10014240
|
||||||
@ -155,7 +155,7 @@ class LegoRaceCar : public LegoCarRaceActor, public LegoRaceMap {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
undefined m_userState; // 0x54
|
undefined m_userState; // 0x54
|
||||||
float m_unk0x58; // 0x58
|
float m_kickStart; // 0x58
|
||||||
Mx3DPointFloat m_unk0x5c; // 0x5c
|
Mx3DPointFloat m_unk0x5c; // 0x5c
|
||||||
|
|
||||||
// Names verified by BETA10 0x100cb4a9
|
// Names verified by BETA10 0x100cb4a9
|
||||||
|
|||||||
@ -44,8 +44,11 @@ class LegoCarRaceActor : public virtual LegoRaceActor {
|
|||||||
Vector3& p_v3
|
Vector3& p_v3
|
||||||
) override; // vtable+0x6c
|
) override; // vtable+0x6c
|
||||||
void Animate(float p_time) override; // vtable+0x70
|
void Animate(float p_time) override; // vtable+0x70
|
||||||
void SwitchBoundary(LegoPathBoundary*& p_boundary, LegoOrientedEdge*& p_edge, float& p_unk0xe4)
|
void SwitchBoundary(
|
||||||
override; // vtable+0x98
|
LegoPathBoundary*& p_boundary,
|
||||||
|
LegoOrientedEdge*& p_edge,
|
||||||
|
float& p_unk0xe4
|
||||||
|
) override; // vtable+0x98
|
||||||
MxResult VTable0x9c() override; // vtable+0x9c
|
MxResult VTable0x9c() override; // vtable+0x9c
|
||||||
|
|
||||||
// LegoCarRaceActor vtable
|
// LegoCarRaceActor vtable
|
||||||
@ -83,7 +86,7 @@ class LegoCarRaceActor : public virtual LegoRaceActor {
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
MxFloat m_unk0x08; // 0x08
|
MxFloat m_unk0x08; // 0x08
|
||||||
MxU8 m_unk0x0c; // 0x0c
|
MxU8 m_animState; // 0x0c
|
||||||
|
|
||||||
// Could be a multiplier for the maximum speed when going straight
|
// Could be a multiplier for the maximum speed when going straight
|
||||||
MxFloat m_unk0x10; // 0x10
|
MxFloat m_unk0x10; // 0x10
|
||||||
|
|||||||
@ -636,7 +636,7 @@ MxBool LegoCharacterManager::SetHeadTexture(LegoROI* p_roi, LegoTextureInfo* p_t
|
|||||||
LegoLOD* clone = lod->Clone(renderer);
|
LegoLOD* clone = lod->Clone(renderer);
|
||||||
|
|
||||||
if (p_texture != NULL) {
|
if (p_texture != NULL) {
|
||||||
clone->FUN_100aad70(p_texture);
|
clone->UpdateTextureInfo(p_texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
dupLodList->PushBack(clone);
|
dupLodList->PushBack(clone);
|
||||||
|
|||||||
@ -37,7 +37,7 @@ const char* g_strHIT_WALL_SOUND = "HIT_WALL_SOUND";
|
|||||||
|
|
||||||
// GLOBAL: LEGO1 0x100f3308
|
// GLOBAL: LEGO1 0x100f3308
|
||||||
// GLOBAL: BETA10 0x101f1e1c
|
// GLOBAL: BETA10 0x101f1e1c
|
||||||
MxLong g_unk0x100f3308 = 0;
|
MxLong g_timeLastHitSoundPlayed = 0;
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1002d700
|
// FUNCTION: LEGO1 0x1002d700
|
||||||
// FUNCTION: BETA10 0x100ae6e0
|
// FUNCTION: BETA10 0x100ae6e0
|
||||||
@ -292,8 +292,8 @@ MxS32 LegoPathActor::VTable0x8c(float p_time, Matrix4& p_transform)
|
|||||||
if (m_boundary == oldBoundary) {
|
if (m_boundary == oldBoundary) {
|
||||||
MxLong time = Timer()->GetTime();
|
MxLong time = Timer()->GetTime();
|
||||||
|
|
||||||
if (time - g_unk0x100f3308 > 1000) {
|
if (time - g_timeLastHitSoundPlayed > 1000) {
|
||||||
g_unk0x100f3308 = time;
|
g_timeLastHitSoundPlayed = time;
|
||||||
const char* var = VariableTable()->GetVariable(g_strHIT_WALL_SOUND);
|
const char* var = VariableTable()->GetVariable(g_strHIT_WALL_SOUND);
|
||||||
|
|
||||||
if (var && var[0] != 0) {
|
if (var && var[0] != 0) {
|
||||||
|
|||||||
@ -246,7 +246,7 @@ MxLong CarRace::HandlePathStruct(LegoPathStructNotificationParam& p_param)
|
|||||||
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
||||||
NavController()->SetDeadZone(NavController()->GetDefaultDeadZone());
|
NavController()->SetDeadZone(NavController()->GetDefaultDeadZone());
|
||||||
NavController()->SetTrackDefault(1);
|
NavController()->SetTrackDefault(1);
|
||||||
LegoRaceCar::FUN_10012de0();
|
LegoRaceCar::InitYouCantStopSound();
|
||||||
m_raceState->m_unk0x28 = 2;
|
m_raceState->m_unk0x28 = 2;
|
||||||
|
|
||||||
RaceState::Entry* raceState = m_raceState->GetState(GameState()->GetActorId());
|
RaceState::Entry* raceState = m_raceState->GetState(GameState()->GetActorId());
|
||||||
@ -348,7 +348,7 @@ MxLong CarRace::HandleClick(LegoEventNotificationParam& p_param)
|
|||||||
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
||||||
NavController()->SetDeadZone(NavController()->GetDefaultDeadZone());
|
NavController()->SetDeadZone(NavController()->GetDefaultDeadZone());
|
||||||
NavController()->SetTrackDefault(1);
|
NavController()->SetTrackDefault(1);
|
||||||
LegoRaceCar::FUN_10012de0();
|
LegoRaceCar::InitYouCantStopSound();
|
||||||
m_destLocation = LegoGameState::e_infomain;
|
m_destLocation = LegoGameState::e_infomain;
|
||||||
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
|
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
|
||||||
GameState()->GetBackgroundColor()->SetValue("reset");
|
GameState()->GetBackgroundColor()->SetValue("reset");
|
||||||
@ -360,7 +360,7 @@ MxLong CarRace::HandleClick(LegoEventNotificationParam& p_param)
|
|||||||
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
||||||
NavController()->SetDeadZone(NavController()->GetDefaultDeadZone());
|
NavController()->SetDeadZone(NavController()->GetDefaultDeadZone());
|
||||||
NavController()->SetTrackDefault(1);
|
NavController()->SetTrackDefault(1);
|
||||||
LegoRaceCar::FUN_10012de0();
|
LegoRaceCar::InitYouCantStopSound();
|
||||||
m_destLocation = LegoGameState::e_carraceExterior;
|
m_destLocation = LegoGameState::e_carraceExterior;
|
||||||
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
|
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
|
||||||
GameState()->GetBackgroundColor()->SetValue("reset");
|
GameState()->GetBackgroundColor()->SetValue("reset");
|
||||||
@ -424,7 +424,7 @@ MxBool CarRace::Escape()
|
|||||||
NavController()->SetDeadZone(NavController()->GetDefaultDeadZone());
|
NavController()->SetDeadZone(NavController()->GetDefaultDeadZone());
|
||||||
|
|
||||||
NavController()->SetTrackDefault(1);
|
NavController()->SetTrackDefault(1);
|
||||||
LegoRaceCar::FUN_10012de0();
|
LegoRaceCar::InitYouCantStopSound();
|
||||||
|
|
||||||
GameState()->GetBackgroundColor()->SetValue("reset");
|
GameState()->GetBackgroundColor()->SetValue("reset");
|
||||||
m_destLocation = LegoGameState::e_infomain;
|
m_destLocation = LegoGameState::e_infomain;
|
||||||
|
|||||||
@ -132,7 +132,7 @@ MxLong JetskiRace::HandleClick(LegoEventNotificationParam& p_param)
|
|||||||
m_act1State->m_unk0x018 = 0;
|
m_act1State->m_unk0x018 = 0;
|
||||||
VariableTable()->SetVariable(g_raceState, "");
|
VariableTable()->SetVariable(g_raceState, "");
|
||||||
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
||||||
LegoRaceCar::FUN_10012de0();
|
LegoRaceCar::InitYouCantStopSound();
|
||||||
m_destLocation = LegoGameState::e_jetraceExterior;
|
m_destLocation = LegoGameState::e_jetraceExterior;
|
||||||
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
|
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
|
||||||
break;
|
break;
|
||||||
@ -140,7 +140,7 @@ MxLong JetskiRace::HandleClick(LegoEventNotificationParam& p_param)
|
|||||||
m_act1State->m_unk0x018 = 0;
|
m_act1State->m_unk0x018 = 0;
|
||||||
VariableTable()->SetVariable(g_raceState, "");
|
VariableTable()->SetVariable(g_raceState, "");
|
||||||
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
||||||
LegoRaceCar::FUN_10012de0();
|
LegoRaceCar::InitYouCantStopSound();
|
||||||
m_destLocation = LegoGameState::e_infomain;
|
m_destLocation = LegoGameState::e_infomain;
|
||||||
result = 1;
|
result = 1;
|
||||||
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
|
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
|
||||||
@ -193,7 +193,7 @@ MxLong JetskiRace::HandlePathStruct(LegoPathStructNotificationParam& p_param)
|
|||||||
|
|
||||||
VariableTable()->SetVariable(g_raceState, "");
|
VariableTable()->SetVariable(g_raceState, "");
|
||||||
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
||||||
LegoRaceCar::FUN_10012de0();
|
LegoRaceCar::InitYouCantStopSound();
|
||||||
m_raceState->m_unk0x28 = 2;
|
m_raceState->m_unk0x28 = 2;
|
||||||
|
|
||||||
RaceState::Entry* raceStateEntry = m_raceState->GetState(GameState()->GetActorId());
|
RaceState::Entry* raceStateEntry = m_raceState->GetState(GameState()->GetActorId());
|
||||||
@ -294,6 +294,6 @@ MxBool JetskiRace::Escape()
|
|||||||
VariableTable()->SetVariable(g_raceState, "");
|
VariableTable()->SetVariable(g_raceState, "");
|
||||||
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
VariableTable()->SetVariable(g_strHIT_WALL_SOUND, "");
|
||||||
m_destLocation = LegoGameState::e_infomain;
|
m_destLocation = LegoGameState::e_infomain;
|
||||||
LegoRaceCar::FUN_10012de0();
|
LegoRaceCar::InitYouCantStopSound();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,8 +31,8 @@ MxS32 LegoRaceActor::VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3)
|
|||||||
|
|
||||||
if (m_userNavFlag && result) {
|
if (m_userNavFlag && result) {
|
||||||
MxLong time = Timer()->GetTime();
|
MxLong time = Timer()->GetTime();
|
||||||
if (time - g_unk0x100f3308 > 1000) {
|
if (time - g_timeLastHitSoundPlayed > 1000) {
|
||||||
g_unk0x100f3308 = time;
|
g_timeLastHitSoundPlayed = time;
|
||||||
const char* soundKey = VariableTable()->GetVariable(g_strHIT_ACTOR_SOUND);
|
const char* soundKey = VariableTable()->GetVariable(g_strHIT_ACTOR_SOUND);
|
||||||
|
|
||||||
if (soundKey && *soundKey) {
|
if (soundKey && *soundKey) {
|
||||||
|
|||||||
@ -178,7 +178,7 @@ LegoRaceCar::LegoRaceCar()
|
|||||||
m_skelKick1Anim = 0;
|
m_skelKick1Anim = 0;
|
||||||
m_skelKick2Anim = 0;
|
m_skelKick2Anim = 0;
|
||||||
m_unk0x5c.Clear();
|
m_unk0x5c.Clear();
|
||||||
m_unk0x58 = 0;
|
m_kickStart = 0;
|
||||||
m_kick1B = 0;
|
m_kick1B = 0;
|
||||||
m_kick2B = 0;
|
m_kick2B = 0;
|
||||||
NotificationManager()->Register(this);
|
NotificationManager()->Register(this);
|
||||||
@ -201,10 +201,10 @@ MxLong LegoRaceCar::Notify(MxParam& p_param)
|
|||||||
// Initialized at LEGO1 0x10012db0
|
// Initialized at LEGO1 0x10012db0
|
||||||
// GLOBAL: LEGO1 0x10102af0
|
// GLOBAL: LEGO1 0x10102af0
|
||||||
// GLOBAL: BETA10 0x102114c0
|
// GLOBAL: BETA10 0x102114c0
|
||||||
Mx3DPointFloat g_unk0x10102af0 = Mx3DPointFloat(0.0f, 2.0f, 0.0f);
|
Mx3DPointFloat g_hitOffset = Mx3DPointFloat(0.0f, 2.0f, 0.0f);
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10012de0
|
// FUNCTION: LEGO1 0x10012de0
|
||||||
void LegoRaceCar::FUN_10012de0()
|
void LegoRaceCar::InitYouCantStopSound()
|
||||||
{
|
{
|
||||||
// Init to TRUE so we don't play "you can't stop in the middle of the race!" before the player ever moves
|
// Init to TRUE so we don't play "you can't stop in the middle of the race!" before the player ever moves
|
||||||
g_playedYouCantStopSound = TRUE;
|
g_playedYouCantStopSound = TRUE;
|
||||||
@ -229,7 +229,7 @@ void LegoRaceCar::InitSoundIndices()
|
|||||||
void LegoRaceCar::SetWorldSpeed(MxFloat p_worldSpeed)
|
void LegoRaceCar::SetWorldSpeed(MxFloat p_worldSpeed)
|
||||||
{
|
{
|
||||||
if (!m_userNavFlag) {
|
if (!m_userNavFlag) {
|
||||||
if (!LegoCarRaceActor::m_unk0x0c) {
|
if (!LegoCarRaceActor::m_animState) {
|
||||||
m_maxLinearVel = p_worldSpeed;
|
m_maxLinearVel = p_worldSpeed;
|
||||||
}
|
}
|
||||||
LegoAnimActor::SetWorldSpeed(p_worldSpeed);
|
LegoAnimActor::SetWorldSpeed(p_worldSpeed);
|
||||||
@ -244,7 +244,7 @@ void LegoRaceCar::SetWorldSpeed(MxFloat p_worldSpeed)
|
|||||||
void LegoRaceCar::SetMaxLinearVelocity(float p_maxLinearVelocity)
|
void LegoRaceCar::SetMaxLinearVelocity(float p_maxLinearVelocity)
|
||||||
{
|
{
|
||||||
if (p_maxLinearVelocity < 0) {
|
if (p_maxLinearVelocity < 0) {
|
||||||
LegoCarRaceActor::m_unk0x0c = 2;
|
LegoCarRaceActor::m_animState = 2;
|
||||||
m_maxLinearVel = 0;
|
m_maxLinearVel = 0;
|
||||||
SetWorldSpeed(0);
|
SetWorldSpeed(0);
|
||||||
}
|
}
|
||||||
@ -299,7 +299,7 @@ void LegoRaceCar::ParseAction(char* p_extra)
|
|||||||
|
|
||||||
// FUNCTION: LEGO1 0x10012ff0
|
// FUNCTION: LEGO1 0x10012ff0
|
||||||
// FUNCTION: BETA10 0x100cb60e
|
// FUNCTION: BETA10 0x100cb60e
|
||||||
void LegoRaceCar::FUN_10012ff0(float p_param)
|
void LegoRaceCar::KickCamera(float p_param)
|
||||||
{
|
{
|
||||||
LegoAnimActorStruct* a; // called `a` in BETA10
|
LegoAnimActorStruct* a; // called `a` in BETA10
|
||||||
float deltaTime;
|
float deltaTime;
|
||||||
@ -315,7 +315,7 @@ void LegoRaceCar::FUN_10012ff0(float p_param)
|
|||||||
assert(a && a->GetAnimTreePtr() && a->GetAnimTreePtr()->GetCamAnim());
|
assert(a && a->GetAnimTreePtr() && a->GetAnimTreePtr()->GetCamAnim());
|
||||||
|
|
||||||
if (a->GetAnimTreePtr()) {
|
if (a->GetAnimTreePtr()) {
|
||||||
deltaTime = p_param - m_unk0x58;
|
deltaTime = p_param - m_kickStart;
|
||||||
|
|
||||||
if (a->GetDuration() <= deltaTime || deltaTime < 0.0) {
|
if (a->GetDuration() <= deltaTime || deltaTime < 0.0) {
|
||||||
if (m_userState == LEGORACECAR_KICK1) {
|
if (m_userState == LEGORACECAR_KICK1) {
|
||||||
@ -390,7 +390,7 @@ MxU32 LegoRaceCar::HandleSkeletonKicks(float p_param1)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_unk0x58 = p_param1;
|
m_kickStart = p_param1;
|
||||||
SoundManager()->GetCacheSoundManager()->Play(g_soundSkel3, NULL, FALSE);
|
SoundManager()->GetCacheSoundManager()->Play(g_soundSkel3, NULL, FALSE);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -401,7 +401,7 @@ MxU32 LegoRaceCar::HandleSkeletonKicks(float p_param1)
|
|||||||
void LegoRaceCar::Animate(float p_time)
|
void LegoRaceCar::Animate(float p_time)
|
||||||
{
|
{
|
||||||
if (m_userNavFlag && (m_userState == LEGORACECAR_KICK1 || m_userState == LEGORACECAR_KICK2)) {
|
if (m_userNavFlag && (m_userState == LEGORACECAR_KICK1 || m_userState == LEGORACECAR_KICK2)) {
|
||||||
FUN_10012ff0(p_time);
|
KickCamera(p_time);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,7 +413,7 @@ void LegoRaceCar::Animate(float p_time)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LegoCarRaceActor::m_unk0x0c == 1) {
|
if (LegoCarRaceActor::m_animState == 1) {
|
||||||
FUN_1005d4b0();
|
FUN_1005d4b0();
|
||||||
|
|
||||||
if (!m_userNavFlag) {
|
if (!m_userNavFlag) {
|
||||||
@ -471,7 +471,7 @@ MxResult LegoRaceCar::HitActor(LegoPathActor* p_actor, MxBool p_bool)
|
|||||||
assert(roi);
|
assert(roi);
|
||||||
matr = roi->GetLocal2World();
|
matr = roi->GetLocal2World();
|
||||||
|
|
||||||
Vector3(matr[3]) += g_unk0x10102af0;
|
Vector3(matr[3]) += g_hitOffset;
|
||||||
roi->SetLocal2World(matr);
|
roi->SetLocal2World(matr);
|
||||||
|
|
||||||
p_actor->SetActorState(c_two);
|
p_actor->SetActorState(c_two);
|
||||||
@ -516,7 +516,7 @@ MxResult LegoRaceCar::HitActor(LegoPathActor* p_actor, MxBool p_bool)
|
|||||||
|
|
||||||
if (soundKey) {
|
if (soundKey) {
|
||||||
SoundManager()->GetCacheSoundManager()->Play(soundKey, NULL, FALSE);
|
SoundManager()->GetCacheSoundManager()->Play(soundKey, NULL, FALSE);
|
||||||
g_timeLastRaceCarSoundPlayed = g_unk0x100f3308 = time;
|
g_timeLastRaceCarSoundPlayed = g_timeLastHitSoundPlayed = time;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -582,7 +582,7 @@ void LegoJetski::InitSoundIndices()
|
|||||||
void LegoJetski::SetWorldSpeed(MxFloat p_worldSpeed)
|
void LegoJetski::SetWorldSpeed(MxFloat p_worldSpeed)
|
||||||
{
|
{
|
||||||
if (!m_userNavFlag) {
|
if (!m_userNavFlag) {
|
||||||
if (!LegoCarRaceActor::m_unk0x0c) {
|
if (!LegoCarRaceActor::m_animState) {
|
||||||
m_maxLinearVel = p_worldSpeed;
|
m_maxLinearVel = p_worldSpeed;
|
||||||
}
|
}
|
||||||
LegoAnimActor::SetWorldSpeed(p_worldSpeed);
|
LegoAnimActor::SetWorldSpeed(p_worldSpeed);
|
||||||
@ -597,7 +597,7 @@ void LegoJetski::SetWorldSpeed(MxFloat p_worldSpeed)
|
|||||||
void LegoJetski::FUN_100136f0(float p_worldSpeed)
|
void LegoJetski::FUN_100136f0(float p_worldSpeed)
|
||||||
{
|
{
|
||||||
if (p_worldSpeed < 0) {
|
if (p_worldSpeed < 0) {
|
||||||
LegoCarRaceActor::m_unk0x0c = 2;
|
LegoCarRaceActor::m_animState = 2;
|
||||||
m_maxLinearVel = 0;
|
m_maxLinearVel = 0;
|
||||||
SetWorldSpeed(0);
|
SetWorldSpeed(0);
|
||||||
}
|
}
|
||||||
@ -612,7 +612,7 @@ void LegoJetski::Animate(float p_time)
|
|||||||
{
|
{
|
||||||
LegoJetskiRaceActor::Animate(p_time);
|
LegoJetskiRaceActor::Animate(p_time);
|
||||||
|
|
||||||
if (LegoCarRaceActor::m_unk0x0c == 1) {
|
if (LegoCarRaceActor::m_animState == 1) {
|
||||||
FUN_1005d4b0();
|
FUN_1005d4b0();
|
||||||
|
|
||||||
if (!m_userNavFlag) {
|
if (!m_userNavFlag) {
|
||||||
@ -685,7 +685,7 @@ MxResult LegoJetski::HitActor(LegoPathActor* p_actor, MxBool p_bool)
|
|||||||
LegoROI* roi = p_actor->GetROI();
|
LegoROI* roi = p_actor->GetROI();
|
||||||
matr = roi->GetLocal2World();
|
matr = roi->GetLocal2World();
|
||||||
|
|
||||||
Vector3(matr[3]) += g_unk0x10102af0;
|
Vector3(matr[3]) += g_hitOffset;
|
||||||
roi->SetLocal2World(matr);
|
roi->SetLocal2World(matr);
|
||||||
|
|
||||||
p_actor->SetActorState(c_two);
|
p_actor->SetActorState(c_two);
|
||||||
@ -714,7 +714,7 @@ MxResult LegoJetski::HitActor(LegoPathActor* p_actor, MxBool p_bool)
|
|||||||
|
|
||||||
if (soundKey) {
|
if (soundKey) {
|
||||||
SoundManager()->GetCacheSoundManager()->Play(soundKey, NULL, FALSE);
|
SoundManager()->GetCacheSoundManager()->Play(soundKey, NULL, FALSE);
|
||||||
g_timeLastJetskiSoundPlayed = g_unk0x100f3308 = time;
|
g_timeLastJetskiSoundPlayed = g_timeLastHitSoundPlayed = time;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -45,7 +45,7 @@ LegoCarRaceActor::LegoCarRaceActor()
|
|||||||
{
|
{
|
||||||
m_unk0x08 = 1.0f;
|
m_unk0x08 = 1.0f;
|
||||||
m_unk0x70 = 0.0f;
|
m_unk0x70 = 0.0f;
|
||||||
m_unk0x0c = 0;
|
m_animState = 0;
|
||||||
m_maxLinearVel = 0.0f;
|
m_maxLinearVel = 0.0f;
|
||||||
m_frequencyFactor = 1.0f;
|
m_frequencyFactor = 1.0f;
|
||||||
m_unk0x1c = 0;
|
m_unk0x1c = 0;
|
||||||
@ -224,18 +224,18 @@ void LegoCarRaceActor::SwitchBoundary(LegoPathBoundary*& p_boundary, LegoOriente
|
|||||||
// FUNCTION: BETA10 0x100cdbae
|
// FUNCTION: BETA10 0x100cdbae
|
||||||
void LegoCarRaceActor::Animate(float p_time)
|
void LegoCarRaceActor::Animate(float p_time)
|
||||||
{
|
{
|
||||||
// m_unk0x0c is not an MxBool, there are places where it is set to 2 or higher
|
// m_animState is not an MxBool, there are places where it is set to 2 or higher
|
||||||
if (m_unk0x0c == 0) {
|
if (m_animState == 0) {
|
||||||
const char* value = VariableTable()->GetVariable(g_raceState);
|
const char* value = VariableTable()->GetVariable(g_raceState);
|
||||||
|
|
||||||
if (SDL_strcasecmp(value, g_racing) == 0) {
|
if (SDL_strcasecmp(value, g_racing) == 0) {
|
||||||
m_unk0x0c = 1;
|
m_animState = 1;
|
||||||
m_lastTime = p_time - 1.0f;
|
m_lastTime = p_time - 1.0f;
|
||||||
m_unk0x1c = p_time;
|
m_unk0x1c = p_time;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_unk0x0c == 1) {
|
if (m_animState == 1) {
|
||||||
LegoAnimActor::Animate(p_time);
|
LegoAnimActor::Animate(p_time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -399,10 +399,15 @@ MxS32 LegoJetskiRaceActor::VTable0x1c(LegoPathBoundary* p_boundary, LegoEdge* p_
|
|||||||
// FUNCTION: LEGO1 0x10081550
|
// FUNCTION: LEGO1 0x10081550
|
||||||
void LegoJetskiRaceActor::Animate(float p_time)
|
void LegoJetskiRaceActor::Animate(float p_time)
|
||||||
{
|
{
|
||||||
if (m_unk0x0c == 0) {
|
if (m_animState == 0) {
|
||||||
const LegoChar* raceState = VariableTable()->GetVariable(g_raceState);
|
const LegoChar* raceState = VariableTable()->GetVariable(g_raceState);
|
||||||
|
<<<<<<< HEAD
|
||||||
if (!SDL_strcasecmp(raceState, g_racing)) {
|
if (!SDL_strcasecmp(raceState, g_racing)) {
|
||||||
m_unk0x0c = 1;
|
m_unk0x0c = 1;
|
||||||
|
=======
|
||||||
|
if (!stricmp(raceState, g_racing)) {
|
||||||
|
m_animState = 1;
|
||||||
|
>>>>>>> isle/master
|
||||||
m_lastTime = p_time - 1.0f;
|
m_lastTime = p_time - 1.0f;
|
||||||
m_unk0x1c = p_time;
|
m_unk0x1c = p_time;
|
||||||
}
|
}
|
||||||
@ -411,7 +416,7 @@ void LegoJetskiRaceActor::Animate(float p_time)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_unk0x0c == 1) {
|
if (m_animState == 1) {
|
||||||
LegoAnimActor::Animate(p_time);
|
LegoAnimActor::Animate(p_time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -353,7 +353,7 @@ LegoResult LegoLOD::SetTextureInfo(LegoTextureInfo* p_textureInfo)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100aad70
|
// FUNCTION: LEGO1 0x100aad70
|
||||||
LegoResult LegoLOD::FUN_100aad70(LegoTextureInfo* p_textureInfo)
|
LegoResult LegoLOD::UpdateTextureInfo(LegoTextureInfo* p_textureInfo)
|
||||||
{
|
{
|
||||||
for (LegoU32 i = m_meshOffset; i < m_numMeshes; i++) {
|
for (LegoU32 i = m_meshOffset; i < m_numMeshes; i++) {
|
||||||
if (m_melems[i].m_textured) {
|
if (m_melems[i].m_textured) {
|
||||||
|
|||||||
@ -31,7 +31,7 @@ class LegoLOD : public ViewLOD {
|
|||||||
LegoLOD* Clone(Tgl::Renderer* p_renderer);
|
LegoLOD* Clone(Tgl::Renderer* p_renderer);
|
||||||
LegoResult SetColor(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha);
|
LegoResult SetColor(LegoFloat p_red, LegoFloat p_green, LegoFloat p_blue, LegoFloat p_alpha);
|
||||||
LegoResult SetTextureInfo(LegoTextureInfo* p_textureInfo);
|
LegoResult SetTextureInfo(LegoTextureInfo* p_textureInfo);
|
||||||
LegoResult FUN_100aad70(LegoTextureInfo* p_textureInfo);
|
LegoResult UpdateTextureInfo(LegoTextureInfo* p_textureInfo);
|
||||||
void ClearMeshOffset();
|
void ClearMeshOffset();
|
||||||
LegoResult GetTextureInfo(LegoTextureInfo*& p_textureInfo);
|
LegoResult GetTextureInfo(LegoTextureInfo*& p_textureInfo);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user