Add a container to animation tables so that we can track their length and stay in bounds

This commit is contained in:
MysterD 2023-05-10 15:20:52 -07:00
parent e666719baf
commit d30b1e61a6
98 changed files with 864 additions and 643 deletions

View file

@ -1,4 +1,5 @@
// 0x08004034 // 0x08004034
const struct Animation *const amp_seg8_anims_08004034[] = { const struct AnimationTable amp_seg8_anims_08004034 = {
&amp_seg8_anim_0800401C, .anims = { &amp_seg8_anim_0800401C, },
.count = 1
}; };

View file

@ -1,5 +1,8 @@
// 0x050009E8 // 0x050009E8
const struct Animation *const birds_seg5_anims_050009E8[] = { const struct AnimationTable birds_seg5_anims_050009E8 = {
&birds_seg5_anim_050008D0, .anims = {
&birds_seg5_anim_050009D0, &birds_seg5_anim_050008D0,
&birds_seg5_anim_050009D0,
},
.count = 2
}; };

View file

@ -1,7 +1,10 @@
// unreferenced // unreferenced
// 0x0500616C // 0x0500616C
const struct Animation *const blargg_seg5_anims_0500616C[] = { const struct AnimationTable blargg_seg5_anims_0500616C = {
&blargg_seg5_anim_05006154, .anims = {
&blargg_seg5_anim_05006070, &blargg_seg5_anim_05006154,
NULL, &blargg_seg5_anim_05006070,
NULL,
},
.count = 2
}; };

View file

@ -1,5 +1,5 @@
// 0x0301C2B0 // 0x0301C2B0
const struct Animation *const blue_fish_seg3_anims_0301C2B0[] = { const struct AnimationTable blue_fish_seg3_anims_0301C2B0 = {
&blue_fish_seg3_anim_0301C298, .anims = { &blue_fish_seg3_anim_0301C298, NULL },
NULL, .count = 1
}; };

View file

@ -1,6 +1,9 @@
// 0x0802396C // 0x0802396C
const struct Animation *const bobomb_seg8_anims_0802396C[] = { const struct AnimationTable bobomb_seg8_anims_0802396C = {
&bobomb_seg8_anim_080237FC, .anims = {
&bobomb_seg8_anim_08023954, &bobomb_seg8_anim_080237FC,
NULL, &bobomb_seg8_anim_08023954,
NULL,
},
.count = 2
}; };

View file

@ -1,7 +1,10 @@
// 0x05002540 // 0x05002540
const struct Animation *const bookend_seg5_anims_05002540[] = { const struct AnimationTable bookend_seg5_anims_05002540 = {
&bookend_seg5_anim_05002528, .anims = {
&bookend_seg5_anim_050023F4, &bookend_seg5_anim_05002528,
&bookend_seg5_anim_05002510, &bookend_seg5_anim_050023F4,
NULL, &bookend_seg5_anim_05002510,
NULL,
},
.count = 3
}; };

View file

@ -1,30 +1,33 @@
// 0x06057690 // 0x06057690
const struct Animation *const bowser_seg6_anims_06057690[] = { const struct AnimationTable bowser_seg6_anims_06057690 = {
&bowser_seg6_anim_060445EC, .anims = {
&bowser_seg6_anim_060453C8, &bowser_seg6_anim_060445EC,
&bowser_seg6_anim_06045D28, &bowser_seg6_anim_060453C8,
&bowser_seg6_anim_0604671C, &bowser_seg6_anim_06045D28,
&bowser_seg6_anim_0604675C, &bowser_seg6_anim_0604671C,
&bowser_seg6_anim_06048200, &bowser_seg6_anim_0604675C,
&bowser_seg6_anim_06049880, &bowser_seg6_anim_06048200,
&bowser_seg6_anim_0604A8E4, &bowser_seg6_anim_06049880,
&bowser_seg6_anim_0604B178, &bowser_seg6_anim_0604A8E4,
&bowser_seg6_anim_0604B8CC, &bowser_seg6_anim_0604B178,
&bowser_seg6_anim_0604D184, &bowser_seg6_anim_0604B8CC,
&bowser_seg6_anim_0604E5A0, &bowser_seg6_anim_0604D184,
&bowser_seg6_anim_0604F030, &bowser_seg6_anim_0604E5A0,
&bowser_seg6_anim_0604FF4C, &bowser_seg6_anim_0604F030,
&bowser_seg6_anim_06050530, &bowser_seg6_anim_0604FF4C,
&bowser_seg6_anim_060514E8, &bowser_seg6_anim_06050530,
&bowser_seg6_anim_06051C68, &bowser_seg6_anim_060514E8,
&bowser_seg6_anim_06052680, &bowser_seg6_anim_06051C68,
&bowser_seg6_anim_06054290, &bowser_seg6_anim_06052680,
&bowser_seg6_anim_06052D94, &bowser_seg6_anim_06054290,
&bowser_seg6_anim_060534F4, &bowser_seg6_anim_06052D94,
&bowser_seg6_anim_06053B8C, &bowser_seg6_anim_060534F4,
&bowser_seg6_anim_06054950, &bowser_seg6_anim_06053B8C,
&bowser_seg6_anim_06055210, &bowser_seg6_anim_06054950,
&bowser_seg6_anim_06055984, &bowser_seg6_anim_06055210,
&bowser_seg6_anim_06056774, &bowser_seg6_anim_06055984,
&bowser_seg6_anim_06057678, &bowser_seg6_anim_06056774,
&bowser_seg6_anim_06057678,
},
.count = 27
}; };

View file

@ -1,5 +1,8 @@
// 0x030172D0 // 0x030172D0
const struct Animation *const bowser_key_seg3_anims_list[] = { const struct AnimationTable bowser_key_seg3_anims_list = {
&bowser_key_seg3_anim_unlock_door, // id 0 .anims = {
&bowser_key_seg3_anim_course_exit, // id 1 &bowser_key_seg3_anim_unlock_door, // id 0
&bowser_key_seg3_anim_course_exit, // id 1
},
.count = 2
}; };

View file

@ -1,6 +1,9 @@
// 0x06012354 // 0x06012354
const struct Animation *const bub_seg6_anims_06012354[] = { const struct AnimationTable bub_seg6_anims_06012354 = {
&bub_seg6_anim_0601233C, .anims = {
NULL, &bub_seg6_anim_0601233C,
NULL, NULL,
NULL,
},
.count = 1
}; };

View file

@ -1,8 +1,11 @@
// 0x0500470C // 0x0500470C
const struct Animation *const bully_seg5_anims_0500470C[] = { const struct AnimationTable bully_seg5_anims_0500470C = {
&bully_seg5_anim_05004598, .anims = {
&bully_seg5_anim_050043D8, &bully_seg5_anim_05004598,
&bully_seg5_anim_050042A4, &bully_seg5_anim_050043D8,
&bully_seg5_anim_050046F4, &bully_seg5_anim_050042A4,
NULL, &bully_seg5_anim_050046F4,
NULL,
},
.count = 4
}; };

View file

@ -1,5 +1,8 @@
// 0x030056B0 // 0x030056B0
const struct Animation *const butterfly_seg3_anims_030056B0[] = { const struct AnimationTable butterfly_seg3_anims_030056B0 = {
&butterfly_seg3_anim_030055B0, .anims = {
&butterfly_seg3_anim_03005698, &butterfly_seg3_anim_030055B0,
&butterfly_seg3_anim_03005698,
},
.count = 2
}; };

View file

@ -1,5 +1,8 @@
// 0x06025178 // 0x06025178
const struct Animation *const chain_chomp_seg6_anims_06025178[] = { const struct AnimationTable chain_chomp_seg6_anims_06025178 = {
&chain_chomp_seg6_anim_06025160, .anims = {
NULL, &chain_chomp_seg6_anim_06025160,
NULL,
},
.count = 1
}; };

View file

@ -1,4 +1,7 @@
// 0x05005784 // 0x05005784
const struct Animation *const chair_seg5_anims_05005784[] = { const struct AnimationTable chair_seg5_anims_05005784 = {
&chair_seg5_anim_0500576C, .anims = {
&chair_seg5_anim_0500576C,
},
.count = 1
}; };

View file

@ -1,8 +1,11 @@
// 0x06003994 // 0x06003994
const struct Animation *const chilly_chief_seg6_anims_06003994[] = { const struct AnimationTable chilly_chief_seg6_anims_06003994 = {
&chilly_chief_seg6_anim_060035E0, .anims = {
&chilly_chief_seg6_anim_06003420, &chilly_chief_seg6_anim_060035E0,
&chilly_chief_seg6_anim_060032EC, &chilly_chief_seg6_anim_06003420,
&chilly_chief_seg6_anim_0600373C, &chilly_chief_seg6_anim_060032EC,
NULL, &chilly_chief_seg6_anim_0600373C,
NULL,
},
.count = 4
}; };

View file

@ -1,9 +1,12 @@
// 0x0800C070 // 0x0800C070
const struct Animation *const chuckya_seg8_anims_0800C070[] = { const struct AnimationTable chuckya_seg8_anims_0800C070 = {
&chuckya_seg8_anim_0800AF68, .anims = {
&chuckya_seg8_anim_0800B1A8, &chuckya_seg8_anim_0800AF68,
&chuckya_seg8_anim_0800B4A8, &chuckya_seg8_anim_0800B1A8,
&chuckya_seg8_anim_0800B9F8, &chuckya_seg8_anim_0800B4A8,
&chuckya_seg8_anim_0800BBEC, &chuckya_seg8_anim_0800B9F8,
&chuckya_seg8_anim_0800C058, &chuckya_seg8_anim_0800BBEC,
&chuckya_seg8_anim_0800C058,
},
.count = 6
}; };

View file

@ -1,6 +1,9 @@
// 0x05001744 // 0x05001744
const struct Animation *const clam_shell_seg5_anims_05001744[] = { const struct AnimationTable clam_shell_seg5_anims_05001744 = {
&clam_shell_seg5_anim_05001654, .anims = {
&clam_shell_seg5_anim_0500172C, &clam_shell_seg5_anim_05001654,
NULL, &clam_shell_seg5_anim_0500172C,
NULL,
},
.count = 2
}; };

View file

@ -21,7 +21,7 @@ extern const Gfx amp_seg8_dl_080039D0[];
extern const Gfx amp_seg8_dl_08003DA8[]; extern const Gfx amp_seg8_dl_08003DA8[];
extern const Gfx amp_seg8_dl_08003DD8[]; extern const Gfx amp_seg8_dl_08003DD8[];
extern const Gfx amp_seg8_dl_08003E00[]; extern const Gfx amp_seg8_dl_08003E00[];
extern const struct Animation *const amp_seg8_anims_08004034[]; extern const struct AnimationTable amp_seg8_anims_08004034;
// blue_coin_switch // blue_coin_switch
extern const GeoLayout blue_coin_switch_geo[]; extern const GeoLayout blue_coin_switch_geo[];
@ -44,7 +44,7 @@ extern const Gfx bobomb_seg8_dl_08022D78[];
extern const Gfx bobomb_seg8_dl_08023270[]; extern const Gfx bobomb_seg8_dl_08023270[];
extern const Gfx bobomb_seg8_dl_08023378[]; extern const Gfx bobomb_seg8_dl_08023378[];
extern const Gfx bobomb_seg8_dl_08023480[]; extern const Gfx bobomb_seg8_dl_08023480[];
extern const struct Animation *const bobomb_seg8_anims_0802396C[]; extern const struct AnimationTable bobomb_seg8_anims_0802396C;
// bowling_ball // bowling_ball
extern const GeoLayout bowling_ball_geo[]; extern const GeoLayout bowling_ball_geo[];
@ -108,7 +108,7 @@ extern const Gfx chuckya_seg8_dl_0800A958[];
extern const Gfx chuckya_seg8_dl_0800A998[]; extern const Gfx chuckya_seg8_dl_0800A998[];
extern const Gfx chuckya_seg8_dl_0800AB70[]; extern const Gfx chuckya_seg8_dl_0800AB70[];
extern const Gfx chuckya_seg8_dl_0800ABE8[]; extern const Gfx chuckya_seg8_dl_0800ABE8[];
extern const struct Animation *const chuckya_seg8_anims_0800C070[]; extern const struct AnimationTable chuckya_seg8_anims_0800C070;
// exclamation_box // exclamation_box
extern const GeoLayout exclamation_box_geo[]; extern const GeoLayout exclamation_box_geo[];
@ -149,7 +149,7 @@ extern const Gfx flyguy_seg8_dl_080113A8[];
extern const Gfx flyguy_seg8_dl_08011420[]; extern const Gfx flyguy_seg8_dl_08011420[];
extern const Gfx flyguy_seg8_dl_080116D0[]; extern const Gfx flyguy_seg8_dl_080116D0[];
extern const Gfx flyguy_seg8_dl_08011710[]; extern const Gfx flyguy_seg8_dl_08011710[];
extern const struct Animation *const flyguy_seg8_anims_08011A64[]; extern const struct AnimationTable flyguy_seg8_anims_08011A64;
// goomba // goomba
extern const GeoLayout goomba_geo[]; extern const GeoLayout goomba_geo[];
@ -165,7 +165,7 @@ extern const Gfx goomba_seg8_dl_0801CF78[];
extern const Gfx goomba_seg8_dl_0801D0D0[]; extern const Gfx goomba_seg8_dl_0801D0D0[];
extern const Gfx goomba_seg8_dl_0801D360[]; extern const Gfx goomba_seg8_dl_0801D360[];
extern const Gfx goomba_seg8_dl_0801D760[]; extern const Gfx goomba_seg8_dl_0801D760[];
extern const struct Animation *const goomba_seg8_anims_0801DA4C[]; extern const struct AnimationTable goomba_seg8_anims_0801DA4C;
// heart // heart
extern const GeoLayout heart_geo[]; extern const GeoLayout heart_geo[];

View file

@ -10,19 +10,19 @@ extern const Gfx blue_fish_seg3_dl_0301BEC0[];
extern const Gfx blue_fish_seg3_dl_0301BFB8[]; extern const Gfx blue_fish_seg3_dl_0301BFB8[];
extern const Gfx blue_fish_seg3_dl_0301C0A8[]; extern const Gfx blue_fish_seg3_dl_0301C0A8[];
extern const Gfx blue_fish_seg3_dl_0301C150[]; extern const Gfx blue_fish_seg3_dl_0301C150[];
extern const struct Animation *const blue_fish_seg3_anims_0301C2B0[]; extern const struct AnimationTable blue_fish_seg3_anims_0301C2B0;
// bowser_key // bowser_key
extern const GeoLayout bowser_key_geo[]; extern const GeoLayout bowser_key_geo[];
extern const GeoLayout bowser_key_cutscene_geo[]; extern const GeoLayout bowser_key_cutscene_geo[];
extern const Gfx bowser_key_dl[]; extern const Gfx bowser_key_dl[];
extern const struct Animation *const bowser_key_seg3_anims_list[]; extern const struct AnimationTable bowser_key_seg3_anims_list;
// butterfly // butterfly
extern const GeoLayout butterfly_geo[]; extern const GeoLayout butterfly_geo[];
extern const Gfx butterfly_seg3_dl_03005408[]; extern const Gfx butterfly_seg3_dl_03005408[];
extern const Gfx butterfly_seg3_dl_030054A0[]; extern const Gfx butterfly_seg3_dl_030054A0[];
extern const struct Animation *const butterfly_seg3_anims_030056B0[]; extern const struct AnimationTable butterfly_seg3_anims_030056B0;
// coin // coin
extern const GeoLayout yellow_coin_geo[]; extern const GeoLayout yellow_coin_geo[];
@ -112,7 +112,7 @@ extern const Gfx door_seg3_dl_03015008[];
extern const Gfx door_seg3_dl_03015078[]; extern const Gfx door_seg3_dl_03015078[];
extern const Gfx door_seg3_dl_030150E8[]; extern const Gfx door_seg3_dl_030150E8[];
extern const Gfx door_seg3_dl_03015158[]; extern const Gfx door_seg3_dl_03015158[];
extern const struct Animation *const door_seg3_anims_030156C0[]; extern const struct AnimationTable door_seg3_anims_030156C0;
// explosion // explosion
extern const GeoLayout explosion_geo[]; extern const GeoLayout explosion_geo[];

View file

@ -1,6 +1,9 @@
// 0x0600E264 // 0x0600E264
const struct Animation *const cyan_fish_seg6_anims_0600E264[] = { const struct AnimationTable cyan_fish_seg6_anims_0600E264 = {
&cyan_fish_seg6_anim_0600E24C, .anims = {
NULL, &cyan_fish_seg6_anim_0600E24C,
NULL, NULL,
NULL,
},
.count = 1
}; };

View file

@ -1,9 +1,12 @@
// 0x030156C0 // 0x030156C0
const struct Animation *const door_seg3_anims_030156C0[] = { const struct AnimationTable door_seg3_anims_030156C0 = {
&door_seg3_anim_03015208, .anims = {
&door_seg3_anim_03015440, &door_seg3_anim_03015208,
&door_seg3_anim_03015690, &door_seg3_anim_03015440,
&door_seg3_anim_03015458, &door_seg3_anim_03015690,
&door_seg3_anim_030156A8, &door_seg3_anim_03015458,
NULL, &door_seg3_anim_030156A8,
NULL,
},
.count = 5
}; };

View file

@ -1,6 +1,9 @@
// 0x0600F638 // 0x0600F638
const struct Animation *const dorrie_seg6_anims_0600F638[] = { const struct AnimationTable dorrie_seg6_anims_0600F638 = {
&dorrie_seg6_anim_0600E18C, .anims = {
&dorrie_seg6_anim_0600E9BC, &dorrie_seg6_anim_0600E18C,
&dorrie_seg6_anim_0600F620, &dorrie_seg6_anim_0600E9BC,
&dorrie_seg6_anim_0600F620,
},
.count = 3
}; };

View file

@ -1,12 +1,15 @@
// 0x050116E4 // 0x050116E4
const struct Animation *const eyerok_seg5_anims_050116E4[] = { const struct AnimationTable eyerok_seg5_anims_050116E4 = {
&eyerok_seg5_anim_0500D270, .anims = {
&eyerok_seg5_anim_0500DF50, &eyerok_seg5_anim_0500D270,
&eyerok_seg5_anim_0500E1D8, &eyerok_seg5_anim_0500DF50,
&eyerok_seg5_anim_0500E99C, &eyerok_seg5_anim_0500E1D8,
&eyerok_seg5_anim_0500F3D8, &eyerok_seg5_anim_0500E99C,
&eyerok_seg5_anim_0500FCCC, &eyerok_seg5_anim_0500F3D8,
&eyerok_seg5_anim_050116CC, &eyerok_seg5_anim_0500FCCC,
&eyerok_seg5_anim_0500F3F0, &eyerok_seg5_anim_050116CC,
NULL, &eyerok_seg5_anim_0500F3F0,
NULL,
},
.count = 8
}; };

View file

@ -1,6 +1,9 @@
// 0x08011A64 // 0x08011A64
const struct Animation *const flyguy_seg8_anims_08011A64[] = { const struct AnimationTable flyguy_seg8_anims_08011A64 = {
&flyguy_seg8_anim_08011A4C, .anims = {
NULL, &flyguy_seg8_anim_08011A4C,
NULL, NULL,
NULL,
},
.count = 1
}; };

View file

@ -1,6 +1,9 @@
// 0x0801DA4C // 0x0801DA4C
const struct Animation *const goomba_seg8_anims_0801DA4C[] = { const struct AnimationTable goomba_seg8_anims_0801DA4C = {
&goomba_seg8_anim_0801DA34, .anims = {
NULL, &goomba_seg8_anim_0801DA34,
NULL, NULL,
NULL,
},
.count = 1
}; };

View file

@ -35,7 +35,7 @@ extern const Gfx heave_ho_seg5_dl_05014560[];
extern const Gfx heave_ho_seg5_dl_050145D0[]; extern const Gfx heave_ho_seg5_dl_050145D0[];
extern const Gfx heave_ho_seg5_dl_050149A8[]; extern const Gfx heave_ho_seg5_dl_050149A8[];
extern const Gfx heave_ho_seg5_dl_05014D80[]; extern const Gfx heave_ho_seg5_dl_05014D80[];
extern const struct Animation *const heave_ho_seg5_anims_0501534C[]; extern const struct AnimationTable heave_ho_seg5_anims_0501534C;
// hoot // hoot
extern const GeoLayout hoot_geo[]; extern const GeoLayout hoot_geo[];
@ -63,7 +63,7 @@ extern const Gfx hoot_seg5_dl_05004A98[];
extern const Gfx hoot_seg5_dl_05004B38[]; extern const Gfx hoot_seg5_dl_05004B38[];
extern const Gfx hoot_seg5_dl_05004CA8[]; extern const Gfx hoot_seg5_dl_05004CA8[];
extern const Gfx hoot_seg5_dl_05004D48[]; extern const Gfx hoot_seg5_dl_05004D48[];
extern const struct Animation *const hoot_seg5_anims_05005768[]; extern const struct AnimationTable hoot_seg5_anims_05005768;
// thwomp // thwomp
extern const GeoLayout thwomp_geo[]; extern const GeoLayout thwomp_geo[];

View file

