Fix Falling Rocks and Vehicles (#55)

* valley

* beach

* sherbet & rainbow

* fix ceremony

* Fix parser for course displaylists

* Fix crash near end of ceremony

* Clean rock

* Fix actors

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
This commit is contained in:
MegaMech 2024-08-16 21:37:51 -06:00 committed by GitHub
parent bd6e3d18e0
commit 09505cc0aa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 301 additions and 253 deletions

View File

@ -20,19 +20,6 @@ extern Gfx *sherbet_land_dls_2[];
extern Gfx *wario_stadium_dls[];
extern const char *dks_jungle_parkway_dls[];
extern Gfx toads_turnpike_dl_0[];
extern Gfx toads_turnpike_dl_1[];
extern Gfx toads_turnpike_dl_2[];
extern Gfx toads_turnpike_dl_3[];
extern Gfx toads_turnpike_dl_4[];
extern Gfx toads_turnpike_dl_5[];
extern Gfx toads_turnpike_dl_6[];
extern Gfx toads_turnpike_dl_7[];
extern Gfx toads_turnpike_dl_8[];
extern Gfx toads_turnpike_dl_9[];
extern Gfx toads_turnpike_dl_10[];
extern Gfx toads_turnpike_dl_11[];
extern const course_texture banshee_boardwalk_textures[];
extern const course_texture big_donut_textures[];
extern const course_texture block_fort_textures[];

View File

@ -68,127 +68,3 @@ Gfx *toads_turnpike_dls[] = {
d_course_toads_turnpike_dl_37F0, d_course_toads_turnpike_dl_39C8,
d_course_toads_turnpike_dl_3910, d_course_toads_turnpike_dl_3AD8,
};
Gfx toads_turnpike_dl_0[] = {
gsSPDisplayList(D_toads_turnpike_0D005398),
gsSPDisplayList(d_course_toads_turnpike_dl_19518),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053B0),
gsSPDisplayList(d_course_toads_turnpike_dl_19020),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_1[] = {
gsSPDisplayList(D_toads_turnpike_0D005398),
gsSPDisplayList(d_course_toads_turnpike_dl_1A068),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053B0),
gsSPDisplayList(d_course_toads_turnpike_dl_19DF0),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_2[] = {
gsSPDisplayList(D_toads_turnpike_0D0053C8),
gsSPDisplayList(d_course_toads_turnpike_dl_1A6C8),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053F0),
gsSPDisplayList(d_course_toads_turnpike_dl_1A5F8),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D005418),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_3[] = {
gsSPDisplayList(D_toads_turnpike_0D005398),
gsSPDisplayList(d_course_toads_turnpike_dl_1BE48),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053B0),
gsSPDisplayList(d_course_toads_turnpike_dl_1B778),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_4[] = {
gsSPDisplayList(D_toads_turnpike_0D005398),
gsSPDisplayList(d_course_toads_turnpike_dl_1CAA8),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053B0),
gsSPDisplayList(d_course_toads_turnpike_dl_1C700),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_5[] = {
gsSPDisplayList(D_toads_turnpike_0D0053C8),
gsSPDisplayList(d_course_toads_turnpike_dl_1D018),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053F0),
gsSPDisplayList(d_course_toads_turnpike_dl_1CE70),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D005418),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_6[] = {
gsSPDisplayList(D_toads_turnpike_0D005398),
gsSPDisplayList(d_course_toads_turnpike_dl_1EB48),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053B0),
gsSPDisplayList(d_course_toads_turnpike_dl_1E458),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_7[] = {
gsSPDisplayList(D_toads_turnpike_0D005398),
gsSPDisplayList(d_course_toads_turnpike_dl_20008),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053B0),
gsSPDisplayList(d_course_toads_turnpike_dl_1F9D0),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_8[] = {
gsSPDisplayList(D_toads_turnpike_0D0053C8),
gsSPDisplayList(d_course_toads_turnpike_dl_205A8),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053F0),
gsSPDisplayList(d_course_toads_turnpike_dl_20510),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D005418),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_9[] = {
gsSPDisplayList(D_toads_turnpike_0D005398),
gsSPDisplayList(d_course_toads_turnpike_dl_21E28),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053B0),
gsSPDisplayList(d_course_toads_turnpike_dl_21780),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_10[] = {
gsSPDisplayList(D_toads_turnpike_0D005398),
gsSPDisplayList(d_course_toads_turnpike_dl_23078),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053B0),
gsSPDisplayList(d_course_toads_turnpike_dl_22BA0),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx toads_turnpike_dl_11[] = {
gsSPDisplayList(D_toads_turnpike_0D0053C8),
gsSPDisplayList(d_course_toads_turnpike_dl_23848),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D0053F0),
gsSPDisplayList(d_course_toads_turnpike_dl_237F8),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPDisplayList(D_toads_turnpike_0D005418),
gsSPEndDisplayList(),
};

