diff options
| author | MegaMech <MegaMech@users.noreply.github.com> | 2024-10-15 13:09:43 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-15 13:09:43 -0600 |
| commit | a0862b6a159373f2e1554e489ecb5bb08d89654e (patch) | |
| tree | b5c33fc7f65b438ee74898dd9ed7ba25b0fa108a /courses | |
| parent | 58d56fcba848e8545052c1d85ef27d0b02841538 (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.c | 69 | ||||
| -rw-r--r-- | courses/rainbow_road/course_offsets.c | 35 | ||||
| -rw-r--r-- | courses/sherbet_land/course_offsets.c | 64 | ||||
| -rw-r--r-- | courses/test_course/data.c | 1 | ||||
| -rw-r--r-- | courses/yoshi_valley/course_offsets.c | 58 |
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 |