@ -9,7 +9,7 @@ extern const Gfx birds_seg5_dl_05000528[];
extern const Gfx birds_seg5_dl_05000598[]; extern const Gfx birds_seg5_dl_05000598[];
extern const Gfx birds_seg5_dl_05000600[]; extern const Gfx birds_seg5_dl_05000600[];
extern const Gfx birds_seg5_dl_05000670[]; extern const Gfx birds_seg5_dl_05000670[];
extern const struct Animation *const birds_seg5_anims_050009E8[]; extern const struct AnimationTable birds_seg5_anims_050009E8;
// peach // peach
extern const GeoLayout peach_geo_000098[]; extern const GeoLayout peach_geo_000098[];
@ -65,7 +65,7 @@ extern const Gfx peach_seg5_dl_05009940[];
extern const Gfx peach_seg5_dl_05009E20[]; extern const Gfx peach_seg5_dl_05009E20[];
extern const Gfx peach_seg5_dl_0500A0A8[]; extern const Gfx peach_seg5_dl_0500A0A8[];
extern const Gfx peach_seg5_us_dl_0500A188[]; extern const Gfx peach_seg5_us_dl_0500A188[];
extern const struct Animation *const peach_seg5_anims_0501C41C[]; extern const struct AnimationTable peach_seg5_anims_0501C41C;
// yoshi // yoshi
extern const GeoLayout yoshi_geo[]; extern const GeoLayout yoshi_geo[];
@ -92,6 +92,6 @@ extern const Gfx yoshi_seg5_dl_05022160[];
extern const Gfx yoshi_seg5_dl_050222A8[]; extern const Gfx yoshi_seg5_dl_050222A8[];
extern const Gfx yoshi_seg5_dl_05022408[]; extern const Gfx yoshi_seg5_dl_05022408[];
extern const Gfx yoshi_seg5_dl_05022608[]; extern const Gfx yoshi_seg5_dl_05022608[];
extern const struct Animation *const yoshi_seg5_anims_05024100[]; extern const struct AnimationTable yoshi_seg5_anims_05024100;
#endif #endif

View file

@ -34,7 +34,7 @@ extern const Gfx lakitu_enemy_seg5_dl_050134A8[];
extern const Gfx lakitu_enemy_seg5_dl_050136A0[]; extern const Gfx lakitu_enemy_seg5_dl_050136A0[];
extern const Gfx lakitu_enemy_seg5_dl_05013860[]; extern const Gfx lakitu_enemy_seg5_dl_05013860[];
extern const Gfx lakitu_enemy_seg5_dl_050138B0[]; extern const Gfx lakitu_enemy_seg5_dl_050138B0[];
extern const struct Animation *const lakitu_enemy_seg5_anims_050144D4[]; extern const struct AnimationTable lakitu_enemy_seg5_anims_050144D4;
// spiny // spiny
extern const GeoLayout spiny_geo[]; extern const GeoLayout spiny_geo[];
@ -44,7 +44,7 @@ extern const Gfx spiny_seg5_dl_050165A8[];
extern const Gfx spiny_seg5_dl_05016670[]; extern const Gfx spiny_seg5_dl_05016670[];
extern const Gfx spiny_seg5_dl_05016738[]; extern const Gfx spiny_seg5_dl_05016738[];
extern const Gfx spiny_seg5_dl_05016A48[]; extern const Gfx spiny_seg5_dl_05016A48[];
extern const struct Animation *const spiny_seg5_anims_05016EAC[]; extern const struct AnimationTable spiny_seg5_anims_05016EAC;
// spiny_egg // spiny_egg
extern const GeoLayout spiny_ball_geo[]; extern const GeoLayout spiny_ball_geo[];
@ -58,7 +58,7 @@ extern const Gfx spiny_egg_seg5_dl_050152F8[];
extern const Gfx spiny_egg_seg5_dl_05015330[]; extern const Gfx spiny_egg_seg5_dl_05015330[];
extern const Gfx spiny_egg_seg5_dl_05015368[]; extern const Gfx spiny_egg_seg5_dl_05015368[];
extern const Gfx spiny_egg_seg5_dl_05015740[]; extern const Gfx spiny_egg_seg5_dl_05015740[];
extern const struct Animation *const spiny_egg_seg5_anims_050157E4[]; extern const struct AnimationTable spiny_egg_seg5_anims_050157E4;
// wiggler_body // wiggler_body
extern const Gfx wiggler_seg5_dl_0500BCB8[]; extern const Gfx wiggler_seg5_dl_0500BCB8[];
@ -71,7 +71,7 @@ extern const Gfx wiggler_seg5_dl_0500C208[];
extern const Gfx wiggler_seg5_dl_0500C240[]; extern const Gfx wiggler_seg5_dl_0500C240[];
extern const Gfx wiggler_seg5_dl_0500C278[]; extern const Gfx wiggler_seg5_dl_0500C278[];
extern const GeoLayout wiggler_body_geo[]; extern const GeoLayout wiggler_body_geo[];
extern const struct Animation *const wiggler_seg5_anims_0500C874[]; extern const struct AnimationTable wiggler_seg5_anims_0500C874;
// wiggler_head // wiggler_head
extern const GeoLayout wiggler_head_geo[]; extern const GeoLayout wiggler_head_geo[];
@ -93,6 +93,6 @@ extern const Gfx wiggler_seg5_dl_0500E518[];
extern const Gfx wiggler_seg5_dl_0500E608[]; extern const Gfx wiggler_seg5_dl_0500E608[];
extern const Gfx wiggler_seg5_dl_0500E640[]; extern const Gfx wiggler_seg5_dl_0500E640[];
extern const Gfx wiggler_seg5_dl_0500E678[]; extern const Gfx wiggler_seg5_dl_0500E678[];
extern const struct Animation *const wiggler_seg5_anims_0500EC8C[]; extern const struct AnimationTable wiggler_seg5_anims_0500EC8C;
#endif #endif

View file

@ -89,7 +89,7 @@ extern const Gfx bowser_seg6_dl_060431F0[];
extern const Gfx bowser_seg6_dl_06043548[]; extern const Gfx bowser_seg6_dl_06043548[];
extern const Gfx bowser_seg6_dl_06043648[]; extern const Gfx bowser_seg6_dl_06043648[];
extern const Gfx bowser_seg6_dl_06043698[]; extern const Gfx bowser_seg6_dl_06043698[];
extern const struct Animation *const bowser_seg6_anims_06057690[]; extern const struct AnimationTable bowser_seg6_anims_06057690;
extern const s16 bowser_seg6_unkmoveshorts_060576FC[]; extern const s16 bowser_seg6_unkmoveshorts_060576FC[];
// bowser_flame // bowser_flame

View file

@ -17,7 +17,7 @@ extern const Gfx bub_seg6_dl_06011DC0[];
extern const Gfx bub_seg6_dl_06011E48[]; extern const Gfx bub_seg6_dl_06011E48[];
extern const Gfx bub_seg6_dl_06011F18[]; extern const Gfx bub_seg6_dl_06011F18[];
extern const Gfx bub_seg6_dl_06011FA0[]; extern const Gfx bub_seg6_dl_06011FA0[];
extern const struct Animation *const bub_seg6_anims_06012354[]; extern const struct AnimationTable bub_seg6_anims_06012354;
// cyan_fish // cyan_fish
extern const GeoLayout cyan_fish_geo[]; extern const GeoLayout cyan_fish_geo[];
@ -27,7 +27,7 @@ extern const Gfx cyan_fish_seg6_dl_0600DE90[];
extern const Gfx cyan_fish_seg6_dl_0600DED8[]; extern const Gfx cyan_fish_seg6_dl_0600DED8[];
extern const Gfx cyan_fish_seg6_dl_0600DFC0[]; extern const Gfx cyan_fish_seg6_dl_0600DFC0[];
extern const Gfx cyan_fish_seg6_dl_0600E038[]; extern const Gfx cyan_fish_seg6_dl_0600E038[];
extern const struct Animation *const cyan_fish_seg6_anims_0600E264[]; extern const struct AnimationTable cyan_fish_seg6_anims_0600E264;
// seaweed // seaweed
extern const GeoLayout seaweed_geo[]; extern const GeoLayout seaweed_geo[];
@ -39,7 +39,7 @@ extern const Gfx seaweed_seg6_dl_0600A040[];
extern const Gfx seaweed_seg6_dl_0600A088[]; extern const Gfx seaweed_seg6_dl_0600A088[];
extern const Gfx seaweed_seg6_dl_0600A138[]; extern const Gfx seaweed_seg6_dl_0600A138[];
extern const Gfx seaweed_seg6_dl_0600A180[]; extern const Gfx seaweed_seg6_dl_0600A180[];
extern const struct Animation *const seaweed_seg6_anims_0600A4D4[]; extern const struct AnimationTable seaweed_seg6_anims_0600A4D4;
// skeeter // skeeter
extern const GeoLayout skeeter_geo[]; extern const GeoLayout skeeter_geo[];
@ -72,7 +72,7 @@ extern const Gfx skeeter_seg6_dl_06004678[];
extern const Gfx skeeter_seg6_dl_06004A40[]; extern const Gfx skeeter_seg6_dl_06004A40[];
extern const Gfx skeeter_seg6_dl_06005328[]; extern const Gfx skeeter_seg6_dl_06005328[];
extern const Gfx skeeter_seg6_dl_06005358[]; extern const Gfx skeeter_seg6_dl_06005358[];
extern const struct Animation *const skeeter_seg6_anims_06007DE0[]; extern const struct AnimationTable skeeter_seg6_anims_06007DE0;
// treasure_chest // treasure_chest
extern const GeoLayout treasure_chest_base_geo[]; extern const GeoLayout treasure_chest_base_geo[];
@ -98,6 +98,6 @@ extern const Gfx water_mine_seg6_dl_0600D3F8[];
// water_ring // water_ring
extern const GeoLayout water_ring_geo[]; extern const GeoLayout water_ring_geo[];
extern const Gfx water_ring_seg6_dl_06013AC0[]; extern const Gfx water_ring_seg6_dl_06013AC0[];
extern const struct Animation *const water_ring_seg6_anims_06013F7C[]; extern const struct AnimationTable water_ring_seg6_anims_06013F7C;
#endif #endif

View file

@ -21,7 +21,7 @@ extern const Gfx chain_chomp_seg6_dl_06024CF0[];
extern const Gfx chain_chomp_seg6_dl_06024D60[]; extern const Gfx chain_chomp_seg6_dl_06024D60[];
extern const Gfx chain_chomp_seg6_dl_06024F50[]; extern const Gfx chain_chomp_seg6_dl_06024F50[];
extern const Gfx chain_chomp_seg6_dl_06024FC0[]; extern const Gfx chain_chomp_seg6_dl_06024FC0[];
extern const struct Animation *const chain_chomp_seg6_anims_06025178[]; extern const struct AnimationTable chain_chomp_seg6_anims_06025178;
// koopa // koopa
extern const GeoLayout koopa_without_shell_geo[]; extern const GeoLayout koopa_without_shell_geo[];
@ -57,7 +57,7 @@ extern const Gfx koopa_seg6_dl_0600BE10[];
extern const Gfx koopa_seg6_dl_0600BE80[]; extern const Gfx koopa_seg6_dl_0600BE80[];
extern const Gfx koopa_seg6_dl_0600C240[]; extern const Gfx koopa_seg6_dl_0600C240[];
extern const Gfx koopa_seg6_dl_0600C498[]; extern const Gfx koopa_seg6_dl_0600C498[];
extern const struct Animation *const koopa_seg6_anims_06011364[]; extern const struct AnimationTable koopa_seg6_anims_06011364;
// koopa_flag // koopa_flag
extern const GeoLayout koopa_flag_geo[]; extern const GeoLayout koopa_flag_geo[];
@ -74,7 +74,7 @@ extern const Gfx koopa_flag_seg6_dl_06000D90[];
extern const Gfx koopa_flag_seg6_dl_06000DB0[]; extern const Gfx koopa_flag_seg6_dl_06000DB0[];
extern const Gfx koopa_flag_seg6_dl_06000E20[]; extern const Gfx koopa_flag_seg6_dl_06000E20[];
extern const Gfx koopa_flag_seg6_dl_06000E38[]; extern const Gfx koopa_flag_seg6_dl_06000E38[];
extern const struct Animation *const koopa_flag_seg6_anims_06001028[]; extern const struct AnimationTable koopa_flag_seg6_anims_06001028;
// piranha_plant // piranha_plant
extern const GeoLayout piranha_plant_geo[]; extern const GeoLayout piranha_plant_geo[];
@ -103,7 +103,7 @@ extern const Gfx piranha_plant_seg6_dl_06016D30[];
extern const Gfx piranha_plant_seg6_dl_06016D98[]; extern const Gfx piranha_plant_seg6_dl_06016D98[];
extern const Gfx piranha_plant_seg6_dl_06016EB8[]; extern const Gfx piranha_plant_seg6_dl_06016EB8[];
extern const Gfx piranha_plant_seg6_dl_06016F20[]; extern const Gfx piranha_plant_seg6_dl_06016F20[];
extern const struct Animation *const piranha_plant_seg6_anims_0601C31C[]; extern const struct AnimationTable piranha_plant_seg6_anims_0601C31C;
// poundable_pole // poundable_pole
extern const GeoLayout wooden_post_geo[]; extern const GeoLayout wooden_post_geo[];
@ -130,7 +130,7 @@ extern const Gfx whomp_seg6_dl_0601FE10[];
extern const Gfx whomp_seg6_dl_0601FEA8[]; extern const Gfx whomp_seg6_dl_0601FEA8[];
extern const Gfx whomp_seg6_dl_0601FFA0[]; extern const Gfx whomp_seg6_dl_0601FFA0[];
extern const Gfx whomp_seg6_dl_06020038[]; extern const Gfx whomp_seg6_dl_06020038[];
extern const struct Animation *const whomp_seg6_anims_06020A04[]; extern const struct AnimationTable whomp_seg6_anims_06020A04;
extern const Collision whomp_seg6_collision_06020A0C[]; extern const Collision whomp_seg6_collision_06020A0C[];
#endif #endif

View file

@ -30,7 +30,7 @@ extern const Gfx lakitu_seg6_dl_06005360[];
extern const Gfx lakitu_seg6_dl_06005598[]; extern const Gfx lakitu_seg6_dl_06005598[];
extern const Gfx lakitu_seg6_dl_060055E8[]; extern const Gfx lakitu_seg6_dl_060055E8[];
extern const Gfx lakitu_seg6_dl_06005610[]; extern const Gfx lakitu_seg6_dl_06005610[];
extern const struct Animation *const lakitu_seg6_anims_060058F8[]; extern const struct AnimationTable lakitu_seg6_anims_060058F8;
// mips // mips
extern const GeoLayout mips_geo[]; extern const GeoLayout mips_geo[];
@ -59,7 +59,7 @@ extern const Gfx mips_seg6_dl_06011E88[];
extern const Gfx mips_seg6_dl_06011ED8[]; extern const Gfx mips_seg6_dl_06011ED8[];
extern const Gfx mips_seg6_dl_06011F70[]; extern const Gfx mips_seg6_dl_06011F70[];
extern const Gfx mips_seg6_dl_06011FC0[]; extern const Gfx mips_seg6_dl_06011FC0[];
extern const struct Animation *const mips_seg6_anims_06015634[]; extern const struct AnimationTable mips_seg6_anims_06015634;
// toad // toad
extern const GeoLayout toad_geo_000114[]; extern const GeoLayout toad_geo_000114[];
@ -84,6 +84,6 @@ extern const Gfx toad_seg6_dl_06008748[];
extern const Gfx toad_seg6_dl_06008890[]; extern const Gfx toad_seg6_dl_06008890[];
extern const Gfx toad_seg6_dl_06008A90[]; extern const Gfx toad_seg6_dl_06008A90[];
extern const Gfx toad_seg6_dl_06008BD8[]; extern const Gfx toad_seg6_dl_06008BD8[];
extern const struct Animation *const toad_seg6_anims_0600FB58[]; extern const struct AnimationTable toad_seg6_anims_0600FB58;
#endif #endif

View file

@ -17,7 +17,7 @@ extern const Gfx chilly_chief_seg6_dl_06002FC8[];
extern const Gfx chilly_chief_seg6_dl_06003010[]; extern const Gfx chilly_chief_seg6_dl_06003010[];
extern const GeoLayout chilly_chief_geo[]; extern const GeoLayout chilly_chief_geo[];
extern const GeoLayout chilly_chief_big_geo[]; extern const GeoLayout chilly_chief_big_geo[];
extern const struct Animation *const chilly_chief_seg6_anims_06003994[]; extern const struct AnimationTable chilly_chief_seg6_anims_06003994;
// moneybag // moneybag
extern const GeoLayout moneybag_geo_000000[]; extern const GeoLayout moneybag_geo_000000[];
@ -33,6 +33,6 @@ extern const Gfx moneybag_seg6_dl_06005708[];
extern const Gfx moneybag_seg6_dl_06005750[]; extern const Gfx moneybag_seg6_dl_06005750[];
extern const Gfx moneybag_seg6_dl_06005980[]; extern const Gfx moneybag_seg6_dl_06005980[];
extern const Gfx moneybag_seg6_dl_060059F0[]; extern const Gfx moneybag_seg6_dl_060059F0[];
extern const struct Animation *const moneybag_seg6_anims_06005E5C[]; extern const struct AnimationTable moneybag_seg6_anims_06005E5C;
#endif #endif

View file

@ -31,7 +31,7 @@ extern const Gfx dorrie_seg6_dl_0600DDA0[];
extern const Gfx dorrie_seg6_dl_0600DE38[]; extern const Gfx dorrie_seg6_dl_0600DE38[];
extern const Gfx dorrie_seg6_dl_0600DF60[]; extern const Gfx dorrie_seg6_dl_0600DF60[];
extern const Gfx dorrie_seg6_dl_0600DFA8[]; extern const Gfx dorrie_seg6_dl_0600DFA8[];
extern const struct Animation *const dorrie_seg6_anims_0600F638[]; extern const struct AnimationTable dorrie_seg6_anims_0600F638;
extern const Collision dorrie_seg6_collision_0600F644[]; extern const Collision dorrie_seg6_collision_0600F644[];
extern const Collision dorrie_seg6_collision_0600FBB8[]; extern const Collision dorrie_seg6_collision_0600FBB8[];
@ -68,7 +68,7 @@ extern const Gfx scuttlebug_seg6_dl_06014238[];
extern const Gfx scuttlebug_seg6_dl_06014270[]; extern const Gfx scuttlebug_seg6_dl_06014270[];
extern const Gfx scuttlebug_seg6_dl_06014338[]; extern const Gfx scuttlebug_seg6_dl_06014338[];
extern const Gfx scuttlebug_seg6_dl_06014378[]; extern const Gfx scuttlebug_seg6_dl_06014378[];
extern const struct Animation *const scuttlebug_seg6_anims_06015064[]; extern const struct AnimationTable scuttlebug_seg6_anims_06015064;
// snufit // snufit
extern const GeoLayout snufit_geo[]; extern const GeoLayout snufit_geo[];
@ -100,6 +100,6 @@ extern const Gfx swoop_seg6_dl_06006B98[];
extern const Gfx swoop_seg6_dl_06006BD0[]; extern const Gfx swoop_seg6_dl_06006BD0[];
extern const Gfx swoop_seg6_dl_06006CC8[]; extern const Gfx swoop_seg6_dl_06006CC8[];
extern const Gfx swoop_seg6_dl_06006D00[]; extern const Gfx swoop_seg6_dl_06006D00[];
extern const struct Animation *const swoop_seg6_anims_060070D0[]; extern const struct AnimationTable swoop_seg6_anims_060070D0;
#endif #endif

View file

@ -8,7 +8,7 @@ extern const GeoLayout blargg_geo[];
extern const Gfx blargg_seg5_dl_050058D0[]; extern const Gfx blargg_seg5_dl_050058D0[];
extern const Gfx blargg_seg5_dl_05005A60[]; extern const Gfx blargg_seg5_dl_05005A60[];
extern const Gfx blargg_seg5_dl_05005D00[]; extern const Gfx blargg_seg5_dl_05005D00[];
extern const struct Animation *const blargg_seg5_anims_0500616C[]; extern const struct AnimationTable blargg_seg5_anims_0500616C;
// bully // bully
extern const GeoLayout bully_geo[]; extern const GeoLayout bully_geo[];
@ -27,6 +27,6 @@ extern const Gfx bully_seg5_dl_05003E70[];
extern const Gfx bully_seg5_dl_05003EA8[]; extern const Gfx bully_seg5_dl_05003EA8[];
extern const Gfx bully_seg5_dl_05003F80[]; extern const Gfx bully_seg5_dl_05003F80[];
extern const Gfx bully_seg5_dl_05003FC8[]; extern const Gfx bully_seg5_dl_05003FC8[];
extern const struct Animation *const bully_seg5_anims_0500470C[]; extern const struct AnimationTable bully_seg5_anims_0500470C;
#endif #endif

View file

