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