summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnonymousRandomPerson <chenghanngan.us@gmail.com>2022-01-13 23:18:59 -0500
committerAnonymousRandomPerson <chenghanngan.us@gmail.com>2022-01-13 23:18:59 -0500
commitafbc7deaea1d66d39331bc078d3f2e22cbdec0a3 (patch)
tree22cbd16fe6ddd64f686ecc02499ad648162bf964 /src
parent453618864e685eacae640dc2b317a645422264e2 (diff)
Decomped SetWalkAction()
Diffstat (limited to 'src')
-rw-r--r--src/dungeon_action.c17
-rw-r--r--src/dungeon_movement.c8
-rw-r--r--src/status_checks.c3
3 files changed, 22 insertions, 6 deletions
diff --git a/src/dungeon_action.c b/src/dungeon_action.c
index 6d8fcb3..9034e4c 100644
--- a/src/dungeon_action.c
+++ b/src/dungeon_action.c
@@ -1,6 +1,9 @@
#include "global.h"
#include "dungeon_action.h"
+
+#include "constants/dungeon_action.h"
#include "dungeon_entity.h"
+#include "pokemon.h"
void SetAction(struct DungeonActionContainer *actionPointer, u16 action)
{
@@ -8,3 +11,17 @@ void SetAction(struct DungeonActionContainer *actionPointer, u16 action)
actionPointer->actionUseIndex = 0;
actionPointer->unkC = 0;
}
+
+void SetWalkAction(struct DungeonActionContainer *actionPointer, s16 species)
+{
+ if (GetIsMoving(species))
+ {
+ actionPointer->action = DUNGEON_ACTION_WALK;
+ }
+ else
+ {
+ actionPointer->action = DUNGEON_ACTION_WAIT;
+ }
+ actionPointer->actionUseIndex = 0;
+ actionPointer->unkC = 0;
+}
diff --git a/src/dungeon_movement.c b/src/dungeon_movement.c
index 3df74ee..d342262 100644
--- a/src/dungeon_movement.c
+++ b/src/dungeon_movement.c
@@ -7,6 +7,7 @@
#include "constants/status.h"
#include "constants/targeting.h"
#include "code_80521D0.h"
+#include "dungeon_action.h"
#include "dungeon_ai_items.h"
#include "dungeon_capabilities_1.h"
#include "dungeon_global_data.h"
@@ -26,7 +27,6 @@ extern char *gPtrItsaMonsterHouseMessage;
extern void SendImmobilizeEndMessage(struct DungeonEntity*, struct DungeonEntity*);
extern void SetMessageArgument(char[], struct DungeonEntity*, u32);
extern void ResetAction(u16*);
-extern void SetWalkAction(u16*, s16);
extern void DecideAttack(struct DungeonEntity*);
extern void MoveIfPossible(struct DungeonEntity*, bool8);
extern u8 sub_8044B28(void);
@@ -209,7 +209,7 @@ void DecideAction(struct DungeonEntity *pokemon)
ResetAction(&pokemonData->action.action);
if (pokemonData->clientType == CLIENT_TYPE_CLIENT)
{
- SetWalkAction(&pokemonData->action.action, pokemonData->entityID);
+ SetWalkAction(&pokemonData->action, pokemonData->entityID);
pokemonData->action.facingDir = DungeonRandomCapped(NUM_DIRECTIONS);
pokemonData->targetPosition.x = pokemon->posWorld.x;
pokemonData->targetPosition.y = pokemon->posWorld.y - 1;
@@ -228,7 +228,7 @@ void DecideAction(struct DungeonEntity *pokemon)
}
if (pokemonData->volatileStatus == VOLATILE_STATUS_CONFUSED)
{
- SetWalkAction(&pokemonData->action.action, pokemonData->entityID);
+ SetWalkAction(&pokemonData->action, pokemonData->entityID);
}
else
{
@@ -243,7 +243,7 @@ void DecideAction(struct DungeonEntity *pokemon)
{
if (pokemonData->volatileStatus == VOLATILE_STATUS_CONFUSED)
{
- SetWalkAction(&pokemonData->action.action, pokemonData->entityID);
+ SetWalkAction(&pokemonData->action, pokemonData->entityID);
}
else
{
diff --git a/src/status_checks.c b/src/status_checks.c
index 5abb0fe..ed39e99 100644
--- a/src/status_checks.c
+++ b/src/status_checks.c
@@ -14,10 +14,9 @@ extern char *gPtrWrappedByMessage;
extern char *gPtrBideMessage;
extern char *gPtrPausedMessage;
extern char *gPtrInfatuatedMessage;
-
extern char gAvailablePokemonNames[];
+
extern void SetMessageArgument(char[], struct DungeonEntity*, u32);
-extern void SetWalkAction(struct DungeonActionContainer*, s16);
extern bool8 CanMoveForward2(struct DungeonEntity*, u8);
extern void DecideAttack(struct DungeonEntity*);