Name methods in fldeff_cut

This commit is contained in:
PikalaxALT
2020-02-26 09:21:49 -05:00
parent 51e2b99b9d
commit 4747fcb629
9 changed files with 66 additions and 63 deletions
+1 -1
View File
@@ -42,7 +42,7 @@ _080C9B6E:
thumb_func_start sub_80C9B74 thumb_func_start sub_80C9B74
sub_80C9B74: @ 80C9B74 sub_80C9B74: @ 80C9B74
push {r4,lr} push {r4,lr}
bl oei_task_add bl CreateFieldEffectShowMon
adds r4, r0, 0 adds r4, r0, 0
lsls r4, 24 lsls r4, 24
lsrs r4, 24 lsrs r4, 24
+3 -3
View File
@@ -78,11 +78,11 @@ gFldEffScript_ExclamationMarkIcon:: @ 81D97C4
end end
gFldEffScript_UseCutOnGrass:: @ 81D97CA gFldEffScript_UseCutOnGrass:: @ 81D97CA
callnative sub_80979A0 callnative FldEff_UseCutOnGrass
end end
gFldEffScript_UseCutOnTree:: @ 81D97D0 gFldEffScript_UseCutOnTree:: @ 81D97D0
callnative sub_80979F0 callnative FldEff_UseCutOnTree
end end
gFldEffScript_Shadow:: @ 81D97D6 gFldEffScript_Shadow:: @ 81D97D6
@@ -299,7 +299,7 @@ gFldEffScript_SecretPowerShrub:: @ 81D9964
end end
gFldEffScript_CutGrass:: @ 81D9965 gFldEffScript_CutGrass:: @ 81D9965
loadfadedpal_callnative gUnknown_83D4144, sub_8097A48 loadfadedpal_callnative gFldEffPalette_CutGrass, FldEff_CutGrass
end end
gFldEffScript_FieldMoveShowMonInit:: @ 81D996F gFldEffScript_FieldMoveShowMonInit:: @ 81D996F
+1 -1
View File
@@ -10,7 +10,7 @@ gTasks[taskId].data[9] = (u32)func;
extern struct MapPosition gPlayerFacingPosition; extern struct MapPosition gPlayerFacingPosition;
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId); bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
u8 oei_task_add(void); u8 CreateFieldEffectShowMon(void);
// flash // flash
u8 sub_80C9DCC(u8 lightLevel, u8 mapType); u8 sub_80C9DCC(u8 lightLevel, u8 mapType);
+36 -34
View File
@@ -22,12 +22,12 @@ static EWRAM_DATA bool8 sScheduleOpenDottedHole = FALSE;
static void FieldCallback_CutGrass(void); static void FieldCallback_CutGrass(void);
static void FieldCallback_CutTree(void); static void FieldCallback_CutTree(void);
static void sub_8097A20(void); static void FieldMoveCallback_CutGrass(void);
static void sub_8097B50(s16 x, s16 y); static void SetCutGrassMetatileAt(s16 x, s16 y);
static void objc_8097BA8(struct Sprite * sprite); static void SpriteCallback_CutGrass_Init(struct Sprite * sprite);
static void objc_8097BBC(struct Sprite * sprite); static void SpriteCallback_CutGrass_Run(struct Sprite * sprite);
static void sub_8097C18(struct Sprite * sprite); static void SpriteCallback_CutGrass_Cleanup(struct Sprite * sprite);
static void sub_8097C6C(void); static void FieldMoveCallback_CutTree(void);
static const u16 sCutGrassMetatileMapping[][2] = { static const u16 sCutGrassMetatileMapping[][2] = {
{0x000d, 0x0001}, {0x000d, 0x0001},
@@ -42,7 +42,7 @@ static const u16 sCutGrassMetatileMapping[][2] = {
{0xffff, 0xffff} {0xffff, 0xffff}
}; };
static const struct OamData gOamData_83D4128 = { static const struct OamData sOamData_FldEff_CutGrass = {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL, .objMode = ST_OAM_OBJ_NORMAL,
@@ -58,31 +58,31 @@ static const struct OamData gOamData_83D4128 = {
.affineParam = 0 .affineParam = 0
}; };
static const union AnimCmd gAnimCmd_83D4130[] = { static const union AnimCmd sSpriteAnim_Fldeff_CutGrass_0[] = {
ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(0, 30),
ANIMCMD_JUMP(0) ANIMCMD_JUMP(0)
}; };
static const union AnimCmd *const gSpriteAnimTable_83D4138[] = { static const union AnimCmd *const sSpriteAnimTable_FldEff_CutGrass[] = {
gAnimCmd_83D4130 sSpriteAnim_Fldeff_CutGrass_0
}; };
static const struct SpriteFrameImage gUnknown_83D413C[] = { static const struct SpriteFrameImage sSpriteFrameImages_FldEff_CutGrass[] = {
{gUnknown_8398648, 0x20} {gUnknown_8398648, 0x20}
}; };
const struct SpritePalette gUnknown_83D4144[] = { const struct SpritePalette gFldEffPalette_CutGrass[] = {
gUnknown_8398688, 4096 gUnknown_8398688, 4096
}; };
static const struct SpriteTemplate sSpriteTemplate_CutGrass = { static const struct SpriteTemplate sSpriteTemplate_FldEff_CutGrass = {
.tileTag = 0xFFFF, .tileTag = 0xFFFF,
.paletteTag = 4096, .paletteTag = 4096,
.oam = &gOamData_83D4128, .oam = &sOamData_FldEff_CutGrass,
.anims = gSpriteAnimTable_83D4138, .anims = sSpriteAnimTable_FldEff_CutGrass,
.images = gUnknown_83D413C, .images = sSpriteFrameImages_FldEff_CutGrass,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = objc_8097BA8 .callback = SpriteCallback_CutGrass_Init
}; };
static u8 MetatileAtCoordsIsGrassTile(s16 x, s16 y) static u8 MetatileAtCoordsIsGrassTile(s16 x, s16 y)
@@ -111,6 +111,7 @@ bool8 SetUpFieldMove_Cut(void)
} }
else else
{ {
// FIXME: this fakematch
register s32 neg1 asm("r8"); register s32 neg1 asm("r8");
struct MapPosition *pos; struct MapPosition *pos;
PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
@@ -143,10 +144,10 @@ static void FieldCallback_CutGrass(void)
gFieldEffectArguments[0] = GetCursorSelectionMonId(); gFieldEffectArguments[0] = GetCursorSelectionMonId();
} }
bool8 sub_80979A0(void) bool8 FldEff_UseCutOnGrass(void)
{ {
u8 taskId = oei_task_add(); u8 taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(sub_8097A20); FLDEFF_SET_FUNC_TO_DATA(FieldMoveCallback_CutGrass);
IncrementGameStat(GAME_STAT_USED_CUT); IncrementGameStat(GAME_STAT_USED_CUT);
return FALSE; return FALSE;
} }
@@ -157,15 +158,15 @@ static void FieldCallback_CutTree(void)
ScriptContext1_SetupScript(EventScript_FldEffCut); ScriptContext1_SetupScript(EventScript_FldEffCut);
} }
bool8 sub_80979F0(void) bool8 FldEff_UseCutOnTree(void)
{ {
u8 taskId = oei_task_add(); u8 taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(sub_8097C6C); FLDEFF_SET_FUNC_TO_DATA(FieldMoveCallback_CutTree);
IncrementGameStat(GAME_STAT_USED_CUT); IncrementGameStat(GAME_STAT_USED_CUT);
return FALSE; return FALSE;
} }
static void sub_8097A20(void) static void FieldMoveCallback_CutGrass(void)
{ {
FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_GRASS); FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_GRASS);
if (sScheduleOpenDottedHole == TRUE) if (sScheduleOpenDottedHole == TRUE)
@@ -174,10 +175,11 @@ static void sub_8097A20(void)
FieldEffectStart(FLDEFF_CUT_GRASS); FieldEffectStart(FLDEFF_CUT_GRASS);
} }
bool8 sub_8097A48(void) bool8 FldEff_CutGrass(void)
{ {
u8 i, j; u8 i, j;
s16 x, y; s16 x, y;
// FIXME: this fakematch
register s32 neg1 asm("r9"); register s32 neg1 asm("r9");
struct MapPosition *pos; struct MapPosition *pos;
@@ -196,7 +198,7 @@ bool8 sub_8097A48(void)
{ {
if (MetatileAtCoordsIsGrassTile(x, y) == TRUE) if (MetatileAtCoordsIsGrassTile(x, y) == TRUE)
{ {
sub_8097B50(x, y); SetCutGrassMetatileAt(x, y);
sub_805F378(x, y); sub_805F378(x, y);
} }
} }
@@ -206,13 +208,13 @@ bool8 sub_8097A48(void)
sCutGrassSpriteArrayPtr = Alloc(8); sCutGrassSpriteArrayPtr = Alloc(8);
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
{ {
sCutGrassSpriteArrayPtr[i] = CreateSprite(&sSpriteTemplate_CutGrass, gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y + 20, 0); sCutGrassSpriteArrayPtr[i] = CreateSprite(&sSpriteTemplate_FldEff_CutGrass, gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y + 20, 0);
gSprites[sCutGrassSpriteArrayPtr[i]].data[2] = i * 32; gSprites[sCutGrassSpriteArrayPtr[i]].data[2] = i * 32;
} }
return FALSE; return FALSE;
} }
static void sub_8097B50(s16 x, s16 y) static void SetCutGrassMetatileAt(s16 x, s16 y)
{ {
u16 i = 0; u16 i = 0;
u16 metatileId = MapGridGetMetatileIdAt(x, y); u16 metatileId = MapGridGetMetatileIdAt(x, y);
@@ -229,15 +231,15 @@ static void sub_8097B50(s16 x, s16 y)
} }
} }
static void objc_8097BA8(struct Sprite * sprite) static void SpriteCallback_CutGrass_Init(struct Sprite * sprite)
{ {
sprite->data[0] = 8; sprite->data[0] = 8;
sprite->data[1] = 0; sprite->data[1] = 0;
sprite->data[3] = 0; sprite->data[3] = 0;
sprite->callback = objc_8097BBC; sprite->callback = SpriteCallback_CutGrass_Run;
} }
static void objc_8097BBC(struct Sprite * sprite) static void SpriteCallback_CutGrass_Run(struct Sprite * sprite)
{ {
sprite->pos2.x = Sin(sprite->data[2], sprite->data[0]); sprite->pos2.x = Sin(sprite->data[2], sprite->data[0]);
sprite->pos2.y = Cos(sprite->data[2], sprite->data[0]); sprite->pos2.y = Cos(sprite->data[2], sprite->data[0]);
@@ -249,10 +251,10 @@ static void objc_8097BBC(struct Sprite * sprite)
if (sprite->data[1] != 28) if (sprite->data[1] != 28)
sprite->data[1]++; sprite->data[1]++;
else else
sprite->callback = sub_8097C18; sprite->callback = SpriteCallback_CutGrass_Cleanup;
} }
static void sub_8097C18(struct Sprite * sprite) static void SpriteCallback_CutGrass_Cleanup(struct Sprite * sprite)
{ {
u8 i; u8 i;
for (i = 1; i < 8; i++) for (i = 1; i < 8; i++)
@@ -265,7 +267,7 @@ static void sub_8097C18(struct Sprite * sprite)
ScriptContext2_Disable(); ScriptContext2_Disable();
} }
static void sub_8097C6C(void) static void FieldMoveCallback_CutTree(void)
{ {
PlaySE(SE_W015); PlaySE(SE_W015);
FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE); FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE);
+1 -1
View File
@@ -29,7 +29,7 @@ static void FieldCallback_Dig(void)
bool8 FldEff_UseDig(void) bool8 FldEff_UseDig(void)
{ {
u8 taskId = oei_task_add(); u8 taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(sub_80C9AFC); FLDEFF_SET_FUNC_TO_DATA(sub_80C9AFC);
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
+21 -20
View File
@@ -15,10 +15,10 @@
#include "constants/event_object_movement.h" #include "constants/event_object_movement.h"
#include "constants/maps.h" #include "constants/maps.h"
static void task08_080C9820(u8 taskId); static void Task_FieldEffectShowMon_Init(u8 taskId);
static void sub_80C98FC(u8 taskId); static void Task_FieldEffectShowMon_WaitFldeff(u8 taskId);
static void sub_80C98B0(u8 taskId); static void Task_FieldEffectShowMon_WaitPlayerAnim(u8 taskId);
static void sub_80C99A0(u8 taskId); static void Task_FieldEffectShowMon_Cleanup(u8 taskId);
static void sub_80C9A10(void); static void sub_80C9A10(void);
static void sub_80C9A60(void); static void sub_80C9A60(void);
@@ -37,13 +37,13 @@ bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId)
return TRUE; return TRUE;
} }
u8 oei_task_add(void) u8 CreateFieldEffectShowMon(void)
{ {
GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
return CreateTask(task08_080C9820, 8); return CreateTask(Task_FieldEffectShowMon_Init, 8);
} }
static void task08_080C9820(u8 taskId) static void Task_FieldEffectShowMon_Init(u8 taskId)
{ {
u8 mapObjId; u8 mapObjId;
@@ -55,48 +55,49 @@ static void task08_080C9820(u8 taskId)
{ {
if (gMapHeader.mapType == MAP_TYPE_UNDERWATER) if (gMapHeader.mapType == MAP_TYPE_UNDERWATER)
{ {
// Leftover from RS, inhibits the player anim while underwater.
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
gTasks[taskId].func = sub_80C98FC; gTasks[taskId].func = Task_FieldEffectShowMon_WaitFldeff;
} }
else else
{ {
sub_805CB70(); sub_805CB70();
ObjectEventSetHeldMovement(&gObjectEvents[mapObjId], MOVEMENT_ACTION_UNKNOWN_STEP_45); ObjectEventSetHeldMovement(&gObjectEvents[mapObjId], MOVEMENT_ACTION_UNKNOWN_STEP_45);
gTasks[taskId].func = sub_80C98B0; gTasks[taskId].func = Task_FieldEffectShowMon_WaitPlayerAnim;
} }
} }
} }
static void sub_80C98B0(u8 taskId) static void Task_FieldEffectShowMon_WaitPlayerAnim(u8 taskId)
{ {
if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[gPlayerAvatar.objectEventId]) == TRUE) if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[gPlayerAvatar.objectEventId]) == TRUE)
{ {
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
gTasks[taskId].func = sub_80C98FC; gTasks[taskId].func = Task_FieldEffectShowMon_WaitFldeff;
} }
} }
static void sub_80C98FC(u8 taskId) static void Task_FieldEffectShowMon_WaitFldeff(u8 taskId)
{ {
if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
{ {
gFieldEffectArguments[1] = GetPlayerFacingDirection(); gFieldEffectArguments[1] = GetPlayerFacingDirection();
if (gFieldEffectArguments[1] == 1) if (gFieldEffectArguments[1] == DIR_SOUTH)
gFieldEffectArguments[2] = 0; gFieldEffectArguments[2] = 0;
if (gFieldEffectArguments[1] == 2) if (gFieldEffectArguments[1] == DIR_NORTH)
gFieldEffectArguments[2] = 1; gFieldEffectArguments[2] = 1;
if (gFieldEffectArguments[1] == 3) if (gFieldEffectArguments[1] == DIR_WEST)
gFieldEffectArguments[2] = 2; gFieldEffectArguments[2] = 2;
if (gFieldEffectArguments[1] == 4) if (gFieldEffectArguments[1] == DIR_EAST)
gFieldEffectArguments[2] = 3; gFieldEffectArguments[2] = 3;
ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByCurrentState()); ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByCurrentState());
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]);
FieldEffectActiveListRemove(6); FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON);
gTasks[taskId].func = sub_80C99A0; gTasks[taskId].func = Task_FieldEffectShowMon_Cleanup;
} }
} }
static void sub_80C99A0(u8 taskId) static void Task_FieldEffectShowMon_Cleanup(u8 taskId)
{ {
FLDEFF_CALL_FUNC_IN_DATA(); FLDEFF_CALL_FUNC_IN_DATA();
gPlayerAvatar.unk6 = FALSE; gPlayerAvatar.unk6 = FALSE;
@@ -122,7 +123,7 @@ static void sub_80C9A10(void)
bool8 FldEff_UseRockSmash(void) bool8 FldEff_UseRockSmash(void)
{ {
u8 taskId = oei_task_add(); u8 taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(sub_80C9A60); FLDEFF_SET_FUNC_TO_DATA(sub_80C9A60);
IncrementGameStat(GAME_STAT_USED_ROCK_SMASH); IncrementGameStat(GAME_STAT_USED_ROCK_SMASH);
+1 -1
View File
@@ -33,7 +33,7 @@ static void FldEff_UseStrength(void)
bool8 sub_80D0860(void) bool8 sub_80D0860(void)
{ {
u8 taskId = oei_task_add(); u8 taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(sub_80D08A8); FLDEFF_SET_FUNC_TO_DATA(sub_80D08A8);
GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1); GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1);
return FALSE; return FALSE;
+1 -1
View File
@@ -43,7 +43,7 @@ bool8 FldEff_SweetScent(void)
u8 taskId; u8 taskId;
SetWeatherScreenFadeOut(); SetWeatherScreenFadeOut();
taskId = oei_task_add(); taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(StartSweetScentFieldEffect); FLDEFF_SET_FUNC_TO_DATA(StartSweetScentFieldEffect);
return FALSE; return FALSE;
} }
+1 -1
View File
@@ -28,7 +28,7 @@ static void FieldCallback_Teleport(void)
bool8 FldEff_UseTeleport(void) bool8 FldEff_UseTeleport(void)
{ {
u8 taskId = oei_task_add(); u8 taskId = CreateFieldEffectShowMon();
FLDEFF_SET_FUNC_TO_DATA(StartTeleportFieldEffect); FLDEFF_SET_FUNC_TO_DATA(StartTeleportFieldEffect);
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
return FALSE; return FALSE;