Mario Kart 64
Loading...
Searching...
No Matches
Boos.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#include "CoreMath.h"
9
10extern "C" {
11#include "macros.h"
12#include "main.h"
13#include "vehicles.h"
14#include "waypoints.h"
15#include "common_structs.h"
16#include "objects.h"
17#include "camera.h"
18#include "some_data.h"
19}
20
37class OBoos : public OObject {
38public:
39 // This is simply a helper function to keep Spawning code clean
40 static inline OBoos* Spawn(size_t numBoos, const IPathSpan& leftBoundary, const IPathSpan& triggerBoundary, const IPathSpan& rightBoundary) {
41 SpawnParams params = {
42 .Name = "mk:boos",
43 .Count = numBoos,
44 .LeftExitSpan = leftBoundary,
45 .TriggerSpan = triggerBoundary,
46 .RightExitSpan = rightBoundary,
47 };
48 return static_cast<OBoos*>(gWorldInstance.AddObject(new OBoos(params)));
49 }
50
51 explicit OBoos(const SpawnParams& params);
52
54 _count--;
55 }
56
57 static size_t GetCount() {
58 return _count;
59 }
60
61 virtual void SetSpawnParams(SpawnParams& params) override;
62 virtual void Tick() override;
63 virtual void Draw(s32 cameraId) override;
64 virtual void DrawEditorProperties() override;
65 void func_800523B8(s32 objectIndex, s32 arg1, u32 arg2);
66
67 void func_8007CA70(void);
68 void func_8007C5B4(s32 objectIndex);
69 void func_8007C684(s32 objectIndex);
70 void func_8007C4A4(s32 objectIndex);
71 s32 func_8007C9F8(void);
72 void BooStart(s32 someIndex, s32 arg1);
73 void BooExit(s32 someIndex);
74 void func_8007C550(s32 objectIndex);
75
79private:
81 static size_t _count;
82 size_t _idx;
83 std::vector<s32> _indices; // indices into gObjectList
84 size_t _numBoos;
85
86 bool _isActive = false;
87 s32 _playerId = 0;
88};
World gWorldInstance
Definition Game.cpp:74
IPathSpan RightTrigger
Definition Boos.h:78
IPathSpan LeftTrigger
Definition Boos.h:76
virtual void Draw(s32 cameraId) override
Definition Boos.cpp:94
void func_8007C4A4(s32 objectIndex)
Definition Boos.cpp:215
virtual void SetSpawnParams(SpawnParams &params) override
Definition Boos.cpp:54
virtual void Tick() override
Definition Boos.cpp:62
static size_t GetCount()
Definition Boos.h:57
void func_8007C5B4(s32 objectIndex)
Definition Boos.cpp:163
~OBoos()
Definition Boos.h:53
static OBoos * Spawn(size_t numBoos, const IPathSpan &leftBoundary, const IPathSpan &triggerBoundary, const IPathSpan &rightBoundary)
Definition Boos.h:40
void func_8007C550(s32 objectIndex)
Definition Boos.cpp:229
size_t _idx
Definition Boos.h:82
virtual void DrawEditorProperties() override
Definition Boos.cpp:296
s32 _playerId
Definition Boos.h:87
std::vector< s32 > _indices
Definition Boos.h:83
void func_8007C684(s32 objectIndex)
Definition Boos.cpp:184
s32 func_8007C9F8(void)
Definition Boos.cpp:236
OBoos(const SpawnParams &params)
Definition Boos.cpp:27
void func_800523B8(s32 objectIndex, s32 arg1, u32 arg2)
Definition Boos.cpp:119
bool _isActive
Definition Boos.h:86
static size_t _count
Definition Boos.h:81
void func_8007CA70(void)
Definition Boos.cpp:133
void BooExit(s32 someIndex)
Definition Boos.cpp:286
size_t _numBoos
Definition Boos.h:84
IPathSpan ActiveZone
Definition Boos.h:77
FVector _pos
Definition Boos.h:80
void BooStart(s32 someIndex, s32 arg1)
Definition Boos.cpp:261
OObject()
Definition Object.cpp:13
Definition CoreMath.h:30
Definition CoreMath.h:214
Definition SpawnParams.h:30