@ -30,7 +30,7 @@ extern const Gfx king_bobomb_seg5_dl_0500B3C8[];
extern const Gfx king_bobomb_seg5_dl_0500B418[]; extern const Gfx king_bobomb_seg5_dl_0500B418[];
extern const Gfx king_bobomb_seg5_dl_0500B5F0[]; extern const Gfx king_bobomb_seg5_dl_0500B5F0[];
extern const Gfx king_bobomb_seg5_dl_0500B6C0[]; extern const Gfx king_bobomb_seg5_dl_0500B6C0[];
extern const struct Animation *const king_bobomb_seg5_anims_0500FE30[]; extern const struct AnimationTable king_bobomb_seg5_anims_0500FE30;
// water_bubble // water_bubble
extern const GeoLayout water_bomb_geo[]; extern const GeoLayout water_bomb_geo[];

View file

@ -11,7 +11,7 @@ extern const Gfx clam_shell_seg5_dl_050012B8[];
extern const Gfx clam_shell_seg5_dl_05001478[]; extern const Gfx clam_shell_seg5_dl_05001478[];
extern const Gfx clam_shell_seg5_dl_050014F8[]; extern const Gfx clam_shell_seg5_dl_050014F8[];
extern const Gfx clam_shell_seg5_dl_05001568[]; extern const Gfx clam_shell_seg5_dl_05001568[];
extern const struct Animation *const clam_shell_seg5_anims_05001744[]; extern const struct AnimationTable clam_shell_seg5_anims_05001744;
// manta // manta
extern const Gfx manta_seg5_dl_05004960[]; extern const Gfx manta_seg5_dl_05004960[];
@ -55,7 +55,7 @@ extern const Gfx manta_seg5_dl_05006B08[];
extern const Gfx manta_seg5_dl_05006B70[]; extern const Gfx manta_seg5_dl_05006B70[];
extern const Gfx manta_seg5_dl_05006C08[]; extern const Gfx manta_seg5_dl_05006C08[];
extern const GeoLayout manta_seg5_geo_05008D14[]; extern const GeoLayout manta_seg5_geo_05008D14[];
extern const struct Animation *const manta_seg5_anims_05008EB4[]; extern const struct AnimationTable manta_seg5_anims_05008EB4;
// sushi // sushi
extern const GeoLayout sushi_geo[]; extern const GeoLayout sushi_geo[];
@ -72,7 +72,7 @@ extern const Gfx sushi_seg5_dl_0500A860[];
extern const Gfx sushi_seg5_dl_0500A8A8[]; extern const Gfx sushi_seg5_dl_0500A8A8[];
extern const Gfx sushi_seg5_dl_0500A958[]; extern const Gfx sushi_seg5_dl_0500A958[];
extern const Gfx sushi_seg5_dl_0500A990[]; extern const Gfx sushi_seg5_dl_0500A990[];
extern const struct Animation *const sushi_seg5_anims_0500AE54[]; extern const struct AnimationTable sushi_seg5_anims_0500AE54;
// unagi // unagi
extern const GeoLayout unagi_geo[]; extern const GeoLayout unagi_geo[];
@ -99,7 +99,7 @@ extern const Gfx unagi_seg5_dl_0500E030[];
extern const Gfx unagi_seg5_dl_0500E088[]; extern const Gfx unagi_seg5_dl_0500E088[];
extern const Gfx unagi_seg5_dl_0500E200[]; extern const Gfx unagi_seg5_dl_0500E200[];
extern const Gfx unagi_seg5_dl_0500E258[]; extern const Gfx unagi_seg5_dl_0500E258[];
extern const struct Animation *const unagi_seg5_anims_05012824[]; extern const struct AnimationTable unagi_seg5_anims_05012824;
// whirlpool // whirlpool
extern const Gfx whirlpool_seg5_dl_05013B58[]; extern const Gfx whirlpool_seg5_dl_05013B58[];

View file

@ -29,7 +29,7 @@ extern const Gfx eyerok_seg5_dl_0500CAE8[];
extern const Gfx eyerok_seg5_dl_0500CB80[]; extern const Gfx eyerok_seg5_dl_0500CB80[];
extern const Gfx eyerok_seg5_dl_0500CC18[]; extern const Gfx eyerok_seg5_dl_0500CC18[];
extern const Gfx eyerok_seg5_dl_0500CC30[]; extern const Gfx eyerok_seg5_dl_0500CC30[];
extern const struct Animation *const eyerok_seg5_anims_050116E4[]; extern const struct AnimationTable eyerok_seg5_anims_050116E4;
// klepto // klepto
extern const GeoLayout klepto_geo[]; extern const GeoLayout klepto_geo[];
@ -65,7 +65,7 @@ extern const Gfx klepto_seg5_dl_05005020[];
extern const Gfx klepto_seg5_dl_05005068[]; extern const Gfx klepto_seg5_dl_05005068[];
extern const Gfx klepto_seg5_dl_05005130[]; extern const Gfx klepto_seg5_dl_05005130[];
extern const Gfx klepto_seg5_dl_05005178[]; extern const Gfx klepto_seg5_dl_05005178[];
extern const struct Animation *const klepto_seg5_anims_05008CFC[]; extern const struct AnimationTable klepto_seg5_anims_05008CFC;
// pokey // pokey
extern const GeoLayout pokey_head_geo[]; extern const GeoLayout pokey_head_geo[];

View file

@ -36,7 +36,7 @@ extern const Gfx monty_mole_seg5_dl_05004BE0[];
extern const Gfx monty_mole_seg5_dl_05004C00[]; extern const Gfx monty_mole_seg5_dl_05004C00[];
extern const Gfx monty_mole_seg5_dl_05004CE8[]; extern const Gfx monty_mole_seg5_dl_05004CE8[];
extern const Gfx monty_mole_seg5_dl_05004D30[]; extern const Gfx monty_mole_seg5_dl_05004D30[];
extern const struct Animation *const monty_mole_seg5_anims_05007248[]; extern const struct AnimationTable monty_mole_seg5_anims_05007248;
// monty_mole_hole // monty_mole_hole
extern const Gfx monty_mole_hole_seg5_dl_05000840[]; extern const Gfx monty_mole_hole_seg5_dl_05000840[];
@ -82,6 +82,6 @@ extern const Gfx ukiki_seg5_dl_0500CF68[];
extern const Gfx ukiki_seg5_dl_0500CFF0[]; extern const Gfx ukiki_seg5_dl_0500CFF0[];
extern const Gfx ukiki_seg5_dl_0500D078[]; extern const Gfx ukiki_seg5_dl_0500D078[];
extern const Gfx ukiki_seg5_dl_0500D108[]; extern const Gfx ukiki_seg5_dl_0500D108[];
extern const struct Animation *const ukiki_seg5_anims_05015784[]; extern const struct AnimationTable ukiki_seg5_anims_05015784;
#endif #endif

View file

@ -21,7 +21,7 @@ extern const Gfx penguin_seg5_dl_05007238[];
extern const Gfx penguin_seg5_dl_050072C8[]; extern const Gfx penguin_seg5_dl_050072C8[];
extern const Gfx penguin_seg5_dl_05007358[]; extern const Gfx penguin_seg5_dl_05007358[];
extern const Gfx penguin_seg5_dl_05007540[]; extern const Gfx penguin_seg5_dl_05007540[];
extern const struct Animation *const penguin_seg5_anims_05008B74[]; extern const struct AnimationTable penguin_seg5_anims_05008B74;
extern const Collision penguin_seg5_collision_05008B88[]; extern const Collision penguin_seg5_collision_05008B88[];
// snowman // snowman
@ -41,7 +41,7 @@ extern const Gfx snowman_seg5_dl_0500CBC0[];
extern const Gfx snowman_seg5_dl_0500CBF8[]; extern const Gfx snowman_seg5_dl_0500CBF8[];
extern const Gfx snowman_seg5_dl_0500CCB0[]; extern const Gfx snowman_seg5_dl_0500CCB0[];
extern const Gfx snowman_seg5_dl_0500CCE8[]; extern const Gfx snowman_seg5_dl_0500CCE8[];
extern const struct Animation *const snowman_seg5_anims_0500D118[]; extern const struct AnimationTable snowman_seg5_anims_0500D118;
// spindrift // spindrift
extern const GeoLayout spindrift_geo[]; extern const GeoLayout spindrift_geo[];
@ -59,6 +59,6 @@ extern const Gfx spindrift_seg5_dl_05002AD8[];
extern const Gfx spindrift_seg5_dl_05002B30[]; extern const Gfx spindrift_seg5_dl_05002B30[];
extern const Gfx spindrift_seg5_dl_05002C98[]; extern const Gfx spindrift_seg5_dl_05002C98[];
extern const Gfx spindrift_seg5_dl_05002D08[]; extern const Gfx spindrift_seg5_dl_05002D08[];
extern const struct Animation *const spindrift_seg5_anims_05002D68[]; extern const struct AnimationTable spindrift_seg5_anims_05002D68;
#endif #endif

View file

@ -34,7 +34,7 @@ extern const Gfx bookend_seg5_dl_050020E8[];
extern const Gfx bookend_seg5_dl_05002140[]; extern const Gfx bookend_seg5_dl_05002140[];
extern const Gfx bookend_seg5_dl_05002288[]; extern const Gfx bookend_seg5_dl_05002288[];
extern const Gfx bookend_seg5_dl_050022E0[]; extern const Gfx bookend_seg5_dl_050022E0[];
extern const struct Animation *const bookend_seg5_anims_05002540[]; extern const struct AnimationTable bookend_seg5_anims_05002540;
// chair // chair
extern const GeoLayout haunted_chair_geo[]; extern const GeoLayout haunted_chair_geo[];
@ -46,7 +46,7 @@ extern const Gfx chair_seg5_dl_05005378[];
extern const Gfx chair_seg5_dl_05005408[]; extern const Gfx chair_seg5_dl_05005408[];
extern const Gfx chair_seg5_dl_050055F0[]; extern const Gfx chair_seg5_dl_050055F0[];
extern const Gfx chair_seg5_dl_05005680[]; extern const Gfx chair_seg5_dl_05005680[];
extern const struct Animation *const chair_seg5_anims_05005784[]; extern const struct AnimationTable chair_seg5_anims_05005784;
// haunted_cage // haunted_cage
extern const GeoLayout haunted_cage_geo[]; extern const GeoLayout haunted_cage_geo[];
@ -71,7 +71,7 @@ extern const Gfx mad_piano_seg5_dl_050097F8[];
extern const Gfx mad_piano_seg5_dl_05009840[]; extern const Gfx mad_piano_seg5_dl_05009840[];
extern const Gfx mad_piano_seg5_dl_05009888[]; extern const Gfx mad_piano_seg5_dl_05009888[];
extern const Gfx mad_piano_seg5_dl_050098E8[]; extern const Gfx mad_piano_seg5_dl_050098E8[];
extern const struct Animation *const mad_piano_seg5_anims_05009B14[]; extern const struct AnimationTable mad_piano_seg5_anims_05009B14;
// small_key // small_key
extern const GeoLayout small_key_geo[]; extern const GeoLayout small_key_geo[];

View file

@ -1,6 +1,9 @@
// 0x0501534C // 0x0501534C
const struct Animation *const heave_ho_seg5_anims_0501534C[] = { const struct AnimationTable heave_ho_seg5_anims_0501534C = {
&heave_ho_seg5_anim_05015118, .anims = {
&heave_ho_seg5_anim_05015334, &heave_ho_seg5_anim_05015118,
&heave_ho_seg5_anim_05014F28, &heave_ho_seg5_anim_05015334,
&heave_ho_seg5_anim_05014F28,
},
.count = 3
}; };

View file

@ -1,5 +1,8 @@
// 0x05005768 // 0x05005768
const struct Animation *const hoot_seg5_anims_05005768[] = { const struct AnimationTable hoot_seg5_anims_05005768 = {
&hoot_seg5_anim_050053EC, .anims = {
&hoot_seg5_anim_05005750, &hoot_seg5_anim_050053EC,
&hoot_seg5_anim_05005750,
},
.count = 2
}; };

View file

@ -1,15 +1,18 @@
// 0x0500FE30 // 0x0500FE30
const struct Animation *const king_bobomb_seg5_anims_0500FE30[] = { const struct AnimationTable king_bobomb_seg5_anims_0500FE30 = {
&king_bobomb_seg5_anim_0500BDFC, .anims = {
&king_bobomb_seg5_anim_0500C2AC, &king_bobomb_seg5_anim_0500BDFC,
&king_bobomb_seg5_anim_0500C520, &king_bobomb_seg5_anim_0500C2AC,
&king_bobomb_seg5_anim_0500C774, &king_bobomb_seg5_anim_0500C520,
&king_bobomb_seg5_anim_0500CFCC, &king_bobomb_seg5_anim_0500C774,
&king_bobomb_seg5_anim_0500D5B0, &king_bobomb_seg5_anim_0500CFCC,
&king_bobomb_seg5_anim_0500D978, &king_bobomb_seg5_anim_0500D5B0,
&king_bobomb_seg5_anim_0500DDD8, &king_bobomb_seg5_anim_0500D978,
&king_bobomb_seg5_anim_0500E10C, &king_bobomb_seg5_anim_0500DDD8,
&king_bobomb_seg5_anim_0500F078, &king_bobomb_seg5_anim_0500E10C,
&king_bobomb_seg5_anim_0500F6C8, &king_bobomb_seg5_anim_0500F078,
&king_bobomb_seg5_anim_0500FE18, &king_bobomb_seg5_anim_0500F6C8,
&king_bobomb_seg5_anim_0500FE18,
},
.count = 12
}; };

View file

@ -1,12 +1,15 @@
// 0x05008CFC // 0x05008CFC
const struct Animation *const klepto_seg5_anims_05008CFC[] = { const struct AnimationTable klepto_seg5_anims_05008CFC = {
&klepto_seg5_anim_05005E44, .anims = {
&klepto_seg5_anim_05007574, &klepto_seg5_anim_05005E44,
&klepto_seg5_anim_050079B0, &klepto_seg5_anim_05007574,
&klepto_seg5_anim_05007E34, &klepto_seg5_anim_050079B0,
&klepto_seg5_anim_050086C0, &klepto_seg5_anim_05007E34,
&klepto_seg5_anim_05008A18, &klepto_seg5_anim_050086C0,
&klepto_seg5_anim_05008CE4, &klepto_seg5_anim_05008A18,
NULL, &klepto_seg5_anim_05008CE4,
NULL, NULL,
NULL,
},
.count = 7
}; };

View file

@ -1,20 +1,23 @@
// 0x06011364 // 0x06011364
const struct Animation *const koopa_seg6_anims_06011364[] = { const struct AnimationTable koopa_seg6_anims_06011364 = {
&koopa_seg6_anim_0600CC24, .anims = {
&koopa_seg6_anim_0600CFB8, &koopa_seg6_anim_0600CC24,
&koopa_seg6_anim_0600D518, &koopa_seg6_anim_0600CFB8,
&koopa_seg6_anim_0600D804, &koopa_seg6_anim_0600D518,
&koopa_seg6_anim_0600DD90, &koopa_seg6_anim_0600D804,
&koopa_seg6_anim_0600E32C, &koopa_seg6_anim_0600DD90,
&koopa_seg6_anim_0600E928, &koopa_seg6_anim_0600E32C,
&koopa_seg6_anim_0600F3EC, &koopa_seg6_anim_0600E928,
&koopa_seg6_anim_0600FB1C, &koopa_seg6_anim_0600F3EC,
&koopa_seg6_anim_06010258, &koopa_seg6_anim_0600FB1C,
&koopa_seg6_anim_06010634, &koopa_seg6_anim_06010258,
&koopa_seg6_anim_06010E48, &koopa_seg6_anim_06010634,
&koopa_seg6_anim_0601134C, // Hmm.. these last 2 are swapped. &koopa_seg6_anim_06010E48,
&koopa_seg6_anim_060110D8, &koopa_seg6_anim_0601134C, // Hmm.. these last 2 are swapped.
NULL, &koopa_seg6_anim_060110D8,
NULL, NULL,
NULL, NULL,
NULL,
},
.count = 14
}; };

View file

@ -1,5 +1,8 @@
// 0x06001028 // 0x06001028
const struct Animation *const koopa_flag_seg6_anims_06001028[] = { const struct AnimationTable koopa_flag_seg6_anims_06001028 = {
&koopa_flag_seg6_anim_06001010, .anims = {
NULL, &koopa_flag_seg6_anim_06001010,
NULL,
},
.count = 1
}; };

View file

@ -1,5 +1,8 @@
// 0x060058F8 // 0x060058F8
const struct Animation *const lakitu_seg6_anims_060058F8[] = { const struct AnimationTable lakitu_seg6_anims_060058F8 = {
&lakitu_seg6_anim_060058E0, .anims = {
NULL, &lakitu_seg6_anim_060058E0,
NULL,
},
.count = 1
}; };

View file

@ -1,10 +1,13 @@
// 0x050144D4 // 0x050144D4
const struct Animation *const lakitu_enemy_seg5_anims_050144D4[] = { const struct AnimationTable lakitu_enemy_seg5_anims_050144D4 = {
&lakitu_enemy_seg5_anim_05013EDC, .anims = {
&lakitu_enemy_seg5_anim_050140E8, &lakitu_enemy_seg5_anim_05013EDC,
&lakitu_enemy_seg5_anim_050142E0, &lakitu_enemy_seg5_anim_050140E8,
&lakitu_enemy_seg5_anim_050144BC, &lakitu_enemy_seg5_anim_050142E0,
NULL, &lakitu_enemy_seg5_anim_050144BC,
NULL, NULL,
NULL, NULL,
NULL,
},
.count = 4
}; };

View file

@ -1,6 +1,9 @@
// 0x05009B14 // 0x05009B14
const struct Animation *const mad_piano_seg5_anims_05009B14[] = { const struct AnimationTable mad_piano_seg5_anims_05009B14 = {
&mad_piano_seg5_anim_05009A04, .anims = {
&mad_piano_seg5_anim_05009AFC, &mad_piano_seg5_anim_05009A04,
NULL, &mad_piano_seg5_anim_05009AFC,
NULL,
},
.count = 2
}; };

View file

@ -1,6 +1,9 @@
// 0x05008EB4 // 0x05008EB4
const struct Animation *const manta_seg5_anims_05008EB4[] = { const struct AnimationTable manta_seg5_anims_05008EB4 = {
&manta_seg5_anim_05008CFC, .anims = {
NULL, &manta_seg5_anim_05008CFC,
NULL, NULL,
NULL,
},
.count = 1
}; };

View file

@ -1,10 +1,13 @@
// 0x06015634 // 0x06015634
const struct Animation *const mips_seg6_anims_06015634[] = { const struct AnimationTable mips_seg6_anims_06015634 = {
&mips_seg6_anim_06014B94, .anims = {
&mips_seg6_anim_060139F8, &mips_seg6_anim_06014B94,
&mips_seg6_anim_06013248, &mips_seg6_anim_060139F8,
&mips_seg6_anim_0601561C, &mips_seg6_anim_06013248,
&mips_seg6_anim_0601369C, &mips_seg6_anim_0601561C,
NULL, &mips_seg6_anim_0601369C,
NULL, NULL,
NULL,
},
.count = 5
}; };

View file

@ -1,8 +1,11 @@
// 0x06005E5C // 0x06005E5C
const struct Animation *const moneybag_seg6_anims_06005E5C[] = { const struct AnimationTable moneybag_seg6_anims_06005E5C = {
&moneybag_seg6_anim_06005AD8, .anims = {
&moneybag_seg6_anim_06005BEC, &moneybag_seg6_anim_06005AD8,
&moneybag_seg6_anim_06005C98, &moneybag_seg6_anim_06005BEC,
&moneybag_seg6_anim_06005D3C, &moneybag_seg6_anim_06005C98,
&moneybag_seg6_anim_06005E44, &moneybag_seg6_anim_06005D3C,
&moneybag_seg6_anim_06005E44,
},
.count = 5
}; };

View file

@ -1,15 +1,18 @@
// 0x05007248 // 0x05007248
const struct Animation *const monty_mole_seg5_anims_05007248[] = { const struct AnimationTable monty_mole_seg5_anims_05007248 = {
&monty_mole_seg5_anim_05004FEC, .anims = {
&monty_mole_seg5_anim_0500527C, &monty_mole_seg5_anim_05004FEC,
&monty_mole_seg5_anim_050054B0, &monty_mole_seg5_anim_0500527C,
&monty_mole_seg5_anim_050062B0, &monty_mole_seg5_anim_050054B0,
&monty_mole_seg5_anim_050065C0, &monty_mole_seg5_anim_050062B0,
&monty_mole_seg5_anim_05006880, &monty_mole_seg5_anim_050065C0,
&monty_mole_seg5_anim_05006B10, &monty_mole_seg5_anim_05006880,
&monty_mole_seg5_anim_05006DB8, &monty_mole_seg5_anim_05006B10,
&monty_mole_seg5_anim_05007230, &monty_mole_seg5_anim_05006DB8,
&monty_mole_seg5_anim_050065D8, &monty_mole_seg5_anim_05007230,
NULL, &monty_mole_seg5_anim_050065D8,
NULL, NULL,
NULL,
},
.count = 10
}; };

View file

