Finish fldeff_cut
This commit is contained in:
@@ -1,296 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8097A48
|
||||
sub_8097A48: @ 8097A48
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
movs r7, 0
|
||||
movs r0, 0x79
|
||||
bl PlaySE
|
||||
ldr r4, _08097B38 @ =gPlayerFacingPosition
|
||||
adds r1, r4, 0x2
|
||||
adds r0, r4, 0
|
||||
bl PlayerGetDestCoords
|
||||
mov r8, r4
|
||||
ldr r0, _08097B3C @ =0x0000ffff
|
||||
mov r9, r0
|
||||
_08097A68:
|
||||
mov r1, r9
|
||||
adds r0, r1, r7
|
||||
mov r2, r8
|
||||
ldrh r2, [r2, 0x2]
|
||||
adds r0, r2
|
||||
movs r6, 0
|
||||
lsls r0, 16
|
||||
asrs r5, r0, 16
|
||||
_08097A78:
|
||||
mov r1, r9
|
||||
adds r0, r1, r6
|
||||
mov r2, r8
|
||||
ldrh r2, [r2]
|
||||
adds r0, r2
|
||||
lsls r0, 16
|
||||
asrs r4, r0, 16
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl MapGridGetZCoordAt
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r2, r8
|
||||
movs r1, 0x4
|
||||
ldrsb r1, [r2, r1]
|
||||
cmp r0, r1
|
||||
bne _08097ABC
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl MetatileAtCoordsIsGrassTile
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _08097ABC
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8097B50
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_805F378
|
||||
_08097ABC:
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
cmp r6, 0x2
|
||||
bls _08097A78
|
||||
adds r0, r7, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
cmp r7, 0x2
|
||||
bls _08097A68
|
||||
bl DrawWholeMapView
|
||||
ldr r4, _08097B40 @ =sCutGrassSpriteArrayPtr
|
||||
movs r0, 0x8
|
||||
bl Alloc
|
||||
str r0, [r4]
|
||||
movs r7, 0
|
||||
ldr r5, _08097B44 @ =gSprites
|
||||
_08097AE2:
|
||||
ldr r0, _08097B48 @ =gPlayerAvatar
|
||||
ldrb r1, [r0, 0x4]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldrh r1, [r0, 0x2]
|
||||
lsls r1, 23
|
||||
lsrs r1, 7
|
||||
movs r2, 0x80
|
||||
lsls r2, 12
|
||||
adds r1, r2
|
||||
asrs r1, 16
|
||||
ldrb r2, [r0]
|
||||
adds r2, 0x14
|
||||
ldr r0, _08097B4C @ =gUnknown_83D414C
|
||||
movs r3, 0
|
||||
bl CreateSprite
|
||||
ldr r1, [r4]
|
||||
adds r1, r7
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4]
|
||||
adds r0, r7
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
lsls r1, r7, 5
|
||||
strh r1, [r0, 0x32]
|
||||
adds r0, r7, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
cmp r7, 0x7
|
||||
bls _08097AE2
|
||||
movs r0, 0
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08097B38: .4byte gPlayerFacingPosition
|
||||
_08097B3C: .4byte 0x0000ffff
|
||||
_08097B40: .4byte sCutGrassSpriteArrayPtr
|
||||
_08097B44: .4byte gSprites
|
||||
_08097B48: .4byte gPlayerAvatar
|
||||
_08097B4C: .4byte gUnknown_83D414C
|
||||
thumb_func_end sub_8097A48
|
||||
|
||||
thumb_func_start sub_8097B50
|
||||
sub_8097B50: @ 8097B50
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
lsls r1, 16
|
||||
movs r4, 0
|
||||
lsrs r6, r0, 16
|
||||
asrs r0, 16
|
||||
lsrs r7, r1, 16
|
||||
asrs r1, 16
|
||||
bl MapGridGetMetatileIdAt
|
||||
lsls r0, 16
|
||||
lsrs r2, r0, 16
|
||||
ldr r1, _08097B84 @ =gUnknown_83D4100
|
||||
ldr r5, _08097B88 @ =0x0000ffff
|
||||
mov r12, r1
|
||||
_08097B6E:
|
||||
lsls r3, r4, 2
|
||||
adds r0, r3, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r5
|
||||
beq _08097BA0
|
||||
cmp r0, r2
|
||||
beq _08097B8C
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
b _08097B6E
|
||||
.align 2, 0
|
||||
_08097B84: .4byte gUnknown_83D4100
|
||||
_08097B88: .4byte 0x0000ffff
|
||||
_08097B8C:
|
||||
lsls r0, r6, 16
|
||||
asrs r0, 16
|
||||
lsls r1, r7, 16
|
||||
asrs r1, 16
|
||||
mov r2, r12
|
||||
adds r2, 0x2
|
||||
adds r2, r3, r2
|
||||
ldrh r2, [r2]
|
||||
bl MapGridSetMetatileIdAt
|
||||
_08097BA0:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8097B50
|
||||
|
||||
thumb_func_start objc_8097BA8
|
||||
objc_8097BA8: @ 8097BA8
|
||||
movs r2, 0
|
||||
movs r1, 0x8
|
||||
strh r1, [r0, 0x2E]
|
||||
strh r2, [r0, 0x30]
|
||||
strh r2, [r0, 0x34]
|
||||
ldr r1, _08097BB8 @ =objc_8097BBC
|
||||
str r1, [r0, 0x1C]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08097BB8: .4byte objc_8097BBC
|
||||
thumb_func_end objc_8097BA8
|
||||
|
||||
thumb_func_start objc_8097BBC
|
||||
objc_8097BBC: @ 8097BBC
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r1, 0x32
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0x2E
|
||||
ldrsh r1, [r4, r2]
|
||||
bl Sin
|
||||
strh r0, [r4, 0x24]
|
||||
movs r1, 0x32
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0x2E
|
||||
ldrsh r1, [r4, r2]
|
||||
bl Cos
|
||||
strh r0, [r4, 0x26]
|
||||
ldrh r0, [r4, 0x32]
|
||||
adds r0, 0x8
|
||||
movs r1, 0xFF
|
||||
ands r0, r1
|
||||
strh r0, [r4, 0x32]
|
||||
ldrh r1, [r4, 0x2E]
|
||||
adds r1, 0x1
|
||||
ldrh r2, [r4, 0x34]
|
||||
lsls r0, r2, 16
|
||||
asrs r0, 18
|
||||
adds r1, r0
|
||||
strh r1, [r4, 0x2E]
|
||||
adds r2, 0x1
|
||||
strh r2, [r4, 0x34]
|
||||
ldrh r1, [r4, 0x30]
|
||||
movs r2, 0x30
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, 0x1C
|
||||
beq _08097C08
|
||||
adds r0, r1, 0x1
|
||||
strh r0, [r4, 0x30]
|
||||
b _08097C0C
|
||||
_08097C08:
|
||||
ldr r0, _08097C14 @ =sub_8097C18
|
||||
str r0, [r4, 0x1C]
|
||||
_08097C0C:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097C14: .4byte sub_8097C18
|
||||
thumb_func_end objc_8097BBC
|
||||
|
||||
thumb_func_start sub_8097C18
|
||||
sub_8097C18: @ 8097C18
|
||||
push {r4-r6,lr}
|
||||
movs r4, 0x1
|
||||
_08097C1C:
|
||||
ldr r6, _08097C64 @ =sCutGrassSpriteArrayPtr
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
ldr r5, _08097C68 @ =gSprites
|
||||
adds r0, r5
|
||||
bl DestroySprite
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
cmp r4, 0x7
|
||||
bls _08097C1C
|
||||
ldr r0, [r6]
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
movs r1, 0x3A
|
||||
bl FieldEffectStop
|
||||
ldr r0, [r6]
|
||||
bl Free
|
||||
bl sub_80696C0
|
||||
bl ScriptContext2_Disable
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097C64: .4byte sCutGrassSpriteArrayPtr
|
||||
_08097C68: .4byte gSprites
|
||||
thumb_func_end sub_8097C18
|
||||
|
||||
thumb_func_start sub_8097C6C
|
||||
sub_8097C6C: @ 8097C6C
|
||||
push {lr}
|
||||
movs r0, 0x79
|
||||
bl PlaySE
|
||||
movs r0, 0x2
|
||||
bl FieldEffectActiveListRemove
|
||||
bl EnableBothScriptContexts
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8097C6C
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
@@ -1,40 +0,0 @@
|
||||
#include "constants/maps.h"
|
||||
#include "constants/species.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnknown_83D4100:: @ 83D4100
|
||||
.2byte 0x000d, 0x0001
|
||||
.2byte 0x000a, 0x0013
|
||||
.2byte 0x000b, 0x000e
|
||||
.2byte 0x000c, 0x000f
|
||||
.2byte 0x0352, 0x033e
|
||||
.2byte 0x0300, 0x0310
|
||||
.2byte 0x0301, 0x0311
|
||||
.2byte 0x0302, 0x0312
|
||||
.2byte 0x0284, 0x0281
|
||||
.2byte 0xffff, 0xffff
|
||||
|
||||
.align 2
|
||||
gOamData_83D4128::
|
||||
.4byte 0x00000000, 0x00001401
|
||||
|
||||
gAnimCmd_83D4130::
|
||||
obj_image_anim_frame 0, 30
|
||||
obj_image_anim_jump 0
|
||||
|
||||
gSpriteAnimTable_83D4138::
|
||||
.4byte gAnimCmd_83D4130
|
||||
|
||||
gUnknown_83D413C::
|
||||
obj_frame_tiles gUnknown_8398648, 0x20
|
||||
|
||||
gUnknown_83D4144::
|
||||
obj_pal gUnknown_8398688, 4096
|
||||
|
||||
gUnknown_83D414C:: @ 83D414C
|
||||
spr_template 0xFFFF, 4096, gOamData_83D4128, gSpriteAnimTable_83D4138, gUnknown_83D413C, gDummySpriteAffineAnimTable, objc_8097BA8
|
||||
|
||||
@@ -117,6 +117,8 @@ bool32 RfuUnionObjectIsInvisible(u8 objectEventId);
|
||||
void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo);
|
||||
bool32 RfuUnionObjectIsWarping(u8 objectEventId);
|
||||
|
||||
void sub_805F378(s16 x, s16 y);
|
||||
|
||||
// Exported data declarations
|
||||
|
||||
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
|
||||
@@ -124,5 +126,7 @@ extern const struct SpritePalette gUnknown_83A5348;
|
||||
extern const struct SpriteTemplate * const gFieldEffectObjectTemplatePointers[];
|
||||
extern const struct OamData gObjectEventBaseOam_32x32;
|
||||
extern const struct UCoords16 gUnknown_83A64C8[];
|
||||
extern const u16 gUnknown_8398648[];
|
||||
extern const u16 gUnknown_8398688[];
|
||||
|
||||
#endif // GUARD_EVENT_OBJECT_MOVEMENT_H
|
||||
|
||||
+1
-2
@@ -132,7 +132,6 @@ SECTIONS {
|
||||
src/pokemon_icon.o(.text);
|
||||
src/script_movement.o(.text);
|
||||
src/fldeff_cut.o(.text);
|
||||
asm/fldeff_cut.o(.text);
|
||||
src/mail_data.o(.text);
|
||||
src/map_name_popup.o(.text);
|
||||
src/item_menu_icons.o(.text);
|
||||
@@ -450,7 +449,7 @@ SECTIONS {
|
||||
src/trainer_card.o(.rodata);
|
||||
data/pokemon_storage_system.o(.rodata);
|
||||
src/pokemon_icon.o(.rodata);
|
||||
data/fldeff_cut.o(.rodata);
|
||||
src/fldeff_cut.o(.rodata);
|
||||
src/map_name_popup.o(.rodata);
|
||||
src/item_menu_icons.o(.rodata);
|
||||
src/battle_anim_mon_movement.o(.rodata);
|
||||
|
||||
+173
-10
@@ -1,7 +1,10 @@
|
||||
#include "global.h"
|
||||
#include "gflib.h"
|
||||
#include "event_object_lock.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "event_scripts.h"
|
||||
#include "fieldmap.h"
|
||||
#include "field_camera.h"
|
||||
#include "field_specials.h"
|
||||
#include "fldeff.h"
|
||||
#include "field_effect.h"
|
||||
@@ -10,17 +13,79 @@
|
||||
#include "overworld.h"
|
||||
#include "party_menu.h"
|
||||
#include "script.h"
|
||||
#include "trig.h"
|
||||
#include "constants/event_objects.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
EWRAM_DATA u8 *sCutGrassSpriteArrayPtr = NULL;
|
||||
EWRAM_DATA bool8 sScheduleOpenDottedHole = FALSE;
|
||||
static EWRAM_DATA u8 *sCutGrassSpriteArrayPtr = NULL;
|
||||
static EWRAM_DATA bool8 sScheduleOpenDottedHole = FALSE;
|
||||
|
||||
void FieldCallback_CutGrass(void);
|
||||
void FieldCallback_CutTree(void);
|
||||
void sub_8097A20(void);
|
||||
void sub_8097C6C(void);
|
||||
static void FieldCallback_CutGrass(void);
|
||||
static void FieldCallback_CutTree(void);
|
||||
static void sub_8097A20(void);
|
||||
static void sub_8097B50(s16 x, s16 y);
|
||||
static void objc_8097BA8(struct Sprite * sprite);
|
||||
static void objc_8097BBC(struct Sprite * sprite);
|
||||
static void sub_8097C18(struct Sprite * sprite);
|
||||
static void sub_8097C6C(void);
|
||||
|
||||
u8 MetatileAtCoordsIsGrassTile(s16 x, s16 y)
|
||||
static const u16 sCutGrassMetatileMapping[][2] = {
|
||||
{0x000d, 0x0001},
|
||||
{0x000a, 0x0013},
|
||||
{0x000b, 0x000e},
|
||||
{0x000c, 0x000f},
|
||||
{0x0352, 0x033e},
|
||||
{0x0300, 0x0310},
|
||||
{0x0301, 0x0311},
|
||||
{0x0302, 0x0312},
|
||||
{0x0284, 0x0281},
|
||||
{0xffff, 0xffff}
|
||||
};
|
||||
|
||||
static const struct OamData gOamData_83D4128 = {
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(8x8),
|
||||
.tileNum = 0x001,
|
||||
.priority = 1,
|
||||
.paletteNum = 0x1,
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
static const union AnimCmd gAnimCmd_83D4130[] = {
|
||||
ANIMCMD_FRAME(0, 30),
|
||||
ANIMCMD_JUMP(0)
|
||||
};
|
||||
|
||||
static const union AnimCmd *const gSpriteAnimTable_83D4138[] = {
|
||||
gAnimCmd_83D4130
|
||||
};
|
||||
|
||||
static const struct SpriteFrameImage gUnknown_83D413C[] = {
|
||||
{gUnknown_8398648, 0x20}
|
||||
};
|
||||
|
||||
const struct SpritePalette gUnknown_83D4144[] = {
|
||||
gUnknown_8398688, 4096
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_CutGrass = {
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 4096,
|
||||
.oam = &gOamData_83D4128,
|
||||
.anims = gSpriteAnimTable_83D4138,
|
||||
.images = gUnknown_83D413C,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = objc_8097BA8
|
||||
};
|
||||
|
||||
static u8 MetatileAtCoordsIsGrassTile(s16 x, s16 y)
|
||||
{
|
||||
return TestMetatileAttributeBit(MapGridGetMetatileAttributeAt(x, y, 1), 1);
|
||||
}
|
||||
@@ -72,7 +137,7 @@ bool8 SetUpFieldMove_Cut(void)
|
||||
}
|
||||
}
|
||||
|
||||
void FieldCallback_CutGrass(void)
|
||||
static void FieldCallback_CutGrass(void)
|
||||
{
|
||||
FieldEffectStart(FLDEFF_USE_CUT_ON_GRASS);
|
||||
gFieldEffectArguments[0] = GetCursorSelectionMonId();
|
||||
@@ -86,7 +151,7 @@ bool8 sub_80979A0(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void FieldCallback_CutTree(void)
|
||||
static void FieldCallback_CutTree(void)
|
||||
{
|
||||
gFieldEffectArguments[0] = GetCursorSelectionMonId();
|
||||
ScriptContext1_SetupScript(EventScript_FldEffCut);
|
||||
@@ -100,7 +165,7 @@ bool8 sub_80979F0(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_8097A20(void)
|
||||
static void sub_8097A20(void)
|
||||
{
|
||||
FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_GRASS);
|
||||
if (sScheduleOpenDottedHole == TRUE)
|
||||
@@ -108,3 +173,101 @@ void sub_8097A20(void)
|
||||
else
|
||||
FieldEffectStart(FLDEFF_CUT_GRASS);
|
||||
}
|
||||
|
||||
bool8 sub_8097A48(void)
|
||||
{
|
||||
u8 i, j;
|
||||
s16 x, y;
|
||||
register s32 neg1 asm("r9");
|
||||
struct MapPosition *pos;
|
||||
|
||||
i = 0;
|
||||
PlaySE(SE_W015);
|
||||
PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
|
||||
|
||||
for (i = 0, pos = &gPlayerFacingPosition, neg1 = 0xFFFF; i < 3; i++)
|
||||
{
|
||||
|
||||
y = i + neg1 + pos->y;
|
||||
for (j = 0; j < 3; j++)
|
||||
{
|
||||
x = j + neg1 + pos->x;
|
||||
if (MapGridGetZCoordAt(x, y) == pos->height)
|
||||
{
|
||||
if (MetatileAtCoordsIsGrassTile(x, y) == TRUE)
|
||||
{
|
||||
sub_8097B50(x, y);
|
||||
sub_805F378(x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
DrawWholeMapView();
|
||||
sCutGrassSpriteArrayPtr = Alloc(8);
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
sCutGrassSpriteArrayPtr[i] = CreateSprite(&sSpriteTemplate_CutGrass, gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y + 20, 0);
|
||||
gSprites[sCutGrassSpriteArrayPtr[i]].data[2] = i * 32;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void sub_8097B50(s16 x, s16 y)
|
||||
{
|
||||
u16 i = 0;
|
||||
u16 metatileId = MapGridGetMetatileIdAt(x, y);
|
||||
while (1)
|
||||
{
|
||||
if (sCutGrassMetatileMapping[i][0] == 0xFFFF)
|
||||
return;
|
||||
if (sCutGrassMetatileMapping[i][0] == metatileId)
|
||||
{
|
||||
MapGridSetMetatileIdAt(x, y, sCutGrassMetatileMapping[i][1]);
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
static void objc_8097BA8(struct Sprite * sprite)
|
||||
{
|
||||
sprite->data[0] = 8;
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[3] = 0;
|
||||
sprite->callback = objc_8097BBC;
|
||||
}
|
||||
|
||||
static void objc_8097BBC(struct Sprite * sprite)
|
||||
{
|
||||
sprite->pos2.x = Sin(sprite->data[2], sprite->data[0]);
|
||||
sprite->pos2.y = Cos(sprite->data[2], sprite->data[0]);
|
||||
sprite->data[2] += 8;
|
||||
sprite->data[2] &= 0xFF;
|
||||
sprite->data[0]++;
|
||||
sprite->data[0] += sprite->data[3] >> 2;
|
||||
sprite->data[3]++;
|
||||
if (sprite->data[1] != 28)
|
||||
sprite->data[1]++;
|
||||
else
|
||||
sprite->callback = sub_8097C18;
|
||||
}
|
||||
|
||||
static void sub_8097C18(struct Sprite * sprite)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 1; i < 8; i++)
|
||||
{
|
||||
DestroySprite(&gSprites[sCutGrassSpriteArrayPtr[i]]);
|
||||
}
|
||||
FieldEffectStop(&gSprites[sCutGrassSpriteArrayPtr[0]], FLDEFF_CUT_GRASS);
|
||||
Free(sCutGrassSpriteArrayPtr);
|
||||
sub_80696C0();
|
||||
ScriptContext2_Disable();
|
||||
}
|
||||
|
||||
static void sub_8097C6C(void)
|
||||
{
|
||||
PlaySE(SE_W015);
|
||||
FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE);
|
||||
EnableBothScriptContexts();
|
||||
}
|
||||
|
||||
+1
-7
@@ -218,14 +218,8 @@ gUnknown_203982C: @ 203982C
|
||||
|
||||
.align 2
|
||||
.include "src/script_movement.o"
|
||||
|
||||
.align 2
|
||||
sCutGrassSpriteArrayPtr: @ 2039870
|
||||
.space 0x4
|
||||
|
||||
sScheduleOpenDottedHole: @ 2039874
|
||||
.space 0x4
|
||||
|
||||
.include "src/fldeff_cut.o"
|
||||
.align 2
|
||||
.include "src/item_menu_icons.o"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user