diff --git a/assets/include/onomatopoeia.mk b/assets/include/onomatopoeia.mk index e49ebbee1..b1d8570a3 100644 --- a/assets/include/onomatopoeia.mk +++ b/assets/include/onomatopoeia.mk @@ -15,6 +15,7 @@ $(ONOMATOPOEIA_DIR)/gTextureBalloon2.png ONOMATOPOEIA_EXPORT_SENTINEL := $(ONOMATOPOEIA_DIR)/.export $(BUILD_DIR)/$(DATA_DIR)/other_textures.o: $(ONOMATOPOEIA_PNG:%.png=%.mio0) +$(BUILD_DIR)/src/data/some_data.o: $(ONOMATOPOEIA_PALETTE:%.png=%.inc.c) $(ONOMATOPOEIA_PNG:%.png=%.mio0): %.mio0 : %.bin $(MIO0TOOL) -c $< $@ diff --git a/courses/koopa_troopa_beach/course_data.inc.h b/courses/koopa_troopa_beach/course_data.inc.h index 845a50436..4a2a3b274 100644 --- a/courses/koopa_troopa_beach/course_data.inc.h +++ b/courses/koopa_troopa_beach/course_data.inc.h @@ -306,8 +306,10 @@ extern Gfx d_course_koopa_troopa_beach_dl_AB88[]; extern Gfx d_course_koopa_troopa_beach_dl_AC10[]; extern Gfx d_course_koopa_troopa_beach_dl_AC68[]; extern Gfx d_course_koopa_troopa_beach_dl_AD40[]; -extern TrackWaypoint d_course_koopa_troopa_beach_unknown_waypoints[]; -extern TrackWaypoint d_course_koopa_troopa_beach_track_waypoints[]; +extern TrackWaypoint d_course_koopa_troopa_beach_unknown_waypoints0[]; +extern TrackWaypoint d_course_koopa_troopa_beach_unknown_waypoints1[]; +extern TrackWaypoint d_course_koopa_troopa_beach_track_waypoints0[]; +extern TrackWaypoint d_course_koopa_troopa_beach_track_waypoints1[]; extern u8 d_course_koopa_troopa_beach_crab_tlut[]; extern u8 d_course_koopa_troopa_beach_crab_frames[][4096]; extern u32 d_course_koopa_troopa_beach_unk_data1[]; diff --git a/courses/yoshi_valley/course_data.inc.h b/courses/yoshi_valley/course_data.inc.h index 90a0ef427..6210ee380 100644 --- a/courses/yoshi_valley/course_data.inc.h +++ b/courses/yoshi_valley/course_data.inc.h @@ -134,7 +134,13 @@ extern Gfx d_course_yoshi_valley_dl_D1E8[]; extern Gfx d_course_yoshi_valley_dl_D3D0[]; extern Gfx d_course_yoshi_valley_dl_D540[]; extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints0[]; +extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints1[]; +extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints2[]; +extern TrackWaypoint d_course_yoshi_valley_unknown_waypoints3[]; extern TrackWaypoint d_course_yoshi_valley_track_waypoints0[]; +extern TrackWaypoint d_course_yoshi_valley_track_waypoints1[]; +extern TrackWaypoint d_course_yoshi_valley_track_waypoints2[]; +extern TrackWaypoint d_course_yoshi_valley_track_waypoints3[]; extern Lights1 d_course_yoshi_valley_unknown_light1; extern Lights1 d_course_yoshi_valley_unknown_light2; extern Lights1 d_course_yoshi_valley_unknown_light3; diff --git a/ctx_includes.c b/ctx_includes.c index 130337d81..ab94fe4a2 100644 --- a/ctx_includes.c +++ b/ctx_includes.c @@ -78,6 +78,8 @@ #include "src/common_textures.h" #include "src/data/data_800E45C0.h" #include "src/data/data_800E8700.h" +#include "src/data/some_data.h" +#include "src/data/path_spawn_data.h" #include "src/data/trig_tables.h" #include "src/data_segment2.h" #include "src/effects.h" diff --git a/data/data_0DD0A0_1.s b/data/data_0DD0A0_1.s deleted file mode 100644 index 27ca4efca..000000000 --- a/data/data_0DD0A0_1.s +++ /dev/null @@ -1,339 +0,0 @@ -# Mario Kart 64 (U) disassembly and split file -# generated by n64split v0.4a - N64 ROM splitter - -.include "macros.inc" - -.section .data - -#glabel D_800DC710 -#.word D_802D2B80 - -#glabel D_800DC714 -#.word D_802DAB80, 0x00000000, 0x00000000 - -glabel D_800DC720 -.word D_0D008F28, D_0D008F80, D_0D008FB8, D_0D009058 -.word D_0D0090B8, D_0D0090F8, D_0D009158, D_0D009188 -.word D_0D0091E8, D_0D009210, D_0D009238, D_0D009260 -.word D_0D009280, D_0D0092C8, D_0D009310, D_0D008F18 -.word D_0D008F18, D_0D008F18, D_0D0093C0, D_0D008F18 -.word D_0D008F18, 0x00000000 - -glabel nullPath -.word 0x80000000, 0x00000000 - -# segmented address of up to four course paths per course -glabel gCoursePathTable -.word d_course_mario_raceway_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_choco_mountain_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_bowsers_castle_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_banshee_boardwalk_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_yoshi_valley_unknown_waypoints0, d_course_yoshi_valley_unknown_waypoints1, d_course_yoshi_valley_unknown_waypoints2, d_course_yoshi_valley_unknown_waypoints3 -.word d_course_frappe_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_koopa_troopa_beach_unknown_waypoints0, nullPath, nullPath, nullPath -.word d_course_royal_raceway_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_luigi_raceway_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_moo_moo_farm_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_toads_turnpike_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_kalimari_desert_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_sherbet_land_uknown_waypoints, nullPath, nullPath, nullPath -.word d_course_rainbow_road_unknown_waypoints, nullPath, nullPath, nullPath -.word d_course_wario_stadium_unknown_waypoints, nullPath, nullPath, nullPath -.word nullPath, nullPath, nullPath, nullPath -.word nullPath, nullPath, nullPath, nullPath -.word nullPath, nullPath, nullPath, nullPath -.word d_course_dks_jungle_parkway_unknown_waypoints, nullPath, nullPath, nullPath -.word nullPath, nullPath, nullPath, nullPath -.word ending_sequence, ending_sequence2, ending_sequence3, ending_sequence4 - -glabel D_800DC8D0 -.word d_course_mario_raceway_track_waypoints, nullPath, nullPath, nullPath -.word d_course_choco_mountain_track_waypoints, nullPath, nullPath, nullPath -.word d_course_bowsers_castle_track_waypoints, nullPath, nullPath, nullPath -.word d_course_banshee_boardwalk_track_waypoints, nullPath, nullPath, nullPath -.word d_course_yoshi_valley_track_waypoints0, d_course_yoshi_valley_track_waypoints1, d_course_yoshi_valley_track_waypoints2, d_course_yoshi_valley_track_waypoints3 -.word d_course_frappe_track_waypoints, nullPath, nullPath, nullPath -.word d_course_koopa_troopa_beach_track_waypoints0, d_course_koopa_troopa_beach_track_waypoints1, nullPath, nullPath -.word d_course_royal_raceway_track_waypoints, nullPath, nullPath, nullPath -.word d_course_luigi_raceway_track_waypoints, nullPath, nullPath, nullPath -.word d_course_moo_moo_farm_track_waypoints, nullPath, nullPath, nullPath -.word d_course_toads_turnpike_track_waypoints, nullPath, nullPath, nullPath -.word d_course_kalimari_desert_track_waypoints, nullPath, nullPath, nullPath -.word d_course_sherbet_land_track_waypoints, nullPath, nullPath, nullPath -.word d_course_rainbow_road_track_waypoints, nullPath, nullPath, nullPath -.word d_course_wario_staduim_track_waypoints, nullPath, nullPath, nullPath -.word nullPath, nullPath, nullPath, nullPath -.word nullPath, nullPath, nullPath, nullPath -.word nullPath, nullPath, nullPath, nullPath -.word d_course_dks_jungle_parkway_track_waypoints, nullPath, nullPath, nullPath -.word nullPath, nullPath, nullPath, nullPath -.word nullPath, nullPath, nullPath, nullPath - -glabel D_800DCA20 -.hword 0x0030, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035 -.hword 0x0030, 0x0030, 0x0028, 0x0035, 0x0035, 0x0026, 0x0035, 0x0035 -.hword 0x0035, 0x0035, 0x0035, 0x0028, 0x0035, 0x0000 - -glabel D_800DCA4C -.float 50.0, 35.0, 35.0, 40.0 -.float 35.0, 50.0, 50.0, 50.0 -.float 50.0, 50.0, 50.0, 50.0 -.float 50.0, 50.0, 50.0, -1.0 -.float -1.0, -1.0, 40.0, -1.0 -.float 40.0 - -glabel D_800DCAA0 -.float 0.3, 0.3, 0.2, 0.4 -.float 0.0, 0.3, 0.5, 0.4 -.float 0.7, 0.5, 0.5, 0.3 -.float 0.3, 0.4, 0.6, 0.1 -.float 0.5, 0.5, 0.1, 0.5 -.float 0.5 - -glabel D_800DCAF4 -.hword 0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023 -.hword 0x001e, 0x0019, 0x0032, 0x004b, 0x0064, 0x007d, 0x0096, 0x00af -.hword 0x0028, 0x001e, 0x003c, 0x005a, 0x0078, 0x0096, 0x00b4, 0x00d2 -.hword 0x0032, 0x0028, 0x0050, 0x0078, 0x00a0, 0x00c8, 0x00f0, 0x0118 - -glabel D_800DCB34 -.hword 0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023 -.hword 0x001e, 0x0019, 0x002d, 0x0041, 0x005a, 0x0073, 0x008c, 0x00a5 -.hword 0x0028, 0x0003, 0x0006, 0x0010, 0x002e, 0x0031, 0x003b, 0x0059 -.hword 0x0032, 0x001e, 0x003c, 0x003f, 0x0049, 0x004e, 0x006c, 0x008a -.hword 0x000a, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023 -.hword 0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005 -.hword 0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005 -.hword 0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005 - -glabel D_800DCBB4 -.word D_800DCB34, D_800DCAF4, D_800DCAF4, D_800DCAF4 -.word D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4 -.word D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4 -.word D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4 -.word D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4 -.word D_800DCAF4 - -.macro Entry800DCC08 h0, h1, f2, f3, f4, f5, f6 -.hword \h0, \h1 -.float \f2, \f3, \f4, \f5, \f6 -.endm - -glabel D_800DCC08 -# Mario Raceway Bomb Kart spawns -Entry800DCC08 0x0028, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0109, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x011d, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x01a4, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Choco Mountain Bomb Kart spawns -Entry800DCC08 0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00a5, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x014a, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0226, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0253, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Bowser Castle Bomb Kart spawns -Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0096, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0104, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Banshee Boardwalk Bomb Kart spawns -Entry800DCC08 0x006e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x01db, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0262, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Yoshi Valley Bomb Kart spawns -Entry800DCC08 0x0000, 0x0000, 0.8333333, -1533.0, -682.0, -103.0, 0.0 -Entry800DCC08 0x000a, 0x0000, 0.8333333, -1565.0, -619.0, -109.0, 0.0 -Entry800DCC08 0x0014, 0x0000, 0.8333333, -1529.0, -579.0, -109.0, 0.0 -Entry800DCC08 0x001e, 0x0000, 0.8333333, -1588.0, -534.0, -106.0, 0.0 -Entry800DCC08 0x0028, 0x0000, 0.8333333, -1598.0, -207.0, -105.0, 0.0 -Entry800DCC08 0x0032, 0x0000, 0.8333333, -1646.0, -147.0, -93.0, 0.0 -Entry800DCC08 0x003c, 0x0000, 0.8333333, -2532.0, -445.0, -90.0, 0.0 - -# Frappe Snowland Bomb Kart spawns -Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0122, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x015e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Koopa Troopa Beach Bomb Kart spawns -Entry800DCC08 0x003c, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0078, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0118, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Royal Raceway Bomb Kart spawns -Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0128, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0190, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x02ea, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Luigi Raceway Bomb Kart spawns -Entry800DCC08 0x0032, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0131, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x01b8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0203, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Moo Moo Farm Bomb Kart spawns -Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00e1, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x013c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x01b2, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Toads Turnpike Bomb Kart spawns -Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Kalamari Desert Bomb Kart spawns -Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x008a, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0118, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0194, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x01fe, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Sherbet Land Bomb Kart spawns -Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Rainbow Road Bomb Kart spawns -Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Wario Stadium Bomb Kart spawns -Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Block Fort Bomb Kart spawns -Entry800DCC08 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 - -# Skyscraper Bomb Kart spawns -Entry800DCC08 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 - -# Double Deck Bomb Kart spawns -Entry800DCC08 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 - -# DK Jungle Bomb Kart spawns -Entry800DCC08 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 - -# Big Donut Bomb Kart spawns -Entry800DCC08 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 - -# Award Ceremony Bomb Kart spawns -Entry800DCC08 0x0003, 0x0005, 1.250000, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 -Entry800DCC08 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 - -glabel D_800DD9D0 -.hword 0x0258, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x030c, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x02ee, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x02b2, 0x02a8, 0x02b2, 0x0320, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x02ee, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x03e8, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x02da, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x0230, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x03e8, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x02bc, 0x0001, 0x0001, 0x0001, 0x0226, 0x0000, 0x0000, 0x0000 -.hword 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x076c, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x0640, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x0370, 0x0001, 0x0001, 0x0001, 0x01f4, 0x0000, 0x0000, 0x0000 -.hword 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000 -.hword 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x0001, 0x0000, 0x0000, 0x0000 - -glabel D_800DDB20 -.word 0x00000000 - -glabel D_800DDB24 -.word 0x00000001 diff --git a/data/data_code_80071F00_2.s b/data/data_code_80071F00_2.s deleted file mode 100644 index bde002f42..000000000 --- a/data/data_code_80071F00_2.s +++ /dev/null @@ -1,919 +0,0 @@ -.include "macros.inc" - -.section .data - -glabel D_800E49C0 -vertex 9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E4AC0 -vertex 9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E4BC0 -vertex 9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E4CC0 -vertex 9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E4DC0 -vertex 9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E4EC0 -vertex 9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0x60 - -glabel D_800E4FD0 -vertex 9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E50D0 -vertex 9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E51D0 -vertex 9, 0, 9, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, 9, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E5210 # probably compiler generated -vertex 9, 0, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -9, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -9, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel gBalloonVertexPlane1 # compiler gen -vertex 9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel gBalloonVertexPlane2 # compiler gen -vertex 9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF -vertex -9, 9, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E52D0 # TODO: RGBA16 palette for CRASH/POOMP -.word 0x00000001, 0x00030041, 0x00430047, 0x0049004b -.word 0x0089008d, 0x008f0091, 0x01b101ef, 0x01f101f7 -.word 0x0237023f, 0x027d027f, 0x08410843, 0x08450885 -.word 0x08870889, 0x088d088f, 0x08cb08cd, 0x09ef0a2d -.word 0x0a351083, 0x108510c3, 0x10c510c9, 0x10cb1109 -.word 0x110b1273, 0x12bb12bd, 0x18c118c3, 0x18c71901 -.word 0x19031907, 0x1909190b, 0x19911a2d, 0x1a6b1a71 -.word 0x21012107, 0x21092145, 0x21472189, 0x22672269 -.word 0x22a722f7, 0x22f927bf, 0x29432945, 0x294b2985 -.word 0x29d32aa5, 0x2aed2aef, 0x2b332fbf, 0x31813183 -.word 0x318d31cb, 0x32a532e5, 0x337537bf, 0x39c139cf -.word 0x3a093ae3, 0x3b233b2b, 0x3baf3bb1, 0x3fbf4211 -.word 0x431f4361, 0x436743a7, 0x43b147bf, 0x4a534b5f -.word 0x4beb4bed, 0x4fbf5295, 0x535d539d, 0x53e357bf -.word 0x5ad75b9b, 0x5b9d5c21, 0x5c275c69, 0x5fbf6319 -.word 0x63d9641f, 0x67bf6b5b, 0x6c176c1d, 0x6c5d6c65 -.word 0x6ca36ca5, 0x6fbf739d, 0x74137453, 0x77bf77ff -.word 0x7bdf7c53, 0x7c9b7ce1, 0x7fbf7fff, 0x8421848f -.word 0x849184d5, 0x87ff8c63, 0x8c8d8ccf, 0x8d1d8d5d -.word 0x8fff94a5, 0x94cb9513, 0x97ff9cc9, 0x9ce79d0b -.word 0x9d599d99, 0x9fffa507, 0xa529a549, 0xa54fa5d5 -.word 0xa7ffad45, 0xad6bad8b, 0xadd5afff, 0xb585b5ad -.word 0xb611b7ff, 0xbdc9bdef, 0xbe11be51, 0xbfffc605 -.word 0xc631c64d, 0xc7ffce45, 0xce8dcfff, 0xd689d6b5 -.word 0xd6c9d7ff, 0xdec5dec9, 0xdfffe705, 0xe707e739 -.word 0xe7ffe801, 0xe803e845, 0xef05ef7b, 0xf045f085 -.word 0xf087f089, 0xf0c9f0cb, 0xf10bf10d, 0xf14ff151 -.word 0xf191f193, 0xf1d5f1d7, 0xf217f219, 0xf25bf29d -.word 0xf7bdfa9f, 0xfadffae1, 0xfb23fb25, 0xfb65fb67 -.word 0xfba7fba9, 0xfbebfbed, 0xfc2ffc71, 0xfc73fcb3 -.word 0xfcb5fd01, 0xfd41fd81, 0xfdc1fe01, 0xfe41fe81 -.word 0xfec1ffff, 0x00000000, 0x00000000, 0x00000000 - -glabel gCourseOutlineTextures # passed as a0 to func_8006ED94 -.word gTextureCourseOutlineMarioRaceway, gTextureCourseOutlineChocoMountain, gTextureCourseOutlineBowsersCastle, gTextureCourseOutlineBansheeBoardwalk -.word gTextureCourseOutlineYoshiValley, gTextureCourseOutlineFrappeSnowland, gTextureCourseOutlineKoopaTroopaBeach, gTextureCourseOutlineRoyalRaceway -.word gTextureCourseOutlineLuigiRaceway, gTextureCourseOutlineMooMooFarm, gTextureCourseOutlineToadsTurnpike, gTextureCourseOutlineKalimariDesert -.word gTextureCourseOutlineSherbetLand, gTextureCourseOutlineRainbowRoad, gTextureCourseOutlineWarioStadium, gTextureCourseOutlineBlockFort -.word gTextureCourseOutlineSkyscraper, gTextureCourseOutlineDoubleDeck, gTextureCourseOutlineDksJungleParkway, gTextureCourseOutlineBigDonut - -glabel D_800E5520 # passed as a2, a3 to func_8006ED94 -.hword 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800 -.hword 0x0800, 0x0800, 0x0c00, 0x0800, 0x1000, 0x0c00 -.hword 0x0800, 0x0c00, 0x0800, 0x0800, 0x0800, 0x0800 -.hword 0x0800, 0x0800 - -glabel D_800E5548 -.hword 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040 -.hword 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040 -.hword 0x0040, 0x0060, 0x0040, 0x0040, 0x0080, 0x0040, 0x0040, 0x0060 -.hword 0x0040, 0x0040, 0x0040, 0x0060, 0x0040, 0x0040, 0x0040, 0x0040 -.hword 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040 -.hword 0x0000, 0x0000, 0x0000, 0x0000 - -glabel D_800E55A0 -.hword 0x0000, 0x0080, 0x0100, 0x0080, 0x0000, 0xff80, 0xfe00, 0xff80 - -glabel D_800E55B0 -.hword 0xf800, 0x0800, 0xf800, 0x0800, 0xf800, 0x0800, 0xf800, 0x0800 -.hword 0xf800, 0x0800, 0xf800, 0x0800, 0xf800, 0x0800, 0xf800, 0x0800 - -glabel D_800E55D0 -.byte 0x64, 0x64, 0x64 -.byte 0x96, 0x96, 0x73 -.byte 0xc8, 0xc8, 0x82 -.byte 0xff, 0xff, 0x96 -.byte 0xc8, 0xc8, 0x82 -.byte 0x96, 0x96, 0x73 -.byte 0x00, 0x00, 0x00 -.byte 0x01, 0x02, 0x03 -.byte 0x02, 0x01, 0x00 -.byte 0x04, 0x05, 0x06 -.byte 0x05, 0x04, 0x00 -.byte 0x07, 0x08, 0x09 -.byte 0x08, 0x07, 0x00 -.byte 0x00 -glabel D_800E55F8 -.byte 0x00, 0x00 -.byte 0x00, 0xff, 0x00 -.byte 0x00, 0x00, 0xed -.byte 0x00, 0x00, 0x00 -.byte 0xd7, 0x00, 0x00 -.byte 0x00, 0xbf, 0x00 -.byte 0x00, 0x00, 0xa2 -.byte 0x00, 0x00, 0x00 -.byte 0x82, 0x00, 0x00 -.byte 0x00, 0x61, 0x00 -.byte 0x00, 0x00, 0x3a - -glabel D_800E5618 -.word 0x000000ff, 0x000000d7, 0x000000a2, 0x00000061 - -glabel D_800E5628 -.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff -.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff -.byte 0xff, 0x27, 0x33, 0x32, 0xff, 0x37, 0xff, 0x26, 0x29, 0x2a, 0x31, 0x2e - -.byte 0x25 -glabel D_800E5655 -.byte 0x2b -.byte 0x24 -.byte 0x2d - -.word 0x00010203, 0x04050607, 0x08092c36, 0x3c2f3d28 -.byte 0x30 -.byte 0x0a -glabel D_800E566A -.byte 0x0b -.byte 0x0c -.byte 0x0d -.byte 0x0e -.byte 0x0f -.byte 0x10 - -glabel D_800E5670 -.byte 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20 -.byte 0x21, 0x22, 0x23, 0x39, 0xff, 0x3a, 0x3b, 0x34, 0x38, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 -.byte 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20 -.byte 0x21, 0x22, 0x23, 0xff, 0xff, 0xff, 0x35, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff -.word 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff -.word 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff -.word 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff -.word 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff -.word 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff -.word 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff -.word 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff -.word 0xffffffff, 0xffffffff - -glabel gFireBreathsSpawns -.hword 0x0889, 0x0075, 0xf90a -.hword 0x0889, 0x0075, 0xf9d0 -.hword 0x07c1, 0x0075, 0xf90a -.hword 0x07c1, 0x0075, 0xf9d0 - -# Referenced in code_80071F00/func_80076884, but that function is unused -glabel D_800E5740 -.hword 0x0662, 0x0014, 0xfb52, 0x06db, 0x0014, 0xfb57, 0x067d, 0x0014 -.hword 0xfb86, 0x06e2, 0x0014, 0xfaff, 0x06cd, 0x0014, 0xfb93, 0x06fb -.hword 0x0014, 0xfb4b, 0x067d, 0x0014, 0xfb1e, 0x062f, 0x0014, 0xfb39 -.hword 0x0656, 0x0014, 0xfb00, 0x06f5, 0x0014, 0xfad3, 0x064b, 0x0014 -.hword 0xfb72, 0x06fe, 0x0014, 0xfb7d, 0x0715, 0x0014, 0xfb1b, 0x066f -.hword 0x0014, 0xfac7, 0x0662, 0x0014, 0xfb52, 0x0000 - -# Referenced in code_80071F00/func_80076884, but that function is unused -glabel D_800E579C -.hword 0xff96, 0xffce, 0xfcca, 0xffa7, 0xffce, 0xfd1d, 0xff6e, 0xffce -.hword 0xfd5b, 0xff96, 0xffce, 0xfc65, 0xff4b, 0xffce, 0xfcdb, 0xff59 -.hword 0xffce, 0xfc7f, 0x0065, 0xffce, 0xfc77, 0x00ab, 0xffce, 0xfcd7 -.hword 0x0060, 0xffce, 0xfcbd, 0x0064, 0xffce, 0xfd03, 0x006d, 0xffce -.hword 0xfd52, 0x00b8, 0xffce, 0xfd33, 0x00ab, 0xffce, 0xfc65, 0xff96 -.hword 0xffce, 0xfcca, 0xffa7, 0xffce, 0xfd1d, 0x0000 - -# Referenced in code_80071F00/func_80076884, but that function is unused -glabel D_800E57F8 -.hword 0x06e8, 0xffce, 0x0023, 0x07e3, 0xffcf, 0xffd4, 0x084d, 0xffce -.hword 0x006e, 0x07e3, 0xffcd, 0x00e0, 0x0638, 0xffca, 0x02ae, 0x0603 -.hword 0xffce, 0x00af, 0x01f7, 0xffcc, 0x01c8, 0x0266, 0xffcc, 0x0179 -.hword 0x070e, 0xffd0, 0xff6e, 0x070e, 0xffcf, 0xffd3, 0x070e, 0xffce -.hword 0x0087, 0x07ea, 0xffd0, 0xff6a, 0x07ea, 0xffce, 0x003c, 0x082c -.hword 0xffcf, 0xffb9, 0x023f, 0xffca, 0x02bb, 0x0000 - -glabel gThomwpSpawns50CC -.hword 0x03b6, 0xf92a, 0x0001, 0x0000, 0x0352, 0xf95c, 0x0002, 0x0000 -.hword 0x04b0, 0xf5ba, 0x0003, 0x0000, 0x04b0, 0xf592, 0x0003, 0x0001 -.hword 0x091a, 0xf5b0, 0x0004, 0x0000, 0x0596, 0xf92f, 0x0006, 0x0000 -.hword 0x082a, 0xf9f2, 0x0005, 0x0000, 0x073a, 0xf9f2, 0x0005, 0x0001 - -glabel gThwompSpawns100CCExtra -.hword 0x0320, 0xf92a, 0x0001, 0x0000, 0x044c, 0xf92a, 0x0001, 0x0001 -.hword 0x02bc, 0xf95c, 0x0002, 0x0000, 0x04b0, 0xf8f8, 0x0002, 0x0001 -.hword 0x04b0, 0xf5ba, 0x0003, 0x0000, 0x04b0, 0xf592, 0x0003, 0x0001 -.hword 0x091a, 0xf5bf, 0x0004, 0x0000, 0x091a, 0xf597, 0x0004, 0x0001 -.hword 0x0596, 0xf92f, 0x0006, 0x0000, 0x082a, 0xf9f2, 0x0005, 0x0000 -.hword 0x073a, 0xf9f2, 0x0005, 0x0001 - -glabel gThomwpSpawns150CC -.hword 0x0320, 0xf92a, 0x0001, 0x0000, 0x044c, 0xf92a, 0x0001, 0x0001 -.hword 0x02bc, 0xf95c, 0x0002, 0x0000, 0x04b0, 0xf8f8, 0x0002, 0x0001 -.hword 0x04b0, 0xf5ba, 0x0003, 0x0000, 0x04b0, 0xf592, 0x0003, 0x0001 -.hword 0x091a, 0xf5c9, 0x0004, 0x0000, 0x091a, 0xf5ab, 0x0004, 0x0001 -.hword 0x091a, 0xf58d, 0x0004, 0x0002, 0x0596, 0xf92f, 0x0006, 0x0000 -.hword 0x082a, 0xf9f2, 0x0005, 0x0000, 0x073a, 0xf9f2, 0x0005, 0x0001 - -# Something related to the Thwomps -glabel D_800E594C -.float -8.0, 8.0 -.float 8.0, 8.0 -.float 0.0, 0.0 -.float 8.0, -8.0 -.float -8.0, -8.0 - -# Appears to be unused -glabel D_800E5974 -.word 0x80000000, 0x00000000 - -# Something related to the Thwomps -glabel D_800E597C -.hword 0x0000, 0x0000, 0x4000, 0x8000, 0x8000, 0xc000 - -# Seems to be related to the Boos in Banshee Boardwalk -glabel D_800E5988 -.hword 0x0016, 0x0005, 0x0011, 0x0032, 0x0028, 0x0005, 0x000d, 0x0014 -.hword 0x0028, 0x0000, 0x0011, 0x0000, 0x0028, 0x0014, 0x000a, 0x0000 -.hword 0x0028, 0x0000, 0x0011, 0xffe2, 0x0028, 0xffec, 0x000a, 0x0000 -.hword 0x0028, 0x0000, 0x0011, 0xffe2, 0x0028, 0x0014, 0x000a, 0x0000 -.hword 0x0028, 0x0000, 0x0011, 0x001e, 0x0028, 0xffec, 0x000a, 0x0032 -.hword 0x0028, 0x0000, 0x0011, 0x001e, 0x0028, 0x0014, 0x000a, 0x0000 -.hword 0x0028, 0x0000, 0x0011, 0xffe2, 0x0028, 0xffec, 0x000a, 0x0000 -.hword 0x0028, 0x0000, 0x0011, 0xffe2, 0x0028, 0x0014, 0x000a, 0x0000 -.hword 0x0028, 0x0000, 0x0011, 0xffe2, 0x0028, 0xffec, 0x000a, 0x0000 -.hword 0x0028, 0x0000, 0x0011, 0x0014, 0x0028, 0x0005, 0x000a, 0x001e -.hword 0x0028, 0x0005, 0x0011, 0x0028, 0x0028, 0x0005, 0x0011, 0x0032 -.hword 0x0028, 0x0005, 0x0011, 0x0032, 0x0028, 0x0000 - -# Seems to be related to the Boos in Banshee Boardwalk -glabel D_800E5A44 -.hword 0x0017, 0x0000, 0x0011, 0xffce, 0x0028, 0x0014, 0x000d, 0xffd8 -.hword 0x0028, 0x0000, 0x0011, 0xffec, 0x0028, 0xffec, 0x000a, 0x0000 -.hword 0x0028, 0x0000, 0x0011, 0x001e, 0x0028, 0x0014, 0x000a, 0x0028 -.hword 0x0028, 0x0000, 0x0011, 0x0032, 0x0028, 0xffec, 0x000a, 0x0032 -.hword 0x0028, 0x0000, 0x0011, 0x001e, 0x0028, 0xffec, 0x000a, 0x0014 -.hword 0x0028, 0x0000, 0x0011, 0x0000, 0x0028, 0xfff6, 0x000a, 0x0014 -.hword 0x0028, 0x0000, 0x0011, 0x0028, 0x0028, 0x000a, 0x000a, 0x0032 -.hword 0x0028, 0x0000, 0x0011, 0x0046, 0x0028, 0xfff6, 0x0017, 0x0032 -.hword 0x0028, 0x0000, 0x000f, 0x0028, 0x0028, 0x000a, 0x000d, 0x001e -.hword 0x0028, 0x0000, 0x0011, 0x000a, 0x0028, 0xfff6, 0x000d, 0x001e -.hword 0x0028, 0x0000, 0x0011, 0x0028, 0x0028, 0x000a, 0x000d, 0x0032 -.hword 0x0028, 0x0000, 0x000d, 0x0046, 0x0028, 0x0000, 0x0011, 0xffce -.hword 0x0028, 0x0000 - -# Seems to be related to the Boos in Banshee Boardwalk -glabel D_800E5B08 -.hword 0x0018, 0xfff1, 0x000a, 0x0000, 0x0014, 0xfff6, 0x000a, 0xfff6 -.hword 0x0014, 0x0000, 0x000a, 0xfff1, 0x0014, 0x000a, 0x000a, 0xfff6 -.hword 0x0014, 0x000f, 0x000a, 0x0000, 0x0014, 0x000a, 0x000a, 0x000a -.hword 0x0014, 0x0000, 0x000a, 0x000f, 0x0014, 0xfff6, 0x000a, 0x000a -.hword 0x0014, 0xfff1, 0x000a, 0x0000, 0x0014, 0xfff6, 0x000a, 0xfff6 -.hword 0x0014, 0x0000, 0x000a, 0xfff1, 0x0014, 0x000a, 0x000a, 0xfff6 -.hword 0x0014, 0x000f, 0x000a, 0x0000, 0x0014, 0x000a, 0x000a, 0x000a -.hword 0x0014, 0x0000, 0x000a, 0x000f, 0x0014, 0xfff6, 0x000a, 0x000a -.hword 0x0014, 0xfff1, 0x000a, 0x0000, 0x0014, 0xfff6, 0x000a, 0xfff6 -.hword 0x0014, 0x0000, 0x000a, 0xfff1, 0x0014, 0x000a, 0x000a, 0xfff6 -.hword 0x0014, 0x000f, 0x000a, 0x0000, 0x0014, 0x000a, 0x000a, 0x000a -.hword 0x0014, 0x0000, 0x000a, 0x000f, 0x0014, 0xfff6, 0x000a, 0x000a -.hword 0x0014, 0xfff1, 0x000a, 0x0000, 0x0014, 0x0000 - -# Seems to be related to the Boos in Banshee Boardwalk -glabel D_800E5BD4 -.hword 0x0016, 0x0005, 0x0011, 0x0032, 0x001e, 0x0005, 0x000d, 0x0014 -.hword 0x001e, 0x0000, 0x0011, 0x0000, 0x001e, 0x0014, 0x000a, 0x0000 -.hword 0x001e, 0x0000, 0x0011, 0xffe2, 0x001e, 0xffec, 0x000a, 0x0000 -.hword 0x001e, 0x0000, 0x0011, 0xffe2, 0x001e, 0x0014, 0x000a, 0x0000 -.hword 0x001e, 0x0000, 0x0011, 0x001e, 0x001e, 0xffec, 0x000a, 0x0032 -.hword 0x001e, 0x0000, 0x0011, 0x001e, 0x001e, 0x0014, 0x000a, 0x0000 -.hword 0x001e, 0x0000, 0x0011, 0xffe2, 0x001e, 0xffec, 0x000a, 0x0000 -.hword 0x001e, 0x0000, 0x0011, 0xffe2, 0x001e, 0x0014, 0x000a, 0x0000 -.hword 0x001e, 0x0000, 0x0011, 0xffe2, 0x001e, 0xffec, 0x000a, 0x0000 -.hword 0x001e, 0x0000, 0x0011, 0x0014, 0x001e, 0x0005, 0x000a, 0x001e -.hword 0x001e, 0x0005, 0x0011, 0x0028, 0x001e, 0x0005, 0x0011, 0x0032 -.hword 0x001e, 0x0005, 0x0011, 0x0032, 0x001e, 0x0000 - -# Seems to be related to the Boos in Banshee Boardwalk -glabel D_800E5C90 -.hword 0x0017, 0x0000, 0x0011, 0xffce, 0x0019, 0x0014, 0x000d, 0xffd8 -.hword 0x0019, 0x0000, 0x0011, 0xffec, 0x0019, 0xffec, 0x000a, 0x0000 -.hword 0x0019, 0x0000, 0x0011, 0x001e, 0x0019, 0x0014, 0x000a, 0x0028 -.hword 0x0019, 0x0000, 0x0011, 0x0032, 0x0019, 0xffec, 0x000a, 0x0032 -.hword 0x0019, 0x0000, 0x0011, 0x001e, 0x0019, 0xffec, 0x000a, 0x0014 -.hword 0x0019, 0x0000, 0x0011, 0x0000, 0x0019, 0xfff6, 0x000a, 0x0014 -.hword 0x0019, 0x0000, 0x0011, 0x0028, 0x0019, 0x000a, 0x000a, 0x0032 -.hword 0x0019, 0x0000, 0x0011, 0x0046, 0x0019, 0xfff6, 0x0017, 0x0032 -.hword 0x0019, 0x0000, 0x000f, 0x0028, 0x0019, 0x000a, 0x000d, 0x001e -.hword 0x0019, 0x0000, 0x0011, 0x000a, 0x0019, 0xfff6, 0x000d, 0x001e -.hword 0x0019, 0x0000, 0x0011, 0x0028, 0x0019, 0x000a, 0x000d, 0x0032 -.hword 0x0019, 0x0000, 0x000d, 0x0046, 0x0019, 0x0000, 0x0011, 0xffce -.hword 0x0019, 0x0000 - -glabel D_800E5D54 -.hword 0x0004, 0x0000, 0x0010, 0x0000, 0x0032, 0x0000, 0x0010, 0x0002 -.hword 0x0000, 0x0000, 0x0010, 0x0004, 0x0000, 0x0000, 0x0010, 0x0006 -.hword 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x0000, 0x000a, 0x0000 -.hword 0x0000, 0x0000, 0x000a, 0x0000, 0x0000, 0x0000, 0x000a, 0x0000 -.hword 0x0000, 0x0000, 0x000a, 0x0000 - -glabel D_800E5D9C -.word D_800E5988, D_800E5A44, D_800E5B08, D_800E5BD4 -.word D_800E5C90 - -glabel D_800E5DB0 -.word D_800E5988 - -glabel D_800E5DB4 -.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -.byte 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 -.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -# Spawn data for the flag poles in Yoshi Valley -# YVFlagPoleSpawn -glabel D_800E5DF4 -.hword 0xfc7a, 0x0046, 0xfa82, 0x3800 -.hword 0xfc4c, 0x0046, 0xfa03, 0x3800 -.hword 0xf786, 0x0000, 0x02d3, 0x0400 -.hword 0xf76f, 0x0000, 0x02f9, 0x0400 - -glabel gHedgehogSpawns -.hword 0xf96d, 0xffb0, 0xffa8, 0x0009 -.hword 0xf99c, 0xffa3, 0xff6d, 0x0009 -.hword 0xf9a4, 0xffaa, 0xff94, 0x0009 -.hword 0xf974, 0xffbb, 0xffe2, 0x0009 -.hword 0xfb35, 0xffe5, 0xfc23, 0x001a -.hword 0xfb13, 0xffd7, 0xfc90, 0x001a -.hword 0xfac2, 0xffc4, 0xfcc2, 0x001a -.hword 0xfa6b, 0xffb2, 0xfcaf, 0x001a -.hword 0xfa2c, 0xffa2, 0xfcfa, 0x001a -.hword 0xfa53, 0xffa9, 0xfcf0, 0x001a -.hword 0xfa30, 0xffa7, 0xfcac, 0x001a -.hword 0xfaeb, 0xffd1, 0xfc78, 0x001a -.hword 0xf5e5, 0xffc8, 0xfefd, 0x001c -.hword 0xf643, 0xffa2, 0xfe3a, 0x001c -.hword 0xf653, 0xfffd, 0xffc7, 0x001c - -glabel gHedgehogPatrolPoints -.hword 0xf98e, 0xffaa, 0xff8e -.hword 0xf983, 0xffa3, 0xff69 -.hword 0xf97e, 0xffb5, 0xffc6 -.hword 0xf98d, 0xffb9, 0xffe6 -.hword 0xfb56, 0xffe7, 0xfc19 -.hword 0xfb43, 0xffe0, 0xfca0 -.hword 0xfb1f, 0xffd9, 0xfc61 -.hword 0xfabd, 0xffc5, 0xfc9e -.hword 0xfa6d, 0xffb5, 0xfc85 -.hword 0xfa1b, 0xffa1, 0xfcd7 -.hword 0xfa48, 0xffa8, 0xfcca -.hword 0xf9ff, 0xffa4, 0xfcaa -.hword 0xf5c0, 0xffd1, 0xff0f -.hword 0xf637, 0xffa7, 0xfe73 -.hword 0xf615, 0xfffd, 0xffbe - -# This is entirely fake, really there should be a `.balign 4` here -glabel D_800E5EE6 -.hword 0x0000 - -glabel gSnowmanSpawns -.hword 0x02b9, 0x0000, 0xf96c, 0x0003, 0x0052, 0x0000, 0xf73b, 0x0005 -.hword 0x001b, 0x0005, 0xf7ed, 0x0005, 0xfd70, 0x0000, 0xf939, 0x0005 -.hword 0xfa27, 0x0000, 0xffad, 0x0008, 0xf995, 0x0000, 0xffe7, 0x0008 -.hword 0xf9f5, 0x0000, 0xffec, 0x0008, 0xfa5b, 0x0000, 0xfff6, 0x0008 -.hword 0xfa22, 0x0000, 0x003d, 0x0008, 0xfa6b, 0x0000, 0x004f, 0x0008 -.hword 0xf9ce, 0x0000, 0x0047, 0x0008, 0xfa41, 0x0000, 0x009d, 0x0008 -.hword 0xf9fd, 0x0000, 0x00af, 0x0008, 0xfa34, 0x0000, 0x012f, 0x0008 -.hword 0xfa5e, 0x0000, 0x0166, 0x0008, 0xfa1a, 0x0000, 0x01aa, 0x0008 -.hword 0xfd67, 0x0000, 0x033e, 0x000a, 0xfd43, 0x0003, 0x0355, 0x000a -.hword 0xfda6, 0x0000, 0x03a1, 0x000a - -glabel gCrabSpawns -.hword 0xf8ef, 0xf97e, 0x0271, 0x0252, 0xf8c4, 0xf9ac, 0x02f5, 0x02e4 -.hword 0xfa3a, 0xfa53, 0x0732, 0x0729, 0xfa76, 0xfa51, 0x07af, 0x07aa -.hword 0xfa40, 0xfa77, 0x0840, 0x0834, 0xfa93, 0xfac9, 0x0868, 0x0858 -.hword 0x00da, 0x0045, 0x02b5, 0x02b8, 0x00eb, 0x0018, 0x0210, 0x01f5 -.hword 0x010c, 0x0065, 0x0196, 0x018a, 0x00df, 0x0056, 0x013e, 0x0134 - -# Appears to be unused, may have been a different set of crabs at some point? -glabel D_800E5FD0 -.hword 0x017e, 0x012f, 0x0462, 0x0491, 0x008f, 0x011a, 0x042e, 0x03df -.hword 0x0154, 0x00d7, 0x0363, 0x03a7, 0x007b, 0x00ba, 0x035a, 0x0337 -.hword 0x00e1, 0x0056, 0x02c0, 0x02e9, 0x008f, 0x0056, 0x0232, 0x0245 -.hword 0x0190, 0x044c, 0x01f4, 0x03e8, 0x015e, 0x0384, 0x012c, 0x0320 -.hword 0x0000, 0x0000, 0x0032, 0x0032, 0x0064, 0x0064, 0xffce, 0x0032 -.hword 0xff9c, 0x0064, 0x0032, 0xffce, 0x0064, 0xff6a, 0xffce, 0xff9c -.hword 0xff9c, 0x0000 - -# Something related to seagulls in Koopa Troopa Beach, not sure of its exact nature -glabel D_800E6034 -.hword 0x0016, 0x0032, 0x00aa, 0x01f4, 0x0028, 0x0032, 0x0082, 0x00c8 -.hword 0x0028, 0x0000, 0x00aa, 0x0000, 0x0028, 0x00c8, 0x0064, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0xfed4, 0x0028, 0xff38, 0x0032, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0xfed4, 0x0028, 0x00c8, 0x0064, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0x012c, 0x0028, 0xff38, 0x0064, 0x01f4 -.hword 0x0028, 0x0000, 0x00fa, 0x012c, 0x0028, 0x00c8, 0x0032, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0xfed4, 0x0028, 0xff38, 0x0064, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0xfed4, 0x0028, 0x00c8, 0x0064, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0xfed4, 0x0028, 0xff38, 0x00fa, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0x00c8, 0x0028, 0x0032, 0x0064, 0x012c -.hword 0x0028, 0x0032, 0x00aa, 0x0190, 0x0028, 0x0032, 0x00aa, 0x01f4 -.hword 0x0028, 0x0032, 0x00aa, 0x01f4, 0x0028, 0x0000 - -# Something related to seagulls in Koopa Troopa Beach, not sure of its exact nature -glabel D_800E60F0 -.hword 0x0017, 0x0000, 0x00aa, 0xfe0c, 0x0028, 0x00c8, 0x0082, 0xfe70 -.hword 0x0028, 0x0000, 0x00aa, 0xff38, 0x0028, 0xff38, 0x0064, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0x012c, 0x0028, 0x00c8, 0x0064, 0x0190 -.hword 0x0028, 0x0000, 0x00aa, 0x01f4, 0x0028, 0xff38, 0x0064, 0x01f4 -.hword 0x0028, 0x0000, 0x00aa, 0x012c, 0x0028, 0xff38, 0x0064, 0x00c8 -.hword 0x0028, 0x0000, 0x00aa, 0x0000, 0x0028, 0xff9c, 0x0064, 0x00c8 -.hword 0x0028, 0x0000, 0x00aa, 0x0190, 0x0028, 0x0064, 0x0064, 0x01f4 -.hword 0x0028, 0x0000, 0x00aa, 0x02bc, 0x0028, 0xff9c, 0x00e6, 0x01f4 -.hword 0x0028, 0x0000, 0x0096, 0x0190, 0x0028, 0x0064, 0x0082, 0x012c -.hword 0x0028, 0x0000, 0x00aa, 0x0064, 0x0028, 0xff9c, 0x0082, 0x012c -.hword 0x0028, 0x0000, 0x00aa, 0x0190, 0x0028, 0x0064, 0x0082, 0x01f4 -.hword 0x0028, 0x0000, 0x0082, 0x02bc, 0x0028, 0x0000, 0x00aa, 0xfe0c -.hword 0x0028, 0x0000 - -# Something related to seagulls in Koopa Troopa Beach, not sure of its exact nature -glabel D_800E61B4 -.hword 0x0018, 0xff6a, 0x0064, 0x0000, 0x0014, 0xff96, 0x0096, 0xff96 -.hword 0x0014, 0x0000, 0x0050, 0xff6a, 0x0014, 0x006a, 0x0096, 0xff96 -.hword 0x0014, 0x0096, 0x0064, 0x0000, 0x0014, 0x006a, 0x0096, 0x006a -.hword 0x0014, 0x0000, 0x0064, 0x0096, 0x0014, 0xff96, 0x0064, 0x006a -.hword 0x0014, 0xff6a, 0x0082, 0x0000, 0x0014, 0xff96, 0x0050, 0xff96 -.hword 0x0014, 0x0000, 0x0064, 0xff6a, 0x0014, 0x006a, 0x008c, 0xff96 -.hword 0x0014, 0x0096, 0x0064, 0x0000, 0x0014, 0x006a, 0x0064, 0x006a -.hword 0x0014, 0x0000, 0x0096, 0x0096, 0x0014, 0xff96, 0x0050, 0x006a -.hword 0x0014, 0xff6a, 0x0064, 0x0000, 0x0014, 0xff96, 0x0096, 0xff96 -.hword 0x0014, 0x0000, 0x0064, 0xff6a, 0x0014, 0x006a, 0x0078, 0xff96 -.hword 0x0014, 0x0096, 0x0064, 0x0000, 0x0014, 0x006a, 0x0028, 0x006a -.hword 0x0014, 0x0000, 0x0064, 0x0096, 0x0014, 0xff96, 0x0064, 0x006a -.hword 0x0014, 0xff6a, 0x0064, 0x0000, 0x0014, 0x0000 - -# Something related to seagulls in Koopa Troopa Beach, not sure of its exact nature -glabel D_800E6280 -.hword 0x0016, 0xffce, 0x00aa, 0xfe0c, 0x0028, 0xffce, 0x0082, 0xff38 -.hword 0x0028, 0x0000, 0x00aa, 0x0000, 0x0028, 0xff38, 0x0064, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0x012c, 0x0028, 0x00c8, 0x0032, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0x012c, 0x0028, 0xff38, 0x0064, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0xfed4, 0x0028, 0x00c8, 0x0064, 0xfe0c -.hword 0x0028, 0x0000, 0x00fa, 0xfed4, 0x0028, 0xff38, 0x0032, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0x012c, 0x0028, 0x00c8, 0x0064, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0x012c, 0x0028, 0xff38, 0x0064, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0x012c, 0x0028, 0x00c8, 0x00fa, 0x0000 -.hword 0x0028, 0x0000, 0x00aa, 0xff38, 0x0028, 0xffce, 0x0064, 0xfed4 -.hword 0x0028, 0xffce, 0x00aa, 0xfe70, 0x0028, 0xffce, 0x00aa, 0xfe0c -.hword 0x0028, 0xffce, 0x00aa, 0xfe0c, 0x0028, 0x0000 - -glabel D_800E633C -.word D_800E6034, D_800E60F0, D_800E61B4, D_800E6280 - -# Might be Cheep Cheep related? -glabel D_800E634C -.hword 0xf37e, 0x0013, 0xfe22 -.hword 0xf37b, 0x0013, 0xfe31 -.hword 0xf380, 0x0013, 0xfe14 - -.balign 4 -glabel gMoleSpawns -.hword 0x0303, 0x0014, 0xf81a -.hword 0x0327, 0x000f, 0xf7f1 -.hword 0x034f, 0x0012, 0xf808 -.hword 0x0391, 0x000e, 0xf7fa -.hword 0x03ab, 0x0015, 0xf833 -.hword 0x03ad, 0x0011, 0xf818 -.hword 0x03e2, 0x0011, 0xf836 -.hword 0x035f, 0x0016, 0xf826 -.hword 0x05dc, 0x0002, 0x0474 -.hword 0x05e6, 0x000f, 0x041a -.hword 0x0649, 0x0015, 0x03a7 -.hword 0x0509, 0x0003, 0x04f5 -.hword 0x05bc, 0x0016, 0x0416 -.hword 0x0564, 0x000c, 0x0482 -.hword 0x0511, 0x0013, 0x0492 -.hword 0x0635, 0x000b, 0x03ec -.hword 0x0586, 0x0003, 0x04a1 -.hword 0x057d, 0x0004, 0x04e6 -.hword 0x05b7, 0x0008, 0x045e -.hword 0x02bd, 0x0002, 0x04ff -.hword 0x032b, 0x0008, 0x04fe -.hword 0x0317, 0x0010, 0x04cd -.hword 0x036c, 0x000f, 0x04f2 -.hword 0x03d8, 0x0017, 0x04e0 -.hword 0x037b, 0x0014, 0x04da -.hword 0x0398, 0x000f, 0x0518 -.hword 0x0337, 0x0006, 0x052f -.hword 0x02cd, 0x0008, 0x04d7 -.hword 0x02b7, 0x0013, 0x0498 -.hword 0x0274, 0x0008, 0x04a7 -.hword 0x02d4, 0x0004, 0x053b - -# This is entirely fake, there should be a `.balign 4` here -glabel D_800E641A -.hword 0x0000 - -# Referenced by D_800E6724, which is unused -glabel D_800E641C -.hword 0x0016, 0x0014, 0x0000, 0x00c8, 0x0050, 0x0014, 0x0000, 0x0050 -.hword 0x0050, 0x0000, 0x0000, 0x0000, 0x0050, 0x0050, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0xff88, 0x0050, 0xffb0, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0xff88, 0x0050, 0x0050, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0x0078, 0x0050, 0xffb0, 0x0000, 0x00c8 -.hword 0x0050, 0x0000, 0x0000, 0x0078, 0x0050, 0x0050, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0xff88, 0x0050, 0xffb0, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0xff88, 0x0050, 0x0050, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0xff88, 0x0050, 0xffb0, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0x0050, 0x0050, 0x0014, 0x0000, 0x0078 -.hword 0x0050, 0x0014, 0x0000, 0x00a0, 0x0050, 0x0014, 0x0000, 0x00c8 -.hword 0x0050, 0x0014, 0x0000, 0x00c8, 0x0050, 0x0000 - -# Referenced by D_800E6724, which is unused -glabel D_800E64D8 -.hword 0x0017, 0x0000, 0x0000, 0xffce, 0x0050, 0x0014, 0x0000, 0xffd8 -.hword 0x0050, 0x0000, 0x0000, 0xffec, 0x0050, 0xffec, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0x001e, 0x0050, 0x0014, 0x0000, 0x0028 -.hword 0x0050, 0x0000, 0x0000, 0x0032, 0x0050, 0xffec, 0x0000, 0x0032 -.hword 0x0050, 0x0000, 0x0000, 0x001e, 0x0050, 0xffec, 0x0000, 0x0014 -.hword 0x0050, 0x0000, 0x0000, 0x0000, 0x0050, 0xfff6, 0x0000, 0x0014 -.hword 0x0050, 0x0000, 0x0000, 0x0028, 0x0050, 0x000a, 0x0000, 0x0032 -.hword 0x0050, 0x0000, 0x0000, 0x0046, 0x0050, 0xfff6, 0x0000, 0x0032 -.hword 0x0050, 0x0000, 0x0000, 0x0028, 0x0050, 0x000a, 0x0000, 0x001e -.hword 0x0050, 0x0000, 0x0000, 0x000a, 0x0050, 0xfff6, 0x0000, 0x001e -.hword 0x0050, 0x0000, 0x0000, 0x0028, 0x0050, 0x000a, 0x0000, 0x0032 -.hword 0x0050, 0x0000, 0x0000, 0x0046, 0x0050, 0x0000, 0x0000, 0xffce -.hword 0x0050, 0x0000 - -# Something related to the penguins in Sherbet Land, not sure of its exact nature -glabel D_800E659C -.hword 0x0018, 0xffec, 0x0000, 0x0000, 0x0050, 0xfff2, 0x0000, 0xfff2 -.hword 0x0050, 0x0000, 0x0000, 0xffec, 0x0050, 0x000e, 0x0000, 0xfff2 -.hword 0x0050, 0x0014, 0x0000, 0x0000, 0x0050, 0x000e, 0x0000, 0x000e -.hword 0x0050, 0x0000, 0x0000, 0x0014, 0x0050, 0xfff2, 0x0000, 0x000e -.hword 0x0050, 0xffec, 0x0000, 0x0000, 0x0050, 0xfff2, 0x0000, 0xfff2 -.hword 0x0050, 0x0000, 0x0000, 0xffec, 0x0050, 0x000e, 0x0000, 0xfff2 -.hword 0x0050, 0x0014, 0x0000, 0x0000, 0x0050, 0x000e, 0x0000, 0x000e -.hword 0x0050, 0x0000, 0x0000, 0x0014, 0x0050, 0xfff2, 0x0000, 0x000e -.hword 0x0050, 0xffec, 0x0000, 0x0000, 0x0050, 0xfff2, 0x0000, 0xfff2 -.hword 0x0050, 0x0000, 0x0000, 0xffec, 0x0050, 0x000e, 0x0000, 0xfff2 -.hword 0x0050, 0x0014, 0x0000, 0x0000, 0x0050, 0x000e, 0x0000, 0x000e -.hword 0x0050, 0x0000, 0x0000, 0x0014, 0x0050, 0xfff2, 0x0000, 0x000e -.hword 0x0050, 0xffec, 0x0000, 0x0000, 0x0050, 0x0000 - -# Something related to the penguins in Sherbet Land, not sure of its exact nature -glabel D_800E6668 -.hword 0x0016, 0x0005, 0x0000, 0x0032, 0x0050, 0x0005, 0x0000, 0x0014 -.hword 0x0050, 0x0000, 0x0000, 0x0000, 0x0050, 0x0014, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0xffe2, 0x0050, 0xffec, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0xffe2, 0x0050, 0x0014, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0x001e, 0x0050, 0xffec, 0x0000, 0x0032 -.hword 0x0050, 0x0000, 0x0000, 0x001e, 0x0050, 0x0014, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0xffe2, 0x0050, 0xffec, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0xffe2, 0x0050, 0x0014, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0xffe2, 0x0050, 0xffec, 0x0000, 0x0000 -.hword 0x0050, 0x0000, 0x0000, 0x0014, 0x0050, 0x0005, 0x0000, 0x001e -.hword 0x0050, 0x0005, 0x0000, 0x0028, 0x0050, 0x0005, 0x0000, 0x0032 -.hword 0x0050, 0x0005, 0x0000, 0x0032, 0x0050, 0x0000 - -# Appears to be unused -glabel D_800E6724 -.word D_800E641C, D_800E64D8 - -glabel D_800E672C -.word D_800E659C, D_800E6668 - -# These should be floats, really -# I believe they're the positions of the static neon signs in rainbow road -glabel D_800E6734 -.float 1443.0, 1044.0, -5478.0 -.float 1678.0, 1012.0, -4840.0 -.float -3924.0, 921.0, 2566.0 -.float -3311.0, 790.0, 3524.0 -.float -1284.0, 1341.0, 4527.0 -.float 2268.0, 1041.0, 4456.0 -.float 2820.0, 1109.0, 1985.0 - -glabel gTorchSpawns -.hword 0xfda6, 0xffa0, 0x0068 -.hword 0xfd1f, 0xffa1, 0x0136 -.hword 0xfcb0, 0xffa6, 0x021d -.hword 0xfca3, 0xffb0, 0x0302 -.hword 0xfd43, 0xffc4, 0x03b0 -.hword 0xfe52, 0xffd8, 0x039c -.hword 0xff25, 0xffed, 0x0320 -.hword 0xffca, 0xfff8, 0x0270 - -glabel D_800E67B8 -.hword 0x000d, 0x0096, 0x00cc, 0xfe0c, 0x0014, 0x0064, 0x0068, 0xfed4 -.hword 0x0014, 0x0032, 0x0036, 0xff9c, 0x0028, 0x0004, 0x000b, 0xfff2 -.hword 0x0028, 0x0004, 0x0010, 0xfff6, 0x001e, 0x0004, 0x000e, 0xfff8 -.hword 0x001e, 0x0004, 0x0010, 0xfffa, 0x001e, 0x0004, 0x000e, 0xfffc -.hword 0x0032, 0x0004, 0x0010, 0xfffe, 0x0032, 0x0004, 0x000e, 0x0000 -.hword 0x0032, 0xfff6, 0x0010, 0x000a, 0x0028, 0xffce, 0x002c, 0x0064 -.hword 0x0000, 0xfc19, 0x03eb, 0x01f4, 0x0000, 0xfc19, 0x03eb, 0x01f4 -.hword 0x0000, 0xfc19, 0x03eb, 0x01f4, 0x0000, 0x0000 - -# Appears to be related to Lakitu waving the checkered flag -glabel D_800E6834 -.hword 0x0014, 0x0014, 0x0012, 0x001e, 0x0028, 0x0000, 0x0012, 0x0014 -.hword 0x0028, 0xffec, 0x0012, 0x000a, 0x0028, 0x0000, 0x0012, 0x0000 -.hword 0x0028, 0x0014, 0x000b, 0x0000, 0x0028, 0x0000, 0x0012, 0xffe2 -.hword 0x0028, 0xffec, 0x000b, 0x0000, 0x0028, 0x0000, 0x0012, 0xffe2 -.hword 0x0028, 0x0014, 0x000b, 0x0000, 0x0028, 0x0000, 0x0012, 0x001e -.hword 0x0028, 0xffec, 0x000b, 0x0032, 0x0028, 0x0000, 0x0012, 0x001e -.hword 0x0028, 0x0014, 0x000b, 0x0000, 0x0028, 0x0000, 0x0012, 0xffe2 -.hword 0x0028, 0xffec, 0x000b, 0x0000, 0x0028, 0x0000, 0x0012, 0xffe2 -.hword 0x0028, 0x0014, 0x000b, 0x0000, 0x0028, 0x0000, 0x0012, 0xffe2 -.hword 0x0028, 0xffec, 0x000b, 0x0000, 0x0028, 0x0000, 0x0012, 0x001e -.hword 0x0028, 0x0014, 0x0012, 0x001e, 0x0028, 0x0000, 0x000c, 0x001e -.hword 0x0018, 0x0078, 0x000a, 0x0014, 0x0013, 0x0050, 0x000a, 0x000a -.hword 0x000e, 0x0032, 0x000a, 0x0005, 0x000d, 0x0014, 0x001e, 0x0000 -.hword 0x000d, 0x000a, 0x001e, 0x0000, 0x000d, 0x0000, 0x001e, 0x0000 -.hword 0x000e, 0xfffb, 0x000a, 0x0000, 0x0010, 0xfff6, 0x000a, 0x0000 -.hword 0x001d, 0xffce, 0x000a, 0x0000, 0x0036, 0xff9c, 0x000a, 0x0000 -.hword 0x0068, 0xff38, 0x0000, 0x0000, 0x00cc, 0xfe0c, 0x0000, 0x0000 -.hword 0x00cc, 0xfe0c, 0x0000, 0x0000 - -# Appears to be related to Lakitu Second Lap animation -glabel D_800E694C -.hword 0x000b, 0x0032, 0x0014, 0x0050, 0x000a, 0x0014, 0x0013, 0x0028 -.hword 0x000a, 0x0000, 0x0012, 0x001e, 0x000a, 0xfff8, 0x0011, 0x0014 -.hword 0x001e, 0xfff4, 0x0010, 0x000a, 0x001e, 0x0000, 0x000f, 0x0000 -.hword 0x001e, 0x000c, 0x000f, 0x000a, 0x000a, 0x0008, 0x0010, 0x0014 -.hword 0x000a, 0x0000, 0x0011, 0x001e, 0x000a, 0xffec, 0x0012, 0x0028 -.hword 0x000a, 0xffc4, 0x0013, 0x0064, 0x000a, 0xffc4, 0x0013, 0x0064 -.hword 0x000a, 0x0000 - -# Appears to be related to Lakitu Reverse animation -glabel D_800E69B0 -.hword 0x0007, 0x001e, 0x000e, 0x0032, 0x0028, 0x000a, 0x0010, 0x0014 -.hword 0x0028, 0x0005, 0x0011, 0x000a, 0x003c, 0x0002, 0x0012, 0x0000 -.hword 0x003c, 0x0000, 0x0012, 0x0000, 0x003c, 0x0000, 0x0012, 0x0000 -.hword 0x0000, 0x0000, 0x0012, 0x0000, 0x0000, 0x0000, 0x0012, 0x0000 -.hword 0x0000, 0x0000 - -# Might be related to Lakitu doing the countdown? -glabel D_800E69F4 -.hword 0x0007, 0x0000, 0x0012, 0xfffb, 0x0014, 0x0000, 0x0012, 0xfff6 -.hword 0x0014, 0x0000, 0x0012, 0x0005, 0x0010, 0xfff6, 0x0017, 0x000a -.hword 0x000a, 0xfff1, 0x0017, 0x0014, 0x000a, 0xffec, 0x001c, 0x001e -.hword 0x0000, 0xffe2, 0x0026, 0x00c8, 0x0000, 0xffe2, 0x0026, 0x00c8 -.hword 0x0000, 0x0000 - -glabel D_800E6A38 -.hword 0x04fa, 0xfff6, 0x0096, 0x0000, 0x4718, 0x003c, 0x007d, 0x0000 -.hword 0x5550, 0x0046, 0x0096, 0x0000, 0x954c, 0x002d, 0x004b, 0x0000 -.hword 0xae2e, 0x0028, 0x004b, 0x0000, 0x0e38, 0x001e, 0x0032, 0x0001 -.hword 0xa384, 0x0032, 0x0064, 0x0001, 0xd548, 0x001e, 0x0032, 0x0001 -.hword 0x31c4, 0x0032, 0x0064, 0x0002, 0x7ff8, 0x0037, 0x0064, 0x0002 -.hword 0xaaa0, 0x004b, 0x0096, 0x0002, 0xb8d8, 0xfff9, 0x0064, 0x0002 -.hword 0xee2a, 0x003c, 0x0050, 0x0002, 0xffff, 0x0000, 0x0000, 0x0000 - -glabel D_800E6AA8 -.hword 0x00b6, 0x0050, 0x0041, 0x0000, 0x4718, 0x003c, 0x0064, 0x0000 -.hword 0x18e2, 0x0032, 0x004b, 0x0000, 0x7ff8, 0x0037, 0x0064, 0x0000 -.hword 0x9ff6, 0x002d, 0x0032, 0x0000, 0xc710, 0x0046, 0x003c, 0x0000 -.hword 0x0aaa, 0x001e, 0x0064, 0x0001, 0x5c6c, 0x0046, 0x0046, 0x0001 -.hword 0x31c4, 0x0028, 0x0050, 0x0002, 0xf1b8, 0x0028, 0x004b, 0x0002 -.hword 0xffff, 0x0000, 0x0000, 0x0000 - -glabel D_800E6B00 -.hword 0x1554, 0x001e, 0x00c8, 0x0000, 0xce2c, 0x001e, 0x00c8, 0x0000 -.hword 0xa384, 0x001e, 0x00c8, 0x0001, 0x070c, 0x001e, 0x00c8, 0x0001 -.hword 0x4718, 0x001e, 0x00c8, 0x0002, 0x8714, 0x001e, 0x00c8, 0x0003 -.hword 0xffff, 0x0000, 0x0000, 0x0000 - -glabel D_800E6B38 -.hword 0x60b0, 0x003c, 0x007d, 0x0000, 0xb8d8, 0x0037, 0x0064, 0x0000 -.hword 0xd548, 0x000a, 0x0082, 0x0000, 0xf1b8, 0x0023, 0x0064, 0x0000 -.hword 0x04fa, 0x0046, 0x0096, 0x0001, 0x4718, 0x003c, 0x007d, 0x0001 -.hword 0x954c, 0x002d, 0x004b, 0x0001, 0x0e38, 0x001e, 0x0032, 0x0002 -.hword 0x8880, 0x0046, 0x0096, 0x0002, 0x31c4, 0x0032, 0x0064, 0x0003 -.hword 0x5056, 0x0028, 0x004b, 0x0003, 0x7ff8, 0x0037, 0x0064, 0x0003 -.hword 0xaaa0, 0x004b, 0x0096, 0x0003, 0xffff, 0x0000, 0x0000, 0x0000 - -glabel D_800E6BA8 -.hword 0x4718, 0x003c, 0x007d, 0x0000, 0x5550, 0x0046, 0x0096, 0x0000 -.hword 0x954c, 0x002d, 0x004b, 0x0000, 0xf546, 0x0028, 0x004b, 0x0000 -.hword 0x0e38, 0x001e, 0x0032, 0x0001, 0x0222, 0x0032, 0x0064, 0x0002 -.hword 0x1ffe, 0x0028, 0x004b, 0x0002, 0x31c4, 0x0032, 0x0064, 0x0002 -.hword 0x7ff8, 0x0037, 0x0064, 0x0002, 0xaaa0, 0x004b, 0x0096, 0x0002 -.hword 0xb8d8, 0x0037, 0x0064, 0x0002, 0xdff2, 0x001e, 0x0032, 0x0002 -.hword 0xffff, 0x0000, 0x0000, 0x0000 - -glabel D_800E6C10 -.hword 0x1ffe, 0x0028, 0x004b, 0x0000, 0x60b0, 0x003c, 0x007d, 0x0000 -.hword 0xb8d8, 0x0037, 0x0064, 0x0000, 0x4718, 0x003c, 0x007d, 0x0001 -.hword 0x954c, 0x002d, 0x004b, 0x0001, 0xf546, 0x0028, 0x004b, 0x0001 -.hword 0x0e38, 0x001e, 0x0032, 0x0002, 0xa384, 0x0032, 0x0064, 0x0002 -.hword 0xddd0, 0x0046, 0x0096, 0x0002, 0x0222, 0x0032, 0x0064, 0x0003 -.hword 0x31c4, 0x0032, 0x0064, 0x0003, 0x7ff8, 0x0037, 0x0064, 0x0003 -.hword 0xaaa0, 0x004b, 0x0096, 0x0003, 0xffff, 0x0000, 0x0000, 0x0000 - -glabel D_800E6C80 -.hword 0x0222, 0x0032, 0x000a, 0x0000, 0x04fa, 0x0046, 0x000f, 0x0000 -.hword 0x093e, 0x000a, 0x0014, 0x0000, 0x0e38, 0x001e, 0x000f, 0x0000 -.hword 0x11c6, 0x0028, 0x0014, 0x0000, 0x1554, 0xfff6, 0x000f, 0x0000 -.hword 0x1ddc, 0x000a, 0x0011, 0x0000, 0x1ffe, 0x0030, 0x0019, 0x0000 -.hword 0x271a, 0x0046, 0x0014, 0x0000, 0x27d0, 0xfff1, 0x0016, 0x0000 -.hword 0x2c14, 0x0014, 0x000f, 0x0000, 0x31c4, 0x0032, 0x0016, 0x0000 -.hword 0x327a, 0x0000, 0x000a, 0x0000, 0x3a4c, 0x000f, 0x0016, 0x0000 -.hword 0x3ffc, 0x002d, 0x0011, 0x0000, 0x40b2, 0xffdd, 0x0016, 0x0000 -.hword 0x4440, 0x0037, 0x0014, 0x0000, 0x4718, 0x003c, 0x000c, 0x0000 -.hword 0x4718, 0x0050, 0x000c, 0x0000, 0x4aa6, 0xfff6, 0x000f, 0x0000 -.hword 0x5056, 0x0028, 0x000a, 0x0000, 0x5550, 0x0046, 0x000f, 0x0000 -.hword 0x60b0, 0x003c, 0x0016, 0x0000, 0x6388, 0xffdd, 0x0019, 0x0000 -.hword 0x64f4, 0x0023, 0x0011, 0x0000, 0x6aa4, 0x004b, 0x0014, 0x0000 -.hword 0x7054, 0x002d, 0x0019, 0x0000, 0x7498, 0x0014, 0x0012, 0x0000 -.hword 0x7bb4, 0xfff1, 0x001b, 0x0000, 0x7ff8, 0x0037, 0x000a, 0x0000 -.hword 0x8386, 0x0041, 0x0014, 0x0000, 0x8880, 0x0046, 0x000f, 0x0000 -.hword 0x954c, 0x002d, 0x0011, 0x0000, 0x98da, 0x003c, 0x000f, 0x0000 -.hword 0x9dd4, 0x0000, 0x000a, 0x0000, 0xa384, 0x0046, 0x000f, 0x0000 -.hword 0xa43a, 0x0032, 0x0017, 0x0000, 0xaaa0, 0x004b, 0x000f, 0x0000 -.hword 0xae2e, 0x0028, 0x0011, 0x0000, 0xb1bc, 0x0023, 0x0014, 0x0000 -.hword 0xb8d8, 0xfff1, 0x000a, 0x0000, 0xbc66, 0xffe2, 0x000f, 0x0000 -.hword 0xc710, 0x001e, 0x000c, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000 - -glabel D_800E6DE0 -.hword 0x0222, 0x0050, 0x000a, 0x0000, 0x04fa, 0x0064, 0x000f, 0x0000 -.hword 0x093e, 0x005a, 0x0014, 0x0000, 0x0e38, 0x003c, 0x000f, 0x0000 -.hword 0x11c6, 0x0046, 0x0014, 0x0000, 0x1554, 0x0078, 0x000f, 0x0000 -.hword 0x1c70, 0x001e, 0x0011, 0x0000, 0x1ffe, 0x0046, 0x0011, 0x0000 -.hword 0x271a, 0x0064, 0x0014, 0x0000, 0x2c14, 0x0032, 0x000f, 0x0000 -.hword 0x31c4, 0x0050, 0x000a, 0x0000, 0x3996, 0x0019, 0x000c, 0x0000 -.hword 0x3a4c, 0x0037, 0x0016, 0x0000, 0x3bb8, 0x0019, 0x000c, 0x0000 -.hword 0x3ffc, 0x004b, 0x0011, 0x0000, 0x4440, 0x0055, 0x0014, 0x0000 -.hword 0x4718, 0x005a, 0x000c, 0x0000, 0x4aa6, 0x003c, 0x000f, 0x0000 -.hword 0x5056, 0x0046, 0x000a, 0x0000, 0x5550, 0x0064, 0x000f, 0x0000 -.hword 0x60b0, 0x005a, 0x0016, 0x0000, 0x64f4, 0x0041, 0x0014, 0x0000 -.hword 0x6aa4, 0x0069, 0x0014, 0x0000, 0x7054, 0x004b, 0x0014, 0x0000 -.hword 0x71c0, 0x0078, 0x0012, 0x0000, 0x7498, 0x003c, 0x0012, 0x0000 -.hword 0x7ff8, 0x0055, 0x000a, 0x0000, 0x8714, 0x0073, 0x000a, 0x0000 -.hword 0x8880, 0x0064, 0x000f, 0x0000, 0x954c, 0x004b, 0x0011, 0x0000 -.hword 0x98da, 0x003c, 0x000f, 0x0000, 0x9dd4, 0x0032, 0x000a, 0x0000 -.hword 0xa384, 0x0050, 0x000a, 0x0000, 0xa43a, 0x006e, 0x000a, 0x0000 -.hword 0xaaa0, 0x0069, 0x000f, 0x0000, 0xae2e, 0x0046, 0x0011, 0x0000 -.hword 0xb1bc, 0x0041, 0x0014, 0x0000, 0xb8d8, 0x0055, 0x000a, 0x0000 -.hword 0xbc66, 0x003c, 0x000f, 0x0000, 0xc710, 0x0064, 0x000a, 0x0000 -.hword 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 - -glabel D_800E6F30 -.byte 0xc8, 0x01, 0x00 -.byte 0x00, 0x70, 0x01 -.byte 0x10, 0x79, 0x51 -.byte 0x00, 0x59, 0x70 -.byte 0x70, 0x55, 0x00 -.byte 0x7a, 0x7e, 0x00 -.byte 0x77, 0x2c, 0x24 -.byte 0x30, 0x14, 0x58 - -glabel D_800E6F48 -.byte 0xdc, 0x00, 0x00 -.byte 0x00, 0x8c, 0x06 -.byte 0x00, 0x00, 0x51 -.byte 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00 -# code_80071F00 end? diff --git a/include/objects.h b/include/objects.h index e5940e5f0..84d71873d 100644 --- a/include/objects.h +++ b/include/objects.h @@ -1,6 +1,7 @@ #ifndef OBJECTS_H #define OBJECTS_H +#include "spline.h" #include "common_structs.h" #define OBJECT_LIST_SIZE 0x226 @@ -34,8 +35,8 @@ typedef struct /* 0x70 */ Gfx *model; /* 0x74 */ Vtx *vertex; /* 0x78 */ s8 unk_078[0x04]; - /* 0x7C */ Vec4s *unk_07C; - /* 0x80 */ Vec4s *unk_080; // unk_080[][4]? + /* 0x7C */ SplineControlPoint *controlPoints; + /* 0x80 */ SplineData *spline; /* 0x84 */ s16 unk_084[0xA]; /* 0x98 */ u16 timer; /* 0x9A */ u16 unk_09A; @@ -283,6 +284,13 @@ extern Vec3s gHedgehogPatrolPoints[]; */ extern s32 indexObjectList2[]; +// This struct is used by a lot of different objects +// Stars, clouds, exahust smoke (I think?) +typedef struct { + Vec3su pos; + u16 id; +} StarSpawn; + #define NUM_BOOS 0xA #define NUM_FIRE_BREATHS 4 diff --git a/include/spline.h b/include/spline.h new file mode 100644 index 000000000..a1dda049f --- /dev/null +++ b/include/spline.h @@ -0,0 +1,101 @@ +#ifndef SPLINE_H +#define SPLINE_H + +#include "common_structs.h" + +/* +These are some very good videos about splines/Bezier curves in general + +The Beauty of Bezier Curves +https://www.youtube.com/watch?v=aVwxzDHniEw + +The Continuity of Splines +https://www.youtube.com/watch?v=jvPPXbo87ds +*/ + +/* +This stuff is all about the b-splines used objects like Lakitu and the Boos on Banshee Boardwalk +For splines used during the award ceremony and credits, see src/ending/ceremony_and_credits.h +*/ + +typedef struct { + /* 0x0 */ Vec3s pos; + // Don't really know what to call this member. + // It somehow controls the speed of travel along a segment of the spline but I don't really get how it works + /* 0x6 */ s16 velocity; +} SplineControlPoint; // size = 0x8 + +// WARNING!!! +// You really, really shouldn't use this type for actual spline data. This is intended as a generic SplineData +// type. I would use a union, but that would cause significant ugliness elsewhere in the codebase +typedef struct { + // This name is a little misleading + // The control point arrays have more control points in them than this number indicates. Not sure why though. + s16 numControlPoints; + // This has to be an array for this to work, so just make it size 1 + SplineControlPoint controlPoints[1]; +} SplineData; + +// All other SplineDataXX types are for use as data only. The size of the array in them matters a lot. +// But object structs should never have members with these types, just use the plain SplineData type + +// Ghosts in BansheeBoardwalk x 2 +// Seagulls in KoopaTroopaBeach x 2 +// Penguins in Sherbet Land x 1 +typedef struct { + s16 numControlPoints; + SplineControlPoint controlPoints[23]; +} SplineData23; + +// Ghosts in BansheeBoardwalk x 2 +// Seagulls in KoopaTroopaBeach x 1 +typedef struct { + s16 numControlPoints; + SplineControlPoint controlPoints[24]; +} SplineData24; + + +// Ghosts in BansheeBoardwalk x 1 +// Seagulls in KoopaTroopaBeach x 1 +// Penguins in Sherbet Land x 1 +typedef struct { + s16 numControlPoints; + SplineControlPoint controlPoints[25]; +} SplineData25; + +// Data of this type is unreferenced or only referenced in an unused function +typedef struct { + s16 numControlPoints; + SplineControlPoint controlPoints[4]; +} SplineDataUnused4; + +// Lakitu Countdown +typedef struct { + s16 numControlPoints; + SplineControlPoint controlPoints[15]; +} SplineData15; + +// Lakitu Checkered Flag +typedef struct { + s16 numControlPoints; + SplineControlPoint controlPoints[21]; +} SplineData21; + +typedef struct { + s16 numControlPoints; + SplineControlPoint controlPoints[13]; +} SplineDataUnused13; + +// Lakitu Second/Final Lap +typedef struct { + s16 numControlPoints; + SplineControlPoint controlPoints[12]; +} SplineData12; + +// Lakitu Reverse +typedef struct { + s16 numControlPoints; + SplineControlPoint controlPoints[8]; +} SplineData8; + +#endif diff --git a/include/waypoints.h b/include/waypoints.h index 2a9358d39..7334a49c7 100644 --- a/include/waypoints.h +++ b/include/waypoints.h @@ -1,6 +1,8 @@ #ifndef WAYPOINTS_H #define WAYPOINTS_H +#include "common_structs.h" + typedef struct { /* 0x00 */ s16 posX; /* 0x02 */ s16 posY; diff --git a/mk64.ld b/mk64.ld index 4a9a8c167..c5d10071b 100644 --- a/mk64.ld +++ b/mk64.ld @@ -209,7 +209,7 @@ SECTIONS BUILD_DIR/src/profiler.o(.data); BUILD_DIR/src/crash_screen.o(.data); BUILD_DIR/src/staff_ghosts.o(.data); - BUILD_DIR/data/data_0DD0A0_1.o(.data); + BUILD_DIR/src/data/path_spawn_data.o(.data); BUILD_DIR/src/camera.o(.data); BUILD_DIR/src/render_player.o(.data); BUILD_DIR/src/kart_dma.o(.data); @@ -219,7 +219,7 @@ SECTIONS BUILD_DIR/src/code_80071F00.o(.data); BUILD_DIR/src/data/data_800E45C0.o(.data); BUILD_DIR/src/code_80057C60.o(.data); - BUILD_DIR/data/data_code_80071F00_2.o(.data); + BUILD_DIR/src/data/some_data.o(.data); BUILD_DIR/src/effects.o(.data); BUILD_DIR/src/code_80091440.o(.data); BUILD_DIR/src/code_80091750.jp.o(.data); diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index 1d95b441d..fab1074ad 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -29,6 +29,7 @@ #include "ending/podium_ceremony_actors.h" #include "spawn_players.h" #include "sounds.h" +#include "data/path_spawn_data.h" s32 unk_code_80005FD0_pad[24]; Collision D_80162E70; diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h index 4c80303f6..228b0e6c8 100644 --- a/src/code_80005FD0.h +++ b/src/code_80005FD0.h @@ -250,26 +250,6 @@ void func_8001C42C(void); /* This is where I'd put my static data, if I had any */ -extern UnkCommonTextureStruct0 *D_800DC720[]; -// Suspected to be the "width" of each waypoint. See data_0DD0A0_1.s -extern f32 D_800DCA4C[]; -extern s16 D_800DCA20[]; - -struct _struct_D_800DD9D0_0x10 { - /* 0x00 */ u16 unk0; - /* 0x02 */ u16 unk2; - /* 0x04 */ u16 unk4; - /* 0x06 */ u16 unk6; - /* 0x08 */ u16 unk8; - /* 0x0A */ char padA[6]; -}; // size 0x10 - -extern uintptr_t gCoursePathTable[20][4]; -extern uintptr_t D_800DC8D0[20][4]; -// An array of 21 items. The final element is for podium ceremony. -extern struct _struct_D_800DD9D0_0x10 D_800DD9D0[]; - - extern Collision D_80162E70; extern s16 D_80162EB0; // Possibly a float. extern s16 D_80162EB2; // possibly [3] @@ -405,8 +385,6 @@ extern u32 D_801646C8; extern u16 D_801646CC; extern UnkStruct_46D0 D_801646D0[]; -extern f32 D_800DCAA0[]; - // See bss_80005FD0.s extern f32 gCourseCompletionPercentByRank[NUM_PLAYERS]; @@ -417,6 +395,4 @@ extern u16 D_80163E2A; extern Gfx D_0D0076F8[]; -extern s32 D_800DDB20; - #endif diff --git a/src/code_80057C60.c b/src/code_80057C60.c index 745816c1d..6d0a77c14 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -34,6 +34,7 @@ #include "spawn_players.h" #include "sounds.h" #include "code_80071F00.h" +#include "data/some_data.h" //! @warning this macro is undef'd at the end of this file diff --git a/src/code_80057C60.h b/src/code_80057C60.h index 1604299d7..09dc7e935 100644 --- a/src/code_80057C60.h +++ b/src/code_80057C60.h @@ -246,33 +246,12 @@ void func_8006E940(Player*, s8, s8); void func_80075CA8(void); void func_80085214(); -// data/data_code_80071F00_2.s - -extern Vtx gBalloonVertexPlane1[]; -extern Vtx gBalloonVertexPlane2[]; - extern s16 D_800E4730[]; extern u8 **D_800E4770[]; extern u8 **D_800E47A0[]; extern s32 D_800E47DC[]; extern s32 D_800E480C[]; -extern u8 D_800E52D0[]; -extern u8 D_800E55D0[14][3]; -extern u16 D_800E55A0[]; -extern u16 D_800E55B0[16]; - -extern u16 D_800E67B8[][4]; - -extern u16 D_800E6834[][4]; - -extern u16 D_800E694C[]; -extern u16 D_800E69B0[][4]; -extern u16 D_800E69F4[][4]; - -extern u8 D_800E6F30[][3]; -extern u8 D_800E6F48[][3]; - extern f32 D_801652A0[]; extern s32 D_80165590; diff --git a/src/code_80071F00.c b/src/code_80071F00.c index 709463b96..2115740db 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -32,6 +32,7 @@ #include "src/ending/ceremony_and_credits.h" #include "menus.h" #include "data/other_textures.h" +#include "data/some_data.h" //! @todo unused? f32 D_800E43B0[] = { @@ -3000,7 +3001,7 @@ void update_obj_laikitu_countdown(s32 objectIndex, s32 arg1) { break; case 3: set_object_flag_unk_054_true(objectIndex, 0x00000010); - func_80086F10(objectIndex, 1, D_800E67B8); + func_80086F10(objectIndex, 1, &D_800E67B8); func_80072488(objectIndex); break; case 4: @@ -3075,7 +3076,7 @@ void init_obj_laikitu_red_flag(s32 objectIndex, s32 playerIndex) { temp_v0->pos[1] = 5000.0f; temp_v0->pos[0] = 5000.0f; temp_v0->sizeScaling = 0.15f; - func_80086F10(objectIndex, 2, D_800E6834); + func_80086F10(objectIndex, 2, &D_800E6834); set_object_flag_unk_054_false(objectIndex, 0x00000010); func_80072488(objectIndex); } @@ -3420,7 +3421,7 @@ void func_8007A3F0(s32 objectIndex, s32 arg1) { gObjectList[objectIndex].pos[0] = var; gObjectList[objectIndex].sizeScaling = 0.15f; set_object_flag_unk_054_false(objectIndex, 0x00000010); - func_80086F10(objectIndex, 6, D_800E69B0); + func_80086F10(objectIndex, 6, &D_800E69B0); gObjectList[objectIndex].unk_0D6 = 0; func_80072488(objectIndex); func_800C8F80((u8)arg1, 0x0100FA28); @@ -3450,7 +3451,7 @@ void update_obj_laikitu_reverse(s32 objectIndex, s32 playerId) { switch (gObjectList[objectIndex].unk_0D6) { /* switch 1; irregular */ case 1: /* switch 1 */ if ((gObjectList[objectIndex].state >= 3) && (!(sp2C->effects & 0x400000))) { - func_80086F10(objectIndex, 6, D_800E69F4); + func_80086F10(objectIndex, 6, &D_800E69F4); gObjectList[objectIndex].unk_0D6 = 2; gObjectList[objectIndex].unk_04C = 0x00000050; func_800C9018((u8) playerId, SOUND_ARG_LOAD(0x01, 0x00, 0xFA, 0x28)); @@ -4328,7 +4329,7 @@ void func_8007C7B4(s32 someIndex, s32 arg1) { s16 temp_s1_2; s16 temp_s4; s16 temp_s5; - s16 *something; + SplineData *something; for (temp_a0 = 0; temp_a0 < 5; temp_a0++) { objectIndex = indexObjectList3[someIndex + temp_a0]; @@ -4339,7 +4340,7 @@ void func_8007C7B4(s32 someIndex, s32 arg1) { temp_s5 = random_int(0x0050U) - 0x28; random_int(0x1000U); something = D_800E5D9C[temp_a0]; - gObjectList[objectIndex].unk_080 = (Vec4s *) something; + gObjectList[objectIndex].spline = something; gObjectList[objectIndex].origin_pos[0] = (f32) temp_s1_2; gObjectList[objectIndex].origin_pos[1] = (f32) temp_s4; gObjectList[objectIndex].origin_pos[2] = (f32) temp_s5; @@ -4562,7 +4563,7 @@ void func_8007D070(void) { gObjectList[objectIndex].origin_pos[0] = D_8018CF1C->pos[0] + (sins(temp_t2) * temp_s2); gObjectList[objectIndex].origin_pos[1] = temp_t5; gObjectList[objectIndex].origin_pos[2] = D_8018CF1C->pos[2] + (coss(temp_t2) * temp_s2); - gObjectList[objectIndex].unk_080 = (Vec4s *) D_800E5D54; + gObjectList[objectIndex].spline = &D_800E5D54; } } } @@ -5988,8 +5989,8 @@ void func_80080DE4(s32 arg0) { } #ifdef NON_MATCHING -extern f32 D_800E594C[5][2]; -extern s16 D_800E597C[6]; +extern f32 D_800E594C[][2]; +extern u16 D_800E597C[6]; void func_80080E8C(s32 objectIndex1, s32 objectIndex2, s32 arg2) { u16 anAngle; @@ -6508,7 +6509,7 @@ void func_8008241C(s32 objectIndex, s32 arg1) { set_obj_direction_angle(objectIndex, 0U, 0U, 0U); gObjectList[objectIndex].unk_034 = 1.0f; func_80086EF0(objectIndex); - gObjectList[objectIndex].unk_080 = (Vec4s *) D_800E633C[arg1 % 4]; + gObjectList[objectIndex].spline = D_800E633C[arg1 % 4]; set_object_flag_unk_054_true(objectIndex, 0x00000800); func_80072488(objectIndex); } @@ -7129,7 +7130,7 @@ void func_80084430(s32 objectIndex, UNUSED s32 arg1) { set_obj_direction_angle(objectIndex, 0U, 0U, 0U); temp_s0->unk_0DD = 1; func_80086EF0(objectIndex); - temp_s0->unk_080 = (Vec4s *) *D_800E672C; + temp_s0->spline = D_800E672C[0]; set_object_flag_unk_054_true(objectIndex, 0x04000800); temp_s0->type = func_80004EAC(d_course_sherbet_land_unk_data11, 0); func_80072488(objectIndex); diff --git a/src/code_80071F00.h b/src/code_80071F00.h index c48a3f09a..18d353b0d 100644 --- a/src/code_80071F00.h +++ b/src/code_80071F00.h @@ -4,13 +4,7 @@ #include "code_80004740.h" #include "common_structs.h" #include "camera.h" - -// This struct is used by a lot of different objects -// Stars, clouds, exahust smoke (I think?) -typedef struct { - Vec3su pos; - u16 id; -} StarSpawn; +#include "objects.h" /** @cond */ @@ -395,20 +389,6 @@ extern s8 D_8018D198[]; extern s8 D_8018D1A8[]; extern s8 D_8018D1B8[]; -// This is either 3 Vec3s as separate variables or an array of s16's or an array of vec3s. -// The other entries appear to be unused. -// data/data_code_80071F00_2.s -extern Vec3s D_800E634C[3]; // static? -extern Vtx D_800E4470[]; -extern Vtx D_800E44B0[]; -extern u8 *D_800E4570[]; -// The exact type here is a little unknown, but s16* works for now -extern s16 *D_800E5D54[]; -extern s16 *D_800E5D9C[5]; -extern s8 D_800E5DB4[]; -extern s16 *D_800E633C[]; -extern s16 *D_800E672C[2]; - /** @endcond */ #endif diff --git a/src/code_80086E70.c b/src/code_80086E70.c index 724fb7234..a542edf54 100644 --- a/src/code_80086E70.c +++ b/src/code_80086E70.c @@ -31,10 +31,10 @@ void func_80086EF0(s32 objectIndex) { func_80086E70(objectIndex); } -void func_80086F10(s32 objectIndex, s32 arg1, Vec4s arg2[]) { +void func_80086F10(s32 objectIndex, s32 arg1, SplineData *spline) { func_80086E70(objectIndex); gObjectList[objectIndex].unk_0DE = arg1; - gObjectList[objectIndex].unk_080 = arg2; + gObjectList[objectIndex].spline = spline; } void func_80086F60(s32 objectIndex) { @@ -409,18 +409,18 @@ UNUSED void func_800880DC(void) { } void func_800880E4(s32 objectIndex) { - Vec4s *phi_v0; + SplineControlPoint *phi_v0; s32 someIndex; - phi_v0 = gObjectList[objectIndex].unk_07C; + phi_v0 = gObjectList[objectIndex].controlPoints; for (someIndex = 0; someIndex < 2; someIndex++, phi_v0++) { - D_80165760[someIndex] = (*phi_v0)[0]; - D_80165770[someIndex] = (*phi_v0)[1]; - D_80165780[someIndex] = (*phi_v0)[2]; + D_80165760[someIndex] = phi_v0->pos[0]; + D_80165770[someIndex] = phi_v0->pos[1]; + D_80165780[someIndex] = phi_v0->pos[2]; } } void func_80088150(s32 arg0) { - gObjectList[arg0].unk_07C++; + gObjectList[arg0].controlPoints++; } void func_80088178(s32 objectIndex, s32 arg1) { @@ -439,18 +439,20 @@ void func_80088178(s32 objectIndex, s32 arg1) { // if the code is too ugly for you, then go fix it without tampering with the register allocations void func_80088228(s32 objectIndex) { - s16 *temp_v1; - Objects *temp_v0; - temp_v0 = &gObjectList[objectIndex]; - temp_v1 = temp_v0->unk_080[0]; - temp_v1 = &temp_v0->unk_080[0][1]; - (&gObjectList[objectIndex])->unk_084[9] = 0; - (&gObjectList[objectIndex])->unk_07C = (s16 (*)[4]) temp_v1; - (&gObjectList[objectIndex])->unk_084[8] = temp_v1[-1]; - (&gObjectList[objectIndex])->unk_028[0] = temp_v1[0]; - (&gObjectList[objectIndex])->unk_028[1] = temp_v1[1]; - temp_v0->unk_028[2] = temp_v1[2]; - func_80086FD4(objectIndex); + Objects *temp_v0; + temp_v0 = &gObjectList[objectIndex]; + temp_v0->unk_084[9] = 0; + temp_v0->controlPoints = temp_v0->spline->controlPoints; + /* + This is INCREDIBLY stupid. This should really be + temp_v0->unk_084[8] = temp_v0->spline->numControlPoints; + but for some unholy reason that doesn't match + */ + temp_v0->unk_084[8] = *((s16*)temp_v0->controlPoints - 1); + temp_v0->unk_028[0] = temp_v0->controlPoints[0].pos[0]; + temp_v0->unk_028[1] = temp_v0->controlPoints[0].pos[1]; + temp_v0->unk_028[2] = temp_v0->controlPoints[0].pos[2]; + func_80086FD4(objectIndex); } @@ -1435,12 +1437,12 @@ s32 func_8008A8B0(s16 arg0, s16 arg1) { } void func_8008A920(s32 objectIndex) { - Vec4s *temp_v0; + SplineControlPoint *temp_v0; - temp_v0 = gObjectList[objectIndex].unk_07C; - gObjectList[objectIndex].velocity[0] = (f32) (temp_v0[1][0] - temp_v0[0][0]) / (f32) temp_v0[0][3]; - gObjectList[objectIndex].velocity[1] = (f32) (temp_v0[1][1] - temp_v0[0][1]) / (f32) temp_v0[0][3]; - gObjectList[objectIndex].velocity[2] = (f32) (temp_v0[1][2] - temp_v0[0][2]) / (f32) temp_v0[0][3]; + temp_v0 = gObjectList[objectIndex].controlPoints; + gObjectList[objectIndex].velocity[0] = (f32) (temp_v0[1].pos[0] - temp_v0[0].pos[0]) / (f32) temp_v0[0].velocity; + gObjectList[objectIndex].velocity[1] = (f32) (temp_v0[1].pos[1] - temp_v0[0].pos[1]) / (f32) temp_v0[0].velocity; + gObjectList[objectIndex].velocity[2] = (f32) (temp_v0[1].pos[2] - temp_v0[0].pos[2]) / (f32) temp_v0[0].velocity; } void func_8008A9B8(s32 objectIndex) { @@ -1448,27 +1450,28 @@ void func_8008A9B8(s32 objectIndex) { Objects *temp_v0; temp_v0 = &gObjectList[objectIndex]; - temp_v0->unk_07C++; - temp_v0->unk_09A = (s16) (0x2710 / (s16) (*temp_v0->unk_07C)[3]); + temp_v0->controlPoints++; + temp_v0->unk_09A = (s16) (10000 / (s16) (temp_v0->controlPoints[0].velocity)); temp_v0->timer = 0; func_8008A920(objectIndex); } void func_8008AA3C(s32 objectIndex) { - s16* temp_v1; - Objects* temp_v0; - + Objects *temp_v0; temp_v0 = &gObjectList[objectIndex]; - temp_v1 = temp_v0->unk_080[0]; - temp_v1 = &temp_v0->unk_080[0][1]; - (&gObjectList[objectIndex])->unk_07C = (s16 (*)[4]) temp_v1; - (&gObjectList[objectIndex])->unk_084[9] = 0; - (&gObjectList[objectIndex])->timer = 0; - (&gObjectList[objectIndex])->unk_084[8] = temp_v1[-1]; - (&gObjectList[objectIndex])->unk_028[0] = (f32) temp_v1[0]; - (&gObjectList[objectIndex])->unk_028[1] = (f32) temp_v1[1]; - (&gObjectList[objectIndex])->unk_028[2] = (f32) temp_v1[2]; - (&gObjectList[objectIndex])->unk_09A = (s16) (0x2710 / (s16) temp_v1[3]); + temp_v0->controlPoints = temp_v0->spline->controlPoints; + temp_v0->unk_084[9] = 0; + temp_v0->timer = 0; + /* + This is INCREDIBLY stupid. This should really be + temp_v0->unk_084[8] = temp_v0->spline->numControlPoints; + but for some unholy reason that doesn't match + */ + temp_v0->unk_084[8] = *((s16*)temp_v0->controlPoints - 1); + temp_v0->unk_028[0] = temp_v0->controlPoints[0].pos[0]; + temp_v0->unk_028[1] = temp_v0->controlPoints[0].pos[1]; + temp_v0->unk_028[2] = temp_v0->controlPoints[0].pos[2]; + temp_v0->unk_09A = (s16) (10000 / temp_v0->controlPoints[0].velocity); func_8008A920(objectIndex); func_80086FD4(objectIndex); } @@ -1540,6 +1543,7 @@ UNUSED void func_8008ACD8(void) { } +// Evaluate the Bernstein polynomials for a B-spline at `arg1` (which is `t`) void func_8008ACE0(f32 arg0[], f32 arg1) { arg0[0] = (f32) ((f64) ((f32) (1.0 - arg1) * (f32) (1.0 - arg1) * (f32) (1.0 - arg1)) / 6.0); arg0[1] = (f32) ((((f64) (arg1 * arg1 * arg1) * 0.5) - arg1 * arg1) + 0.6666666666666666); @@ -1555,6 +1559,7 @@ UNUSED void func_8008ADC8(void) { } +// Evaluate the Bernstein polynomials for the derivative of a B-spline at `arg1` (which is `t`) void func_8008ADD0(f32 arg0[], f32 arg1) { arg0[0] = (f32) (1.0 - arg1) * -0.5 * (f32) (1.0 - arg1); arg0[1] = arg1 * arg1 * 1.5 - 2.0 * arg1; @@ -1570,6 +1575,7 @@ UNUSED void func_8008AE94(void) { } +// D_80183DC8 is where the spline's derivative polynomial calculations are stored void func_8008AE9C(s32 objectIndex) { Objects *temp_v0; @@ -1600,6 +1606,7 @@ UNUSED void func_8008B030(void) { } +// D_80183DA8 is where the spline's polynomial calculations are stored void func_8008B038(s32 objectIndex) { Objects *temp_v0; @@ -1632,13 +1639,13 @@ UNUSED void func_8008B1CC(void) { void func_8008B1D4(s32 objectIndex) { s32 someIndex; - Vec4s *test; + SplineControlPoint *test; - test = gObjectList[objectIndex].unk_07C; + test = gObjectList[objectIndex].controlPoints; for (someIndex = 0; someIndex < 4; someIndex++) { - D_80165760[someIndex] = (*test)[0]; - D_80165770[someIndex] = (*test)[1]; - D_80165780[someIndex] = (*test)[2]; + D_80165760[someIndex] = test->pos[0]; + D_80165770[someIndex] = test->pos[1]; + D_80165780[someIndex] = test->pos[2]; test++; } } @@ -1648,13 +1655,13 @@ void func_8008B284(s32 objectIndex) { s32 sp0; s32 temp_a1; s32 temp_a2; - Vec4s *test; + SplineControlPoint *test; - test = gObjectList[objectIndex].unk_07C; + test = gObjectList[objectIndex].controlPoints; temp_a1 = gObjectList[objectIndex].unk_084[9]; temp_a2 = (u16) gObjectList[objectIndex].unk_084[8]; if ((temp_a2 - 4) >= temp_a1) { - sp0 = 0x00002710; + sp0 = 10000; } else if ((temp_a1 + 3) == temp_a2) { sp0 = 2; } else if ((temp_a1 + 2) == temp_a2) { @@ -1663,12 +1670,12 @@ void func_8008B284(s32 objectIndex) { sp0 = 0; } for (someIndex = 0; someIndex < 4; someIndex++) { - D_80165760[someIndex] = (*test)[0]; - D_80165770[someIndex] = (*test)[1]; - D_80165780[someIndex] = (*test)[2]; + D_80165760[someIndex] = test->pos[0]; + D_80165770[someIndex] = test->pos[1]; + D_80165780[someIndex] = test->pos[2]; if (sp0 == someIndex) { - // Huh???????? This makes no sense - test = (Vec4s *) &gObjectList[objectIndex].unk_080[0][1]; + // Reset back to start of the spline path + test = gObjectList[objectIndex].spline->controlPoints; } else { test++; } @@ -1676,24 +1683,28 @@ void func_8008B284(s32 objectIndex) { } void func_8008B3E4(s32 objectIndex) { - UNUSED Vec4s *test; Objects *temp_v0; + SplineData *spline; if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_084[9] = 0; temp_v0->timer = 0; - temp_v0->unk_07C = (Vec4s *) &gObjectList[objectIndex].unk_080[0][1]; - // Huh????????? Negative array indexing is a near certain sign - // that something has gone wrong on our end. - temp_v0->unk_084[8] = temp_v0->unk_07C[0][-1]; + temp_v0->controlPoints = temp_v0->spline->controlPoints; + /* + This is INCREDIBLY stupid. This should really be + temp_v0->unk_084[8] = temp_v0->spline->numControlPoints; + but for some unholy reason that doesn't match + */ + temp_v0->unk_084[8] = *(((s16*)temp_v0->controlPoints) - 1); + set_object_flag_unk_054_true(objectIndex, 8); } } void func_8008B44C(s32 objectIndex) { gObjectList[objectIndex].timer = 0; - gObjectList[objectIndex].unk_07C++; + gObjectList[objectIndex].controlPoints++; } void func_8008B478(s32 objectIndex, s32 arg1) { @@ -1709,14 +1720,20 @@ void func_8008B478(s32 objectIndex, s32 arg1) { func_8008B1D4(objectIndex); } + // I think the game treats each spline as being having a lenght of 10000 + // This is getting the percent along the spline we want to reach, + // which is then treated as the `t` value given to the curve calculations sp34 = ((f32)gObjectList[objectIndex].timer / 10000.0); + // Calculate the curve at `t` func_8008B17C(objectIndex, sp34); if (is_obj_index_flag_unk_054_active(objectIndex, 0x800) != 0) { + // Calculate the curve's derivative at `t` func_8008AFE0(objectIndex, sp34); } - var_f6 = gObjectList[objectIndex].unk_07C[0][3]; - temp = gObjectList[objectIndex].unk_07C[0][7]; + // These values somehow control how fast we travel along the curve + var_f6 = gObjectList[objectIndex].controlPoints[0].velocity; + temp = gObjectList[objectIndex].controlPoints[1].velocity; gObjectList[objectIndex].unk_09A = 10000.0 / (((temp - var_f6) * sp34) + var_f6); gObjectList[objectIndex].timer += gObjectList[objectIndex].unk_09A; @@ -1816,17 +1833,17 @@ void set_obj_velocity(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) { gObjectList[objectIndex].velocity[2] = arg3; } -void func_8008B928(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s16 arg4[][4]) { +void func_8008B928(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, SplineData *spline) { Objects *temp_s0; temp_s0 = &gObjectList[objectIndex]; temp_s0->origin_pos[0] = (f32) arg1; temp_s0->origin_pos[1] = (f32) arg2; - temp_s0->unk_080 = arg4; + temp_s0->spline = spline; temp_s0->origin_pos[2] = (f32) arg3; - temp_s0->velocity[0] = (f32) (arg4[1][1] - arg4[0][1]); - temp_s0->velocity[1] = (f32) (arg4[1][2] - arg4[0][2]); - temp_s0->velocity[2] = (f32) (arg4[1][3] - arg4[0][3]); + temp_s0->velocity[0] = (f32) (spline->controlPoints[1].pos[0] - spline->controlPoints[0].pos[0]); + temp_s0->velocity[1] = (f32) (spline->controlPoints[1].pos[1] - spline->controlPoints[0].pos[1]); + temp_s0->velocity[2] = (f32) (spline->controlPoints[1].pos[2] - spline->controlPoints[0].pos[2]); temp_s0->direction_angle[1] = get_y_direction_angle(objectIndex); temp_s0->velocity[2] = func_800416D8(temp_s0->velocity[2], temp_s0->velocity[0], -temp_s0->direction_angle[1]); temp_s0->direction_angle[0] = get_x_direction_angle(objectIndex); diff --git a/src/code_80086E70.h b/src/code_80086E70.h index 558f33f0f..6e309c1b0 100644 --- a/src/code_80086E70.h +++ b/src/code_80086E70.h @@ -3,11 +3,12 @@ #include "common_structs.h" #include "camera.h" +#include "objects.h" void func_80086E70(s32); void func_80086EAC(s32, s32, s16); void func_80086EF0(s32); -void func_80086F10(s32, s32, Vec4s[]); +void func_80086F10(s32, s32, SplineData*); void func_80086F60(s32); s32 func_80086FA4(s32); void func_80086FD4(s32); @@ -149,7 +150,7 @@ void func_8008B844(s32); void set_obj_direction_angle(s32, u16, u16, u16); void set_obj_orientation(s32, u16, u16, u16); void set_obj_velocity(s32, f32, f32, f32); -void func_8008B928(s32, s16, s16, s16, s16[][4]); +void func_8008B928(s32, s16, s16, s16, SplineData*); void func_8008BA40(s32, s16, u16); void func_8008BAB4(s32, s16, u16); void func_8008BB28(s32, s16, u16); diff --git a/src/data/path_spawn_data.c b/src/data/path_spawn_data.c new file mode 100644 index 000000000..01f070243 --- /dev/null +++ b/src/data/path_spawn_data.c @@ -0,0 +1,377 @@ +#include "data/path_spawn_data.h" +#include "courses/all_course_data.h" +#include "ending/ceremony_data.inc.h" + +UnkCommonTextureStruct0 *D_800DC720[] = { + D_0D008F28, D_0D008F80, D_0D008FB8, D_0D009058, + D_0D0090B8, D_0D0090F8, D_0D009158, D_0D009188, + D_0D0091E8, D_0D009210, D_0D009238, D_0D009260, + D_0D009280, D_0D0092C8, D_0D009310, D_0D008F18, + D_0D008F18, D_0D008F18, D_0D0093C0, D_0D008F18, + D_0D008F18, NULL, +}; + +TrackWaypoint nullPath = { 0x8000, 0x0000, 0x0000, 0x0000 }; + +TrackWaypoint *gCoursePathTable[][4] = { + { d_course_mario_raceway_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_choco_mountain_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_bowsers_castle_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_banshee_boardwalk_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_yoshi_valley_unknown_waypoints0, d_course_yoshi_valley_unknown_waypoints1, d_course_yoshi_valley_unknown_waypoints2, d_course_yoshi_valley_unknown_waypoints3 }, + { d_course_frappe_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_koopa_troopa_beach_unknown_waypoints0, &nullPath, &nullPath, &nullPath }, + { d_course_royal_raceway_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_luigi_raceway_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_moo_moo_farm_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_toads_turnpike_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_kalimari_desert_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_sherbet_land_uknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_rainbow_road_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_wario_stadium_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { &nullPath, &nullPath, &nullPath, &nullPath }, + { &nullPath, &nullPath, &nullPath, &nullPath }, + { &nullPath, &nullPath, &nullPath, &nullPath }, + { d_course_dks_jungle_parkway_unknown_waypoints, &nullPath, &nullPath, &nullPath }, + { &nullPath, &nullPath, &nullPath, &nullPath }, + { ending_sequence, ending_sequence2, ending_sequence3, ending_sequence4 }, +}; + +TrackWaypoint *D_800DC8D0[][4] = { + { d_course_mario_raceway_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_choco_mountain_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_bowsers_castle_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_banshee_boardwalk_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_yoshi_valley_track_waypoints0, d_course_yoshi_valley_track_waypoints1, d_course_yoshi_valley_track_waypoints2, d_course_yoshi_valley_track_waypoints3 }, + { d_course_frappe_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_koopa_troopa_beach_track_waypoints0, d_course_koopa_troopa_beach_track_waypoints1, &nullPath, &nullPath }, + { d_course_royal_raceway_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_luigi_raceway_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_moo_moo_farm_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_toads_turnpike_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_kalimari_desert_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_sherbet_land_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_rainbow_road_track_waypoints, &nullPath, &nullPath, &nullPath }, + { d_course_wario_staduim_track_waypoints, &nullPath, &nullPath, &nullPath }, + { &nullPath, &nullPath, &nullPath, &nullPath }, + { &nullPath, &nullPath, &nullPath, &nullPath }, + { &nullPath, &nullPath, &nullPath, &nullPath }, + { d_course_dks_jungle_parkway_track_waypoints, &nullPath, &nullPath, &nullPath }, + { &nullPath, &nullPath, &nullPath, &nullPath }, + { &nullPath, &nullPath, &nullPath, &nullPath }, +}; + +s16 D_800DCA20[] = { + 0x0030, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, + 0x0030, 0x0030, 0x0028, 0x0035, 0x0035, 0x0026, 0x0035, 0x0035, + 0x0035, 0x0035, 0x0035, 0x0028, 0x0035, 0x0000, +}; + +f32 D_800DCA4C[] = { + 50.0, 35.0, 35.0, 40.0, + 35.0, 50.0, 50.0, 50.0, + 50.0, 50.0, 50.0, 50.0, + 50.0, 50.0, 50.0, -1.0, + -1.0, -1.0, 40.0, -1.0, + 40.0, +}; + +f32 D_800DCAA0[] = { + 0.3, 0.3, 0.2, 0.4, + 0.0, 0.3, 0.5, 0.4, + 0.7, 0.5, 0.5, 0.3, + 0.3, 0.4, 0.6, 0.1, + 0.5, 0.5, 0.1, 0.5, + 0.5, +}; + +// I think the types for D_800DCAF4, D_800DCB34, and D_800DCBB4 are all +// wrong in some way based on their usage in func_800088D8 +// But I cannot be bothered to figure it out +s16 D_800DCAF4[] = { + 0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023, + 0x001e, 0x0019, 0x0032, 0x004b, 0x0064, 0x007d, 0x0096, 0x00af, + 0x0028, 0x001e, 0x003c, 0x005a, 0x0078, 0x0096, 0x00b4, 0x00d2, + 0x0032, 0x0028, 0x0050, 0x0078, 0x00a0, 0x00c8, 0x00f0, 0x0118, +}; + +s16 D_800DCB34[] = { + 0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023, + 0x001e, 0x0019, 0x002d, 0x0041, 0x005a, 0x0073, 0x008c, 0x00a5, + 0x0028, 0x0003, 0x0006, 0x0010, 0x002e, 0x0031, 0x003b, 0x0059, + 0x0032, 0x001e, 0x003c, 0x003f, 0x0049, 0x004e, 0x006c, 0x008a, + 0x000a, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023, + 0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, +}; + +s16 *D_800DCBB4[] = { + D_800DCB34, D_800DCAF4, D_800DCAF4, D_800DCAF4, + D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4, + D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4, + D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4, + D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4, + D_800DCAF4, +}; + +BombKartSpawn D_800DCC08[][NUM_BOMB_KARTS_MAX] = { + { + // Mario Raceway Bomb Kart spawns + { 0x0028, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0109, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x011d, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x01a4, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Choco Mountain Bomb Kart spawns + { 0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00a5, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x014a, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0226, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0253, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Bowser Castle Bomb Kart spawns + { 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0096, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0104, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Banshee Boardwalk Bomb Kart spawns + { 0x006e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x01db, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0262, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Yoshi Valley Bomb Kart spawns + { 0x0000, 0x0000, 0.8333333, -1533.0, -682.0, -103.0, 0.0 }, + { 0x000a, 0x0000, 0.8333333, -1565.0, -619.0, -109.0, 0.0 }, + { 0x0014, 0x0000, 0.8333333, -1529.0, -579.0, -109.0, 0.0 }, + { 0x001e, 0x0000, 0.8333333, -1588.0, -534.0, -106.0, 0.0 }, + { 0x0028, 0x0000, 0.8333333, -1598.0, -207.0, -105.0, 0.0 }, + { 0x0032, 0x0000, 0.8333333, -1646.0, -147.0, -93.0, 0.0 }, + { 0x003c, 0x0000, 0.8333333, -2532.0, -445.0, -90.0, 0.0 }, + }, + + { + // Frappe Snowland Bomb Kart spawns + { 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0122, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x015e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Koopa Troopa Beach Bomb Kart spawns + { 0x003c, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0078, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0118, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Royal Raceway Bomb Kart spawns + { 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0128, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0190, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x02ea, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Luigi Raceway Bomb Kart spawns + { 0x0032, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0131, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x01b8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0203, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Moo Moo Farm Bomb Kart spawns + { 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00e1, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x013c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x01b2, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Toads Turnpike Bomb Kart spawns + { 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Kalamari Desert Bomb Kart spawns + { 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x008a, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0118, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0194, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x01fe, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Sherbet Land Bomb Kart spawns + { 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Rainbow Road Bomb Kart spawns + { 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Wario Stadium Bomb Kart spawns + { 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Block Fort Bomb Kart spawns + { 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Skyscraper Bomb Kart spawns + { 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Double Deck Bomb Kart spawns + { 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // DK Jungle Bomb Kart spawns + { 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + { 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Big Donut Bomb Kart spawns + { 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + }, + + { + // Award Ceremony Bomb Kart spawns + { 0x0003, 0x0005, 1.250000, 0.0, 0.0, 0.0, 0.0 }, + { 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + { 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 }, + }, +}; + +struct _struct_D_800DD9D0_0x10 D_800DD9D0[] = { + { 0x0258, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x030c, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x02ee, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x02b2, 0x02a8, 0x02b2, 0x0320, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x02ee, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x03e8, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x02da, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x0230, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x03e8, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x02bc, 0x0001, 0x0001, 0x0001, 0x0226, { 0x0000, 0x0000, 0x0000}}, + { 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x076c, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x0640, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x0370, 0x0001, 0x0001, 0x0001, 0x01f4, { 0x0000, 0x0000, 0x0000}}, + { 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}}, + { 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x0001, { 0x0000, 0x0000, 0x0000}}, +}; + +s32 D_800DDB20 = 0x00000000; + +s32 D_800DDB24 = 0x00000001; diff --git a/src/data/path_spawn_data.h b/src/data/path_spawn_data.h new file mode 100644 index 000000000..eb394c262 --- /dev/null +++ b/src/data/path_spawn_data.h @@ -0,0 +1,33 @@ +#ifndef PATH_SPAWN_DATA_H +#define PATH_SPAWN_DATA_H + +#include "waypoints.h" +#include "common_structs.h" +#include "common_textures.h" +#include "include/bomb_kart.h" + +struct _struct_D_800DD9D0_0x10 { + /* 0x00 */ u16 unk0; + /* 0x02 */ u16 unk2; + /* 0x04 */ u16 unk4; + /* 0x06 */ u16 unk6; + /* 0x08 */ u16 unk8; + /* 0x0A */ char padA[6]; +}; // size 0x10 + +extern UnkCommonTextureStruct0 *D_800DC720[]; +extern TrackWaypoint nullPath; +extern TrackWaypoint *gCoursePathTable[][4]; +extern TrackWaypoint *D_800DC8D0[][4]; +extern s16 D_800DCA20[]; +extern f32 D_800DCA4C[]; +extern f32 D_800DCAA0[]; +extern s16 D_800DCAF4[]; +extern s16 D_800DCB34[]; +extern s16 *D_800DCBB4[]; +extern BombKartSpawn D_800DCC08[][NUM_BOMB_KARTS_MAX]; +extern struct _struct_D_800DD9D0_0x10 D_800DD9D0[]; +extern s32 D_800DDB20; +extern s32 D_800DDB24; + +#endif diff --git a/src/data/some_data.c b/src/data/some_data.c new file mode 100644 index 000000000..cf51e665d --- /dev/null +++ b/src/data/some_data.c @@ -0,0 +1,1277 @@ +#include "some_data.h" + +Vtx D_800E49C0[] = { + {{{ 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +Vtx D_800E4AC0[] = { + {{{ 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +Vtx D_800E4BC0[] = { + {{{ 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +Vtx D_800E4CC0[] = { + {{{ 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +Vtx D_800E4DC0[] = { + {{{ 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +Vtx D_800E4EC0[] = { + {{{ 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0x60 }}}, +}; + +Vtx D_800E4FD0[] = { + {{{ 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +Vtx D_800E50D0[] = { + {{{ 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +Vtx D_800E51D0[] = { + {{{ 9, 0, 9 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, 0 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, 0 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, 9 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +Vtx D_800E5210[] = { + {{{ 9, 0, 0 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -9 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -9 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, 0 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +Vtx gBalloonVertexPlane1[] = { + {{{ 9, 18, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 9, -6 }, 0, { 4032, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 1984 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 18, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +Vtx gBalloonVertexPlane2[] = { + {{{ 9, 9, -6 }, 0, { 4032, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ 9, 0, -6 }, 0, { 4032, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 0, -6 }, 0, { 0, 1792 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, + {{{ -9, 9, -6 }, 0, { 0, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF }}}, +}; + +u8 D_800E52D0[] = { + #include "assets/onomatopoeia/gTLUTOnomatopoeia.inc.c" +}; + +u8 *gCourseOutlineTextures[] = { + gTextureCourseOutlineMarioRaceway, gTextureCourseOutlineChocoMountain, gTextureCourseOutlineBowsersCastle, gTextureCourseOutlineBansheeBoardwalk, + gTextureCourseOutlineYoshiValley, gTextureCourseOutlineFrappeSnowland, gTextureCourseOutlineKoopaTroopaBeach, gTextureCourseOutlineRoyalRaceway, + gTextureCourseOutlineLuigiRaceway, gTextureCourseOutlineMooMooFarm, gTextureCourseOutlineToadsTurnpike, gTextureCourseOutlineKalimariDesert, + gTextureCourseOutlineSherbetLand, gTextureCourseOutlineRainbowRoad, gTextureCourseOutlineWarioStadium, gTextureCourseOutlineBlockFort, + gTextureCourseOutlineSkyscraper, gTextureCourseOutlineDoubleDeck, gTextureCourseOutlineDksJungleParkway, gTextureCourseOutlineBigDonut, +}; + +s16 D_800E5520[] = { + 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, + 0x0800, 0x0800, 0x0c00, 0x0800, 0x1000, 0x0c00, + 0x0800, 0x0c00, 0x0800, 0x0800, 0x0800, 0x0800, + 0x0800, 0x0800, +}; + +s16 D_800E5548[] = { + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0060, 0x0040, 0x0040, 0x0080, 0x0040, 0x0040, 0x0060, + 0x0040, 0x0040, 0x0040, 0x0060, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0000, 0x0000, 0x0000, 0x0000, +}; + +u16 D_800E55A0[] = { + 0x0000, 0x0080, 0x0100, 0x0080, 0x0000, 0xff80, 0xfe00, 0xff80, +}; + +u16 D_800E55B0[] = { + 0xf800, 0x0800, 0xf800, 0x0800, 0xf800, 0x0800, 0xf800, 0x0800, + 0xf800, 0x0800, 0xf800, 0x0800, 0xf800, 0x0800, 0xf800, 0x0800, +}; + +u8 D_800E55D0[][3] = { + { 0x64, 0x64, 0x64 }, + { 0x96, 0x96, 0x73 }, + { 0xc8, 0xc8, 0x82 }, + { 0xff, 0xff, 0x96 }, + { 0xc8, 0xc8, 0x82 }, + { 0x96, 0x96, 0x73 }, + { 0x00, 0x00, 0x00 }, + { 0x01, 0x02, 0x03 }, + { 0x02, 0x01, 0x00 }, + { 0x04, 0x05, 0x06 }, + { 0x05, 0x04, 0x00 }, + { 0x07, 0x08, 0x09 }, + { 0x08, 0x07, 0x00 }, +}; + +s32 D_800E55F8[] = { + 0x000000ff, 0x000000ed, 0x000000d7, 0x000000bf, + 0x000000a2, 0x00000082, 0x00000061, 0x0000003a, +}; + +s32 D_800E5618[] = { + 0x000000ff, 0x000000d7, 0x000000a2, 0x00000061, +}; + +s8 D_800E5628[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x27, 0x33, 0x32, 0xff, 0x37, 0xff, 0x26, 0x29, 0x2a, 0x31, 0x2e, 0x25, 0x2b, 0x24, 0x2d, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x2c, 0x36, 0x3c, 0x2f, 0x3d, 0x28, + 0x30, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x39, 0xff, 0x3a, 0x3b, 0x34, + 0x38, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xff, 0xff, 0xff, 0x35, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +}; + +Vec3s gFireBreathsSpawns[] = { + { 0x0889, 0x0075, 0xf90a }, + { 0x0889, 0x0075, 0xf9d0 }, + { 0x07c1, 0x0075, 0xf90a }, + { 0x07c1, 0x0075, 0xf9d0 }, +}; + +// Referenced in code_80071F00/func_80076884, but that function is unused +s16 D_800E5740[] = { + 0x0662, 0x0014, 0xfb52, 0x06db, 0x0014, 0xfb57, 0x067d, 0x0014, + 0xfb86, 0x06e2, 0x0014, 0xfaff, 0x06cd, 0x0014, 0xfb93, 0x06fb, + 0x0014, 0xfb4b, 0x067d, 0x0014, 0xfb1e, 0x062f, 0x0014, 0xfb39, + 0x0656, 0x0014, 0xfb00, 0x06f5, 0x0014, 0xfad3, 0x064b, 0x0014, + 0xfb72, 0x06fe, 0x0014, 0xfb7d, 0x0715, 0x0014, 0xfb1b, 0x066f, + 0x0014, 0xfac7, 0x0662, 0x0014, 0xfb52, 0x0000, +}; + +// Referenced in code_80071F00/func_80076884, but that function is unused +s16 D_800E579C[] = { + 0xff96, 0xffce, 0xfcca, 0xffa7, 0xffce, 0xfd1d, 0xff6e, 0xffce, + 0xfd5b, 0xff96, 0xffce, 0xfc65, 0xff4b, 0xffce, 0xfcdb, 0xff59, + 0xffce, 0xfc7f, 0x0065, 0xffce, 0xfc77, 0x00ab, 0xffce, 0xfcd7, + 0x0060, 0xffce, 0xfcbd, 0x0064, 0xffce, 0xfd03, 0x006d, 0xffce, + 0xfd52, 0x00b8, 0xffce, 0xfd33, 0x00ab, 0xffce, 0xfc65, 0xff96, + 0xffce, 0xfcca, 0xffa7, 0xffce, 0xfd1d, 0x0000, +}; + +// Referenced in code_80071F00/func_80076884, but that function is unused +s16 D_800E57F8[] = { + 0x06e8, 0xffce, 0x0023, 0x07e3, 0xffcf, 0xffd4, 0x084d, 0xffce, + 0x006e, 0x07e3, 0xffcd, 0x00e0, 0x0638, 0xffca, 0x02ae, 0x0603, + 0xffce, 0x00af, 0x01f7, 0xffcc, 0x01c8, 0x0266, 0xffcc, 0x0179, + 0x070e, 0xffd0, 0xff6e, 0x070e, 0xffcf, 0xffd3, 0x070e, 0xffce, + 0x0087, 0x07ea, 0xffd0, 0xff6a, 0x07ea, 0xffce, 0x003c, 0x082c, + 0xffcf, 0xffb9, 0x023f, 0xffca, 0x02bb, 0x0000, +}; + +ThwompSpawn gThomwpSpawns50CC[] = { + { 0x03b6, 0xf92a, 0x0001, 0x0000 }, + { 0x0352, 0xf95c, 0x0002, 0x0000 }, + { 0x04b0, 0xf5ba, 0x0003, 0x0000 }, + { 0x04b0, 0xf592, 0x0003, 0x0001 }, + { 0x091a, 0xf5b0, 0x0004, 0x0000 }, + { 0x0596, 0xf92f, 0x0006, 0x0000 }, + { 0x082a, 0xf9f2, 0x0005, 0x0000 }, + { 0x073a, 0xf9f2, 0x0005, 0x0001 }, +}; + + +ThwompSpawn gThwompSpawns100CCExtra[] = { + { 0x0320, 0xf92a, 0x0001, 0x0000 }, + { 0x044c, 0xf92a, 0x0001, 0x0001 }, + { 0x02bc, 0xf95c, 0x0002, 0x0000 }, + { 0x04b0, 0xf8f8, 0x0002, 0x0001 }, + { 0x04b0, 0xf5ba, 0x0003, 0x0000 }, + { 0x04b0, 0xf592, 0x0003, 0x0001 }, + { 0x091a, 0xf5bf, 0x0004, 0x0000 }, + { 0x091a, 0xf597, 0x0004, 0x0001 }, + { 0x0596, 0xf92f, 0x0006, 0x0000 }, + { 0x082a, 0xf9f2, 0x0005, 0x0000 }, + { 0x073a, 0xf9f2, 0x0005, 0x0001 }, +}; + + +ThwompSpawn gThomwpSpawns150CC[] = { + { 0x0320, 0xf92a, 0x0001, 0x0000 }, + { 0x044c, 0xf92a, 0x0001, 0x0001 }, + { 0x02bc, 0xf95c, 0x0002, 0x0000 }, + { 0x04b0, 0xf8f8, 0x0002, 0x0001 }, + { 0x04b0, 0xf5ba, 0x0003, 0x0000 }, + { 0x04b0, 0xf592, 0x0003, 0x0001 }, + { 0x091a, 0xf5c9, 0x0004, 0x0000 }, + { 0x091a, 0xf5ab, 0x0004, 0x0001 }, + { 0x091a, 0xf58d, 0x0004, 0x0002 }, + { 0x0596, 0xf92f, 0x0006, 0x0000 }, + { 0x082a, 0xf9f2, 0x0005, 0x0000 }, + { 0x073a, 0xf9f2, 0x0005, 0x0001 }, +}; + +f32 D_800E594C[][2] = { + { -8.0, 8.0 }, + { 8.0, 8.0 }, + { 0.0, 0.0 }, + { 8.0, -8.0 }, + { -8.0, -8.0 }, + // This feels super fake, but it matches + { -0.0, 0.0 }, +}; + +u16 D_800E597C[] = { 0x0000, 0x0000, 0x4000, 0x8000, 0x8000, 0xc000 }; + +// Seems to be related to the Boos in Banshee Boardwalk +SplineData23 D_800E5988 = { + 0x0016, + { + {{ 0x0005, 0x0011, 0x0032 }, 0x0028 }, + {{ 0x0005, 0x000d, 0x0014 }, 0x0028 }, + {{ 0x0000, 0x0011, 0x0000 }, 0x0028 }, + {{ 0x0014, 0x000a, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0011, 0xffe2 }, 0x0028 }, + {{ 0xffec, 0x000a, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0011, 0xffe2 }, 0x0028 }, + {{ 0x0014, 0x000a, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0011, 0x001e }, 0x0028 }, + {{ 0xffec, 0x000a, 0x0032 }, 0x0028 }, + {{ 0x0000, 0x0011, 0x001e }, 0x0028 }, + {{ 0x0014, 0x000a, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0011, 0xffe2 }, 0x0028 }, + {{ 0xffec, 0x000a, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0011, 0xffe2 }, 0x0028 }, + {{ 0x0014, 0x000a, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0011, 0xffe2 }, 0x0028 }, + {{ 0xffec, 0x000a, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0011, 0x0014 }, 0x0028 }, + {{ 0x0005, 0x000a, 0x001e }, 0x0028 }, + {{ 0x0005, 0x0011, 0x0028 }, 0x0028 }, + {{ 0x0005, 0x0011, 0x0032 }, 0x0028 }, + {{ 0x0005, 0x0011, 0x0032 }, 0x0028 }, + }, +}; + +// Seems to be related to the Boos in Banshee Boardwalk +SplineData24 D_800E5A44 = { + 0x0017, + { + {{ 0x0000, 0x0011, 0xffce }, 0x0028 }, + {{ 0x0014, 0x000d, 0xffd8 }, 0x0028 }, + {{ 0x0000, 0x0011, 0xffec }, 0x0028 }, + {{ 0xffec, 0x000a, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0011, 0x001e }, 0x0028 }, + {{ 0x0014, 0x000a, 0x0028 }, 0x0028 }, + {{ 0x0000, 0x0011, 0x0032 }, 0x0028 }, + {{ 0xffec, 0x000a, 0x0032 }, 0x0028 }, + {{ 0x0000, 0x0011, 0x001e }, 0x0028 }, + {{ 0xffec, 0x000a, 0x0014 }, 0x0028 }, + {{ 0x0000, 0x0011, 0x0000 }, 0x0028 }, + {{ 0xfff6, 0x000a, 0x0014 }, 0x0028 }, + {{ 0x0000, 0x0011, 0x0028 }, 0x0028 }, + {{ 0x000a, 0x000a, 0x0032 }, 0x0028 }, + {{ 0x0000, 0x0011, 0x0046 }, 0x0028 }, + {{ 0xfff6, 0x0017, 0x0032 }, 0x0028 }, + {{ 0x0000, 0x000f, 0x0028 }, 0x0028 }, + {{ 0x000a, 0x000d, 0x001e }, 0x0028 }, + {{ 0x0000, 0x0011, 0x000a }, 0x0028 }, + {{ 0xfff6, 0x000d, 0x001e }, 0x0028 }, + {{ 0x0000, 0x0011, 0x0028 }, 0x0028 }, + {{ 0x000a, 0x000d, 0x0032 }, 0x0028 }, + {{ 0x0000, 0x000d, 0x0046 }, 0x0028 }, + {{ 0x0000, 0x0011, 0xffce }, 0x0028 }, + }, +}; + +// Seems to be related to the Boos in Banshee Boardwalk +SplineData25 D_800E5B08 = { + 0x0018, + { + {{ 0xfff1, 0x000a, 0x0000 }, 0x0014 }, + {{ 0xfff6, 0x000a, 0xfff6 }, 0x0014 }, + {{ 0x0000, 0x000a, 0xfff1 }, 0x0014 }, + {{ 0x000a, 0x000a, 0xfff6 }, 0x0014 }, + {{ 0x000f, 0x000a, 0x0000 }, 0x0014 }, + {{ 0x000a, 0x000a, 0x000a }, 0x0014 }, + {{ 0x0000, 0x000a, 0x000f }, 0x0014 }, + {{ 0xfff6, 0x000a, 0x000a }, 0x0014 }, + {{ 0xfff1, 0x000a, 0x0000 }, 0x0014 }, + {{ 0xfff6, 0x000a, 0xfff6 }, 0x0014 }, + {{ 0x0000, 0x000a, 0xfff1 }, 0x0014 }, + {{ 0x000a, 0x000a, 0xfff6 }, 0x0014 }, + {{ 0x000f, 0x000a, 0x0000 }, 0x0014 }, + {{ 0x000a, 0x000a, 0x000a }, 0x0014 }, + {{ 0x0000, 0x000a, 0x000f }, 0x0014 }, + {{ 0xfff6, 0x000a, 0x000a }, 0x0014 }, + {{ 0xfff1, 0x000a, 0x0000 }, 0x0014 }, + {{ 0xfff6, 0x000a, 0xfff6 }, 0x0014 }, + {{ 0x0000, 0x000a, 0xfff1 }, 0x0014 }, + {{ 0x000a, 0x000a, 0xfff6 }, 0x0014 }, + {{ 0x000f, 0x000a, 0x0000 }, 0x0014 }, + {{ 0x000a, 0x000a, 0x000a }, 0x0014 }, + {{ 0x0000, 0x000a, 0x000f }, 0x0014 }, + {{ 0xfff6, 0x000a, 0x000a }, 0x0014 }, + {{ 0xfff1, 0x000a, 0x0000 }, 0x0014 }, + }, +}; + +// Seems to be related to the Boos in Banshee Boardwalk +SplineData23 D_800E5BD4 = { + 0x0016, + { + {{ 0x0005, 0x0011, 0x0032 }, 0x001e }, + {{ 0x0005, 0x000d, 0x0014 }, 0x001e }, + {{ 0x0000, 0x0011, 0x0000 }, 0x001e }, + {{ 0x0014, 0x000a, 0x0000 }, 0x001e }, + {{ 0x0000, 0x0011, 0xffe2 }, 0x001e }, + {{ 0xffec, 0x000a, 0x0000 }, 0x001e }, + {{ 0x0000, 0x0011, 0xffe2 }, 0x001e }, + {{ 0x0014, 0x000a, 0x0000 }, 0x001e }, + {{ 0x0000, 0x0011, 0x001e }, 0x001e }, + {{ 0xffec, 0x000a, 0x0032 }, 0x001e }, + {{ 0x0000, 0x0011, 0x001e }, 0x001e }, + {{ 0x0014, 0x000a, 0x0000 }, 0x001e }, + {{ 0x0000, 0x0011, 0xffe2 }, 0x001e }, + {{ 0xffec, 0x000a, 0x0000 }, 0x001e }, + {{ 0x0000, 0x0011, 0xffe2 }, 0x001e }, + {{ 0x0014, 0x000a, 0x0000 }, 0x001e }, + {{ 0x0000, 0x0011, 0xffe2 }, 0x001e }, + {{ 0xffec, 0x000a, 0x0000 }, 0x001e }, + {{ 0x0000, 0x0011, 0x0014 }, 0x001e }, + {{ 0x0005, 0x000a, 0x001e }, 0x001e }, + {{ 0x0005, 0x0011, 0x0028 }, 0x001e }, + {{ 0x0005, 0x0011, 0x0032 }, 0x001e }, + {{ 0x0005, 0x0011, 0x0032 }, 0x001e }, + }, +}; + +// Seems to be related to the Boos in Banshee Boardwalk +SplineData24 D_800E5C90 = { + 0x0017, + { + {{ 0x0000, 0x0011, 0xffce }, 0x0019 }, + {{ 0x0014, 0x000d, 0xffd8 }, 0x0019 }, + {{ 0x0000, 0x0011, 0xffec }, 0x0019 }, + {{ 0xffec, 0x000a, 0x0000 }, 0x0019 }, + {{ 0x0000, 0x0011, 0x001e }, 0x0019 }, + {{ 0x0014, 0x000a, 0x0028 }, 0x0019 }, + {{ 0x0000, 0x0011, 0x0032 }, 0x0019 }, + {{ 0xffec, 0x000a, 0x0032 }, 0x0019 }, + {{ 0x0000, 0x0011, 0x001e }, 0x0019 }, + {{ 0xffec, 0x000a, 0x0014 }, 0x0019 }, + {{ 0x0000, 0x0011, 0x0000 }, 0x0019 }, + {{ 0xfff6, 0x000a, 0x0014 }, 0x0019 }, + {{ 0x0000, 0x0011, 0x0028 }, 0x0019 }, + {{ 0x000a, 0x000a, 0x0032 }, 0x0019 }, + {{ 0x0000, 0x0011, 0x0046 }, 0x0019 }, + {{ 0xfff6, 0x0017, 0x0032 }, 0x0019 }, + {{ 0x0000, 0x000f, 0x0028 }, 0x0019 }, + {{ 0x000a, 0x000d, 0x001e }, 0x0019 }, + {{ 0x0000, 0x0011, 0x000a }, 0x0019 }, + {{ 0xfff6, 0x000d, 0x001e }, 0x0019 }, + {{ 0x0000, 0x0011, 0x0028 }, 0x0019 }, + {{ 0x000a, 0x000d, 0x0032 }, 0x0019 }, + {{ 0x0000, 0x000d, 0x0046 }, 0x0019 }, + {{ 0x0000, 0x0011, 0xffce }, 0x0019 }, + }, +}; + +// Only referenced in func_8007D070, which itself is unused +SplineDataUnused4 D_800E5D54 = { + 0x0004, + { + {{ 0x0000, 0x0010, 0x0000 }, 0x0032 }, + {{ 0x0000, 0x0010, 0x0002 }, 0x0000 }, + {{ 0x0000, 0x0010, 0x0004 }, 0x0000 }, + {{ 0x0000, 0x0010, 0x0006 }, 0x0000 }, + }, +}; + +// Unused? +SplineDataUnused4 D_800E5D78 = { + 0x0004, + { + {{ 0x0000, 0x0000, 0x0000 }, 0x000a }, + {{ 0x0000, 0x0000, 0x0000 }, 0x000a }, + {{ 0x0000, 0x0000, 0x0000 }, 0x000a }, + {{ 0x0000, 0x0000, 0x0000 }, 0x000a }, + }, +}; + +// Note the use of the plain SplineData type here. Since these are pointers, we don't care +// about their internal array size +SplineData *D_800E5D9C[] = { &D_800E5988, &D_800E5A44, &D_800E5B08, &D_800E5BD4, &D_800E5C90 }; + +// Unused +SplineData *D_800E5DB0 = &D_800E5988; + +s8 D_800E5DB4[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +YVFlagPoleSpawn D_800E5DF4[] = { + {{ 0xfc7a, 0x0046, 0xfa82 }, 0x3800 }, + {{ 0xfc4c, 0x0046, 0xfa03 }, 0x3800 }, + {{ 0xf786, 0x0000, 0x02d3 }, 0x0400 }, + {{ 0xf76f, 0x0000, 0x02f9 }, 0x0400 }, +}; + +HegdehogSpawn gHedgehogSpawns[] = { + {{ 0xf96d, 0xffb0, 0xffa8 }, 0x0009 }, + {{ 0xf99c, 0xffa3, 0xff6d }, 0x0009 }, + {{ 0xf9a4, 0xffaa, 0xff94 }, 0x0009 }, + {{ 0xf974, 0xffbb, 0xffe2 }, 0x0009 }, + {{ 0xfb35, 0xffe5, 0xfc23 }, 0x001a }, + {{ 0xfb13, 0xffd7, 0xfc90 }, 0x001a }, + {{ 0xfac2, 0xffc4, 0xfcc2 }, 0x001a }, + {{ 0xfa6b, 0xffb2, 0xfcaf }, 0x001a }, + {{ 0xfa2c, 0xffa2, 0xfcfa }, 0x001a }, + {{ 0xfa53, 0xffa9, 0xfcf0 }, 0x001a }, + {{ 0xfa30, 0xffa7, 0xfcac }, 0x001a }, + {{ 0xfaeb, 0xffd1, 0xfc78 }, 0x001a }, + {{ 0xf5e5, 0xffc8, 0xfefd }, 0x001c }, + {{ 0xf643, 0xffa2, 0xfe3a }, 0x001c }, + {{ 0xf653, 0xfffd, 0xffc7 }, 0x001c }, +}; + +Vec3s gHedgehogPatrolPoints[] = { + { 0xf98e, 0xffaa, 0xff8e }, + { 0xf983, 0xffa3, 0xff69 }, + { 0xf97e, 0xffb5, 0xffc6 }, + { 0xf98d, 0xffb9, 0xffe6 }, + { 0xfb56, 0xffe7, 0xfc19 }, + { 0xfb43, 0xffe0, 0xfca0 }, + { 0xfb1f, 0xffd9, 0xfc61 }, + { 0xfabd, 0xffc5, 0xfc9e }, + { 0xfa6d, 0xffb5, 0xfc85 }, + { 0xfa1b, 0xffa1, 0xfcd7 }, + { 0xfa48, 0xffa8, 0xfcca }, + { 0xf9ff, 0xffa4, 0xfcaa }, + { 0xf5c0, 0xffd1, 0xff0f }, + { 0xf637, 0xffa7, 0xfe73 }, + { 0xf615, 0xfffd, 0xffbe }, +}; + +SnowmanSpawn gSnowmanSpawns[] = { + {{ 0x02b9, 0x0000, 0xf96c }, 0x0003 }, + {{ 0x0052, 0x0000, 0xf73b }, 0x0005 }, + {{ 0x001b, 0x0005, 0xf7ed }, 0x0005 }, + {{ 0xfd70, 0x0000, 0xf939 }, 0x0005 }, + {{ 0xfa27, 0x0000, 0xffad }, 0x0008 }, + {{ 0xf995, 0x0000, 0xffe7 }, 0x0008 }, + {{ 0xf9f5, 0x0000, 0xffec }, 0x0008 }, + {{ 0xfa5b, 0x0000, 0xfff6 }, 0x0008 }, + {{ 0xfa22, 0x0000, 0x003d }, 0x0008 }, + {{ 0xfa6b, 0x0000, 0x004f }, 0x0008 }, + {{ 0xf9ce, 0x0000, 0x0047 }, 0x0008 }, + {{ 0xfa41, 0x0000, 0x009d }, 0x0008 }, + {{ 0xf9fd, 0x0000, 0x00af }, 0x0008 }, + {{ 0xfa34, 0x0000, 0x012f }, 0x0008 }, + {{ 0xfa5e, 0x0000, 0x0166 }, 0x0008 }, + {{ 0xfa1a, 0x0000, 0x01aa }, 0x0008 }, + {{ 0xfd67, 0x0000, 0x033e }, 0x000a }, + {{ 0xfd43, 0x0003, 0x0355 }, 0x000a }, + {{ 0xfda6, 0x0000, 0x03a1 }, 0x000a }, +}; + +CrabSpawn gCrabSpawns[] = { + { 0xf8ef, 0xf97e, 0x0271, 0x0252 }, + { 0xf8c4, 0xf9ac, 0x02f5, 0x02e4 }, + { 0xfa3a, 0xfa53, 0x0732, 0x0729 }, + { 0xfa76, 0xfa51, 0x07af, 0x07aa }, + { 0xfa40, 0xfa77, 0x0840, 0x0834 }, + { 0xfa93, 0xfac9, 0x0868, 0x0858 }, + { 0x00da, 0x0045, 0x02b5, 0x02b8 }, + { 0x00eb, 0x0018, 0x0210, 0x01f5 }, + { 0x010c, 0x0065, 0x0196, 0x018a }, + { 0x00df, 0x0056, 0x013e, 0x0134 }, +}; + +// Appears to be unused, may have been a different set of crabs at some point? +s16 D_800E5FD0[] = { + 0x017e, 0x012f, 0x0462, 0x0491, 0x008f, 0x011a, 0x042e, 0x03df, + 0x0154, 0x00d7, 0x0363, 0x03a7, 0x007b, 0x00ba, 0x035a, 0x0337, + 0x00e1, 0x0056, 0x02c0, 0x02e9, 0x008f, 0x0056, 0x0232, 0x0245, + 0x0190, 0x044c, 0x01f4, 0x03e8, 0x015e, 0x0384, 0x012c, 0x0320, + 0x0000, 0x0000, 0x0032, 0x0032, 0x0064, 0x0064, 0xffce, 0x0032, + 0xff9c, 0x0064, 0x0032, 0xffce, 0x0064, 0xff6a, 0xffce, 0xff9c, + 0xff9c, 0x0000, +}; + +// Something related to seagulls in Koopa Troopa Beach, not sure of its exact nature +SplineData23 D_800E6034 = { + 0x0016, + { + {{ 0x0032, 0x00aa, 0x01f4 }, 0x0028 }, + {{ 0x0032, 0x0082, 0x00c8 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x0000 }, 0x0028 }, + {{ 0x00c8, 0x0064, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0xfed4 }, 0x0028 }, + {{ 0xff38, 0x0032, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0xfed4 }, 0x0028 }, + {{ 0x00c8, 0x0064, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x012c }, 0x0028 }, + {{ 0xff38, 0x0064, 0x01f4 }, 0x0028 }, + {{ 0x0000, 0x00fa, 0x012c }, 0x0028 }, + {{ 0x00c8, 0x0032, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0xfed4 }, 0x0028 }, + {{ 0xff38, 0x0064, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0xfed4 }, 0x0028 }, + {{ 0x00c8, 0x0064, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0xfed4 }, 0x0028 }, + {{ 0xff38, 0x00fa, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x00c8 }, 0x0028 }, + {{ 0x0032, 0x0064, 0x012c }, 0x0028 }, + {{ 0x0032, 0x00aa, 0x0190 }, 0x0028 }, + {{ 0x0032, 0x00aa, 0x01f4 }, 0x0028 }, + {{ 0x0032, 0x00aa, 0x01f4 }, 0x0028 }, + } +}; + +// Something related to seagulls in Koopa Troopa Beach, not sure of its exact nature +SplineData24 D_800E60F0 = { + 0x0017, + { + {{ 0x0000, 0x00aa, 0xfe0c }, 0x0028 }, + {{ 0x00c8, 0x0082, 0xfe70 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0xff38 }, 0x0028 }, + {{ 0xff38, 0x0064, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x012c }, 0x0028 }, + {{ 0x00c8, 0x0064, 0x0190 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x01f4 }, 0x0028 }, + {{ 0xff38, 0x0064, 0x01f4 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x012c }, 0x0028 }, + {{ 0xff38, 0x0064, 0x00c8 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x0000 }, 0x0028 }, + {{ 0xff9c, 0x0064, 0x00c8 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x0190 }, 0x0028 }, + {{ 0x0064, 0x0064, 0x01f4 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x02bc }, 0x0028 }, + {{ 0xff9c, 0x00e6, 0x01f4 }, 0x0028 }, + {{ 0x0000, 0x0096, 0x0190 }, 0x0028 }, + {{ 0x0064, 0x0082, 0x012c }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x0064 }, 0x0028 }, + {{ 0xff9c, 0x0082, 0x012c }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x0190 }, 0x0028 }, + {{ 0x0064, 0x0082, 0x01f4 }, 0x0028 }, + {{ 0x0000, 0x0082, 0x02bc }, 0x0028 }, + {{ 0x0000, 0x00aa, 0xfe0c }, 0x0028 }, + } +}; + +// Something related to seagulls in Koopa Troopa Beach, not sure of its exact nature +SplineData25 D_800E61B4 = { + 0x0018, + { + {{ 0xff6a, 0x0064, 0x0000 }, 0x0014 }, + {{ 0xff96, 0x0096, 0xff96 }, 0x0014 }, + {{ 0x0000, 0x0050, 0xff6a }, 0x0014 }, + {{ 0x006a, 0x0096, 0xff96 }, 0x0014 }, + {{ 0x0096, 0x0064, 0x0000 }, 0x0014 }, + {{ 0x006a, 0x0096, 0x006a }, 0x0014 }, + {{ 0x0000, 0x0064, 0x0096 }, 0x0014 }, + {{ 0xff96, 0x0064, 0x006a }, 0x0014 }, + {{ 0xff6a, 0x0082, 0x0000 }, 0x0014 }, + {{ 0xff96, 0x0050, 0xff96 }, 0x0014 }, + {{ 0x0000, 0x0064, 0xff6a }, 0x0014 }, + {{ 0x006a, 0x008c, 0xff96 }, 0x0014 }, + {{ 0x0096, 0x0064, 0x0000 }, 0x0014 }, + {{ 0x006a, 0x0064, 0x006a }, 0x0014 }, + {{ 0x0000, 0x0096, 0x0096 }, 0x0014 }, + {{ 0xff96, 0x0050, 0x006a }, 0x0014 }, + {{ 0xff6a, 0x0064, 0x0000 }, 0x0014 }, + {{ 0xff96, 0x0096, 0xff96 }, 0x0014 }, + {{ 0x0000, 0x0064, 0xff6a }, 0x0014 }, + {{ 0x006a, 0x0078, 0xff96 }, 0x0014 }, + {{ 0x0096, 0x0064, 0x0000 }, 0x0014 }, + {{ 0x006a, 0x0028, 0x006a }, 0x0014 }, + {{ 0x0000, 0x0064, 0x0096 }, 0x0014 }, + {{ 0xff96, 0x0064, 0x006a }, 0x0014 }, + {{ 0xff6a, 0x0064, 0x0000 }, 0x0014 }, + } +}; + +// Something related to seagulls in Koopa Troopa Beach, not sure of its exact nature +SplineData23 D_800E6280 = { + 0x0016, + { + {{ 0xffce, 0x00aa, 0xfe0c }, 0x0028 }, + {{ 0xffce, 0x0082, 0xff38 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x0000 }, 0x0028 }, + {{ 0xff38, 0x0064, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x012c }, 0x0028 }, + {{ 0x00c8, 0x0032, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x012c }, 0x0028 }, + {{ 0xff38, 0x0064, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0xfed4 }, 0x0028 }, + {{ 0x00c8, 0x0064, 0xfe0c }, 0x0028 }, + {{ 0x0000, 0x00fa, 0xfed4 }, 0x0028 }, + {{ 0xff38, 0x0032, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x012c }, 0x0028 }, + {{ 0x00c8, 0x0064, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x012c }, 0x0028 }, + {{ 0xff38, 0x0064, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0x012c }, 0x0028 }, + {{ 0x00c8, 0x00fa, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x00aa, 0xff38 }, 0x0028 }, + {{ 0xffce, 0x0064, 0xfed4 }, 0x0028 }, + {{ 0xffce, 0x00aa, 0xfe70 }, 0x0028 }, + {{ 0xffce, 0x00aa, 0xfe0c }, 0x0028 }, + {{ 0xffce, 0x00aa, 0xfe0c }, 0x0028 }, + } +}; + +// Note the use of the plain SplineData type here. Since these are pointers, we don't care +// about their internal array size +SplineData *D_800E633C[] = { &D_800E6034, &D_800E60F0, &D_800E61B4, &D_800E6280 }; + +// Might be Cheep Cheep related? +Vec3s D_800E634C[] = { + { 0xf37e, 0x0013, 0xfe22 }, + { 0xf37b, 0x0013, 0xfe31 }, + { 0xf380, 0x0013, 0xfe14 }, +}; + +Vec3s gMoleSpawns[] = { + { 0x0303, 0x0014, 0xf81a }, + { 0x0327, 0x000f, 0xf7f1 }, + { 0x034f, 0x0012, 0xf808 }, + { 0x0391, 0x000e, 0xf7fa }, + { 0x03ab, 0x0015, 0xf833 }, + { 0x03ad, 0x0011, 0xf818 }, + { 0x03e2, 0x0011, 0xf836 }, + { 0x035f, 0x0016, 0xf826 }, + { 0x05dc, 0x0002, 0x0474 }, + { 0x05e6, 0x000f, 0x041a }, + { 0x0649, 0x0015, 0x03a7 }, + { 0x0509, 0x0003, 0x04f5 }, + { 0x05bc, 0x0016, 0x0416 }, + { 0x0564, 0x000c, 0x0482 }, + { 0x0511, 0x0013, 0x0492 }, + { 0x0635, 0x000b, 0x03ec }, + { 0x0586, 0x0003, 0x04a1 }, + { 0x057d, 0x0004, 0x04e6 }, + { 0x05b7, 0x0008, 0x045e }, + { 0x02bd, 0x0002, 0x04ff }, + { 0x032b, 0x0008, 0x04fe }, + { 0x0317, 0x0010, 0x04cd }, + { 0x036c, 0x000f, 0x04f2 }, + { 0x03d8, 0x0017, 0x04e0 }, + { 0x037b, 0x0014, 0x04da }, + { 0x0398, 0x000f, 0x0518 }, + { 0x0337, 0x0006, 0x052f }, + { 0x02cd, 0x0008, 0x04d7 }, + { 0x02b7, 0x0013, 0x0498 }, + { 0x0274, 0x0008, 0x04a7 }, + { 0x02d4, 0x0004, 0x053b }, +}; + +// Referenced by D_800E6724, which is unused +SplineData23 D_800E641C = { + 0x0016, + { + {{ 0x0014, 0x0000, 0x00c8 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x0050 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0050, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xff88 }, 0x0050 }, + {{ 0xffb0, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xff88 }, 0x0050 }, + {{ 0x0050, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0078 }, 0x0050 }, + {{ 0xffb0, 0x0000, 0x00c8 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0078 }, 0x0050 }, + {{ 0x0050, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xff88 }, 0x0050 }, + {{ 0xffb0, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xff88 }, 0x0050 }, + {{ 0x0050, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xff88 }, 0x0050 }, + {{ 0xffb0, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0050 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x0078 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x00a0 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x00c8 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x00c8 }, 0x0050 }, + } +}; + +// Referenced by D_800E6724, which is unused +SplineData24 D_800E64D8 = { + 0x0017, + { + {{ 0x0000, 0x0000, 0xffce }, 0x0050 }, + {{ 0x0014, 0x0000, 0xffd8 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xffec }, 0x0050 }, + {{ 0xffec, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x001e }, 0x0050 }, + {{ 0x0014, 0x0000, 0x0028 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0032 }, 0x0050 }, + {{ 0xffec, 0x0000, 0x0032 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x001e }, 0x0050 }, + {{ 0xffec, 0x0000, 0x0014 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0000 }, 0x0050 }, + {{ 0xfff6, 0x0000, 0x0014 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0028 }, 0x0050 }, + {{ 0x000a, 0x0000, 0x0032 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0046 }, 0x0050 }, + {{ 0xfff6, 0x0000, 0x0032 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0028 }, 0x0050 }, + {{ 0x000a, 0x0000, 0x001e }, 0x0050 }, + {{ 0x0000, 0x0000, 0x000a }, 0x0050 }, + {{ 0xfff6, 0x0000, 0x001e }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0028 }, 0x0050 }, + {{ 0x000a, 0x0000, 0x0032 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0046 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xffce }, 0x0050 }, + } +}; + +// Something related to the penguins in Sherbet Land, not sure of its exact nature +SplineData25 D_800E659C = { + 0x0018, + { + {{ 0xffec, 0x0000, 0x0000 }, 0x0050 }, + {{ 0xfff2, 0x0000, 0xfff2 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xffec }, 0x0050 }, + {{ 0x000e, 0x0000, 0xfff2 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x000e, 0x0000, 0x000e }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0014 }, 0x0050 }, + {{ 0xfff2, 0x0000, 0x000e }, 0x0050 }, + {{ 0xffec, 0x0000, 0x0000 }, 0x0050 }, + {{ 0xfff2, 0x0000, 0xfff2 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xffec }, 0x0050 }, + {{ 0x000e, 0x0000, 0xfff2 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x000e, 0x0000, 0x000e }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0014 }, 0x0050 }, + {{ 0xfff2, 0x0000, 0x000e }, 0x0050 }, + {{ 0xffec, 0x0000, 0x0000 }, 0x0050 }, + {{ 0xfff2, 0x0000, 0xfff2 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xffec }, 0x0050 }, + {{ 0x000e, 0x0000, 0xfff2 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x000e, 0x0000, 0x000e }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0014 }, 0x0050 }, + {{ 0xfff2, 0x0000, 0x000e }, 0x0050 }, + {{ 0xffec, 0x0000, 0x0000 }, 0x0050 }, + } +}; + +// Something related to the penguins in Sherbet Land, not sure of its exact nature +SplineData23 D_800E6668 = { + 0x0016, + { + {{ 0x0005, 0x0000, 0x0032 }, 0x0050 }, + {{ 0x0005, 0x0000, 0x0014 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xffe2 }, 0x0050 }, + {{ 0xffec, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xffe2 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x001e }, 0x0050 }, + {{ 0xffec, 0x0000, 0x0032 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x001e }, 0x0050 }, + {{ 0x0014, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xffe2 }, 0x0050 }, + {{ 0xffec, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xffe2 }, 0x0050 }, + {{ 0x0014, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0xffe2 }, 0x0050 }, + {{ 0xffec, 0x0000, 0x0000 }, 0x0050 }, + {{ 0x0000, 0x0000, 0x0014 }, 0x0050 }, + {{ 0x0005, 0x0000, 0x001e }, 0x0050 }, + {{ 0x0005, 0x0000, 0x0028 }, 0x0050 }, + {{ 0x0005, 0x0000, 0x0032 }, 0x0050 }, + {{ 0x0005, 0x0000, 0x0032 }, 0x0050 }, + } +}; + +// Appears to be unused +// Note the use of the plain SplineData type here. Since these are pointers, we don't care +// about their internal array size +SplineData *D_800E6724[] = { &D_800E641C, &D_800E64D8 }; + +SplineData *D_800E672C[] = { &D_800E659C, &D_800E6668 }; + +// I believe they're the positions of the static neon signs in rainbow road +Vec3f D_800E6734[] = { + { 1443.0, 1044.0, -5478.0 }, + { 1678.0, 1012.0, -4840.0 }, + { -3924.0, 921.0, 2566.0 }, + { -3311.0, 790.0, 3524.0 }, + { -1284.0, 1341.0, 4527.0 }, + { 2268.0, 1041.0, 4456.0 }, + { 2820.0, 1109.0, 1985.0 }, +}; + +// This should really be `extern Vec3s gTorchSpawns[];` +s16 gTorchSpawns[] = { + 0xfda6, 0xffa0, 0x0068, + 0xfd1f, 0xffa1, 0x0136, + 0xfcb0, 0xffa6, 0x021d, + 0xfca3, 0xffb0, 0x0302, + 0xfd43, 0xffc4, 0x03b0, + 0xfe52, 0xffd8, 0x039c, + 0xff25, 0xffed, 0x0320, + 0xffca, 0xfff8, 0x0270, +}; + +SplineData15 D_800E67B8 = { + 0x000d, + { + {{ 0x0096, 0x00cc, 0xfe0c }, 0x0014 }, + {{ 0x0064, 0x0068, 0xfed4 }, 0x0014 }, + {{ 0x0032, 0x0036, 0xff9c }, 0x0028 }, + {{ 0x0004, 0x000b, 0xfff2 }, 0x0028 }, + {{ 0x0004, 0x0010, 0xfff6 }, 0x001e }, + {{ 0x0004, 0x000e, 0xfff8 }, 0x001e }, + {{ 0x0004, 0x0010, 0xfffa }, 0x001e }, + {{ 0x0004, 0x000e, 0xfffc }, 0x0032 }, + {{ 0x0004, 0x0010, 0xfffe }, 0x0032 }, + {{ 0x0004, 0x000e, 0x0000 }, 0x0032 }, + {{ 0xfff6, 0x0010, 0x000a }, 0x0028 }, + {{ 0xffce, 0x002c, 0x0064 }, 0x0000 }, + {{ 0xfc19, 0x03eb, 0x01f4 }, 0x0000 }, + {{ 0xfc19, 0x03eb, 0x01f4 }, 0x0000 }, + {{ 0xfc19, 0x03eb, 0x01f4 }, 0x0000 }, + } +}; + +// Appears to be related to Lakitu waving the checkered flag +SplineData21 D_800E6834 = { + 0x0014, + { + {{ 0x0014, 0x0012, 0x001e }, 0x0028 }, + {{ 0x0000, 0x0012, 0x0014 }, 0x0028 }, + {{ 0xffec, 0x0012, 0x000a }, 0x0028 }, + {{ 0x0000, 0x0012, 0x0000 }, 0x0028 }, + {{ 0x0014, 0x000b, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0012, 0xffe2 }, 0x0028 }, + {{ 0xffec, 0x000b, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0012, 0xffe2 }, 0x0028 }, + {{ 0x0014, 0x000b, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0012, 0x001e }, 0x0028 }, + {{ 0xffec, 0x000b, 0x0032 }, 0x0028 }, + {{ 0x0000, 0x0012, 0x001e }, 0x0028 }, + {{ 0x0014, 0x000b, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0012, 0xffe2 }, 0x0028 }, + {{ 0xffec, 0x000b, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0012, 0xffe2 }, 0x0028 }, + {{ 0x0014, 0x000b, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0012, 0xffe2 }, 0x0028 }, + {{ 0xffec, 0x000b, 0x0000 }, 0x0028 }, + {{ 0x0000, 0x0012, 0x001e }, 0x0028 }, + {{ 0x0014, 0x0012, 0x001e }, 0x0028 }, + } +}; + +// Unused struct? +SplineDataUnused13 D_800E68E0 = { + 0x000c, + { + {{ 0x001e, 0x0018, 0x0078 }, 0x000a }, + {{ 0x0014, 0x0013, 0x0050 }, 0x000a }, + {{ 0x000a, 0x000e, 0x0032 }, 0x000a }, + {{ 0x0005, 0x000d, 0x0014 }, 0x001e }, + {{ 0x0000, 0x000d ,0x000a }, 0x001e }, + {{ 0x0000, 0x000d ,0x0000 }, 0x001e }, + {{ 0x0000, 0x000e, 0xfffb }, 0x000a }, + {{ 0x0000, 0x0010, 0xfff6 }, 0x000a }, + {{ 0x0000, 0x001d, 0xffce }, 0x000a }, + {{ 0x0000, 0x0036, 0xff9c }, 0x000a }, + {{ 0x0000, 0x0068, 0xff38 }, 0x0000 }, + {{ 0x0000, 0x00cc, 0xfe0c }, 0x0000 }, + {{ 0x0000, 0x00cc, 0xfe0c }, 0x0000 }, + } +}; + +// Appears to be related to Lakitu Second Lap animation +SplineData12 D_800E694C = { + 0x000b, + { + {{ 0x0032, 0x0014, 0x0050 }, 0x000a }, + {{ 0x0014, 0x0013, 0x0028 }, 0x000a }, + {{ 0x0000, 0x0012, 0x001e }, 0x000a }, + {{ 0xfff8, 0x0011, 0x0014 }, 0x001e }, + {{ 0xfff4, 0x0010, 0x000a }, 0x001e }, + {{ 0x0000, 0x000f, 0x0000 }, 0x001e }, + {{ 0x000c, 0x000f, 0x000a }, 0x000a }, + {{ 0x0008, 0x0010, 0x0014 }, 0x000a }, + {{ 0x0000, 0x0011, 0x001e }, 0x000a }, + {{ 0xffec, 0x0012, 0x0028 }, 0x000a }, + {{ 0xffc4, 0x0013, 0x0064 }, 0x000a }, + {{ 0xffc4, 0x0013, 0x0064 }, 0x000a }, + } +}; + +// Appears to be related to Lakitu Reverse animation +SplineData8 D_800E69B0 = { + 0x0007, + { + {{ 0x001e, 0x000e, 0x0032 }, 0x0028 }, + {{ 0x000a, 0x0010, 0x0014 }, 0x0028 }, + {{ 0x0005, 0x0011, 0x000a }, 0x003c }, + {{ 0x0002, 0x0012, 0x0000 }, 0x003c }, + {{ 0x0000, 0x0012, 0x0000 }, 0x003c }, + {{ 0x0000, 0x0012, 0x0000 }, 0x0000 }, + {{ 0x0000, 0x0012, 0x0000 }, 0x0000 }, + {{ 0x0000, 0x0012, 0x0000 }, 0x0000 }, + } +}; + +// Might be related to Lakitu doing the countdown? +SplineData8 D_800E69F4 = { + 0x0007, + { + {{ 0x0000, 0x0012, 0xfffb }, 0x0014 }, + {{ 0x0000, 0x0012, 0xfff6 }, 0x0014 }, + {{ 0x0000, 0x0012, 0x0005 }, 0x0010 }, + {{ 0xfff6, 0x0017, 0x000a }, 0x000a }, + {{ 0xfff1, 0x0017, 0x0014 }, 0x000a }, + {{ 0xffec, 0x001c, 0x001e }, 0x0000 }, + {{ 0xffe2, 0x0026, 0x00c8 }, 0x0000 }, + {{ 0xffe2, 0x0026, 0x00c8 }, 0x0000 }, + } +}; + +StarSpawn D_800E6A38[] = { + {{ 0x04fa, 0xfff6, 0x0096 }, 0x0000 }, + {{ 0x4718, 0x003c, 0x007d }, 0x0000 }, + {{ 0x5550, 0x0046, 0x0096 }, 0x0000 }, + {{ 0x954c, 0x002d, 0x004b }, 0x0000 }, + {{ 0xae2e, 0x0028, 0x004b }, 0x0000 }, + {{ 0x0e38, 0x001e, 0x0032 }, 0x0001 }, + {{ 0xa384, 0x0032, 0x0064 }, 0x0001 }, + {{ 0xd548, 0x001e, 0x0032 }, 0x0001 }, + {{ 0x31c4, 0x0032, 0x0064 }, 0x0002 }, + {{ 0x7ff8, 0x0037, 0x0064 }, 0x0002 }, + {{ 0xaaa0, 0x004b, 0x0096 }, 0x0002 }, + {{ 0xb8d8, 0xfff9, 0x0064 }, 0x0002 }, + {{ 0xee2a, 0x003c, 0x0050 }, 0x0002 }, + {{ 0xffff, 0x0000, 0x0000 }, 0x0000 }, +}; + +StarSpawn D_800E6AA8[] = { + {{ 0x00b6, 0x0050, 0x0041 }, 0x0000 }, + {{ 0x4718, 0x003c, 0x0064 }, 0x0000 }, + {{ 0x18e2, 0x0032, 0x004b }, 0x0000 }, + {{ 0x7ff8, 0x0037, 0x0064 }, 0x0000 }, + {{ 0x9ff6, 0x002d, 0x0032 }, 0x0000 }, + {{ 0xc710, 0x0046, 0x003c }, 0x0000 }, + {{ 0x0aaa, 0x001e, 0x0064 }, 0x0001 }, + {{ 0x5c6c, 0x0046, 0x0046 }, 0x0001 }, + {{ 0x31c4, 0x0028, 0x0050 }, 0x0002 }, + {{ 0xf1b8, 0x0028, 0x004b }, 0x0002 }, + {{ 0xffff, 0x0000, 0x0000 }, 0x0000 }, +}; + +StarSpawn D_800E6B00[] = { + {{ 0x1554, 0x001e, 0x00c8 }, 0x0000 }, + {{ 0xce2c, 0x001e, 0x00c8 }, 0x0000 }, + {{ 0xa384, 0x001e, 0x00c8 }, 0x0001 }, + {{ 0x070c, 0x001e, 0x00c8 }, 0x0001 }, + {{ 0x4718, 0x001e, 0x00c8 }, 0x0002 }, + {{ 0x8714, 0x001e, 0x00c8 }, 0x0003 }, + {{ 0xffff, 0x0000, 0x0000 }, 0x0000 }, +}; + +StarSpawn D_800E6B38[] = { + {{ 0x60b0, 0x003c, 0x007d }, 0x0000 }, + {{ 0xb8d8, 0x0037, 0x0064 }, 0x0000 }, + {{ 0xd548, 0x000a, 0x0082 }, 0x0000 }, + {{ 0xf1b8, 0x0023, 0x0064 }, 0x0000 }, + {{ 0x04fa, 0x0046, 0x0096 }, 0x0001 }, + {{ 0x4718, 0x003c, 0x007d }, 0x0001 }, + {{ 0x954c, 0x002d, 0x004b }, 0x0001 }, + {{ 0x0e38, 0x001e, 0x0032 }, 0x0002 }, + {{ 0x8880, 0x0046, 0x0096 }, 0x0002 }, + {{ 0x31c4, 0x0032, 0x0064 }, 0x0003 }, + {{ 0x5056, 0x0028, 0x004b }, 0x0003 }, + {{ 0x7ff8, 0x0037, 0x0064 }, 0x0003 }, + {{ 0xaaa0, 0x004b, 0x0096 }, 0x0003 }, + {{ 0xffff, 0x0000, 0x0000 }, 0x0000 }, +}; + +StarSpawn D_800E6BA8[] = { + {{ 0x4718, 0x003c, 0x007d }, 0x0000 }, + {{ 0x5550, 0x0046, 0x0096 }, 0x0000 }, + {{ 0x954c, 0x002d, 0x004b }, 0x0000 }, + {{ 0xf546, 0x0028, 0x004b }, 0x0000 }, + {{ 0x0e38, 0x001e, 0x0032 }, 0x0001 }, + {{ 0x0222, 0x0032, 0x0064 }, 0x0002 }, + {{ 0x1ffe, 0x0028, 0x004b }, 0x0002 }, + {{ 0x31c4, 0x0032, 0x0064 }, 0x0002 }, + {{ 0x7ff8, 0x0037, 0x0064 }, 0x0002 }, + {{ 0xaaa0, 0x004b, 0x0096 }, 0x0002 }, + {{ 0xb8d8, 0x0037, 0x0064 }, 0x0002 }, + {{ 0xdff2, 0x001e, 0x0032 }, 0x0002 }, + {{ 0xffff, 0x0000, 0x0000 }, 0x0000 }, +}; + +StarSpawn D_800E6C10[] = { + {{ 0x1ffe, 0x0028, 0x004b }, 0x0000 }, + {{ 0x60b0, 0x003c, 0x007d }, 0x0000 }, + {{ 0xb8d8, 0x0037, 0x0064 }, 0x0000 }, + {{ 0x4718, 0x003c, 0x007d }, 0x0001 }, + {{ 0x954c, 0x002d, 0x004b }, 0x0001 }, + {{ 0xf546, 0x0028, 0x004b }, 0x0001 }, + {{ 0x0e38, 0x001e, 0x0032 }, 0x0002 }, + {{ 0xa384, 0x0032, 0x0064 }, 0x0002 }, + {{ 0xddd0, 0x0046, 0x0096 }, 0x0002 }, + {{ 0x0222, 0x0032, 0x0064 }, 0x0003 }, + {{ 0x31c4, 0x0032, 0x0064 }, 0x0003 }, + {{ 0x7ff8, 0x0037, 0x0064 }, 0x0003 }, + {{ 0xaaa0, 0x004b, 0x0096 }, 0x0003 }, + {{ 0xffff, 0x0000, 0x0000 }, 0x0000 }, +}; + +StarSpawn D_800E6C80[] = { + {{ 0x0222, 0x0032, 0x000a }, 0x0000 }, + {{ 0x04fa, 0x0046, 0x000f }, 0x0000 }, + {{ 0x093e, 0x000a, 0x0014 }, 0x0000 }, + {{ 0x0e38, 0x001e, 0x000f }, 0x0000 }, + {{ 0x11c6, 0x0028, 0x0014 }, 0x0000 }, + {{ 0x1554, 0xfff6, 0x000f }, 0x0000 }, + {{ 0x1ddc, 0x000a, 0x0011 }, 0x0000 }, + {{ 0x1ffe, 0x0030, 0x0019 }, 0x0000 }, + {{ 0x271a, 0x0046, 0x0014 }, 0x0000 }, + {{ 0x27d0, 0xfff1, 0x0016 }, 0x0000 }, + {{ 0x2c14, 0x0014, 0x000f }, 0x0000 }, + {{ 0x31c4, 0x0032, 0x0016 }, 0x0000 }, + {{ 0x327a, 0x0000, 0x000a }, 0x0000 }, + {{ 0x3a4c, 0x000f, 0x0016 }, 0x0000 }, + {{ 0x3ffc, 0x002d, 0x0011 }, 0x0000 }, + {{ 0x40b2, 0xffdd, 0x0016 }, 0x0000 }, + {{ 0x4440, 0x0037, 0x0014 }, 0x0000 }, + {{ 0x4718, 0x003c, 0x000c }, 0x0000 }, + {{ 0x4718, 0x0050, 0x000c }, 0x0000 }, + {{ 0x4aa6, 0xfff6, 0x000f }, 0x0000 }, + {{ 0x5056, 0x0028, 0x000a }, 0x0000 }, + {{ 0x5550, 0x0046, 0x000f }, 0x0000 }, + {{ 0x60b0, 0x003c, 0x0016 }, 0x0000 }, + {{ 0x6388, 0xffdd, 0x0019 }, 0x0000 }, + {{ 0x64f4, 0x0023, 0x0011 }, 0x0000 }, + {{ 0x6aa4, 0x004b, 0x0014 }, 0x0000 }, + {{ 0x7054, 0x002d, 0x0019 }, 0x0000 }, + {{ 0x7498, 0x0014, 0x0012 }, 0x0000 }, + {{ 0x7bb4, 0xfff1, 0x001b }, 0x0000 }, + {{ 0x7ff8, 0x0037, 0x000a }, 0x0000 }, + {{ 0x8386, 0x0041, 0x0014 }, 0x0000 }, + {{ 0x8880, 0x0046, 0x000f }, 0x0000 }, + {{ 0x954c, 0x002d, 0x0011 }, 0x0000 }, + {{ 0x98da, 0x003c, 0x000f }, 0x0000 }, + {{ 0x9dd4, 0x0000, 0x000a }, 0x0000 }, + {{ 0xa384, 0x0046, 0x000f }, 0x0000 }, + {{ 0xa43a, 0x0032, 0x0017 }, 0x0000 }, + {{ 0xaaa0, 0x004b, 0x000f }, 0x0000 }, + {{ 0xae2e, 0x0028, 0x0011 }, 0x0000 }, + {{ 0xb1bc, 0x0023, 0x0014 }, 0x0000 }, + {{ 0xb8d8, 0xfff1, 0x000a }, 0x0000 }, + {{ 0xbc66, 0xffe2, 0x000f }, 0x0000 }, + {{ 0xc710, 0x001e, 0x000c }, 0x0000 }, + {{ 0xffff, 0x0000, 0x0000 }, 0x0000 }, +}; + +StarSpawn D_800E6DE0[] = { + {{ 0x0222, 0x0050, 0x000a }, 0x0000 }, + {{ 0x04fa, 0x0064, 0x000f }, 0x0000 }, + {{ 0x093e, 0x005a, 0x0014 }, 0x0000 }, + {{ 0x0e38, 0x003c, 0x000f }, 0x0000 }, + {{ 0x11c6, 0x0046, 0x0014 }, 0x0000 }, + {{ 0x1554, 0x0078, 0x000f }, 0x0000 }, + {{ 0x1c70, 0x001e, 0x0011 }, 0x0000 }, + {{ 0x1ffe, 0x0046, 0x0011 }, 0x0000 }, + {{ 0x271a, 0x0064, 0x0014 }, 0x0000 }, + {{ 0x2c14, 0x0032, 0x000f }, 0x0000 }, + {{ 0x31c4, 0x0050, 0x000a }, 0x0000 }, + {{ 0x3996, 0x0019, 0x000c }, 0x0000 }, + {{ 0x3a4c, 0x0037, 0x0016 }, 0x0000 }, + {{ 0x3bb8, 0x0019, 0x000c }, 0x0000 }, + {{ 0x3ffc, 0x004b, 0x0011 }, 0x0000 }, + {{ 0x4440, 0x0055, 0x0014 }, 0x0000 }, + {{ 0x4718, 0x005a, 0x000c }, 0x0000 }, + {{ 0x4aa6, 0x003c, 0x000f }, 0x0000 }, + {{ 0x5056, 0x0046, 0x000a }, 0x0000 }, + {{ 0x5550, 0x0064, 0x000f }, 0x0000 }, + {{ 0x60b0, 0x005a, 0x0016 }, 0x0000 }, + {{ 0x64f4, 0x0041, 0x0014 }, 0x0000 }, + {{ 0x6aa4, 0x0069, 0x0014 }, 0x0000 }, + {{ 0x7054, 0x004b, 0x0014 }, 0x0000 }, + {{ 0x71c0, 0x0078, 0x0012 }, 0x0000 }, + {{ 0x7498, 0x003c, 0x0012 }, 0x0000 }, + {{ 0x7ff8, 0x0055, 0x000a }, 0x0000 }, + {{ 0x8714, 0x0073, 0x000a }, 0x0000 }, + {{ 0x8880, 0x0064, 0x000f }, 0x0000 }, + {{ 0x954c, 0x004b, 0x0011 }, 0x0000 }, + {{ 0x98da, 0x003c, 0x000f }, 0x0000 }, + {{ 0x9dd4, 0x0032, 0x000a }, 0x0000 }, + {{ 0xa384, 0x0050, 0x000a }, 0x0000 }, + {{ 0xa43a, 0x006e, 0x000a }, 0x0000 }, + {{ 0xaaa0, 0x0069, 0x000f }, 0x0000 }, + {{ 0xae2e, 0x0046, 0x0011 }, 0x0000 }, + {{ 0xb1bc, 0x0041, 0x0014 }, 0x0000 }, + {{ 0xb8d8, 0x0055, 0x000a }, 0x0000 }, + {{ 0xbc66, 0x003c, 0x000f }, 0x0000 }, + {{ 0xc710, 0x0064, 0x000a }, 0x0000 }, + {{ 0xffff, 0x0000, 0x0000 }, 0x0000 }, + {{ 0x0000, 0x0000, 0x0000 }, 0x0000 }, +}; + +u8 D_800E6F30[][3] = { + { 0xc8, 0x01, 0x00 }, + { 0x00, 0x70, 0x01 }, + { 0x10, 0x79, 0x51 }, + { 0x00, 0x59, 0x70 }, + { 0x70, 0x55, 0x00 }, + { 0x7a, 0x7e, 0x00 }, + { 0x77, 0x2c, 0x24 }, + { 0x30, 0x14, 0x58 }, +}; + +u8 D_800E6F48[][3] = { + { 0xdc, 0x00, 0x00 }, + { 0x00, 0x8c, 0x06 }, + { 0x00, 0x00, 0x51 }, + { 0x00, 0x00, 0x00 }, + { 0x00, 0x00, 0x00 }, + { 0x00, 0x00, 0x00 }, + { 0x00, 0x00, 0x00 }, + { 0x00, 0x00, 0x00 }, +}; diff --git a/src/data/some_data.h b/src/data/some_data.h new file mode 100644 index 000000000..da56ef091 --- /dev/null +++ b/src/data/some_data.h @@ -0,0 +1,90 @@ +#ifndef SOME_DATA_H +#define SOME_DATA_H + +#include "PR/gbi.h" +#include "spline.h" +#include "data/other_textures.h" +#include "objects.h" + +extern Vtx D_800E49C0[]; +extern Vtx D_800E4AC0[]; +extern Vtx D_800E4BC0[]; +extern Vtx D_800E4CC0[]; +extern Vtx D_800E4DC0[]; +extern Vtx D_800E4EC0[]; +extern Vtx D_800E4FD0[]; +extern Vtx D_800E50D0[]; +extern Vtx D_800E51D0[]; +extern Vtx D_800E5210[]; +extern Vtx gBalloonVertexPlane1[]; +extern Vtx gBalloonVertexPlane2[]; +extern u8 D_800E52D0[]; +extern u8 *gCourseOutlineTextures[]; +extern s16 D_800E5520[]; +extern s16 D_800E5548[]; +extern u16 D_800E55A0[]; +extern u16 D_800E55B0[]; +extern u8 D_800E55D0[][3]; +extern s32 D_800E55F8[]; +extern s32 D_800E5618[]; +extern s8 D_800E5628[]; +extern Vec3s gFireBreathsSpawns[]; +extern s16 D_800E5740[]; +extern s16 D_800E579C[]; +extern s16 D_800E57F8[]; +extern ThwompSpawn gThomwpSpawns50CC[]; +extern ThwompSpawn gThwompSpawns100CCExtra[]; +extern ThwompSpawn gThomwpSpawns150CC[]; +extern f32 D_800E594C[][2]; +extern u64 D_800E5974; +extern u16 D_800E597C[]; +extern SplineData23 D_800E5988; +extern SplineData24 D_800E5A44; +extern SplineData25 D_800E5B08; +extern SplineData23 D_800E5BD4; +extern SplineData24 D_800E5C90; +extern SplineDataUnused4 D_800E5D54; +extern SplineDataUnused4 D_800E5D78; +extern SplineData *D_800E5D9C[]; +extern SplineData *D_800E5DB0; +extern s8 D_800E5DB4[]; +extern YVFlagPoleSpawn D_800E5DF4[]; +extern HegdehogSpawn gHedgehogSpawns[]; +extern Vec3s gHedgehogPatrolPoints[]; +extern SnowmanSpawn gSnowmanSpawns[]; +extern CrabSpawn gCrabSpawns[]; +extern s16 D_800E5FD0[]; +extern SplineData23 D_800E6034; +extern SplineData24 D_800E60F0; +extern SplineData25 D_800E61B4; +extern SplineData23 D_800E6280; +extern SplineData *D_800E633C[]; +extern Vec3s D_800E634C[]; +extern Vec3s gMoleSpawns[]; +extern SplineData23 D_800E641C; +extern SplineData24 D_800E64D8; +extern SplineData25 D_800E659C; +extern SplineData23 D_800E6668; +extern SplineData *D_800E6724[]; +extern SplineData *D_800E672C[]; +extern Vec3f D_800E6734[]; +// This should really be `extern Vec3s gTorchSpawns[];` +extern s16 gTorchSpawns[]; +extern SplineData15 D_800E67B8; +extern SplineData21 D_800E6834; +extern SplineDataUnused13 D_800E68E0; +extern SplineData12 D_800E694C; +extern SplineData8 D_800E69B0; +extern SplineData8 D_800E69F4; +extern StarSpawn D_800E6A38[]; +extern StarSpawn D_800E6AA8[]; +extern StarSpawn D_800E6B00[]; +extern StarSpawn D_800E6B38[]; +extern StarSpawn D_800E6BA8[]; +extern StarSpawn D_800E6C10[]; +extern StarSpawn D_800E6C80[]; +extern StarSpawn D_800E6DE0[]; +extern u8 D_800E6F30[][3]; +extern u8 D_800E6F48[][3]; + +#endif diff --git a/src/hud_renderer.c b/src/hud_renderer.c index ceb9fc152..021ab3792 100644 --- a/src/hud_renderer.c +++ b/src/hud_renderer.c @@ -33,6 +33,7 @@ #include "src/data/data_800E45C0.h" #include "courses/all_course_data.h" #include +#include "data/some_data.h" void func_800431B0(Vec3f pos, Vec3su orientation, f32 scale, Vtx *vtx) { rsp_set_matrix_transformation(pos, orientation, scale); @@ -4466,7 +4467,7 @@ void debug_print_number(s32 *x, s32 *y, s32 number, u32 numDigits) debug_wrap_text(x, y); n = number; if (n < 0) { - func_800573E4(*x, *y, *D_800E5655); + func_800573E4(*x, *y, D_800E5628[0x2D]); debug_wrap_text(x, y); n = -number; } @@ -4553,25 +4554,25 @@ UNUSED void func_80057814(s32 arg0, s32 arg1, char *arg2, u32 arg3) { UNUSED void func_80057858(s32 arg0, s32 arg1, char *arg2, u32 arg3) { debug_print_string(&arg0, &arg1, arg2); debug_print_number(&arg0, &arg1, arg3, 16); - func_800573E4(arg0, arg1, D_800E5670[0]); + func_800573E4(arg0, arg1, D_800E5628[0x48]); } UNUSED void func_800578B0(s32 arg0, s32 arg1, char *arg2, u32 arg3) { debug_print_string(&arg0, &arg1, arg2); func_8005762C(&arg0, &arg1, arg3, 16); - func_800573E4(arg0, arg1, D_800E5670[0]); + func_800573E4(arg0, arg1, D_800E5628[0x48]); } UNUSED void func_80057908(s32 arg0, s32 arg1, char *arg2, u32 arg3) { debug_print_string(&arg0, &arg1, arg2); debug_print_number(&arg0, &arg1, arg3, 2); - func_800573E4(arg0, arg1, D_800E566A[0]); + func_800573E4(arg0, arg1, D_800E5628[0x42]); } UNUSED void func_80057960(s32 arg0, s32 arg1, char *arg2, u32 arg3) { debug_print_string(&arg0, &arg1, arg2); func_8005762C(&arg0, &arg1, arg3, 2); - func_800573E4(arg0, arg1, D_800E566A[0]); + func_800573E4(arg0, arg1, D_800E5628[0x42]); } UNUSED void func_800579B8(s32 arg0, s32 arg1, char *arg2) { @@ -4598,7 +4599,7 @@ UNUSED void func_80057AA8(s32 arg0, s32 arg1, char *arg2, u32 arg3) { load_debug_font(); debug_print_string(&arg0, &arg1, arg2); debug_print_number(&arg0, &arg1, arg3, 16); - func_800573E4(arg0, arg1, D_800E5670[0]); + func_800573E4(arg0, arg1, D_800E5628[0x48]); func_80057778(); } @@ -4606,7 +4607,7 @@ UNUSED void func_80057B14(s32 arg0, s32 arg1, char *arg2, u32 arg3) { load_debug_font(); debug_print_string(&arg0, &arg1, arg2); func_8005762C(&arg0, &arg1, arg3, 16); - func_800573E4(arg0, arg1, D_800E5670[0]); + func_800573E4(arg0, arg1, D_800E5628[0x48]); func_80057778(); } @@ -4614,7 +4615,7 @@ UNUSED void func_80057B80(s32 arg0, s32 arg1, char *arg2, u32 arg3) { load_debug_font(); debug_print_string(&arg0, &arg1, arg2); debug_print_number(&arg0, &arg1, arg3, 2); - func_800573E4(arg0, arg1, D_800E566A[0]); + func_800573E4(arg0, arg1, D_800E5628[0x42]); func_80057778(); } @@ -4622,6 +4623,6 @@ UNUSED void func_80057BEC(s32 arg0, s32 arg1, char *arg2, u32 arg3) { load_debug_font(); debug_print_string(&arg0, &arg1, arg2); func_8005762C(&arg0, &arg1, arg3, 2); - func_800573E4(arg0, arg1, D_800E566A[0]); + func_800573E4(arg0, arg1, D_800E5628[0x42]); func_80057778(); } diff --git a/src/hud_renderer.h b/src/hud_renderer.h index c38a553a8..20c34f496 100644 --- a/src/hud_renderer.h +++ b/src/hud_renderer.h @@ -458,14 +458,6 @@ extern Lights1 D_800E4668; extern Lights1 D_800E4680; extern Lights1 D_800E4698; -extern u8 D_800E52D0[]; -extern s32 D_800E55F8[]; -extern s32 D_800E5618[4];// = { 0x000000FF, 0x000000D7, 0x000000A2, 0x00000061 }; -extern s8 D_800E5628[]; -extern s8 D_800E5655[0x15]; //[0x15] = { 0x2B, 0x24, 0x2D, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0x2C, 0x36, 0x3C, 0x2F, 0x3D, 0x28, 0x30, 0x0A, }; -extern s8 D_800E5670[]; -extern s8 D_800E566A[]; - extern u8 d_course_bowsers_castle_thwomp_tlut[]; // Some type of pallette? #endif diff --git a/tools/doxygen_syms.md b/tools/doxygen_syms.md index c52b41de4..78d6071e2 100644 --- a/tools/doxygen_syms.md +++ b/tools/doxygen_syms.md @@ -3141,9 +3141,6 @@ Variable Name | Memory Address [D_800E55F8](@ref D_800E55F8) | 0x800E55F8 [D_800E5618](@ref D_800E5618) | 0x800E5618 [D_800E5628](@ref D_800E5628) | 0x800E5628 -[D_800E5655](@ref D_800E5655) | 0x800E5655 -[D_800E566A](@ref D_800E566A) | 0x800E566A -[D_800E5670](@ref D_800E5670) | 0x800E5670 [gFireBreathsSpawns](@ref gFireBreathsSpawns) | 0x800E5728 [D_800E5740](@ref D_800E5740) | 0x800E5740 [D_800E579C](@ref D_800E579C) | 0x800E579C @@ -3152,7 +3149,6 @@ Variable Name | Memory Address [gThwompSpawns100CCExtra](@ref gThwompSpawns100CCExtra) | 0x800E5894 [gThomwpSpawns150CC](@ref gThomwpSpawns150CC) | 0x800E58EC [D_800E594C](@ref D_800E594C) | 0x800E594C -[D_800E5974](@ref D_800E5974) | 0x800E5974 [D_800E597C](@ref D_800E597C) | 0x800E597C [D_800E5988](@ref D_800E5988) | 0x800E5988 [D_800E5A44](@ref D_800E5A44) | 0x800E5A44 @@ -3160,13 +3156,13 @@ Variable Name | Memory Address [D_800E5BD4](@ref D_800E5BD4) | 0x800E5BD4 [D_800E5C90](@ref D_800E5C90) | 0x800E5C90 [D_800E5D54](@ref D_800E5D54) | 0x800E5D54 +[D_800E5D78](@ref D_800E5D78) | 0x800E5D78 [D_800E5D9C](@ref D_800E5D9C) | 0x800E5D9C [D_800E5DB0](@ref D_800E5DB0) | 0x800E5DB0 [D_800E5DB4](@ref D_800E5DB4) | 0x800E5DB4 [D_800E5DF4](@ref D_800E5DF4) | 0x800E5DF4 [gHedgehogSpawns](@ref gHedgehogSpawns) | 0x800E5E14 [gHedgehogPatrolPoints](@ref gHedgehogPatrolPoints) | 0x800E5E8C -[D_800E5EE6](@ref D_800E5EE6) | 0x800E5EE6 [gSnowmanSpawns](@ref gSnowmanSpawns) | 0x800E5EE8 [gCrabSpawns](@ref gCrabSpawns) | 0x800E5F80 [D_800E5FD0](@ref D_800E5FD0) | 0x800E5FD0 @@ -3177,7 +3173,6 @@ Variable Name | Memory Address [D_800E633C](@ref D_800E633C) | 0x800E633C [D_800E634C](@ref D_800E634C) | 0x800E634C [gMoleSpawns](@ref gMoleSpawns) | 0x800E6360 -[D_800E641A](@ref D_800E641A) | 0x800E641A [D_800E641C](@ref D_800E641C) | 0x800E641C [D_800E64D8](@ref D_800E64D8) | 0x800E64D8 [D_800E659C](@ref D_800E659C) | 0x800E659C @@ -3188,6 +3183,7 @@ Variable Name | Memory Address [gTorchSpawns](@ref gTorchSpawns) | 0x800E6788 [D_800E67B8](@ref D_800E67B8) | 0x800E67B8 [D_800E6834](@ref D_800E6834) | 0x800E6834 +[D_800E68E0](@ref D_800E68E0) | 0x800E68E0 [D_800E694C](@ref D_800E694C) | 0x800E694C [D_800E69B0](@ref D_800E69B0) | 0x800E69B0 [D_800E69F4](@ref D_800E69F4) | 0x800E69F4