summaryrefslogtreecommitdiff
path: root/src/engine
diff options
context:
space:
mode:
authorKiritoDv <36680385+KiritoDv@users.noreply.github.com>2025-05-16 02:44:40 +0000
committergithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2025-05-16 02:44:40 +0000
commitb53a5dbcfa24ef2aa4860b6d9512709976686de8 (patch)
tree441f2bb9c0bc8f955eb9289d19b13beab5c239c5 /src/engine
parentbdf5ca8d603ae56ac275bebf9fde58ae72484d76 (diff)
clang formatclang-format
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/Actor.cpp20
-rw-r--r--src/engine/Actor.h15
-rw-r--r--src/engine/AllActors.h1
-rw-r--r--src/engine/CoreMath.h93
-rw-r--r--src/engine/Cup.cpp2
-rw-r--r--src/engine/Cup.h6
-rw-r--r--src/engine/GameAPI.h2
-rw-r--r--src/engine/GarbageCollector.cpp2
-rw-r--r--src/engine/GarbageCollector.h1
-rw-r--r--src/engine/HM_Intro.cpp38
-rw-r--r--src/engine/HM_Intro.h13
-rw-r--r--src/engine/Matrix.cpp103
-rw-r--r--src/engine/Matrix.h2
-rw-r--r--src/engine/ModelLoader.cpp1
-rw-r--r--src/engine/ModelLoader.h21
-rw-r--r--src/engine/PlayerBombKart.cpp22
-rw-r--r--src/engine/PlayerBombKart.h5
-rw-r--r--src/engine/Registry.h2
-rw-r--r--src/engine/Smoke.cpp12
-rw-r--r--src/engine/StaticMeshActor.cpp7
-rw-r--r--src/engine/StaticMeshActor.h26
-rw-r--r--src/engine/TrainCrossing.cpp13
-rw-r--r--src/engine/TrainCrossing.h6
-rw-r--r--src/engine/World.cpp58
-rw-r--r--src/engine/World.h12
-rw-r--r--src/engine/actors/Banana.cpp22
-rw-r--r--src/engine/actors/Banana.h3
-rw-r--r--src/engine/actors/BowserStatue.cpp8
-rw-r--r--src/engine/actors/BowserStatue.h10
-rw-r--r--src/engine/actors/Cloud.cpp112
-rw-r--r--src/engine/actors/Cloud.h9
-rw-r--r--src/engine/actors/Finishline.cpp21
-rw-r--r--src/engine/actors/Finishline.h7
-rw-r--r--src/engine/actors/MarioSign.cpp4
-rw-r--r--src/engine/actors/MarioSign.h3
-rw-r--r--src/engine/actors/Ship.cpp8
-rw-r--r--src/engine/actors/Ship.h11
-rw-r--r--src/engine/actors/SpaghettiShip.cpp24
-rw-r--r--src/engine/actors/SpaghettiShip.h4
-rw-r--r--src/engine/actors/Starship.cpp6
-rw-r--r--src/engine/actors/Starship.h2
-rw-r--r--src/engine/actors/Tree.cpp11
-rw-r--r--src/engine/actors/Tree.h4
-rw-r--r--src/engine/actors/WarioSign.cpp4
-rw-r--r--src/engine/actors/WarioSign.h3
-rw-r--r--src/engine/courses/BansheeBoardwalk.cpp106
-rw-r--r--src/engine/courses/BansheeBoardwalk.h33
-rw-r--r--src/engine/courses/BigDonut.cpp90
-rw-r--r--src/engine/courses/BigDonut.h22
-rw-r--r--src/engine/courses/BlockFort.cpp68
-rw-r--r--src/engine/courses/BlockFort.h26
-rw-r--r--src/engine/courses/BowsersCastle.cpp97
-rw-r--r--src/engine/courses/BowsersCastle.h34
-rw-r--r--src/engine/courses/ChocoMountain.cpp89
-rw-r--r--src/engine/courses/ChocoMountain.h31
-rw-r--r--src/engine/courses/Course.cpp28
-rw-r--r--src/engine/courses/Course.h65
-rw-r--r--src/engine/courses/DKJungle.cpp183
-rw-r--r--src/engine/courses/DKJungle.h34
-rw-r--r--src/engine/courses/DoubleDeck.cpp85
-rw-r--r--src/engine/courses/DoubleDeck.h28
-rw-r--r--src/engine/courses/FrappeSnowland.cpp80
-rw-r--r--src/engine/courses/FrappeSnowland.h22
-rw-r--r--src/engine/courses/Harbour.cpp821
-rw-r--r--src/engine/courses/Harbour.h26
-rw-r--r--src/engine/courses/KalimariDesert.cpp117
-rw-r--r--src/engine/courses/KalimariDesert.h28
-rw-r--r--src/engine/courses/KoopaTroopaBeach.cpp127
-rw-r--r--src/engine/courses/KoopaTroopaBeach.h34
-rw-r--r--src/engine/courses/LuigiRaceway.cpp2
-rw-r--r--src/engine/courses/MarioRaceway.cpp99
-rw-r--r--src/engine/courses/MarioRaceway.h28
-rw-r--r--src/engine/courses/MooMooFarm.cpp154
-rw-r--r--src/engine/courses/MooMooFarm.h28
-rw-r--r--src/engine/courses/PodiumCeremony.cpp105
-rw-r--r--src/engine/courses/PodiumCeremony.h30
-rw-r--r--src/engine/courses/RainbowRoad.cpp103
-rw-r--r--src/engine/courses/RainbowRoad.h31
-rw-r--r--src/engine/courses/RoyalRaceway.cpp86
-rw-r--r--src/engine/courses/RoyalRaceway.h28
-rw-r--r--src/engine/courses/SherbetLand.cpp144
-rw-r--r--src/engine/courses/SherbetLand.h31
-rw-r--r--src/engine/courses/Skyscraper.cpp98
-rw-r--r--src/engine/courses/Skyscraper.h30
-rw-r--r--src/engine/courses/TestCourse.cpp242
-rw-r--r--src/engine/courses/TestCourse.h26
-rw-r--r--src/engine/courses/ToadsTurnpike.cpp90
-rw-r--r--src/engine/courses/ToadsTurnpike.h31
-rw-r--r--src/engine/courses/YoshiValley.cpp96
-rw-r--r--src/engine/courses/YoshiValley.h28
-rw-r--r--src/engine/editor/Collision.cpp318
-rw-r--r--src/engine/editor/Collision.h12
-rw-r--r--src/engine/editor/Editor.cpp218
-rw-r--r--src/engine/editor/Editor.h16
-rw-r--r--src/engine/editor/EditorMath.cpp62
-rw-r--r--src/engine/editor/EditorMath.h7
-rw-r--r--src/engine/editor/GameObject.cpp40
-rw-r--r--src/engine/editor/GameObject.h49
-rw-r--r--src/engine/editor/Gizmo.cpp135
-rw-r--r--src/engine/editor/Gizmo.h30
-rw-r--r--src/engine/editor/Handles.cpp25
-rw-r--r--src/engine/editor/Handles.h18
-rw-r--r--src/engine/editor/Light.cpp102
-rw-r--r--src/engine/editor/Light.h3083
-rw-r--r--src/engine/editor/ObjectPicker.cpp31
-rw-r--r--src/engine/editor/ObjectPicker.h39
-rw-r--r--src/engine/editor/SceneManager.cpp224
-rw-r--r--src/engine/editor/SceneManager.h16
-rw-r--r--src/engine/items/Items.cpp1
-rw-r--r--src/engine/items/Items.h1
-rw-r--r--src/engine/objects/Bat.cpp12
-rw-r--r--src/engine/objects/Bat.h8
-rw-r--r--src/engine/objects/BombKart.cpp34
-rw-r--r--src/engine/objects/BombKart.h11
-rw-r--r--src/engine/objects/Boos.cpp11
-rw-r--r--src/engine/objects/Boos.h15
-rw-r--r--src/engine/objects/ChainChomp.cpp12
-rw-r--r--src/engine/objects/ChainChomp.h5
-rw-r--r--src/engine/objects/CheepCheep.cpp18
-rw-r--r--src/engine/objects/CheepCheep.h18
-rw-r--r--src/engine/objects/Crab.cpp14
-rw-r--r--src/engine/objects/Crab.h8
-rw-r--r--src/engine/objects/Flagpole.cpp2
-rw-r--r--src/engine/objects/Flagpole.h4
-rw-r--r--src/engine/objects/GrandPrixBalloons.cpp15
-rw-r--r--src/engine/objects/GrandPrixBalloons.h7
-rw-r--r--src/engine/objects/Hedgehog.cpp14
-rw-r--r--src/engine/objects/Hedgehog.h5
-rw-r--r--src/engine/objects/HotAirBalloon.cpp14
-rw-r--r--src/engine/objects/HotAirBalloon.h6
-rw-r--r--src/engine/objects/Lakitu.cpp34
-rw-r--r--src/engine/objects/Lakitu.h8
-rw-r--r--src/engine/objects/Mole.cpp83
-rw-r--r--src/engine/objects/Mole.h5
-rw-r--r--src/engine/objects/MoleGroup.cpp6
-rw-r--r--src/engine/objects/MoleGroup.h3
-rw-r--r--src/engine/objects/Object.cpp25
-rw-r--r--src/engine/objects/Object.h6
-rw-r--r--src/engine/objects/Penguin.cpp26
-rw-r--r--src/engine/objects/Penguin.h16
-rw-r--r--src/engine/objects/Podium.cpp52
-rw-r--r--src/engine/objects/Podium.h11
-rw-r--r--src/engine/objects/Seagull.cpp48
-rw-r--r--src/engine/objects/Seagull.h7
-rw-r--r--src/engine/objects/Snowman.cpp43
-rw-r--r--src/engine/objects/Snowman.h4
-rw-r--r--src/engine/objects/Thwomp.cpp69
-rw-r--r--src/engine/objects/Thwomp.h11
-rw-r--r--src/engine/objects/TrashBin.cpp133
-rw-r--r--src/engine/objects/TrashBin.h7
-rw-r--r--src/engine/objects/Trophy.cpp75
-rw-r--r--src/engine/objects/Trophy.h8
-rw-r--r--src/engine/particles/ParticleEmitter.cpp17
-rw-r--r--src/engine/particles/ParticleEmitter.h8
-rw-r--r--src/engine/particles/StarEmitter.cpp8
-rw-r--r--src/engine/particles/StarEmitter.h9
-rw-r--r--src/engine/vehicles/Boat.cpp25
-rw-r--r--src/engine/vehicles/Boat.h9
-rw-r--r--src/engine/vehicles/Bus.cpp25
-rw-r--r--src/engine/vehicles/Bus.h7
-rw-r--r--src/engine/vehicles/Car.cpp27
-rw-r--r--src/engine/vehicles/Car.h8
-rw-r--r--src/engine/vehicles/TankerTruck.cpp25
-rw-r--r--src/engine/vehicles/TankerTruck.h7
-rw-r--r--src/engine/vehicles/Train.cpp57
-rw-r--r--src/engine/vehicles/Train.h7
-rw-r--r--src/engine/vehicles/Truck.cpp25
-rw-r--r--src/engine/vehicles/Truck.h7
-rw-r--r--src/engine/vehicles/Utils.cpp2
-rw-r--r--src/engine/wasm.cpp2
-rw-r--r--src/engine/wasm.h2
171 files changed, 4309 insertions, 5851 deletions
diff --git a/src/engine/Actor.cpp b/src/engine/Actor.cpp
index f3254fed0..c1c2ea0c3 100644
--- a/src/engine/Actor.cpp
+++ b/src/engine/Actor.cpp
@@ -7,30 +7,36 @@ extern "C" {
#include "math_util.h"
}
-AActor::AActor() {}
+AActor::AActor() {
+}
// Virtual functions to be overridden by derived classes
-void AActor::Tick() { }
-void AActor::Draw(Camera *camera) {
+void AActor::Tick() {
+}
+void AActor::Draw(Camera* camera) {
if (Model) {
Mat4 mtx;
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
- ApplyMatrixTransformations(mtx, *(FVector*)Pos, *(IRotator*)Rot, Scale);
+ ApplyMatrixTransformations(mtx, *(FVector*) Pos, *(IRotator*) Rot, Scale);
if (render_set_position(mtx, 0) != 0) {
gSPDisplayList(gDisplayListHead++, Model);
}
}
}
-void AActor::Collision(Player* player, AActor* actor) {}
-void AActor::VehicleCollision(s32 playerId, Player* player){}
+void AActor::Collision(Player* player, AActor* actor) {
+}
+void AActor::VehicleCollision(s32 playerId, Player* player) {
+}
void AActor::Destroy() {
// Set uuid to zero.
memset(uuid, 0, sizeof(uuid));
}
-bool AActor::IsMod() { return false; }
+bool AActor::IsMod() {
+ return false;
+}
void AActor::SetLocation(FVector pos) {
Pos[0] = pos.x;
Pos[1] = pos.y;
diff --git a/src/engine/Actor.h b/src/engine/Actor.h
index fb0a9f89e..c287329a4 100644
--- a/src/engine/Actor.h
+++ b/src/engine/Actor.h
@@ -9,28 +9,26 @@ extern "C" {
#include "camera.h"
#include "common_structs.h"
-
class AActor {
-public:
-
+ public:
/* 0x00 */ s16 Type = 0;
/* 0x02 */ s16 Flags;
/* 0x04 */ s16 Unk_04;
/* 0x06 */ s16 State;
/* 0x08 */ f32 Unk_08;
/* 0x0C */ f32 BoundingBoxSize;
- /* 0x10 */ Vec3s Rot = {0, 0, 0};
+ /* 0x10 */ Vec3s Rot = { 0, 0, 0 };
/* 0x16 */ s16 Unk_16;
/* 0x18 */ Vec3f Pos;
- /* 0x24 */ Vec3f Velocity = {0, 0, 0};
+ /* 0x24 */ Vec3f Velocity = { 0, 0, 0 };
/* 0x30 */ Collision Unk30;
uint8_t uuid[16];
const char* Name = "";
- FVector Scale = {1, 1, 1};
+ FVector Scale = { 1, 1, 1 };
Gfx* Model = NULL;
- virtual ~AActor() = default; // Virtual destructor for proper cleanup in derived classes
+ virtual ~AActor() = default; // Virtual destructor for proper cleanup in derived classes
explicit AActor();
@@ -44,5 +42,4 @@ public:
virtual void Destroy();
virtual bool IsMod();
};
-
-} \ No newline at end of file
+}
diff --git a/src/engine/AllActors.h b/src/engine/AllActors.h
index f2b228b57..78e37a271 100644
--- a/src/engine/AllActors.h
+++ b/src/engine/AllActors.h
@@ -36,4 +36,3 @@
#include "objects/Snowman.h"
#include "objects/Podium.h"
#include "objects/GrandPrixBalloons.h"
-
diff --git a/src/engine/CoreMath.h b/src/engine/CoreMath.h
index 2c232aab9..20c7479c9 100644
--- a/src/engine/CoreMath.h
+++ b/src/engine/CoreMath.h
@@ -5,13 +5,13 @@
/**
* @file CoreMath.h
- *
+ *
* Basic vector structs for manipulating 2D and 3D coordinates
- *
+ *
*/
/**
- *
+ *
* Applies pos, rot, and scale
*
*/
@@ -38,13 +38,8 @@ struct FVector {
return x * other.x + y * other.y + z * other.z;
}
-
FVector Cross(const FVector& other) const {
- return FVector(
- y * other.z - z * other.y,
- z * other.x - x * other.z,
- x * other.y - y * other.x
- );
+ return FVector(y * other.z - z * other.y, z * other.x - x * other.z, x * other.y - y * other.x);
}
float Magnitude() const {
@@ -54,15 +49,15 @@ struct FVector {
FVector Normalize() const {
float len = std::sqrt(x * x + y * y + z * z);
if (len > 0.0001f) {
- return FVector(
- x / len, y / len, z / len
- );
+ return FVector(x / len, y / len, z / len);
}
return FVector(0, 0, 0);
}
- FVector() : x(0), y(0), z(0) {}
- FVector(float x, float y, float z) : x(x), y(y), z(z) {}
+ FVector() : x(0), y(0), z(0) {
+ }
+ FVector(float x, float y, float z) : x(x), y(y), z(z) {
+ }
#endif // __cplusplus
};
@@ -71,8 +66,10 @@ struct FVector4 {
#ifdef __cplusplus
- FVector4() : x(0), y(0), z(0), w(0) {}
- FVector4(float x, float y, float z, float w) : x(x), y(y), z(z), w(w) {}
+ FVector4() : x(0), y(0), z(0), w(0) {
+ }
+ FVector4(float x, float y, float z, float w) : x(x), y(y), z(z), w(w) {
+ }
#endif // __cplusplus
};
@@ -92,8 +89,10 @@ struct FVector2D {
return *this;
}
- FVector2D() : x(0), z(0) {}
- FVector2D(float x, float z) : x(x), z(z) {}
+ FVector2D() : x(0), z(0) {
+ }
+ FVector2D(float x, float z) : x(x), z(z) {
+ }
#endif // __cplusplus
};
@@ -102,10 +101,11 @@ typedef struct IVector2D {
int32_t X, Y;
#ifdef __cplusplus
- IVector2D() : X(0), Y(0) {} // Default constructor
-
- IVector2D(int32_t x, int32_t y) : X(x), Y(y) {} // Constructor to initialize with values
+ IVector2D() : X(0), Y(0) {
+ } // Default constructor
+ IVector2D(int32_t x, int32_t y) : X(x), Y(y) {
+ } // Constructor to initialize with values
IVector2D& operator=(const IVector2D& other) {
X = other.X;
@@ -116,9 +116,8 @@ typedef struct IVector2D {
} IVector2D;
/**
- * This struct immediately converts float pitch/yaw/roll in degrees to n64 int16_t binary angles 0-0xFFFF == 0-360 degrees
- * ToDegrees() Receive an FRotator of float degrees back.
- * Set() Set an n64 int16_t binary angles 0-0xFFFF
+ * This struct immediately converts float pitch/yaw/roll in degrees to n64 int16_t binary angles 0-0xFFFF == 0-360
+ * degrees ToDegrees() Receive an FRotator of float degrees back. Set() Set an n64 int16_t binary angles 0-0xFFFF
*/
struct IRotator {
uint16_t pitch, yaw, roll;
@@ -126,8 +125,8 @@ struct IRotator {
#ifdef __cplusplus
IRotator& operator=(const IRotator& other) {
pitch = other.pitch;
- yaw = other.yaw;
- roll = other.roll;
+ yaw = other.yaw;
+ roll = other.roll;
return *this;
}
@@ -137,21 +136,18 @@ struct IRotator {
roll = r;
}
- IRotator() : pitch(0), yaw(0), roll(0) {}
+ IRotator() : pitch(0), yaw(0), roll(0) {
+ }
IRotator(float p, float y, float r) {
pitch = p * (UINT16_MAX / 360);
- yaw = y * (UINT16_MAX / 360);
- roll = r * (UINT16_MAX / 360);
+ yaw = y * (UINT16_MAX / 360);
+ roll = r * (UINT16_MAX / 360);
}
// Convert to radians as FVector
[[nodiscard]] FVector ToRadians() const {
float scale = 2.0f * M_PI / 65536.0f;
- return FVector(
- pitch * scale,
- yaw * scale,
- roll * scale
- );
+ return FVector(pitch * scale, yaw * scale, roll * scale);
}
#endif // __cplusplus
};
@@ -167,26 +163,26 @@ struct FRotator {
#ifdef __cplusplus
FRotator& operator=(const FRotator& other) {
pitch = other.pitch;
- yaw = other.yaw;
- roll = other.roll;
+ yaw = other.yaw;
+ roll = other.roll;
return *this;
}
// Convert to binary rotator 0 --> INT16_MAX
[[nodiscard]] IRotator ToBinary() const {
- return IRotator(
- static_cast<uint16_t>(pitch * (UINT16_MAX / 360)),
- static_cast<uint16_t>(yaw * (UINT16_MAX / 360)),
- static_cast<uint16_t>(roll * (UINT16_MAX / 360))
- );
+ return IRotator(static_cast<uint16_t>(pitch * (UINT16_MAX / 360)),
+ static_cast<uint16_t>(yaw * (UINT16_MAX / 360)),
+ static_cast<uint16_t>(roll * (UINT16_MAX / 360)));
}
- FRotator() : pitch(0), yaw(0), roll(0) {}
- FRotator(float p, float y, float r) : pitch(p), yaw(y), roll(r) {}
+ FRotator() : pitch(0), yaw(0), roll(0) {
+ }
+ FRotator(float p, float y, float r) : pitch(p), yaw(y), roll(r) {
+ }
FRotator(IRotator rot) {
pitch = static_cast<float>(rot.pitch * (360 / UINT16_MAX));
- yaw = static_cast<float>(rot.yaw * (360 / UINT16_MAX));
- roll = static_cast<float>(rot.roll * (360 / UINT16_MAX));
+ yaw = static_cast<float>(rot.yaw * (360 / UINT16_MAX));
+ roll = static_cast<float>(rot.roll * (360 / UINT16_MAX));
}
#endif // __cplusplus
};
@@ -200,11 +196,12 @@ struct IPathSpan {
#ifdef __cplusplus
// Default Constructor
- IPathSpan() : Start(0), End(0) {}
+ IPathSpan() : Start(0), End(0) {
+ }
// Parameterized Constructor
- IPathSpan(int InStart, int InEnd)
- : Start(InStart), End(InEnd) {}
+ IPathSpan(int InStart, int InEnd) : Start(InStart), End(InEnd) {
+ }
// Copy Assignment Operator
IPathSpan& operator=(const IPathSpan& Other) {
diff --git a/src/engine/Cup.cpp b/src/engine/Cup.cpp
index ec9e6c913..a798bb5e8 100644
--- a/src/engine/Cup.cpp
+++ b/src/engine/Cup.cpp
@@ -42,5 +42,5 @@ size_t Cup::GetSize() {
void Cup::ShuffleCourses() {
// std::random_device rd;
// std::mt19937 g(rd());
- //std::shuffle(Courses.begin(), Courses.end(), g);
+ // std::shuffle(Courses.begin(), Courses.end(), g);
}
diff --git a/src/engine/Cup.h b/src/engine/Cup.h
index 0b477824f..4ef5a3f83 100644
--- a/src/engine/Cup.h
+++ b/src/engine/Cup.h
@@ -8,10 +8,10 @@
class Course; // <-- Forward declare
class Cup {
-public:
+ public:
std::string Id;
const char* Name;
- u8 *Thumbnail;
+ u8* Thumbnail;
size_t CursorPosition = 0; // Course index in cup
std::vector<Course*> Courses;
@@ -24,4 +24,4 @@ public:
virtual void SetCourse(size_t position);
virtual Course* GetCourse();
virtual size_t GetSize();
-}; \ No newline at end of file
+};
diff --git a/src/engine/GameAPI.h b/src/engine/GameAPI.h
index 6e2e84323..009735e87 100644
--- a/src/engine/GameAPI.h
+++ b/src/engine/GameAPI.h
@@ -3,4 +3,4 @@
void* GetCourse(void);
-#endif // GAME_API_H \ No newline at end of file
+#endif // GAME_API_H
diff --git a/src/engine/GarbageCollector.cpp b/src/engine/GarbageCollector.cpp
index 9832aa29d..34dee17c8 100644
--- a/src/engine/GarbageCollector.cpp
+++ b/src/engine/GarbageCollector.cpp
@@ -2,7 +2,7 @@
#include "World.h"
void RunGarbageCollector() {
- //CleanActors();
+ // CleanActors();
CleanObjects();
CleanStaticMeshActors();
}
diff --git a/src/engine/GarbageCollector.h b/src/engine/GarbageCollector.h
index c96f1c36a..f9f82cbfd 100644
--- a/src/engine/GarbageCollector.h
+++ b/src/engine/GarbageCollector.h
@@ -5,7 +5,6 @@
#include "Object.h"
#include "World.h"
-
void RunGarbageCollector();
void CleanActors();
void CleanStaticMeshActors();
diff --git a/src/engine/HM_Intro.cpp b/src/engine/HM_Intro.cpp
index e27d5db0c..8fb97f89d 100644
--- a/src/engine/HM_Intro.cpp
+++ b/src/engine/HM_Intro.cpp
@@ -40,7 +40,7 @@ void HarbourMastersIntro::HM_InitIntro() {
_pos = FVector(-1000, -205, -800); // -1000, -210, -800
_rot = IRotator(-5, 100, 0);
- _scale = {0.7f, 0.7f, 0.7f};
+ _scale = { 0.7f, 0.7f, 0.7f };
_ship2Pos = FVector(300, -210, -1960);
_ship2Rot = IRotator(0, 45, 0);
@@ -53,18 +53,16 @@ void HarbourMastersIntro::HM_InitIntro() {
_hPos = FVector(-2000, 100, -4900);
_hRot = IRotator(0, -45.0f, 0);
- _hScale = {2.0f, 2.0f, 2.0f};
+ _hScale = { 2.0f, 2.0f, 2.0f };
lusPos = FVector(0, -400, -614); // 12, 190, -1000
lusRot = IRotator(0, 0, 0);
lusScale = FVector(1, 1, 1);
- ground_f3d_material_013_lights = gdSPDefLights1(
- 0x7F, 0x30, 0x80,
- 0x60, 20, 10, 0x49, 0x49, 0x49
- );
+ ground_f3d_material_013_lights = gdSPDefLights1(0x7F, 0x30, 0x80, 0x60, 20, 10, 0x49, 0x49, 0x49);
- gEditor.AddObject("lus", &lusPos, &lusRot, &lusScale, nullptr, 1, Editor::GameObject::CollisionType::BOUNDING_BOX, 10, &DespawnValue, -1);
+ gEditor.AddObject("lus", &lusPos, &lusRot, &lusScale, nullptr, 1, Editor::GameObject::CollisionType::BOUNDING_BOX,
+ 10, &DespawnValue, -1);
}
void HarbourMastersIntro::HM_TickIntro() {
@@ -90,12 +88,14 @@ void HarbourMastersIntro::HM_TickIntro() {
gFadeModeSelection = FADE_MODE_LOGO;
}
- find_and_set_tile_size((uintptr_t) ((void*)mat_water_water1), 0, _water);
- find_and_set_tile_size((uintptr_t) ((void*)mat_water_water2), _water, 0);;
+ find_and_set_tile_size((uintptr_t) ((void*) mat_water_water1), 0, _water);
+ find_and_set_tile_size((uintptr_t) ((void*) mat_water_water2), _water, 0);
+ ;
}
-void HarbourMastersIntro::Bob(FVector& pos, IRotator& rot, f32 bobAmp, f32 bobSpeed, f32 tiltAmp, f32 tiltSpeed, f32 rollAmp, f32 rollSpeed) {
- float time = (float)gGlobalTimer;
+void HarbourMastersIntro::Bob(FVector& pos, IRotator& rot, f32 bobAmp, f32 bobSpeed, f32 tiltAmp, f32 tiltSpeed,
+ f32 rollAmp, f32 rollSpeed) {
+ float time = (float) gGlobalTimer;
pos.y = -210 + bobAmp * sin(time * bobSpeed);
@@ -104,14 +104,15 @@ void HarbourMastersIntro::Bob(FVector& pos, IRotator& rot, f32 bobAmp, f32 bobSp
rot.roll = (rollAmp * sin(time * rollSpeed)) * (UINT16_MAX / 360);
}
-void HarbourMastersIntro::SpagBob(FVector& pos, IRotator& rot, f32 bobAmp, f32 bobSpeed, f32 tiltAmp, f32 tiltSpeed, f32 rollAmp, f32 rollSpeed) {
- float time = (float)gGlobalTimer;
+void HarbourMastersIntro::SpagBob(FVector& pos, IRotator& rot, f32 bobAmp, f32 bobSpeed, f32 tiltAmp, f32 tiltSpeed,
+ f32 rollAmp, f32 rollSpeed) {
+ float time = (float) gGlobalTimer;
pos.y = -205 + bobAmp * sin(time * bobSpeed);
- rot.pitch = (-5 + tiltAmp * sin(time * tiltSpeed)) * (UINT16_MAX / 360);
+ rot.pitch = (-5 + tiltAmp * sin(time * tiltSpeed)) * (UINT16_MAX / 360);
- rot.roll = (rollAmp * sin(time * rollSpeed)) * (UINT16_MAX / 360);
+ rot.roll = (rollAmp * sin(time * rollSpeed)) * (UINT16_MAX / 360);
}
void HarbourMastersIntro::HM_DrawIntro() {
@@ -142,7 +143,7 @@ void HarbourMastersIntro::HM_DrawIntro() {
render_set_position(mtx_geo, 0);
gSPDisplayList(gDisplayListHead++, ground_map_mesh);
- //gSPDisplayList(gDisplayListHead++, powered_Text_mesh); // Replaced by poweredbylus
+ // gSPDisplayList(gDisplayListHead++, powered_Text_mesh); // Replaced by poweredbylus
gSPDisplayList(gDisplayListHead++, castle_map_002_mesh);
gSPDisplayList(gDisplayListHead++, road_map_001_mesh);
gSPDisplayList(gDisplayListHead++, water_water1_mesh);
@@ -150,7 +151,7 @@ void HarbourMastersIntro::HM_DrawIntro() {
Mat4 lusMtx;
ApplyMatrixTransformations(lusMtx, lusPos, lusRot, lusScale);
render_set_position(lusMtx, 0);
- gSPDisplayList(gDisplayListHead++, (Gfx*)"__OTR__hmintro/poweredbylus");
+ gSPDisplayList(gDisplayListHead++, (Gfx*) "__OTR__hmintro/poweredbylus");
HarbourMastersIntro::Sync();
}
@@ -161,7 +162,8 @@ void HarbourMastersIntro::Setup() {
gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP);
guPerspective(&gGfxPool->mtxScreen, &perspNorm, 45.0f, 1.3333334f, 100.0f, 12800.0f, 1.0f);
gSPPerspNormalize(gDisplayListHead++, perspNorm);
- guLookAt(&gGfxPool->mtxLookAt[0], _camera.Pos.x, _camera.Pos.y, _camera.Pos.z, _camera.LookAt.x, _camera.LookAt.y, _camera.LookAt.z, 0.0f, 1.0f, 0.0f);
+ guLookAt(&gGfxPool->mtxLookAt[0], _camera.Pos.x, _camera.Pos.y, _camera.Pos.z, _camera.LookAt.x, _camera.LookAt.y,
+ _camera.LookAt.z, 0.0f, 1.0f, 0.0f);
gDPSetCycleType(gDisplayListHead++, G_CYC_FILL);
gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
diff --git a/src/engine/HM_Intro.h b/src/engine/HM_Intro.h
index 24fe08e35..552056a7f 100644
--- a/src/engine/HM_Intro.h
+++ b/src/engine/HM_Intro.h
@@ -15,17 +15,20 @@ extern "C" {
#ifdef __cplusplus
class HarbourMastersIntro {
-public:
+ public:
HarbourMastersIntro();
void HM_InitIntro();
void HM_TickIntro();
void HM_DrawIntro();
-private:
+
+ private:
void Setup();
void Sync();
- void Bob(FVector& pos, IRotator& rot, f32 bobAmp, f32 bobSpeed, f32 tiltAmp, f32 tiltSpeed, f32 rollAmp, f32 rollSpeed);
- void SpagBob(FVector& pos, IRotator& rot, f32 bobAmp, f32 bobSpeed, f32 tiltAmp, f32 tiltSpeed, f32 rollAmp, f32 rollSpeed);
+ void Bob(FVector& pos, IRotator& rot, f32 bobAmp, f32 bobSpeed, f32 tiltAmp, f32 tiltSpeed, f32 rollAmp,
+ f32 rollSpeed);
+ void SpagBob(FVector& pos, IRotator& rot, f32 bobAmp, f32 bobSpeed, f32 tiltAmp, f32 tiltSpeed, f32 rollAmp,
+ f32 rollSpeed);
void MoveCloserToCamera(float moveSpeed);
struct HMCamera {
@@ -75,4 +78,4 @@ void HM_DrawIntro(void);
}
#endif
-#endif // _HM_INTRO_H \ No newline at end of file
+#endif // _HM_INTRO_H
diff --git a/src/engine/Matrix.cpp b/src/engine/Matrix.cpp
index 1f2301258..686df48bd 100644
--- a/src/engine/Matrix.cpp
+++ b/src/engine/Matrix.cpp
@@ -99,7 +99,7 @@ void ApplyMatrixTransformations(Mat4 mtx, FVector pos, IRotator rot, FVector sca
mtx[0][2] *= scale.z;
mtx[1][2] *= scale.z;
mtx[2][2] *= scale.z;
-
+
// Set the last row and column for the homogeneous coordinate system
mtx[0][3] = 0.0f;
mtx[1][3] = 0.0f;
@@ -119,79 +119,76 @@ void AddLocalRotation(Mat4 mat, IRotator rot) {
mat[0][0] = (cos_yaw * cos_roll) + (sin_pitch * sin_yaw * sin_roll);
mat[0][1] = (cos_pitch * sin_roll);
mat[0][2] = (-sin_yaw * cos_roll) + (sin_pitch * cos_yaw * sin_roll);
-
+
mat[1][0] = (-cos_yaw * sin_roll) + (sin_pitch * sin_yaw * cos_roll);
mat[1][1] = (cos_pitch * cos_roll);
mat[1][2] = (sin_yaw * sin_roll) + (sin_pitch * cos_yaw * cos_roll);
-
+
mat[2][0] = (cos_pitch * sin_yaw);
mat[2][1] = -sin_pitch;
mat[2][2] = (cos_pitch * cos_yaw);
}
-
// API
extern "C" {
- void AddHudMatrix(Mat4 mtx, s32 flags) {
- AddMatrix(gWorldInstance.Mtx.Hud, mtx, flags);
- }
-
- void AddObjectMatrix(Mat4 mtx, s32 flags) {
- AddMatrix(gWorldInstance.Mtx.Objects, mtx, flags);
- }
+void AddHudMatrix(Mat4 mtx, s32 flags) {
+ AddMatrix(gWorldInstance.Mtx.Hud, mtx, flags);
+}
- void AddShadowMatrix(Mat4 mtx, s32 flags) {
- AddMatrix(gWorldInstance.Mtx.Shadows, mtx, flags);
- }
+void AddObjectMatrix(Mat4 mtx, s32 flags) {
+ AddMatrix(gWorldInstance.Mtx.Objects, mtx, flags);
+}
- void AddKartMatrix(Mat4 mtx, s32 flags) {
- AddMatrix(gWorldInstance.Mtx.Karts, mtx, flags);
- }
+void AddShadowMatrix(Mat4 mtx, s32 flags) {
+ AddMatrix(gWorldInstance.Mtx.Shadows, mtx, flags);
+}
- void AddEffectMatrix(Mat4 mtx, s32 flags) {
- AddMatrix(gWorldInstance.Mtx.Effects, mtx, flags);
- }
+void AddKartMatrix(Mat4 mtx, s32 flags) {
+ AddMatrix(gWorldInstance.Mtx.Karts, mtx, flags);
+}
- void AddEffectMatrixFixed(s32 flags) {
- AddMatrixFixed(gWorldInstance.Mtx.Effects, flags);
- }
+void AddEffectMatrix(Mat4 mtx, s32 flags) {
+ AddMatrix(gWorldInstance.Mtx.Effects, mtx, flags);
+}
- void AddEffectMatrixOrtho(void) {
- auto& stack = gWorldInstance.Mtx.Effects;
- stack.emplace_back();
+void AddEffectMatrixFixed(s32 flags) {
+ AddMatrixFixed(gWorldInstance.Mtx.Effects, flags);
+}
- guOrtho(&stack.back(), 0.0f, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0.0f, -100.0f, 100.0f, 1.0f);
-
- gSPMatrix(gDisplayListHead++, &stack.back(), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
- }
+void AddEffectMatrixOrtho(void) {
+ auto& stack = gWorldInstance.Mtx.Effects;
+ stack.emplace_back();
- Mtx* GetEffectMatrix(void) {
- return GetMatrix(gWorldInstance.Mtx.Effects);
- }
+ guOrtho(&stack.back(), 0.0f, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0.0f, -100.0f, 100.0f, 1.0f);
+ gSPMatrix(gDisplayListHead++, &stack.back(), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
+}
- /**
- * Note that the game doesn't seem to clear all of these at the beginning of a new frame.
- * We might need to adjust which ones we clear.
- */
- void ClearMatrixPools(void) {
- gWorldInstance.Mtx.Hud.clear();
- gWorldInstance.Mtx.Objects.clear();
- gWorldInstance.Mtx.Shadows.clear();
- gWorldInstance.Mtx.Karts.clear();
- gWorldInstance.Mtx.Effects.clear();
- }
+Mtx* GetEffectMatrix(void) {
+ return GetMatrix(gWorldInstance.Mtx.Effects);
+}
- void ClearHudMatrixPool(void) {
- gWorldInstance.Mtx.Hud.clear();
- }
- void ClearEffectsMatrixPool(void) {
- gWorldInstance.Mtx.Effects.clear();
- }
+/**
+ * Note that the game doesn't seem to clear all of these at the beginning of a new frame.
+ * We might need to adjust which ones we clear.
+ */
+void ClearMatrixPools(void) {
+ gWorldInstance.Mtx.Hud.clear();
+ gWorldInstance.Mtx.Objects.clear();
+ gWorldInstance.Mtx.Shadows.clear();
+ gWorldInstance.Mtx.Karts.clear();
+ gWorldInstance.Mtx.Effects.clear();
+}
- void ClearObjectsMatrixPool(void) {
- gWorldInstance.Mtx.Objects.clear();
- }
+void ClearHudMatrixPool(void) {
+ gWorldInstance.Mtx.Hud.clear();
+}
+void ClearEffectsMatrixPool(void) {
+ gWorldInstance.Mtx.Effects.clear();
}
+void ClearObjectsMatrixPool(void) {
+ gWorldInstance.Mtx.Objects.clear();
+}
+}
diff --git a/src/engine/Matrix.h b/src/engine/Matrix.h
index 180ebfb16..996b08afb 100644
--- a/src/engine/Matrix.h
+++ b/src/engine/Matrix.h
@@ -29,4 +29,4 @@ void AddShadowMatrix(Mat4 mtx, s32 flags);
}
#endif
-#endif // _MATRIX_HEADER_ \ No newline at end of file
+#endif // _MATRIX_HEADER_
diff --git a/src/engine/ModelLoader.cpp b/src/engine/ModelLoader.cpp
index 1c41a8ca9..fbfcaaaee 100644
--- a/src/engine/ModelLoader.cpp
+++ b/src/engine/ModelLoader.cpp
@@ -70,7 +70,6 @@ void ModelLoader::Extract(Course* course) {
memcpy(list.gfxBuffer, &gfx[list.gfxStart], list.gfxBufferSize * sizeof(Gfx));
UpdateVtx(list);
-
}
free(vtx);
diff --git a/src/engine/ModelLoader.h b/src/engine/ModelLoader.h
index e89c7c457..56720b365 100644
--- a/src/engine/ModelLoader.h
+++ b/src/engine/ModelLoader.h
@@ -10,16 +10,16 @@ extern "C" {
class Course;
/**
- *
+ *
* Lists are deferred until load time so that models that use the same course may all use the same extraction
- *
+ *
* Note ensure that the buffers passed to LoadModelList are big enough for the requested data.
- *
+ *
* This class should only be ran once.
- *
- *
+ *
+ *
* Usage:
- *
+ *
* ModelLoader::LoadModelList bowserStatueList = {
.course = gBowsersCastle,
.gfxBuffer = &gBowserStatueGfx[0],
@@ -29,13 +29,13 @@ class Course;
.vtxBufferSize = 717,
.vtxStart = 1942,
};
- *
+ *
* gModelLoader.Add(bowserStatueList);
*/
class ModelLoader {
-public:
+ public:
struct LoadModelList {
Course* course;
@@ -50,10 +50,9 @@ public:
void Add(LoadModelList list);
void Load();
-private:
- struct CourseMap {
- };
+ private:
+ struct CourseMap {};
void Extract(Course* course);
void UpdateVtx(LoadModelList list);
diff --git a/src/engine/PlayerBombKart.cpp b/src/engine/PlayerBombKart.cpp
index 9ab3b74e1..61d373772 100644
--- a/src/engine/PlayerBombKart.cpp
+++ b/src/engine/PlayerBombKart.cpp
@@ -38,12 +38,12 @@ void PlayerBombKart::func_800563DC(s32 cameraId, s32 arg2) {
D_80183E80[1] = func_800418AC(pos.x, pos.z, camera->pos);
D_80183E80[2] = 0x8000;
rsp_set_matrix_transformation(D_80183E40, D_80183E80, 0.2f);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007E98);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007E98);
func_8004B310(arg2);
- draw_rectangle_texture_overlap((u8*) common_tlut_bomb, (u8*)common_texture_bomb[residue], (Vtx*)D_0D005AE0, 0x00000020,
- 0x00000020, 0x00000020, 0x00000020);
+ draw_rectangle_texture_overlap((u8*) common_tlut_bomb, (u8*) common_texture_bomb[residue], (Vtx*) D_0D005AE0,
+ 0x00000020, 0x00000020, 0x00000020, 0x00000020);
temp_s0 = D_8018D400;
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007B00);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007B00);
func_8004B414(0, 0, 0, arg2);
D_80183E40[1] = D_80183E40[1] + 4.0;
D_80183E80[2] = 0;
@@ -58,22 +58,22 @@ void PlayerBombKart::func_800563DC(s32 cameraId, s32 arg2) {
}
void PlayerBombKart::func_8005669C(s32 arg2) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0079E8);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0079E8);
func_8004B310(arg2);
load_texture_block_rgba16_mirror((u8*) D_0D02AA58, 0x00000010, 0x00000010);
D_80183E40[1] = pos.y - 2.0;
D_80183E40[0] = pos.x + 2.0;
D_80183E40[2] = pos.z + 2.0;
- func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle);
+ func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle);
D_80183E40[0] = pos.x + 2.0;
D_80183E40[2] = pos.z - 2.0;
- func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle);
+ func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle);
D_80183E40[0] = pos.x - 2.0;
D_80183E40[2] = pos.z - 2.0;
- func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle);
+ func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle);
D_80183E40[0] = pos.x - 2.0;
D_80183E40[2] = pos.z + 2.0;
- func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle);
+ func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle);
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
}
@@ -91,5 +91,5 @@ void PlayerBombKart::func_800568A0(s32 cameraId) {
// G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
AddHudMatrix(mtx, G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007B98);
-} \ No newline at end of file
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007B98);
+}
diff --git a/src/engine/PlayerBombKart.h b/src/engine/PlayerBombKart.h
index c1e58d815..827e62191 100644
--- a/src/engine/PlayerBombKart.h
+++ b/src/engine/PlayerBombKart.h
@@ -4,15 +4,14 @@
#include "CoreMath.h"
class PlayerBombKart {
-public:
-
+ public:
enum PlayerBombKartState {
DISABLED,
ACTIVE,
};
s16 state = PlayerBombKartState::DISABLED;
- FVector pos = {0, 0, 0};
+ FVector pos = { 0, 0, 0 };
f32 surfaceHeight = 0;
s32 _primAlpha = 0;
diff --git a/src/engine/Registry.h b/src/engine/Registry.h
index f55818dc3..1aaf6c568 100644
--- a/src/engine/Registry.h
+++ b/src/engine/Registry.h
@@ -13,7 +13,7 @@
// public:
// Registry();
// void Add(std::string name, std::function<T*()>);
-
+
// template <typename... Args>
// void AddArgs(std::string id);
// T* Get(std::string id);
diff --git a/src/engine/Smoke.cpp b/src/engine/Smoke.cpp
index 5fb0c0c39..ad5830464 100644
--- a/src/engine/Smoke.cpp
+++ b/src/engine/Smoke.cpp
@@ -69,7 +69,6 @@ void TrainSmokeTick() {
if (count != 0) {
boat->SmokeTimer = 100;
}
-
}
}
}
@@ -80,22 +79,21 @@ void TrainSmokeDraw(s32 cameraId) {
for (auto& actor : gWorldInstance.Actors) {
if (auto train = dynamic_cast<ATrain*>(actor)) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007AE0);
- load_texture_block_i8_nomirror((uint8_t*)D_0D029458, 32, 32);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007AE0);
+ load_texture_block_i8_nomirror((uint8_t*) D_0D029458, 32, 32);
func_8004B72C(255, 255, 255, 255, 255, 255, 255);
D_80183E80[0] = 0;
D_80183E80[2] = 0x8000;
- if ((train->SomeFlags != 0) &&
- (is_particle_on_screen(train->Locomotive.position, camera, 0x4000U) != 0)) {
+ if ((train->SomeFlags != 0) && (is_particle_on_screen(train->Locomotive.position, camera, 0x4000U) != 0)) {
for (size_t i = 0; i < 128; i++) {
render_object_train_smoke_particle(train->SmokeParticles[i], cameraId);
}
}
} else if (auto boat = dynamic_cast<ABoat*>(actor)) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007AE0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007AE0);
- load_texture_block_i8_nomirror((uint8_t*)D_0D029458, 32, 32);
+ load_texture_block_i8_nomirror((uint8_t*) D_0D029458, 32, 32);
func_8004B72C(255, 255, 255, 255, 255, 255, 255);
D_80183E80[0] = 0;
D_80183E80[2] = 0x8000;
diff --git a/src/engine/StaticMeshActor.cpp b/src/engine/StaticMeshActor.cpp
index 2e5fa1119..ee3fba9c0 100644
--- a/src/engine/StaticMeshActor.cpp
+++ b/src/engine/StaticMeshActor.cpp
@@ -8,8 +8,9 @@ extern "C" {
#include "math_util_2.h"
}
-StaticMeshActor::StaticMeshActor(std::string name, FVector pos, IRotator rot, FVector scale, std::string model, int32_t* collision) : Name(name), Pos(pos), Rot(rot), Scale(scale), Model(""), Collision(collision) {
-
+StaticMeshActor::StaticMeshActor(std::string name, FVector pos, IRotator rot, FVector scale, std::string model,
+ int32_t* collision)
+ : Name(name), Pos(pos), Rot(rot), Scale(scale), Model(""), Collision(collision) {
}
void StaticMeshActor::Draw() {
@@ -19,7 +20,7 @@ void StaticMeshActor::Draw() {
if (!Model.empty()) {
ApplyMatrixTransformations(mtx, Pos, Rot, Scale);
if (render_set_position(mtx, 0) != 0) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)Model.c_str());
+ gSPDisplayList(gDisplayListHead++, (Gfx*) Model.c_str());
}
}
}
diff --git a/src/engine/StaticMeshActor.h b/src/engine/StaticMeshActor.h
index 4007aa2c1..b0dad88be 100644
--- a/src/engine/StaticMeshActor.h
+++ b/src/engine/StaticMeshActor.h
@@ -7,7 +7,7 @@
// todo: Make this class AStaticMeshActor : public AActor
class StaticMeshActor {
-public:
+ public:
std::string Name;
FVector Pos;
IRotator Rot;
@@ -22,16 +22,16 @@ public:
// Serialize each field of the class
j["Name"] = Name;
- j["Position"] = {Pos.x, Pos.y, Pos.z}; // Assuming FVector has x, y, z fields
- j["Rotation"] = {Rot.pitch, Rot.yaw, Rot.roll}; // Assuming IRotator has pitch, yaw, roll fields
- j["Scale"] = {Scale.x, Scale.y, Scale.z}; // Assuming FVector has x, y, z fields
+ j["Position"] = { Pos.x, Pos.y, Pos.z }; // Assuming FVector has x, y, z fields
+ j["Rotation"] = { Rot.pitch, Rot.yaw, Rot.roll }; // Assuming IRotator has pitch, yaw, roll fields
+ j["Scale"] = { Scale.x, Scale.y, Scale.z }; // Assuming FVector has x, y, z fields
j["Model"] = Model;
// If Collision is not null, serialize it
if (Collision != nullptr) {
- j["Collision"] = *Collision; // Serialize the value that Collision points to
+ j["Collision"] = *Collision; // Serialize the value that Collision points to
} else {
- j["Collision"] = nullptr; // Handle the case where Collision is nullptr
+ j["Collision"] = nullptr; // Handle the case where Collision is nullptr
}
return j;
@@ -39,20 +39,22 @@ public:
void from_json(const nlohmann::json& j) {
Name = j.at("Name").get<std::string>();
- Pos = FVector(j.at("Position")[0].get<float>(), j.at("Position")[1].get<float>(), j.at("Position")[2].get<float>());
- Rot.Set(j.at("Rotation")[0].get<uint16_t>(), j.at("Rotation")[1].get<uint16_t>(), j.at("Rotation")[2].get<uint16_t>());
+ Pos = FVector(j.at("Position")[0].get<float>(), j.at("Position")[1].get<float>(),
+ j.at("Position")[2].get<float>());
+ Rot.Set(j.at("Rotation")[0].get<uint16_t>(), j.at("Rotation")[1].get<uint16_t>(),
+ j.at("Rotation")[2].get<uint16_t>());
Scale = FVector(j.at("Scale")[0].get<float>(), j.at("Scale")[1].get<float>(), j.at("Scale")[2].get<float>());
// Deserialize the Model string
Model = j.at("Model").get<std::string>();
// Check if Collision is present in the JSON and deserialize it
- //if (j.contains("Collision") && !j["Collision"].is_null()) {
- // If Collision is a valid value, allocate memory for it and assign the value
+ // if (j.contains("Collision") && !j["Collision"].is_null()) {
+ // If Collision is a valid value, allocate memory for it and assign the value
// Collision = new int32_t(j.at("Collision").get<int32_t>());
//} else {
- // If Collision is not present or is null, set it to nullptr
- Collision = nullptr;
+ // If Collision is not present or is null, set it to nullptr
+ Collision = nullptr;
//}
}
diff --git a/src/engine/TrainCrossing.cpp b/src/engine/TrainCrossing.cpp
index 8dce6984b..505c2d0e7 100644
--- a/src/engine/TrainCrossing.cpp
+++ b/src/engine/TrainCrossing.cpp
@@ -29,9 +29,9 @@ void TrainCrossing::CrossingTrigger() {
s32 i;
OnTriggered = 0;
-
for (const auto& actor : gWorldInstance.Actors) {
- if (auto train = dynamic_cast<ATrain*>(actor)) {;
+ if (auto train = dynamic_cast<ATrain*>(actor)) {
+ ;
f32 radius = DynamicRadius(train->Locomotive.position, train->Locomotive.velocity, Position);
if (Distance(train->Locomotive.position, Position) < radius) {
@@ -61,9 +61,9 @@ void TrainCrossing::AICrossingBehaviour(s32 playerId) {
}
f32 TrainCrossing::Distance(Vec3f a, Vec3f b) {
- float dx = b[0] - a[0]; // Difference in x-coordinates
- float dy = b[1] - a[1]; // Difference in y-coordinates
- float dz = b[2] - a[2]; // Difference in z-coordinates
+ float dx = b[0] - a[0]; // Difference in x-coordinates
+ float dy = b[1] - a[1]; // Difference in y-coordinates
+ float dz = b[2] - a[2]; // Difference in z-coordinates
return sqrt(dx * dx + dy * dy + dz * dz); // Return the distance
}
@@ -75,8 +75,7 @@ f32 TrainCrossing::DynamicRadius(Vec3f trainPos, Vec3f trainVelocity, Vec3f cros
trainToCrossing[2] = crossingPos[2] - trainPos[2];
// Dot product to check if the train is approaching or moving away from the crossing
- f32 dotProduct = trainToCrossing[0] * trainVelocity[0] +
- trainToCrossing[1] * trainVelocity[1] +
+ f32 dotProduct = trainToCrossing[0] * trainVelocity[0] + trainToCrossing[1] * trainVelocity[1] +
trainToCrossing[2] * trainVelocity[2];
if (dotProduct > 0) {
diff --git a/src/engine/TrainCrossing.h b/src/engine/TrainCrossing.h
index eeb6b5fc2..e45eb9d53 100644
--- a/src/engine/TrainCrossing.h
+++ b/src/engine/TrainCrossing.h
@@ -11,12 +11,12 @@ extern "C" {
* @arg Vec3f position of the crossing
* @arg u32 waypointMin
* @arg u32 waypointMax
- *
+ *
* Min/Max are used to determine the range for AI to stop for the crossing.
- *
+ *
*/
class TrainCrossing {
-public:
+ public:
TrainCrossing(Vec3f position, u32 waypointMin, u32 waypointMax, f32 approachRadius, f32 exitRadius);
Vec3f Position;
diff --git a/src/engine/World.cpp b/src/engine/World.cpp
index 8e20806ff..71b0c856c 100644
--- a/src/engine/World.cpp
+++ b/src/engine/World.cpp
@@ -21,7 +21,8 @@ extern "C" {
#include "mario_raceway_data.h"
}
-World::World() {}
+World::World() {
+}
Course* CurrentCourse;
Cup* CurrentCup;
@@ -38,7 +39,8 @@ void World::SetCourseFromCup() {
CurrentCourse = CurrentCup->GetCourse();
}
-TrainCrossing* World::AddCrossing(Vec3f position, u32 waypointMin, u32 waypointMax, f32 approachRadius, f32 exitRadius) {
+TrainCrossing* World::AddCrossing(Vec3f position, u32 waypointMin, u32 waypointMax, f32 approachRadius,
+ f32 exitRadius) {
auto crossing = std::make_shared<TrainCrossing>(position, waypointMin, waypointMax, approachRadius, exitRadius);
Crossings.push_back(crossing);
return crossing.get();
@@ -119,11 +121,12 @@ AActor* World::AddActor(AActor* actor) {
Actors.push_back(actor);
if (actor->Model != NULL) {
- gEditor.AddObject(actor->Name, (FVector*) &actor->Pos, (IRotator*)&actor->Rot, &actor->Scale,
+ gEditor.AddObject(actor->Name, (FVector*) &actor->Pos, (IRotator*) &actor->Rot, &actor->Scale,
(Gfx*) LOAD_ASSET_RAW(actor->Model), 1.0f, Editor::GameObject::CollisionType::VTX_INTERSECT,
0.0f, (int32_t*) &actor->Type, 0);
} else {
- gEditor.AddObject(actor->Name, (FVector*) &actor->Pos, (IRotator*)&actor->Rot, &actor->Scale, nullptr, 1.0f, Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f, (int32_t*)&actor->Type, 0);
+ gEditor.AddObject(actor->Name, (FVector*) &actor->Pos, (IRotator*) &actor->Rot, &actor->Scale, nullptr, 1.0f,
+ Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f, (int32_t*) &actor->Type, 0);
}
return Actors.back();
}
@@ -139,9 +142,12 @@ struct Actor* World::AddBaseActor() {
void World::AddEditorObject(Actor* actor, const char* name) {
if (actor->model != NULL) {
- gEditor.AddObject(name, (FVector*) &actor->pos, (IRotator*)&actor->rot, nullptr, (Gfx*)LOAD_ASSET_RAW(actor->model), 1.0f, Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f, (int32_t*)&actor->type, 0);
+ gEditor.AddObject(name, (FVector*) &actor->pos, (IRotator*) &actor->rot, nullptr,
+ (Gfx*) LOAD_ASSET_RAW(actor->model), 1.0f, Editor::GameObject::CollisionType::VTX_INTERSECT,
+ 0.0f, (int32_t*) &actor->type, 0);
} else {
- gEditor.AddObject(name, (FVector*) &actor->pos, (IRotator*)&actor->rot, nullptr, nullptr, 1.0f, Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f, (int32_t*)&actor->type, 0);
+ gEditor.AddObject(name, (FVector*) &actor->pos, (IRotator*) &actor->rot, nullptr, nullptr, 1.0f,
+ Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f, (int32_t*) &actor->type, 0);
}
}
@@ -152,7 +158,7 @@ AActor* World::ConvertActorToAActor(Actor* actor) {
// Move the ptr back so that it points at the vtable.
// Which is the initial item in the class, or in other words
// Point to the class.
- return reinterpret_cast<AActor*>((char*)actor - sizeof(void*));
+ return reinterpret_cast<AActor*>((char*) actor - sizeof(void*));
}
/**
@@ -161,7 +167,7 @@ AActor* World::ConvertActorToAActor(Actor* actor) {
Actor* World::ConvertAActorToActor(AActor* actor) {
// Move the ptr forward past the vtable.
// This allows C to access the class variables like a normal Actor* struct.
- return reinterpret_cast<Actor*>((char*)actor + sizeof(void*));
+ return reinterpret_cast<Actor*>((char*) actor + sizeof(void*));
}
AActor* World::GetActor(size_t index) {
@@ -177,16 +183,18 @@ void World::TickActors() {
}
}
-StaticMeshActor* World::AddStaticMeshActor(std::string name, FVector pos, IRotator rot, FVector scale, std::string model, int32_t* collision) {
+StaticMeshActor* World::AddStaticMeshActor(std::string name, FVector pos, IRotator rot, FVector scale,
+ std::string model, int32_t* collision) {
StaticMeshActors.push_back(new StaticMeshActor(name, pos, rot, scale, model, collision));
auto actor = StaticMeshActors.back();
- auto gameObj = gEditor.AddObject(actor->Name.c_str(), &actor->Pos, &actor->Rot, &actor->Scale, (Gfx*) LOAD_ASSET_RAW(actor->Model.c_str()), 1.0f,
- Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f, (int32_t*) &actor->bPendingDestroy, (int32_t) true);
+ auto gameObj = gEditor.AddObject(
+ actor->Name.c_str(), &actor->Pos, &actor->Rot, &actor->Scale, (Gfx*) LOAD_ASSET_RAW(actor->Model.c_str()), 1.0f,
+ Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f, (int32_t*) &actor->bPendingDestroy, (int32_t) true);
return actor;
}
void World::DrawStaticMeshActors() {
- for (const auto& actor: StaticMeshActors) {
+ for (const auto& actor : StaticMeshActors) {
actor->Draw();
}
}
@@ -194,10 +202,10 @@ void World::DrawStaticMeshActors() {
void World::DeleteStaticMeshActors() {
for (auto it = StaticMeshActors.begin(); it != StaticMeshActors.end();) {
if ((*it)->bPendingDestroy) {
- delete *it; // Deallocate memory for the actor
- it = StaticMeshActors.erase(it); // Remove the pointer from the vector
+ delete *it; // Deallocate memory for the actor
+ it = StaticMeshActors.erase(it); // Remove the pointer from the vector
} else {
- ++it; // Only increment the iterator if we didn't erase an element
+ ++it; // Only increment the iterator if we didn't erase an element
}
}
}
@@ -209,9 +217,13 @@ OObject* World::AddObject(OObject* object) {
Object* cObj = &gObjectList[object->_objectIndex];
if (cObj->model != NULL) {
- gEditor.AddObject(object->Name, (FVector*) &cObj->origin_pos[0], (IRotator*)&cObj->orientation, nullptr, (Gfx*)LOAD_ASSET_RAW(cObj->model), 1.0f, Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f, &object->_objectIndex, -1);
+ gEditor.AddObject(object->Name, (FVector*) &cObj->origin_pos[0], (IRotator*) &cObj->orientation, nullptr,
+ (Gfx*) LOAD_ASSET_RAW(cObj->model), 1.0f,
+ Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f, &object->_objectIndex, -1);
} else {
- gEditor.AddObject(object->Name, (FVector*) &cObj->origin_pos[0], (IRotator*)&cObj->orientation, nullptr, nullptr, 1.0f, Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f, &object->_objectIndex, -1);
+ gEditor.AddObject(object->Name, (FVector*) &cObj->origin_pos[0], (IRotator*) &cObj->orientation, nullptr,
+ nullptr, 1.0f, Editor::GameObject::CollisionType::VTX_INTERSECT, 0.0f,
+ &object->_objectIndex, -1);
}
}
@@ -228,7 +240,7 @@ void World::TickObjects() {
// This is a fallback to support those objects. Probably don't use this.
void World::TickObjects60fps() {
for (const auto& object : Objects) {
- object->Tick60fps();
+ object->Tick60fps();
}
}
@@ -239,19 +251,19 @@ ParticleEmitter* World::AddEmitter(ParticleEmitter* emitter) {
void World::DrawObjects(s32 cameraId) {
for (const auto& object : Objects) {
- object->Draw(cameraId);
+ object->Draw(cameraId);
}
}
void World::TickParticles() {
for (const auto& emitter : Emitters) {
- emitter->Tick();
+ emitter->Tick();
}
}
void World::DrawParticles(s32 cameraId) {
for (const auto& emitter : Emitters) {
- emitter->Draw(cameraId);
+ emitter->Draw(cameraId);
}
}
@@ -263,8 +275,8 @@ void World::Reset() {
}
Object* World::GetObjectByIndex(size_t index) {
- //if (index < this->Objects.size()) {
- // Assuming GameActor::a is accessible, use reinterpret_cast if needed
+ // if (index < this->Objects.size()) {
+ // Assuming GameActor::a is accessible, use reinterpret_cast if needed
// return reinterpret_cast<Object*>(&this->Objects[index]->o);
//}
return nullptr; // Or handle the error as needed
diff --git a/src/engine/World.h b/src/engine/World.h
index bb8979090..bb5120c0f 100644
--- a/src/engine/World.h
+++ b/src/engine/World.h
@@ -48,7 +48,7 @@ class World {
std::vector<Mtx> Effects;
} Matrix;
-public:
+ public:
explicit World();
void AddCourse(Course* course);
@@ -63,7 +63,8 @@ public:
Actor* ConvertAActorToActor(AActor* actor);
void DrawStaticMeshActors();
- StaticMeshActor* AddStaticMeshActor(std::string name, FVector pos, IRotator rot, FVector scale, std::string model, int32_t* collision);
+ StaticMeshActor* AddStaticMeshActor(std::string name, FVector pos, IRotator rot, FVector scale, std::string model,
+ int32_t* collision);
void DeleteStaticMeshActors();
OObject* AddObject(OObject* object);
@@ -71,7 +72,7 @@ public:
void TickObjects();
void TickObjects60fps();
void DrawObjects(s32 cameraId);
- Object *GetObjectByIndex(size_t);
+ Object* GetObjectByIndex(size_t);
void TickParticles();
void DrawParticles(s32 cameraId);
@@ -89,7 +90,6 @@ public:
World* GetWorld(void);
void ClearWorld(void);
-
// These are only for browsing through the course list
void SetCourse(const char*);
void NextCourse(void);
@@ -97,7 +97,6 @@ public:
Matrix Mtx;
-
Course* CurrentCourse;
Cup* CurrentCup;
@@ -120,8 +119,7 @@ public:
// Holds all available courses
std::vector<Course*> Courses;
size_t CourseIndex = 0; // For browsing courses.
-private:
-
+ private:
};
extern World gWorldInstance;
diff --git a/src/engine/actors/Banana.cpp b/src/engine/actors/Banana.cpp
index 6c7f837d1..2c7eb8f99 100644
--- a/src/engine/actors/Banana.cpp
+++ b/src/engine/actors/Banana.cpp
@@ -14,7 +14,7 @@ ABanana::ABanana(uint16_t playerId, const float pos[3], const s16 rot[3], const
Name = "Banana";
// Initialize the BananaActor's position, rotation, and velocity
std::copy(pos, pos + 3, Pos);
- //std::copy(rot, rot + 3, this->a.rot);
+ // std::copy(rot, rot + 3, this->a.rot);
std::copy(velocity, velocity + 3, Velocity);
Type = 6; // ACTOR_BANANA
@@ -23,8 +23,8 @@ ABanana::ABanana(uint16_t playerId, const float pos[3], const s16 rot[3], const
State = HELD_BANANA;
PlayerId = playerId;
-
- //this->a.unk_08 = 0.0f;
+
+ // this->a.unk_08 = 0.0f;
Flags |= 0x4000 | 0x1000;
BoundingBoxSize = 2.0f;
@@ -48,14 +48,16 @@ ABanana::ABanana(uint16_t playerId, const float pos[3], const s16 rot[3], const
Unk30.orientationVector[2] = 0.0f;
}
-void ABanana::Tick() {
- update_actor_banana((BananaActor*)this);
+void ABanana::Tick() {
+ update_actor_banana((BananaActor*) this);
}
-void ABanana::Draw(Camera *camera) {
- render_actor_banana(camera, NULL, (BananaActor*)this);
+void ABanana::Draw(Camera* camera) {
+ render_actor_banana(camera, NULL, (BananaActor*) this);
+}
+void ABanana::Collision(Player* player, AActor*) {
+}
+void ABanana::Destroy() {
}
-void ABanana::Collision(Player* player, AActor*) { }
-void ABanana::Destroy() { }
-//void ABanana::Held() {}
+// void ABanana::Held() {}
diff --git a/src/engine/actors/Banana.h b/src/engine/actors/Banana.h
index d8c55e9cb..d7985b545 100644
--- a/src/engine/actors/Banana.h
+++ b/src/engine/actors/Banana.h
@@ -4,8 +4,7 @@
#include "engine/Actor.h"
class ABanana : public AActor {
-public:
-
+ public:
uint16_t PlayerId;
// Constructor
diff --git a/src/engine/actors/BowserStatue.cpp b/src/engine/actors/BowserStatue.cpp
index c680c4c25..d3af82b2a 100644
--- a/src/engine/actors/BowserStatue.cpp
+++ b/src/engine/actors/BowserStatue.cpp
@@ -19,7 +19,7 @@ ABowserStatue::ABowserStatue(FVector pos, ABowserStatue::Behaviour behaviour) {
}
void ABowserStatue::Tick() {
- switch(_behaviour) {
+ switch (_behaviour) {
case DEFAULT:
break;
case CRUSH:
@@ -27,7 +27,7 @@ void ABowserStatue::Tick() {
}
}
-void ABowserStatue::Draw(Camera *camera) {
+void ABowserStatue::Draw(Camera* camera) {
Mat4 mtx;
Vec3f pos;
pos[0] = Pos.x + 76;
@@ -43,4 +43,6 @@ void ABowserStatue::Draw(Camera *camera) {
}
}
-bool ABowserStatue::IsMod() { return true; }
+bool ABowserStatue::IsMod() {
+ return true;
+}
diff --git a/src/engine/actors/BowserStatue.h b/src/engine/actors/BowserStatue.h
index 869f6910f..8e3479502 100644
--- a/src/engine/actors/BowserStatue.h
+++ b/src/engine/actors/BowserStatue.h
@@ -14,11 +14,8 @@ extern Vtx gBowserStatueVtx[717];
extern Gfx gBowserStatueGfx[162];
class ABowserStatue : public AActor {
-public:
- enum Behaviour {
- DEFAULT,
- CRUSH
- };
+ public:
+ enum Behaviour { DEFAULT, CRUSH };
virtual ~ABowserStatue() = default;
explicit ABowserStatue(FVector pos, ABowserStatue::Behaviour behaviour);
@@ -28,7 +25,8 @@ public:
virtual bool IsMod() override;
FVector Pos;
-private:
+
+ private:
ABowserStatue::Behaviour _behaviour;
f32 scale;
};
diff --git a/src/engine/actors/Cloud.cpp b/src/engine/actors/Cloud.cpp
index cae55e342..1c8f74c60 100644
--- a/src/engine/actors/Cloud.cpp
+++ b/src/engine/actors/Cloud.cpp
@@ -15,15 +15,15 @@ extern f32 gKartGravityTable[];
}
ACloud::ACloud(FVector pos) {
- Name = "Cloud";
- Pos[0] = pos.x;
- Pos[1] = pos.y;
- Pos[2] = pos.z;
- Rot[0] = 0;
- Rot[1] = 0;
- Rot[2] = 0;
+ Name = "Cloud";
+ Pos[0] = pos.x;
+ Pos[1] = pos.y;
+ Pos[2] = pos.z;
+ Rot[0] = 0;
+ Rot[1] = 0;
+ Rot[2] = 0;
- //Flags = -0x8000 | 0x4000;
+ // Flags = -0x8000 | 0x4000;
BoundingBoxSize = 2.0f;
}
@@ -48,7 +48,7 @@ void ACloud::Tick() {
extern Gfx cloud_mesh[];
-void ACloud::Draw(Camera *camera) {
+void ACloud::Draw(Camera* camera) {
Mat4 mtx;
if (PickedUp) {
@@ -58,14 +58,14 @@ void ACloud::Draw(Camera *camera) {
mtxf_pos_rotation_xyz(mtx, Pos, Rot);
if (render_set_position(mtx, 0) != 0) {
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
- gSPDisplayList(gDisplayListHead++, (Gfx*)cloud_mesh);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) cloud_mesh);
}
}
void ACloud::Collision(Player* player, AActor* actor) {
if (!PickedUp) {
if (query_collision_player_vs_actor_item(player, gWorldInstance.ConvertAActorToActor(actor))) {
- // Player has picked up the actor, activate the cloud effect
+ // Player has picked up the actor, activate the cloud effect
_player = player;
PickedUp = true;
@@ -77,61 +77,65 @@ void ACloud::Collision(Player* player, AActor* actor) {
}
}
-bool ACloud::IsMod() { return true; }
+bool ACloud::IsMod() {
+ return true;
+}
Vtx cloud_mesh_vtx_cull[8] = {
- {{ {0, -4, -4}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {0, -4, 4}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {0, 4, 4}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {0, 4, -4}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {0, -4, -4}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {0, -4, 4}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {0, 4, 4}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {0, 4, -4}, 0, {0, 0}, {0, 0, 0, 0} }},
+ { { { 0, -4, -4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { 0, -4, 4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
+ { { { 0, 4, 4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { 0, 4, -4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
+ { { { 0, -4, -4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { 0, -4, 4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
+ { { { 0, 4, 4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { 0, 4, -4 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
};
Vtx cloud_mesh_vtx_0[4] = {
- {{ {0, 4, 4}, 0, {-524, -530}, {255, 255, 255, 166} }},
- {{ {0, -4, 4}, 0, {-530, 1516}, {255, 255, 255, 201} }},
- {{ {0, -4, -4}, 0, {1516, 1522}, {255, 255, 255, 188} }},
- {{ {0, 4, -4}, 0, {1522, -524}, {255, 255, 255, 154} }},
+ { { { 0, 4, 4 }, 0, { -524, -530 }, { 255, 255, 255, 166 } } },
+ { { { 0, -4, 4 }, 0, { -530, 1516 }, { 255, 255, 255, 201 } } },
+ { { { 0, -4, -4 }, 0, { 1516, 1522 }, { 255, 255, 255, 188 } } },
+ { { { 0, 4, -4 }, 0, { 1522, -524 }, { 255, 255, 255, 154 } } },
};
Gfx cloud_mesh_tri_0[] = {
- gsSPVertex(cloud_mesh_vtx_0 + 0, 4, 0),
- gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
- gsSPEndDisplayList(),
+ gsSPVertex(cloud_mesh_vtx_0 + 0, 4, 0),
+ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
+ gsSPEndDisplayList(),
};
Gfx mat_cloud_cutout[] = {
- gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_SHADING_SMOOTH),
- gsSPClearGeometryMode(G_CULL_FRONT | G_CULL_BACK | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_CLIPPING),
- gsDPPipeSync(),
- gsDPSetCombineLERP(TEXEL0, PRIMITIVE, PRIMITIVE, TEXEL1, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED),
- gsSPSetOtherMode(G_SETOTHERMODE_H, 4, 20, G_AD_NOISE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE),
- gsSPSetOtherMode(G_SETOTHERMODE_L, 0, 32, G_AC_NONE | G_ZS_PIXEL | G_RM_FOG_SHADE_A | G_RM_AA_ZB_TEX_EDGE2),
- gsSPTexture(65535, 65535, 0, 0, 1),
- gsDPSetPrimColor(0, 0, 255, 220, 203, 255),
- gsDPSetTextureImage(G_IM_FMT_I, G_IM_SIZ_8b_LOAD_BLOCK, 1, gTexture69C4E4),
- gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
- gsDPLoadBlock(7, 0, 0, 511, 512),
- gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 1, G_TX_WRAP | G_TX_NOMIRROR, 5, 1),
- gsDPSetTileSize(0, 98, 100, 124, 124),
- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, gTexture66C8F4),
- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 128, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
- gsDPLoadBlock(6, 0, 0, 1023, 256),
- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 128, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
- gsDPSetTileSize(1, 0, 0, 124, 124),
- gsSPEndDisplayList(),
+ gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_FOG | G_SHADING_SMOOTH),
+ gsSPClearGeometryMode(G_CULL_FRONT | G_CULL_BACK | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD |
+ G_CLIPPING),
+ gsDPPipeSync(),
+ gsDPSetCombineLERP(TEXEL0, PRIMITIVE, PRIMITIVE, TEXEL1, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, 0, 0, 0,
+ COMBINED),
+ gsSPSetOtherMode(G_SETOTHERMODE_H, 4, 20,
+ G_AD_NOISE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE |
+ G_TD_CLAMP | G_TP_PERSP | G_CYC_2CYCLE | G_PM_NPRIMITIVE),
+ gsSPSetOtherMode(G_SETOTHERMODE_L, 0, 32, G_AC_NONE | G_ZS_PIXEL | G_RM_FOG_SHADE_A | G_RM_AA_ZB_TEX_EDGE2),
+ gsSPTexture(65535, 65535, 0, 0, 1),
+ gsDPSetPrimColor(0, 0, 255, 220, 203, 255),
+ gsDPSetTextureImage(G_IM_FMT_I, G_IM_SIZ_8b_LOAD_BLOCK, 1, gTexture69C4E4),
+ gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0,
+ G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
+ gsDPLoadBlock(7, 0, 0, 511, 512),
+ gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 4, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, 1, G_TX_WRAP | G_TX_NOMIRROR, 5, 1),
+ gsDPSetTileSize(0, 98, 100, 124, 124),
+ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, gTexture66C8F4),
+ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 128, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0,
+ G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
+ gsDPLoadBlock(6, 0, 0, 1023, 256),
+ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 128, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR,
+ 5, 0),
+ gsDPSetTileSize(1, 0, 0, 124, 124),
+ gsSPEndDisplayList(),
};
Gfx cloud_mesh[] = {
- //gsSPClearGeometryMode(G_LIGHTING),
- //gsSPVertex(cloud_mesh_vtx_cull + 0, 8, 0),
- gsSPSetGeometryMode(G_LIGHTING),
- //gsSPCullDisplayList(0, 7),
- gsSPDisplayList(mat_cloud_cutout),
- gsSPDisplayList(cloud_mesh_tri_0),
- gsSPEndDisplayList(),
+ // gsSPClearGeometryMode(G_LIGHTING),
+ // gsSPVertex(cloud_mesh_vtx_cull + 0, 8, 0),
+ gsSPSetGeometryMode(G_LIGHTING),
+ // gsSPCullDisplayList(0, 7),
+ gsSPDisplayList(mat_cloud_cutout),
+ gsSPDisplayList(cloud_mesh_tri_0),
+ gsSPEndDisplayList(),
};
-
diff --git a/src/engine/actors/Cloud.h b/src/engine/actors/Cloud.h
index 4805c08b9..657340b14 100644
--- a/src/engine/actors/Cloud.h
+++ b/src/engine/actors/Cloud.h
@@ -12,9 +12,7 @@ extern "C" {
}
class ACloud : public AActor {
-public:
-
-
+ public:
// Constructor
ACloud(FVector pos);
@@ -28,13 +26,12 @@ public:
bool PickedUp = false;
uint32_t Timer = 0;
-
+
Player* _player = NULL;
-
+
f32 Hop = 3.0f;
f32 Gravity = 200.0f;
f32 OldHop = 0;
f32 OldGravity = 0;
-
};
diff --git a/src/engine/actors/Finishline.cpp b/src/engine/actors/Finishline.cpp
index 0680e60bd..197442f9e 100644
--- a/src/engine/actors/Finishline.cpp
+++ b/src/engine/actors/Finishline.cpp
@@ -41,14 +41,14 @@ AFinishline::AFinishline(std::optional<FVector> pos) {
BoundingBoxSize = 0.0f;
}
-void AFinishline::Tick() {}
+void AFinishline::Tick() {
+}
-void AFinishline::Draw(Camera *camera) {
+void AFinishline::Draw(Camera* camera) {
Mat4 mtx;
s16 temp = Pos[2];
s32 maxObjectsReached;
-
if (gGamestate == CREDITS_SEQUENCE) {
return;
}
@@ -64,18 +64,21 @@ void AFinishline::Draw(Camera *camera) {
if (D_800DC5BC != 0) {
gDPSetFogColor(gDisplayListHead++, D_801625EC, D_801625F4, D_801625F0, 0xFF);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D001C20);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D001C20);
} else {
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D001B90);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D001B90);
}
} else if (D_800DC5BC != 0) {
gDPSetFogColor(gDisplayListHead++, D_801625EC, D_801625F4, D_801625F0, 0xFF);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D001C88);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D001C88);
} else {
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D001BD8);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D001BD8);
}
}
-void AFinishline::Collision(Player* player, AActor* actor) {}
+void AFinishline::Collision(Player* player, AActor* actor) {
+}
-bool AFinishline::IsMod() { return true; }
+bool AFinishline::IsMod() {
+ return true;
+}
diff --git a/src/engine/actors/Finishline.h b/src/engine/actors/Finishline.h
index 61b561a5e..e40d6ffe0 100644
--- a/src/engine/actors/Finishline.h
+++ b/src/engine/actors/Finishline.h
@@ -12,7 +12,7 @@ extern "C" {
}
class AFinishline : public AActor {
-public:
+ public:
/**
* Default behaviour places the finishline at the first waypoint.
* @arg pos, optional. Sets a custom position
@@ -29,13 +29,12 @@ public:
bool PickedUp = false;
uint32_t Timer = 0;
-
+
Player* _player = NULL;
-
+
f32 Hop = 3.0f;
f32 Gravity = 200.0f;
f32 OldHop = 0;
f32 OldGravity = 0;
-
};
diff --git a/src/engine/actors/MarioSign.cpp b/src/engine/actors/MarioSign.cpp
index f39e4f69b..5e92e8220 100644
--- a/src/engine/actors/MarioSign.cpp
+++ b/src/engine/actors/MarioSign.cpp
@@ -33,7 +33,7 @@ void AMarioSign::Tick() {
}
}
-void AMarioSign::Draw(Camera *camera) {
+void AMarioSign::Draw(Camera* camera) {
Mat4 sp40;
f32 unk;
@@ -50,7 +50,7 @@ void AMarioSign::Draw(Camera *camera) {
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
mtxf_pos_rotation_xyz(sp40, Pos, Rot);
if (render_set_position(sp40, 0) != 0) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_mario_raceway_dl_sign);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_mario_raceway_dl_sign);
}
}
}
diff --git a/src/engine/actors/MarioSign.h b/src/engine/actors/MarioSign.h
index 099894dc1..b077ee7e7 100644
--- a/src/engine/actors/MarioSign.h
+++ b/src/engine/actors/MarioSign.h
@@ -9,8 +9,7 @@ extern "C" {
}
class AMarioSign : public AActor {
-public:
-
+ public:
virtual ~AMarioSign() = default;
explicit AMarioSign(FVector pos);
diff --git a/src/engine/actors/Ship.cpp b/src/engine/actors/Ship.cpp
index 5af3553e2..de92eec62 100644
--- a/src/engine/actors/Ship.cpp
+++ b/src/engine/actors/Ship.cpp
@@ -20,8 +20,8 @@ AShip::AShip(FVector pos, AShip::Skin skin) {
Pos[1] = pos.y;
Pos[2] = pos.z;
Scale = FVector(0.4, 0.4, 0.4);
-
- switch(skin) {
+
+ switch (skin) {
case GHOSTSHIP:
Name = "Ghostship";
_skin = ghostship_Plane_mesh;
@@ -53,4 +53,6 @@ void AShip::Tick() {
// Rot.yaw = -static_cast<int16_t>(angle * (32768.0f / M_PI / 2.0f));
}
-bool AShip::IsMod() { return true; }
+bool AShip::IsMod() {
+ return true;
+}
diff --git a/src/engine/actors/Ship.h b/src/engine/actors/Ship.h
index fe5743922..15e4ca48c 100644
--- a/src/engine/actors/Ship.h
+++ b/src/engine/actors/Ship.h
@@ -11,8 +11,7 @@ extern "C" {
}
class AShip : public AActor {
-public:
-
+ public:
enum Skin {
GHOSTSHIP,
SHIP2,
@@ -26,9 +25,9 @@ public:
virtual bool IsMod() override;
FVector Spawn;
- //FVector Pos;
- ///IRotator Rot = {0, 0, 0};
- //FVector Scale = {0.4, 0.4, 0.4};
-private:
+ // FVector Pos;
+ /// IRotator Rot = {0, 0, 0};
+ // FVector Scale = {0.4, 0.4, 0.4};
+ private:
Gfx* _skin;
};
diff --git a/src/engine/actors/SpaghettiShip.cpp b/src/engine/actors/SpaghettiShip.cpp
index b09ada319..0566fd4b6 100644
--- a/src/engine/actors/SpaghettiShip.cpp
+++ b/src/engine/actors/SpaghettiShip.cpp
@@ -17,12 +17,12 @@ ASpaghettiShip::ASpaghettiShip(FVector pos) {
Pos[2] = pos.z;
Spawn = pos;
Spawn.y += 10;
- Scale = {0.4, 0.4, 0.4};
+ Scale = { 0.4, 0.4, 0.4 };
}
void ASpaghettiShip::Tick() {
static float angle = 0.0f; // Keeps track of the ship's rotation around the circle
- float radius = 150.0f; // The radius of the circular path
+ float radius = 150.0f; // The radius of the circular path
float speed = 0.01f; // Speed of rotation
angle += speed; // Increment the angle to move in a circle
@@ -37,22 +37,22 @@ void ASpaghettiShip::Tick() {
WheelRot.pitch += 500;
}
-void ASpaghettiShip::Draw(Camera *camera) {
+void ASpaghettiShip::Draw(Camera* camera) {
Mat4 shipMtx;
Mat4 objectMtx;
Mat4 resultMtx;
- Vec3f hullPos = {Pos[0], Pos[1], Pos[2]};
- Vec3s hullRot = {Rot[0], Rot[1], Rot[2]};
- Vec3s rot = {WheelRot.pitch, WheelRot.yaw, WheelRot.roll};
+ Vec3f hullPos = { Pos[0], Pos[1], Pos[2] };
+ Vec3s hullRot = { Rot[0], Rot[1], Rot[2] };
+ Vec3s rot = { WheelRot.pitch, WheelRot.yaw, WheelRot.roll };
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
- ApplyMatrixTransformations(shipMtx, *(FVector*)Pos, *(IRotator*)Rot, Scale);
+ ApplyMatrixTransformations(shipMtx, *(FVector*) Pos, *(IRotator*) Rot, Scale);
if (render_set_position(shipMtx, 0) != 0) {}
// Render the ships hull
- ApplyMatrixTransformations(objectMtx, {0, 0, 0}, {0, 0, 0}, {1, 1, 1});
+ ApplyMatrixTransformations(objectMtx, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 });
mtxf_multiplication(resultMtx, shipMtx, objectMtx);
if (render_set_position(resultMtx, 3) != 0) {
gSPDisplayList(gDisplayListHead++, ship1_spag1_mesh);
@@ -67,10 +67,10 @@ void ASpaghettiShip::Draw(Camera *camera) {
gSPDisplayList(gDisplayListHead++, wheels_Spaghetti_002_mesh);
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
}
-
+
// Back tyre
AddLocalRotation(shipMtx, WheelRot);
- ApplyMatrixTransformations(objectMtx, FVector(0, 0, -165), {0, 0, 0}, {1, 1, 1});
+ ApplyMatrixTransformations(objectMtx, FVector(0, 0, -165), { 0, 0, 0 }, { 1, 1, 1 });
mtxf_multiplication(resultMtx, shipMtx, objectMtx);
if (render_set_position(resultMtx, 3) != 0) {
gSPDisplayList(gDisplayListHead++, wheels_Spaghetti_002_mesh);
@@ -78,4 +78,6 @@ void ASpaghettiShip::Draw(Camera *camera) {
}
}
-bool ASpaghettiShip::IsMod() { return true; }
+bool ASpaghettiShip::IsMod() {
+ return true;
+}
diff --git a/src/engine/actors/SpaghettiShip.h b/src/engine/actors/SpaghettiShip.h
index 70bd047d7..9afef2719 100644
--- a/src/engine/actors/SpaghettiShip.h
+++ b/src/engine/actors/SpaghettiShip.h
@@ -11,7 +11,7 @@ extern "C" {
}
class ASpaghettiShip : public AActor {
-public:
+ public:
explicit ASpaghettiShip(FVector pos);
virtual ~ASpaghettiShip() = default;
@@ -20,5 +20,5 @@ public:
virtual bool IsMod() override;
FVector Spawn;
- IRotator WheelRot = {0, 0, 0};
+ IRotator WheelRot = { 0, 0, 0 };
};
diff --git a/src/engine/actors/Starship.cpp b/src/engine/actors/Starship.cpp
index e104d0eb6..3bcd7c83b 100644
--- a/src/engine/actors/Starship.cpp
+++ b/src/engine/actors/Starship.cpp
@@ -33,10 +33,12 @@ void AStarship::Tick() {
SetLocation(pos);
// Keep y from changing (or adjust it if necessary)
- //Pos.y = Spawn.y;
+ // Pos.y = Spawn.y;
// Rotate to face forward along the circle
Rot[1] = angle * (180.0f / M_PI) + 90.0f;
}
-bool AStarship::IsMod() { return true; }
+bool AStarship::IsMod() {
+ return true;
+}
diff --git a/src/engine/actors/Starship.h b/src/engine/actors/Starship.h
index 71b898358..83a8c2f82 100644
--- a/src/engine/actors/Starship.h
+++ b/src/engine/actors/Starship.h
@@ -11,7 +11,7 @@ extern "C" {
}
class AStarship : public AActor {
-public:
+ public:
explicit AStarship(FVector pos);
virtual ~AStarship() = default;
diff --git a/src/engine/actors/Tree.cpp b/src/engine/actors/Tree.cpp
index faffd0798..2081a29a2 100644
--- a/src/engine/actors/Tree.cpp
+++ b/src/engine/actors/Tree.cpp
@@ -37,13 +37,12 @@ void ATree::Draw(Camera* camera) {
return;
}
- dist = is_within_render_distance(camera->pos, Pos, camera->rot[1], 0, gCameraZoom[camera - camera1],
- DrawDistance);
+ dist = is_within_render_distance(camera->pos, Pos, camera->rot[1], 0, gCameraZoom[camera - camera1], DrawDistance);
if (CVarGetInteger("gNoCulling", 0) == 1) {
dist = MAX(dist, 0.0f);
}
-
+
if (dist < 0.0f) {
return;
}
@@ -63,5 +62,7 @@ void ATree::Draw(Camera* camera) {
}
}
-void ATree::Collision(Player* player, AActor*) { }
-void ATree::Destroy() { }
+void ATree::Collision(Player* player, AActor*) {
+}
+void ATree::Destroy() {
+}
diff --git a/src/engine/actors/Tree.h b/src/engine/actors/Tree.h
index eb51f6e7e..6df8c5053 100644
--- a/src/engine/actors/Tree.h
+++ b/src/engine/actors/Tree.h
@@ -7,13 +7,11 @@ extern "C" {
#include "common_structs.h"
}
-
// Note that this doesn't seem to work right
// Use add_actor_to_empty_slot(test, rot, vel, ACTOR_TREE_MARIO_RACEWAY);
// to spawn stock actors
class ATree : public AActor {
-public:
-
+ public:
Gfx* Displaylist;
const char* Tlut;
f32 DrawDistance;
diff --git a/src/engine/actors/WarioSign.cpp b/src/engine/actors/WarioSign.cpp
index 0e83e114f..ba1001b8e 100644
--- a/src/engine/actors/WarioSign.cpp
+++ b/src/engine/actors/WarioSign.cpp
@@ -22,7 +22,7 @@ void AWarioSign::Tick() {
Rot[1] += 0xB6;
}
-void AWarioSign::Draw(Camera *camera) {
+void AWarioSign::Draw(Camera* camera) {
Mat4 sp38;
f32 unk =
is_within_render_distance(camera->pos, Pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 16000000.0f);
@@ -37,7 +37,7 @@ void AWarioSign::Draw(Camera *camera) {
mtxf_pos_rotation_xyz(sp38, Pos, Rot);
if (render_set_position(sp38, 0) != 0) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_wario_stadium_dl_sign);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_wario_stadium_dl_sign);
}
}
}
diff --git a/src/engine/actors/WarioSign.h b/src/engine/actors/WarioSign.h
index 634b2132e..15ab72a91 100644
--- a/src/engine/actors/WarioSign.h
+++ b/src/engine/actors/WarioSign.h
@@ -9,8 +9,7 @@ extern "C" {
}
class AWarioSign : public AActor {
-public:
-
+ public:
virtual ~AWarioSign() = default;
explicit AWarioSign(FVector pos);
diff --git a/src/engine/courses/BansheeBoardwalk.cpp b/src/engine/courses/BansheeBoardwalk.cpp
index 51049fb8d..bf4abc7bf 100644
--- a/src/engine/courses/BansheeBoardwalk.cpp
+++ b/src/engine/courses/BansheeBoardwalk.cpp
@@ -15,28 +15,28 @@
#include "assets/boo_frames.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "course_offsets.h"
- #include "course.h"
- extern const char *banshee_boardwalk_dls[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "course_offsets.h"
+#include "course.h"
+extern const char* banshee_boardwalk_dls[];
}
const course_texture banshee_boardwalk_textures[] = {
@@ -95,7 +95,7 @@ BansheeBoardwalk::BansheeBoardwalk() {
Props.NearPersp = 2.0f;
Props.FarPersp = 2700.0f;
- Props.PathSizes = {0x2EE, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x2EE, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -117,12 +117,12 @@ BansheeBoardwalk::BansheeBoardwalk() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_banshee_boardwalk_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_banshee_boardwalk_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_banshee_boardwalk_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_banshee_boardwalk_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -130,14 +130,14 @@ BansheeBoardwalk::BansheeBoardwalk() {
Props.Clouds = NULL; // no clouds
Props.CloudList = NULL;
- Props.Skybox.TopRight = {0, 0, 0};
- Props.Skybox.BottomRight = {0, 0, 0};
- Props.Skybox.BottomLeft = {0, 0, 0};
- Props.Skybox.TopLeft = {0, 0, 0};
- Props.Skybox.FloorTopRight = {0, 0, 0};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {0, 0, 0};
+ Props.Skybox.TopRight = { 0, 0, 0 };
+ Props.Skybox.BottomRight = { 0, 0, 0 };
+ Props.Skybox.BottomLeft = { 0, 0, 0 };
+ Props.Skybox.TopLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 0, 0, 0 };
Props.Sequence = MusicSeq::MUSIC_SEQ_BANSHEE_BOARDWALK;
Props.WaterLevel = -80.0f;
@@ -150,19 +150,19 @@ void BansheeBoardwalk::Load() {
D_801625EC = 0;
D_801625F4 = 0;
D_801625F0 = 0;
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_banshee_boardwalk_track_sections));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_banshee_boardwalk_track_sections));
func_80295C6C();
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07000878), 128, 0, 0, 0);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07000878), 128, 0, 0, 0);
}
void BansheeBoardwalk::LoadTextures() {
}
void BansheeBoardwalk::BeginPlay() {
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_banshee_boardwalk_item_box_spawns));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_banshee_boardwalk_item_box_spawns));
-
- gWorldInstance.AddObject(new OCheepCheep(FVector(xOrientation * -1650.0, -200.0f, -1650.0f), OCheepCheep::CheepType::RACE, IPathSpan(160, 170)));
+ gWorldInstance.AddObject(new OCheepCheep(FVector(xOrientation * -1650.0, -200.0f, -1650.0f),
+ OCheepCheep::CheepType::RACE, IPathSpan(160, 170)));
OTrashBin::Behaviour bhv;
if (gModeSelection == TIME_TRIALS) {
@@ -178,7 +178,7 @@ void BansheeBoardwalk::BeginPlay() {
}
if ((gGamestate != CREDITS_SEQUENCE) && (gModeSelection != TIME_TRIALS)) {
- gWorldInstance.AddObject(new OBat(FVector(0,0,0), IRotator(0, 0, 90)));
+ gWorldInstance.AddObject(new OBat(FVector(0, 0, 0), IRotator(0, 0, 90)));
gWorldInstance.AddObject(new OBoos(5, IPathSpan(180, 190), IPathSpan(200, 210), IPathSpan(280, 290)));
gWorldInstance.AddObject(new OBoos(5, IPathSpan(490, 500), IPathSpan(510, 520), IPathSpan(620, 630)));
}
@@ -207,16 +207,16 @@ void BansheeBoardwalk::UpdateCourseObjects() {
if (gGamestate != CREDITS_SEQUENCE) {
func_8007E4C4();
if (gModeSelection != TIME_TRIALS) {
- //update_bat();
+ // update_bat();
}
- //wrapper_update_boos();
+ // wrapper_update_boos();
}
}
void BansheeBoardwalk::RenderCourseObjects(s32 cameraId) {
if (gGamestate != CREDITS_SEQUENCE) {
- //render_object_bat(cameraId);
- //render_object_boos(cameraId);
+ // render_object_bat(cameraId);
+ // render_object_boos(cameraId);
}
}
@@ -224,8 +224,7 @@ void BansheeBoardwalk::SomeSounds() {
}
void BansheeBoardwalk::WhatDoesThisDo(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
if (D_80165300[playerId] != 1) {
func_800CA288(playerId, 0x41);
}
@@ -239,8 +238,7 @@ void BansheeBoardwalk::WhatDoesThisDo(Player* player, int8_t playerId) {
}
void BansheeBoardwalk::WhatDoesThisDoAI(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
if (D_80165300[playerId] != 1) {
func_800CA2E4(playerId, 0x41);
}
@@ -308,12 +306,12 @@ void BansheeBoardwalk::Render(struct UnkStruct_800DC5EC* arg0) {
mtxf_translate(spCC, spA8);
render_set_position(spCC, 0);
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_banshee_boardwalk_dl_B278);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_banshee_boardwalk_dl_B278);
gDPPipeSync(gDisplayListHead++);
}
void BansheeBoardwalk::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_banshee_boardwalk_dl_B308));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_banshee_boardwalk_dl_B308));
}
void BansheeBoardwalk::ScrollingTextures() {
@@ -337,7 +335,8 @@ void BansheeBoardwalk::Waypoints(Player* player, int8_t playerId) {
}
}
-void BansheeBoardwalk::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) {
+void BansheeBoardwalk::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) {
gDPPipeSync(gDisplayListHead++);
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
@@ -345,13 +344,14 @@ void BansheeBoardwalk::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pat
gDPSetBlendMask(gDisplayListHead++, 0xFF);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
// d_course_banshee_boardwalk_packed_dl_878
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07000878));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07000878));
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
gDPPipeSync(gDisplayListHead++);
}
void BansheeBoardwalk::CreditsSpawnActors() {
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07000878), 0x32, 0, 0, 0);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07000878), 0x32, 0, 0, 0);
}
-void BansheeBoardwalk::Destroy() { }
+void BansheeBoardwalk::Destroy() {
+}
diff --git a/src/engine/courses/BansheeBoardwalk.h b/src/engine/courses/BansheeBoardwalk.h
index cc5b72213..b87f58255 100644
--- a/src/engine/courses/BansheeBoardwalk.h
+++ b/src/engine/courses/BansheeBoardwalk.h
@@ -4,30 +4,30 @@
#include "Course.h"
extern "C" {
- #include "assets/banshee_boardwalk_vertices.h"
- #include "assets/banshee_boardwalk_displaylists.h"
- #include "assets/banshee_boardwalk_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture banshee_boardwalk_textures[];
+#include "assets/banshee_boardwalk_vertices.h"
+#include "assets/banshee_boardwalk_displaylists.h"
+#include "assets/banshee_boardwalk_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture banshee_boardwalk_textures[];
}
class BansheeBoardwalk : public Course {
-public:
- virtual ~BansheeBoardwalk() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~BansheeBoardwalk() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit BansheeBoardwalk();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
- //virtual void InitClouds() override;
+ // virtual void InitClouds() override;
virtual void InitCourseObjects() override;
virtual void UpdateCourseObjects() override;
virtual void RenderCourseObjects(s32 cameraId) override;
@@ -35,10 +35,11 @@ public:
virtual void WhatDoesThisDo(Player* player, int8_t playerId) override;
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void ScrollingTextures() override;
virtual void Waypoints(Player*, int8_t) override;
- virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) override;
+ virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) override;
virtual void CreditsSpawnActors() override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/BigDonut.cpp b/src/engine/courses/BigDonut.cpp
index 4e99828eb..2b498059a 100644
--- a/src/engine/courses/BigDonut.cpp
+++ b/src/engine/courses/BigDonut.cpp
@@ -9,27 +9,27 @@
#include "assets/big_donut_data.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- extern const char *big_donut_dls[];
- extern s16 currentScreenSection;
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+extern const char* big_donut_dls[];
+extern s16 currentScreenSection;
}
const course_texture big_donut_textures[] = {
@@ -63,7 +63,7 @@ BigDonut::BigDonut() {
Props.AIMinimumSeparation = 0.5f;
Props.AISteeringSensitivity = 40;
- Props.PathSizes = {1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -98,14 +98,14 @@ BigDonut::BigDonut() {
Props.Clouds = NULL; // no clouds
Props.CloudList = NULL;
- Props.Skybox.TopRight = {0, 0, 0};
- Props.Skybox.BottomRight = {0, 0, 0};
- Props.Skybox.BottomLeft = {0, 0, 0};
- Props.Skybox.TopLeft = {0, 0, 0};
- Props.Skybox.FloorTopRight = {0, 0, 0};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {0, 0, 0};
+ Props.Skybox.TopRight = { 0, 0, 0 };
+ Props.Skybox.BottomRight = { 0, 0, 0 };
+ Props.Skybox.BottomLeft = { 0, 0, 0 };
+ Props.Skybox.TopLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 0, 0, 0 };
Props.Sequence = MusicSeq::MUSIC_SEQ_BATTLE_ARENAS;
Props.WaterLevel = 100.0f;
@@ -115,23 +115,23 @@ void BigDonut::Load() {
Course::Load();
// d_course_big_donut_packed_dl_1018
- generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07001018), 6);
+ generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*) 0x07001018), 6);
// d_course_big_donut_packed_dl_450
- generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07000450), 6);
+ generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*) 0x07000450), 6);
// d_course_big_donut_packed_dl_AC0
- generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07000AC0), 6);
+ generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*) 0x07000AC0), 6);
// d_course_big_donut_packed_dl_B58
- generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07000B58), 6);
+ generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*) 0x07000B58), 6);
// d_course_big_donut_packed_dl_230
- generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07000230), 6);
+ generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*) 0x07000230), 6);
func_80295C6C();
}
void BigDonut::BeginPlay() {
- spawn_all_item_boxes((ActorSpawnData*)LOAD_ASSET_RAW(d_course_big_donut_item_box_spawns));
+ spawn_all_item_boxes((ActorSpawnData*) LOAD_ASSET_RAW(d_course_big_donut_item_box_spawns));
if (gModeSelection == VERSUS) {
- FVector pos = {0, 0, 0};
+ FVector pos = { 0, 0, 0 };
gWorldInstance.AddObject(new OBombKart(pos, &D_80164550[0][20], 20, 0, 1.0f));
gWorldInstance.AddObject(new OBombKart(pos, &D_80164550[0][40], 40, 0, 1.0f));
@@ -154,22 +154,24 @@ void BigDonut::Render(struct UnkStruct_800DC5EC* arg0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
// d_course_big_donut_packed_dl_DE8
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000DE8)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000DE8)));
}
// d_course_big_donut_packed_dl_450
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000450)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000450)));
// d_course_big_donut_packed_dl_AC0
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000AC0)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000AC0)));
// d_course_big_donut_packed_dl_D20
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000D20)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000D20)));
// d_course_big_donut_packed_dl_230
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000230)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000230)));
}
-void BigDonut::RenderCredits() {}
+void BigDonut::RenderCredits() {
+}
void BigDonut::Waypoints(Player* player, int8_t playerId) {
player->nearestWaypointId = 0;
}
-void BigDonut::Destroy() { }
+void BigDonut::Destroy() {
+}
diff --git a/src/engine/courses/BigDonut.h b/src/engine/courses/BigDonut.h
index bc10105e1..4add75b9f 100644
--- a/src/engine/courses/BigDonut.h
+++ b/src/engine/courses/BigDonut.h
@@ -4,19 +4,19 @@
#include "Course.h"
extern "C" {
- #include "assets/big_donut_vertices.h"
- #include "assets/big_donut_displaylists.h"
- #include "assets/big_donut_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture big_donut_textures[];
+#include "assets/big_donut_vertices.h"
+#include "assets/big_donut_displaylists.h"
+#include "assets/big_donut_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture big_donut_textures[];
}
class BigDonut : public Course {
-public:
+ public:
virtual ~BigDonut() = default;
explicit BigDonut();
@@ -24,7 +24,7 @@ public:
virtual void Load() override;
virtual void BeginPlay() override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void Waypoints(Player* player, int8_t playerId) override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/BlockFort.cpp b/src/engine/courses/BlockFort.cpp
index cf246220e..d15b8bfef 100644
--- a/src/engine/courses/BlockFort.cpp
+++ b/src/engine/courses/BlockFort.cpp
@@ -9,28 +9,28 @@
#include "assets/block_fort_data.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "course_offsets.h"
- extern const char *block_fort_dls[];
- extern s16 currentScreenSection;
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "course_offsets.h"
+extern const char* block_fort_dls[];
+extern s16 currentScreenSection;
}
const course_texture block_fort_textures[] = {
@@ -68,7 +68,7 @@ BlockFort::BlockFort() {
Props.NearPersp = 2.0f;
Props.FarPersp = 2700.0f;
- Props.PathSizes = {1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -103,27 +103,27 @@ BlockFort::BlockFort() {
Props.Clouds = NULL; // no clouds
Props.CloudList = NULL;
- Props.Skybox.TopRight = {128, 184, 248};
- Props.Skybox.BottomRight = {216, 232, 248};
- Props.Skybox.BottomLeft = {216, 232, 248};
- Props.Skybox.TopLeft = {128, 184, 248};
- Props.Skybox.FloorTopRight = {216, 232, 248};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {216, 232, 248};
+ Props.Skybox.TopRight = { 128, 184, 248 };
+ Props.Skybox.BottomRight = { 216, 232, 248 };
+ Props.Skybox.BottomLeft = { 216, 232, 248 };
+ Props.Skybox.TopLeft = { 128, 184, 248 };
+ Props.Skybox.FloorTopRight = { 216, 232, 248 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 216, 232, 248 };
Props.Sequence = MusicSeq::MUSIC_SEQ_CHOCO_MOUNTAIN;
}
void BlockFort::Load() {
Course::Load();
- generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x070015C0), 1);
+ generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*) 0x070015C0), 1);
func_80295C6C();
Props.WaterLevel = gCourseMinY - 10.0f;
}
void BlockFort::BeginPlay() {
- spawn_all_item_boxes((ActorSpawnData*)LOAD_ASSET_RAW(d_course_block_fort_item_box_spawns));
+ spawn_all_item_boxes((ActorSpawnData*) LOAD_ASSET_RAW(d_course_block_fort_item_box_spawns));
if (gModeSelection == VERSUS) {
FVector pos = { 0, 0, 0 };
@@ -144,7 +144,7 @@ void BlockFort::Render(struct UnkStruct_800DC5EC* arg0) {
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
// d_course_block_fort_packed_dl_15C0
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x070015C0)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x070015C0)));
}
void BlockFort::Waypoints(Player* player, int8_t playerId) {
diff --git a/src/engine/courses/BlockFort.h b/src/engine/courses/BlockFort.h
index f0e4c6aa6..e07a036dc 100644
--- a/src/engine/courses/BlockFort.h
+++ b/src/engine/courses/BlockFort.h
@@ -4,26 +4,26 @@
#include "Course.h"
extern "C" {
- #include "assets/block_fort_vertices.h"
- #include "assets/block_fort_displaylists.h"
- #include "assets/block_fort_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture block_fort_textures[];
+#include "assets/block_fort_vertices.h"
+#include "assets/block_fort_displaylists.h"
+#include "assets/block_fort_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture block_fort_textures[];
}
class BlockFort : public Course {
-public:
- virtual ~BlockFort() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~BlockFort() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit BlockFort();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void BeginPlay() override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
diff --git a/src/engine/courses/BowsersCastle.cpp b/src/engine/courses/BowsersCastle.cpp
index 22b6cbe78..fd37ab860 100644
--- a/src/engine/courses/BowsersCastle.cpp
+++ b/src/engine/courses/BowsersCastle.cpp
@@ -11,28 +11,28 @@
#include "bowsers_castle_data.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "code_8003DC40.h"
- #include "memory.h"
- #include "course.h"
- extern const char *bowsers_castle_dls[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "code_8003DC40.h"
+#include "memory.h"
+#include "course.h"
+extern const char* bowsers_castle_dls[];
}
const course_texture bowsers_castle_textures[] = {
@@ -97,7 +97,7 @@ BowsersCastle::BowsersCastle() {
Props.NearPersp = 2.0f;
Props.FarPersp = 2700.0f;
- Props.PathSizes = {0x30C, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x30C, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -119,12 +119,12 @@ BowsersCastle::BowsersCastle() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_bowsers_castle_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_bowsers_castle_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_bowsers_castle_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_bowsers_castle_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -132,24 +132,24 @@ BowsersCastle::BowsersCastle() {
Props.Clouds = NULL; // no clouds
Props.CloudList = NULL;
- Props.Skybox.TopRight = {48, 8, 120};
- Props.Skybox.BottomRight = {0, 0, 0};
- Props.Skybox.BottomLeft = {0, 0, 0};
- Props.Skybox.TopLeft = {48, 8, 120};
- Props.Skybox.FloorTopRight = {0, 0, 0};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {0, 0, 0};
+ Props.Skybox.TopRight = { 48, 8, 120 };
+ Props.Skybox.BottomRight = { 0, 0, 0 };
+ Props.Skybox.BottomLeft = { 0, 0, 0 };
+ Props.Skybox.TopLeft = { 48, 8, 120 };
+ Props.Skybox.FloorTopRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 0, 0, 0 };
Props.Sequence = MusicSeq::MUSIC_SEQ_BOWSERS_CASTLE;
Props.WaterLevel = -50.0f;
- WaterVolumes.push_back({20.0f, 1549.0f, 1859.0f, -1402.0f, -1102.0f});
+ WaterVolumes.push_back({ 20.0f, 1549.0f, 1859.0f, -1402.0f, -1102.0f });
}
void BowsersCastle::Load() {
Course::Load();
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_bowsers_castle_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_bowsers_castle_addr));
func_80295C6C();
find_vtx_and_set_colours(segmented_gfx_to_virtual(reinterpret_cast<void*>(0x07001350)), 0x32, 0, 0, 0);
}
@@ -176,8 +176,8 @@ void BowsersCastle::SpawnStockThwomp() {
}
void BowsersCastle::BeginPlay() {
- spawn_foliage((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_bowsers_castle_tree_spawn));
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_bowsers_castle_item_box_spawns));
+ spawn_foliage((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_bowsers_castle_tree_spawn));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_bowsers_castle_item_box_spawns));
switch (gCCSelection) {
case CC_100:
@@ -268,7 +268,7 @@ void BowsersCastle::UpdateCourseObjects() {
}
void BowsersCastle::RenderCourseObjects(s32 cameraId) {
- //render_object_thwomps(cameraId);
+ // render_object_thwomps(cameraId);
render_object_bowser_flame(cameraId);
}
@@ -276,8 +276,7 @@ void BowsersCastle::SomeSounds() {
}
void BowsersCastle::WhatDoesThisDo(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x29) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1D2)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x29) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1D2)) {
if (D_80165300[playerId] != 1) {
func_800CA288(playerId, 0x41);
}
@@ -291,8 +290,7 @@ void BowsersCastle::WhatDoesThisDo(Player* player, int8_t playerId) {
}
void BowsersCastle::WhatDoesThisDoAI(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x29) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1D2)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x29) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1D2)) {
if (D_80165300[playerId] != 1) {
func_800CA2E4(playerId, 0x41);
}
@@ -333,10 +331,11 @@ void BowsersCastle::Render(struct UnkStruct_800DC5EC* arg0) {
}
void BowsersCastle::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_bowsers_castle_dl_9148));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_bowsers_castle_dl_9148));
}
-void BowsersCastle::SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) {
+void BowsersCastle::SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5,
+ f32* arg6, f32* arg7) {
func_8003E6EC(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
}
@@ -354,7 +353,8 @@ void BowsersCastle::Waypoints(Player* player, int8_t playerId) {
}
}
-void BowsersCastle::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) {
+void BowsersCastle::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) {
if (gActiveScreenMode != SCREEN_MODE_1P) {
return;
}
@@ -372,11 +372,12 @@ void BowsersCastle::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCo
return;
}
}
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_bowsers_castle_dl_9228);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_bowsers_castle_dl_9228);
}
void BowsersCastle::CreditsSpawnActors() {
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07001350), 0x32, 0, 0, 0);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07001350), 0x32, 0, 0, 0);
}
-void BowsersCastle::Destroy() { }
+void BowsersCastle::Destroy() {
+}
diff --git a/src/engine/courses/BowsersCastle.h b/src/engine/courses/BowsersCastle.h
index b52af2a26..739c598c3 100644
--- a/src/engine/courses/BowsersCastle.h
+++ b/src/engine/courses/BowsersCastle.h
@@ -4,31 +4,31 @@
#include "Course.h"
extern "C" {
- #include "assets/bowsers_castle_vertices.h"
- #include "assets/bowsers_castle_displaylists.h"
- #include "assets/bowsers_castle_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture bowsers_castle_textures[];
+#include "assets/bowsers_castle_vertices.h"
+#include "assets/bowsers_castle_displaylists.h"
+#include "assets/bowsers_castle_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture bowsers_castle_textures[];
}
class BowsersCastle : public Course {
-public:
- virtual ~BowsersCastle() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~BowsersCastle() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit BowsersCastle();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
void SpawnStockThwomp();
virtual void BeginPlay() override;
- //virtual void InitClouds() override;
+ // virtual void InitClouds() override;
virtual void InitCourseObjects() override;
virtual void UpdateCourseObjects() override;
virtual void RenderCourseObjects(s32 cameraId) override;
@@ -37,9 +37,11 @@ public:
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
virtual void RenderCredits() override;
- virtual void SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) override;
+ virtual void SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6,
+ f32* arg7) override;
virtual void Waypoints(Player*, int8_t) override;
- virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection);
+ virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection);
virtual void CreditsSpawnActors() override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/ChocoMountain.cpp b/src/engine/courses/ChocoMountain.cpp
index be5dcb0b1..089e80abb 100644
--- a/src/engine/courses/ChocoMountain.cpp
+++ b/src/engine/courses/ChocoMountain.cpp
@@ -10,29 +10,29 @@
#include "engine/actors/Finishline.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "code_8003DC40.h"
- #include "memory.h"
- #include "course_offsets.h"
- #include "course.h"
- extern const char *choco_mountain_dls[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "code_8003DC40.h"
+#include "memory.h"
+#include "course_offsets.h"
+#include "course.h"
+extern const char* choco_mountain_dls[];
}
const course_texture choco_mountain_textures[] = {
@@ -88,7 +88,7 @@ ChocoMountain::ChocoMountain() {
Props.NearPersp = 2.0f;
Props.FarPersp = 1500.0f;
- Props.PathSizes = {0x2BC, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x2BC, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -110,12 +110,12 @@ ChocoMountain::ChocoMountain() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_choco_mountain_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_choco_mountain_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_choco_mountain_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_choco_mountain_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -123,14 +123,14 @@ ChocoMountain::ChocoMountain() {
Props.Clouds = NULL; // no clouds
Props.CloudList = NULL;
- Props.Skybox.TopRight = {255, 255, 255};
- Props.Skybox.BottomRight = {255, 255, 255};
- Props.Skybox.BottomLeft = {255, 255, 255};
- Props.Skybox.TopLeft = {255, 255, 255};
- Props.Skybox.FloorTopRight = {255, 255, 255};
- Props.Skybox.FloorBottomRight = {255, 255, 255};
- Props.Skybox.FloorBottomLeft = {255, 255, 255};
- Props.Skybox.FloorTopLeft = {255, 255, 255};
+ Props.Skybox.TopRight = { 255, 255, 255 };
+ Props.Skybox.BottomRight = { 255, 255, 255 };
+ Props.Skybox.BottomLeft = { 255, 255, 255 };
+ Props.Skybox.TopLeft = { 255, 255, 255 };
+ Props.Skybox.FloorTopRight = { 255, 255, 255 };
+ Props.Skybox.FloorBottomRight = { 255, 255, 255 };
+ Props.Skybox.FloorBottomLeft = { 255, 255, 255 };
+ Props.Skybox.FloorTopLeft = { 255, 255, 255 };
Props.Sequence = MusicSeq::MUSIC_SEQ_CHOCO_MOUNTAIN;
Props.WaterLevel = -80.0f;
@@ -163,7 +163,7 @@ void ChocoMountain::Load() {
nullify_displaylist((uintptr_t) segmented_gfx_to_virtual(reinterpret_cast<void*>(0x070003C8)));
}
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_choco_mountain_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_choco_mountain_addr));
func_802B5CAC(0x238E, 0x31C7, D_8015F590);
func_80295C6C();
}
@@ -172,8 +172,9 @@ void ChocoMountain::LoadTextures() {
}
void ChocoMountain::BeginPlay() {
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_choco_mountain_item_box_spawns));
- spawn_falling_rocks((struct ActorSpawnData*)LOAD_ASSET_RAW((const char*)d_course_choco_mountain_falling_rock_spawns));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_choco_mountain_item_box_spawns));
+ spawn_falling_rocks(
+ (struct ActorSpawnData*) LOAD_ASSET_RAW((const char*) d_course_choco_mountain_falling_rock_spawns));
if (gModeSelection == VERSUS) {
FVector pos = { 0, 0, 0 };
@@ -206,8 +207,7 @@ void ChocoMountain::SomeSounds() {
}
void ChocoMountain::WhatDoesThisDo(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0xA0) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0xB4)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0xA0) && ((s16) gNearestWaypointByPlayerId[playerId] < 0xB4)) {
if (D_80165300[playerId] != 1) {
func_800CA288(playerId, 0x55);
}
@@ -221,8 +221,7 @@ void ChocoMountain::WhatDoesThisDo(Player* player, int8_t playerId) {
}
void ChocoMountain::WhatDoesThisDoAI(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0xA0) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0xB4)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0xA0) && ((s16) gNearestWaypointByPlayerId[playerId] < 0xB4)) {
if (D_80165300[playerId] != 1) {
func_800CA2E4(playerId, 0x55);
}
@@ -283,11 +282,13 @@ void ChocoMountain::Render(struct UnkStruct_800DC5EC* arg0) {
}
void ChocoMountain::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_choco_mountain_dl_71B8));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_choco_mountain_dl_71B8));
}
-void ChocoMountain::SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) {
+void ChocoMountain::SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5,
+ f32* arg6, f32* arg7) {
func_8003E37C(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
}
-void ChocoMountain::Destroy() { }
+void ChocoMountain::Destroy() {
+}
diff --git a/src/engine/courses/ChocoMountain.h b/src/engine/courses/ChocoMountain.h
index b592ba9df..e9eb83263 100644
--- a/src/engine/courses/ChocoMountain.h
+++ b/src/engine/courses/ChocoMountain.h
@@ -4,26 +4,26 @@
#include "Course.h"
extern "C" {
- #include "assets/choco_mountain_vertices.h"
- #include "assets/choco_mountain_displaylists.h"
- #include "assets/choco_mountain_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture choco_mountain_textures[];
+#include "assets/choco_mountain_vertices.h"
+#include "assets/choco_mountain_displaylists.h"
+#include "assets/choco_mountain_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture choco_mountain_textures[];
}
class ChocoMountain : public Course {
-public:
- virtual ~ChocoMountain() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~ChocoMountain() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit ChocoMountain();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
@@ -32,7 +32,8 @@ public:
virtual void WhatDoesThisDo(Player* player, int8_t playerId) override;
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
- virtual void SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) override;
+ virtual void RenderCredits() override;
+ virtual void SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6,
+ f32* arg7) override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/Course.cpp b/src/engine/courses/Course.cpp
index bbc9455fe..c27ab2590 100644
--- a/src/engine/courses/Course.cpp
+++ b/src/engine/courses/Course.cpp
@@ -43,7 +43,7 @@ Course::Course() {
Props.Minimap.PlayerScaleFactor = 0.22f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
- Props.Minimap.Colour = {255, 255, 255};
+ Props.Minimap.Colour = { 255, 255, 255 };
Props.WaterLevel = -10.0f;
Props.LakituTowType = (s32) OLakitu::LakituTowType::NORMAL;
@@ -115,11 +115,11 @@ void Course::LoadO2R(std::string trackPath) {
size_t i = 0;
for (auto& path : paths) {
if (i == 0) {
- Props.PathTable[0] = (TrackWaypoint*)path.data();
+ Props.PathTable[0] = (TrackWaypoint*) path.data();
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)path.data();
+ Props.PathTable2[0] = (TrackWaypoint*) path.data();
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -140,7 +140,7 @@ void Course::Load() {
// Load from O2R
if (!TrackSectionsPtr.empty()) {
bIsMod = true;
- //auto res = std::dynamic_pointer_cast<MK64::TrackSectionsO2RClass>(ResourceLoad(TrackSectionsPtr.c_str()));
+ // auto res = std::dynamic_pointer_cast<MK64::TrackSectionsO2RClass>(ResourceLoad(TrackSectionsPtr.c_str()));
TrackSectionsO2R* sections = (TrackSectionsO2R*) LOAD_ASSET_RAW(TrackSectionsPtr.c_str());
size_t size = ResourceGetSizeByName(TrackSectionsPtr.c_str());
@@ -217,8 +217,9 @@ void Course::ParseCourseSections(TrackSectionsO2R* sections, size_t size) {
} else {
D_8015F5A4 = 0;
}
- printf("LOADING DL %s\n", sections[i].addr.c_str());
- generate_collision_mesh((Gfx*)LOAD_ASSET_RAW(sections[i].addr.c_str()), sections[i].surfaceType, sections[i].sectionId);
+ printf("LOADING DL %s\n", sections[i].addr.c_str());
+ generate_collision_mesh((Gfx*) LOAD_ASSET_RAW(sections[i].addr.c_str()), sections[i].surfaceType,
+ sections[i].sectionId);
}
}
@@ -228,8 +229,8 @@ void Course::TestPath() {
s16 x;
s16 y;
s16 z;
- Vec3s rot = {0, 0, 0};
- Vec3f vel = {0, 0, 0};
+ Vec3s rot = { 0, 0, 0 };
+ Vec3f vel = { 0, 0, 0 };
for (size_t i = 0; i < gWaypointCountByPathIndex[0]; i++) {
x = D_80164550[0][i].posX;
@@ -241,7 +242,7 @@ void Course::TestPath() {
}
f32 height = spawn_actor_on_surface(x, 2000.0f, z);
- Vec3f itemPos = {x, height, z};
+ Vec3f itemPos = { x, height, z };
add_actor_to_empty_slot(itemPos, rot, vel, ACTOR_ITEM_BOX);
}
}
@@ -337,7 +338,7 @@ void Course::Render(struct UnkStruct_800DC5EC* arg0) {
if (!TrackSectionsPtr.empty()) {
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
- // set_track_light_direction(D_800DC610, D_802B87D4, 0, 1);
+ // set_track_light_direction(D_800DC610, D_802B87D4, 0, 1);
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
@@ -347,10 +348,10 @@ void Course::Render(struct UnkStruct_800DC5EC* arg0) {
// d_course_big_donut_packed_dl_DE8
}
- TrackSectionsO2R* sections = (TrackSectionsO2R*)LOAD_ASSET_RAW(TrackSectionsPtr.c_str());
+ TrackSectionsO2R* sections = (TrackSectionsO2R*) LOAD_ASSET_RAW(TrackSectionsPtr.c_str());
size_t size = ResourceGetSizeByName(TrackSectionsPtr.c_str());
for (size_t i = 0; i < (size / sizeof(TrackSectionsO2R)); i++) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)LOAD_ASSET_RAW(sections[i].addr.c_str()));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) LOAD_ASSET_RAW(sections[i].addr.c_str()));
}
}
}
@@ -363,8 +364,7 @@ f32 Course::GetWaterLevel(FVector pos, Collision* collision) {
bool found = false;
for (const auto& volume : gWorldInstance.CurrentCourse->WaterVolumes) {
- if (pos.x >= volume.MinX && pos.x <= volume.MaxX &&
- pos.z >= volume.MinZ && pos.z <= volume.MaxZ) {
+ if (pos.x >= volume.MinX && pos.x <= volume.MaxX && pos.z >= volume.MinZ && pos.z <= volume.MaxZ) {
// Choose the highest water volume the player is over
if (!found || volume.Height > highestWater) {
highestWater = volume.Height;
diff --git a/src/engine/courses/Course.h b/src/engine/courses/Course.h
index 0a0eff823..d16c9c5a5 100644
--- a/src/engine/courses/Course.h
+++ b/src/engine/courses/Course.h
@@ -53,10 +53,10 @@ typedef struct MinimapProps {
int16_t Width;
int16_t Height;
IVector2D Pos[2]; // Minimap position for players 1 and 2. 3/4 player mode is hard-coded to the center.
- int32_t PlayerX; // The offset to place the player markers
+ int32_t PlayerX; // The offset to place the player markers
int32_t PlayerY;
float PlayerScaleFactor; // Scale factor of the player markers
- float FinishlineX; // The offset to place the finishline texture on the minimap
+ float FinishlineX; // The offset to place the finishline texture on the minimap
float FinishlineY;
RGB8 Colour; // Colour of the visible pixels (the track path)
} MinimapProps;
@@ -82,17 +82,17 @@ typedef struct Properties {
TrackWaypoint* PathTable[4];
TrackWaypoint* PathTable2[4];
uint8_t* CloudTexture;
- CloudData *Clouds;
- CloudData *CloudList;
+ CloudData* Clouds;
+ CloudData* CloudList;
SkyboxColours Skybox;
- const course_texture *textures;
+ const course_texture* textures;
enum MusicSeq Sequence;
float WaterLevel; // Used for effects, and Lakitu pick up height. Not necessarily the visual water model height.
#ifdef __cplusplus
nlohmann::json to_json() const {
nlohmann::json j;
- // j["Id"] = Id ? Id : "";
+ // j["Id"] = Id ? Id : "";
j["Name"] = Name ? Name : "";
j["DebugName"] = DebugName ? DebugName : "";
j["CourseLength"] = CourseLength ? CourseLength : "";
@@ -117,21 +117,23 @@ typedef struct Properties {
j["D_0D009808"] = { D_0D009808[0], D_0D009808[1], D_0D009808[2], D_0D009808[3] };
// Serialize arrays PathTable and PathTable2 (convert pointers into a JSON array if possible)
- //j["PathTable"] = {{}};
- //j["PathTable2"] = {{}};
+ // j["PathTable"] = {{}};
+ // j["PathTable2"] = {{}};
// Populate PathTable and PathTable2
- //j["Clouds"] = Clouds ? nlohmann::json{{"x", Clouds->x, "y", Clouds->y, "z", Clouds->z}} : nullptr;
- //j["CloudList"] = CloudList ? nlohmann::json{{"x", CloudList->x, "y", CloudList->y, "z", CloudList->z}} : nullptr;
-
- j["MinimapPosition"] = {Minimap.Pos[0].X, Minimap.Pos[0].Y};
- j["MinimapPosition2P"] = {Minimap.Pos[1].X, Minimap.Pos[1].Y};
+ // j["Clouds"] = Clouds ? nlohmann::json{{"x", Clouds->x, "y", Clouds->y, "z", Clouds->z}} : nullptr;
+ // j["CloudList"] = CloudList ? nlohmann::json{{"x", CloudList->x, "y", CloudList->y, "z", CloudList->z}} :
+ // nullptr;
+
+ j["MinimapPosition"] = { Minimap.Pos[0].X, Minimap.Pos[0].Y };
+ j["MinimapPosition2P"] = { Minimap.Pos[1].X, Minimap.Pos[1].Y };
j["MinimapPlayerX"] = Minimap.PlayerX;
j["MinimapPlayerY"] = Minimap.PlayerY;
j["MinimapPlayerScaleFactor"] = Minimap.PlayerScaleFactor;
j["MinimapFinishlineX"] = Minimap.FinishlineX;
j["MinimapFinishlineY"] = Minimap.FinishlineY;
- j["MinimapColour"] = {static_cast<int>(Minimap.Colour.r), static_cast<int>(Minimap.Colour.g), static_cast<int>(Minimap.Colour.b)};
+ j["MinimapColour"] = { static_cast<int>(Minimap.Colour.r), static_cast<int>(Minimap.Colour.g),
+ static_cast<int>(Minimap.Colour.b) };
// SkyboxColors - assuming SkyboxColors can be serialized similarly
// j["Skybox"] = Skybox; // Implement your serialization logic here
j["Sequence"] = static_cast<int>(Sequence);
@@ -143,16 +145,16 @@ typedef struct Properties {
// Function to load struct from JSON
void from_json(const nlohmann::json& j) {
- //Id = j.at("Id").get<std::string>().c_str();
-// Name = j.at("Name").get<std::string>().c_str();
+ // Id = j.at("Id").get<std::string>().c_str();
+ // Name = j.at("Name").get<std::string>().c_str();
strncpy(Name, j.at("Name").get<std::string>().c_str(), sizeof(Name) - 1);
Name[sizeof(Name) - 1] = '\0'; // Ensure null termination
-// DebugName = j.at("DebugName").get<std::string>().c_str();
+ // DebugName = j.at("DebugName").get<std::string>().c_str();
strncpy(DebugName, j.at("DebugName").get<std::string>().c_str(), sizeof(DebugName) - 1);
DebugName[sizeof(DebugName) - 1] = '\0'; // Ensure null termination
- // CourseLength = j.at("CourseLength").get<std::string>().c_str();
+ // CourseLength = j.at("CourseLength").get<std::string>().c_str();
strncpy(CourseLength, j.at("CourseLength").get<std::string>().c_str(), sizeof(CourseLength) - 1);
CourseLength[sizeof(CourseLength) - 1] = '\0'; // Ensure null termination
@@ -197,11 +199,11 @@ typedef struct Properties {
D_0D009808[1] = j.at("D_0D009808")[1].get<float>();
D_0D009808[2] = j.at("D_0D009808")[2].get<float>();
D_0D009808[3] = j.at("D_0D009808")[3].get<float>();
-
+
// Deserialize arrays PathTable and PathTable2 similarly
-
- //Clouds = nullptr; // Deserialize if data is present
- //CloudList = nullptr; // Deserialize if data is present
+
+ // Clouds = nullptr; // Deserialize if data is present
+ // CloudList = nullptr; // Deserialize if data is present
Minimap.Pos[0].X = j.at("MinimapPosition")[0].get<int32_t>();
Minimap.Pos[0].Y = j.at("MinimapPosition")[1].get<int32_t>();
Minimap.Pos[1].X = j.at("MinimapPosition2P")[0].get<int32_t>();
@@ -214,14 +216,14 @@ typedef struct Properties {
Minimap.Colour.r = j.at("MinimapColour")[0].get<uint8_t>();
Minimap.Colour.g = j.at("MinimapColour")[1].get<uint8_t>();
Minimap.Colour.b = j.at("MinimapColour")[2].get<uint8_t>();
- //textures = nullptr; // Deserialize textures if present
+ // textures = nullptr; // Deserialize textures if present
Sequence = static_cast<MusicSeq>(j.at("Sequence").get<int>());
WaterLevel = j.at("WaterLevel").get<float>();
}
void SetText(char* name, const char* title, size_t bufferSize) {
// Copy the title into the name buffer, ensuring it's null-terminated and within bounds
std::strncpy(name, title, bufferSize - 1);
- name[bufferSize - 1] = '\0'; // Ensure the string is null-terminated
+ name[bufferSize - 1] = '\0'; // Ensure the string is null-terminated
}
const char* GetName() {
@@ -243,7 +245,7 @@ class World; // <-- Forward declare
class Course {
-public:
+ public:
std::string Id;
Properties Props;
@@ -266,7 +268,9 @@ public:
virtual void LoadO2R(std::string trackPath); // Load custom track from o2r
virtual void Load(); // Decompress and load stock courses or from o2r but TrackSectionsPtr must be set.
- virtual void Load(Vtx* vtx, Gfx *gfx); // Load custom track from code. Load must be overridden and then call to this base class method impl.
+ virtual void Load(
+ Vtx* vtx,
+ Gfx* gfx); // Load custom track from code. Load must be overridden and then call to this base class method impl.
virtual void LoadTextures();
virtual void ParseCourseSections(TrackSectionsO2R* sections, size_t size);
@@ -278,7 +282,8 @@ public:
virtual void TestPath();
virtual void InitClouds();
virtual void UpdateClouds(s32, Camera*);
- virtual void SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7);
+ virtual void SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6,
+ f32* arg7);
virtual void InitCourseObjects();
virtual void UpdateCourseObjects();
virtual void RenderCourseObjects(s32 cameraId);
@@ -292,10 +297,12 @@ public:
virtual void Waypoints(Player* player, int8_t playerId);
virtual f32 GetWaterLevel(FVector pos, Collision* collision);
virtual void ScrollingTextures();
- virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection);
+ virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection);
virtual void Destroy();
virtual bool IsMod();
-private:
+
+ private:
void Init();
};
diff --git a/src/engine/courses/DKJungle.cpp b/src/engine/courses/DKJungle.cpp
index bbb602584..7ada96a48 100644
--- a/src/engine/courses/DKJungle.cpp
+++ b/src/engine/courses/DKJungle.cpp
@@ -13,31 +13,31 @@
#include "engine/vehicles/Utils.h"
extern "C" {
- #include "main.h"
- #include "common_structs.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "code_8003DC40.h"
- #include "memory.h"
- #include "sounds.h"
- #include "course.h"
- extern const char *d_course_dks_jungle_parkway_unknown_dl_list[];
- extern s16 currentScreenSection;
+#include "main.h"
+#include "common_structs.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "code_8003DC40.h"
+#include "memory.h"
+#include "sounds.h"
+#include "course.h"
+extern const char* d_course_dks_jungle_parkway_unknown_dl_list[];
+extern s16 currentScreenSection;
}
const course_texture dks_jungle_parkway_textures[] = {
@@ -96,7 +96,7 @@ DKJungle::DKJungle() {
Props.NearPersp = 9.0f;
Props.FarPersp = 4500.0f;
- Props.PathSizes = {0x370, 1, 1, 1, 0x1F4, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x370, 1, 1, 1, 0x1F4, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -118,12 +118,12 @@ DKJungle::DKJungle() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_dks_jungle_parkway_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_dks_jungle_parkway_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_dks_jungle_parkway_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_dks_jungle_parkway_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -131,14 +131,14 @@ DKJungle::DKJungle() {
Props.Clouds = NULL; // no clouds
Props.CloudList = NULL;
- Props.Skybox.TopRight = {255, 174, 0};
- Props.Skybox.BottomRight = {255, 229, 124};
- Props.Skybox.BottomLeft = {255, 229, 124};
- Props.Skybox.TopLeft = {255, 174, 0};
- Props.Skybox.FloorTopRight = {22, 145, 22};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {22, 145, 22};
+ Props.Skybox.TopRight = { 255, 174, 0 };
+ Props.Skybox.BottomRight = { 255, 229, 124 };
+ Props.Skybox.BottomLeft = { 255, 229, 124 };
+ Props.Skybox.TopLeft = { 255, 174, 0 };
+ Props.Skybox.FloorTopRight = { 22, 145, 22 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 22, 145, 22 };
Props.Sequence = MusicSeq::MUSIC_SEQ_DK_JUNGLE;
Props.WaterLevel = -475.0f;
@@ -147,10 +147,10 @@ DKJungle::DKJungle() {
void DKJungle::Load() {
Course::Load();
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_dks_jungle_parkway_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_dks_jungle_parkway_addr));
func_80295C6C();
// d_course_dks_jungle_parkway_packed_dl_3FA8
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07003FA8), 120, 255, 255, 255);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07003FA8), 120, 255, 255, 255);
}
f32 DKJungle::GetWaterLevel(FVector pos, Collision* collision) {
@@ -191,7 +191,7 @@ void DKJungle::LoadTextures() {
}
void DKJungle::BeginPlay() {
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_dks_jungle_parkway_item_box_spawns));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_dks_jungle_parkway_item_box_spawns));
init_kiwano_fruit();
func_80298D10();
@@ -201,7 +201,7 @@ void DKJungle::BeginPlay() {
// The original game only ran vehicle logic every second frame.
// Thus the speed gets divided by two to set speed to match properly
- gWorldInstance.AddActor(new ABoat((0.6666666f)/4, 0));
+ gWorldInstance.AddActor(new ABoat((0.6666666f) / 4, 0));
if (gModeSelection == VERSUS) {
FVector pos = { 0, 0, 0 };
@@ -241,10 +241,9 @@ void DKJungle::SomeSounds() {
}
void DKJungle::WhatDoesThisDo(Player* player, int8_t playerId) {
- if ((((s16) gNearestWaypointByPlayerId[playerId] >= 0) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x65)) ||
+ if ((((s16) gNearestWaypointByPlayerId[playerId] >= 0) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x65)) ||
(((s16) gNearestWaypointByPlayerId[playerId] >= 0x14A) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x21F))) {
+ ((s16) gNearestWaypointByPlayerId[playerId] < 0x21F))) {
if (D_80165300[playerId] != 2) {
func_800C8F80(playerId, 0x0170802D);
}
@@ -271,8 +270,7 @@ void DKJungle::WhatDoesThisDo(Player* player, int8_t playerId) {
}
void DKJungle::WhatDoesThisDoAI(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x288) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x305)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x288) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x305)) {
if (D_80165300[playerId] != 1) {
func_800CA2E4(playerId, 0x55);
}
@@ -297,7 +295,7 @@ void DKJungle::Render(struct UnkStruct_800DC5EC* arg0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
// d_course_dks_jungle_parkway_packed_dl_92D8
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x070092D8)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x070092D8)));
}
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
@@ -309,10 +307,11 @@ void DKJungle::Render(struct UnkStruct_800DC5EC* arg0) {
}
void DKJungle::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_dks_jungle_parkway_dl_13C30));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_dks_jungle_parkway_dl_13C30));
}
-void DKJungle::SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) {
+void DKJungle::SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6,
+ f32* arg7) {
func_8003F138(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
}
@@ -334,25 +333,26 @@ void DKJungle::ScrollingTextures() {
D_802B87BC = 0;
}
// d_course_dks_jungle_parkway_packed_dl_3DD0
- find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*)0x07003DD0), 0, D_802B87BC);
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*) 0x07003DD0), 0, D_802B87BC);
// d_course_dks_jungle_parkway_packed_dl_3E40
- find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*)0x07003E40), 0, D_802B87BC);
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*) 0x07003E40), 0, D_802B87BC);
// d_course_dks_jungle_parkway_packed_dl_3EB0
- find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*)0x07003EB0), 0, D_802B87BC);
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*) 0x07003EB0), 0, D_802B87BC);
// d_course_dks_jungle_parkway_packed_dl_3F30
- find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*)0x07003F30), 0, D_802B87BC);
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*) 0x07003F30), 0, D_802B87BC);
// d_course_dks_jungle_parkway_packed_dl_36A8
- find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*)0x070036A8), 0, D_802B87BC);
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*) 0x070036A8), 0, D_802B87BC);
D_802B87C4 -= 20;
if (D_802B87C4 < 0) {
D_802B87C4 = 0xFF;
}
// d_course_dks_jungle_parkway_packed_dl_9880
- find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*)0x07009880), 0, D_802B87C4);
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*) 0x07009880), 0, D_802B87C4);
evaluate_collision_players_palm_trees();
}
-void DKJungle::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) {
+void DKJungle::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) {
Mat4 matrix;
gDPPipeSync(gDisplayListHead++);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
@@ -370,46 +370,46 @@ void DKJungle::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter
if (pathCounter < 17) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
// d_course_dks_jungle_parkway_packed_dl_3E40
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003E40));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003E40));
// d_course_dks_jungle_parkway_packed_dl_3EB0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003EB0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003EB0));
if ((pathCounter >= 6) && (pathCounter < 13)) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
// d_course_dks_jungle_parkway_packed_dl_3DD0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003DD0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003DD0));
}
} else if ((pathCounter == 21) || (pathCounter == 22)) {
if (playerDirection == 3) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
// d_course_dks_jungle_parkway_packed_dl_36A8
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x070036A8));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x070036A8));
}
if ((playerDirection == 1) || (playerDirection == 0)) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
// d_course_dks_jungle_parkway_packed_dl_36A8
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x070036A8));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x070036A8));
} else {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
// d_course_dks_jungle_parkway_packed_dl_3F30
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003F30));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003F30));
// d_course_dks_jungle_parkway_packed_dl_36A8
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x070036A8));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x070036A8));
}
} else if (pathCounter == 24) {
if ((playerDirection == 0) || (playerDirection == 3)) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
// d_course_dks_jungle_parkway_packed_dl_36A8
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x070036A8));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x070036A8));
}
} else if (pathCounter == 23) {
if (playerDirection == 3) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
// d_course_dks_jungle_parkway_packed_dl_36A8
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x070036A8));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x070036A8));
} else if (playerDirection == 0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
// d_course_dks_jungle_parkway_packed_dl_36A8
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x070036A8));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x070036A8));
}
}
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
@@ -417,38 +417,38 @@ void DKJungle::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter
case 5:
if (playerDirection != 3) {
// d_course_dks_jungle_parkway_packed_dl_3DD0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003DD0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003DD0));
}
break;
case 17:
switch (playerDirection) {
case 0:
// d_course_dks_jungle_parkway_packed_dl_3E40
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003E40));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003E40));
// d_course_dks_jungle_parkway_packed_dl_3EB0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003EB0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003EB0));
break;
case 1:
// d_course_dks_jungle_parkway_packed_dl_3DD0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003DD0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003DD0));
// d_course_dks_jungle_parkway_packed_dl_3E40
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003E40));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003E40));
// d_course_dks_jungle_parkway_packed_dl_3EB0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003EB0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003EB0));
break;
case 2:
// d_course_dks_jungle_parkway_packed_dl_
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003E40));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003E40));
// d_course_dks_jungle_parkway_packed_dl_3EB0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003EB0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003EB0));
// d_course_dks_jungle_parkway_packed_dl_3F30
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003F30));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003F30));
break;
case 3:
// d_course_dks_jungle_parkway_packed_dl_3EB0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003EB0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003EB0));
// d_course_dks_jungle_parkway_packed_dl_3F30
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003F30));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003F30));
break;
}
break;
@@ -456,49 +456,49 @@ void DKJungle::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter
switch (playerDirection) {
case 0:
// d_course_dks_jungle_parkway_packed_dl_3E40
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003E40));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003E40));
// d_course_dks_jungle_parkway_packed_dl_3EB0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003EB0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003EB0));
break;
case 1:
// d_course_dks_jungle_parkway_packed_dl_3DD0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003DD0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003DD0));
// d_course_dks_jungle_parkway_packed_dl_3E40
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003E40));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003E40));
// d_course_dks_jungle_parkway_packed_dl_3EB0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003EB0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003EB0));
break;
case 2:
// d_course_dks_jungle_parkway_packed_dl_3E40
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003E40));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003E40));
// d_course_dks_jungle_parkway_packed_dl_3EB0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003EB0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003EB0));
break;
}
break;
case 21:
if ((playerDirection == 0) || (playerDirection == 1)) {
// d_course_dks_jungle_parkway_packed_dl_3E40
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003E40));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003E40));
// d_course_dks_jungle_parkway_packed_dl_3EB0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003EB0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003EB0));
// d_course_dks_jungle_parkway_packed_dl_3F30
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003F30));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003F30));
} else {
// d_course_dks_jungle_parkway_packed_dl_3EB0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003EB0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003EB0));
}
break;
case 22:
if (playerDirection == 0) {
// d_course_dks_jungle_parkway_packed_dl_3F30
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003F30));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003F30));
}
break;
case 23:
if (playerDirection != 1) {
// d_course_dks_jungle_parkway_packed_dl_3F30
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07003F30));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07003F30));
}
break;
}
@@ -509,7 +509,8 @@ void DKJungle::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter
void DKJungle::CreditsSpawnActors() {
// d_course_dks_jungle_parkway_packed_dl_3FA8
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07003FA8), 0x78, 0xFF, 0xFF, 0xFF);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07003FA8), 0x78, 0xFF, 0xFF, 0xFF);
}
-void DKJungle::Destroy() { }
+void DKJungle::Destroy() {
+}
diff --git a/src/engine/courses/DKJungle.h b/src/engine/courses/DKJungle.h
index 84767a94a..bcc02196c 100644
--- a/src/engine/courses/DKJungle.h
+++ b/src/engine/courses/DKJungle.h
@@ -4,31 +4,31 @@
#include "Course.h"
extern "C" {
- #include "assets/dks_jungle_parkway_vertices.h"
- #include "assets/dks_jungle_parkway_displaylists.h"
- #include "assets/dks_jungle_parkway_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture dks_jungle_parkway_textures[];
+#include "assets/dks_jungle_parkway_vertices.h"
+#include "assets/dks_jungle_parkway_displaylists.h"
+#include "assets/dks_jungle_parkway_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture dks_jungle_parkway_textures[];
}
class DKJungle : public Course {
-public:
- virtual ~DKJungle() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~DKJungle() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit DKJungle();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual f32 GetWaterLevel(FVector pos, Collision* collision) override;
virtual void BeginPlay() override;
- //virtual void InitClouds() override;
+ // virtual void InitClouds() override;
virtual void InitCourseObjects() override;
virtual void UpdateCourseObjects() override;
virtual void RenderCourseObjects(s32 cameraId) override;
@@ -37,10 +37,12 @@ public:
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
virtual void RenderCredits() override;
- virtual void SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) override;
+ virtual void SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6,
+ f32* arg7) override;
virtual void Waypoints(Player* player, int8_t playerId) override;
virtual void ScrollingTextures() override;
- virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) override;
+ virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) override;
virtual void CreditsSpawnActors() override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/DoubleDeck.cpp b/src/engine/courses/DoubleDeck.cpp
index ecadf9d48..f3abbc603 100644
--- a/src/engine/courses/DoubleDeck.cpp
+++ b/src/engine/courses/DoubleDeck.cpp
@@ -9,27 +9,27 @@
#include "assets/double_deck_data.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- extern const char *double_deck_dls[];
- extern s16 currentScreenSection;
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+extern const char* double_deck_dls[];
+extern s16 currentScreenSection;
}
const course_texture double_deck_textures[] = {
@@ -58,7 +58,6 @@ DoubleDeck::DoubleDeck() {
Props.SetText(Props.DebugName, "deck", sizeof(Props.DebugName));
Props.SetText(Props.CourseLength, "", sizeof(Props.CourseLength));
-
Props.AIBehaviour = D_0D008F18;
Props.AIMaximumSeparation = -1.0f;
Props.AIMinimumSeparation = 0.5f;
@@ -67,7 +66,7 @@ DoubleDeck::DoubleDeck() {
Props.NearPersp = 2.0f;
Props.FarPersp = 1500.0f;
- Props.PathSizes = {1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -102,21 +101,21 @@ DoubleDeck::DoubleDeck() {
Props.Clouds = NULL; // no clouds
Props.CloudList = NULL;
- Props.Skybox.TopRight = {113, 70, 255};
- Props.Skybox.BottomRight = {255, 184, 99};
- Props.Skybox.BottomLeft = {255, 184, 99};
- Props.Skybox.TopLeft = {113, 70, 255};
- Props.Skybox.FloorTopRight = {255, 224, 240};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {255, 224, 240};
+ Props.Skybox.TopRight = { 113, 70, 255 };
+ Props.Skybox.BottomRight = { 255, 184, 99 };
+ Props.Skybox.BottomLeft = { 255, 184, 99 };
+ Props.Skybox.TopLeft = { 113, 70, 255 };
+ Props.Skybox.FloorTopRight = { 255, 224, 240 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 255, 224, 240 };
Props.Sequence = MusicSeq::MUSIC_SEQ_CHOCO_MOUNTAIN;
}
void DoubleDeck::Load() {
Course::Load();
- generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07000738), 1);
+ generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*) 0x07000738), 1);
func_80295C6C();
Props.WaterLevel = gCourseMinY - 10.0f;
}
@@ -125,7 +124,7 @@ void DoubleDeck::LoadTextures() {
}
void DoubleDeck::BeginPlay() {
- spawn_all_item_boxes((ActorSpawnData*)LOAD_ASSET_RAW(d_course_double_deck_item_box_spawns));
+ spawn_all_item_boxes((ActorSpawnData*) LOAD_ASSET_RAW(d_course_double_deck_item_box_spawns));
if (gModeSelection == VERSUS) {
FVector pos = { 0, 0, 0 };
@@ -140,13 +139,17 @@ void DoubleDeck::BeginPlay() {
}
}
-void DoubleDeck::InitCourseObjects() {}
+void DoubleDeck::InitCourseObjects() {
+}
-void DoubleDeck::SomeSounds() {}
+void DoubleDeck::SomeSounds() {
+}
-void DoubleDeck::WhatDoesThisDo(Player* player, int8_t playerId) {}
+void DoubleDeck::WhatDoesThisDo(Player* player, int8_t playerId) {
+}
-void DoubleDeck::WhatDoesThisDoAI(Player* player, int8_t playerId) {}
+void DoubleDeck::WhatDoesThisDoAI(Player* player, int8_t playerId) {
+}
void DoubleDeck::Render(struct UnkStruct_800DC5EC* arg0) {
set_track_light_direction(D_800DC610, D_802B87D4, 0, 1);
@@ -155,14 +158,16 @@ void DoubleDeck::Render(struct UnkStruct_800DC5EC* arg0) {
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
// d_course_double_deck_packed_dl_738
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000738)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000738)));
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
}
-void DoubleDeck::RenderCredits() {}
+void DoubleDeck::RenderCredits() {
+}
void DoubleDeck::Waypoints(Player* player, int8_t playerId) {
player->nearestWaypointId = 0;
}
-void DoubleDeck::Destroy() { }
+void DoubleDeck::Destroy() {
+}
diff --git a/src/engine/courses/DoubleDeck.h b/src/engine/courses/DoubleDeck.h
index 2ebb5d9c3..d53483239 100644
--- a/src/engine/courses/DoubleDeck.h
+++ b/src/engine/courses/DoubleDeck.h
@@ -4,26 +4,26 @@
#include "Course.h"
extern "C" {
- #include "assets/double_deck_vertices.h"
- #include "assets/double_deck_displaylists.h"
- #include "assets/double_deck_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture double_deck_textures[];
+#include "assets/double_deck_vertices.h"
+#include "assets/double_deck_displaylists.h"
+#include "assets/double_deck_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture double_deck_textures[];
}
class DoubleDeck : public Course {
-public:
- virtual ~DoubleDeck() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~DoubleDeck() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit DoubleDeck();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
@@ -32,7 +32,7 @@ public:
virtual void WhatDoesThisDo(Player* player, int8_t playerId) override;
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void Waypoints(Player* player, int8_t playerId) override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/FrappeSnowland.cpp b/src/engine/courses/FrappeSnowland.cpp
index 16b9b7380..e41bc2625 100644
--- a/src/engine/courses/FrappeSnowland.cpp
+++ b/src/engine/courses/FrappeSnowland.cpp
@@ -13,30 +13,30 @@
#include "assets/boo_frames.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "update_objects.h"
- #include "course_offsets.h"
- #include "course.h"
- extern const char *d_course_frappe_snowland_dl_list[];
- extern s8 gPlayerCount;
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "update_objects.h"
+#include "course_offsets.h"
+#include "course.h"
+extern const char* d_course_frappe_snowland_dl_list[];
+extern s8 gPlayerCount;
}
const course_texture frappe_snowland_textures[] = {
@@ -62,7 +62,7 @@ FrappeSnowland::FrappeSnowland() {
Props.Minimap.PlayerScaleFactor = 0.016f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
- Props.Minimap.Colour = {72, 100, 255};
+ Props.Minimap.Colour = { 72, 100, 255 };
Props.SetText(Props.Name, "frappe snowland", sizeof(Props.Name));
Props.SetText(Props.DebugName, "snow", sizeof(Props.DebugName));
@@ -76,7 +76,7 @@ FrappeSnowland::FrappeSnowland() {
Props.NearPersp = 9.0f;
Props.FarPersp = 4500.0f;
- Props.PathSizes = {0x2EE, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x2EE, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -98,12 +98,12 @@ FrappeSnowland::FrappeSnowland() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_frappe_snowland_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_frappe_snowland_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_frappe_snowland_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_frappe_snowland_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -111,14 +111,14 @@ FrappeSnowland::FrappeSnowland() {
Props.Clouds = NULL; // not used for frappe
Props.CloudList = NULL;
- Props.Skybox.TopRight = {28, 11, 90};
- Props.Skybox.BottomRight = {0, 99, 164};
- Props.Skybox.BottomLeft = {0, 9, 164};
- Props.Skybox.TopLeft = {28, 11, 90};
- Props.Skybox.FloorTopRight = {0, 99, 164};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {0, 99, 164};
+ Props.Skybox.TopRight = { 28, 11, 90 };
+ Props.Skybox.BottomRight = { 0, 99, 164 };
+ Props.Skybox.BottomLeft = { 0, 9, 164 };
+ Props.Skybox.TopLeft = { 28, 11, 90 };
+ Props.Skybox.FloorTopRight = { 0, 99, 164 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 0, 99, 164 };
Props.Sequence = MusicSeq::MUSIC_SEQ_FRAPPE_SNOWLAND;
Props.WaterLevel = -50.0f;
@@ -127,7 +127,7 @@ FrappeSnowland::FrappeSnowland() {
void FrappeSnowland::Load() {
Course::Load();
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_frappe_snowland_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_frappe_snowland_addr));
func_80295C6C();
}
@@ -137,8 +137,8 @@ void FrappeSnowland::LoadTextures() {
}
void FrappeSnowland::BeginPlay() {
- spawn_foliage((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_frappe_snowland_tree_spawns));
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_frappe_snowland_item_box_spawns));
+ spawn_foliage((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_frappe_snowland_tree_spawns));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_frappe_snowland_item_box_spawns));
if (gGamestate != CREDITS_SEQUENCE) {
gWorldInstance.AddObject(new OSnowman(FVector(697, 0, -1684)));
@@ -225,7 +225,7 @@ void FrappeSnowland::Render(struct UnkStruct_800DC5EC* arg0) {
}
void FrappeSnowland::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_frappe_snowland_dl_76A0));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_frappe_snowland_dl_76A0));
}
void FrappeSnowland::Waypoints(Player* player, int8_t playerId) {
diff --git a/src/engine/courses/FrappeSnowland.h b/src/engine/courses/FrappeSnowland.h
index 8f01559a9..b2d8b5db3 100644
--- a/src/engine/courses/FrappeSnowland.h
+++ b/src/engine/courses/FrappeSnowland.h
@@ -4,19 +4,19 @@
#include "Course.h"
extern "C" {
- #include "assets/frappe_snowland_vertices.h"
- #include "assets/frappe_snowland_displaylists.h"
- #include "assets/frappe_snowland_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture frappe_snowland_textures[];
+#include "assets/frappe_snowland_vertices.h"
+#include "assets/frappe_snowland_displaylists.h"
+#include "assets/frappe_snowland_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture frappe_snowland_textures[];
}
class FrappeSnowland : public Course {
-public:
+ public:
virtual ~FrappeSnowland() = default;
explicit FrappeSnowland();
@@ -29,6 +29,6 @@ public:
virtual void InitCourseObjects() override;
virtual void UpdateCourseObjects() override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void Waypoints(Player* player, int8_t playerId) override;
};
diff --git a/src/engine/courses/Harbour.cpp b/src/engine/courses/Harbour.cpp
index bd037754c..bb9980410 100644
--- a/src/engine/courses/Harbour.cpp
+++ b/src/engine/courses/Harbour.cpp
@@ -31,489 +31,145 @@
#include "engine/objects/GrandPrixBalloons.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "courses/harbour/track.h"
- #include "course.h"
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "courses/harbour/track.h"
+#include "course.h"
}
TrackWaypoint harbour_path[] = {
- {16,-121,-34,0},
- {27,-121,-60,0},
- {31,-121,-83,0},
- {34,-121,-101,0},
- {38,-121,-119,0},
- {42,-121,-132,0},
- {46,-121,-141,0},
- {53,-121,-150,0},
- {60,-121,-158,0},
- {64,-121,-171,0},
- {71,-121,-185,0},
- {79,-121,-194,0},
- {87,-121,-209,0},
- {98,-121,-225,0},
- {109,-121,-236,0},
- {120,-121,-251,0},
- {130,-121,-263,0},
- {140,-121,-273,0},
- {149,-121,-280,0},
- {157,-121,-284,0},
- {167,-121,-292,0},
- {177,-121,-301,0},
- {191,-121,-306,0},
- {203,-121,-313,0},
- {213,-121,-319,0},
- {228,-121,-325,0},
- {240,-121,-332,0},
- {251,-121,-340,0},
- {260,-121,-342,0},
- {270,-121,-345,0},
- {279,-121,-347,0},
- {289,-121,-348,0},
- {298,-121,-351,0},
- {311,-121,-356,0},
- {323,-121,-359,0},
- {332,-121,-359,0},
- {343,-121,-361,0},
- {354,-121,-363,0},
- {363,-121,-361,0},
- {373,-121,-363,0},
- {385,-121,-362,0},
- {396,-121,-360,0},
- {405,-121,-359,0},
- {418,-121,-357,0},
- {432,-120,-354,0},
- {444,-119,-349,0},
- {459,-119,-346,0},
- {467,-119,-341,0},
- {479,-119,-337,0},
- {489,-119,-332,0},
- {501,-120,-325,0},
- {513,-120,-315,0},
- {526,-121,-309,0},
- {537,-121,-300,0},
- {551,-121,-294,0},
- {561,-121,-282,0},
- {572,-120,-269,0},
- {583,-119,-259,0},
- {592,-118,-254,0},
- {598,-119,-246,0},
- {606,-119,-240,0},
- {615,-121,-228,0},
- {624,-121,-219,0},
- {637,-121,-212,0},
- {647,-121,-206,0},
- {657,-121,-193,0},
- {667,-121,-188,0},
- {674,-121,-180,0},
- {688,-122,-173,0},
- {699,-123,-160,0},
- {711,-121,-152,0},
- {722,-118,-141,0},
- {734,-115,-136,0},
- {745,-115,-130,0},
- {753,-116,-121,0},
- {768,-117,-112,0},
- {788,-116,-99,0},
- {809,-114,-85,0},
- {832,-112,-72,0},
- {849,-110,-63,0},
- {861,-110,-57,0},
- {875,-109,-51,0},
- {888,-109,-42,0},
- {899,-109,-37,0},
- {923,-110,-31,0},
- {939,-110,-25,0},
- {950,-110,-21,0},
- {958,-110,-18,0},
- {975,-109,-13,0},
- {988,-109,-8,0},
- {1017,-109,-17,0},
- {1033,-109,-25,0},
- {1055,-110,-33,0},
- {1075,-112,-38,0},
- {1091,-115,-45,0},
- {1104,-118,-55,0},
- {1112,-119,-62,0},
- {1137,-124,-75,0},
- {1160,-127,-91,0},
- {1173,-128,-101,0},
- {1184,-129,-118,0},
- {1209,-132,-147,0},
- {1224,-132,-163,0},
- {1235,-132,-190,0},
- {1244,-132,-221,0},
- {1251,-132,-257,0},
- {1255,-132,-282,0},
- {1256,-132,-327,0},
- {1253,-132,-364,0},
- {1247,-132,-405,0},
- {1236,-132,-431,0},
- {1233,-132,-473,0},
- {1228,-132,-495,0},
- {1223,-132,-513,0},
- {1218,-132,-543,0},
- {1206,-132,-561,0},
- {1197,-132,-584,0},
- {1182,-132,-613,0},
- {1170,-132,-645,0},
- {1163,-132,-660,0},
- {1158,-132,-677,0},
- {1150,-132,-689,0},
- {1138,-132,-712,0},
- {1126,-132,-737,0},
- {1114,-132,-760,0},
- {1101,-132,-775,0},
- {1085,-132,-796,0},
- {1070,-132,-823,0},
- {1058,-132,-839,0},
- {1046,-132,-861,0},
- {1024,-132,-886,0},
- {1010,-132,-906,0},
- {997,-132,-918,0},
- {989,-132,-930,0},
- {975,-132,-943,0},
- {953,-132,-971,0},
- {934,-132,-985,0},
- {919,-132,-999,0},
- {904,-132,-1014,0},
- {889,-132,-1030,0},
- {874,-132,-1044,0},
- {852,-132,-1057,0},
- {826,-132,-1074,0},
- {806,-132,-1087,0},
- {787,-132,-1104,0},
- {773,-132,-1111,0},
- {751,-132,-1125,0},
- {728,-132,-1136,0},
- {710,-132,-1148,0},
- {687,-132,-1162,0},
- {667,-132,-1174,0},
- {648,-132,-1187,0},
- {632,-132,-1190,0},
- {615,-132,-1198,0},
- {597,-132,-1205,0},
- {576,-132,-1211,0},
- {562,-132,-1216,0},
- {543,-132,-1222,0},
- {526,-132,-1227,0},
- {513,-132,-1231,0},
- {495,-132,-1236,0},
- {472,-132,-1243,0},
- {451,-132,-1243,0},
- {431,-132,-1245,0},
- {402,-132,-1250,0},
- {379,-132,-1250,0},
- {358,-132,-1252,0},
- {340,-132,-1253,0},
- {316,-132,-1255,0},
- {298,-132,-1254,0},
- {275,-132,-1252,0},
- {246,-132,-1249,0},
- {221,-132,-1242,0},
- {198,-132,-1237,0},
- {173,-132,-1232,0},
- {156,-132,-1229,0},
- {137,-132,-1221,0},
- {119,-132,-1208,0},
- {103,-132,-1195,0},
- {81,-132,-1179,0},
- {63,-132,-1161,0},
- {48,-132,-1150,0},
- {28,-132,-1125,0},
- {9,-132,-1104,0},
- {-3,-132,-1086,0},
- {-24,-132,-1064,0},
- {-38,-133,-1049,0},
- {-50,-133,-1030,0},
- {-64,-134,-1005,0},
- {-82,-135,-985,0},
- {-97,-136,-960,0},
- {-109,-137,-942,0},
- {-130,-138,-921,0},
- {-148,-139,-897,0},
- {-160,-141,-874,0},
- {-176,-142,-849,0},
- {-202,-143,-821,0},
- {-219,-145,-792,0},
- {-235,-147,-763,0},
- {-257,-149,-729,0},
- {-273,-150,-705,0},
- {-288,-152,-673,0},
- {-309,-154,-637,0},
- {-326,-155,-603,0},
- {-343,-157,-569,0},
- {-356,-158,-542,0},
- {-373,-158,-512,0},
- {-386,-160,-479,0},
- {-401,-161,-441,0},
- {-412,-163,-402,0},
- {-425,-163,-374,0},
- {-441,-164,-332,0},
- {-455,-163,-295,0},
- {-468,-163,-264,0},
- {-482,-162,-219,0},
- {-494,-162,-184,0},
- {-502,-162,-149,0},
- {-509,-162,-118,0},
- {-516,-161,-85,0},
- {-524,-160,-64,0},
- {-532,-159,-39,0},
- {-539,-159,-3,0},
- {-545,-158,28,0},
- {-551,-157,56,0},
- {-558,-156,86,0},
- {-562,-156,124,0},
- {-569,-155,152,0},
- {-574,-154,194,0},
- {-582,-153,241,0},
- {-582,-153,262,0},
- {-586,-152,298,0},
- {-590,-152,330,0},
- {-593,-152,351,0},
- {-594,-152,383,0},
- {-595,-152,415,0},
- {-595,-152,442,0},
- {-597,-152,466,0},
- {-597,-152,492,0},
- {-598,-152,530,0},
- {-597,-152,571,0},
- {-596,-152,612,0},
- {-595,-152,646,0},
- {-591,-153,683,0},
- {-591,-153,717,0},
- {-591,-152,752,0},
- {-587,-152,788,0},
- {-583,-153,820,0},
- {-580,-153,858,0},
- {-573,-154,886,0},
- {-567,-154,924,0},
- {-562,-155,952,0},
- {-554,-155,988,0},
- {-547,-156,1022,0},
- {-534,-156,1065,0},
- {-518,-157,1108,0},
- {-510,-157,1147,0},
- {-503,-158,1172,0},
- {-494,-158,1206,0},
- {-486,-157,1242,0},
- {-474,-157,1274,0},
- {-466,-157,1303,0},
- {-448,-156,1363,0},
- {-435,-156,1400,0},
- {-425,-155,1428,0},
- {-414,-154,1464,0},
- {-404,-153,1498,0},
- {-397,-150,1532,0},
- {-383,-149,1565,0},
- {-370,-148,1604,0},
- {-348,-144,1667,0},
- {-329,-142,1714,0},
- {-312,-141,1744,0},
- {-298,-138,1785,0},
- {-286,-137,1812,0},
- {-263,-135,1860,0},
- {-236,-134,1890,0},
- {-207,-134,1927,0},
- {-184,-133,1949,0},
- {-163,-133,1965,0},
- {-146,-133,1985,0},
- {-103,-132,2022,0},
- {-74,-132,2056,0},
- {-52,-132,2078,0},
- {-20,-132,2101,0},
- {6,-132,2118,0},
- {28,-132,2133,0},
- {52,-132,2154,0},
- {72,-132,2169,0},
- {89,-132,2183,0},
- {105,-132,2196,0},
- {127,-132,2215,0},
- {149,-132,2233,0},
- {169,-132,2245,0},
- {196,-132,2262,0},
- {219,-132,2277,0},
- {248,-132,2293,0},
- {284,-132,2311,0},
- {314,-132,2330,0},
- {348,-132,2339,0},
- {376,-132,2346,0},
- {395,-132,2343,0},
- {414,-132,2344,0},
- {434,-132,2342,0},
- {452,-132,2341,0},
- {486,-132,2328,0},
- {518,-132,2322,0},
- {541,-132,2312,0},
- {567,-132,2305,0},
- {590,-132,2298,0},
- {609,-132,2287,0},
- {633,-132,2277,0},
- {658,-132,2267,0},
- {686,-132,2251,0},
- {712,-132,2235,0},
- {731,-132,2227,0},
- {753,-132,2214,0},
- {774,-132,2200,0},
- {799,-132,2181,0},
- {826,-132,2160,0},
- {846,-132,2144,0},
- {867,-132,2122,0},
- {894,-132,2097,0},
- {916,-132,2070,0},
- {936,-132,2043,0},
- {960,-132,2001,0},
- {980,-132,1968,0},
- {995,-132,1936,0},
- {1008,-132,1908,0},
- {1023,-132,1882,0},
- {1048,-132,1850,0},
- {1064,-132,1820,0},
- {1077,-132,1788,0},
- {1096,-133,1757,0},
- {1113,-133,1712,0},
- {1134,-134,1667,0},
- {1150,-135,1623,0},
- {1165,-135,1582,0},
- {1186,-136,1521,0},
- {1202,-136,1480,0},
- {1219,-136,1436,0},
- {1230,-135,1397,0},
- {1249,-135,1361,0},
- {1260,-134,1327,0},
- {1270,-134,1295,0},
- {1279,-133,1258,0},
- {1292,-133,1218,0},
- {1304,-132,1177,0},
- {1305,-132,1162,0},
- {1303,-132,1146,0},
- {1302,-132,1131,0},
- {1296,-132,1115,0},
- {1291,-133,1106,0},
- {1281,-133,1097,0},
- {1275,-134,1085,0},
- {1266,-136,1074,0},
- {1254,-137,1064,0},
- {1242,-138,1060,0},
- {1225,-139,1042,0},
- {1211,-138,1034,0},
- {1196,-137,1025,0},
- {1178,-134,1018,0},
- {1165,-132,1014,0},
- {1144,-130,1009,0},
- {1124,-127,993,0},
- {1105,-126,986,0},
- {1084,-125,981,0},
- {1059,-124,980,0},
- {1039,-122,972,0},
- {1016,-121,974,0},
- {988,-120,979,0},
- {964,-120,983,0},
- {941,-121,984,0},
- {914,-124,988,0},
- {892,-124,996,0},
- {865,-123,1000,0},
- {848,-122,1004,0},
- {829,-120,1015,0},
- {811,-119,1028,0},
- {785,-115,1036,0},
- {765,-113,1044,0},
- {747,-113,1064,0},
- {724,-114,1080,0},
- {707,-115,1098,0},
- {682,-116,1109,0},
- {663,-117,1131,0},
- {645,-117,1150,0},
- {625,-117,1172,0},
- {606,-118,1183,0},
- {573,-120,1200,0},
- {554,-121,1222,0},
- {532,-121,1238,0},
- {508,-121,1258,0},
- {482,-121,1270,0},
- {461,-121,1286,0},
- {435,-121,1299,0},
- {413,-121,1307,0},
- {389,-121,1313,0},
- {369,-121,1316,0},
- {348,-121,1322,0},
- {330,-121,1325,0},
- {309,-121,1323,0},
- {284,-121,1322,0},
- {258,-121,1323,0},
- {235,-121,1313,0},
- {216,-121,1301,0},
- {186,-121,1289,0},
- {170,-121,1284,0},
- {155,-121,1271,0},
- {141,-121,1255,0},
- {126,-121,1241,0},
- {118,-121,1232,0},
- {109,-121,1217,0},
- {101,-121,1205,0},
- {94,-121,1194,0},
- {86,-121,1180,0},
- {78,-121,1164,0},
- {71,-121,1144,0},
- {63,-121,1127,0},
- {57,-121,1111,0},
- {49,-121,1088,0},
- {44,-121,1074,0},
- {38,-121,1056,0},
- {34,-121,1032,0},
- {29,-121,1010,0},
- {26,-121,986,0},
- {21,-121,968,0},
- {14,-121,940,0},
- {8,-121,918,0},
- {8,-121,893,0},
- {4,-121,872,0},
- {3,-121,851,0},
- {1,-121,829,0},
- {0,-121,803,0},
- {-1,-121,788,0},
- {-5,-121,749,0},
- {-7,-121,713,0},
- {-11,-121,678,0},
- {-8,-121,642,0},
- {-8,-121,608,0},
- {-7,-121,577,0},
- {-8,-121,556,0},
- {-11,-121,515,0},
- {-9,-121,484,0},
- {-9,-121,453,0},
- {-8,-121,416,0},
- {-6,-121,394,0},
- {-3,-121,345,0},
- {-2,-121,305,0},
- {-1,-121,251,0},
- {-1,-121,214,0},
- {-2,-121,189,0},
- {-1,-121,156,0},
- {1,-121,124,0},
- {4,-121,86,0},
- {6,-121,66,0},
- {8,-121,36,0},
- {13,-121,0,0},
- {15,-121,-14,0},
- {-32768, -32768, -32768, 0}
+ { 16, -121, -34, 0 }, { 27, -121, -60, 0 }, { 31, -121, -83, 0 }, { 34, -121, -101, 0 },
+ { 38, -121, -119, 0 }, { 42, -121, -132, 0 }, { 46, -121, -141, 0 }, { 53, -121, -150, 0 },
+ { 60, -121, -158, 0 }, { 64, -121, -171, 0 }, { 71, -121, -185, 0 }, { 79, -121, -194, 0 },
+ { 87, -121, -209, 0 }, { 98, -121, -225, 0 }, { 109, -121, -236, 0 }, { 120, -121, -251, 0 },
+ { 130, -121, -263, 0 }, { 140, -121, -273, 0 }, { 149, -121, -280, 0 }, { 157, -121, -284, 0 },
+ { 167, -121, -292, 0 }, { 177, -121, -301, 0 }, { 191, -121, -306, 0 }, { 203, -121, -313, 0 },
+ { 213, -121, -319, 0 }, { 228, -121, -325, 0 }, { 240, -121, -332, 0 }, { 251, -121, -340, 0 },
+ { 260, -121, -342, 0 }, { 270, -121, -345, 0 }, { 279, -121, -347, 0 }, { 289, -121, -348, 0 },
+ { 298, -121, -351, 0 }, { 311, -121, -356, 0 }, { 323, -121, -359, 0 }, { 332, -121, -359, 0 },
+ { 343, -121, -361, 0 }, { 354, -121, -363, 0 }, { 363, -121, -361, 0 }, { 373, -121, -363, 0 },
+ { 385, -121, -362, 0 }, { 396, -121, -360, 0 }, { 405, -121, -359, 0 }, { 418, -121, -357, 0 },
+ { 432, -120, -354, 0 }, { 444, -119, -349, 0 }, { 459, -119, -346, 0 }, { 467, -119, -341, 0 },
+ { 479, -119, -337, 0 }, { 489, -119, -332, 0 }, { 501, -120, -325, 0 }, { 513, -120, -315, 0 },
+ { 526, -121, -309, 0 }, { 537, -121, -300, 0 }, { 551, -121, -294, 0 }, { 561, -121, -282, 0 },
+ { 572, -120, -269, 0 }, { 583, -119, -259, 0 }, { 592, -118, -254, 0 }, { 598, -119, -246, 0 },
+ { 606, -119, -240, 0 }, { 615, -121, -228, 0 }, { 624, -121, -219, 0 }, { 637, -121, -212, 0 },
+ { 647, -121, -206, 0 }, { 657, -121, -193, 0 }, { 667, -121, -188, 0 }, { 674, -121, -180, 0 },
+ { 688, -122, -173, 0 }, { 699, -123, -160, 0 }, { 711, -121, -152, 0 }, { 722, -118, -141, 0 },
+ { 734, -115, -136, 0 }, { 745, -115, -130, 0 }, { 753, -116, -121, 0 }, { 768, -117, -112, 0 },
+ { 788, -116, -99, 0 }, { 809, -114, -85, 0 }, { 832, -112, -72, 0 }, { 849, -110, -63, 0 },
+ { 861, -110, -57, 0 }, { 875, -109, -51, 0 }, { 888, -109, -42, 0 }, { 899, -109, -37, 0 },
+ { 923, -110, -31, 0 }, { 939, -110, -25, 0 }, { 950, -110, -21, 0 }, { 958, -110, -18, 0 },
+ { 975, -109, -13, 0 }, { 988, -109, -8, 0 }, { 1017, -109, -17, 0 }, { 1033, -109, -25, 0 },
+ { 1055, -110, -33, 0 }, { 1075, -112, -38, 0 }, { 1091, -115, -45, 0 }, { 1104, -118, -55, 0 },
+ { 1112, -119, -62, 0 }, { 1137, -124, -75, 0 }, { 1160, -127, -91, 0 }, { 1173, -128, -101, 0 },
+ { 1184, -129, -118, 0 }, { 1209, -132, -147, 0 }, { 1224, -132, -163, 0 }, { 1235, -132, -190, 0 },
+ { 1244, -132, -221, 0 }, { 1251, -132, -257, 0 }, { 1255, -132, -282, 0 }, { 1256, -132, -327, 0 },
+ { 1253, -132, -364, 0 }, { 1247, -132, -405, 0 }, { 1236, -132, -431, 0 }, { 1233, -132, -473, 0 },
+ { 1228, -132, -495, 0 }, { 1223, -132, -513, 0 }, { 1218, -132, -543, 0 }, { 1206, -132, -561, 0 },
+ { 1197, -132, -584, 0 }, { 1182, -132, -613, 0 }, { 1170, -132, -645, 0 }, { 1163, -132, -660, 0 },
+ { 1158, -132, -677, 0 }, { 1150, -132, -689, 0 }, { 1138, -132, -712, 0 }, { 1126, -132, -737, 0 },
+ { 1114, -132, -760, 0 }, { 1101, -132, -775, 0 }, { 1085, -132, -796, 0 }, { 1070, -132, -823, 0 },
+ { 1058, -132, -839, 0 }, { 1046, -132, -861, 0 }, { 1024, -132, -886, 0 }, { 1010, -132, -906, 0 },
+ { 997, -132, -918, 0 }, { 989, -132, -930, 0 }, { 975, -132, -943, 0 }, { 953, -132, -971, 0 },
+ { 934, -132, -985, 0 }, { 919, -132, -999, 0 }, { 904, -132, -1014, 0 }, { 889, -132, -1030, 0 },
+ { 874, -132, -1044, 0 }, { 852, -132, -1057, 0 }, { 826, -132, -1074, 0 }, { 806, -132, -1087, 0 },
+ { 787, -132, -1104, 0 }, { 773, -132, -1111, 0 }, { 751, -132, -1125, 0 }, { 728, -132, -1136, 0 },
+ { 710, -132, -1148, 0 }, { 687, -132, -1162, 0 }, { 667, -132, -1174, 0 }, { 648, -132, -1187, 0 },
+ { 632, -132, -1190, 0 }, { 615, -132, -1198, 0 }, { 597, -132, -1205, 0 }, { 576, -132, -1211, 0 },
+ { 562, -132, -1216, 0 }, { 543, -132, -1222, 0 }, { 526, -132, -1227, 0 }, { 513, -132, -1231, 0 },
+ { 495, -132, -1236, 0 }, { 472, -132, -1243, 0 }, { 451, -132, -1243, 0 }, { 431, -132, -1245, 0 },
+ { 402, -132, -1250, 0 }, { 379, -132, -1250, 0 }, { 358, -132, -1252, 0 }, { 340, -132, -1253, 0 },
+ { 316, -132, -1255, 0 }, { 298, -132, -1254, 0 }, { 275, -132, -1252, 0 }, { 246, -132, -1249, 0 },
+ { 221, -132, -1242, 0 }, { 198, -132, -1237, 0 }, { 173, -132, -1232, 0 }, { 156, -132, -1229, 0 },
+ { 137, -132, -1221, 0 }, { 119, -132, -1208, 0 }, { 103, -132, -1195, 0 }, { 81, -132, -1179, 0 },
+ { 63, -132, -1161, 0 }, { 48, -132, -1150, 0 }, { 28, -132, -1125, 0 }, { 9, -132, -1104, 0 },
+ { -3, -132, -1086, 0 }, { -24, -132, -1064, 0 }, { -38, -133, -1049, 0 }, { -50, -133, -1030, 0 },
+ { -64, -134, -1005, 0 }, { -82, -135, -985, 0 }, { -97, -136, -960, 0 }, { -109, -137, -942, 0 },
+ { -130, -138, -921, 0 }, { -148, -139, -897, 0 }, { -160, -141, -874, 0 }, { -176, -142, -849, 0 },
+ { -202, -143, -821, 0 }, { -219, -145, -792, 0 }, { -235, -147, -763, 0 }, { -257, -149, -729, 0 },
+ { -273, -150, -705, 0 }, { -288, -152, -673, 0 }, { -309, -154, -637, 0 }, { -326, -155, -603, 0 },
+ { -343, -157, -569, 0 }, { -356, -158, -542, 0 }, { -373, -158, -512, 0 }, { -386, -160, -479, 0 },
+ { -401, -161, -441, 0 }, { -412, -163, -402, 0 }, { -425, -163, -374, 0 }, { -441, -164, -332, 0 },
+ { -455, -163, -295, 0 }, { -468, -163, -264, 0 }, { -482, -162, -219, 0 }, { -494, -162, -184, 0 },
+ { -502, -162, -149, 0 }, { -509, -162, -118, 0 }, { -516, -161, -85, 0 }, { -524, -160, -64, 0 },
+ { -532, -159, -39, 0 }, { -539, -159, -3, 0 }, { -545, -158, 28, 0 }, { -551, -157, 56, 0 },
+ { -558, -156, 86, 0 }, { -562, -156, 124, 0 }, { -569, -155, 152, 0 }, { -574, -154, 194, 0 },
+ { -582, -153, 241, 0 }, { -582, -153, 262, 0 }, { -586, -152, 298, 0 }, { -590, -152, 330, 0 },
+ { -593, -152, 351, 0 }, { -594, -152, 383, 0 }, { -595, -152, 415, 0 }, { -595, -152, 442, 0 },
+ { -597, -152, 466, 0 }, { -597, -152, 492, 0 }, { -598, -152, 530, 0 }, { -597, -152, 571, 0 },
+ { -596, -152, 612, 0 }, { -595, -152, 646, 0 }, { -591, -153, 683, 0 }, { -591, -153, 717, 0 },
+ { -591, -152, 752, 0 }, { -587, -152, 788, 0 }, { -583, -153, 820, 0 }, { -580, -153, 858, 0 },
+ { -573, -154, 886, 0 }, { -567, -154, 924, 0 }, { -562, -155, 952, 0 }, { -554, -155, 988, 0 },
+ { -547, -156, 1022, 0 }, { -534, -156, 1065, 0 }, { -518, -157, 1108, 0 }, { -510, -157, 1147, 0 },
+ { -503, -158, 1172, 0 }, { -494, -158, 1206, 0 }, { -486, -157, 1242, 0 }, { -474, -157, 1274, 0 },
+ { -466, -157, 1303, 0 }, { -448, -156, 1363, 0 }, { -435, -156, 1400, 0 }, { -425, -155, 1428, 0 },
+ { -414, -154, 1464, 0 }, { -404, -153, 1498, 0 }, { -397, -150, 1532, 0 }, { -383, -149, 1565, 0 },
+ { -370, -148, 1604, 0 }, { -348, -144, 1667, 0 }, { -329, -142, 1714, 0 }, { -312, -141, 1744, 0 },
+ { -298, -138, 1785, 0 }, { -286, -137, 1812, 0 }, { -263, -135, 1860, 0 }, { -236, -134, 1890, 0 },
+ { -207, -134, 1927, 0 }, { -184, -133, 1949, 0 }, { -163, -133, 1965, 0 }, { -146, -133, 1985, 0 },
+ { -103, -132, 2022, 0 }, { -74, -132, 2056, 0 }, { -52, -132, 2078, 0 }, { -20, -132, 2101, 0 },
+ { 6, -132, 2118, 0 }, { 28, -132, 2133, 0 }, { 52, -132, 2154, 0 }, { 72, -132, 2169, 0 },
+ { 89, -132, 2183, 0 }, { 105, -132, 2196, 0 }, { 127, -132, 2215, 0 }, { 149, -132, 2233, 0 },
+ { 169, -132, 2245, 0 }, { 196, -132, 2262, 0 }, { 219, -132, 2277, 0 }, { 248, -132, 2293, 0 },
+ { 284, -132, 2311, 0 }, { 314, -132, 2330, 0 }, { 348, -132, 2339, 0 }, { 376, -132, 2346, 0 },
+ { 395, -132, 2343, 0 }, { 414, -132, 2344, 0 }, { 434, -132, 2342, 0 }, { 452, -132, 2341, 0 },
+ { 486, -132, 2328, 0 }, { 518, -132, 2322, 0 }, { 541, -132, 2312, 0 }, { 567, -132, 2305, 0 },
+ { 590, -132, 2298, 0 }, { 609, -132, 2287, 0 }, { 633, -132, 2277, 0 }, { 658, -132, 2267, 0 },
+ { 686, -132, 2251, 0 }, { 712, -132, 2235, 0 }, { 731, -132, 2227, 0 }, { 753, -132, 2214, 0 },
+ { 774, -132, 2200, 0 }, { 799, -132, 2181, 0 }, { 826, -132, 2160, 0 }, { 846, -132, 2144, 0 },
+ { 867, -132, 2122, 0 }, { 894, -132, 2097, 0 }, { 916, -132, 2070, 0 }, { 936, -132, 2043, 0 },
+ { 960, -132, 2001, 0 }, { 980, -132, 1968, 0 }, { 995, -132, 1936, 0 }, { 1008, -132, 1908, 0 },
+ { 1023, -132, 1882, 0 }, { 1048, -132, 1850, 0 }, { 1064, -132, 1820, 0 }, { 1077, -132, 1788, 0 },
+ { 1096, -133, 1757, 0 }, { 1113, -133, 1712, 0 }, { 1134, -134, 1667, 0 }, { 1150, -135, 1623, 0 },
+ { 1165, -135, 1582, 0 }, { 1186, -136, 1521, 0 }, { 1202, -136, 1480, 0 }, { 1219, -136, 1436, 0 },
+ { 1230, -135, 1397, 0 }, { 1249, -135, 1361, 0 }, { 1260, -134, 1327, 0 }, { 1270, -134, 1295, 0 },
+ { 1279, -133, 1258, 0 }, { 1292, -133, 1218, 0 }, { 1304, -132, 1177, 0 }, { 1305, -132, 1162, 0 },
+ { 1303, -132, 1146, 0 }, { 1302, -132, 1131, 0 }, { 1296, -132, 1115, 0 }, { 1291, -133, 1106, 0 },
+ { 1281, -133, 1097, 0 }, { 1275, -134, 1085, 0 }, { 1266, -136, 1074, 0 }, { 1254, -137, 1064, 0 },
+ { 1242, -138, 1060, 0 }, { 1225, -139, 1042, 0 }, { 1211, -138, 1034, 0 }, { 1196, -137, 1025, 0 },
+ { 1178, -134, 1018, 0 }, { 1165, -132, 1014, 0 }, { 1144, -130, 1009, 0 }, { 1124, -127, 993, 0 },
+ { 1105, -126, 986, 0 }, { 1084, -125, 981, 0 }, { 1059, -124, 980, 0 }, { 1039, -122, 972, 0 },
+ { 1016, -121, 974, 0 }, { 988, -120, 979, 0 }, { 964, -120, 983, 0 }, { 941, -121, 984, 0 },
+ { 914, -124, 988, 0 }, { 892, -124, 996, 0 }, { 865, -123, 1000, 0 }, { 848, -122, 1004, 0 },
+ { 829, -120, 1015, 0 }, { 811, -119, 1028, 0 }, { 785, -115, 1036, 0 }, { 765, -113, 1044, 0 },
+ { 747, -113, 1064, 0 }, { 724, -114, 1080, 0 }, { 707, -115, 1098, 0 }, { 682, -116, 1109, 0 },
+ { 663, -117, 1131, 0 }, { 645, -117, 1150, 0 }, { 625, -117, 1172, 0 }, { 606, -118, 1183, 0 },
+ { 573, -120, 1200, 0 }, { 554, -121, 1222, 0 }, { 532, -121, 1238, 0 }, { 508, -121, 1258, 0 },
+ { 482, -121, 1270, 0 }, { 461, -121, 1286, 0 }, { 435, -121, 1299, 0 }, { 413, -121, 1307, 0 },
+ { 389, -121, 1313, 0 }, { 369, -121, 1316, 0 }, { 348, -121, 1322, 0 }, { 330, -121, 1325, 0 },
+ { 309, -121, 1323, 0 }, { 284, -121, 1322, 0 }, { 258, -121, 1323, 0 }, { 235, -121, 1313, 0 },
+ { 216, -121, 1301, 0 }, { 186, -121, 1289, 0 }, { 170, -121, 1284, 0 }, { 155, -121, 1271, 0 },
+ { 141, -121, 1255, 0 }, { 126, -121, 1241, 0 }, { 118, -121, 1232, 0 }, { 109, -121, 1217, 0 },
+ { 101, -121, 1205, 0 }, { 94, -121, 1194, 0 }, { 86, -121, 1180, 0 }, { 78, -121, 1164, 0 },
+ { 71, -121, 1144, 0 }, { 63, -121, 1127, 0 }, { 57, -121, 1111, 0 }, { 49, -121, 1088, 0 },
+ { 44, -121, 1074, 0 }, { 38, -121, 1056, 0 }, { 34, -121, 1032, 0 }, { 29, -121, 1010, 0 },
+ { 26, -121, 986, 0 }, { 21, -121, 968, 0 }, { 14, -121, 940, 0 }, { 8, -121, 918, 0 },
+ { 8, -121, 893, 0 }, { 4, -121, 872, 0 }, { 3, -121, 851, 0 }, { 1, -121, 829, 0 },
+ { 0, -121, 803, 0 }, { -1, -121, 788, 0 }, { -5, -121, 749, 0 }, { -7, -121, 713, 0 },
+ { -11, -121, 678, 0 }, { -8, -121, 642, 0 }, { -8, -121, 608, 0 }, { -7, -121, 577, 0 },
+ { -8, -121, 556, 0 }, { -11, -121, 515, 0 }, { -9, -121, 484, 0 }, { -9, -121, 453, 0 },
+ { -8, -121, 416, 0 }, { -6, -121, 394, 0 }, { -3, -121, 345, 0 }, { -2, -121, 305, 0 },
+ { -1, -121, 251, 0 }, { -1, -121, 214, 0 }, { -2, -121, 189, 0 }, { -1, -121, 156, 0 },
+ { 1, -121, 124, 0 }, { 4, -121, 86, 0 }, { 6, -121, 66, 0 }, { 8, -121, 36, 0 },
+ { 13, -121, 0, 0 }, { 15, -121, -14, 0 }, { -32768, -32768, -32768, 0 }
};
Harbour::Harbour() {
@@ -541,7 +197,7 @@ Harbour::Harbour() {
Props.NearPersp = 9.0f;
Props.FarPersp = 4500.0f;
- Props.PathSizes = {459, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 459, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -579,20 +235,20 @@ Harbour::Harbour() {
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
- Props.Skybox.TopRight = {120, 140, 188};
- Props.Skybox.BottomRight = {216, 232, 248};
- Props.Skybox.BottomLeft = {216, 232, 248};
- Props.Skybox.TopLeft = {40, 184, 208};
- Props.Skybox.FloorTopRight = {0, 0, 0};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {0, 0, 0};
+ Props.Skybox.TopRight = { 120, 140, 188 };
+ Props.Skybox.BottomRight = { 216, 232, 248 };
+ Props.Skybox.BottomLeft = { 216, 232, 248 };
+ Props.Skybox.TopLeft = { 40, 184, 208 };
+ Props.Skybox.FloorTopRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 0, 0, 0 };
Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM;
}
TrackSections harbour_surfaces[] = {
- { road_map_001_mesh, 1, 255, 0x0000 },
- { ground_map_mesh, 8, 255, 0x0000 },
+ { road_map_001_mesh, 1, 255, 0x0000 },
+ { ground_map_mesh, 8, 255, 0x0000 },
{ 0x00000000, 0, 0, 0x00000 },
};
@@ -600,10 +256,7 @@ void Harbour::Load() {
Course::Load(road_map_001_mesh_vtx_0, NULL);
// The light gets overridden in hm_intro, reset to normal
- ground_f3d_material_013_lights = gdSPDefLights1(
- 0x7F, 0x7F, 0x7F,
- 0xFF, 0xFF, 0xFF, 0x49, 0x49, 0x49
- );
+ ground_f3d_material_013_lights = gdSPDefLights1(0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0x49, 0x49, 0x49);
generate_collision_mesh_with_default_section_id(ground_map_mesh, 8);
generate_collision_mesh_with_default_section_id(road_map_001_mesh, 1);
@@ -612,7 +265,7 @@ void Harbour::Load() {
generate_collision_mesh_with_defaults(bush_map_004_mesh);
generate_collision_mesh_with_defaults(statue_map_005_mesh);
- parse_course_displaylists((TrackSections*)harbour_surfaces);
+ parse_course_displaylists((TrackSections*) harbour_surfaces);
func_80295C6C();
Props.WaterLevel = gCourseMinY - 10.0f;
}
@@ -631,58 +284,58 @@ void Harbour::LoadTextures() {
}
Path2D harbour_path2D[] = {
- { 0, 0},
- { 0, -100},
- { 0, -200},
- { 0, -300},
- { 0, -400},
- { 0, -500},
- { 0, -600},
- { 0, -700},
- { 0, -800},
- { 0, -900},
- { 0, -1000},
- { 0, -1096}, // Main point 1
- { 100, -1090},
- { 200, -1085},
- { 300, -1080},
- { 400, -1075},
- { 500, -1072}, // Curve begins to smooth here
- { 600, -1068},
- { 700, -1065},
- { 800, -1063},
- { 900, -1061},
- { 984, -1060}, // Main point 2
- { 990, -900},
- { 995, -800},
- { 997, -700},
- { 998, -600},
- { 999, -500},
- { 999, -400},
- { 999, -300},
- { 999, -200},
- { 999, -100},
- { 999, 0},
- { 999, 100},
- { 999, 200},
- { 999, 300},
- { 999, 400},
- { 999, 500},
- { 999, 600},
- { 999, 700},
- { 999, 800},
- { 999, 900},
- { 999, 940}, // Main point 3
- { 900, 945},
- { 800, 945},
- { 700, 947},
- { 600, 948},
- { 500, 949},
- { 400, 949},
- { 300, 949},
- { 200, 950},
- { 100, 950},
- { 0, 950}, // Main point 4
+ { 0, 0 },
+ { 0, -100 },
+ { 0, -200 },
+ { 0, -300 },
+ { 0, -400 },
+ { 0, -500 },
+ { 0, -600 },
+ { 0, -700 },
+ { 0, -800 },
+ { 0, -900 },
+ { 0, -1000 },
+ { 0, -1096 }, // Main point 1
+ { 100, -1090 },
+ { 200, -1085 },
+ { 300, -1080 },
+ { 400, -1075 },
+ { 500, -1072 }, // Curve begins to smooth here
+ { 600, -1068 },
+ { 700, -1065 },
+ { 800, -1063 },
+ { 900, -1061 },
+ { 984, -1060 }, // Main point 2
+ { 990, -900 },
+ { 995, -800 },
+ { 997, -700 },
+ { 998, -600 },
+ { 999, -500 },
+ { 999, -400 },
+ { 999, -300 },
+ { 999, -200 },
+ { 999, -100 },
+ { 999, 0 },
+ { 999, 100 },
+ { 999, 200 },
+ { 999, 300 },
+ { 999, 400 },
+ { 999, 500 },
+ { 999, 600 },
+ { 999, 700 },
+ { 999, 800 },
+ { 999, 900 },
+ { 999, 940 }, // Main point 3
+ { 900, 945 },
+ { 800, 945 },
+ { 700, 947 },
+ { 600, 948 },
+ { 500, 949 },
+ { 400, 949 },
+ { 300, 949 },
+ { 200, 950 },
+ { 100, 950 },
+ { 0, 950 }, // Main point 4
// End of path
{ -32768, -32768 } // Terminator
@@ -690,37 +343,27 @@ Path2D harbour_path2D[] = {
void Harbour::BeginPlay() {
struct ActorSpawnData itemboxes[] = {
- { 200, 1500, 200 , 0},
- { 350, 2500, 300 , 1},
- { 400, 2000, 350 , 2},
- { 40, 0, -800, 0},
- { -40, 0, -800, 0},
- { 0, 0, -800, 0},
- { 999, 6, 482, 0},
- { 1064, 8, 275, {0}},
- { 1028, 5, -39 , {0}},
- { 320, 0, 1020, {0}},
- { 293, 0, 950, {0}},
- {{ -32768, 0, 0 }, {0}},
+ { 200, 1500, 200, 0 }, { 350, 2500, 300, 1 }, { 400, 2000, 350, 2 }, { 40, 0, -800, 0 },
+ { -40, 0, -800, 0 }, { 0, 0, -800, 0 }, { 999, 6, 482, 0 }, { 1064, 8, 275, { 0 } },
+ { 1028, 5, -39, { 0 } }, { 320, 0, 1020, { 0 } }, { 293, 0, 950, { 0 } }, { { -32768, 0, 0 }, { 0 } },
};
struct ActorSpawnData rocks[] = {
- {{ 200, 1500, 200 }, {0}},
- {{ 350, 2500, 300 }, {1}},
- {{ 400, 2000, 350 }, {2}},
- {{ -32768, 0, 0 }, {0}},
+ { { 200, 1500, 200 }, { 0 } },
+ { { 350, 2500, 300 }, { 1 } },
+ { { 400, 2000, 350 }, { 2 } },
+ { { -32768, 0, 0 }, { 0 } },
};
- //spawn_all_item_boxes(itemboxes);
+ // spawn_all_item_boxes(itemboxes);
- Vec3f test = {-100, 0, -150};
- Vec3s rot = {0, 0, 0};
- Vec3f vel = {0, 0, 0};
+ Vec3f test = { -100, 0, -150 };
+ Vec3s rot = { 0, 0, 0 };
+ Vec3f vel = { 0, 0, 0 };
- //add_actor_to_empty_slot(test, rot, vel, ACTOR_TREE_MARIO_RACEWAY);
+ // add_actor_to_empty_slot(test, rot, vel, ACTOR_TREE_MARIO_RACEWAY);
-
- Vec3f pos = {0, 80, 0};
+ Vec3f pos = { 0, 80, 0 };
// gWorldInstance.AddActor(new ACloud(pos));
// gWorldInstance.AddActor(new OSeagull(0, pos));
@@ -729,23 +372,23 @@ void Harbour::BeginPlay() {
// gWorldInstance.AddActor(new OSeagull(3, pos));
// gWorldInstance.AddObject(new OCheepCheep(FVector(0, 40, 0), OCheepCheep::CheepType::RACE, IPathSpan(0, 10)));
// gWorldInstance.AddObject(new OTrophy(FVector(0,0,0), OTrophy::TrophyType::GOLD, OTrophy::Behaviour::GO_FISH));
- //gWorldInstance.AddObject(new OSnowman(FVector(0, 0, 0)));
- //gWorldInstance.AddObject(new OTrashBin(FVector(0.0f, 0.0f, 0.0f), IRotator(0, 90, 0), 1.0f, OTrashBin::Behaviour::MUNCHING));
+ // gWorldInstance.AddObject(new OSnowman(FVector(0, 0, 0)));
+ // gWorldInstance.AddObject(new OTrashBin(FVector(0.0f, 0.0f, 0.0f), IRotator(0, 90, 0), 1.0f,
+ // OTrashBin::Behaviour::MUNCHING));
- //gWorldInstance.AddObject(new OHedgehog(FVector(0, 0, 0), FVector2D(0, -200), 9));
- //gWorldInstance.AddObject(new OFlagpole(FVector(0, 0, -200), 0x400));
-// gWorldInstance.AddObject(new OHotAirBalloon(FVector(0.0, 20.0f, -200.0f)));
+ // gWorldInstance.AddObject(new OHedgehog(FVector(0, 0, 0), FVector2D(0, -200), 9));
+ // gWorldInstance.AddObject(new OFlagpole(FVector(0, 0, -200), 0x400));
+ // gWorldInstance.AddObject(new OHotAirBalloon(FVector(0.0, 20.0f, -200.0f)));
- //gWorldInstance.AddObject(new OCrab(FVector2D(0, 0), FVector2D(0, -200)));
-// gWorldInstance.AddActor(new ABowserStatue(FVector(-200, 0, 0), ABowserStatue::Behaviour::CRUSH));
+ // gWorldInstance.AddObject(new OCrab(FVector2D(0, 0), FVector2D(0, -200)));
+ // gWorldInstance.AddActor(new ABowserStatue(FVector(-200, 0, 0), ABowserStatue::Behaviour::CRUSH));
-// gWorldInstance.AddObject(new OBoos(10, IPathSpan(0, 5), IPathSpan(18, 23), IPathSpan(25, 50)));
+ // gWorldInstance.AddObject(new OBoos(10, IPathSpan(0, 5), IPathSpan(18, 23), IPathSpan(25, 50)));
- // gVehicle2DWaypoint = harbour_path2D;
- //gVehicle2DWaypointLength = 53;
+ // gVehicle2DWaypoint = harbour_path2D;
+ // gVehicle2DWaypointLength = 53;
// D_80162EB0 = spawn_actor_on_surface(harbour_path2D[0].x, 2000.0f, harbour_path2D[0].z);
-
// DEBUG ONLY TO VISUALIZE PATH
// for (size_t i = 0; i < ARRAY_COUNT(harbour_path); i++) {
// if (i % 10 == 1) {
@@ -754,14 +397,13 @@ void Harbour::BeginPlay() {
// add_actor_to_empty_slot(itemPos, rot, vel, ACTOR_ITEM_BOX);
// }
// }
- //gWorldInstance.AddActor(new AShip(FVector(-1694, -111, 1451), AShip::Skin::GHOSTSHIP));
- //gWorldInstance.AddActor(new AShip(FVector(2811, -83, 966), AShip::Skin::SHIP2));
- //gWorldInstance.AddObject(new OGrandPrixBalloons(FVector(16, -136, -34)));
+ // gWorldInstance.AddActor(new AShip(FVector(-1694, -111, 1451), AShip::Skin::GHOSTSHIP));
+ // gWorldInstance.AddActor(new AShip(FVector(2811, -83, 966), AShip::Skin::SHIP2));
+ // gWorldInstance.AddObject(new OGrandPrixBalloons(FVector(16, -136, -34)));
}
void Harbour::WhatDoesThisDo(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
if (D_80165300[playerId] != 1) {
func_800CA288(playerId, 0x55);
}
@@ -775,8 +417,7 @@ void Harbour::WhatDoesThisDo(Player* player, int8_t playerId) {
}
void Harbour::WhatDoesThisDoAI(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
if (D_80165300[playerId] != 1) {
func_800CA2E4(playerId, 0x55);
}
@@ -813,4 +454,4 @@ void Harbour::Render(struct UnkStruct_800DC5EC* arg0) {
bool Harbour::IsMod() {
return true;
-} \ No newline at end of file
+}
diff --git a/src/engine/courses/Harbour.h b/src/engine/courses/Harbour.h
index 834154f84..d7efc459b 100644
--- a/src/engine/courses/Harbour.h
+++ b/src/engine/courses/Harbour.h
@@ -4,26 +4,26 @@
#include "Course.h"
extern "C" {
- #include "mario_raceway_vertices.h"
- #include "mario_raceway_displaylists.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- #include "mario_raceway_data.h"
- extern const course_texture test_course_textures[];
+#include "mario_raceway_vertices.h"
+#include "mario_raceway_displaylists.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+#include "mario_raceway_data.h"
+extern const course_texture test_course_textures[];
}
class Harbour : public Course {
-public:
- virtual ~Harbour() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~Harbour() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit Harbour();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
diff --git a/src/engine/courses/KalimariDesert.cpp b/src/engine/courses/KalimariDesert.cpp
index 8f4c3e893..58c0a7876 100644
--- a/src/engine/courses/KalimariDesert.cpp
+++ b/src/engine/courses/KalimariDesert.cpp
@@ -13,27 +13,27 @@
#include "engine/vehicles/Train.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "course.h"
- extern const char *kalimari_desert_dls[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "course.h"
+extern const char* kalimari_desert_dls[];
}
const course_texture kalimari_desert_textures[] = {
@@ -80,7 +80,7 @@ KalimariDesert::KalimariDesert() {
Props.NearPersp = 10.0f;
Props.FarPersp = 7000.0f;
- Props.PathSizes = {0x2BC, 1, 1, 1, 0x226, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x2BC, 1, 1, 1, 0x226, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -102,12 +102,12 @@ KalimariDesert::KalimariDesert() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_kalimari_desert_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_kalimari_desert_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_kalimari_desert_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_kalimari_desert_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -116,21 +116,21 @@ KalimariDesert::KalimariDesert() {
Props.Clouds = gKalimariDesertClouds;
Props.CloudList = gKalimariDesertClouds;
- Props.Skybox.TopRight = {195, 231, 255};
- Props.Skybox.BottomRight = {255, 192, 0};
- Props.Skybox.BottomLeft = {255, 192, 0};
- Props.Skybox.TopLeft = {195, 231, 255};
- Props.Skybox.FloorTopRight = {255, 192, 0};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {255, 192, 0};
+ Props.Skybox.TopRight = { 195, 231, 255 };
+ Props.Skybox.BottomRight = { 255, 192, 0 };
+ Props.Skybox.BottomLeft = { 255, 192, 0 };
+ Props.Skybox.TopLeft = { 195, 231, 255 };
+ Props.Skybox.FloorTopRight = { 255, 192, 0 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 255, 192, 0 };
Props.Sequence = MusicSeq::MUSIC_SEQ_KALIMARI_DESERT;
}
void KalimariDesert::Load() {
Course::Load();
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_kalimari_desert_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_kalimari_desert_addr));
func_80295C6C();
Props.WaterLevel = gCourseMinY - 10.0f;
}
@@ -149,41 +149,40 @@ void KalimariDesert::BeginPlay() {
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
Vec3s rotation = { 0, 0, 0 };
- spawn_foliage((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_kalimari_desert_cactus_spawn));
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_kalimari_desert_item_box_spawns));
+ spawn_foliage((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_kalimari_desert_cactus_spawn));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_kalimari_desert_item_box_spawns));
if (gGamestate != CREDITS_SEQUENCE) {
- Vec3f crossingPos = {-2500, 2, 2355};
- Vec3f crossingPos2 = {-1639, 2, 68};
+ Vec3f crossingPos = { -2500, 2, 2355 };
+ Vec3f crossingPos2 = { -1639, 2, 68 };
uintptr_t* crossing1 = (uintptr_t*) gWorldInstance.AddCrossing(crossingPos, 306, 310, 900.0f, 650.0f);
uintptr_t* crossing2 = (uintptr_t*) gWorldInstance.AddCrossing(crossingPos2, 176, 182, 900.0f, 650.0f);
vec3f_set(position, -1680.0f, 2.0f, 35.0f);
position[0] *= gCourseDirection;
- rrxing = (struct RailroadCrossing*) GET_ACTOR(add_actor_to_empty_slot(position, rotation, velocity,
- ACTOR_RAILROAD_CROSSING));
+ rrxing = (struct RailroadCrossing*) GET_ACTOR(
+ add_actor_to_empty_slot(position, rotation, velocity, ACTOR_RAILROAD_CROSSING));
rrxing->crossingTrigger = crossing2;
vec3f_set(position, -1600.0f, 2.0f, 35.0f);
position[0] *= gCourseDirection;
- rrxing = (struct RailroadCrossing*) GET_ACTOR(add_actor_to_empty_slot(position, rotation, velocity,
- ACTOR_RAILROAD_CROSSING));
+ rrxing = (struct RailroadCrossing*) GET_ACTOR(
+ add_actor_to_empty_slot(position, rotation, velocity, ACTOR_RAILROAD_CROSSING));
rrxing->crossingTrigger = crossing2;
// Original game forgot to put gCourseDirection to face the crossing the right direction in extra mode
vec3s_set(rotation, 0, -0x2000 * gCourseDirection, 0);
vec3f_set(position, -2459.0f, 2.0f, 2263.0f);
position[0] *= gCourseDirection;
- rrxing = (struct RailroadCrossing*) GET_ACTOR(add_actor_to_empty_slot(position, rotation, velocity,
- ACTOR_RAILROAD_CROSSING));
+ rrxing = (struct RailroadCrossing*) GET_ACTOR(
+ add_actor_to_empty_slot(position, rotation, velocity, ACTOR_RAILROAD_CROSSING));
rrxing->crossingTrigger = crossing1;
vec3f_set(position, -2467.0f, 2.0f, 2375.0f);
position[0] *= gCourseDirection;
- rrxing = (struct RailroadCrossing*) GET_ACTOR(add_actor_to_empty_slot(position, rotation, velocity,
- ACTOR_RAILROAD_CROSSING));
+ rrxing = (struct RailroadCrossing*) GET_ACTOR(
+ add_actor_to_empty_slot(position, rotation, velocity, ACTOR_RAILROAD_CROSSING));
rrxing->crossingTrigger = crossing1;
-
generate_train_waypoints();
s32 centerWaypoint = 160;
@@ -240,11 +239,14 @@ void KalimariDesert::InitCourseObjects() {
}
}
-void KalimariDesert::SomeSounds() {}
+void KalimariDesert::SomeSounds() {
+}
-void KalimariDesert::WhatDoesThisDo(Player* player, int8_t playerId) {}
+void KalimariDesert::WhatDoesThisDo(Player* player, int8_t playerId) {
+}
-void KalimariDesert::WhatDoesThisDoAI(Player* player, int8_t playerId) {}
+void KalimariDesert::WhatDoesThisDoAI(Player* player, int8_t playerId) {
+}
void KalimariDesert::Render(struct UnkStruct_800DC5EC* arg0) {
set_track_light_direction(D_800DC610, D_802B87D4, 0, 1);
@@ -257,30 +259,31 @@ void KalimariDesert::Render(struct UnkStruct_800DC5EC* arg0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
// d_course_kalimari_desert_packed_dl_71C8
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x070071C8)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x070071C8)));
}
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
render_course_segments(kalimari_desert_dls, arg0);
// d_course_kalimari_desert_packed_dl_1ED8
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07001ED8)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07001ED8)));
// d_course_kalimari_desert_packed_dl_1B18
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07001B18)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07001B18)));
// d_course_kalimari_desert_packed_dl_8330
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07008330)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07008330)));
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
// d_course_kalimari_desert_packed_dl_998
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000998)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000998)));
// d_course_kalimari_desert_packed_dl_270
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000270)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000270)));
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
}
void KalimariDesert::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_kalimari_desert_dl_22E00));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_kalimari_desert_dl_22E00));
}
-void KalimariDesert::Destroy() { }
+void KalimariDesert::Destroy() {
+}
diff --git a/src/engine/courses/KalimariDesert.h b/src/engine/courses/KalimariDesert.h
index fe8b21f23..5dc6c2eba 100644
--- a/src/engine/courses/KalimariDesert.h
+++ b/src/engine/courses/KalimariDesert.h
@@ -6,26 +6,26 @@
#include "engine/vehicles/Train.h"
extern "C" {
- #include "assets/kalimari_desert_vertices.h"
- #include "assets/kalimari_desert_displaylists.h"
- #include "assets/kalimari_desert_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture kalimari_desert_textures[];
+#include "assets/kalimari_desert_vertices.h"
+#include "assets/kalimari_desert_displaylists.h"
+#include "assets/kalimari_desert_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture kalimari_desert_textures[];
}
class KalimariDesert : public Course {
-public:
- virtual ~KalimariDesert() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~KalimariDesert() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit KalimariDesert();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
@@ -37,7 +37,7 @@ public:
virtual void RenderCredits() override;
virtual void Destroy() override;
-private:
+ private:
size_t _numTrains = 2;
size_t _numCarriages = 5;
ATrain::TenderStatus _tender = ATrain::TenderStatus::HAS_TENDER;
diff --git a/src/engine/courses/KoopaTroopaBeach.cpp b/src/engine/courses/KoopaTroopaBeach.cpp
index fff1b7b55..9d39bd25c 100644
--- a/src/engine/courses/KoopaTroopaBeach.cpp
+++ b/src/engine/courses/KoopaTroopaBeach.cpp
@@ -12,29 +12,29 @@
#include "assets/koopa_troopa_beach_data.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "code_8003DC40.h"
- #include "memory.h"
- #include "course.h"
- extern const char *koopa_troopa_beach_dls[];
- extern s8 gPlayerCount;
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "code_8003DC40.h"
+#include "memory.h"
+#include "course.h"
+extern const char* koopa_troopa_beach_dls[];
+extern s8 gPlayerCount;
}
const course_texture koopa_troopa_beach_textures[] = {
@@ -86,7 +86,7 @@ KoopaTroopaBeach::KoopaTroopaBeach() {
Props.NearPersp = 1.0f;
Props.FarPersp = 5000.0f;
- Props.PathSizes = {0x2BC, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x2BC, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -108,13 +108,13 @@ KoopaTroopaBeach::KoopaTroopaBeach() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_koopa_troopa_beach_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_koopa_troopa_beach_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_koopa_troopa_beach_track_waypoints);
- Props.PathTable2[1] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_koopa_troopa_beach_track_waypoints_2);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_koopa_troopa_beach_track_waypoints);
+ Props.PathTable2[1] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_koopa_troopa_beach_track_waypoints_2);
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -122,30 +122,30 @@ KoopaTroopaBeach::KoopaTroopaBeach() {
Props.Clouds = gKoopaTroopaBeachClouds;
Props.CloudList = gKoopaTroopaBeachClouds;
- Props.Skybox.TopRight = {48, 152, 120};
- Props.Skybox.BottomRight = {216, 232, 248};
- Props.Skybox.BottomLeft = {216, 232, 248};
- Props.Skybox.TopLeft = {48, 152, 120};
- Props.Skybox.FloorTopRight = {48, 152, 120};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {48, 152, 120};
+ Props.Skybox.TopRight = { 48, 152, 120 };
+ Props.Skybox.BottomRight = { 216, 232, 248 };
+ Props.Skybox.BottomLeft = { 216, 232, 248 };
+ Props.Skybox.TopLeft = { 48, 152, 120 };
+ Props.Skybox.FloorTopRight = { 48, 152, 120 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 48, 152, 120 };
Props.Sequence = MusicSeq::MUSIC_SEQ_KOOPA_TROOPA_BEACH;
Props.WaterLevel = 0.0f;
gWaterVelocity = -0.1f;
- WaterVolumes.push_back({0.8f, 67.0f, 239.0f, 2233.0f, 2405.0f});
+ WaterVolumes.push_back({ 0.8f, 67.0f, 239.0f, 2233.0f, 2405.0f });
}
void KoopaTroopaBeach::Load() {
Course::Load();
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_koopa_troopa_beach_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_koopa_troopa_beach_addr));
func_80295C6C();
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x0700ADE0), -0x6A, 255, 255, 255);
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x0700A540), -0x6A, 255, 255, 255);
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07009E70), -0x6A, 255, 255, 255);
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07000358), -0x6A, 255, 255, 255);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x0700ADE0), -0x6A, 255, 255, 255);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x0700A540), -0x6A, 255, 255, 255);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07009E70), -0x6A, 255, 255, 255);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07000358), -0x6A, 255, 255, 255);
}
void KoopaTroopaBeach::LoadTextures() {
@@ -153,8 +153,8 @@ void KoopaTroopaBeach::LoadTextures() {
void KoopaTroopaBeach::BeginPlay() {
init_actor_hot_air_balloon_item_box(328.0f * gCourseDirection, 70.0f, 2541.0f);
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_koopa_troopa_beach_item_box_spawns));
- spawn_palm_trees((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_koopa_troopa_beach_tree_spawn));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_koopa_troopa_beach_item_box_spawns));
+ spawn_palm_trees((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_koopa_troopa_beach_tree_spawn));
if (gGamestate != CREDITS_SEQUENCE) {
gWorldInstance.AddObject(new OCrab(FVector2D(-1809, 625), FVector2D(-1666, 594)));
@@ -201,24 +201,24 @@ void KoopaTroopaBeach::InitCourseObjects() {
void KoopaTroopaBeach::UpdateCourseObjects() {
if (gGamestate != CREDITS_SEQUENCE) {
- //update_crabs();
+ // update_crabs();
}
if ((gPlayerCount == 1) || (gPlayerCount == 2) || (gGamestate == CREDITS_SEQUENCE)) {
- //update_seagulls();
+ // update_seagulls();
}
}
void KoopaTroopaBeach::RenderCourseObjects(s32 cameraId) {
if (gGamestate != CREDITS_SEQUENCE) {
- //render_object_crabs(cameraId);
+ // render_object_crabs(cameraId);
}
if (gGamestate != CREDITS_SEQUENCE) {
if ((gPlayerCount == 1) || (gPlayerCount == 2)) {
- //render_object_seagulls(cameraId);
+ // render_object_seagulls(cameraId);
}
} else {
- //render_object_seagulls(cameraId);
+ // render_object_seagulls(cameraId);
}
}
@@ -227,9 +227,11 @@ void KoopaTroopaBeach::SomeSounds() {
func_800C9D80(D_8015F738, D_802B91C8, 0x51028001);
}
-void KoopaTroopaBeach::WhatDoesThisDo(Player* player, int8_t playerId) {}
+void KoopaTroopaBeach::WhatDoesThisDo(Player* player, int8_t playerId) {
+}
-void KoopaTroopaBeach::WhatDoesThisDoAI(Player* player, int8_t playerId) {}
+void KoopaTroopaBeach::WhatDoesThisDoAI(Player* player, int8_t playerId) {
+}
void KoopaTroopaBeach::Render(struct UnkStruct_800DC5EC* arg0) {
gDPPipeSync(gDisplayListHead++);
@@ -247,7 +249,7 @@ void KoopaTroopaBeach::Render(struct UnkStruct_800DC5EC* arg0) {
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
// d_course_koopa_troopa_beach_packed_dl_9688
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(reinterpret_cast<void*>(0x07009688)));
- render_course_segments((const char**)d_course_koopa_troopa_beach_dl_list1, arg0);
+ render_course_segments((const char**) d_course_koopa_troopa_beach_dl_list1, arg0);
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
@@ -258,10 +260,11 @@ void KoopaTroopaBeach::Render(struct UnkStruct_800DC5EC* arg0) {
}
void KoopaTroopaBeach::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_koopa_troopa_beach_dl_18D68));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_koopa_troopa_beach_dl_18D68));
}
-void KoopaTroopaBeach::SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) {
+void KoopaTroopaBeach::SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5,
+ f32* arg6, f32* arg7) {
func_8003E37C(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
}
@@ -286,9 +289,9 @@ void KoopaTroopaBeach::ScrollingTextures() {
}
// waterfall animation
// d_course_koopa_troopa_beach_packed_dl_9D58
- find_and_set_tile_size((uintptr_t)segmented_gfx_to_virtual(reinterpret_cast<void*>(0x07009D58)), 0, D_802B87BC);
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual(reinterpret_cast<void*>(0x07009D58)), 0, D_802B87BC);
// d_course_koopa_troopa_beach_packed_dl_9CD0
- find_and_set_tile_size((uintptr_t)segmented_gfx_to_virtual(reinterpret_cast<void*>(0x07009CD0)), 0, D_802B87C4);
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual(reinterpret_cast<void*>(0x07009CD0)), 0, D_802B87C4);
D_802B87CC = random_int(300) / 40;
if (D_802B87C8 < 0) {
D_802B87C8 = random_int(300) / 40;
@@ -297,11 +300,12 @@ void KoopaTroopaBeach::ScrollingTextures() {
}
// Waterfall bubbling effect? (unused)
// d_course_koopa_troopa_beach_packed_dl_2E8
- find_and_set_tile_size((uintptr_t)segmented_gfx_to_virtual(reinterpret_cast<void*>(0x070002E8)), D_802B87C8, D_802B87CC);
-
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual(reinterpret_cast<void*>(0x070002E8)), D_802B87C8,
+ D_802B87CC);
}
-void KoopaTroopaBeach::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) {
+void KoopaTroopaBeach::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) {
Mat4 matrix;
Vec3f vector;
@@ -321,7 +325,7 @@ void KoopaTroopaBeach::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pat
case 37:
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
// d_course_koopa_troopa_beach_packed_dl_9E70
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07009E70));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07009E70));
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
break;
}
@@ -335,11 +339,12 @@ void KoopaTroopaBeach::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pat
gDPSetBlendMask(gDisplayListHead++, 0xFF);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
- render_course_segments((const char**)koopa_troopa_beach_dls2, screen);
+ render_course_segments((const char**) koopa_troopa_beach_dls2, screen);
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 1, 1, G_OFF);
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE);
gDPPipeSync(gDisplayListHead++);
}
-void KoopaTroopaBeach::Destroy() {}
+void KoopaTroopaBeach::Destroy() {
+}
diff --git a/src/engine/courses/KoopaTroopaBeach.h b/src/engine/courses/KoopaTroopaBeach.h
index 7ebd8bac8..4f5ce6e8d 100644
--- a/src/engine/courses/KoopaTroopaBeach.h
+++ b/src/engine/courses/KoopaTroopaBeach.h
@@ -7,26 +7,26 @@
#include "World.h"
extern "C" {
- #include "assets/koopa_troopa_beach_vertices.h"
- #include "assets/koopa_troopa_beach_displaylists.h"
- #include "assets/koopa_troopa_beach_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture koopa_troopa_beach_textures[];
+#include "assets/koopa_troopa_beach_vertices.h"
+#include "assets/koopa_troopa_beach_displaylists.h"
+#include "assets/koopa_troopa_beach_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture koopa_troopa_beach_textures[];
}
class KoopaTroopaBeach : public Course {
-public:
- virtual ~KoopaTroopaBeach() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~KoopaTroopaBeach() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit KoopaTroopaBeach();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
@@ -37,9 +37,11 @@ public:
virtual void WhatDoesThisDo(Player* player, int8_t playerId) override;
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
- virtual void SomeCollisionThing(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7) override;
+ virtual void RenderCredits() override;
+ virtual void SomeCollisionThing(Player* player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32* arg4, f32* arg5, f32* arg6,
+ f32* arg7) override;
virtual void ScrollingTextures() override;
- virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) override;
+ virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/LuigiRaceway.cpp b/src/engine/courses/LuigiRaceway.cpp
index e4ee857a3..fa327f696 100644
--- a/src/engine/courses/LuigiRaceway.cpp
+++ b/src/engine/courses/LuigiRaceway.cpp
@@ -145,7 +145,7 @@ LuigiRaceway::LuigiRaceway() {
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
- Props.CloudTexture = (u8*)LOAD_ASSET_RAW(gTextureExhaust2);
+ Props.CloudTexture = (u8*) LOAD_ASSET_RAW(gTextureExhaust2);
Props.Clouds = gLuigiRacewayClouds;
Props.CloudList = gLuigiRacewayClouds;
diff --git a/src/engine/courses/MarioRaceway.cpp b/src/engine/courses/MarioRaceway.cpp
index 50af0d890..ccfe35921 100644
--- a/src/engine/courses/MarioRaceway.cpp
+++ b/src/engine/courses/MarioRaceway.cpp
@@ -11,29 +11,29 @@
#include "engine/objects/GrandPrixBalloons.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "mario_raceway_data.h"
- #include "collision.h"
- #include "memory.h"
- #include "courses/staff_ghost_data.h"
- #include "course.h"
- extern const char *mario_raceway_dls[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "mario_raceway_data.h"
+#include "collision.h"
+#include "memory.h"
+#include "courses/staff_ghost_data.h"
+#include "course.h"
+extern const char* mario_raceway_dls[];
}
const course_texture mario_raceway_textures[] = {
@@ -101,7 +101,7 @@ MarioRaceway::MarioRaceway() {
Props.NearPersp = 9.0f;
Props.FarPersp = 4500.0f;
- Props.PathSizes = {600, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 600, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -123,12 +123,12 @@ MarioRaceway::MarioRaceway() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_mario_raceway_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_mario_raceway_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_mario_raceway_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_mario_raceway_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -137,36 +137,36 @@ MarioRaceway::MarioRaceway() {
Props.Clouds = gKalimariDesertClouds;
Props.CloudList = gLuigiRacewayClouds;
- Props.Skybox.TopRight = {0, 184, 248};
- Props.Skybox.BottomRight = {216, 232, 248};
- Props.Skybox.BottomLeft = {216, 232, 248};
- Props.Skybox.TopLeft = {0, 184, 248};
- Props.Skybox.FloorTopRight = {0, 0, 0};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {0, 0, 0};
+ Props.Skybox.TopRight = { 0, 184, 248 };
+ Props.Skybox.BottomRight = { 216, 232, 248 };
+ Props.Skybox.BottomLeft = { 216, 232, 248 };
+ Props.Skybox.TopLeft = { 0, 184, 248 };
+ Props.Skybox.FloorTopRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 0, 0, 0 };
Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM;
}
void MarioRaceway::Load() {
Course::Load();
- generate_collision_mesh_with_defaults(segmented_gfx_to_virtual((void*)0x07001140));
-
+ generate_collision_mesh_with_defaults(segmented_gfx_to_virtual((void*) 0x07001140));
+
// Generate pipe collision mesh
if (gScreenModeSelection == SCREEN_MODE_1P) {
// d_course_mario_raceway_packed_dl_8E8
- generate_collision_mesh_with_defaults(segmented_gfx_to_virtual((void*)0x070008E8));
+ generate_collision_mesh_with_defaults(segmented_gfx_to_virtual((void*) 0x070008E8));
} else {
if (CVarGetInteger("gDisableLod", 1) == true) {
- generate_collision_mesh_with_defaults(segmented_gfx_to_virtual((void*)0x070008E8));
+ generate_collision_mesh_with_defaults(segmented_gfx_to_virtual((void*) 0x070008E8));
} else {
// d_course_mario_raceway_packed_dl_2D68
- generate_collision_mesh_with_defaults(segmented_gfx_to_virtual((void*)0x07002D68));
+ generate_collision_mesh_with_defaults(segmented_gfx_to_virtual((void*) 0x07002D68));
}
}
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_mario_raceway_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_mario_raceway_addr));
func_80295C6C();
Props.WaterLevel = gCourseMinY - 10.0f;
}
@@ -190,9 +190,9 @@ void MarioRaceway::BeginPlay() {
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
Vec3s rotation = { 0, 0, 0 };
- spawn_foliage((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_mario_raceway_tree_spawns));
- spawn_piranha_plants((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_mario_raceway_piranha_plant_spawns));
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_mario_raceway_item_box_spawns));
+ spawn_foliage((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_mario_raceway_tree_spawns));
+ spawn_piranha_plants((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_mario_raceway_piranha_plant_spawns));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_mario_raceway_item_box_spawns));
vec3f_set(position, 150.0f, 40.0f, -1300.0f);
position[0] *= gCourseDirection;
add_actor_to_empty_slot(position, rotation, velocity, ACTOR_MARIO_SIGN);
@@ -230,8 +230,7 @@ void MarioRaceway::SomeSounds() {
}
void MarioRaceway::WhatDoesThisDo(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
if (D_80165300[playerId] != 1) {
func_800CA288(playerId, 0x55);
}
@@ -245,8 +244,7 @@ void MarioRaceway::WhatDoesThisDo(Player* player, int8_t playerId) {
}
void MarioRaceway::WhatDoesThisDoAI(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
if (D_80165300[playerId] != 1) {
func_800CA2E4(playerId, 0x55);
}
@@ -378,12 +376,13 @@ void MarioRaceway::Render(struct UnkStruct_800DC5EC* arg0) {
}
void MarioRaceway::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_mario_raceway_dl_9348));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_mario_raceway_dl_9348));
}
void MarioRaceway::CreditsSpawnActors() {
dma_textures(gTextureTrees1, 0x35B, 0x800);
- spawn_foliage((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_mario_raceway_tree_spawns));
+ spawn_foliage((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_mario_raceway_tree_spawns));
}
-void MarioRaceway::Destroy() { }
+void MarioRaceway::Destroy() {
+}
diff --git a/src/engine/courses/MarioRaceway.h b/src/engine/courses/MarioRaceway.h
index e237f1538..ecf23ddd3 100644
--- a/src/engine/courses/MarioRaceway.h
+++ b/src/engine/courses/MarioRaceway.h
@@ -4,26 +4,26 @@
#include "Course.h"
extern "C" {
- #include "mario_raceway_vertices.h"
- #include "mario_raceway_displaylists.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- #include "mario_raceway_data.h"
- extern const course_texture mario_raceway_textures[];
+#include "mario_raceway_vertices.h"
+#include "mario_raceway_displaylists.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+#include "mario_raceway_data.h"
+extern const course_texture mario_raceway_textures[];
}
class MarioRaceway : public Course {
-public:
- virtual ~MarioRaceway() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~MarioRaceway() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit MarioRaceway();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
@@ -33,7 +33,7 @@ public:
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void SetStaffGhost() override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void CreditsSpawnActors() override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/MooMooFarm.cpp b/src/engine/courses/MooMooFarm.cpp
index 304ad2210..90b1cdfd9 100644
--- a/src/engine/courses/MooMooFarm.cpp
+++ b/src/engine/courses/MooMooFarm.cpp
@@ -12,30 +12,30 @@
#include "engine/objects/Mole.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "code_80086E70.h"
- #include "course.h"
- extern const char *moo_moo_farm_dls[];
- extern s16 currentScreenSection;
- extern s8 gPlayerCount;
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "code_80086E70.h"
+#include "course.h"
+extern const char* moo_moo_farm_dls[];
+extern s16 currentScreenSection;
+extern s8 gPlayerCount;
}
const course_texture moo_moo_farm_textures[] = {
@@ -98,7 +98,7 @@ MooMooFarm::MooMooFarm() {
Props.NearPersp = 9.0f;
Props.FarPersp = 4500.0f;
- Props.PathSizes = {0x230, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x230, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -120,12 +120,12 @@ MooMooFarm::MooMooFarm() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_moo_moo_farm_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_moo_moo_farm_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_moo_moo_farm_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_moo_moo_farm_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -134,21 +134,21 @@ MooMooFarm::MooMooFarm() {
Props.Clouds = gYoshiValleyMooMooFarmClouds;
Props.CloudList = gYoshiValleyMooMooFarmClouds;
- Props.Skybox.TopRight = {0, 18, 255};
- Props.Skybox.BottomRight = {197, 211, 255};
- Props.Skybox.BottomLeft = {197, 211, 255};
- Props.Skybox.TopLeft = {0, 18, 255};
- Props.Skybox.FloorTopRight = {255, 184, 99};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {255, 184, 99};
+ Props.Skybox.TopRight = { 0, 18, 255 };
+ Props.Skybox.BottomRight = { 197, 211, 255 };
+ Props.Skybox.BottomLeft = { 197, 211, 255 };
+ Props.Skybox.TopLeft = { 0, 18, 255 };
+ Props.Skybox.FloorTopRight = { 255, 184, 99 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 255, 184, 99 };
Props.Sequence = MusicSeq::MUSIC_SEQ_MOO_MOO_FARM_YOSHI_VALLEY;
}
void MooMooFarm::Load() {
Course::Load();
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_moo_moo_farm_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_moo_moo_farm_addr));
func_80295C6C();
Props.WaterLevel = gCourseMinY - 10.0f;
}
@@ -170,57 +170,34 @@ void MooMooFarm::LoadTextures() {
// These are full arrays that are not used in the original game
static std::vector<FVector> sMoleSpawns1 = {
- { FVector(771, 20, -2022) },
- { FVector(807, 15, -2063) },
- { FVector(847, 18, -2040) },
- { FVector(913, 14, -2054) },
- { FVector(939, 21, -1997) },
- { FVector(941, 17, -2024) },
- { FVector(994, 17, -1994) },
- { FVector(863, 22, -2010) },
+ { FVector(771, 20, -2022) }, { FVector(807, 15, -2063) }, { FVector(847, 18, -2040) }, { FVector(913, 14, -2054) },
+ { FVector(939, 21, -1997) }, { FVector(941, 17, -2024) }, { FVector(994, 17, -1994) }, { FVector(863, 22, -2010) },
};
static std::vector<FVector> sMoleSpawns2 = {
- { FVector(1500, 2, 1140) },
- { FVector(1510, 15, 1050) },
- { FVector(1609, 21, 935) },
- { FVector(1289, 3, 1269) },
- { FVector(1468, 22, 1046) },
- { FVector(1380, 12, 1154) },
- { FVector(1297, 19, 1170) },
- { FVector(1589, 11, 1004) },
- { FVector(1414, 3, 1185) },
- { FVector(1405, 4, 1254) },
- { FVector(1463, 8, 1118) },
+ { FVector(1500, 2, 1140) }, { FVector(1510, 15, 1050) }, { FVector(1609, 21, 935) }, { FVector(1289, 3, 1269) },
+ { FVector(1468, 22, 1046) }, { FVector(1380, 12, 1154) }, { FVector(1297, 19, 1170) }, { FVector(1589, 11, 1004) },
+ { FVector(1414, 3, 1185) }, { FVector(1405, 4, 1254) }, { FVector(1463, 8, 1118) },
};
static std::vector<FVector> sMoleSpawns3 = {
- { FVector(701, 2, 1279) },
- { FVector(811, 8, 1278) },
- { FVector(791, 16, 1229) },
- { FVector(876, 15, 1266) },
- { FVector(984, 23, 1248) },
- { FVector(891, 20, 1242) },
- { FVector(920, 15, 1304) },
- { FVector(823, 6, 1327) },
- { FVector(717, 8, 1239) },
- { FVector(695, 19, 1176) },
- { FVector(628, 8, 1191) },
- { FVector(724, 4, 1339) },
+ { FVector(701, 2, 1279) }, { FVector(811, 8, 1278) }, { FVector(791, 16, 1229) }, { FVector(876, 15, 1266) },
+ { FVector(984, 23, 1248) }, { FVector(891, 20, 1242) }, { FVector(920, 15, 1304) }, { FVector(823, 6, 1327) },
+ { FVector(717, 8, 1239) }, { FVector(695, 19, 1176) }, { FVector(628, 8, 1191) }, { FVector(724, 4, 1339) },
};
void MooMooFarm::BeginPlay() {
if (gPlayerCountSelection1 != 4) {
- spawn_foliage((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_moo_moo_farm_tree_spawn));
+ spawn_foliage((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_moo_moo_farm_tree_spawn));
}
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_moo_moo_farm_item_box_spawns));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_moo_moo_farm_item_box_spawns));
for (size_t i = 0; i < gObjectParticle2_SIZE; i++) {
find_unused_obj_index(&gObjectParticle2[i]);
}
if (gGamestate != CREDITS_SEQUENCE) {
- switch(gCCSelection) {
+ switch (gCCSelection) {
case CC_50: {
std::vector<FVector> moleSpawns1_50 = { { FVector(771, 20, -2022) },
{ FVector(807, 15, -2063) },
@@ -332,8 +309,7 @@ void MooMooFarm::BeginPlay() {
}
void MooMooFarm::WhatDoesThisDo(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x145) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x18B)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x145) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x18B)) {
if (D_80165300[playerId] != 1) {
func_800CA288(playerId, 0x55);
}
@@ -347,8 +323,7 @@ void MooMooFarm::WhatDoesThisDo(Player* player, int8_t playerId) {
}
void MooMooFarm::WhatDoesThisDoAI(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x145) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x18B)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x145) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x18B)) {
if (D_80165300[playerId] != 1) {
func_800CA2E4(playerId, 0x55);
}
@@ -372,28 +347,28 @@ void MooMooFarm::Render(struct UnkStruct_800DC5EC* arg0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
// d_course_moo_moo_farm_packed_dl_4DF8
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07004DF8));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07004DF8));
// d_course_moo_moo_farm_packed_dl_5640
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07005640));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07005640));
gSPFogPosition(gDisplayListHead++, D_802B87B0, D_802B87B4);
render_course_segments(moo_moo_farm_dls, arg0);
if ((temp_s0 < 14) && (temp_s0 > 10)) {
if ((temp_s1 == 2) || (temp_s1 == 3) || (temp_s1 == 1)) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_moo_moo_farm_dl_13FF8);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_moo_moo_farm_dl_13FF8);
}
} else if (temp_s0 < 16) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_moo_moo_farm_dl_13FF8);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_moo_moo_farm_dl_13FF8);
} else if (temp_s0 < 19) {
if (temp_s1 != 2) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_moo_moo_farm_dl_13FF8);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_moo_moo_farm_dl_13FF8);
}
} else if (temp_s0 < 20) {
if (temp_s1 == 0) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_moo_moo_farm_dl_13FF8);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_moo_moo_farm_dl_13FF8);
}
}
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
@@ -402,40 +377,40 @@ void MooMooFarm::Render(struct UnkStruct_800DC5EC* arg0) {
if ((temp_s0 >= 16) && (temp_s0 < 24)) {
if ((temp_s1 == 2) || (temp_s1 == 3)) {
// d_course_moo_moo_farm_packed_dl_5410
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07005410));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07005410));
}
} else if (temp_s0 < 9) {
if (temp_s1 == 2) {
// d_course_moo_moo_farm_packed_dl_5410
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07005410));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07005410));
}
}
if (temp_s0 < 4) {
if (temp_s1 != 0) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_moo_moo_farm_dl_14060);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_moo_moo_farm_dl_14060);
}
} else if (temp_s0 < 8) {
if (temp_s1 == 2) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_moo_moo_farm_dl_14060);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_moo_moo_farm_dl_14060);
}
} else if (temp_s0 >= 22) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_moo_moo_farm_dl_14060);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_moo_moo_farm_dl_14060);
} else if (temp_s0 >= 18) {
if ((temp_s1 == 0) || (temp_s1 == 3)) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_moo_moo_farm_dl_14060);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_moo_moo_farm_dl_14060);
}
}
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
// d_course_moo_moo_farm_packed_dl_10C0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x070010C0));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x070010C0));
}
void MooMooFarm::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_moo_moo_farm_dl_14088));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_moo_moo_farm_dl_14088));
}
void MooMooFarm::CreditsSpawnActors() {
@@ -454,4 +429,5 @@ void MooMooFarm::CreditsSpawnActors() {
spawn_foliage((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_moo_moo_farm_tree_spawn));
}
-void MooMooFarm::Destroy() { }
+void MooMooFarm::Destroy() {
+}
diff --git a/src/engine/courses/MooMooFarm.h b/src/engine/courses/MooMooFarm.h
index 3c18e5024..46f96159d 100644
--- a/src/engine/courses/MooMooFarm.h
+++ b/src/engine/courses/MooMooFarm.h
@@ -5,35 +5,35 @@
#include "engine/objects/Mole.h"
extern "C" {
- #include "assets/moo_moo_farm_vertices.h"
- #include "assets/moo_moo_farm_displaylists.h"
- #include "assets/moo_moo_farm_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture moo_moo_farm_textures[];
+#include "assets/moo_moo_farm_vertices.h"
+#include "assets/moo_moo_farm_displaylists.h"
+#include "assets/moo_moo_farm_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture moo_moo_farm_textures[];
}
class OMole;
class MooMooFarm : public Course {
-public:
- virtual ~MooMooFarm() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~MooMooFarm() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit MooMooFarm();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
virtual void WhatDoesThisDo(Player* player, int8_t playerId) override;
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void CreditsSpawnActors() override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/PodiumCeremony.cpp b/src/engine/courses/PodiumCeremony.cpp
index a4c01f588..7748cd73f 100644
--- a/src/engine/courses/PodiumCeremony.cpp
+++ b/src/engine/courses/PodiumCeremony.cpp
@@ -15,29 +15,29 @@
#include "engine/objects/GrandPrixBalloons.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "courses/staff_ghost_data.h"
- #include "podium_ceremony_actors.h"
- #include "course.h"
- extern const char *royal_raceway_dls[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "courses/staff_ghost_data.h"
+#include "podium_ceremony_actors.h"
+#include "course.h"
+extern const char* royal_raceway_dls[];
}
const course_texture podium_ceremony_textures[] = {
@@ -111,7 +111,7 @@ PodiumCeremony::PodiumCeremony() {
Props.AIMinimumSeparation = 0.4f;
Props.AISteeringSensitivity = 53;
- Props.PathSizes = {500, 500, 500, 500, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 500, 500, 500, 500, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -133,10 +133,10 @@ PodiumCeremony::PodiumCeremony() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(podium_ceremony_path);
- Props.PathTable[1] = (TrackWaypoint*)LOAD_ASSET_RAW(podium_ceremony_path_2);
- Props.PathTable[2] = (TrackWaypoint*)LOAD_ASSET_RAW(podium_ceremony_path_3);
- Props.PathTable[3] = (TrackWaypoint*)LOAD_ASSET_RAW(podium_ceremony_path_4);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(podium_ceremony_path);
+ Props.PathTable[1] = (TrackWaypoint*) LOAD_ASSET_RAW(podium_ceremony_path_2);
+ Props.PathTable[2] = (TrackWaypoint*) LOAD_ASSET_RAW(podium_ceremony_path_3);
+ Props.PathTable[3] = (TrackWaypoint*) LOAD_ASSET_RAW(podium_ceremony_path_4);
Props.PathTable2[0] = NULL;
Props.PathTable2[1] = NULL;
@@ -147,14 +147,14 @@ PodiumCeremony::PodiumCeremony() {
Props.Clouds = NULL; // no clouds
Props.CloudList = NULL;
- Props.Skybox.TopRight = {238, 144, 255};
- Props.Skybox.BottomRight = {255, 224, 240};
- Props.Skybox.BottomLeft = {255, 224, 240};
- Props.Skybox.TopLeft = {238, 144, 255};
- Props.Skybox.FloorTopRight = {255, 224, 240};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {255, 224, 240};
+ Props.Skybox.TopRight = { 238, 144, 255 };
+ Props.Skybox.BottomRight = { 255, 224, 240 };
+ Props.Skybox.BottomLeft = { 255, 224, 240 };
+ Props.Skybox.TopLeft = { 238, 144, 255 };
+ Props.Skybox.FloorTopRight = { 255, 224, 240 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 255, 224, 240 };
Props.Sequence = MusicSeq::MUSIC_SEQ_UNKNOWN;
Props.WaterLevel = -60.0f;
@@ -163,7 +163,7 @@ PodiumCeremony::PodiumCeremony() {
void PodiumCeremony::Load() {
Course::Load();
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_royal_raceway_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_royal_raceway_addr));
func_80295C6C();
}
@@ -171,17 +171,18 @@ void PodiumCeremony::LoadTextures() {
}
void PodiumCeremony::BeginPlay() {
- spawn_foliage((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_royal_raceway_tree_spawn));
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_royal_raceway_item_box_spawns));
- spawn_piranha_plants((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_royal_raceway_piranha_plant_spawn));
+ spawn_foliage((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_royal_raceway_tree_spawn));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_royal_raceway_item_box_spawns));
+ spawn_piranha_plants((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_royal_raceway_piranha_plant_spawn));
- gWorldInstance.AddObject(new OCheepCheep(FVector((f32)-3202, (f32)19, (f32)-478), OCheepCheep::CheepType::PODIUM_CEREMONY, IPathSpan(0, 0)));
- gWorldInstance.AddObject(new OPodium(FVector((f32)-3202, (f32)19, (f32)-478)));
-
- FVector pos = {0, 90.0f, 0};
+ gWorldInstance.AddObject(new OCheepCheep(FVector((f32) -3202, (f32) 19, (f32) -478),
+ OCheepCheep::CheepType::PODIUM_CEREMONY, IPathSpan(0, 0)));
+ gWorldInstance.AddObject(new OPodium(FVector((f32) -3202, (f32) 19, (f32) -478)));
+
+ FVector pos = { 0, 90.0f, 0 };
OTrophy::TrophyType type = OTrophy::TrophyType::BRONZE;
- switch(D_802874D8.unk1D) {
+ switch (D_802874D8.unk1D) {
case 2: // Bronze
type = gCCSelection == CC_150 ? OTrophy::TrophyType::BRONZE_150 : OTrophy::TrophyType::BRONZE;
break;
@@ -197,7 +198,8 @@ void PodiumCeremony::BeginPlay() {
break;
}
- OTrophy* trophy = reinterpret_cast<OTrophy*>(gWorldInstance.AddObject(new OTrophy(pos, type, OTrophy::Behaviour::PODIUM_CEREMONY)));
+ OTrophy* trophy = reinterpret_cast<OTrophy*>(
+ gWorldInstance.AddObject(new OTrophy(pos, type, OTrophy::Behaviour::PODIUM_CEREMONY)));
FVector kart = { 0, 0, 0 };
gWorldInstance.AddObject(new OBombKart(kart, &D_80164550[3][3], 3, 5, 1.25f));
@@ -226,8 +228,7 @@ void PodiumCeremony::SomeSounds() {
}
void PodiumCeremony::WhatDoesThisDo(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
if (D_80165300[playerId] != 1) {
func_800CA288(playerId, 0x41);
}
@@ -241,8 +242,7 @@ void PodiumCeremony::WhatDoesThisDo(Player* player, int8_t playerId) {
}
void PodiumCeremony::WhatDoesThisDoAI(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
if (D_80165300[playerId] != 1) {
func_800CA2E4(playerId, 0x41);
}
@@ -285,7 +285,8 @@ void PodiumCeremony::Render(struct UnkStruct_800DC5EC* arg0) {
}
void PodiumCeremony::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_royal_raceway_dl_D8E8));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_royal_raceway_dl_D8E8));
}
-void PodiumCeremony::Destroy() { }
+void PodiumCeremony::Destroy() {
+}
diff --git a/src/engine/courses/PodiumCeremony.h b/src/engine/courses/PodiumCeremony.h
index 6026d7f9f..e99bc2ee4 100644
--- a/src/engine/courses/PodiumCeremony.h
+++ b/src/engine/courses/PodiumCeremony.h
@@ -5,35 +5,35 @@
#include "Course.h"
extern "C" {
- #include "assets/royal_raceway_vertices.h"
- #include "assets/royal_raceway_displaylists.h"
- #include "assets/royal_raceway_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture royal_raceway_textures[];
+#include "assets/royal_raceway_vertices.h"
+#include "assets/royal_raceway_displaylists.h"
+#include "assets/royal_raceway_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture royal_raceway_textures[];
}
class PodiumCeremony : public Course {
-public:
- virtual ~PodiumCeremony() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~PodiumCeremony() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit PodiumCeremony();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
- //virtual void InitClouds() override;
+ // virtual void InitClouds() override;
virtual void InitCourseObjects() override;
virtual void SomeSounds() override;
virtual void WhatDoesThisDo(Player* player, int8_t playerId) override;
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/RainbowRoad.cpp b/src/engine/courses/RainbowRoad.cpp
index 7c60d3af3..ae85c280d 100644
--- a/src/engine/courses/RainbowRoad.cpp
+++ b/src/engine/courses/RainbowRoad.cpp
@@ -11,27 +11,27 @@
#include "assets/rainbow_road_data.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "course.h"
- extern const char *rainbow_road_dls[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "course.h"
+extern const char* rainbow_road_dls[];
}
const course_texture rainbow_road_textures[] = {
@@ -43,7 +43,6 @@ const course_texture rainbow_road_textures[] = {
{ 0x00000000, 0x0000, 0x0000, 0x0 },
};
-
RainbowRoad::RainbowRoad() {
this->vtx = d_course_rainbow_road_vertex;
this->gfx = d_course_rainbow_road_packed_dls;
@@ -72,7 +71,7 @@ RainbowRoad::RainbowRoad() {
Props.NearPersp = 2.0f;
Props.FarPersp = 2700.0f;
- Props.PathSizes = {0x76C, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x76C, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -94,12 +93,12 @@ RainbowRoad::RainbowRoad() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_rainbow_road_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_rainbow_road_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_rainbow_road_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_rainbow_road_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -107,16 +106,16 @@ RainbowRoad::RainbowRoad() {
Props.Clouds = gToadsTurnpikeRainbowRoadStars;
Props.CloudList = gToadsTurnpikeRainbowRoadStars;
- Props.Skybox.TopRight = {0, 0, 0};
- Props.Skybox.BottomRight = {0, 0, 0};
- Props.Skybox.BottomLeft = {0, 0, 0};
- Props.Skybox.TopLeft = {0, 0, 0};
- Props.Skybox.FloorTopRight = {0, 0, 0};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {0, 0, 0};
+ Props.Skybox.TopRight = { 0, 0, 0 };
+ Props.Skybox.BottomRight = { 0, 0, 0 };
+ Props.Skybox.BottomLeft = { 0, 0, 0 };
+ Props.Skybox.TopLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 0, 0, 0 };
Props.Sequence = MusicSeq::MUSIC_SEQ_RAINBOW_ROAD;
-
+
Props.WaterLevel = 0.0f;
}
@@ -124,17 +123,17 @@ void RainbowRoad::Load() {
Course::Load();
D_800DC5C8 = 1;
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_rainbow_road_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_rainbow_road_addr));
func_80295C6C();
// d_course_rainbow_road_packed_dl_2068
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07002068), -0x6A, 255, 255, 255);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07002068), -0x6A, 255, 255, 255);
// d_course_rainbow_road_packed_dl_1E18
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07001E18), -0x6A, 255, 255, 255);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07001E18), -0x6A, 255, 255, 255);
// d_course_rainbow_road_packed_dl_1318
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07001318), 255, 255, 255, 0);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07001318), 255, 255, 255, 0);
if (gGamestate != CREDITS_SEQUENCE) {
// d_course_rainbow_road_packed_dl_1FB8
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07001FB8), -0x6A, 255, 255, 255);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07001FB8), -0x6A, 255, 255, 255);
}
}
@@ -142,7 +141,7 @@ void RainbowRoad::LoadTextures() {
}
void RainbowRoad::BeginPlay() {
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_rainbow_road_item_box_spawns));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_rainbow_road_item_box_spawns));
if (gGamestate != CREDITS_SEQUENCE) {
gWorldInstance.AddObject(new OChainChomp());
@@ -187,23 +186,25 @@ void RainbowRoad::InitCourseObjects() {
void RainbowRoad::UpdateCourseObjects() {
if (gGamestate != CREDITS_SEQUENCE) {
update_neon();
- //update_chain_chomps();
+ // update_chain_chomps();
}
}
void RainbowRoad::RenderCourseObjects(s32 cameraId) {
if (gGamestate != CREDITS_SEQUENCE) {
render_object_neon(cameraId);
- //render_object_chain_chomps(cameraId);
+ // render_object_chain_chomps(cameraId);
}
}
void RainbowRoad::SomeSounds() {
}
-void RainbowRoad::WhatDoesThisDo(Player* player, int8_t playerId) {}
+void RainbowRoad::WhatDoesThisDo(Player* player, int8_t playerId) {
+}
-void RainbowRoad::WhatDoesThisDoAI(Player* player, int8_t playerId) {}
+void RainbowRoad::WhatDoesThisDoAI(Player* player, int8_t playerId) {
+}
void RainbowRoad::Render(struct UnkStruct_800DC5EC* arg0) {
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
@@ -214,14 +215,15 @@ void RainbowRoad::Render(struct UnkStruct_800DC5EC* arg0) {
}
void RainbowRoad::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_rainbow_road_dl_16220));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_rainbow_road_dl_16220));
}
void RainbowRoad::Waypoints(Player* player, int8_t playerId) {
player->nearestWaypointId = gCopyNearestWaypointByPlayerId[playerId];
}
-void RainbowRoad::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) {
+void RainbowRoad::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) {
Mat4 matrix;
gDPPipeSync(gDisplayListHead++);
@@ -236,11 +238,12 @@ void RainbowRoad::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCoun
void RainbowRoad::CreditsSpawnActors() {
// d_course_rainbow_road_packed_dl_2068
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07002068), -0x6A, 0xFF, 0xFF, 0xFF);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07002068), -0x6A, 0xFF, 0xFF, 0xFF);
// d_course_rainbow_road_packed_dl_1E18
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07001E18), -0x6A, 0xFF, 0xFF, 0xFF);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07001E18), -0x6A, 0xFF, 0xFF, 0xFF);
// d_course_rainbow_road_packed_dl_1318
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07001318), -1, 0xFF, 0xFF, 0);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07001318), -1, 0xFF, 0xFF, 0);
}
-void RainbowRoad::Destroy() {}
+void RainbowRoad::Destroy() {
+}
diff --git a/src/engine/courses/RainbowRoad.h b/src/engine/courses/RainbowRoad.h
index 282655ace..962584eae 100644
--- a/src/engine/courses/RainbowRoad.h
+++ b/src/engine/courses/RainbowRoad.h
@@ -4,26 +4,26 @@
#include "Course.h"
extern "C" {
- #include "assets/rainbow_road_vertices.h"
- #include "assets/rainbow_road_displaylists.h"
- #include "assets/rainbow_road_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture rainbow_road_textures[];
+#include "assets/rainbow_road_vertices.h"
+#include "assets/rainbow_road_displaylists.h"
+#include "assets/rainbow_road_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture rainbow_road_textures[];
}
class RainbowRoad : public Course {
-public:
- virtual ~RainbowRoad() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~RainbowRoad() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit RainbowRoad();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
@@ -36,9 +36,10 @@ public:
virtual void WhatDoesThisDo(Player* player, int8_t playerId) override;
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void Waypoints(Player* player, int8_t playerId) override;
- virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) override;
+ virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) override;
virtual void CreditsSpawnActors() override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/RoyalRaceway.cpp b/src/engine/courses/RoyalRaceway.cpp
index 849087c3f..97f3acc49 100644
--- a/src/engine/courses/RoyalRaceway.cpp
+++ b/src/engine/courses/RoyalRaceway.cpp
@@ -11,28 +11,28 @@
#include "engine/objects/GrandPrixBalloons.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "courses/staff_ghost_data.h"
- #include "course.h"
- extern const char *royal_raceway_dls[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "courses/staff_ghost_data.h"
+#include "course.h"
+extern const char* royal_raceway_dls[];
}
const course_texture royal_raceway_textures[] = {
@@ -110,7 +110,7 @@ RoyalRaceway::RoyalRaceway() {
Props.NearPersp = 9.0f;
Props.FarPersp = 4500.0f;
- Props.PathSizes = {0x3E8, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x3E8, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -132,12 +132,12 @@ RoyalRaceway::RoyalRaceway() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_royal_raceway_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_royal_raceway_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_royal_raceway_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_royal_raceway_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -146,14 +146,14 @@ RoyalRaceway::RoyalRaceway() {
Props.Clouds = gRoyalRacewayClouds;
Props.CloudList = gRoyalRacewayClouds;
- Props.Skybox.TopRight = {238, 144, 255};
- Props.Skybox.BottomRight = {255, 224, 240};
- Props.Skybox.BottomLeft = {255, 224, 240};
- Props.Skybox.TopLeft = {238, 144, 255};
- Props.Skybox.FloorTopRight = {255, 224, 240};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {255, 224, 240};
+ Props.Skybox.TopRight = { 238, 144, 255 };
+ Props.Skybox.BottomRight = { 255, 224, 240 };
+ Props.Skybox.BottomLeft = { 255, 224, 240 };
+ Props.Skybox.TopLeft = { 238, 144, 255 };
+ Props.Skybox.FloorTopRight = { 255, 224, 240 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 255, 224, 240 };
Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM;
Props.WaterLevel = -60.0f;
@@ -162,7 +162,7 @@ RoyalRaceway::RoyalRaceway() {
void RoyalRaceway::Load() {
Course::Load();
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_royal_raceway_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_royal_raceway_addr));
func_80295C6C();
}
@@ -181,9 +181,9 @@ void RoyalRaceway::LoadTextures() {
}
void RoyalRaceway::BeginPlay() {
- spawn_foliage((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_royal_raceway_tree_spawn));
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_royal_raceway_item_box_spawns));
- spawn_piranha_plants((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_royal_raceway_piranha_plant_spawn));
+ spawn_foliage((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_royal_raceway_tree_spawn));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_royal_raceway_item_box_spawns));
+ spawn_piranha_plants((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_royal_raceway_piranha_plant_spawn));
if (gModeSelection == VERSUS) {
FVector pos = { 0, 0, 0 };
@@ -211,8 +211,7 @@ void RoyalRaceway::InitCourseObjects() {
}
void RoyalRaceway::WhatDoesThisDo(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
if (D_80165300[playerId] != 1) {
func_800CA288(playerId, 0x41);
}
@@ -226,8 +225,7 @@ void RoyalRaceway::WhatDoesThisDo(Player* player, int8_t playerId) {
}
void RoyalRaceway::WhatDoesThisDoAI(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x180) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1E1)) {
if (D_80165300[playerId] != 1) {
func_800CA2E4(playerId, 0x41);
}
@@ -283,7 +281,7 @@ void RoyalRaceway::Render(struct UnkStruct_800DC5EC* arg0) {
}
void RoyalRaceway::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_royal_raceway_dl_D8E8));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_royal_raceway_dl_D8E8));
}
void RoyalRaceway::Waypoints(Player* player, int8_t playerId) {
@@ -304,7 +302,7 @@ void RoyalRaceway::ScrollingTextures() {
D_802B87BC = 0xFF;
}
// d_course_royal_raceway_packed_dl_A6A8
- find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*)0x0700A6A8), 0, D_802B87BC);
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*) 0x0700A6A8), 0, D_802B87BC);
// d_course_royal_raceway_packed_dl_A648
- find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*)0x0700A648), 0, D_802B87BC);
+ find_and_set_tile_size((uintptr_t) segmented_gfx_to_virtual((void*) 0x0700A648), 0, D_802B87BC);
}
diff --git a/src/engine/courses/RoyalRaceway.h b/src/engine/courses/RoyalRaceway.h
index 7fe973edd..328378752 100644
--- a/src/engine/courses/RoyalRaceway.h
+++ b/src/engine/courses/RoyalRaceway.h
@@ -4,26 +4,26 @@
#include "Course.h"
extern "C" {
- #include "assets/royal_raceway_vertices.h"
- #include "assets/royal_raceway_displaylists.h"
- #include "assets/royal_raceway_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture royal_raceway_textures[];
+#include "assets/royal_raceway_vertices.h"
+#include "assets/royal_raceway_displaylists.h"
+#include "assets/royal_raceway_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture royal_raceway_textures[];
}
class RoyalRaceway : public Course {
-public:
- virtual ~RoyalRaceway() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~RoyalRaceway() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit RoyalRaceway();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
@@ -32,7 +32,7 @@ public:
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void SetStaffGhost() override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void ScrollingTextures() override;
virtual void Waypoints(Player* player, int8_t playerId) override;
};
diff --git a/src/engine/courses/SherbetLand.cpp b/src/engine/courses/SherbetLand.cpp
index 7eb7e958c..8a9c66e5c 100644
--- a/src/engine/courses/SherbetLand.cpp
+++ b/src/engine/courses/SherbetLand.cpp
@@ -11,28 +11,28 @@
#include "engine/objects/Penguin.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "course.h"
- extern const char *sherbet_land_dls[];
- extern const char *sherbet_land_dls_2[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "course.h"
+extern const char* sherbet_land_dls[];
+extern const char* sherbet_land_dls_2[];
}
const course_texture sherbet_land_textures[] = {
@@ -59,13 +59,13 @@ SherbetLand::SherbetLand() {
Props.Minimap.PlayerScaleFactor = 0.015f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
- Props.Minimap.Colour = {72, 100, 255};
+ Props.Minimap.Colour = { 72, 100, 255 };
Props.SetText(Props.Name, "sherbet land", sizeof(Props.Name));
Props.SetText(Props.DebugName, "sherbet", sizeof(Props.DebugName));
Props.SetText(Props.CourseLength, "756m", sizeof(Props.CourseLength));
- Props.LakituTowType = (s32)OLakitu::LakituTowType::ICE;
+ Props.LakituTowType = (s32) OLakitu::LakituTowType::ICE;
Props.AIBehaviour = D_0D009280;
Props.AIMaximumSeparation = 50.0f;
@@ -75,7 +75,7 @@ SherbetLand::SherbetLand() {
Props.NearPersp = 9.0f;
Props.FarPersp = 4500.0f;
- Props.PathSizes = {0x2BC, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x2BC, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -97,12 +97,12 @@ SherbetLand::SherbetLand() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_sherbet_land_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_sherbet_land_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_sherbet_land_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_sherbet_land_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -111,14 +111,14 @@ SherbetLand::SherbetLand() {
Props.Clouds = gSherbetLandClouds;
Props.CloudList = gSherbetLandClouds;
- Props.Skybox.TopRight = {128, 184, 248};
- Props.Skybox.BottomRight = {216, 232, 248};
- Props.Skybox.BottomLeft = {216, 232, 248};
- Props.Skybox.TopLeft = {128, 184, 248};
- Props.Skybox.FloorTopRight = {216, 232, 248};
- Props.Skybox.FloorBottomRight = {128, 184, 248};
- Props.Skybox.FloorBottomLeft = {128, 184, 248};
- Props.Skybox.FloorTopLeft = {216, 232, 248};
+ Props.Skybox.TopRight = { 128, 184, 248 };
+ Props.Skybox.BottomRight = { 216, 232, 248 };
+ Props.Skybox.BottomLeft = { 216, 232, 248 };
+ Props.Skybox.TopLeft = { 128, 184, 248 };
+ Props.Skybox.FloorTopRight = { 216, 232, 248 };
+ Props.Skybox.FloorBottomRight = { 128, 184, 248 };
+ Props.Skybox.FloorBottomLeft = { 128, 184, 248 };
+ Props.Skybox.FloorTopLeft = { 216, 232, 248 };
Props.Sequence = MusicSeq::MUSIC_SEQ_FRAPPE_SNOWLAND;
Props.WaterLevel = -18.0f;
@@ -127,12 +127,12 @@ SherbetLand::SherbetLand() {
void SherbetLand::Load() {
Course::Load();
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_sherbet_land_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_sherbet_land_addr));
func_80295C6C();
// d_course_sherbet_land_packed_dl_1EB8
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07001EB8), -0x4C, 255, 255, 255);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07001EB8), -0x4C, 255, 255, 255);
// d_course_sherbet_land_packed_dl_2308
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07002308), -0x6A, 255, 255, 255);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07002308), -0x6A, 255, 255, 255);
}
f32 SherbetLand::GetWaterLevel(FVector pos, Collision* collision) {
@@ -143,64 +143,77 @@ f32 SherbetLand::GetWaterLevel(FVector pos, Collision* collision) {
}
void SherbetLand::BeginPlay() {
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_sherbet_land_item_box_spawns));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_sherbet_land_item_box_spawns));
// Multiplayer does not spawn the big penguin
-// if (gPlayerCountSelection1 == 1) {
- FVector pos = {-383.0f, 2.0f, -690.0f};
- gWorldInstance.AddObject(new OPenguin(pos, 0, OPenguin::PenguinType::EMPEROR, OPenguin::Behaviour::STRUT));
-// }
+ // if (gPlayerCountSelection1 == 1) {
+ FVector pos = { -383.0f, 2.0f, -690.0f };
+ gWorldInstance.AddObject(new OPenguin(pos, 0, OPenguin::PenguinType::EMPEROR, OPenguin::Behaviour::STRUT));
+ // }
FVector pos2 = { -2960.0f, -80.0f, 1521.0f };
- auto penguin = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos2, 0x150, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
- auto penguin2 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos2, 0x150, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
+ auto penguin = reinterpret_cast<OPenguin*>(
+ gWorldInstance.AddObject(new OPenguin(pos2, 0x150, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
+ auto penguin2 = reinterpret_cast<OPenguin*>(
+ gWorldInstance.AddObject(new OPenguin(pos2, 0x150, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
penguin->Diameter = penguin2->Diameter = 100.0f;
FVector pos3 = { -2490.0f, -80.0f, 1612.0f };
- auto penguin3 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos3, 0x100, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
- auto penguin4 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos3, 0x100, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
+ auto penguin3 = reinterpret_cast<OPenguin*>(
+ gWorldInstance.AddObject(new OPenguin(pos3, 0x100, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
+ auto penguin4 = reinterpret_cast<OPenguin*>(
+ gWorldInstance.AddObject(new OPenguin(pos3, 0x100, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
penguin3->Diameter = penguin4->Diameter = 80.0f;
FVector pos4 = { -2098.0f, -80.0f, 1624.0f };
- auto penguin5 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos4, 0xFF00, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
- auto penguin6 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos4, 0xFF00, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
+ auto penguin5 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(
+ new OPenguin(pos4, 0xFF00, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
+ auto penguin6 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(
+ new OPenguin(pos4, 0xFF00, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
penguin5->Diameter = penguin6->Diameter = 80.0f;
-
FVector pos5 = { -2080.0f, -80.0f, 1171.0f };
- auto penguin7 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos5, 0x150, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
- auto penguin8 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos5, 0x150, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
+ auto penguin7 = reinterpret_cast<OPenguin*>(
+ gWorldInstance.AddObject(new OPenguin(pos5, 0x150, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
+ auto penguin8 = reinterpret_cast<OPenguin*>(
+ gWorldInstance.AddObject(new OPenguin(pos5, 0x150, OPenguin::PenguinType::ADULT, OPenguin::Behaviour::CIRCLE)));
penguin7->Diameter = penguin8->Diameter = 80.0f;
-
if (gGamestate == CREDITS_SEQUENCE) {
FVector pos6 = { 380.0, 0.0f, -535.0f };
- auto penguin9 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos6, 0x9000, OPenguin::PenguinType::CREDITS, OPenguin::Behaviour::SLIDE3)));
+ auto penguin9 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(
+ new OPenguin(pos6, 0x9000, OPenguin::PenguinType::CREDITS, OPenguin::Behaviour::SLIDE3)));
penguin9->MirrorModeAngleOffset = -0x4000;
} else {
FVector pos6 = { 146.0f, 0.0f, -380.0f };
- auto penguin9 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos6, 0x9000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE3)));
+ auto penguin9 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(
+ new OPenguin(pos6, 0x9000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE3)));
penguin9->MirrorModeAngleOffset = -0x4000;
}
FVector pos7 = { 380.0f, 0.0f, -766.0f };
- auto penguin10 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos7, 0x5000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE4)));
+ auto penguin10 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(
+ new OPenguin(pos7, 0x5000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE4)));
penguin10->MirrorModeAngleOffset = 0x8000;
FVector pos8 = { -2300.0f, 0.0f, -210.0f };
- auto penguin11 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos8, 0xC000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE6)));
+ auto penguin11 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(
+ new OPenguin(pos8, 0xC000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE6)));
penguin11->MirrorModeAngleOffset = 0x8000;
FVector pos9 = { -2500.0f, 0.0f, -250.0f };
- auto penguin12 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos9, 0x4000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE6)));
+ auto penguin12 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(
+ new OPenguin(pos9, 0x4000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE6)));
penguin12->MirrorModeAngleOffset = 0x8000;
FVector pos10 = { -535.0f, 0.0f, 875.0f };
- auto penguin13 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos10, 0x8000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE6)));
+ auto penguin13 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(
+ new OPenguin(pos10, 0x8000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE6)));
penguin13->MirrorModeAngleOffset = -0x4000;
FVector pos11 = { -250.0f, 0.0f, 953.0f };
- auto penguin14 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(new OPenguin(pos11, 0x9000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE6)));
+ auto penguin14 = reinterpret_cast<OPenguin*>(gWorldInstance.AddObject(
+ new OPenguin(pos11, 0x9000, OPenguin::PenguinType::CHICK, OPenguin::Behaviour::SLIDE6)));
penguin14->MirrorModeAngleOffset = -0x4000;
if (gGamestate != CREDITS_SEQUENCE) {
@@ -239,10 +252,11 @@ void SherbetLand::Render(struct UnkStruct_800DC5EC* arg0) {
}
void SherbetLand::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_sherbet_land_dl_9AE8));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_sherbet_land_dl_9AE8));
}
-void SherbetLand::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) {
+void SherbetLand::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) {
Mat4 matrix;
gDPPipeSync(gDisplayListHead++);
@@ -263,14 +277,14 @@ void SherbetLand::DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCoun
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
// d_course_sherbet_land_packed_dl_2B48
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07002B48));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07002B48));
}
gDPPipeSync(gDisplayListHead++);
}
void SherbetLand::CreditsSpawnActors() {
// d_course_sherbet_land_packed_dl_1EB8
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07001EB8), -0x4C, 0xFF, 0xFF, 0xFF);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07001EB8), -0x4C, 0xFF, 0xFF, 0xFF);
// d_course_sherbet_land_packed_dl_2308
- find_vtx_and_set_colours(segmented_gfx_to_virtual((void*)0x07002308), -0x6A, 0xFF, 0xFF, 0xFF);
+ find_vtx_and_set_colours(segmented_gfx_to_virtual((void*) 0x07002308), -0x6A, 0xFF, 0xFF, 0xFF);
}
diff --git a/src/engine/courses/SherbetLand.h b/src/engine/courses/SherbetLand.h
index eb62e2807..f57563405 100644
--- a/src/engine/courses/SherbetLand.h
+++ b/src/engine/courses/SherbetLand.h
@@ -4,33 +4,34 @@
#include "Course.h"
extern "C" {
- #include "assets/sherbet_land_vertices.h"
- #include "assets/sherbet_land_displaylists.h"
- #include "assets/sherbet_land_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture sherbet_land_textures[];
+#include "assets/sherbet_land_vertices.h"
+#include "assets/sherbet_land_displaylists.h"
+#include "assets/sherbet_land_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture sherbet_land_textures[];
}
class SherbetLand : public Course {
-public:
- virtual ~SherbetLand() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~SherbetLand() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit SherbetLand();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual f32 GetWaterLevel(FVector pos, Collision* collision) override;
virtual void BeginPlay() override;
virtual void UpdateCourseObjects() override;
virtual void RenderCourseObjects(s32 cameraId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
- virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot, uint16_t playerDirection) override;
+ virtual void RenderCredits() override;
+ virtual void DrawWater(struct UnkStruct_800DC5EC* screen, uint16_t pathCounter, uint16_t cameraRot,
+ uint16_t playerDirection) override;
virtual void CreditsSpawnActors() override;
};
diff --git a/src/engine/courses/Skyscraper.cpp b/src/engine/courses/Skyscraper.cpp
index 4c165a787..99e73942a 100644
--- a/src/engine/courses/Skyscraper.cpp
+++ b/src/engine/courses/Skyscraper.cpp
@@ -9,27 +9,27 @@
#include "assets/skyscraper_data.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- extern const char *skyscraper_dls[];
- extern s16 currentScreenSection;
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+extern const char* skyscraper_dls[];
+extern s16 currentScreenSection;
}
const course_texture skyscraper_textures[] = {
@@ -87,7 +87,7 @@ Skyscraper::Skyscraper() {
Props.NearPersp = 2.0f;
Props.FarPersp = 2700.0f;
- Props.PathSizes = {1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -122,14 +122,14 @@ Skyscraper::Skyscraper() {
Props.Clouds = NULL; // no clouds
Props.CloudList = NULL;
- Props.Skybox.TopRight = {0, 0, 0};
- Props.Skybox.BottomRight = {0, 0, 0};
- Props.Skybox.BottomLeft = {0, 0, 0};
- Props.Skybox.TopLeft = {0, 0, 0};
- Props.Skybox.FloorTopRight = {0, 0, 0};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {0, 0, 0};
+ Props.Skybox.TopRight = { 0, 0, 0 };
+ Props.Skybox.BottomRight = { 0, 0, 0 };
+ Props.Skybox.BottomLeft = { 0, 0, 0 };
+ Props.Skybox.TopLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 0, 0, 0 };
Props.Sequence = MusicSeq::MUSIC_SEQ_BATTLE_ARENAS;
Props.WaterLevel = -480.0f;
@@ -139,9 +139,9 @@ void Skyscraper::Load() {
Course::Load();
// d_course_skyscraper_packed_dl_1110
- generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07001110), 1);
+ generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*) 0x07001110), 1);
// d_course_skyscraper_packed_dl_258
- generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*)0x07000258), 1);
+ generate_collision_mesh_with_default_section_id((Gfx*) segmented_gfx_to_virtual((void*) 0x07000258), 1);
func_80295C6C();
}
@@ -149,7 +149,7 @@ void Skyscraper::LoadTextures() {
}
void Skyscraper::BeginPlay() {
- spawn_all_item_boxes((ActorSpawnData*)LOAD_ASSET_RAW(d_course_skyscraper_item_box_spawns));
+ spawn_all_item_boxes((ActorSpawnData*) LOAD_ASSET_RAW(d_course_skyscraper_item_box_spawns));
if (gModeSelection == VERSUS) {
FVector pos = { 0, 0, 0 };
@@ -164,13 +164,17 @@ void Skyscraper::BeginPlay() {
}
}
-void Skyscraper::InitCourseObjects() {}
+void Skyscraper::InitCourseObjects() {
+}
-void Skyscraper::SomeSounds() {}
+void Skyscraper::SomeSounds() {
+}
-void Skyscraper::WhatDoesThisDo(Player* player, int8_t playerId) {}
+void Skyscraper::WhatDoesThisDo(Player* player, int8_t playerId) {
+}
-void Skyscraper::WhatDoesThisDoAI(Player* player, int8_t playerId) {}
+void Skyscraper::WhatDoesThisDoAI(Player* player, int8_t playerId) {
+}
void Skyscraper::Render(struct UnkStruct_800DC5EC* arg0) {
set_track_light_direction(D_800DC610, D_802B87D4, 0, 1);
@@ -178,27 +182,29 @@ void Skyscraper::Render(struct UnkStruct_800DC5EC* arg0) {
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
// d_course_skyscraper_packed_dl_FE8
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000FE8)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000FE8)));
// d_course_skyscraper_packed_dl_C60
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000C60)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000C60)));
// d_course_skyscraper_packed_dl_B70
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000B70)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000B70)));
// d_course_skyscraper_packed_dl_6B8
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x070006B8)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x070006B8)));
// d_course_skyscraper_packed_dl_570
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000570)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000570)));
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
// d_course_skyscraper_packed_dl_10C8
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x070010C8)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x070010C8)));
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
// d_course_skyscraper_packed_dl_258
- gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*)0x07000258)));
+ gSPDisplayList(gDisplayListHead++, (segmented_gfx_to_virtual((void*) 0x07000258)));
}
-void Skyscraper::RenderCredits() {}
+void Skyscraper::RenderCredits() {
+}
void Skyscraper::Waypoints(Player* player, int8_t playerId) {
player->nearestWaypointId = 0;
}
-void Skyscraper::Destroy() { }
+void Skyscraper::Destroy() {
+}
diff --git a/src/engine/courses/Skyscraper.h b/src/engine/courses/Skyscraper.h
index ed6592121..122e649eb 100644
--- a/src/engine/courses/Skyscraper.h
+++ b/src/engine/courses/Skyscraper.h
@@ -4,36 +4,36 @@
#include "Course.h"
extern "C" {
- #include "assets/skyscraper_vertices.h"
- #include "assets/skyscraper_displaylists.h"
- #include "assets/skyscraper_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture skyscraper_textures[];
+#include "assets/skyscraper_vertices.h"
+#include "assets/skyscraper_displaylists.h"
+#include "assets/skyscraper_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture skyscraper_textures[];
}
class Skyscraper : public Course {
-public:
- virtual ~Skyscraper() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~Skyscraper() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit Skyscraper();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
- //virtual void InitClouds() override;
+ // virtual void InitClouds() override;
virtual void InitCourseObjects() override;
virtual void SomeSounds() override;
virtual void WhatDoesThisDo(Player* player, int8_t playerId) override;
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void Waypoints(Player* player, int8_t playerId) override;
virtual void Destroy() override;
};
diff --git a/src/engine/courses/TestCourse.cpp b/src/engine/courses/TestCourse.cpp
index eebaee17a..fa1c72303 100644
--- a/src/engine/courses/TestCourse.cpp
+++ b/src/engine/courses/TestCourse.cpp
@@ -31,31 +31,31 @@
#include "engine/objects/GrandPrixBalloons.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "course.h"
- extern Gfx test_course_dls[];
- extern Vtx mario_Plane_001_mesh_vtx_1[];
- extern Gfx mario_Plane_001_mesh[];
- extern TrackWaypoint test_course_path[];
- extern TrackSections test_course_addr[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "course.h"
+extern Gfx test_course_dls[];
+extern Vtx mario_Plane_001_mesh_vtx_1[];
+extern Gfx mario_Plane_001_mesh[];
+extern TrackWaypoint test_course_path[];
+extern TrackSections test_course_addr[];
}
TestCourse::TestCourse() {
@@ -71,7 +71,7 @@ TestCourse::TestCourse() {
Props.Minimap.PlayerScaleFactor = 0.022f;
Props.Minimap.FinishlineX = 0;
Props.Minimap.FinishlineY = 0;
- Props.Minimap.Colour = {255, 255, 255};
+ Props.Minimap.Colour = { 255, 255, 255 };
Id = "mk:test_course";
@@ -87,7 +87,7 @@ TestCourse::TestCourse() {
Props.NearPersp = 9.0f;
Props.FarPersp = 4500.0f;
- Props.PathSizes = {51, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 51, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -123,14 +123,14 @@ TestCourse::TestCourse() {
Props.Clouds = gKalimariDesertClouds;
Props.CloudList = gLuigiRacewayClouds;
- Props.Skybox.TopRight = {120, 140, 188};
- Props.Skybox.BottomRight = {216, 232, 248};
- Props.Skybox.BottomLeft = {216, 232, 248};
- Props.Skybox.TopLeft = {40, 184, 208};
- Props.Skybox.FloorTopRight = {0, 0, 0};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {0, 0, 0};
+ Props.Skybox.TopRight = { 120, 140, 188 };
+ Props.Skybox.BottomRight = { 216, 232, 248 };
+ Props.Skybox.BottomLeft = { 216, 232, 248 };
+ Props.Skybox.TopLeft = { 40, 184, 208 };
+ Props.Skybox.FloorTopRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 0, 0, 0 };
Props.Sequence = MusicSeq::MUSIC_SEQ_RACEWAYS_WARIO_STADIUM;
}
@@ -139,7 +139,7 @@ void TestCourse::Load() {
generate_collision_mesh_with_defaults(mario_Plane_001_mesh);
- parse_course_displaylists((TrackSections*)test_course_addr);
+ parse_course_displaylists((TrackSections*) test_course_addr);
func_80295C6C();
Props.WaterLevel = gCourseMinY - 10.0f;
}
@@ -158,58 +158,58 @@ void TestCourse::LoadTextures() {
}
Path2D test_course_path2D[] = {
- { 0, 0},
- { 0, -100},
- { 0, -200},
- { 0, -300},
- { 0, -400},
- { 0, -500},
- { 0, -600},
- { 0, -700},
- { 0, -800},
- { 0, -900},
- { 0, -1000},
- { 0, -1096}, // Main point 1
- { 100, -1090},
- { 200, -1085},
- { 300, -1080},
- { 400, -1075},
- { 500, -1072}, // Curve begins to smooth here
- { 600, -1068},
- { 700, -1065},
- { 800, -1063},
- { 900, -1061},
- { 984, -1060}, // Main point 2
- { 990, -900},
- { 995, -800},
- { 997, -700},
- { 998, -600},
- { 999, -500},
- { 999, -400},
- { 999, -300},
- { 999, -200},
- { 999, -100},
- { 999, 0},
- { 999, 100},
- { 999, 200},
- { 999, 300},
- { 999, 400},
- { 999, 500},
- { 999, 600},
- { 999, 700},
- { 999, 800},
- { 999, 900},
- { 999, 940}, // Main point 3
- { 900, 945},
- { 800, 945},
- { 700, 947},
- { 600, 948},
- { 500, 949},
- { 400, 949},
- { 300, 949},
- { 200, 950},
- { 100, 950},
- { 0, 950}, // Main point 4
+ { 0, 0 },
+ { 0, -100 },
+ { 0, -200 },
+ { 0, -300 },
+ { 0, -400 },
+ { 0, -500 },
+ { 0, -600 },
+ { 0, -700 },
+ { 0, -800 },
+ { 0, -900 },
+ { 0, -1000 },
+ { 0, -1096 }, // Main point 1
+ { 100, -1090 },
+ { 200, -1085 },
+ { 300, -1080 },
+ { 400, -1075 },
+ { 500, -1072 }, // Curve begins to smooth here
+ { 600, -1068 },
+ { 700, -1065 },
+ { 800, -1063 },
+ { 900, -1061 },
+ { 984, -1060 }, // Main point 2
+ { 990, -900 },
+ { 995, -800 },
+ { 997, -700 },
+ { 998, -600 },
+ { 999, -500 },
+ { 999, -400 },
+ { 999, -300 },
+ { 999, -200 },
+ { 999, -100 },
+ { 999, 0 },
+ { 999, 100 },
+ { 999, 200 },
+ { 999, 300 },
+ { 999, 400 },
+ { 999, 500 },
+ { 999, 600 },
+ { 999, 700 },
+ { 999, 800 },
+ { 999, 900 },
+ { 999, 940 }, // Main point 3
+ { 900, 945 },
+ { 800, 945 },
+ { 700, 947 },
+ { 600, 948 },
+ { 500, 949 },
+ { 400, 949 },
+ { 300, 949 },
+ { 200, 950 },
+ { 100, 950 },
+ { 0, 950 }, // Main point 4
// End of path
{ -32768, -32768 } // Terminator
@@ -217,33 +217,24 @@ Path2D test_course_path2D[] = {
void TestCourse::BeginPlay() {
struct ActorSpawnData itemboxes[] = {
- { 200, 1500, 200 , 0},
- { 350, 2500, 300 , 1},
- { 400, 2000, 350 , 2},
- { 40, 0, -800, 0},
- { -40, 0, -800, 0},
- { 0, 0, -800, 0},
- { 999, 6, 482, 0},
- { 1064, 8, 275, {0}},
- { 1028, 5, -39 , {0}},
- { 320, 0, 1020, {0}},
- { 293, 0, 950, {0}},
- {{ -32768, 0, 0 }, {0}},
+ { 200, 1500, 200, 0 }, { 350, 2500, 300, 1 }, { 400, 2000, 350, 2 }, { 40, 0, -800, 0 },
+ { -40, 0, -800, 0 }, { 0, 0, -800, 0 }, { 999, 6, 482, 0 }, { 1064, 8, 275, { 0 } },
+ { 1028, 5, -39, { 0 } }, { 320, 0, 1020, { 0 } }, { 293, 0, 950, { 0 } }, { { -32768, 0, 0 }, { 0 } },
};
struct ActorSpawnData rocks[] = {
- {{ 200, 1500, 200 }, {0}},
- {{ 350, 2500, 300 }, {1}},
- {{ 400, 2000, 350 }, {2}},
- {{ -32768, 0, 0 }, {0}},
+ { { 200, 1500, 200 }, { 0 } },
+ { { 350, 2500, 300 }, { 1 } },
+ { { 400, 2000, 350 }, { 2 } },
+ { { -32768, 0, 0 }, { 0 } },
};
spawn_all_item_boxes(itemboxes);
spawn_falling_rocks(rocks);
- Vec3f test = {-100, 0, -150};
- Vec3s rot = {0, 0, 0};
- Vec3f vel = {0, 0, 0};
+ Vec3f test = { -100, 0, -150 };
+ Vec3s rot = { 0, 0, 0 };
+ Vec3f vel = { 0, 0, 0 };
add_actor_to_empty_slot(test, rot, vel, ACTOR_TREE_MARIO_RACEWAY);
@@ -253,15 +244,15 @@ void TestCourse::BeginPlay() {
Vec3s rotation = { 0, 0, 0 };
vec3f_set(position, 50.0f, 2.0f, 50.0f);
- Vec3f crossingPos = {0, 2, 0};
+ Vec3f crossingPos = { 0, 2, 0 };
uintptr_t* crossing1 = (uintptr_t*) gWorldInstance.AddCrossing(crossingPos, 0, 2, 900.0f, 650.0f);
position[0] *= gCourseDirection;
- rrxing = (struct RailroadCrossing*) GET_ACTOR(add_actor_to_empty_slot(position, rotation, velocity,
- ACTOR_RAILROAD_CROSSING));
+ rrxing = (struct RailroadCrossing*) GET_ACTOR(
+ add_actor_to_empty_slot(position, rotation, velocity, ACTOR_RAILROAD_CROSSING));
rrxing->crossingTrigger = crossing1;
- Vec3f pos = {0, 80, 0};
+ Vec3f pos = { 0, 80, 0 };
// gWorldInstance.AddActor(new ACloud(pos));
// gWorldInstance.AddActor(new OSeagull(0, pos));
@@ -270,24 +261,25 @@ void TestCourse::BeginPlay() {
// gWorldInstance.AddActor(new OSeagull(3, pos));
// gWorldInstance.AddObject(new OCheepCheep(FVector(0, 40, 0), OCheepCheep::CheepType::RACE, IPathSpan(0, 10)));
// gWorldInstance.AddObject(new OTrophy(FVector(0,0,0), OTrophy::TrophyType::GOLD, OTrophy::Behaviour::GO_FISH));
- //gWorldInstance.AddObject(new OSnowman(FVector(0, 0, 0)));
- //gWorldInstance.AddObject(new OTrashBin(FVector(0.0f, 0.0f, 0.0f), IRotator(0, 90, 0), 1.0f, OTrashBin::Behaviour::MUNCHING));
+ // gWorldInstance.AddObject(new OSnowman(FVector(0, 0, 0)));
+ // gWorldInstance.AddObject(new OTrashBin(FVector(0.0f, 0.0f, 0.0f), IRotator(0, 90, 0), 1.0f,
+ // OTrashBin::Behaviour::MUNCHING));
- //gWorldInstance.AddObject(new OHedgehog(FVector(0, 0, 0), FVector2D(0, -200), 9));
- //gWorldInstance.AddObject(new OFlagpole(FVector(0, 0, -200), 0x400));
-// gWorldInstance.AddObject(new OHotAirBalloon(FVector(0.0, 20.0f, -200.0f)));
+ // gWorldInstance.AddObject(new OHedgehog(FVector(0, 0, 0), FVector2D(0, -200), 9));
+ // gWorldInstance.AddObject(new OFlagpole(FVector(0, 0, -200), 0x400));
+ // gWorldInstance.AddObject(new OHotAirBalloon(FVector(0.0, 20.0f, -200.0f)));
- //gWorldInstance.AddObject(new OCrab(FVector2D(0, 0), FVector2D(0, -200)));
-// gWorldInstance.AddActor(new ABowserStatue(FVector(-200, 0, 0), ABowserStatue::Behaviour::CRUSH));
+ // gWorldInstance.AddObject(new OCrab(FVector2D(0, 0), FVector2D(0, -200)));
+ // gWorldInstance.AddActor(new ABowserStatue(FVector(-200, 0, 0), ABowserStatue::Behaviour::CRUSH));
-// gWorldInstance.AddObject(new OBoos(10, IPathSpan(0, 5), IPathSpan(18, 23), IPathSpan(25, 50)));
+ // gWorldInstance.AddObject(new OBoos(10, IPathSpan(0, 5), IPathSpan(18, 23), IPathSpan(25, 50)));
gVehicle2DWaypoint = test_course_path2D;
gVehicle2DWaypointLength = 53;
D_80162EB0 = spawn_actor_on_surface(test_course_path2D[0].x, 2000.0f, test_course_path2D[0].z);
- //gWorldInstance.AddTrain(ATrain::TenderStatus::HAS_TENDER, 5, 2.5f, 0);
- //gWorldInstance.AddTrain(ATrain::TenderStatus::HAS_TENDER, 5, 2.5f, 8);
+ // gWorldInstance.AddTrain(ATrain::TenderStatus::HAS_TENDER, 5, 2.5f, 0);
+ // gWorldInstance.AddTrain(ATrain::TenderStatus::HAS_TENDER, 5, 2.5f, 8);
FVector pos2 = { 0, 0, 0 };
@@ -300,8 +292,7 @@ void TestCourse::BeginPlay() {
}
void TestCourse::WhatDoesThisDo(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
if (D_80165300[playerId] != 1) {
func_800CA288(playerId, 0x55);
}
@@ -315,8 +306,7 @@ void TestCourse::WhatDoesThisDo(Player* player, int8_t playerId) {
}
void TestCourse::WhatDoesThisDoAI(Player* player, int8_t playerId) {
- if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) &&
- ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
+ if (((s16) gNearestWaypointByPlayerId[playerId] >= 0x19B) && ((s16) gNearestWaypointByPlayerId[playerId] < 0x1B9)) {
if (D_80165300[playerId] != 1) {
func_800CA2E4(playerId, 0x55);
}
@@ -346,4 +336,4 @@ void TestCourse::Render(struct UnkStruct_800DC5EC* arg0) {
bool TestCourse::IsMod() {
return true;
-} \ No newline at end of file
+}
diff --git a/src/engine/courses/TestCourse.h b/src/engine/courses/TestCourse.h
index d44e0a266..a27044a9d 100644
--- a/src/engine/courses/TestCourse.h
+++ b/src/engine/courses/TestCourse.h
@@ -4,26 +4,26 @@
#include "Course.h"
extern "C" {
- #include "mario_raceway_vertices.h"
- #include "mario_raceway_displaylists.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- #include "mario_raceway_data.h"
- extern const course_texture test_course_textures[];
+#include "mario_raceway_vertices.h"
+#include "mario_raceway_displaylists.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+#include "mario_raceway_data.h"
+extern const course_texture test_course_textures[];
}
class TestCourse : public Course {
-public:
- virtual ~TestCourse() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~TestCourse() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit TestCourse();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
diff --git a/src/engine/courses/ToadsTurnpike.cpp b/src/engine/courses/ToadsTurnpike.cpp
index 867fedf25..6d69022c1 100644
--- a/src/engine/courses/ToadsTurnpike.cpp
+++ b/src/engine/courses/ToadsTurnpike.cpp
@@ -16,30 +16,30 @@
#include "engine/vehicles/Utils.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "code_80086E70.h"
- #include "course.h"
- extern const char *d_course_toads_turnpike_dl_list[];
- extern s16 currentScreenSection;
- extern s8 gPlayerCount;
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "code_80086E70.h"
+#include "course.h"
+extern const char* d_course_toads_turnpike_dl_list[];
+extern s16 currentScreenSection;
+extern s8 gPlayerCount;
}
const course_texture toads_turnpike_textures[] = {
@@ -93,7 +93,7 @@ ToadsTurnpike::ToadsTurnpike() {
Props.NearPersp = 9.0f;
Props.FarPersp = 4500.0f;
- Props.PathSizes = {1000, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 1000, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -115,12 +115,12 @@ ToadsTurnpike::ToadsTurnpike() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_toads_turnpike_unknown_waypoints);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_toads_turnpike_unknown_waypoints);
Props.PathTable[1] = NULL;
Props.PathTable[2] = NULL;
Props.PathTable[3] = NULL;
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_toads_turnpike_track_waypoints);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_toads_turnpike_track_waypoints);
Props.PathTable2[1] = NULL;
Props.PathTable2[2] = NULL;
Props.PathTable2[3] = NULL;
@@ -135,14 +135,14 @@ ToadsTurnpike::ToadsTurnpike() {
this->FinishlineSpawnPoint = finish;
- Props.Skybox.TopRight = {0, 2, 94};
- Props.Skybox.BottomRight = {209, 65, 23};
- Props.Skybox.BottomLeft = {209, 65, 23};
- Props.Skybox.TopLeft = {0, 2, 94};
- Props.Skybox.FloorTopRight = {209, 65, 23};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {209, 65, 23};
+ Props.Skybox.TopRight = { 0, 2, 94 };
+ Props.Skybox.BottomRight = { 209, 65, 23 };
+ Props.Skybox.BottomLeft = { 209, 65, 23 };
+ Props.Skybox.TopLeft = { 0, 2, 94 };
+ Props.Skybox.FloorTopRight = { 209, 65, 23 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 209, 65, 23 };
Props.Sequence = MusicSeq::MUSIC_SEQ_TOADS_TURNPIKE;
}
@@ -154,7 +154,7 @@ void ToadsTurnpike::Load() {
D_801625F0 = 4;
D_802B87B0 = 993;
D_802B87B4 = 1000;
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_toads_turnpike_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_toads_turnpike_addr));
func_80295C6C();
Props.WaterLevel = gCourseMinY - 10.0f;
}
@@ -163,7 +163,7 @@ void ToadsTurnpike::LoadTextures() {
}
void ToadsTurnpike::BeginPlay() {
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_toads_turnpike_item_box_spawns));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_toads_turnpike_item_box_spawns));
if (gGamestate != CREDITS_SEQUENCE) {
uint32_t waypoint;
@@ -182,7 +182,7 @@ void ToadsTurnpike::BeginPlay() {
for (size_t i = 0; i < _numTrucks; i++) {
waypoint = CalculateWaypointDistribution(i, _numTrucks, gWaypointCountByPathIndex[0], 0);
- gWorldInstance.AddActor(new ATruck(a, b, &D_80164550[0][0], waypoint));
+ gWorldInstance.AddActor(new ATruck(a, b, &D_80164550[0][0], waypoint));
}
for (size_t i = 0; i < _numBuses; i++) {
@@ -221,7 +221,8 @@ void ToadsTurnpike::UpdateClouds(s32 sp1C, Camera* camera) {
update_stars(sp1C, camera, this->Props.CloudList);
}
-void ToadsTurnpike::SomeSounds() {}
+void ToadsTurnpike::SomeSounds() {
+}
void ToadsTurnpike::WhatDoesThisDo(Player* player, int8_t playerId) {
if ((player->type & PLAYER_CINEMATIC_MODE) != PLAYER_CINEMATIC_MODE) {
@@ -268,17 +269,18 @@ void ToadsTurnpike::Render(struct UnkStruct_800DC5EC* arg0) {
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2);
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_PASS2);
// d_course_toads_turnpike_packed_dl_0
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07000000));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07000000));
// d_course_toads_turnpike_packed_dl_68
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x07000068));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x07000068));
// d_course_toads_turnpike_packed_dl_D8
- gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*)0x070000D8));
+ gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual((void*) 0x070000D8));
gSPClearGeometryMode(gDisplayListHead++, G_FOG);
gDPSetCycleType(gDisplayListHead++, G_CYC_1CYCLE);
}
void ToadsTurnpike::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_toads_turnpike_dl_23930));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_toads_turnpike_dl_23930));
}
-void ToadsTurnpike::Destroy() { }
+void ToadsTurnpike::Destroy() {
+}
diff --git a/src/engine/courses/ToadsTurnpike.h b/src/engine/courses/ToadsTurnpike.h
index de145849d..6358097b3 100644
--- a/src/engine/courses/ToadsTurnpike.h
+++ b/src/engine/courses/ToadsTurnpike.h
@@ -4,26 +4,26 @@
#include "Course.h"
extern "C" {
- #include "assets/toads_turnpike_vertices.h"
- #include "assets/toads_turnpike_displaylists.h"
- #include "assets/toads_turnpike_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture toads_turnpike_textures[];
+#include "assets/toads_turnpike_vertices.h"
+#include "assets/toads_turnpike_displaylists.h"
+#include "assets/toads_turnpike_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture toads_turnpike_textures[];
}
class ToadsTurnpike : public Course {
-public:
- virtual ~ToadsTurnpike() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~ToadsTurnpike() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit ToadsTurnpike();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
@@ -33,9 +33,10 @@ public:
virtual void WhatDoesThisDo(Player* player, int8_t playerId) override;
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void Destroy() override;
-private:
+
+ private:
size_t _numTrucks = 7;
size_t _numBuses = 7;
size_t _numTankerTrucks = 7;
diff --git a/src/engine/courses/YoshiValley.cpp b/src/engine/courses/YoshiValley.cpp
index 5fbcbea69..a5de1e86f 100644
--- a/src/engine/courses/YoshiValley.cpp
+++ b/src/engine/courses/YoshiValley.cpp
@@ -14,27 +14,27 @@
#include "assets/boo_frames.h"
extern "C" {
- #include "main.h"
- #include "camera.h"
- #include "course_offsets.h"
- #include "code_800029B0.h"
- #include "render_courses.h"
- #include "code_8006E9C0.h"
- #include "code_80057C60.h"
- #include "defines.h"
- #include "math_util.h"
- #include "external.h"
- #include "code_80005FD0.h"
- #include "spawn_players.h"
- #include "render_objects.h"
- #include "assets/common_data.h"
- #include "save.h"
- #include "staff_ghosts.h"
- #include "actors.h"
- #include "collision.h"
- #include "memory.h"
- #include "course.h"
- extern const char *d_course_yoshi_valley_dl_list[];
+#include "main.h"
+#include "camera.h"
+#include "course_offsets.h"
+#include "code_800029B0.h"
+#include "render_courses.h"
+#include "code_8006E9C0.h"
+#include "code_80057C60.h"
+#include "defines.h"
+#include "math_util.h"
+#include "external.h"
+#include "code_80005FD0.h"
+#include "spawn_players.h"
+#include "render_objects.h"
+#include "assets/common_data.h"
+#include "save.h"
+#include "staff_ghosts.h"
+#include "actors.h"
+#include "collision.h"
+#include "memory.h"
+#include "course.h"
+extern const char* d_course_yoshi_valley_dl_list[];
}
const course_texture yoshi_valley_textures[] = {
@@ -82,7 +82,7 @@ YoshiValley::YoshiValley() {
Props.NearPersp = 9.0f;
Props.FarPersp = 4500.0f;
- Props.PathSizes = {0x02B2, 0x02A8, 0x02B2, 0x0320, 1, 0, 0, 0, 0, 0, 0};
+ Props.PathSizes = { 0x02B2, 0x02A8, 0x02B2, 0x0320, 1, 0, 0, 0, 0, 0, 0 };
Props.D_0D009418[0] = 4.1666665f;
Props.D_0D009418[1] = 5.5833334f;
@@ -104,28 +104,28 @@ YoshiValley::YoshiValley() {
Props.D_0D009808[2] = 5.75f;
Props.D_0D009808[3] = 6.3333334f;
- Props.PathTable[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_yoshi_valley_unknown_waypoints);
- Props.PathTable[1] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_yoshi_valley_unknown_waypoints_2);
- Props.PathTable[2] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_yoshi_valley_unknown_waypoints_3);
- Props.PathTable[3] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_yoshi_valley_unknown_waypoints_4);
+ Props.PathTable[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_yoshi_valley_unknown_waypoints);
+ Props.PathTable[1] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_yoshi_valley_unknown_waypoints_2);
+ Props.PathTable[2] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_yoshi_valley_unknown_waypoints_3);
+ Props.PathTable[3] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_yoshi_valley_unknown_waypoints_4);
- Props.PathTable2[0] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_yoshi_valley_track_waypoints);
- Props.PathTable2[1] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_yoshi_valley_track_waypoints_2);
- Props.PathTable2[2] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_yoshi_valley_track_waypoints_3);
- Props.PathTable2[3] = (TrackWaypoint*)LOAD_ASSET_RAW(d_course_yoshi_valley_track_waypoints_4);
+ Props.PathTable2[0] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_yoshi_valley_track_waypoints);
+ Props.PathTable2[1] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_yoshi_valley_track_waypoints_2);
+ Props.PathTable2[2] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_yoshi_valley_track_waypoints_3);
+ Props.PathTable2[3] = (TrackWaypoint*) LOAD_ASSET_RAW(d_course_yoshi_valley_track_waypoints_4);
Props.CloudTexture = (u8*) LOAD_ASSET_RAW(gTextureExhaust0);
Props.Clouds = gYoshiValleyMooMooFarmClouds;
Props.CloudList = gYoshiValleyMooMooFarmClouds;
- Props.Skybox.TopRight = {113, 70, 255};
- Props.Skybox.BottomRight = {255, 184, 99};
- Props.Skybox.BottomLeft = {255, 184, 99};
- Props.Skybox.TopLeft = {113, 70, 255};
- Props.Skybox.FloorTopRight = {95, 40, 15};
- Props.Skybox.FloorBottomRight = {0, 0, 0};
- Props.Skybox.FloorBottomLeft = {0, 0, 0};
- Props.Skybox.FloorTopLeft = {95, 40, 15};
+ Props.Skybox.TopRight = { 113, 70, 255 };
+ Props.Skybox.BottomRight = { 255, 184, 99 };
+ Props.Skybox.BottomLeft = { 255, 184, 99 };
+ Props.Skybox.TopLeft = { 113, 70, 255 };
+ Props.Skybox.FloorTopRight = { 95, 40, 15 };
+ Props.Skybox.FloorBottomRight = { 0, 0, 0 };
+ Props.Skybox.FloorBottomLeft = { 0, 0, 0 };
+ Props.Skybox.FloorTopLeft = { 95, 40, 15 };
Props.Sequence = MusicSeq::MUSIC_SEQ_MOO_MOO_FARM_YOSHI_VALLEY;
}
@@ -134,7 +134,7 @@ void YoshiValley::Load() {
Lights1 lights4 = gdSPDefLights1(100, 100, 100, 255, 254, 254, 0, 0, 120);
set_track_light_direction(&lights4, -0x38F0, 0x1C70, 1);
- parse_course_displaylists((TrackSections*)LOAD_ASSET_RAW(d_course_yoshi_valley_addr));
+ parse_course_displaylists((TrackSections*) LOAD_ASSET_RAW(d_course_yoshi_valley_addr));
func_80295C6C();
Props.WaterLevel = gCourseMinY - 10.0f;
}
@@ -148,8 +148,8 @@ void YoshiValley::BeginPlay() {
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
Vec3s rotation = { 0, 0, 0 };
- spawn_foliage((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_yoshi_valley_tree_spawn));
- spawn_all_item_boxes((struct ActorSpawnData*)LOAD_ASSET_RAW(d_course_yoshi_valley_item_box_spawns));
+ spawn_foliage((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_yoshi_valley_tree_spawn));
+ spawn_all_item_boxes((struct ActorSpawnData*) LOAD_ASSET_RAW(d_course_yoshi_valley_item_box_spawns));
vec3f_set(position, -2300.0f, 0.0f, 634.0f);
position[0] *= gCourseDirection;
add_actor_to_empty_slot(position, rotation, velocity, ACTOR_YOSHI_EGG);
@@ -212,9 +212,11 @@ void YoshiValley::RenderCourseObjects(s32 cameraId) {
void YoshiValley::SomeSounds() {
}
-void YoshiValley::WhatDoesThisDo(Player* player, int8_t playerId) {}
+void YoshiValley::WhatDoesThisDo(Player* player, int8_t playerId) {
+}
-void YoshiValley::WhatDoesThisDoAI(Player* player, int8_t playerId) {}
+void YoshiValley::WhatDoesThisDoAI(Player* player, int8_t playerId) {
+}
void YoshiValley::Render(struct UnkStruct_800DC5EC* arg0) {
gDPPipeSync(gDisplayListHead++);
@@ -226,14 +228,15 @@ void YoshiValley::Render(struct UnkStruct_800DC5EC* arg0) {
}
void YoshiValley::RenderCredits() {
- gSPDisplayList(gDisplayListHead++, (Gfx*)(d_course_yoshi_valley_dl_18020));
+ gSPDisplayList(gDisplayListHead++, (Gfx*) (d_course_yoshi_valley_dl_18020));
}
void YoshiValley::Waypoints(Player* player, int8_t playerId) {
player->nearestWaypointId = gCopyNearestWaypointByPlayerId[playerId];
}
-void YoshiValley::ScrollingTextures() {}
+void YoshiValley::ScrollingTextures() {
+}
void YoshiValley::CreditsSpawnActors() {
Vec3f position;
@@ -245,4 +248,5 @@ void YoshiValley::CreditsSpawnActors() {
add_actor_to_empty_slot(position, rotation, velocity, ACTOR_YOSHI_EGG);
}
-void YoshiValley::Destroy() {}
+void YoshiValley::Destroy() {
+}
diff --git a/src/engine/courses/YoshiValley.h b/src/engine/courses/YoshiValley.h
index b4ec8d442..92c714602 100644
--- a/src/engine/courses/YoshiValley.h
+++ b/src/engine/courses/YoshiValley.h
@@ -4,26 +4,26 @@
#include "Course.h"
extern "C" {
- #include "assets/yoshi_valley_vertices.h"
- #include "assets/yoshi_valley_displaylists.h"
- #include "assets/yoshi_valley_data.h"
- #include "course_offsets.h"
- #include "camera.h"
- #include "data/some_data.h"
- #include "objects.h"
- #include "path_spawn_metadata.h"
- extern const course_texture yoshi_valley_textures[];
+#include "assets/yoshi_valley_vertices.h"
+#include "assets/yoshi_valley_displaylists.h"
+#include "assets/yoshi_valley_data.h"
+#include "course_offsets.h"
+#include "camera.h"
+#include "data/some_data.h"
+#include "objects.h"
+#include "path_spawn_metadata.h"
+extern const course_texture yoshi_valley_textures[];
}
class YoshiValley : public Course {
-public:
- virtual ~YoshiValley() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~YoshiValley() = default; // Virtual destructor for proper cleanup in derived classes
// Constructor
explicit YoshiValley();
-// virtual void Load(const char* courseVtx,
-// course_texture* textures, const char* displaylists, size_t dlSize);
+ // virtual void Load(const char* courseVtx,
+ // course_texture* textures, const char* displaylists, size_t dlSize);
virtual void Load() override;
virtual void LoadTextures() override;
virtual void BeginPlay() override;
@@ -34,7 +34,7 @@ public:
virtual void WhatDoesThisDo(Player* player, int8_t playerId) override;
virtual void WhatDoesThisDoAI(Player* player, int8_t playerId) override;
virtual void Render(struct UnkStruct_800DC5EC*) override;
- virtual void RenderCredits() override;
+ virtual void RenderCredits() override;
virtual void ScrollingTextures() override;
virtual void Waypoints(Player* player, int8_t playerId) override;
virtual void CreditsSpawnActors() override;
diff --git a/src/engine/editor/Collision.cpp b/src/engine/editor/Collision.cpp
index bf62d6273..cf98ed82f 100644
--- a/src/engine/editor/Collision.cpp
+++ b/src/engine/editor/Collision.cpp
@@ -10,179 +10,183 @@ extern "C" {
}
namespace Editor {
- void GenerateCollisionMesh(GameObject* object, Gfx* model, float scale) {
- int8_t opcode;
- uintptr_t lo;
- uintptr_t hi;
-
- Gfx* ptr = model;
- Vtx* vtx = NULL;
- size_t i = 0;
- bool run = true;
- while (run) {
- i++;
- lo = ptr->words.w0;
- hi = ptr->words.w1;
-
- opcode = (EDITOR_GFX_GET_OPCODE(lo) >> 24);
- switch(opcode) {
- case G_DL:
- GenerateCollisionMesh(object, (Gfx*)hi, scale);
- break;
- case G_DL_OTR_HASH:
- ptr++;
- GenerateCollisionMesh(object, (Gfx*)ResourceGetDataByCrc(((uint64_t)(ptr->words.w0 << 32)) + ptr->words.w1), scale);
- break;
- case G_DL_OTR_FILEPATH:
- // printf("otr filepath: %s\n", (const char*)hi);
- GenerateCollisionMesh(object, (Gfx*)ResourceGetDataByName((const char*)hi), scale);
- break;
- case G_VTX:
- vtx = (Vtx*)ptr->words.w1;
- break;
- case G_VTX_OTR_HASH: {
+void GenerateCollisionMesh(GameObject* object, Gfx* model, float scale) {
+ int8_t opcode;
+ uintptr_t lo;
+ uintptr_t hi;
+
+ Gfx* ptr = model;
+ Vtx* vtx = NULL;
+ size_t i = 0;
+ bool run = true;
+ while (run) {
+ i++;
+ lo = ptr->words.w0;
+ hi = ptr->words.w1;
+
+ opcode = (EDITOR_GFX_GET_OPCODE(lo) >> 24);
+ switch (opcode) {
+ case G_DL:
+ GenerateCollisionMesh(object, (Gfx*) hi, scale);
+ break;
+ case G_DL_OTR_HASH:
+ ptr++;
+ GenerateCollisionMesh(
+ object, (Gfx*) ResourceGetDataByCrc(((uint64_t) (ptr->words.w0 << 32)) + ptr->words.w1), scale);
+ break;
+ case G_DL_OTR_FILEPATH:
+ // printf("otr filepath: %s\n", (const char*)hi);
+ GenerateCollisionMesh(object, (Gfx*) ResourceGetDataByName((const char*) hi), scale);
+ break;
+ case G_VTX:
+ vtx = (Vtx*) ptr->words.w1;
+ break;
+ case G_VTX_OTR_HASH: {
+ ptr++;
+ vtx = (Vtx*) ResourceGetDataByCrc(((uint64_t) (ptr->words.w0 << 32)) + ptr->words.w1);
+ break;
+ }
+ case G_VTX_OTR_FILEPATH: {
+ const char* filePath = (const char*) hi;
+ ptr++;
+ size_t vtxDataOff = ptr->words.w1 & 0xFFFF;
+ vtx = ((Vtx*) ResourceGetDataByName(filePath)) + vtxDataOff;
+ break;
+ }
+ case G_TRI1: {
+ if (vtx == NULL) {
ptr++;
- vtx = (Vtx*)ResourceGetDataByCrc(((uint64_t)(ptr->words.w0 << 32)) + ptr->words.w1);
- break;
+ continue;
}
- case G_VTX_OTR_FILEPATH: {
- const char* filePath = (const char*)hi;
+ uint32_t v1 = ((hi & 0x00FF0000) >> 16) / 2;
+ uint32_t v2 = ((hi & 0x0000FF00) >> 8) / 2;
+ uint32_t v3 = (hi & 0x000000FF) / 2;
+
+ FVector p1 = FVector(vtx[v1].v.ob[0], vtx[v1].v.ob[1], vtx[v1].v.ob[2]);
+ FVector p2 = FVector(vtx[v2].v.ob[0], vtx[v2].v.ob[1], vtx[v2].v.ob[2]);
+ FVector p3 = FVector(vtx[v3].v.ob[0], vtx[v3].v.ob[1], vtx[v3].v.ob[2]);
+
+ object->Triangles.push_back({ p1, p2, p3 });
+ break;
+ }
+ case G_TRI1_OTR: {
+ if (vtx == NULL) {
ptr++;
- size_t vtxDataOff = ptr->words.w1 & 0xFFFF;
- vtx = ( (Vtx*)ResourceGetDataByName(filePath) ) + vtxDataOff;
- break;
+ continue;
}
- case G_TRI1: {
- if (vtx == NULL) {
- ptr++;
- continue;
- }
- uint32_t v1 = ((hi & 0x00FF0000) >> 16) / 2;
- uint32_t v2 = ((hi & 0x0000FF00) >> 8) / 2;
- uint32_t v3 = (hi & 0x000000FF) / 2;
-
- FVector p1 = FVector(vtx[v1].v.ob[0], vtx[v1].v.ob[1], vtx[v1].v.ob[2]);
- FVector p2 = FVector(vtx[v2].v.ob[0], vtx[v2].v.ob[1], vtx[v2].v.ob[2]);
- FVector p3 = FVector(vtx[v3].v.ob[0], vtx[v3].v.ob[1], vtx[v3].v.ob[2]);
-
- object->Triangles.push_back({p1, p2, p3});
- break;
- }
- case G_TRI1_OTR: {
- if (vtx == NULL) {
- ptr++;
- continue;
- }
- // The shift values here are different than the above. No idea why. But it has to be this way.
- uint32_t v1 = (lo & 0x0000FFFF);
- uint32_t v2 = (hi >> 16);
- uint32_t v3 = (hi & 0x0000FFFF);
+ // The shift values here are different than the above. No idea why. But it has to be this way.
+ uint32_t v1 = (lo & 0x0000FFFF);
+ uint32_t v2 = (hi >> 16);
+ uint32_t v3 = (hi & 0x0000FFFF);
- FVector p1 = FVector(vtx[v1].v.ob[0], vtx[v1].v.ob[1], vtx[v1].v.ob[2]);
- FVector p2 = FVector(vtx[v2].v.ob[0], vtx[v2].v.ob[1], vtx[v2].v.ob[2]);
- FVector p3 = FVector(vtx[v3].v.ob[0], vtx[v3].v.ob[1], vtx[v3].v.ob[2]);
+ FVector p1 = FVector(vtx[v1].v.ob[0], vtx[v1].v.ob[1], vtx[v1].v.ob[2]);
+ FVector p2 = FVector(vtx[v2].v.ob[0], vtx[v2].v.ob[1], vtx[v2].v.ob[2]);
+ FVector p3 = FVector(vtx[v3].v.ob[0], vtx[v3].v.ob[1], vtx[v3].v.ob[2]);
- object->Triangles.push_back({p1, p2, p3});
+ object->Triangles.push_back({ p1, p2, p3 });
- break;
- }
- case G_TRI2: {
- if (vtx == NULL) {
- ptr++;
- continue;
- }
- uint32_t v1 = ((lo & 0x00FF0000) >> 16) / 2;
- uint32_t v2 = ((lo & 0x0000FF00) >> 8) / 2;
- uint32_t v3 = (lo & 0x000000FF) / 2;
-
- // This is actually triangle 2; vert 1,2,3.
- uint32_t v4 = ((hi & 0x00FF0000) >> 16) / 2;
- uint32_t v5 = ((hi & 0x0000FF00) >> 8) / 2;
- uint32_t v6 = (hi & 0x000000FF) / 2;
-
- FVector p1 = FVector(vtx[v1].v.ob[0], vtx[v1].v.ob[1], vtx[v1].v.ob[2]);
- FVector p2 = FVector(vtx[v2].v.ob[0], vtx[v2].v.ob[1], vtx[v2].v.ob[2]);
- FVector p3 = FVector(vtx[v3].v.ob[0], vtx[v3].v.ob[1], vtx[v3].v.ob[2]);
-
- FVector p4 = FVector(vtx[v4].v.ob[0], vtx[v4].v.ob[1], vtx[v4].v.ob[2]);
- FVector p5 = FVector(vtx[v5].v.ob[0], vtx[v5].v.ob[1], vtx[v5].v.ob[2]);
- FVector p6 = FVector(vtx[v6].v.ob[0], vtx[v6].v.ob[1], vtx[v6].v.ob[2]);
-
- object->Triangles.push_back({p1, p2, p3});
- object->Triangles.push_back({p4, p5, p6});
- break;
+ break;
+ }
+ case G_TRI2: {
+ if (vtx == NULL) {
+ ptr++;
+ continue;
}
- case G_QUAD: {
- if (vtx == NULL) {
- ptr++;
- continue;
- }
- uint32_t v1 = ((hi & 0x00FF0000) >> 16) / 2;
- uint32_t v2 = ((hi & 0x0000FF00) >> 8) / 2;
- uint32_t v3 = (hi & 0x000000FF) / 2;
- uint32_t v4 = ((hi & 0xFF000000) >> 24) / 2;
-
- FVector p1 = FVector(vtx[v1].v.ob[0], vtx[v1].v.ob[1], vtx[v1].v.ob[2]);
- FVector p2 = FVector(vtx[v2].v.ob[0], vtx[v2].v.ob[1], vtx[v2].v.ob[2]);
- FVector p3 = FVector(vtx[v3].v.ob[0], vtx[v3].v.ob[1], vtx[v3].v.ob[2]);
- FVector p4 = FVector(vtx[v4].v.ob[0], vtx[v4].v.ob[1], vtx[v4].v.ob[2]);
-
- object->Triangles.push_back({p1, p2, p3});
- object->Triangles.push_back({p1, p3, p4});
- break;
+ uint32_t v1 = ((lo & 0x00FF0000) >> 16) / 2;
+ uint32_t v2 = ((lo & 0x0000FF00) >> 8) / 2;
+ uint32_t v3 = (lo & 0x000000FF) / 2;
+
+ // This is actually triangle 2; vert 1,2,3.
+ uint32_t v4 = ((hi & 0x00FF0000) >> 16) / 2;
+ uint32_t v5 = ((hi & 0x0000FF00) >> 8) / 2;
+ uint32_t v6 = (hi & 0x000000FF) / 2;
+
+ FVector p1 = FVector(vtx[v1].v.ob[0], vtx[v1].v.ob[1], vtx[v1].v.ob[2]);
+ FVector p2 = FVector(vtx[v2].v.ob[0], vtx[v2].v.ob[1], vtx[v2].v.ob[2]);
+ FVector p3 = FVector(vtx[v3].v.ob[0], vtx[v3].v.ob[1], vtx[v3].v.ob[2]);
+
+ FVector p4 = FVector(vtx[v4].v.ob[0], vtx[v4].v.ob[1], vtx[v4].v.ob[2]);
+ FVector p5 = FVector(vtx[v5].v.ob[0], vtx[v5].v.ob[1], vtx[v5].v.ob[2]);
+ FVector p6 = FVector(vtx[v6].v.ob[0], vtx[v6].v.ob[1], vtx[v6].v.ob[2]);
+
+ object->Triangles.push_back({ p1, p2, p3 });
+ object->Triangles.push_back({ p4, p5, p6 });
+ break;
+ }
+ case G_QUAD: {
+ if (vtx == NULL) {
+ ptr++;
+ continue;
}
- case G_ENDDL:
- run = false;
- break;
+ uint32_t v1 = ((hi & 0x00FF0000) >> 16) / 2;
+ uint32_t v2 = ((hi & 0x0000FF00) >> 8) / 2;
+ uint32_t v3 = (hi & 0x000000FF) / 2;
+ uint32_t v4 = ((hi & 0xFF000000) >> 24) / 2;
+
+ FVector p1 = FVector(vtx[v1].v.ob[0], vtx[v1].v.ob[1], vtx[v1].v.ob[2]);
+ FVector p2 = FVector(vtx[v2].v.ob[0], vtx[v2].v.ob[1], vtx[v2].v.ob[2]);
+ FVector p3 = FVector(vtx[v3].v.ob[0], vtx[v3].v.ob[1], vtx[v3].v.ob[2]);
+ FVector p4 = FVector(vtx[v4].v.ob[0], vtx[v4].v.ob[1], vtx[v4].v.ob[2]);
+
+ object->Triangles.push_back({ p1, p2, p3 });
+ object->Triangles.push_back({ p1, p3, p4 });
+ break;
}
-
- ptr++;
+ case G_ENDDL:
+ run = false;
+ break;
}
+
+ ptr++;
}
+}
- std::unordered_map<GameObject*, std::vector<Vtx>> gDebugObjVtxCache;
+std::unordered_map<GameObject*, std::vector<Vtx>> gDebugObjVtxCache;
- // Render a collision model
- void DebugCollision(GameObject* obj, FVector pos, IRotator rot, FVector scale, const std::vector<Triangle>& triangles) {
- if (obj == NULL || triangles.empty()) {
- return;
- }
-
- gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF);
-
- auto& vtxBuffer = gDebugObjVtxCache[obj];
- if (vtxBuffer.empty()) {
- for (const auto& tri : triangles) {
- vtxBuffer.push_back({(s16)tri.v0.x, (s16)tri.v0.y, (s16)tri.v0.z, 0, {0, 0}, {255, 255, 255, 255}});
- vtxBuffer.push_back({(s16)tri.v1.x, (s16)tri.v1.y, (s16)tri.v1.z, 0, {0, 0}, {255, 255, 255, 255}});
- vtxBuffer.push_back({(s16)tri.v2.x, (s16)tri.v2.y, (s16)tri.v2.z, 0, {0, 0}, {255, 255, 255, 255}});
- }
- }
-
- // Setup matrix and render state
- Mat4 mtx;
- ApplyMatrixTransformations(mtx, pos, rot, scale);
- Editor_AddMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
-
- gSPSetGeometryMode(gDisplayListHead++, G_FOG);
- gDPPipeSync(gDisplayListHead++);
- gDPSetCombineMode(gDisplayListHead++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
- gSPTexture(gDisplayListHead++, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
- gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2);
- uint32_t hash = (uint32_t)((uintptr_t)obj ^ ((uintptr_t)obj >> 16));
- u8 r = (hash >> 16) & 0xFF;
- u8 g = (hash >> 8) & 0xFF;
- u8 b = hash & 0xFF;
-
- gDPSetPrimColor(gDisplayListHead++, 0, 0, r, g, b, 255);
-
- // Render triangles in batches of 3
- for (size_t i = 0; i + 2 < vtxBuffer.size(); i += 3) {
- gSPVertex(gDisplayListHead++, (uintptr_t)&vtxBuffer[i], 3, 0);
- gSP1Triangle(gDisplayListHead++, 0, 1, 2, 0);
+// Render a collision model
+void DebugCollision(GameObject* obj, FVector pos, IRotator rot, FVector scale, const std::vector<Triangle>& triangles) {
+ if (obj == NULL || triangles.empty()) {
+ return;
+ }
+
+ gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF);
+
+ auto& vtxBuffer = gDebugObjVtxCache[obj];
+ if (vtxBuffer.empty()) {
+ for (const auto& tri : triangles) {
+ vtxBuffer.push_back(
+ { (s16) tri.v0.x, (s16) tri.v0.y, (s16) tri.v0.z, 0, { 0, 0 }, { 255, 255, 255, 255 } });
+ vtxBuffer.push_back(
+ { (s16) tri.v1.x, (s16) tri.v1.y, (s16) tri.v1.z, 0, { 0, 0 }, { 255, 255, 255, 255 } });
+ vtxBuffer.push_back(
+ { (s16) tri.v2.x, (s16) tri.v2.y, (s16) tri.v2.z, 0, { 0, 0 }, { 255, 255, 255, 255 } });
}
+ }
- gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK | G_ZBUFFER);
+ // Setup matrix and render state
+ Mat4 mtx;
+ ApplyMatrixTransformations(mtx, pos, rot, scale);
+ Editor_AddMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+
+ gSPSetGeometryMode(gDisplayListHead++, G_FOG);
+ gDPPipeSync(gDisplayListHead++);
+ gDPSetCombineMode(gDisplayListHead++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
+ gSPTexture(gDisplayListHead++, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
+ gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2);
+ uint32_t hash = (uint32_t) ((uintptr_t) obj ^ ((uintptr_t) obj >> 16));
+ u8 r = (hash >> 16) & 0xFF;
+ u8 g = (hash >> 8) & 0xFF;
+ u8 b = hash & 0xFF;
+
+ gDPSetPrimColor(gDisplayListHead++, 0, 0, r, g, b, 255);
+
+ // Render triangles in batches of 3
+ for (size_t i = 0; i + 2 < vtxBuffer.size(); i += 3) {
+ gSPVertex(gDisplayListHead++, (uintptr_t) &vtxBuffer[i], 3, 0);
+ gSP1Triangle(gDisplayListHead++, 0, 1, 2, 0);
}
+
+ gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK | G_ZBUFFER);
}
+} // namespace Editor
diff --git a/src/engine/editor/Collision.h b/src/engine/editor/Collision.h
index ee8fef4af..2ba10b362 100644
--- a/src/engine/editor/Collision.h
+++ b/src/engine/editor/Collision.h
@@ -8,16 +8,16 @@
/**
* @file Editor Collision
- *
- * Most actors use cylinder collision.
+ *
+ * Most actors use cylinder collision.
* Proper vtx intersection tests are necessary for object picking
- *
+ *
* Therefore, generate a full collision mesh for actors
*/
#define EDITOR_GFX_GET_OPCODE(var) ((uint32_t) ((var) & 0xFF000000))
namespace Editor {
- void GenerateCollisionMesh(GameObject* object, Gfx* model, float scale);
- void DebugCollision(GameObject* obj, FVector pos, IRotator rot, FVector scale, const std::vector<Triangle>& triangles);
-} \ No newline at end of file
+void GenerateCollisionMesh(GameObject* object, Gfx* model, float scale);
+void DebugCollision(GameObject* obj, FVector pos, IRotator rot, FVector scale, const std::vector<Triangle>& triangles);
+} // namespace Editor
diff --git a/src/engine/editor/Editor.cpp b/src/engine/editor/Editor.cpp
index 446da7487..e993199ff 100644
--- a/src/engine/editor/Editor.cpp
+++ b/src/engine/editor/Editor.cpp
@@ -24,143 +24,145 @@ extern "C" {
}
namespace Editor {
- int gfx_create_framebuffer(uint32_t width, uint32_t height, uint32_t native_width, uint32_t native_height,
- uint8_t resize);
+int gfx_create_framebuffer(uint32_t width, uint32_t height, uint32_t native_width, uint32_t native_height,
+ uint8_t resize);
- Editor::Editor() {
- }
+Editor::Editor() {
+}
- void Editor::Load() {
- printf("Editor: Loading Editor...\n");
- eObjectPicker.Load();
- for (auto& object : eGameObjects) {
- GenerateCollisionMesh(object, object->Model, 1.0f);
- object->Load();
- }
- printf("Editor: Loading Complete!\n");
+void Editor::Load() {
+ printf("Editor: Loading Editor...\n");
+ eObjectPicker.Load();
+ for (auto& object : eGameObjects) {
+ GenerateCollisionMesh(object, object->Model, 1.0f);
+ object->Load();
}
+ printf("Editor: Loading Complete!\n");
+}
- void Editor::Tick() {
+void Editor::Tick() {
- if (CVarGetInteger("gEditorEnabled", 0) == true) {
- bEditorEnabled = true;
- } else {
- bEditorEnabled = false;
- return;
- }
+ if (CVarGetInteger("gEditorEnabled", 0) == true) {
+ bEditorEnabled = true;
+ } else {
+ bEditorEnabled = false;
+ return;
+ }
- auto wnd = GameEngine::Instance->context->GetWindow();
+ auto wnd = GameEngine::Instance->context->GetWindow();
- static bool wasMouseDown = false;
- static bool isDragging = false;
- static Ship::Coords mouseStartPos;
+ static bool wasMouseDown = false;
+ static bool isDragging = false;
+ static Ship::Coords mouseStartPos;
- Ship::Coords mousePos = wnd->GetMousePos();
- bool isMouseDown = wnd->GetMouseState(Ship::LUS_MOUSE_BTN_LEFT);
+ Ship::Coords mousePos = wnd->GetMousePos();
+ bool isMouseDown = wnd->GetMouseState(Ship::LUS_MOUSE_BTN_LEFT);
- eGameObjects.erase(
- std::remove_if(eGameObjects.begin(), eGameObjects.end(),
- [](const auto& object) { return (*object->DespawnFlag) == object->DespawnValue; }),
- eGameObjects.end());
+ eGameObjects.erase(
+ std::remove_if(eGameObjects.begin(), eGameObjects.end(),
+ [](const auto& object) { return (*object->DespawnFlag) == object->DespawnValue; }),
+ eGameObjects.end());
- if (isMouseDown && !wasMouseDown) {
- // Mouse just pressed (Pressed state)
- mouseStartPos = mousePos;
- isDragging = false;
- }
+ if (isMouseDown && !wasMouseDown) {
+ // Mouse just pressed (Pressed state)
+ mouseStartPos = mousePos;
+ isDragging = false;
+ }
- if (isMouseDown) {
- // Mouse is being held (Held state)
- int dx = mousePos.x - mouseStartPos.x;
- int dy = mousePos.y - mouseStartPos.y;
- int dragThreshold = 5; // Adjust as needed
-
- if ((dx * dx + dy * dy) > (dragThreshold * dragThreshold)) {
- // Squared distance check to avoid unnecessary sqrt()
- isDragging = true;
- eObjectPicker.DragHandle(); // Call drag logic
- }
- }
+ if (isMouseDown) {
+ // Mouse is being held (Held state)
+ int dx = mousePos.x - mouseStartPos.x;
+ int dy = mousePos.y - mouseStartPos.y;
+ int dragThreshold = 5; // Adjust as needed
- if (!isMouseDown && wasMouseDown) {
- // Mouse just released (Released state)
- eObjectPicker.eGizmo.SelectedHandle = Gizmo::GizmoHandle::None;
- eObjectPicker.eGizmo.ManipulationStart = true;
- if (!isDragging) {
- eObjectPicker.SelectObject(eGameObjects);
- }
+ if ((dx * dx + dy * dy) > (dragThreshold * dragThreshold)) {
+ // Squared distance check to avoid unnecessary sqrt()
+ isDragging = true;
+ eObjectPicker.DragHandle(); // Call drag logic
+ }
+ }
+ if (!isMouseDown && wasMouseDown) {
+ // Mouse just released (Released state)
+ eObjectPicker.eGizmo.SelectedHandle = Gizmo::GizmoHandle::None;
+ eObjectPicker.eGizmo.ManipulationStart = true;
+ if (!isDragging) {
+ eObjectPicker.SelectObject(eGameObjects);
}
+ }
- wasMouseDown = isMouseDown; // Update previous state
+ wasMouseDown = isMouseDown; // Update previous state
- eObjectPicker.Tick();
+ eObjectPicker.Tick();
- for (auto& object : eGameObjects) {
- object->Tick();
- }
+ for (auto& object : eGameObjects) {
+ object->Tick();
}
+}
- void Editor::Draw() {
- if (!bEditorEnabled) {
- return;
- }
- eObjectPicker.Draw();
- for (auto& object : eGameObjects) {
- object->Draw();
- }
+void Editor::Draw() {
+ if (!bEditorEnabled) {
+ return;
}
-
- GameObject* Editor::AddObject(const char* name, FVector* pos, IRotator* rot, FVector* scale, Gfx* model, float collScale, GameObject::CollisionType collision, float boundingBoxSize, int32_t* despawnFlag, int32_t despawnValue) {
- //printf("After AddObj: Pos(%f, %f, %f), Name: %s, Model: %s\n",
- // pos->x, pos->y, pos->z, name, model);
- if (model != nullptr) {
- eGameObjects.push_back(new GameObject(name, pos, rot, scale, model, {}, collision, boundingBoxSize, despawnFlag, despawnValue));
- GenerateCollisionMesh(eGameObjects.back(), model, collScale);
- } else { // to bounding box or sphere collision
- eGameObjects.push_back(new GameObject(name, pos, rot, scale, model, {}, GameObject::CollisionType::BOUNDING_BOX,
- 10.0f, despawnFlag, despawnValue));
- }
- return eGameObjects.back();
+ eObjectPicker.Draw();
+ for (auto& object : eGameObjects) {
+ object->Draw();
}
+}
- void Editor::AddLight(const char* name, FVector* pos, s8* rot) {
- eGameObjects.push_back(new LightObject(name, pos, rot));
+GameObject* Editor::AddObject(const char* name, FVector* pos, IRotator* rot, FVector* scale, Gfx* model,
+ float collScale, GameObject::CollisionType collision, float boundingBoxSize,
+ int32_t* despawnFlag, int32_t despawnValue) {
+ // printf("After AddObj: Pos(%f, %f, %f), Name: %s, Model: %s\n",
+ // pos->x, pos->y, pos->z, name, model);
+ if (model != nullptr) {
+ eGameObjects.push_back(
+ new GameObject(name, pos, rot, scale, model, {}, collision, boundingBoxSize, despawnFlag, despawnValue));
+ GenerateCollisionMesh(eGameObjects.back(), model, collScale);
+ } else { // to bounding box or sphere collision
+ eGameObjects.push_back(new GameObject(name, pos, rot, scale, model, {}, GameObject::CollisionType::BOUNDING_BOX,
+ 10.0f, despawnFlag, despawnValue));
}
+ return eGameObjects.back();
+}
- void Editor::ClearObjects() {
- for (auto& obj : eGameObjects) {
- delete obj;
- }
- eGameObjects.clear();
+void Editor::AddLight(const char* name, FVector* pos, s8* rot) {
+ eGameObjects.push_back(new LightObject(name, pos, rot));
+}
+
+void Editor::ClearObjects() {
+ for (auto& obj : eGameObjects) {
+ delete obj;
}
+ eGameObjects.clear();
+}
- void Editor::DeleteObject() {
- GameObject* obj = eObjectPicker.eGizmo._selected;
+void Editor::DeleteObject() {
+ GameObject* obj = eObjectPicker.eGizmo._selected;
- if (obj) {
- *obj->DespawnFlag = obj->DespawnValue;
- obj = nullptr;
- eObjectPicker._selected = nullptr;
- }
+ if (obj) {
+ *obj->DespawnFlag = obj->DespawnValue;
+ obj = nullptr;
+ eObjectPicker._selected = nullptr;
}
+}
- void Editor::ClearMatrixPool() {
- EditorMatrix.clear();
- }
+void Editor::ClearMatrixPool() {
+ EditorMatrix.clear();
+}
- void Editor::SelectObjectFromSceneExplorer(GameObject* object) {
- eObjectPicker._selected = object;
- eObjectPicker.eGizmo.Enabled = true;
- eObjectPicker.eGizmo.SetGizmoNoCursor(object);
- }
+void Editor::SelectObjectFromSceneExplorer(GameObject* object) {
+ eObjectPicker._selected = object;
+ eObjectPicker.eGizmo.Enabled = true;
+ eObjectPicker.eGizmo.SetGizmoNoCursor(object);
+}
- void Editor::SetLevelDimensions(s16 minX, s16 maxX, s16 minZ, s16 maxZ, s16 minY, s16 maxY) {
- eObjectPicker.eGizmo.dimensions.MinX = minX + -1000;
- eObjectPicker.eGizmo.dimensions.MaxX = maxX + 1000;
- eObjectPicker.eGizmo.dimensions.MinY = minY + -100;
- eObjectPicker.eGizmo.dimensions.MaxY = maxY + 500;
- eObjectPicker.eGizmo.dimensions.MinZ = minZ + -1000;
- eObjectPicker.eGizmo.dimensions.MaxZ = maxZ + 1000;
- }
+void Editor::SetLevelDimensions(s16 minX, s16 maxX, s16 minZ, s16 maxZ, s16 minY, s16 maxY) {
+ eObjectPicker.eGizmo.dimensions.MinX = minX + -1000;
+ eObjectPicker.eGizmo.dimensions.MaxX = maxX + 1000;
+ eObjectPicker.eGizmo.dimensions.MinY = minY + -100;
+ eObjectPicker.eGizmo.dimensions.MaxY = maxY + 500;
+ eObjectPicker.eGizmo.dimensions.MinZ = minZ + -1000;
+ eObjectPicker.eGizmo.dimensions.MaxZ = maxZ + 1000;
}
+} // namespace Editor
diff --git a/src/engine/editor/Editor.h b/src/engine/editor/Editor.h
index 759c59355..3b5602818 100644
--- a/src/engine/editor/Editor.h
+++ b/src/engine/editor/Editor.h
@@ -9,10 +9,10 @@
#include "ObjectPicker.h"
namespace Editor {
- class ObjectPicker;
+class ObjectPicker;
- class Editor {
-public:
+class Editor {
+ public:
Editor();
ObjectPicker eObjectPicker;
@@ -20,8 +20,10 @@ public:
void Tick();
void Draw();
- void Load();
- GameObject* AddObject(const char* name, FVector* pos, IRotator* rot, FVector* scale, Gfx* model, float collScale, GameObject::CollisionType collision, float boundingBoxSize, int32_t* despawnFlag, int32_t despawnValue);
+ void Load();
+ GameObject* AddObject(const char* name, FVector* pos, IRotator* rot, FVector* scale, Gfx* model, float collScale,
+ GameObject::CollisionType collision, float boundingBoxSize, int32_t* despawnFlag,
+ int32_t despawnValue);
void AddLight(const char* name, FVector* pos, s8* rot);
void ClearObjects();
void RemoveObject();
@@ -31,7 +33,7 @@ public:
void DeleteObject();
bool bEditorEnabled = false;
-private:
+ private:
bool _draw = false;
Vec3f _ray;
@@ -39,7 +41,7 @@ private:
void Copy(MtxF* src, MtxF* dest);
void Clear(MtxF* mf);
};
-}
+} // namespace Editor
#endif
void SetLevelDimensions(s16 minX, s16 maxX, s16 minZ, s16 maxZ, s16 minY, s16 maxY);
diff --git a/src/engine/editor/EditorMath.cpp b/src/engine/editor/EditorMath.cpp
index 44923e08e..69029c797 100644
--- a/src/engine/editor/EditorMath.cpp
+++ b/src/engine/editor/EditorMath.cpp
@@ -55,24 +55,26 @@ FVector ScreenRayTrace() {
// Convert mouse to NDS screen coordinates
float x = (2.0f * mouse.x) / width - 1.0f; // Normalized X: -1 to 1
float y = 1.0f - (2.0f * mouse.y) / height; // Normalized Y: -1 to 1
- float z = 1.0f; // z is typically 1.0 for the near plane
+ float z = 1.0f; // z is typically 1.0 for the near plane
- FVector4 rayClip = {x, y, z, 1.0f};
+ FVector4 rayClip = { x, y, z, 1.0f };
Mat4 perspMtx;
u16 perspNorm;
- guPerspectiveF(perspMtx, &perspNorm, gCameraZoom[0], OTRGetAspectRatio(), CM_GetProps()->NearPersp, CM_GetProps()->FarPersp, 1.0f);
+ guPerspectiveF(perspMtx, &perspNorm, gCameraZoom[0], OTRGetAspectRatio(), CM_GetProps()->NearPersp,
+ CM_GetProps()->FarPersp, 1.0f);
Mat4 inversePerspMtx;
- if (InverseMatrix((float*)&perspMtx, (float*)&inversePerspMtx) != 2) {
- FVector4 rayEye = MultiplyMatrixVector(inversePerspMtx, (float*)&rayClip.x);
+ if (InverseMatrix((float*) &perspMtx, (float*) &inversePerspMtx) != 2) {
+ FVector4 rayEye = MultiplyMatrixVector(inversePerspMtx, (float*) &rayClip.x);
Mat4 lookAtMtx;
- guLookAtF(lookAtMtx, camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]);
+ guLookAtF(lookAtMtx, camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1],
+ camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]);
Mat4 inverseViewMtx;
- if (InverseMatrix((float*)&lookAtMtx, (float*)&inverseViewMtx[0][0]) != 2) {
+ if (InverseMatrix((float*) &lookAtMtx, (float*) &inverseViewMtx[0][0]) != 2) {
rayEye.w = 0;
- FVector4 invRayWor = MultiplyMatrixVector(inverseViewMtx, (float*)&rayEye.x);
+ FVector4 invRayWor = MultiplyMatrixVector(inverseViewMtx, (float*) &rayEye.x);
FVector direction;
direction = FVector(invRayWor.x, invRayWor.y, invRayWor.z);
@@ -91,12 +93,17 @@ bool QueryCollisionRayActor(Vec3f rayOrigin, Vec3f rayDir, Vec3f actorMin, Vec3f
float t1 = (actorMin[i] - rayOrigin[i]) / rayDir[i];
float t2 = (actorMax[i] - rayOrigin[i]) / rayDir[i];
- if (t1 > t2) { float temp = t1; t1 = t2; t2 = temp; }
+ if (t1 > t2) {
+ float temp = t1;
+ t1 = t2;
+ t2 = temp;
+ }
tmin = fmax(tmin, t1);
tmax = fmin(tmax, t2);
- if (tmax < tmin) return false; // No intersection
+ if (tmax < tmin)
+ return false; // No intersection
} else if (rayOrigin[i] < actorMin[i] || rayOrigin[i] > actorMax[i]) {
return false; // Ray is outside the slab
}
@@ -112,7 +119,7 @@ FVector4 MultiplyMatrixVector(float matrix[4][4], float vector[4]) {
for (int i = 0; i < 4; i++) {
resultPtr[i] = 0;
for (int j = 0; j < 4; j++) {
- resultPtr[i] += matrix[j][i] * vector[j]; // Swap [i][j] → [j][i] for column order
+ resultPtr[i] += matrix[j][i] * vector[j]; // Swap [i][j] → [j][i] for column order
}
}
return result;
@@ -205,10 +212,10 @@ FVector TransformVecDirection(const FVector& dir, const float mtx[4][4]) {
Ray RayToLocalSpace(MtxF mtx, const Ray& ray) {
MtxF inverse;
- if (InverseMatrix((float*)&mtx, (float*)&inverse) != 2) {
- FVector localRayOrigin = TransformVecByMatrix(ray.Origin, (float(*)[4])&inverse);
- FVector localRayDir = TransformVecDirection(ray.Direction, (float(*)[4])&inverse);
- return Ray{localRayOrigin, localRayDir.Normalize()};
+ if (InverseMatrix((float*) &mtx, (float*) &inverse) != 2) {
+ FVector localRayOrigin = TransformVecByMatrix(ray.Origin, (float(*)[4]) & inverse);
+ FVector localRayDir = TransformVecDirection(ray.Direction, (float(*)[4]) & inverse);
+ return Ray{ localRayOrigin, localRayDir.Normalize() };
}
return Ray{}; // Fail. Return empty ray
}
@@ -284,7 +291,7 @@ std::optional<FVector> QueryHandleIntersection(MtxF mtx, Ray ray, const Triangle
Ray localRay = RayToLocalSpace(mtx, ray);
if (IntersectRayTriangle(localRay, tri, t)) {
FVector localClickPosition = localRay.Origin + localRay.Direction * t;
- FVector worldClickPosition = TransformVecByMatrix(localClickPosition, (float(*)[4])&mtx);
+ FVector worldClickPosition = TransformVecByMatrix(localClickPosition, (float(*)[4]) & mtx);
return worldClickPosition; // Stop checking objects if we selected a Gizmo handle
}
@@ -327,7 +334,8 @@ bool IntersectRaySphere(const Ray& ray, const FVector& sphereCenter, float radiu
return false; // Sphere is behind the ray origin
}
-// bool FindClosestObject(const Ray& ray, const std::vector<GameObject*>& objects, GameObject* outObject, float& outDistance) {
+// bool FindClosestObject(const Ray& ray, const std::vector<GameObject*>& objects, GameObject* outObject, float&
+// outDistance) {
// float closestDist = std::numeric_limits<float>::max();
// bool found = false;
@@ -346,7 +354,7 @@ bool IntersectRaySphere(const Ray& ray, const FVector& sphereCenter, float radiu
// outDistance = closestDist;
// return true;
// }
-
+
// return false;
// }
@@ -381,8 +389,8 @@ float CalculateAngle(const FVector& start, const FVector& end) {
}
void SetDirectionFromRotator(IRotator rot, s8 direction[3]) {
- float yaw = (rot.yaw) * (M_PI / 32768.0f); // Convert from n64 binary angles 0-0xFFFF 0-360 degrees to radians
- float pitch = rot.pitch * (M_PI / 32768.0f);
+ float yaw = (rot.yaw) * (M_PI / 32768.0f); // Convert from n64 binary angles 0-0xFFFF 0-360 degrees to radians
+ float pitch = rot.pitch * (M_PI / 32768.0f);
// Compute unit direction vector
float x = cosf(yaw) * cosf(pitch);
@@ -394,7 +402,8 @@ void SetDirectionFromRotator(IRotator rot, s8 direction[3]) {
direction[1] = static_cast<s8>(y * 127.0f);
direction[2] = static_cast<s8>(z * 127.0f);
- //printf("Light dir %d %d %d (from rot 0x%X 0x%X 0x%X)\n", direction[0], direction[1], direction[2], rotator[0], rotator[1], rotator[2]);
+ // printf("Light dir %d %d %d (from rot 0x%X 0x%X 0x%X)\n", direction[0], direction[1], direction[2], rotator[0],
+ // rotator[1], rotator[2]);
}
void SetRotatorFromDirection(FVector direction, IRotator* rot) {
@@ -405,8 +414,8 @@ void SetRotatorFromDirection(FVector direction, IRotator* rot) {
float yaw = atan2f(-direction.z, direction.x);
// Convert back to N64 angles (0-0xFFFF range)
- rot->pitch = (s16)(pitch * (32768.0f / M_PI));
- rot->yaw = (s16)(yaw * (32768.0f / M_PI));
+ rot->pitch = (s16) (pitch * (32768.0f / M_PI));
+ rot->yaw = (s16) (yaw * (32768.0f / M_PI));
rot->roll = 0; // Assume no roll, since it's undefined from direction alone
}
@@ -421,10 +430,9 @@ FVector GetPositionAheadOfCamera(f32 dist) {
yaw = yaw * M_PI / 180.0f;
// Compute forward vector
- FVector forward(
- -sinf(yaw), // X
- -sinf(pitch), // Y
- cosf(yaw) // Z (vertical component)
+ FVector forward(-sinf(yaw), // X
+ -sinf(pitch), // Y
+ cosf(yaw) // Z (vertical component)
);
// Move 1000 units forward from the camera position
diff --git a/src/engine/editor/EditorMath.h b/src/engine/editor/EditorMath.h
index d5d75fe13..cc2dfcf34 100644
--- a/src/engine/editor/EditorMath.h
+++ b/src/engine/editor/EditorMath.h
@@ -26,9 +26,9 @@ struct Triangle {
/**
* Projects 2D cursor into the game world
- *
+ *
* @return FVector ray direction
- *
+ *
* ray.x = camera->pos[0] + direction.x * length;
* ray.y = camera->pos[1] + direction.y * length;
* ray.z = camera->pos[2] + direction.z * length;
@@ -45,7 +45,8 @@ FVector TransformVecByMatrix(const FVector& vec, const float mtx[4][4]);
FVector TransformVecDirection(const FVector& dir, const float mtx[4][4]);
Ray RayToLocalSpace(MtxF mtx, const Ray& ray);
bool IntersectRayTriangle(const Ray& ray, const Triangle& tri, float& t); // Uses local space not global space.
-bool IntersectRayTriangleAndTransform(const Ray& ray, FVector pos, const Triangle& tri, float& t); // Uses global space because no access to mtx
+bool IntersectRayTriangleAndTransform(const Ray& ray, FVector pos, const Triangle& tri,
+ float& t); // Uses global space because no access to mtx
bool IntersectRaySphere(const Ray& ray, const FVector& sphereCenter, float radius, float& t);
/**
* optional used here so we can check for successful query and return the click position
diff --git a/src/engine/editor/GameObject.cpp b/src/engine/editor/GameObject.cpp
index 6f52c8ac8..5145d8491 100644
--- a/src/engine/editor/GameObject.cpp
+++ b/src/engine/editor/GameObject.cpp
@@ -3,28 +3,30 @@
namespace Editor {
- GameObject::GameObject(const char* name, FVector* pos, IRotator* rot, FVector* scale, Gfx* model, std::vector<Triangle> triangles, CollisionType collision, float boundingBoxSize, int32_t* despawnFlag, int32_t despawnValue) {
- Name = name;
- Pos = pos;
- Rot = rot;
- Scale = scale;
- Model = model;
- Triangles = triangles;
- Collision = collision;
- BoundingBoxSize = boundingBoxSize;
- DespawnFlag = despawnFlag;
- DespawnValue = despawnValue;
- }
+GameObject::GameObject(const char* name, FVector* pos, IRotator* rot, FVector* scale, Gfx* model,
+ std::vector<Triangle> triangles, CollisionType collision, float boundingBoxSize,
+ int32_t* despawnFlag, int32_t despawnValue) {
+ Name = name;
+ Pos = pos;
+ Rot = rot;
+ Scale = scale;
+ Model = model;
+ Triangles = triangles;
+ Collision = collision;
+ BoundingBoxSize = boundingBoxSize;
+ DespawnFlag = despawnFlag;
+ DespawnValue = despawnValue;
+}
- GameObject::GameObject(FVector* pos, Vec3s* rot) {
- //Pos = pos;
- //Rot = rot;
- }
+GameObject::GameObject(FVector* pos, Vec3s* rot) {
+ // Pos = pos;
+ // Rot = rot;
+}
- GameObject::GameObject() {};
+GameObject::GameObject(){};
- void GameObject::Draw(){};
+void GameObject::Draw() {};
- void GameObject::Tick(){};
+void GameObject::Tick() {};
} // namespace Editor
diff --git a/src/engine/editor/GameObject.h b/src/engine/editor/GameObject.h
index ca08d8ba9..a8e269df9 100644
--- a/src/engine/editor/GameObject.h
+++ b/src/engine/editor/GameObject.h
@@ -14,31 +14,28 @@ extern "C" {
struct Triangle;
namespace Editor {
- class GameObject {
-public:
- enum class CollisionType {
- VTX_INTERSECT,
- BOUNDING_BOX,
- BOUNDING_SPHERE
- };
+class GameObject {
+ public:
+ enum class CollisionType { VTX_INTERSECT, BOUNDING_BOX, BOUNDING_SPHERE };
- GameObject(const char* name, FVector* pos, IRotator* rot, FVector* scale, Gfx* model, std::vector<Triangle> triangles, CollisionType collision, float boundingBoxSize, int32_t* despawnFlag, int32_t despawnValue);
- GameObject(FVector* pos, Vec3s* rot);
- GameObject();
- virtual void Tick();
- virtual void Draw();
- virtual void Load() {};
+ GameObject(const char* name, FVector* pos, IRotator* rot, FVector* scale, Gfx* model,
+ std::vector<Triangle> triangles, CollisionType collision, float boundingBoxSize, int32_t* despawnFlag,
+ int32_t despawnValue);
+ GameObject(FVector* pos, Vec3s* rot);
+ GameObject();
+ virtual void Tick();
+ virtual void Draw();
+ virtual void Load() {};
- const char* Name;
- FVector* Pos;
- IRotator* Rot;
- FVector* Scale;
- Gfx* Model;
- std::vector<Triangle> Triangles;
- CollisionType Collision;
- float BoundingBoxSize;
- int32_t* DespawnFlag;
- int32_t DespawnValue;
-
- };
-}
+ const char* Name;
+ FVector* Pos;
+ IRotator* Rot;
+ FVector* Scale;
+ Gfx* Model;
+ std::vector<Triangle> Triangles;
+ CollisionType Collision;
+ float BoundingBoxSize;
+ int32_t* DespawnFlag;
+ int32_t DespawnValue;
+};
+} // namespace Editor
diff --git a/src/engine/editor/Gizmo.cpp b/src/engine/editor/Gizmo.cpp
index 4987242f0..4923415b4 100644
--- a/src/engine/editor/Gizmo.cpp
+++ b/src/engine/editor/Gizmo.cpp
@@ -11,7 +11,6 @@
#include <controller/controldevice/controller/mapping/keyboard/KeyboardScancodes.h>
#include <window/Window.h>
-
#include "engine/actors/Ship.h"
#include "port/Game.h"
#include "Handles.h"
@@ -30,51 +29,51 @@ namespace Editor {
void Gizmo::Load() {
/* Translate handle collision */
RedCollision.Pos = &Pos;
- RedCollision.Model = (Gfx*)"__OTR__editor/gizmo/translate_handle_red";
+ RedCollision.Model = (Gfx*) "__OTR__editor/gizmo/translate_handle_red";
GreenCollision.Pos = &Pos;
- GreenCollision.Model = (Gfx*)"__OTR__editor/gizmo/translate_handle_green";
+ GreenCollision.Model = (Gfx*) "__OTR__editor/gizmo/translate_handle_green";
BlueCollision.Pos = &Pos;
- BlueCollision.Model = (Gfx*)"__OTR__editor/gizmo/translate_handle_blue";
+ BlueCollision.Model = (Gfx*) "__OTR__editor/gizmo/translate_handle_blue";
/* Rotate handle collision */
RedRotateCollision.Pos = &Pos;
- RedRotateCollision.Model = (Gfx*)"__OTR__editor/gizmo/rot_handle_red";
+ RedRotateCollision.Model = (Gfx*) "__OTR__editor/gizmo/rot_handle_red";
GreenRotateCollision.Pos = &Pos;
- GreenRotateCollision.Model = (Gfx*)"__OTR__editor/gizmo/rot_handle_green";
+ GreenRotateCollision.Model = (Gfx*) "__OTR__editor/gizmo/rot_handle_green";
BlueRotateCollision.Pos = &Pos;
- BlueRotateCollision.Model = (Gfx*)"__OTR__editor/gizmo/rot_handle_blue";
+ BlueRotateCollision.Model = (Gfx*) "__OTR__editor/gizmo/rot_handle_blue";
/* Scale handle collision */
RedScaleCollision.Pos = &Pos;
- RedScaleCollision.Model = (Gfx*)"__OTR__editor/gizmo/scale_handle_red";
+ RedScaleCollision.Model = (Gfx*) "__OTR__editor/gizmo/scale_handle_red";
GreenScaleCollision.Pos = &Pos;
- GreenScaleCollision.Model = (Gfx*)"__OTR__editor/gizmo/scale_handle_green";
+ GreenScaleCollision.Model = (Gfx*) "__OTR__editor/gizmo/scale_handle_green";
BlueScaleCollision.Pos = &Pos;
- BlueScaleCollision.Model = (Gfx*)"__OTR__editor/gizmo/scale_handle_blue";
+ BlueScaleCollision.Model = (Gfx*) "__OTR__editor/gizmo/scale_handle_blue";
- GenerateCollisionMesh(&RedCollision, (Gfx*)LOAD_ASSET_RAW(RedCollision.Model), 1.0f);
- GenerateCollisionMesh(&GreenCollision, (Gfx*)LOAD_ASSET_RAW(GreenCollision.Model), 1.0f);
- GenerateCollisionMesh(&BlueCollision, (Gfx*)LOAD_ASSET_RAW(BlueCollision.Model), 1.0f);
+ GenerateCollisionMesh(&RedCollision, (Gfx*) LOAD_ASSET_RAW(RedCollision.Model), 1.0f);
+ GenerateCollisionMesh(&GreenCollision, (Gfx*) LOAD_ASSET_RAW(GreenCollision.Model), 1.0f);
+ GenerateCollisionMesh(&BlueCollision, (Gfx*) LOAD_ASSET_RAW(BlueCollision.Model), 1.0f);
- GenerateCollisionMesh(&RedRotateCollision, (Gfx*)LOAD_ASSET_RAW(RedRotateCollision.Model), 1.0f);
- GenerateCollisionMesh(&GreenRotateCollision, (Gfx*)LOAD_ASSET_RAW(GreenRotateCollision.Model), 1.0f);
- GenerateCollisionMesh(&BlueRotateCollision, (Gfx*)LOAD_ASSET_RAW(BlueRotateCollision.Model), 1.0f);
+ GenerateCollisionMesh(&RedRotateCollision, (Gfx*) LOAD_ASSET_RAW(RedRotateCollision.Model), 1.0f);
+ GenerateCollisionMesh(&GreenRotateCollision, (Gfx*) LOAD_ASSET_RAW(GreenRotateCollision.Model), 1.0f);
+ GenerateCollisionMesh(&BlueRotateCollision, (Gfx*) LOAD_ASSET_RAW(BlueRotateCollision.Model), 1.0f);
- GenerateCollisionMesh(&RedScaleCollision, (Gfx*)LOAD_ASSET_RAW(RedScaleCollision.Model), 1.0f);
- GenerateCollisionMesh(&GreenScaleCollision, (Gfx*)LOAD_ASSET_RAW(GreenScaleCollision.Model), 1.0f);
- GenerateCollisionMesh(&BlueScaleCollision, (Gfx*)LOAD_ASSET_RAW(BlueScaleCollision.Model), 1.0f);
+ GenerateCollisionMesh(&RedScaleCollision, (Gfx*) LOAD_ASSET_RAW(RedScaleCollision.Model), 1.0f);
+ GenerateCollisionMesh(&GreenScaleCollision, (Gfx*) LOAD_ASSET_RAW(GreenScaleCollision.Model), 1.0f);
+ GenerateCollisionMesh(&BlueScaleCollision, (Gfx*) LOAD_ASSET_RAW(BlueScaleCollision.Model), 1.0f);
}
void Gizmo::Tick() {
if (Enabled) {
TranslationMode mode = static_cast<TranslationMode>(CVarGetInteger("eGizmoMode", 0));
- switch(mode) {
+ switch (mode) {
case TranslationMode::Move:
Gizmo::Translate();
break;
@@ -92,20 +91,12 @@ void Gizmo::Tick() {
void Gizmo::SetGizmo(GameObject* object, Ray ray) {
_selected = object;
_ray = ray.Direction;
- Pos = FVector(
- object->Pos->x,
- object->Pos->y,
- object->Pos->z
- );
+ Pos = FVector(object->Pos->x, object->Pos->y, object->Pos->z);
}
void Gizmo::SetGizmoNoCursor(GameObject* object) {
_selected = object;
- Pos = FVector(
- object->Pos->x,
- object->Pos->y,
- object->Pos->z
- );
+ Pos = FVector(object->Pos->x, object->Pos->y, object->Pos->z);
}
void Gizmo::Translate() {
@@ -117,13 +108,10 @@ void Gizmo::Translate() {
}
if (Enabled) {
- length = sqrt(
- pow(_selected->Pos->x - cameras[0].pos[0], 2) +
- pow(_selected->Pos->y - cameras[0].pos[1], 2) +
- pow(_selected->Pos->z - cameras[0].pos[2], 2)
- );
+ length = sqrt(pow(_selected->Pos->x - cameras[0].pos[0], 2) + pow(_selected->Pos->y - cameras[0].pos[1], 2) +
+ pow(_selected->Pos->z - cameras[0].pos[2], 2));
- switch(SelectedHandle) {
+ switch (SelectedHandle) {
case GizmoHandle::All_Axis:
_selected->Pos->x = (cameras[0].pos[0] + _ray.x * PickDistance) + _cursorOffset.x;
_selected->Pos->y = (cameras[0].pos[1] + _ray.y * PickDistance) + _cursorOffset.y;
@@ -160,11 +148,7 @@ void Gizmo::Translate() {
_selected->Pos->z = MIN(_selected->Pos->z, dimensions.MaxZ);
}
- Pos = FVector(
- _selected->Pos->x,
- _selected->Pos->y,
- _selected->Pos->z
- );
+ Pos = FVector(_selected->Pos->x, _selected->Pos->y, _selected->Pos->z);
}
}
@@ -189,7 +173,7 @@ void Gizmo::Rotate() {
// Store initial scale at the beginning of the drag
if (ManipulationStart) {
ManipulationStart = false;
- InitialRotation = *_selected->Rot; // Store initial rotation
+ InitialRotation = *_selected->Rot; // Store initial rotation
}
// Initial click position
@@ -202,13 +186,13 @@ void Gizmo::Rotate() {
diff = diff * 100.0f;
switch (SelectedHandle) {
case GizmoHandle::X_Axis:
- _selected->Rot->pitch = (uint16_t)InitialRotation.pitch + diff.x;
+ _selected->Rot->pitch = (uint16_t) InitialRotation.pitch + diff.x;
break;
case GizmoHandle::Y_Axis:
- _selected->Rot->yaw = (uint16_t)InitialRotation.yaw + diff.y;
+ _selected->Rot->yaw = (uint16_t) InitialRotation.yaw + diff.y;
break;
case GizmoHandle::Z_Axis:
- _selected->Rot->roll = (uint16_t)InitialRotation.roll + diff.z;
+ _selected->Rot->roll = (uint16_t) InitialRotation.roll + diff.z;
break;
}
}
@@ -257,20 +241,20 @@ void Gizmo::Scale() {
void Gizmo::Draw() {
if (Enabled) {
DrawHandles();
- //DebugCollision(&RedCollision, Pos, {0, 0, 0}, {0.05f, 0.05f, 0.05f}, RedCollision.Triangles);
- //DebugCollision(&BlueCollision, Pos, {90, 0, 0}, {0.05f, 0.05f, 0.05f}, BlueCollision.Triangles);
- //DebugCollision(&GreenCollision, Pos, {0, 90, 0}, {0.05f, 0.05f, 0.05f}, GreenCollision.Triangles);
- //DebugCollision(&RedRotateCollision, Pos, {0, 0, 0}, {0.15f, 0.15f, 0.15f}, RedRotateCollision.Triangles);
- //DebugCollision((uintptr_t)_selected, Pos, BlueRotateCollision.Triangles);
- //DebugCollision((uintptr_t)_selected, Pos, GreenRotateCollision.Triangles);
+ // DebugCollision(&RedCollision, Pos, {0, 0, 0}, {0.05f, 0.05f, 0.05f}, RedCollision.Triangles);
+ // DebugCollision(&BlueCollision, Pos, {90, 0, 0}, {0.05f, 0.05f, 0.05f}, BlueCollision.Triangles);
+ // DebugCollision(&GreenCollision, Pos, {0, 90, 0}, {0.05f, 0.05f, 0.05f}, GreenCollision.Triangles);
+ // DebugCollision(&RedRotateCollision, Pos, {0, 0, 0}, {0.15f, 0.15f, 0.15f}, RedRotateCollision.Triangles);
+ // DebugCollision((uintptr_t)_selected, Pos, BlueRotateCollision.Triangles);
+ // DebugCollision((uintptr_t)_selected, Pos, GreenRotateCollision.Triangles);
}
}
void Gizmo::DrawHandles() {
Mat4 mainMtx;
- Editor_MatrixIdentity((float(*)[4])&Mtx_RedX);
- Editor_MatrixIdentity((float(*)[4])&Mtx_GreenY);
- Editor_MatrixIdentity((float(*)[4])&Mtx_BlueZ);
+ Editor_MatrixIdentity((float(*)[4]) & Mtx_RedX);
+ Editor_MatrixIdentity((float(*)[4]) & Mtx_GreenY);
+ Editor_MatrixIdentity((float(*)[4]) & Mtx_BlueZ);
const char* blueHandle;
const char* greenHandle;
@@ -279,18 +263,18 @@ void Gizmo::DrawHandles() {
IRotator blueRot;
IRotator greenRot;
IRotator redRot;
- FVector scale = {0.05f, 0.05f, 0.05f};
+ FVector scale = { 0.05f, 0.05f, 0.05f };
- switch(static_cast<TranslationMode>(CVarGetInteger("eGizmoMode", 0))) {
+ switch (static_cast<TranslationMode>(CVarGetInteger("eGizmoMode", 0))) {
case TranslationMode::Move:
center = "__OTR__editor/gizmo/center_handle";
blueHandle = "__OTR__editor/gizmo/translate_handle_blue";
greenHandle = "__OTR__editor/gizmo/translate_handle_green";
redHandle = "__OTR__editor/gizmo/translate_handle_red";
_gizmoOffset = 8.0f;
- greenRot = {0, 90, 0};
- blueRot = {90, 0, 0};
- scale = {0.3, 0.3, 0.3};
+ greenRot = { 0, 90, 0 };
+ blueRot = { 90, 0, 0 };
+ scale = { 0.3, 0.3, 0.3 };
break;
case TranslationMode::Rotate:
center = nullptr; // No All_Axis drag button for Rotation
@@ -298,7 +282,7 @@ void Gizmo::DrawHandles() {
greenHandle = "__OTR__editor/gizmo/rot_handle_green";
redHandle = "__OTR__editor/gizmo/rot_handle_red";
_gizmoOffset = 0.0f;
- scale = {0.15f, 0.15f, 0.15f};
+ scale = { 0.15f, 0.15f, 0.15f };
break;
case TranslationMode::Scale:
center = "__OTR__editor/gizmo/center_handle";
@@ -306,13 +290,13 @@ void Gizmo::DrawHandles() {
greenHandle = "__OTR__editor/gizmo/scale_handle_green";
redHandle = "__OTR__editor/gizmo/scale_handle_red";
_gizmoOffset = 8.0f;
- greenRot = {0, 90, 0};
- blueRot = {90, 0, 0};
- scale = {0.05f, 0.05f, 0.05f};
+ greenRot = { 0, 90, 0 };
+ blueRot = { 90, 0, 0 };
+ scale = { 0.05f, 0.05f, 0.05f };
break;
}
- ApplyMatrixTransformations(mainMtx, Pos, Rot, {1, 1, 1});
+ ApplyMatrixTransformations(mainMtx, Pos, Rot, { 1, 1, 1 });
Editor_AddMatrix(mainMtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
if (center) {
@@ -330,19 +314,20 @@ void Gizmo::DrawHandles() {
ApplyMatrixTransformations(CenterMtx, Pos, centerRot, FVector(0.06f, 0.06f, 0.06f));
Editor_AddMatrix(CenterMtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, (Gfx*)center);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) center);
}
- ApplyMatrixTransformations((float(*)[4])&Mtx_RedX, FVector(Pos.x, Pos.y, Pos.z - _gizmoOffset), Rot, scale);
- Editor_AddMatrix((float(*)[4])&Mtx_RedX, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, (Gfx*)redHandle);
+ ApplyMatrixTransformations((float(*)[4]) & Mtx_RedX, FVector(Pos.x, Pos.y, Pos.z - _gizmoOffset), Rot, scale);
+ Editor_AddMatrix((float(*)[4]) & Mtx_RedX, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) redHandle);
- ApplyMatrixTransformations((float(*)[4])&Mtx_GreenY, FVector(Pos.x - _gizmoOffset, Pos.y, Pos.z), greenRot, scale);
- Editor_AddMatrix((float(*)[4])&Mtx_GreenY, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, (Gfx*)greenHandle);
+ ApplyMatrixTransformations((float(*)[4]) & Mtx_GreenY, FVector(Pos.x - _gizmoOffset, Pos.y, Pos.z), greenRot,
+ scale);
+ Editor_AddMatrix((float(*)[4]) & Mtx_GreenY, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) greenHandle);
- ApplyMatrixTransformations((float(*)[4])&Mtx_BlueZ, FVector(Pos.x, Pos.y + _gizmoOffset, Pos.z), blueRot, scale);
- Editor_AddMatrix((float(*)[4])&Mtx_BlueZ, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, (Gfx*)blueHandle);
-}
+ ApplyMatrixTransformations((float(*)[4]) & Mtx_BlueZ, FVector(Pos.x, Pos.y + _gizmoOffset, Pos.z), blueRot, scale);
+ Editor_AddMatrix((float(*)[4]) & Mtx_BlueZ, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) blueHandle);
}
+} // namespace Editor
diff --git a/src/engine/editor/Gizmo.h b/src/engine/editor/Gizmo.h
index 47ef99549..3ce55bf1d 100644
--- a/src/engine/editor/Gizmo.h
+++ b/src/engine/editor/Gizmo.h
@@ -8,21 +8,10 @@
namespace Editor {
class Gizmo {
-public:
-
- enum class GizmoHandle {
- None,
- All_Axis,
- X_Axis,
- Y_Axis,
- Z_Axis
- };
+ public:
+ enum class GizmoHandle { None, All_Axis, X_Axis, Y_Axis, Z_Axis };
- enum class TranslationMode {
- Move,
- Rotate,
- Scale
- };
+ enum class TranslationMode { Move, Rotate, Scale };
void Tick();
void Draw();
@@ -48,8 +37,8 @@ public:
bool Enabled;
bool ManipulationStart = true;
- FVector InitialScale = {1, 1, 1};
- IRotator InitialRotation = {0, 0, 0};
+ FVector InitialScale = { 1, 1, 1 };
+ IRotator InitialRotation = { 0, 0, 0 };
GizmoHandle SelectedHandle;
GameObject RedCollision;
@@ -69,17 +58,18 @@ public:
MtxF Mtx_BlueZ;
FVector Pos; // Global scene view
- IRotator Rot = {0, 0, 0};
+ IRotator Rot = { 0, 0, 0 };
float AllAxisRadius = 3.0f; // Free move selection radius
float PickDistance;
FVector _cursorOffset;
float _gizmoOffset = 8.0f;
float HandleSize = 2.0f;
-
+
FVector _ray;
GameObject* _selected = nullptr;
- private:
+
+ private:
bool _draw = false;
};
-}
+} // namespace Editor
diff --git a/src/engine/editor/Handles.cpp b/src/engine/editor/Handles.cpp
index 9074a2b45..73a0211c5 100644
--- a/src/engine/editor/Handles.cpp
+++ b/src/engine/editor/Handles.cpp
@@ -4,20 +4,17 @@
#include "Handles.h"
namespace Editor {
- Handles::Handles() {
- Pos = &pos;
- Rot = &rot;
- }
+Handles::Handles() {
+ Pos = &pos;
+ Rot = &rot;
+}
- void Handles::Load() {
+void Handles::Load() {
+}
- }
+void Handles::Tick() {
+}
- void Handles::Tick() {
-
- }
-
- void Handles::Draw() {
-
- }
-} \ No newline at end of file
+void Handles::Draw() {
+}
+} // namespace Editor
diff --git a/src/engine/editor/Handles.h b/src/engine/editor/Handles.h
index 1faa4b59e..68825f086 100644
--- a/src/engine/editor/Handles.h
+++ b/src/engine/editor/Handles.h
@@ -5,15 +5,15 @@
#include "GameObject.h"
namespace Editor {
- class Handles : public GameObject {
+class Handles : public GameObject {
- Handles();
+ Handles();
- virtual void Tick() override;
- virtual void Draw() override;
- virtual void Load() override;
+ virtual void Tick() override;
+ virtual void Draw() override;
+ virtual void Load() override;
- FVector pos;
- IRotator rot;
- };
-}
+ FVector pos;
+ IRotator rot;
+};
+} // namespace Editor
diff --git a/src/engine/editor/Light.cpp b/src/engine/editor/Light.cpp
index 594383bd3..c4a368421 100644
--- a/src/engine/editor/Light.cpp
+++ b/src/engine/editor/Light.cpp
@@ -30,55 +30,55 @@ namespace Editor {
size_t LightObject::NumLights = 0;
- LightObject::LightObject(const char* name, FVector* pos, s8* direction) : GameObject(nullptr, nullptr) {
- Name = name;
- Pos = &LightPos;
- Rot = &LightRot;
- Scale = &LightScale;
-
- DespawnFlag = &_despawnFlag;
- DespawnValue = -1;
-
- Direction = direction;
-
- Collision = CollisionType::BOUNDING_BOX;
- BoundingBoxSize = 4.0f;
-
- NumLights += 1;
- }
-
- void LightObject::Load() {
- }
-
- void LightObject::Tick() {
- SetDirectionFromRotator(*Rot, Direction);
- }
- void LightObject::Draw() {
- Mat4 mtx_sun;
- Editor_MatrixIdentity(mtx_sun);
- gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
- gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
-
-
- // Calculate camera-to-object distance
- FVector cameraDir = FVector(LightPos.x - cameras[0].pos[0], LightPos.y - cameras[0].pos[1], LightPos.z - cameras[0].pos[2]);
- cameraDir = cameraDir.Normalize();
-
- IRotator centerRot;
- SetRotatorFromDirection(cameraDir, &centerRot);
-
- // Account for object not facing the correct direction when exported
- centerRot.yaw += 0x4000;
- ApplyMatrixTransformations(mtx_sun, LightPos, centerRot, LightScale);
- Editor_AddMatrix(mtx_sun, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, sun_LightModel_mesh);
-
- // Draw Arrow
- Mat4 mtx_arrow;
- IRotator rot = LightRot;
- rot.yaw += 0x4000;
- ApplyMatrixTransformations(mtx_arrow, LightPos, rot, LightScale);
- Editor_AddMatrix(mtx_arrow, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, (Gfx*)"__OTR__editor/light/sun_arrow");
- }
+LightObject::LightObject(const char* name, FVector* pos, s8* direction) : GameObject(nullptr, nullptr) {
+ Name = name;
+ Pos = &LightPos;
+ Rot = &LightRot;
+ Scale = &LightScale;
+
+ DespawnFlag = &_despawnFlag;
+ DespawnValue = -1;
+
+ Direction = direction;
+
+ Collision = CollisionType::BOUNDING_BOX;
+ BoundingBoxSize = 4.0f;
+
+ NumLights += 1;
+}
+
+void LightObject::Load() {
+}
+
+void LightObject::Tick() {
+ SetDirectionFromRotator(*Rot, Direction);
+}
+void LightObject::Draw() {
+ Mat4 mtx_sun;
+ Editor_MatrixIdentity(mtx_sun);
+ gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
+ gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
+
+ // Calculate camera-to-object distance
+ FVector cameraDir =
+ FVector(LightPos.x - cameras[0].pos[0], LightPos.y - cameras[0].pos[1], LightPos.z - cameras[0].pos[2]);
+ cameraDir = cameraDir.Normalize();
+
+ IRotator centerRot;
+ SetRotatorFromDirection(cameraDir, &centerRot);
+
+ // Account for object not facing the correct direction when exported
+ centerRot.yaw += 0x4000;
+ ApplyMatrixTransformations(mtx_sun, LightPos, centerRot, LightScale);
+ Editor_AddMatrix(mtx_sun, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(gDisplayListHead++, sun_LightModel_mesh);
+
+ // Draw Arrow
+ Mat4 mtx_arrow;
+ IRotator rot = LightRot;
+ rot.yaw += 0x4000;
+ ApplyMatrixTransformations(mtx_arrow, LightPos, rot, LightScale);
+ Editor_AddMatrix(mtx_arrow, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) "__OTR__editor/light/sun_arrow");
}
+} // namespace Editor
diff --git a/src/engine/editor/Light.h b/src/engine/editor/Light.h
index 972942663..690b7ae1d 100644
--- a/src/engine/editor/Light.h
+++ b/src/engine/editor/Light.h
@@ -9,7 +9,7 @@
namespace Editor {
class LightObject : public GameObject {
-public:
+ public:
LightObject(const char* name, FVector* pos, s8* direction);
virtual void Draw() override;
@@ -19,2125 +19,984 @@ public:
static size_t NumLights;
FVector LightPos = FVector(0, 100, 0);
IRotator LightRot = IRotator(0, 0, 0);
- FVector LightScale = FVector(0.1, 0.1, 0.1);
+ FVector LightScale = FVector(0.1, 0.1, 0.1);
s8* Direction;
s32 _despawnFlag = 0;
-u8 sun_sun_rgba32[16384] = {
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xed, 0x8e, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xe4, 0x85, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xfb, 0x9d, 0x01, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xdb, 0x7d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xac, 0x01, 0xff,
- 0xe5, 0x87, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xae, 0x01, 0xff,
- 0xd1, 0x72, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xba, 0x00, 0xff,
- 0xff, 0xaa, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xc4, 0x01, 0xff, 0xfe, 0xba, 0x00, 0xff,
- 0xc6, 0x67, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xc9, 0x00, 0xff,
- 0xff, 0xc8, 0x01, 0xff, 0xda, 0x7c, 0x01, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xd9, 0x00, 0xff,
- 0xff, 0xd1, 0x01, 0xff, 0xff, 0xc0, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xd8, 0x00, 0xff,
- 0xff, 0xd8, 0x01, 0xff, 0xfe, 0xa2, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xe5, 0x00, 0xff,
- 0xff, 0xde, 0x00, 0xff, 0xff, 0xb8, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xe8, 0x01, 0xff,
- 0xff, 0xe9, 0x01, 0xff, 0xff, 0xcc, 0x01, 0xff,
- 0xcd, 0x6f, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xf9, 0x00, 0xff, 0xff, 0xf3, 0x00, 0xff,
- 0xff, 0xec, 0x00, 0xff, 0xff, 0xae, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xfe, 0xf5, 0x00, 0xff,
- 0xff, 0xf8, 0x00, 0xff, 0xff, 0xf2, 0x00, 0xff,
- 0xf8, 0x99, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xfa, 0x01, 0xff, 0xff, 0xa5, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xca, 0x00, 0xff, 0xc1, 0x63, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xfd, 0x01, 0xff, 0xf6, 0x98, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xef, 0x91, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xf6, 0x01, 0xff, 0xef, 0x91, 0x00, 0xff,
- 0xbc, 0x5e, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xf9, 0x01, 0xff, 0xeb, 0x8c, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xfe, 0xa0, 0x01, 0xff,
- 0xef, 0x91, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xfd, 0x9e, 0x00, 0xff,
- 0xff, 0xa4, 0x00, 0xff, 0xcf, 0x70, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xc6, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xf3, 0x01, 0xff, 0xdc, 0x7e, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xc2, 0x01, 0xff,
- 0xff, 0xb3, 0x00, 0xff, 0xff, 0xa4, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xb3, 0x01, 0xff, 0xff, 0xb9, 0x01, 0xff,
- 0xe2, 0x84, 0x01, 0xff, 0xbb, 0x5c, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xf7, 0x01, 0xff,
- 0xe1, 0x82, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5e, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xec, 0x00, 0xff, 0xcd, 0x6e, 0x00, 0xff,
- 0xbc, 0x5d, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xe4, 0x00, 0xff,
- 0xff, 0xd7, 0x01, 0xff, 0xff, 0xc9, 0x01, 0xff,
- 0xff, 0xb9, 0x00, 0xff, 0xcf, 0x70, 0x01, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xc0, 0x00, 0xff, 0xff, 0xc7, 0x00, 0xff,
- 0xff, 0xcf, 0x01, 0xff, 0xf8, 0x99, 0x01, 0xff,
- 0xbc, 0x5e, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xbe, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xe5, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xf8, 0x00, 0xff, 0xff, 0xeb, 0x00, 0xff,
- 0xff, 0xde, 0x00, 0xff, 0xff, 0xcf, 0x00, 0xff,
- 0xe1, 0x82, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xd5, 0x00, 0xff,
- 0xfe, 0xdc, 0x00, 0xff, 0xff, 0xe7, 0x01, 0xff,
- 0xff, 0xb2, 0x00, 0xff, 0xd0, 0x72, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xf7, 0x00, 0xff, 0xea, 0x8b, 0x00, 0xff,
- 0xfc, 0x9e, 0x00, 0xff, 0xff, 0xb0, 0x01, 0xff,
- 0xff, 0xb1, 0x00, 0xff, 0xff, 0xa2, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xdc, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbb, 0x5c, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xf4, 0x00, 0xff,
- 0xff, 0xe7, 0x01, 0xff, 0xf6, 0x98, 0x00, 0xff,
- 0xbb, 0x5c, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xe1, 0x00, 0xff,
- 0xff, 0xea, 0x00, 0xff, 0xff, 0xf3, 0x01, 0xff,
- 0xfe, 0xfc, 0x00, 0xff, 0xfe, 0xcb, 0x00, 0xff,
- 0xe2, 0x84, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5e, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xa2, 0x00, 0xff, 0xfe, 0xb5, 0x00, 0xff,
- 0xff, 0xc9, 0x01, 0xff, 0xff, 0xda, 0x01, 0xff,
- 0xff, 0xe1, 0x01, 0xff, 0xff, 0xe6, 0x01, 0xff,
- 0xff, 0xe7, 0x01, 0xff, 0xff, 0xe2, 0x01, 0xff,
- 0xff, 0xda, 0x01, 0xff, 0xfe, 0xcb, 0x00, 0xff,
- 0xff, 0xbd, 0x00, 0xff, 0xff, 0xaa, 0x01, 0xff,
- 0xf1, 0x93, 0x00, 0xff, 0xda, 0x7c, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xfd, 0x00, 0xff,
- 0xff, 0xb0, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xff, 0xf5, 0x01, 0xff, 0xff, 0xfe, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xe3, 0x00, 0xff, 0xff, 0xa0, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xb7, 0x00, 0xff,
- 0xff, 0xd4, 0x00, 0xff, 0xff, 0xdc, 0x01, 0xff,
- 0xff, 0xe2, 0x01, 0xff, 0xff, 0xe8, 0x01, 0xff,
- 0xff, 0xee, 0x00, 0xff, 0xfe, 0xf3, 0x00, 0xff,
- 0xfe, 0xf7, 0x00, 0xff, 0xff, 0xfd, 0x00, 0xff,
- 0xfe, 0xfc, 0x00, 0xff, 0xfe, 0xf9, 0x00, 0xff,
- 0xff, 0xf5, 0x01, 0xff, 0xff, 0xf0, 0x01, 0xff,
- 0xff, 0xe9, 0x00, 0xff, 0xff, 0xe3, 0x01, 0xff,
- 0xff, 0xdc, 0x00, 0xff, 0xff, 0xd4, 0x00, 0xff,
- 0xff, 0xb9, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xcb, 0x01, 0xff,
- 0xce, 0x6f, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xca, 0x00, 0xff, 0xd5, 0x76, 0x01, 0xff,
- 0xbc, 0x5e, 0x01, 0xff, 0xfa, 0x9b, 0x01, 0xff,
- 0xfe, 0xd2, 0x00, 0xff, 0xfe, 0xe2, 0x00, 0xff,
- 0xff, 0xf0, 0x00, 0xff, 0xfe, 0xf5, 0x00, 0xff,
- 0xff, 0xfc, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xfe, 0x01, 0xff,
- 0xff, 0xf7, 0x00, 0xff, 0xfe, 0xf0, 0x00, 0xff,
- 0xff, 0xe4, 0x01, 0xff, 0xff, 0xd4, 0x01, 0xff,
- 0xff, 0xa7, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xe2, 0x01, 0xff, 0xe0, 0x82, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xd4, 0x75, 0x00, 0xff,
- 0xff, 0xbb, 0x00, 0xff, 0xfe, 0xd7, 0x00, 0xff,
- 0xff, 0xe8, 0x01, 0xff, 0xff, 0xf7, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xf8, 0x00, 0xff, 0xff, 0xeb, 0x00, 0xff,
- 0xff, 0xda, 0x00, 0xff, 0xff, 0xc1, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfb, 0x9d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xf6, 0x98, 0x01, 0xff, 0xff, 0xcb, 0x01, 0xff,
- 0xff, 0xdc, 0x01, 0xff, 0xff, 0xed, 0x01, 0xff,
- 0xff, 0xfb, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xf1, 0x01, 0xff, 0xff, 0xdf, 0x00, 0xff,
- 0xff, 0xcc, 0x00, 0xff, 0xf6, 0x97, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xc6, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xca, 0x00, 0xff, 0xfe, 0xe3, 0x00, 0xff,
- 0xfe, 0xf3, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xf5, 0x00, 0xff,
- 0xff, 0xe3, 0x00, 0xff, 0xff, 0xca, 0x01, 0xff,
- 0xd1, 0x73, 0x01, 0xff, 0xcf, 0x71, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xbc, 0x01, 0xff,
- 0xff, 0xdb, 0x00, 0xff, 0xff, 0xf4, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xf3, 0x01, 0xff, 0xff, 0xd9, 0x01, 0xff,
- 0xff, 0xb6, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xfd, 0x9f, 0x00, 0xff, 0xff, 0xd3, 0x00, 0xff,
- 0xff, 0xec, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xe7, 0x00, 0xff,
- 0xff, 0xd1, 0x01, 0xff, 0xf1, 0x92, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xc9, 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff,
- 0xfe, 0xf8, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xf5, 0x01, 0xff,
- 0xff, 0xe0, 0x01, 0xff, 0xff, 0xc8, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xcf, 0x71, 0x00, 0xff, 0xc7, 0x68, 0x01, 0xff,
- 0xbd, 0x5e, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5e, 0x01, 0xff, 0xbc, 0x5d, 0x00, 0xff,
- 0xbc, 0x5e, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x00, 0xff, 0xff, 0xaa, 0x00, 0xff,
- 0xff, 0xd8, 0x01, 0xff, 0xff, 0xef, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xed, 0x00, 0xff, 0xff, 0xd7, 0x01, 0xff,
- 0xff, 0xa9, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xf6, 0x00, 0xff,
- 0xff, 0xe7, 0x01, 0xff, 0xff, 0xd7, 0x01, 0xff,
- 0xff, 0xc7, 0x01, 0xff, 0xff, 0xb8, 0x01, 0xff,
- 0xff, 0xa7, 0x00, 0xff, 0xf6, 0x98, 0x00, 0xff,
- 0xe7, 0x89, 0x01, 0xff, 0xd9, 0x7b, 0x01, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xf8, 0x99, 0x00, 0xff, 0xff, 0xa6, 0x00, 0xff,
- 0xff, 0xac, 0x00, 0xff, 0xff, 0xa4, 0x00, 0xff,
- 0xfa, 0x9b, 0x01, 0xff, 0xf0, 0x91, 0x00, 0xff,
- 0xe4, 0x85, 0x00, 0xff, 0xd9, 0x7a, 0x01, 0xff,
- 0xcb, 0x6c, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff,
- 0xbb, 0x5c, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xca, 0x6b, 0x01, 0xff, 0xff, 0xc5, 0x00, 0xff,
- 0xff, 0xe4, 0x01, 0xff, 0xfe, 0xfa, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xfb, 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff,
- 0xff, 0xc5, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xf8, 0x00, 0xff,
- 0xff, 0xe7, 0x00, 0xff, 0xff, 0xd7, 0x00, 0xff,
- 0xff, 0xc5, 0x00, 0xff, 0xff, 0xb4, 0x00, 0xff,
- 0xf4, 0x95, 0x00, 0xff, 0xd0, 0x71, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xaf, 0x00, 0xff,
- 0xff, 0xbc, 0x01, 0xff, 0xff, 0xca, 0x01, 0xff,
- 0xff, 0xd9, 0x00, 0xff, 0xff, 0xe9, 0x01, 0xff,
- 0xff, 0xec, 0x00, 0xff, 0xff, 0xe8, 0x01, 0xff,
- 0xff, 0xe2, 0x01, 0xff, 0xff, 0xdc, 0x00, 0xff,
- 0xff, 0xd5, 0x00, 0xff, 0xff, 0xcd, 0x01, 0xff,
- 0xdf, 0x80, 0x00, 0xff, 0xfe, 0xcb, 0x00, 0xff,
- 0xff, 0xe9, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xe8, 0x01, 0xff,
- 0xff, 0xcc, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xfa, 0x00, 0xff,
- 0xff, 0xe0, 0x00, 0xff, 0xff, 0xb8, 0x00, 0xff,
- 0xec, 0x8e, 0x01, 0xff, 0xc4, 0x65, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xc4, 0x00, 0xff, 0xff, 0xd1, 0x00, 0xff,
- 0xff, 0xdf, 0x01, 0xff, 0xfe, 0xed, 0x00, 0xff,
- 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xf4, 0x96, 0x01, 0xff, 0xff, 0xd1, 0x00, 0xff,
- 0xff, 0xee, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xec, 0x01, 0xff,
- 0xff, 0xd0, 0x00, 0xff, 0xec, 0x8d, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xe4, 0x01, 0xff, 0xfe, 0xb5, 0x00, 0xff,
- 0xe2, 0x83, 0x01, 0xff, 0xbc, 0x5d, 0x00, 0xff,
- 0xbb, 0x5c, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xfe, 0xe4, 0x00, 0xff, 0xff, 0xf2, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xa8, 0x00, 0xff, 0xff, 0xd6, 0x00, 0xff,
- 0xff, 0xf3, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xef, 0x00, 0xff,
- 0xff, 0xd5, 0x01, 0xff, 0xff, 0xa0, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xe3, 0x00, 0xff, 0xff, 0xaf, 0x00, 0xff,
- 0xd8, 0x79, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xff, 0xf7, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xb5, 0x00, 0xff, 0xff, 0xdb, 0x01, 0xff,
- 0xff, 0xf6, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xf4, 0x01, 0xff,
- 0xff, 0xd9, 0x00, 0xff, 0xfe, 0xb1, 0x00, 0xff,
- 0xff, 0xe2, 0x00, 0xff, 0xff, 0xa6, 0x00, 0xff,
- 0xc9, 0x6a, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xc3, 0x00, 0xff, 0xff, 0xe0, 0x01, 0xff,
- 0xff, 0xf9, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xf7, 0x00, 0xff,
- 0xff, 0xde, 0x01, 0xff, 0xfe, 0xc2, 0x00, 0xff,
- 0xd0, 0x72, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xe5, 0x87, 0x01, 0xff,
- 0xff, 0xc9, 0x01, 0xff, 0xfe, 0xe2, 0x00, 0xff,
- 0xff, 0xfb, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xfa, 0x00, 0xff,
- 0xff, 0xe2, 0x01, 0xff, 0xff, 0xc9, 0x01, 0xff,
- 0xe1, 0x83, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xfe, 0xff, 0x00, 0xff, 0xf4, 0x95, 0x01, 0xff,
- 0xff, 0xcd, 0x01, 0xff, 0xff, 0xe5, 0x00, 0xff,
- 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xfd, 0x01, 0xff,
- 0xff, 0xe4, 0x00, 0xff, 0xff, 0xcc, 0x00, 0xff,
- 0xf2, 0x93, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xbb, 0x5d, 0x00, 0xff, 0xf1, 0x92, 0x01, 0xff,
- 0xff, 0xca, 0x00, 0xff, 0xff, 0xe3, 0x01, 0xff,
- 0xff, 0xfc, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xfb, 0x00, 0xff,
- 0xff, 0xe3, 0x00, 0xff, 0xff, 0xcb, 0x00, 0xff,
- 0xf2, 0x93, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xdd, 0x7f, 0x00, 0xff,
- 0xff, 0xc4, 0x00, 0xff, 0xff, 0xdd, 0x00, 0xff,
- 0xff, 0xf6, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xf7, 0x00, 0xff,
- 0xff, 0xde, 0x01, 0xff, 0xfe, 0xc4, 0x00, 0xff,
- 0xe1, 0x82, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xca, 0x6b, 0x01, 0xff,
- 0xff, 0xbb, 0x00, 0xff, 0xff, 0xd7, 0x00, 0xff,
- 0xff, 0xf1, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xf2, 0x01, 0xff,
- 0xff, 0xd9, 0x01, 0xff, 0xff, 0xbc, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x00, 0xff, 0xbf, 0x60, 0x00, 0xff,
- 0xfc, 0x9e, 0x00, 0xff, 0xff, 0xdb, 0x00, 0xff,
- 0xfe, 0xa8, 0x00, 0xff, 0xfe, 0xcf, 0x00, 0xff,
- 0xff, 0xea, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xed, 0x01, 0xff,
- 0xff, 0xd1, 0x00, 0xff, 0xff, 0xac, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xfe, 0x01, 0xff,
- 0xff, 0xf0, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbb, 0x5c, 0x00, 0xff, 0xcd, 0x6f, 0x00, 0xff,
- 0xff, 0xa5, 0x01, 0xff, 0xff, 0xd9, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xf2, 0x94, 0x00, 0xff, 0xff, 0xc9, 0x01, 0xff,
- 0xff, 0xe3, 0x00, 0xff, 0xff, 0xfb, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xfc, 0x01, 0xff, 0xff, 0xe6, 0x01, 0xff,
- 0xff, 0xc9, 0x00, 0xff, 0xf9, 0x9b, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xf9, 0x01, 0xff,
- 0xff, 0xea, 0x01, 0xff, 0xff, 0xdd, 0x01, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbc, 0x5d, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xd6, 0x77, 0x01, 0xff,
- 0xff, 0xa9, 0x00, 0xff, 0xff, 0xd7, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xdc, 0x7e, 0x00, 0xff, 0xfe, 0xc1, 0x00, 0xff,
- 0xff, 0xdd, 0x01, 0xff, 0xfe, 0xf4, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xf6, 0x01, 0xff, 0xff, 0xdf, 0x01, 0xff,
- 0xff, 0xc2, 0x00, 0xff, 0xe4, 0x86, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xf3, 0x00, 0xff,
- 0xff, 0xe3, 0x00, 0xff, 0xff, 0xd5, 0x01, 0xff,
- 0xff, 0xc7, 0x01, 0xff, 0xff, 0xb9, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5e, 0x01, 0xff, 0xde, 0x80, 0x00, 0xff,
- 0xff, 0xaa, 0x01, 0xff, 0xff, 0xd3, 0x00, 0xff,
- 0xff, 0xed, 0x01, 0xff, 0xff, 0xfd, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xba, 0x00, 0xff,
- 0xfe, 0xd5, 0x00, 0xff, 0xff, 0xee, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xee, 0x00, 0xff, 0xff, 0xd7, 0x01, 0xff,
- 0xff, 0xba, 0x01, 0xff, 0xcd, 0x6e, 0x01, 0xff,
- 0xff, 0xba, 0x01, 0xff, 0xff, 0xc4, 0x01, 0xff,
- 0xff, 0xcc, 0x00, 0xff, 0xff, 0xd3, 0x01, 0xff,
- 0xff, 0xd9, 0x00, 0xff, 0xfe, 0xde, 0x00, 0xff,
- 0xff, 0xdc, 0x00, 0xff, 0xfe, 0xcc, 0x00, 0xff,
- 0xff, 0xbe, 0x01, 0xff, 0xff, 0xaf, 0x00, 0xff,
- 0xff, 0xa3, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xc2, 0x64, 0x01, 0xff, 0xe6, 0x87, 0x00, 0xff,
- 0xff, 0xa7, 0x01, 0xff, 0xff, 0xb7, 0x00, 0xff,
- 0xff, 0xc8, 0x00, 0xff, 0xff, 0xd8, 0x00, 0xff,
- 0xff, 0xea, 0x01, 0xff, 0xff, 0xf9, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xb1, 0x01, 0xff,
- 0xff, 0xce, 0x00, 0xff, 0xff, 0xe6, 0x00, 0xff,
- 0xff, 0xf9, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xf9, 0x00, 0xff,
- 0xff, 0xe6, 0x01, 0xff, 0xff, 0xcf, 0x01, 0xff,
- 0xff, 0xb1, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xc6, 0x67, 0x01, 0xff, 0xd2, 0x73, 0x00, 0xff,
- 0xdf, 0x80, 0x00, 0xff, 0xe9, 0x8b, 0x00, 0xff,
- 0xf3, 0x95, 0x00, 0xff, 0xfb, 0x9d, 0x00, 0xff,
- 0xf6, 0x98, 0x00, 0xff, 0xea, 0x8b, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xc9, 0x6a, 0x00, 0xff, 0xd8, 0x79, 0x01, 0xff,
- 0xe6, 0x88, 0x01, 0xff, 0xf5, 0x97, 0x00, 0xff,
- 0xfe, 0xa6, 0x00, 0xff, 0xff, 0xb7, 0x01, 0xff,
- 0xff, 0xc7, 0x01, 0xff, 0xff, 0xd6, 0x00, 0xff,
- 0xff, 0xe6, 0x00, 0xff, 0xff, 0xf4, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xf0, 0x91, 0x00, 0xff,
- 0xff, 0xbf, 0x01, 0xff, 0xfe, 0xd4, 0x00, 0xff,
- 0xff, 0xe9, 0x00, 0xff, 0xff, 0xfb, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xf9, 0x00, 0xff, 0xff, 0xeb, 0x00, 0xff,
- 0xff, 0xd6, 0x00, 0xff, 0xff, 0xc1, 0x01, 0xff,
- 0xf1, 0x92, 0x00, 0xff, 0xbc, 0x5e, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbb, 0x5c, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xc0, 0x62, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xae, 0x01, 0xff, 0xfe, 0xc3, 0x00, 0xff,
- 0xfe, 0xd9, 0x00, 0xff, 0xfe, 0xef, 0x00, 0xff,
- 0xff, 0xfd, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xf8, 0x00, 0xff,
- 0xfe, 0xee, 0x00, 0xff, 0xff, 0xdd, 0x01, 0xff,
- 0xfe, 0xc7, 0x00, 0xff, 0xff, 0xae, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xd1, 0x73, 0x00, 0xff, 0xff, 0xb2, 0x00, 0xff,
- 0xff, 0xc8, 0x01, 0xff, 0xff, 0xe2, 0x01, 0xff,
- 0xfe, 0xf1, 0x00, 0xff, 0xff, 0xfe, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xf9, 0x01, 0xff, 0xff, 0xee, 0x00, 0xff,
- 0xff, 0xe2, 0x00, 0xff, 0xff, 0xce, 0x00, 0xff,
- 0xff, 0xb5, 0x01, 0xff, 0xdf, 0x80, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xf3, 0x94, 0x01, 0xff,
- 0xff, 0xb6, 0x00, 0xff, 0xff, 0xd1, 0x01, 0xff,
- 0xfe, 0xe4, 0x00, 0xff, 0xff, 0xf0, 0x01, 0xff,
- 0xff, 0xfa, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xf6, 0x00, 0xff,
- 0xff, 0xed, 0x00, 0xff, 0xfe, 0xe3, 0x00, 0xff,
- 0xff, 0xd2, 0x01, 0xff, 0xff, 0xba, 0x01, 0xff,
- 0xf9, 0x9a, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbc, 0x5e, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff,
- 0xff, 0xa4, 0x00, 0xff, 0xff, 0xbf, 0x01, 0xff,
- 0xfe, 0xd0, 0x00, 0xff, 0xff, 0xdf, 0x01, 0xff,
- 0xff, 0xec, 0x01, 0xff, 0xff, 0xf5, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xfe, 0x00, 0xff,
- 0xfe, 0xf3, 0x00, 0xff, 0xff, 0xeb, 0x01, 0xff,
- 0xff, 0xde, 0x00, 0xff, 0xff, 0xcf, 0x00, 0xff,
- 0xff, 0xbf, 0x01, 0xff, 0xff, 0xa6, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xff, 0xa3, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xcd, 0x6f, 0x01, 0xff, 0xff, 0xa4, 0x00, 0xff,
- 0xff, 0xb7, 0x01, 0xff, 0xff, 0xc9, 0x01, 0xff,
- 0xff, 0xd7, 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff,
- 0xff, 0xf1, 0x01, 0xff, 0xff, 0xf7, 0x00, 0xff,
- 0xff, 0xfb, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xfe, 0x00, 0xff, 0xff, 0xfb, 0x00, 0xff,
- 0xff, 0xf7, 0x01, 0xff, 0xff, 0xf0, 0x01, 0xff,
- 0xff, 0xe2, 0x00, 0xff, 0xff, 0xd3, 0x01, 0xff,
- 0xff, 0xc4, 0x00, 0xff, 0xff, 0xb3, 0x00, 0xff,
- 0xfe, 0xa2, 0x00, 0xff, 0xcd, 0x6e, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5c, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xd7, 0x78, 0x01, 0xff,
- 0xfe, 0xe3, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xf3, 0x95, 0x01, 0xff, 0xff, 0xae, 0x00, 0xff,
- 0xfe, 0xbf, 0x00, 0xff, 0xff, 0xcd, 0x01, 0xff,
- 0xff, 0xdb, 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff,
- 0xff, 0xe9, 0x01, 0xff, 0xff, 0xee, 0x01, 0xff,
- 0xff, 0xf1, 0x00, 0xff, 0xff, 0xf5, 0x00, 0xff,
- 0xfe, 0xf8, 0x00, 0xff, 0xff, 0xfb, 0x00, 0xff,
- 0xff, 0xfc, 0x01, 0xff, 0xff, 0xf9, 0x01, 0xff,
- 0xff, 0xf5, 0x01, 0xff, 0xff, 0xf1, 0x00, 0xff,
- 0xff, 0xec, 0x01, 0xff, 0xff, 0xe8, 0x01, 0xff,
- 0xff, 0xe2, 0x00, 0xff, 0xff, 0xda, 0x00, 0xff,
- 0xff, 0xcb, 0x01, 0xff, 0xff, 0xbc, 0x00, 0xff,
- 0xff, 0xac, 0x01, 0xff, 0xed, 0x8e, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xf6, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xff, 0xbe, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xd6, 0x77, 0x01, 0xff,
- 0xff, 0xa4, 0x00, 0xff, 0xfe, 0xb4, 0x00, 0xff,
- 0xff, 0xc1, 0x00, 0xff, 0xff, 0xc8, 0x00, 0xff,
- 0xff, 0xcf, 0x01, 0xff, 0xff, 0xd5, 0x01, 0xff,
- 0xff, 0xda, 0x01, 0xff, 0xff, 0xdf, 0x01, 0xff,
- 0xff, 0xe3, 0x01, 0xff, 0xff, 0xe6, 0x00, 0xff,
- 0xff, 0xe6, 0x01, 0xff, 0xff, 0xe1, 0x00, 0xff,
- 0xff, 0xdd, 0x01, 0xff, 0xff, 0xd7, 0x01, 0xff,
- 0xff, 0xd2, 0x01, 0xff, 0xff, 0xcd, 0x01, 0xff,
- 0xff, 0xc7, 0x01, 0xff, 0xfe, 0xc1, 0x00, 0xff,
- 0xfe, 0xb3, 0x00, 0xff, 0xff, 0xa4, 0x00, 0xff,
- 0xc9, 0x6b, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xfe, 0x9f, 0x00, 0xff,
- 0xff, 0xe2, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xf6, 0x01, 0xff,
- 0xff, 0xec, 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5c, 0x00, 0xff,
- 0xff, 0xa5, 0x00, 0xff, 0xff, 0xf4, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xe3, 0x85, 0x00, 0xff,
- 0xfe, 0xa1, 0x00, 0xff, 0xff, 0xaa, 0x00, 0xff,
- 0xff, 0xb0, 0x00, 0xff, 0xff, 0xb7, 0x00, 0xff,
- 0xff, 0xbd, 0x00, 0xff, 0xff, 0xc3, 0x01, 0xff,
- 0xff, 0xc7, 0x00, 0xff, 0xff, 0xcb, 0x00, 0xff,
- 0xff, 0xcb, 0x01, 0xff, 0xff, 0xc6, 0x01, 0xff,
- 0xff, 0xc1, 0x01, 0xff, 0xff, 0xbb, 0x00, 0xff,
- 0xfe, 0xb5, 0x00, 0xff, 0xff, 0xb0, 0x01, 0xff,
- 0xff, 0xaa, 0x01, 0xff, 0xff, 0xa2, 0x01, 0xff,
- 0xe2, 0x84, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff,
- 0xd3, 0x74, 0x00, 0xff, 0xff, 0xbd, 0x01, 0xff,
- 0xff, 0xf3, 0x00, 0xff, 0xff, 0xe9, 0x01, 0xff,
- 0xff, 0xde, 0x00, 0xff, 0xff, 0xd5, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbc, 0x5d, 0x01, 0xff, 0xe7, 0x89, 0x00, 0xff,
- 0xff, 0xdb, 0x01, 0xff, 0xff, 0xe8, 0x01, 0xff,
- 0xff, 0xf4, 0x00, 0xff, 0xff, 0xfe, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xd1, 0x72, 0x00, 0xff, 0xe4, 0x86, 0x00, 0xff,
- 0xf4, 0x96, 0x00, 0xff, 0xff, 0xa4, 0x00, 0xff,
- 0xff, 0xac, 0x00, 0xff, 0xff, 0xb2, 0x01, 0xff,
- 0xff, 0xb1, 0x00, 0xff, 0xfe, 0xab, 0x00, 0xff,
- 0xff, 0xa4, 0x00, 0xff, 0xf0, 0x91, 0x00, 0xff,
- 0xdd, 0x7e, 0x00, 0xff, 0xc9, 0x6a, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xff, 0xa4, 0x01, 0xff, 0xff, 0xdb, 0x00, 0xff,
- 0xff, 0xd1, 0x00, 0xff, 0xff, 0xc8, 0x01, 0xff,
- 0xff, 0xbf, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x00, 0xff,
- 0xcf, 0x70, 0x01, 0xff, 0xff, 0xc2, 0x01, 0xff,
- 0xff, 0xd0, 0x00, 0xff, 0xff, 0xdd, 0x01, 0xff,
- 0xff, 0xe9, 0x00, 0xff, 0xff, 0xf3, 0x01, 0xff,
- 0xff, 0xfc, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xff, 0xab, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xc6, 0x67, 0x00, 0xff, 0xd6, 0x78, 0x01, 0xff,
- 0xd5, 0x77, 0x01, 0xff, 0xc2, 0x64, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xff, 0xc6, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xbc, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xe7, 0x89, 0x01, 0xff,
- 0xfe, 0xc1, 0x00, 0xff, 0xff, 0xb9, 0x00, 0xff,
- 0xff, 0xb0, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x00, 0xff,
- 0xff, 0xa9, 0x01, 0xff, 0xff, 0xb7, 0x00, 0xff,
- 0xff, 0xc6, 0x01, 0xff, 0xff, 0xd2, 0x00, 0xff,
- 0xff, 0xdf, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x00, 0xff, 0xff, 0xb3, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff,
- 0xbb, 0x5c, 0x00, 0xff, 0xe5, 0x87, 0x01, 0xff,
- 0xff, 0xf5, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xcd, 0x6f, 0x00, 0xff, 0xff, 0xa9, 0x01, 0xff,
- 0xff, 0xa1, 0x00, 0xff, 0xf9, 0x9a, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbb, 0x5c, 0x00, 0xff, 0xef, 0x91, 0x00, 0xff,
- 0xfe, 0xa0, 0x00, 0xff, 0xff, 0xae, 0x00, 0xff,
- 0xff, 0xbd, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xff, 0xbc, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff,
- 0xff, 0xc6, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbb, 0x5c, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xf0, 0x91, 0x01, 0xff, 0xea, 0x8b, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xda, 0x7b, 0x00, 0xff, 0xe9, 0x8b, 0x01, 0xff,
- 0xf7, 0x98, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xbc, 0x5d, 0x01, 0xff, 0xff, 0xc3, 0x01, 0xff,
- 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
- 0xfe, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbc, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xed, 0x8e, 0x00, 0xff, 0xff, 0xef, 0x01, 0xff,
- 0xff, 0xfe, 0x01, 0xff, 0xff, 0xfa, 0x00, 0xff,
- 0xff, 0xf5, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbc, 0x5d, 0x00, 0xff, 0xda, 0x7c, 0x01, 0xff,
- 0xd6, 0x77, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xc6, 0x67, 0x00, 0xff,
- 0xd4, 0x76, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5c, 0x00, 0xff, 0xff, 0xc8, 0x00, 0xff,
- 0xff, 0xf2, 0x01, 0xff, 0xff, 0xf6, 0x00, 0xff,
- 0xff, 0xfa, 0x01, 0xff, 0xff, 0xfc, 0x01, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5c, 0x00, 0xff, 0xff, 0xc5, 0x01, 0xff,
- 0xff, 0xee, 0x01, 0xff, 0xff, 0xea, 0x00, 0xff,
- 0xff, 0xe7, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xc6, 0x67, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xc0, 0x61, 0x01, 0xff, 0xff, 0xcd, 0x00, 0xff,
- 0xff, 0xe2, 0x00, 0xff, 0xff, 0xe7, 0x00, 0xff,
- 0xff, 0xeb, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xbb, 0x5d, 0x00, 0xff, 0xf3, 0x94, 0x00, 0xff,
- 0xff, 0xdd, 0x01, 0xff, 0xff, 0xda, 0x00, 0xff,
- 0xff, 0xd8, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff,
- 0xcc, 0x6e, 0x01, 0xff, 0xff, 0xca, 0x00, 0xff,
- 0xff, 0xd1, 0x00, 0xff, 0xff, 0xd7, 0x00, 0xff,
- 0xff, 0xdb, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xbc, 0x5d, 0x00, 0xff, 0xbf, 0x60, 0x00, 0xff,
- 0xff, 0xc1, 0x00, 0xff, 0xff, 0xc8, 0x00, 0xff,
- 0xfe, 0xc6, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xd6, 0x77, 0x00, 0xff, 0xff, 0xb9, 0x00, 0xff,
- 0xff, 0xc1, 0x00, 0xff, 0xff, 0xc8, 0x01, 0xff,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xbb, 0x5c, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
- 0xf4, 0x96, 0x00, 0xff, 0xff, 0xb6, 0x00, 0xff,
- 0xff, 0xb6, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbc, 0x5d, 0x01, 0xff,
- 0xdf, 0x81, 0x00, 0xff, 0xff, 0xaa, 0x00, 0xff,
- 0xff, 0xb2, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xc9, 0x6b, 0x01, 0xff, 0xff, 0xa5, 0x01, 0xff,
- 0xff, 0xa6, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0xe8, 0x89, 0x00, 0xff, 0xf9, 0x9b, 0x00, 0xff,
- 0xff, 0xa4, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbb, 0x5c, 0x00, 0xff, 0xf1, 0x92, 0x00, 0xff,
- 0xf3, 0x94, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff,
- 0xe2, 0x83, 0x00, 0xff, 0xec, 0x8e, 0x01, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0xbc, 0x5d, 0x01, 0xff, 0xd1, 0x73, 0x00, 0xff,
- 0xe2, 0x84, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbc, 0x5d, 0x01, 0xff,
- 0xd6, 0x77, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff,
- 0xd3, 0x74, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5c, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc3, 0x64, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-};
-
-Vtx sun_LightModel_mesh_vtx_cull[8] = {
- {{ {-100, -100, 0}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {-100, -100, 0}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {-100, 100, 0}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {-100, 100, 0}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {100, -100, 0}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {100, -100, 0}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {100, 100, 0}, 0, {0, 0}, {0, 0, 0, 0} }},
- {{ {100, 100, 0}, 0, {0, 0}, {0, 0, 0, 0} }},
-};
+ u8 sun_sun_rgba32[16384] = {
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0xed, 0x8e, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xe4, 0x85,
+ 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x9d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0xdb, 0x7d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xac, 0x01, 0xff, 0xe5, 0x87, 0x01, 0xff,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xae, 0x01, 0xff, 0xd1, 0x72, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xba, 0x00, 0xff,
+ 0xff, 0xaa, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xc4, 0x01, 0xff, 0xfe, 0xba, 0x00, 0xff, 0xc6, 0x67, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xc9, 0x00, 0xff, 0xff, 0xc8, 0x01, 0xff, 0xda, 0x7c, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0xd9, 0x00, 0xff, 0xff, 0xd1, 0x01, 0xff, 0xff, 0xc0, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0xff, 0xd8, 0x00, 0xff, 0xff, 0xd8, 0x01, 0xff, 0xfe, 0xa2, 0x00, 0xff, 0xbc, 0x5d,
+ 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe5, 0x00, 0xff, 0xff, 0xde, 0x00, 0xff, 0xff, 0xb8, 0x01, 0xff,
+ 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe8, 0x01, 0xff, 0xff, 0xe9, 0x01, 0xff, 0xff, 0xcc,
+ 0x01, 0xff, 0xcd, 0x6f, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf9, 0x00, 0xff, 0xff, 0xf3, 0x00, 0xff, 0xff, 0xec, 0x00, 0xff,
+ 0xff, 0xae, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xf5, 0x00, 0xff, 0xff, 0xf8,
+ 0x00, 0xff, 0xff, 0xf2, 0x00, 0xff, 0xf8, 0x99, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xfa, 0x01, 0xff, 0xff, 0xa5, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xca, 0x00, 0xff, 0xc1, 0x63, 0x01, 0xff,
+ 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xfd, 0x01, 0xff, 0xf6, 0x98, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xef, 0x91, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf6, 0x01, 0xff,
+ 0xef, 0x91, 0x00, 0xff, 0xbc, 0x5e, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf9, 0x01, 0xff, 0xeb, 0x8c, 0x01, 0xff, 0xbb, 0x5d,
+ 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xfe, 0xa0, 0x01, 0xff,
+ 0xef, 0x91, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xfd, 0x9e, 0x00, 0xff, 0xff, 0xa4, 0x00, 0xff, 0xcf, 0x70, 0x00, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xc6, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xf3, 0x01, 0xff, 0xdc, 0x7e,
+ 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xc2, 0x01, 0xff, 0xff, 0xb3, 0x00, 0xff,
+ 0xff, 0xa4, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb3, 0x01, 0xff, 0xff, 0xb9,
+ 0x01, 0xff, 0xe2, 0x84, 0x01, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xf7, 0x01, 0xff, 0xe1, 0x82, 0x00, 0xff, 0xbc, 0x5d,
+ 0x01, 0xff, 0xbc, 0x5e, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xec,
+ 0x00, 0xff, 0xcd, 0x6e, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xe4, 0x00, 0xff, 0xff, 0xd7, 0x01, 0xff, 0xff, 0xc9, 0x01, 0xff,
+ 0xff, 0xb9, 0x00, 0xff, 0xcf, 0x70, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0,
+ 0x00, 0xff, 0xff, 0xc7, 0x00, 0xff, 0xff, 0xcf, 0x01, 0xff, 0xf8, 0x99, 0x01, 0xff, 0xbc, 0x5e, 0x01, 0xff,
+ 0xbb, 0x5d, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xbe,
+ 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xe5, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xff, 0xeb, 0x00, 0xff, 0xff, 0xde, 0x00, 0xff,
+ 0xff, 0xcf, 0x00, 0xff, 0xe1, 0x82, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd5, 0x00, 0xff, 0xfe, 0xdc, 0x00, 0xff, 0xff, 0xe7, 0x01, 0xff,
+ 0xff, 0xb2, 0x00, 0xff, 0xd0, 0x72, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xf7, 0x00, 0xff, 0xea, 0x8b, 0x00, 0xff, 0xfc, 0x9e, 0x00, 0xff, 0xff, 0xb0, 0x01, 0xff,
+ 0xff, 0xb1, 0x00, 0xff, 0xff, 0xa2, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xdc, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5c, 0x00, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xf4, 0x00, 0xff,
+ 0xff, 0xe7, 0x01, 0xff, 0xf6, 0x98, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xe1, 0x00, 0xff, 0xff, 0xea, 0x00, 0xff,
+ 0xff, 0xf3, 0x01, 0xff, 0xfe, 0xfc, 0x00, 0xff, 0xfe, 0xcb, 0x00, 0xff, 0xe2, 0x84, 0x00, 0xff, 0xbc, 0x5d,
+ 0x01, 0xff, 0xbc, 0x5e, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xa2,
+ 0x00, 0xff, 0xfe, 0xb5, 0x00, 0xff, 0xff, 0xc9, 0x01, 0xff, 0xff, 0xda, 0x01, 0xff, 0xff, 0xe1, 0x01, 0xff,
+ 0xff, 0xe6, 0x01, 0xff, 0xff, 0xe7, 0x01, 0xff, 0xff, 0xe2, 0x01, 0xff, 0xff, 0xda, 0x01, 0xff, 0xfe, 0xcb,
+ 0x00, 0xff, 0xff, 0xbd, 0x00, 0xff, 0xff, 0xaa, 0x01, 0xff, 0xf1, 0x93, 0x00, 0xff, 0xda, 0x7c, 0x00, 0xff,
+ 0xbc, 0x5d, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xfd, 0x00, 0xff, 0xff, 0xb0, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0xff, 0xf5, 0x01, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xe3,
+ 0x00, 0xff, 0xff, 0xa0, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
+ 0xbc, 0x5d, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xb7, 0x00, 0xff, 0xff, 0xd4, 0x00, 0xff, 0xff, 0xdc,
+ 0x01, 0xff, 0xff, 0xe2, 0x01, 0xff, 0xff, 0xe8, 0x01, 0xff, 0xff, 0xee, 0x00, 0xff, 0xfe, 0xf3, 0x00, 0xff,
+ 0xfe, 0xf7, 0x00, 0xff, 0xff, 0xfd, 0x00, 0xff, 0xfe, 0xfc, 0x00, 0xff, 0xfe, 0xf9, 0x00, 0xff, 0xff, 0xf5,
+ 0x01, 0xff, 0xff, 0xf0, 0x01, 0xff, 0xff, 0xe9, 0x00, 0xff, 0xff, 0xe3, 0x01, 0xff, 0xff, 0xdc, 0x00, 0xff,
+ 0xff, 0xd4, 0x00, 0xff, 0xff, 0xb9, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xcb, 0x01, 0xff, 0xce, 0x6f, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xca, 0x00, 0xff, 0xd5, 0x76, 0x01, 0xff,
+ 0xbc, 0x5e, 0x01, 0xff, 0xfa, 0x9b, 0x01, 0xff, 0xfe, 0xd2, 0x00, 0xff, 0xfe, 0xe2, 0x00, 0xff, 0xff, 0xf0,
+ 0x00, 0xff, 0xfe, 0xf5, 0x00, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xfe, 0x01, 0xff,
+ 0xff, 0xf7, 0x00, 0xff, 0xfe, 0xf0, 0x00, 0xff, 0xff, 0xe4, 0x01, 0xff, 0xff, 0xd4, 0x01, 0xff, 0xff, 0xa7,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xe2, 0x01, 0xff, 0xe0, 0x82, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xd4, 0x75, 0x00, 0xff, 0xff, 0xbb, 0x00, 0xff, 0xfe, 0xd7, 0x00, 0xff, 0xff, 0xe8, 0x01, 0xff, 0xff, 0xf7,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xff, 0xeb,
+ 0x00, 0xff, 0xff, 0xda, 0x00, 0xff, 0xff, 0xc1, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfb, 0x9d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d,
+ 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xf6, 0x98, 0x01, 0xff, 0xff, 0xcb, 0x01, 0xff, 0xff, 0xdc, 0x01, 0xff, 0xff, 0xed, 0x01, 0xff, 0xff, 0xfb,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xf1, 0x01, 0xff, 0xff, 0xdf, 0x00, 0xff, 0xff, 0xcc, 0x00, 0xff,
+ 0xf6, 0x97, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xc6, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d,
+ 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xfe, 0xca, 0x00, 0xff, 0xfe, 0xe3, 0x00, 0xff, 0xfe, 0xf3, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xf5, 0x00, 0xff,
+ 0xff, 0xe3, 0x00, 0xff, 0xff, 0xca, 0x01, 0xff, 0xd1, 0x73, 0x01, 0xff, 0xcf, 0x71, 0x01, 0xff, 0xbc, 0x5d,
+ 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xbc, 0x01, 0xff, 0xff, 0xdb, 0x00, 0xff, 0xff, 0xf4, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xf3, 0x01, 0xff, 0xff, 0xd9, 0x01, 0xff, 0xff, 0xb6, 0x00, 0xff, 0xbc, 0x5d,
+ 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0x00, 0xff, 0xfd, 0x9f, 0x00, 0xff, 0xff, 0xd3, 0x00, 0xff, 0xff, 0xec, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xe7, 0x00, 0xff, 0xff, 0xd1,
+ 0x01, 0xff, 0xf1, 0x92, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xc9, 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff, 0xfe, 0xf8,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf5,
+ 0x01, 0xff, 0xff, 0xe0, 0x01, 0xff, 0xff, 0xc8, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xcf, 0x71, 0x00, 0xff, 0xc7, 0x68, 0x01, 0xff, 0xbd, 0x5e, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
+ 0xbc, 0x5e, 0x01, 0xff, 0xbc, 0x5d, 0x00, 0xff, 0xbc, 0x5e, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d,
+ 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
+ 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x00, 0xff, 0xff, 0xaa, 0x00, 0xff, 0xff, 0xd8, 0x01, 0xff, 0xff, 0xef,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xed, 0x00, 0xff, 0xff, 0xd7, 0x01, 0xff, 0xff, 0xa9, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xf6, 0x00, 0xff, 0xff, 0xe7, 0x01, 0xff, 0xff, 0xd7, 0x01, 0xff,
+ 0xff, 0xc7, 0x01, 0xff, 0xff, 0xb8, 0x01, 0xff, 0xff, 0xa7, 0x00, 0xff, 0xf6, 0x98, 0x00, 0xff, 0xe7, 0x89,
+ 0x01, 0xff, 0xd9, 0x7b, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x99, 0x00, 0xff,
+ 0xff, 0xa6, 0x00, 0xff, 0xff, 0xac, 0x00, 0xff, 0xff, 0xa4, 0x00, 0xff, 0xfa, 0x9b, 0x01, 0xff, 0xf0, 0x91,
+ 0x00, 0xff, 0xe4, 0x85, 0x00, 0xff, 0xd9, 0x7a, 0x01, 0xff, 0xcb, 0x6c, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff,
+ 0xbb, 0x5c, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xca, 0x6b, 0x01, 0xff, 0xff, 0xc5, 0x00, 0xff, 0xff, 0xe4,
+ 0x01, 0xff, 0xfe, 0xfa, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xfb, 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff,
+ 0xff, 0xc5, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xff, 0xe7, 0x00, 0xff,
+ 0xff, 0xd7, 0x00, 0xff, 0xff, 0xc5, 0x00, 0xff, 0xff, 0xb4, 0x00, 0xff, 0xf4, 0x95, 0x00, 0xff, 0xd0, 0x71,
+ 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0xff, 0xaf, 0x00, 0xff, 0xff, 0xbc, 0x01, 0xff, 0xff, 0xca, 0x01, 0xff, 0xff, 0xd9,
+ 0x00, 0xff, 0xff, 0xe9, 0x01, 0xff, 0xff, 0xec, 0x00, 0xff, 0xff, 0xe8, 0x01, 0xff, 0xff, 0xe2, 0x01, 0xff,
+ 0xff, 0xdc, 0x00, 0xff, 0xff, 0xd5, 0x00, 0xff, 0xff, 0xcd, 0x01, 0xff, 0xdf, 0x80, 0x00, 0xff, 0xfe, 0xcb,
+ 0x00, 0xff, 0xff, 0xe9, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xe8, 0x01, 0xff, 0xff, 0xcc, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xfa, 0x00, 0xff,
+ 0xff, 0xe0, 0x00, 0xff, 0xff, 0xb8, 0x00, 0xff, 0xec, 0x8e, 0x01, 0xff, 0xc4, 0x65, 0x00, 0xff, 0xbc, 0x5d,
+ 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc4, 0x00, 0xff, 0xff, 0xd1,
+ 0x00, 0xff, 0xff, 0xdf, 0x01, 0xff, 0xfe, 0xed, 0x00, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xf4, 0x96,
+ 0x01, 0xff, 0xff, 0xd1, 0x00, 0xff, 0xff, 0xee, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xec, 0x01, 0xff, 0xff, 0xd0, 0x00, 0xff, 0xec, 0x8d, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xe4, 0x01, 0xff,
+ 0xfe, 0xb5, 0x00, 0xff, 0xe2, 0x83, 0x01, 0xff, 0xbc, 0x5d, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xfe, 0xe4, 0x00, 0xff, 0xff, 0xf2, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xa8, 0x00, 0xff, 0xff, 0xd6, 0x00, 0xff, 0xff, 0xf3, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xef, 0x00, 0xff, 0xff, 0xd5, 0x01, 0xff, 0xff, 0xa0,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xe3, 0x00, 0xff, 0xff, 0xaf, 0x00, 0xff,
+ 0xd8, 0x79, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xf7, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xb5, 0x00, 0xff, 0xff, 0xdb, 0x01, 0xff, 0xff, 0xf6, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf4, 0x01, 0xff, 0xff, 0xd9,
+ 0x00, 0xff, 0xfe, 0xb1, 0x00, 0xff, 0xff, 0xe2, 0x00, 0xff, 0xff, 0xa6, 0x00, 0xff, 0xc9, 0x6a, 0x01, 0xff,
+ 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xc3, 0x00, 0xff, 0xff, 0xe0, 0x01, 0xff,
+ 0xff, 0xf9, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf7,
+ 0x00, 0xff, 0xff, 0xde, 0x01, 0xff, 0xfe, 0xc2, 0x00, 0xff, 0xd0, 0x72, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
+ 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xe5, 0x87, 0x01, 0xff, 0xff, 0xc9, 0x01, 0xff,
+ 0xfe, 0xe2, 0x00, 0xff, 0xff, 0xfb, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xfe, 0xfa, 0x00, 0xff, 0xff, 0xe2, 0x01, 0xff, 0xff, 0xc9, 0x01, 0xff, 0xe1, 0x83, 0x00, 0xff,
+ 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xfe, 0xff, 0x00, 0xff, 0xf4, 0x95, 0x01, 0xff,
+ 0xff, 0xcd, 0x01, 0xff, 0xff, 0xe5, 0x00, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xfd, 0x01, 0xff, 0xff, 0xe4, 0x00, 0xff, 0xff, 0xcc, 0x00, 0xff,
+ 0xf2, 0x93, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
+ 0xf1, 0x92, 0x01, 0xff, 0xff, 0xca, 0x00, 0xff, 0xff, 0xe3, 0x01, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xfb, 0x00, 0xff, 0xff, 0xe3, 0x00, 0xff,
+ 0xff, 0xcb, 0x00, 0xff, 0xf2, 0x93, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
+ 0xbb, 0x5d, 0x00, 0xff, 0xdd, 0x7f, 0x00, 0xff, 0xff, 0xc4, 0x00, 0xff, 0xff, 0xdd, 0x00, 0xff, 0xff, 0xf6,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xf7, 0x00, 0xff,
+ 0xff, 0xde, 0x01, 0xff, 0xfe, 0xc4, 0x00, 0xff, 0xe1, 0x82, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
+ 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xca, 0x6b, 0x01, 0xff, 0xff, 0xbb, 0x00, 0xff, 0xff, 0xd7,
+ 0x00, 0xff, 0xff, 0xf1, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xf2, 0x01, 0xff, 0xff, 0xd9, 0x01, 0xff, 0xff, 0xbc, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff,
+ 0xbc, 0x5d, 0x00, 0xff, 0xbf, 0x60, 0x00, 0xff, 0xfc, 0x9e, 0x00, 0xff, 0xff, 0xdb, 0x00, 0xff, 0xfe, 0xa8,
+ 0x00, 0xff, 0xfe, 0xcf, 0x00, 0xff, 0xff, 0xea, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xed, 0x01, 0xff, 0xff, 0xd1, 0x00, 0xff, 0xff, 0xac, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xfe, 0x01, 0xff, 0xff, 0xf0, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5c, 0x00, 0xff,
+ 0xcd, 0x6f, 0x00, 0xff, 0xff, 0xa5, 0x01, 0xff, 0xff, 0xd9, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xf2, 0x94, 0x00, 0xff, 0xff, 0xc9, 0x01, 0xff, 0xff, 0xe3, 0x00, 0xff, 0xff, 0xfb, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff, 0xe6, 0x01, 0xff, 0xff, 0xc9, 0x00, 0xff, 0xf9, 0x9b,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xf9, 0x01, 0xff, 0xff, 0xea, 0x01, 0xff, 0xff, 0xdd, 0x01, 0xff, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xd6, 0x77, 0x01, 0xff,
+ 0xff, 0xa9, 0x00, 0xff, 0xff, 0xd7, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xdc, 0x7e, 0x00, 0xff, 0xfe, 0xc1, 0x00, 0xff, 0xff, 0xdd, 0x01, 0xff,
+ 0xfe, 0xf4, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf6, 0x01, 0xff, 0xff, 0xdf, 0x01, 0xff, 0xff, 0xc2,
+ 0x00, 0xff, 0xe4, 0x86, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xf3, 0x00, 0xff, 0xff, 0xe3, 0x00, 0xff, 0xff, 0xd5,
+ 0x01, 0xff, 0xff, 0xc7, 0x01, 0xff, 0xff, 0xb9, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5e, 0x01, 0xff, 0xde, 0x80, 0x00, 0xff, 0xff, 0xaa, 0x01, 0xff,
+ 0xff, 0xd3, 0x00, 0xff, 0xff, 0xed, 0x01, 0xff, 0xff, 0xfd, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xba, 0x00, 0xff,
+ 0xfe, 0xd5, 0x00, 0xff, 0xff, 0xee, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xee, 0x00, 0xff, 0xff, 0xd7,
+ 0x01, 0xff, 0xff, 0xba, 0x01, 0xff, 0xcd, 0x6e, 0x01, 0xff, 0xff, 0xba, 0x01, 0xff, 0xff, 0xc4, 0x01, 0xff,
+ 0xff, 0xcc, 0x00, 0xff, 0xff, 0xd3, 0x01, 0xff, 0xff, 0xd9, 0x00, 0xff, 0xfe, 0xde, 0x00, 0xff, 0xff, 0xdc,
+ 0x00, 0xff, 0xfe, 0xcc, 0x00, 0xff, 0xff, 0xbe, 0x01, 0xff, 0xff, 0xaf, 0x00, 0xff, 0xff, 0xa3, 0x01, 0xff,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0xc2, 0x64, 0x01, 0xff, 0xe6, 0x87, 0x00, 0xff, 0xff, 0xa7, 0x01, 0xff, 0xff, 0xb7, 0x00, 0xff,
+ 0xff, 0xc8, 0x00, 0xff, 0xff, 0xd8, 0x00, 0xff, 0xff, 0xea, 0x01, 0xff, 0xff, 0xf9, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xb1, 0x01, 0xff, 0xff, 0xce, 0x00, 0xff, 0xff, 0xe6, 0x00, 0xff, 0xff, 0xf9, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf9, 0x00, 0xff, 0xff, 0xe6,
+ 0x01, 0xff, 0xff, 0xcf, 0x01, 0xff, 0xff, 0xb1, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
+ 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xc6, 0x67, 0x01, 0xff, 0xd2, 0x73,
+ 0x00, 0xff, 0xdf, 0x80, 0x00, 0xff, 0xe9, 0x8b, 0x00, 0xff, 0xf3, 0x95, 0x00, 0xff, 0xfb, 0x9d, 0x00, 0xff,
+ 0xf6, 0x98, 0x00, 0xff, 0xea, 0x8b, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xc9, 0x6a,
+ 0x00, 0xff, 0xd8, 0x79, 0x01, 0xff, 0xe6, 0x88, 0x01, 0xff, 0xf5, 0x97, 0x00, 0xff, 0xfe, 0xa6, 0x00, 0xff,
+ 0xff, 0xb7, 0x01, 0xff, 0xff, 0xc7, 0x01, 0xff, 0xff, 0xd6, 0x00, 0xff, 0xff, 0xe6, 0x00, 0xff, 0xff, 0xf4,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xf0, 0x91, 0x00, 0xff, 0xff, 0xbf, 0x01, 0xff, 0xfe, 0xd4, 0x00, 0xff, 0xff, 0xe9,
+ 0x00, 0xff, 0xff, 0xfb, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xf9, 0x00, 0xff, 0xff, 0xeb,
+ 0x00, 0xff, 0xff, 0xd6, 0x00, 0xff, 0xff, 0xc1, 0x01, 0xff, 0xf1, 0x92, 0x00, 0xff, 0xbc, 0x5e, 0x01, 0xff,
+ 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d,
+ 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff,
+ 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xc0, 0x62,
+ 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xae, 0x01, 0xff, 0xfe, 0xc3,
+ 0x00, 0xff, 0xfe, 0xd9, 0x00, 0xff, 0xfe, 0xef, 0x00, 0xff, 0xff, 0xfd, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xf8, 0x00, 0xff, 0xfe, 0xee,
+ 0x00, 0xff, 0xff, 0xdd, 0x01, 0xff, 0xfe, 0xc7, 0x00, 0xff, 0xff, 0xae, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0xd1, 0x73,
+ 0x00, 0xff, 0xff, 0xb2, 0x00, 0xff, 0xff, 0xc8, 0x01, 0xff, 0xff, 0xe2, 0x01, 0xff, 0xfe, 0xf1, 0x00, 0xff,
+ 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf9, 0x01, 0xff, 0xff, 0xee,
+ 0x00, 0xff, 0xff, 0xe2, 0x00, 0xff, 0xff, 0xce, 0x00, 0xff, 0xff, 0xb5, 0x01, 0xff, 0xdf, 0x80, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d,
+ 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xf3, 0x94, 0x01, 0xff, 0xff, 0xb6, 0x00, 0xff, 0xff, 0xd1, 0x01, 0xff,
+ 0xfe, 0xe4, 0x00, 0xff, 0xff, 0xf0, 0x01, 0xff, 0xff, 0xfa, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf6, 0x00, 0xff, 0xff, 0xed,
+ 0x00, 0xff, 0xfe, 0xe3, 0x00, 0xff, 0xff, 0xd2, 0x01, 0xff, 0xff, 0xba, 0x01, 0xff, 0xf9, 0x9a, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5e,
+ 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0xff, 0xa4, 0x00, 0xff,
+ 0xff, 0xbf, 0x01, 0xff, 0xfe, 0xd0, 0x00, 0xff, 0xff, 0xdf, 0x01, 0xff, 0xff, 0xec, 0x01, 0xff, 0xff, 0xf5,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xfe, 0x00, 0xff, 0xfe, 0xf3, 0x00, 0xff, 0xff, 0xeb,
+ 0x01, 0xff, 0xff, 0xde, 0x00, 0xff, 0xff, 0xcf, 0x00, 0xff, 0xff, 0xbf, 0x01, 0xff, 0xff, 0xa6, 0x01, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xff, 0xa3, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xcd, 0x6f, 0x01, 0xff, 0xff, 0xa4, 0x00, 0xff, 0xff, 0xb7, 0x01, 0xff, 0xff, 0xc9, 0x01, 0xff, 0xff, 0xd7,
+ 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff, 0xff, 0xf1, 0x01, 0xff, 0xff, 0xf7, 0x00, 0xff, 0xff, 0xfb, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xfe, 0x00, 0xff, 0xff, 0xfb, 0x00, 0xff, 0xff, 0xf7, 0x01, 0xff, 0xff, 0xf0, 0x01, 0xff, 0xff, 0xe2,
+ 0x00, 0xff, 0xff, 0xd3, 0x01, 0xff, 0xff, 0xc4, 0x00, 0xff, 0xff, 0xb3, 0x00, 0xff, 0xfe, 0xa2, 0x00, 0xff,
+ 0xcd, 0x6e, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xbb, 0x5c, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xd7, 0x78, 0x01, 0xff, 0xfe, 0xe3, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xf3, 0x95, 0x01, 0xff, 0xff, 0xae,
+ 0x00, 0xff, 0xfe, 0xbf, 0x00, 0xff, 0xff, 0xcd, 0x01, 0xff, 0xff, 0xdb, 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff,
+ 0xff, 0xe9, 0x01, 0xff, 0xff, 0xee, 0x01, 0xff, 0xff, 0xf1, 0x00, 0xff, 0xff, 0xf5, 0x00, 0xff, 0xfe, 0xf8,
+ 0x00, 0xff, 0xff, 0xfb, 0x00, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff, 0xf9, 0x01, 0xff, 0xff, 0xf5, 0x01, 0xff,
+ 0xff, 0xf1, 0x00, 0xff, 0xff, 0xec, 0x01, 0xff, 0xff, 0xe8, 0x01, 0xff, 0xff, 0xe2, 0x00, 0xff, 0xff, 0xda,
+ 0x00, 0xff, 0xff, 0xcb, 0x01, 0xff, 0xff, 0xbc, 0x00, 0xff, 0xff, 0xac, 0x01, 0xff, 0xed, 0x8e, 0x00, 0xff,
+ 0xbb, 0x5d, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xf6, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xff, 0xbe, 0x01, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xd6, 0x77, 0x01, 0xff, 0xff, 0xa4, 0x00, 0xff, 0xfe, 0xb4, 0x00, 0xff, 0xff, 0xc1, 0x00, 0xff,
+ 0xff, 0xc8, 0x00, 0xff, 0xff, 0xcf, 0x01, 0xff, 0xff, 0xd5, 0x01, 0xff, 0xff, 0xda, 0x01, 0xff, 0xff, 0xdf,
+ 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff, 0xff, 0xe6, 0x00, 0xff, 0xff, 0xe6, 0x01, 0xff, 0xff, 0xe1, 0x00, 0xff,
+ 0xff, 0xdd, 0x01, 0xff, 0xff, 0xd7, 0x01, 0xff, 0xff, 0xd2, 0x01, 0xff, 0xff, 0xcd, 0x01, 0xff, 0xff, 0xc7,
+ 0x01, 0xff, 0xfe, 0xc1, 0x00, 0xff, 0xfe, 0xb3, 0x00, 0xff, 0xff, 0xa4, 0x00, 0xff, 0xc9, 0x6b, 0x01, 0xff,
+ 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xfe, 0x9f, 0x00, 0xff, 0xff, 0xe2, 0x00, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xf6, 0x01, 0xff, 0xff, 0xec, 0x01, 0xff, 0xff, 0xe3, 0x01, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0xff, 0xa5, 0x00, 0xff,
+ 0xff, 0xf4, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xe3, 0x85, 0x00, 0xff,
+ 0xfe, 0xa1, 0x00, 0xff, 0xff, 0xaa, 0x00, 0xff, 0xff, 0xb0, 0x00, 0xff, 0xff, 0xb7, 0x00, 0xff, 0xff, 0xbd,
+ 0x00, 0xff, 0xff, 0xc3, 0x01, 0xff, 0xff, 0xc7, 0x00, 0xff, 0xff, 0xcb, 0x00, 0xff, 0xff, 0xcb, 0x01, 0xff,
+ 0xff, 0xc6, 0x01, 0xff, 0xff, 0xc1, 0x01, 0xff, 0xff, 0xbb, 0x00, 0xff, 0xfe, 0xb5, 0x00, 0xff, 0xff, 0xb0,
+ 0x01, 0xff, 0xff, 0xaa, 0x01, 0xff, 0xff, 0xa2, 0x01, 0xff, 0xe2, 0x84, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0xd3, 0x74,
+ 0x00, 0xff, 0xff, 0xbd, 0x01, 0xff, 0xff, 0xf3, 0x00, 0xff, 0xff, 0xe9, 0x01, 0xff, 0xff, 0xde, 0x00, 0xff,
+ 0xff, 0xd5, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xe7, 0x89, 0x00, 0xff,
+ 0xff, 0xdb, 0x01, 0xff, 0xff, 0xe8, 0x01, 0xff, 0xff, 0xf4, 0x00, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xd1, 0x72, 0x00, 0xff, 0xe4, 0x86,
+ 0x00, 0xff, 0xf4, 0x96, 0x00, 0xff, 0xff, 0xa4, 0x00, 0xff, 0xff, 0xac, 0x00, 0xff, 0xff, 0xb2, 0x01, 0xff,
+ 0xff, 0xb1, 0x00, 0xff, 0xfe, 0xab, 0x00, 0xff, 0xff, 0xa4, 0x00, 0xff, 0xf0, 0x91, 0x00, 0xff, 0xdd, 0x7e,
+ 0x00, 0xff, 0xc9, 0x6a, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xfe, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d,
+ 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xff, 0xa4, 0x01, 0xff, 0xff, 0xdb, 0x00, 0xff,
+ 0xff, 0xd1, 0x00, 0xff, 0xff, 0xc8, 0x01, 0xff, 0xff, 0xbf, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x00, 0xff, 0xcf, 0x70, 0x01, 0xff,
+ 0xff, 0xc2, 0x01, 0xff, 0xff, 0xd0, 0x00, 0xff, 0xff, 0xdd, 0x01, 0xff, 0xff, 0xe9, 0x00, 0xff, 0xff, 0xf3,
+ 0x01, 0xff, 0xff, 0xfc, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xff, 0xab, 0x01, 0xff, 0xff, 0xff,
+ 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xc6, 0x67, 0x00, 0xff,
+ 0xd6, 0x78, 0x01, 0xff, 0xd5, 0x77, 0x01, 0xff, 0xc2, 0x64, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xff, 0xc6,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbc, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff,
+ 0xe7, 0x89, 0x01, 0xff, 0xfe, 0xc1, 0x00, 0xff, 0xff, 0xb9, 0x00, 0xff, 0xff, 0xb0, 0x00, 0xff, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x00, 0xff,
+ 0xff, 0xa9, 0x01, 0xff, 0xff, 0xb7, 0x00, 0xff, 0xff, 0xc6, 0x01, 0xff, 0xff, 0xd2, 0x00, 0xff, 0xff, 0xdf,
+ 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff, 0xff, 0xb3,
+ 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x00, 0xff, 0xbb, 0x5c,
+ 0x00, 0xff, 0xe5, 0x87, 0x01, 0xff, 0xff, 0xf5, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xcd, 0x6f, 0x00, 0xff, 0xff, 0xa9, 0x01, 0xff, 0xff, 0xa1,
+ 0x00, 0xff, 0xf9, 0x9a, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5c, 0x00, 0xff,
+ 0xef, 0x91, 0x00, 0xff, 0xfe, 0xa0, 0x00, 0xff, 0xff, 0xae, 0x00, 0xff, 0xff, 0xbd, 0x01, 0xff, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xbc, 0x5d,
+ 0x01, 0xff, 0xff, 0xbc, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d,
+ 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0xff, 0xc6, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff,
+ 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5c, 0x00, 0xff, 0xbb, 0x5d,
+ 0x00, 0xff, 0xf0, 0x91, 0x01, 0xff, 0xea, 0x8b, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0xda, 0x7b, 0x00, 0xff, 0xe9, 0x8b, 0x01, 0xff, 0xf7, 0x98, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d,
+ 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xff, 0xc3, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff,
+ 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfe, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x00, 0xff, 0xbc, 0x5d, 0x01, 0xff, 0xed, 0x8e, 0x00, 0xff,
+ 0xff, 0xef, 0x01, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xfa, 0x00, 0xff, 0xff, 0xf5, 0x00, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x00, 0xff, 0xda, 0x7c, 0x01, 0xff, 0xd6, 0x77, 0x01, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc6, 0x67, 0x00, 0xff, 0xd4, 0x76, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5c, 0x00, 0xff, 0xff, 0xc8, 0x00, 0xff, 0xff, 0xf2, 0x01, 0xff,
+ 0xff, 0xf6, 0x00, 0xff, 0xff, 0xfa, 0x01, 0xff, 0xff, 0xfc, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xbb, 0x5d, 0x00, 0xff,
+ 0xbb, 0x5c, 0x00, 0xff, 0xff, 0xc5, 0x01, 0xff, 0xff, 0xee, 0x01, 0xff, 0xff, 0xea, 0x00, 0xff, 0xff, 0xe7,
+ 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0xc6, 0x67, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0xc0, 0x61, 0x01, 0xff, 0xff, 0xcd, 0x00, 0xff,
+ 0xff, 0xe2, 0x00, 0xff, 0xff, 0xe7, 0x00, 0xff, 0xff, 0xeb, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xbb, 0x5d, 0x00, 0xff, 0xbb, 0x5d, 0x00, 0xff, 0xf3, 0x94, 0x00, 0xff, 0xff, 0xdd, 0x01, 0xff, 0xff, 0xda,
+ 0x00, 0xff, 0xff, 0xd8, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xcc, 0x6e, 0x01, 0xff,
+ 0xff, 0xca, 0x00, 0xff, 0xff, 0xd1, 0x00, 0xff, 0xff, 0xd7, 0x00, 0xff, 0xff, 0xdb, 0x00, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbc, 0x5d, 0x00, 0xff, 0xbf, 0x60, 0x00, 0xff, 0xff, 0xc1,
+ 0x00, 0xff, 0xff, 0xc8, 0x00, 0xff, 0xfe, 0xc6, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff,
+ 0xd6, 0x77, 0x00, 0xff, 0xff, 0xb9, 0x00, 0xff, 0xff, 0xc1, 0x00, 0xff, 0xff, 0xc8, 0x01, 0xff, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5c, 0x00, 0xff, 0xbc, 0x5d,
+ 0x01, 0xff, 0xf4, 0x96, 0x00, 0xff, 0xff, 0xb6, 0x00, 0xff, 0xff, 0xb6, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0xbc, 0x5d, 0x01, 0xff, 0xdf, 0x81, 0x00, 0xff, 0xff, 0xaa, 0x00, 0xff, 0xff, 0xb2, 0x00, 0xff, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0xc9, 0x6b, 0x01, 0xff, 0xff, 0xa5, 0x01, 0xff, 0xff, 0xa6, 0x01, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0xe8, 0x89, 0x00, 0xff, 0xf9, 0x9b, 0x00, 0xff, 0xff, 0xa4,
+ 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5c, 0x00, 0xff, 0xf1, 0x92, 0x00, 0xff,
+ 0xf3, 0x94, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xe2, 0x83, 0x00, 0xff, 0xec, 0x8e,
+ 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbc, 0x5d, 0x01, 0xff,
+ 0xd1, 0x73, 0x00, 0xff, 0xe2, 0x84, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xd6, 0x77,
+ 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x01, 0xff, 0xd3, 0x74, 0x01, 0xff, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xbb, 0x5c,
+ 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x64, 0x00, 0xff, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xbb, 0x5d, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5d,
+ 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
-Vtx sun_LightModel_mesh_vtx_0[4] = {
- {{ {-100, -100, 0}, 0, {-16, 2032}, {0, 0, 127, 255} }},
- {{ {100, -100, 0}, 0, {2032, 2032}, {0, 0, 127, 255} }},
- {{ {100, 100, 0}, 0, {2032, -16}, {0, 0, 127, 255} }},
- {{ {-100, 100, 0}, 0, {-16, -16}, {0, 0, 127, 255} }},
-};
+ };
-Gfx sun_LightModel_mesh_tri_0[3] = {
- gsSPVertex(sun_LightModel_mesh_vtx_0 + 0, 4, 0),
- gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
- gsSPEndDisplayList(),
-};
+ Vtx sun_LightModel_mesh_vtx_cull[8] = {
+ { { { -100, -100, 0 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { -100, -100, 0 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
+ { { { -100, 100, 0 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { -100, 100, 0 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
+ { { { 100, -100, 0 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { 100, -100, 0 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
+ { { { 100, 100, 0 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } }, { { { 100, 100, 0 }, 0, { 0, 0 }, { 0, 0, 0, 0 } } },
+ };
-Gfx mat_sun_sun[13] = {
- gsSPSetGeometryMode(G_FOG),
- gsSPClearGeometryMode(G_CULL_BACK | G_CLIPPING),
- gsDPPipeSync(),
- gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0),
- gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2),
- gsSPTexture(65535, 65535, 0, 0, 1),
- gsDPSetPrimColor(0, 0, 255, 255, 255, 128),
- gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, sun_sun_rgba32),
- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
- gsDPLoadBlock(7, 0, 0, 4095, 64),
- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0),
- gsDPSetTileSize(0, 0, 0, 252, 252),
- gsSPEndDisplayList(),
-};
+ Vtx sun_LightModel_mesh_vtx_0[4] = {
+ { { { -100, -100, 0 }, 0, { -16, 2032 }, { 0, 0, 127, 255 } } },
+ { { { 100, -100, 0 }, 0, { 2032, 2032 }, { 0, 0, 127, 255 } } },
+ { { { 100, 100, 0 }, 0, { 2032, -16 }, { 0, 0, 127, 255 } } },
+ { { { -100, 100, 0 }, 0, { -16, -16 }, { 0, 0, 127, 255 } } },
+ };
-Gfx mat_revert_sun_sun[4] = {
- gsSPClearGeometryMode(G_FOG),
- gsSPSetGeometryMode(G_CULL_BACK | G_CLIPPING),
- gsDPPipeSync(),
- gsSPEndDisplayList(),
-};
+ Gfx sun_LightModel_mesh_tri_0[3] = {
+ gsSPVertex(sun_LightModel_mesh_vtx_0 + 0, 4, 0),
+ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
+ gsSPEndDisplayList(),
+ };
-Gfx sun_LightModel_mesh[13] = {
- gsSPClearGeometryMode(G_LIGHTING),
- gsSPVertex(sun_LightModel_mesh_vtx_cull + 0, 8, 0),
- gsSPSetGeometryMode(G_LIGHTING),
- gsSPCullDisplayList(0, 7),
- gsSPDisplayList(mat_sun_sun),
- gsSPDisplayList(sun_LightModel_mesh_tri_0),
- gsSPDisplayList(mat_revert_sun_sun),
- gsDPPipeSync(),
- gsSPSetGeometryMode(G_LIGHTING),
- gsSPClearGeometryMode(G_TEXTURE_GEN),
- gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
- gsSPTexture(65535, 65535, 0, 0, 0),
- gsSPEndDisplayList(),
-};
+ Gfx mat_sun_sun[13] = {
+ gsSPSetGeometryMode(G_FOG),
+ gsSPClearGeometryMode(G_CULL_BACK | G_CLIPPING),
+ gsDPPipeSync(),
+ gsDPSetCombineLERP(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0),
+ gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2),
+ gsSPTexture(65535, 65535, 0, 0, 1),
+ gsDPSetPrimColor(0, 0, 255, 255, 255, 128),
+ gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 1, sun_sun_rgba32),
+ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0,
+ G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
+ gsDPLoadBlock(7, 0, 0, 4095, 64),
+ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_32b, 16, 0, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 6, 0,
+ G_TX_WRAP | G_TX_NOMIRROR, 6, 0),
+ gsDPSetTileSize(0, 0, 0, 252, 252),
+ gsSPEndDisplayList(),
+ };
+ Gfx mat_revert_sun_sun[4] = {
+ gsSPClearGeometryMode(G_FOG),
+ gsSPSetGeometryMode(G_CULL_BACK | G_CLIPPING),
+ gsDPPipeSync(),
+ gsSPEndDisplayList(),
+ };
+ Gfx sun_LightModel_mesh[13] = {
+ gsSPClearGeometryMode(G_LIGHTING),
+ gsSPVertex(sun_LightModel_mesh_vtx_cull + 0, 8, 0),
+ gsSPSetGeometryMode(G_LIGHTING),
+ gsSPCullDisplayList(0, 7),
+ gsSPDisplayList(mat_sun_sun),
+ gsSPDisplayList(sun_LightModel_mesh_tri_0),
+ gsSPDisplayList(mat_revert_sun_sun),
+ gsDPPipeSync(),
+ gsSPSetGeometryMode(G_LIGHTING),
+ gsSPClearGeometryMode(G_TEXTURE_GEN),
+ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
+ gsSPTexture(65535, 65535, 0, 0, 0),
+ gsSPEndDisplayList(),
+ };
};
-}
+} // namespace Editor
diff --git a/src/engine/editor/ObjectPicker.cpp b/src/engine/editor/ObjectPicker.cpp
index 9cfeed5f8..51eaf9820 100644
--- a/src/engine/editor/ObjectPicker.cpp
+++ b/src/engine/editor/ObjectPicker.cpp
@@ -47,7 +47,7 @@ void ObjectPicker::SelectObject(std::vector<GameObject*> objects) {
eGizmo.SetGizmo(_selected, ray);
eGizmo.Enabled = true;
} else {
- //eGizmo.Disable();
+ // eGizmo.Disable();
eGizmo.Enabled = false;
eGizmo._selected = nullptr;
}
@@ -67,7 +67,9 @@ void ObjectPicker::DragHandle() {
}
// Is the gizmo being dragged?
- if (!eGizmo.Enabled) { return; }
+ if (!eGizmo.Enabled) {
+ return;
+ }
float closestDistance = FLT_MAX;
std::optional<FVector> closestClickPos;
Gizmo::GizmoHandle closestHandle = Gizmo::GizmoHandle::None;
@@ -98,7 +100,7 @@ void ObjectPicker::DragHandle() {
}
};
- switch(static_cast<Gizmo::TranslationMode>(CVarGetInteger("eGizmoMode", 0))) {
+ switch (static_cast<Gizmo::TranslationMode>(CVarGetInteger("eGizmoMode", 0))) {
case Gizmo::TranslationMode::Move:
tryHandle(Gizmo::GizmoHandle::Z_Axis, eGizmo.Mtx_RedX, eGizmo.RedCollision.Triangles);
tryHandle(Gizmo::GizmoHandle::X_Axis, eGizmo.Mtx_GreenY, eGizmo.GreenCollision.Triangles);
@@ -114,7 +116,6 @@ void ObjectPicker::DragHandle() {
tryHandle(Gizmo::GizmoHandle::X_Axis, eGizmo.Mtx_GreenY, eGizmo.GreenScaleCollision.Triangles);
tryHandle(Gizmo::GizmoHandle::Y_Axis, eGizmo.Mtx_BlueZ, eGizmo.BlueScaleCollision.Triangles);
break;
-
}
if (closestHandle != Gizmo::GizmoHandle::None && closestClickPos.has_value()) {
@@ -132,7 +133,7 @@ void ObjectPicker::Draw() {
if (Debug) {
Mat4 CursorMtx;
- IRotator rot = IRotator(0,0,0);
+ IRotator rot = IRotator(0, 0, 0);
FVector scale = FVector(0.1, 0.1, 0.1);
FVector ray = ScreenRayTrace();
@@ -140,9 +141,9 @@ void ObjectPicker::Draw() {
float y = (cameras[0].pos[1] + ray.y * 800);
float z = (cameras[0].pos[2] + ray.z * 800);
- ApplyMatrixTransformations((float(*)[4])&CursorMtx, FVector(x, y, z), rot, scale);
- Editor_AddMatrix((float(*)[4])&CursorMtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, (Gfx*)"__OTR__tracks/sphere");
+ ApplyMatrixTransformations((float(*)[4]) & CursorMtx, FVector(x, y, z), rot, scale);
+ Editor_AddMatrix((float(*)[4]) & CursorMtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) "__OTR__tracks/sphere");
}
}
@@ -157,7 +158,7 @@ void ObjectPicker::FindObject(Ray ray, std::vector<GameObject*> objects) {
boundingBox = 2.0f;
}
- switch(object->Collision) {
+ switch (object->Collision) {
case GameObject::CollisionType::VTX_INTERSECT:
for (const auto& tri : object->Triangles) {
float t;
@@ -173,12 +174,10 @@ void ObjectPicker::FindObject(Ray ray, std::vector<GameObject*> objects) {
case GameObject::CollisionType::BOUNDING_BOX: {
float max = 2.0f;
float min = -2.0f;
- Vec3f boxMin = { object->Pos->x + boundingBox * min,
- object->Pos->y + boundingBox * min,
+ Vec3f boxMin = { object->Pos->x + boundingBox * min, object->Pos->y + boundingBox * min,
object->Pos->z + boundingBox * min };
- Vec3f boxMax = { object->Pos->x + boundingBox * max,
- object->Pos->y + boundingBox * max,
+ Vec3f boxMax = { object->Pos->x + boundingBox * max, object->Pos->y + boundingBox * max,
object->Pos->z + boundingBox * max };
float t;
if (QueryCollisionRayActor(&ray.Origin.x, &ray.Direction.x, boxMin, boxMax, &t)) {
@@ -198,10 +197,10 @@ void ObjectPicker::FindObject(Ray ray, std::vector<GameObject*> objects) {
}
if (closestObject != nullptr) {
_selected = closestObject;
- // printf("FOUND COLLISION %d\n", type);
+ // printf("FOUND COLLISION %d\n", type);
} else {
- // printf("NO COLLISION\n");
+ // printf("NO COLLISION\n");
_selected = nullptr;
}
}
-}
+} // namespace Editor
diff --git a/src/engine/editor/ObjectPicker.h b/src/engine/editor/ObjectPicker.h
index e96bddcbc..99706ff45 100644
--- a/src/engine/editor/ObjectPicker.h
+++ b/src/engine/editor/ObjectPicker.h
@@ -7,22 +7,23 @@
#include "GameObject.h"
namespace Editor {
- class ObjectPicker {
- public:
- void SelectObject(std::vector<GameObject*> objects);
- void DragHandle();
- void Draw();
- void FindObject(Ray ray, std::vector<GameObject*> objects);
- void Load();
- void Tick();
- Gizmo eGizmo;
- GameObject* _selected;
- private:
- bool _draw = false;
- GameObject* _lastSelected;
- s32 Inverse(MtxF* src, MtxF* dest);
- void Copy(MtxF* src, MtxF* dest);
- void Clear(MtxF* mf);
- bool Debug = false;
- };
-}
+class ObjectPicker {
+ public:
+ void SelectObject(std::vector<GameObject*> objects);
+ void DragHandle();
+ void Draw();
+ void FindObject(Ray ray, std::vector<GameObject*> objects);
+ void Load();
+ void Tick();
+ Gizmo eGizmo;
+ GameObject* _selected;
+
+ private:
+ bool _draw = false;
+ GameObject* _lastSelected;
+ s32 Inverse(MtxF* src, MtxF* dest);
+ void Copy(MtxF* src, MtxF* dest);
+ void Clear(MtxF* mf);
+ bool Debug = false;
+};
+} // namespace Editor
diff --git a/src/engine/editor/SceneManager.cpp b/src/engine/editor/SceneManager.cpp
index a2de6656c..c0ba58f2d 100644
--- a/src/engine/editor/SceneManager.cpp
+++ b/src/engine/editor/SceneManager.cpp
@@ -15,142 +15,146 @@
namespace Editor {
- std::shared_ptr<Ship::Archive> CurrentArchive;
- std::string SceneFile = "";
+std::shared_ptr<Ship::Archive> CurrentArchive;
+std::string SceneFile = "";
- void SaveLevel() {
- auto props = gWorldInstance.CurrentCourse->Props;
+void SaveLevel() {
+ auto props = gWorldInstance.CurrentCourse->Props;
- if ((CurrentArchive) && (!SceneFile.empty())) {
- nlohmann::json data;
-
- data["Props"] = props.to_json();
+ if ((CurrentArchive) && (!SceneFile.empty())) {
+ nlohmann::json data;
- nlohmann::json staticMesh;
+ data["Props"] = props.to_json();
- for (const auto& mesh : gWorldInstance.StaticMeshActors) {
- staticMesh.push_back(mesh->to_json());
- }
- data["StaticMeshActors"] = staticMesh;
+ nlohmann::json staticMesh;
- // nlohmann::json actors;
+ for (const auto& mesh : gWorldInstance.StaticMeshActors) {
+ staticMesh.push_back(mesh->to_json());
+ }
+ data["StaticMeshActors"] = staticMesh;
- // for (const auto& actor : gWorldInstance.Actors) {
- // actors.push_back(actor->to_json());
- // }
- // data["Actors"] = actors;
+ // nlohmann::json actors;
- // nlohmann::json objects;
+ // for (const auto& actor : gWorldInstance.Actors) {
+ // actors.push_back(actor->to_json());
+ // }
+ // data["Actors"] = actors;
- // for (const auto& object : gWorldInstance.Objects) {
- // objects.push_back(object->to_json());
- // }
- // data["Objects"] = objects;
+ // nlohmann::json objects;
- try {
- auto dat = data.dump();
- std::vector<uint8_t> stringify;
- stringify.assign(dat.begin(), dat.end());
-
- bool wrote = GameEngine::Instance->context->GetResourceManager()->GetArchiveManager()->WriteFile(CurrentArchive, SceneFile, stringify);
- if (wrote) {
- printf("Successfully wrote scene file!\n Wrote: %s\n", SceneFile.c_str());
- } else {
- printf("Failed to write scene file!\n");
- }
- } catch (const nlohmann::json::exception& e) {
- printf("SceneManager::SaveLevel():\n JSON error during dump: %s\n", e.what());
+ // for (const auto& object : gWorldInstance.Objects) {
+ // objects.push_back(object->to_json());
+ // }
+ // data["Objects"] = objects;
+
+ try {
+ auto dat = data.dump();
+ std::vector<uint8_t> stringify;
+ stringify.assign(dat.begin(), dat.end());
+
+ bool wrote = GameEngine::Instance->context->GetResourceManager()->GetArchiveManager()->WriteFile(
+ CurrentArchive, SceneFile, stringify);
+ if (wrote) {
+ printf("Successfully wrote scene file!\n Wrote: %s\n", SceneFile.c_str());
+ } else {
+ printf("Failed to write scene file!\n");
}
- } else {
- printf("Could not save scene file, SceneFile or CurrentArchive not set\n");
+ } catch (const nlohmann::json::exception& e) {
+ printf("SceneManager::SaveLevel():\n JSON error during dump: %s\n", e.what());
}
+ } else {
+ printf("Could not save scene file, SceneFile or CurrentArchive not set\n");
}
+}
- void LoadLevel(std::shared_ptr<Ship::Archive> archive, Course* course, std::string sceneFile) {
- SceneFile = sceneFile;
+void LoadLevel(std::shared_ptr<Ship::Archive> archive, Course* course, std::string sceneFile) {
+ SceneFile = sceneFile;
- if (archive) {
- auto initData = std::make_shared<Ship::ResourceInitData>();
- initData->Parent = archive;
- initData->Format = RESOURCE_FORMAT_BINARY;
- initData->ByteOrder = Ship::Endianness::Little;
- initData->Type = static_cast<uint32_t>(Ship::ResourceType::Json);
- initData->ResourceVersion = 0;
+ if (archive) {
+ auto initData = std::make_shared<Ship::ResourceInitData>();
+ initData->Parent = archive;
+ initData->Format = RESOURCE_FORMAT_BINARY;
+ initData->ByteOrder = Ship::Endianness::Little;
+ initData->Type = static_cast<uint32_t>(Ship::ResourceType::Json);
+ initData->ResourceVersion = 0;
- nlohmann::json data = std::static_pointer_cast<Ship::Json>(
- GameEngine::Instance->context->GetResourceManager()->LoadResource(sceneFile, true, initData))->Data;
+ nlohmann::json data =
+ std::static_pointer_cast<Ship::Json>(
+ GameEngine::Instance->context->GetResourceManager()->LoadResource(sceneFile, true, initData))
+ ->Data;
- if (data.is_null() || data.empty()) {
- return;
- }
+ if (data.is_null() || data.empty()) {
+ return;
+ }
- // Load the Props (deserialize it)
- if (data.contains("Props")) {
- auto& propsJson = data["Props"];
- try {
- course->Props.from_json(propsJson);
- } catch(const std::exception& e) {
- std::cerr << "SceneManager::LoadLevel() Error parsing track properties: " << e.what() << std::endl;
- std::cerr << " Is your scene.json file out of date?" << std::endl;
- }
- } else {
- std::cerr << "Props data not found in the JSON file!" << std::endl;
+ // Load the Props (deserialize it)
+ if (data.contains("Props")) {
+ auto& propsJson = data["Props"];
+ try {
+ course->Props.from_json(propsJson);
+ } catch (const std::exception& e) {
+ std::cerr << "SceneManager::LoadLevel() Error parsing track properties: " << e.what() << std::endl;
+ std::cerr << " Is your scene.json file out of date?" << std::endl;
}
+ } else {
+ std::cerr << "Props data not found in the JSON file!" << std::endl;
+ }
- // Load the Actors (deserialize them)
- if (data.contains("StaticMeshActors")) {
- auto& actorsJson = data["StaticMeshActors"];
- gWorldInstance.StaticMeshActors.clear(); // Clear existing actors, if any
-
- for (const auto& actorJson : actorsJson) {
- Load_AddStaticMeshActor(actorJson);
- }
- } else {
- std::cerr << "Actors data not found in the JSON file!" << std::endl;
+ // Load the Actors (deserialize them)
+ if (data.contains("StaticMeshActors")) {
+ auto& actorsJson = data["StaticMeshActors"];
+ gWorldInstance.StaticMeshActors.clear(); // Clear existing actors, if any
+
+ for (const auto& actorJson : actorsJson) {
+ Load_AddStaticMeshActor(actorJson);
}
+ } else {
+ std::cerr << "Actors data not found in the JSON file!" << std::endl;
}
}
+}
- void Load_AddStaticMeshActor(const nlohmann::json& actorJson) {
- gWorldInstance.StaticMeshActors.push_back(new StaticMeshActor("", FVector(0, 0, 0), IRotator(0, 0, 0), FVector(1, 1, 1), "", nullptr));
- auto actor = gWorldInstance.StaticMeshActors.back();
- actor->from_json(actorJson);
+void Load_AddStaticMeshActor(const nlohmann::json& actorJson) {
+ gWorldInstance.StaticMeshActors.push_back(
+ new StaticMeshActor("", FVector(0, 0, 0), IRotator(0, 0, 0), FVector(1, 1, 1), "", nullptr));
+ auto actor = gWorldInstance.StaticMeshActors.back();
+ actor->from_json(actorJson);
- printf("After from_json: Pos(%f, %f, %f), Name: %s, Model: %s\n",
- actor->Pos.x, actor->Pos.y, actor->Pos.z, actor->Name.c_str(), actor->Model.c_str());
- gEditor.AddObject(actor->Name.c_str(), &actor->Pos, &actor->Rot, &actor->Scale, (Gfx*) nullptr, 1.0f,
- GameObject::CollisionType::BOUNDING_BOX, 20.0f, (int32_t*) &actor->bPendingDestroy, (int32_t) 1);
- }
+ printf("After from_json: Pos(%f, %f, %f), Name: %s, Model: %s\n", actor->Pos.x, actor->Pos.y, actor->Pos.z,
+ actor->Name.c_str(), actor->Model.c_str());
+ gEditor.AddObject(actor->Name.c_str(), &actor->Pos, &actor->Rot, &actor->Scale, (Gfx*) nullptr, 1.0f,
+ GameObject::CollisionType::BOUNDING_BOX, 20.0f, (int32_t*) &actor->bPendingDestroy, (int32_t) 1);
+}
- void SetSceneFile(std::shared_ptr<Ship::Archive> archive, std::string sceneFile) {
- CurrentArchive = archive;
- SceneFile = sceneFile;
- }
+void SetSceneFile(std::shared_ptr<Ship::Archive> archive, std::string sceneFile) {
+ CurrentArchive = archive;
+ SceneFile = sceneFile;
+}
- void LoadMinimap(std::shared_ptr<Ship::Archive> archive, Course* course, std::string filePath) {
- printf("LOADING MINIMAP %s\n", filePath.c_str());
- if (archive) {
- auto initData = std::make_shared<Ship::ResourceInitData>();
- initData->Parent = archive;
- initData->Format = RESOURCE_FORMAT_BINARY;
- initData->ByteOrder = Ship::Endianness::Little;
- initData->Type = static_cast<uint32_t>(MK64::ResourceType::Minimap);
- initData->ResourceVersion = 0;
-
- std::shared_ptr<MK64::Minimap> ptr = std::static_pointer_cast<MK64::Minimap>(
- GameEngine::Instance->context->GetResourceManager()->LoadResource(filePath, true, initData));
-
- if (ptr) {
- printf("LOADED MINIMAP!\n");
- MK64::MinimapTexture texture = ptr->Texture;
- course->Props.Minimap.Texture = (const char*)texture.Data;
- course->Props.Minimap.Width = texture.Width;
- course->Props.Minimap.Height = texture.Height;
- } else { // Fallback
- course->Props.Minimap.Texture = gTextureCourseOutlineMarioRaceway;
- course->Props.Minimap.Width = ResourceGetTexWidthByName(course->Props.Minimap.Texture);
- course->Props.Minimap.Height = ResourceGetTexHeightByName(course->Props.Minimap.Texture);
- }
+void LoadMinimap(std::shared_ptr<Ship::Archive> archive, Course* course, std::string filePath) {
+ printf("LOADING MINIMAP %s\n", filePath.c_str());
+ if (archive) {
+ auto initData = std::make_shared<Ship::ResourceInitData>();
+ initData->Parent = archive;
+ initData->Format = RESOURCE_FORMAT_BINARY;
+ initData->ByteOrder = Ship::Endianness::Little;
+ initData->Type = static_cast<uint32_t>(MK64::ResourceType::Minimap);
+ initData->ResourceVersion = 0;
+
+ std::shared_ptr<MK64::Minimap> ptr = std::static_pointer_cast<MK64::Minimap>(
+ GameEngine::Instance->context->GetResourceManager()->LoadResource(filePath, true, initData));
+
+ if (ptr) {
+ printf("LOADED MINIMAP!\n");
+ MK64::MinimapTexture texture = ptr->Texture;
+ course->Props.Minimap.Texture = (const char*) texture.Data;
+ course->Props.Minimap.Width = texture.Width;
+ course->Props.Minimap.Height = texture.Height;
+ } else { // Fallback
+ course->Props.Minimap.Texture = gTextureCourseOutlineMarioRaceway;
+ course->Props.Minimap.Width = ResourceGetTexWidthByName(course->Props.Minimap.Texture);
+ course->Props.Minimap.Height = ResourceGetTexHeightByName(course->Props.Minimap.Texture);
}
}
}
+} // namespace Editor
diff --git a/src/engine/editor/SceneManager.h b/src/engine/editor/SceneManager.h
index 58699107e..2d174d70c 100644
--- a/src/engine/editor/SceneManager.h
+++ b/src/engine/editor/SceneManager.h
@@ -2,12 +2,12 @@
#include "engine/courses/Course.h"
namespace Editor {
- void SaveLevel();
- void LoadLevel(std::shared_ptr<Ship::Archive> archive, Course* course, std::string sceneFile);
- void Load_AddStaticMeshActor(const nlohmann::json& actorJson);
- void SetSceneFile(std::shared_ptr<Ship::Archive> archive, std::string sceneFile);
- void LoadMinimap(std::shared_ptr<Ship::Archive> archive, Course* course, std::string filePath);
+void SaveLevel();
+void LoadLevel(std::shared_ptr<Ship::Archive> archive, Course* course, std::string sceneFile);
+void Load_AddStaticMeshActor(const nlohmann::json& actorJson);
+void SetSceneFile(std::shared_ptr<Ship::Archive> archive, std::string sceneFile);
+void LoadMinimap(std::shared_ptr<Ship::Archive> archive, Course* course, std::string filePath);
- extern std::shared_ptr<Ship::Archive> CurrentArchive; // This is used to retrieve and write the scene data file
- extern std::string SceneFile;
-}
+extern std::shared_ptr<Ship::Archive> CurrentArchive; // This is used to retrieve and write the scene data file
+extern std::string SceneFile;
+} // namespace Editor
diff --git a/src/engine/items/Items.cpp b/src/engine/items/Items.cpp
index e69de29bb..8b1378917 100644
--- a/src/engine/items/Items.cpp
+++ b/src/engine/items/Items.cpp
@@ -0,0 +1 @@
+
diff --git a/src/engine/items/Items.h b/src/engine/items/Items.h
index e69de29bb..8b1378917 100644
--- a/src/engine/items/Items.h
+++ b/src/engine/items/Items.h
@@ -0,0 +1 @@
+
diff --git a/src/engine/objects/Bat.cpp b/src/engine/objects/Bat.cpp
index 764476064..0c74f3582 100644
--- a/src/engine/objects/Bat.cpp
+++ b/src/engine/objects/Bat.cpp
@@ -22,7 +22,7 @@ OBat::OBat(const FVector& pos, const IRotator& rot) {
Name = "Bat";
find_unused_obj_index(&_objectIndex);
- init_texture_object(_objectIndex, (uint8_t*)d_course_banshee_boardwalk_bat_tlut, sBoardwalkTexList, 0x20U,
+ init_texture_object(_objectIndex, (uint8_t*) d_course_banshee_boardwalk_bat_tlut, sBoardwalkTexList, 0x20U,
(u16) 0x00000040);
gObjectList[_objectIndex].orientation[0] = rot.pitch;
gObjectList[_objectIndex].orientation[1] = rot.roll;
@@ -107,8 +107,8 @@ void OBat::Draw(s32 cameraId) {
objectIndex = _objectIndex;
temp_s7 = &camera1[cameraId];
- OBat::func_80046F60((u8*)gObjectList[objectIndex].activeTLUT, (u8*)gObjectList[objectIndex].activeTexture, 0x00000020, 0x00000040,
- 5);
+ OBat::func_80046F60((u8*) gObjectList[objectIndex].activeTLUT, (u8*) gObjectList[objectIndex].activeTexture,
+ 0x00000020, 0x00000040, 5);
D_80183E80[0] = gObjectList[objectIndex].orientation[0];
D_80183E80[2] = gObjectList[objectIndex].orientation[2];
if ((D_8018CFB0 != 0) || (D_8018CFC8 != 0)) {
@@ -122,7 +122,7 @@ void OBat::Draw(s32 cameraId) {
D_80183E80[1] =
func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], temp_s7->pos);
func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling,
- (Vtx*)D_0D0062B0);
+ (Vtx*) D_0D0062B0);
}
}
}
@@ -137,7 +137,7 @@ void OBat::Draw(s32 cameraId) {
D_80183E80[1] =
func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], temp_s7->pos);
func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling,
- (Vtx*)D_0D0062B0);
+ (Vtx*) D_0D0062B0);
}
}
}
@@ -145,7 +145,7 @@ void OBat::Draw(s32 cameraId) {
}
void OBat::func_80046F60(u8* tlut, u8* arg1, s32 arg2, s32 arg3, s32 arg4) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007D78);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007D78);
gDPLoadTLUT_pal256(gDisplayListHead++, tlut);
rsp_load_texture_mask(arg1, arg2, arg3, arg4);
}
diff --git a/src/engine/objects/Bat.h b/src/engine/objects/Bat.h
index d6b7e8774..c6740c251 100644
--- a/src/engine/objects/Bat.h
+++ b/src/engine/objects/Bat.h
@@ -20,14 +20,14 @@ extern "C" {
/**
* OBat
- *
+ *
* IRotator does not appear to do anything.
* Could not find where origin_pos was at.
* So pos does not work either
- *
+ *
*/
class OBat : public OObject {
-public:
+ public:
explicit OBat(const FVector& pos, const IRotator& rot);
~OBat() {
@@ -51,7 +51,7 @@ public:
void func_8007D794(s32 objectIndex);
void func_8007DA4C(s32 objectIndex);
-private:
+ private:
FVector _pos;
static size_t _count;
size_t _idx;
diff --git a/src/engine/objects/BombKart.cpp b/src/engine/objects/BombKart.cpp
index 53b4a4262..414100b99 100644
--- a/src/engine/objects/BombKart.cpp
+++ b/src/engine/objects/BombKart.cpp
@@ -32,7 +32,7 @@ size_t OBombKart::_count = 0;
OBombKart::OBombKart(FVector pos, TrackWaypoint* waypoint, uint16_t waypointIndex, uint16_t state, f32 unk_3C) {
Name = "Bomb Kart";
_idx = _count;
- Vec3f _pos = {0, 0, 0};
+ Vec3f _pos = { 0, 0, 0 };
if (waypoint) { // Spawn kart on waypoint
_pos[0] = waypoint->posX;
@@ -162,7 +162,7 @@ void OBombKart::Tick() {
}
}
}
- switch(state) {
+ switch (state) {
case States::CCW:
circleTimer = (circleTimer + 356) % 360;
temp_t6 = (circleTimer * 0xFFFF) / 360;
@@ -389,22 +389,21 @@ void OBombKart::Draw(s32 cameraId) {
}
void OBombKart::DrawBattle(s32 cameraId) {
-
}
void OBombKart::SomeRender(Vec3f arg1) {
D_80183E80[0] = 0;
D_80183E80[2] = 0x8000;
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0079C8);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0079C8);
load_texture_block_rgba16_mirror((u8*) D_0D02AA58, 0x00000010, 0x00000010);
D_80183E80[1] = func_800418AC(WheelPos[0][0], WheelPos[0][2], arg1);
- func_800431B0(WheelPos[0], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle);
+ func_800431B0(WheelPos[0], D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle);
D_80183E80[1] = func_800418AC(WheelPos[1][0], WheelPos[1][2], arg1);
- func_800431B0(WheelPos[1], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle);
+ func_800431B0(WheelPos[1], D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle);
D_80183E80[1] = func_800418AC(WheelPos[2][0], WheelPos[2][2], arg1);
- func_800431B0(WheelPos[2], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle);
+ func_800431B0(WheelPos[2], D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle);
D_80183E80[1] = func_800418AC(WheelPos[3][0], WheelPos[3][2], arg1);
- func_800431B0(WheelPos[3], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle);
+ func_800431B0(WheelPos[3], D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle);
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
}
@@ -415,13 +414,13 @@ void OBombKart::LoadMtx() {
D_80183E50[1] = CenterY + 1.0;
D_80183E50[2] = Pos[2];
set_transform_matrix(mat, _Collision.orientationVector, D_80183E50, 0U, 0.5f);
- //convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], mat);
+ // convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], mat);
AddHudMatrix(mat, G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW);
// gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]),
// G_MTX_LOAD | G_MTX_NOPUSH | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007B98);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007B98);
}
void OBombKart::Waypoint(s32 screenId) {
@@ -431,10 +430,14 @@ void OBombKart::Waypoint(s32 screenId) {
playerWaypoint = gNearestWaypointByPlayerId[screenId];
playerHUD[screenId].unk_74 = 0;
- if ((State == States::EXPLODE) || (State == States::DISABLED)) { return; };
+ if ((State == States::EXPLODE) || (State == States::DISABLED)) {
+ return;
+ };
bombWaypoint = WaypointIndex;
waypointDiff = bombWaypoint - playerWaypoint;
- if ((waypointDiff < -5) || (waypointDiff > 0x1E)) { return; };
+ if ((waypointDiff < -5) || (waypointDiff > 0x1E)) {
+ return;
+ };
playerHUD[screenId].unk_74 = 1;
}
@@ -452,7 +455,8 @@ Player* OBombKart::FindTarget() {
void OBombKart::Chase(Player* player, Vec3f pos) {
const f32 speed = 2.7f; // Speed the kart uses in a chase
- if (!player) return; // Ensure player is valid
+ if (!player)
+ return; // Ensure player is valid
// Calculate the directional vector toward the player
Vec3f direction;
@@ -482,7 +486,7 @@ void OBombKart::Chase(Player* player, Vec3f pos) {
}
if (xz_dist > 0.0f) {
-
+
// Normalize the direction vector in the XZ plane
direction[0] /= xz_dist;
direction[2] /= xz_dist;
@@ -504,4 +508,4 @@ void OBombKart::Chase(Player* player, Vec3f pos) {
pos[2] = newPosition[2];
check_bounding_collision(&_Collision, 10.0f, pos[0], pos[1], pos[2]);
-} \ No newline at end of file
+}
diff --git a/src/engine/objects/BombKart.h b/src/engine/objects/BombKart.h
index 29069a00f..b236a13d9 100644
--- a/src/engine/objects/BombKart.h
+++ b/src/engine/objects/BombKart.h
@@ -18,12 +18,12 @@ extern "C" {
/**
* Used in VS mode
- *
+ *
* This differs from the other vehicle classes in that it does not get added to the standard actor list
* So this is sort of its own thing. Draw call in different place too.
*/
class OBombKart : public OObject {
-public:
+ public:
enum States : uint16_t { // 0,1,3,5
DISABLED,
CCW,
@@ -39,7 +39,7 @@ public:
Vec3f Pos;
Vec3f WheelPos[4]; //! @todo Turn WheelPos into a struct
f32 Unk_3C;
- u16 SomeRot; // Some angle
+ u16 SomeRot; // Some angle
u16 WaypointIndex; // The waypoint the kart circles
States State = States::DISABLED;
u16 BounceTimer = 0;
@@ -66,7 +66,8 @@ public:
void SomeRender(Vec3f arg1);
void LoadMtx();
void Waypoint(s32 screenId);
-private:
+
+ private:
static size_t _count;
s32 _idx;
Player* FindTarget();
@@ -74,6 +75,4 @@ private:
Vec3f _spawnPos;
Player* _target = NULL;
-
-
};
diff --git a/src/engine/objects/Boos.cpp b/src/engine/objects/Boos.cpp
index 5bdbd41cf..bc3574e64 100644
--- a/src/engine/objects/Boos.cpp
+++ b/src/engine/objects/Boos.cpp
@@ -33,7 +33,6 @@ OBoos::OBoos(size_t numBoos, const IPathSpan& leftBoundary, const IPathSpan& act
_indices.resize(numBoos, 0);
-
// Generate objects
for (size_t i = 0; i < numBoos; i++) {
find_unused_obj_index(&_indices[i]);
@@ -54,7 +53,7 @@ void OBoos::Tick() {
OBoos::func_8007CA70();
for (size_t i = 0; i < _numBoos; i++) {
- objectIndex = _indices[i]; //indexObjectList3[i];
+ objectIndex = _indices[i]; // indexObjectList3[i];
object = &gObjectList[objectIndex];
if (object->state != 0) {
func_8007C684(objectIndex);
@@ -82,7 +81,7 @@ void OBoos::Draw(s32 cameraId) {
s32 objectIndex;
for (size_t i = 0; i < _numBoos; i++) {
- objectIndex = _indices[i]; //indexObjectList3[i];
+ objectIndex = _indices[i]; // indexObjectList3[i];
if (gObjectList[objectIndex].state >= 2) {
temp_s2 = func_8008A364(objectIndex, cameraId, 0x4000U, 0x00000320);
if (CVarGetInteger("gNoCulling", 0) == 1) {
@@ -103,7 +102,7 @@ void OBoos::func_800523B8(s32 objectIndex, s32 arg1, u32 arg2) {
object = &gObjectList[objectIndex];
object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos);
func_800484BC(object->pos, object->orientation, object->sizeScaling, object->primAlpha, (u8*) object->activeTLUT,
- (u8*)object->activeTexture, object->vertex, 0x00000030, 0x00000028, 0x00000030, 0x00000028);
+ (u8*) object->activeTexture, object->vertex, 0x00000030, 0x00000028, 0x00000030, 0x00000028);
if ((is_obj_flag_status_active(objectIndex, 0x00000020) != 0) && (arg2 < 0x15F91U)) {
func_8004A630(&D_8018C830, object->pos, 0.4f);
}
@@ -138,7 +137,7 @@ void OBoos::func_8007CA70(void) {
void OBoos::func_8007C5B4(s32 objectIndex) {
Object* object;
- init_texture_object(objectIndex, (u8*)d_course_banshee_boardwalk_boo_tlut, gTextureGhosts, 48, 40);
+ init_texture_object(objectIndex, (u8*) d_course_banshee_boardwalk_boo_tlut, gTextureGhosts, 48, 40);
object = &gObjectList[objectIndex];
object->pos[0] = 0.0f;
object->pos[1] = 0.0f;
@@ -261,7 +260,7 @@ void OBoos::BooStart(s32 group, s32 playerId) {
void OBoos::BooExit(s32 group) {
s32 objectIndex;
for (size_t i = 0; i < _numBoos; i++) {
- objectIndex = _indices[i]; //indexObjectList3[group + temp_a0];
+ objectIndex = _indices[i]; // indexObjectList3[group + temp_a0];
gObjectList[objectIndex].unk_0DC += 1;
}
diff --git a/src/engine/objects/Boos.h b/src/engine/objects/Boos.h
index cc49df474..b6ead3fd2 100644
--- a/src/engine/objects/Boos.h
+++ b/src/engine/objects/Boos.h
@@ -20,23 +20,24 @@ extern "C" {
/**
* OBoos
- *
+ *
* Args use path indices or path points. Recommended to use a span of 10
* for each IPathSpan as that's how the original game did it. Ex. IPathSpan(10, 20)
- *
+ *
* Once boos are active, they do not deactivate until the player drives into leftBoundary
* or rightBoundary. leftBoundary is really only used to deactivate the boos when the player is
* driving in the reverse direction.
- *
+ *
* @arg numBoos to show, default 5, maximum 10 allowed due to limited splines
* @arg leftBoundary When the player enters this area, deactivate the boos.
* @arg active When the player enters this area, activate the boos.
* @arg rightBoundary When the player enters this area, deactivate the boos.
- *
+ *
*/
class OBoos : public OObject {
-public:
- explicit OBoos(size_t numBoos, const IPathSpan& leftBoundary, const IPathSpan& active, const IPathSpan& rightBoundary);
+ public:
+ explicit OBoos(size_t numBoos, const IPathSpan& leftBoundary, const IPathSpan& active,
+ const IPathSpan& rightBoundary);
~OBoos() {
_count--;
@@ -59,7 +60,7 @@ public:
void BooExit(s32 someIndex);
void func_8007C550(s32 objectIndex);
-private:
+ private:
FVector _pos;
static size_t _count;
size_t _idx;
diff --git a/src/engine/objects/ChainChomp.cpp b/src/engine/objects/ChainChomp.cpp
index 695df1e8a..fe5d45229 100644
--- a/src/engine/objects/ChainChomp.cpp
+++ b/src/engine/objects/ChainChomp.cpp
@@ -65,12 +65,12 @@ void OChainChomp::func_80055AB8(s32 objectIndex, s32 cameraId) {
D_80183E80[1] =
func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
D_80183E80[2] = 0x8000;
- func_800468E0(D_80183E40, D_80183E80, 0.54f, (u8*)d_course_rainbow_road_sphere, (Vtx*)D_0D0062B0, 0x00000020,
- 0x00000040, 0x00000020, 0x00000040, 5);
+ func_800468E0(D_80183E40, D_80183E80, 0.54f, (u8*) d_course_rainbow_road_sphere, (Vtx*) D_0D0062B0,
+ 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5);
} else {
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].direction_angle,
gObjectList[objectIndex].sizeScaling);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077D0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077D0);
render_animated_model((Armature*) gObjectList[objectIndex].model,
(Animation**) gObjectList[objectIndex].vertex, 0,
(s16) gObjectList[objectIndex].textureListIndex);
@@ -99,7 +99,6 @@ void OChainChomp::func_80085878(s32 objectIndex, s32 arg1) {
object_next_state(objectIndex);
}
-
void OChainChomp::func_800859C8(s32 objectIndex, s32 arg1) {
Object* object;
@@ -119,8 +118,3 @@ void OChainChomp::func_800859C8(s32 objectIndex, s32 arg1) {
}
func_80074344(objectIndex, &object->surfaceHeight, -0.8f, 0.8f, 0.03f, 0, -1);
}
-
-
-
-
-
diff --git a/src/engine/objects/ChainChomp.h b/src/engine/objects/ChainChomp.h
index e1eb35347..174f24930 100644
--- a/src/engine/objects/ChainChomp.h
+++ b/src/engine/objects/ChainChomp.h
@@ -21,10 +21,9 @@ extern "C" {
* Animation crash for custom courses
*/
class OChainChomp : public OObject {
-public:
+ public:
explicit OChainChomp();
-
~OChainChomp() {
_count--;
}
@@ -40,7 +39,7 @@ public:
void func_80085878(s32 objectIndex, s32 arg1);
void func_800859C8(s32 objectIndex, s32 arg1);
-private:
+ private:
FVector _pos;
static size_t _count;
size_t _idx;
diff --git a/src/engine/objects/CheepCheep.cpp b/src/engine/objects/CheepCheep.cpp
index 5b4157c61..eb83c9922 100644
--- a/src/engine/objects/CheepCheep.cpp
+++ b/src/engine/objects/CheepCheep.cpp
@@ -57,22 +57,22 @@ void OCheepCheep::Draw(s32 cameraId) { // func_8005217C
object = &gObjectList[temp_a3];
if (object->state >= 2) {
if (is_obj_flag_status_active(temp_a3, 0x10) != 0) {
- rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
- func_800520C0(temp_a3);
+ rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
+ func_800520C0(temp_a3);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007828);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007828);
gSPLight(gDisplayListHead++, &D_800E45C0l[0].l[0], LIGHT_1);
gSPLight(gDisplayListHead++, &D_800E45C0l[0].a, LIGHT_2);
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_banshee_boardwalk_dl_7B38);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_banshee_boardwalk_dl_7B38);
gSPLight(gDisplayListHead++, &D_800E45C0l[1].l[0], LIGHT_1);
gSPLight(gDisplayListHead++, &D_800E45C0l[1].a, LIGHT_2);
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_banshee_boardwalk_dl_7978);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_banshee_boardwalk_dl_7978);
gSPLight(gDisplayListHead++, &D_800E45C0l[2].l[0], LIGHT_1);
gSPLight(gDisplayListHead++, &D_800E45C0l[2].a, LIGHT_2);
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_banshee_boardwalk_dl_78C0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_banshee_boardwalk_dl_78C0);
gSPLight(gDisplayListHead++, &D_800E45C0l[3].l[0], LIGHT_1);
gSPLight(gDisplayListHead++, &D_800E45C0l[3].a, LIGHT_2);
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_banshee_boardwalk_dl_7650);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_banshee_boardwalk_dl_7650);
}
}
}
@@ -84,7 +84,7 @@ void OCheepCheep::func_8007BBBC(s32 objectIndex) {
object = &gObjectList[objectIndex];
switch (object->state) {
case 1:
- func_800735BC(objectIndex, (Gfx*)d_course_banshee_boardwalk_dl_cheep_cheep, 2.0f);
+ func_800735BC(objectIndex, (Gfx*) d_course_banshee_boardwalk_dl_cheep_cheep, 2.0f);
set_object_flag(objectIndex, 0x00000010);
object->unk_0D5 = 0;
break;
@@ -129,7 +129,7 @@ void OCheepCheep::init_var_cheep_cheep(s32 objectIndex) {
object = &gObjectList[objectIndex];
object->unk_0D5 = 1;
object->status = 0;
- object->model = (Gfx*)d_course_banshee_boardwalk_dl_cheep_cheep;
+ object->model = (Gfx*) d_course_banshee_boardwalk_dl_cheep_cheep;
object->sizeScaling = 0.2f;
object_next_state(objectIndex);
set_obj_origin_pos(objectIndex, D_800E634C[0][0], D_800E634C[0][1] + 55.0, D_800E634C[0][2]);
diff --git a/src/engine/objects/CheepCheep.h b/src/engine/objects/CheepCheep.h
index 32e9a5aeb..db7d05ed3 100644
--- a/src/engine/objects/CheepCheep.h
+++ b/src/engine/objects/CheepCheep.h
@@ -15,19 +15,13 @@ extern "C" {
#include "some_data.h"
}
-
class OCheepCheep : public OObject {
-public:
- enum CheepType {
- RACE,
- PODIUM_CEREMONY
- };
-
- enum Behaviour : uint16_t {
- };
+ public:
+ enum CheepType { RACE, PODIUM_CEREMONY };
-public:
+ enum Behaviour : uint16_t {};
+ public:
explicit OCheepCheep(const FVector& pos, CheepType type, IPathSpan span);
virtual void Tick() override;
@@ -38,11 +32,9 @@ public:
void func_8007BEC8(s32 objectIndex);
void func_8007BFB0(s32 objectIndex);
-private:
-
+ private:
s32 _idx;
CheepType _type;
FVector _spawnPos;
IPathSpan _span;
-
};
diff --git a/src/engine/objects/Crab.cpp b/src/engine/objects/Crab.cpp
index 82d2b9330..eabd60c96 100644
--- a/src/engine/objects/Crab.cpp
+++ b/src/engine/objects/Crab.cpp
@@ -4,7 +4,6 @@
#include <vector>
#include "CoreMath.h"
-
#include "port/Game.h"
extern "C" {
@@ -66,8 +65,7 @@ void OCrab::Draw(s32 cameraId) {
func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation,
gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT,
- (uint8_t*)gObjectList[objectIndex].activeTexture, vtx, 64, 64,
- 64, 32);
+ (uint8_t*) gObjectList[objectIndex].activeTexture, vtx, 64, 64, 64, 32);
}
}
@@ -76,14 +74,18 @@ void OCrab::DrawModel(s32 cameraId) {
s32 objectIndex = _objectIndex;
func_8008A364(objectIndex, cameraId, 0x2AABU, 800);
if (is_obj_flag_status_active(objectIndex, VISIBLE) != 0) {
- Camera *camera;
+ Camera* camera;
s32 objectIndex;
if (gObjectList[objectIndex].state >= 2) {
camera = &camera1[cameraId];
func_8004A6EC(objectIndex, 0.5f);
- gObjectList[objectIndex].orientation[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
- draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT, (u8*)gObjectList[objectIndex].activeTexture, (Vtx*)common_vtx_hedgehog, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
+ gObjectList[objectIndex].orientation[1] =
+ func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
+ draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation,
+ gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT,
+ (u8*) gObjectList[objectIndex].activeTexture, (Vtx*) common_vtx_hedgehog, 0x00000040,
+ 0x00000040, 0x00000040, 0x00000020);
}
}
}
diff --git a/src/engine/objects/Crab.h b/src/engine/objects/Crab.h
index 4cadd3b87..450fa6597 100644
--- a/src/engine/objects/Crab.h
+++ b/src/engine/objects/Crab.h
@@ -20,16 +20,16 @@ extern "C" {
/**
* @arg start x and z spawn location
* @arg end x and z patrol location
- *
+ *
* Crab patrols between start and end.
* The game automatically places the actor on the course surface.
* Therefore, providing a Y height is unnecessary.
- *
+ *
* Crab appears to have a maximum patrolling distance and will patrol between
* end --> max distance rather than start --> end or start --> max distance.
*/
class OCrab : public OObject {
-public:
+ public:
explicit OCrab(const FVector2D& start, const FVector2D& end);
virtual void Tick() override;
@@ -41,7 +41,7 @@ public:
void func_80082C30(s32 objectIndex);
void func_80082E18(s32 objectIndex);
-private:
+ private:
FVector2D _start;
FVector2D _end;
static size_t _count;
diff --git a/src/engine/objects/Flagpole.cpp b/src/engine/objects/Flagpole.cpp
index acd74ba2b..e79f20155 100644
--- a/src/engine/objects/Flagpole.cpp
+++ b/src/engine/objects/Flagpole.cpp
@@ -48,7 +48,7 @@ void OFlagpole::Draw(s32 cameraId) { // func_80055228
void OFlagpole::func_80055164(s32 objectIndex) { // func_80055164
if (gObjectList[objectIndex].state >= 2) {
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077A0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077A0);
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].direction_angle,
gObjectList[objectIndex].sizeScaling);
if (gIsGamePaused == 0) {
diff --git a/src/engine/objects/Flagpole.h b/src/engine/objects/Flagpole.h
index 5824fcf18..d3341b52c 100644
--- a/src/engine/objects/Flagpole.h
+++ b/src/engine/objects/Flagpole.h
@@ -18,7 +18,7 @@ extern "C" {
}
class OFlagpole : public OObject {
-public:
+ public:
explicit OFlagpole(const FVector& pos, s16 direction);
~OFlagpole() {
@@ -37,7 +37,7 @@ public:
void func_80083018(s32 objectIndex);
void func_80083060(s32 objectIndex);
-private:
+ private:
FVector _pos;
s16 _direction;
static size_t _count;
diff --git a/src/engine/objects/GrandPrixBalloons.cpp b/src/engine/objects/GrandPrixBalloons.cpp
index 819bde1c6..66cdc17cd 100644
--- a/src/engine/objects/GrandPrixBalloons.cpp
+++ b/src/engine/objects/GrandPrixBalloons.cpp
@@ -73,7 +73,7 @@ void OGrandPrixBalloons::Draw(s32 cameraId) {
return;
}
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007E98);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007E98);
gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTOnomatopoeia);
func_8004B614(0, 0, 0, 0, 0, 0, 0);
gDPSetAlphaCompare(gDisplayListHead++, G_AC_THRESHOLD);
@@ -84,14 +84,14 @@ void OGrandPrixBalloons::Draw(s32 cameraId) {
GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA));
D_80183E80[0] = 0;
D_80183E80[1] = 0x8000;
- rsp_load_texture((uint8_t*)gTextureBalloon1, 64, 32);
+ rsp_load_texture((uint8_t*) gTextureBalloon1, 64, 32);
for (var_s1 = 0; var_s1 < _numBalloons; var_s1++) {
objectIndex = gObjectParticle3[var_s1];
if ((objectIndex != NULL_OBJECT_ID) && (gObjectList[objectIndex].state >= 2)) {
OGrandPrixBalloons::func_80053D74(objectIndex, cameraId, 0);
}
}
- rsp_load_texture((uint8_t*)gTextureBalloon2, 64, 32);
+ rsp_load_texture((uint8_t*) gTextureBalloon2, 64, 32);
for (var_s1 = 0; var_s1 < _numBalloons; var_s1++) {
objectIndex = gObjectParticle3[var_s1];
if ((objectIndex != NULL_OBJECT_ID) && (gObjectList[objectIndex].state >= 2)) {
@@ -112,8 +112,8 @@ void OGrandPrixBalloons::func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 ver
set_color_render((s32) object->unk_084[0], (s32) object->unk_084[1], (s32) object->unk_084[2],
(s32) object->unk_084[3], (s32) object->unk_084[4], (s32) object->unk_084[5],
(s32) object->primAlpha);
- gSPVertex(gDisplayListHead++, (uintptr_t)&vtx[vertexIndex], 4, 0);
- gSPDisplayList(gDisplayListHead++, (Gfx*)common_rectangle_display);
+ gSPVertex(gDisplayListHead++, (uintptr_t) &vtx[vertexIndex], 4, 0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) common_rectangle_display);
}
}
@@ -209,7 +209,8 @@ void OGrandPrixBalloons::func_80074E28(s32 objectIndex) {
case 0:
break;
case 3:
- OGrandPrixBalloons::func_80041480(&gObjectList[objectIndex].unk_084[6], -0x1000, 0x1000, &gObjectList[objectIndex].unk_084[7]);
+ OGrandPrixBalloons::func_80041480(&gObjectList[objectIndex].unk_084[6], -0x1000, 0x1000,
+ &gObjectList[objectIndex].unk_084[7]);
if (gObjectList[objectIndex].unk_0AE == 0) {
func_80072428(objectIndex);
}
@@ -228,4 +229,4 @@ void OGrandPrixBalloons::func_80041480(s16* arg0, s16 arg1, s16 arg2, s16* arg3)
*arg0 = arg1;
*arg3 = -*arg3;
}
-} \ No newline at end of file
+}
diff --git a/src/engine/objects/GrandPrixBalloons.h b/src/engine/objects/GrandPrixBalloons.h
index 93ec04479..f3baea750 100644
--- a/src/engine/objects/GrandPrixBalloons.h
+++ b/src/engine/objects/GrandPrixBalloons.h
@@ -17,14 +17,11 @@ extern "C" {
#include "some_data.h"
}
-
-
/**
* Grand Prix Balloons OObject
*/
class OGrandPrixBalloons : public OObject {
-public:
-
+ public:
explicit OGrandPrixBalloons(const FVector& pos);
~OGrandPrixBalloons() {
@@ -44,7 +41,7 @@ public:
void func_80074E28(s32 objectIndex);
void func_80041480(s16* arg0, s16 arg1, s16 arg2, s16* arg3); // Some weird math function
-private:
+ private:
static size_t _count;
s32 _idx;
FVector Pos;
diff --git a/src/engine/objects/Hedgehog.cpp b/src/engine/objects/Hedgehog.cpp
index ebc5b30bb..230d7330b 100644
--- a/src/engine/objects/Hedgehog.cpp
+++ b/src/engine/objects/Hedgehog.cpp
@@ -25,7 +25,7 @@ OHedgehog::OHedgehog(const FVector& pos, const FVector2D& patrolPoint, s16 unk)
gObjectList[objectId].pos[0] = gObjectList[objectId].origin_pos[0] = pos.x * xOrientation;
gObjectList[objectId].pos[1] = gObjectList[objectId].surfaceHeight = pos.y + 6.0;
gObjectList[objectId].pos[2] = gObjectList[objectId].origin_pos[2] = pos.z;
- gObjectList[objectId].unk_0D5 = (u8)unk;
+ gObjectList[objectId].unk_0D5 = (u8) unk;
gObjectList[objectId].unk_09C = patrolPoint.x * xOrientation;
gObjectList[objectId].unk_09E = patrolPoint.z;
@@ -38,10 +38,10 @@ void OHedgehog::Tick() {
OHedgehog::func_800833D0(objectIndex, _idx);
OHedgehog::func_80083248(objectIndex);
OHedgehog::func_80083474(objectIndex);
-
+
// This func clears a bit from all hedgehogs. This results in setting the height of all hedgehogs to zero.
// The solution is to only clear the bit from the current instance; `self` or `this`
- //func_80072120(indexObjectList2, NUM_HEDGEHOGS);
+ // func_80072120(indexObjectList2, NUM_HEDGEHOGS);
clear_object_flag(objectIndex, 0x00600000); // The fix
}
@@ -78,7 +78,8 @@ void OHedgehog::func_800555BC(s32 objectIndex, s32 cameraId) {
func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation,
gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT,
- (u8*)gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 64, 64, 64, 32);
+ (u8*) gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 64, 64, 64,
+ 32);
}
}
@@ -98,7 +99,7 @@ void OHedgehog::func_8004A870(s32 objectIndex, f32 arg1) {
// G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
AddHudMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007B98);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007B98);
}
}
@@ -108,7 +109,8 @@ void OHedgehog::func_8008311C(s32 objectIndex, s32 arg1) {
Object* object;
Vtx* vtx = (Vtx*) LOAD_ASSET_RAW(common_vtx_hedgehog);
- init_texture_object(objectIndex, (u8*)d_course_yoshi_valley_hedgehog_tlut, sHedgehogTexList, 0x40U, (u16) 0x00000040);
+ init_texture_object(objectIndex, (u8*) d_course_yoshi_valley_hedgehog_tlut, sHedgehogTexList, 0x40U,
+ (u16) 0x00000040);
object = &gObjectList[objectIndex];
object->activeTLUT = d_course_yoshi_valley_hedgehog_tlut;
object->activeTexture = d_course_yoshi_valley_hedgehog;
diff --git a/src/engine/objects/Hedgehog.h b/src/engine/objects/Hedgehog.h
index 2057d894d..eab1fde15 100644
--- a/src/engine/objects/Hedgehog.h
+++ b/src/engine/objects/Hedgehog.h
@@ -23,7 +23,7 @@ extern "C" {
* @arg unk unknown. Likely actor type.
*/
class OHedgehog : public OObject {
-public:
+ public:
explicit OHedgehog(const FVector& pos, const FVector2D& patrolPoint, s16 unk);
~OHedgehog() {
@@ -45,8 +45,7 @@ public:
void func_800833D0(s32 objectIndex, s32 arg1);
void func_80083474(s32 objectIndex);
-
-private:
+ private:
FVector _pos;
static size_t _count;
size_t _idx;
diff --git a/src/engine/objects/HotAirBalloon.cpp b/src/engine/objects/HotAirBalloon.cpp
index 4e337d98e..242731378 100644
--- a/src/engine/objects/HotAirBalloon.cpp
+++ b/src/engine/objects/HotAirBalloon.cpp
@@ -22,7 +22,7 @@ OHotAirBalloon::OHotAirBalloon(const FVector& pos) {
// Spawn balloon on second lap.
if (GetCourse() == GetLuigiRaceway()) {
- _visible = (bool*)&D_80165898;
+ _visible = (bool*) &D_80165898;
} else { // Spawn balloon on race start
bool mod = true;
_visible = &mod;
@@ -35,7 +35,7 @@ OHotAirBalloon::OHotAirBalloon(const FVector& pos) {
void OHotAirBalloon::Tick() {
s32 objectIndex = _objectIndex;
-
+
if (*_visible) {
if (gObjectList[objectIndex].state != 0) {
OHotAirBalloon::func_80085768(objectIndex);
@@ -78,8 +78,8 @@ void OHotAirBalloon::func_80055CCC(s32 objectIndex, s32 cameraId) {
func_8004A6EC(objectIndex, (20.0 / test) + 0.5);
if (is_obj_index_flag_status_inactive(objectIndex, 0x00100000) != 0) {
func_80043328(gObjectList[objectIndex].pos, (u16*) gObjectList[objectIndex].direction_angle,
- gObjectList[objectIndex].sizeScaling, (Gfx*)d_course_luigi_raceway_dl_F960);
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_luigi_raceway_dl_F650);
+ gObjectList[objectIndex].sizeScaling, (Gfx*) d_course_luigi_raceway_dl_F960);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_luigi_raceway_dl_F650);
} else {
D_80183E80[0] = (s16) gObjectList[objectIndex].direction_angle[0];
D_80183E80[1] =
@@ -87,8 +87,8 @@ void OHotAirBalloon::func_80055CCC(s32 objectIndex, s32 cameraId) {
0x8000);
D_80183E80[2] = (u16) gObjectList[objectIndex].direction_angle[2];
func_80043328(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling,
- (Gfx*)d_course_luigi_raceway_dl_FBE0);
- gSPDisplayList(gDisplayListHead++, (Gfx*)d_course_luigi_raceway_dl_FA20);
+ (Gfx*) d_course_luigi_raceway_dl_FBE0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) d_course_luigi_raceway_dl_FA20);
if (gPlayerCountSelection1 == 1) {
gObjectList[objectIndex].direction_angle[1] = 0;
}
@@ -98,7 +98,7 @@ void OHotAirBalloon::func_80055CCC(s32 objectIndex, s32 cameraId) {
void OHotAirBalloon::init_hot_air_balloon(s32 objectIndex) {
gObjectList[objectIndex].sizeScaling = 1.0f;
- gObjectList[objectIndex].model = (Gfx*)d_course_luigi_raceway_dl_F960;
+ gObjectList[objectIndex].model = (Gfx*) d_course_luigi_raceway_dl_F960;
if (gGamestate != CREDITS_SEQUENCE) {
set_obj_origin_pos(objectIndex, xOrientation * _pos.x, _pos.y, _pos.z);
set_obj_origin_offset(objectIndex, 0.0f, 300.0f, 0.0f);
diff --git a/src/engine/objects/HotAirBalloon.h b/src/engine/objects/HotAirBalloon.h
index 301e111c4..c80422348 100644
--- a/src/engine/objects/HotAirBalloon.h
+++ b/src/engine/objects/HotAirBalloon.h
@@ -18,7 +18,7 @@ extern "C" {
}
class OHotAirBalloon : public OObject {
-public:
+ public:
explicit OHotAirBalloon(const FVector& pos);
virtual void Tick() override;
@@ -28,7 +28,7 @@ public:
void func_80085534(s32 objectIndex);
void func_80085768(s32 objectIndex);
-private:
+ private:
FVector _pos;
- bool *_visible;
+ bool* _visible;
};
diff --git a/src/engine/objects/Lakitu.cpp b/src/engine/objects/Lakitu.cpp
index 12ca2d7db..4998dc0a9 100644
--- a/src/engine/objects/Lakitu.cpp
+++ b/src/engine/objects/Lakitu.cpp
@@ -31,7 +31,7 @@ extern "C" {
#include "course_offsets.h"
#include "data/some_data.h"
#include "race_logic.h"
-#include "effects.h"
+#include "effects.h"
#include "memory.h"
extern s8 gPlayerCount;
}
@@ -40,11 +40,11 @@ OLakitu::OLakitu(s32 playerId, LakituType type) {
Name = "Lakitu";
_playerId = playerId;
- init_object(gIndexLakituList[playerId], (s32)type);
+ init_object(gIndexLakituList[playerId], (s32) type);
}
void OLakitu::Activate(LakituType type) {
- init_object(gIndexLakituList[_playerId], (s32)type);
+ init_object(gIndexLakituList[_playerId], (s32) type);
}
void OLakitu::Tick() {
@@ -104,13 +104,14 @@ void OLakitu::Draw(s32 cameraId) {
object->orientation[2] = 0x8000;
if (func_80072354(objectIndex, 2) != 0) {
draw_2d_texture_at(object->pos, object->orientation, object->sizeScaling, (u8*) object->activeTLUT,
- (u8*)object->activeTexture, object->vertex, (s32) object->textureWidth,
+ (u8*) object->activeTexture, object->vertex, (s32) object->textureWidth,
(s32) object->textureHeight, (s32) object->textureWidth,
(s32) object->textureHeight / 2);
} else {
func_800485C4(object->pos, object->orientation, object->sizeScaling, (s32) object->primAlpha,
- (u8*) object->activeTLUT, (u8*)object->activeTexture, object->vertex, (s32) object->textureWidth,
- (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2);
+ (u8*) object->activeTLUT, (u8*) object->activeTexture, object->vertex,
+ (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth,
+ (s32) object->textureHeight / 2);
}
if (gScreenModeSelection == SCREEN_MODE_1P) {
var_f0 = object->pos[0] - camera->pos[0];
@@ -362,7 +363,7 @@ void OLakitu::func_800797AC(s32 playerId) {
objectIndex = gIndexLakituList[playerId];
player = &gPlayerOne[playerId];
- //if ((GetCourse() == GetSherbetLand()) && (player->unk_0CA & 1)) {
+ // if ((GetCourse() == GetSherbetLand()) && (player->unk_0CA & 1)) {
if ((CM_GetProps()->LakituTowType == LakituTowType::ICE) && (player->unk_0CA & 1)) {
init_object(objectIndex, 7);
player->unk_0CA |= 0x10;
@@ -765,14 +766,12 @@ void OLakitu::func_8007A66C(s32 objectIndex) {
u16 rot = 0x8000 - camera->rot[1];
gObjectList[objectIndex].pos[0] =
- (player->pos[0] +
- (coss(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) -
+ (player->pos[0] + (coss(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) -
(sins(rot) * (gObjectList[objectIndex].origin_pos[2] + gObjectList[objectIndex].offset[2]));
gObjectList[objectIndex].pos[1] =
player->unk_074 + gObjectList[objectIndex].origin_pos[1] + gObjectList[objectIndex].offset[1];
gObjectList[objectIndex].pos[2] =
- (player->pos[2] +
- (sins(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) +
+ (player->pos[2] + (sins(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) +
(coss(rot) * (gObjectList[objectIndex].origin_pos[2] + gObjectList[objectIndex].offset[2]));
}
@@ -780,16 +779,14 @@ void OLakitu::func_8007A778(s32 objectIndex) {
Player* player = &gPlayers[_playerId];
Camera* camera = &cameras[_playerId];
u16 rot = 0x8000 - camera->rot[1];
-
+
gObjectList[objectIndex].pos[0] =
- (player->pos[0] +
- (coss(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) -
+ (player->pos[0] + (coss(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) -
(sins(rot) * (gObjectList[objectIndex].origin_pos[2] + gObjectList[objectIndex].offset[2]));
gObjectList[objectIndex].pos[1] =
player->pos[1] + gObjectList[objectIndex].origin_pos[1] + gObjectList[objectIndex].offset[1];
gObjectList[objectIndex].pos[2] =
- (player->pos[2] +
- (sins(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) +
+ (player->pos[2] + (sins(rot) * (gObjectList[objectIndex].origin_pos[0] + gObjectList[objectIndex].offset[0]))) +
(coss(rot) * (gObjectList[objectIndex].origin_pos[2] + gObjectList[objectIndex].offset[2]));
}
@@ -801,7 +798,7 @@ void OLakitu::func_8007A88C(s32 playerId) {
player = &gPlayerOne[playerId];
if ((gObjectList[objectIndex].state == 0) && (player->effects & 0x400000)) {
- //func_800790E4(playerId);
+ // func_800790E4(playerId);
init_object(gIndexLakituList[playerId], 6);
}
}
@@ -819,7 +816,7 @@ void OLakitu::func_8007AA44(s32 playerId) {
OLakitu::func_8007A910(playerId);
objectIndex = gIndexLakituList[playerId];
- gLakituTexturePtr = (const char**)&gLakituTextureBuffer[playerId];
+ gLakituTexturePtr = (const char**) &gLakituTextureBuffer[playerId];
switch (gObjectList[objectIndex].unk_0D8) {
case 1:
OLakitu::func_80079114(objectIndex, playerId, 2);
@@ -854,4 +851,3 @@ void OLakitu::func_8007AA44(s32 playerId) {
break;
}
}
-
diff --git a/src/engine/objects/Lakitu.h b/src/engine/objects/Lakitu.h
index 1944733ee..514b041db 100644
--- a/src/engine/objects/Lakitu.h
+++ b/src/engine/objects/Lakitu.h
@@ -20,11 +20,11 @@ extern "C" {
* Otherwise Lakitu will animate faster than normal.
*/
class OLakitu : public OObject {
-public:
+ public:
enum LakituType : uint32_t {
STARTER = 1,
FINISH, // Checkered flag
- TOW, // Picks up an out of bounds player
+ TOW, // Picks up an out of bounds player
SECOND_LAP,
FINAL_LAP,
REVERSE,
@@ -36,7 +36,7 @@ public:
ICE, // Used in sherbet land to put an ice-cube on the player
};
-public:
+ public:
explicit OLakitu(s32 playerId, LakituType type);
void Activate(LakituType type); // Triggers Lakitu into a behaviour
@@ -76,7 +76,7 @@ public:
void func_8007A910(s32 arg0);
void func_8007AA44(s32 playerId); // animate lakitu
-private:
+ private:
LakituType _type;
s32 _playerId;
};
diff --git a/src/engine/objects/Mole.cpp b/src/engine/objects/Mole.cpp
index 06bd5f56c..b9c542f0c 100644
--- a/src/engine/objects/Mole.cpp
+++ b/src/engine/objects/Mole.cpp
@@ -145,7 +145,7 @@ void OMole::func_80081AFC(s32 objectIndex, s32 arg1) {
// sp2C = D_8018D1B8;
// break;
// }
- //sp2C[object->type] = 0;
+ // sp2C[object->type] = 0;
}
break;
case 0:
@@ -179,20 +179,20 @@ void OMole::func_8008153C(s32 objectIndex) {
}
u8* mole = (u8*) LOAD_ASSET_RAW(d_course_moo_moo_farm_mole_dirt);
- init_object(loopObjectIndex, 0);
- gObjectList[loopObjectIndex].activeTLUT = d_course_moo_moo_farm_mole_dirt;
- gObjectList[loopObjectIndex].tlutList = mole;
- gObjectList[loopObjectIndex].sizeScaling = 0.15f;
- gObjectList[loopObjectIndex].velocity[1] = random_int(0x000AU);
- gObjectList[loopObjectIndex].velocity[1] = (gObjectList[loopObjectIndex].velocity[1] * 0.1) + 4.8;
- gObjectList[loopObjectIndex].unk_034 = random_int(5U);
- gObjectList[loopObjectIndex].unk_034 = (gObjectList[loopObjectIndex].unk_034 * 0.01) + 0.8;
- gObjectList[loopObjectIndex].orientation[1] = (0x10000 / sp70) * var_s1;
- gObjectList[loopObjectIndex].origin_pos[0] = gObjectList[objectIndex].origin_pos[0];
- gObjectList[loopObjectIndex].origin_pos[1] = gObjectList[objectIndex].origin_pos[1] - 13.0;
- gObjectList[loopObjectIndex].origin_pos[2] = gObjectList[objectIndex].origin_pos[2];
- break;
- }
+ init_object(loopObjectIndex, 0);
+ gObjectList[loopObjectIndex].activeTLUT = d_course_moo_moo_farm_mole_dirt;
+ gObjectList[loopObjectIndex].tlutList = mole;
+ gObjectList[loopObjectIndex].sizeScaling = 0.15f;
+ gObjectList[loopObjectIndex].velocity[1] = random_int(0x000AU);
+ gObjectList[loopObjectIndex].velocity[1] = (gObjectList[loopObjectIndex].velocity[1] * 0.1) + 4.8;
+ gObjectList[loopObjectIndex].unk_034 = random_int(5U);
+ gObjectList[loopObjectIndex].unk_034 = (gObjectList[loopObjectIndex].unk_034 * 0.01) + 0.8;
+ gObjectList[loopObjectIndex].orientation[1] = (0x10000 / sp70) * var_s1;
+ gObjectList[loopObjectIndex].origin_pos[0] = gObjectList[objectIndex].origin_pos[0];
+ gObjectList[loopObjectIndex].origin_pos[1] = gObjectList[objectIndex].origin_pos[1] - 13.0;
+ gObjectList[loopObjectIndex].origin_pos[2] = gObjectList[objectIndex].origin_pos[2];
+ break;
+ }
}
}
@@ -243,21 +243,15 @@ void OMole::func_80081D34(s32 objectIndex) {
}
static const char* frames[] = {
- gTextureMole1,
- gTextureMole2,
- gTextureMole3,
- gTextureMole4,
- gTextureMole5,
- gTextureMole6,
- gTextureMole7,
- d_course_moo_moo_farm_mole_dirt,
+ gTextureMole1, gTextureMole2, gTextureMole3, gTextureMole4,
+ gTextureMole5, gTextureMole6, gTextureMole7, d_course_moo_moo_farm_mole_dirt,
};
-
void OMole::func_80081848(s32 objectIndex) {
- init_texture_object(objectIndex, (u8*)d_course_moo_moo_farm_mole_tlut, (const char**) frames, 0x20U, (u16) 0x00000040);
- //gObjectList[objectIndex].activeTexture = (const char*)d_course_moo_moo_farm_mole_frames;
- //gObjectList[objectIndex].activeTLUT = (const char*)d_course_moo_moo_farm_mole_tlut;
+ init_texture_object(objectIndex, (u8*) d_course_moo_moo_farm_mole_tlut, (const char**) frames, 0x20U,
+ (u16) 0x00000040);
+ // gObjectList[objectIndex].activeTexture = (const char*)d_course_moo_moo_farm_mole_frames;
+ // gObjectList[objectIndex].activeTLUT = (const char*)d_course_moo_moo_farm_mole_tlut;
gObjectList[objectIndex].sizeScaling = 0.15f;
gObjectList[objectIndex].textureListIndex = 0;
@@ -270,7 +264,6 @@ void OMole::func_80081848(s32 objectIndex) {
object_next_state(objectIndex);
}
-
void OMole::func_80081924(s32 objectIndex) {
switch (gObjectList[objectIndex].unk_0AE) {
case 1:
@@ -307,7 +300,6 @@ void OMole::func_80081924(s32 objectIndex) {
}
}
-
void OMole::func_80081A88(s32 objectIndex) {
switch (gObjectList[objectIndex].unk_0DD) { /* irregular */
case 0:
@@ -348,8 +340,8 @@ void OMole::func_80054E10(s32 objectIndex) {
void OMole::func_80054EB8() {
s32 someIndex;
- //for (someIndex = 0; someIndex < NUM_TOTAL_MOLES; someIndex++) {
- func_80054E10(_moleIndex);
+ // for (someIndex = 0; someIndex < NUM_TOTAL_MOLES; someIndex++) {
+ func_80054E10(_moleIndex);
//}
}
@@ -365,8 +357,8 @@ void OMole::func_80054D00(s32 objectIndex, s32 cameraId) {
func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2];
func_80048130(gObjectList[objectIndex].pos, (u16*) D_80183E80, gObjectList[objectIndex].sizeScaling,
- (u8*) gObjectList[objectIndex].activeTLUT, (u8*)gObjectList[objectIndex].activeTexture,
- (Vtx*)LOAD_ASSET_RAW(D_0D0062B0), 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5);
+ (u8*) gObjectList[objectIndex].activeTLUT, (u8*) gObjectList[objectIndex].activeTexture,
+ (Vtx*) LOAD_ASSET_RAW(D_0D0062B0), 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5);
}
}
}
@@ -374,22 +366,23 @@ void OMole::func_80054D00(s32 objectIndex, s32 cameraId) {
void OMole::func_80054F04(s32 cameraId) {
Camera* camera = &camera1[cameraId];
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0079C8);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0079C8);
load_texture_block_rgba16_mirror((u8*) LOAD_ASSET_RAW(d_course_moo_moo_farm_mole_dirt), 0x00000010, 0x00000010);
-if (_idx == 0) {
- for (size_t i = 0; i < gObjectParticle2_SIZE; i++) {
- s32 objectIndex = gObjectParticle2[i];
- Object* object = &gObjectList[objectIndex];
- if (object->state > 0) {
- func_8008A364(objectIndex, cameraId, 0x2AABU, 0x000000C8);
- if ((is_obj_flag_status_active(objectIndex, VISIBLE) != 0) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
- object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos);
- rsp_set_matrix_gObjectList(objectIndex);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D006980);
+ if (_idx == 0) {
+ for (size_t i = 0; i < gObjectParticle2_SIZE; i++) {
+ s32 objectIndex = gObjectParticle2[i];
+ Object* object = &gObjectList[objectIndex];
+ if (object->state > 0) {
+ func_8008A364(objectIndex, cameraId, 0x2AABU, 0x000000C8);
+ if ((is_obj_flag_status_active(objectIndex, VISIBLE) != 0) &&
+ (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
+ object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos);
+ rsp_set_matrix_gObjectList(objectIndex);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D006980);
+ }
}
}
}
-}
gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF);
}
diff --git a/src/engine/objects/Mole.h b/src/engine/objects/Mole.h
index 1457c72cc..07293f8f9 100644
--- a/src/engine/objects/Mole.h
+++ b/src/engine/objects/Mole.h
@@ -20,7 +20,7 @@ extern "C" {
class OMoleGroup;
class OMole : public OObject {
-public:
+ public:
explicit OMole(FVector pos, OMoleGroup* group);
virtual void Tick() override;
@@ -41,7 +41,8 @@ public:
void func_8008153C(s32 objectIndex);
s32 _moleIndex;
-private:
+
+ private:
static size_t _count;
size_t _idx;
OMoleGroup* _group;
diff --git a/src/engine/objects/MoleGroup.cpp b/src/engine/objects/MoleGroup.cpp
index 6e98edbbb..0e114c274 100644
--- a/src/engine/objects/MoleGroup.cpp
+++ b/src/engine/objects/MoleGroup.cpp
@@ -10,14 +10,14 @@ extern "C" {
OMoleGroup::OMoleGroup(std::vector<FVector> spawns) {
for (auto& pos : spawns) {
- pos.x * xOrientation;
+ pos.x* xOrientation;
OMole* ptr = reinterpret_cast<OMole*>(gWorldInstance.AddObject(new OMole(pos, this)));
- _moles.push_back({ptr, pos, false});
+ _moles.push_back({ ptr, pos, false });
}
}
void OMoleGroup::Tick() {
- for (auto &mole : _moles) {
+ for (auto& mole : _moles) {
if (gObjectList[mole.Mole->_objectIndex].state == 0) {
func_80081FF4(mole.Mole->_objectIndex);
} else {
diff --git a/src/engine/objects/MoleGroup.h b/src/engine/objects/MoleGroup.h
index dfb920985..2db36caed 100644
--- a/src/engine/objects/MoleGroup.h
+++ b/src/engine/objects/MoleGroup.h
@@ -9,7 +9,7 @@
class OMole;
class OMoleGroup : public OObject {
-public:
+ public:
struct MoleEntry {
OMole* Mole;
FVector Pos;
@@ -22,6 +22,5 @@ public:
void func_80081FF4(s32 objectIndex);
-
std::vector<MoleEntry> _moles;
};
diff --git a/src/engine/objects/Object.cpp b/src/engine/objects/Object.cpp
index 4e4fd6766..88f1dad1b 100644
--- a/src/engine/objects/Object.cpp
+++ b/src/engine/objects/Object.cpp
@@ -4,20 +4,25 @@
#include "World.h"
extern "C" {
- #include "camera.h"
+#include "camera.h"
}
+// GameActor()
- //GameActor()
-
-OObject::OObject() {}
+OObject::OObject() {
+}
- // Virtual functions to be overridden by derived classes
-void OObject::Tick() { }
-void OObject::Tick60fps() {}
-void OObject::Draw(s32 cameraId) { }
-void OObject::Expire() { }
+// Virtual functions to be overridden by derived classes
+void OObject::Tick() {
+}
+void OObject::Tick60fps() {
+}
+void OObject::Draw(s32 cameraId) {
+}
+void OObject::Expire() {
+}
void OObject::Destroy() {
bPendingDestroy = true;
}
-void OObject::Reset() { }
+void OObject::Reset() {
+}
diff --git a/src/engine/objects/Object.h b/src/engine/objects/Object.h
index 9dd44397b..98d7fc99c 100644
--- a/src/engine/objects/Object.h
+++ b/src/engine/objects/Object.h
@@ -3,12 +3,12 @@
#include <libultraship.h>
extern "C" {
- #include "camera.h"
- #include "objects.h"
+#include "camera.h"
+#include "objects.h"
}
class OObject {
-public:
+ public:
uint8_t uuid[16];
Object o;
const char* Name = "";
diff --git a/src/engine/objects/Penguin.cpp b/src/engine/objects/Penguin.cpp
index d283101b3..147922896 100644
--- a/src/engine/objects/Penguin.cpp
+++ b/src/engine/objects/Penguin.cpp
@@ -33,7 +33,6 @@ extern "C" {
extern s8 gPlayerCount;
}
-
OPenguin::OPenguin(FVector pos, u16 direction, PenguinType type, Behaviour behaviour) {
Name = "Penguin";
_type = type;
@@ -43,13 +42,13 @@ OPenguin::OPenguin(FVector pos, u16 direction, PenguinType type, Behaviour behav
init_object(_objectIndex, 0);
- Object *object = &gObjectList[_objectIndex];
+ Object* object = &gObjectList[_objectIndex];
object->origin_pos[0] = pos.x * xOrientation;
object->origin_pos[1] = pos.y;
object->origin_pos[2] = pos.z;
object->unk_0C6 = direction;
- switch(type) {
+ switch (type) {
case PenguinType::CHICK:
object->surfaceHeight = 5.0f;
object->sizeScaling = 0.04f;
@@ -91,8 +90,7 @@ void OPenguin::Tick(void) {
} else {
func_80089820(objectIndex, 1.5f, 1.25f, 0x1900A046U);
}
- if ((is_obj_flag_status_active(objectIndex, 0x02000000) != 0) &&
- (func_80072354(objectIndex, 0x00000020) != 0)) {
+ if ((is_obj_flag_status_active(objectIndex, 0x02000000) != 0) && (func_80072354(objectIndex, 0x00000020) != 0)) {
func_800722A4(objectIndex, 0x00000060);
clear_object_flag(objectIndex, 0x02000000);
}
@@ -113,7 +111,6 @@ void OPenguin::Draw(s32 cameraId) {
var_s3 = 0x00015F90;
}
-
if (gObjectList[objectIndex].state >= 2) {
// This code decreased draw dist if there's more players.
@@ -121,9 +118,9 @@ void OPenguin::Draw(s32 cameraId) {
// It seems to check the angle of the camera.
// These changes were so instance indices are not required.
- //if (gPlayerCountSelection1 == 1) {
- var_s1 = 0x4000;
- drawDistance = 1500;
+ // if (gPlayerCountSelection1 == 1) {
+ var_s1 = 0x4000;
+ drawDistance = 1500;
//} else {
// if (func_80072320(objectIndex, 8) != 0) {
// drawDistance = 500;
@@ -283,7 +280,6 @@ void OPenguin::func_8008502C(s32 objectIndex) {
func_800873F4(objectIndex);
}
-
void OPenguin::EmperorPenguin(s32 objectIndex) {
switch (gObjectList[objectIndex].state) {
case 0:
@@ -304,8 +300,8 @@ void OPenguin::InitEmperorPenguin(s32 objectIndex) {
object->unk_0D8 = 0;
object->model = (Gfx*) d_course_sherbet_land_unk_data1;
object->vertex = (Vtx*) d_course_sherbet_land_unk_data11;
- //object->sizeScaling = 0.2f;
- //object->boundingBoxSize = 0x000C;
+ // object->sizeScaling = 0.2f;
+ // object->boundingBoxSize = 0x000C;
object->unk_09C = 1;
set_obj_direction_angle(objectIndex, 0U, 0U, 0U);
object->unk_0DD = 1;
@@ -372,14 +368,14 @@ void OPenguin::InitOtherPenguin(s32 objectIndex) {
object->unk_0D8 = 0;
object->model = (Gfx*) d_course_sherbet_land_unk_data1;
object->vertex = (Vtx*) d_course_sherbet_land_unk_data11;
- //object->boundingBoxSize = 4;
+ // object->boundingBoxSize = 4;
object->unk_09C = 2;
object->unk_04C = random_int(300);
set_object_flag(objectIndex, 0x04000220);
// This code has been significantly refactored from the original func_800845C8
// Into a switch statement instead of checking for the index of the penguin
- switch(_bhv) {
+ switch (_bhv) {
case Behaviour::CIRCLE:
object->unk_01C[1] = Diameter;
@@ -391,7 +387,7 @@ void OPenguin::InitOtherPenguin(s32 objectIndex) {
_toggle = !_toggle;
- //object->unk_0DD = 2;
+ // object->unk_0DD = 2;
func_800722A4(objectIndex, 8);
break;
case Behaviour::SLIDE3:
diff --git a/src/engine/objects/Penguin.h b/src/engine/objects/Penguin.h
index 91d5687b9..471b553db 100644
--- a/src/engine/objects/Penguin.h
+++ b/src/engine/objects/Penguin.h
@@ -16,17 +16,12 @@ extern "C" {
}
class OPenguin : public OObject {
-public:
- enum PenguinType : uint32_t {
- CHICK,
- ADULT,
- CREDITS,
- EMPEROR
- };
+ public:
+ enum PenguinType : uint32_t { CHICK, ADULT, CREDITS, EMPEROR };
enum Behaviour : uint16_t {
DISABLED,
- STRUT, // Emperor penguin
+ STRUT, // Emperor penguin
CIRCLE, // Waddle in a circle
SLIDE3,
SLIDE4,
@@ -34,7 +29,7 @@ public:
SLIDE6,
};
-public:
+ public:
f32 Diameter = 0.0f; // Waddle in a circle around the spawn point at this diameter.
uint16_t MirrorModeAngleOffset;
@@ -43,7 +38,8 @@ public:
virtual void Tick() override;
virtual void Draw(s32 cameraId) override;
virtual void Reset() override;
-private:
+
+ private:
void Behaviours(s32 objectIndex);
void EmperorPenguin(s32 objectIndex);
void func_80085080(s32 objectIndex);
diff --git a/src/engine/objects/Podium.cpp b/src/engine/objects/Podium.cpp
index ec396ca53..5e50ee092 100644
--- a/src/engine/objects/Podium.cpp
+++ b/src/engine/objects/Podium.cpp
@@ -33,8 +33,8 @@ OPodium::OPodium(const FVector& pos) {
find_unused_obj_index(&_podium2Index);
find_unused_obj_index(&_podium3Index);
- //init_object(objectIndex, 0);
- //set_obj_origin_pos(objectIndex, pos.x - 1.5, pos.y, pos.z);
+ // init_object(objectIndex, 0);
+ // set_obj_origin_pos(objectIndex, pos.x - 1.5, pos.y, pos.z);
}
void OPodium::Tick() { // func_80086604
@@ -66,43 +66,43 @@ void OPodium::Tick() { // func_80086604
}
void OPodium::Draw(s32 cameraId) { // func_80055F48
- Object* object = &gObjectList[_podium1Index];
- if (object->state >= 2) {
- //func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model);
- rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077A0);
- gSPDisplayList(gDisplayListHead++, object->model);
- }
+ Object* object = &gObjectList[_podium1Index];
+ if (object->state >= 2) {
+ // func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model);
+ rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077A0);
+ gSPDisplayList(gDisplayListHead++, object->model);
+ }
- object = &gObjectList[_podium2Index];
- if (object->state >= 2) {
- //func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model);
- rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077A0);
- gSPDisplayList(gDisplayListHead++, object->model);
- }
+ object = &gObjectList[_podium2Index];
+ if (object->state >= 2) {
+ // func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model);
+ rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077A0);
+ gSPDisplayList(gDisplayListHead++, object->model);
+ }
- object = &gObjectList[_podium3Index];
- if (object->state >= 2) {
- //func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model);
- rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077A0);
- gSPDisplayList(gDisplayListHead++, object->model);
- }
+ object = &gObjectList[_podium3Index];
+ if (object->state >= 2) {
+ // func_80043220(object->pos, object->direction_angle, object->sizeScaling, object->model);
+ rsp_set_matrix_transformation(object->pos, object->direction_angle, object->sizeScaling);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077A0);
+ gSPDisplayList(gDisplayListHead++, object->model);
+ }
}
void OPodium::func_8008629C(s32 objectIndex, s32 arg1) {
switch (arg1) { /* irregular */
case 0:
- gObjectList[objectIndex].model = (Gfx*)podium_dl3;
+ gObjectList[objectIndex].model = (Gfx*) podium_dl3;
gObjectList[objectIndex].unk_04C = 0x00000038;
break;
case 1:
- gObjectList[objectIndex].model = (Gfx*)podium2_dl3;
+ gObjectList[objectIndex].model = (Gfx*) podium2_dl3;
gObjectList[objectIndex].unk_04C = 0x0000002B;
break;
case 2:
- gObjectList[objectIndex].model = (Gfx*)podium3_dl3;
+ gObjectList[objectIndex].model = (Gfx*) podium3_dl3;
gObjectList[objectIndex].unk_04C = 0x0000001E;
break;
default:
diff --git a/src/engine/objects/Podium.h b/src/engine/objects/Podium.h
index fafdfe63d..55ab64709 100644
--- a/src/engine/objects/Podium.h
+++ b/src/engine/objects/Podium.h
@@ -16,14 +16,11 @@ extern "C" {
#include "some_data.h"
}
-
class OPodium : public OObject {
-public:
- enum Behaviour : uint16_t {
- };
-
-public:
+ public:
+ enum Behaviour : uint16_t {};
+ public:
explicit OPodium(const FVector& pos);
virtual void Tick() override;
@@ -32,7 +29,7 @@ public:
void func_80086424(s32 objectIndex);
void func_80086528(s32 objectIndex, s32 arg1);
-private:
+ private:
s32 _podium1Index;
s32 _podium2Index;
s32 _podium3Index;
diff --git a/src/engine/objects/Seagull.cpp b/src/engine/objects/Seagull.cpp
index 17c35c07d..0a32d1ee8 100644
--- a/src/engine/objects/Seagull.cpp
+++ b/src/engine/objects/Seagull.cpp
@@ -49,7 +49,6 @@ OSeagull::OSeagull(FVector pos) {
init_object(_objectIndex, 0);
-
set_obj_origin_pos(_objectIndex, pos.x, pos.y, pos.z);
if (_idx < (NUM_SEAGULLS / 2)) {
gObjectList[_objectIndex].unk_0D5 = 0;
@@ -64,32 +63,32 @@ void OSeagull::Tick() {
Object* object;
s32 objectIndex = _objectIndex;
- object = &gObjectList[objectIndex];
- if (object->state == 0) {
- return;
- }
+ object = &gObjectList[objectIndex];
+ if (object->state == 0) {
+ return;
+ }
- OSeagull::func_80082714(objectIndex, _idx);
- OSeagull::func_8008275C(objectIndex);
- if (func_80072320(objectIndex, 2) != 0) {
- func_800722CC(objectIndex, 2);
- if (D_80165A90 != 0) {
- D_80165A90 = 0;
- D_80183E40[0] = 0.0f;
- D_80183E40[1] = 0.0f;
- D_80183E40[2] = 0.0f;
- if (gGamestate != CREDITS_SEQUENCE) {
- func_800C98B8(object->pos, D_80183E40, SOUND_ARG_LOAD(0x19, 0x01, 0x70, 0x43));
- } else {
- if (_idx == 1) {
- if (gCutsceneShotTimer <= 150) {
- object = &gObjectList[_objectIndex];
- func_800C98B8(object->pos, D_80183E40, SOUND_ARG_LOAD(0x19, 0x01, 0x70, 0x43));
- }
+ OSeagull::func_80082714(objectIndex, _idx);
+ OSeagull::func_8008275C(objectIndex);
+ if (func_80072320(objectIndex, 2) != 0) {
+ func_800722CC(objectIndex, 2);
+ if (D_80165A90 != 0) {
+ D_80165A90 = 0;
+ D_80183E40[0] = 0.0f;
+ D_80183E40[1] = 0.0f;
+ D_80183E40[2] = 0.0f;
+ if (gGamestate != CREDITS_SEQUENCE) {
+ func_800C98B8(object->pos, D_80183E40, SOUND_ARG_LOAD(0x19, 0x01, 0x70, 0x43));
+ } else {
+ if (_idx == 1) {
+ if (gCutsceneShotTimer <= 150) {
+ object = &gObjectList[_objectIndex];
+ func_800C98B8(object->pos, D_80183E40, SOUND_ARG_LOAD(0x19, 0x01, 0x70, 0x43));
}
}
}
}
+ }
//}
if (D_80165900 != 0) {
D_80165900 -= 1;
@@ -122,7 +121,7 @@ void OSeagull::func_800552BC(s32 objectIndex) {
if (gObjectList[objectIndex].state >= 2) {
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].direction_angle,
gObjectList[objectIndex].sizeScaling);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077D0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077D0);
if (gIsGamePaused == 0) {
gObjectList[objectIndex].unk_0A2 = render_animated_model((Armature*) gObjectList[objectIndex].model,
(Animation**) gObjectList[objectIndex].vertex, 0,
@@ -180,7 +179,6 @@ void OSeagull::func_8008241C(s32 objectIndex, s32 arg1) {
object_next_state(objectIndex);
}
-
void OSeagull::func_80082714(s32 objectIndex, s32 arg1) {
switch (gObjectList[objectIndex].state) {
case 1:
@@ -190,4 +188,4 @@ void OSeagull::func_80082714(s32 objectIndex, s32 arg1) {
default:
break;
}
-} \ No newline at end of file
+}
diff --git a/src/engine/objects/Seagull.h b/src/engine/objects/Seagull.h
index 42474159e..a5ee71b38 100644
--- a/src/engine/objects/Seagull.h
+++ b/src/engine/objects/Seagull.h
@@ -18,7 +18,7 @@ extern "C" {
//! @todo unk_0D5 needs to be a struct variable probably. What does it do? Behaviour?
class OSeagull : public OObject {
-public:
+ public:
explicit OSeagull(FVector pos);
~OSeagull() {
@@ -37,11 +37,12 @@ public:
void func_8008275C(s32 objectIndex);
void func_8008241C(s32 objectIndex, s32 arg1);
void func_80082714(s32 objectIndex, s32 arg1);
-private:
+
+ private:
FVector _pos;
static size_t _count;
s32 _idx;
bool _toggle;
- SplineData *spline;
+ SplineData* spline;
};
diff --git a/src/engine/objects/Snowman.cpp b/src/engine/objects/Snowman.cpp
index 12beb9e47..581ffbc69 100644
--- a/src/engine/objects/Snowman.cpp
+++ b/src/engine/objects/Snowman.cpp
@@ -27,7 +27,7 @@ OSnowman::OSnowman(const FVector& pos) {
gObjectList[_headIndex].origin_pos[0] = pos.x * xOrientation;
gObjectList[_headIndex].origin_pos[1] = pos.y + 5.0 + 3.0;
gObjectList[_headIndex].origin_pos[2] = pos.z;
- gObjectList[_headIndex].pos[0] = pos.x * xOrientation;
+ gObjectList[_headIndex].pos[0] = pos.x * xOrientation;
gObjectList[_headIndex].pos[1] = pos.y + 5.0 + 3.0;
gObjectList[_headIndex].pos[2] = pos.z;
@@ -38,7 +38,7 @@ OSnowman::OSnowman(const FVector& pos) {
gObjectList[_bodyIndex].origin_pos[2] = pos.z;
gObjectList[_bodyIndex].unk_0D5 = 0; // Section Id no longer used.
- gObjectList[_bodyIndex].pos[0] = pos.x * xOrientation;
+ gObjectList[_bodyIndex].pos[0] = pos.x * xOrientation;
gObjectList[_bodyIndex].pos[1] = pos.y + 3.0;
gObjectList[_bodyIndex].pos[2] = pos.z;
@@ -71,14 +71,15 @@ void OSnowman::Tick() {
}
}
- //for (var_s0 = 0; var_s0 < NUM_SNOWMEN; var_s0++) {
+ // for (var_s0 = 0; var_s0 < NUM_SNOWMEN; var_s0++) {
var_s4 = _bodyIndex;
var_s3 = _headIndex;
OSnowman::func_80083A94(var_s3); // snowman head
OSnowman::func_80083C04(var_s4); // snowman body
if (is_obj_index_flag_status_inactive(var_s4, 0x00001000) != 0) {
object = &gObjectList[var_s4];
- if ((are_players_in_course_section(object->unk_0D5 - 1, object->unk_0D5 + 1) != 0) && (func_80089B50(var_s4) != 0)) {
+ if ((are_players_in_course_section(object->unk_0D5 - 1, object->unk_0D5 + 1) != 0) &&
+ (func_80089B50(var_s4) != 0)) {
set_object_flag(var_s4, 0x00001000);
clear_object_flag(var_s4, 0x00000010);
func_800726CC(var_s4, 0x0000000A);
@@ -123,17 +124,16 @@ void OSnowman::DrawHead(s32 cameraId) {
D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2];
if (is_obj_flag_status_active(objectIndex, 0x00000010) != 0) {
draw_2d_texture_at(gObjectList[objectIndex].pos, (u16*) D_80183E80,
- gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT,
- (u8*)gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex,
- 0x00000040, 0x00000040, 0x00000040, 0x00000020);
+ gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT,
+ (u8*) gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex,
+ 0x00000040, 0x00000040, 0x00000040, 0x00000020);
}
objectIndex = _headIndex;
D_80183E80[0] = (s16) gObjectList[objectIndex].orientation[0];
D_80183E80[2] = (u16) gObjectList[objectIndex].orientation[2];
- draw_2d_texture_at(gObjectList[objectIndex].pos, (u16*) D_80183E80,
- gObjectList[objectIndex].sizeScaling, (u8*) gObjectList[objectIndex].activeTLUT,
- (u8*)gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 0x00000040,
- 0x00000040, 0x00000040, 0x00000020);
+ draw_2d_texture_at(gObjectList[objectIndex].pos, (u16*) D_80183E80, gObjectList[objectIndex].sizeScaling,
+ (u8*) gObjectList[objectIndex].activeTLUT, (u8*) gObjectList[objectIndex].activeTexture,
+ gObjectList[objectIndex].vertex, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
}
}
}
@@ -146,7 +146,8 @@ void OSnowman::DrawBody(s32 cameraId) {
Object* object;
sp44 = &camera1[cameraId];
- load_texture_and_tlut((u8*)d_course_frappe_snowland_snow_tlut, (u8*)d_course_frappe_snowland_snow, 0x00000020, 0x00000020);
+ load_texture_and_tlut((u8*) d_course_frappe_snowland_snow_tlut, (u8*) d_course_frappe_snowland_snow, 0x00000020,
+ 0x00000020);
//! @todo quick hack to add the snow particles on hit. Need to separate into its own class
if (_idx == 0) {
@@ -159,7 +160,7 @@ void OSnowman::DrawBody(s32 cameraId) {
if (is_obj_flag_status_active(objectIndex, VISIBLE) != 0) {
object->orientation[1] = func_800418AC(object->pos[0], object->pos[2], sp44->pos);
rsp_set_matrix_gObjectList(objectIndex);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0069E0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0069E0);
}
}
}
@@ -215,7 +216,8 @@ void OSnowman::func_80083BE4(s32 objectIndex) {
void OSnowman::func_80083868(s32 objectIndex) {
Object* object;
Vtx* vtx = (Vtx*) LOAD_ASSET_RAW(D_0D0061B0);
- init_texture_object(objectIndex, (u8*)d_course_frappe_snowland_snowman_tlut, (const char**)sSnowmanHeadList, 0x40U, (u16) 0x00000040);
+ init_texture_object(objectIndex, (u8*) d_course_frappe_snowland_snowman_tlut, (const char**) sSnowmanHeadList,
+ 0x40U, (u16) 0x00000040);
object = &gObjectList[objectIndex];
object->vertex = vtx;
object->sizeScaling = 0.1f;
@@ -259,7 +261,8 @@ void OSnowman::func_80083948(s32 objectIndex) {
break;
}
object_calculate_new_pos_offset(objectIndex);
- OSnowman::func_80073D0C(objectIndex, &gObjectList[objectIndex].primAlpha, -0x00001000, 0x00001000, 0x00000400, 1, -1);
+ OSnowman::func_80073D0C(objectIndex, &gObjectList[objectIndex].primAlpha, -0x00001000, 0x00001000, 0x00000400, 1,
+ -1);
gObjectList[objectIndex].orientation[2] = gObjectList[objectIndex].primAlpha + 0x8000;
}
@@ -285,7 +288,8 @@ static const char* sSnowmanBodyList[] = { d_course_frappe_snowland_snowman_body
void OSnowman::func_80083B0C(s32 objectIndex) {
Vtx* vtx = (Vtx*) LOAD_ASSET_RAW(common_vtx_hedgehog);
- init_texture_object(objectIndex, (u8*)d_course_frappe_snowland_snowman_tlut, (const char**)sSnowmanBodyList, 0x40U, (u16) 0x00000040);
+ init_texture_object(objectIndex, (u8*) d_course_frappe_snowland_snowman_tlut, (const char**) sSnowmanBodyList,
+ 0x40U, (u16) 0x00000040);
gObjectList[objectIndex].vertex = vtx;
gObjectList[objectIndex].sizeScaling = 0.1f;
gObjectList[objectIndex].textureListIndex = 0;
@@ -299,16 +303,15 @@ void OSnowman::func_80083B0C(s32 objectIndex) {
set_object_flag(objectIndex, 0x04000210);
}
-
void OSnowman::func_80083538(s32 objectIndex, Vec3f arg1, s32 arg2, s32 arg3) {
Object* object;
init_object(objectIndex, 0);
object = &gObjectList[objectIndex];
- object->activeTexture = (const char*)d_course_frappe_snowland_snow;
- object->textureList = (const char**)d_course_frappe_snowland_snow;
+ object->activeTexture = (const char*) d_course_frappe_snowland_snow;
+ object->textureList = (const char**) d_course_frappe_snowland_snow;
object->activeTLUT = d_course_frappe_snowland_snow_tlut;
- object->tlutList = (u8*)d_course_frappe_snowland_snow_tlut;
+ object->tlutList = (u8*) d_course_frappe_snowland_snow_tlut;
object->sizeScaling = random_int(0x0064U);
object->sizeScaling = (object->sizeScaling * 0.001) + 0.05;
object->velocity[1] = random_int(0x0014U);
diff --git a/src/engine/objects/Snowman.h b/src/engine/objects/Snowman.h
index f33ee3b53..5333c09cd 100644
--- a/src/engine/objects/Snowman.h
+++ b/src/engine/objects/Snowman.h
@@ -18,7 +18,7 @@ extern "C" {
}
class OSnowman : public OObject {
-public:
+ public:
explicit OSnowman(const FVector& pos);
~OSnowman() {
@@ -46,7 +46,7 @@ public:
void func_80083538(s32 objectIndex, Vec3f arg1, s32 arg2, s32 arg3);
void func_8008379C(s32 objectIndex);
-private:
+ private:
FVector _pos;
static size_t _count;
size_t _idx;
diff --git a/src/engine/objects/Thwomp.cpp b/src/engine/objects/Thwomp.cpp
index d3f99a8d9..740abd481 100644
--- a/src/engine/objects/Thwomp.cpp
+++ b/src/engine/objects/Thwomp.cpp
@@ -51,8 +51,8 @@ OThwomp::OThwomp(s16 x, s16 z, s16 direction, f32 scale, s16 behaviour, s16 prim
_idx = _count;
_faceDirection = direction;
_boundingBoxSize = boundingBoxSize;
- State = (States)behaviour;
-
+ State = (States) behaviour;
+
find_unused_obj_index(&_objectIndex);
s32 objectId = _objectIndex;
@@ -127,7 +127,6 @@ void OThwomp::Tick60fps() { // func_80081210
if (is_obj_flag_status_active(_objectIndex, 0x00010000) != 0) {
OThwomp::func_80080A4C(_objectIndex, var_s4);
}
-
}
OThwomp::func_8007542C(3);
@@ -180,8 +179,8 @@ void OThwomp::func_80081080(s32 objectIndex) {
Object* object;
object = &gObjectList[objectIndex];
- object->activeTexture = (const char*)D_8018D490;
- object->textureList = (const char**)D_8018D490;
+ object->activeTexture = (const char*) D_8018D490;
+ object->textureList = (const char**) D_8018D490;
object->primAlpha = 0x00FF;
object->direction_angle[1] = 0;
object->orientation[0] = 0;
@@ -628,8 +627,8 @@ void OThwomp::func_80080B28(s32 objectIndex, s32 playerId) {
}
}
} else if ((temp_f0 <= 17.5) && (func_80072320(objectIndex, 1) != 0) &&
- (is_within_horizontal_distance_of_player(objectIndex, temp_s0, (temp_s0->unk_094 * 0.5) + _boundingBoxSize) !=
- 0)) {
+ (is_within_horizontal_distance_of_player(objectIndex, temp_s0,
+ (temp_s0->unk_094 * 0.5) + _boundingBoxSize) != 0)) {
if ((temp_s0->type & 0x8000) && !(temp_s0->type & 0x100)) {
if (is_obj_flag_status_active(objectIndex, 0x04000000) != 0) {
func_80072180();
@@ -680,29 +679,29 @@ void OThwomp::Draw(s32 cameraId) {
OThwomp::DrawModel(objectIndex);
}
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0079C8);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0079C8);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
gSPNumLights(gDisplayListHead++, 1);
gSPLight(gDisplayListHead++, &D_800E4668.l[0], LIGHT_1);
gSPLight(gDisplayListHead++, &D_800E4668.a, LIGHT_2);
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH);
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
- load_texture_block_rgba16_mirror((u8*)d_course_bowsers_castle_thwomp_side, 0x00000020, 0x00000020);
+ load_texture_block_rgba16_mirror((u8*) d_course_bowsers_castle_thwomp_side, 0x00000020, 0x00000020);
for (i = 0; i < gObjectParticle3_SIZE; i++) {
objectIndex = gObjectParticle3[i];
if (objectIndex != NULL_OBJECT_ID) {
object = &gObjectList[objectIndex];
if ((object->state > 0) && (State == MOVE_FAR) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
rsp_set_matrix_transformation(object->pos, object->orientation, object->sizeScaling);
- gSPVertex(gDisplayListHead++, (uintptr_t)D_0D005C00, 3, 0);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D006930);
+ gSPVertex(gDisplayListHead++, (uintptr_t) D_0D005C00, 3, 0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D006930);
}
}
}
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
gSPTexture(gDisplayListHead++, 0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007AE0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007AE0);
load_texture_block_ia8_nomirror(D_8018D490, 0x00000020, 0x00000020);
func_8004B3C8(0);
D_80183E80[0] = 0;
@@ -714,7 +713,7 @@ void OThwomp::Draw(s32 cameraId) {
if ((object->state >= 2) && (State == MOVE_AND_ROTATE) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) {
func_8004B138(0x000000FF, 0x000000FF, 0x000000FF, (s32) object->primAlpha);
D_80183E80[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos);
- func_800431B0(object->pos, D_80183E80, object->sizeScaling, (Vtx*)D_0D005AE0);
+ func_800431B0(object->pos, D_80183E80, object->sizeScaling, (Vtx*) D_0D005AE0);
}
}
}
@@ -726,10 +725,10 @@ void OThwomp::DrawModel(s32 objectIndex) {
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation,
gObjectList[objectIndex].sizeScaling);
OThwomp::ThwompLights(objectIndex);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007828);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007828);
gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16);
gDPLoadTLUT_pal256(gDisplayListHead++, d_course_bowsers_castle_thwomp_tlut);
- rsp_load_texture_mask((u8*)gObjectList[objectIndex].activeTexture, 0x00000010, 0x00000040, 4);
+ rsp_load_texture_mask((u8*) gObjectList[objectIndex].activeTexture, 0x00000010, 0x00000040, 4);
gSPDisplayList(gDisplayListHead++, gObjectList[objectIndex].model);
}
}
@@ -827,9 +826,9 @@ void OThwomp::func_8007EC30(s32 objectIndex) {
set_obj_direction_angle(objectIndex, 0U, _faceDirection, 0U);
set_obj_orientation(objectIndex, 0U, _faceDirection, 0U);
}
- init_texture_object(objectIndex, (uint8_t*) d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces,
- 0x10U, (u16) 0x00000040);
- object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp;
+ init_texture_object(objectIndex, (uint8_t*) d_course_bowsers_castle_thwomp_tlut,
+ (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040);
+ object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp;
object->unk_01C[1] = 30.0f;
set_object_flag(objectIndex, 0x05000220);
object->type = 0;
@@ -864,10 +863,10 @@ void OThwomp::MoveAndRotateBehaviour(s32 objectIndex) { // func_8007F5A8
void OThwomp::func_8007EE5C(s32 objectIndex) {
Object* object;
- init_texture_object(objectIndex, (u8*)d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces,
- 0x10U, (u16) 0x00000040);
+ init_texture_object(objectIndex, (u8*) d_course_bowsers_castle_thwomp_tlut,
+ (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040);
object = &gObjectList[objectIndex];
- object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp;
+ object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp;
set_object_flag(objectIndex, 0x04000220);
object->type = 0;
object->unk_0DF = 6;
@@ -917,10 +916,10 @@ void OThwomp::MoveFarBehaviour(s32 objectIndex) { // func_8007FFC0
void OThwomp::func_8007FA08(s32 objectIndex) {
Object* object;
- init_texture_object(objectIndex, (u8*)d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces,
- 0x10U, (u16) 0x00000040);
+ init_texture_object(objectIndex, (u8*) d_course_bowsers_castle_thwomp_tlut,
+ (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040);
object = &gObjectList[objectIndex];
- object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp;
+ object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp;
set_object_flag(objectIndex, 0x04000220);
object->type = 0;
object->surfaceHeight = 0.0f;
@@ -1083,10 +1082,10 @@ void OThwomp::StationaryFastBehaviour(s32 objectIndex) { // func_800801FC
void OThwomp::func_80080078(s32 objectIndex) { // func_80080078
Object* object;
- init_texture_object(objectIndex, (u8*)d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces,
- 0x10U, (u16) 0x00000040);
+ init_texture_object(objectIndex, (u8*) d_course_bowsers_castle_thwomp_tlut,
+ (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040);
object = &gObjectList[objectIndex];
- object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp;
+ object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp;
set_object_flag(objectIndex, 0x04000220);
object->type = 2;
object->unk_0DF = 8;
@@ -1154,11 +1153,11 @@ void OThwomp::func_800802C0(s32 objectIndex) {
object = &gObjectList[objectIndex];
object->unk_0D8 = 0;
- init_texture_object(objectIndex, (u8*)d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces,
- 0x10U, (u16) 0x00000040);
- object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp;
+ init_texture_object(objectIndex, (u8*) d_course_bowsers_castle_thwomp_tlut,
+ (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040);
+ object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp;
object->textureListIndex = 0;
- //object->sizeScaling = 1.5f;
+ // object->sizeScaling = 1.5f;
set_object_flag(objectIndex, 0x05000220);
object->type = 1;
object->unk_0DF = 6;
@@ -1180,7 +1179,7 @@ void OThwomp::func_800802C0(s32 objectIndex) {
}
void OThwomp::SlidingBehaviour(s32 objectIndex) { // func_800808CC
- switch (gObjectList[objectIndex].state) { /* irregular */
+ switch (gObjectList[objectIndex].state) { /* irregular */
case 0:
break;
case 1:
@@ -1264,10 +1263,10 @@ void OThwomp::func_8008078C(s32 objectIndex) {
void OThwomp::func_80080524(s32 objectIndex) {
Object* object;
- init_texture_object(objectIndex, (u8*)d_course_bowsers_castle_thwomp_tlut, (const char**) d_course_bowsers_castle_thwomp_faces,
- 0x10U, (u16) 0x00000040);
+ init_texture_object(objectIndex, (u8*) d_course_bowsers_castle_thwomp_tlut,
+ (const char**) d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040);
object = &gObjectList[objectIndex];
- object->model = (Gfx*)d_course_bowsers_castle_dl_thwomp;
+ object->model = (Gfx*) d_course_bowsers_castle_dl_thwomp;
object->textureListIndex = 0;
set_object_flag(objectIndex, 0x04000220);
object->type = 0;
diff --git a/src/engine/objects/Thwomp.h b/src/engine/objects/Thwomp.h
index 22c674bb5..c66705312 100644
--- a/src/engine/objects/Thwomp.h
+++ b/src/engine/objects/Thwomp.h
@@ -22,16 +22,16 @@ extern "C" {
/**
* Thwomp OObject
- *
+ *
* The game automatically places the actor on the ground so you do not need to provide a Y coordinate value.
- *
+ *
* @arg direction the rotational direction the thwomp is facing.
* @arg behaviour the behaviour of the thwomp, uses values 1-6.
* @arg primAlpha unknown
* @arg boundingBoxSize optional. The size of the bounding box for the thwomp. Default value is 12
*/
class OThwomp : public OObject {
-private:
+ private:
enum States : uint16_t {
DISABLED,
STATIONARY,
@@ -42,7 +42,7 @@ private:
JAILED // Has no collision
};
-public:
+ public:
States State = States::DISABLED;
explicit OThwomp(s16 x, s16 z, s16 direction, f32 scale, s16 behaviour, s16 primAlpha, u16 boundingBoxSize = 7);
@@ -110,7 +110,8 @@ public:
void func_8008078C(s32 objectIndex);
void func_8007E63C(s32 objectIndex);
-private:
+
+ private:
static size_t _count;
s32 _idx;
s16 _faceDirection;
diff --git a/src/engine/objects/TrashBin.cpp b/src/engine/objects/TrashBin.cpp
index c94d0352f..8ff278045 100644
--- a/src/engine/objects/TrashBin.cpp
+++ b/src/engine/objects/TrashBin.cpp
@@ -18,7 +18,7 @@ extern "C" {
#include "audio/external.h"
}
-#define DEGREES_FLOAT_TO_SHORT(Degrees) ((s16)((Degrees) * (0x8000 / 180.0f)))
+#define DEGREES_FLOAT_TO_SHORT(Degrees) ((s16) ((Degrees) * (0x8000 / 180.0f)))
OTrashBin::OTrashBin(const FVector& pos, const IRotator& rotation, f32 scale, OTrashBin::Behaviour bhv) {
Name = "Trashbin";
@@ -39,7 +39,7 @@ OTrashBin::OTrashBin(const FVector& pos, const IRotator& rotation, f32 scale, OT
void OTrashBin::Tick() {
OTrashBin::func_8007E00C(_objectIndex);
- switch(_bhv) {
+ switch (_bhv) {
case STATIC:
break;
case MUNCHING:
@@ -63,7 +63,7 @@ void OTrashBin::Draw(s32 cameraId) {
Vec3f Pos = { _pos.x + 63, _pos.y + 12, _pos.z + 25 };
Vec3s Rot = { 0, 0x4000, 0 };
mtxf_pos_rotation_xyz(mtx, Pos, Rot);
- //mtxf_scale(mtx, 1.0f);
+ // mtxf_scale(mtx, 1.0f);
if (render_set_position(mtx, 0) != 0) {
gSPDisplayList(gDisplayListHead++, BinMod);
}
@@ -73,7 +73,7 @@ void OTrashBin::Draw(s32 cameraId) {
void OTrashBin::init_bb_trash_bin(s32 objectIndex) {
gObjectList[objectIndex].sizeScaling = 1.0f;
- gObjectList[objectIndex].model = (Gfx*)d_course_banshee_boardwalk_dl_trash_bin;
+ gObjectList[objectIndex].model = (Gfx*) d_course_banshee_boardwalk_dl_trash_bin;
gObjectList[objectIndex].unk_04C = 0;
gObjectList[objectIndex].unk_084[7] = 0;
set_obj_orientation(objectIndex, 0U, 0U, 0U);
@@ -149,83 +149,78 @@ void OTrashBin::func_8007E00C(s32 objectIndex) {
}
}
-Gfx OTrashBin::BinMod[] =
-{
+Gfx OTrashBin::BinMod[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
+ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD,
+ G_TX_NOMIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, gTexture651B20),
gsDPTileSync(),
- gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
+ gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
+ G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
- gsSPVertex(BinVtx, 20, 0),
- gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
- gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
- gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
- gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
- gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0),
- gsSPVertex(BinVtx2, 20, 0),
- gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
- gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
- gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
- gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
- gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0),
- gsDPPipeSync(),
- gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
- gsSPTexture(65535, 65535, 0, 0, 0),
+ gsSPVertex(BinVtx, 20, 0),
+ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
+ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
+ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
+ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
+ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0),
+ gsSPVertex(BinVtx2, 20, 0),
+ gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
+ gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
+ gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
+ gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
+ gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0),
+ gsDPPipeSync(),
+ gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
+ gsSPTexture(65535, 65535, 0, 0, 0),
gsSPEndDisplayList(),
};
-
-
-
-
-
-
Vtx OTrashBin::BinVtx[20] = {
- {{ {25, -13, 62}, 0, {0, -2303}, {255, 255, 255, 0} }},
- {{ {-25, -13, 62}, 0, {1280, -2303}, {255, 255, 255, 0} }},
- {{ {-25, -13, -63}, 0, {1280, 896}, {255, 255, 255, 0} }},
- {{ {25, -13, -63}, 0, {0, 895}, {255, 255, 255, 0} }},
- {{ {25, -13, -63}, 0, {0, 1113}, {255, 255, 255, 0} }},
- {{ {25, 20, -63}, 0, {0, 256}, {255, 255, 255, 0} }},
- {{ {25, 20, 62}, 0, {3199, 256}, {255, 255, 255, 0} }},
- {{ {25, -13, 62}, 0, {3199, 1113}, {255, 255, 255, 0} }},
- {{ {-25, -13, -63}, 0, {0, 1113}, {255, 255, 255, 0} }},
- {{ {-25, 20, -63}, 0, {0, 255}, {255, 255, 255, 0} }},
- {{ {25, 20, -63}, 0, {1280, 255}, {255, 255, 255, 0} }},
- {{ {25, -13, -63}, 0, {1280, 1113}, {255, 255, 255, 0} }},
- {{ {-25, -13, 62}, 0, {0, 1113}, {255, 255, 255, 0} }},
- {{ {-25, 20, 62}, 0, {0, 255}, {255, 255, 255, 0} }},
- {{ {-25, 20, -63}, 0, {3200, 255}, {255, 255, 255, 0} }},
- {{ {-25, -13, -63}, 0, {3200, 1113}, {255, 255, 255, 0} }},
- {{ {25, -13, 62}, 0, {0, 1113}, {255, 255, 255, 0} }},
- {{ {25, 20, 62}, 0, {0, 256}, {255, 255, 255, 0} }},
- {{ {-25, 20, 62}, 0, {1279, 256}, {255, 255, 255, 0} }},
- {{ {-25, -13, 62}, 0, {1279, 1113}, {255, 255, 255, 0} }},
+ { { { 25, -13, 62 }, 0, { 0, -2303 }, { 255, 255, 255, 0 } } },
+ { { { -25, -13, 62 }, 0, { 1280, -2303 }, { 255, 255, 255, 0 } } },
+ { { { -25, -13, -63 }, 0, { 1280, 896 }, { 255, 255, 255, 0 } } },
+ { { { 25, -13, -63 }, 0, { 0, 895 }, { 255, 255, 255, 0 } } },
+ { { { 25, -13, -63 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } },
+ { { { 25, 20, -63 }, 0, { 0, 256 }, { 255, 255, 255, 0 } } },
+ { { { 25, 20, 62 }, 0, { 3199, 256 }, { 255, 255, 255, 0 } } },
+ { { { 25, -13, 62 }, 0, { 3199, 1113 }, { 255, 255, 255, 0 } } },
+ { { { -25, -13, -63 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } },
+ { { { -25, 20, -63 }, 0, { 0, 255 }, { 255, 255, 255, 0 } } },
+ { { { 25, 20, -63 }, 0, { 1280, 255 }, { 255, 255, 255, 0 } } },
+ { { { 25, -13, -63 }, 0, { 1280, 1113 }, { 255, 255, 255, 0 } } },
+ { { { -25, -13, 62 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } },
+ { { { -25, 20, 62 }, 0, { 0, 255 }, { 255, 255, 255, 0 } } },
+ { { { -25, 20, -63 }, 0, { 3200, 255 }, { 255, 255, 255, 0 } } },
+ { { { -25, -13, -63 }, 0, { 3200, 1113 }, { 255, 255, 255, 0 } } },
+ { { { 25, -13, 62 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } },
+ { { { 25, 20, 62 }, 0, { 0, 256 }, { 255, 255, 255, 0 } } },
+ { { { -25, 20, 62 }, 0, { 1279, 256 }, { 255, 255, 255, 0 } } },
+ { { { -25, -13, 62 }, 0, { 1279, 1113 }, { 255, 255, 255, 0 } } },
};
Vtx OTrashBin::BinVtx2[20] = {
- {{ {19, -8, 52}, 0, {3199, 1113}, {255, 255, 255, 0} }},
- {{ {25, 20, 62}, 0, {3199, 256}, {255, 255, 255, 0} }},
- {{ {25, 20, -63}, 0, {0, 256}, {255, 255, 255, 0} }},
- {{ {19, -8, -52}, 0, {0, 1113}, {255, 255, 255, 0} }},
- {{ {19, -8, -52}, 0, {1280, 1113}, {255, 255, 255, 0} }},
- {{ {25, 20, -63}, 0, {1280, 255}, {255, 255, 255, 0} }},
- {{ {-25, 20, -63}, 0, {0, 255}, {255, 255, 255, 0} }},
- {{ {-19, -8, -52}, 0, {0, 1113}, {255, 255, 255, 0} }},
- {{ {-19, -8, 52}, 0, {1279, 1113}, {255, 255, 255, 0} }},
- {{ {-25, 20, 62}, 0, {1279, 256}, {255, 255, 255, 0} }},
- {{ {25, 20, 62}, 0, {0, 256}, {255, 255, 255, 0} }},
- {{ {19, -8, 52}, 0, {0, 1113}, {255, 255, 255, 0} }},
- {{ {19, -8, -52}, 0, {0, 895}, {255, 255, 255, 0} }},
- {{ {-19, -8, -52}, 0, {1280, 896}, {255, 255, 255, 0} }},
- {{ {-19, -8, 52}, 0, {1280, -2303}, {255, 255, 255, 0} }},
- {{ {19, -8, 52}, 0, {0, -2303}, {255, 255, 255, 0} }},
- {{ {-19, -8, -52}, 0, {3200, 1113}, {255, 255, 255, 0} }},
- {{ {-25, 20, -63}, 0, {3200, 255}, {255, 255, 255, 0} }},
- {{ {-25, 20, 62}, 0, {0, 255}, {255, 255, 255, 0} }},
- {{ {-19, -8, 52}, 0, {0, 1113}, {255, 255, 255, 0} }},
+ { { { 19, -8, 52 }, 0, { 3199, 1113 }, { 255, 255, 255, 0 } } },
+ { { { 25, 20, 62 }, 0, { 3199, 256 }, { 255, 255, 255, 0 } } },
+ { { { 25, 20, -63 }, 0, { 0, 256 }, { 255, 255, 255, 0 } } },
+ { { { 19, -8, -52 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } },
+ { { { 19, -8, -52 }, 0, { 1280, 1113 }, { 255, 255, 255, 0 } } },
+ { { { 25, 20, -63 }, 0, { 1280, 255 }, { 255, 255, 255, 0 } } },
+ { { { -25, 20, -63 }, 0, { 0, 255 }, { 255, 255, 255, 0 } } },
+ { { { -19, -8, -52 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } },
+ { { { -19, -8, 52 }, 0, { 1279, 1113 }, { 255, 255, 255, 0 } } },
+ { { { -25, 20, 62 }, 0, { 1279, 256 }, { 255, 255, 255, 0 } } },
+ { { { 25, 20, 62 }, 0, { 0, 256 }, { 255, 255, 255, 0 } } },
+ { { { 19, -8, 52 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } },
+ { { { 19, -8, -52 }, 0, { 0, 895 }, { 255, 255, 255, 0 } } },
+ { { { -19, -8, -52 }, 0, { 1280, 896 }, { 255, 255, 255, 0 } } },
+ { { { -19, -8, 52 }, 0, { 1280, -2303 }, { 255, 255, 255, 0 } } },
+ { { { 19, -8, 52 }, 0, { 0, -2303 }, { 255, 255, 255, 0 } } },
+ { { { -19, -8, -52 }, 0, { 3200, 1113 }, { 255, 255, 255, 0 } } },
+ { { { -25, 20, -63 }, 0, { 3200, 255 }, { 255, 255, 255, 0 } } },
+ { { { -25, 20, 62 }, 0, { 0, 255 }, { 255, 255, 255, 0 } } },
+ { { { -19, -8, 52 }, 0, { 0, 1113 }, { 255, 255, 255, 0 } } },
};
diff --git a/src/engine/objects/TrashBin.h b/src/engine/objects/TrashBin.h
index 3e878e1c0..ff1118249 100644
--- a/src/engine/objects/TrashBin.h
+++ b/src/engine/objects/TrashBin.h
@@ -18,10 +18,9 @@ extern "C" {
}
class OTrashBin : public OObject {
-public:
-
+ public:
enum Behaviour {
- STATIC, // The lid stays shut
+ STATIC, // The lid stays shut
MUNCHING // The lid opens/closes in a scary munching manner
};
explicit OTrashBin(const FVector& pos, const IRotator& rotation, f32 scale, OTrashBin::Behaviour bhv);
@@ -31,7 +30,7 @@ public:
void func_8007E00C(s32 objectIndex);
void init_bb_trash_bin(s32);
-private:
+ private:
static Gfx BinMod[];
static Vtx BinVtx[];
static Vtx BinVtx2[];
diff --git a/src/engine/objects/Trophy.cpp b/src/engine/objects/Trophy.cpp
index 9f90b6be1..f90bf906d 100644
--- a/src/engine/objects/Trophy.cpp
+++ b/src/engine/objects/Trophy.cpp
@@ -49,22 +49,22 @@ OTrophy::OTrophy(const FVector& pos, TrophyType trophy, Behaviour bhv) {
switch (trophy) {
case TrophyType::GOLD:
- gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl10;
+ gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl10;
break;
case TrophyType::SILVER:
- gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl12;
+ gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl12;
break;
case TrophyType::BRONZE:
- gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl14;
+ gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl14;
break;
case TrophyType::GOLD_150:
- gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl11;
+ gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl11;
break;
case TrophyType::SILVER_150:
- gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl13;
+ gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl13;
break;
case TrophyType::BRONZE_150:
- gObjectList[_objectIndex].model = (Gfx*)gold_trophy_dl15;
+ gObjectList[_objectIndex].model = (Gfx*) gold_trophy_dl15;
break;
}
@@ -76,13 +76,13 @@ OTrophy::OTrophy(const FVector& pos, TrophyType trophy, Behaviour bhv) {
func_80086E70(_objectIndex);
}
- switch(_bhv) {
+ switch (_bhv) {
case OTrophy::Behaviour::GO_FISH:
gObjectList[_objectIndex].sizeScaling = 0.010f;
break;
}
- Object *object = &gObjectList[_objectIndex];
+ Object* object = &gObjectList[_objectIndex];
object->origin_pos[0] = _spawnPos.x;
object->origin_pos[1] = _spawnPos.y;
object->origin_pos[2] = _spawnPos.z;
@@ -103,7 +103,7 @@ void OTrophy::Tick() { // func_80086D80
D_801658DC = 1;
}
- switch(_bhv) {
+ switch (_bhv) {
case OTrophy::Behaviour::PODIUM_CEREMONY:
if (gObjectList[objectIndex].state != 0 && (*_toggleVisibility == true)) {
OTrophy::func_80086C14(objectIndex);
@@ -122,15 +122,14 @@ void OTrophy::Tick() { // func_80086D80
case OTrophy::Behaviour::STATIONARY:
if (gObjectList[objectIndex].state != 0) {
- gObjectList[objectIndex].sizeScaling = 0.025f;
- set_obj_origin_pos(objectIndex, _spawnPos.x,
- _spawnPos.y + 16.0, _spawnPos.z);
- set_obj_origin_offset(objectIndex, 0.0f, 0.0f, 0.0f);
- set_obj_direction_angle(objectIndex, 0U, 0U, 0U);
- gObjectList[objectIndex].unk_084[1] = 0x0200;
- object_next_state(objectIndex);
- func_80086E70(objectIndex);
- OTrophy::func_80086940(objectIndex);
+ gObjectList[objectIndex].sizeScaling = 0.025f;
+ set_obj_origin_pos(objectIndex, _spawnPos.x, _spawnPos.y + 16.0, _spawnPos.z);
+ set_obj_origin_offset(objectIndex, 0.0f, 0.0f, 0.0f);
+ set_obj_direction_angle(objectIndex, 0U, 0U, 0U);
+ gObjectList[objectIndex].unk_084[1] = 0x0200;
+ object_next_state(objectIndex);
+ func_80086E70(objectIndex);
+ OTrophy::func_80086940(objectIndex);
}
break;
case OTrophy::Behaviour::ROTATE:
@@ -152,8 +151,8 @@ void OTrophy::Tick() { // func_80086D80
if (gObjectList[objectIndex].state != 0) {
// Get the player's yaw
- Player *player = &gPlayers[0];
- float yaw = (player->rotation[1] + 0x4000) * (M_PI / 32768.0f); // Convert degrees to radians
+ Player* player = &gPlayers[0];
+ float yaw = (player->rotation[1] + 0x4000) * (M_PI / 32768.0f); // Convert degrees to radians
// Calculate forward direction based on yaw (same as before)
float lookAtX = player->pos[0] + cos(yaw);
@@ -174,33 +173,37 @@ void OTrophy::Tick() { // func_80086D80
// Calculate the object's position in front of the player (same as before)
gObjectList[objectIndex].pos[0] = player->pos[0] + forwardX * distance;
- gObjectList[objectIndex].pos[1] = player->pos[1] + 8.0f; // Optional height offset
+ gObjectList[objectIndex].pos[1] = player->pos[1] + 8.0f; // Optional height offset
gObjectList[objectIndex].pos[2] = player->pos[2] + forwardZ * distance;
// Apply more sensitive random movement based on player velocity to simulate floating behavior
float velocityFactor = 0.1f; // Increased factor for more sensitivity
gObjectList[objectIndex].pos[0] += player->velocity[0] * velocityFactor;
- gObjectList[objectIndex].pos[1] += player->velocity[1] * velocityFactor; // Optional: Add vertical movement
+ gObjectList[objectIndex].pos[1] +=
+ player->velocity[1] * velocityFactor; // Optional: Add vertical movement
gObjectList[objectIndex].pos[2] += player->velocity[2] * velocityFactor;
// Increase oscillation for more dynamic movement (sine wave effect)
- float oscillationSpeed = 4.0f; // Increased speed for quicker oscillations
+ float oscillationSpeed = 4.0f; // Increased speed for quicker oscillations
float oscillationAmplitude = 0.4f; // Increased amplitude for more noticeable movement
- gObjectList[objectIndex].pos[1] += oscillationAmplitude * sinf(oscillationSpeed * gGlobalTimer); // Vertical oscillation based on time
+ gObjectList[objectIndex].pos[1] +=
+ oscillationAmplitude * sinf(oscillationSpeed * gGlobalTimer); // Vertical oscillation based on time
// Now use smooth interpolation (lerp) to gradually move the trophy towards its target position
- float lerpFactor = 0.25f; // Increased to make the trophy follow the player more quickly
+ float lerpFactor = 0.25f; // Increased to make the trophy follow the player more quickly
- gObjectList[objectIndex].pos[0] = _oldPos[0] + lerpFactor * (gObjectList[objectIndex].pos[0] - _oldPos[0]);
- gObjectList[objectIndex].pos[1] = _oldPos[1] + lerpFactor * (gObjectList[objectIndex].pos[1] - _oldPos[1]);
- gObjectList[objectIndex].pos[2] = _oldPos[2] + lerpFactor * (gObjectList[objectIndex].pos[2] - _oldPos[2]);
+ gObjectList[objectIndex].pos[0] =
+ _oldPos[0] + lerpFactor * (gObjectList[objectIndex].pos[0] - _oldPos[0]);
+ gObjectList[objectIndex].pos[1] =
+ _oldPos[1] + lerpFactor * (gObjectList[objectIndex].pos[1] - _oldPos[1]);
+ gObjectList[objectIndex].pos[2] =
+ _oldPos[2] + lerpFactor * (gObjectList[objectIndex].pos[2] - _oldPos[2]);
// Save the current position for the next frame
_oldPos[0] = gObjectList[objectIndex].pos[0];
_oldPos[1] = gObjectList[objectIndex].pos[1];
_oldPos[2] = gObjectList[objectIndex].pos[2];
-
gObjectList[objectIndex].direction_angle[0] += 0x400;
gObjectList[objectIndex].direction_angle[1] -= 0x200;
}
@@ -217,20 +220,20 @@ void OTrophy::Draw(s32 cameraId) {
object = &gObjectList[listIndex];
if (object->state >= 2) {
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]),
- G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
+ G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]),
- G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
+ G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
mtxf_set_matrix_transformation(someMatrix1, object->pos, object->direction_angle, object->sizeScaling);
- //convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], someMatrix1);
- //gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]),
- // G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
+ // convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], someMatrix1);
+ // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]),
+ // G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
AddHudMatrix(someMatrix1, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0077A0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D0077A0);
gSPDisplayList(gDisplayListHead++, object->model);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]),
- G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
+ G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(someMatrix2);
render_set_position(someMatrix2, 0);
}
diff --git a/src/engine/objects/Trophy.h b/src/engine/objects/Trophy.h
index 89f130997..9b776e885 100644
--- a/src/engine/objects/Trophy.h
+++ b/src/engine/objects/Trophy.h
@@ -18,7 +18,7 @@ extern "C" {
}
class OTrophy : public OObject {
-public:
+ public:
enum TrophyType {
BRONZE,
SILVER,
@@ -31,7 +31,7 @@ public:
enum Behaviour {
PODIUM_CEREMONY,
STATIONARY,
- ROTATE, // A dual-axis opposing rotation
+ ROTATE, // A dual-axis opposing rotation
ROTATE2, // A single-axis rotation
GO_FISH,
};
@@ -45,13 +45,13 @@ public:
void func_80086C14(s32 objectIndex);
void func_80086C6C(s32 objectIndex);
-private:
+ private:
StarEmitter* _emitter;
TrophyType _trophy;
FVector _spawnPos;
Behaviour _bhv;
- int8_t *_toggleVisibility;
+ int8_t* _toggleVisibility;
Vec3f _oldPos;
bool _isMod = false;
};
diff --git a/src/engine/particles/ParticleEmitter.cpp b/src/engine/particles/ParticleEmitter.cpp
index 5154abf56..c1a66ae98 100644
--- a/src/engine/particles/ParticleEmitter.cpp
+++ b/src/engine/particles/ParticleEmitter.cpp
@@ -2,12 +2,15 @@
#include "ParticleEmitter.h"
+ParticleEmitter::ParticleEmitter() {
+}
+// Virtual functions to be overridden by derived classes
+void ParticleEmitter::Tick() {
+}
+void ParticleEmitter::Draw(s32 cameraId) {
+}
-ParticleEmitter::ParticleEmitter() {}
-
- // Virtual functions to be overridden by derived classes
-void ParticleEmitter::Tick() { }
-void ParticleEmitter::Draw(s32 cameraId) { }
-
-bool ParticleEmitter::IsMod() { return false; }
+bool ParticleEmitter::IsMod() {
+ return false;
+}
diff --git a/src/engine/particles/ParticleEmitter.h b/src/engine/particles/ParticleEmitter.h
index 1a71164d1..8197d4b97 100644
--- a/src/engine/particles/ParticleEmitter.h
+++ b/src/engine/particles/ParticleEmitter.h
@@ -8,10 +8,9 @@ extern "C" {
#include "camera.h"
#include "common_structs.h"
-
class ParticleEmitter {
-public:
- virtual ~ParticleEmitter() = default; // Virtual destructor for proper cleanup in derived classes
+ public:
+ virtual ~ParticleEmitter() = default; // Virtual destructor for proper cleanup in derived classes
explicit ParticleEmitter();
@@ -19,5 +18,4 @@ public:
virtual void Draw(s32 cameraId);
virtual bool IsMod();
};
-
-} \ No newline at end of file
+}
diff --git a/src/engine/particles/StarEmitter.cpp b/src/engine/particles/StarEmitter.cpp
index 242e1a75a..fcf187180 100644
--- a/src/engine/particles/StarEmitter.cpp
+++ b/src/engine/particles/StarEmitter.cpp
@@ -101,7 +101,7 @@ void StarEmitter::Draw(s32 cameraId) { // func_80054BE8
Camera* camera;
camera = &camera1[cameraId];
- gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D007AE0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007AE0);
load_texture_block_ia8_nomirror(D_8018D488, 0x00000020, 0x00000020);
func_8004B35C(0x000000FF, 0x000000FF, 0, 0x000000FF);
D_80183E80[0] = 0;
@@ -121,8 +121,8 @@ void StarEmitter::func_80054AFC(s32 objectIndex, Vec3f arg1) {
(s32) gObjectList[objectIndex].unk_084[2], (s32) gObjectList[objectIndex].primAlpha);
rsp_set_matrix_transformation(gObjectList[objectIndex].pos, (u16*) D_80183E80,
gObjectList[objectIndex].sizeScaling);
- gSPVertex(gDisplayListHead++, (uintptr_t)D_0D005AE0, 4, 0);
- gSPDisplayList(gDisplayListHead++, (Gfx*)common_rectangle_display);
+ gSPVertex(gDisplayListHead++, (uintptr_t) D_0D005AE0, 4, 0);
+ gSPDisplayList(gDisplayListHead++, (Gfx*) common_rectangle_display);
}
void StarEmitter::func_80077428(s32 objectIndex) {
@@ -176,4 +176,4 @@ void StarEmitter::func_80077450(s32 objectIndex) {
gObjectList[objectIndex].unk_084[1] = sp3A;
gObjectList[objectIndex].unk_084[2] = sp38;
}
-} \ No newline at end of file
+}
diff --git a/src/engine/particles/StarEmitter.h b/src/engine/particles/StarEmitter.h
index e1c6e0416..a5d37fece 100644
--- a/src/engine/particles/StarEmitter.h
+++ b/src/engine/particles/StarEmitter.h
@@ -20,11 +20,10 @@ extern "C" {
* Used in the podium ceremony when the trophy appears
*/
class StarEmitter : public ParticleEmitter {
-public:
- enum Behaviour : uint16_t {
- };
+ public:
+ enum Behaviour : uint16_t {};
-public:
+ public:
f32 Diameter = 0.0f; // Waddle in a circle around the spawn point at this diameter.
uint16_t MirrorModeAngleOffset;
@@ -38,7 +37,7 @@ public:
void func_80077450(s32 objectIndex);
void func_80054AFC(s32 objectIndex, Vec3f arg1);
-private:
+ private:
s32 ObjectIndex[128];
s32 _next = 0;
};
diff --git a/src/engine/vehicles/Boat.cpp b/src/engine/vehicles/Boat.cpp
index 073974581..1e3ba1737 100644
--- a/src/engine/vehicles/Boat.cpp
+++ b/src/engine/vehicles/Boat.cpp
@@ -44,21 +44,17 @@ ABoat::ABoat(f32 speed, u32 waypoint) {
if (IsActive == 1) {
f32 origXPos = Position[0];
f32 origZPos = Position[2];
- RotY = update_vehicle_following_waypoint(
- Position, (s16*) &WaypointIndex,
- Speed);
+ RotY = update_vehicle_following_waypoint(Position, (s16*) &WaypointIndex, Speed);
Velocity[0] = Position[0] - origXPos;
Velocity[2] = Position[2] - origZPos;
vec3s_set(paddleWheelBoatRot, 0, RotY, 0);
- ActorIndex = add_actor_to_empty_slot(Position, paddleWheelBoatRot,
- Velocity, ACTOR_PADDLE_BOAT);
+ ActorIndex = add_actor_to_empty_slot(Position, paddleWheelBoatRot, Velocity, ACTOR_PADDLE_BOAT);
}
_count++;
}
void ABoat::Draw(Camera* camera) {
-
}
bool ABoat::IsMod() {
@@ -84,22 +80,20 @@ void ABoat::Tick() {
temp_f26 = Position[0];
temp_f28 = Position[1];
temp_f30 = Position[2];
- update_vehicle_following_waypoint(Position, (s16*) &WaypointIndex,
- Speed);
- SomeFlags = set_vehicle_render_distance_flags(Position, BOAT_SMOKE_RENDER_DISTANCE,
- SomeFlags);
+ update_vehicle_following_waypoint(Position, (s16*) &WaypointIndex, Speed);
+ SomeFlags = set_vehicle_render_distance_flags(Position, BOAT_SMOKE_RENDER_DISTANCE, SomeFlags);
if ((((s16) AnotherSmokeTimer % 10) == 0) && (SomeFlags != 0)) {
smokePos[0] = (f32) ((f64) Position[0] - 30.0);
smokePos[1] = (f32) ((f64) Position[1] + 180.0);
smokePos[2] = (f32) ((f64) Position[2] + 45.0);
adjust_position_by_angle(smokePos, Position, RotY);
- //spawn_ferry_smoke(Index, smokePos, 1.1f);
+ // spawn_ferry_smoke(Index, smokePos, 1.1f);
AddSmoke(Index, smokePos, 1.1f);
smokePos[0] = (f32) ((f64) Position[0] + 30.0);
smokePos[1] = (f32) ((f64) Position[1] + 180.0);
smokePos[2] = (f32) ((f64) Position[2] + 45.0);
adjust_position_by_angle(smokePos, Position, RotY);
- //spawn_ferry_smoke(Index, smokePos, 1.1f);
+ // spawn_ferry_smoke(Index, smokePos, 1.1f);
AddSmoke(Index, smokePos, 1.1f);
}
if (random_int(100) == 0) {
@@ -182,9 +176,8 @@ void ABoat::VehicleCollision(s32 playerId, Player* player) {
z_diff = playerZ - Position[2];
if ((x_diff > -300.0) && (x_diff < 300.0)) {
if ((z_diff > -300.0) && (z_diff < 300.0)) {
- if ((func_80006018(Position[0], Position[2],
- Velocity[0], Velocity[2], 200.0f,
- 60.0f, playerX, playerZ) == 1) &&
+ if ((func_80006018(Position[0], Position[2], Velocity[0], Velocity[2], 200.0f, 60.0f, playerX,
+ playerZ) == 1) &&
(y_diff < 60.0)) {
player->soundEffects |= 0x80000;
}
@@ -201,4 +194,4 @@ s32 ABoat::AddSmoke(size_t ferryIndex, Vec3f pos, f32 velocity) {
}
return objectIndex;
-} \ No newline at end of file
+}
diff --git a/src/engine/vehicles/Boat.h b/src/engine/vehicles/Boat.h
index dcdd89977..cca015d8c 100644
--- a/src/engine/vehicles/Boat.h
+++ b/src/engine/vehicles/Boat.h
@@ -10,8 +10,7 @@ extern "C" {
}
class ABoat : public AActor {
- public:
-
+ public:
const char* Type = "mk:boat";
size_t Index;
bool IsActive; // The paddle wheel boat only shows up if the number of players is < 3
@@ -43,7 +42,7 @@ class ABoat : public AActor {
virtual void VehicleCollision(s32 playerId, Player* player) override;
virtual s32 AddSmoke(size_t, Vec3f, f32);
virtual bool IsMod() override;
-private:
- static size_t _count;
-}; \ No newline at end of file
+ private:
+ static size_t _count;
+};
diff --git a/src/engine/vehicles/Bus.cpp b/src/engine/vehicles/Bus.cpp
index c58cd0a6c..c22391fb1 100644
--- a/src/engine/vehicles/Bus.cpp
+++ b/src/engine/vehicles/Bus.cpp
@@ -50,16 +50,13 @@ ABus::ABus(f32 speedA, f32 speedB, TrackWaypoint* path, uint32_t waypoint) {
Rotation[0] = 0;
Rotation[2] = 0;
if (D_8016347A == 0) {
- Rotation[1] = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0, 3);
+ Rotation[1] = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0, 3);
} else {
- Rotation[1] =
- func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
+ Rotation[1] = func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
}
D_801631C8 = 10;
- spawn_vehicle_on_road(Position, Rotation, Velocity, WaypointIndex, SomeMultiplierTheSequel,
- Speed);
+ spawn_vehicle_on_road(Position, Rotation, Velocity, WaypointIndex, SomeMultiplierTheSequel, Speed);
ActorIndex = add_actor_to_empty_slot(Position, Rotation, Velocity, ACTOR_SCHOOL_BUS);
_count++;
@@ -119,11 +116,9 @@ void ABus::Tick() {
}
}
if (D_8016347A == 0) {
- var_a1 = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0, 3);
+ var_a1 = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0, 3);
} else {
- var_a1 = func_8000D940(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0);
+ var_a1 = func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
}
adjust_angle(&Rotation[1], var_a1, 100);
temp_f0_3 = Position[0] - sp5C;
@@ -176,8 +171,8 @@ void ABus::VehicleCollision(s32 playerId, Player* player) {
if ((temp_f22 > -20.0) && (temp_f22 < 20.0)) {
if (((temp_f14) > -100.0) && ((temp_f14) < 100.0)) {
- if (func_80006018(Position[0], Position[2], Velocity[0],
- Velocity[2], SomeArg3, SomeArg4, spC4, spBC) == (s32) 1) {
+ if (func_80006018(Position[0], Position[2], Velocity[0], Velocity[2], SomeArg3, SomeArg4, spC4,
+ spBC) == (s32) 1) {
player->soundEffects |= REVERSE_SOUND_EFFECT;
}
}
@@ -212,8 +207,7 @@ void ABus::VehicleCollision(s32 playerId, Player* player) {
switch (D_8016347A) {
case 0:
- t1 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 10, 0,
- path);
+ t1 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 10, 0, path);
if ((D_80163270[playerId] == 0) && (t1 > 0) && (player->unk_094 < Speed)) {
var_s1 = 1;
}
@@ -222,8 +216,7 @@ void ABus::VehicleCollision(s32 playerId, Player* player) {
}
break;
case 1:
- t2 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 0, 10,
- path);
+ t2 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 0, 10, path);
if (t2 > 0) {
if (random_int(2) == 0) {
// temp_v1_2 = D_80163270[playerId];
diff --git a/src/engine/vehicles/Bus.h b/src/engine/vehicles/Bus.h
index c7f3f475e..dd6752775 100644
--- a/src/engine/vehicles/Bus.h
+++ b/src/engine/vehicles/Bus.h
@@ -12,8 +12,7 @@ extern "C" {
}
class ABus : public AActor {
- public:
-
+ public:
const char* Type;
size_t Index;
f32 Speed;
@@ -46,6 +45,6 @@ class ABus : public AActor {
virtual void VehicleCollision(s32 playerId, Player* player) override;
virtual bool IsMod() override;
-private:
+ private:
static size_t _count;
-}; \ No newline at end of file
+};
diff --git a/src/engine/vehicles/Car.cpp b/src/engine/vehicles/Car.cpp
index 89409df50..577c283c5 100644
--- a/src/engine/vehicles/Car.cpp
+++ b/src/engine/vehicles/Car.cpp
@@ -50,16 +50,13 @@ ACar::ACar(f32 speedA, f32 speedB, TrackWaypoint* path, uint32_t waypoint) {
Rotation[0] = 0;
Rotation[2] = 0;
if (D_8016347A == 0) {
- Rotation[1] = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0, 3);
+ Rotation[1] = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0, 3);
} else {
- Rotation[1] =
- func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
+ Rotation[1] = func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
}
D_801631C8 = 10;
- spawn_vehicle_on_road(Position, Rotation, Velocity, WaypointIndex, SomeMultiplierTheSequel,
- Speed);
+ spawn_vehicle_on_road(Position, Rotation, Velocity, WaypointIndex, SomeMultiplierTheSequel, Speed);
ActorIndex = add_actor_to_empty_slot(Position, Rotation, Velocity, ACTOR_CAR);
_count++;
@@ -101,11 +98,9 @@ void ACar::Tick() {
}
}
if (D_8016347A == 0) {
- var_a1 = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0, 3);
+ var_a1 = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0, 3);
} else {
- var_a1 = func_8000D940(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0);
+ var_a1 = func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
}
adjust_angle(&Rotation[1], var_a1, 100);
temp_f0_3 = Position[0] - sp5C;
@@ -176,8 +171,8 @@ void ACar::VehicleCollision(s32 playerId, Player* player) {
if ((temp_f22 > -20.0) && (temp_f22 < 20.0)) {
if (((temp_f14) > -100.0) && ((temp_f14) < 100.0)) {
- if (func_80006018(Position[0], Position[2], Velocity[0],
- Velocity[2], SomeArg3, SomeArg4, spC4, spBC) == (s32) 1) {
+ if (func_80006018(Position[0], Position[2], Velocity[0], Velocity[2], SomeArg3, SomeArg4, spC4,
+ spBC) == (s32) 1) {
player->soundEffects |= REVERSE_SOUND_EFFECT;
}
}
@@ -212,8 +207,7 @@ void ACar::VehicleCollision(s32 playerId, Player* player) {
switch (D_8016347A) {
case 0:
- t1 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 10, 0,
- path);
+ t1 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 10, 0, path);
if ((D_80163270[playerId] == 0) && (t1 > 0) && (player->unk_094 < Speed)) {
var_s1 = 1;
}
@@ -222,8 +216,7 @@ void ACar::VehicleCollision(s32 playerId, Player* player) {
}
break;
case 1:
- t2 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 0, 10,
- path);
+ t2 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 0, 10, path);
if (t2 > 0) {
if (random_int(2) == 0) {
// temp_v1_2 = D_80163270[playerId];
@@ -283,4 +276,4 @@ void ACar::VehicleCollision(s32 playerId, Player* player) {
}
}
}
-} \ No newline at end of file
+}
diff --git a/src/engine/vehicles/Car.h b/src/engine/vehicles/Car.h
index 97bd47e2e..594420429 100644
--- a/src/engine/vehicles/Car.h
+++ b/src/engine/vehicles/Car.h
@@ -12,8 +12,7 @@ extern "C" {
}
class ACar : public AActor {
- public:
-
+ public:
explicit ACar(f32 speedA, f32 speedB, TrackWaypoint* path, uint32_t waypoint);
~ACar() {
@@ -45,6 +44,7 @@ class ACar : public AActor {
virtual void Draw(Camera*) override;
virtual void VehicleCollision(s32 playerId, Player* player) override;
virtual bool IsMod() override;
-private:
+
+ private:
static size_t _count;
-}; \ No newline at end of file
+};
diff --git a/src/engine/vehicles/TankerTruck.cpp b/src/engine/vehicles/TankerTruck.cpp
index 02cd9553b..f3ed9707e 100644
--- a/src/engine/vehicles/TankerTruck.cpp
+++ b/src/engine/vehicles/TankerTruck.cpp
@@ -50,16 +50,13 @@ ATankerTruck::ATankerTruck(f32 speedA, f32 speedB, TrackWaypoint* path, uint32_t
Rotation[0] = 0;
Rotation[2] = 0;
if (D_8016347A == 0) {
- Rotation[1] = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0, 3);
+ Rotation[1] = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0, 3);
} else {
- Rotation[1] =
- func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
+ Rotation[1] = func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
}
D_801631C8 = 10;
- spawn_vehicle_on_road(Position, Rotation, Velocity, WaypointIndex, SomeMultiplierTheSequel,
- Speed);
+ spawn_vehicle_on_road(Position, Rotation, Velocity, WaypointIndex, SomeMultiplierTheSequel, Speed);
ActorIndex = add_actor_to_empty_slot(Position, Rotation, Velocity, ACTOR_TANKER_TRUCK);
_count++;
@@ -119,11 +116,9 @@ void ATankerTruck::Tick() {
}
}
if (D_8016347A == 0) {
- var_a1 = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0, 3);
+ var_a1 = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0, 3);
} else {
- var_a1 = func_8000D940(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0);
+ var_a1 = func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
}
adjust_angle(&Rotation[1], var_a1, 100);
temp_f0_3 = Position[0] - sp5C;
@@ -176,8 +171,8 @@ void ATankerTruck::VehicleCollision(s32 playerId, Player* player) {
if ((temp_f22 > -20.0) && (temp_f22 < 20.0)) {
if (((temp_f14) > -100.0) && ((temp_f14) < 100.0)) {
- if (func_80006018(Position[0], Position[2], Velocity[0],
- Velocity[2], SomeArg3, SomeArg4, spC4, spBC) == (s32) 1) {
+ if (func_80006018(Position[0], Position[2], Velocity[0], Velocity[2], SomeArg3, SomeArg4, spC4,
+ spBC) == (s32) 1) {
player->soundEffects |= REVERSE_SOUND_EFFECT;
}
}
@@ -212,8 +207,7 @@ void ATankerTruck::VehicleCollision(s32 playerId, Player* player) {
switch (D_8016347A) {
case 0:
- t1 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 10, 0,
- path);
+ t1 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 10, 0, path);
if ((D_80163270[playerId] == 0) && (t1 > 0) && (player->unk_094 < Speed)) {
var_s1 = 1;
}
@@ -222,8 +216,7 @@ void ATankerTruck::VehicleCollision(s32 playerId, Player* player) {
}
break;
case 1:
- t2 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 0, 10,
- path);
+ t2 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 0, 10, path);
if (t2 > 0) {
if (random_int(2) == 0) {
// temp_v1_2 = D_80163270[playerId];
diff --git a/src/engine/vehicles/TankerTruck.h b/src/engine/vehicles/TankerTruck.h
index e109115a9..f587783d0 100644
--- a/src/engine/vehicles/TankerTruck.h
+++ b/src/engine/vehicles/TankerTruck.h
@@ -12,8 +12,7 @@ extern "C" {
}
class ATankerTruck : public AActor {
- public:
-
+ public:
const char* Type;
size_t Index;
f32 Speed;
@@ -46,6 +45,6 @@ class ATankerTruck : public AActor {
virtual void VehicleCollision(s32 playerId, Player* player) override;
virtual bool IsMod() override;
-private:
+ private:
static size_t _count;
-}; \ No newline at end of file
+};
diff --git a/src/engine/vehicles/Train.cpp b/src/engine/vehicles/Train.cpp
index a3952742d..e34fc12ea 100644
--- a/src/engine/vehicles/Train.cpp
+++ b/src/engine/vehicles/Train.cpp
@@ -19,7 +19,7 @@ extern "C" {
#include "math_util_2.h"
#include "render_objects.h"
#include "assets/common_data.h"
- // #include "common_structs.h"
+// #include "common_structs.h"
}
size_t ATrain::_count = 0;
@@ -88,25 +88,25 @@ ATrain::ATrain(ATrain::TenderStatus tender, size_t numCarriages, f32 speed, uint
tempLocomotive = &Locomotive;
origXPos = tempLocomotive->position[0];
origZPos = tempLocomotive->position[2];
- trainCarYRot = update_vehicle_following_waypoint(
- tempLocomotive->position, (s16*) &tempLocomotive->waypointIndex, Speed);
+ trainCarYRot =
+ update_vehicle_following_waypoint(tempLocomotive->position, (s16*) &tempLocomotive->waypointIndex, Speed);
tempLocomotive->velocity[0] = tempLocomotive->position[0] - origXPos;
tempLocomotive->velocity[2] = tempLocomotive->position[2] - origZPos;
vec3s_set(trainCarRot, 0, trainCarYRot, 0);
- tempLocomotive->actorIndex = add_actor_to_empty_slot(tempLocomotive->position, trainCarRot,
- tempLocomotive->velocity, ACTOR_TRAIN_ENGINE);
+ tempLocomotive->actorIndex =
+ add_actor_to_empty_slot(tempLocomotive->position, trainCarRot, tempLocomotive->velocity, ACTOR_TRAIN_ENGINE);
tempTender = &Tender;
if (tempTender->isActive == 1) {
origXPos = tempTender->position[0];
origZPos = tempTender->position[2];
- trainCarYRot = update_vehicle_following_waypoint(
- tempTender->position, (s16*) &tempTender->waypointIndex, Speed);
+ trainCarYRot =
+ update_vehicle_following_waypoint(tempTender->position, (s16*) &tempTender->waypointIndex, Speed);
tempTender->velocity[0] = tempTender->position[0] - origXPos;
tempTender->velocity[2] = tempTender->position[2] - origZPos;
vec3s_set(trainCarRot, 0, trainCarYRot, 0);
- tempTender->actorIndex = add_actor_to_empty_slot(tempTender->position, trainCarRot,
- tempTender->velocity, ACTOR_TRAIN_TENDER);
+ tempTender->actorIndex =
+ add_actor_to_empty_slot(tempTender->position, trainCarRot, tempTender->velocity, ACTOR_TRAIN_TENDER);
}
for (size_t i = 0; i < PassengerCars.size(); i++) {
@@ -115,14 +115,12 @@ ATrain::ATrain(ATrain::TenderStatus tender, size_t numCarriages, f32 speed, uint
origXPos = tempPassengerCar->position[0];
origZPos = tempPassengerCar->position[2];
trainCarYRot = update_vehicle_following_waypoint(tempPassengerCar->position,
- (s16*) &tempPassengerCar->waypointIndex,
- Speed);
+ (s16*) &tempPassengerCar->waypointIndex, Speed);
tempPassengerCar->velocity[0] = tempPassengerCar->position[0] - origXPos;
tempPassengerCar->velocity[2] = tempPassengerCar->position[2] - origZPos;
vec3s_set(trainCarRot, 0, trainCarYRot, 0);
- tempPassengerCar->actorIndex =
- add_actor_to_empty_slot(tempPassengerCar->position, trainCarRot, tempPassengerCar->velocity,
- ACTOR_TRAIN_PASSENGER_CAR);
+ tempPassengerCar->actorIndex = add_actor_to_empty_slot(
+ tempPassengerCar->position, trainCarRot, tempPassengerCar->velocity, ACTOR_TRAIN_PASSENGER_CAR);
}
}
@@ -166,8 +164,8 @@ void ATrain::Tick() {
temp_f20 = Locomotive.position[0];
temp_f22 = Locomotive.position[2];
- orientationYUpdate = update_vehicle_following_waypoint(
- Locomotive.position, (s16*) &Locomotive.waypointIndex, Speed);
+ orientationYUpdate =
+ update_vehicle_following_waypoint(Locomotive.position, (s16*) &Locomotive.waypointIndex, Speed);
Locomotive.velocity[0] = Locomotive.position[0] - temp_f20;
Locomotive.velocity[2] = Locomotive.position[2] - temp_f22;
@@ -175,24 +173,20 @@ void ATrain::Tick() {
sync_train_components(&Locomotive, orientationYUpdate);
if ((oldWaypointIndex != Locomotive.waypointIndex) &&
- ((Locomotive.waypointIndex == 0x00BE) ||
- (Locomotive.waypointIndex == 0x0140))) { // play crossing bell sound
- func_800C98B8(Locomotive.position, Locomotive.velocity,
- SOUND_ARG_LOAD(0x19, 0x01, 0x80, 0x0E));
+ ((Locomotive.waypointIndex == 0x00BE) || (Locomotive.waypointIndex == 0x0140))) { // play crossing bell sound
+ func_800C98B8(Locomotive.position, Locomotive.velocity, SOUND_ARG_LOAD(0x19, 0x01, 0x80, 0x0E));
} else if (random_int(100) == 0) { // play train whistle sound
- func_800C98B8(Locomotive.position, Locomotive.velocity,
- SOUND_ARG_LOAD(0x19, 0x01, 0x80, 0x0D));
+ func_800C98B8(Locomotive.position, Locomotive.velocity, SOUND_ARG_LOAD(0x19, 0x01, 0x80, 0x0D));
}
- SomeFlags = set_vehicle_render_distance_flags(
- Locomotive.position, TRAIN_SMOKE_RENDER_DISTANCE, SomeFlags);
+ SomeFlags = set_vehicle_render_distance_flags(Locomotive.position, TRAIN_SMOKE_RENDER_DISTANCE, SomeFlags);
// Renders locomotive smoke on all screens if any player is within range.
if ((((s16) AnotherSmokeTimer % 5) == 0) && (SomeFlags != 0)) {
smokePos[0] = Locomotive.position[0];
smokePos[1] = (f32) ((f64) Locomotive.position[1] + 65.0);
smokePos[2] = (f32) ((f64) Locomotive.position[2] + 25.0);
adjust_position_by_angle(smokePos, Locomotive.position, orientationYUpdate);
- //spawn_train_smoke(Index, smokePos, 1.1f);
+ // spawn_train_smoke(Index, smokePos, 1.1f);
AddSmoke(Index, smokePos, 1.1f);
}
@@ -201,8 +195,7 @@ void ATrain::Tick() {
if (car->isActive == 1) {
temp_f20 = car->position[0];
temp_f22 = car->position[2];
- orientationYUpdate =
- update_vehicle_following_waypoint(car->position, (s16*) &car->waypointIndex, Speed);
+ orientationYUpdate = update_vehicle_following_waypoint(car->position, (s16*) &car->waypointIndex, Speed);
car->velocity[0] = car->position[0] - temp_f20;
car->velocity[2] = car->position[2] - temp_f22;
sync_train_components(car, orientationYUpdate);
@@ -214,8 +207,7 @@ void ATrain::Tick() {
temp_f20 = car->position[0];
temp_f22 = car->position[2];
- orientationYUpdate =
- update_vehicle_following_waypoint(car->position, (s16*) &car->waypointIndex, Speed);
+ orientationYUpdate = update_vehicle_following_waypoint(car->position, (s16*) &car->waypointIndex, Speed);
car->velocity[0] = car->position[0] - temp_f20;
car->velocity[2] = car->position[2] - temp_f22;
sync_train_components(car, orientationYUpdate);
@@ -241,13 +233,13 @@ void ATrain::VehicleCollision(s32 playerId, Player* player) {
if ((x_dist > -100.0) && (x_dist < 100.0)) {
if ((z_dist > -100.0) && (z_dist < 100.0)) {
if (func_80006018(trainCar->position[0], trainCar->position[2], trainCar->velocity[0],
- trainCar->velocity[2], 60.0f, 20.0f, playerPosX, playerPosZ) == 1) {
+ trainCar->velocity[2], 60.0f, 20.0f, playerPosX, playerPosZ) == 1) {
player->soundEffects |= REVERSE_SOUND_EFFECT;
}
trainCar = &Tender;
if (trainCar->isActive == 1) {
if (func_80006018(trainCar->position[0], trainCar->position[2], trainCar->velocity[0],
- trainCar->velocity[2], 30.0f, 20.0f, playerPosX, playerPosZ) == 1) {
+ trainCar->velocity[2], 30.0f, 20.0f, playerPosX, playerPosZ) == 1) {
player->soundEffects |= REVERSE_SOUND_EFFECT;
}
}
@@ -262,7 +254,7 @@ void ATrain::VehicleCollision(s32 playerId, Player* player) {
if ((x_dist > -100.0) && (x_dist < 100.0)) {
if ((z_dist > -100.0) && (z_dist < 100.0)) {
if (func_80006018(trainCar->position[0], trainCar->position[2], trainCar->velocity[0],
- trainCar->velocity[2], 30.0f, 20.0f, playerPosX, playerPosZ) == 1) {
+ trainCar->velocity[2], 30.0f, 20.0f, playerPosX, playerPosZ) == 1) {
player->soundEffects |= REVERSE_SOUND_EFFECT;
}
}
@@ -273,7 +265,6 @@ void ATrain::VehicleCollision(s32 playerId, Player* player) {
}
}
-
void ATrain::Draw(Camera* camera) {
}
diff --git a/src/engine/vehicles/Train.h b/src/engine/vehicles/Train.h
index b5100586e..d939a7028 100644
--- a/src/engine/vehicles/Train.h
+++ b/src/engine/vehicles/Train.h
@@ -14,8 +14,7 @@ extern "C" {
* @arg waypoint initial waypoint to spawn at.
*/
class ATrain : public AActor {
- public:
-
+ public:
enum TenderStatus {
NO_TENDER,
HAS_TENDER,
@@ -54,6 +53,6 @@ class ATrain : public AActor {
s32 AddSmoke(s32 trainIndex, Vec3f pos, f32 velocity);
void SyncComponents(TrainCarStuff* trainCar, s16 orientationY);
-private:
+ private:
static size_t _count;
-}; \ No newline at end of file
+};
diff --git a/src/engine/vehicles/Truck.cpp b/src/engine/vehicles/Truck.cpp
index 585293489..ae1df36a5 100644
--- a/src/engine/vehicles/Truck.cpp
+++ b/src/engine/vehicles/Truck.cpp
@@ -50,16 +50,13 @@ ATruck::ATruck(f32 speedA, f32 speedB, TrackWaypoint* path, uint32_t waypoint) {
Rotation[0] = 0;
Rotation[2] = 0;
if (D_8016347A == 0) {
- Rotation[1] = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0, 3);
+ Rotation[1] = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0, 3);
} else {
- Rotation[1] =
- func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
+ Rotation[1] = func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
}
D_801631C8 = 10;
- spawn_vehicle_on_road(Position, Rotation, Velocity, WaypointIndex, SomeMultiplierTheSequel,
- Speed);
+ spawn_vehicle_on_road(Position, Rotation, Velocity, WaypointIndex, SomeMultiplierTheSequel, Speed);
ActorIndex = add_actor_to_empty_slot(Position, Rotation, Velocity, ACTOR_BOX_TRUCK);
_count++;
@@ -119,11 +116,9 @@ void ATruck::Tick() {
}
}
if (D_8016347A == 0) {
- var_a1 = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0, 3);
+ var_a1 = func_8000D6D0(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0, 3);
} else {
- var_a1 = func_8000D940(Position, (s16*) &WaypointIndex, Speed,
- SomeMultiplierTheSequel, 0);
+ var_a1 = func_8000D940(Position, (s16*) &WaypointIndex, Speed, SomeMultiplierTheSequel, 0);
}
adjust_angle(&Rotation[1], var_a1, 100);
temp_f0_3 = Position[0] - sp5C;
@@ -176,8 +171,8 @@ void ATruck::VehicleCollision(s32 playerId, Player* player) {
if ((temp_f22 > -20.0) && (temp_f22 < 20.0)) {
if (((temp_f14) > -100.0) && ((temp_f14) < 100.0)) {
- if (func_80006018(Position[0], Position[2], Velocity[0],
- Velocity[2], SomeArg3, SomeArg4, spC4, spBC) == (s32) 1) {
+ if (func_80006018(Position[0], Position[2], Velocity[0], Velocity[2], SomeArg3, SomeArg4, spC4,
+ spBC) == (s32) 1) {
player->soundEffects |= REVERSE_SOUND_EFFECT;
}
}
@@ -212,8 +207,7 @@ void ATruck::VehicleCollision(s32 playerId, Player* player) {
switch (D_8016347A) {
case 0:
- t1 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 10, 0,
- path);
+ t1 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 10, 0, path);
if ((D_80163270[playerId] == 0) && (t1 > 0) && (player->unk_094 < Speed)) {
var_s1 = 1;
}
@@ -222,8 +216,7 @@ void ATruck::VehicleCollision(s32 playerId, Player* player) {
}
break;
case 1:
- t2 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 0, 10,
- path);
+ t2 = func_80007BF8(WaypointIndex, gNearestWaypointByPlayerId[playerId], 0, 10, path);
if (t2 > 0) {
if (random_int(2) == 0) {
// temp_v1_2 = D_80163270[playerId];
diff --git a/src/engine/vehicles/Truck.h b/src/engine/vehicles/Truck.h
index c18ce86a5..683c1068b 100644
--- a/src/engine/vehicles/Truck.h
+++ b/src/engine/vehicles/Truck.h
@@ -12,8 +12,7 @@ extern "C" {
}
class ATruck : public AActor {
- public:
-
+ public:
const char* Type;
size_t Index;
f32 Speed;
@@ -46,6 +45,6 @@ class ATruck : public AActor {
virtual void VehicleCollision(s32 playerId, Player* player) override;
virtual bool IsMod() override;
-private:
+ private:
static size_t _count;
-}; \ No newline at end of file
+};
diff --git a/src/engine/vehicles/Utils.cpp b/src/engine/vehicles/Utils.cpp
index d2a3ece57..f51479587 100644
--- a/src/engine/vehicles/Utils.cpp
+++ b/src/engine/vehicles/Utils.cpp
@@ -8,5 +8,5 @@ extern "C" {
}
uint32_t CalculateWaypointDistribution(size_t i, uint32_t numVehicles, size_t numWaypoints, uint32_t centerWaypoint) {
- return (uint32_t)(((i * numWaypoints) / numVehicles) + centerWaypoint) % numWaypoints;
+ return (uint32_t) (((i * numWaypoints) / numVehicles) + centerWaypoint) % numWaypoints;
}
diff --git a/src/engine/wasm.cpp b/src/engine/wasm.cpp
index cef8760dd..6503acf75 100644
--- a/src/engine/wasm.cpp
+++ b/src/engine/wasm.cpp
@@ -244,4 +244,4 @@
// // }
// // mod_call_function_wasm("test", "init", 0, NULL);
// // exit(-1);
-// } \ No newline at end of file
+// }
diff --git a/src/engine/wasm.h b/src/engine/wasm.h
index 9808c15f2..fbc4023f0 100644
--- a/src/engine/wasm.h
+++ b/src/engine/wasm.h
@@ -1,2 +1,2 @@
void load_wasm();
-void call_render_hook(); \ No newline at end of file
+void call_render_hook();