mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
Implement RaceSkel
, add BETA10 annotations (#1088)
* Implement `RaceSkel`, add BETA10 annotations * fix formatting * Fix order * Address some review comments --------- Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
@@ -7,7 +7,7 @@ DECOMP_SIZE_ASSERT(CarRace, 0x154)
|
||||
// FUNCTION: LEGO1 0x10016a90
|
||||
CarRace::CarRace()
|
||||
{
|
||||
this->m_unk0x150 = 0;
|
||||
this->m_skeleton = NULL;
|
||||
this->m_unk0x130 = MxRect32(0x16c, 0x154, 0x1ec, 0x15e);
|
||||
}
|
||||
|
||||
|
@@ -304,11 +304,10 @@ MxU32 LegoRaceCar::HandleSkeletonKicks(float p_param1)
|
||||
{
|
||||
const SkeletonKickPhase* current = g_skeletonKickPhases;
|
||||
|
||||
// TODO: Type is guesswork so far
|
||||
CarRace* r = (CarRace*) CurrentWorld(); // called `r` in BETA10
|
||||
assert(r);
|
||||
|
||||
RaceSkel* s = (RaceSkel*) r->GetUnk0x150(); // called `s` in BETA10
|
||||
RaceSkel* s = r->GetSkeleton(); // called `s` in BETA10
|
||||
assert(s);
|
||||
|
||||
float skeletonCurAnimPosition;
|
||||
|
@@ -1,13 +1,53 @@
|
||||
#include "raceskel.h"
|
||||
|
||||
#include "carrace.h"
|
||||
#include "legoworld.h"
|
||||
#include "misc.h"
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
DECOMP_SIZE_ASSERT(RaceSkel, 0x178)
|
||||
|
||||
// STUB: LEGO1 0x100719b0
|
||||
// FUNCTION: LEGO1 0x100719b0
|
||||
// FUNCTION: BETA10 0x100f1240
|
||||
RaceSkel::RaceSkel()
|
||||
{
|
||||
// TODO
|
||||
m_animPosition = 0.0f;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071ad0
|
||||
RaceSkel::~RaceSkel()
|
||||
{
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071b50
|
||||
// FUNCTION: BETA10 0x100f13cf
|
||||
MxResult RaceSkel::FUN_1001c360(float p_und, Matrix4& p_transform)
|
||||
{
|
||||
p_transform[3][0] = -630.0f;
|
||||
p_transform[3][1] = -4.688f;
|
||||
p_transform[3][2] = 323.0f;
|
||||
|
||||
m_animPosition = p_und;
|
||||
|
||||
return LegoAnimActor::FUN_1001c360(p_und, p_transform);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071b90
|
||||
// FUNCTION: BETA10 0x100f1444
|
||||
void RaceSkel::ParseAction(char* p_extra)
|
||||
{
|
||||
LegoAnimActor::ParseAction(p_extra);
|
||||
|
||||
// name verified by BETA10 0x100f147d
|
||||
CarRace* w = (CarRace*) CurrentWorld();
|
||||
assert(w);
|
||||
w->SetSkeleton(this);
|
||||
|
||||
assert(m_roi);
|
||||
BoundingSphere sphere = m_roi->GetBoundingSphere();
|
||||
sphere.Radius() *= 100.0f;
|
||||
m_roi->SetBoundingSphere(sphere);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071cb0
|
||||
|
Reference in New Issue
Block a user