summaryrefslogtreecommitdiff
path: root/src/engine/actors/BowserStatue.cpp
blob: c680c4c2540c44f92e4f19b2a6363cb8c4ccb862 (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
40
41
42
43
44
45
46
#include "BowserStatue.h"

#include <libultra/gbi.h>

extern "C" {
#include "common_structs.h"
#include "math_util.h"
#include "main.h"
#include "assets/bowsers_castle_data.h"
}

Vtx gBowserStatueVtx[717];
Gfx gBowserStatueGfx[162];

ABowserStatue::ABowserStatue(FVector pos, ABowserStatue::Behaviour behaviour) {
    Name = "Bowser Statue";
    Pos = pos;
    ABowserStatue::Behaviour _behaviour = behaviour;
}

void ABowserStatue::Tick() {
    switch(_behaviour) {
        case DEFAULT:
            break;
        case CRUSH:
            break;
    }
}

void ABowserStatue::Draw(Camera *camera) {
    Mat4 mtx;
    Vec3f pos;
    pos[0] = Pos.x + 76;
    pos[1] = Pos.y;
    pos[2] = Pos.z + 1846;
    gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
    gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);

    mtxf_pos_rotation_xyz(mtx, pos, Rot);
    if (render_set_position(mtx, 0) != 0) {

        gSPDisplayList(gDisplayListHead++, gBowserStatueGfx);
    }
}

bool ABowserStatue::IsMod() { return true; }