summaryrefslogtreecommitdiff
path: root/src/REL/d/a/obj/d_a_obj_bird_statue.cpp
blob: c44b90af1268f9898d089098def0c4c21a3138c1 (plain)
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
#include "d/a/obj/d_a_obj_bird_statue.h"

#include "d/a/obj/d_a_obj_base.h"

SPECIAL_ACTOR_PROFILE(OBJ_BIRD_STATUE, dAcOBirdStatue_c, fProfile::OBJ_BIRD_STATUE, 0x285, 0, 3);

bool dAcOBirdStatue_c::createHeap() {
    void *data = getOarcResFile("BirdStatue");
    if (data == nullptr) {
        return false;
    }

    nw4r::g3d::ResFile file(data);
    if (!file.IsValid()) {
        return false;
    }

    nw4r::g3d::ResMdl mdl = file.GetResMdl("BirdStatue");
    if (!mdl.IsValid()) {
        return false;
    }

    return mMdl.create(mdl, &mAllocator, 0, 1, nullptr);
}

int dAcOBirdStatue_c::create() {
    CREATE_ALLOCATOR(dAcOBirdStatue_c);
    updateMatrix();
    mMdl.setLocalMtx(mWorldMtx);
    mVec3_c min, max;
    mMdl.getBounds(&min, &max);
    mBoundingBox.Set(min, max);
    return SUCCEEDED;
}

int dAcOBirdStatue_c::draw() {
    dAcObjBase_c::drawModelType1(&mMdl);
    return SUCCEEDED;
}