summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-11-27 23:09:02 -0600
committercamthesaxman <cameronghall@cox.net>2017-11-27 23:09:02 -0600
commit8215d028078128c6b28119fe2420229cb1828e6b (patch)
treee36fae8d6de49c28a9b318cea1137b59884ba4b2
parent940ab939959945f9990b50893434648c9547e880 (diff)
fldeff_cut.c data
-rw-r--r--data/fldeff_cut.s31
-rw-r--r--include/field_map_obj.h3
-rw-r--r--ld_script.txt2
-rw-r--r--src/field/field_map_obj.c2
-rw-r--r--src/field/fldeff_cut.c53
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;