1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#include "d/a/npc/d_a_npc_rival_lod.h"
#include "d/a/obj/d_a_obj_base.h"
#include "m/m3d/m_fanm.h"
#include "s/s_State.hpp"
SPECIAL_ACTOR_PROFILE(NPC_RIVAL_LOD, dAcNpcRivalLOD_c, fProfile::NPC_RIVAL_LOD, 0x32, 0, 3);
STATE_DEFINE(dAcNpcRivalLOD_c, Wait);
bool dAcNpcRivalLOD_c::createHeap() {
void *oarc = getOarcFile("RivalLOD", "g3d/model.brres");
TRY_CREATE(mMdl.create(oarc, "RivalLOD", "RivalLOD_wait", &mAllocator, 0x120));
return true;
}
int dAcNpcRivalLOD_c::create() {
CREATE_ALLOCATOR(dAcNpcRivalLOD_c);
0.0f; // float order, cool
mAcceleration = -1.0f;
mMaxSpeed = -40.0f;
setState(StateID_Wait);
mBoundingBox.Set(mVec3_c(-110.0f, -30.0f, -130.0f), mVec3_c(130.0f, 190.0f, 110.0f));
return SUCCEEDED;
}
int dAcNpcRivalLOD_c::doDelete() {
return SUCCEEDED;
}
int dAcNpcRivalLOD_c::actorExecute() {
executeState();
updateMatrix();
mMdl.getModel().setLocalMtx(mWorldMtx);
return SUCCEEDED;
}
int dAcNpcRivalLOD_c::draw() {
drawModelType1(&mMdl.getModel());
return SUCCEEDED;
}
void dAcNpcRivalLOD_c::initializeState_Wait() {
mMdl.setAnm("RivalLOD_wait", m3d::PLAY_MODE_4, 4.0f);
}
void dAcNpcRivalLOD_c::executeState_Wait() {
mMdl.play();
}
void dAcNpcRivalLOD_c::finalizeState_Wait() {}
|