diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2022-01-28 17:37:55 -0600 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2022-02-17 19:02:44 -0600 |
commit | 8e0ba3615a545c774b691e47b6581f6c7e6c13fb (patch) | |
tree | ee085cf1fe9604a9f2ba68722447700c277cea91 | |
parent | 617e992dac782e3647977b6dfe7a325e4c14db15 (diff) |
few more decomped funcs
-rw-r--r-- | asm/code_8048480.s | 189 | ||||
-rw-r--r-- | include/moves.h | 2 | ||||
-rw-r--r-- | src/dungeon_ai_item_weight.c | 82 |
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; |