isle-portable/LEGO1/helicopter.cpp

43 lines
1,006 B
C++
Raw Normal View History

#include "helicopter.h"
#include "act3.h"
#include "legoomni.h"
#include "legocontrolmanager.h"
#include "legogamestate.h"
#include "legoworld.h"
DECOMP_SIZE_ASSERT(Helicopter, 0x230)
// OFFSET: LEGO1 0x10001e60
Helicopter::Helicopter()
{
m_unk13c = 60;
}
// OFFSET: LEGO1 0x10003230
Helicopter::~Helicopter()
{
ControlManager()->Unregister(this);
IslePathActor::Destroy(TRUE);
}
// OFFSET: LEGO1 0x100032c0
MxResult Helicopter::InitFromMxDSObject(MxDSObject &p_dsObject)
{
MxResult result = IslePathActor::InitFromMxDSObject(p_dsObject);
LegoWorld *world = GetCurrentWorld();
SetWorld(world);
if (world->IsA("Act3")) {
((Act3 *)GetWorld())->SetUnkown420c(this);
}
world = GetWorld();
if (world) world->VTable0x58(this);
GetState();
return result;
}
// OFFSET: LEGO1 0x10003320
void Helicopter::GetState()
{
m_state = (HelicopterState *)GameState()->GetState("HelicopterState");
if (!m_state) m_state = (HelicopterState *)GameState()->CreateState("HelicopterState");
}