SpaghettiKart
Loading...
Searching...
No Matches
BombKart.h
Go to the documentation of this file.
1#pragma once
2
3#include <libultraship.h>
6
7#include "World.h"
8
9extern "C" {
10#include "common_structs.h"
11}
12
19class OBombKart : public OObject {
20 public:
30
31 const char* Type;
32
35 f32 Unk_3C;
36 u16 SomeRot; // Some angle
37 u16 WaypointIndex; // The waypoint the kart circles
39 u16 BounceTimer = 0;
40 u16 CircleTimer = 0;
41 u16 Unk_4A = 0;
42 s16 Unk_4C = 1;
43 f32 CenterY; // Center of the circle
45
46
47 // This is simply a helper function to keep Spawning code clean
48 // Spawn object at a position
49 static OBombKart* Spawn(FVector pos, uint16_t behaviour, f32 unk_3C) {
50 SpawnParams params = {
51 .Name = "mk:bomb_kart",
52 .Behaviour = behaviour,
53 .Location = pos,
54 .Speed = unk_3C, // Only used for podium ceremony. Arbitrarily chose Speed for this
55 .SpeedB = 2.7f, // Chase speed
56 };
57 return dynamic_cast<OBombKart*>(AddObjectToWorld<OBombKart>(params));
58 }
59
60 // Spawn object at a point along the tracks path
61 static OBombKart* Spawn(uint32_t pathIndex, uint32_t pathPoint, uint16_t behaviour, f32 unk_3C) {
62 SpawnParams params = {
63 .Name = "mk:bomb_kart",
64 .Behaviour = behaviour,
65 .PathIndex = pathIndex,
66 .PathPoint = pathPoint,
67 .Speed = unk_3C, // Only used for podium ceremony. Arbitrarily chose Speed for this
68 };
69 return dynamic_cast<OBombKart*>(AddObjectToWorld<OBombKart>(params));
70 }
71
72 // Set waypoint to NULL if using a spawn position and not a waypoint.
73 explicit OBombKart(const SpawnParams& params);
74
76 _count--;
77 }
78
79 static size_t GetCount() {
80 return _count;
81 }
82
83 virtual void Tick() override;
84 virtual void Draw(s32 cameraId) override;
85 virtual void Translate(FVector pos) override;
86 virtual void DrawEditorProperties() override;
87 void DrawBattle(s32 cameraId);
88 void SomeRender(Vec3f arg1);
89 void LoadMtx();
90 void Waypoint(s32 screenId);
91
93 float SpeedB = 2.7f;
94 private:
95 static size_t _count;
96 s32 _idx;
98 void Chase(Player*, Vec3f pos);
99
101};
static OObject * AddObjectToWorld(const SpawnParams &params)
Definition RegisterContent.h:10
void SomeRender(Vec3f arg1)
Definition BombKart.cpp:413
Vec3f Pos
Definition BombKart.h:33
OBombKart(const SpawnParams &params)
Definition BombKart.cpp:33
OBombKart::States Behaviour
Definition BombKart.h:92
virtual void DrawEditorProperties() override
Definition BombKart.cpp:546
s32 _idx
Definition BombKart.h:96
f32 Unk_3C
Definition BombKart.h:35
static size_t _count
Definition BombKart.h:95
void DrawBattle(s32 cameraId)
Definition BombKart.cpp:409
Collision _Collision
Definition BombKart.h:44
u16 CircleTimer
Definition BombKart.h:40
u16 WaypointIndex
Definition BombKart.h:37
States State
Definition BombKart.h:38
Player * _target
Definition BombKart.h:100
virtual void Draw(s32 cameraId) override
Definition BombKart.cpp:348
void Waypoint(s32 screenId)
Definition BombKart.cpp:445
Vec3f WheelPos[4]
Definition BombKart.h:34
s16 Unk_4C
Definition BombKart.h:42
void Chase(Player *, Vec3f pos)
Definition BombKart.cpp:472
f32 CenterY
Definition BombKart.h:43
States
Definition BombKart.h:21
@ EXPLODE
Definition BombKart.h:27
@ CHASE
Definition BombKart.h:26
@ PODIUM_CEREMONY
Definition BombKart.h:28
@ DISABLED
Definition BombKart.h:22
@ COUNTERCLOCKWISE
Definition BombKart.h:23
@ CLOCKWISE
Definition BombKart.h:24
@ STATIONARY
Definition BombKart.h:25
static OBombKart * Spawn(uint32_t pathIndex, uint32_t pathPoint, uint16_t behaviour, f32 unk_3C)
Definition BombKart.h:61
~OBombKart()
Definition BombKart.h:75
static size_t GetCount()
Definition BombKart.h:79
const char * Type
Definition BombKart.h:31
static OBombKart * Spawn(FVector pos, uint16_t behaviour, f32 unk_3C)
Definition BombKart.h:49
virtual void Translate(FVector pos) override
Definition BombKart.cpp:529
float SpeedB
Definition BombKart.h:93
u16 Unk_4A
Definition BombKart.h:41
Player * FindTarget()
Definition BombKart.cpp:461
u16 SomeRot
Definition BombKart.h:36
virtual void Tick() override
Definition BombKart.cpp:91
void LoadMtx()
Definition BombKart.cpp:429
u16 BounceTimer
Definition BombKart.h:39
OObject()
Definition Object.cpp:13
f32 Vec3f[3]
Definition common_structs.h:10
#define NULL
Definition miniaudio.h:3851
Definition common_structs.h:147
Definition CoreMath.h:30
Definition common_structs.h:264
Definition SpawnParams.h:30