diff options
author | camthesaxman <cameronghall@cox.net> | 2017-11-27 23:09:02 -0600 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-11-27 23:09:02 -0600 |
commit | 8215d028078128c6b28119fe2420229cb1828e6b (patch) | |
tree | e36fae8d6de49c28a9b318cea1137b59884ba4b2 | |
parent | 940ab939959945f9990b50893434648c9547e880 (diff) |
fldeff_cut.c data
-rw-r--r-- | data/fldeff_cut.s | 31 | ||||
-rw-r--r-- | include/field_map_obj.h | 3 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/field/field_map_obj.c | 2 | ||||
-rw-r--r-- | src/field/fldeff_cut.c | 53 |
5 files changed, 54 insertions, 37 deletions
diff --git a/data/fldeff_cut.s b/data/fldeff_cut.s deleted file mode 100644 index e1d27647e..000000000 --- a/data/fldeff_cut.s +++ /dev/null @@ -1,31 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gOamData_CutGrass:: @ 83C15DC - .2byte 0 - .2byte 0 - .2byte 0x1401 - - .align 2 -gSpriteAnim_CutGrass:: @ 83C15E4 - obj_image_anim_frame 0, 30 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_CutGrass:: @ 83C15EC - .4byte gSpriteAnim_CutGrass - - .align 2 -gSpriteImageTable_CutGrass:: @ 83C15F0 - obj_frame_tiles gFieldEffectPic_CutGrass, 0x20 - - .align 2 -gFieldEffectObjectPaletteInfo6:: @ 83C15F8 - obj_pal gFieldEffectObjectPalette6, 0x1000 - - .align 2 -gSpriteTemplate_CutGrass:: @ 83C1600 - spr_template 0xFFFF, 0x1000, gOamData_CutGrass, gSpriteAnimTable_CutGrass, gSpriteImageTable_CutGrass, gDummySpriteAffineAnimTable, sub_80A2A48 diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 22674406d..f0b0bb5ab 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -38,6 +38,9 @@ extern const u16 gMapObjectPalette19[]; extern const u32 gMapObjectPic_MovingBox[32]; extern const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[]; +extern const u8 gFieldEffectPic_CutGrass[]; +extern const u16 gFieldEffectObjectPalette6[]; + void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); diff --git a/ld_script.txt b/ld_script.txt index 78844929a..d828278e7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -513,7 +513,7 @@ SECTIONS { data/pokemon_storage_system.o(.rodata); src/pokemon/pokemon_icon.o(.rodata); src/pokemon/pokemon_summary_screen.o(.rodata); - data/fldeff_cut.o(.rodata); + src/field/fldeff_cut.o(.rodata); src/field/item_menu.o(.rodata); data/battle_anim_80A7E7C.o(.rodata); src/field/item.o(.rodata); diff --git a/src/field/field_map_obj.c b/src/field/field_map_obj.c index 0e6794ed7..81c0c5854 100644 --- a/src/field/field_map_obj.c +++ b/src/field/field_map_obj.c @@ -1354,7 +1354,7 @@ const u32 gFieldEffectPic_ShadowMedium[] = INCBIN_U32("graphics/field_effect_obj const u32 gFieldEffectPic_ShadowLarge[] = INCBIN_U32("graphics/field_effect_objects/pics/shadow_large.4bpp"); const u32 gFieldEffectPic_ShadowExtraLarge[] = INCBIN_U32("graphics/field_effect_objects/pics/shadow_extra_large.4bpp"); const u32 filler_8368A08[0x48] = {}; -const u32 gFieldEffectPic_CutGrass[] = INCBIN_U32("graphics/field_effect_objects/pics/cut_grass.4bpp"); +const u8 gFieldEffectPic_CutGrass[] = INCBIN_U8("graphics/field_effect_objects/pics/cut_grass.4bpp"); const u32 FieldEffectPic_CutGrass_Copy[] = INCBIN_U32("graphics/field_effect_objects/pics/cut_grass.4bpp"); const u16 gFieldEffectObjectPalette6[] = INCBIN_U16("graphics/field_effect_objects/palettes/06.gbapal"); const u32 gFieldEffectPic_Ripple_0[] = INCBIN_U32("graphics/field_effect_objects/pics/ripple/0.4bpp"); diff --git a/src/field/fldeff_cut.c b/src/field/fldeff_cut.c index edf38d800..e4328acfc 100644 --- a/src/field/fldeff_cut.c +++ b/src/field/fldeff_cut.c @@ -2,6 +2,7 @@ #include "fldeff_cut.h" #include "field_camera.h" #include "field_effect.h" +#include "field_map_obj.h" #include "field_player_avatar.h" #include "fieldmap.h" #include "map_obj_lock.h" @@ -20,12 +21,56 @@ extern void (*gFieldCallback)(void); extern void (*gUnknown_03005CE4)(void); +extern u8 gLastFieldPokeMenuOpened; -extern struct SpriteTemplate gSpriteTemplate_CutGrass; +extern const u8 S_UseCut[]; -extern u8 gLastFieldPokeMenuOpened; +const struct OamData gOamData_CutGrass = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 1, + .priority = 1, + .paletteNum = 1, + .affineParam = 0, +}; -extern u8 S_UseCut[]; +const union AnimCmd gSpriteAnim_CutGrass[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_CutGrass[] = +{ + gSpriteAnim_CutGrass, +}; + +const struct SpriteFrameImage gSpriteImageTable_CutGrass[] = +{ + {gFieldEffectPic_CutGrass, 0x20}, +}; + +const struct SpritePalette gFieldEffectObjectPaletteInfo6 = {gFieldEffectObjectPalette6, 0x1000}; + +static void sub_80A2A48(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_CutGrass = +{ + .tileTag = 0xFFFF, + .paletteTag = 0x1000, + .oam = &gOamData_CutGrass, + .anims = gSpriteAnimTable_CutGrass, + .images = gSpriteImageTable_CutGrass, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A2A48, +}; bool8 SetUpFieldMove_Cut(void) { @@ -238,7 +283,7 @@ void sub_80A28F4(s16 x, s16 y) } } -void sub_80A2A48(struct Sprite *sprite) +static void sub_80A2A48(struct Sprite *sprite) { sprite->data[0] = 8; sprite->data[1] = 0; |