more documentation and decomp function

This commit is contained in:
Seth Barberee 2023-12-27 20:20:43 -08:00
parent 8529cad374
commit 973cad1733
8 changed files with 61 additions and 83 deletions

View File

@ -5,35 +5,6 @@
.text
thumb_func_start sub_8014214
sub_8014214:
push {r4-r6,lr}
sub sp, 0x14
lsls r6, r2, 16
movs r2, 0x1
negs r2, r2
ldr r3, _08014244
movs r5, 0
str r5, [sp]
movs r4, 0x3
str r4, [sp, 0x4]
str r5, [sp, 0x8]
str r1, [sp, 0xC]
movs r1, 0xC0
lsls r1, 18
orrs r1, r6
lsrs r1, 16
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08014244: .4byte gUnknown_80D4880
thumb_func_end sub_8014214
thumb_func_start sub_8014248
sub_8014248:
push {r4-r7,lr}

View File

@ -1135,7 +1135,7 @@ _0805E1BA:
bne _0805E1E0
_0805E1C6:
mov r0, r10
bl sub_8067510
bl HandleTalkFieldAction
bl sub_8044B28
lsls r0, 24
cmp r0, 0
@ -3208,12 +3208,12 @@ _0805F20C: .4byte 0x00000137
_0805F210:
bl GetLeader
movs r1, 0x1
bl sub_806675C
bl HandleSetItemAction
b _0805F226
_0805F21C:
bl GetLeader
movs r1, 0x1
bl sub_806684C
bl HandleUnsetItemAction
_0805F226:
movs r0, 0x1
bl sub_8044C10

View File

@ -851,8 +851,8 @@ _08067508: .4byte gDungeon
_0806750C: .4byte 0x00003a08
thumb_func_end sub_80671A0
thumb_func_start sub_8067510
sub_8067510:
thumb_func_start HandleTalkFieldAction
HandleTalkFieldAction:
push {r4,lr}
adds r4, r0, 0
bl sub_806773C
@ -864,7 +864,7 @@ sub_8067510:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8067510
thumb_func_end HandleTalkFieldAction
thumb_func_start sub_806752C
sub_806752C:
@ -1289,8 +1289,8 @@ _0806787C: .4byte gAvailablePokemonNames
_08067880: .4byte 0x0000021d
thumb_func_end sub_8067794
thumb_func_start sub_8067884
sub_8067884:
thumb_func_start HandleUseMovePlayerAction
HandleUseMovePlayerAction:
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
@ -1351,7 +1351,7 @@ _080678F6:
bx r0
.align 2, 0
_08067900: .4byte 0x00000159
thumb_func_end sub_8067884
thumb_func_end HandleUseMovePlayerAction
thumb_func_start sub_8067904
sub_8067904:

View File

