diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/field_door.c | 512 |
1 files changed, 231 insertions, 281 deletions
diff --git a/src/field_door.c b/src/field_door.c index cbf7a79ea..e17ef0d5a 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -4,6 +4,10 @@ #include "fieldmap.h" #include "metatile_behavior.h" #include "constants/songs.h" +#include "constants/metatile_labels.h" + +#define DOOR_SOUND_NORMAL 0 +#define DOOR_SOUND_SLIDING 1 struct DoorAnimFrame { @@ -14,7 +18,7 @@ struct DoorAnimFrame struct DoorGraphics { u16 metatileId; - s8 sliding; + u8 sound; u8 size; const u8 * tiles; const u8 * palettes; @@ -26,204 +30,148 @@ static void SetDoorFramePalettes(const struct DoorGraphics * gfx, int x, int y, static void BufferDoorFrameTilesWithPalettes(u16 *a0, u16 a1, const u8 *a2); static bool32 PlayDoorAnimationFrame(const struct DoorGraphics * gfx, const struct DoorAnimFrame * frames, s16 *data); static const struct DoorAnimFrame * SeekToEndOfDoorAnim(const struct DoorAnimFrame * frames); -static s8 GetDoorOpenType(const struct DoorGraphics * gfx, int x, int y); - -static const u8 gUnknown_8353088[] = INCBIN_U8("graphics/door_anims/frame_8353088_1.4bpp", "graphics/door_anims/frame_8353088_2.4bpp", "graphics/door_anims/frame_8353088_3.4bpp"); -static const u8 gUnknown_8353208[32] = {}; -static const u8 gUnknown_8353228[] = INCBIN_U8("graphics/door_anims/frame_8353228_1.4bpp", "graphics/door_anims/frame_8353228_2.4bpp", "graphics/door_anims/frame_8353228_3.4bpp"); -static const u8 gUnknown_83533A8[32] = {}; -static const u8 gUnknown_83533C8[] = INCBIN_U8("graphics/door_anims/frame_83533C8_1.4bpp", "graphics/door_anims/frame_83533C8_2.4bpp", "graphics/door_anims/frame_83533C8_3.4bpp"); -static const u8 gUnknown_8353548[32] = {}; -static const u8 gUnknown_8353568[] = INCBIN_U8("graphics/door_anims/frame_8353568_1.4bpp", "graphics/door_anims/frame_8353568_2.4bpp", "graphics/door_anims/frame_8353568_3.4bpp"); -static const u8 gUnknown_83536E8[32] = {}; -static const u8 gUnknown_8353708[] = INCBIN_U8("graphics/door_anims/frame_8353708_1.4bpp", "graphics/door_anims/frame_8353708_2.4bpp", "graphics/door_anims/frame_8353708_3.4bpp"); -static const u8 gUnknown_8353888[32] = {}; -static const u8 gUnknown_83538A8[] = INCBIN_U8("graphics/door_anims/frame_83538A8_1.4bpp", "graphics/door_anims/frame_83538A8_2.4bpp", "graphics/door_anims/frame_83538A8_3.4bpp"); -static const u8 gUnknown_8353A28[32] = {}; -static const u8 gUnknown_8353A48[] = INCBIN_U8("graphics/door_anims/frame_8353A48_1.4bpp", "graphics/door_anims/frame_8353A48_2.4bpp", "graphics/door_anims/frame_8353A48_3.4bpp"); -static const u8 gUnknown_8353BC8[32] = {}; -static const u8 gUnknown_8353BE8[] = INCBIN_U8("graphics/door_anims/frame_8353BE8_1.4bpp", "graphics/door_anims/frame_8353BE8_2.4bpp", "graphics/door_anims/frame_8353BE8_3.4bpp"); -static const u8 gUnknown_8353D68[32] = {}; -static const u8 gUnknown_8353D88[] = INCBIN_U8("graphics/door_anims/frame_8353D88_1.4bpp", "graphics/door_anims/frame_8353D88_2.4bpp", "graphics/door_anims/frame_8353D88_3.4bpp"); -static const u8 gUnknown_8353F08[32] = {}; -static const u8 gUnknown_8353F28[] = INCBIN_U8("graphics/door_anims/frame_8353F28_1.4bpp", "graphics/door_anims/frame_8353F28_2.4bpp", "graphics/door_anims/frame_8353F28_3.4bpp"); -static const u8 gUnknown_83540A8[32] = {}; -static const u8 gUnknown_83540C8[] = INCBIN_U8("graphics/door_anims/frame_83540C8_1.4bpp", "graphics/door_anims/frame_83540C8_2.4bpp", "graphics/door_anims/frame_83540C8_3.4bpp"); -static const u8 gUnknown_8354248[32] = {}; -static const u8 gUnknown_8354268[] = INCBIN_U8("graphics/door_anims/frame_8354268_1.4bpp", "graphics/door_anims/frame_8354268_2.4bpp", "graphics/door_anims/frame_8354268_3.4bpp"); -static const u8 gUnknown_83543E8[32] = {}; -static const u8 gUnknown_8354408[] = INCBIN_U8("graphics/door_anims/frame_8354408_1.4bpp", "graphics/door_anims/frame_8354408_2.4bpp", "graphics/door_anims/frame_8354408_3.4bpp"); -static const u8 gUnknown_8354588[32] = {}; -static const u8 gUnknown_83545A8[] = INCBIN_U8("graphics/door_anims/frame_83545A8_1.4bpp", "graphics/door_anims/frame_83545A8_2.4bpp", "graphics/door_anims/frame_83545A8_3.4bpp"); -static const u8 gUnknown_8354728[32] = {}; -static const u8 gUnknown_8354748[] = INCBIN_U8("graphics/door_anims/frame_8354748_1.4bpp", "graphics/door_anims/frame_8354748_2.4bpp", "graphics/door_anims/frame_8354748_3.4bpp"); -static const u8 gUnknown_83548C8[32] = {}; -static const u8 gUnknown_83548E8[] = INCBIN_U8("graphics/door_anims/frame_83548E8_1.4bpp", "graphics/door_anims/frame_83548E8_2.4bpp", "graphics/door_anims/frame_83548E8_3.4bpp"); -static const u8 gUnknown_8354A68[32] = {}; -static const u8 gUnknown_8354A88[] = INCBIN_U8("graphics/door_anims/frame_8354A88_1.4bpp", "graphics/door_anims/frame_8354A88_2.4bpp", "graphics/door_anims/frame_8354A88_3.4bpp"); -static const u8 gUnknown_8354C08[32] = {}; -static const u8 gUnknown_8354C28[] = INCBIN_U8("graphics/door_anims/frame_8354C28_1.4bpp", "graphics/door_anims/frame_8354C28_2.4bpp", "graphics/door_anims/frame_8354C28_3.4bpp"); -static const u8 gUnknown_8354F28[32] = {}; -static const u8 gUnknown_8354F48[] = INCBIN_U8("graphics/door_anims/frame_8354F48_1.4bpp", "graphics/door_anims/frame_8354F48_2.4bpp", "graphics/door_anims/frame_8354F48_3.4bpp"); -static const u8 gUnknown_8355248[32] = {}; -static const u8 gUnknown_8355268[] = INCBIN_U8("graphics/door_anims/frame_8355268_1.4bpp", "graphics/door_anims/frame_8355268_2.4bpp", "graphics/door_anims/frame_8355268_3.4bpp"); -static const u8 gUnknown_8355568[32] = {}; -static const u8 gUnknown_8355588[] = INCBIN_U8("graphics/door_anims/frame_8355588_1.4bpp", "graphics/door_anims/frame_8355588_2.4bpp", "graphics/door_anims/frame_8355588_3.4bpp"); -static const u8 gUnknown_8355888[32] = {}; -static const u8 gUnknown_83558A8[256] = {}; -static const u8 gUnknown_83559A8[256] = {}; -static const u8 gUnknown_8355AA8[256] = {}; -static const u8 gUnknown_8355BA8[32] = {}; -static const u8 gUnknown_8355BC8[256] = {}; -static const u8 gUnknown_8355CC8[256] = {}; -static const u8 gUnknown_8355DC8[256] = {}; -static const u8 gUnknown_8355EC8[32] = {}; -static const u8 gUnknown_8355EE8[256] = {}; -static const u8 gUnknown_8355FE8[256] = {}; -static const u8 gUnknown_83560E8[256] = {}; -static const u8 gUnknown_83561E8[32] = {}; -static const u8 gUnknown_8356208[256] = {}; -static const u8 gUnknown_8356308[256] = {}; -static const u8 gUnknown_8356408[256] = {}; -static const u8 gUnknown_8356508[32] = {}; -static const u8 gUnknown_8356528[256] = {}; -static const u8 gUnknown_8356628[256] = {}; -static const u8 gUnknown_8356728[256] = {}; -static const u8 gUnknown_8356828[32] = {}; -static const u8 gUnknown_8356848[256] = {}; -static const u8 gUnknown_8356948[256] = {}; -static const u8 gUnknown_8356A48[256] = {}; -static const u8 gUnknown_8356B48[32] = {}; -static const u8 gUnknown_8356B68[256] = {}; -static const u8 gUnknown_8356C68[256] = {}; -static const u8 gUnknown_8356D68[256] = {}; -static const u8 gUnknown_8356E68[32] = {}; -static const u8 gUnknown_8356E88[128] = {}; -static const u8 gUnknown_8356F08[128] = {}; -static const u8 gUnknown_8356F88[128] = {}; -static const u8 gUnknown_8357008[32] = {}; -static const u8 gUnknown_8357028[128] = {}; -static const u8 gUnknown_83570A8[128] = {}; -static const u8 gUnknown_8357128[128] = {}; -static const u8 gUnknown_83571A8[32] = {}; -static const u8 gUnknown_83571C8[128] = {}; -static const u8 gUnknown_8357248[128] = {}; -static const u8 gUnknown_83572C8[128] = {}; -static const u8 gUnknown_8357348[32] = {}; -static const u8 gUnknown_8357368[128] = {}; -static const u8 gUnknown_83573E8[128] = {}; -static const u8 gUnknown_8357468[128] = {}; -static const u8 gUnknown_83574E8[32] = {}; -static const u8 gUnknown_8357508[128] = {}; -static const u8 gUnknown_8357588[128] = {}; -static const u8 gUnknown_8357608[128] = {}; -static const u8 gUnknown_8357688[32] = {}; -static const u8 gUnknown_83576A8[128] = {}; -static const u8 gUnknown_8357728[128] = {}; -static const u8 gUnknown_83577A8[128] = {}; -static const u8 gUnknown_8357828[32] = {}; -static const u8 gUnknown_8357848[128] = {}; -static const u8 gUnknown_83578C8[128] = {}; -static const u8 gUnknown_8357948[128] = {}; -static const u8 gUnknown_83579C8[32] = {}; -static const u8 gUnknown_83579E8[128] = {}; -static const u8 gUnknown_8357A68[128] = {}; -static const u8 gUnknown_8357AE8[128] = {}; -static const u8 gUnknown_8357B68[32] = {}; -static const u8 gUnknown_8357B88[128] = {}; -static const u8 gUnknown_8357C08[128] = {}; -static const u8 gUnknown_8357C88[128] = {}; -static const u8 gUnknown_8357D08[32] = {}; -static const u8 gUnknown_8357D28[128] = {}; -static const u8 gUnknown_8357DA8[128] = {}; -static const u8 gUnknown_8357E28[128] = {}; -static const u8 gUnknown_8357EA8[32] = {}; -static const u8 gUnknown_8357EC8[128] = {}; -static const u8 gUnknown_8357F48[128] = {}; -static const u8 gUnknown_8357FC8[128] = {}; -static const u8 gUnknown_8358048[32] = {}; -static const u8 gUnknown_8358068[128] = {}; -static const u8 gUnknown_83580E8[128] = {}; -static const u8 gUnknown_8358168[128] = {}; -static const u8 gUnknown_83581E8[32] = {}; -static const u8 gUnknown_8358208[128] = {}; -static const u8 gUnknown_8358288[128] = {}; -static const u8 gUnknown_8358308[128] = {}; -static const u8 gUnknown_8358388[32] = {}; -static const u8 gUnknown_83583A8[128] = {}; -static const u8 gUnknown_8358428[128] = {}; -static const u8 gUnknown_83584A8[128] = {}; -static const u8 gUnknown_8358528[32] = {}; -static const u8 gUnknown_8358548[128] = {}; -static const u8 gUnknown_83585C8[128] = {}; -static const u8 gUnknown_8358648[128] = {}; -static const u8 gUnknown_83586C8[32] = {}; -static const u8 gUnknown_83586E8[128] = {}; -static const u8 gUnknown_8358768[128] = {}; -static const u8 gUnknown_83587E8[128] = {}; -static const u8 gUnknown_8358868[32] = {}; -static const u8 gUnknown_8358888[128] = {}; -static const u8 gUnknown_8358908[128] = {}; -static const u8 gUnknown_8358988[128] = {}; -static const u8 gUnknown_8358A08[32] = {}; -static const u8 gUnknown_8358A28[128] = {}; -static const u8 gUnknown_8358AA8[128] = {}; -static const u8 gUnknown_8358B28[128] = {}; -static const u8 gUnknown_8358BA8[32] = {}; -static const u8 gUnknown_8358BC8[128] = {}; -static const u8 gUnknown_8358C48[128] = {}; -static const u8 gUnknown_8358CC8[128] = {}; -static const u8 gUnknown_8358D48[32] = {}; -static const u8 gUnknown_8358D68[128] = {}; -static const u8 gUnknown_8358DE8[128] = {}; -static const u8 gUnknown_8358E68[128] = {}; -static const u8 gUnknown_8358EE8[32] = {}; -static const u8 gUnknown_8358F08[128] = {}; -static const u8 gUnknown_8358F88[128] = {}; -static const u8 gUnknown_8359008[128] = {}; -static const u8 gUnknown_8359088[32] = {}; -static const u8 gUnknown_83590A8[128] = {}; -static const u8 gUnknown_8359128[128] = {}; -static const u8 gUnknown_83591A8[128] = {}; -static const u8 gUnknown_8359228[32] = {}; -static const u8 gUnknown_8359248[128] = {}; -static const u8 gUnknown_83592C8[128] = {}; -static const u8 gUnknown_8359348[128] = {}; -static const u8 gUnknown_83593C8[32] = {}; -static const u8 gUnknown_83593E8[128] = {}; -static const u8 gUnknown_8359468[128] = {}; -static const u8 gUnknown_83594E8[128] = {}; -static const u8 gUnknown_8359568[32] = {}; -static const u8 gUnknown_8359588[] = INCBIN_U8("graphics/door_anims/frame_8359588_1.4bpp", "graphics/door_anims/frame_8359588_2.4bpp"); -static const u8 gUnknown_8359688[256] = {}; -static const u8 gUnknown_8359788[] = INCBIN_U8("graphics/door_anims/frame_8359788_1.4bpp", "graphics/door_anims/frame_8359788_2.4bpp", "graphics/door_anims/frame_8359788_3.4bpp", "graphics/door_anims/frame_8359788_4.4bpp"); -static const u8 gUnknown_8359888[256] = {}; -static const u8 gUnknown_8359988[] = INCBIN_U8("graphics/door_anims/frame_8359988_1.4bpp", "graphics/door_anims/frame_8359988_2.4bpp", "graphics/door_anims/frame_8359988_3.4bpp", "graphics/door_anims/frame_8359988_4.4bpp"); -static const u8 gUnknown_8359A88[256] = {}; -static const u8 gUnknown_8359B88[] = INCBIN_U8("graphics/door_anims/frame_8359B88_1.4bpp", "graphics/door_anims/frame_8359B88_2.4bpp", "graphics/door_anims/frame_8359B88_3.4bpp", "graphics/door_anims/frame_8359B88_4.4bpp"); -static const u8 gUnknown_8359C88[32] = {}; -static const u8 gUnknown_8359CA8[] = INCBIN_U8("graphics/door_anims/frame_8359CA8_1.4bpp", "graphics/door_anims/frame_8359CA8_2.4bpp", "graphics/door_anims/frame_8359CA8_3.4bpp"); -static const u8 gUnknown_8359FA8[32] = {}; -static const u8 gUnknown_8359FC8[] = INCBIN_U8("graphics/door_anims/frame_8359FC8_1.4bpp", "graphics/door_anims/frame_8359FC8_2.4bpp", "graphics/door_anims/frame_8359FC8_3.4bpp"); -static const u8 gUnknown_835A148[32] = {}; -static const u8 gUnknown_835A168[] = INCBIN_U8("graphics/door_anims/frame_835A168_1.4bpp", "graphics/door_anims/frame_835A168_2.4bpp", "graphics/door_anims/frame_835A168_3.4bpp"); -static const u8 gUnknown_835A2E8[32] = {}; -static const u8 gUnknown_835A308[] = INCBIN_U8("graphics/door_anims/frame_835A308_1.4bpp", "graphics/door_anims/frame_835A308_2.4bpp", "graphics/door_anims/frame_835A308_3.4bpp"); -static const u8 gUnknown_835A488[32] = {}; -static const u8 gUnknown_835A4A8[] = INCBIN_U8("graphics/door_anims/frame_835A4A8_1.4bpp", "graphics/door_anims/frame_835A4A8_2.4bpp", "graphics/door_anims/frame_835A4A8_3.4bpp"); -static const u8 gUnknown_835A628[32] = {}; -static const u8 gUnknown_835A648[] = INCBIN_U8("graphics/door_anims/frame_835A648_1.4bpp", "graphics/door_anims/frame_835A648_2.4bpp", "graphics/door_anims/frame_835A648_3.4bpp"); -static const u8 gUnknown_835A7C8[32] = {}; -static const u8 gUnknown_835A7E8[] = INCBIN_U8("graphics/door_anims/frame_835A7E8_1.4bpp", "graphics/door_anims/frame_835A7E8_2.4bpp", "graphics/door_anims/frame_835A7E8_3.4bpp"); -static const u8 gUnknown_835A968[32] = {}; -static const u8 gUnknown_835A988[] = INCBIN_U8("graphics/door_anims/frame_835A988_1.4bpp", "graphics/door_anims/frame_835A988_2.4bpp", "graphics/door_anims/frame_835A988_3.4bpp"); -static const u8 gUnknown_835AB08[32] = {}; -static const u8 gUnknown_835AB28[] = INCBIN_U8("graphics/door_anims/frame_835AB28_1.4bpp", "graphics/door_anims/frame_835AB28_2.4bpp", "graphics/door_anims/frame_835AB28_3.4bpp"); -static const u8 gUnknown_835AE28[32] = {}; -static const u8 gUnknown_835AE48[] = INCBIN_U8("graphics/door_anims/frame_835AE48_1.4bpp", "graphics/door_anims/frame_835AE48_2.4bpp", "graphics/door_anims/frame_835AE48_3.4bpp"); -static const u8 gUnknown_835B148[32] = {}; -static const u8 gUnknown_835B168[] = INCBIN_U8("graphics/door_anims/frame_835B168_1.4bpp", "graphics/door_anims/frame_835B168_2.4bpp", "graphics/door_anims/frame_835B168_3.4bpp"); -static const u8 gUnknown_835B468[32] = {}; +static s8 GetDoorSoundType(const struct DoorGraphics * gfx, int x, int y); + +static const u8 sDoorAnimTiles_General[] = INCBIN_U8("graphics/door_anims/general.4bpp"); +static const u16 sDoorNullPalette1[16] = {}; +static const u8 sDoorAnimTiles_SlidingSingle[] = INCBIN_U8("graphics/door_anims/sliding_single.4bpp"); +static const u16 sDoorNullPalette2[16] = {}; +static const u8 sDoorAnimTiles_SlidingDouble[] = INCBIN_U8("graphics/door_anims/sliding_double.4bpp"); +static const u16 sDoorNullPalette3[16] = {}; +static const u8 sDoorAnimTiles_Pallet[] = INCBIN_U8("graphics/door_anims/pallet.4bpp"); +static const u16 sDoorNullPalette4[16] = {}; +static const u8 sDoorAnimTiles_OaksLab[] = INCBIN_U8("graphics/door_anims/oaks_lab.4bpp"); +static const u16 sDoorNullPalette5[16] = {}; +static const u8 sDoorAnimTiles_Viridian[] = INCBIN_U8("graphics/door_anims/viridian.4bpp"); +static const u16 sDoorNullPalette6[16] = {}; +static const u8 sDoorAnimTiles_Pewter[] = INCBIN_U8("graphics/door_anims/pewter.4bpp"); +static const u16 sDoorNullPalette7[16] = {}; +static const u8 sDoorAnimTiles_Saffron[] = INCBIN_U8("graphics/door_anims/saffron.4bpp"); +static const u16 sDoorNullPalette8[16] = {}; +static const u8 sDoorAnimTiles_SilphCo[] = INCBIN_U8("graphics/door_anims/silph_co.4bpp"); +static const u16 sDoorNullPalette9[16] = {}; +static const u8 sDoorAnimTiles_Cerulean[] = INCBIN_U8("graphics/door_anims/cerulean.4bpp"); +static const u16 sDoorNullPalette10[16] = {}; +static const u8 sDoorAnimTiles_Lavender[] = INCBIN_U8("graphics/door_anims/lavender.4bpp"); +static const u16 sDoorNullPalette11[16] = {}; +static const u8 sDoorAnimTiles_Vermilion[] = INCBIN_U8("graphics/door_anims/vermilion.4bpp"); +static const u16 sDoorNullPalette12[16] = {}; +static const u8 sDoorAnimTiles_PokemonFanClub[] = INCBIN_U8("graphics/door_anims/pokemon_fan_club.4bpp"); +static const u16 sDoorNullPalette13[16] = {}; +static const u8 sDoorAnimTiles_DeptStore[] = INCBIN_U8("graphics/door_anims/dept_store.4bpp"); +static const u16 sDoorNullPalette14[16] = {}; +static const u8 sDoorAnimTiles_Fuchsia[] = INCBIN_U8("graphics/door_anims/fuchsia.4bpp"); +static const u16 sDoorNullPalette15[16] = {}; +static const u8 sDoorAnimTiles_SafariZone[] = INCBIN_U8("graphics/door_anims/safari_zone.4bpp"); +static const u16 sDoorNullPalette16[16] = {}; +static const u8 sDoorAnimTiles_CinnabarLab[] = INCBIN_U8("graphics/door_anims/cinnabar_lab.4bpp"); +static const u16 sDoorNullPalette17[16] = {}; +static const u8 sDoorAnimTiles_DeptStoreElevator[] = INCBIN_U8("graphics/door_anims/dept_store_elevator.4bpp"); +static const u16 sDoorNullPalette18[16] = {}; +static const u8 sDoorAnimTiles_CableClub[] = INCBIN_U8("graphics/door_anims/cable_club.4bpp"); +static const u16 sDoorNullPalette19[16] = {}; +static const u8 sDoorAnimTiles_HideoutElevator[] = INCBIN_U8("graphics/door_anims/hideout_elevator.4bpp"); +static const u16 sDoorNullPalette20[16] = {}; +static const u8 sDoorAnimTiles_SSAnne[] = INCBIN_U8("graphics/door_anims/ss_anne.4bpp"); +static const u16 sDoorNullPalette21[16] = {}; + +// Doors from R/S dummied below +static const u8 sDoorAnimTiles_Empty1[256 * 3] = {}; +static const u16 sDoorNullPalette22[16] = {}; +static const u8 sDoorAnimTiles_Empty2[256 * 3] = {}; +static const u16 sDoorNullPalette23[16] = {}; +static const u8 sDoorAnimTiles_Empty3[256 * 3] = {}; +static const u16 sDoorNullPalette24[16] = {}; +static const u8 sDoorAnimTiles_Empty4[256 * 3] = {}; +static const u16 sDoorNullPalette25[16] = {}; +static const u8 sDoorAnimTiles_Empty5[256 * 3] = {}; +static const u16 sDoorNullPalette26[16] = {}; +static const u8 sDoorAnimTiles_Empty6[256 * 3] = {}; +static const u16 sDoorNullPalette27[16] = {}; +static const u8 sDoorAnimTiles_Empty7[256 * 3] = {}; +static const u16 sDoorNullPalette28[16] = {}; +static const u8 sDoorAnimTiles_Empty8[128 * 3] = {}; +static const u16 sDoorNullPalette29[16] = {}; +static const u8 sDoorAnimTiles_Empty9[128 * 3] = {}; +static const u16 sDoorNullPalette30[16] = {}; +static const u8 sDoorAnimTiles_Empty10[128 * 3] = {}; +static const u16 sDoorNullPalette31[16] = {}; +static const u8 sDoorAnimTiles_Empty11[128 * 3] = {}; +static const u16 sDoorNullPalette32[16] = {}; +static const u8 sDoorAnimTiles_Empty12[128 * 3] = {}; +static const u16 sDoorNullPalette33[16] = {}; +static const u8 sDoorAnimTiles_Empty13[128 * 3] = {}; +static const u16 sDoorNullPalette34[16] = {}; +static const u8 sDoorAnimTiles_Empty14[128 * 3] = {}; +static const u16 sDoorNullPalette35[16] = {}; +static const u8 sDoorAnimTiles_Empty15[128 * 3] = {}; +static const u16 sDoorNullPalette36[16] = {}; +static const u8 sDoorAnimTiles_Empty16[128 * 3] = {}; +static const u16 sDoorNullPalette37[16] = {}; +static const u8 sDoorAnimTiles_Empty17[128 * 3] = {}; +static const u16 sDoorNullPalette38[16] = {}; +static const u8 sDoorAnimTiles_Empty18[128 * 3] = {}; +static const u16 sDoorNullPalette39[16] = {}; +static const u8 sDoorAnimTiles_Empty19[128 * 3] = {}; +static const u16 sDoorNullPalette40[16] = {}; +static const u8 sDoorAnimTiles_Empty20[128 * 3] = {}; +static const u16 sDoorNullPalette41[16] = {}; +static const u8 sDoorAnimTiles_Empty21[128 * 3] = {}; +static const u16 sDoorNullPalette42[16] = {}; +static const u8 sDoorAnimTiles_Empty22[128 * 3] = {}; +static const u16 sDoorNullPalette43[16] = {}; +static const u8 sDoorAnimTiles_Empty23[128 * 3] = {}; +static const u16 sDoorNullPalette44[16] = {}; +static const u8 sDoorAnimTiles_Empty24[128 * 3] = {}; +static const u16 sDoorNullPalette45[16] = {}; +static const u8 sDoorAnimTiles_Empty25[128 * 3] = {}; +static const u16 sDoorNullPalette46[16] = {}; +static const u8 sDoorAnimTiles_Empty26[128 * 3] = {}; +static const u16 sDoorNullPalette47[16] = {}; +static const u8 sDoorAnimTiles_Empty27[128 * 3] = {}; +static const u16 sDoorNullPalette48[16] = {}; +static const u8 sDoorAnimTiles_Empty28[128 * 3] = {}; +static const u16 sDoorNullPalette49[16] = {}; +static const u8 sDoorAnimTiles_Empty29[128 * 3] = {}; +static const u16 sDoorNullPalette50[16] = {}; +static const u8 sDoorAnimTiles_Empty30[128 * 3] = {}; +static const u16 sDoorNullPalette51[16] = {}; +static const u8 sDoorAnimTiles_Empty31[128 * 3] = {}; +static const u16 sDoorNullPalette52[16] = {}; + +// Unused block of door tiles +static const u8 sDoorAnimTiles_UnusedTop[] = INCBIN_U8("graphics/door_anims/unused_top.4bpp"); +static const u8 sDoorAnimTiles_Empty32[256] = {}; +static const u8 sDoorAnimTiles_UnusedMidTop[] = INCBIN_U8("graphics/door_anims/unused_midtop.4bpp"); +static const u8 sDoorAnimTiles_Empty33[256] = {}; +static const u8 sDoorAnimTiles_UnusedMidBottom[] = INCBIN_U8("graphics/door_anims/unused_midbottom.4bpp"); +static const u8 sDoorAnimTiles_Empty34[256] = {}; +static const u8 sDoorAnimTiles_UnusedBottom[] = INCBIN_U8("graphics/door_anims/unused_bottom.4bpp"); +static const u16 sDoorNullPalette53[16] = {}; + +// Used FRLG doors resume +static const u8 sDoorAnimTiles_SilphCoElevator[] = INCBIN_U8("graphics/door_anims/silph_co_elevator.4bpp"); +static const u16 sDoorNullPalette54[16] = {}; +static const u8 sDoorAnimTiles_Sevii123[] = INCBIN_U8("graphics/door_anims/sevii_123.4bpp"); +static const u16 sDoorNullPalette55[16] = {}; +static const u8 sDoorAnimTiles_JoyfulGameCorner[] = INCBIN_U8("graphics/door_anims/joyful_game_corner.4bpp"); +static const u16 sDoorNullPalette56[16] = {}; +static const u8 sDoorAnimTiles_OneIslandPokeCenter[] = INCBIN_U8("graphics/door_anims/one_island_poke_center.4bpp"); +static const u16 sDoorNullPalette57[16] = {}; +static const u8 sDoorAnimTiles_Sevii45[] = INCBIN_U8("graphics/door_anims/sevii_45.4bpp"); +static const u16 sDoorNullPalette58[16] = {}; +static const u8 sDoorAnimTiles_FourIslandDayCare[] = INCBIN_U8("graphics/door_anims/four_island_day_care.4bpp"); +static const u16 sDoorNullPalette59[16] = {}; +static const u8 sDoorAnimTiles_RocketWarehouse[] = INCBIN_U8("graphics/door_anims/rocket_warehouse.4bpp"); +static const u16 sDoorNullPalette60[16] = {}; +static const u8 sDoorAnimTiles_Sevii67[] = INCBIN_U8("graphics/door_anims/sevii_67.4bpp"); +static const u16 sDoorNullPalette61[16] = {}; +static const u8 sDoorAnimTiles_Teleporter[] = INCBIN_U8("graphics/door_anims/teleporter.4bpp"); +static const u16 sDoorNullPalette62[16] = {}; +static const u8 sDoorAnimTiles_TrainerTowerLobbyElevator[] = INCBIN_U8("graphics/door_anims/trainer_tower_lobby_elevator.4bpp"); +static const u16 sDoorNullPalette63[16] = {}; +static const u8 sDoorAnimTiles_TrainerTowerRoofElevator[] = INCBIN_U8("graphics/door_anims/trainer_tower_roof_elevator.4bpp"); +static const u16 sDoorNullPalette64[16] = {}; static const struct DoorAnimFrame sDoorAnimFrames_OpenSmall[] = { {4, 0xFFFF}, @@ -257,72 +205,72 @@ static const struct DoorAnimFrame sDoorAnimFrames_CloseLarge[] = { {} }; -static const u8 gUnknown_835B4D8[] = {0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}; -static const u8 gUnknown_835B4E0[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; -static const u8 gUnknown_835B4E8[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; -static const u8 gUnknown_835B4F0[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; -static const u8 gUnknown_835B4F8[] = {0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa}; -static const u8 gUnknown_835B500[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; -static const u8 gUnknown_835B508[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; -static const u8 gUnknown_835B510[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; -static const u8 gUnknown_835B518[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; -static const u8 gUnknown_835B520[] = {0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc}; -static const u8 gUnknown_835B528[] = {0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9}; -static const u8 gUnknown_835B530[] = {0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9}; -static const u8 gUnknown_835B538[] = {0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9}; -static const u8 gUnknown_835B540[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; -static const u8 gUnknown_835B548[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; -static const u8 gUnknown_835B550[] = {0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9}; -static const u8 gUnknown_835B558[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; -static const u8 gUnknown_835B560[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; -static const u8 gUnknown_835B568[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; -static const u8 gUnknown_835B570[] = {0xc, 0xc, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}; -static const u8 gUnknown_835B578[] = {0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7}; -static const u8 gUnknown_835B580[] = {0x8, 0x8, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}; -static const u8 gUnknown_835B588[] = {0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5}; -static const u8 gUnknown_835B590[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; -static const u8 gUnknown_835B598[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; -static const u8 gUnknown_835B5A0[] = {0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5}; -static const u8 gUnknown_835B5A8[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; -static const u8 gUnknown_835B5B0[] = {0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa}; -static const u8 gUnknown_835B5B8[] = {0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5}; -static const u8 gUnknown_835B5C0[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; -static const u8 gUnknown_835B5C8[] = {0x8, 0x8, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}; -static const u8 gUnknown_835B5D0[] = {0xb, 0xb, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}; +static const u8 sDoorAnimPalettes_General[] = {2, 2, 2, 2, 2, 2, 2, 2}; +static const u8 sDoorAnimPalettes_SlidingSingle[] = {3, 3, 3, 3, 3, 3, 3, 3}; +static const u8 sDoorAnimPalettes_SlidingDouble[] = {3, 3, 3, 3, 3, 3, 3, 3}; +static const u8 sDoorAnimPalettes_Pallet[] = {8, 8, 8, 8, 8, 8, 8, 8}; +static const u8 sDoorAnimPalettes_OaksLab[] = {10, 10, 10, 10, 10, 10, 10, 10}; +static const u8 sDoorAnimPalettes_Viridian[] = {8, 8, 8, 8, 8, 8, 8, 8}; +static const u8 sDoorAnimPalettes_Pewter[] = {8, 8, 8, 8, 8, 8, 8, 8}; +static const u8 sDoorAnimPalettes_Saffron[] = {8, 8, 8, 8, 8, 8, 8, 8}; +static const u8 sDoorAnimPalettes_SilphCo[] = {3, 3, 3, 3, 3, 3, 3, 3}; +static const u8 sDoorAnimPalettes_Cerulean[] = {12, 12, 12, 12, 12, 12, 12, 12}; +static const u8 sDoorAnimPalettes_Lavender[] = {9, 9, 9, 9, 9, 9, 9, 9}; +static const u8 sDoorAnimPalettes_Vermilion[] = {9, 9, 9, 9, 9, 9, 9, 9}; +static const u8 sDoorAnimPalettes_PokemonFanClub[] = {9, 9, 9, 9, 9, 9, 9, 9}; +static const u8 sDoorAnimPalettes_DeptStore[] = {3, 3, 3, 3, 3, 3, 3, 3}; +static const u8 sDoorAnimPalettes_Fuchsia[] = {8, 8, 8, 8, 8, 8, 8, 8}; +static const u8 sDoorAnimPalettes_SafariZone[] = {9, 9, 9, 9, 9, 9, 9, 9}; +static const u8 sDoorAnimPalettes_CinnabarLab[] = {3, 3, 3, 3, 3, 3, 3, 3}; +static const u8 sDoorAnimPalettes_DeptStoreElevator[] = {8, 8, 8, 8, 8, 8, 8, 8}; +static const u8 sDoorAnimPalettes_CableClub[] = {8, 8, 8, 8, 8, 8, 8, 8}; +static const u8 sDoorAnimPalettes_HideoutElevator[] = {12, 12, 2, 2, 2, 2, 2, 2}; +static const u8 sDoorAnimPalettes_SSAnne[] = {7, 7, 7, 7, 7, 7, 7, 7}; +static const u8 sDoorAnimPalettes_SilphCoElevator[] = {8, 8, 2, 2, 2, 2, 2, 2}; +static const u8 sDoorAnimPalettes_Sevii123[] = {5, 5, 5, 5, 5, 5, 5, 5}; +static const u8 sDoorAnimPalettes_JoyfulGameCorner[] = {3, 3, 3, 3, 3, 3, 3, 3}; +static const u8 sDoorAnimPalettes_OneIslandPokeCenter[] = {3, 3, 3, 3, 3, 3, 3, 3}; +static const u8 sDoorAnimPalettes_Sevii45[] = {5, 5, 5, 5, 5, 5, 5, 5}; +static const u8 sDoorAnimPalettes_FourIslandDayCare[] = {3, 3, 3, 3, 3, 3, 3, 3}; +static const u8 sDoorAnimPalettes_RocketWarehouse[] = {10, 10, 10, 10, 10, 10, 10, 10}; +static const u8 sDoorAnimPalettes_Sevii67[] = {5, 5, 5, 5, 5, 5, 5, 5}; +static const u8 sDoorAnimPalettes_Teleporter[] = {8, 8, 8, 8, 8, 8, 8, 8}; +static const u8 sDoorAnimPalettes_TrainerTowerLobbyElevator[] = {8, 8, 2, 2, 2, 2, 2, 2}; +static const u8 sDoorAnimPalettes_TrainerTowerRoofElevator[] = {11, 11, 2, 2, 2, 2, 2, 2}; static const struct DoorGraphics sDoorGraphics[] = { - {0x03d, 0, 0, gUnknown_8353088, gUnknown_835B4D8}, - {0x062, 1, 0, gUnknown_8353228, gUnknown_835B4E0}, - {0x15b, 1, 0, gUnknown_83533C8, gUnknown_835B4E8}, - {0x2a3, 0, 0, gUnknown_8353568, gUnknown_835B4F0}, - {0x2ac, 0, 0, gUnknown_8353708, gUnknown_835B4F8}, - {0x299, 0, 0, gUnknown_83538A8, gUnknown_835B500}, - {0x2ce, 0, 0, gUnknown_8353A48, gUnknown_835B508}, - {0x284, 0, 0, gUnknown_8353BE8, gUnknown_835B510}, - {0x2bc, 1, 0, gUnknown_8353D88, gUnknown_835B518}, - {0x298, 0, 0, gUnknown_8353F28, gUnknown_835B520}, - {0x2a2, 0, 0, gUnknown_83540C8, gUnknown_835B528}, - {0x29e, 0, 0, gUnknown_8354268, gUnknown_835B530}, - {0x2e1, 0, 0, gUnknown_8354408, gUnknown_835B538}, - {0x294, 1, 0, gUnknown_83545A8, gUnknown_835B540}, - {0x2bf, 0, 0, gUnknown_8354748, gUnknown_835B548}, - {0x2d2, 1, 0, gUnknown_83548E8, gUnknown_835B550}, - {0x2ad, 0, 0, gUnknown_8354A88, gUnknown_835B558}, - {0x297, 0, 0, gUnknown_8359FC8, gUnknown_835B588}, - {0x29b, 1, 0, gUnknown_835A168, gUnknown_835B590}, - {0x2eb, 0, 0, gUnknown_835A308, gUnknown_835B598}, - {0x29a, 0, 0, gUnknown_835A4A8, gUnknown_835B5A0}, - {0x2b9, 0, 0, gUnknown_835A648, gUnknown_835B5A8}, - {0x2af, 0, 0, gUnknown_835A7E8, gUnknown_835B5B0}, - {0x30c, 0, 0, gUnknown_835A988, gUnknown_835B5B8}, - {0x28d, 1, 1, gUnknown_8354C28, gUnknown_835B560}, - {0x2de, 1, 1, gUnknown_8354F48, gUnknown_835B568}, - {0x2ab, 1, 1, gUnknown_8355268, gUnknown_835B570}, - {0x281, 0, 1, gUnknown_8355588, gUnknown_835B578}, - {0x2e2, 1, 1, gUnknown_8359CA8, gUnknown_835B580}, - {0x296, 1, 1, gUnknown_835AB28, gUnknown_835B5C0}, - {0x2c3, 1, 1, gUnknown_835AE48, gUnknown_835B5C8}, - {0x356, 1, 1, gUnknown_835B168, gUnknown_835B5D0}, + {METATILE_General_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_General, sDoorAnimPalettes_General}, + {METATILE_General_SlidingSingleDoor, DOOR_SOUND_SLIDING, 0, sDoorAnimTiles_SlidingSingle, sDoorAnimPalettes_SlidingSingle}, + {METATILE_General_SlidingDoubleDoor, DOOR_SOUND_SLIDING, 0, sDoorAnimTiles_SlidingDouble, sDoorAnimPalettes_SlidingDouble}, + {METATILE_PalletTown_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Pallet, sDoorAnimPalettes_Pallet}, + {METATILE_PalletTown_OaksLabDoor, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_OaksLab, sDoorAnimPalettes_OaksLab}, + {METATILE_ViridianCity_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Viridian, sDoorAnimPalettes_Viridian}, + {METATILE_PewterCity_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Pewter, sDoorAnimPalettes_Pewter}, + {METATILE_SaffronCity_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Saffron, sDoorAnimPalettes_Saffron}, + {METATILE_SaffronCity_SilphCoDoor, DOOR_SOUND_SLIDING, 0, sDoorAnimTiles_SilphCo, sDoorAnimPalettes_SilphCo}, + {METATILE_CeruleanCity_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Cerulean, sDoorAnimPalettes_Cerulean}, + {METATILE_LavenderTown_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Lavender, sDoorAnimPalettes_Lavender}, + {METATILE_VermilionCity_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Vermilion, sDoorAnimPalettes_Vermilion}, + {METATILE_VermilionCity_PokemonFanClubDoor, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_PokemonFanClub, sDoorAnimPalettes_PokemonFanClub}, + {METATILE_CeladonCity_DeptStoreDoor, DOOR_SOUND_SLIDING, 0, sDoorAnimTiles_DeptStore, sDoorAnimPalettes_DeptStore}, + {METATILE_FuchsiaCity_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Fuchsia, sDoorAnimPalettes_Fuchsia}, + {METATILE_FuchsiaCity_SafariZoneDoor, DOOR_SOUND_SLIDING, 0, sDoorAnimTiles_SafariZone, sDoorAnimPalettes_SafariZone}, + {METATILE_CinnabarIsland_LabDoor, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_CinnabarLab, sDoorAnimPalettes_CinnabarLab}, + {METATILE_SeviiIslands123_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Sevii123, sDoorAnimPalettes_Sevii123}, + {METATILE_SeviiIslands123_GameCornerDoor, DOOR_SOUND_SLIDING, 0, sDoorAnimTiles_JoyfulGameCorner, sDoorAnimPalettes_JoyfulGameCorner}, + {METATILE_SeviiIslands123_PokeCenterDoor, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_OneIslandPokeCenter, sDoorAnimPalettes_OneIslandPokeCenter}, + {METATILE_SeviiIslands45_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Sevii45, sDoorAnimPalettes_Sevii45}, + {METATILE_SeviiIslands45_DayCareDoor, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_FourIslandDayCare, sDoorAnimPalettes_FourIslandDayCare}, + {METATILE_SeviiIslands45_RocketWarehouseDoor_Unlocked, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_RocketWarehouse, sDoorAnimPalettes_RocketWarehouse}, + {METATILE_SeviiIslands67_Door, DOOR_SOUND_NORMAL, 0, sDoorAnimTiles_Sevii67, sDoorAnimPalettes_Sevii67}, + {METATILE_DepartmentStore_ElevatorDoor, DOOR_SOUND_SLIDING, 1, sDoorAnimTiles_DeptStoreElevator, sDoorAnimPalettes_DeptStoreElevator}, + {METATILE_PokemonCenter_CableClubDoor, DOOR_SOUND_SLIDING, 1, sDoorAnimTiles_CableClub, sDoorAnimPalettes_CableClub}, + {METATILE_SilphCo_HideoutElevatorDoor, DOOR_SOUND_SLIDING, 1, sDoorAnimTiles_HideoutElevator, sDoorAnimPalettes_HideoutElevator}, + {METATILE_SSAnne_Door, DOOR_SOUND_NORMAL, 1, sDoorAnimTiles_SSAnne, sDoorAnimPalettes_SSAnne}, + {METATILE_SilphCo_ElevatorDoor, DOOR_SOUND_SLIDING, 1, sDoorAnimTiles_SilphCoElevator, sDoorAnimPalettes_SilphCoElevator}, + {METATILE_SeaCottage_Teleporter_Door, DOOR_SOUND_SLIDING, 1, sDoorAnimTiles_Teleporter, sDoorAnimPalettes_Teleporter}, + {METATILE_TrainerTower_LobbyElevatorDoor, DOOR_SOUND_SLIDING, 1, sDoorAnimTiles_TrainerTowerLobbyElevator, sDoorAnimPalettes_TrainerTowerLobbyElevator}, + {METATILE_TrainerTower_RoofElevatorDoor, DOOR_SOUND_SLIDING, 1, sDoorAnimTiles_TrainerTowerRoofElevator, sDoorAnimPalettes_TrainerTowerRoofElevator}, {} }; @@ -418,7 +366,7 @@ static bool32 PlayDoorAnimationFrame(const struct DoorGraphics * gfx, const stru return TRUE; } -static const struct DoorGraphics * door_find(const struct DoorGraphics * gfx, u16 id) +static const struct DoorGraphics * GetDoorGraphics(const struct DoorGraphics * gfx, u16 id) { while (gfx->tiles != NULL) { @@ -429,16 +377,18 @@ static const struct DoorGraphics * door_find(const struct DoorGraphics * gfx, u1 return NULL; } -static s8 task_overworld_door_add_if_inactive(const struct DoorGraphics * gfx, const struct DoorAnimFrame * frames, int a2, int a3) +static s8 StartDoorAnimationTask(const struct DoorGraphics * gfx, const struct DoorAnimFrame * frames, int x, int y) { u8 taskId; s16 *data; if (FuncIsActiveTask(Task_AnimateDoor) == TRUE) return -1; + taskId = CreateTask(Task_AnimateDoor, 80); data = gTasks[taskId].data; - data[6] = a2; - data[7] = a3; + + data[6] = x; + data[7] = y; data[1] = (uintptr_t)frames; data[0] = (uintptr_t)frames >> 16; data[3] = (uintptr_t)gfx; @@ -446,14 +396,14 @@ static s8 task_overworld_door_add_if_inactive(const struct DoorGraphics * gfx, c return taskId; } -static void DrawClosedDoor(const struct DoorGraphics * gfx, int a1, int a2) +static void DrawClosedDoor(const struct DoorGraphics * gfx, int x, int y) { - DrawDoorDefaultImage(gfx, a1, a2); + DrawDoorDefaultImage(gfx, x, y); } static void DrawOpenedDoor(const struct DoorGraphics * gfx, int x, int y) { - gfx = door_find(gfx, MapGridGetMetatileIdAt(x, y)); + gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y)); if (gfx != NULL) { UpdateDrawDoorFrame(gfx, SeekToEndOfDoorAnim(gfx->size == 0 ? sDoorAnimFrames_OpenSmall : sDoorAnimFrames_OpenLarge), x, y); @@ -469,24 +419,24 @@ static const struct DoorAnimFrame * SeekToEndOfDoorAnim(const struct DoorAnimFra static s8 AnimateDoorOpenInternal(const struct DoorGraphics * gfx, int x, int y) { - gfx = door_find(gfx, MapGridGetMetatileIdAt(x, y)); + gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y)); if (gfx == NULL) return -1; else if (gfx->size == 0) - return task_overworld_door_add_if_inactive(gfx, sDoorAnimFrames_OpenSmall, x, y); + return StartDoorAnimationTask(gfx, sDoorAnimFrames_OpenSmall, x, y); else - return task_overworld_door_add_if_inactive(gfx, sDoorAnimFrames_OpenLarge, x, y); + return StartDoorAnimationTask(gfx, sDoorAnimFrames_OpenLarge, x, y); } static s8 AnimateDoorCloseInternal(const struct DoorGraphics * gfx, int x, int y) { - gfx = door_find(gfx, MapGridGetMetatileIdAt(x, y)); + gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y)); if (gfx == NULL) return -1; else if (gfx->size == 0) - return task_overworld_door_add_if_inactive(gfx, sDoorAnimFrames_CloseSmall, x, y); + return StartDoorAnimationTask(gfx, sDoorAnimFrames_CloseSmall, x, y); else - return task_overworld_door_add_if_inactive(gfx, sDoorAnimFrames_CloseLarge, x, y); + return StartDoorAnimationTask(gfx, sDoorAnimFrames_CloseLarge, x, y); } void FieldSetDoorOpened(int x, int y) @@ -522,16 +472,16 @@ bool8 FieldIsDoorAnimationRunning(void) u16 GetDoorSoundEffect(x, y) { - if (!GetDoorOpenType(sDoorGraphics, x, y)) + if (GetDoorSoundType(sDoorGraphics, x, y) == DOOR_SOUND_NORMAL) return MUS_W_DOOR; - else + else // DOOR_SOUND_SLIDING return SE_JIDO_DOA; } -static s8 GetDoorOpenType(const struct DoorGraphics * gfx, int x, int y) +static s8 GetDoorSoundType(const struct DoorGraphics * gfx, int x, int y) { - gfx = door_find(gfx, MapGridGetMetatileIdAt(x, y)); + gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y)); if (gfx == NULL) return -1; - return gfx->sliding; + return gfx->sound; } |