View File

@ -15,18 +15,42 @@ typedef struct
u32 padding; // always zero
} course_texture;
extern Gfx toads_turnpike_dl_0[];
extern Gfx toads_turnpike_dl_1[];
extern Gfx toads_turnpike_dl_2[];
extern Gfx toads_turnpike_dl_3[];
extern Gfx toads_turnpike_dl_4[];
extern Gfx toads_turnpike_dl_5[];
extern Gfx toads_turnpike_dl_6[];
extern Gfx toads_turnpike_dl_7[];
extern Gfx toads_turnpike_dl_8[];
extern Gfx toads_turnpike_dl_9[];
extern Gfx toads_turnpike_dl_10[];
extern Gfx toads_turnpike_dl_11[];
extern u32 d_course_sherbet_land_unk_data1[];
extern s16 d_course_sherbet_land_unk_data2[];
extern animation_type_3_triplet d_course_sherbet_land_unk_data3[];
extern animation_type_2 d_course_sherbet_land_unk_data4;
extern s16 d_course_sherbet_land_unk_data5[];
extern animation_type_3_triplet d_course_sherbet_land_unk_data6[];
extern animation_type_2 d_course_sherbet_land_unk_data7;
extern s16 d_course_sherbet_land_unk_data8[];
extern animation_type_3_triplet d_course_sherbet_land_unk_data9[];
extern animation_type_2 d_course_sherbet_land_unk_data10;
extern animation_type_2 *d_course_sherbet_land_unk_data11[];
extern u32 d_course_sherbet_land_unk_data12[];
extern s16 d_rainbow_road_chomp_jaw_animation[];
extern animation_type_3_triplet d_rainbow_road_unk1[];
extern animation_type_2 d_rainbow_road_unk2;
extern animation_type_2 *d_rainbow_road_unk3[];
extern u32 d_rainbow_road_unk4[];
extern u32 d_rainbow_road_unk5[];
extern Gfx *koopa_troopa_beach_dls1[];
extern Gfx *koopa_troopa_beach_dls2[];
extern u32 d_course_koopa_troopa_beach_unk_data1[];
extern s16 d_course_koopa_troopa_beach_unk_data2[];
extern animation_type_3_triplet d_course_koopa_troopa_beach_unk_data3[];
extern animation_type_2 d_course_koopa_troopa_beach_unk_data4;
extern u32 d_course_koopa_troopa_beach_unk4[];
extern animation_type_2 *d_course_koopa_troopa_beach_unk_data5[];
extern u32 d_course_koopa_troopa_beach_unk_data6[];
extern s16 d_course_yoshi_valley_unk1[];
extern animation_type_3_triplet d_course_yoshi_valley_unk2[];
extern animation_type_2 d_course_yoshi_valley_unk3;
extern animation_type_2 *d_course_yoshi_valley_unk4[];
extern u32 d_course_yoshi_valley_unk5[];
extern u32 d_course_yoshi_valley_unk6[];
extern u32 d_course_sherbet_land_unk_data1[];
extern s16 d_course_sherbet_land_unk_data2[];

View File

