Mario Kart 64
Loading...
Searching...
No Matches
TrashBin.h
Go to the documentation of this file.
1#pragma once
2
3#include <libultraship.h>
4#include <vector>
5#include "Object.h"
6
7#include "World.h"
8
9extern "C" {
10#include "macros.h"
11#include "main.h"
12#include "vehicles.h"
13#include "waypoints.h"
14#include "common_structs.h"
15#include "objects.h"
16#include "camera.h"
17#include "some_data.h"
18}
19
20class OTrashBin : public OObject {
21public:
22
23 enum Behaviour : int16_t {
24 STATIC, // The lid stays shut
25 MUNCHING // The lid opens/closes in a scary munching manner
26 };
27
28 // This is simply a helper function to keep Spawning code clean
29 static inline OTrashBin* Spawn(const FVector& pos, const IRotator& rot, f32 scale, OTrashBin::Behaviour bhv) {
30 SpawnParams params = {
31 .Name = "mk:trash_bin",
32 .Behaviour = bhv,
33 .Location = pos,
34 .Rotation = rot,
35 .Scale = FVector(0, scale, 0),
36 };
37 return static_cast<OTrashBin*>(gWorldInstance.AddObject(new OTrashBin(params)));
38 }
39
40 explicit OTrashBin(const SpawnParams& params);
41
42 virtual void Tick() override;
43 virtual void Draw(s32 cameraId) override;
44 void func_8007E00C(s32 objectIndex);
45 void init_bb_trash_bin(s32);
46
47private:
48 static Gfx BinMod[];
49 static Vtx BinVtx[];
50 static Vtx BinVtx2[];
51
55 float _scale;
56 size_t _idx;
57 bool _drawBin = false;
58};
World gWorldInstance
Definition Game.cpp:74
OObject()
Definition Object.cpp:13
Behaviour
Definition TrashBin.h:23
@ STATIC
Definition TrashBin.h:24
@ MUNCHING
Definition TrashBin.h:25
IRotator _rot
Definition TrashBin.h:54
OTrashBin(const SpawnParams &params)
Definition TrashBin.cpp:24
size_t _idx
Definition TrashBin.h:56
void init_bb_trash_bin(s32)
Definition TrashBin.cpp:83
void func_8007E00C(s32 objectIndex)
Definition TrashBin.cpp:110
bool _drawBin
Definition TrashBin.h:57
float _scale
Definition TrashBin.h:55
static Vtx BinVtx[]
Definition TrashBin.h:196
static OTrashBin * Spawn(const FVector &pos, const IRotator &rot, f32 scale, OTrashBin::Behaviour bhv)
Definition TrashBin.h:29
static Gfx BinMod[]
Definition TrashBin.h:161
FVector _pos
Definition TrashBin.h:53
static Vtx BinVtx2[]
Definition TrashBin.h:219
virtual void Draw(s32 cameraId) override
Definition TrashBin.cpp:53
Behaviour _bhv
Definition TrashBin.h:52
virtual void Tick() override
Definition TrashBin.cpp:41
Definition CoreMath.h:30
Definition CoreMath.h:137
Definition SpawnParams.h:30