Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
ObjectPsea.cc
1
#include "ObjectPsea.hh"
2
3
#include "game/field/ObjectDirector.hh"
4
5
namespace
Kinoko::Field
{
6
8
ObjectPsea::ObjectPsea(
const
System::MapdataGeoObj ¶ms)
9
:
ObjectCollidable
(params), m_period(F_TAU / static_cast<f32>(CYCLE_DURATION)) {
10
constexpr
EGG::Vector3f POS_OFFSET = EGG::Vector3f(0.0f, 6.75f, 0.0f) * 96.0f;
11
constexpr
EGG::Vector3f EXTRA_OFFSET = EGG::Vector3f(0.0f, 1.0f, 0.0f);
12
13
m_frame = 0;
14
m_initPosY = (pos() + POS_OFFSET + EXTRA_OFFSET).y;
15
16
auto
*objDir = ObjectDirector::Instance();
17
ASSERT(!objDir->psea());
18
objDir->setPsea(
this
);
19
}
20
22
ObjectPsea::~ObjectPsea() =
default
;
23
25
void
ObjectPsea::calc() {
26
constexpr
f32 POS_OFFSET = 9590.399f;
27
constexpr
f32 AMPLITUDE = 140.0f;
28
29
f32 sin = EGG::Mathf::sin(m_period *
static_cast<
f32
>
(m_frame));
30
31
if
(CYCLE_DURATION < m_frame++) {
32
m_frame = 0;
33
}
34
35
f32 posY = m_initPosY + AMPLITUDE * sin + POS_OFFSET;
36
setPos(EGG::Vector3f(pos().x, posY, pos().z));
37
}
38
39
}
// namespace Kinoko::Field
Kinoko::Field::ObjectCollidable
Definition
ObjectCollidable.hh:18
Kinoko::Field
Pertains to collision.
Definition
BoxColManager.cc:10
game
field
obj
ObjectPsea.cc
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0