diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-02-25 16:35:38 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-02-25 16:35:38 -0500 |
commit | 565114625f3e8505b157c0c444c5d40caba150ee (patch) | |
tree | 6686534b2d08775224d5ff7b9fdca8c340b25457 | |
parent | 3b558edc7906b2a75b7d65aa396c611ce1802e62 (diff) |
fldeff_cut through SetUpFieldMove_Cut
-rw-r--r-- | asm/field_control_avatar.s | 2 | ||||
-rw-r--r-- | asm/field_player_avatar.s | 12 | ||||
-rw-r--r-- | asm/fldeff_cut.s | 161 | ||||
-rw-r--r-- | include/field_specials.h | 1 | ||||
-rw-r--r-- | include/fieldmap.h | 5 | ||||
-rw-r--r-- | include/metatile_behavior.h | 2 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/fieldmap.c | 30 | ||||
-rw-r--r-- | src/fldeff_cut.c | 68 | ||||
-rw-r--r-- | src/metatile_behavior.c | 41 | ||||
-rw-r--r-- | src/wild_encounter.c | 22 | ||||
-rw-r--r-- | sym_ewram.txt | 4 |
12 files changed, 129 insertions, 220 deletions
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index b74e60d1f..f1bef0721 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -332,7 +332,7 @@ sub_806CAC8: @ 806CAC8 movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0xFF - bl sub_8058F48 + bl MapGridGetMetatileAttributeAt mov r8, r0 mov r0, sp movs r1, 0 diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 5510caceb..6e425d2c7 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -2921,7 +2921,7 @@ IsPlayerFacingSurfableFishableWater: @ 805C8B0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] - bl sub_805C938 + bl MetatileAtCoordsIsWaterTile lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -2940,24 +2940,24 @@ _0805C92E: bx r1 thumb_func_end IsPlayerFacingSurfableFishableWater - thumb_func_start sub_805C938 -sub_805C938: @ 805C938 + thumb_func_start MetatileAtCoordsIsWaterTile +MetatileAtCoordsIsWaterTile: @ 805C938 push {lr} lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 movs r2, 0x1 - bl sub_8058F48 + bl MapGridGetMetatileAttributeAt lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl sub_805A2BC + bl TestMetatileAttributeBit lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 - thumb_func_end sub_805C938 + thumb_func_end MetatileAtCoordsIsWaterTile thumb_func_start ClearPlayerAvatarInfo ClearPlayerAvatarInfo: @ 805C95C diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s index c0266194e..fa7a114ab 100644 --- a/asm/fldeff_cut.s +++ b/asm/fldeff_cut.s @@ -5,143 +5,8 @@ .text - thumb_func_start sub_8097874 -sub_8097874: @ 8097874 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x1 - bl sub_8058F48 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_805A2BC - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8097874 - - thumb_func_start SetUpFieldMove_Cut -SetUpFieldMove_Cut: @ 8097898 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r4, _080978CC @ =gUnknown_2039874 - movs r0, 0 - strb r0, [r4] - bl CutMoveRuinValleyCheck - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080978E0 - movs r0, 0x5F - bl CheckObjectGraphicsInFrontOfPlayer - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08097904 - ldr r1, _080978D0 @ =gFieldCallback2 - ldr r0, _080978D4 @ =FieldCallback_PrepareFadeInFromMenu - str r0, [r1] - ldr r1, _080978D8 @ =gPostMenuFieldCallback - ldr r0, _080978DC @ =sub_80979D0 - b _080978EC - .align 2, 0 -_080978CC: .4byte gUnknown_2039874 -_080978D0: .4byte gFieldCallback2 -_080978D4: .4byte FieldCallback_PrepareFadeInFromMenu -_080978D8: .4byte gPostMenuFieldCallback -_080978DC: .4byte sub_80979D0 -_080978E0: - strb r0, [r4] -_080978E2: - ldr r1, _080978F4 @ =gFieldCallback2 - ldr r0, _080978F8 @ =FieldCallback_PrepareFadeInFromMenu - str r0, [r1] - ldr r1, _080978FC @ =gPostMenuFieldCallback - ldr r0, _08097900 @ =sub_8097984 -_080978EC: - str r0, [r1] - movs r0, 0x1 - b _08097970 - .align 2, 0 -_080978F4: .4byte gFieldCallback2 -_080978F8: .4byte FieldCallback_PrepareFadeInFromMenu -_080978FC: .4byte gPostMenuFieldCallback -_08097900: .4byte sub_8097984 -_08097904: - ldr r4, _0809797C @ =gPlayerFacingPosition - adds r1, r4, 0x2 - adds r0, r4, 0 - bl PlayerGetDestCoords - movs r7, 0 - adds r2, r4, 0 - ldr r0, _08097980 @ =0x0000ffff - mov r8, r0 -_08097916: - mov r1, r8 - adds r0, r1, r7 - ldrh r1, [r2, 0x2] - adds r0, r1 - movs r6, 0 - lsls r0, 16 - asrs r5, r0, 16 -_08097924: - mov r1, r8 - adds r0, r1, r6 - ldrh r1, [r2] - adds r0, r1 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - str r2, [sp] - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp] - movs r1, 0x4 - ldrsb r1, [r2, r1] - cmp r0, r1 - bne _0809795A - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8097874 - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp] - cmp r0, 0x1 - beq _080978E2 -_0809795A: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _08097924 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _08097916 - movs r0, 0 -_08097970: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809797C: .4byte gPlayerFacingPosition -_08097980: .4byte 0x0000ffff - thumb_func_end SetUpFieldMove_Cut - - thumb_func_start sub_8097984 -sub_8097984: @ 8097984 + thumb_func_start FieldCallback_CutGrass +FieldCallback_CutGrass: @ 8097984 push {lr} movs r0, 0x1 bl FieldEffectStart @@ -154,7 +19,7 @@ sub_8097984: @ 8097984 bx r0 .align 2, 0 _0809799C: .4byte gFieldEffectArguments - thumb_func_end sub_8097984 + thumb_func_end FieldCallback_CutGrass thumb_func_start sub_80979A0 sub_80979A0: @ 80979A0 @@ -181,8 +46,8 @@ _080979C8: .4byte gTasks _080979CC: .4byte sub_8097A20 thumb_func_end sub_80979A0 - thumb_func_start sub_80979D0 -sub_80979D0: @ 80979D0 + thumb_func_start FieldCallback_CutTree +FieldCallback_CutTree: @ 80979D0 push {lr} bl GetCursorSelectionMonId ldr r1, _080979E8 @ =gFieldEffectArguments @@ -196,7 +61,7 @@ sub_80979D0: @ 80979D0 .align 2, 0 _080979E8: .4byte gFieldEffectArguments _080979EC: .4byte EventScript_FldEffCut - thumb_func_end sub_80979D0 + thumb_func_end FieldCallback_CutTree thumb_func_start sub_80979F0 sub_80979F0: @ 80979F0 @@ -228,14 +93,14 @@ sub_8097A20: @ 8097A20 push {lr} movs r0, 0x1 bl FieldEffectActiveListRemove - ldr r0, _08097A38 @ =gUnknown_2039874 + ldr r0, _08097A38 @ =sScheduleOpenDottedHole ldrb r0, [r0] cmp r0, 0x1 bne _08097A3C bl CutMoveOpenDottedHoleDoor b _08097A42 .align 2, 0 -_08097A38: .4byte gUnknown_2039874 +_08097A38: .4byte sScheduleOpenDottedHole _08097A3C: movs r0, 0x3A bl FieldEffectStart @@ -289,7 +154,7 @@ _08097A78: bne _08097ABC adds r0, r4, 0 adds r1, r5, 0 - bl sub_8097874 + bl MetatileAtCoordsIsGrassTile lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -312,7 +177,7 @@ _08097ABC: cmp r7, 0x2 bls _08097A68 bl DrawWholeMapView - ldr r4, _08097B40 @ =gUnknown_2039870 + ldr r4, _08097B40 @ =sCutGrassSpriteArrayPtr movs r0, 0x8 bl Alloc str r0, [r4] @@ -364,7 +229,7 @@ _08097AE2: .align 2, 0 _08097B38: .4byte gPlayerFacingPosition _08097B3C: .4byte 0x0000ffff -_08097B40: .4byte gUnknown_2039870 +_08097B40: .4byte sCutGrassSpriteArrayPtr _08097B44: .4byte gSprites _08097B48: .4byte gPlayerAvatar _08097B4C: .4byte gUnknown_83D414C @@ -485,7 +350,7 @@ sub_8097C18: @ 8097C18 push {r4-r6,lr} movs r4, 0x1 _08097C1C: - ldr r6, _08097C64 @ =gUnknown_2039870 + ldr r6, _08097C64 @ =sCutGrassSpriteArrayPtr ldr r0, [r6] adds r0, r4 ldrb r1, [r0] @@ -516,7 +381,7 @@ _08097C1C: pop {r0} bx r0 .align 2, 0 -_08097C64: .4byte gUnknown_2039870 +_08097C64: .4byte sCutGrassSpriteArrayPtr _08097C68: .4byte gSprites thumb_func_end sub_8097C18 diff --git a/include/field_specials.h b/include/field_specials.h index 02069ff84..b7d7f4f1d 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -25,5 +25,6 @@ bool8 ShouldShowBoxWasFullMessage(void); u16 GetHiddenItemAttr(u32 hiddenItem, u8 attr); u8 GetUnlockedSeviiAreas(void); u32 GetPlayerTrainerId(void); +bool8 CutMoveRuinValleyCheck(void); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 406ec2959..a8e31685f 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -19,6 +19,7 @@ u32 MapGridGetMetatileBehaviorAt(int, int); u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y); void MapGridSetMetatileIdAt(int, int, u16); void MapGridSetMetatileEntryAt(int, int, u16); +u8 MapGridGetZCoordAt(s32 x, s32 y); void GetCameraCoords(u16*, u16*); bool8 MapGridIsImpassableAt(s32, s32); s32 GetMapBorderIdAt(s32, s32); @@ -29,8 +30,8 @@ struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y); void sub_8059948(u8 a0, u8 a1); void save_serialize_map(void); -u32 sub_8058F1C(u32 original, u8 bit); -u32 sub_8058F48(s16 x, s16 y, u8 z); +u32 GetMetatileAttributeFromRawMetatileBehavior(u32 original, u8 bit); +u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attr); void MapGridSetMetatileImpassabilityAt(s32 x, s32 y, bool32 arg2); #endif //GUARD_FIELDMAP_H diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h index d567ab77c..f3195e6c9 100644 --- a/include/metatile_behavior.h +++ b/include/metatile_behavior.h @@ -114,7 +114,7 @@ bool8 MetatileBehavior_UnusedReturnFalse_10(u8 metatileBehavior); bool8 MetatileBehavior_UnusedReturnFalse_11(u8 metatileBehavior); bool8 MetatileBehavior_UnusedReturnFalse_12(u8 metatileBehavior); bool8 MetatileBehavior_UnusedReturnFalse_13(u8 metatileBehavior); -bool8 sub_805A2BC(u8 metatileBehavior, u8 playerDirection); +bool8 TestMetatileAttributeBit(u8 attr, u8 bitmask); bool8 MetatileBehavior_UnusedIsSpinRight(u8 metatileBehavior); bool8 MetatileBehavior_UnusedIsSpinLeft(u8 metatileBehavior); bool8 MetatileBehavior_UnusedIsSpinUp(u8 metatileBehavior); diff --git a/ld_script.txt b/ld_script.txt index 74607f92e..5d4bbf6f9 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -131,6 +131,7 @@ SECTIONS { asm/pokemon_storage_system.o(.text); 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); diff --git a/src/fieldmap.c b/src/fieldmap.c index 1f7d8b0b8..635f11af8 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -35,18 +35,18 @@ EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {}; const struct ConnectionFlags sDummyConnectionFlags = {}; -const u32 gUnknown_8352EF0[] = { - 0x1ff, - 0x3e00, - 0x3c000, - 0xfc0000, - 0x7000000, +const u32 sMetatileAttrMasks[] = { + 0x000001ff, + 0x00003e00, + 0x0003c000, + 0x00fc0000, + 0x07000000, 0x18000000, 0x60000000, 0x80000000 }; -const u8 gUnknown_8352F10[] = { +const u8 sMetatileAttrShifts[] = { 0, 9, 14, @@ -443,28 +443,28 @@ u32 MapGridGetMetatileIdAt(s32 x, s32 y) return block & 0x3FF; } -u32 sub_8058F1C(u32 original, u8 bit) +u32 GetMetatileAttributeFromRawMetatileBehavior(u32 original, u8 bit) { if (bit >= 8) return original; - return (original & gUnknown_8352EF0[bit]) >> gUnknown_8352F10[bit]; + return (original & sMetatileAttrMasks[bit]) >> sMetatileAttrShifts[bit]; } -u32 sub_8058F48(s16 x, s16 y, u8 z) +u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attr) { u16 metatileId = MapGridGetMetatileIdAt(x, y); - return GetBehaviorByMetatileIdAndMapLayout(gMapHeader.mapLayout, metatileId, z); + return GetBehaviorByMetatileIdAndMapLayout(gMapHeader.mapLayout, metatileId, attr); } u32 MapGridGetMetatileBehaviorAt(s32 x, s32 y) { - return sub_8058F48(x, y, 0); + return MapGridGetMetatileAttributeAt(x, y, 0); } u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y) { - return sub_8058F48(x, y, 6); + return MapGridGetMetatileAttributeAt(x, y, 6); } void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatile) @@ -512,12 +512,12 @@ u32 GetBehaviorByMetatileIdAndMapLayout(struct MapLayout *mapLayout, u16 metatil if (metatile < NUM_METATILES_IN_PRIMARY) { attributes = mapLayout->primaryTileset->metatileAttributes; - return sub_8058F1C(attributes[metatile], attr); + return GetMetatileAttributeFromRawMetatileBehavior(attributes[metatile], attr); } else if (metatile < 0x400) { attributes = mapLayout->secondaryTileset->metatileAttributes; - return sub_8058F1C(attributes[metatile - NUM_METATILES_IN_PRIMARY], attr); + return GetMetatileAttributeFromRawMetatileBehavior(attributes[metatile - NUM_METATILES_IN_PRIMARY], attr); } else { diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c new file mode 100644 index 000000000..c30eb2d80 --- /dev/null +++ b/src/fldeff_cut.c @@ -0,0 +1,68 @@ +#include "global.h" +#include "gflib.h" +#include "fieldmap.h" +#include "field_specials.h" +#include "fldeff.h" +#include "field_effect.h" +#include "field_player_avatar.h" +#include "metatile_behavior.h" +#include "party_menu.h" +#include "constants/event_objects.h" + +EWRAM_DATA u8 *sCutGrassSpriteArrayPtr = NULL; +EWRAM_DATA bool8 sScheduleOpenDottedHole = FALSE; + +void FieldCallback_CutTree(void); +void FieldCallback_CutGrass(void); + +u8 MetatileAtCoordsIsGrassTile(s16 x, s16 y) +{ + return TestMetatileAttributeBit(MapGridGetMetatileAttributeAt(x, y, 1), 1); +} + +bool8 SetUpFieldMove_Cut(void) +{ + s16 x, y; + u8 i, j; + sScheduleOpenDottedHole = FALSE; + if (CutMoveRuinValleyCheck() == TRUE) + { + sScheduleOpenDottedHole = TRUE; + gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_CutGrass; + return TRUE; + } + + if (CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_CUT_TREE) == TRUE) + { + gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_CutTree; + return TRUE; + } + else + { + register s32 neg1 asm("r8"); + struct MapPosition *pos; + 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) + { + gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_CutGrass; + return TRUE; + } + } + } + } + return FALSE; + } +} diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c index 8e07c1c97..7c05d1dde 100644 --- a/src/metatile_behavior.c +++ b/src/metatile_behavior.c @@ -16,39 +16,12 @@ static const bool8 sTileSurfable[METATILE_COUNT] = { [MB_SOUTHWARD_CURRENT] = TRUE }; -static const u8 sTileBitAttributes[] = { - 0x00, - 0x01, - 0x02, - 0x04, - 0x08, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00 +static const u8 sTileBitAttributes[32] = { + [0] = 0x00, + [1] = 0x01, + [2] = 0x02, + [3] = 0x04, + [4] = 0x08, }; bool8 MetatileBehavior_UnusedReturnTrue(u8 metatileBehavior) @@ -769,7 +742,7 @@ bool8 MetatileBehavior_UnusedReturnFalse_11(u8 metatileBehavior) { return FALSE; bool8 MetatileBehavior_UnusedReturnFalse_12(u8 metatileBehavior) { return FALSE; } bool8 MetatileBehavior_UnusedReturnFalse_13(u8 metatileBehavior) { return FALSE; } -bool8 sub_805A2BC(u8 arg1, u8 arg2) +bool8 TestMetatileAttributeBit(u8 arg1, u8 arg2) { if(sTileBitAttributes[arg1] & arg2) return TRUE; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index b32eb583a..b3605db47 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -367,11 +367,11 @@ bool8 StandardWildEncounter(u32 currMetatileBehavior, u16 previousMetatileBehavi headerId = GetCurrentMapWildMonHeaderId(); if (headerId != 0xFFFF) { - if (sub_8058F1C(currMetatileBehavior, 4) == TRUE) + if (GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 4) == TRUE) { if (gWildMonHeaders[headerId].landMonsInfo == NULL) return FALSE; - else if (previousMetatileBehavior != sub_8058F1C(currMetatileBehavior, 0) && !DoGlobalWildEncounterDiceRoll()) + else if (previousMetatileBehavior != GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0) && !DoGlobalWildEncounterDiceRoll()) return FALSE; if (DoWildEncounterRateTest(gWildMonHeaders[headerId].landMonsInfo->encounterRate, FALSE) != TRUE) { @@ -405,12 +405,12 @@ bool8 StandardWildEncounter(u32 currMetatileBehavior, u16 previousMetatileBehavi } } } - else if (sub_8058F1C(currMetatileBehavior, 4) == 2 - || (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && MetatileBehavior_IsBridge(sub_8058F1C(currMetatileBehavior, 0)) == TRUE)) + else if (GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 4) == 2 + || (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && MetatileBehavior_IsBridge(GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0)) == TRUE)) { if (gWildMonHeaders[headerId].waterMonsInfo == NULL) return FALSE; - else if (previousMetatileBehavior != sub_8058F1C(currMetatileBehavior, 0) && !DoGlobalWildEncounterDiceRoll()) + else if (previousMetatileBehavior != GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0) && !DoGlobalWildEncounterDiceRoll()) return FALSE; else if (DoWildEncounterRateTest(gWildMonHeaders[headerId].waterMonsInfo->encounterRate, FALSE) != TRUE) { @@ -474,7 +474,7 @@ bool8 SweetScentWildEncounter(void) headerId = GetCurrentMapWildMonHeaderId(); if (headerId != 0xFFFF) { - if (sub_8058F48(x, y, 4) == 1) + if (MapGridGetMetatileAttributeAt(x, y, 4) == 1) { if (TryStartRoamerEncounter() == TRUE) { @@ -490,7 +490,7 @@ bool8 SweetScentWildEncounter(void) BattleSetup_StartWildBattle(); return TRUE; } - else if (sub_8058F48(x, y, 4) == 2) + else if (MapGridGetMetatileAttributeAt(x, y, 4) == 2) { if (TryStartRoamerEncounter() == TRUE) { @@ -711,7 +711,7 @@ void ResetEncounterRateModifiers(void) static bool8 HandleWildEncounterCooldown(u32 currMetatileBehavior) { - u8 unk = sub_8058F1C(currMetatileBehavior, 4); + u8 unk = GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 4); u32 minSteps; u32 encRate; if (unk == 0) @@ -763,19 +763,19 @@ bool8 TryStandardWildEncounter(u32 currMetatileBehavior) { if (!HandleWildEncounterCooldown(currMetatileBehavior)) { - sWildEncounterData.prevMetatileBehavior = sub_8058F1C(currMetatileBehavior, 0); + sWildEncounterData.prevMetatileBehavior = GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0); return FALSE; } else if (StandardWildEncounter(currMetatileBehavior, sWildEncounterData.prevMetatileBehavior) == TRUE) { sWildEncounterData.encounterRateBuff = 0; sWildEncounterData.stepsSinceLastEncounter = 0; - sWildEncounterData.prevMetatileBehavior = sub_8058F1C(currMetatileBehavior, 0); + sWildEncounterData.prevMetatileBehavior = GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0); return TRUE; } else { - sWildEncounterData.prevMetatileBehavior = sub_8058F1C(currMetatileBehavior, 0); + sWildEncounterData.prevMetatileBehavior = GetMetatileAttributeFromRawMetatileBehavior(currMetatileBehavior, 0); return FALSE; } } diff --git a/sym_ewram.txt b/sym_ewram.txt index d358929eb..372b15b6a 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -220,10 +220,10 @@ gUnknown_203982C: @ 203982C .include "src/script_movement.o" .align 2 -gUnknown_2039870: @ 2039870 +sCutGrassSpriteArrayPtr: @ 2039870 .space 0x4 -gUnknown_2039874: @ 2039874 +sScheduleOpenDottedHole: @ 2039874 .space 0x4 .align 2 |