mirror of
				https://github.com/coop-deluxe/sm64coopdx.git
				synced 2025-10-30 08:01:01 +00:00 
			
		
		
		
	Add a container to animation tables so that we can track their length and stay in bounds
This commit is contained in:
		
							parent
							
								
									e666719baf
								
							
						
					
					
						commit
						d30b1e61a6
					
				
					 98 changed files with 864 additions and 643 deletions
				
			
		|  | @ -1,4 +1,5 @@ | |||
| // 0x08004034
 | ||||
| const struct Animation *const amp_seg8_anims_08004034[] = { | ||||
|     &_seg8_anim_0800401C, | ||||
| const struct AnimationTable amp_seg8_anims_08004034 = { | ||||
|     .anims = { &_seg8_anim_0800401C, }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // 0x050009E8
 | ||||
| const struct Animation *const birds_seg5_anims_050009E8[] = { | ||||
|     &birds_seg5_anim_050008D0, | ||||
|     &birds_seg5_anim_050009D0, | ||||
| const struct AnimationTable birds_seg5_anims_050009E8 = { | ||||
|     .anims = { | ||||
|         &birds_seg5_anim_050008D0, | ||||
|         &birds_seg5_anim_050009D0, | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // unreferenced
 | ||||
| // 0x0500616C
 | ||||
| const struct Animation *const blargg_seg5_anims_0500616C[] = { | ||||
|     &blargg_seg5_anim_05006154, | ||||
|     &blargg_seg5_anim_05006070, | ||||
|     NULL, | ||||
| const struct AnimationTable blargg_seg5_anims_0500616C = { | ||||
|     .anims = { | ||||
|         &blargg_seg5_anim_05006154, | ||||
|         &blargg_seg5_anim_05006070, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| // 0x0301C2B0
 | ||||
| const struct Animation *const blue_fish_seg3_anims_0301C2B0[] = { | ||||
|     &blue_fish_seg3_anim_0301C298, | ||||
|     NULL, | ||||
| const struct AnimationTable blue_fish_seg3_anims_0301C2B0 = { | ||||
|     .anims = { &blue_fish_seg3_anim_0301C298, NULL }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x0802396C
 | ||||
| const struct Animation *const bobomb_seg8_anims_0802396C[] = { | ||||
|     &bobomb_seg8_anim_080237FC, | ||||
|     &bobomb_seg8_anim_08023954, | ||||
|     NULL, | ||||
| const struct AnimationTable bobomb_seg8_anims_0802396C = { | ||||
|     .anims = { | ||||
|         &bobomb_seg8_anim_080237FC, | ||||
|         &bobomb_seg8_anim_08023954, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // 0x05002540
 | ||||
| const struct Animation *const bookend_seg5_anims_05002540[] = { | ||||
|     &bookend_seg5_anim_05002528, | ||||
|     &bookend_seg5_anim_050023F4, | ||||
|     &bookend_seg5_anim_05002510, | ||||
|     NULL, | ||||
| const struct AnimationTable bookend_seg5_anims_05002540 = { | ||||
|     .anims = { | ||||
|         &bookend_seg5_anim_05002528, | ||||
|         &bookend_seg5_anim_050023F4, | ||||
|         &bookend_seg5_anim_05002510, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 3 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,30 +1,33 @@ | |||
| // 0x06057690
 | ||||
| const struct Animation *const bowser_seg6_anims_06057690[] = { | ||||
|     &bowser_seg6_anim_060445EC, | ||||
|     &bowser_seg6_anim_060453C8, | ||||
|     &bowser_seg6_anim_06045D28, | ||||
|     &bowser_seg6_anim_0604671C, | ||||
|     &bowser_seg6_anim_0604675C, | ||||
|     &bowser_seg6_anim_06048200, | ||||
|     &bowser_seg6_anim_06049880, | ||||
|     &bowser_seg6_anim_0604A8E4, | ||||
|     &bowser_seg6_anim_0604B178, | ||||
|     &bowser_seg6_anim_0604B8CC, | ||||
|     &bowser_seg6_anim_0604D184, | ||||
|     &bowser_seg6_anim_0604E5A0, | ||||
|     &bowser_seg6_anim_0604F030, | ||||
|     &bowser_seg6_anim_0604FF4C, | ||||
|     &bowser_seg6_anim_06050530, | ||||
|     &bowser_seg6_anim_060514E8, | ||||
|     &bowser_seg6_anim_06051C68, | ||||
|     &bowser_seg6_anim_06052680, | ||||
|     &bowser_seg6_anim_06054290, | ||||
|     &bowser_seg6_anim_06052D94, | ||||
|     &bowser_seg6_anim_060534F4, | ||||
|     &bowser_seg6_anim_06053B8C, | ||||
|     &bowser_seg6_anim_06054950, | ||||
|     &bowser_seg6_anim_06055210, | ||||
|     &bowser_seg6_anim_06055984, | ||||
|     &bowser_seg6_anim_06056774, | ||||
|     &bowser_seg6_anim_06057678, | ||||
| const struct AnimationTable bowser_seg6_anims_06057690 = { | ||||
|     .anims = { | ||||
|         &bowser_seg6_anim_060445EC, | ||||
|         &bowser_seg6_anim_060453C8, | ||||
|         &bowser_seg6_anim_06045D28, | ||||
|         &bowser_seg6_anim_0604671C, | ||||
|         &bowser_seg6_anim_0604675C, | ||||
|         &bowser_seg6_anim_06048200, | ||||
|         &bowser_seg6_anim_06049880, | ||||
|         &bowser_seg6_anim_0604A8E4, | ||||
|         &bowser_seg6_anim_0604B178, | ||||
|         &bowser_seg6_anim_0604B8CC, | ||||
|         &bowser_seg6_anim_0604D184, | ||||
|         &bowser_seg6_anim_0604E5A0, | ||||
|         &bowser_seg6_anim_0604F030, | ||||
|         &bowser_seg6_anim_0604FF4C, | ||||
|         &bowser_seg6_anim_06050530, | ||||
|         &bowser_seg6_anim_060514E8, | ||||
|         &bowser_seg6_anim_06051C68, | ||||
|         &bowser_seg6_anim_06052680, | ||||
|         &bowser_seg6_anim_06054290, | ||||
|         &bowser_seg6_anim_06052D94, | ||||
|         &bowser_seg6_anim_060534F4, | ||||
|         &bowser_seg6_anim_06053B8C, | ||||
|         &bowser_seg6_anim_06054950, | ||||
|         &bowser_seg6_anim_06055210, | ||||
|         &bowser_seg6_anim_06055984, | ||||
|         &bowser_seg6_anim_06056774, | ||||
|         &bowser_seg6_anim_06057678, | ||||
|     }, | ||||
|     .count = 27 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // 0x030172D0
 | ||||
| const struct Animation *const bowser_key_seg3_anims_list[] = { | ||||
|     &bowser_key_seg3_anim_unlock_door, // id 0
 | ||||
|     &bowser_key_seg3_anim_course_exit, // id 1
 | ||||
| const struct AnimationTable bowser_key_seg3_anims_list = { | ||||
|     .anims = { | ||||
|         &bowser_key_seg3_anim_unlock_door, // id 0
 | ||||
|         &bowser_key_seg3_anim_course_exit, // id 1
 | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x06012354
 | ||||
| const struct Animation *const bub_seg6_anims_06012354[] = { | ||||
|     &bub_seg6_anim_0601233C, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable bub_seg6_anims_06012354 = { | ||||
|     .anims = { | ||||
|         &bub_seg6_anim_0601233C, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,8 +1,11 @@ | |||
| // 0x0500470C
 | ||||
| const struct Animation *const bully_seg5_anims_0500470C[] = { | ||||
|     &bully_seg5_anim_05004598, | ||||
|     &bully_seg5_anim_050043D8, | ||||
|     &bully_seg5_anim_050042A4, | ||||
|     &bully_seg5_anim_050046F4, | ||||
|     NULL, | ||||
| const struct AnimationTable bully_seg5_anims_0500470C = { | ||||
|     .anims = { | ||||
|         &bully_seg5_anim_05004598, | ||||
|         &bully_seg5_anim_050043D8, | ||||
|         &bully_seg5_anim_050042A4, | ||||
|         &bully_seg5_anim_050046F4, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 4 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // 0x030056B0
 | ||||
| const struct Animation *const butterfly_seg3_anims_030056B0[] = { | ||||
|     &butterfly_seg3_anim_030055B0, | ||||
|     &butterfly_seg3_anim_03005698, | ||||
| const struct AnimationTable butterfly_seg3_anims_030056B0 = { | ||||
|     .anims = { | ||||
|         &butterfly_seg3_anim_030055B0, | ||||
|         &butterfly_seg3_anim_03005698, | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // 0x06025178
 | ||||
| const struct Animation *const chain_chomp_seg6_anims_06025178[] = { | ||||
|     &chain_chomp_seg6_anim_06025160, | ||||
|     NULL, | ||||
| const struct AnimationTable chain_chomp_seg6_anims_06025178 = { | ||||
|     .anims = { | ||||
|         &chain_chomp_seg6_anim_06025160, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,4 +1,7 @@ | |||
| // 0x05005784
 | ||||
| const struct Animation *const chair_seg5_anims_05005784[] = { | ||||
|     &chair_seg5_anim_0500576C, | ||||
| const struct AnimationTable chair_seg5_anims_05005784 = { | ||||
|     .anims = { | ||||
|         &chair_seg5_anim_0500576C, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,8 +1,11 @@ | |||
| // 0x06003994
 | ||||
| const struct Animation *const chilly_chief_seg6_anims_06003994[] = { | ||||
|     &chilly_chief_seg6_anim_060035E0, | ||||
|     &chilly_chief_seg6_anim_06003420, | ||||
|     &chilly_chief_seg6_anim_060032EC, | ||||
|     &chilly_chief_seg6_anim_0600373C, | ||||
|     NULL, | ||||
| const struct AnimationTable chilly_chief_seg6_anims_06003994 = { | ||||
|     .anims = { | ||||
|         &chilly_chief_seg6_anim_060035E0, | ||||
|         &chilly_chief_seg6_anim_06003420, | ||||
|         &chilly_chief_seg6_anim_060032EC, | ||||
|         &chilly_chief_seg6_anim_0600373C, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 4 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,9 +1,12 @@ | |||
| // 0x0800C070
 | ||||
| const struct Animation *const chuckya_seg8_anims_0800C070[] = { | ||||
|     &chuckya_seg8_anim_0800AF68, | ||||
|     &chuckya_seg8_anim_0800B1A8, | ||||
|     &chuckya_seg8_anim_0800B4A8, | ||||
|     &chuckya_seg8_anim_0800B9F8, | ||||
|     &chuckya_seg8_anim_0800BBEC, | ||||
|     &chuckya_seg8_anim_0800C058, | ||||
| const struct AnimationTable chuckya_seg8_anims_0800C070 = { | ||||
|     .anims = { | ||||
|         &chuckya_seg8_anim_0800AF68, | ||||
|         &chuckya_seg8_anim_0800B1A8, | ||||
|         &chuckya_seg8_anim_0800B4A8, | ||||
|         &chuckya_seg8_anim_0800B9F8, | ||||
|         &chuckya_seg8_anim_0800BBEC, | ||||
|         &chuckya_seg8_anim_0800C058, | ||||
|     }, | ||||
|     .count = 6 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x05001744
 | ||||
| const struct Animation *const clam_shell_seg5_anims_05001744[] = { | ||||
|     &clam_shell_seg5_anim_05001654, | ||||
|     &clam_shell_seg5_anim_0500172C, | ||||
|     NULL, | ||||
| const struct AnimationTable clam_shell_seg5_anims_05001744 = { | ||||
|     .anims = { | ||||
|         &clam_shell_seg5_anim_05001654, | ||||
|         &clam_shell_seg5_anim_0500172C, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ extern const Gfx amp_seg8_dl_080039D0[]; | |||
| extern const Gfx amp_seg8_dl_08003DA8[]; | ||||
| extern const Gfx amp_seg8_dl_08003DD8[]; | ||||
| 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
 | ||||
| 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_08023378[]; | ||||
| 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
 | ||||
| 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_0800AB70[]; | ||||
| 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
 | ||||
| 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_080116D0[]; | ||||
| 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
 | ||||
| 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_0801D360[]; | ||||
| 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
 | ||||
| extern const GeoLayout heart_geo[]; | ||||
|  |  | |||
|  | @ -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_0301C0A8[]; | ||||
| 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
 | ||||
| extern const GeoLayout bowser_key_geo[]; | ||||
| extern const GeoLayout bowser_key_cutscene_geo[]; | ||||
| 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
 | ||||
| extern const GeoLayout butterfly_geo[]; | ||||
| extern const Gfx butterfly_seg3_dl_03005408[]; | ||||
| 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
 | ||||
| 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_030150E8[]; | ||||
| 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
 | ||||
| extern const GeoLayout explosion_geo[]; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x0600E264
 | ||||
| const struct Animation *const cyan_fish_seg6_anims_0600E264[] = { | ||||
|     &cyan_fish_seg6_anim_0600E24C, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable cyan_fish_seg6_anims_0600E264 = { | ||||
|     .anims = { | ||||
|         &cyan_fish_seg6_anim_0600E24C, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,9 +1,12 @@ | |||
| // 0x030156C0
 | ||||
| const struct Animation *const door_seg3_anims_030156C0[] = { | ||||
|     &door_seg3_anim_03015208, | ||||
|     &door_seg3_anim_03015440, | ||||
|     &door_seg3_anim_03015690, | ||||
|     &door_seg3_anim_03015458, | ||||
|     &door_seg3_anim_030156A8, | ||||
|     NULL, | ||||
| const struct AnimationTable door_seg3_anims_030156C0 = { | ||||
|     .anims = { | ||||
|         &door_seg3_anim_03015208, | ||||
|         &door_seg3_anim_03015440, | ||||
|         &door_seg3_anim_03015690, | ||||
|         &door_seg3_anim_03015458, | ||||
|         &door_seg3_anim_030156A8, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 5 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x0600F638
 | ||||
| const struct Animation *const dorrie_seg6_anims_0600F638[] = { | ||||
|     &dorrie_seg6_anim_0600E18C, | ||||
|     &dorrie_seg6_anim_0600E9BC, | ||||
|     &dorrie_seg6_anim_0600F620, | ||||
| const struct AnimationTable dorrie_seg6_anims_0600F638 = { | ||||
|     .anims = { | ||||
|         &dorrie_seg6_anim_0600E18C, | ||||
|         &dorrie_seg6_anim_0600E9BC, | ||||
|         &dorrie_seg6_anim_0600F620, | ||||
|     }, | ||||
|     .count = 3 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,12 +1,15 @@ | |||
| // 0x050116E4
 | ||||
| const struct Animation *const eyerok_seg5_anims_050116E4[] = { | ||||
|     &eyerok_seg5_anim_0500D270, | ||||
|     &eyerok_seg5_anim_0500DF50, | ||||
|     &eyerok_seg5_anim_0500E1D8, | ||||
|     &eyerok_seg5_anim_0500E99C, | ||||
|     &eyerok_seg5_anim_0500F3D8, | ||||
|     &eyerok_seg5_anim_0500FCCC, | ||||
|     &eyerok_seg5_anim_050116CC, | ||||
|     &eyerok_seg5_anim_0500F3F0, | ||||
|     NULL, | ||||
| const struct AnimationTable eyerok_seg5_anims_050116E4 = { | ||||
|     .anims = { | ||||
|         &eyerok_seg5_anim_0500D270, | ||||
|         &eyerok_seg5_anim_0500DF50, | ||||
|         &eyerok_seg5_anim_0500E1D8, | ||||
|         &eyerok_seg5_anim_0500E99C, | ||||
|         &eyerok_seg5_anim_0500F3D8, | ||||
|         &eyerok_seg5_anim_0500FCCC, | ||||
|         &eyerok_seg5_anim_050116CC, | ||||
|         &eyerok_seg5_anim_0500F3F0, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 8 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x08011A64
 | ||||
| const struct Animation *const flyguy_seg8_anims_08011A64[] = { | ||||
|     &flyguy_seg8_anim_08011A4C, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable flyguy_seg8_anims_08011A64 = { | ||||
|     .anims = { | ||||
|         &flyguy_seg8_anim_08011A4C, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x0801DA4C
 | ||||
| const struct Animation *const goomba_seg8_anims_0801DA4C[] = { | ||||
|     &goomba_seg8_anim_0801DA34, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable goomba_seg8_anims_0801DA4C = { | ||||
|     .anims = { | ||||
|         &goomba_seg8_anim_0801DA34, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -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_050149A8[]; | ||||
| 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
 | ||||
| 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_05004CA8[]; | ||||
| 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
 | ||||
| extern const GeoLayout thwomp_geo[]; | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ extern const Gfx birds_seg5_dl_05000528[]; | |||
| extern const Gfx birds_seg5_dl_05000598[]; | ||||
| extern const Gfx birds_seg5_dl_05000600[]; | ||||
| 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
 | ||||
| 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_0500A0A8[]; | ||||
| 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
 | ||||
| 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_05022408[]; | ||||
| 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 | ||||
|  |  | |||
|  | @ -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_05013860[]; | ||||
| 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
 | ||||
| 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_05016738[]; | ||||
| 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
 | ||||
| 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_05015368[]; | ||||
| 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
 | ||||
| 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_0500C278[]; | ||||
| 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
 | ||||
| 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_0500E640[]; | ||||
| 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 | ||||
|  |  | |||
|  | @ -89,7 +89,7 @@ extern const Gfx bowser_seg6_dl_060431F0[]; | |||
| extern const Gfx bowser_seg6_dl_06043548[]; | ||||
| extern const Gfx bowser_seg6_dl_06043648[]; | ||||
| 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[]; | ||||
| 
 | ||||
| // bowser_flame
 | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ extern const Gfx bub_seg6_dl_06011DC0[]; | |||
| extern const Gfx bub_seg6_dl_06011E48[]; | ||||
| extern const Gfx bub_seg6_dl_06011F18[]; | ||||
| 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
 | ||||
| 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_0600DFC0[]; | ||||
| 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
 | ||||
| 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_0600A138[]; | ||||
| 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
 | ||||
| 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_06005328[]; | ||||
| 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
 | ||||
| extern const GeoLayout treasure_chest_base_geo[]; | ||||
|  | @ -98,6 +98,6 @@ extern const Gfx water_mine_seg6_dl_0600D3F8[]; | |||
| // water_ring
 | ||||
| extern const GeoLayout water_ring_geo[]; | ||||
| 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 | ||||
|  |  | |||
|  | @ -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_06024F50[]; | ||||
| 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
 | ||||
| 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_0600C240[]; | ||||
| 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
 | ||||
| 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_06000E20[]; | ||||
| 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
 | ||||
| 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_06016EB8[]; | ||||
| 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
 | ||||
| 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_0601FFA0[]; | ||||
| 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[]; | ||||
| 
 | ||||
| #endif | ||||
|  |  | |||
|  | @ -30,7 +30,7 @@ extern const Gfx lakitu_seg6_dl_06005360[]; | |||
| extern const Gfx lakitu_seg6_dl_06005598[]; | ||||
| extern const Gfx lakitu_seg6_dl_060055E8[]; | ||||
| 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
 | ||||
| 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_06011F70[]; | ||||
| 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
 | ||||
| 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_06008A90[]; | ||||
| 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 | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ extern const Gfx chilly_chief_seg6_dl_06002FC8[]; | |||
| extern const Gfx chilly_chief_seg6_dl_06003010[]; | ||||
| extern const GeoLayout chilly_chief_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
 | ||||
| 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_06005980[]; | ||||
| 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 | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ extern const Gfx dorrie_seg6_dl_0600DDA0[]; | |||
| extern const Gfx dorrie_seg6_dl_0600DE38[]; | ||||
| extern const Gfx dorrie_seg6_dl_0600DF60[]; | ||||
| 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_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_06014338[]; | ||||
| 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
 | ||||
| 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_06006CC8[]; | ||||
| 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 | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ extern const GeoLayout blargg_geo[]; | |||
| extern const Gfx blargg_seg5_dl_050058D0[]; | ||||
| extern const Gfx blargg_seg5_dl_05005A60[]; | ||||
| 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
 | ||||
| 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_05003F80[]; | ||||
| 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 | ||||
|  |  | |||
|  | @ -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_0500B5F0[]; | ||||
| 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
 | ||||
| extern const GeoLayout water_bomb_geo[]; | ||||
|  |  | |||
|  | @ -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_050014F8[]; | ||||
| 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
 | ||||
| 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_05006C08[]; | ||||
| 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
 | ||||
| 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_0500A958[]; | ||||
| 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
 | ||||
| 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_0500E200[]; | ||||
| 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
 | ||||
| extern const Gfx whirlpool_seg5_dl_05013B58[]; | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ extern const Gfx eyerok_seg5_dl_0500CAE8[]; | |||
| extern const Gfx eyerok_seg5_dl_0500CB80[]; | ||||
| extern const Gfx eyerok_seg5_dl_0500CC18[]; | ||||
| 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
 | ||||
| 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_05005130[]; | ||||
| 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
 | ||||
| extern const GeoLayout pokey_head_geo[]; | ||||
|  |  | |||
|  | @ -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_05004CE8[]; | ||||
| 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
 | ||||
| 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_0500D078[]; | ||||
| 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 | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ extern const Gfx penguin_seg5_dl_05007238[]; | |||
| extern const Gfx penguin_seg5_dl_050072C8[]; | ||||
| extern const Gfx penguin_seg5_dl_05007358[]; | ||||
| 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[]; | ||||
| 
 | ||||
| // 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_0500CCB0[]; | ||||
| 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
 | ||||
| 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_05002C98[]; | ||||
| 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 | ||||
|  |  | |||
|  | @ -34,7 +34,7 @@ extern const Gfx bookend_seg5_dl_050020E8[]; | |||
| extern const Gfx bookend_seg5_dl_05002140[]; | ||||
| extern const Gfx bookend_seg5_dl_05002288[]; | ||||
| 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
 | ||||
| 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_050055F0[]; | ||||
| 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
 | ||||
| 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_05009888[]; | ||||
| 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
 | ||||
| extern const GeoLayout small_key_geo[]; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x0501534C
 | ||||
| const struct Animation *const heave_ho_seg5_anims_0501534C[] = { | ||||
|     &heave_ho_seg5_anim_05015118, | ||||
|     &heave_ho_seg5_anim_05015334, | ||||
|     &heave_ho_seg5_anim_05014F28, | ||||
| const struct AnimationTable heave_ho_seg5_anims_0501534C = { | ||||
|     .anims = { | ||||
|         &heave_ho_seg5_anim_05015118, | ||||
|         &heave_ho_seg5_anim_05015334, | ||||
|         &heave_ho_seg5_anim_05014F28, | ||||
|     }, | ||||
|     .count = 3 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // 0x05005768
 | ||||
| const struct Animation *const hoot_seg5_anims_05005768[] = { | ||||
|     &hoot_seg5_anim_050053EC, | ||||
|     &hoot_seg5_anim_05005750, | ||||
| const struct AnimationTable hoot_seg5_anims_05005768 = { | ||||
|     .anims = { | ||||
|         &hoot_seg5_anim_050053EC, | ||||
|         &hoot_seg5_anim_05005750, | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,15 +1,18 @@ | |||
| // 0x0500FE30
 | ||||
| const struct Animation *const king_bobomb_seg5_anims_0500FE30[] = { | ||||
|     &king_bobomb_seg5_anim_0500BDFC, | ||||
|     &king_bobomb_seg5_anim_0500C2AC, | ||||
|     &king_bobomb_seg5_anim_0500C520, | ||||
|     &king_bobomb_seg5_anim_0500C774, | ||||
|     &king_bobomb_seg5_anim_0500CFCC, | ||||
|     &king_bobomb_seg5_anim_0500D5B0, | ||||
|     &king_bobomb_seg5_anim_0500D978, | ||||
|     &king_bobomb_seg5_anim_0500DDD8, | ||||
|     &king_bobomb_seg5_anim_0500E10C, | ||||
|     &king_bobomb_seg5_anim_0500F078, | ||||
|     &king_bobomb_seg5_anim_0500F6C8, | ||||
|     &king_bobomb_seg5_anim_0500FE18, | ||||
| const struct AnimationTable king_bobomb_seg5_anims_0500FE30 = { | ||||
|     .anims = { | ||||
|         &king_bobomb_seg5_anim_0500BDFC, | ||||
|         &king_bobomb_seg5_anim_0500C2AC, | ||||
|         &king_bobomb_seg5_anim_0500C520, | ||||
|         &king_bobomb_seg5_anim_0500C774, | ||||
|         &king_bobomb_seg5_anim_0500CFCC, | ||||
|         &king_bobomb_seg5_anim_0500D5B0, | ||||
|         &king_bobomb_seg5_anim_0500D978, | ||||
|         &king_bobomb_seg5_anim_0500DDD8, | ||||
|         &king_bobomb_seg5_anim_0500E10C, | ||||
|         &king_bobomb_seg5_anim_0500F078, | ||||
|         &king_bobomb_seg5_anim_0500F6C8, | ||||
|         &king_bobomb_seg5_anim_0500FE18, | ||||
|     }, | ||||
|     .count = 12 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,12 +1,15 @@ | |||
| // 0x05008CFC
 | ||||
| const struct Animation *const klepto_seg5_anims_05008CFC[] = { | ||||
|     &klepto_seg5_anim_05005E44, | ||||
|     &klepto_seg5_anim_05007574, | ||||
|     &klepto_seg5_anim_050079B0, | ||||
|     &klepto_seg5_anim_05007E34, | ||||
|     &klepto_seg5_anim_050086C0, | ||||
|     &klepto_seg5_anim_05008A18, | ||||
|     &klepto_seg5_anim_05008CE4, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable klepto_seg5_anims_05008CFC = { | ||||
|     .anims = { | ||||
|         &klepto_seg5_anim_05005E44, | ||||
|         &klepto_seg5_anim_05007574, | ||||
|         &klepto_seg5_anim_050079B0, | ||||
|         &klepto_seg5_anim_05007E34, | ||||
|         &klepto_seg5_anim_050086C0, | ||||
|         &klepto_seg5_anim_05008A18, | ||||
|         &klepto_seg5_anim_05008CE4, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 7 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,20 +1,23 @@ | |||
| // 0x06011364
 | ||||
| const struct Animation *const koopa_seg6_anims_06011364[] = { | ||||
|     &koopa_seg6_anim_0600CC24, | ||||
|     &koopa_seg6_anim_0600CFB8, | ||||
|     &koopa_seg6_anim_0600D518, | ||||
|     &koopa_seg6_anim_0600D804, | ||||
|     &koopa_seg6_anim_0600DD90, | ||||
|     &koopa_seg6_anim_0600E32C, | ||||
|     &koopa_seg6_anim_0600E928, | ||||
|     &koopa_seg6_anim_0600F3EC, | ||||
|     &koopa_seg6_anim_0600FB1C, | ||||
|     &koopa_seg6_anim_06010258, | ||||
|     &koopa_seg6_anim_06010634, | ||||
|     &koopa_seg6_anim_06010E48, | ||||
|     &koopa_seg6_anim_0601134C, // Hmm.. these last 2 are swapped.
 | ||||
|     &koopa_seg6_anim_060110D8, | ||||
|     NULL, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable koopa_seg6_anims_06011364 = { | ||||
|     .anims = { | ||||
|         &koopa_seg6_anim_0600CC24, | ||||
|         &koopa_seg6_anim_0600CFB8, | ||||
|         &koopa_seg6_anim_0600D518, | ||||
|         &koopa_seg6_anim_0600D804, | ||||
|         &koopa_seg6_anim_0600DD90, | ||||
|         &koopa_seg6_anim_0600E32C, | ||||
|         &koopa_seg6_anim_0600E928, | ||||
|         &koopa_seg6_anim_0600F3EC, | ||||
|         &koopa_seg6_anim_0600FB1C, | ||||
|         &koopa_seg6_anim_06010258, | ||||
|         &koopa_seg6_anim_06010634, | ||||
|         &koopa_seg6_anim_06010E48, | ||||
|         &koopa_seg6_anim_0601134C, // Hmm.. these last 2 are swapped.
 | ||||
|         &koopa_seg6_anim_060110D8, | ||||
|         NULL, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 14 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // 0x06001028
 | ||||
| const struct Animation *const koopa_flag_seg6_anims_06001028[] = { | ||||
|     &koopa_flag_seg6_anim_06001010, | ||||
|     NULL, | ||||
| const struct AnimationTable koopa_flag_seg6_anims_06001028 = { | ||||
|     .anims = { | ||||
|         &koopa_flag_seg6_anim_06001010, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // 0x060058F8
 | ||||
| const struct Animation *const lakitu_seg6_anims_060058F8[] = { | ||||
|     &lakitu_seg6_anim_060058E0, | ||||
|     NULL, | ||||
| const struct AnimationTable lakitu_seg6_anims_060058F8 = { | ||||
|     .anims = { | ||||
|         &lakitu_seg6_anim_060058E0, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,10 +1,13 @@ | |||
| // 0x050144D4
 | ||||
| const struct Animation *const lakitu_enemy_seg5_anims_050144D4[] = { | ||||
|     &lakitu_enemy_seg5_anim_05013EDC, | ||||
|     &lakitu_enemy_seg5_anim_050140E8, | ||||
|     &lakitu_enemy_seg5_anim_050142E0, | ||||
|     &lakitu_enemy_seg5_anim_050144BC, | ||||
|     NULL, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable lakitu_enemy_seg5_anims_050144D4 = { | ||||
|     .anims = { | ||||
|         &lakitu_enemy_seg5_anim_05013EDC, | ||||
|         &lakitu_enemy_seg5_anim_050140E8, | ||||
|         &lakitu_enemy_seg5_anim_050142E0, | ||||
|         &lakitu_enemy_seg5_anim_050144BC, | ||||
|         NULL, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 4 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x05009B14
 | ||||
| const struct Animation *const mad_piano_seg5_anims_05009B14[] = { | ||||
|     &mad_piano_seg5_anim_05009A04, | ||||
|     &mad_piano_seg5_anim_05009AFC, | ||||
|     NULL, | ||||
| const struct AnimationTable mad_piano_seg5_anims_05009B14 = { | ||||
|     .anims = { | ||||
|         &mad_piano_seg5_anim_05009A04, | ||||
|         &mad_piano_seg5_anim_05009AFC, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x05008EB4
 | ||||
| const struct Animation *const manta_seg5_anims_05008EB4[] = { | ||||
|     &manta_seg5_anim_05008CFC, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable manta_seg5_anims_05008EB4 = { | ||||
|     .anims = { | ||||
|         &manta_seg5_anim_05008CFC, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,10 +1,13 @@ | |||
| // 0x06015634
 | ||||
| const struct Animation *const mips_seg6_anims_06015634[] = { | ||||
|     &mips_seg6_anim_06014B94, | ||||
|     &mips_seg6_anim_060139F8, | ||||
|     &mips_seg6_anim_06013248, | ||||
|     &mips_seg6_anim_0601561C, | ||||
|     &mips_seg6_anim_0601369C, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable mips_seg6_anims_06015634 = { | ||||
|     .anims = { | ||||
|         &mips_seg6_anim_06014B94, | ||||
|         &mips_seg6_anim_060139F8, | ||||
|         &mips_seg6_anim_06013248, | ||||
|         &mips_seg6_anim_0601561C, | ||||
|         &mips_seg6_anim_0601369C, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 5 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,8 +1,11 @@ | |||
| // 0x06005E5C
 | ||||
| const struct Animation *const moneybag_seg6_anims_06005E5C[] = { | ||||
|     &moneybag_seg6_anim_06005AD8, | ||||
|     &moneybag_seg6_anim_06005BEC, | ||||
|     &moneybag_seg6_anim_06005C98, | ||||
|     &moneybag_seg6_anim_06005D3C, | ||||
|     &moneybag_seg6_anim_06005E44, | ||||
| const struct AnimationTable moneybag_seg6_anims_06005E5C = { | ||||
|     .anims = { | ||||
|         &moneybag_seg6_anim_06005AD8, | ||||
|         &moneybag_seg6_anim_06005BEC, | ||||
|         &moneybag_seg6_anim_06005C98, | ||||
|         &moneybag_seg6_anim_06005D3C, | ||||
|         &moneybag_seg6_anim_06005E44, | ||||
|     }, | ||||
|     .count = 5 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,15 +1,18 @@ | |||
| // 0x05007248
 | ||||
| const struct Animation *const monty_mole_seg5_anims_05007248[] = { | ||||
|     &monty_mole_seg5_anim_05004FEC, | ||||
|     &monty_mole_seg5_anim_0500527C, | ||||
|     &monty_mole_seg5_anim_050054B0, | ||||
|     &monty_mole_seg5_anim_050062B0, | ||||
|     &monty_mole_seg5_anim_050065C0, | ||||
|     &monty_mole_seg5_anim_05006880, | ||||
|     &monty_mole_seg5_anim_05006B10, | ||||
|     &monty_mole_seg5_anim_05006DB8, | ||||
|     &monty_mole_seg5_anim_05007230, | ||||
|     &monty_mole_seg5_anim_050065D8, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable monty_mole_seg5_anims_05007248 = { | ||||
|     .anims = { | ||||
|         &monty_mole_seg5_anim_05004FEC, | ||||
|         &monty_mole_seg5_anim_0500527C, | ||||
|         &monty_mole_seg5_anim_050054B0, | ||||
|         &monty_mole_seg5_anim_050062B0, | ||||
|         &monty_mole_seg5_anim_050065C0, | ||||
|         &monty_mole_seg5_anim_05006880, | ||||
|         &monty_mole_seg5_anim_05006B10, | ||||
|         &monty_mole_seg5_anim_05006DB8, | ||||
|         &monty_mole_seg5_anim_05007230, | ||||
|         &monty_mole_seg5_anim_050065D8, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 10 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,16 +1,19 @@ | |||
| // 0x0501C41C
 | ||||
| const struct Animation *const peach_seg5_anims_0501C41C[] = { | ||||
|     &peach_seg5_anim_0500C638, | ||||
|     &peach_seg5_anim_0500E6B4, | ||||
|     &peach_seg5_anim_0500ED94, | ||||
|     &peach_seg5_anim_0500F474, | ||||
|     &peach_seg5_anim_0500FE84, | ||||
|     &peach_seg5_anim_05011050, | ||||
|     &peach_seg5_anim_05012F40, | ||||
|     &peach_seg5_anim_05015468, | ||||
|     &peach_seg5_anim_05016798, | ||||
|     &peach_seg5_anim_05018664, | ||||
|     &peach_seg5_anim_0501B328, | ||||
|     &peach_seg5_anim_0501C404, | ||||
|     NULL, | ||||
| const struct AnimationTable peach_seg5_anims_0501C41C = { | ||||
|     .anims = { | ||||
|         &peach_seg5_anim_0500C638, | ||||
|         &peach_seg5_anim_0500E6B4, | ||||
|         &peach_seg5_anim_0500ED94, | ||||
|         &peach_seg5_anim_0500F474, | ||||
|         &peach_seg5_anim_0500FE84, | ||||
|         &peach_seg5_anim_05011050, | ||||
|         &peach_seg5_anim_05012F40, | ||||
|         &peach_seg5_anim_05015468, | ||||
|         &peach_seg5_anim_05016798, | ||||
|         &peach_seg5_anim_05018664, | ||||
|         &peach_seg5_anim_0501B328, | ||||
|         &peach_seg5_anim_0501C404, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 12 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,8 +1,11 @@ | |||
| // 0x05008B74
 | ||||
| const struct Animation *const penguin_seg5_anims_05008B74[] = { | ||||
|     &penguin_seg5_anim_05008B5C, | ||||
|     &penguin_seg5_anim_050079E4, | ||||
|     &penguin_seg5_anim_05007DCC, | ||||
|     &penguin_seg5_anim_050087C0, | ||||
|     &penguin_seg5_anim_05008B5C, // duplicate pointer?
 | ||||
| const struct AnimationTable penguin_seg5_anims_05008B74 = { | ||||
|     .anims = { | ||||
|         &penguin_seg5_anim_05008B5C, | ||||
|         &penguin_seg5_anim_050079E4, | ||||
|         &penguin_seg5_anim_05007DCC, | ||||
|         &penguin_seg5_anim_050087C0, | ||||
|         &penguin_seg5_anim_05008B5C, // duplicate pointer?
 | ||||
|     }, | ||||
|     .count = 5 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,16 +1,19 @@ | |||
| // 0x0601C31C
 | ||||
| const struct Animation *const piranha_plant_seg6_anims_0601C31C[] = { | ||||
|     &piranha_plant_seg6_anim_06017C38, | ||||
|     &piranha_plant_seg6_anim_06017D88, | ||||
|     &piranha_plant_seg6_anim_060187B0, | ||||
|     &piranha_plant_seg6_anim_06018BA8, | ||||
|     &piranha_plant_seg6_anim_06019854, | ||||
|     &piranha_plant_seg6_anim_0601A014, | ||||
|     &piranha_plant_seg6_anim_0601AF34, | ||||
|     &piranha_plant_seg6_anim_0601AAE4, | ||||
|     &piranha_plant_seg6_anim_0601B634, | ||||
|     &piranha_plant_seg6_anim_0601C304, | ||||
|     NULL, | ||||
| const struct AnimationTable piranha_plant_seg6_anims_0601C31C = { | ||||
|     .anims = { | ||||
|         &piranha_plant_seg6_anim_06017C38, | ||||
|         &piranha_plant_seg6_anim_06017D88, | ||||
|         &piranha_plant_seg6_anim_060187B0, | ||||
|         &piranha_plant_seg6_anim_06018BA8, | ||||
|         &piranha_plant_seg6_anim_06019854, | ||||
|         &piranha_plant_seg6_anim_0601A014, | ||||
|         &piranha_plant_seg6_anim_0601AF34, | ||||
|         &piranha_plant_seg6_anim_0601AAE4, | ||||
|         &piranha_plant_seg6_anim_0601B634, | ||||
|         &piranha_plant_seg6_anim_0601C304, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 10 | ||||
| }; | ||||
| 
 | ||||
| // huh? this isnt following the Bin ID format?
 | ||||
|  |  | |||
|  | @ -1,4 +1,7 @@ | |||
| // 0x06015064
 | ||||
| const struct Animation *const scuttlebug_seg6_anims_06015064[] = { | ||||
|     &scuttlebug_seg6_anim_0601504C, | ||||
| const struct AnimationTable scuttlebug_seg6_anims_06015064 = { | ||||
|     .anims = { | ||||
|         &scuttlebug_seg6_anim_0601504C, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,4 +1,7 @@ | |||
| // 0x0600A4D4
 | ||||
| const struct Animation *const seaweed_seg6_anims_0600A4D4[] = { | ||||
|     &seaweed_seg6_anim_0600A4BC, | ||||
| const struct AnimationTable seaweed_seg6_anims_0600A4D4 = { | ||||
|     .anims = { | ||||
|         &seaweed_seg6_anim_0600A4BC, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // 0x06007DE0
 | ||||
| const struct Animation *const skeeter_seg6_anims_06007DE0[] = { | ||||
|     &skeeter_seg6_anim_06005D44, | ||||
|     &skeeter_seg6_anim_06006B70, | ||||
|     &skeeter_seg6_anim_060071E0, | ||||
|     &skeeter_seg6_anim_06007DC8, | ||||
| const struct AnimationTable skeeter_seg6_anims_06007DE0 = { | ||||
|     .anims = { | ||||
|         &skeeter_seg6_anim_06005D44, | ||||
|         &skeeter_seg6_anim_06006B70, | ||||
|         &skeeter_seg6_anim_060071E0, | ||||
|         &skeeter_seg6_anim_06007DC8, | ||||
|     }, | ||||
|     .count = 4 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // 0x0500D118
 | ||||
| const struct Animation *const snowman_seg5_anims_0500D118[] = { | ||||
|     &snowman_seg5_anim_0500CED8, | ||||
|     &snowman_seg5_anim_0500D100, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable snowman_seg5_anims_0500D118 = { | ||||
|     .anims = { | ||||
|         &snowman_seg5_anim_0500CED8, | ||||
|         &snowman_seg5_anim_0500D100, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // 0x05002D68
 | ||||
| const struct Animation *const spindrift_seg5_anims_05002D68[] = { | ||||
|     &spindrift_seg5_anim_050006AC, | ||||
|     NULL, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable spindrift_seg5_anims_05002D68 = { | ||||
|     .anims = { | ||||
|         &spindrift_seg5_anim_050006AC, | ||||
|         NULL, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x05016EAC
 | ||||
| const struct Animation *const spiny_seg5_anims_05016EAC[] = { | ||||
|     &spiny_seg5_anim_05016E94, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable spiny_seg5_anims_05016EAC = { | ||||
|     .anims = { | ||||
|         &spiny_seg5_anim_05016E94, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x050157E4
 | ||||
| const struct Animation *const spiny_egg_seg5_anims_050157E4[] = { | ||||
|     &spiny_egg_seg5_anim_050157CC, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable spiny_egg_seg5_anims_050157E4 = { | ||||
|     .anims = { | ||||
|         &spiny_egg_seg5_anim_050157CC, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,4 +1,7 @@ | |||
| // 0x0500AE54
 | ||||
| const struct Animation *const sushi_seg5_anims_0500AE54[] = { | ||||
|     &sushi_seg5_anim_0500AE3C, | ||||
| const struct AnimationTable sushi_seg5_anims_0500AE54 = { | ||||
|     .anims = { | ||||
|         &sushi_seg5_anim_0500AE3C, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // 0x060070D0
 | ||||
| const struct Animation *const swoop_seg6_anims_060070D0[] = { | ||||
|     &swoop_seg6_anim_06006E88, | ||||
|     &swoop_seg6_anim_060070B8, | ||||
| const struct AnimationTable swoop_seg6_anims_060070D0 = { | ||||
|     .anims = { | ||||
|         &swoop_seg6_anim_06006E88, | ||||
|         &swoop_seg6_anim_060070B8, | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,11 +1,14 @@ | |||
| // 0x0600FB58
 | ||||
| const struct Animation *const toad_seg6_anims_0600FB58[] = { | ||||
|     &toad_seg6_anim_0600B66C, | ||||
|     &toad_seg6_anim_0600CE78, | ||||
|     &toad_seg6_anim_0600E414, | ||||
|     &toad_seg6_anim_0600FB40, | ||||
|     &toad_seg6_anim_060099F0, | ||||
|     &toad_seg6_anim_0600A0D0, | ||||
|     &toad_seg6_anim_06008F7C, | ||||
|     &toad_seg6_anim_06009310, | ||||
| const struct AnimationTable toad_seg6_anims_0600FB58 = { | ||||
|     .anims = { | ||||
|         &toad_seg6_anim_0600B66C, | ||||
|         &toad_seg6_anim_0600CE78, | ||||
|         &toad_seg6_anim_0600E414, | ||||
|         &toad_seg6_anim_0600FB40, | ||||
|         &toad_seg6_anim_060099F0, | ||||
|         &toad_seg6_anim_0600A0D0, | ||||
|         &toad_seg6_anim_06008F7C, | ||||
|         &toad_seg6_anim_06009310, | ||||
|     }, | ||||
|     .count = 8 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,18 +1,21 @@ | |||
| // 0x05015784
 | ||||
| const struct Animation *const ukiki_seg5_anims_05015784[] = { | ||||
|     &ukiki_seg5_anim_0500D658, | ||||
|     &ukiki_seg5_anim_0500DC80, | ||||
|     &ukiki_seg5_anim_0500DDEC, | ||||
|     &ukiki_seg5_anim_0500EACC, | ||||
|     &ukiki_seg5_anim_0500EEA8, | ||||
|     &ukiki_seg5_anim_0500F530, | ||||
|     &ukiki_seg5_anim_0500FC84, | ||||
|     &ukiki_seg5_anim_0501006C, | ||||
|     &ukiki_seg5_anim_050103F4, | ||||
|     &ukiki_seg5_anim_05012ABC, | ||||
|     &ukiki_seg5_anim_05014BE4, | ||||
|     &ukiki_seg5_anim_050153C4, | ||||
|     &ukiki_seg5_anim_0501576C, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable ukiki_seg5_anims_05015784 = { | ||||
|     .anims = { | ||||
|         &ukiki_seg5_anim_0500D658, | ||||
|         &ukiki_seg5_anim_0500DC80, | ||||
|         &ukiki_seg5_anim_0500DDEC, | ||||
|         &ukiki_seg5_anim_0500EACC, | ||||
|         &ukiki_seg5_anim_0500EEA8, | ||||
|         &ukiki_seg5_anim_0500F530, | ||||
|         &ukiki_seg5_anim_0500FC84, | ||||
|         &ukiki_seg5_anim_0501006C, | ||||
|         &ukiki_seg5_anim_050103F4, | ||||
|         &ukiki_seg5_anim_05012ABC, | ||||
|         &ukiki_seg5_anim_05014BE4, | ||||
|         &ukiki_seg5_anim_050153C4, | ||||
|         &ukiki_seg5_anim_0501576C, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 13 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,10 +1,13 @@ | |||
| // 0x05012824
 | ||||
| const struct Animation *const unagi_seg5_anims_05012824[] = { | ||||
|     &unagi_seg5_anim_0500FBF4, | ||||
|     &unagi_seg5_anim_05010488, | ||||
|     &unagi_seg5_anim_05010B54, | ||||
|     &unagi_seg5_anim_05011488, | ||||
|     &unagi_seg5_anim_05011890, | ||||
|     &unagi_seg5_anim_05011D40, | ||||
|     &unagi_seg5_anim_0501280C, | ||||
| const struct AnimationTable unagi_seg5_anims_05012824 = { | ||||
|     .anims = { | ||||
|         &unagi_seg5_anim_0500FBF4, | ||||
|         &unagi_seg5_anim_05010488, | ||||
|         &unagi_seg5_anim_05010B54, | ||||
|         &unagi_seg5_anim_05011488, | ||||
|         &unagi_seg5_anim_05011890, | ||||
|         &unagi_seg5_anim_05011D40, | ||||
|         &unagi_seg5_anim_0501280C, | ||||
|     }, | ||||
|     .count = 7 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| // 0x06013F7C
 | ||||
| const struct Animation *const water_ring_seg6_anims_06013F7C[] = { | ||||
|     &water_ring_seg6_anim_06013F64, | ||||
|     NULL, | ||||
|     NULL, | ||||
| const struct AnimationTable water_ring_seg6_anims_06013F7C = { | ||||
|     .anims = { | ||||
|         &water_ring_seg6_anim_06013F64, | ||||
|         NULL, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // 0x06020A04
 | ||||
| const struct Animation *const whomp_seg6_anims_06020A04[] = { | ||||
|     &whomp_seg6_anim_060209EC, | ||||
|     &whomp_seg6_anim_060202DC, | ||||
| const struct AnimationTable whomp_seg6_anims_06020A04 = { | ||||
|     .anims = { | ||||
|         &whomp_seg6_anim_060209EC, | ||||
|         &whomp_seg6_anim_060202DC, | ||||
|     }, | ||||
|     .count = 2 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,4 +1,7 @@ | |||
| // 0x0500C874
 | ||||
| const struct Animation *const wiggler_seg5_anims_0500C874[] = { | ||||
|     &wiggler_seg5_anim_0500C760, | ||||
| const struct AnimationTable wiggler_seg5_anims_0500C874 = { | ||||
|     .anims = { | ||||
|         &wiggler_seg5_anim_0500C760, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,4 +1,7 @@ | |||
| // 0x0500EC8C
 | ||||
| const struct Animation *const wiggler_seg5_anims_0500EC8C[] = { | ||||
|     &wiggler_seg5_anim_0500EC74, | ||||
| const struct AnimationTable wiggler_seg5_anims_0500EC8C = { | ||||
|     .anims = { | ||||
|         &wiggler_seg5_anim_0500EC74, | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // 0x05024100
 | ||||
| const struct Animation *const yoshi_seg5_anims_05024100[] = { | ||||
|     &yoshi_seg5_anim_050233A4, | ||||
|     &yoshi_seg5_anim_05023E4C, | ||||
|     &yoshi_seg5_anim_050240E8, | ||||
|     NULL, | ||||
| const struct AnimationTable yoshi_seg5_anims_05024100 = { | ||||
|     .anims = { | ||||
|         &yoshi_seg5_anim_050233A4, | ||||
|         &yoshi_seg5_anim_05023E4C, | ||||
|         &yoshi_seg5_anim_050240E8, | ||||
|         NULL, | ||||
|     }, | ||||
|     .count = 3 | ||||
| }; | ||||
|  |  | |||
|  | @ -786,6 +786,32 @@ def process_files(): | |||
|         processed_files.append(process_file(f)) | ||||
|     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): | ||||
|  | @ -847,6 +873,9 @@ def doc_function(fname, function): | |||
|     if not function['implemented']: | ||||
|         return '' | ||||
| 
 | ||||
|     # debug print out lua nuke functions | ||||
|     # output_nuke_function(fname, function) | ||||
| 
 | ||||
|     if not doc_should_document(fname, function['identifier']): | ||||
|         return '' | ||||
| 
 | ||||
|  |  | |||
|  | @ -102,6 +102,8 @@ override_field_immutable = { | |||
|     "GraphNode": [ "next", "prev", "parent" ], | ||||
|     "ObjectWarpNode": [ "next "], | ||||
|     "SpawnInfo": [ "next" ], | ||||
|     "Animation": [ "length" ], | ||||
|     "AnimationTable": [ "count" ], | ||||
| } | ||||
| 
 | ||||
| override_field_version_excludes = { | ||||
|  |  | |||
|  | @ -24,6 +24,9 @@ | |||
| --- @field public unusedBoneCount integer | ||||
| --- @field public values Pointer_integer | ||||
| 
 | ||||
| --- @class AnimationTable | ||||
| --- @field public count integer | ||||
| 
 | ||||
| --- @class Area | ||||
| --- @field public camera Camera | ||||
| --- @field public flags integer | ||||
|  |  | |||
|  | @ -202,7 +202,7 @@ const BehaviorScript bhvKingBobomb[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, king_bobomb_seg5_anims_0500FE30), | ||||
|     LOAD_ANIMATIONS(oAnimations, &king_bobomb_seg5_anims_0500FE30), | ||||
|     SET_INT(oInteractType, INTERACT_GRABBABLE), | ||||
|     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), | ||||
|  | @ -432,7 +432,7 @@ const BehaviorScript bhvChuckya[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, chuckya_seg8_anims_0800C070), | ||||
|     LOAD_ANIMATIONS(oAnimations, &chuckya_seg8_anims_0800C070), | ||||
|     ANIMATE(5), | ||||
|     SET_INT(oInteractType, INTERACT_GRABBABLE), | ||||
|     SET_HITBOX(/*Radius*/ 150, /*Height*/ 100), | ||||
|  | @ -879,7 +879,7 @@ const BehaviorScript bhvDoor[] = { | |||
|     SET_INT(oInteractType, INTERACT_DOOR), | ||||
|     // 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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, door_seg3_anims_030156C0), | ||||
|     LOAD_ANIMATIONS(oAnimations, &door_seg3_anims_030156C0), | ||||
|     ANIMATE(0), | ||||
|     LOAD_COLLISION_DATA(door_seg3_collision_0301CE78), | ||||
|     SET_HITBOX(/*Radius*/ 80, /*Height*/ 100), | ||||
|  | @ -1139,7 +1139,7 @@ const BehaviorScript bhvEndToad[] = { | |||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     ID(id_bhvEndToad), | ||||
|     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), | ||||
|     BEGIN_LOOP(), | ||||
|         CALL_NATIVE(bhv_end_toad_loop), | ||||
|  | @ -1150,7 +1150,7 @@ const BehaviorScript bhvEndPeach[] = { | |||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     ID(id_bhvEndPeach), | ||||
|     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), | ||||
|     BEGIN_LOOP(), | ||||
|         CALL_NATIVE(bhv_end_peach_loop), | ||||
|  | @ -1440,7 +1440,7 @@ const BehaviorScript bhvSpindrift[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, spindrift_seg5_anims_05002D68), | ||||
|     LOAD_ANIMATIONS(oAnimations, &spindrift_seg5_anims_05002D68), | ||||
|     ANIMATE(0), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0), | ||||
|     SET_HOME(), | ||||
|  | @ -1649,7 +1649,7 @@ const BehaviorScript bhvHeaveHo[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, heave_ho_seg5_anims_0501534C), | ||||
|     LOAD_ANIMATIONS(oAnimations, &heave_ho_seg5_anims_0501534C), | ||||
|     ANIMATE(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), | ||||
|  | @ -1864,7 +1864,7 @@ const BehaviorScript bhvBowser[] = { | |||
|     SET_HITBOX(/*Radius*/ 400, /*Height*/ 400), | ||||
|     DROP_TO_FLOOR(), | ||||
|     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_BOWSER_BOMB_CHILD_OBJ, /*Behavior*/ bhvBowserFlameSpawn), | ||||
|     SPAWN_OBJ(/*Model*/ MODEL_NONE, /*Behavior*/ bhvBowserTailAnchor), | ||||
|  | @ -2031,7 +2031,7 @@ const BehaviorScript bhvBlueFish[] = { | |||
|     ID(id_bhvBlueFish), | ||||
|     OR_INT(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)), | ||||
|     SET_HOME(), | ||||
|     LOAD_ANIMATIONS(oAnimations, blue_fish_seg3_anims_0301C2B0), | ||||
|     LOAD_ANIMATIONS(oAnimations, &blue_fish_seg3_anims_0301C2B0), | ||||
|     ANIMATE(0), | ||||
|     BEGIN_LOOP(), | ||||
|         CALL_NATIVE(bhv_blue_fish_movement_loop), | ||||
|  | @ -2074,7 +2074,7 @@ const BehaviorScript bhvCheckerboardPlatformSub[] = { | |||
| const BehaviorScript bhvBowserKeyUnlockDoor[] = { | ||||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     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), | ||||
|     BEGIN_LOOP(), | ||||
|         CALL_NATIVE(bhv_bowser_key_unlock_door_loop), | ||||
|  | @ -2084,7 +2084,7 @@ const BehaviorScript bhvBowserKeyUnlockDoor[] = { | |||
| const BehaviorScript bhvBowserKeyCourseExit[] = { | ||||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     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), | ||||
|     BEGIN_LOOP(), | ||||
|         CALL_NATIVE(bhv_bowser_key_course_exit_loop), | ||||
|  | @ -2163,7 +2163,7 @@ const BehaviorScript bhvMacroUkiki[] = { | |||
|     SET_HITBOX(/*Radius*/ 40, /*Height*/ 40), | ||||
|     SET_INT(oIntangibleTimer, 0), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, ukiki_seg5_anims_05015784), | ||||
|     LOAD_ANIMATIONS(oAnimations, &ukiki_seg5_anims_05015784), | ||||
|     ANIMATE(0), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0), | ||||
|     SET_HOME(), | ||||
|  | @ -2383,7 +2383,7 @@ const BehaviorScript bhvPiranhaPlant[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, piranha_plant_seg6_anims_0601C31C), | ||||
|     LOAD_ANIMATIONS(oAnimations, &piranha_plant_seg6_anims_0601C31C), | ||||
|     ANIMATE(0), | ||||
|     SET_INTERACT_TYPE(INTERACT_DAMAGE), | ||||
|     SET_HITBOX(/*Radius*/ 100, /*Height*/ 200), | ||||
|  | @ -2436,7 +2436,7 @@ const BehaviorScript bhvTuxiesMother[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, penguin_seg5_anims_05008B74), | ||||
|     LOAD_ANIMATIONS(oAnimations, &penguin_seg5_anims_05008B74), | ||||
|     ANIMATE(3), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0), | ||||
|     SET_HOME(), | ||||
|  | @ -2465,7 +2465,7 @@ const BehaviorScript 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)), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, penguin_seg5_anims_05008B74), | ||||
|     LOAD_ANIMATIONS(oAnimations, &penguin_seg5_anims_05008B74), | ||||
|     ANIMATE(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), | ||||
|  | @ -2555,7 +2555,7 @@ const BehaviorScript bhvBub[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, bub_seg6_anims_06012354), | ||||
|     LOAD_ANIMATIONS(oAnimations, &bub_seg6_anims_06012354), | ||||
|     ANIMATE(0), | ||||
|     SET_HITBOX_WITH_OFFSET(/*Radius*/ 20, /*Height*/ 10, /*Downwards offset*/ 10), | ||||
|     SET_INTERACT_TYPE(INTERACT_DAMAGE), | ||||
|  | @ -2642,7 +2642,7 @@ const BehaviorScript bhvSushiShark[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, sushi_seg5_anims_0500AE54), | ||||
|     LOAD_ANIMATIONS(oAnimations, &sushi_seg5_anims_0500AE54), | ||||
|     SPAWN_OBJ(/*Model*/ MODEL_NONE, /*Behavior*/ bhvSushiSharkCollisionChild), | ||||
|     SET_HITBOX_WITH_OFFSET(/*Radius*/ 100, /*Height*/ 50, /*Downwards offset*/ 50), | ||||
|     SET_INTERACT_TYPE(INTERACT_DAMAGE), | ||||
|  | @ -3269,7 +3269,7 @@ const BehaviorScript bhvScuttlebug[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, scuttlebug_seg6_anims_06015064), | ||||
|     LOAD_ANIMATIONS(oAnimations, &scuttlebug_seg6_anims_06015064), | ||||
|     ANIMATE(0), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 80, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 200, /*Unused*/ 0, 0), | ||||
|     SET_HOME(), | ||||
|  | @ -3302,7 +3302,7 @@ const BehaviorScript bhvSmallWhomp[] = { | |||
|     SET_INT(oNumLootCoins, 5), | ||||
|     // 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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, whomp_seg6_anims_06020A04), | ||||
|     LOAD_ANIMATIONS(oAnimations, &whomp_seg6_anims_06020A04), | ||||
|     LOAD_COLLISION_DATA(whomp_seg6_collision_06020A0C), | ||||
|     ANIMATE(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), | ||||
|     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_ANIMATIONS(oAnimations, penguin_seg5_anims_05008B74), | ||||
|     LOAD_ANIMATIONS(oAnimations, &penguin_seg5_anims_05008B74), | ||||
|     ANIMATE(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), | ||||
|  | @ -3576,7 +3576,7 @@ const BehaviorScript bhvToadMessage[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, toad_seg6_anims_0600FB58), | ||||
|     LOAD_ANIMATIONS(oAnimations, &toad_seg6_anims_0600FB58), | ||||
|     ANIMATE(6), | ||||
|     SET_INTERACT_TYPE(INTERACT_TEXT), | ||||
|     SET_HITBOX(/*Radius*/ 80, /*Height*/ 100), | ||||
|  | @ -3782,7 +3782,7 @@ const BehaviorScript bhvSeaweed[] = { | |||
|     BEGIN(OBJ_LIST_LEVEL), | ||||
|     ID(id_bhvSeaweed), | ||||
|     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), | ||||
|     CALL_NATIVE(bhv_seaweed_init), | ||||
|     BEGIN_LOOP(), | ||||
|  | @ -3803,7 +3803,7 @@ const BehaviorScript bhvBobomb[] = { | |||
|     BEGIN(OBJ_LIST_DESTRUCTIVE), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, bobomb_seg8_anims_0802396C), | ||||
|     LOAD_ANIMATIONS(oAnimations, &bobomb_seg8_anims_0802396C), | ||||
|     DROP_TO_FLOOR(), | ||||
|     ANIMATE(0), | ||||
|     SET_INT(oIntangibleTimer, 0), | ||||
|  | @ -3832,7 +3832,7 @@ const BehaviorScript bhvBobombBuddy[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, bobomb_seg8_anims_0802396C), | ||||
|     LOAD_ANIMATIONS(oAnimations, &bobomb_seg8_anims_0802396C), | ||||
|     SET_INTERACT_TYPE(INTERACT_TEXT), | ||||
|     DROP_TO_FLOOR(), | ||||
|     SET_HITBOX(/*Radius*/ 100, /*Height*/ 60), | ||||
|  | @ -3851,7 +3851,7 @@ const BehaviorScript bhvBobombBuddyOpensCannon[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, bobomb_seg8_anims_0802396C), | ||||
|     LOAD_ANIMATIONS(oAnimations, &bobomb_seg8_anims_0802396C), | ||||
|     SET_INTERACT_TYPE(INTERACT_TEXT), | ||||
|     DROP_TO_FLOOR(), | ||||
|     SET_HITBOX(/*Radius*/ 100, /*Height*/ 60), | ||||
|  | @ -3932,7 +3932,7 @@ const BehaviorScript bhvHomingAmp[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, amp_seg8_anims_08004034), | ||||
|     LOAD_ANIMATIONS(oAnimations, &_seg8_anims_08004034), | ||||
|     ANIMATE(0), | ||||
|     SET_FLOAT(oGraphYOffset, 40), | ||||
|     SET_INT(oIntangibleTimer, 0), | ||||
|  | @ -3946,7 +3946,7 @@ const BehaviorScript bhvCirclingAmp[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, amp_seg8_anims_08004034), | ||||
|     LOAD_ANIMATIONS(oAnimations, &_seg8_anims_08004034), | ||||
|     ANIMATE(0), | ||||
|     SET_FLOAT(oGraphYOffset, 40), | ||||
|     SET_INT(oIntangibleTimer, 0), | ||||
|  | @ -3960,7 +3960,7 @@ const BehaviorScript bhvButterfly[] = { | |||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     ID(id_bhvButterfly), | ||||
|     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(), | ||||
|     SET_FLOAT(oGraphYOffset, 5), | ||||
|     CALL_NATIVE(bhv_butterfly_init), | ||||
|  | @ -3973,7 +3973,7 @@ const BehaviorScript bhvHoot[] = { | |||
|     BEGIN(OBJ_LIST_POLELIKE), | ||||
|     ID(id_bhvHoot), | ||||
|     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_HITBOX(/*Radius*/ 75, /*Height*/ 75), | ||||
|     CALL_NATIVE(bhv_hoot_init), | ||||
|  | @ -4148,7 +4148,7 @@ const BehaviorScript bhvSmallBully[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     ID(id_bhvSmallBully), | ||||
|     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(), | ||||
|     SET_HOME(), | ||||
|     CALL_NATIVE(bhv_small_bully_init), | ||||
|  | @ -4162,7 +4162,7 @@ const BehaviorScript bhvBigBully[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     ID(id_bhvBigBully), | ||||
|     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(), | ||||
|     SET_HOME(), | ||||
|     CALL_NATIVE(bhv_big_bully_init), | ||||
|  | @ -4176,7 +4176,7 @@ const BehaviorScript bhvBigBullyWithMinions[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     ID(id_bhvBigBullyWithMinions), | ||||
|     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(), | ||||
|     CALL_NATIVE(bhv_big_bully_init), | ||||
|     CALL_NATIVE(bhv_big_bully_with_minions_init), | ||||
|  | @ -4189,7 +4189,7 @@ const BehaviorScript bhvSmallChillBully[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     ID(id_bhvSmallChillBully), | ||||
|     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(), | ||||
|     SET_HOME(), | ||||
|     SET_INT(oBullySubtype, 0x0010), | ||||
|  | @ -4204,7 +4204,7 @@ const BehaviorScript bhvBigChillBully[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     ID(id_bhvBigChillBully), | ||||
|     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(), | ||||
|     SET_HOME(), | ||||
|     SET_INT(oBullySubtype, 0x0010), | ||||
|  | @ -4228,7 +4228,7 @@ const BehaviorScript bhvJetStreamWaterRing[] = { | |||
|     BEGIN(OBJ_LIST_LEVEL), | ||||
|     ID(id_bhvJetStreamWaterRing), | ||||
|     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_INTERACT_TYPE(INTERACT_WATER_RING), | ||||
|     SET_INT(oDamageOrCoinValue, 2), | ||||
|  | @ -4244,7 +4244,7 @@ const BehaviorScript bhvMantaRayWaterRing[] = { | |||
|     BEGIN(OBJ_LIST_LEVEL), | ||||
|     ID(id_bhvMantaRayWaterRing), | ||||
|     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_INTERACT_TYPE(INTERACT_WATER_RING), | ||||
|     SET_INT(oDamageOrCoinValue, 2), | ||||
|  | @ -4393,7 +4393,7 @@ const BehaviorScript bhvMoneybag[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, moneybag_seg6_anims_06005E5C), | ||||
|     LOAD_ANIMATIONS(oAnimations, &moneybag_seg6_anims_06005E5C), | ||||
|     DROP_TO_FLOOR(), | ||||
|     SET_HOME(), | ||||
|     SET_INT(oIntangibleTimer, -1), | ||||
|  | @ -4598,7 +4598,7 @@ const BehaviorScript bhvCastleFlagWaving[] = { | |||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     ID(id_bhvCastleFlagWaving), | ||||
|     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), | ||||
|     CALL_NATIVE(bhv_castle_flag_init), | ||||
|     BEGIN_LOOP(), | ||||
|  | @ -5128,7 +5128,7 @@ const BehaviorScript bhvMantaRay[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     ID(id_bhvMantaRay), | ||||
|     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), | ||||
|     CALL_NATIVE(bhv_manta_ray_init), | ||||
|     BEGIN_LOOP(), | ||||
|  | @ -5249,7 +5249,7 @@ const BehaviorScript bhvMips[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     ID(id_bhvMips), | ||||
|     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), | ||||
|     DROP_TO_FLOOR(), | ||||
|     SET_HITBOX(/*Radius*/ 50, /*Height*/ 75), | ||||
|  | @ -5264,7 +5264,7 @@ const BehaviorScript bhvYoshi[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, yoshi_seg5_anims_05024100), | ||||
|     LOAD_ANIMATIONS(oAnimations, &yoshi_seg5_anims_05024100), | ||||
|     SET_INTERACT_TYPE(INTERACT_TEXT), | ||||
|     DROP_TO_FLOOR(), | ||||
|     SET_HITBOX(/*Radius*/ 160, /*Height*/ 150), | ||||
|  | @ -5282,7 +5282,7 @@ const BehaviorScript 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)), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, koopa_seg6_anims_06011364), | ||||
|     LOAD_ANIMATIONS(oAnimations, &koopa_seg6_anims_06011364), | ||||
|     ANIMATE(9), | ||||
|     SET_HOME(), | ||||
|     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), | ||||
|     OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, koopa_flag_seg6_anims_06001028), | ||||
|     LOAD_ANIMATIONS(oAnimations, &koopa_flag_seg6_anims_06001028), | ||||
|     ANIMATE(0), | ||||
|     BEGIN_LOOP(), | ||||
|         CALL_NATIVE(bhv_pole_base_loop), | ||||
|  | @ -5347,7 +5347,7 @@ const BehaviorScript bhvSwoop[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, swoop_seg6_anims_060070D0), | ||||
|     LOAD_ANIMATIONS(oAnimations, &swoop_seg6_anims_060070D0), | ||||
|     SET_HOME(), | ||||
|     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), | ||||
|  | @ -5361,7 +5361,7 @@ const BehaviorScript bhvFlyGuy[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, flyguy_seg8_anims_08011A64), | ||||
|     LOAD_ANIMATIONS(oAnimations, &flyguy_seg8_anims_08011A64), | ||||
|     ANIMATE(0), | ||||
|     SET_HOME(), | ||||
|     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), | ||||
|     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(), | ||||
|     LOAD_ANIMATIONS(oAnimations, goomba_seg8_anims_0801DA4C), | ||||
|     LOAD_ANIMATIONS(oAnimations, &goomba_seg8_anims_0801DA4C), | ||||
|     SET_HOME(), | ||||
|     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), | ||||
|  | @ -5403,7 +5403,7 @@ const BehaviorScript 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)), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, chain_chomp_seg6_anims_06025178), | ||||
|     LOAD_ANIMATIONS(oAnimations, &chain_chomp_seg6_anims_06025178), | ||||
|     ANIMATE(0), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 0, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 0, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), | ||||
|     HIDE(), | ||||
|  | @ -5462,7 +5462,7 @@ const BehaviorScript 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)), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, wiggler_seg5_anims_0500EC8C), | ||||
|     LOAD_ANIMATIONS(oAnimations, &wiggler_seg5_anims_0500EC8C), | ||||
|     SET_HOME(), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 60, /*Gravity*/ -400, /*Bounciness*/ 0, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), | ||||
|     HIDE(), | ||||
|  | @ -5477,7 +5477,7 @@ const BehaviorScript bhvWigglerBody[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     ID(id_bhvWigglerBody), | ||||
|     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), | ||||
|     SCALE(/*Unused*/ 0, /*Field*/ 400), | ||||
|     BEGIN_LOOP(), | ||||
|  | @ -5489,7 +5489,7 @@ const BehaviorScript bhvEnemyLakitu[] = { | |||
|     BEGIN(OBJ_LIST_PUSHABLE), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, lakitu_enemy_seg5_anims_050144D4), | ||||
|     LOAD_ANIMATIONS(oAnimations, &lakitu_enemy_seg5_anims_050144D4), | ||||
|     ANIMATE(0), | ||||
|     SET_HOME(), | ||||
|     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), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, lakitu_seg6_anims_060058F8), | ||||
|     LOAD_ANIMATIONS(oAnimations, &lakitu_seg6_anims_060058F8), | ||||
|     ANIMATE(0), | ||||
|     CALL_NATIVE(bhv_init_room), | ||||
|     CALL_NATIVE(bhv_camera_lakitu_init), | ||||
|  | @ -5537,7 +5537,7 @@ const BehaviorScript bhvSpiny[] = { | |||
|     BEGIN(OBJ_LIST_PUSHABLE), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, spiny_seg5_anims_05016EAC), | ||||
|     LOAD_ANIMATIONS(oAnimations, &spiny_seg5_anims_05016EAC), | ||||
|     ANIMATE(0), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), | ||||
|     BEGIN_LOOP(), | ||||
|  | @ -5550,7 +5550,7 @@ const BehaviorScript 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)), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, monty_mole_seg5_anims_05007248), | ||||
|     LOAD_ANIMATIONS(oAnimations, &monty_mole_seg5_anims_05007248), | ||||
|     ANIMATE(3), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 30, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), | ||||
|     HIDE(), | ||||
|  | @ -5801,7 +5801,7 @@ const BehaviorScript 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)), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, snowman_seg5_anims_0500D118), | ||||
|     LOAD_ANIMATIONS(oAnimations, &snowman_seg5_anims_0500D118), | ||||
|     ANIMATE(0), | ||||
|     SET_HOME(), | ||||
|     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), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, unagi_seg5_anims_05012824), | ||||
|     LOAD_ANIMATIONS(oAnimations, &unagi_seg5_anims_05012824), | ||||
|     ANIMATE(6), | ||||
|     SET_HOME(), | ||||
|     SCALE(/*Unused*/ 0, /*Field*/ 300), | ||||
|  | @ -5931,7 +5931,7 @@ const BehaviorScript bhvDorrie[] = { | |||
|     ID(id_bhvDorrie), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, dorrie_seg6_anims_0600F638), | ||||
|     LOAD_ANIMATIONS(oAnimations, &dorrie_seg6_anims_0600F638), | ||||
|     SET_HOME(), | ||||
|     SET_FLOAT(oCollisionDistance, 30000), | ||||
|     ADD_FLOAT(oPosX, 2000), | ||||
|  | @ -5947,7 +5947,7 @@ const BehaviorScript 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)), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, chair_seg5_anims_05005784), | ||||
|     LOAD_ANIMATIONS(oAnimations, &chair_seg5_anims_05005784), | ||||
|     ANIMATE(0), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 40, /*Gravity*/ 0, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), | ||||
|     SET_HOME(), | ||||
|  | @ -5963,7 +5963,7 @@ const BehaviorScript 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)), | ||||
|     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_HOME(), | ||||
|     ADD_INT(oMoveAngleYaw, 0x4000), | ||||
|  | @ -5977,7 +5977,7 @@ const BehaviorScript bhvFlyingBookend[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, bookend_seg5_anims_05002540), | ||||
|     LOAD_ANIMATIONS(oAnimations, &bookend_seg5_anims_05002540), | ||||
|     ANIMATE(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), | ||||
|  | @ -6026,7 +6026,7 @@ const BehaviorScript 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)), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, piranha_plant_seg6_anims_0601C31C), | ||||
|     LOAD_ANIMATIONS(oAnimations, &piranha_plant_seg6_anims_0601C31C), | ||||
|     ANIMATE(0), | ||||
|     SET_HOME(), | ||||
|     HIDE(), | ||||
|  | @ -6130,7 +6130,7 @@ const BehaviorScript bhvEyerokHand[] = { | |||
|     BEGIN(OBJ_LIST_SURFACE), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, eyerok_seg5_anims_050116E4), | ||||
|     LOAD_ANIMATIONS(oAnimations, &eyerok_seg5_anims_050116E4), | ||||
|     ANIMATE(6), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 150, /*Gravity*/ 0, /*Bounciness*/ 0, /*Drag strength*/ 0, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), | ||||
|     SET_HOME(), | ||||
|  | @ -6144,7 +6144,7 @@ const BehaviorScript bhvKlepto[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, klepto_seg5_anims_05008CFC), | ||||
|     LOAD_ANIMATIONS(oAnimations, &klepto_seg5_anims_05008CFC), | ||||
|     ANIMATE(0), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 100, /*Gravity*/ 0, /*Bounciness*/ -20, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 200, /*Unused*/ 0, 0), | ||||
|     SET_HOME(), | ||||
|  | @ -6158,7 +6158,7 @@ const BehaviorScript bhvBird[] = { | |||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, birds_seg5_anims_050009E8), | ||||
|     LOAD_ANIMATIONS(oAnimations, &birds_seg5_anims_050009E8), | ||||
|     ANIMATE(0), | ||||
|     HIDE(), | ||||
|     SCALE(/*Unused*/ 0, /*Field*/ 70), | ||||
|  | @ -6171,7 +6171,7 @@ const BehaviorScript bhvRacingPenguin[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, penguin_seg5_anims_05008B74), | ||||
|     LOAD_ANIMATIONS(oAnimations, &penguin_seg5_anims_05008B74), | ||||
|     ANIMATE(3), | ||||
|     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), | ||||
|  | @ -6226,7 +6226,7 @@ const BehaviorScript 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)), | ||||
|     DROP_TO_FLOOR(), | ||||
|     LOAD_ANIMATIONS(oAnimations, clam_shell_seg5_anims_05001744), | ||||
|     LOAD_ANIMATIONS(oAnimations, &clam_shell_seg5_anims_05001744), | ||||
|     SET_FLOAT(oGraphYOffset, 10), | ||||
|     BEGIN_LOOP(), | ||||
|         CALL_NATIVE(bhv_clam_loop), | ||||
|  | @ -6237,7 +6237,7 @@ const BehaviorScript bhvSkeeter[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, skeeter_seg6_anims_06007DE0), | ||||
|     LOAD_ANIMATIONS(oAnimations, &skeeter_seg6_anims_06007DE0), | ||||
|     SET_HOME(), | ||||
|     SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 180, /*Gravity*/ -400, /*Bounciness*/ -50, /*Drag strength*/ 1000, /*Friction*/ 1000, /*Buoyancy*/ 1200, /*Unused*/ 0, 0), | ||||
|     BEGIN_LOOP(), | ||||
|  | @ -6320,7 +6320,7 @@ const BehaviorScript bhvTripletButterfly[] = { | |||
|     BEGIN(OBJ_LIST_GENACTOR), | ||||
|     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)), | ||||
|     LOAD_ANIMATIONS(oAnimations, butterfly_seg3_anims_030056B0), | ||||
|     LOAD_ANIMATIONS(oAnimations, &butterfly_seg3_anims_030056B0), | ||||
|     ANIMATE(0), | ||||
|     HIDE(), | ||||
|     SET_HOME(), | ||||
|  | @ -6347,7 +6347,7 @@ const BehaviorScript bhvBeginningLakitu[] = { | |||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     ID(id_bhvBeginningLakitu), | ||||
|     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), | ||||
|     SET_FLOAT(oOpacity, 0), | ||||
|     BEGIN_LOOP(), | ||||
|  | @ -6359,7 +6359,7 @@ const BehaviorScript bhvBeginningPeach[] = { | |||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     ID(id_bhvBeginningPeach), | ||||
|     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), | ||||
|     BEGIN_LOOP(), | ||||
|         CALL_NATIVE(bhv_intro_peach_loop), | ||||
|  | @ -6370,7 +6370,7 @@ const BehaviorScript bhvEndBirds1[] = { | |||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     ID(id_bhvEndBirds1), | ||||
|     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), | ||||
|     BEGIN_LOOP(), | ||||
|         CALL_NATIVE(bhv_end_birds_1_loop), | ||||
|  | @ -6381,7 +6381,7 @@ const BehaviorScript bhvEndBirds2[] = { | |||
|     BEGIN(OBJ_LIST_DEFAULT), | ||||
|     ID(id_bhvEndBirds2), | ||||
|     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), | ||||
|     BEGIN_LOOP(), | ||||
|         CALL_NATIVE(bhv_end_birds_2_loop), | ||||
|  |  | |||
|  | @ -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)) { | ||||
|         return -1; | ||||
|     } | ||||
|     for (s32 i = 0; aObject->oAnimations[i] != NULL; ++i) { | ||||
|         if (aObject->oAnimations[i] == aObject->header.gfx.animInfo.curAnim) { | ||||
|     struct AnimationTable* animations = aObject->oAnimations; | ||||
|     for (s32 i = 0; i < animations->count; ++i) { | ||||
|         if (animations->anims[i] == aObject->header.gfx.animInfo.curAnim) { | ||||
|             return i; | ||||
|         } | ||||
|     } | ||||
|  |  | |||
|  | @ -88,6 +88,7 @@ extern "C" { | |||
| } | ||||
| 
 | ||||
| #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 | ||||
| 
 | ||||
|  | @ -1206,61 +1207,61 @@ const char* DynOS_Builtin_Col_GetFromData(const Collision* aData) { | |||
| ////////////////
 | ||||
| 
 | ||||
| static const void* sDynosBuiltinAnims[] = { | ||||
|     define_builtin(amp_seg8_anims_08004034), | ||||
|     define_builtin(bobomb_seg8_anims_0802396C), | ||||
|     define_builtin(chuckya_seg8_anims_0800C070), | ||||
|     define_builtin(flyguy_seg8_anims_08011A64), | ||||
|     define_builtin(goomba_seg8_anims_0801DA4C), | ||||
|     define_builtin(blue_fish_seg3_anims_0301C2B0), | ||||
|     define_builtin(bowser_key_seg3_anims_list), | ||||
|     define_builtin(butterfly_seg3_anims_030056B0), | ||||
|     define_builtin(door_seg3_anims_030156C0), | ||||
|     define_builtin(heave_ho_seg5_anims_0501534C), | ||||
|     define_builtin(hoot_seg5_anims_05005768), | ||||
|     define_builtin(blargg_seg5_anims_0500616C), | ||||
|     define_builtin(bully_seg5_anims_0500470C), | ||||
|     define_builtin(king_bobomb_seg5_anims_0500FE30), | ||||
|     define_builtin(clam_shell_seg5_anims_05001744), | ||||
|     define_builtin(manta_seg5_anims_05008EB4), | ||||
|     define_builtin(sushi_seg5_anims_0500AE54), | ||||
|     define_builtin(unagi_seg5_anims_05012824), | ||||
|     define_builtin(eyerok_seg5_anims_050116E4), | ||||
|     define_builtin(klepto_seg5_anims_05008CFC), | ||||
|     define_builtin(monty_mole_seg5_anims_05007248), | ||||
|     define_builtin(ukiki_seg5_anims_05015784), | ||||
|     define_builtin(penguin_seg5_anims_05008B74), | ||||
|     define_builtin(snowman_seg5_anims_0500D118), | ||||
|     define_builtin(spindrift_seg5_anims_05002D68), | ||||
|     define_builtin(bookend_seg5_anims_05002540), | ||||
|     define_builtin(chair_seg5_anims_05005784), | ||||
|     define_builtin(mad_piano_seg5_anims_05009B14), | ||||
|     define_builtin(birds_seg5_anims_050009E8), | ||||
|     define_builtin(peach_seg5_anims_0501C41C), | ||||
|     define_builtin(yoshi_seg5_anims_05024100), | ||||
|     define_builtin(lakitu_enemy_seg5_anims_050144D4), | ||||
|     define_builtin(spiny_seg5_anims_05016EAC), | ||||
|     define_builtin(spiny_egg_seg5_anims_050157E4), | ||||
|     define_builtin(wiggler_seg5_anims_0500C874), | ||||
|     define_builtin(wiggler_seg5_anims_0500EC8C), | ||||
|     define_builtin(bowser_seg6_anims_06057690), | ||||
|     define_builtin(bub_seg6_anims_06012354), | ||||
|     define_builtin(cyan_fish_seg6_anims_0600E264), | ||||
|     define_builtin(seaweed_seg6_anims_0600A4D4), | ||||
|     define_builtin(skeeter_seg6_anims_06007DE0), | ||||
|     define_builtin(water_ring_seg6_anims_06013F7C), | ||||
|     define_builtin(chain_chomp_seg6_anims_06025178), | ||||
|     define_builtin(koopa_seg6_anims_06011364), | ||||
|     define_builtin(koopa_flag_seg6_anims_06001028), | ||||
|     define_builtin(piranha_plant_seg6_anims_0601C31C), | ||||
|     define_builtin(whomp_seg6_anims_06020A04), | ||||
|     define_builtin(lakitu_seg6_anims_060058F8), | ||||
|     define_builtin(mips_seg6_anims_06015634), | ||||
|     define_builtin(toad_seg6_anims_0600FB58), | ||||
|     define_builtin(chilly_chief_seg6_anims_06003994), | ||||
|     define_builtin(moneybag_seg6_anims_06005E5C), | ||||
|     define_builtin(dorrie_seg6_anims_0600F638), | ||||
|     define_builtin(scuttlebug_seg6_anims_06015064), | ||||
|     define_builtin(swoop_seg6_anims_060070D0), | ||||
|     define_builtin_ptr(amp_seg8_anims_08004034), | ||||
|     define_builtin_ptr(bobomb_seg8_anims_0802396C), | ||||
|     define_builtin_ptr(chuckya_seg8_anims_0800C070), | ||||
|     define_builtin_ptr(flyguy_seg8_anims_08011A64), | ||||
|     define_builtin_ptr(goomba_seg8_anims_0801DA4C), | ||||
|     define_builtin_ptr(blue_fish_seg3_anims_0301C2B0), | ||||
|     define_builtin_ptr(bowser_key_seg3_anims_list), | ||||
|     define_builtin_ptr(butterfly_seg3_anims_030056B0), | ||||
|     define_builtin_ptr(door_seg3_anims_030156C0), | ||||
|     define_builtin_ptr(heave_ho_seg5_anims_0501534C), | ||||
|     define_builtin_ptr(hoot_seg5_anims_05005768), | ||||
|     define_builtin_ptr(blargg_seg5_anims_0500616C), | ||||
|     define_builtin_ptr(bully_seg5_anims_0500470C), | ||||
|     define_builtin_ptr(king_bobomb_seg5_anims_0500FE30), | ||||
|     define_builtin_ptr(clam_shell_seg5_anims_05001744), | ||||
|     define_builtin_ptr(manta_seg5_anims_05008EB4), | ||||
|     define_builtin_ptr(sushi_seg5_anims_0500AE54), | ||||
|     define_builtin_ptr(unagi_seg5_anims_05012824), | ||||
|     define_builtin_ptr(eyerok_seg5_anims_050116E4), | ||||
|     define_builtin_ptr(klepto_seg5_anims_05008CFC), | ||||
|     define_builtin_ptr(monty_mole_seg5_anims_05007248), | ||||
|     define_builtin_ptr(ukiki_seg5_anims_05015784), | ||||
|     define_builtin_ptr(penguin_seg5_anims_05008B74), | ||||
|     define_builtin_ptr(snowman_seg5_anims_0500D118), | ||||
|     define_builtin_ptr(spindrift_seg5_anims_05002D68), | ||||
|     define_builtin_ptr(bookend_seg5_anims_05002540), | ||||
|     define_builtin_ptr(chair_seg5_anims_05005784), | ||||
|     define_builtin_ptr(mad_piano_seg5_anims_05009B14), | ||||
|     define_builtin_ptr(birds_seg5_anims_050009E8), | ||||
|     define_builtin_ptr(peach_seg5_anims_0501C41C), | ||||
|     define_builtin_ptr(yoshi_seg5_anims_05024100), | ||||
|     define_builtin_ptr(lakitu_enemy_seg5_anims_050144D4), | ||||
|     define_builtin_ptr(spiny_seg5_anims_05016EAC), | ||||
|     define_builtin_ptr(spiny_egg_seg5_anims_050157E4), | ||||
|     define_builtin_ptr(wiggler_seg5_anims_0500C874), | ||||
|     define_builtin_ptr(wiggler_seg5_anims_0500EC8C), | ||||
|     define_builtin_ptr(bowser_seg6_anims_06057690), | ||||
|     define_builtin_ptr(bub_seg6_anims_06012354), | ||||
|     define_builtin_ptr(cyan_fish_seg6_anims_0600E264), | ||||
|     define_builtin_ptr(seaweed_seg6_anims_0600A4D4), | ||||
|     define_builtin_ptr(skeeter_seg6_anims_06007DE0), | ||||
|     define_builtin_ptr(water_ring_seg6_anims_06013F7C), | ||||
|     define_builtin_ptr(chain_chomp_seg6_anims_06025178), | ||||
|     define_builtin_ptr(koopa_seg6_anims_06011364), | ||||
|     define_builtin_ptr(koopa_flag_seg6_anims_06001028), | ||||
|     define_builtin_ptr(piranha_plant_seg6_anims_0601C31C), | ||||
|     define_builtin_ptr(whomp_seg6_anims_06020A04), | ||||
|     define_builtin_ptr(lakitu_seg6_anims_060058F8), | ||||
|     define_builtin_ptr(mips_seg6_anims_06015634), | ||||
|     define_builtin_ptr(toad_seg6_anims_0600FB58), | ||||
|     define_builtin_ptr(chilly_chief_seg6_anims_06003994), | ||||
|     define_builtin_ptr(moneybag_seg6_anims_06005E5C), | ||||
|     define_builtin_ptr(dorrie_seg6_anims_0600F638), | ||||
|     define_builtin_ptr(scuttlebug_seg6_anims_06015064), | ||||
|     define_builtin_ptr(swoop_seg6_anims_060070D0), | ||||
| }; | ||||
| 
 | ||||
| const Animation *DynOS_Builtin_Anim_GetFromName(const char *aDataName) { | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ | |||
| # Supported Structs | ||||
| - [AnimInfo](#AnimInfo) | ||||
| - [Animation](#Animation) | ||||
| - [AnimationTable](#AnimationTable) | ||||
| - [Area](#Area) | ||||
| - [BassAudio](#BassAudio) | ||||
| - [BehaviorDialogs](#BehaviorDialogs) | ||||
|  | @ -107,7 +108,7 @@ | |||
| | animYTransDivisor | `integer` |  | | ||||
| | flags | `integer` |  | | ||||
| | index | `Pointer` <`integer`> |  | | ||||
| | length | `integer` |  | | ||||
| | length | `integer` | read-only | | ||||
| | loopEnd | `integer` |  | | ||||
| | loopStart | `integer` |  | | ||||
| | startFrame | `integer` |  | | ||||
|  | @ -118,6 +119,16 @@ | |||
| 
 | ||||
| <br /> | ||||
| 
 | ||||
| ## [AnimationTable](#AnimationTable) | ||||
| 
 | ||||
| | Field | Type | Access | | ||||
| | ----- | ---- | ------ | | ||||
| | count | `integer` | read-only | | ||||
| 
 | ||||
| [:arrow_up_small:](#) | ||||
| 
 | ||||
| <br /> | ||||
| 
 | ||||
| ## [Area](#Area) | ||||
| 
 | ||||
| | Field | Type | Access | | ||||
|  |  | |||
|  | @ -105,6 +105,11 @@ struct Animation { | |||
|     /*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) | ||||
| 
 | ||||
| struct GraphNode | ||||
|  | @ -195,7 +200,7 @@ struct Object | |||
|     union { | ||||
|         s16 *asS16P[0x50]; | ||||
|         s32 *asS32P[0x50]; | ||||
|         struct Animation **asAnims[0x50]; | ||||
|         struct AnimationTable *asAnims[0x50]; | ||||
|         struct Waypoint *asWaypoint[0x50]; | ||||
|         struct ChainSegment *asChainSegment[0x50]; | ||||
|         struct Object *asObject[0x50]; | ||||
|  |  | |||
|  | @ -36,6 +36,9 @@ static const struct Animation castle_grounds_seg7_anim_flags = { | |||
| }; | ||||
| 
 | ||||
| // 0x0700C95C - 0x0700C960
 | ||||
| const struct Animation *const castle_grounds_seg7_anims_flags[] = { | ||||
|     &castle_grounds_seg7_anim_flags, // 0x0700C944
 | ||||
| const struct AnimationTable castle_grounds_seg7_anims_flags = { | ||||
|     .anims = { | ||||
|         &castle_grounds_seg7_anim_flags, // 0x0700C944
 | ||||
|     }, | ||||
|     .count = 1 | ||||
| }; | ||||
|  |  | |||
|  | @ -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_0700C728[]; | ||||
| 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_us_dl_0700F2E8[]; | ||||
| extern const Collision castle_grounds_seg7_collision_level[]; | ||||
|  |  | |||
|  | @ -585,9 +585,11 @@ static s32 bhv_cmd_load_animations(void) { | |||
| // Usage: ANIMATE(animIndex)
 | ||||
| static s32 bhv_cmd_animate(void) { | ||||
|     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++; | ||||
|     return BHV_PROC_CONTINUE; | ||||
|  |  | |||
|  | @ -775,16 +775,12 @@ void geo_obj_init_spawninfo(struct GraphNodeObject *graphNode, struct SpawnInfo | |||
| /**
 | ||||
|  * Initialize the animation of an object node | ||||
|  */ | ||||
| void geo_obj_init_animation(struct GraphNodeObject *graphNode, struct Animation **animPtrAddr) { | ||||
|     if (graphNode == NULL)    { return; } | ||||
|     if (animPtrAddr == NULL)  { return; } | ||||
|     if (*animPtrAddr == NULL) { return; } | ||||
| 
 | ||||
|     struct Animation **animSegmented = segmented_to_virtual(animPtrAddr); | ||||
|     struct Animation *anim = segmented_to_virtual(*animSegmented); | ||||
| void geo_obj_init_animation(struct GraphNodeObject *graphNode, const struct Animation * const anim) { | ||||
|     if (!graphNode) { return; } | ||||
|     if (!anim) { return; } | ||||
| 
 | ||||
|     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.animAccel = 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 | ||||
|  */ | ||||
| void geo_obj_init_animation_accel(struct GraphNodeObject *graphNode, struct Animation **animPtrAddr, u32 animAccel) { | ||||
|     if (graphNode == NULL)    { return; } | ||||
|     if (animPtrAddr == NULL)  { return; } | ||||
|     if (*animPtrAddr == NULL) { return; } | ||||
| 
 | ||||
|     struct Animation **animSegmented = segmented_to_virtual(animPtrAddr); | ||||
|     struct Animation *anim = segmented_to_virtual(*animSegmented); | ||||
| void geo_obj_init_animation_accel(struct GraphNodeObject *graphNode, const struct Animation * const anim, u32 animAccel) { | ||||
|     if (!graphNode) { return; } | ||||
|     if (!anim) { return; } | ||||
| 
 | ||||
|     if (graphNode->animInfo.curAnim != anim) { | ||||
|         graphNode->animInfo.curAnim = anim; | ||||
|         graphNode->animInfo.curAnim = (struct Animation*)anim; | ||||
|         graphNode->animInfo.animYTrans = 0; | ||||
|         graphNode->animInfo.animFrameAccelAssist = | ||||
|             (anim->startFrame << 16) + ((anim->flags & ANIM_FLAG_FORWARD) ? animAccel : -animAccel); | ||||
|  |  | |||
|  | @ -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_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_animation(struct GraphNodeObject *graphNode, struct Animation **animPtrAddr); | ||||
| void geo_obj_init_animation_accel(struct GraphNodeObject *graphNode, struct Animation **animPtrAddr, u32 animAccel); | ||||
| void geo_obj_init_animation(struct GraphNodeObject *graphNode, const struct Animation * const anim); | ||||
| void geo_obj_init_animation_accel(struct GraphNodeObject *graphNode, const struct Animation * const anim, u32 animAccel); | ||||
| 
 | ||||
| s32 retrieve_animation_index(s32 frame, u16 **attributes); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1287,14 +1287,16 @@ void bhv_bowser_loop(void) { | |||
|     s32 angleToPlayer = player ? obj_angle_to_object(o, player) : 0; | ||||
| 
 | ||||
|     // look for animation difference and override
 | ||||
| 
 | ||||
|     struct AnimationTable *animations = o->oAnimations; | ||||
|     struct Animation* anim = NULL; | ||||
|     if (o->oAnimations != NULL && networkBowserAnimationIndex <= 26) { | ||||
|         anim = o->oAnimations[networkBowserAnimationIndex]; | ||||
|         if (anim != NULL && o->header.gfx.animInfo.curAnim != anim) { | ||||
|             geo_obj_init_animation(&o->header.gfx, &anim); | ||||
|     if (animations && networkBowserAnimationIndex < animations->count) { | ||||
|         anim = (struct Animation*)animations->anims[networkBowserAnimationIndex]; | ||||
|         if (o->header.gfx.animInfo.curAnim != anim) { | ||||
|             geo_obj_init_animation(&o->header.gfx, anim); | ||||
|         } | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     // If Bowser isn't in a cutscene, It's been played already.
 | ||||
|     if (!bowserCutscenePlayed && (o->oAction != 5 && o->oAction != 6 && o->oAction != 20)) { | ||||
|         bowserCutscenePlayed = TRUE; | ||||
|  | @ -1345,11 +1347,13 @@ void bhv_bowser_loop(void) { | |||
|         } | ||||
| 
 | ||||
|     // update animation index
 | ||||
|     anim = o->oAnimations[networkBowserAnimationIndex]; | ||||
|     if (o->header.gfx.animInfo.curAnim != anim) { | ||||
|         for (s32 i = 0; i < 32; i++) { | ||||
|             if (o->header.gfx.animInfo.curAnim == o->oAnimations[i]) { | ||||
|                 networkBowserAnimationIndex = i; | ||||
|     if (animations) { | ||||
|         anim = (struct Animation*)animations->anims[networkBowserAnimationIndex]; | ||||
|         if (o->header.gfx.animInfo.curAnim != anim) { | ||||
|             for (u32 i = 0; i < animations->count; i++) { | ||||
|                 if (o->header.gfx.animInfo.curAnim == o->oAnimations->anims[i]) { | ||||
|                     networkBowserAnimationIndex = i; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  |  | |||
|  | @ -127,7 +127,7 @@ static void enemy_lakitu_sub_act_no_spiny(void) { | |||
|             if (spiny != NULL) { | ||||
|                 o->prevObj = spiny; | ||||
|                 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->oSubAction = ENEMY_LAKITU_SUB_ACT_HOLD_SPINY; | ||||
|  |  | |||
|  | @ -11,26 +11,26 @@ static void fish_spawner_act_spawn(void) { | |||
|     s32 i = 0; | ||||
|     s32 schoolQuantity = 0; | ||||
|     s16 model = MODEL_ERROR_MODEL; | ||||
|     const struct Animation * const *fishAnimation = NULL; | ||||
|     const struct AnimationTable* fishAnimation = NULL; | ||||
|     struct Object *fishObject; | ||||
| 
 | ||||
|     switch (o->oBehParams2ndByte) { | ||||
|          | ||||
|         // Cases need to be on one line to match with and without optimizations.
 | ||||
|         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; | ||||
| 
 | ||||
|         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; | ||||
| 
 | ||||
|         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; | ||||
| 
 | ||||
|         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; | ||||
|     } | ||||
| 
 | ||||
|  | @ -41,7 +41,7 @@ static void fish_spawner_act_spawn(void) { | |||
|         fishObject = spawn_object(o, model, bhvFish); | ||||
|         if (fishObject == NULL) { continue; } | ||||
|         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); | ||||
|     } | ||||
|     o->oAction = FISH_SPAWNER_ACT_IDLE; | ||||
|  |  | |||
|  | @ -36,28 +36,28 @@ static u8 sSpinyWalkAttackHandlers[] = { | |||
| static u32 spinyAnimCache = 0; | ||||
| 
 | ||||
| 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; | ||||
|     } else if (o->oAnimations == (struct Animation**)spiny_seg5_anims_05016EAC) { | ||||
|     } else if (o->oAnimations == &spiny_seg5_anims_05016EAC) { | ||||
|         spinyAnimCache = 1; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| static void spiny_from_anim_cache(void) { | ||||
|     struct Animation** anim = NULL; | ||||
|     struct AnimationTable* anim = NULL; | ||||
|     switch (spinyAnimCache) { | ||||
|         case 0: | ||||
|             anim = (struct Animation**)spiny_egg_seg5_anims_050157E4; | ||||
|             anim = (struct AnimationTable*)&spiny_egg_seg5_anims_050157E4; | ||||
|             break; | ||||
|         case 1: | ||||
|             anim = (struct Animation**)spiny_seg5_anims_05016EAC; | ||||
|             anim = (struct AnimationTable*)&spiny_seg5_anims_05016EAC; | ||||
|             break; | ||||
|         default: | ||||
|             break; | ||||
|     } | ||||
| 
 | ||||
|     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) { | ||||
|             cur_obj_play_sound_2(SOUND_OBJ_SPINY_UNK59); | ||||
|             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->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)) { | ||||
|                 lakitu->prevObj = o; | ||||
|                 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); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  |  | |||
|  | @ -123,7 +123,7 @@ void bhv_shallow_water_splash_init(void) { | |||
|     { | ||||
|         fishObj = spawn_water_droplet(o, &sWaterDropletFishParams); | ||||
|         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); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -151,7 +151,7 @@ void wiggler_init_segments(void) { | |||
|         for (s32 i = 1; i <= 3; i++) { | ||||
|             struct Object *bodyPart = spawn_object_relative(i, 0, 0, 0, o, MODEL_WIGGLER_BODY, bhvWigglerBody); | ||||
|             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; | ||||
|             } | ||||
|         } | ||||
|  |  | |||
|  | @ -790,8 +790,10 @@ void obj_set_gfx_pos_from_pos(struct Object *obj) { | |||
| } | ||||
| 
 | ||||
| void obj_init_animation(struct Object *obj, s32 animIndex) { | ||||
|     struct Animation **anims = o->oAnimations; | ||||
|     geo_obj_init_animation(&obj->header.gfx, &anims[animIndex]); | ||||
|     struct AnimationTable *animations = o->oAnimations; | ||||
|     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) { | ||||
|     struct Animation **anims = o->oAnimations; | ||||
|     if (anims != NULL) { | ||||
|         geo_obj_init_animation(&o->header.gfx, &anims[animIndex]); | ||||
|     struct AnimationTable *animations = o->oAnimations; | ||||
|     if (animations && (u32)animIndex < animations->count) { | ||||
|         geo_obj_init_animation(&o->header.gfx, animations->anims[animIndex]); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void cur_obj_init_animation_with_sound(s32 animIndex) { | ||||
|     struct Animation **anims = o->oAnimations; | ||||
|     if (anims != NULL) { | ||||
|         geo_obj_init_animation(&o->header.gfx, &anims[animIndex]); | ||||
|     struct AnimationTable *animations = o->oAnimations; | ||||
|     if (animations && (u32)animIndex < animations->count) { | ||||
|         geo_obj_init_animation(&o->header.gfx, animations->anims[animIndex]); | ||||
|     } | ||||
|     o->oSoundStateID = animIndex; | ||||
| } | ||||
| 
 | ||||
| void obj_init_animation_with_accel_and_sound(struct Object *obj, s32 animIndex, f32 accel) { | ||||
|     if (obj != NULL) { | ||||
|         struct Animation **anims = obj->oAnimations; | ||||
|         if (anims != NULL) { | ||||
|         struct AnimationTable *animations = o->oAnimations; | ||||
|         if (animations && (u32)animIndex < animations->count) { | ||||
|             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; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void cur_obj_init_animation_with_accel_and_sound(s32 animIndex, f32 accel) { | ||||
|     struct Animation **anims = o->oAnimations; | ||||
|     if (anims != NULL) { | ||||
|     struct AnimationTable *animations = o->oAnimations; | ||||
|     if (animations && (u32)animIndex < animations->count) { | ||||
|         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; | ||||
| } | ||||
| 
 | ||||
| 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; } | ||||
|     struct Animation **anims = (struct Animation **)animations; | ||||
|     obj->oAnimations = (struct Animation **)animations; | ||||
|     if (anims != NULL) { | ||||
|         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]); | ||||
|     } | ||||
|     obj->oSoundStateID = animIndex; | ||||
| } | ||||
|  |  | |||
|  | @ -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 cur_obj_init_animation_with_accel_and_sound(s32 animIndex, f32 accel); | ||||
| 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_disable_rendering(void); | ||||
| void cur_obj_unhide(void); | ||||
|  |  | |||
|  | @ -43,7 +43,7 @@ static struct LuaObjectField sAnimationFields[LUA_ANIMATION_FIELD_COUNT] = { | |||
|     { "animYTransDivisor", LVT_S16,   offsetof(struct Animation, animYTransDivisor), false, LOT_NONE    }, | ||||
|     { "flags",             LVT_S16,   offsetof(struct Animation, flags),             false, LOT_NONE    }, | ||||
|     { "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    }, | ||||
|     { "loopStart",         LVT_S16,   offsetof(struct Animation, loopStart),         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 }, | ||||
| }; | ||||
| 
 | ||||
| #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 | ||||
| static struct LuaObjectField sAreaFields[LUA_AREA_FIELD_COUNT] = { | ||||
|     { "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] = { | ||||
|     { LOT_ANIMINFO,                  sAnimInfoFields,                  LUA_ANIM_INFO_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_BASSAUDIO,                 sBassAudioFields,                 LUA_BASS_AUDIO_FIELD_COUNT                   }, | ||||
|     { LOT_BEHAVIORDIALOGS,           sBehaviorDialogsFields,           LUA_BEHAVIOR_DIALOGS_FIELD_COUNT             }, | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ enum LuaObjectAutogenType { | |||
|     LOT_AUTOGEN_MIN = 1000, | ||||
|     LOT_ANIMINFO, | ||||
|     LOT_ANIMATION, | ||||
|     LOT_ANIMATIONTABLE, | ||||
|     LOT_AREA, | ||||
|     LOT_BASSAUDIO, | ||||
|     LOT_BEHAVIORDIALOGS, | ||||
|  |  | |||
|  | @ -30,62 +30,62 @@ | |||
| #include "levels/castle_grounds/header.h" | ||||
| 
 | ||||
| struct GlobalObjectAnimations gGlobalObjectAnimations = { | ||||
|     .amp_seg8_anims_08004034          = (struct Animation**) amp_seg8_anims_08004034, | ||||
|     .birds_seg5_anims_050009E8        = (struct Animation**) birds_seg5_anims_050009E8, | ||||
|     .blargg_seg5_anims_0500616C       = (struct Animation**) blargg_seg5_anims_0500616C, | ||||
|     .blue_fish_seg3_anims_0301C2B0    = (struct Animation**) blue_fish_seg3_anims_0301C2B0, | ||||
|     .bobomb_seg8_anims_0802396C       = (struct Animation**) bobomb_seg8_anims_0802396C, | ||||
|     .bookend_seg5_anims_05002540      = (struct Animation**) bookend_seg5_anims_05002540, | ||||
|     .bowser_key_seg3_anims_list       = (struct Animation**) bowser_key_seg3_anims_list, | ||||
|     .bowser_seg6_anims_06057690       = (struct Animation**) bowser_seg6_anims_06057690, | ||||
|     .bub_seg6_anims_06012354          = (struct Animation**) bub_seg6_anims_06012354, | ||||
|     .bully_seg5_anims_0500470C        = (struct Animation**) bully_seg5_anims_0500470C, | ||||
|     .butterfly_seg3_anims_030056B0    = (struct Animation**) butterfly_seg3_anims_030056B0, | ||||
|     .castle_grounds_seg7_anims_flags  = (struct Animation**) castle_grounds_seg7_anims_flags, | ||||
|     .chain_chomp_seg6_anims_06025178  = (struct Animation**) chain_chomp_seg6_anims_06025178, | ||||
|     .chair_seg5_anims_05005784        = (struct Animation**) chair_seg5_anims_05005784, | ||||
|     .chilly_chief_seg6_anims_06003994 = (struct Animation**) chilly_chief_seg6_anims_06003994, | ||||
|     .chuckya_seg8_anims_0800C070      = (struct Animation**) chuckya_seg8_anims_0800C070, | ||||
|     .clam_shell_seg5_anims_05001744   = (struct Animation**) clam_shell_seg5_anims_05001744, | ||||
|     .cyan_fish_seg6_anims_0600E264    = (struct Animation**) cyan_fish_seg6_anims_0600E264, | ||||
|     .door_seg3_anims_030156C0         = (struct Animation**) door_seg3_anims_030156C0, | ||||
|     .dorrie_seg6_anims_0600F638       = (struct Animation**) dorrie_seg6_anims_0600F638, | ||||
|     .eyerok_seg5_anims_050116E4       = (struct Animation**) eyerok_seg5_anims_050116E4, | ||||
|     .flyguy_seg8_anims_08011A64       = (struct Animation**) flyguy_seg8_anims_08011A64, | ||||
|     .goomba_seg8_anims_0801DA4C       = (struct Animation**) goomba_seg8_anims_0801DA4C, | ||||
|     .heave_ho_seg5_anims_0501534C     = (struct Animation**) heave_ho_seg5_anims_0501534C, | ||||
|     .hoot_seg5_anims_05005768         = (struct Animation**) hoot_seg5_anims_05005768, | ||||
|     .king_bobomb_seg5_anims_0500FE30  = (struct Animation**) king_bobomb_seg5_anims_0500FE30, | ||||
|     .klepto_seg5_anims_05008CFC       = (struct Animation**) klepto_seg5_anims_05008CFC, | ||||
|     .koopa_flag_seg6_anims_06001028   = (struct Animation**) koopa_flag_seg6_anims_06001028, | ||||
|     .koopa_seg6_anims_06011364        = (struct Animation**) koopa_seg6_anims_06011364, | ||||
|     .lakitu_enemy_seg5_anims_050144D4 = (struct Animation**) lakitu_enemy_seg5_anims_050144D4, | ||||
|     .lakitu_seg6_anims_060058F8       = (struct Animation**) lakitu_seg6_anims_060058F8, | ||||
|     .mad_piano_seg5_anims_05009B14    = (struct Animation**) mad_piano_seg5_anims_05009B14, | ||||
|     .manta_seg5_anims_05008EB4        = (struct Animation**) manta_seg5_anims_05008EB4, | ||||
|     .mips_seg6_anims_06015634         = (struct Animation**) mips_seg6_anims_06015634, | ||||
|     .moneybag_seg6_anims_06005E5C     = (struct Animation**) moneybag_seg6_anims_06005E5C, | ||||
|     .monty_mole_seg5_anims_05007248   = (struct Animation**) monty_mole_seg5_anims_05007248, | ||||
|     .peach_seg5_anims_0501C41C        = (struct Animation**) peach_seg5_anims_0501C41C, | ||||
|     .penguin_seg5_anims_05008B74      = (struct Animation**) penguin_seg5_anims_05008B74, | ||||
|     .piranha_plant_seg6_anims_0601C31C= (struct Animation**) piranha_plant_seg6_anims_0601C31C, | ||||
|     .scuttlebug_seg6_anims_06015064   = (struct Animation**) scuttlebug_seg6_anims_06015064, | ||||
|     .seaweed_seg6_anims_0600A4D4      = (struct Animation**) seaweed_seg6_anims_0600A4D4, | ||||
|     .skeeter_seg6_anims_06007DE0      = (struct Animation**) skeeter_seg6_anims_06007DE0, | ||||
|     .snowman_seg5_anims_0500D118      = (struct Animation**) snowman_seg5_anims_0500D118, | ||||
|     .spindrift_seg5_anims_05002D68    = (struct Animation**) spindrift_seg5_anims_05002D68, | ||||
|     .spiny_seg5_anims_05016EAC        = (struct Animation**) spiny_seg5_anims_05016EAC, | ||||
|     .spiny_egg_seg5_anims_050157E4    = (struct Animation**) spiny_egg_seg5_anims_050157E4, | ||||
|     .sushi_seg5_anims_0500AE54        = (struct Animation**) sushi_seg5_anims_0500AE54, | ||||
|     .swoop_seg6_anims_060070D0        = (struct Animation**) swoop_seg6_anims_060070D0, | ||||
|     .toad_seg6_anims_0600FB58         = (struct Animation**) toad_seg6_anims_0600FB58, | ||||
|     .ukiki_seg5_anims_05015784        = (struct Animation**) ukiki_seg5_anims_05015784, | ||||
|     .unagi_seg5_anims_05012824        = (struct Animation**) unagi_seg5_anims_05012824, | ||||
|     .water_ring_seg6_anims_06013F7C   = (struct Animation**) water_ring_seg6_anims_06013F7C, | ||||
|     .whomp_seg6_anims_06020A04        = (struct Animation**) whomp_seg6_anims_06020A04, | ||||
|     .wiggler_seg5_anims_0500C874      = (struct Animation**) wiggler_seg5_anims_0500C874, | ||||
|     .wiggler_seg5_anims_0500EC8C      = (struct Animation**) wiggler_seg5_anims_0500EC8C, | ||||
|     .yoshi_seg5_anims_05024100        = (struct Animation**) yoshi_seg5_anims_05024100, | ||||
|     .amp_seg8_anims_08004034          = (struct AnimationTable*) &_seg8_anims_08004034, | ||||
|     .birds_seg5_anims_050009E8        = (struct AnimationTable*) &birds_seg5_anims_050009E8, | ||||
|     .blargg_seg5_anims_0500616C       = (struct AnimationTable*) &blargg_seg5_anims_0500616C, | ||||
|     .blue_fish_seg3_anims_0301C2B0    = (struct AnimationTable*) &blue_fish_seg3_anims_0301C2B0, | ||||
|     .bobomb_seg8_anims_0802396C       = (struct AnimationTable*) &bobomb_seg8_anims_0802396C, | ||||
|     .bookend_seg5_anims_05002540      = (struct AnimationTable*) &bookend_seg5_anims_05002540, | ||||
|     .bowser_key_seg3_anims_list       = (struct AnimationTable*) &bowser_key_seg3_anims_list, | ||||
|     .bowser_seg6_anims_06057690       = (struct AnimationTable*) &bowser_seg6_anims_06057690, | ||||
|     .bub_seg6_anims_06012354          = (struct AnimationTable*) &bub_seg6_anims_06012354, | ||||
|     .bully_seg5_anims_0500470C        = (struct AnimationTable*) &bully_seg5_anims_0500470C, | ||||
|     .butterfly_seg3_anims_030056B0    = (struct AnimationTable*) &butterfly_seg3_anims_030056B0, | ||||
|     .castle_grounds_seg7_anims_flags  = (struct AnimationTable*) &castle_grounds_seg7_anims_flags, | ||||
|     .chain_chomp_seg6_anims_06025178  = (struct AnimationTable*) &chain_chomp_seg6_anims_06025178, | ||||
|     .chair_seg5_anims_05005784        = (struct AnimationTable*) &chair_seg5_anims_05005784, | ||||
|     .chilly_chief_seg6_anims_06003994 = (struct AnimationTable*) &chilly_chief_seg6_anims_06003994, | ||||
|     .chuckya_seg8_anims_0800C070      = (struct AnimationTable*) &chuckya_seg8_anims_0800C070, | ||||
|     .clam_shell_seg5_anims_05001744   = (struct AnimationTable*) &clam_shell_seg5_anims_05001744, | ||||
|     .cyan_fish_seg6_anims_0600E264    = (struct AnimationTable*) &cyan_fish_seg6_anims_0600E264, | ||||
|     .door_seg3_anims_030156C0         = (struct AnimationTable*) &door_seg3_anims_030156C0, | ||||
|     .dorrie_seg6_anims_0600F638       = (struct AnimationTable*) &dorrie_seg6_anims_0600F638, | ||||
|     .eyerok_seg5_anims_050116E4       = (struct AnimationTable*) &eyerok_seg5_anims_050116E4, | ||||
|     .flyguy_seg8_anims_08011A64       = (struct AnimationTable*) &flyguy_seg8_anims_08011A64, | ||||
|     .goomba_seg8_anims_0801DA4C       = (struct AnimationTable*) &goomba_seg8_anims_0801DA4C, | ||||
|     .heave_ho_seg5_anims_0501534C     = (struct AnimationTable*) &heave_ho_seg5_anims_0501534C, | ||||
|     .hoot_seg5_anims_05005768         = (struct AnimationTable*) &hoot_seg5_anims_05005768, | ||||
|     .king_bobomb_seg5_anims_0500FE30  = (struct AnimationTable*) &king_bobomb_seg5_anims_0500FE30, | ||||
|     .klepto_seg5_anims_05008CFC       = (struct AnimationTable*) &klepto_seg5_anims_05008CFC, | ||||
|     .koopa_flag_seg6_anims_06001028   = (struct AnimationTable*) &koopa_flag_seg6_anims_06001028, | ||||
|     .koopa_seg6_anims_06011364        = (struct AnimationTable*) &koopa_seg6_anims_06011364, | ||||
|     .lakitu_enemy_seg5_anims_050144D4 = (struct AnimationTable*) &lakitu_enemy_seg5_anims_050144D4, | ||||
|     .lakitu_seg6_anims_060058F8       = (struct AnimationTable*) &lakitu_seg6_anims_060058F8, | ||||
|     .mad_piano_seg5_anims_05009B14    = (struct AnimationTable*) &mad_piano_seg5_anims_05009B14, | ||||
|     .manta_seg5_anims_05008EB4        = (struct AnimationTable*) &manta_seg5_anims_05008EB4, | ||||
|     .mips_seg6_anims_06015634         = (struct AnimationTable*) &mips_seg6_anims_06015634, | ||||
|     .moneybag_seg6_anims_06005E5C     = (struct AnimationTable*) &moneybag_seg6_anims_06005E5C, | ||||
|     .monty_mole_seg5_anims_05007248   = (struct AnimationTable*) &monty_mole_seg5_anims_05007248, | ||||
|     .peach_seg5_anims_0501C41C        = (struct AnimationTable*) &peach_seg5_anims_0501C41C, | ||||
|     .penguin_seg5_anims_05008B74      = (struct AnimationTable*) &penguin_seg5_anims_05008B74, | ||||
|     .piranha_plant_seg6_anims_0601C31C= (struct AnimationTable*) &piranha_plant_seg6_anims_0601C31C, | ||||
|     .scuttlebug_seg6_anims_06015064   = (struct AnimationTable*) &scuttlebug_seg6_anims_06015064, | ||||
|     .seaweed_seg6_anims_0600A4D4      = (struct AnimationTable*) &seaweed_seg6_anims_0600A4D4, | ||||
|     .skeeter_seg6_anims_06007DE0      = (struct AnimationTable*) &skeeter_seg6_anims_06007DE0, | ||||
|     .snowman_seg5_anims_0500D118      = (struct AnimationTable*) &snowman_seg5_anims_0500D118, | ||||
|     .spindrift_seg5_anims_05002D68    = (struct AnimationTable*) &spindrift_seg5_anims_05002D68, | ||||
|     .spiny_seg5_anims_05016EAC        = (struct AnimationTable*) &spiny_seg5_anims_05016EAC, | ||||
|     .spiny_egg_seg5_anims_050157E4    = (struct AnimationTable*) &spiny_egg_seg5_anims_050157E4, | ||||
|     .sushi_seg5_anims_0500AE54        = (struct AnimationTable*) &sushi_seg5_anims_0500AE54, | ||||
|     .swoop_seg6_anims_060070D0        = (struct AnimationTable*) &swoop_seg6_anims_060070D0, | ||||
|     .toad_seg6_anims_0600FB58         = (struct AnimationTable*) &toad_seg6_anims_0600FB58, | ||||
|     .ukiki_seg5_anims_05015784        = (struct AnimationTable*) &ukiki_seg5_anims_05015784, | ||||
|     .unagi_seg5_anims_05012824        = (struct AnimationTable*) &unagi_seg5_anims_05012824, | ||||
|     .water_ring_seg6_anims_06013F7C   = (struct AnimationTable*) &water_ring_seg6_anims_06013F7C, | ||||
|     .whomp_seg6_anims_06020A04        = (struct AnimationTable*) &whomp_seg6_anims_06020A04, | ||||
|     .wiggler_seg5_anims_0500C874      = (struct AnimationTable*) &wiggler_seg5_anims_0500C874, | ||||
|     .wiggler_seg5_anims_0500EC8C      = (struct AnimationTable*) &wiggler_seg5_anims_0500EC8C, | ||||
|     .yoshi_seg5_anims_05024100        = (struct AnimationTable*) &yoshi_seg5_anims_05024100, | ||||
| }; | ||||
| 
 | ||||
|   ///////////////////////
 | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| 
 | ||||
| #include "types.h" | ||||
| 
 | ||||
| typedef struct Animation* ObjectAnimPointer; | ||||
| typedef struct AnimationTable ObjectAnimPointer; | ||||
| 
 | ||||
| struct GlobalObjectAnimations { | ||||
|     ObjectAnimPointer* amp_seg8_anims_08004034; | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 MysterD
						MysterD