summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2018-04-10 13:59:55 -0700
committerMarcus Huderle <huderlem@gmail.com>2018-04-10 13:59:55 -0700
commitd96e37aa67e8eee13dab6db60f8e742e3eaff8d7 (patch)
tree1b5371e8240ee3ccbe820ddf2e63cbd0b01f3fbf /src
parent9179520b3802f7b2ed74fd930a95bb577c2c06f0 (diff)
Document/cleanup fldeff_cut.c
Diffstat (limited to 'src')
-rw-r--r--src/debug/start_menu_debug.c7
-rw-r--r--src/fldeff_cut.c114
-rw-r--r--src/fldeff_secretpower.c12
-rw-r--r--src/fldeff_strength.c4
-rw-r--r--src/rom6.c8
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;