Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
KartJump.hh
1
#pragma once
2
3
#include "game/kart/KartObjectProxy.hh"
4
#include "game/system/KPadController.hh"
5
6
namespace
Kinoko::Kart
{
7
10
enum class
SurfaceVariant
{
11
DoubleFlipTrick
= 0,
12
SingleFlipTrick
= 1,
13
StuntTrick
= 2,
14
};
15
18
enum class
TrickType
{
19
StuntTrickBasic
= 0,
20
BikeFlipTrickNose
= 1,
21
BikeFlipTrickTail
= 2,
22
FlipTrickYLeft
= 3,
23
FlipTrickYRight
= 4,
24
KartFlipTrickZ
= 5,
25
BikeSideStuntTrick
= 6,
26
};
27
30
class
KartJump :
protected
KartObjectProxy {
31
public
:
32
struct
TrickProperties
{
33
f32 initialAngleDiff;
34
f32 angleDeltaMin;
35
f32 angleDeltaFactorMin;
36
f32 angleDiffMulDec;
37
};
38
39
struct
AngleProperties
{
40
f32 targetAngle;
41
f32 rotAngle;
42
};
43
44
KartJump(
KartMove
*move);
45
virtual
~KartJump();
46
47
virtual
void
calcRot();
48
49
void
setupProperties();
50
void
reset();
51
void
tryStart(
const
EGG::Vector3f
&left);
52
void
calc();
53
bool
someFlagCheck();
54
void
calcInput();
55
void
end();
56
57
void
setAngle(
const
EGG::Vector3f
&left);
58
60
void
setBoostRampEnabled(
bool
isSet) {
61
m_boostRampEnabled = isSet;
62
}
64
66
[[nodiscard]]
bool
isBoostRampEnabled()
const
{
67
return
m_boostRampEnabled;
68
}
69
70
[[nodiscard]] TrickType type()
const
{
71
return
m_type;
72
}
73
[[nodiscard]] SurfaceVariant variant()
const
{
74
return
m_variant;
75
}
76
[[nodiscard]] s16 cooldown()
const
{
77
return
m_cooldown;
78
}
80
81
protected
:
82
virtual
void
start(
const
EGG::Vector3f &left);
83
virtual
void
init();
84
85
TrickType
m_type;
86
SurfaceVariant
m_variant;
87
System::Trick m_nextTrick;
88
f32 m_rotSign;
89
TrickProperties
m_properties;
90
f32 m_angle;
91
f32 m_angleDelta;
92
f32 m_angleDeltaFactor;
93
f32 m_angleDeltaFactorDec;
94
f32 m_finalAngle;
95
s16 m_cooldown;
96
EGG::Quatf m_rot;
97
KartMove *m_move;
98
99
private
:
100
s16 m_nextAllowTimer;
101
bool
m_boostRampEnabled;
102
};
103
104
class
KartJumpBike :
public
KartJump {
105
public
:
106
KartJumpBike(
KartMove
*move);
107
~KartJumpBike();
108
109
void
calcRot
()
override
;
110
111
private
:
112
void
start(
const
EGG::Vector3f
&left)
override
;
113
void
init()
override
;
114
};
115
116
}
// namespace Kinoko::Kart
Kinoko::Kart::KartJumpBike::calcRot
void calcRot() override
Definition
KartJump.cc:249
Kinoko::Kart::KartMove
Responsible for reacting to player inputs and moving the kart.
Definition
KartMove.hh:19
Kinoko::Kart
Pertains to kart-related functionality.
Definition
BoxColManager.hh:14
Kinoko::Kart::TrickType
TrickType
Represents the type of trick that will be performed based on kart and player input.
Definition
KartJump.hh:18
Kinoko::Kart::TrickType::FlipTrickYLeft
@ FlipTrickYLeft
A left trick with kart/bike.
Definition
KartJump.hh:22
Kinoko::Kart::TrickType::KartFlipTrickZ
@ KartFlipTrickZ
An up/down trick with a kart.
Definition
KartJump.hh:24
Kinoko::Kart::TrickType::BikeSideStuntTrick
@ BikeSideStuntTrick
A side StuntTrick with a bike.
Definition
KartJump.hh:25
Kinoko::Kart::TrickType::BikeFlipTrickTail
@ BikeFlipTrickTail
A down trick with bike.
Definition
KartJump.hh:21
Kinoko::Kart::TrickType::BikeFlipTrickNose
@ BikeFlipTrickNose
An up trick with bike.
Definition
KartJump.hh:20
Kinoko::Kart::TrickType::StuntTrickBasic
@ StuntTrickBasic
An up/down StuntTrick with kart/bike.
Definition
KartJump.hh:19
Kinoko::Kart::TrickType::FlipTrickYRight
@ FlipTrickYRight
A right trick with kart/bike.
Definition
KartJump.hh:23
Kinoko::Kart::SurfaceVariant
SurfaceVariant
Determined by the KCL, this represents the variation of the trick that will be performed.
Definition
KartJump.hh:10
Kinoko::Kart::SurfaceVariant::SingleFlipTrick
@ SingleFlipTrick
BC starting ramp.
Definition
KartJump.hh:12
Kinoko::Kart::SurfaceVariant::DoubleFlipTrick
@ DoubleFlipTrick
RR ramps before figure-8 and last turn.
Definition
KartJump.hh:11
Kinoko::Kart::SurfaceVariant::StuntTrick
@ StuntTrick
Think rMR ramp and pipe, MH after first turn, mushrooms, etc.
Definition
KartJump.hh:13
Kinoko::EGG::Vector3f
A 3D float vector.
Definition
Vector.hh:107
Kinoko::Kart::KartJump::AngleProperties
Definition
KartJump.hh:39
Kinoko::Kart::KartJump::TrickProperties
Definition
KartJump.hh:32
game
kart
KartJump.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0