@ -1,16 +1,19 @@
// 0x0501C41C // 0x0501C41C
const struct Animation *const peach_seg5_anims_0501C41C[] = { const struct AnimationTable peach_seg5_anims_0501C41C = {
&peach_seg5_anim_0500C638, .anims = {
&peach_seg5_anim_0500E6B4, &peach_seg5_anim_0500C638,
&peach_seg5_anim_0500ED94, &peach_seg5_anim_0500E6B4,
&peach_seg5_anim_0500F474, &peach_seg5_anim_0500ED94,
&peach_seg5_anim_0500FE84, &peach_seg5_anim_0500F474,
&peach_seg5_anim_05011050, &peach_seg5_anim_0500FE84,
&peach_seg5_anim_05012F40, &peach_seg5_anim_05011050,
&peach_seg5_anim_05015468, &peach_seg5_anim_05012F40,
&peach_seg5_anim_05016798, &peach_seg5_anim_05015468,
&peach_seg5_anim_05018664, &peach_seg5_anim_05016798,
&peach_seg5_anim_0501B328, &peach_seg5_anim_05018664,
&peach_seg5_anim_0501C404, &peach_seg5_anim_0501B328,
NULL, &peach_seg5_anim_0501C404,
NULL,
},
.count = 12
}; };

View file

@ -1,8 +1,11 @@
// 0x05008B74 // 0x05008B74
const struct Animation *const penguin_seg5_anims_05008B74[] = { const struct AnimationTable penguin_seg5_anims_05008B74 = {
&penguin_seg5_anim_05008B5C, .anims = {
&penguin_seg5_anim_050079E4, &penguin_seg5_anim_05008B5C,
&penguin_seg5_anim_05007DCC, &penguin_seg5_anim_050079E4,
&penguin_seg5_anim_050087C0, &penguin_seg5_anim_05007DCC,
&penguin_seg5_anim_05008B5C, // duplicate pointer? &penguin_seg5_anim_050087C0,
&penguin_seg5_anim_05008B5C, // duplicate pointer?
},
.count = 5
}; };

View file

@ -1,16 +1,19 @@
// 0x0601C31C // 0x0601C31C
const struct Animation *const piranha_plant_seg6_anims_0601C31C[] = { const struct AnimationTable piranha_plant_seg6_anims_0601C31C = {
&piranha_plant_seg6_anim_06017C38, .anims = {
&piranha_plant_seg6_anim_06017D88, &piranha_plant_seg6_anim_06017C38,
&piranha_plant_seg6_anim_060187B0, &piranha_plant_seg6_anim_06017D88,
&piranha_plant_seg6_anim_06018BA8, &piranha_plant_seg6_anim_060187B0,
&piranha_plant_seg6_anim_06019854, &piranha_plant_seg6_anim_06018BA8,
&piranha_plant_seg6_anim_0601A014, &piranha_plant_seg6_anim_06019854,
&piranha_plant_seg6_anim_0601AF34, &piranha_plant_seg6_anim_0601A014,
&piranha_plant_seg6_anim_0601AAE4, &piranha_plant_seg6_anim_0601AF34,
&piranha_plant_seg6_anim_0601B634, &piranha_plant_seg6_anim_0601AAE4,
&piranha_plant_seg6_anim_0601C304, &piranha_plant_seg6_anim_0601B634,
NULL, &piranha_plant_seg6_anim_0601C304,
NULL,
},
.count = 10
}; };
// huh? this isnt following the Bin ID format? // huh? this isnt following the Bin ID format?

View file

@ -1,4 +1,7 @@
// 0x06015064 // 0x06015064
const struct Animation *const scuttlebug_seg6_anims_06015064[] = { const struct AnimationTable scuttlebug_seg6_anims_06015064 = {
&scuttlebug_seg6_anim_0601504C, .anims = {
&scuttlebug_seg6_anim_0601504C,
},
.count = 1
}; };

View file

@ -1,4 +1,7 @@
// 0x0600A4D4 // 0x0600A4D4
const struct Animation *const seaweed_seg6_anims_0600A4D4[] = { const struct AnimationTable seaweed_seg6_anims_0600A4D4 = {
&seaweed_seg6_anim_0600A4BC, .anims = {
&seaweed_seg6_anim_0600A4BC,
},
.count = 1
}; };

View file

@ -1,7 +1,10 @@
// 0x06007DE0 // 0x06007DE0
const struct Animation *const skeeter_seg6_anims_06007DE0[] = { const struct AnimationTable skeeter_seg6_anims_06007DE0 = {
&skeeter_seg6_anim_06005D44, .anims = {
&skeeter_seg6_anim_06006B70, &skeeter_seg6_anim_06005D44,
&skeeter_seg6_anim_060071E0, &skeeter_seg6_anim_06006B70,
&skeeter_seg6_anim_06007DC8, &skeeter_seg6_anim_060071E0,
&skeeter_seg6_anim_06007DC8,
},
.count = 4
}; };

View file

@ -1,7 +1,10 @@
// 0x0500D118 // 0x0500D118
const struct Animation *const snowman_seg5_anims_0500D118[] = { const struct AnimationTable snowman_seg5_anims_0500D118 = {
&snowman_seg5_anim_0500CED8, .anims = {
&snowman_seg5_anim_0500D100, &snowman_seg5_anim_0500CED8,
NULL, &snowman_seg5_anim_0500D100,
NULL, NULL,
NULL,
},
.count = 2
}; };

View file

@ -1,7 +1,10 @@
// 0x05002D68 // 0x05002D68
const struct Animation *const spindrift_seg5_anims_05002D68[] = { const struct AnimationTable spindrift_seg5_anims_05002D68 = {
&spindrift_seg5_anim_050006AC, .anims = {
NULL, &spindrift_seg5_anim_050006AC,
NULL, NULL,
NULL, NULL,
NULL,
},
.count = 1
}; };

View file

@ -1,6 +1,9 @@
// 0x05016EAC // 0x05016EAC
const struct Animation *const spiny_seg5_anims_05016EAC[] = { const struct AnimationTable spiny_seg5_anims_05016EAC = {
&spiny_seg5_anim_05016E94, .anims = {
NULL, &spiny_seg5_anim_05016E94,
NULL, NULL,
NULL,
},
.count = 1
}; };

View file

@ -1,6 +1,9 @@
// 0x050157E4 // 0x050157E4
const struct Animation *const spiny_egg_seg5_anims_050157E4[] = { const struct AnimationTable spiny_egg_seg5_anims_050157E4 = {
&spiny_egg_seg5_anim_050157CC, .anims = {
NULL, &spiny_egg_seg5_anim_050157CC,
NULL, NULL,
NULL,
},
.count = 1
}; };

View file

@ -1,4 +1,7 @@
// 0x0500AE54 // 0x0500AE54
const struct Animation *const sushi_seg5_anims_0500AE54[] = { const struct AnimationTable sushi_seg5_anims_0500AE54 = {
&sushi_seg5_anim_0500AE3C, .anims = {
&sushi_seg5_anim_0500AE3C,
},
.count = 1
}; };

View file

@ -1,5 +1,8 @@
// 0x060070D0 // 0x060070D0
const struct Animation *const swoop_seg6_anims_060070D0[] = { const struct AnimationTable swoop_seg6_anims_060070D0 = {
&swoop_seg6_anim_06006E88, .anims = {
&swoop_seg6_anim_060070B8, &swoop_seg6_anim_06006E88,
&swoop_seg6_anim_060070B8,
},
.count = 2
}; };

View file

@ -1,11 +1,14 @@
// 0x0600FB58 // 0x0600FB58
const struct Animation *const toad_seg6_anims_0600FB58[] = { const struct AnimationTable toad_seg6_anims_0600FB58 = {
&toad_seg6_anim_0600B66C, .anims = {
&toad_seg6_anim_0600CE78, &toad_seg6_anim_0600B66C,
&toad_seg6_anim_0600E414, &toad_seg6_anim_0600CE78,
&toad_seg6_anim_0600FB40, &toad_seg6_anim_0600E414,
&toad_seg6_anim_060099F0, &toad_seg6_anim_0600FB40,
&toad_seg6_anim_0600A0D0, &toad_seg6_anim_060099F0,
&toad_seg6_anim_06008F7C, &toad_seg6_anim_0600A0D0,
&toad_seg6_anim_06009310, &toad_seg6_anim_06008F7C,
&toad_seg6_anim_06009310,
},
.count = 8
}; };

View file

@ -1,18 +1,21 @@
// 0x05015784 // 0x05015784
const struct Animation *const ukiki_seg5_anims_05015784[] = { const struct AnimationTable ukiki_seg5_anims_05015784 = {
&ukiki_seg5_anim_0500D658, .anims = {
&ukiki_seg5_anim_0500DC80, &ukiki_seg5_anim_0500D658,
&ukiki_seg5_anim_0500DDEC, &ukiki_seg5_anim_0500DC80,
&ukiki_seg5_anim_0500EACC, &ukiki_seg5_anim_0500DDEC,
&ukiki_seg5_anim_0500EEA8, &ukiki_seg5_anim_0500EACC,
&ukiki_seg5_anim_0500F530, &ukiki_seg5_anim_0500EEA8,
&ukiki_seg5_anim_0500FC84, &ukiki_seg5_anim_0500F530,
&ukiki_seg5_anim_0501006C, &ukiki_seg5_anim_0500FC84,
&ukiki_seg5_anim_050103F4, &ukiki_seg5_anim_0501006C,
&ukiki_seg5_anim_05012ABC, &ukiki_seg5_anim_050103F4,
&ukiki_seg5_anim_05014BE4, &ukiki_seg5_anim_05012ABC,
&ukiki_seg5_anim_050153C4, &ukiki_seg5_anim_05014BE4,
&ukiki_seg5_anim_0501576C, &ukiki_seg5_anim_050153C4,
NULL, &ukiki_seg5_anim_0501576C,
NULL, NULL,
NULL,
},
.count = 13
}; };

View file

@ -1,10 +1,13 @@
// 0x05012824 // 0x05012824
const struct Animation *const unagi_seg5_anims_05012824[] = { const struct AnimationTable unagi_seg5_anims_05012824 = {
&unagi_seg5_anim_0500FBF4, .anims = {
&unagi_seg5_anim_05010488, &unagi_seg5_anim_0500FBF4,
&unagi_seg5_anim_05010B54, &unagi_seg5_anim_05010488,
&unagi_seg5_anim_05011488, &unagi_seg5_anim_05010B54,
&unagi_seg5_anim_05011890, &unagi_seg5_anim_05011488,
&unagi_seg5_anim_05011D40, &unagi_seg5_anim_05011890,
&unagi_seg5_anim_0501280C, &unagi_seg5_anim_05011D40,
&unagi_seg5_anim_0501280C,
},
.count = 7
}; };

View file

@ -1,6 +1,9 @@
// 0x06013F7C // 0x06013F7C
const struct Animation *const water_ring_seg6_anims_06013F7C[] = { const struct AnimationTable water_ring_seg6_anims_06013F7C = {
&water_ring_seg6_anim_06013F64, .anims = {
NULL, &water_ring_seg6_anim_06013F64,
NULL, NULL,
NULL,
},
.count = 1
}; };

View file

@ -1,5 +1,8 @@
// 0x06020A04 // 0x06020A04
const struct Animation *const whomp_seg6_anims_06020A04[] = { const struct AnimationTable whomp_seg6_anims_06020A04 = {
&whomp_seg6_anim_060209EC, .anims = {
&whomp_seg6_anim_060202DC, &whomp_seg6_anim_060209EC,
&whomp_seg6_anim_060202DC,
},
.count = 2
}; };

View file

@ -1,4 +1,7 @@
// 0x0500C874 // 0x0500C874
const struct Animation *const wiggler_seg5_anims_0500C874[] = { const struct AnimationTable wiggler_seg5_anims_0500C874 = {
&wiggler_seg5_anim_0500C760, .anims = {
&wiggler_seg5_anim_0500C760,
},
.count = 1
}; };

View file

@ -1,4 +1,7 @@
// 0x0500EC8C // 0x0500EC8C
const struct Animation *const wiggler_seg5_anims_0500EC8C[] = { const struct AnimationTable wiggler_seg5_anims_0500EC8C = {
&wiggler_seg5_anim_0500EC74, .anims = {
&wiggler_seg5_anim_0500EC74,
},
.count = 1
}; };

View file

@ -1,7 +1,10 @@
// 0x05024100 // 0x05024100
const struct Animation *const yoshi_seg5_anims_05024100[] = { const struct AnimationTable yoshi_seg5_anims_05024100 = {
&yoshi_seg5_anim_050233A4, .anims = {
&yoshi_seg5_anim_05023E4C, &yoshi_seg5_anim_050233A4,
&yoshi_seg5_anim_050240E8, &yoshi_seg5_anim_05023E4C,
NULL, &yoshi_seg5_anim_050240E8,
NULL,
},
.count = 3
}; };

View file

@ -786,6 +786,32 @@ def process_files():
processed_files.append(process_file(f)) processed_files.append(process_file(f))
return processed_files return processed_files
############################################################################
def output_nuke_function(fname, function):
first = True
comment = ''
fid = function['identifier']
print(fid + '(', end='')
for param in function['params']:
if first:
first = False
else:
print(', ', end='')
comment += ', '
pid = param['identifier']
ptype = param['type']
ptype, plink = translate_type_to_lua(ptype)
if ptype == '`integer`' or ptype == '`number`' or 'enum' in ptype:
print('0', end='')
else:
print('nil', end='')
comment += ptype
print(') -- ' + comment)
############################################################################ ############################################################################
def doc_should_document(fname, identifier): def doc_should_document(fname, identifier):
@ -847,6 +873,9 @@ def doc_function(fname, function):
if not function['implemented']: if not function['implemented']:
return '' return ''
# debug print out lua nuke functions
# output_nuke_function(fname, function)
if not doc_should_document(fname, function['identifier']): if not doc_should_document(fname, function['identifier']):
return '' return ''

View file

