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