From 95ea0e92e7e24de9ad77dfa0a3224718cd1564c3 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 25 Aug 2020 17:49:42 -0400 Subject: [PATCH] Start documenting rayquaza_scene --- data/maps/SootopolisCity/scripts.inc | 8 +- .../rayquaza_scene/{ => scene_1}/clouds.pal | 0 .../rayquaza_scene/{ => scene_1}/clouds.png | Bin .../rayquaza_scene/{ => scene_1}/clouds1.bin | Bin .../rayquaza_scene/{ => scene_1}/clouds2.bin | Bin .../rayquaza_scene/{ => scene_1}/clouds3.bin | Bin .../rayquaza_scene/{ => scene_1}/groudon.png | Bin .../{ => scene_1}/groudon_claw.png | Bin .../{ => scene_1}/groudon_shoulder.png | Bin .../rayquaza_scene/{ => scene_1}/kyogre.png | Bin .../{ => scene_1}/kyogre_fin.png | Bin .../{ => scene_1}/kyogre_shoulder.png | Bin .../{overcast.bin => scene_2/bg.bin} | Bin .../{overcast.png => scene_2/bg.png} | Bin .../rayquaza_scene/{ => scene_2}/rayquaza.bin | Bin .../rayquaza_scene/{ => scene_2}/rayquaza.png | Bin .../rayquaza_scene/{ => scene_2}/smoke.png | Bin .../{overcast2.bin => scene_3/bg.bin} | Bin .../{overcast2.pal => scene_3/bg.pal} | 0 .../{overcast2.png => scene_3/bg.png} | Bin .../{rayquaza_light.bin => scene_3/light.bin} | Bin .../{rayquaza_light.png => scene_3/light.png} | Bin .../rayquaza.png} | Bin .../{ => scene_3}/rayquaza_tail.png | Bin .../{chase_bg.bin => scene_4/bg.bin} | Bin .../{chase.pal => scene_4/bg.pal} | 0 .../{chase_bg.png => scene_4/bg.png} | Bin .../rayquaza.bin} | Bin .../rayquaza.png} | Bin .../rayquaza2.bin} | Bin .../streaks.bin} | Bin .../streaks.png} | Bin .../{hush_bg.bin => scene_5/bg.bin} | Bin .../{hush_bg.pal => scene_5/bg.pal} | 0 .../{hush_bg.png => scene_5/bg.png} | Bin .../{groudon_left.png => scene_5/groudon.png} | Bin .../{ => scene_5}/groudon_tail.png | Bin .../{kyogre_right.png => scene_5/kyogre.png} | Bin .../{splash.png => scene_5/kyogre_splash.png} | Bin .../rayquaza.png} | Bin .../rayquaza_tail.png} | Bin .../{hush_ring.bin => scene_5/ring.bin} | Bin .../{hush_ring.png => scene_5/ring.png} | Bin .../ring_map.bin} | Bin graphics_file_rules.mk | 12 +- include/graphics.h | 4 +- include/rayquaza_scene.h | 13 +- include/rom_8011DC0.h | 4 - src/contest_painting.c | 13 +- src/data/graphics/rayquaza_scene.h | 127 +++++---- src/field_specials.c | 4 +- src/rayquaza_scene.c | 244 +++++++++++------- src/start_menu.c | 1 - src/trade.c | 1 - 54 files changed, 225 insertions(+), 206 deletions(-) rename graphics/rayquaza_scene/{ => scene_1}/clouds.pal (100%) rename graphics/rayquaza_scene/{ => scene_1}/clouds.png (100%) rename graphics/rayquaza_scene/{ => scene_1}/clouds1.bin (100%) rename graphics/rayquaza_scene/{ => scene_1}/clouds2.bin (100%) rename graphics/rayquaza_scene/{ => scene_1}/clouds3.bin (100%) rename graphics/rayquaza_scene/{ => scene_1}/groudon.png (100%) rename graphics/rayquaza_scene/{ => scene_1}/groudon_claw.png (100%) rename graphics/rayquaza_scene/{ => scene_1}/groudon_shoulder.png (100%) rename graphics/rayquaza_scene/{ => scene_1}/kyogre.png (100%) rename graphics/rayquaza_scene/{ => scene_1}/kyogre_fin.png (100%) rename graphics/rayquaza_scene/{ => scene_1}/kyogre_shoulder.png (100%) rename graphics/rayquaza_scene/{overcast.bin => scene_2/bg.bin} (100%) rename graphics/rayquaza_scene/{overcast.png => scene_2/bg.png} (100%) rename graphics/rayquaza_scene/{ => scene_2}/rayquaza.bin (100%) rename graphics/rayquaza_scene/{ => scene_2}/rayquaza.png (100%) rename graphics/rayquaza_scene/{ => scene_2}/smoke.png (100%) rename graphics/rayquaza_scene/{overcast2.bin => scene_3/bg.bin} (100%) rename graphics/rayquaza_scene/{overcast2.pal => scene_3/bg.pal} (100%) rename graphics/rayquaza_scene/{overcast2.png => scene_3/bg.png} (100%) rename graphics/rayquaza_scene/{rayquaza_light.bin => scene_3/light.bin} (100%) rename graphics/rayquaza_scene/{rayquaza_light.png => scene_3/light.png} (100%) rename graphics/rayquaza_scene/{rayquaza_fly1.png => scene_3/rayquaza.png} (100%) rename graphics/rayquaza_scene/{ => scene_3}/rayquaza_tail.png (100%) rename graphics/rayquaza_scene/{chase_bg.bin => scene_4/bg.bin} (100%) rename graphics/rayquaza_scene/{chase.pal => scene_4/bg.pal} (100%) rename graphics/rayquaza_scene/{chase_bg.png => scene_4/bg.png} (100%) rename graphics/rayquaza_scene/{rayquaza_chase.bin => scene_4/rayquaza.bin} (100%) rename graphics/rayquaza_scene/{rayquaza_chase.png => scene_4/rayquaza.png} (100%) rename graphics/rayquaza_scene/{rayquaza_chase2.bin => scene_4/rayquaza2.bin} (100%) rename graphics/rayquaza_scene/{chase_streaks.bin => scene_4/streaks.bin} (100%) rename graphics/rayquaza_scene/{chase_streaks.png => scene_4/streaks.png} (100%) rename graphics/rayquaza_scene/{hush_bg.bin => scene_5/bg.bin} (100%) rename graphics/rayquaza_scene/{hush_bg.pal => scene_5/bg.pal} (100%) rename graphics/rayquaza_scene/{hush_bg.png => scene_5/bg.png} (100%) rename graphics/rayquaza_scene/{groudon_left.png => scene_5/groudon.png} (100%) rename graphics/rayquaza_scene/{ => scene_5}/groudon_tail.png (100%) rename graphics/rayquaza_scene/{kyogre_right.png => scene_5/kyogre.png} (100%) rename graphics/rayquaza_scene/{splash.png => scene_5/kyogre_splash.png} (100%) rename graphics/rayquaza_scene/{rayquaza_hover.png => scene_5/rayquaza.png} (100%) rename graphics/rayquaza_scene/{rayquaza_flyin.png => scene_5/rayquaza_tail.png} (100%) rename graphics/rayquaza_scene/{hush_ring.bin => scene_5/ring.bin} (100%) rename graphics/rayquaza_scene/{hush_ring.png => scene_5/ring.png} (100%) rename graphics/rayquaza_scene/{hush_ring_map.bin => scene_5/ring_map.bin} (100%) delete mode 100644 include/rom_8011DC0.h diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index 2979f104d..97081c250 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -235,7 +235,7 @@ SootopolisCity_EventScript_LegendariesSceneFromPokeCenter:: @ 81E5946 fadescreenspeed FADE_TO_BLACK, 8 setweather WEATHER_ABNORMAL doweather - setvar VAR_0x8004, 0 + setvar VAR_0x8004, FALSE @ Just do Groudon/Kyogre fight scene special Script_DoRayquazaScene waitstate applymovement LOCALID_KYOGRE, Common_Movement_WalkInPlaceFastestLeft @@ -335,7 +335,7 @@ SootopolisCity_EventScript_LegendariesSceneFromDive:: @ 81E5A82 fadescreenspeed FADE_TO_BLACK, 8 setweather WEATHER_ABNORMAL doweather - setvar VAR_0x8004, 0 + setvar VAR_0x8004, FALSE @ Just do Groudon/Kyogre fight scene special Script_DoRayquazaScene waitstate applymovement LOCALID_KYOGRE, Common_Movement_WalkInPlaceFastestLeft @@ -528,7 +528,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter:: @ 81E5C1E removeobject LOCALID_GROUDON removeobject LOCALID_KYOGRE addobject LOCALID_RAYQUAZA - setvar VAR_0x8004, 1 + setvar VAR_0x8004, TRUE special Script_DoRayquazaScene waitstate playse SE_T_KAMI @@ -581,7 +581,7 @@ SootopolisCity_EventScript_RayquazaSceneFromDive:: @ 81E5CCE removeobject LOCALID_GROUDON removeobject LOCALID_KYOGRE addobject LOCALID_RAYQUAZA - setvar VAR_0x8004, 1 + setvar VAR_0x8004, TRUE special Script_DoRayquazaScene waitstate special SpawnCameraObject diff --git a/graphics/rayquaza_scene/clouds.pal b/graphics/rayquaza_scene/scene_1/clouds.pal similarity index 100% rename from graphics/rayquaza_scene/clouds.pal rename to graphics/rayquaza_scene/scene_1/clouds.pal diff --git a/graphics/rayquaza_scene/clouds.png b/graphics/rayquaza_scene/scene_1/clouds.png similarity index 100% rename from graphics/rayquaza_scene/clouds.png rename to graphics/rayquaza_scene/scene_1/clouds.png diff --git a/graphics/rayquaza_scene/clouds1.bin b/graphics/rayquaza_scene/scene_1/clouds1.bin similarity index 100% rename from graphics/rayquaza_scene/clouds1.bin rename to graphics/rayquaza_scene/scene_1/clouds1.bin diff --git a/graphics/rayquaza_scene/clouds2.bin b/graphics/rayquaza_scene/scene_1/clouds2.bin similarity index 100% rename from graphics/rayquaza_scene/clouds2.bin rename to graphics/rayquaza_scene/scene_1/clouds2.bin diff --git a/graphics/rayquaza_scene/clouds3.bin b/graphics/rayquaza_scene/scene_1/clouds3.bin similarity index 100% rename from graphics/rayquaza_scene/clouds3.bin rename to graphics/rayquaza_scene/scene_1/clouds3.bin diff --git a/graphics/rayquaza_scene/groudon.png b/graphics/rayquaza_scene/scene_1/groudon.png similarity index 100% rename from graphics/rayquaza_scene/groudon.png rename to graphics/rayquaza_scene/scene_1/groudon.png diff --git a/graphics/rayquaza_scene/groudon_claw.png b/graphics/rayquaza_scene/scene_1/groudon_claw.png similarity index 100% rename from graphics/rayquaza_scene/groudon_claw.png rename to graphics/rayquaza_scene/scene_1/groudon_claw.png diff --git a/graphics/rayquaza_scene/groudon_shoulder.png b/graphics/rayquaza_scene/scene_1/groudon_shoulder.png similarity index 100% rename from graphics/rayquaza_scene/groudon_shoulder.png rename to graphics/rayquaza_scene/scene_1/groudon_shoulder.png diff --git a/graphics/rayquaza_scene/kyogre.png b/graphics/rayquaza_scene/scene_1/kyogre.png similarity index 100% rename from graphics/rayquaza_scene/kyogre.png rename to graphics/rayquaza_scene/scene_1/kyogre.png diff --git a/graphics/rayquaza_scene/kyogre_fin.png b/graphics/rayquaza_scene/scene_1/kyogre_fin.png similarity index 100% rename from graphics/rayquaza_scene/kyogre_fin.png rename to graphics/rayquaza_scene/scene_1/kyogre_fin.png diff --git a/graphics/rayquaza_scene/kyogre_shoulder.png b/graphics/rayquaza_scene/scene_1/kyogre_shoulder.png similarity index 100% rename from graphics/rayquaza_scene/kyogre_shoulder.png rename to graphics/rayquaza_scene/scene_1/kyogre_shoulder.png diff --git a/graphics/rayquaza_scene/overcast.bin b/graphics/rayquaza_scene/scene_2/bg.bin similarity index 100% rename from graphics/rayquaza_scene/overcast.bin rename to graphics/rayquaza_scene/scene_2/bg.bin diff --git a/graphics/rayquaza_scene/overcast.png b/graphics/rayquaza_scene/scene_2/bg.png similarity index 100% rename from graphics/rayquaza_scene/overcast.png rename to graphics/rayquaza_scene/scene_2/bg.png diff --git a/graphics/rayquaza_scene/rayquaza.bin b/graphics/rayquaza_scene/scene_2/rayquaza.bin similarity index 100% rename from graphics/rayquaza_scene/rayquaza.bin rename to graphics/rayquaza_scene/scene_2/rayquaza.bin diff --git a/graphics/rayquaza_scene/rayquaza.png b/graphics/rayquaza_scene/scene_2/rayquaza.png similarity index 100% rename from graphics/rayquaza_scene/rayquaza.png rename to graphics/rayquaza_scene/scene_2/rayquaza.png diff --git a/graphics/rayquaza_scene/smoke.png b/graphics/rayquaza_scene/scene_2/smoke.png similarity index 100% rename from graphics/rayquaza_scene/smoke.png rename to graphics/rayquaza_scene/scene_2/smoke.png diff --git a/graphics/rayquaza_scene/overcast2.bin b/graphics/rayquaza_scene/scene_3/bg.bin similarity index 100% rename from graphics/rayquaza_scene/overcast2.bin rename to graphics/rayquaza_scene/scene_3/bg.bin diff --git a/graphics/rayquaza_scene/overcast2.pal b/graphics/rayquaza_scene/scene_3/bg.pal similarity index 100% rename from graphics/rayquaza_scene/overcast2.pal rename to graphics/rayquaza_scene/scene_3/bg.pal diff --git a/graphics/rayquaza_scene/overcast2.png b/graphics/rayquaza_scene/scene_3/bg.png similarity index 100% rename from graphics/rayquaza_scene/overcast2.png rename to graphics/rayquaza_scene/scene_3/bg.png diff --git a/graphics/rayquaza_scene/rayquaza_light.bin b/graphics/rayquaza_scene/scene_3/light.bin similarity index 100% rename from graphics/rayquaza_scene/rayquaza_light.bin rename to graphics/rayquaza_scene/scene_3/light.bin diff --git a/graphics/rayquaza_scene/rayquaza_light.png b/graphics/rayquaza_scene/scene_3/light.png similarity index 100% rename from graphics/rayquaza_scene/rayquaza_light.png rename to graphics/rayquaza_scene/scene_3/light.png diff --git a/graphics/rayquaza_scene/rayquaza_fly1.png b/graphics/rayquaza_scene/scene_3/rayquaza.png similarity index 100% rename from graphics/rayquaza_scene/rayquaza_fly1.png rename to graphics/rayquaza_scene/scene_3/rayquaza.png diff --git a/graphics/rayquaza_scene/rayquaza_tail.png b/graphics/rayquaza_scene/scene_3/rayquaza_tail.png similarity index 100% rename from graphics/rayquaza_scene/rayquaza_tail.png rename to graphics/rayquaza_scene/scene_3/rayquaza_tail.png diff --git a/graphics/rayquaza_scene/chase_bg.bin b/graphics/rayquaza_scene/scene_4/bg.bin similarity index 100% rename from graphics/rayquaza_scene/chase_bg.bin rename to graphics/rayquaza_scene/scene_4/bg.bin diff --git a/graphics/rayquaza_scene/chase.pal b/graphics/rayquaza_scene/scene_4/bg.pal similarity index 100% rename from graphics/rayquaza_scene/chase.pal rename to graphics/rayquaza_scene/scene_4/bg.pal diff --git a/graphics/rayquaza_scene/chase_bg.png b/graphics/rayquaza_scene/scene_4/bg.png similarity index 100% rename from graphics/rayquaza_scene/chase_bg.png rename to graphics/rayquaza_scene/scene_4/bg.png diff --git a/graphics/rayquaza_scene/rayquaza_chase.bin b/graphics/rayquaza_scene/scene_4/rayquaza.bin similarity index 100% rename from graphics/rayquaza_scene/rayquaza_chase.bin rename to graphics/rayquaza_scene/scene_4/rayquaza.bin diff --git a/graphics/rayquaza_scene/rayquaza_chase.png b/graphics/rayquaza_scene/scene_4/rayquaza.png similarity index 100% rename from graphics/rayquaza_scene/rayquaza_chase.png rename to graphics/rayquaza_scene/scene_4/rayquaza.png diff --git a/graphics/rayquaza_scene/rayquaza_chase2.bin b/graphics/rayquaza_scene/scene_4/rayquaza2.bin similarity index 100% rename from graphics/rayquaza_scene/rayquaza_chase2.bin rename to graphics/rayquaza_scene/scene_4/rayquaza2.bin diff --git a/graphics/rayquaza_scene/chase_streaks.bin b/graphics/rayquaza_scene/scene_4/streaks.bin similarity index 100% rename from graphics/rayquaza_scene/chase_streaks.bin rename to graphics/rayquaza_scene/scene_4/streaks.bin diff --git a/graphics/rayquaza_scene/chase_streaks.png b/graphics/rayquaza_scene/scene_4/streaks.png similarity index 100% rename from graphics/rayquaza_scene/chase_streaks.png rename to graphics/rayquaza_scene/scene_4/streaks.png diff --git a/graphics/rayquaza_scene/hush_bg.bin b/graphics/rayquaza_scene/scene_5/bg.bin similarity index 100% rename from graphics/rayquaza_scene/hush_bg.bin rename to graphics/rayquaza_scene/scene_5/bg.bin diff --git a/graphics/rayquaza_scene/hush_bg.pal b/graphics/rayquaza_scene/scene_5/bg.pal similarity index 100% rename from graphics/rayquaza_scene/hush_bg.pal rename to graphics/rayquaza_scene/scene_5/bg.pal diff --git a/graphics/rayquaza_scene/hush_bg.png b/graphics/rayquaza_scene/scene_5/bg.png similarity index 100% rename from graphics/rayquaza_scene/hush_bg.png rename to graphics/rayquaza_scene/scene_5/bg.png diff --git a/graphics/rayquaza_scene/groudon_left.png b/graphics/rayquaza_scene/scene_5/groudon.png similarity index 100% rename from graphics/rayquaza_scene/groudon_left.png rename to graphics/rayquaza_scene/scene_5/groudon.png diff --git a/graphics/rayquaza_scene/groudon_tail.png b/graphics/rayquaza_scene/scene_5/groudon_tail.png similarity index 100% rename from graphics/rayquaza_scene/groudon_tail.png rename to graphics/rayquaza_scene/scene_5/groudon_tail.png diff --git a/graphics/rayquaza_scene/kyogre_right.png b/graphics/rayquaza_scene/scene_5/kyogre.png similarity index 100% rename from graphics/rayquaza_scene/kyogre_right.png rename to graphics/rayquaza_scene/scene_5/kyogre.png diff --git a/graphics/rayquaza_scene/splash.png b/graphics/rayquaza_scene/scene_5/kyogre_splash.png similarity index 100% rename from graphics/rayquaza_scene/splash.png rename to graphics/rayquaza_scene/scene_5/kyogre_splash.png diff --git a/graphics/rayquaza_scene/rayquaza_hover.png b/graphics/rayquaza_scene/scene_5/rayquaza.png similarity index 100% rename from graphics/rayquaza_scene/rayquaza_hover.png rename to graphics/rayquaza_scene/scene_5/rayquaza.png diff --git a/graphics/rayquaza_scene/rayquaza_flyin.png b/graphics/rayquaza_scene/scene_5/rayquaza_tail.png similarity index 100% rename from graphics/rayquaza_scene/rayquaza_flyin.png rename to graphics/rayquaza_scene/scene_5/rayquaza_tail.png diff --git a/graphics/rayquaza_scene/hush_ring.bin b/graphics/rayquaza_scene/scene_5/ring.bin similarity index 100% rename from graphics/rayquaza_scene/hush_ring.bin rename to graphics/rayquaza_scene/scene_5/ring.bin diff --git a/graphics/rayquaza_scene/hush_ring.png b/graphics/rayquaza_scene/scene_5/ring.png similarity index 100% rename from graphics/rayquaza_scene/hush_ring.png rename to graphics/rayquaza_scene/scene_5/ring.png diff --git a/graphics/rayquaza_scene/hush_ring_map.bin b/graphics/rayquaza_scene/scene_5/ring_map.bin similarity index 100% rename from graphics/rayquaza_scene/hush_ring_map.bin rename to graphics/rayquaza_scene/scene_5/ring_map.bin diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 019f382eb..630aaa3fc 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -457,23 +457,23 @@ $(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal \ $(INTERFACEGFXDIR)/bag_screen.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 53 -$(RAYQUAZAGFXDIR)/rayquaza.8bpp: %.8bpp: %.png +$(RAYQUAZAGFXDIR)/scene_2/rayquaza.8bpp: %.8bpp: %.png $(GFX) $< $@ -num_tiles 227 -$(RAYQUAZAGFXDIR)/overcast.4bpp: %.4bpp: %.png +$(RAYQUAZAGFXDIR)/scene_2/bg.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 313 -$(RAYQUAZAGFXDIR)/rayquaza_fly1.4bpp: %.4bpp: %.png +$(RAYQUAZAGFXDIR)/scene_3/rayquaza.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 124 -$(RAYQUAZAGFXDIR)/rayquaza_tail_fix.4bpp: $(RAYQUAZAGFXDIR)/rayquaza_tail.4bpp +$(RAYQUAZAGFXDIR)/scene_3/rayquaza_tail_fix.4bpp: $(RAYQUAZAGFXDIR)/scene_3/rayquaza_tail.4bpp cp $< $@ head -c 12 /dev/zero >> $@ -$(RAYQUAZAGFXDIR)/chase_streaks.4bpp: %.4bpp: %.png +$(RAYQUAZAGFXDIR)/scene_4/streaks.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 19 -$(RAYQUAZAGFXDIR)/rayquaza_chase.4bpp: %.4bpp: %.png +$(RAYQUAZAGFXDIR)/scene_4/rayquaza.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 155 graphics/picture_frame/frame5.4bpp: %.4bpp: %.png diff --git a/include/graphics.h b/include/graphics.h index 4c98bee47..1c8a52b69 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -3310,8 +3310,8 @@ extern const u32 gBerryTag_Pal[]; // rayquaza scene gfx extern const u32 gRaySceneGroudon_Gfx[]; -extern const u32 gRaySceneGroudon2_Gfx[]; -extern const u32 gRaySceneGroudon3_Gfx[]; +extern const u32 gRaySceneGroudonShoulder_Gfx[]; +extern const u32 gRaySceneGroudonClaw_Gfx[]; extern const u32 gRaySceneKyogre_Gfx[]; extern const u32 gRaySceneKyogre2_Gfx[]; extern const u32 gRaySceneKyogre3_Gfx[]; diff --git a/include/rayquaza_scene.h b/include/rayquaza_scene.h index fe66b3df0..5aa21981e 100644 --- a/include/rayquaza_scene.h +++ b/include/rayquaza_scene.h @@ -1,17 +1,6 @@ #ifndef GUARD_RAYQUAZA_SCENE_H #define GUARD_RAYQUAZA_SCENE_H -void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void)); - -enum -{ - RAY_ANIM_DUO_FIGHT_PRE, - RAY_ANIM_DUO_FIGHT, - RAY_ANIM_TAKES_FLIGHT, - RAY_ANIM_DESCENDS, - RAY_ANIM_CHARGES, - RAY_ANIM_CHACES_AWAY, - RAY_ANIM_END -}; +void DoRayquazaScene(u8 animId, bool8 endEarly, void (*callback)(void)); #endif // GUARD_RAYQUAZA_SCENE_H diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h deleted file mode 100644 index ee7397320..000000000 --- a/include/rom_8011DC0.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef GUARD_rom_8011DC0_H -#define GUARD_rom_8011DC0_H - -#endif //GUARD_rom_8011DC0_H diff --git a/src/contest_painting.c b/src/contest_painting.c index 5dd4a70a5..f4d0ac6bf 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -384,7 +384,7 @@ static void InitContestMonPixels(u16 species, u8 whichSprite) } } -#ifdef NONMATCHING +//#ifdef NONMATCHING // functionally equivalent. static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64]) { @@ -399,23 +399,22 @@ static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels) { for (pixelX = 0; pixelX < 8; pixelX++) { - int offset = 32 * (8 * tileY + tileX) + (pixelY * 4 + pixelX / 2); - colorIndex = spriteGfx[offset]; + colorIndex = spriteGfx[(((tileY * 8) + tileX) * 32) + (pixelY << 2) + (pixelX >> 1)]; if (pixelX & 1) colorIndex >>= 4; else colorIndex &= 0xF; if (colorIndex == 0) // transparent pixel - (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = 0x8000; + (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = 0x8000; else - (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = palette[colorIndex]; + (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = palette[colorIndex]; } } } } } -#else +/*#else NAKED static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64]) { @@ -517,7 +516,7 @@ _081303F8:\n\ pop {r0}\n\ bx r0"); } -#endif +#endif*/ #define VRAM_PICTURE_DATA(x, y) (((u16 *)(BG_SCREEN_ADDR(12)))[(y) * 32 + (x)]) diff --git a/src/data/graphics/rayquaza_scene.h b/src/data/graphics/rayquaza_scene.h index d0269980c..508b83f1a 100644 --- a/src/data/graphics/rayquaza_scene.h +++ b/src/data/graphics/rayquaza_scene.h @@ -1,73 +1,62 @@ -const u32 gRaySceneGroudon_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/groudon.4bpp.lz"); -const u32 gRaySceneGroudon2_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/groudon_shoulder.4bpp.lz"); -const u32 gRaySceneGroudon3_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/groudon_claw.4bpp.lz"); +// Scene 1 (RAY_ANIM_DUO_FIGHT / RAY_ANIM_DUO_FIGHT_PRE) +const u32 gRaySceneGroudon_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/groudon.4bpp.lz"); +const u32 gRaySceneGroudonShoulder_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/groudon_shoulder.4bpp.lz"); +const u32 gRaySceneGroudonClaw_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/groudon_claw.4bpp.lz"); +const u32 gRaySceneKyogre_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/kyogre.4bpp.lz"); +const u32 gRaySceneKyogre2_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/kyogre_shoulder.4bpp.lz"); +const u32 gRaySceneKyogre3_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/kyogre_fin.4bpp.lz"); +const u32 gRaySceneGroudon_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/groudon.gbapal.lz"); +const u32 gRaySceneKyogre_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/kyogre.gbapal.lz"); +const u32 gRaySceneClouds_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/clouds.4bpp.lz"); +const u32 gRaySceneClouds_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/clouds.gbapal.lz"); // pal 1 clouds, pal 2 rain +const u32 gRaySceneClouds1_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/clouds1.bin.lz"); +const u32 gRaySceneClouds2_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/clouds2.bin.lz"); +const u32 gRaySceneClouds3_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_1/clouds3.bin.lz"); -const u32 gRaySceneKyogre_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/kyogre.4bpp.lz"); -const u32 gRaySceneKyogre2_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/kyogre_shoulder.4bpp.lz"); -const u32 gRaySceneKyogre3_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/kyogre_fin.4bpp.lz"); +// Scene 2 (RAY_ANIM_TAKES_FLIGHT) +const u32 gRaySceneSmoke_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_2/smoke.4bpp.lz"); +const u32 gRaySceneSmoke_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_2/smoke.gbapal.lz"); +const u32 gRaySceneRayquaza_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_2/rayquaza.8bpp.lz"); +const u32 gRaySceneRayquaza_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_2/rayquaza.gbapal.lz"); +const u32 gRaySceneRayquaza_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_2/rayquaza.bin.lz"); +const u32 gRaySceneOvercast_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_2/bg.4bpp.lz"); // uses pal 2 of gRaySceneRayquaza_Pal +const u32 gRaySceneOvercast_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_2/bg.bin.lz"); -const u32 gRaySceneGroudon_Pal[] = INCBIN_U32("graphics/rayquaza_scene/groudon.gbapal.lz"); -const u32 gRaySceneKyogre_Pal[] = INCBIN_U32("graphics/rayquaza_scene/kyogre.gbapal.lz"); +// Scene 3 (RAY_ANIM_DESCENDS) +const u32 gRaySceneRayquazaFly1_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_3/rayquaza.4bpp.lz"); +// for some reason there are an extra 0xC bytes at the end of the original 4bpp, so in order to produce the correct lz, +// we have to cat the bytes at the end with a make rule. not sure why those bytes are there, it may have been a bug in Game Freak's software. +const u32 gRaySceneRayquazaTail_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_3/rayquaza_tail_fix.4bpp.lz"); +const u32 gRaySceneOvercast2_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_3/bg.4bpp.lz"); +const u32 gRaySceneRayquazaLight_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_3/light.4bpp.lz"); // uses pal 2 of gRaySceneOvercast2_Pal +const u32 gRaySceneOvercast2_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_3/bg.gbapal.lz"); +const u32 gRaySceneOvercast2_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_3/bg.bin.lz"); +const u32 gRaySceneRayquazaLight_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_3/light.bin.lz"); -const u32 gRaySceneClouds_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/clouds.4bpp.lz"); -const u32 gRaySceneClouds_Pal[] = INCBIN_U32("graphics/rayquaza_scene/clouds.gbapal.lz"); // pal 1 clouds, pal 2 rain -const u32 gRaySceneClouds1_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/clouds1.bin.lz"); -const u32 gRaySceneClouds2_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/clouds2.bin.lz"); -const u32 gRaySceneClouds3_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/clouds3.bin.lz"); +// Scene 4 (RAY_ANIM_CHARGES) +const u32 gRaySceneChaseBg_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_4/bg.4bpp.lz"); +const u32 gRaySceneChaseBg_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_4/bg.bin.lz"); +const u32 gRaySceneChaseStreaks_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_4/streaks.4bpp.lz"); +const u32 gRaySceneChaseStreaks_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_4/streaks.bin.lz"); +const u32 gRaySceneRayquazaChase_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_4/rayquaza.4bpp.lz"); +const u32 gRayChaseRayquazaChase_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_4/rayquaza.bin.lz"); +const u32 gRayChaseRayquazaChase2_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_4/rayquaza2.bin.lz"); +const u32 gRaySceneChase_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_4/bg.gbapal.lz"); -const u32 gRaySceneSmoke_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/smoke.4bpp.lz"); -const u32 gRaySceneSmoke_Pal[] = INCBIN_U32("graphics/rayquaza_scene/smoke.gbapal.lz"); - -const u32 gRaySceneRayquaza_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza.8bpp.lz"); -const u32 gRaySceneRayquaza_Pal[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza.gbapal.lz"); -const u32 gRaySceneRayquaza_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza.bin.lz"); - -const u32 gRaySceneOvercast_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/overcast.4bpp.lz"); // uses pal 2 of gRaySceneRayquaza_Pal -const u32 gRaySceneOvercast_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/overcast.bin.lz"); - -const u32 gRaySceneRayquazaFly1_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza_fly1.4bpp.lz"); -const u32 gRaySceneRayquazaTail_Gfx[] = INCBIN_U32( "graphics/rayquaza_scene/rayquaza_tail_fix.4bpp.lz"); // for some reason there are an extra 0xC bytes at the end of the original 4bpp, so in order to produce the correct lz, we have to cat the bytes at the end with a make rule. not sure why those bytes are there, it may have been a bug in Game Freak's software. - -const u32 gRaySceneOvercast2_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/overcast2.4bpp.lz"); - -const u32 gRaySceneRayquazaLight_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza_light.4bpp.lz"); // uses pal 2 of gRaySceneOvercast2_Pal - -const u32 gRaySceneOvercast2_Pal[] = INCBIN_U32("graphics/rayquaza_scene/overcast2.gbapal.lz"); -const u32 gRaySceneOvercast2_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/overcast2.bin.lz"); - -const u32 gRaySceneRayquazaLight_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza_light.bin.lz"); - -const u32 gRaySceneChaseBg_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/chase_bg.4bpp.lz"); -const u32 gRaySceneChaseBg_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/chase_bg.bin.lz"); - -const u32 gRaySceneChaseStreaks_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/chase_streaks.4bpp.lz"); -const u32 gRaySceneChaseStreaks_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/chase_streaks.bin.lz"); - -const u32 gRaySceneRayquazaChase_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza_chase.4bpp.lz"); -const u32 gRayChaseRayquazaChase_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza_chase.bin.lz"); -const u32 gRayChaseRayquazaChase2_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza_chase2.bin.lz"); - -const u32 gRaySceneChase_Pal[] = INCBIN_U32("graphics/rayquaza_scene/chase.gbapal.lz"); - -const u32 gRaySceneGroudonLeft_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/groudon_left.4bpp.lz"); -const u32 gRaySceneGroudonTail_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/groudon_tail.4bpp.lz"); - -const u32 gRaySceneKyogreRight_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/kyogre_right.4bpp.lz"); - -const u32 gRaySceneRayquazaHover_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza_hover.4bpp.lz"); -const u32 gRaySceneRayquazaFlyIn_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza_flyin.4bpp.lz"); - -const u32 gRaySceneSplash_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/splash.4bpp.lz"); - -const u32 gRaySceneGroudonLeft_Pal[] = INCBIN_U32("graphics/rayquaza_scene/groudon_left.gbapal.lz"); -const u32 gRaySceneKyogreRight_Pal[] = INCBIN_U32("graphics/rayquaza_scene/kyogre_right.gbapal.lz"); -const u32 gRaySceneRayquazaHover_Pal[] = INCBIN_U32("graphics/rayquaza_scene/rayquaza_hover.gbapal.lz"); - -const u32 gRaySceneSplash_Pal[] = INCBIN_U32("graphics/rayquaza_scene/splash.gbapal.lz"); - -const u32 gRaySceneHushBg_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/hush_bg.4bpp.lz"); -const u32 gRaySceneHushRing_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/hush_ring.8bpp.lz"); -const u32 gRaySceneHushBg_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/hush_bg.bin.lz"); -const u32 gRaySceneHushRing_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/hush_ring.bin.lz"); -const u32 gRaySceneHushRing_Map[] = INCBIN_U32("graphics/rayquaza_scene/hush_ring_map.bin.lz"); -const u32 gRaySceneHushBg_Pal[] = INCBIN_U32("graphics/rayquaza_scene/hush_bg.gbapal.lz"); +// Scene 5 (RAY_ANIM_CHASES_AWAY) +const u32 gRaySceneGroudonLeft_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/groudon.4bpp.lz"); +const u32 gRaySceneGroudonTail_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/groudon_tail.4bpp.lz"); +const u32 gRaySceneKyogreRight_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/kyogre.4bpp.lz"); +const u32 gRaySceneRayquazaHover_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/rayquaza.4bpp.lz"); +const u32 gRaySceneRayquazaFlyIn_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/rayquaza_tail.4bpp.lz"); +const u32 gRaySceneSplash_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/kyogre_splash.4bpp.lz"); +const u32 gRaySceneGroudonLeft_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/groudon.gbapal.lz"); +const u32 gRaySceneKyogreRight_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/kyogre.gbapal.lz"); +const u32 gRaySceneRayquazaHover_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/rayquaza.gbapal.lz"); +const u32 gRaySceneSplash_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/kyogre_splash.gbapal.lz"); +const u32 gRaySceneHushBg_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/bg.4bpp.lz"); +const u32 gRaySceneHushRing_Gfx[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/ring.8bpp.lz"); +const u32 gRaySceneHushBg_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/bg.bin.lz"); +const u32 gRaySceneHushRing_Tilemap[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/ring.bin.lz"); +const u32 gRaySceneHushRing_Map[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/ring_map.bin.lz"); +const u32 gRaySceneHushBg_Pal[] = INCBIN_U32("graphics/rayquaza_scene/scene_5/bg.gbapal.lz"); diff --git a/src/field_specials.c b/src/field_specials.c index 7c6ef37d7..ebb36cbea 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3888,12 +3888,14 @@ static void Task_LinkRetireStatusWithBattleTowerPartner(u8 taskId) void Script_DoRayquazaScene(void) { - if (gSpecialVar_0x8004 == 0) + if (!gSpecialVar_0x8004) { + // Groudon/Kyogre fight scene DoRayquazaScene(0, TRUE, CB2_ReturnToFieldContinueScriptPlayMapMusic); } else { + // Rayquaza arrives scene DoRayquazaScene(1, FALSE, CB2_ReturnToFieldContinueScriptPlayMapMusic); } } diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 986a2d3a2..7490668d2 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -18,84 +18,129 @@ #include "constants/rgb.h" #include "random.h" -struct RaySceneStruct +/* + This file handles the cutscene showing Rayquaza arriving to settle the Groudon/Kyogre fight + It consists of 5 separate scenes: + - Groudon and Kyogre facing one another in a thunderstorm (RAY_ANIM_DUO_FIGHT) + - Over the shoulder of Rayquaza flying (RAY_ANIM_TAKES_FLIGHT) + - Rayquaza emerging from a spotlight down through the clouds (RAY_ANIM_DESCENDS) + - A close-up of Rayquaza flying down (RAY_ANIM_CHARGES) + - Rayquaza floating above Groudon/Kyogre as they back away offscreen (RAY_ANIM_CHASES_AWAY) + + Notably this is re-used to show the Groudon/Kyogre fight when the player first arrives + in Sootopolis during the conflict, which uses a shortened version of the first scene + This is indicated by the endEarly argument to DoRayquazaScene +*/ + +enum { - MainCallback callback; - u8 tilemapBuffers[4][0x800]; - u16 field_2004; // set but unused - u8 animId; - bool8 onlyOneAnim; - s16 field_2008; - s16 field_200A; - u8 unusedFields[12]; // completely unused + RAY_ANIM_DUO_FIGHT_PRE, + RAY_ANIM_DUO_FIGHT, + RAY_ANIM_TAKES_FLIGHT, + RAY_ANIM_DESCENDS, + RAY_ANIM_CHARGES, + RAY_ANIM_CHASES_AWAY, + RAY_ANIM_END }; -// EWRAM vars -static EWRAM_DATA struct RaySceneStruct *sRayScene = NULL; +#define GFXTAG_GROUDON 30505 +#define GFXTAG_GROUDON_SHOULDER 30506 +#define GFXTAG_GROUDON_CLAW 30507 +#define GFXTAG_KYOGRE1 30508 +#define GFXTAG_KYOGRE2 30509 +#define GFXTAG_KYOGRE3 30510 +#define GFXTAG_SMOKE 30555 +#define GFXTAG_GROUDON_SIDE 30565 + +#define PALTAG_GROUDON 30505 +#define PALTAG_KYOGRE 30508 +#define PALTAG_SMOKE 30555 + +struct RayquazaScene +{ + MainCallback exitCallback; + u8 tilemapBuffers[4][BG_SCREEN_SIZE]; + u16 unk; // never read + u8 animId; + bool8 endEarly; + s16 field_2008; + s16 field_200A; + u8 unused[12]; +}; + +static EWRAM_DATA struct RayquazaScene *sRayScene = NULL; -// this file's functions -static void Task_DuoFightAnim(u8 taskId); -static void Task_RayTakesFlightAnim(u8 taskId); -static void Task_RayDescendsAnim(u8 taskId); -static void Task_RayChargesAnim(u8 taskId); -static void Task_RayChasesAwayAnim(u8 taskId); -static void Task_HandleRayDescends(u8 taskId); -static void Task_RayDescendsEnd(u8 taskId); -static void Task_HandleRayCharges(u8 taskId); -static void sub_81D8AD8(u8 taskId); -static void sub_81D8B2C(u8 taskId); -static void Task_RayChargesEnd(u8 taskId); -static void Task_HandleRayChasesAway(u8 taskId); -static void sub_81D8FB0(u8 taskId); -static void sub_81D7228(u8 taskId); -static void Task_HandleDuoFight(u8 taskId); -static void sub_81D752C(u8 taskId); -static void Task_DuoFightEnd(u8 taskId); -static void Task_HandleRayTakesFlight(u8 taskId); -static void sub_81D81A4(u8 taskId); -static void Task_RayTakesFlightEnd(u8 taskId); -static void sub_81D94D4(u8 taskId); -static void sub_81D93D8(u8 taskId); -static void Task_RayChasesAwayEnd(u8 taskId); -static void sub_81D90A8(u8 taskId); -static void sub_81D98B4(u8 taskId); -static void Task_EndAfterFadeScreen(u8 taskId); static void CB2_InitRayquazaScene(void); static void CB2_RayquazaScene(void); +static void Task_EndAfterFadeScreen(u8 taskId); + +// RAY_ANIM_DUO_FIGHT_PRE / RAY_ANIM_DUO_FIGHT +static void Task_DuoFightAnim(u8 taskId); +static void Task_HandleDuoFight(u8 taskId); +static void Task_DuoFightEnd(u8 taskId); +static void DuoFightEnd(u8 taskId, s8 palDelay); +static void sub_81D7228(u8 taskId); +static void sub_81D752C(u8 taskId); static void sub_81D750C(void); static void sub_81D7438(void); static void sub_81D7480(void); static void sub_81D74C8(void); -static void sub_81D8BB4(void); static void sub_81D6A20(struct Sprite *sprite); static void sub_81D6D20(struct Sprite *sprite); static void sub_81D7860(struct Sprite *sprite); static void sub_81D7D14(struct Sprite *sprite); static void sub_81D7700(struct Sprite *sprite); static void sub_81D7A60(struct Sprite *sprite); -static void sub_81D874C(struct Sprite *sprite); -static void sub_81D9338(struct Sprite *sprite); -static void sub_81D9420(struct Sprite *sprite); -static void sub_81D8260(struct Sprite *sprite); -static void sub_81D961C(struct Sprite *sprite); -static void sub_81D97E0(struct Sprite *sprite); -static void sub_81D9528(struct Sprite *sprite); static u8 sub_81D7664(void); static u8 sub_81D78BC(void); + +// RAY_ANIM_TAKES_FLIGHT +static void Task_RayTakesFlightAnim(u8 taskId); +static void Task_HandleRayTakesFlight(u8 taskId); +static void Task_RayTakesFlightEnd(u8 taskId); +static void sub_81D81A4(u8 taskId); +static void sub_81D8260(struct Sprite *sprite); + +// RAY_ANIM_DESCENDS +static void Task_RayDescendsAnim(u8 taskId); +static void Task_HandleRayDescends(u8 taskId); +static void Task_RayDescendsEnd(u8 taskId); +static void sub_81D874C(struct Sprite *sprite); static u8 sub_81D86CC(void); -static void DuoFightEnd(u8 taskId, s8 palDelay); + +// RAY_ANIM_CHARGES +static void Task_RayChargesAnim(u8 taskId); +static void Task_HandleRayCharges(u8 taskId); +static void Task_RayChargesEnd(u8 taskId); +static void sub_81D8AD8(u8 taskId); +static void sub_81D8B2C(u8 taskId); +static void sub_81D8BB4(void); + +// RAY_ANIM_CHASES_AWAY +static void Task_RayChasesAwayAnim(u8 taskId); +static void Task_HandleRayChasesAway(u8 taskId); +static void Task_RayChasesAwayEnd(u8 taskId); +static void sub_81D8FB0(u8 taskId); +static void sub_81D94D4(u8 taskId); +static void sub_81D93D8(u8 taskId); +static void sub_81D90A8(u8 taskId); +static void sub_81D98B4(u8 taskId); +static void sub_81D9420(struct Sprite *sprite); +static void sub_81D97E0(struct Sprite *sprite); +static void sub_81D9528(struct Sprite *sprite); +static void sub_81D961C(struct Sprite *sprite); +static void sub_81D9338(struct Sprite *sprite); static void sub_81D9868(struct Sprite *sprite, u8 animNum, s16 x, s16 y); -// const rom data static const TaskFunc sTasksForAnimations[] = { [RAY_ANIM_DUO_FIGHT_PRE] = Task_DuoFightAnim, - [RAY_ANIM_DUO_FIGHT] = Task_DuoFightAnim, - [RAY_ANIM_TAKES_FLIGHT] = Task_RayTakesFlightAnim, - [RAY_ANIM_DESCENDS] = Task_RayDescendsAnim, - [RAY_ANIM_CHARGES] = Task_RayChargesAnim, - [RAY_ANIM_CHACES_AWAY] = Task_RayChasesAwayAnim, - [RAY_ANIM_END] = Task_EndAfterFadeScreen, + [RAY_ANIM_DUO_FIGHT] = Task_DuoFightAnim, + [RAY_ANIM_TAKES_FLIGHT] = Task_RayTakesFlightAnim, + [RAY_ANIM_DESCENDS] = Task_RayDescendsAnim, + [RAY_ANIM_CHARGES] = Task_RayChargesAnim, + [RAY_ANIM_CHASES_AWAY] = Task_RayChasesAwayAnim, + [RAY_ANIM_END] = Task_EndAfterFadeScreen, }; static const struct OamData sOamData_862A6BC = @@ -260,8 +305,8 @@ static const union AnimCmd *const sSpriteAnimTable_862A724[] = static const struct SpriteTemplate sUnknown_0862A72C = { - .tileTag = 30505, - .paletteTag = 30505, + .tileTag = GFXTAG_GROUDON, + .paletteTag = PALTAG_GROUDON, .oam = &sOamData_862A6BC, .anims = sSpriteAnimTable_862A724, .images = NULL, @@ -282,8 +327,8 @@ static const union AnimCmd *const sSpriteAnimTable_862A74C[] = static const struct SpriteTemplate sUnknown_0862A750 = { - .tileTag = 30506, - .paletteTag = 30505, + .tileTag = GFXTAG_GROUDON_SHOULDER, + .paletteTag = PALTAG_GROUDON, .oam = &sOamData_862A6C4, .anims = sSpriteAnimTable_862A74C, .images = NULL, @@ -304,8 +349,8 @@ static const union AnimCmd *const sSpriteAnimTable_862A770[] = static const struct SpriteTemplate sUnknown_0862A774 = { - .tileTag = 30507, - .paletteTag = 30505, + .tileTag = GFXTAG_GROUDON_CLAW, + .paletteTag = PALTAG_GROUDON, .oam = &sOamData_862A6CC, .anims = sSpriteAnimTable_862A770, .images = NULL, @@ -391,8 +436,8 @@ static const union AnimCmd *const sSpriteAnimTable_862A7F8[] = static const struct SpriteTemplate sUnknown_0862A81C = { - .tileTag = 30508, - .paletteTag = 30508, + .tileTag = GFXTAG_KYOGRE1, + .paletteTag = PALTAG_KYOGRE, .oam = &sOamData_862A6D4, .anims = sSpriteAnimTable_862A7F8, .images = NULL, @@ -416,8 +461,8 @@ static const union AnimCmd *const sSpriteAnimTable_862A848[] = static const struct SpriteTemplate sUnknown_0862A84C = { - .tileTag = 30509, - .paletteTag = 30508, + .tileTag = GFXTAG_KYOGRE2, + .paletteTag = PALTAG_KYOGRE, .oam = &sOamData_862A6DC, .anims = sSpriteAnimTable_862A848, .images = NULL, @@ -427,8 +472,8 @@ static const struct SpriteTemplate sUnknown_0862A84C = static const struct SpriteTemplate sUnknown_0862A864 = { - .tileTag = 30510, - .paletteTag = 30508, + .tileTag = GFXTAG_KYOGRE3, + .paletteTag = PALTAG_KYOGRE, .oam = &sOamData_862A6C4, .anims = sSpriteAnimTable_862A74C, .images = NULL, @@ -500,18 +545,18 @@ static const union AnimCmd *const sSpriteAnimTable_862A8BC[] = static const struct CompressedSpriteSheet sUnknown_0862A8C4 = { - gRaySceneGroudon_Gfx, 0x3000, 30505 + gRaySceneGroudon_Gfx, 0x3000, GFXTAG_GROUDON }; static const struct CompressedSpritePalette sUnknown_0862A8CC = { - gRaySceneGroudon_Pal, 30505 + gRaySceneGroudon_Pal, PALTAG_GROUDON }; static const struct SpriteTemplate sUnknown_0862A8D4 = { - .tileTag = 30505, - .paletteTag = 30505, + .tileTag = GFXTAG_GROUDON, + .paletteTag = PALTAG_GROUDON, .oam = &sOamData_862A6BC, .anims = sSpriteAnimTable_862A8BC, .images = NULL, @@ -532,13 +577,13 @@ static const union AnimCmd *const sSpriteAnimTable_862A8F4[] = static const struct CompressedSpriteSheet sUnknown_0862A8F8 = { - gRaySceneGroudon2_Gfx, 0x200, 30506 + gRaySceneGroudonShoulder_Gfx, 0x200, GFXTAG_GROUDON_SHOULDER }; static const struct SpriteTemplate sUnknown_0862A900 = { - .tileTag = 30506, - .paletteTag = 30505, + .tileTag = GFXTAG_GROUDON_SHOULDER, + .paletteTag = PALTAG_GROUDON, .oam = &sOamData_862A6C4, .anims = sSpriteAnimTable_862A8F4, .images = NULL, @@ -559,13 +604,13 @@ static const union AnimCmd *const sSpriteAnimTable_862A920[] = static const struct CompressedSpriteSheet sUnknown_0862A924 = { - gRaySceneGroudon3_Gfx, 0x400, 30507 + gRaySceneGroudonClaw_Gfx, 0x400, GFXTAG_GROUDON_CLAW }; static const struct SpriteTemplate sUnknown_0862A92C = { - .tileTag = 30507, - .paletteTag = 30505, + .tileTag = GFXTAG_GROUDON_CLAW, + .paletteTag = PALTAG_GROUDON, .oam = &sOamData_862A6CC, .anims = sSpriteAnimTable_862A920, .images = NULL, @@ -651,18 +696,18 @@ static const union AnimCmd *const sSpriteAnimTable_862A9B0[] = static const struct CompressedSpriteSheet sUnknown_0862A9D4 = { - gRaySceneKyogre_Gfx, 0xF00, 30508 + gRaySceneKyogre_Gfx, 0xF00, GFXTAG_KYOGRE1 }; static const struct CompressedSpritePalette sUnknown_0862A9DC = { - gRaySceneKyogre_Pal, 30508 + gRaySceneKyogre_Pal, PALTAG_KYOGRE }; static const struct SpriteTemplate sUnknown_0862A9E4 = { - .tileTag = 30508, - .paletteTag = 30508, + .tileTag = GFXTAG_KYOGRE1, + .paletteTag = PALTAG_KYOGRE, .oam = &sOamData_862A6D4, .anims = sSpriteAnimTable_862A9B0, .images = NULL, @@ -686,13 +731,13 @@ static const union AnimCmd *const sSpriteAnimTable_862AA10[] = static const struct CompressedSpriteSheet sUnknown_0862AA14 = { - gRaySceneKyogre2_Gfx, 0xC0, 30509 + gRaySceneKyogre2_Gfx, 0xC0, GFXTAG_KYOGRE2 }; static const struct SpriteTemplate sUnknown_0862AA1C = { - .tileTag = 30509, - .paletteTag = 30508, + .tileTag = GFXTAG_KYOGRE2, + .paletteTag = PALTAG_KYOGRE, .oam = &sOamData_862A6DC, .anims = sSpriteAnimTable_862AA10, .images = NULL, @@ -702,13 +747,13 @@ static const struct SpriteTemplate sUnknown_0862AA1C = static const struct CompressedSpriteSheet sUnknown_0862AA34 = { - gRaySceneKyogre3_Gfx, 0x200, 30510 + gRaySceneKyogre3_Gfx, 0x200, GFXTAG_KYOGRE3 }; static const struct SpriteTemplate sUnknown_0862AA3C = { - .tileTag = 30510, - .paletteTag = 30508, + .tileTag = GFXTAG_KYOGRE3, + .paletteTag = PALTAG_KYOGRE, .oam = &sOamData_862A6C4, .anims = sSpriteAnimTable_862A8F4, .images = NULL, @@ -773,18 +818,18 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_862AA8C[] = static const struct CompressedSpriteSheet sUnknown_0862AA90 = { - gRaySceneSmoke_Gfx, 0x100, 30555 + gRaySceneSmoke_Gfx, 0x100, GFXTAG_SMOKE }; static const struct CompressedSpritePalette sUnknown_0862AA98 = { - gRaySceneSmoke_Pal, 30555 + gRaySceneSmoke_Pal, PALTAG_SMOKE }; static const struct SpriteTemplate sUnknown_0862AAA0 = { - .tileTag = 30555, - .paletteTag = 30555, + .tileTag = GFXTAG_SMOKE, + .paletteTag = PALTAG_SMOKE, .oam = &sOamData_862A6D4, .anims = sSpriteAnimTable_862AA68, .images = NULL, @@ -1086,7 +1131,7 @@ static const union AnimCmd *const sSpriteAnimTable_862AC24[] = static const struct CompressedSpriteSheet sUnknown_0862AC28 = { - gRaySceneGroudonLeft_Gfx, 0x1800, 30565 + gRaySceneGroudonLeft_Gfx, 0x1800, GFXTAG_GROUDON_SIDE }; static const struct CompressedSpriteSheet sUnknown_0862AC30 = @@ -1116,7 +1161,7 @@ static const struct CompressedSpriteSheet sUnknown_0862AC50 = static const struct CompressedSpritePalette sUnknown_0862AC58 = { - gRaySceneGroudonLeft_Pal, 30565 + gRaySceneGroudonLeft_Pal, GFXTAG_GROUDON_SIDE }; static const struct CompressedSpritePalette sUnknown_0862AC60 = @@ -1136,7 +1181,7 @@ static const struct CompressedSpritePalette sUnknown_0862AC70 = static const struct SpriteTemplate sUnknown_0862AC78 = { - .tileTag = 30565, + .tileTag = GFXTAG_GROUDON_SIDE, .paletteTag = 30565, .oam = &sOamData_862A6BC, .anims = sSpriteAnimTable_862AB70, @@ -1232,12 +1277,12 @@ static const struct BgTemplate sUnknown_0862AD08[] = }; // code -void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void)) +void DoRayquazaScene(u8 animId, bool8 endEarly, void (*exitCallback)(void)) { sRayScene = AllocZeroed(sizeof(*sRayScene)); sRayScene->animId = animId; - sRayScene->callback = callback; - sRayScene->onlyOneAnim = onlyOneAnim; + sRayScene->exitCallback = exitCallback; + sRayScene->endEarly = endEarly; SetMainCallback2(CB2_InitRayquazaScene); } @@ -1277,7 +1322,7 @@ static void Task_EndAfterFadeScreen(u8 taskId) { ResetSpriteData(); FreeAllSpritePalettes(); - SetMainCallback2(sRayScene->callback); + SetMainCallback2(sRayScene->exitCallback); Free(sRayScene); DestroyTask(taskId); } @@ -1287,14 +1332,14 @@ static void Task_SetNextAnim(u8 taskId) { if (!gPaletteFade.active) { - if (sRayScene->onlyOneAnim == TRUE) + if (sRayScene->endEarly == TRUE) { gTasks[taskId].func = Task_EndAfterFadeScreen; } else { sRayScene->animId++; - sRayScene->field_2004 = 0; + sRayScene->unk = 0; gTasks[taskId].func = sTasksForAnimations[sRayScene->animId]; } } @@ -2405,6 +2450,7 @@ static void Task_HandleRayCharges(u8 taskId) } } +// These two, BG scrolling for Rayquaza charge static void sub_81D8AD8(u8 taskId) { s16 *data = gTasks[taskId].data; diff --git a/src/start_menu.c b/src/start_menu.c index 68a316185..f470a58b2 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -43,7 +43,6 @@ #include "trainer_card.h" #include "window.h" #include "constants/songs.h" -#include "rom_8011DC0.h" #include "union_room.h" #include "constants/rgb.h" diff --git a/src/trade.c b/src/trade.c index 17967733a..49e7637a1 100644 --- a/src/trade.c +++ b/src/trade.c @@ -30,7 +30,6 @@ #include "pokemon_summary_screen.h" #include "pokemon_storage_system.h" #include "random.h" -#include "rom_8011DC0.h" #include "save.h" #include "script.h" #include "sound.h"