@ -11,6 +11,7 @@ extern s32 gUnknown_202E73C;
extern s32 gUnknown_202E740;
extern MenuItem gUnknown_80D485C[];
extern MenuItem gUnknown_80D4880[];
void sub_80140DC(void)
{
@ -84,3 +85,9 @@ void sub_80141E0(const u8 *text, OpenedFile **file, u16 param_3)
{
sub_8014248(text, 0, -1, gUnknown_80D485C, NULL, 3, 0, file, param_3 | 0x300);
}
void sub_8014214(const u8 *text, OpenedFile **file, u16 param_3)
{
sub_8014248(text, 0, -1, gUnknown_80D4880, NULL, 3, 0, file, param_3 | 0x300);
}

View File

@ -39,13 +39,13 @@ extern void sub_806A6E8(Entity *);
extern void sub_8044DF0(Entity *, u32, u32);
extern void sub_8045DB4(Position *, u32);
void sub_8066744(Entity *entity)
void HandlePickUpPlayerAction(Entity *entity)
{
entity->info->action.unk4[0].actionUseIndex = 1;
sub_8045DB4(&entity->pos,0);
}
void sub_806675C(Entity *param_1, bool8 param_2)
void HandleSetItemAction(Entity *param_1, bool8 param_2)
{
Item *item;
Item *itemPtr;
@ -88,7 +88,7 @@ void sub_806675C(Entity *param_1, bool8 param_2)
}
void sub_806684C(Entity *entity,bool8 enableMessage)
void HandleUnsetItemAction(Entity *entity,bool8 enableMessage)
{
Item *item;
int index;
@ -113,7 +113,7 @@ void sub_806684C(Entity *entity,bool8 enableMessage)
}
void sub_80668D0(Entity *param_1)
void HandleGiveItemAction(Entity *param_1)
{
Entity *entity;
Item *item;
@ -191,7 +191,7 @@ void sub_80668D0(Entity *param_1)
}
void sub_8066AC0(Entity *param_1)
void HandleTakeItemAction(Entity *param_1)
{
Entity *entity;
EntityInfo *info;
@ -281,7 +281,7 @@ void sub_8066BD4(Entity *param_1)
}
}
void sub_8066CF0(Entity *param_1)
void HandleUseItemAction(Entity *param_1)
{
Entity *entity;
@ -289,7 +289,7 @@ void sub_8066CF0(Entity *param_1)
entity->info->useHeldItem = TRUE;
}
void sub_8066D04(Entity *param_1)
void HandlePlaceItemAction(Entity *param_1)
{
Item *item;
Tile *tile;

View File

@ -5,17 +5,17 @@ extern void sub_8067110(Entity *);
extern void sub_80671A0(Entity *);
extern void sub_8073D14(Entity *);
void sub_8073CF0(Entity *pokemon)
void HandleEatAIAction(Entity *pokemon)
{
sub_8067110(pokemon);
}
void sub_8073CFC(Entity *pokemon)
void HandleThrowItemAIAction(Entity *pokemon)
{
sub_80671A0(pokemon);
}
void sub_8073D08(Entity *pokemon)
void HandlePickUpAIAction(Entity *pokemon)
{
sub_8073D14(pokemon);
}

View File

@ -931,7 +931,7 @@ bool8 IsTargetInRange(Entity *pokemon, Entity *targetPokemon, s32 direction, s32
return FALSE;
}
void sub_807CABC(Entity *target)
void HandleUseMoveAIAction(Entity *target)
{
EntityInfo *entityInfo;
s32 counter;
@ -959,7 +959,7 @@ void sub_807CABC(Entity *target)
}
#if NONMATCHING // 99.09% https://decomp.me/scratch/rpwXh
void sub_807CB3C(Entity *pokemon)
void HandleUseOrbAction(Entity *pokemon)
{
bool8 r4;
Item *item;
@ -1058,7 +1058,7 @@ void sub_807CB3C(Entity *pokemon)
}
#else
NAKED
void sub_807CB3C(Entity *pokemon)
void HandleUseOrbAction(Entity *pokemon)
{
asm_unified(
"push {r4-r7,lr}\n"

View File

@ -41,7 +41,7 @@ void nullsub_95(Entity *);
bool8 IsNotAttacking(Entity *, bool8);
extern void sub_80671A0(Entity *);
extern void sub_8067110(Entity *);
void sub_807CABC(Entity *target);
void HandleUseMoveAIAction(Entity *target);
void sub_8041888(u8 param_1);
void sub_8085140(void);
void sub_807360C(void);
@ -49,24 +49,24 @@ void sub_805EFB4(Entity *, u8);
void sub_8074FB0(Entity *, u8, Position *);
extern void SetMessageArgument(u8 *buffer, Entity *r1, u32);
void sub_8066D04(Entity *);
void sub_8066744(Entity *);
void HandlePlaceItemAction(Entity *);
void HandlePickUpPlayerAction(Entity *);
void sub_8066E14(Entity * );
void sub_807348C(void);
void sub_80732F0(void);
void sub_807FD84(Entity *);
void sub_8066BD4(Entity*);
void sub_8067510(Entity *);
void sub_8067884(Entity *);
void HandleTalkFieldAction(Entity *);
void HandleUseMovePlayerAction(Entity *);
void sub_804267C(void);
void sub_807CB3C(Entity *);
void HandleUseOrbAction(Entity *);
void sub_8067904(Entity *, u32);
void sub_80668D0(Entity *);
void sub_8066AC0(Entity *);
void sub_8066CF0(Entity *);
void HandleGiveItemAction(Entity *);
void HandleTakeItemAction(Entity *);
void HandleUseItemAction(Entity *);
void sub_8066FA4(Entity *);
void sub_806675C(Entity *,bool8);
void sub_806684C(Entity *,bool8);
void HandleSetItemAction(Entity *,bool8);
void HandleUnsetItemAction(Entity *,bool8);
void sub_807FE9C(Entity *,Position *,u32,u32);
extern u8 sub_8044B28(void);
extern u8 UseAttack(Entity *);
@ -75,9 +75,9 @@ void sub_806A1E8(Entity *pokemon);
extern void sub_803E46C(u32);
extern void sub_80694C0(Entity *, s32, s32, u32);
bool8 sub_804AE08(Position *pos);
void sub_8073D08(Entity *pokemon);
void sub_8073CFC(Entity *pokemon);
void sub_8073CF0(Entity *pokemon);
void HandlePickUpAIAction(Entity *pokemon);
void HandleThrowItemAIAction(Entity *pokemon);
void HandleEatAIAction(Entity *pokemon);
bool8 sub_8044B84(void);
void sub_8046D20(void);
extern void sub_8074094(Entity *);
@ -118,7 +118,7 @@ bool8 sub_8072CF4(Entity *entity)
s32 index;
EntityInfo *info;
bool8 bVar14;
Position PStack_24;
Position pos;
Position pos1;
sub_804178C(1);
@ -210,10 +210,10 @@ bool8 sub_8072CF4(Entity *entity)
}
else
{
PStack_24.x = entity->pos.x;
PStack_24.y = entity->pos.y;
pos.x = entity->pos.x;
pos.y = entity->pos.y;
sub_80694C0(entity,pos1.x,pos1.y,0);
sub_8074FB0(entity,(info->action).direction,&PStack_24);
sub_8074FB0(entity,(info->action).direction,&pos);
if (((IQSkillIsEnabled(entity, IQ_SUPER_MOBILE)) && (info->transformStatus != STATUS_MOBILE)) &&
(!HasHeldItem(entity,ITEM_MOBILE_SCARF))) {
sub_804AE08(&entity->pos);
@ -224,7 +224,7 @@ bool8 sub_8072CF4(Entity *entity)
}
break;
case ACTION_USE_MOVE_AI:
sub_807CABC(entity);
HandleUseMoveAIAction(entity);
break;
case ACTION_STAIRS:
if ((gDungeon->dungeonLocation.id == DUNGEON_METEOR_CAVE) && (!gDungeon->deoxysDefeat)) {
@ -243,34 +243,34 @@ bool8 sub_8072CF4(Entity *entity)
sub_8067110(entity);
break;
case ACTION_USE_ORB:
sub_807CB3C(entity);
HandleUseOrbAction(entity);
break;
case ACTION_PICK_UP_PLAYER:
sub_8066744(entity);
HandlePickUpPlayerAction(entity);
break;
case ACTION_GIVE_ITEM:
sub_80668D0(entity);
HandleGiveItemAction(entity);
break;
case ACTION_TAKE_ITEM:
sub_8066AC0(entity);
HandleTakeItemAction(entity);
break;
case 0x3e:
sub_8066BD4(entity); // ITEM_SWITCH_TOOLBOX (When you switch item in Toolbox)
break;
case ACTION_USE_ITEM:
sub_8066CF0(entity);
HandleUseItemAction(entity);
break;
case ACTION_SET_ITEM:
sub_806675C(entity, TRUE);
HandleSetItemAction(entity, TRUE);
break;
case ACTION_UNSET_ITEM:
sub_806684C(entity, TRUE);
HandleUnsetItemAction(entity, TRUE);
break;
case 0x3b:
gDungeon->unkBC = gDungeon->teamPokemon[(info->action).unk4[0].actionUseIndex];
break;
case ACTION_PLACE_ITEM:
sub_8066D04(entity);
HandlePlaceItemAction(entity);
break;
case 10: // Switch with Item on Ground
sub_8066E14(entity);
@ -290,10 +290,10 @@ bool8 sub_8072CF4(Entity *entity)
SendMessage(entity,*gUnknown_80FE6D4);
break;
case ACTION_TALK_FIELD:
sub_8067510(entity);
HandleTalkFieldAction(entity);
break;
case ACTION_USE_MOVE_PLAYER:
sub_8067884(entity);
HandleUseMovePlayerAction(entity);
break;
case ACTION_STRUGGLE:
sub_8067904(entity, MOVE_STRUGGLE);
@ -305,13 +305,13 @@ bool8 sub_8072CF4(Entity *entity)
sub_807FE9C(entity,&entity->pos,0,0);
break;
case ACTION_PICK_UP_AI:
sub_8073D08(entity);
HandlePickUpAIAction(entity);
break;
case ACTION_EAT_AI:
sub_8073CF0(entity);
HandleEatAIAction(entity);
break;
case ACTION_THROW_ITEM_AI:
sub_8073CFC(entity);
HandleThrowItemAIAction(entity);
break;
case ACTION_SECOND_THOUGHTS:
SetMessageArgument(gAvailablePokemonNames,entity,0);