summaryrefslogtreecommitdiff
path: root/courses
diff options
context:
space:
mode:
authorMegaMech <MegaMech@users.noreply.github.com>2024-10-15 13:09:43 -0600
committerGitHub <noreply@github.com>2024-10-15 13:09:43 -0600
commita0862b6a159373f2e1554e489ecb5bb08d89654e (patch)
treeb5c33fc7f65b438ee74898dd9ed7ba25b0fa108a /courses
parent58d56fcba848e8545052c1d85ef27d0b02841538 (diff)
[modding] Implement Vehicles & Fix Animations (#109)
* Train works * Fix minimap * Fix highway * Fix * Refactor train and boat * Update * Implement Trucks * Fix tanker * Finish implementing vehicles * Fix animations * Fix spawn players * Fix spawn players * Fix loading custom data --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
Diffstat (limited to 'courses')
-rw-r--r--courses/koopa_troopa_beach/course_offsets.c69
-rw-r--r--courses/rainbow_road/course_offsets.c35
-rw-r--r--courses/sherbet_land/course_offsets.c64
-rw-r--r--courses/test_course/data.c1
-rw-r--r--courses/yoshi_valley/course_offsets.c58
5 files changed, 96 insertions, 131 deletions
diff --git a/courses/koopa_troopa_beach/course_offsets.c b/courses/koopa_troopa_beach/course_offsets.c
index 45c5d010d..13a187933 100644
--- a/courses/koopa_troopa_beach/course_offsets.c
+++ b/courses/koopa_troopa_beach/course_offsets.c
@@ -1,6 +1,7 @@
#include <libultra/types.h>
#include "course_offsets.h"
#include <assets/koopa_troopa_beach_data.h>
+#include "animation.h"
const course_texture koopa_troopa_beach_textures[] = {
{ gTexture643B3C, 0x0798, 0x0800, 0x0 },
@@ -241,73 +242,63 @@ Animation d_course_koopa_troopa_beach_unk_data4 = {
//! 0x60169b
uintptr_t d_course_koopa_troopa_beach_unk4[] = {
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_ADD_POS(0x00000000, 0x00000000, 0x00000000),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_koopa_troopa_beach_dl_16630,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_koopa_troopa_beach_dl_16630),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0x00000000, 0xfffffffb, 0x00000005,
+ ANIMATION_ADD_POS(0x00000000, -0x00000005, 0x00000005),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_koopa_troopa_beach_dl_16850,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_koopa_troopa_beach_dl_16850),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_koopa_troopa_beach_dl_168F0,
- 0x00000024, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL_AT(d_course_koopa_troopa_beach_dl_168F0, 0x00000024, 0x00000000, 0x00000000),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_koopa_troopa_beach_dl_16990,
- 0x00000019, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL_AT(d_course_koopa_troopa_beach_dl_16990, 0x00000019, 0x00000000, 0x00000000),
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0x00000000, 0xfffffffb, 0xfffffffb,
+ ANIMATION_ADD_POS(0x00000000, -0x00000005, -0x00000005),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_koopa_troopa_beach_dl_16850,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_koopa_troopa_beach_dl_16850),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_koopa_troopa_beach_dl_168F0,
- 0x00000024, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL_AT(d_course_koopa_troopa_beach_dl_168F0, 0x00000024, 0x00000000, 0x00000000),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_koopa_troopa_beach_dl_16990,
- 0x00000019, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL_AT(d_course_koopa_troopa_beach_dl_16990, 0x00000019, 0x00000000, 0x00000000),
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000003, 0x00000002,
+ ANIMATION_STOP,
};
// 0x06016B60
diff --git a/courses/rainbow_road/course_offsets.c b/courses/rainbow_road/course_offsets.c
index d17ac3b7c..f7a6d8da5 100644
--- a/courses/rainbow_road/course_offsets.c
+++ b/courses/rainbow_road/course_offsets.c
@@ -100,40 +100,33 @@ Animation* d_rainbow_road_unk3[] = {
// 0x06016110
uintptr_t d_rainbow_road_unk4[] = {
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0x00000000, 0x0000023a, 0x00000000,
+ ANIMATION_ADD_POS(0x00000000, 0x0000023a, 0x00000000),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_rainbow_road_dl_15550,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_rainbow_road_dl_15550),
- 0x00000000, 0x00000007, 0x00000000, d_course_rainbow_road_dl_151A8,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_rainbow_road_dl_151A8),
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0x00000000, 0x0000023a, 0x00000000,
+ ANIMATION_ADD_POS(0x00000000, 0x0000023a, 0x00000000),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_rainbow_road_dl_15C68,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_rainbow_road_dl_15C68),
- 0x00000000, 0x00000007, 0x00000000, d_course_rainbow_road_dl_158C0,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_rainbow_road_dl_158C0),
- 0x00000000, 0x00000007, 0x00000000, d_course_rainbow_road_dl_15F18,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_rainbow_road_dl_15F18),
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000003, 0x00000002,
+ ANIMATION_STOP,
};
// No idea what this stuff is
diff --git a/courses/sherbet_land/course_offsets.c b/courses/sherbet_land/course_offsets.c
index 0ed86ad8d..b597ee828 100644
--- a/courses/sherbet_land/course_offsets.c
+++ b/courses/sherbet_land/course_offsets.c
@@ -1,6 +1,7 @@
#include <libultra/types.h>
#include "course_offsets.h"
#include <assets/sherbet_land_data.h>
+#include "animation.h"
const course_texture sherbet_land_textures[] = {
{ gTexture643B3C, 0x0798, 0x0800, 0x0 }, { gTexture66D024, 0x04EA, 0x0800, 0x0 },
@@ -66,68 +67,57 @@ const Gfx* sherbet_land_dls_2[] = {
};
uintptr_t d_course_sherbet_land_unk_data1[] = {
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_sherbet_land_dl_8D00,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_sherbet_land_dl_8D00),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0xFFFFFFCD, 0x00000054, 0xFFFFFFF3,
+ ANIMATION_ADD_POS(-0x00000033, 0x00000054, -0x0000000d),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_sherbet_land_dl_8730,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_sherbet_land_dl_8730),
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0x00000033, 0x00000054, 0xFFFFFFF3,
+ ANIMATION_ADD_POS(0x00000033, 0x00000054, -0x0000000d),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_sherbet_land_dl_8808,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_sherbet_land_dl_8808),
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0xFFFFFFDA, 0xFFFFFFCA, 0xFFFFFFF3,
+ ANIMATION_ADD_POS(-0x00000026, -0x00000036, -0x0000000d),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_sherbet_land_dl_8930,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_sherbet_land_dl_8930),
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0x00000026, 0xFFFFFFCA, 0xFFFFFFF3,
+ ANIMATION_ADD_POS(0x00000026, -0x00000036, -0x0000000d),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_sherbet_land_dl_8A78,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_sherbet_land_dl_8A78),
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0x00000000, 0x0000006F, 0xFFFFFFED,
+ ANIMATION_ADD_POS(0x00000000, 0x0000006F, -0x00000013),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_sherbet_land_dl_8E00,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_sherbet_land_dl_8E00),
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000003, 0x00000002,
+ ANIMATION_STOP,
};
// 0x0600905C
diff --git a/courses/test_course/data.c b/courses/test_course/data.c
index a39c05dc5..7bbbdb31a 100644
--- a/courses/test_course/data.c
+++ b/courses/test_course/data.c
@@ -63,7 +63,6 @@ TrackWaypoint test_course_path[] = {
{ 300, 0, 949, 4},
{ 200, 0, 950, 4},
{ 100, 0, 950, 4},
- { 0, 0, 950, 1}, // Main point 4
// End of path
{ -32768, -32768, -32768, 0 } // Terminator
diff --git a/courses/yoshi_valley/course_offsets.c b/courses/yoshi_valley/course_offsets.c
index 959c2dcc4..7518ece5d 100644
--- a/courses/yoshi_valley/course_offsets.c
+++ b/courses/yoshi_valley/course_offsets.c
@@ -159,63 +159,55 @@ Animation* d_course_yoshi_valley_unk4[] = {
//! 0x06014798
uintptr_t d_course_yoshi_valley_unk5[] = {
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_ADD_POS(0x00000000, 0x00000000, 0x00000000),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_yoshi_valley_dl_142C0,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_yoshi_valley_dl_142C0),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, 0x00000000,
- 0x000007f8, 0x00000000, 0x00000000,
+ ANIMATION_ADD_POS(0x000007f8, 0x00000000, 0x00000000),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_yoshi_valley_dl_143C8,
- 0x00000000, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL(d_course_yoshi_valley_dl_143C8),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_yoshi_valley_dl_144A8,
- 0x000001cc, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL_AT(d_course_yoshi_valley_dl_144A8, 0x000001cc, 0x00000000, 0x00000000),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_yoshi_valley_dl_14500,
- 0x000001cc, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL_AT(d_course_yoshi_valley_dl_14500, 0x000001cc, 0x00000000, 0x00000000),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_yoshi_valley_dl_14558,
- 0x00000158, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL_AT(d_course_yoshi_valley_dl_14558, 0x00000158, 0x00000000, 0x00000000),
- 0x00000001, 0x00000002,
+ ANIMATION_DISABLE_AUTOMATIC_POP,
- 0x00000000, 0x00000007, 0x00000000, d_course_yoshi_valley_dl_145D0,
- 0x00000120, 0x00000000, 0x00000000,
+ ANIMATION_RENDER_MODEL_AT(d_course_yoshi_valley_dl_145D0, 0x00000120, 0x00000000, 0x00000000),
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000002, 0x00000002,
+ ANIMATION_POP_MATRIX,
- 0x00000003, 0x00000002,
+ ANIMATION_STOP,
};
// No idea what this stuff is