SpaghettiKart
Loading...
Searching...
No Matches
Bus.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <libultraship.h>
4
#include "
Actor.h
"
5
#include <vector>
6
#include "
engine/registry/RegisterContent.h
"
7
#include "
engine/SpawnParams.h
"
8
9
extern
"C"
{
10
#include "
sounds.h
"
11
}
12
13
class
ABus
:
public
AActor
{
14
public
:
15
enum
SpawnMode
: uint16_t {
16
POINT
,
// Spawn car at a specific path point
17
AUTO
,
// Automatically distribute cars based on a specific path point
18
};
19
20
const
char
*
Type
;
21
size_t
Index
;
22
f32
Speed
;
23
s16
ActorIndex
;
24
Vec3f
Position
;
25
Vec3f
Velocity
;
26
Vec3s
Rotation
;
27
f32
SomeMultiplierTheSequel
;
28
s8
SomeFlagsTheSequel
= 0;
29
u16
WaypointIndex
;
30
s8
SomeFlags
= 0;
31
s16
SomeType
;
32
33
f32
SomeArg3
= 55.0f;
34
f32
SomeArg4
= 12.5f;
35
u32
SoundBits
=
SOUND_ARG_LOAD
(0x51, 0x01, 0x80, 0x03);
36
37
// This is simply a helper function to keep Spawning code clean
38
static
ABus
*
Spawn
(f32 speedA, f32 speedB, uint32_t pathIndex, uint32_t pathPoint,
ABus::SpawnMode
spawnMode) {
39
SpawnParams
params = {
40
.Name =
"mk:bus"
,
41
.Type =
static_cast<
uint16_t
>
(spawnMode),
42
.
PathIndex
= pathIndex,
43
.
PathPoint
= pathPoint,
44
.
Speed
= speedA,
45
.
SpeedB
= speedB
46
};
47
return
dynamic_cast<
ABus
*
>
(
AddActorToWorld<ABus>
(params));
48
}
49
50
explicit
ABus
(
const
SpawnParams
& params);
51
52
~ABus
() {
53
_count
--;
54
}
55
56
static
size_t
GetCount
() {
57
return
_count
;
58
}
59
60
ABus::SpawnMode
SpawnType
=
ABus::SpawnMode::AUTO
;
61
float
SpeedB
= 0.0f;
62
uint32_t
PathIndex
= 0;
63
uint32_t
PathPoint
= 0;
64
65
virtual
void
SetSpawnParams
(
SpawnParams
& params)
override
;
66
virtual
void
Tick
()
override
;
67
virtual
void
Draw
(
Camera
* camera)
override
;
68
virtual
void
VehicleCollision
(s32 playerId,
Player
* player)
override
;
69
virtual
bool
IsMod
()
override
;
70
virtual
void
DrawEditorProperties
()
override
;
71
72
private
:
73
static
size_t
_count
;
74
static
std::map<uint32_t, std::vector<uint32_t>>
BusCounts
;
75
};
Actor.h
RegisterContent.h
AddActorToWorld
static AActor * AddActorToWorld(const SpawnParams ¶ms)
Definition
RegisterContent.h:14
SpawnParams.h
AActor::AActor
AActor()
Definition
Actor.cpp:13
ABus::Tick
virtual void Tick() override
Definition
Bus.cpp:118
ABus::~ABus
~ABus()
Definition
Bus.h:52
ABus::PathPoint
uint32_t PathPoint
Definition
Bus.h:63
ABus::SpawnMode
SpawnMode
Definition
Bus.h:15
ABus::AUTO
@ AUTO
Definition
Bus.h:17
ABus::POINT
@ POINT
Definition
Bus.h:16
ABus::Velocity
Vec3f Velocity
Definition
Bus.h:25
ABus::Spawn
static ABus * Spawn(f32 speedA, f32 speedB, uint32_t pathIndex, uint32_t pathPoint, ABus::SpawnMode spawnMode)
Definition
Bus.h:38
ABus::SpawnType
ABus::SpawnMode SpawnType
Definition
Bus.h:60
ABus::VehicleCollision
virtual void VehicleCollision(s32 playerId, Player *player) override
Definition
Bus.cpp:181
ABus::SomeArg3
f32 SomeArg3
Definition
Bus.h:33
ABus::SomeMultiplierTheSequel
f32 SomeMultiplierTheSequel
Definition
Bus.h:27
ABus::Rotation
Vec3s Rotation
Definition
Bus.h:26
ABus::_count
static size_t _count
Definition
Bus.h:73
ABus::Speed
f32 Speed
Definition
Bus.h:22
ABus::IsMod
virtual bool IsMod() override
Definition
Bus.cpp:95
ABus::SoundBits
u32 SoundBits
Definition
Bus.h:35
ABus::Position
Vec3f Position
Definition
Bus.h:24
ABus::SomeFlags
s8 SomeFlags
Definition
Bus.h:30
ABus::Draw
virtual void Draw(Camera *camera) override
Definition
Bus.cpp:99
ABus::PathIndex
uint32_t PathIndex
Definition
Bus.h:62
ABus::ABus
ABus(const SpawnParams ¶ms)
Definition
Bus.cpp:24
ABus::SomeType
s16 SomeType
Definition
Bus.h:31
ABus::SpeedB
float SpeedB
Definition
Bus.h:61
ABus::Index
size_t Index
Definition
Bus.h:21
ABus::ActorIndex
s16 ActorIndex
Definition
Bus.h:23
ABus::WaypointIndex
u16 WaypointIndex
Definition
Bus.h:29
ABus::SomeFlagsTheSequel
s8 SomeFlagsTheSequel
Definition
Bus.h:28
ABus::DrawEditorProperties
virtual void DrawEditorProperties() override
Definition
Bus.cpp:314
ABus::Type
const char * Type
Definition
Bus.h:20
ABus::GetCount
static size_t GetCount()
Definition
Bus.h:56
ABus::SomeArg4
f32 SomeArg4
Definition
Bus.h:34
ABus::SetSpawnParams
virtual void SetSpawnParams(SpawnParams ¶ms) override
Definition
Bus.cpp:86
ABus::BusCounts
static std::map< uint32_t, std::vector< uint32_t > > BusCounts
Definition
Bus.h:74
Vec3f
f32 Vec3f[3]
Definition
common_structs.h:10
Vec3s
s16 Vec3s[3]
Definition
common_structs.h:15
sounds.h
SOUND_ARG_LOAD
#define SOUND_ARG_LOAD(sound_bank, byte2, byte3, sound_id)
Definition
sounds.h:14
Camera
Definition
camera.h:35
Player
Definition
common_structs.h:264
SpawnParams
Definition
SpawnParams.h:30
src
engine
vehicles
Bus.h
Generated by
1.13.2