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 func_800563DC(s32 cameraId, s32 arg2);
89 void func_800562E4(s32 cameraId, s32 arg0, s32 arg1, s32 arg2, s32 id);
90 void SomeRender(s32 cameraId, Vec3f arg1);
91 void LoadMtx(s32 cameraId);
92 void Waypoint(s32 screenId);
93
95 float SpeedB = 2.7f;
96 private:
97 static u32 vec[3][3];
98 static size_t _count;
99 s32 _idx;
101 void Chase(Player*, Vec3f pos);
102
104};
static OObject * AddObjectToWorld(const SpawnParams &params)
Definition RegisterContent.h:10
Vec3f Pos
Definition BombKart.h:33
OBombKart(const SpawnParams &params)
Definition BombKart.cpp:34
OBombKart::States Behaviour
Definition BombKart.h:94
virtual void DrawEditorProperties() override
Definition BombKart.cpp:604
void func_800563DC(s32 cameraId, s32 arg2)
Definition BombKart.cpp:396
s32 _idx
Definition BombKart.h:99
f32 Unk_3C
Definition BombKart.h:35
static size_t _count
Definition BombKart.h:98
void DrawBattle(s32 cameraId)
Definition BombKart.cpp:392
Collision _Collision
Definition BombKart.h:44
u16 CircleTimer
Definition BombKart.h:40
u16 WaypointIndex
Definition BombKart.h:37
States State
Definition BombKart.h:38
void SomeRender(s32 cameraId, Vec3f arg1)
Definition BombKart.cpp:461
Player * _target
Definition BombKart.h:103
virtual void Draw(s32 cameraId) override
Definition BombKart.cpp:349
void Waypoint(s32 screenId)
Definition BombKart.cpp:503
Vec3f WheelPos[4]
Definition BombKart.h:34
s16 Unk_4C
Definition BombKart.h:42
void Chase(Player *, Vec3f pos)
Definition BombKart.cpp:530
void func_800562E4(s32 cameraId, s32 arg0, s32 arg1, s32 arg2, s32 id)
Definition BombKart.cpp:448
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
void LoadMtx(s32 cameraId)
Definition BombKart.cpp:485
static u32 vec[3][3]
Definition BombKart.h:442
~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:587
float SpeedB
Definition BombKart.h:95
u16 Unk_4A
Definition BombKart.h:41
Player * FindTarget()
Definition BombKart.cpp:519
u16 SomeRot
Definition BombKart.h:36
virtual void Tick() override
Definition BombKart.cpp:92
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