@ -2,6 +2,7 @@
#include <libultra/gbi.h>
#include <main.h>
#include <defines.h>
#include <assets/toads_turnpike_offsets.h>
/**
* @brief Renders the box truck actor.

View File

@ -1,6 +1,7 @@
#include <actors.h>
#include <main.h>
#include <defines.h>
#include <assets/toads_turnpike_offsets.h>
/**
* @brief Renders the car actor.

View File

@ -43,5 +43,63 @@ void render_actor_falling_rock(Camera *camera, struct FallingRock *rock) {
if (render_set_position(sp4C, 0) == 0) {
return;
}
gSPDisplayList(gDisplayListHead++, d_course_choco_mountain_dl_falling_rock);
//gSPDisplayList(gDisplayListHead++, d_course_choco_mountain_dl_falling_rock);
//! @todo: Placeholder DLs weird vtx issues
gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING);
gDPSetCycleType(gDisplayListHead++, G_CYC_2CYCLE);
gDPPipeSync(gDisplayListHead++);
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPSetGeometryMode(gDisplayListHead++, G_FOG);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_PASS2);
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2);
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gDPPipeSync(gDisplayListHead++);
gDPTileSync(gDisplayListHead++);
gDPSetTile(gDisplayListHead++, 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);
gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, d_course_choco_mountain_wall_texture);
gDPTileSync(gDisplayListHead++);
gDPSetTile(gDisplayListHead++, 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);
gDPLoadSync(gDisplayListHead++);
gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
gSPVertex(gDisplayListHead++, d_course_choco_mountain_falling_rock_model, 15, 0);
gSP1Triangle(gDisplayListHead++, 0, 1, 2, 0);
gSP1Triangle(gDisplayListHead++, 3, 4, 5, 0);
gSP1Triangle(gDisplayListHead++, 6, 7, 8, 0);
gSP1Triangle(gDisplayListHead++, 9, 10, 11, 0);
gSP1Triangle(gDisplayListHead++, 12, 13, 14, 0);
gSPVertex(gDisplayListHead++, d_course_choco_mountain_6006C28, 5, 0);
gSPVertex(gDisplayListHead++, d_course_choco_mountain_6006D08, 10, 5);
gSP1Triangle(gDisplayListHead++, 0, 5, 6, 0);
gSP1Triangle(gDisplayListHead++, 1, 7, 8, 0);
gSP1Triangle(gDisplayListHead++, 2, 9, 10, 0);
gSP1Triangle(gDisplayListHead++, 3, 11, 12, 0);
gSP1Triangle(gDisplayListHead++, 4, 13, 14, 0);
gSPVertex(gDisplayListHead++, d_course_choco_mountain_6006C78, 5, 0);
gSPVertex(gDisplayListHead++, d_course_choco_mountain_6006DA8, 10, 5);
gSP1Triangle(gDisplayListHead++, 0, 5, 6, 0);
gSP1Triangle(gDisplayListHead++, 1, 7, 8, 0);
gSP1Triangle(gDisplayListHead++, 2, 9, 10, 0);
gSP1Triangle(gDisplayListHead++, 3, 11, 12, 0);
gSP1Triangle(gDisplayListHead++, 4, 13, 14, 0);
gSPVertex(gDisplayListHead++, d_course_choco_mountain_6006CC8, 4, 0);
gSPVertex(gDisplayListHead++, d_course_choco_mountain_6006E48, 8, 4);
gSP1Triangle(gDisplayListHead++, 0, 4, 5, 0);
gSP1Triangle(gDisplayListHead++, 1, 6, 7, 0);
gSP1Triangle(gDisplayListHead++, 2, 8, 9, 0);
gSP1Triangle(gDisplayListHead++, 3, 10, 11, 0);
gDPTileSync(gDisplayListHead++);
gDPSetTile(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_MIRROR | G_TX_WRAP, 5, G_TX_NOLOD, G_TX_MIRROR | G_TX_WRAP, 5, G_TX_NOLOD);
gDPSetTileSize(gDisplayListHead++, G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C);
gDPSetTextureImage(gDisplayListHead++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, d_course_choco_mountain_rock_texture);
gDPTileSync(gDisplayListHead++);
gDPSetTile(gDisplayListHead++, 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);
gDPLoadSync(gDisplayListHead++);
gDPLoadBlock(gDisplayListHead++, G_TX_LOADTILE, 0, 0, 1023, 256);
gSPVertex(gDisplayListHead++, d_course_choco_mountain_6006EC8, 3, 0);
gSP1Triangle(gDisplayListHead++, 0, 1, 2, 0);
gSPClearGeometryMode(gDisplayListHead++, G_FOG | G_LIGHTING);
gDPSetCycleType(gDisplayListHead++, G_CYC_1CYCLE);
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 1, 1, G_OFF);
gDPPipeSync(gDisplayListHead++);
}

View File

@ -2394,107 +2394,107 @@ void render_course_actors(struct UnkStruct_800DC5EC *arg0) {
if (actor->flags == 0) {
continue;
}
switch (actor->type) {
case ACTOR_TREE_MARIO_RACEWAY:
render_actor_tree_mario_raceway(camera, D_801502C0, actor);
break;
case ACTOR_TREE_YOSHI_VALLEY:
render_actor_tree_yoshi_valley(camera, D_801502C0, actor);
break;
case ACTOR_TREE_ROYAL_RACEWAY:
render_actor_tree_royal_raceway(camera, D_801502C0, actor);
break;
case ACTOR_TREE_MOO_MOO_FARM:
render_actor_tree_moo_moo_farm(camera, D_801502C0, actor);
break;
case ACTOR_UNKNOWN_0x1A:
func_80299864(camera, D_801502C0, actor);
break;
case ACTOR_TREE_BOWSERS_CASTLE:
render_actor_tree_bowser_castle(camera, D_801502C0, actor);
break;
case ACTOR_BUSH_BOWSERS_CASTLE:
render_actor_bush_bowser_castle(camera, D_801502C0, actor);
break;
case ACTOR_TREE_FRAPPE_SNOWLAND:
render_actor_tree_frappe_snowland(camera, D_801502C0, actor);
break;
case ACTOR_CACTUS1_KALAMARI_DESERT:
render_actor_tree_cactus1_kalimari_desert(camera, D_801502C0, actor);
break;
case ACTOR_CACTUS2_KALAMARI_DESERT:
render_actor_tree_cactus2_kalimari_desert(camera, D_801502C0, actor);
break;
case ACTOR_CACTUS3_KALAMARI_DESERT:
render_actor_tree_cactus3_kalimari_desert(camera, D_801502C0, actor);
break;
case ACTOR_FALLING_ROCK:
render_actor_falling_rock(camera, (struct FallingRock *) actor);
break;
case ACTOR_KIWANO_FRUIT:
render_actor_kiwano_fruit(camera, D_801502C0, actor);
break;
case ACTOR_BANANA:
render_actor_banana(camera, D_801502C0, (struct BananaActor *) actor);
break;
case ACTOR_GREEN_SHELL:
render_actor_green_shell(camera, D_801502C0, (struct ShellActor *) actor);
break;
case ACTOR_RED_SHELL:
render_actor_red_shell(camera, D_801502C0, (struct ShellActor *) actor);
break;
case ACTOR_BLUE_SPINY_SHELL:
render_actor_blue_shell(camera, D_801502C0, (struct ShellActor *) actor);
break;
case ACTOR_PIRANHA_PLANT:
render_actor_piranha_plant(camera, D_801502C0, (struct PiranhaPlant *) actor);
break;
case ACTOR_TRAIN_ENGINE:
render_actor_train_engine(camera, (struct TrainCar *) actor);
break;
case ACTOR_TRAIN_TENDER:
render_actor_train_tender(camera, (struct TrainCar *) actor);
break;
case ACTOR_TRAIN_PASSENGER_CAR:
render_actor_train_passenger_car(camera, (struct TrainCar *) actor);
break;
case ACTOR_COW:
render_actor_cow(camera, D_801502C0, actor);
break;
case ACTOR_UNKNOWN_0x14:
func_8029AC18(camera, D_801502C0, actor);
break;
case ACTOR_MARIO_SIGN:
render_actor_mario_sign(camera, D_801502C0, actor);
break;
case ACTOR_WARIO_SIGN:
render_actor_wario_sign(camera, actor);
break;
case ACTOR_PALM_TREE:
render_actor_palm_tree(camera, D_801502C0, (struct PalmTree *) actor);
break;
case ACTOR_PADDLE_BOAT:
render_actor_paddle_boat(camera, (struct PaddleWheelBoat *) actor, D_801502C0, pathCounter);
break;
case ACTOR_BOX_TRUCK:
render_actor_box_truck(camera, actor);
break;
case ACTOR_SCHOOL_BUS:
render_actor_school_bus(camera, actor);
break;
case ACTOR_TANKER_TRUCK:
render_actor_tanker_truck(camera, actor);
break;
case ACTOR_CAR:
render_actor_car(camera, actor);
break;
case ACTOR_RAILROAD_CROSSING:
render_actor_railroad_crossing(camera, (struct RailroadCrossing *) actor);
break;
case ACTOR_YOSHI_EGG:
render_actor_yoshi_egg(camera, D_801502C0, (struct YoshiValleyEgg *) actor, pathCounter);
break;
}
switch (actor->type) {
case ACTOR_TREE_MARIO_RACEWAY:
render_actor_tree_mario_raceway(camera, D_801502C0, actor);
break;
case ACTOR_TREE_YOSHI_VALLEY:
render_actor_tree_yoshi_valley(camera, D_801502C0, actor);
break;
case ACTOR_TREE_ROYAL_RACEWAY:
render_actor_tree_royal_raceway(camera, D_801502C0, actor);
break;
case ACTOR_TREE_MOO_MOO_FARM:
render_actor_tree_moo_moo_farm(camera, D_801502C0, actor);
break;
case ACTOR_UNKNOWN_0x1A:
func_80299864(camera, D_801502C0, actor);
break;
case ACTOR_TREE_BOWSERS_CASTLE:
render_actor_tree_bowser_castle(camera, D_801502C0, actor);
break;
case ACTOR_BUSH_BOWSERS_CASTLE:
render_actor_bush_bowser_castle(camera, D_801502C0, actor);
break;
case ACTOR_TREE_FRAPPE_SNOWLAND:
render_actor_tree_frappe_snowland(camera, D_801502C0, actor);
break;
case ACTOR_CACTUS1_KALAMARI_DESERT:
render_actor_tree_cactus1_kalimari_desert(camera, D_801502C0, actor);
break;
case ACTOR_CACTUS2_KALAMARI_DESERT:
render_actor_tree_cactus2_kalimari_desert(camera, D_801502C0, actor);
break;
case ACTOR_CACTUS3_KALAMARI_DESERT:
render_actor_tree_cactus3_kalimari_desert(camera, D_801502C0, actor);
break;
case ACTOR_FALLING_ROCK:
render_actor_falling_rock(camera, (struct FallingRock *) actor);
break;
case ACTOR_KIWANO_FRUIT:
render_actor_kiwano_fruit(camera, D_801502C0, actor);
break;
case ACTOR_BANANA:
render_actor_banana(camera, D_801502C0, (struct BananaActor *) actor);
break;
case ACTOR_GREEN_SHELL:
render_actor_green_shell(camera, D_801502C0, (struct ShellActor *) actor);
break;
case ACTOR_RED_SHELL:
render_actor_red_shell(camera, D_801502C0, (struct ShellActor *) actor);
break;
case ACTOR_BLUE_SPINY_SHELL:
render_actor_blue_shell(camera, D_801502C0, (struct ShellActor *) actor);
break;
case ACTOR_PIRANHA_PLANT:
render_actor_piranha_plant(camera, D_801502C0, (struct PiranhaPlant *) actor);
break;
case ACTOR_TRAIN_ENGINE:
render_actor_train_engine(camera, (struct TrainCar *) actor);
break;
case ACTOR_TRAIN_TENDER:
render_actor_train_tender(camera, (struct TrainCar *) actor);
break;
case ACTOR_TRAIN_PASSENGER_CAR:
render_actor_train_passenger_car(camera, (struct TrainCar *) actor);
break;
case ACTOR_COW:
render_actor_cow(camera, D_801502C0, actor);
break;
case ACTOR_UNKNOWN_0x14:
func_8029AC18(camera, D_801502C0, actor);
break;
case ACTOR_MARIO_SIGN:
render_actor_mario_sign(camera, D_801502C0, actor);
break;
case ACTOR_WARIO_SIGN:
render_actor_wario_sign(camera, actor);
break;
case ACTOR_PALM_TREE:
render_actor_palm_tree(camera, D_801502C0, (struct PalmTree *) actor);
break;
case ACTOR_PADDLE_BOAT:
render_actor_paddle_boat(camera, (struct PaddleWheelBoat *) actor, D_801502C0, pathCounter);
break;
case ACTOR_BOX_TRUCK:
render_actor_box_truck(camera, actor);
break;
case ACTOR_SCHOOL_BUS:
render_actor_school_bus(camera, actor);
break;
case ACTOR_TANKER_TRUCK:
render_actor_tanker_truck(camera, actor);
break;
case ACTOR_CAR:
render_actor_car(camera, actor);
break;
case ACTOR_RAILROAD_CROSSING:
render_actor_railroad_crossing(camera, (struct RailroadCrossing *) actor);
break;
case ACTOR_YOSHI_EGG:
render_actor_yoshi_egg(camera, D_801502C0, (struct YoshiValleyEgg *) actor, pathCounter);
break;
}
}
switch (gCurrentCourseId) {
case COURSE_MOO_MOO_FARM:

View File

@ -432,8 +432,44 @@ d_course_choco_mountain_rock_texture:
d_course_choco_mountain_falling_rock_model:
symbol: d_course_choco_mountain_falling_rock_model
type: vtx
offset: 0x6b38
count: 60
offset: 0x6B38
count: 65
d_course_choco_mountain_6006C28:
symbol: d_course_choco_mountain_6006C28
type: vtx
offset: 0x6C28
count: 5
d_course_choco_mountain_6006D08:
symbol: d_course_choco_mountain_6006D08
type: vtx
offset: 0x6D08
count: 15
d_course_choco_mountain_6006C78:
symbol: d_course_choco_mountain_6006C78
type: vtx
offset: 0x6C78
count: 5
d_course_choco_mountain_6006DA8:
symbol: d_course_choco_mountain_6006DA8
type: vtx
offset: 0x6DA8
count: 15
d_course_choco_mountain_6006CC8:
symbol: d_course_choco_mountain_6006CC8
type: vtx
offset: 0x6CC8
count: 4
d_course_choco_mountain_6006E48:
symbol: d_course_choco_mountain_6006E48
type: vtx
offset: 0x6E48
count: 12
d_course_choco_mountain_6006EC8:
symbol: d_course_choco_mountain_6006EC8
type: vtx
offset: 0x6EC8
count: 3
d_course_choco_mountain_dl_6EF8:
symbol: d_course_choco_mountain_dl_6EF8
type: gfx

View File

@ -0,0 +1,65 @@
:config:
segments:
- [0x09, 0x88E8D0]
- [0x06, 0x857E80]
- [0x0D, 0x132B50]
external_files:
- "yamls/us/common_data.yml"
- "yamls/us/toads_turnpike_data.yml"
no_compression: true
header:
code:
- '#include <libultraship.h>'
header:
- '#include <libultraship.h>'
- '#include <libultra/gbi.h>'
- '#include <align_asset_macro.h>'
toads_turnpike_dl_0:
symbol: toads_turnpike_dl_0
type: gfx
offset: 0x140
toads_turnpike_dl_1:
symbol: toads_turnpike_dl_1
type: gfx
offset: 0x178
toads_turnpike_dl_2:
symbol: toads_turnpike_dl_2
type: gfx
offset: 0x1B0
toads_turnpike_dl_3:
symbol: toads_turnpike_dl_3
type: gfx
offset: 0x1F0
toads_turnpike_dl_4:
symbol: toads_turnpike_dl_4
type: gfx
offset: 0x228
toads_turnpike_dl_5:
symbol: toads_turnpike_dl_5
type: gfx
offset: 0x260
toads_turnpike_dl_6:
symbol: toads_turnpike_dl_6
type: gfx
offset: 0x2A0
toads_turnpike_dl_7:
symbol: toads_turnpike_dl_7
type: gfx
offset: 0x2D8
toads_turnpike_dl_8:
symbol: toads_turnpike_dl_8
type: gfx
offset: 0x310
toads_turnpike_dl_9:
symbol: toads_turnpike_dl_9
type: gfx
offset: 0x350
toads_turnpike_dl_10:
symbol: toads_turnpike_dl_10
type: gfx
offset: 0x388
toads_turnpike_dl_11:
symbol: toads_turnpike_dl_11
type: gfx
offset: 0x3C0