@ -102,6 +102,8 @@ override_field_immutable = {
"GraphNode": [ "next", "prev", "parent" ], "GraphNode": [ "next", "prev", "parent" ],
"ObjectWarpNode": [ "next "], "ObjectWarpNode": [ "next "],
"SpawnInfo": [ "next" ], "SpawnInfo": [ "next" ],
"Animation": [ "length" ],
"AnimationTable": [ "count" ],
} }
override_field_version_excludes = { override_field_version_excludes = {

View file

@ -24,6 +24,9 @@
--- @field public unusedBoneCount integer --- @field public unusedBoneCount integer
--- @field public values Pointer_integer --- @field public values Pointer_integer
--- @class AnimationTable
--- @field public count integer
--- @class Area --- @class Area
--- @field public camera Camera --- @field public camera Camera
--- @field public flags integer --- @field public flags integer

View file

@ -202,7 +202,7 @@ const BehaviorScript bhvKingBobomb[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvKingBobomb), ID(id_bhvKingBobomb),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, king_bobomb_seg5_anims_0500FE30), LOAD_ANIMATIONS(oAnimations, &king_bobomb_seg5_anims_0500FE30),
SET_INT(oInteractType, INTERACT_GRABBABLE), SET_INT(oInteractType, INTERACT_GRABBABLE),
SET_HITBOX(/*Radius*/ 100, /*Height*/ 100), SET_HITBOX(/*Radius*/ 100, /*Height*/ 100),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
@ -432,7 +432,7 @@ const BehaviorScript bhvChuckya[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvChuckya), ID(id_bhvChuckya),
OR_INT(oFlags, (OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, chuckya_seg8_anims_0800C070), LOAD_ANIMATIONS(oAnimations, &chuckya_seg8_anims_0800C070),
ANIMATE(5), ANIMATE(5),
SET_INT(oInteractType, INTERACT_GRABBABLE), SET_INT(oInteractType, INTERACT_GRABBABLE),
SET_HITBOX(/*Radius*/ 150, /*Height*/ 100), SET_HITBOX(/*Radius*/ 150, /*Height*/ 100),
@ -879,7 +879,7 @@ const BehaviorScript bhvDoor[] = {
SET_INT(oInteractType, INTERACT_DOOR), SET_INT(oInteractType, INTERACT_DOOR),
// Door - common: // Door - common:
OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, door_seg3_anims_030156C0), LOAD_ANIMATIONS(oAnimations, &door_seg3_anims_030156C0),
ANIMATE(0), ANIMATE(0),
LOAD_COLLISION_DATA(door_seg3_collision_0301CE78), LOAD_COLLISION_DATA(door_seg3_collision_0301CE78),
SET_HITBOX(/*Radius*/ 80, /*Height*/ 100), SET_HITBOX(/*Radius*/ 80, /*Height*/ 100),
@ -1139,7 +1139,7 @@ const BehaviorScript bhvEndToad[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvEndToad), ID(id_bhvEndToad),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_ANIMATIONS(oAnimations, toad_seg6_anims_0600FB58), LOAD_ANIMATIONS(oAnimations, &toad_seg6_anims_0600FB58),
ANIMATE(0), ANIMATE(0),
BEGIN_LOOP(), BEGIN_LOOP(),
CALL_NATIVE(bhv_end_toad_loop), CALL_NATIVE(bhv_end_toad_loop),
@ -1150,7 +1150,7 @@ const BehaviorScript bhvEndPeach[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvEndPeach), ID(id_bhvEndPeach),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_ANIMATIONS(oAnimations, peach_seg5_anims_0501C41C), LOAD_ANIMATIONS(oAnimations, &peach_seg5_anims_0501C41C),
ANIMATE(0), ANIMATE(0),
BEGIN_LOOP(), BEGIN_LOOP(),
CALL_NATIVE(bhv_end_peach_loop), CALL_NATIVE(bhv_end_peach_loop),
@ -1440,7 +1440,7 @@ const BehaviorScript bhvSpindrift[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvSpindrift), ID(id_bhvSpindrift),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, spindrift_seg5_anims_05002D68), LOAD_ANIMATIONS(oAnimations, &spindrift_seg5_anims_05002D68),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SET_HOME(), SET_HOME(),
@ -1649,7 +1649,7 @@ const BehaviorScript bhvHeaveHo[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvHeaveHo), ID(id_bhvHeaveHo),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, heave_ho_seg5_anims_0501534C), LOAD_ANIMATIONS(oAnimations, &heave_ho_seg5_anims_0501534C),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 200, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 600, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 200, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 600, /*Unused*/ 0, 0),
SPAWN_OBJ(/*Model*/ MODEL_NONE, /*Behavior*/ bhvHeaveHoThrowMario), SPAWN_OBJ(/*Model*/ MODEL_NONE, /*Behavior*/ bhvHeaveHoThrowMario),
@ -1864,7 +1864,7 @@ const BehaviorScript bhvBowser[] = {
SET_HITBOX(/*Radius*/ 400, /*Height*/ 400), SET_HITBOX(/*Radius*/ 400, /*Height*/ 400),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_HOME(), SET_HOME(),
LOAD_ANIMATIONS(oAnimations, bowser_seg6_anims_06057690), LOAD_ANIMATIONS(oAnimations, &bowser_seg6_anims_06057690),
SPAWN_CHILD(/*Model*/ MODEL_NONE, /*Behavior*/ bhvBowserBodyAnchor), SPAWN_CHILD(/*Model*/ MODEL_NONE, /*Behavior*/ bhvBowserBodyAnchor),
SPAWN_CHILD(/*Model*/ MODEL_BOWSER_BOMB_CHILD_OBJ, /*Behavior*/ bhvBowserFlameSpawn), SPAWN_CHILD(/*Model*/ MODEL_BOWSER_BOMB_CHILD_OBJ, /*Behavior*/ bhvBowserFlameSpawn),
SPAWN_OBJ(/*Model*/ MODEL_NONE, /*Behavior*/ bhvBowserTailAnchor), SPAWN_OBJ(/*Model*/ MODEL_NONE, /*Behavior*/ bhvBowserTailAnchor),
@ -2031,7 +2031,7 @@ const BehaviorScript bhvBlueFish[] = {
ID(id_bhvBlueFish), ID(id_bhvBlueFish),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
SET_HOME(), SET_HOME(),
LOAD_ANIMATIONS(oAnimations, blue_fish_seg3_anims_0301C2B0), LOAD_ANIMATIONS(oAnimations, &blue_fish_seg3_anims_0301C2B0),
ANIMATE(0), ANIMATE(0),
BEGIN_LOOP(), BEGIN_LOOP(),
CALL_NATIVE(bhv_blue_fish_movement_loop), CALL_NATIVE(bhv_blue_fish_movement_loop),
@ -2074,7 +2074,7 @@ const BehaviorScript bhvCheckerboardPlatformSub[] = {
const BehaviorScript bhvBowserKeyUnlockDoor[] = { const BehaviorScript bhvBowserKeyUnlockDoor[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvBowserKeyUnlockDoor), ID(id_bhvBowserKeyUnlockDoor),
LOAD_ANIMATIONS(oAnimations, bowser_key_seg3_anims_list), LOAD_ANIMATIONS(oAnimations, &bowser_key_seg3_anims_list),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
BEGIN_LOOP(), BEGIN_LOOP(),
CALL_NATIVE(bhv_bowser_key_unlock_door_loop), CALL_NATIVE(bhv_bowser_key_unlock_door_loop),
@ -2084,7 +2084,7 @@ const BehaviorScript bhvBowserKeyUnlockDoor[] = {
const BehaviorScript bhvBowserKeyCourseExit[] = { const BehaviorScript bhvBowserKeyCourseExit[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvBowserKeyCourseExit), ID(id_bhvBowserKeyCourseExit),
LOAD_ANIMATIONS(oAnimations, bowser_key_seg3_anims_list), LOAD_ANIMATIONS(oAnimations, &bowser_key_seg3_anims_list),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
BEGIN_LOOP(), BEGIN_LOOP(),
CALL_NATIVE(bhv_bowser_key_course_exit_loop), CALL_NATIVE(bhv_bowser_key_course_exit_loop),
@ -2163,7 +2163,7 @@ const BehaviorScript bhvMacroUkiki[] = {
SET_HITBOX(/*Radius*/ 40, /*Height*/ 40), SET_HITBOX(/*Radius*/ 40, /*Height*/ 40),
SET_INT(oIntangibleTimer, 0), SET_INT(oIntangibleTimer, 0),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, ukiki_seg5_anims_05015784), LOAD_ANIMATIONS(oAnimations, &ukiki_seg5_anims_05015784),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SET_HOME(), SET_HOME(),
@ -2383,7 +2383,7 @@ const BehaviorScript bhvPiranhaPlant[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvPiranhaPlant), ID(id_bhvPiranhaPlant),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, piranha_plant_seg6_anims_0601C31C), LOAD_ANIMATIONS(oAnimations, &piranha_plant_seg6_anims_0601C31C),
ANIMATE(0), ANIMATE(0),
SET_INTERACT_TYPE(INTERACT_DAMAGE), SET_INTERACT_TYPE(INTERACT_DAMAGE),
SET_HITBOX(/*Radius*/ 100, /*Height*/ 200), SET_HITBOX(/*Radius*/ 100, /*Height*/ 200),
@ -2436,7 +2436,7 @@ const BehaviorScript bhvTuxiesMother[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvTuxiesMother), ID(id_bhvTuxiesMother),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, penguin_seg5_anims_05008B74), LOAD_ANIMATIONS(oAnimations, &penguin_seg5_anims_05008B74),
ANIMATE(3), ANIMATE(3),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0),
SET_HOME(), SET_HOME(),
@ -2465,7 +2465,7 @@ const BehaviorScript bhvSmallPenguin[] = {
ID(id_bhvSmallPenguin), ID(id_bhvSmallPenguin),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, penguin_seg5_anims_05008B74), LOAD_ANIMATIONS(oAnimations, &penguin_seg5_anims_05008B74),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SET_INT(oInteractType, INTERACT_GRABBABLE), SET_INT(oInteractType, INTERACT_GRABBABLE),
@ -2555,7 +2555,7 @@ const BehaviorScript bhvBub[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvBub), ID(id_bhvBub),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, bub_seg6_anims_06012354), LOAD_ANIMATIONS(oAnimations, &bub_seg6_anims_06012354),
ANIMATE(0), ANIMATE(0),
SET_HITBOX_WITH_OFFSET(/*Radius*/ 20, /*Height*/ 10, /*Downwards offset*/ 10), SET_HITBOX_WITH_OFFSET(/*Radius*/ 20, /*Height*/ 10, /*Downwards offset*/ 10),
SET_INTERACT_TYPE(INTERACT_DAMAGE), SET_INTERACT_TYPE(INTERACT_DAMAGE),
@ -2642,7 +2642,7 @@ const BehaviorScript bhvSushiShark[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvSushiShark), ID(id_bhvSushiShark),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, sushi_seg5_anims_0500AE54), LOAD_ANIMATIONS(oAnimations, &sushi_seg5_anims_0500AE54),
SPAWN_OBJ(/*Model*/ MODEL_NONE, /*Behavior*/ bhvSushiSharkCollisionChild), SPAWN_OBJ(/*Model*/ MODEL_NONE, /*Behavior*/ bhvSushiSharkCollisionChild),
SET_HITBOX_WITH_OFFSET(/*Radius*/ 100, /*Height*/ 50, /*Downwards offset*/ 50), SET_HITBOX_WITH_OFFSET(/*Radius*/ 100, /*Height*/ 50, /*Downwards offset*/ 50),
SET_INTERACT_TYPE(INTERACT_DAMAGE), SET_INTERACT_TYPE(INTERACT_DAMAGE),
@ -3269,7 +3269,7 @@ const BehaviorScript bhvScuttlebug[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvScuttlebug), ID(id_bhvScuttlebug),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, scuttlebug_seg6_anims_06015064), LOAD_ANIMATIONS(oAnimations, &scuttlebug_seg6_anims_06015064),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 80, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 80, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SET_HOME(), SET_HOME(),
@ -3302,7 +3302,7 @@ const BehaviorScript bhvSmallWhomp[] = {
SET_INT(oNumLootCoins, 5), SET_INT(oNumLootCoins, 5),
// Whomp - common: // Whomp - common:
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, whomp_seg6_anims_06020A04), LOAD_ANIMATIONS(oAnimations, &whomp_seg6_anims_06020A04),
LOAD_COLLISION_DATA(whomp_seg6_collision_06020A0C), LOAD_COLLISION_DATA(whomp_seg6_collision_06020A0C),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 0, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 0, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
@ -3537,7 +3537,7 @@ const BehaviorScript bhvSLWalkingPenguin[] = {
ID(id_bhvSLWalkingPenguin), ID(id_bhvSLWalkingPenguin),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_COLLISION_DATA(penguin_seg5_collision_05008B88), LOAD_COLLISION_DATA(penguin_seg5_collision_05008B88),
LOAD_ANIMATIONS(oAnimations, penguin_seg5_anims_05008B74), LOAD_ANIMATIONS(oAnimations, &penguin_seg5_anims_05008B74),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 0, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 0, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SCALE(/*Unused*/ 0, /*Field*/ 600), SCALE(/*Unused*/ 0, /*Field*/ 600),
@ -3576,7 +3576,7 @@ const BehaviorScript bhvToadMessage[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvToadMessage), ID(id_bhvToadMessage),
OR_INT(oFlags, (OBJ_FLAG_PERSISTENT_RESPAWN | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_PERSISTENT_RESPAWN | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, toad_seg6_anims_0600FB58), LOAD_ANIMATIONS(oAnimations, &toad_seg6_anims_0600FB58),
ANIMATE(6), ANIMATE(6),
SET_INTERACT_TYPE(INTERACT_TEXT), SET_INTERACT_TYPE(INTERACT_TEXT),
SET_HITBOX(/*Radius*/ 80, /*Height*/ 100), SET_HITBOX(/*Radius*/ 80, /*Height*/ 100),
@ -3782,7 +3782,7 @@ const BehaviorScript bhvSeaweed[] = {
BEGIN(OBJ_LIST_LEVEL), BEGIN(OBJ_LIST_LEVEL),
ID(id_bhvSeaweed), ID(id_bhvSeaweed),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_ANIMATIONS(oAnimations, seaweed_seg6_anims_0600A4D4), LOAD_ANIMATIONS(oAnimations, &seaweed_seg6_anims_0600A4D4),
ANIMATE(0), ANIMATE(0),
CALL_NATIVE(bhv_seaweed_init), CALL_NATIVE(bhv_seaweed_init),
BEGIN_LOOP(), BEGIN_LOOP(),
@ -3803,7 +3803,7 @@ const BehaviorScript bhvBobomb[] = {
BEGIN(OBJ_LIST_DESTRUCTIVE), BEGIN(OBJ_LIST_DESTRUCTIVE),
ID(id_bhvBobomb), ID(id_bhvBobomb),
OR_INT(oFlags, (OBJ_FLAG_PERSISTENT_RESPAWN | OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_PERSISTENT_RESPAWN | OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, bobomb_seg8_anims_0802396C), LOAD_ANIMATIONS(oAnimations, &bobomb_seg8_anims_0802396C),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
ANIMATE(0), ANIMATE(0),
SET_INT(oIntangibleTimer, 0), SET_INT(oIntangibleTimer, 0),
@ -3832,7 +3832,7 @@ const BehaviorScript bhvBobombBuddy[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvBobombBuddy), ID(id_bhvBobombBuddy),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, bobomb_seg8_anims_0802396C), LOAD_ANIMATIONS(oAnimations, &bobomb_seg8_anims_0802396C),
SET_INTERACT_TYPE(INTERACT_TEXT), SET_INTERACT_TYPE(INTERACT_TEXT),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_HITBOX(/*Radius*/ 100, /*Height*/ 60), SET_HITBOX(/*Radius*/ 100, /*Height*/ 60),
@ -3851,7 +3851,7 @@ const BehaviorScript bhvBobombBuddyOpensCannon[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvBobombBuddyOpensCannon), ID(id_bhvBobombBuddyOpensCannon),
OR_INT(oFlags, (OBJ_FLAG_PERSISTENT_RESPAWN | OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_PERSISTENT_RESPAWN | OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_HOLDABLE | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, bobomb_seg8_anims_0802396C), LOAD_ANIMATIONS(oAnimations, &bobomb_seg8_anims_0802396C),
SET_INTERACT_TYPE(INTERACT_TEXT), SET_INTERACT_TYPE(INTERACT_TEXT),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_HITBOX(/*Radius*/ 100, /*Height*/ 60), SET_HITBOX(/*Radius*/ 100, /*Height*/ 60),
@ -3932,7 +3932,7 @@ const BehaviorScript bhvHomingAmp[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvHomingAmp), ID(id_bhvHomingAmp),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_MOVE_XZ_USING_FVEL | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_MOVE_XZ_USING_FVEL | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, amp_seg8_anims_08004034), LOAD_ANIMATIONS(oAnimations, &amp_seg8_anims_08004034),
ANIMATE(0), ANIMATE(0),
SET_FLOAT(oGraphYOffset, 40), SET_FLOAT(oGraphYOffset, 40),
SET_INT(oIntangibleTimer, 0), SET_INT(oIntangibleTimer, 0),
@ -3946,7 +3946,7 @@ const BehaviorScript bhvCirclingAmp[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvCirclingAmp), ID(id_bhvCirclingAmp),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_MOVE_XZ_USING_FVEL | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_MOVE_XZ_USING_FVEL | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, amp_seg8_anims_08004034), LOAD_ANIMATIONS(oAnimations, &amp_seg8_anims_08004034),
ANIMATE(0), ANIMATE(0),
SET_FLOAT(oGraphYOffset, 40), SET_FLOAT(oGraphYOffset, 40),
SET_INT(oIntangibleTimer, 0), SET_INT(oIntangibleTimer, 0),
@ -3960,7 +3960,7 @@ const BehaviorScript bhvButterfly[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvButterfly), ID(id_bhvButterfly),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, butterfly_seg3_anims_030056B0), LOAD_ANIMATIONS(oAnimations, &butterfly_seg3_anims_030056B0),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_FLOAT(oGraphYOffset, 5), SET_FLOAT(oGraphYOffset, 5),
CALL_NATIVE(bhv_butterfly_init), CALL_NATIVE(bhv_butterfly_init),
@ -3973,7 +3973,7 @@ const BehaviorScript bhvHoot[] = {
BEGIN(OBJ_LIST_POLELIKE), BEGIN(OBJ_LIST_POLELIKE),
ID(id_bhvHoot), ID(id_bhvHoot),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, hoot_seg5_anims_05005768), LOAD_ANIMATIONS(oAnimations, &hoot_seg5_anims_05005768),
SET_INT(oInteractType, INTERACT_HOOT), SET_INT(oInteractType, INTERACT_HOOT),
SET_HITBOX(/*Radius*/ 75, /*Height*/ 75), SET_HITBOX(/*Radius*/ 75, /*Height*/ 75),
CALL_NATIVE(bhv_hoot_init), CALL_NATIVE(bhv_hoot_init),
@ -4148,7 +4148,7 @@ const BehaviorScript bhvSmallBully[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvSmallBully), ID(id_bhvSmallBully),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, bully_seg5_anims_0500470C), LOAD_ANIMATIONS(oAnimations, &bully_seg5_anims_0500470C),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_HOME(), SET_HOME(),
CALL_NATIVE(bhv_small_bully_init), CALL_NATIVE(bhv_small_bully_init),
@ -4162,7 +4162,7 @@ const BehaviorScript bhvBigBully[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvBigBully), ID(id_bhvBigBully),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, bully_seg5_anims_0500470C), LOAD_ANIMATIONS(oAnimations, &bully_seg5_anims_0500470C),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_HOME(), SET_HOME(),
CALL_NATIVE(bhv_big_bully_init), CALL_NATIVE(bhv_big_bully_init),
@ -4176,7 +4176,7 @@ const BehaviorScript bhvBigBullyWithMinions[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvBigBullyWithMinions), ID(id_bhvBigBullyWithMinions),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, bully_seg5_anims_0500470C), LOAD_ANIMATIONS(oAnimations, &bully_seg5_anims_0500470C),
SET_HOME(), SET_HOME(),
CALL_NATIVE(bhv_big_bully_init), CALL_NATIVE(bhv_big_bully_init),
CALL_NATIVE(bhv_big_bully_with_minions_init), CALL_NATIVE(bhv_big_bully_with_minions_init),
@ -4189,7 +4189,7 @@ const BehaviorScript bhvSmallChillBully[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvSmallChillBully), ID(id_bhvSmallChillBully),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, chilly_chief_seg6_anims_06003994), LOAD_ANIMATIONS(oAnimations, &chilly_chief_seg6_anims_06003994),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_HOME(), SET_HOME(),
SET_INT(oBullySubtype, 0x0010), SET_INT(oBullySubtype, 0x0010),
@ -4204,7 +4204,7 @@ const BehaviorScript bhvBigChillBully[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvBigChillBully), ID(id_bhvBigChillBully),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, chilly_chief_seg6_anims_06003994), LOAD_ANIMATIONS(oAnimations, &chilly_chief_seg6_anims_06003994),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_HOME(), SET_HOME(),
SET_INT(oBullySubtype, 0x0010), SET_INT(oBullySubtype, 0x0010),
@ -4228,7 +4228,7 @@ const BehaviorScript bhvJetStreamWaterRing[] = {
BEGIN(OBJ_LIST_LEVEL), BEGIN(OBJ_LIST_LEVEL),
ID(id_bhvJetStreamWaterRing), ID(id_bhvJetStreamWaterRing),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_ANIMATIONS(oAnimations, water_ring_seg6_anims_06013F7C), LOAD_ANIMATIONS(oAnimations, &water_ring_seg6_anims_06013F7C),
SET_HITBOX_WITH_OFFSET(/*Radius*/ 75, /*Height*/ 20, /*Downwards offset*/ 20), SET_HITBOX_WITH_OFFSET(/*Radius*/ 75, /*Height*/ 20, /*Downwards offset*/ 20),
SET_INTERACT_TYPE(INTERACT_WATER_RING), SET_INTERACT_TYPE(INTERACT_WATER_RING),
SET_INT(oDamageOrCoinValue, 2), SET_INT(oDamageOrCoinValue, 2),
@ -4244,7 +4244,7 @@ const BehaviorScript bhvMantaRayWaterRing[] = {
BEGIN(OBJ_LIST_LEVEL), BEGIN(OBJ_LIST_LEVEL),
ID(id_bhvMantaRayWaterRing), ID(id_bhvMantaRayWaterRing),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_ANIMATIONS(oAnimations, water_ring_seg6_anims_06013F7C), LOAD_ANIMATIONS(oAnimations, &water_ring_seg6_anims_06013F7C),
SET_HITBOX_WITH_OFFSET(/*Radius*/ 75, /*Height*/ 20, /*Downwards offset*/ 20), SET_HITBOX_WITH_OFFSET(/*Radius*/ 75, /*Height*/ 20, /*Downwards offset*/ 20),
SET_INTERACT_TYPE(INTERACT_WATER_RING), SET_INTERACT_TYPE(INTERACT_WATER_RING),
SET_INT(oDamageOrCoinValue, 2), SET_INT(oDamageOrCoinValue, 2),
@ -4393,7 +4393,7 @@ const BehaviorScript bhvMoneybag[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvMoneybag), ID(id_bhvMoneybag),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, moneybag_seg6_anims_06005E5C), LOAD_ANIMATIONS(oAnimations, &moneybag_seg6_anims_06005E5C),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_HOME(), SET_HOME(),
SET_INT(oIntangibleTimer, -1), SET_INT(oIntangibleTimer, -1),
@ -4598,7 +4598,7 @@ const BehaviorScript bhvCastleFlagWaving[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvCastleFlagWaving), ID(id_bhvCastleFlagWaving),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_ANIMATIONS(oAnimations, castle_grounds_seg7_anims_flags), LOAD_ANIMATIONS(oAnimations, &castle_grounds_seg7_anims_flags),
ANIMATE(0), ANIMATE(0),
CALL_NATIVE(bhv_castle_flag_init), CALL_NATIVE(bhv_castle_flag_init),
BEGIN_LOOP(), BEGIN_LOOP(),
@ -5128,7 +5128,7 @@ const BehaviorScript bhvMantaRay[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvMantaRay), ID(id_bhvMantaRay),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, manta_seg5_anims_05008EB4), LOAD_ANIMATIONS(oAnimations, &manta_seg5_anims_05008EB4),
ANIMATE(0), ANIMATE(0),
CALL_NATIVE(bhv_manta_ray_init), CALL_NATIVE(bhv_manta_ray_init),
BEGIN_LOOP(), BEGIN_LOOP(),
@ -5249,7 +5249,7 @@ const BehaviorScript bhvMips[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvMips), ID(id_bhvMips),
OR_INT(oFlags, (OBJ_FLAG_HOLDABLE | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_HOLDABLE | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, mips_seg6_anims_06015634), LOAD_ANIMATIONS(oAnimations, &mips_seg6_anims_06015634),
SET_INT(oInteractType, INTERACT_GRABBABLE), SET_INT(oInteractType, INTERACT_GRABBABLE),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_HITBOX(/*Radius*/ 50, /*Height*/ 75), SET_HITBOX(/*Radius*/ 50, /*Height*/ 75),
@ -5264,7 +5264,7 @@ const BehaviorScript bhvYoshi[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvYoshi), ID(id_bhvYoshi),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, yoshi_seg5_anims_05024100), LOAD_ANIMATIONS(oAnimations, &yoshi_seg5_anims_05024100),
SET_INTERACT_TYPE(INTERACT_TEXT), SET_INTERACT_TYPE(INTERACT_TEXT),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
SET_HITBOX(/*Radius*/ 160, /*Height*/ 150), SET_HITBOX(/*Radius*/ 160, /*Height*/ 150),
@ -5282,7 +5282,7 @@ const BehaviorScript bhvKoopa[] = {
ID(id_bhvKoopa), ID(id_bhvKoopa),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, koopa_seg6_anims_06011364), LOAD_ANIMATIONS(oAnimations, &koopa_seg6_anims_06011364),
ANIMATE(9), ANIMATE(9),
SET_HOME(), SET_HOME(),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 50, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 0, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 50, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 0, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
@ -5313,7 +5313,7 @@ const BehaviorScript bhvKoopaFlag[] = {
SET_INT(oIntangibleTimer, 0), SET_INT(oIntangibleTimer, 0),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, koopa_flag_seg6_anims_06001028), LOAD_ANIMATIONS(oAnimations, &koopa_flag_seg6_anims_06001028),
ANIMATE(0), ANIMATE(0),
BEGIN_LOOP(), BEGIN_LOOP(),
CALL_NATIVE(bhv_pole_base_loop), CALL_NATIVE(bhv_pole_base_loop),
@ -5347,7 +5347,7 @@ const BehaviorScript bhvSwoop[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvSwoop), ID(id_bhvSwoop),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, swoop_seg6_anims_060070D0), LOAD_ANIMATIONS(oAnimations, &swoop_seg6_anims_060070D0),
SET_HOME(), SET_HOME(),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 50, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 50, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0),
CALL_NATIVE(bhv_init_room), CALL_NATIVE(bhv_init_room),
@ -5361,7 +5361,7 @@ const BehaviorScript bhvFlyGuy[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvFlyGuy), ID(id_bhvFlyGuy),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, flyguy_seg8_anims_08011A64), LOAD_ANIMATIONS(oAnimations, &flyguy_seg8_anims_08011A64),
ANIMATE(0), ANIMATE(0),
SET_HOME(), SET_HOME(),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 50, /*Gravity*/ 0, /*Bounciness*/ 0, /*Drag strength*/ 0, /*Friction*/ 1000, /*Buoyancy*/ 600, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 50, /*Gravity*/ 0, /*Bounciness*/ 0, /*Drag strength*/ 0, /*Friction*/ 1000, /*Buoyancy*/ 600, /*Unused*/ 0, 0),
@ -5379,7 +5379,7 @@ const BehaviorScript bhvGoomba[] = {
ID(id_bhvGoomba), ID(id_bhvGoomba),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, goomba_seg8_anims_0801DA4C), LOAD_ANIMATIONS(oAnimations, &goomba_seg8_anims_0801DA4C),
SET_HOME(), SET_HOME(),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 0, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 0, /*Unused*/ 0, 0),
CALL_NATIVE(bhv_goomba_init), CALL_NATIVE(bhv_goomba_init),
@ -5403,7 +5403,7 @@ const BehaviorScript bhvChainChomp[] = {
ID(id_bhvChainChomp), ID(id_bhvChainChomp),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, chain_chomp_seg6_anims_06025178), LOAD_ANIMATIONS(oAnimations, &chain_chomp_seg6_anims_06025178),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 0, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 0, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
HIDE(), HIDE(),
@ -5462,7 +5462,7 @@ const BehaviorScript bhvWigglerHead[] = {
ID(id_bhvWigglerHead), ID(id_bhvWigglerHead),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, wiggler_seg5_anims_0500EC8C), LOAD_ANIMATIONS(oAnimations, &wiggler_seg5_anims_0500EC8C),
SET_HOME(), SET_HOME(),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 60, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 60, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
HIDE(), HIDE(),
@ -5477,7 +5477,7 @@ const BehaviorScript bhvWigglerBody[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvWigglerBody), ID(id_bhvWigglerBody),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_ANIMATIONS(oAnimations, wiggler_seg5_anims_0500C874), LOAD_ANIMATIONS(oAnimations, &wiggler_seg5_anims_0500C874),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 0, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 0, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SCALE(/*Unused*/ 0, /*Field*/ 400), SCALE(/*Unused*/ 0, /*Field*/ 400),
BEGIN_LOOP(), BEGIN_LOOP(),
@ -5489,7 +5489,7 @@ const BehaviorScript bhvEnemyLakitu[] = {
BEGIN(OBJ_LIST_PUSHABLE), BEGIN(OBJ_LIST_PUSHABLE),
ID(id_bhvEnemyLakitu), ID(id_bhvEnemyLakitu),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, lakitu_enemy_seg5_anims_050144D4), LOAD_ANIMATIONS(oAnimations, &lakitu_enemy_seg5_anims_050144D4),
ANIMATE(0), ANIMATE(0),
SET_HOME(), SET_HOME(),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
@ -5502,7 +5502,7 @@ const BehaviorScript bhvCameraLakitu[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvCameraLakitu), ID(id_bhvCameraLakitu),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, lakitu_seg6_anims_060058F8), LOAD_ANIMATIONS(oAnimations, &lakitu_seg6_anims_060058F8),
ANIMATE(0), ANIMATE(0),
CALL_NATIVE(bhv_init_room), CALL_NATIVE(bhv_init_room),
CALL_NATIVE(bhv_camera_lakitu_init), CALL_NATIVE(bhv_camera_lakitu_init),
@ -5537,7 +5537,7 @@ const BehaviorScript bhvSpiny[] = {
BEGIN(OBJ_LIST_PUSHABLE), BEGIN(OBJ_LIST_PUSHABLE),
ID(id_bhvSpiny), ID(id_bhvSpiny),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, spiny_seg5_anims_05016EAC), LOAD_ANIMATIONS(oAnimations, &spiny_seg5_anims_05016EAC),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
BEGIN_LOOP(), BEGIN_LOOP(),
@ -5550,7 +5550,7 @@ const BehaviorScript bhvMontyMole[] = {
ID(id_bhvMontyMole), ID(id_bhvMontyMole),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, monty_mole_seg5_anims_05007248), LOAD_ANIMATIONS(oAnimations, &monty_mole_seg5_anims_05007248),
ANIMATE(3), ANIMATE(3),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
HIDE(), HIDE(),
@ -5801,7 +5801,7 @@ const BehaviorScript bhvMrBlizzard[] = {
ID(id_bhvMrBlizzard), ID(id_bhvMrBlizzard),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, snowman_seg5_anims_0500D118), LOAD_ANIMATIONS(oAnimations, &snowman_seg5_anims_0500D118),
ANIMATE(0), ANIMATE(0),
SET_HOME(), SET_HOME(),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
@ -5906,7 +5906,7 @@ const BehaviorScript bhvUnagi[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvUnagi), ID(id_bhvUnagi),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, unagi_seg5_anims_05012824), LOAD_ANIMATIONS(oAnimations, &unagi_seg5_anims_05012824),
ANIMATE(6), ANIMATE(6),
SET_HOME(), SET_HOME(),
SCALE(/*Unused*/ 0, /*Field*/ 300), SCALE(/*Unused*/ 0, /*Field*/ 300),
@ -5931,7 +5931,7 @@ const BehaviorScript bhvDorrie[] = {
ID(id_bhvDorrie), ID(id_bhvDorrie),
LOAD_COLLISION_DATA(dorrie_seg6_collision_0600F644), LOAD_COLLISION_DATA(dorrie_seg6_collision_0600F644),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, dorrie_seg6_anims_0600F638), LOAD_ANIMATIONS(oAnimations, &dorrie_seg6_anims_0600F638),
SET_HOME(), SET_HOME(),
SET_FLOAT(oCollisionDistance, 30000), SET_FLOAT(oCollisionDistance, 30000),
ADD_FLOAT(oPosX, 2000), ADD_FLOAT(oPosX, 2000),
@ -5947,7 +5947,7 @@ const BehaviorScript bhvHauntedChair[] = {
ID(id_bhvHauntedChair), ID(id_bhvHauntedChair),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, chair_seg5_anims_05005784), LOAD_ANIMATIONS(oAnimations, &chair_seg5_anims_05005784),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SET_HOME(), SET_HOME(),
@ -5963,7 +5963,7 @@ const BehaviorScript bhvMadPiano[] = {
ID(id_bhvMadPiano), ID(id_bhvMadPiano),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, mad_piano_seg5_anims_05009B14), LOAD_ANIMATIONS(oAnimations, &mad_piano_seg5_anims_05009B14),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SET_HOME(), SET_HOME(),
ADD_INT(oMoveAngleYaw, 0x4000), ADD_INT(oMoveAngleYaw, 0x4000),
@ -5977,7 +5977,7 @@ const BehaviorScript bhvFlyingBookend[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvFlyingBookend), ID(id_bhvFlyingBookend),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, bookend_seg5_anims_05002540), LOAD_ANIMATIONS(oAnimations, &bookend_seg5_anims_05002540),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 60, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 60, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SET_INT(oMoveFlags, 0), SET_INT(oMoveFlags, 0),
@ -6026,7 +6026,7 @@ const BehaviorScript bhvFirePiranhaPlant[] = {
ID(id_bhvFirePiranhaPlant), ID(id_bhvFirePiranhaPlant),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, piranha_plant_seg6_anims_0601C31C), LOAD_ANIMATIONS(oAnimations, &piranha_plant_seg6_anims_0601C31C),
ANIMATE(0), ANIMATE(0),
SET_HOME(), SET_HOME(),
HIDE(), HIDE(),
@ -6130,7 +6130,7 @@ const BehaviorScript bhvEyerokHand[] = {
BEGIN(OBJ_LIST_SURFACE), BEGIN(OBJ_LIST_SURFACE),
ID(id_bhvEyerokHand), ID(id_bhvEyerokHand),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, eyerok_seg5_anims_050116E4), LOAD_ANIMATIONS(oAnimations, &eyerok_seg5_anims_050116E4),
ANIMATE(6), ANIMATE(6),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 150, /*Gravity*/ 0, /*Bounciness*/ 0, /*Drag strength*/ 0, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 150, /*Gravity*/ 0, /*Bounciness*/ 0, /*Drag strength*/ 0, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SET_HOME(), SET_HOME(),
@ -6144,7 +6144,7 @@ const BehaviorScript bhvKlepto[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvKlepto), ID(id_bhvKlepto),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, klepto_seg5_anims_05008CFC), LOAD_ANIMATIONS(oAnimations, &klepto_seg5_anims_05008CFC),
ANIMATE(0), ANIMATE(0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 100, /*Gravity*/ 0, /*Bounciness*/ -20, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 100, /*Gravity*/ 0, /*Bounciness*/ -20, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0),
SET_HOME(), SET_HOME(),
@ -6158,7 +6158,7 @@ const BehaviorScript bhvBird[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvBird), ID(id_bhvBird),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, birds_seg5_anims_050009E8), LOAD_ANIMATIONS(oAnimations, &birds_seg5_anims_050009E8),
ANIMATE(0), ANIMATE(0),
HIDE(), HIDE(),
SCALE(/*Unused*/ 0, /*Field*/ 70), SCALE(/*Unused*/ 0, /*Field*/ 70),
@ -6171,7 +6171,7 @@ const BehaviorScript bhvRacingPenguin[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvRacingPenguin), ID(id_bhvRacingPenguin),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, penguin_seg5_anims_05008B74), LOAD_ANIMATIONS(oAnimations, &penguin_seg5_anims_05008B74),
ANIMATE(3), ANIMATE(3),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 300, /*Gravity*/ -800, /*Bounciness*/ -5, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 300, /*Gravity*/ -800, /*Bounciness*/ -5, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0),
SCALE(/*Unused*/ 0, /*Field*/ 400), SCALE(/*Unused*/ 0, /*Field*/ 400),
@ -6226,7 +6226,7 @@ const BehaviorScript bhvClamShell[] = {
ID(id_bhvClamShell), ID(id_bhvClamShell),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
DROP_TO_FLOOR(), DROP_TO_FLOOR(),
LOAD_ANIMATIONS(oAnimations, clam_shell_seg5_anims_05001744), LOAD_ANIMATIONS(oAnimations, &clam_shell_seg5_anims_05001744),
SET_FLOAT(oGraphYOffset, 10), SET_FLOAT(oGraphYOffset, 10),
BEGIN_LOOP(), BEGIN_LOOP(),
CALL_NATIVE(bhv_clam_loop), CALL_NATIVE(bhv_clam_loop),
@ -6237,7 +6237,7 @@ const BehaviorScript bhvSkeeter[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvSkeeter), ID(id_bhvSkeeter),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, skeeter_seg6_anims_06007DE0), LOAD_ANIMATIONS(oAnimations, &skeeter_seg6_anims_06007DE0),
SET_HOME(), SET_HOME(),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 180, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 1200, /*Unused*/ 0, 0), SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 180, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 1200, /*Unused*/ 0, 0),
BEGIN_LOOP(), BEGIN_LOOP(),
@ -6320,7 +6320,7 @@ const BehaviorScript bhvTripletButterfly[] = {
BEGIN(OBJ_LIST_GENACTOR), BEGIN(OBJ_LIST_GENACTOR),
ID(id_bhvTripletButterfly), ID(id_bhvTripletButterfly),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, butterfly_seg3_anims_030056B0), LOAD_ANIMATIONS(oAnimations, &butterfly_seg3_anims_030056B0),
ANIMATE(0), ANIMATE(0),
HIDE(), HIDE(),
SET_HOME(), SET_HOME(),
@ -6347,7 +6347,7 @@ const BehaviorScript bhvBeginningLakitu[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvBeginningLakitu), ID(id_bhvBeginningLakitu),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_ANIMATIONS(oAnimations, lakitu_seg6_anims_060058F8), LOAD_ANIMATIONS(oAnimations, &lakitu_seg6_anims_060058F8),
ANIMATE(0), ANIMATE(0),
SET_FLOAT(oOpacity, 0), SET_FLOAT(oOpacity, 0),
BEGIN_LOOP(), BEGIN_LOOP(),
@ -6359,7 +6359,7 @@ const BehaviorScript bhvBeginningPeach[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvBeginningPeach), ID(id_bhvBeginningPeach),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_ANIMATIONS(oAnimations, peach_seg5_anims_0501C41C), LOAD_ANIMATIONS(oAnimations, &peach_seg5_anims_0501C41C),
ANIMATE(0), ANIMATE(0),
BEGIN_LOOP(), BEGIN_LOOP(),
CALL_NATIVE(bhv_intro_peach_loop), CALL_NATIVE(bhv_intro_peach_loop),
@ -6370,7 +6370,7 @@ const BehaviorScript bhvEndBirds1[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvEndBirds1), ID(id_bhvEndBirds1),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, birds_seg5_anims_050009E8), LOAD_ANIMATIONS(oAnimations, &birds_seg5_anims_050009E8),
ANIMATE(0), ANIMATE(0),
BEGIN_LOOP(), BEGIN_LOOP(),
CALL_NATIVE(bhv_end_birds_1_loop), CALL_NATIVE(bhv_end_birds_1_loop),
@ -6381,7 +6381,7 @@ const BehaviorScript bhvEndBirds2[] = {
BEGIN(OBJ_LIST_DEFAULT), BEGIN(OBJ_LIST_DEFAULT),
ID(id_bhvEndBirds2), ID(id_bhvEndBirds2),
OR_INT(oFlags, (OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), OR_INT(oFlags, (OBJ_FLAG_SET_FACE_ANGLE_TO_MOVE_ANGLE | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, birds_seg5_anims_050009E8), LOAD_ANIMATIONS(oAnimations, &birds_seg5_anims_050009E8),
ANIMATE(0), ANIMATE(0),
BEGIN_LOOP(), BEGIN_LOOP(),
CALL_NATIVE(bhv_end_birds_2_loop), CALL_NATIVE(bhv_end_birds_2_loop),

View file

@ -29,8 +29,9 @@ static s32 RetrieveCurrentAnimationIndex(struct Object *aObject) {
if (!aObject->oAnimations || !aObject->header.gfx.animInfo.curAnim || smlua_anim_util_get_current_animation_name(aObject)) { if (!aObject->oAnimations || !aObject->header.gfx.animInfo.curAnim || smlua_anim_util_get_current_animation_name(aObject)) {
return -1; return -1;
} }
for (s32 i = 0; aObject->oAnimations[i] != NULL; ++i) { struct AnimationTable* animations = aObject->oAnimations;
if (aObject->oAnimations[i] == aObject->header.gfx.animInfo.curAnim) { for (s32 i = 0; i < animations->count; ++i) {
if (animations->anims[i] == aObject->header.gfx.animInfo.curAnim) {
return i; return i;
} }
} }

View file

@ -88,6 +88,7 @@ extern "C" {
} }
#define define_builtin(_ptr) (const void*)#_ptr, (const void*)_ptr #define define_builtin(_ptr) (const void*)#_ptr, (const void*)_ptr
#define define_builtin_ptr(_ptr) (const void*)#_ptr, (const void*)&_ptr
#define define_animation_builtin(_ptr) (const void*)#_ptr, (const void*)_ptr #define define_animation_builtin(_ptr) (const void*)#_ptr, (const void*)_ptr
@ -1206,61 +1207,61 @@ const char* DynOS_Builtin_Col_GetFromData(const Collision* aData) {
//////////////// ////////////////
static const void* sDynosBuiltinAnims[] = { static const void* sDynosBuiltinAnims[] = {
define_builtin(amp_seg8_anims_08004034), define_builtin_ptr(amp_seg8_anims_08004034),
define_builtin(bobomb_seg8_anims_0802396C), define_builtin_ptr(bobomb_seg8_anims_0802396C),
define_builtin(chuckya_seg8_anims_0800C070), define_builtin_ptr(chuckya_seg8_anims_0800C070),
define_builtin(flyguy_seg8_anims_08011A64), define_builtin_ptr(flyguy_seg8_anims_08011A64),
define_builtin(goomba_seg8_anims_0801DA4C), define_builtin_ptr(goomba_seg8_anims_0801DA4C),
define_builtin(blue_fish_seg3_anims_0301C2B0), define_builtin_ptr(blue_fish_seg3_anims_0301C2B0),
define_builtin(bowser_key_seg3_anims_list), define_builtin_ptr(bowser_key_seg3_anims_list),
define_builtin(butterfly_seg3_anims_030056B0), define_builtin_ptr(butterfly_seg3_anims_030056B0),
define_builtin(door_seg3_anims_030156C0), define_builtin_ptr(door_seg3_anims_030156C0),
define_builtin(heave_ho_seg5_anims_0501534C), define_builtin_ptr(heave_ho_seg5_anims_0501534C),
define_builtin(hoot_seg5_anims_05005768), define_builtin_ptr(hoot_seg5_anims_05005768),
define_builtin(blargg_seg5_anims_0500616C), define_builtin_ptr(blargg_seg5_anims_0500616C),
define_builtin(bully_seg5_anims_0500470C), define_builtin_ptr(bully_seg5_anims_0500470C),
define_builtin(king_bobomb_seg5_anims_0500FE30), define_builtin_ptr(king_bobomb_seg5_anims_0500FE30),
define_builtin(clam_shell_seg5_anims_05001744), define_builtin_ptr(clam_shell_seg5_anims_05001744),
define_builtin(manta_seg5_anims_05008EB4), define_builtin_ptr(manta_seg5_anims_05008EB4),
define_builtin(sushi_seg5_anims_0500AE54), define_builtin_ptr(sushi_seg5_anims_0500AE54),
define_builtin(unagi_seg5_anims_05012824), define_builtin_ptr(unagi_seg5_anims_05012824),
define_builtin(eyerok_seg5_anims_050116E4), define_builtin_ptr(eyerok_seg5_anims_050116E4),
define_builtin(klepto_seg5_anims_05008CFC), define_builtin_ptr(klepto_seg5_anims_05008CFC),
define_builtin(monty_mole_seg5_anims_05007248), define_builtin_ptr(monty_mole_seg5_anims_05007248),
define_builtin(ukiki_seg5_anims_05015784), define_builtin_ptr(ukiki_seg5_anims_05015784),
define_builtin(penguin_seg5_anims_05008B74), define_builtin_ptr(penguin_seg5_anims_05008B74),
define_builtin(snowman_seg5_anims_0500D118), define_builtin_ptr(snowman_seg5_anims_0500D118),
define_builtin(spindrift_seg5_anims_05002D68), define_builtin_ptr(spindrift_seg5_anims_05002D68),
define_builtin(bookend_seg5_anims_05002540), define_builtin_ptr(bookend_seg5_anims_05002540),
define_builtin(chair_seg5_anims_05005784), define_builtin_ptr(chair_seg5_anims_05005784),
define_builtin(mad_piano_seg5_anims_05009B14), define_builtin_ptr(mad_piano_seg5_anims_05009B14),
define_builtin(birds_seg5_anims_050009E8), define_builtin_ptr(birds_seg5_anims_050009E8),
define_builtin(peach_seg5_anims_0501C41C), define_builtin_ptr(peach_seg5_anims_0501C41C),
define_builtin(yoshi_seg5_anims_05024100), define_builtin_ptr(yoshi_seg5_anims_05024100),
define_builtin(lakitu_enemy_seg5_anims_050144D4), define_builtin_ptr(lakitu_enemy_seg5_anims_050144D4),
define_builtin(spiny_seg5_anims_05016EAC), define_builtin_ptr(spiny_seg5_anims_05016EAC),
define_builtin(spiny_egg_seg5_anims_050157E4), define_builtin_ptr(spiny_egg_seg5_anims_050157E4),
define_builtin(wiggler_seg5_anims_0500C874), define_builtin_ptr(wiggler_seg5_anims_0500C874),
define_builtin(wiggler_seg5_anims_0500EC8C), define_builtin_ptr(wiggler_seg5_anims_0500EC8C),
define_builtin(bowser_seg6_anims_06057690), define_builtin_ptr(bowser_seg6_anims_06057690),
define_builtin(bub_seg6_anims_06012354), define_builtin_ptr(bub_seg6_anims_06012354),
define_builtin(cyan_fish_seg6_anims_0600E264), define_builtin_ptr(cyan_fish_seg6_anims_0600E264),
define_builtin(seaweed_seg6_anims_0600A4D4), define_builtin_ptr(seaweed_seg6_anims_0600A4D4),
define_builtin(skeeter_seg6_anims_06007DE0), define_builtin_ptr(skeeter_seg6_anims_06007DE0),
define_builtin(water_ring_seg6_anims_06013F7C), define_builtin_ptr(water_ring_seg6_anims_06013F7C),
define_builtin(chain_chomp_seg6_anims_06025178), define_builtin_ptr(chain_chomp_seg6_anims_06025178),
define_builtin(koopa_seg6_anims_06011364), define_builtin_ptr(koopa_seg6_anims_06011364),
define_builtin(koopa_flag_seg6_anims_06001028), define_builtin_ptr(koopa_flag_seg6_anims_06001028),
define_builtin(piranha_plant_seg6_anims_0601C31C), define_builtin_ptr(piranha_plant_seg6_anims_0601C31C),
define_builtin(whomp_seg6_anims_06020A04), define_builtin_ptr(whomp_seg6_anims_06020A04),
define_builtin(lakitu_seg6_anims_060058F8), define_builtin_ptr(lakitu_seg6_anims_060058F8),
define_builtin(mips_seg6_anims_06015634), define_builtin_ptr(mips_seg6_anims_06015634),
define_builtin(toad_seg6_anims_0600FB58), define_builtin_ptr(toad_seg6_anims_0600FB58),
define_builtin(chilly_chief_seg6_anims_06003994), define_builtin_ptr(chilly_chief_seg6_anims_06003994),
define_builtin(moneybag_seg6_anims_06005E5C), define_builtin_ptr(moneybag_seg6_anims_06005E5C),
define_builtin(dorrie_seg6_anims_0600F638), define_builtin_ptr(dorrie_seg6_anims_0600F638),
define_builtin(scuttlebug_seg6_anims_06015064), define_builtin_ptr(scuttlebug_seg6_anims_06015064),
define_builtin(swoop_seg6_anims_060070D0), define_builtin_ptr(swoop_seg6_anims_060070D0),
}; };
const Animation *DynOS_Builtin_Anim_GetFromName(const char *aDataName) { const Animation *DynOS_Builtin_Anim_GetFromName(const char *aDataName) {

View file

@ -3,6 +3,7 @@
# Supported Structs # Supported Structs
- [AnimInfo](#AnimInfo) - [AnimInfo](#AnimInfo)
- [Animation](#Animation) - [Animation](#Animation)
- [AnimationTable](#AnimationTable)
- [Area](#Area) - [Area](#Area)
- [BassAudio](#BassAudio) - [BassAudio](#BassAudio)
- [BehaviorDialogs](#BehaviorDialogs) - [BehaviorDialogs](#BehaviorDialogs)
@ -107,7 +108,7 @@
| animYTransDivisor | `integer` | | | animYTransDivisor | `integer` | |
| flags | `integer` | | | flags | `integer` | |
| index | `Pointer` <`integer`> | | | index | `Pointer` <`integer`> | |
| length | `integer` | | | length | `integer` | read-only |
| loopEnd | `integer` | | | loopEnd | `integer` | |
| loopStart | `integer` | | | loopStart | `integer` | |
| startFrame | `integer` | | | startFrame | `integer` | |
@ -118,6 +119,16 @@
<br /> <br />
## [AnimationTable](#AnimationTable)
| Field | Type | Access |
| ----- | ---- | ------ |
| count | `integer` | read-only |
[:arrow_up_small:](#)
<br />
## [Area](#Area) ## [Area](#Area)
| Field | Type | Access | | Field | Type | Access |

View file

@ -105,6 +105,11 @@ struct Animation {
/*0x14*/ u32 length; // only used with Mario animations to determine how much to load. 0 otherwise. /*0x14*/ u32 length; // only used with Mario animations to determine how much to load. 0 otherwise.
}; };
struct AnimationTable {
u32 count;
const struct Animation* const anims[];
};
#define ANIMINDEX_NUMPARTS(animindex) (sizeof(animindex) / sizeof(u16) / 6 - 1) #define ANIMINDEX_NUMPARTS(animindex) (sizeof(animindex) / sizeof(u16) / 6 - 1)
struct GraphNode struct GraphNode
@ -195,7 +200,7 @@ struct Object
union { union {
s16 *asS16P[0x50]; s16 *asS16P[0x50];
s32 *asS32P[0x50]; s32 *asS32P[0x50];
struct Animation **asAnims[0x50]; struct AnimationTable *asAnims[0x50];
struct Waypoint *asWaypoint[0x50]; struct Waypoint *asWaypoint[0x50];
struct ChainSegment *asChainSegment[0x50]; struct ChainSegment *asChainSegment[0x50];
struct Object *asObject[0x50]; struct Object *asObject[0x50];

View file

@ -36,6 +36,9 @@ static const struct Animation castle_grounds_seg7_anim_flags = {
}; };
// 0x0700C95C - 0x0700C960 // 0x0700C95C - 0x0700C960
const struct Animation *const castle_grounds_seg7_anims_flags[] = { const struct AnimationTable castle_grounds_seg7_anims_flags = {
&castle_grounds_seg7_anim_flags, // 0x0700C944 .anims = {
&castle_grounds_seg7_anim_flags, // 0x0700C944
},
.count = 1
}; };

View file

@ -27,7 +27,7 @@ extern const Gfx castle_grounds_seg7_dl_0700C6A8[];
extern const Gfx castle_grounds_seg7_dl_0700C6E8[]; extern const Gfx castle_grounds_seg7_dl_0700C6E8[];
extern const Gfx castle_grounds_seg7_dl_0700C728[]; extern const Gfx castle_grounds_seg7_dl_0700C728[];
extern const Gfx castle_grounds_seg7_dl_0700C768[]; extern const Gfx castle_grounds_seg7_dl_0700C768[];
extern const struct Animation *const castle_grounds_seg7_anims_flags[]; extern const struct AnimationTable castle_grounds_seg7_anims_flags;
extern const Gfx castle_grounds_seg7_dl_0700EA58[]; extern const Gfx castle_grounds_seg7_dl_0700EA58[];
extern const Gfx castle_grounds_seg7_us_dl_0700F2E8[]; extern const Gfx castle_grounds_seg7_us_dl_0700F2E8[];
extern const Collision castle_grounds_seg7_collision_level[]; extern const Collision castle_grounds_seg7_collision_level[];

View file

@ -585,9 +585,11 @@ static s32 bhv_cmd_load_animations(void) {
// Usage: ANIMATE(animIndex) // Usage: ANIMATE(animIndex)
static s32 bhv_cmd_animate(void) { static s32 bhv_cmd_animate(void) {
s32 animIndex = BHV_CMD_GET_2ND_U8(0); s32 animIndex = BHV_CMD_GET_2ND_U8(0);
struct Animation **animations = gCurrentObject->oAnimations; struct AnimationTable *animations = gCurrentObject->oAnimations;
geo_obj_init_animation(&gCurrentObject->header.gfx, &animations[animIndex]); if (animations && (u32)animIndex < animations->count) {
geo_obj_init_animation(&gCurrentObject->header.gfx, (struct Animation*)animations->anims[animIndex]);
}
gCurBhvCommand++; gCurBhvCommand++;
return BHV_PROC_CONTINUE; return BHV_PROC_CONTINUE;

View file

@ -775,16 +775,12 @@ void geo_obj_init_spawninfo(struct GraphNodeObject *graphNode, struct SpawnInfo
/** /**
* Initialize the animation of an object node * Initialize the animation of an object node
*/ */
void geo_obj_init_animation(struct GraphNodeObject *graphNode, struct Animation **animPtrAddr) { void geo_obj_init_animation(struct GraphNodeObject *graphNode, const struct Animation * const anim) {
if (graphNode == NULL) { return; } if (!graphNode) { return; }
if (animPtrAddr == NULL) { return; } if (!anim) { return; }
if (*animPtrAddr == NULL) { return; }
struct Animation **animSegmented = segmented_to_virtual(animPtrAddr);
struct Animation *anim = segmented_to_virtual(*animSegmented);
if (graphNode->animInfo.curAnim != anim) { if (graphNode->animInfo.curAnim != anim) {
graphNode->animInfo.curAnim = anim; graphNode->animInfo.curAnim = (struct Animation*)anim;
graphNode->animInfo.animFrame = anim->startFrame + ((anim->flags & ANIM_FLAG_FORWARD) ? 1 : -1); graphNode->animInfo.animFrame = anim->startFrame + ((anim->flags & ANIM_FLAG_FORWARD) ? 1 : -1);
graphNode->animInfo.animAccel = 0; graphNode->animInfo.animAccel = 0;
graphNode->animInfo.animYTrans = 0; graphNode->animInfo.animYTrans = 0;
@ -794,16 +790,12 @@ void geo_obj_init_animation(struct GraphNodeObject *graphNode, struct Animation
/** /**
* Initialize the animation of an object node * Initialize the animation of an object node
*/ */
void geo_obj_init_animation_accel(struct GraphNodeObject *graphNode, struct Animation **animPtrAddr, u32 animAccel) { void geo_obj_init_animation_accel(struct GraphNodeObject *graphNode, const struct Animation * const anim, u32 animAccel) {
if (graphNode == NULL) { return; } if (!graphNode) { return; }
if (animPtrAddr == NULL) { return; } if (!anim) { return; }
if (*animPtrAddr == NULL) { return; }
struct Animation **animSegmented = segmented_to_virtual(animPtrAddr);
struct Animation *anim = segmented_to_virtual(*animSegmented);
if (graphNode->animInfo.curAnim != anim) { if (graphNode->animInfo.curAnim != anim) {
graphNode->animInfo.curAnim = anim; graphNode->animInfo.curAnim = (struct Animation*)anim;
graphNode->animInfo.animYTrans = 0; graphNode->animInfo.animYTrans = 0;
graphNode->animInfo.animFrameAccelAssist = graphNode->animInfo.animFrameAccelAssist =
(anim->startFrame << 16) + ((anim->flags & ANIM_FLAG_FORWARD) ? animAccel : -animAccel); (anim->startFrame << 16) + ((anim->flags & ANIM_FLAG_FORWARD) ? animAccel : -animAccel);

View file

@ -438,8 +438,8 @@ void geo_call_global_function_nodes(struct GraphNode *graphNode, s32 callContext
void geo_reset_object_node(struct GraphNodeObject *graphNode); void geo_reset_object_node(struct GraphNodeObject *graphNode);
void geo_obj_init(struct GraphNodeObject *graphNode, void *sharedChild, Vec3f pos, Vec3s angle); void geo_obj_init(struct GraphNodeObject *graphNode, void *sharedChild, Vec3f pos, Vec3s angle);
void geo_obj_init_spawninfo(struct GraphNodeObject *graphNode, struct SpawnInfo *spawn); void geo_obj_init_spawninfo(struct GraphNodeObject *graphNode, struct SpawnInfo *spawn);
void geo_obj_init_animation(struct GraphNodeObject *graphNode, struct Animation **animPtrAddr); void geo_obj_init_animation(struct GraphNodeObject *graphNode, const struct Animation * const anim);
void geo_obj_init_animation_accel(struct GraphNodeObject *graphNode, struct Animation **animPtrAddr, u32 animAccel); void geo_obj_init_animation_accel(struct GraphNodeObject *graphNode, const struct Animation * const anim, u32 animAccel);
s32 retrieve_animation_index(s32 frame, u16 **attributes); s32 retrieve_animation_index(s32 frame, u16 **attributes);

View file

@ -1287,11 +1287,13 @@ void bhv_bowser_loop(void) {
s32 angleToPlayer = player ? obj_angle_to_object(o, player) : 0; s32 angleToPlayer = player ? obj_angle_to_object(o, player) : 0;
// look for animation difference and override // look for animation difference and override
struct AnimationTable *animations = o->oAnimations;
struct Animation* anim = NULL; struct Animation* anim = NULL;
if (o->oAnimations != NULL && networkBowserAnimationIndex <= 26) { if (animations && networkBowserAnimationIndex < animations->count) {
anim = o->oAnimations[networkBowserAnimationIndex]; anim = (struct Animation*)animations->anims[networkBowserAnimationIndex];
if (anim != NULL && o->header.gfx.animInfo.curAnim != anim) { if (o->header.gfx.animInfo.curAnim != anim) {
geo_obj_init_animation(&o->header.gfx, &anim); geo_obj_init_animation(&o->header.gfx, anim);
} }
} }
@ -1345,11 +1347,13 @@ void bhv_bowser_loop(void) {
} }
// update animation index // update animation index
anim = o->oAnimations[networkBowserAnimationIndex]; if (animations) {
if (o->header.gfx.animInfo.curAnim != anim) { anim = (struct Animation*)animations->anims[networkBowserAnimationIndex];
for (s32 i = 0; i < 32; i++) { if (o->header.gfx.animInfo.curAnim != anim) {
if (o->header.gfx.animInfo.curAnim == o->oAnimations[i]) { for (u32 i = 0; i < animations->count; i++) {
networkBowserAnimationIndex = i; if (o->header.gfx.animInfo.curAnim == o->oAnimations->anims[i]) {
networkBowserAnimationIndex = i;
}
} }
} }
} }

View file

@ -127,7 +127,7 @@ static void enemy_lakitu_sub_act_no_spiny(void) {
if (spiny != NULL) { if (spiny != NULL) {
o->prevObj = spiny; o->prevObj = spiny;
spiny->oAction = SPINY_ACT_HELD_BY_LAKITU; spiny->oAction = SPINY_ACT_HELD_BY_LAKITU;
obj_init_animation_with_sound(spiny, spiny_egg_seg5_anims_050157E4, 0); obj_init_animation_with_sound(spiny, &spiny_egg_seg5_anims_050157E4, 0);
o->oEnemyLakituNumSpinies += 1; o->oEnemyLakituNumSpinies += 1;
o->oSubAction = ENEMY_LAKITU_SUB_ACT_HOLD_SPINY; o->oSubAction = ENEMY_LAKITU_SUB_ACT_HOLD_SPINY;

View file

@ -11,26 +11,26 @@ static void fish_spawner_act_spawn(void) {
s32 i = 0; s32 i = 0;
s32 schoolQuantity = 0; s32 schoolQuantity = 0;
s16 model = MODEL_ERROR_MODEL; s16 model = MODEL_ERROR_MODEL;
const struct Animation * const *fishAnimation = NULL; const struct AnimationTable* fishAnimation = NULL;
struct Object *fishObject; struct Object *fishObject;
switch (o->oBehParams2ndByte) { switch (o->oBehParams2ndByte) {
// Cases need to be on one line to match with and without optimizations. // Cases need to be on one line to match with and without optimizations.
case FISH_SPAWNER_BP_MANY_BLUE: case FISH_SPAWNER_BP_MANY_BLUE:
model = MODEL_FISH; schoolQuantity = 20; fishAnimation = blue_fish_seg3_anims_0301C2B0; model = MODEL_FISH; schoolQuantity = 20; fishAnimation = &blue_fish_seg3_anims_0301C2B0;
break; break;
case FISH_SPAWNER_BP_FEW_BLUE: case FISH_SPAWNER_BP_FEW_BLUE:
model = MODEL_FISH; schoolQuantity = 5; fishAnimation = blue_fish_seg3_anims_0301C2B0; model = MODEL_FISH; schoolQuantity = 5; fishAnimation = &blue_fish_seg3_anims_0301C2B0;
break; break;
case FISH_SPAWNER_BP_MANY_CYAN: case FISH_SPAWNER_BP_MANY_CYAN:
model = MODEL_CYAN_FISH; schoolQuantity = 20; fishAnimation = cyan_fish_seg6_anims_0600E264; model = MODEL_CYAN_FISH; schoolQuantity = 20; fishAnimation = &cyan_fish_seg6_anims_0600E264;
break; break;
case FISH_SPAWNER_BP_FEW_CYAN: case FISH_SPAWNER_BP_FEW_CYAN:
model = MODEL_CYAN_FISH; schoolQuantity = 5; fishAnimation = cyan_fish_seg6_anims_0600E264; model = MODEL_CYAN_FISH; schoolQuantity = 5; fishAnimation = &cyan_fish_seg6_anims_0600E264;
break; break;
} }
@ -41,7 +41,7 @@ static void fish_spawner_act_spawn(void) {
fishObject = spawn_object(o, model, bhvFish); fishObject = spawn_object(o, model, bhvFish);
if (fishObject == NULL) { continue; } if (fishObject == NULL) { continue; }
fishObject->oBehParams2ndByte = o->oBehParams2ndByte; fishObject->oBehParams2ndByte = o->oBehParams2ndByte;
obj_init_animation_with_sound(fishObject, fishAnimation, 0); obj_init_animation_with_sound(fishObject, (struct AnimationTable*)fishAnimation, 0);
obj_translate_xyz_random(fishObject, 700.0f); obj_translate_xyz_random(fishObject, 700.0f);
} }
o->oAction = FISH_SPAWNER_ACT_IDLE; o->oAction = FISH_SPAWNER_ACT_IDLE;

View file

@ -36,28 +36,28 @@ static u8 sSpinyWalkAttackHandlers[] = {
static u32 spinyAnimCache = 0; static u32 spinyAnimCache = 0;
static void spiny_to_anim_cache(void) { static void spiny_to_anim_cache(void) {
if (o->oAnimations == (struct Animation**)spiny_egg_seg5_anims_050157E4) { if (o->oAnimations == &spiny_egg_seg5_anims_050157E4) {
spinyAnimCache = 0; spinyAnimCache = 0;
} else if (o->oAnimations == (struct Animation**)spiny_seg5_anims_05016EAC) { } else if (o->oAnimations == &spiny_seg5_anims_05016EAC) {
spinyAnimCache = 1; spinyAnimCache = 1;
} }
} }
static void spiny_from_anim_cache(void) { static void spiny_from_anim_cache(void) {
struct Animation** anim = NULL; struct AnimationTable* anim = NULL;
switch (spinyAnimCache) { switch (spinyAnimCache) {
case 0: case 0:
anim = (struct Animation**)spiny_egg_seg5_anims_050157E4; anim = (struct AnimationTable*)&spiny_egg_seg5_anims_050157E4;
break; break;
case 1: case 1:
anim = (struct Animation**)spiny_seg5_anims_05016EAC; anim = (struct AnimationTable*)&spiny_seg5_anims_05016EAC;
break; break;
default: default:
break; break;
} }
if (anim != o->oAnimations) { if (anim != o->oAnimations) {
obj_init_animation_with_sound(o, (const struct Animation* const*)anim, 0); obj_init_animation_with_sound(o, anim, 0);
} }
} }
@ -203,7 +203,7 @@ static void spiny_act_thrown_by_lakitu(void) {
if (o->oMoveFlags & OBJ_MOVE_LANDED) { if (o->oMoveFlags & OBJ_MOVE_LANDED) {
cur_obj_play_sound_2(SOUND_OBJ_SPINY_UNK59); cur_obj_play_sound_2(SOUND_OBJ_SPINY_UNK59);
cur_obj_set_model(smlua_model_util_load(E_MODEL_SPINY)); cur_obj_set_model(smlua_model_util_load(E_MODEL_SPINY));
obj_init_animation_with_sound(o, spiny_seg5_anims_05016EAC, 0); obj_init_animation_with_sound(o, (struct AnimationTable*)&spiny_seg5_anims_05016EAC, 0);
o->oGraphYOffset = -17.0f; o->oGraphYOffset = -17.0f;
o->oFaceAnglePitch = 0; o->oFaceAnglePitch = 0;
@ -259,7 +259,7 @@ void bhv_spiny_update(void) {
if ((lakitu->oSubAction == ENEMY_LAKITU_SUB_ACT_HOLD_SPINY) && (o->oAction == SPINY_ACT_HELD_BY_LAKITU)) { if ((lakitu->oSubAction == ENEMY_LAKITU_SUB_ACT_HOLD_SPINY) && (o->oAction == SPINY_ACT_HELD_BY_LAKITU)) {
lakitu->prevObj = o; lakitu->prevObj = o;
o->oAction = SPINY_ACT_HELD_BY_LAKITU; o->oAction = SPINY_ACT_HELD_BY_LAKITU;
obj_init_animation_with_sound(o, spiny_egg_seg5_anims_050157E4, 0); obj_init_animation_with_sound(o, (struct AnimationTable*)&spiny_egg_seg5_anims_050157E4, 0);
} }
} }
} }

View file

@ -123,7 +123,7 @@ void bhv_shallow_water_splash_init(void) {
{ {
fishObj = spawn_water_droplet(o, &sWaterDropletFishParams); fishObj = spawn_water_droplet(o, &sWaterDropletFishParams);
if (fishObj != NULL) { if (fishObj != NULL) {
obj_init_animation_with_sound(fishObj, blue_fish_seg3_anims_0301C2B0, 0); obj_init_animation_with_sound(fishObj, &blue_fish_seg3_anims_0301C2B0, 0);
} }
} }
} }

View file

@ -151,7 +151,7 @@ void wiggler_init_segments(void) {
for (s32 i = 1; i <= 3; i++) { for (s32 i = 1; i <= 3; i++) {
struct Object *bodyPart = spawn_object_relative(i, 0, 0, 0, o, MODEL_WIGGLER_BODY, bhvWigglerBody); struct Object *bodyPart = spawn_object_relative(i, 0, 0, 0, o, MODEL_WIGGLER_BODY, bhvWigglerBody);
if (bodyPart != NULL) { if (bodyPart != NULL) {
obj_init_animation_with_sound(bodyPart, wiggler_seg5_anims_0500C874, 0); obj_init_animation_with_sound(bodyPart, (struct AnimationTable*)&wiggler_seg5_anims_0500C874, 0);
bodyPart->header.gfx.animInfo.animFrame = (23 * i) % 26 - 1; bodyPart->header.gfx.animInfo.animFrame = (23 * i) % 26 - 1;
} }
} }

View file

@ -790,8 +790,10 @@ void obj_set_gfx_pos_from_pos(struct Object *obj) {
} }
void obj_init_animation(struct Object *obj, s32 animIndex) { void obj_init_animation(struct Object *obj, s32 animIndex) {
struct Animation **anims = o->oAnimations; struct AnimationTable *animations = o->oAnimations;
geo_obj_init_animation(&obj->header.gfx, &anims[animIndex]); if (animations && (u32)animIndex < animations->count) {
geo_obj_init_animation(&obj->header.gfx, animations->anims[animIndex]);
}
} }
/** /**
@ -871,46 +873,44 @@ void cur_obj_scale(f32 scale) {
} }
void cur_obj_init_animation(s32 animIndex) { void cur_obj_init_animation(s32 animIndex) {
struct Animation **anims = o->oAnimations; struct AnimationTable *animations = o->oAnimations;
if (anims != NULL) { if (animations && (u32)animIndex < animations->count) {
geo_obj_init_animation(&o->header.gfx, &anims[animIndex]); geo_obj_init_animation(&o->header.gfx, animations->anims[animIndex]);
} }
} }
void cur_obj_init_animation_with_sound(s32 animIndex) { void cur_obj_init_animation_with_sound(s32 animIndex) {
struct Animation **anims = o->oAnimations; struct AnimationTable *animations = o->oAnimations;
if (anims != NULL) { if (animations && (u32)animIndex < animations->count) {
geo_obj_init_animation(&o->header.gfx, &anims[animIndex]); geo_obj_init_animation(&o->header.gfx, animations->anims[animIndex]);
} }
o->oSoundStateID = animIndex; o->oSoundStateID = animIndex;
} }
void obj_init_animation_with_accel_and_sound(struct Object *obj, s32 animIndex, f32 accel) { void obj_init_animation_with_accel_and_sound(struct Object *obj, s32 animIndex, f32 accel) {
if (obj != NULL) { if (obj != NULL) {
struct Animation **anims = obj->oAnimations; struct AnimationTable *animations = o->oAnimations;
if (anims != NULL) { if (animations && (u32)animIndex < animations->count) {
s32 animAccel = (s32)(accel * 65536.0f); s32 animAccel = (s32)(accel * 65536.0f);
geo_obj_init_animation_accel(&obj->header.gfx, &anims[animIndex], animAccel); geo_obj_init_animation_accel(&obj->header.gfx, animations->anims[animIndex], animAccel);
} }
obj->oSoundStateID = animIndex; obj->oSoundStateID = animIndex;
} }
} }
void cur_obj_init_animation_with_accel_and_sound(s32 animIndex, f32 accel) { void cur_obj_init_animation_with_accel_and_sound(s32 animIndex, f32 accel) {
struct Animation **anims = o->oAnimations; struct AnimationTable *animations = o->oAnimations;
if (anims != NULL) { if (animations && (u32)animIndex < animations->count) {
s32 animAccel = (s32)(accel * 65536.0f); s32 animAccel = (s32)(accel * 65536.0f);
geo_obj_init_animation_accel(&o->header.gfx, &anims[animIndex], animAccel); geo_obj_init_animation_accel(&o->header.gfx, animations->anims[animIndex], animAccel);
} }
o->oSoundStateID = animIndex; o->oSoundStateID = animIndex;
} }
void obj_init_animation_with_sound(struct Object *obj, const struct Animation * const* animations, s32 animIndex) { void obj_init_animation_with_sound(struct Object *obj, const struct AnimationTable* animations, s32 animIndex) {
if (obj == NULL) { return; } if (obj == NULL) { return; }
struct Animation **anims = (struct Animation **)animations; if (animations && (u32)animIndex < animations->count) {
obj->oAnimations = (struct Animation **)animations; geo_obj_init_animation(&obj->header.gfx, animations->anims[animIndex]);
if (anims != NULL) {
geo_obj_init_animation(&obj->header.gfx, &anims[animIndex]);
} }
obj->oSoundStateID = animIndex; obj->oSoundStateID = animIndex;
} }

View file

@ -138,7 +138,7 @@ void cur_obj_init_animation_with_sound(s32 animIndex);
void obj_init_animation_with_accel_and_sound(struct Object *obj, s32 animIndex, f32 accel); void obj_init_animation_with_accel_and_sound(struct Object *obj, s32 animIndex, f32 accel);
void cur_obj_init_animation_with_accel_and_sound(s32 animIndex, f32 accel); void cur_obj_init_animation_with_accel_and_sound(s32 animIndex, f32 accel);
void cur_obj_init_animation(s32 animIndex); void cur_obj_init_animation(s32 animIndex);
void obj_init_animation_with_sound(struct Object *obj, const struct Animation * const* animations, s32 animIndex); void obj_init_animation_with_sound(struct Object *obj, const struct AnimationTable* animations, s32 animIndex);
void cur_obj_enable_rendering(void); void cur_obj_enable_rendering(void);
void cur_obj_disable_rendering(void); void cur_obj_disable_rendering(void);
void cur_obj_unhide(void); void cur_obj_unhide(void);

View file

@ -43,7 +43,7 @@ static struct LuaObjectField sAnimationFields[LUA_ANIMATION_FIELD_COUNT] = {
{ "animYTransDivisor", LVT_S16, offsetof(struct Animation, animYTransDivisor), false, LOT_NONE }, { "animYTransDivisor", LVT_S16, offsetof(struct Animation, animYTransDivisor), false, LOT_NONE },
{ "flags", LVT_S16, offsetof(struct Animation, flags), false, LOT_NONE }, { "flags", LVT_S16, offsetof(struct Animation, flags), false, LOT_NONE },
{ "index", LVT_U16_P, offsetof(struct Animation, index), false, LOT_POINTER }, { "index", LVT_U16_P, offsetof(struct Animation, index), false, LOT_POINTER },
{ "length", LVT_U32, offsetof(struct Animation, length), false, LOT_NONE }, { "length", LVT_U32, offsetof(struct Animation, length), true, LOT_NONE },
{ "loopEnd", LVT_S16, offsetof(struct Animation, loopEnd), false, LOT_NONE }, { "loopEnd", LVT_S16, offsetof(struct Animation, loopEnd), false, LOT_NONE },
{ "loopStart", LVT_S16, offsetof(struct Animation, loopStart), false, LOT_NONE }, { "loopStart", LVT_S16, offsetof(struct Animation, loopStart), false, LOT_NONE },
{ "startFrame", LVT_S16, offsetof(struct Animation, startFrame), false, LOT_NONE }, { "startFrame", LVT_S16, offsetof(struct Animation, startFrame), false, LOT_NONE },
@ -51,6 +51,12 @@ static struct LuaObjectField sAnimationFields[LUA_ANIMATION_FIELD_COUNT] = {
{ "values", LVT_S16_P, offsetof(struct Animation, values), false, LOT_POINTER }, { "values", LVT_S16_P, offsetof(struct Animation, values), false, LOT_POINTER },
}; };
#define LUA_ANIMATION_TABLE_FIELD_COUNT 1
static struct LuaObjectField sAnimationTableFields[LUA_ANIMATION_TABLE_FIELD_COUNT] = {
// { "const anims", LOT_???, offsetof(struct AnimationTable, const anims), true, LOT_??? }, <--- UNIMPLEMENTED
{ "count", LVT_U32, offsetof(struct AnimationTable, count), true, LOT_NONE },
};
#define LUA_AREA_FIELD_COUNT 18 #define LUA_AREA_FIELD_COUNT 18
static struct LuaObjectField sAreaFields[LUA_AREA_FIELD_COUNT] = { static struct LuaObjectField sAreaFields[LUA_AREA_FIELD_COUNT] = {
{ "camera", LVT_COBJECT_P, offsetof(struct Area, camera), false, LOT_CAMERA }, { "camera", LVT_COBJECT_P, offsetof(struct Area, camera), false, LOT_CAMERA },
@ -2111,6 +2117,7 @@ static struct LuaObjectField sstruct802A1230Fields[LUA_STRUCT802_A1230_FIELD_COU
struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] = { struct LuaObjectTable sLuaObjectAutogenTable[LOT_AUTOGEN_MAX - LOT_AUTOGEN_MIN] = {
{ LOT_ANIMINFO, sAnimInfoFields, LUA_ANIM_INFO_FIELD_COUNT }, { LOT_ANIMINFO, sAnimInfoFields, LUA_ANIM_INFO_FIELD_COUNT },
{ LOT_ANIMATION, sAnimationFields, LUA_ANIMATION_FIELD_COUNT }, { LOT_ANIMATION, sAnimationFields, LUA_ANIMATION_FIELD_COUNT },
{ LOT_ANIMATIONTABLE, sAnimationTableFields, LUA_ANIMATION_TABLE_FIELD_COUNT },
{ LOT_AREA, sAreaFields, LUA_AREA_FIELD_COUNT }, { LOT_AREA, sAreaFields, LUA_AREA_FIELD_COUNT },
{ LOT_BASSAUDIO, sBassAudioFields, LUA_BASS_AUDIO_FIELD_COUNT }, { LOT_BASSAUDIO, sBassAudioFields, LUA_BASS_AUDIO_FIELD_COUNT },
{ LOT_BEHAVIORDIALOGS, sBehaviorDialogsFields, LUA_BEHAVIOR_DIALOGS_FIELD_COUNT }, { LOT_BEHAVIORDIALOGS, sBehaviorDialogsFields, LUA_BEHAVIOR_DIALOGS_FIELD_COUNT },

View file

@ -7,6 +7,7 @@ enum LuaObjectAutogenType {
LOT_AUTOGEN_MIN = 1000, LOT_AUTOGEN_MIN = 1000,
LOT_ANIMINFO, LOT_ANIMINFO,
LOT_ANIMATION, LOT_ANIMATION,
LOT_ANIMATIONTABLE,
LOT_AREA, LOT_AREA,
LOT_BASSAUDIO, LOT_BASSAUDIO,
LOT_BEHAVIORDIALOGS, LOT_BEHAVIORDIALOGS,

View file

@ -30,62 +30,62 @@
#include "levels/castle_grounds/header.h" #include "levels/castle_grounds/header.h"
struct GlobalObjectAnimations gGlobalObjectAnimations = { struct GlobalObjectAnimations gGlobalObjectAnimations = {
.amp_seg8_anims_08004034 = (struct Animation**) amp_seg8_anims_08004034, .amp_seg8_anims_08004034 = (struct AnimationTable*) &amp_seg8_anims_08004034,
.birds_seg5_anims_050009E8 = (struct Animation**) birds_seg5_anims_050009E8, .birds_seg5_anims_050009E8 = (struct AnimationTable*) &birds_seg5_anims_050009E8,
.blargg_seg5_anims_0500616C = (struct Animation**) blargg_seg5_anims_0500616C, .blargg_seg5_anims_0500616C = (struct AnimationTable*) &blargg_seg5_anims_0500616C,
.blue_fish_seg3_anims_0301C2B0 = (struct Animation**) blue_fish_seg3_anims_0301C2B0, .blue_fish_seg3_anims_0301C2B0 = (struct AnimationTable*) &blue_fish_seg3_anims_0301C2B0,
.bobomb_seg8_anims_0802396C = (struct Animation**) bobomb_seg8_anims_0802396C, .bobomb_seg8_anims_0802396C = (struct AnimationTable*) &bobomb_seg8_anims_0802396C,
.bookend_seg5_anims_05002540 = (struct Animation**) bookend_seg5_anims_05002540, .bookend_seg5_anims_05002540 = (struct AnimationTable*) &bookend_seg5_anims_05002540,
.bowser_key_seg3_anims_list = (struct Animation**) bowser_key_seg3_anims_list, .bowser_key_seg3_anims_list = (struct AnimationTable*) &bowser_key_seg3_anims_list,
.bowser_seg6_anims_06057690 = (struct Animation**) bowser_seg6_anims_06057690, .bowser_seg6_anims_06057690 = (struct AnimationTable*) &bowser_seg6_anims_06057690,
.bub_seg6_anims_06012354 = (struct Animation**) bub_seg6_anims_06012354, .bub_seg6_anims_06012354 = (struct AnimationTable*) &bub_seg6_anims_06012354,
.bully_seg5_anims_0500470C = (struct Animation**) bully_seg5_anims_0500470C, .bully_seg5_anims_0500470C = (struct AnimationTable*) &bully_seg5_anims_0500470C,
.butterfly_seg3_anims_030056B0 = (struct Animation**) butterfly_seg3_anims_030056B0, .butterfly_seg3_anims_030056B0 = (struct AnimationTable*) &butterfly_seg3_anims_030056B0,
.castle_grounds_seg7_anims_flags = (struct Animation**) castle_grounds_seg7_anims_flags, .castle_grounds_seg7_anims_flags = (struct AnimationTable*) &castle_grounds_seg7_anims_flags,
.chain_chomp_seg6_anims_06025178 = (struct Animation**) chain_chomp_seg6_anims_06025178, .chain_chomp_seg6_anims_06025178 = (struct AnimationTable*) &chain_chomp_seg6_anims_06025178,
.chair_seg5_anims_05005784 = (struct Animation**) chair_seg5_anims_05005784, .chair_seg5_anims_05005784 = (struct AnimationTable*) &chair_seg5_anims_05005784,
.chilly_chief_seg6_anims_06003994 = (struct Animation**) chilly_chief_seg6_anims_06003994, .chilly_chief_seg6_anims_06003994 = (struct AnimationTable*) &chilly_chief_seg6_anims_06003994,
.chuckya_seg8_anims_0800C070 = (struct Animation**) chuckya_seg8_anims_0800C070, .chuckya_seg8_anims_0800C070 = (struct AnimationTable*) &chuckya_seg8_anims_0800C070,
.clam_shell_seg5_anims_05001744 = (struct Animation**) clam_shell_seg5_anims_05001744, .clam_shell_seg5_anims_05001744 = (struct AnimationTable*) &clam_shell_seg5_anims_05001744,
.cyan_fish_seg6_anims_0600E264 = (struct Animation**) cyan_fish_seg6_anims_0600E264, .cyan_fish_seg6_anims_0600E264 = (struct AnimationTable*) &cyan_fish_seg6_anims_0600E264,
.door_seg3_anims_030156C0 = (struct Animation**) door_seg3_anims_030156C0, .door_seg3_anims_030156C0 = (struct AnimationTable*) &door_seg3_anims_030156C0,
.dorrie_seg6_anims_0600F638 = (struct Animation**) dorrie_seg6_anims_0600F638, .dorrie_seg6_anims_0600F638 = (struct AnimationTable*) &dorrie_seg6_anims_0600F638,
.eyerok_seg5_anims_050116E4 = (struct Animation**) eyerok_seg5_anims_050116E4, .eyerok_seg5_anims_050116E4 = (struct AnimationTable*) &eyerok_seg5_anims_050116E4,
.flyguy_seg8_anims_08011A64 = (struct Animation**) flyguy_seg8_anims_08011A64, .flyguy_seg8_anims_08011A64 = (struct AnimationTable*) &flyguy_seg8_anims_08011A64,
.goomba_seg8_anims_0801DA4C = (struct Animation**) goomba_seg8_anims_0801DA4C, .goomba_seg8_anims_0801DA4C = (struct AnimationTable*) &goomba_seg8_anims_0801DA4C,
.heave_ho_seg5_anims_0501534C = (struct Animation**) heave_ho_seg5_anims_0501534C, .heave_ho_seg5_anims_0501534C = (struct AnimationTable*) &heave_ho_seg5_anims_0501534C,
.hoot_seg5_anims_05005768 = (struct Animation**) hoot_seg5_anims_05005768, .hoot_seg5_anims_05005768 = (struct AnimationTable*) &hoot_seg5_anims_05005768,
.king_bobomb_seg5_anims_0500FE30 = (struct Animation**) king_bobomb_seg5_anims_0500FE30, .king_bobomb_seg5_anims_0500FE30 = (struct AnimationTable*) &king_bobomb_seg5_anims_0500FE30,
.klepto_seg5_anims_05008CFC = (struct Animation**) klepto_seg5_anims_05008CFC, .klepto_seg5_anims_05008CFC = (struct AnimationTable*) &klepto_seg5_anims_05008CFC,
.koopa_flag_seg6_anims_06001028 = (struct Animation**) koopa_flag_seg6_anims_06001028, .koopa_flag_seg6_anims_06001028 = (struct AnimationTable*) &koopa_flag_seg6_anims_06001028,
.koopa_seg6_anims_06011364 = (struct Animation**) koopa_seg6_anims_06011364, .koopa_seg6_anims_06011364 = (struct AnimationTable*) &koopa_seg6_anims_06011364,
.lakitu_enemy_seg5_anims_050144D4 = (struct Animation**) lakitu_enemy_seg5_anims_050144D4, .lakitu_enemy_seg5_anims_050144D4 = (struct AnimationTable*) &lakitu_enemy_seg5_anims_050144D4,
.lakitu_seg6_anims_060058F8 = (struct Animation**) lakitu_seg6_anims_060058F8, .lakitu_seg6_anims_060058F8 = (struct AnimationTable*) &lakitu_seg6_anims_060058F8,
.mad_piano_seg5_anims_05009B14 = (struct Animation**) mad_piano_seg5_anims_05009B14, .mad_piano_seg5_anims_05009B14 = (struct AnimationTable*) &mad_piano_seg5_anims_05009B14,
.manta_seg5_anims_05008EB4 = (struct Animation**) manta_seg5_anims_05008EB4, .manta_seg5_anims_05008EB4 = (struct AnimationTable*) &manta_seg5_anims_05008EB4,
.mips_seg6_anims_06015634 = (struct Animation**) mips_seg6_anims_06015634, .mips_seg6_anims_06015634 = (struct AnimationTable*) &mips_seg6_anims_06015634,
.moneybag_seg6_anims_06005E5C = (struct Animation**) moneybag_seg6_anims_06005E5C, .moneybag_seg6_anims_06005E5C = (struct AnimationTable*) &moneybag_seg6_anims_06005E5C,
.monty_mole_seg5_anims_05007248 = (struct Animation**) monty_mole_seg5_anims_05007248, .monty_mole_seg5_anims_05007248 = (struct AnimationTable*) &monty_mole_seg5_anims_05007248,
.peach_seg5_anims_0501C41C = (struct Animation**) peach_seg5_anims_0501C41C, .peach_seg5_anims_0501C41C = (struct AnimationTable*) &peach_seg5_anims_0501C41C,
.penguin_seg5_anims_05008B74 = (struct Animation**) penguin_seg5_anims_05008B74, .penguin_seg5_anims_05008B74 = (struct AnimationTable*) &penguin_seg5_anims_05008B74,
.piranha_plant_seg6_anims_0601C31C= (struct Animation**) piranha_plant_seg6_anims_0601C31C, .piranha_plant_seg6_anims_0601C31C= (struct AnimationTable*) &piranha_plant_seg6_anims_0601C31C,
.scuttlebug_seg6_anims_06015064 = (struct Animation**) scuttlebug_seg6_anims_06015064, .scuttlebug_seg6_anims_06015064 = (struct AnimationTable*) &scuttlebug_seg6_anims_06015064,
.seaweed_seg6_anims_0600A4D4 = (struct Animation**) seaweed_seg6_anims_0600A4D4, .seaweed_seg6_anims_0600A4D4 = (struct AnimationTable*) &seaweed_seg6_anims_0600A4D4,
.skeeter_seg6_anims_06007DE0 = (struct Animation**) skeeter_seg6_anims_06007DE0, .skeeter_seg6_anims_06007DE0 = (struct AnimationTable*) &skeeter_seg6_anims_06007DE0,
.snowman_seg5_anims_0500D118 = (struct Animation**) snowman_seg5_anims_0500D118, .snowman_seg5_anims_0500D118 = (struct AnimationTable*) &snowman_seg5_anims_0500D118,
.spindrift_seg5_anims_05002D68 = (struct Animation**) spindrift_seg5_anims_05002D68, .spindrift_seg5_anims_05002D68 = (struct AnimationTable*) &spindrift_seg5_anims_05002D68,
.spiny_seg5_anims_05016EAC = (struct Animation**) spiny_seg5_anims_05016EAC, .spiny_seg5_anims_05016EAC = (struct AnimationTable*) &spiny_seg5_anims_05016EAC,
.spiny_egg_seg5_anims_050157E4 = (struct Animation**) spiny_egg_seg5_anims_050157E4, .spiny_egg_seg5_anims_050157E4 = (struct AnimationTable*) &spiny_egg_seg5_anims_050157E4,
.sushi_seg5_anims_0500AE54 = (struct Animation**) sushi_seg5_anims_0500AE54, .sushi_seg5_anims_0500AE54 = (struct AnimationTable*) &sushi_seg5_anims_0500AE54,
.swoop_seg6_anims_060070D0 = (struct Animation**) swoop_seg6_anims_060070D0, .swoop_seg6_anims_060070D0 = (struct AnimationTable*) &swoop_seg6_anims_060070D0,
.toad_seg6_anims_0600FB58 = (struct Animation**) toad_seg6_anims_0600FB58, .toad_seg6_anims_0600FB58 = (struct AnimationTable*) &toad_seg6_anims_0600FB58,
.ukiki_seg5_anims_05015784 = (struct Animation**) ukiki_seg5_anims_05015784, .ukiki_seg5_anims_05015784 = (struct AnimationTable*) &ukiki_seg5_anims_05015784,
.unagi_seg5_anims_05012824 = (struct Animation**) unagi_seg5_anims_05012824, .unagi_seg5_anims_05012824 = (struct AnimationTable*) &unagi_seg5_anims_05012824,
.water_ring_seg6_anims_06013F7C = (struct Animation**) water_ring_seg6_anims_06013F7C, .water_ring_seg6_anims_06013F7C = (struct AnimationTable*) &water_ring_seg6_anims_06013F7C,
.whomp_seg6_anims_06020A04 = (struct Animation**) whomp_seg6_anims_06020A04, .whomp_seg6_anims_06020A04 = (struct AnimationTable*) &whomp_seg6_anims_06020A04,
.wiggler_seg5_anims_0500C874 = (struct Animation**) wiggler_seg5_anims_0500C874, .wiggler_seg5_anims_0500C874 = (struct AnimationTable*) &wiggler_seg5_anims_0500C874,
.wiggler_seg5_anims_0500EC8C = (struct Animation**) wiggler_seg5_anims_0500EC8C, .wiggler_seg5_anims_0500EC8C = (struct AnimationTable*) &wiggler_seg5_anims_0500EC8C,
.yoshi_seg5_anims_05024100 = (struct Animation**) yoshi_seg5_anims_05024100, .yoshi_seg5_anims_05024100 = (struct AnimationTable*) &yoshi_seg5_anims_05024100,
}; };
/////////////////////// ///////////////////////

View file

@ -3,7 +3,7 @@
#include "types.h" #include "types.h"
typedef struct Animation* ObjectAnimPointer; typedef struct AnimationTable ObjectAnimPointer;
struct GlobalObjectAnimations { struct GlobalObjectAnimations {
ObjectAnimPointer* amp_seg8_anims_08004034; ObjectAnimPointer* amp_seg8_anims_08004034;