Mario Kart 64
Loading...
Searching...
No Matches
Ship.h
Go to the documentation of this file.
1#pragma once
2
3#include <libultraship.h>
4#include <libultra/gbi.h>
5#include "CoreMath.h"
6#include "engine/Actor.h"
7#include "engine/World.h"
8
9extern "C" {
10#include "common_structs.h"
12}
13
14class AShip : public AActor {
15public:
16
22
23 explicit AShip(const SpawnParams& params);
24 virtual ~AShip() = default;
25
26 // This is simply a helper function to keep Spawning code clean
27 static inline AShip* Spawn(FVector pos, IRotator rot, FVector scale, int16_t skin) {
28 SpawnParams params = {
29 .Name = "hm:ship",
30 .Type = skin, // which ship model to use
31 .Location = pos,
32 .Rotation = rot,
33 .Scale = scale,
34 };
35 return static_cast<AShip*>(gWorldInstance.AddActor(new AShip(params)));
36 }
37
39
40 virtual void SetSpawnParams(SpawnParams& params) override;
41 virtual void Tick() override;
42 virtual void BeginPlay() override;
43 virtual bool IsMod() override;
44 virtual void DrawEditorProperties() override;
45private:
46 Gfx* _skin;
47};
World gWorldInstance
Definition Game.cpp:74
AActor()
Definition Actor.cpp:13
virtual void Tick() override
Definition Ship.cpp:61
virtual void SetSpawnParams(SpawnParams &params) override
Definition Ship.cpp:44
Gfx * _skin
Definition Ship.h:46
virtual void BeginPlay() override
Definition Ship.cpp:54
AShip(const SpawnParams &params)
Definition Ship.cpp:17
virtual void DrawEditorProperties() override
Definition Ship.cpp:78
Skin
Definition Ship.h:17
@ GHOSTSHIP
Definition Ship.h:18
@ SHIP2
Definition Ship.h:19
@ SHIP3
Definition Ship.h:20
AShip::Skin SpawnSkin
Definition Ship.h:38
virtual ~AShip()=default
static AShip * Spawn(FVector pos, IRotator rot, FVector scale, int16_t skin)
Definition Ship.h:27
virtual bool IsMod() override
Definition Ship.cpp:76
Definition CoreMath.h:30
Definition CoreMath.h:137
Definition SpawnParams.h:30