summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2022-01-28 17:37:55 -0600
committerSeth Barberee <seth.barberee@gmail.com>2022-02-17 19:02:44 -0600
commit8e0ba3615a545c774b691e47b6581f6c7e6c13fb (patch)
treeee085cf1fe9604a9f2ba68722447700c277cea91
parent617e992dac782e3647977b6dfe7a325e4c14db15 (diff)
few more decomped funcs
-rw-r--r--asm/code_8048480.s189
-rw-r--r--include/moves.h2
-rw-r--r--src/dungeon_ai_item_weight.c82
3 files changed, 83 insertions, 190 deletions
diff --git a/asm/code_8048480.s b/asm/code_8048480.s
index 0fe1f8b..eabc0b0 100644
--- a/asm/code_8048480.s
+++ b/asm/code_8048480.s
@@ -1121,193 +1121,4 @@ _08048DB2:
bx r1
thumb_func_end sub_8048D50
- thumb_func_start sub_8048DB8
-sub_8048DB8:
- push {r4,lr}
- sub sp, 0x1C
- adds r3, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- cmp r2, 0
- beq _08048DF4
- ldr r0, _08048DEC
- movs r1, 0
- ldrsh r2, [r0, r1]
- add r0, sp, 0x18
- str r0, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r0, _08048DF0
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- str r1, [sp, 0x14]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_806F370
- b _08048DFA
- .align 2, 0
-_08048DEC: .4byte gUnknown_80F4FAC
-_08048DF0: .4byte 0x00000217
-_08048DF4:
- adds r0, r3, 0
- bl sub_8051E7C
-_08048DFA:
- add sp, 0x1C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8048DB8
-
- thumb_func_start sub_8048E04
-sub_8048E04:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r5, 0
- movs r2, 0x1E
- movs r3, 0
- bl sub_8078B5C
- movs r0, 0x5
- bl DungeonRandomCapped
- cmp r0, 0x4
- bhi _08048E9E
- lsls r0, 2
- ldr r1, _08048E30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08048E30: .4byte _08048E34
.align 2, 0
-_08048E34:
- .4byte _08048E48
- .4byte _08048E54
- .4byte _08048E5E
- .4byte _08048E6C
- .4byte _08048E78
-_08048E48:
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x1
- bl sub_80763F8
- b _08048E9E
-_08048E54:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80769CC
- b _08048E9E
-_08048E5E:
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8076210
- b _08048E9E
-_08048E6C:
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x1
- bl sub_8077780
- b _08048E9E
-_08048E78:
- ldr r0, _08048EA8
- ldr r2, [r0]
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r3, 0x3
- bl sub_8076E20
- ldr r0, _08048EAC
- ldr r2, [r0]
- str r4, [sp]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r3, 0x3
- bl sub_8076E20
-_08048E9E:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08048EA8: .4byte gUnknown_8106A4C
-_08048EAC: .4byte gUnknown_8106A50
- thumb_func_end sub_8048E04
-
- thumb_func_start sub_8048EB0
-sub_8048EB0:
- push {lr}
- ldr r1, _08048EC0
- ldr r1, [r1]
- bl SendMessage
- pop {r0}
- bx r0
- .align 2, 0
-_08048EC0: .4byte gPtrIcePartCrumbledMessage
- thumb_func_end sub_8048EB0
-
- thumb_func_start sub_8048EC4
-sub_8048EC4:
- push {lr}
- ldr r1, _08048ED4
- ldr r1, [r1]
- bl SendMessage
- pop {r0}
- bx r0
- .align 2, 0
-_08048ED4: .4byte gPtrRockPartCrumbledMessage
- thumb_func_end sub_8048EC4
-
- thumb_func_start sub_8048ED8
-sub_8048ED8:
- push {lr}
- ldr r1, _08048EE8
- ldr r1, [r1]
- bl SendMessage
- pop {r0}
- bx r0
- .align 2, 0
-_08048EE8: .4byte gPtrSteelPartCrumbledMessage
- thumb_func_end sub_8048ED8
-
- thumb_func_start sub_8048EEC
-sub_8048EEC:
- push {lr}
- ldr r1, _08048EFC
- ldr r1, [r1]
- bl SendMessage
- pop {r0}
- bx r0
- .align 2, 0
-_08048EFC: .4byte gPtrWishStoneCrumbledMessage
- thumb_func_end sub_8048EEC
-
- thumb_func_start sub_8048F00
-sub_8048F00:
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xD6
- bl sub_80421C0
- ldr r0, _08048F24
- ldr r1, [r0]
- adds r0, r4, 0
- bl SendMessage
- movs r0, 0x3C
- movs r1, 0x46
- bl sub_803E708
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08048F24: .4byte gPtrMusicBoxPlayedCrumbledMessage
- thumb_func_end sub_8048F00
-
- .align 2, 0 \ No newline at end of file
diff --git a/include/moves.h b/include/moves.h
index ccf4953..a5db8d0 100644
--- a/include/moves.h
+++ b/include/moves.h
@@ -19,7 +19,7 @@ u32 GetMoveMaxPP(struct PokemonMove *move);
u8 GetMoveUnk12(struct PokemonMove *move);
u8 GetMoveCriticalHitChance(struct PokemonMove *move);
u8 GetMoveCannotHitFrozen(struct PokemonMove *move);
-u8 GetMoveDealsDirectDamage(struct PokemonMove *move);
+u8 MoveDealsDirectDamage(struct PokemonMove *move);
u32 GetMoveRangeType(struct PokemonMove *move);
void sub_8092C84(u8 *buffer, u16 moveID);
u8 *GetMoveUseText(u16 moveID);
diff --git a/src/dungeon_ai_item_weight.c b/src/dungeon_ai_item_weight.c
index 0fe019f..2309fa2 100644
--- a/src/dungeon_ai_item_weight.c
+++ b/src/dungeon_ai_item_weight.c
@@ -1,16 +1,98 @@
#include "global.h"
#include "dungeon_ai_item_weight.h"
+#include "code_80521D0.h"
#include "constants/status.h"
#include "constants/targeting.h"
#include "dungeon_ai_1.h"
#include "dungeon_map_access.h"
#include "dungeon_pokemon_attributes.h"
+#include "dungeon_random.h"
#include "dungeon_util.h"
#include "moves.h"
#include "number_util.h"
#include "status_checks_1.h"
+extern void sub_803E708(u32, u32);
+extern void sub_80421C0(struct DungeonEntity *r0, u16 r1);
+extern void sub_8078B5C(struct DungeonEntity *, u32, u32, u32, u32);
+extern void sub_80763F8(struct DungeonEntity *, u32, u32);
+extern void sub_80769CC(struct DungeonEntity *, u32);
+extern void sub_8076210(struct DungeonEntity *, u32, u32, u32);
+extern void sub_8077780(struct DungeonEntity *, u32, u32);
+extern void sub_8076E20(struct DungeonEntity *, u32, u32, u32, u32, u32);
+
+extern u8 *gPtrMusicBoxPlayedCrumbledMessage[];
+extern u8 *gPtrWishStoneCrumbledMessage[];
+extern u8 *gPtrIcePartCrumbledMessage[];
+extern u8 *gPtrRockPartCrumbledMessage[];
+extern u8 *gPtrSteelPartCrumbledMessage[];
+extern u32 gUnknown_8106A4C;
+extern u32 gUnknown_8106A50;
+extern s16 gUnknown_80F4FAC;
+extern void sub_806F370(struct DungeonEntity *r0, struct DungeonEntity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
+extern void sub_8051E7C(struct DungeonEntity *pokemon);
+
+void sub_8048DB8(struct DungeonEntity *pokemon, struct DungeonEntity *r1, u8 r2)
+{
+ u8 temp;
+ if(r2 != 0)
+ sub_806F370(pokemon, r1, gUnknown_80F4FAC, 1, &temp, 0, 0x217, 0, 0, 0);
+ else
+ sub_8051E7C(pokemon);
+}
+
+void sub_8048E04(struct DungeonEntity *pokemon, u32 r1)
+{
+ sub_8078B5C(pokemon, r1, 0x1E, 0, 1);
+ switch(DungeonRandomCapped(5))
+ {
+ case 0:
+ sub_80763F8(pokemon, r1, 1);
+ break;
+ case 1:
+ sub_80769CC(pokemon, r1);
+ break;
+ case 2:
+ sub_8076210(pokemon, r1, 1, 1);
+ break;
+ case 3:
+ sub_8077780(pokemon, r1, 1);
+ break;
+ case 4:
+ sub_8076E20(pokemon, r1, gUnknown_8106A4C, 3, 1, 1);
+ sub_8076E20(pokemon, r1, gUnknown_8106A50, 3, 1, 1);
+ break;
+ }
+}
+
+void sub_8048EB0(struct DungeonEntity *pokemon)
+{
+ SendMessage(pokemon, *gPtrIcePartCrumbledMessage);
+}
+
+void sub_8048EC4(struct DungeonEntity *pokemon)
+{
+ SendMessage(pokemon, *gPtrRockPartCrumbledMessage);
+}
+
+void sub_8048ED8(struct DungeonEntity *pokemon)
+{
+ SendMessage(pokemon, *gPtrSteelPartCrumbledMessage);
+}
+
+void sub_8048EEC(struct DungeonEntity *pokemon)
+{
+ SendMessage(pokemon, *gPtrWishStoneCrumbledMessage);
+}
+
+void sub_8048F00(struct DungeonEntity *pokemon)
+{
+ sub_80421C0(pokemon, 0xD6);
+ SendMessage(pokemon, *gPtrMusicBoxPlayedCrumbledMessage);
+ sub_803E708(0x3C, 0x46);
+}
+
u32 EvaluateItem(struct DungeonEntity *targetPokemon, struct ItemSlot *item, u32 itemTargetFlags)
{
struct DungeonEntityData *pokemonData = targetPokemon->entityData;