diff options
-rw-r--r-- | data/btl_attrs.s | 89 | ||||
-rw-r--r-- | include/battle.h | 1 | ||||
-rw-r--r-- | src/battle/battle_1.c | 56 |
3 files changed, 103 insertions, 43 deletions
diff --git a/data/btl_attrs.s b/data/btl_attrs.s index 845d0c3f4..926edc5a1 100644 --- a/data/btl_attrs.s +++ b/data/btl_attrs.s @@ -8,50 +8,53 @@ .section .rodata - .align 2 +@ .align 2 @ 81F9528 - .4byte 0x101 @ unknown data - - .align 2 -gOamData_81F952C:: @ 81F952C - .2byte 0x0300 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gOamData_81F9534:: @ 81F9534 - .2byte 0x0300 - .2byte 0xC000 - .2byte 0x0040 - - .align 2 -gSpriteAffineAnim_81F953C:: @ 81F953C - obj_rot_scal_anim_frame 0x80, 0x80, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_81F954C:: @ 81F954C - obj_rot_scal_anim_frame 0x80, 0x80, 0, 0 - obj_rot_scal_anim_frame 0x18, 0x18, 0, -128 - obj_rot_scal_anim_frame 0x18, 0x18, 0, -128 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_81F956C:: @ 81F956C - .4byte gSpriteAffineAnim_81F953C - .4byte gSpriteAffineAnim_81F954C - - .align 2 -gSpriteTemplate_81F9574:: @ 81F9574 - spr_template 10000, 10000, gOamData_81F952C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36 - - .align 2 -gSpriteTemplate_81F958C:: @ 81F958C - spr_template 10000, 10000, gOamData_81F9534, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36 - - .align 2 -gUnknown_081F95A4:: @ 81F95A4 - obj_tiles gUnknown_08E5DC2C, 4096, 0x2710 +@ .4byte 0x101 @ unknown data + +@ .align 2 +@gOamData_81F952C:: @ 81F952C +@ .byte 0x00 +@ .byte 0x03 +@ .byte 0x00 +@ .byte 0xC0 +@ .byte 0x00 +@ .byte 0x00 + +@ .align 2 +@gOamData_81F9534:: @ 81F9534 +@ .2byte 0x0300 +@ .2byte 0xC000 +@ .2byte 0x0040 + +@ .align 2 +@gSpriteAffineAnim_81F953C:: @ 81F953C +@ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0 +@ obj_rot_scal_anim_end + +@ .align 2 +@gSpriteAffineAnim_81F954C:: @ 81F954C +@ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0 +@ obj_rot_scal_anim_frame 0x18, 0x18, 0, -128 +@ obj_rot_scal_anim_frame 0x18, 0x18, 0, -128 +@ obj_rot_scal_anim_end + +@ .align 2 +@gSpriteAffineAnimTable_81F956C:: @ 81F956C +@ .4byte gSpriteAffineAnim_81F953C +@ .4byte gSpriteAffineAnim_81F954C + +@ .align 2 +@gSpriteTemplate_81F9574:: @ 81F9574 +@ spr_template 10000, 10000, gOamData_81F952C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36 + +@ .align 2 +@gSpriteTemplate_81F958C:: @ 81F958C +@ spr_template 10000, 10000, gOamData_81F9534, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36 + +@ .align 2 +@gUnknown_081F95A4:: @ 81F95A4 +@ obj_tiles gUnknown_08E5DC2C, 4096, 0x2710 .align 2 gBattleTerrainTable:: @ 81F95AC diff --git a/include/battle.h b/include/battle.h index 3dc1aeaf2..04d259fc9 100644 --- a/include/battle.h +++ b/include/battle.h @@ -726,6 +726,7 @@ void BattleMainCB2(void); void sub_800F838(struct Sprite *); u8 CreateNPCTrainerParty(struct Pokemon *, u16); void sub_800FCFC(void); +void nullsub_36(struct Sprite *); void c2_8011A1C(void); void sub_80101B8(void); void c2_081284E0(void); diff --git a/src/battle/battle_1.c b/src/battle/battle_1.c index 70674b3b4..9ef0b92cd 100644 --- a/src/battle/battle_1.c +++ b/src/battle/battle_1.c @@ -3,6 +3,7 @@ #include "battle_setup.h" #include "battle.h" #include "trainer.h" +#include "gba/types.h" #include "constants/species.h" #include "constants/moves.h" #include "constants/items.h" @@ -465,3 +466,58 @@ const u8 gEnemyMonElevation[] = { #include "../data/text/move_names_de.h" #endif +const u32 gUnknown_81F9528 = 0x101; + +const struct OamData gOamData_81F952C = { + .affineMode = ST_OAM_AFFINE_DOUBLE, + .size = 3 +}; + +const struct OamData gOamData_81F9534 = { + .affineMode = ST_OAM_AFFINE_DOUBLE, + .size = 3, + .tileNum = 64 +}; + +const union AffineAnimCmd gSpriteAffineAnim_81F953C[] = { + AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd gSpriteAffineAnim_81F954C[] = { + AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), + AFFINEANIMCMD_FRAME(0x18, 0x18, 0, -128), + AFFINEANIMCMD_FRAME(0x18, 0x18, 0, -128), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_81F956C[] = { + gSpriteAffineAnim_81F953C, + gSpriteAffineAnim_81F954C +}; + +const struct SpriteTemplate gSpriteTemplate_81F9574 = { + .tileTag = 10000, + .paletteTag = 10000, + .oam = &gOamData_81F952C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_81F956C, + .callback = nullsub_36 +}; + +const struct SpriteTemplate gSpriteTemplate_81F958C = { + .tileTag = 10000, + .paletteTag = 10000, + .oam = &gOamData_81F9534, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_81F956C, + .callback = nullsub_36 +}; + +extern const u8 gUnknown_08E5DC2C[]; + +const struct CompressedSpriteSheet gUnknown_081F95A4[] = { + {gUnknown_08E5DC2C, 4096, 0x2710}, +}; |