diff options
author | Marcus Huderle <huderlem@gmail.com> | 2018-04-10 13:59:55 -0700 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2018-04-10 13:59:55 -0700 |
commit | d96e37aa67e8eee13dab6db60f8e742e3eaff8d7 (patch) | |
tree | 1b5371e8240ee3ccbe820ddf2e63cbd0b01f3fbf /src | |
parent | 9179520b3802f7b2ed74fd930a95bb577c2c06f0 (diff) |
Document/cleanup fldeff_cut.c
Diffstat (limited to 'src')
-rw-r--r-- | src/debug/start_menu_debug.c | 7 | ||||
-rw-r--r-- | src/fldeff_cut.c | 114 | ||||
-rw-r--r-- | src/fldeff_secretpower.c | 12 | ||||
-rw-r--r-- | src/fldeff_strength.c | 4 | ||||
-rw-r--r-- | src/rom6.c | 8 |
5 files changed, 81 insertions, 64 deletions
diff --git a/src/debug/start_menu_debug.c b/src/debug/start_menu_debug.c index 019bac3f4..b16b15a0a 100644 --- a/src/debug/start_menu_debug.c +++ b/src/debug/start_menu_debug.c @@ -34,12 +34,10 @@ #include "wild_encounter.h" #include "battle_setup.h" #include "safari_zone.h" -#include "fldeff_cut.h" #include "fldeff_flash.h" #include "rom6.h" #include "fldeff_strength.h" #include "pokemon_menu.h" -#include "fldeff_secretpower.h" #include "data2.h" #include "item.h" #include "reset_rtc_screen.h" @@ -49,6 +47,9 @@ #include "gba/m4a_internal.h" #include "berry_blender.h" +extern void Debug_SetUpFieldMove_Cut(void); +extern void Debug_SetUpFieldMove_SecretPower(void); + void debug_sub_8076BB4(u8); void debug_sub_8077CF4(u8 x, u8 y); u8 DebugMenu_807706C(void); @@ -1305,7 +1306,7 @@ u8 DebugMenu_Safari(void) bool8 DebugMenu_8077BB4(void) { - debug_sub_80AFEE4(); + Debug_SetUpFieldMove_Cut(); return TRUE; } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 6dd643541..bea376645 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -1,5 +1,4 @@ #include "global.h" -#include "fldeff_cut.h" #include "field_camera.h" #include "field_effect.h" #include "event_object_movement.h" @@ -18,13 +17,14 @@ #include "trig.h" #include "ewram.h" #include "constants/field_effects.h" +#include "constants/map_objects.h" #include "constants/songs.h" extern void (*gFieldCallback)(void); extern void (*gPostMenuFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; -extern const u8 S_UseCut[]; +extern const u8 DoCutFieldEffectScript[]; const struct OamData gOamData_CutGrass = { @@ -61,7 +61,17 @@ const struct SpriteFrameImage gSpriteImageTable_CutGrass[] = const struct SpritePalette gFieldEffectObjectPaletteInfo6 = {gFieldEffectObjectPalette6, 0x1000}; -static void sub_80A2A48(struct Sprite *); +static void FieldCallback_CutTree(void); +static void FieldCallback_CutGrass(void); +static void StartCutTreeFieldEffect(void); +static void StartCutGrassFieldEffect(void); +static void SetCutGrassMetatile(s16, s16); +static void SetCutGrassMetatiles(s16, s16); +static void CutGrassSpriteCallback1(struct Sprite *); +static void CutGrassSpriteCallback2(struct Sprite *); +static void CutGrassSpriteCallbackEnd(struct Sprite *); + + static const struct SpriteTemplate gSpriteTemplate_CutGrass = { .tileTag = 0xFFFF, @@ -70,21 +80,21 @@ static const struct SpriteTemplate gSpriteTemplate_CutGrass = .anims = gSpriteAnimTable_CutGrass, .images = gSpriteImageTable_CutGrass, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A2A48, + .callback = CutGrassSpriteCallback1, }; #if DEBUG -void debug_sub_80AFEE4(void) +void Debug_SetUpFieldMove_Cut(void) { s16 x, y; u8 i, j; u8 metatile; - if (npc_before_player_of_type(0x52) == TRUE) + if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_CUTTABLE_TREE) == TRUE) { gLastFieldPokeMenuOpened = 0; - sub_80A2634(); + FieldCallback_CutTree(); return; } @@ -102,12 +112,13 @@ void debug_sub_80AFEE4(void) || MetatileBehavior_IsAshGrass(metatile) == TRUE) { gLastFieldPokeMenuOpened = 0; - sub_80A25E8(); + FieldCallback_CutGrass(); return; } } } } + ScriptContext2_Disable(); } @@ -119,19 +130,20 @@ bool8 SetUpFieldMove_Cut(void) u8 i, j; u8 tileBehavior; - if(npc_before_player_of_type(0x52) == TRUE) // is in front of tree? + if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_CUTTABLE_TREE) == TRUE) { + // Standing in front of cuttable tree. gFieldCallback = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = sub_80A2634; + gPostMenuFieldCallback = FieldCallback_CutTree; return TRUE; } - else // is in ash or grass to cut? + else { PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); - for(i = 0; i < 3; i++) + for (i = 0; i < 3; i++) { y = i - 1 + gPlayerFacingPosition.y; - for(j = 0; j < 3; j++) + for (j = 0; j < 3; j++) { x = j - 1 + gPlayerFacingPosition.x; if(MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) @@ -140,18 +152,21 @@ bool8 SetUpFieldMove_Cut(void) if(MetatileBehavior_IsPokeGrass(tileBehavior) == TRUE || MetatileBehavior_IsAshGrass(tileBehavior) == TRUE) { + // Standing in front of grass. gFieldCallback = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = sub_80A25E8; + gPostMenuFieldCallback = FieldCallback_CutGrass; return TRUE; } } } } - return FALSE; // do not use cut + + // Not a valid location to use Cut. + return FALSE; } } -void sub_80A25E8(void) +static void FieldCallback_CutGrass(void) { FieldEffectStart(FLDEFF_USE_CUT_ON_GRASS); gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; @@ -161,29 +176,29 @@ bool8 FldEff_UseCutOnGrass(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (u32)sub_80A2684 >> 16; - gTasks[taskId].data[9] = (u32)sub_80A2684; + gTasks[taskId].data[8] = (u32)StartCutGrassFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartCutGrassFieldEffect; IncrementGameStat(GAME_STAT_USED_CUT); return FALSE; } -void sub_80A2634(void) +static void FieldCallback_CutTree(void) { gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; - ScriptContext1_SetupScript(S_UseCut); + ScriptContext1_SetupScript(DoCutFieldEffectScript); } bool8 FldEff_UseCutOnTree(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (u32)sub_80A2B00 >> 16; - gTasks[taskId].data[9] = (u32)sub_80A2B00; + gTasks[taskId].data[8] = (u32)StartCutTreeFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartCutTreeFieldEffect; IncrementGameStat(GAME_STAT_USED_CUT); return FALSE; } -void sub_80A2684(void) +static void StartCutGrassFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_GRASS); FieldEffectStart(FLDEFF_CUT_GRASS); @@ -193,41 +208,42 @@ bool8 FldEff_CutGrass(void) { s16 x, y; u8 tileBehavior; - u8 i, j; // not in for loop? + u8 i, j; - for(i = 0, PlaySE(SE_W015), PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); i < 3; i++) + for (i = 0, PlaySE(SE_W015), PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); i < 3; i++) { y = i - 1 + gPlayerFacingPosition.y; - for(j = 0; j < 3; j++) + for (j = 0; j < 3; j++) { x = j - 1 + gPlayerFacingPosition.x; - if(MapGridGetZCoordAt(x, y) == (s8)gPlayerFacingPosition.height) + if (MapGridGetZCoordAt(x, y) == (s8)gPlayerFacingPosition.height) { tileBehavior = MapGridGetMetatileBehaviorAt(x, y); - if(MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE) + if (MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE) { - sub_80A27A8(x, y); + SetCutGrassMetatile(x, y); sub_805BCC0(x, y); } } } } - sub_80A28F4(gPlayerFacingPosition.x - 1, gPlayerFacingPosition.y - 2); + + SetCutGrassMetatiles(gPlayerFacingPosition.x - 1, gPlayerFacingPosition.y - 2); DrawWholeMapView(); // populate sprite ID array - for(i = 0; i < 8; i++) + for (i = 0; i < 8; i++) { eCutGrassSpriteArray[i] = CreateSprite((struct SpriteTemplate *)&gSpriteTemplate_CutGrass, gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y + 20, 0); gSprites[eCutGrassSpriteArray[i]].data[2] = 32 * i; } + return 0; } // set map grid metatile depending on x, y -// TODO: enum for metatile IDs -void sub_80A27A8(s16 x, s16 y) +static void SetCutGrassMetatile(s16 x, s16 y) { int metatileId = MapGridGetMetatileIdAt(x, y); @@ -267,7 +283,7 @@ void sub_80A27A8(s16 x, s16 y) } } -s32 sub_80A28A0(s16 x, s16 y) +static s32 sub_80A28A0(s16 x, s16 y) { u16 metatileId = MapGridGetMetatileIdAt(x, y); @@ -283,18 +299,18 @@ s32 sub_80A28A0(s16 x, s16 y) return 0; } -void sub_80A28F4(s16 x, s16 y) +static void SetCutGrassMetatiles(s16 x, s16 y) { s16 i; u16 lowerY = y + 3; - for(i = 0; i < 3; i++) + for (i = 0; i < 3; i++) { u16 currentX = x + i; s16 currentXsigned = x + i; - if(MapGridGetMetatileIdAt(currentXsigned, y) == 21) + if (MapGridGetMetatileIdAt(currentXsigned, y) == 21) { - switch((u8)sub_80A28A0(currentXsigned, y + 1)) + switch ((u8)sub_80A28A0(currentXsigned, y + 1)) { case 1: MapGridSetMetatileIdAt(currentXsigned, y + 1, 0x208); @@ -310,29 +326,29 @@ void sub_80A28F4(s16 x, s16 y) break; } } - if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY) == 1) + if (MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY) == 1) { - if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x208) + if (MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x208) MapGridSetMetatileIdAt((s16)currentX, (s16)lowerY + 1, 0x1); - if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x281) + if (MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x281) MapGridSetMetatileIdAt((s16)currentX, (s16)lowerY + 1, 0x279); - if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x282) + if (MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x282) MapGridSetMetatileIdAt((s16)currentX, (s16)lowerY + 1, 0x27A); - if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x283) + if (MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x283) MapGridSetMetatileIdAt((s16)currentX, (s16)lowerY + 1, 0x27B); } } } -static void sub_80A2A48(struct Sprite *sprite) +static void CutGrassSpriteCallback1(struct Sprite *sprite) { sprite->data[0] = 8; sprite->data[1] = 0; sprite->data[3] = 0; - sprite->callback = (void *)objc_8097BBC; + sprite->callback = CutGrassSpriteCallback2; } -void objc_8097BBC(struct Sprite *sprite) +static void CutGrassSpriteCallback2(struct Sprite *sprite) { u16 tempdata; u16 tempdata2; @@ -348,10 +364,10 @@ void objc_8097BBC(struct Sprite *sprite) if((s16)tempdata != 28) // done rotating the grass, execute clean up function sprite->data[1]++; else - sprite->callback = (void *)sub_80A2AB8; + sprite->callback = CutGrassSpriteCallbackEnd; } -void sub_80A2AB8(void) +static void CutGrassSpriteCallbackEnd(struct Sprite *sprite) { u8 i; @@ -362,7 +378,7 @@ void sub_80A2AB8(void) ScriptContext2_Disable(); } -void sub_80A2B00(void) +static void StartCutTreeFieldEffect(void) { PlaySE(SE_W015); FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE); diff --git a/src/fldeff_secretpower.c b/src/fldeff_secretpower.c index c9fbc7b84..e58a1e82f 100644 --- a/src/fldeff_secretpower.c +++ b/src/fldeff_secretpower.c @@ -164,7 +164,7 @@ const struct SpriteFrameImage gSpriteImageTable_83D25EC[] = }; static void CaveEntranceSpriteCallback1(struct Sprite *); -static const struct SpriteTemplate sCaveEntranceSpriteTemplate = +static const struct SpriteTemplate sSpriteTemplate_CaveEntrance = { .tileTag = 0xFFFF, .paletteTag = 4099, @@ -176,7 +176,7 @@ static const struct SpriteTemplate sCaveEntranceSpriteTemplate = }; static void TreeEntranceSpriteCallback1(struct Sprite *); -const struct SpriteTemplate sTreeEntranceSpriteTemplate = +const struct SpriteTemplate sSpriteTemplate_TreeEntrance = { .tileTag = 0xFFFF, .paletteTag = 4104, @@ -188,7 +188,7 @@ const struct SpriteTemplate sTreeEntranceSpriteTemplate = }; static void ShrubEntranceSpriteCallback1(struct Sprite *); -const struct SpriteTemplate sShrubEntranceSpriteTemplate = +const struct SpriteTemplate sSpriteTemplate_ShrubEntrance = { .tileTag = 0xFFFF, .paletteTag = 4104, @@ -350,7 +350,7 @@ bool8 FldEff_SecretPowerCave(void) { AdjustSecretPowerSpritePixelOffsets(); CreateSprite( - &sCaveEntranceSpriteTemplate, + &sSpriteTemplate_CaveEntrance, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); @@ -419,7 +419,7 @@ bool8 FldEff_SecretPowerTree(void) AdjustSecretPowerSpritePixelOffsets(); CreateSprite( - &sTreeEntranceSpriteTemplate, + &sSpriteTemplate_TreeEntrance, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); @@ -484,7 +484,7 @@ bool8 FldEff_SecretPowerShrub(void) { AdjustSecretPowerSpritePixelOffsets(); CreateSprite( - &sShrubEntranceSpriteTemplate, + &sSpriteTemplate_ShrubEntrance, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index b41f369bb..9f1f3a670 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -31,7 +31,7 @@ void debug_sub_8130318(void) gSpecialVar_Result = 0; sub_811AA38(); } - else if (npc_before_player_of_type(MAP_OBJ_GFX_PUSHABLE_BOULDER) == TRUE) + else if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_PUSHABLE_BOULDER) == TRUE) { gLastFieldPokeMenuOpened = 0; gSpecialVar_Result = 0; @@ -54,7 +54,7 @@ bool8 SetUpFieldMove_Strength(void) } else { - if (npc_before_player_of_type(87) != TRUE) + if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_PUSHABLE_BOULDER) != TRUE) return 0; gSpecialVar_Result = gLastFieldPokeMenuOpened; gFieldCallback = FieldCallback_PrepareFadeInFromMenu; diff --git a/src/rom6.c b/src/rom6.c index e7b84e42c..30eb62c16 100644 --- a/src/rom6.c +++ b/src/rom6.c @@ -32,14 +32,14 @@ static void sub_810B58C(void); static void sub_810B5D8(void); static void sub_810B634(void); -bool8 npc_before_player_of_type(u8 a) +bool8 SetLastTalkedObjectInFrontOfPlayer(u8 graphicsId) { u8 mapObjId; GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); gPlayerFacingPosition.height = PlayerGetZCoord(); mapObjId = GetFieldObjectIdByXYZ(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.height); - if (gMapObjects[mapObjId].graphicsId != a) + if (gMapObjects[mapObjId].graphicsId != graphicsId) { return FALSE; } @@ -121,7 +121,7 @@ static void sub_810B4CC(u8 taskId) #if DEBUG void debug_sub_8120968(void) { - if (npc_before_player_of_type(MAP_OBJ_GFX_BREAKABLE_ROCK) == TRUE) + if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_BREAKABLE_ROCK) == TRUE) { gLastFieldPokeMenuOpened = 0; sub_810B53C(); @@ -135,7 +135,7 @@ void debug_sub_8120968(void) bool8 SetUpFieldMove_RockSmash(void) { - if (npc_before_player_of_type(0x56) == TRUE) + if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_BREAKABLE_ROCK) == TRUE) { gFieldCallback = FieldCallback_PrepareFadeInFromMenu; gPostMenuFieldCallback = sub_810B53C; |