mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-27 03:07:22 -05:00
sub_8073D14
This commit is contained in:
@@ -5,451 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8073D14
|
||||
sub_8073D14:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0xB0
|
||||
adds r6, r0, 0
|
||||
ldr r4, [r6, 0x70]
|
||||
bl GetTileAtEntitySafe
|
||||
ldr r5, [r0, 0x14]
|
||||
cmp r5, 0
|
||||
bne _08073D30
|
||||
b _0807407A
|
||||
_08073D30:
|
||||
bl sub_8044B28
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08073D3C
|
||||
b _0807407A
|
||||
_08073D3C:
|
||||
ldr r0, _08073D68
|
||||
adds r1, r6, 0
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
ldrb r0, [r4, 0x7]
|
||||
cmp r0, 0
|
||||
beq _08073D4E
|
||||
b _0807407A
|
||||
_08073D4E:
|
||||
ldrb r0, [r4, 0x8]
|
||||
cmp r0, 0x1
|
||||
bne _08073D56
|
||||
b _0807407A
|
||||
_08073D56:
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x40
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x4A
|
||||
beq _08073D64
|
||||
cmp r0, 0x47
|
||||
bne _08073D6C
|
||||
_08073D64:
|
||||
movs r0, 0x1
|
||||
b _08073D6E
|
||||
.align 2, 0
|
||||
_08073D68: .4byte gAvailablePokemonNames
|
||||
_08073D6C:
|
||||
movs r0, 0
|
||||
_08073D6E:
|
||||
cmp r0, 0
|
||||
beq _08073D74
|
||||
b _0807407A
|
||||
_08073D74:
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xA4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bne _08073D80
|
||||
b _0807407A
|
||||
_08073D80:
|
||||
ldr r0, [r6, 0x70]
|
||||
mov r10, r0
|
||||
adds r0, r5, 0
|
||||
bl GetItemData
|
||||
adds r5, r0, 0
|
||||
ldrb r1, [r5]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08073D98
|
||||
b _0807407A
|
||||
_08073D98:
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x1
|
||||
bl ShouldMonsterRunAwayAndShowEffect
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08073DC8
|
||||
ldr r0, _08073DBC
|
||||
adds r1, r5, 0
|
||||
bl sub_8045BF8
|
||||
ldr r0, _08073DC0
|
||||
adds r1, r6, 0
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
ldr r0, _08073DC4
|
||||
b _0807404C
|
||||
.align 2, 0
|
||||
_08073DBC: .4byte gUnknown_202DE58
|
||||
_08073DC0: .4byte gAvailablePokemonNames
|
||||
_08073DC4: .4byte gUnknown_80F8F88
|
||||
_08073DC8:
|
||||
mov r1, r10
|
||||
ldrb r0, [r1, 0x6]
|
||||
cmp r0, 0
|
||||
bne _08073E24
|
||||
ldrb r0, [r5, 0x2]
|
||||
bl GetItemCategory
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x6
|
||||
bne _08073E24
|
||||
mov r7, r10
|
||||
ldrb r0, [r7, 0x6]
|
||||
cmp r0, 0
|
||||
beq _08073DF4
|
||||
ldr r0, _08073DF0
|
||||
bl PlaySoundEffect
|
||||
b _08073DFC
|
||||
.align 2, 0
|
||||
_08073DF0: .4byte 0x0000014b
|
||||
_08073DF4:
|
||||
movs r0, 0xA6
|
||||
lsls r0, 1
|
||||
bl PlaySoundEffect
|
||||
_08073DFC:
|
||||
adds r0, r5, 0
|
||||
bl GetMoneyValue
|
||||
bl AddToTeamMoney
|
||||
ldr r0, _08073E1C
|
||||
adds r1, r5, 0
|
||||
bl sub_8045BF8
|
||||
adds r0, r6, 0x4
|
||||
movs r1, 0x1
|
||||
bl sub_80461C8
|
||||
ldr r0, _08073E20
|
||||
b _0807404C
|
||||
.align 2, 0
|
||||
_08073E1C: .4byte gUnknown_202DE58
|
||||
_08073E20: .4byte gUnknown_80F9054
|
||||
_08073E24:
|
||||
ldr r0, _08073E64
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08073E68
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08073E70
|
||||
mov r7, r10
|
||||
ldrb r0, [r7, 0x6]
|
||||
cmp r0, 0
|
||||
bne _08073E70
|
||||
movs r4, 0
|
||||
add r2, sp, 0x54
|
||||
adds r7, 0x60
|
||||
ldr r0, _08073E6C
|
||||
mov r1, sp
|
||||
ldr r0, [r0]
|
||||
adds r3, r2, 0
|
||||
_08073E48:
|
||||
stm r3!, {r0}
|
||||
stm r1!, {r4}
|
||||
adds r0, 0x4
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x13
|
||||
ble _08073E48
|
||||
str r7, [r2, 0x50]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
str r0, [sp, 0x50]
|
||||
movs r0, 0x15
|
||||
mov r8, r0
|
||||
b _08073E80
|
||||
.align 2, 0
|
||||
_08073E64: .4byte gDungeon
|
||||
_08073E68: .4byte 0x0000065b
|
||||
_08073E6C: .4byte gTeamInventoryRef
|
||||
_08073E70:
|
||||
mov r0, r10
|
||||
adds r0, 0x60
|
||||
str r0, [sp, 0x54]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
str r0, [sp]
|
||||
movs r1, 0x1
|
||||
mov r8, r1
|
||||
_08073E80:
|
||||
ldrb r0, [r5, 0x2]
|
||||
add r7, sp, 0xA8
|
||||
strb r0, [r7]
|
||||
adds r0, r7, 0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x8
|
||||
bls _08073E90
|
||||
b _08073FA8
|
||||
_08073E90:
|
||||
ldrb r1, [r5]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08073E9C
|
||||
b _08073FA8
|
||||
_08073E9C:
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
mov r12, r1
|
||||
mov r7, r12
|
||||
str r7, [sp, 0xAC]
|
||||
movs r4, 0
|
||||
cmp r4, r8
|
||||
bge _08073EEC
|
||||
ldr r0, _08073F94
|
||||
mov r9, r0
|
||||
add r3, sp, 0x54
|
||||
_08073EB2:
|
||||
ldr r2, [r3]
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08073EE4
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08073EE4
|
||||
ldr r1, [r5]
|
||||
mov r7, r9
|
||||
ands r1, r7
|
||||
ldr r0, [r2]
|
||||
ands r0, r7
|
||||
cmp r1, r0
|
||||
bne _08073EE4
|
||||
ldrb r0, [r2, 0x1]
|
||||
cmp r0, 0x63
|
||||
beq _08073EE4
|
||||
ldr r1, [sp, 0xAC]
|
||||
cmp r1, r0
|
||||
bge _08073EE4
|
||||
str r0, [sp, 0xAC]
|
||||
mov r12, r4
|
||||
_08073EE4:
|
||||
adds r3, 0x4
|
||||
adds r4, 0x1
|
||||
cmp r4, r8
|
||||
blt _08073EB2
|
||||
_08073EEC:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r12, r0
|
||||
bne _08073F40
|
||||
mov r7, r12
|
||||
str r7, [sp, 0xAC]
|
||||
movs r4, 0
|
||||
cmp r4, r8
|
||||
bge _08073F38
|
||||
add r0, sp, 0xA8
|
||||
ldrb r0, [r0]
|
||||
mov r9, r0
|
||||
add r3, sp, 0x54
|
||||
_08073F06:
|
||||
ldr r2, [r3]
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08073F30
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08073F30
|
||||
ldrb r1, [r2, 0x2]
|
||||
cmp r9, r1
|
||||
bne _08073F30
|
||||
ldrb r0, [r2, 0x1]
|
||||
cmp r0, 0x63
|
||||
beq _08073F30
|
||||
ldr r7, [sp, 0xAC]
|
||||
cmp r7, r0
|
||||
bge _08073F30
|
||||
str r0, [sp, 0xAC]
|
||||
mov r12, r4
|
||||
_08073F30:
|
||||
adds r3, 0x4
|
||||
adds r4, 0x1
|
||||
cmp r4, r8
|
||||
blt _08073F06
|
||||
_08073F38:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r12, r0
|
||||
beq _08073FA8
|
||||
_08073F40:
|
||||
add r0, sp, 0x54
|
||||
mov r1, r12
|
||||
lsls r4, r1, 2
|
||||
adds r3, r0, r4
|
||||
ldr r2, [r3]
|
||||
ldrb r1, [r2, 0x1]
|
||||
ldrb r0, [r5, 0x1]
|
||||
adds r1, r0
|
||||
cmp r1, 0x62
|
||||
ble _08073F56
|
||||
movs r1, 0x63
|
||||
_08073F56:
|
||||
strb r1, [r2, 0x1]
|
||||
ldrb r1, [r5]
|
||||
movs r0, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08073F6C
|
||||
ldr r0, [r3]
|
||||
ldrb r1, [r0]
|
||||
movs r2, 0x8
|
||||
orrs r1, r2
|
||||
strb r1, [r0]
|
||||
_08073F6C:
|
||||
ldr r0, _08073F98
|
||||
adds r1, r5, 0
|
||||
bl sub_8045BF8
|
||||
adds r0, r6, 0x4
|
||||
movs r1, 0x1
|
||||
bl sub_80461C8
|
||||
movs r0, 0xA5
|
||||
lsls r0, 1
|
||||
bl PlaySoundEffect
|
||||
mov r7, sp
|
||||
adds r0, r7, r4
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
bge _08073FA0
|
||||
ldr r0, _08073F9C
|
||||
b _0807404C
|
||||
.align 2, 0
|
||||
_08073F94: .4byte 0x00ff0008
|
||||
_08073F98: .4byte gUnknown_202DE58
|
||||
_08073F9C: .4byte gUnknown_80F9018
|
||||
_08073FA0:
|
||||
ldr r0, _08073FA4
|
||||
b _0807404C
|
||||
.align 2, 0
|
||||
_08073FA4: .4byte gUnknown_80F9050
|
||||
_08073FA8:
|
||||
movs r4, 0
|
||||
cmp r4, r8
|
||||
bge _08073FD2
|
||||
ldr r0, [sp, 0x54]
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08073FD2
|
||||
movs r3, 0x1
|
||||
add r2, sp, 0x54
|
||||
_08073FBE:
|
||||
adds r2, 0x4
|
||||
adds r4, 0x1
|
||||
cmp r4, r8
|
||||
bge _08073FD2
|
||||
ldr r0, [r2]
|
||||
ldrb r1, [r0]
|
||||
adds r0, r3, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08073FBE
|
||||
_08073FD2:
|
||||
cmp r4, r8
|
||||
bne _08073FEC
|
||||
ldr r0, _08073FE4
|
||||
adds r1, r5, 0
|
||||
bl sub_8045BF8
|
||||
ldr r0, _08073FE8
|
||||
b _0807404C
|
||||
.align 2, 0
|
||||
_08073FE4: .4byte gUnknown_202DE58
|
||||
_08073FE8: .4byte gUnknown_80F8F54
|
||||
_08073FEC:
|
||||
mov r1, r10
|
||||
ldrb r0, [r1, 0x6]
|
||||
cmp r0, 0
|
||||
beq _08074000
|
||||
ldr r0, _08073FFC
|
||||
bl PlaySoundEffect
|
||||
b _08074008
|
||||
.align 2, 0
|
||||
_08073FFC: .4byte 0x0000014b
|
||||
_08074000:
|
||||
movs r0, 0xA5
|
||||
lsls r0, 1
|
||||
bl PlaySoundEffect
|
||||
_08074008:
|
||||
lsls r0, r4, 2
|
||||
add r0, sp
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
bge _08074034
|
||||
ldr r0, [r5]
|
||||
mov r7, r10
|
||||
str r0, [r7, 0x60]
|
||||
ldr r0, _0807402C
|
||||
adds r1, r5, 0
|
||||
bl sub_8045BF8
|
||||
adds r0, r6, 0x4
|
||||
movs r1, 0x1
|
||||
bl sub_80461C8
|
||||
ldr r0, _08074030
|
||||
b _0807404C
|
||||
.align 2, 0
|
||||
_0807402C: .4byte gUnknown_202DE58
|
||||
_08074030: .4byte gUnknown_80F9018
|
||||
_08074034:
|
||||
adds r0, r5, 0
|
||||
bl AddItemToInventory
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08074060
|
||||
ldr r0, _08074058
|
||||
adds r1, r6, 0
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
ldr r0, _0807405C
|
||||
_0807404C:
|
||||
ldr r1, [r0]
|
||||
adds r0, r6, 0
|
||||
bl sub_805239C
|
||||
b _0807407A
|
||||
.align 2, 0
|
||||
_08074058: .4byte gAvailablePokemonNames
|
||||
_0807405C: .4byte gUnknown_80F8FAC
|
||||
_08074060:
|
||||
ldr r0, _0807408C
|
||||
adds r1, r5, 0
|
||||
bl sub_8045BF8
|
||||
adds r0, r6, 0x4
|
||||
movs r1, 0x1
|
||||
bl sub_80461C8
|
||||
ldr r0, _08074090
|
||||
ldr r1, [r0]
|
||||
adds r0, r6, 0
|
||||
bl sub_805239C
|
||||
_0807407A:
|
||||
add sp, 0xB0
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0807408C: .4byte gUnknown_202DE58
|
||||
_08074090: .4byte gUnknown_80F9050
|
||||
thumb_func_end sub_8073D14
|
||||
|
||||
thumb_func_start sub_8074094
|
||||
sub_8074094:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -108,4 +108,12 @@ enum DungeonID
|
||||
NUM_DUNGEONS
|
||||
};
|
||||
|
||||
static inline bool8 IsClientOrTeamBase(s32 joinedDungeon)
|
||||
{
|
||||
if (joinedDungeon == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON || joinedDungeon == DUNGEON_RESCUE_TEAM_BASE)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2616,14 +2616,6 @@ bool8 sub_805EC2C(Entity *a0, s32 x, s32 y)
|
||||
return sub_8070564(a0, &pos);
|
||||
}
|
||||
|
||||
static inline bool8 IsClientOrTeamBase(s32 joinedDungeon)
|
||||
{
|
||||
if (joinedDungeon == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON || joinedDungeon == DUNGEON_RESCUE_TEAM_BASE)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_805EC4C(Entity *a0, u8 a1)
|
||||
{
|
||||
Position pos;
|
||||
|
||||
@@ -1,9 +1,23 @@
|
||||
#include "global.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "items.h"
|
||||
#include "dungeon_ai_targeting.h"
|
||||
#include "code_8045A00.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "structs/map.h"
|
||||
#include "dungeon_music.h"
|
||||
#include "constants/dungeon.h"
|
||||
|
||||
extern bool8 sub_8044B28(void);
|
||||
extern void sub_8067110(Entity *);
|
||||
extern void sub_80671A0(Entity *);
|
||||
extern void sub_8073D14(Entity *);
|
||||
extern void sub_8045BF8(u8 *, Item *);
|
||||
extern void sub_805239C(Entity *, const u8 *);
|
||||
extern bool8 sub_80461C8(Position *, u32);
|
||||
|
||||
extern u8 gUnknown_202DE58[];
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
|
||||
void HandleEatAIAction(Entity *pokemon)
|
||||
{
|
||||
@@ -20,3 +34,159 @@ void HandlePickUpAIAction(Entity *pokemon)
|
||||
sub_8073D14(pokemon);
|
||||
}
|
||||
|
||||
extern const u8 *gUnknown_80F8F88;
|
||||
extern const u8 *gUnknown_80F9054;
|
||||
extern const u8 *gUnknown_80F9018;
|
||||
extern const u8 *gUnknown_80F9050;
|
||||
extern const u8 *gUnknown_80F8F54;
|
||||
extern const u8 *gUnknown_80F8FAC;
|
||||
|
||||
void sub_8073D14(Entity *entity)
|
||||
{
|
||||
Item *groundItem;
|
||||
EntityInfo *_entityInfo;
|
||||
EntityInfo *entityInfo = entity->info;
|
||||
Entity *tileObject = GetTileAtEntitySafe(entity)->object;
|
||||
if (tileObject == NULL)
|
||||
return;
|
||||
if (sub_8044B28())
|
||||
return;
|
||||
SetMessageArgument(gAvailablePokemonNames, entity, 0);
|
||||
if (entityInfo->isTeamLeader)
|
||||
return;
|
||||
if (entityInfo->shopkeeper == 1)
|
||||
return;
|
||||
if (IsClientOrTeamBase(entityInfo->joinedAt.joinedAt))
|
||||
return;
|
||||
if (entityInfo->clientType == 1)
|
||||
return;
|
||||
|
||||
_entityInfo = entity->info; // Reloaded as a new variable for some reason.
|
||||
groundItem = GetItemData(tileObject);
|
||||
if (groundItem->flags & ITEM_FLAG_IN_SHOP)
|
||||
return;
|
||||
|
||||
if (ShouldMonsterRunAwayAndShowEffect(entity, TRUE)) {
|
||||
sub_8045BF8(gUnknown_202DE58, groundItem);
|
||||
SetMessageArgument(gAvailablePokemonNames, entity, 0);
|
||||
sub_805239C(entity, gUnknown_80F8F88);
|
||||
}
|
||||
else if (!_entityInfo->isNotTeamMember && GetItemCategory(groundItem->id) == CATEGORY_POKE) {
|
||||
// Why check the same thing again?
|
||||
if (_entityInfo->isNotTeamMember) {
|
||||
PlaySoundEffect(0x14B);
|
||||
}
|
||||
else {
|
||||
PlaySoundEffect(0x14C);
|
||||
}
|
||||
AddToTeamMoney(GetMoneyValue(groundItem));
|
||||
sub_8045BF8(gUnknown_202DE58, groundItem);
|
||||
sub_80461C8(&entity->pos, 1);
|
||||
sub_805239C(entity, gUnknown_80F9054);
|
||||
}
|
||||
else {
|
||||
s32 i, nItems, newInventoryId;
|
||||
s32 inventoryIds[INVENTORY_SIZE + 1]; // plus held
|
||||
Item *carriedItems[INVENTORY_SIZE + 1]; // plus held
|
||||
s32 newQuantity;
|
||||
|
||||
if (gDungeon->unk65B && !_entityInfo->isNotTeamMember) {
|
||||
for (i = 0; i < INVENTORY_SIZE; i++) {
|
||||
carriedItems[i] = &gTeamInventoryRef->teamItems[i];
|
||||
inventoryIds[i] = i;
|
||||
}
|
||||
carriedItems[INVENTORY_SIZE] = &_entityInfo->heldItem;
|
||||
inventoryIds[INVENTORY_SIZE] = -1;
|
||||
nItems = INVENTORY_SIZE + 1;
|
||||
}
|
||||
else {
|
||||
carriedItems[0] = &_entityInfo->heldItem;
|
||||
inventoryIds[0] = -1;
|
||||
nItems = 1;
|
||||
}
|
||||
|
||||
if ((groundItem->id < 9) && !(groundItem->flags & ITEM_FLAG_IN_SHOP)) {
|
||||
newInventoryId = -1;
|
||||
newQuantity = -1;
|
||||
for (i = 0; i < nItems; i++) {
|
||||
if (carriedItems[i]->flags & ITEM_FLAG_EXISTS
|
||||
&& !(carriedItems[i]->flags & ITEM_FLAG_IN_SHOP)
|
||||
&& ((groundItem->id == carriedItems[i]->id) && (groundItem->flags & ITEM_FLAG_STICKY) == (carriedItems[i]->flags & ITEM_FLAG_STICKY))
|
||||
&& carriedItems[i]->quantity != 99 && newQuantity < carriedItems[i]->quantity)
|
||||
{
|
||||
newQuantity = carriedItems[i]->quantity;
|
||||
newInventoryId = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (newInventoryId == -1) {
|
||||
newQuantity = -1;
|
||||
for (i = 0; i < nItems; i++) {
|
||||
if (carriedItems[i]->flags & ITEM_FLAG_EXISTS
|
||||
&& !(carriedItems[i]->flags & ITEM_FLAG_IN_SHOP)
|
||||
&& groundItem->id == carriedItems[i]->id
|
||||
&& carriedItems[i]->quantity != 99
|
||||
&& newQuantity < carriedItems[i]->quantity)
|
||||
{
|
||||
newQuantity = carriedItems[i]->quantity;
|
||||
newInventoryId = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (newInventoryId != -1) {
|
||||
s32 quantity = carriedItems[newInventoryId]->quantity + groundItem->quantity;
|
||||
if (quantity >= 99)
|
||||
quantity = 99;
|
||||
carriedItems[newInventoryId]->quantity = quantity;
|
||||
if (groundItem->flags & ITEM_FLAG_STICKY)
|
||||
carriedItems[newInventoryId]->flags |= ITEM_FLAG_STICKY;
|
||||
|
||||
sub_8045BF8(gUnknown_202DE58, groundItem);
|
||||
sub_80461C8(&entity->pos, 1);
|
||||
PlaySoundEffect(0x14A);
|
||||
if (inventoryIds[newInventoryId] <= -1)
|
||||
sub_805239C(entity, gUnknown_80F9018);
|
||||
else
|
||||
sub_805239C(entity, gUnknown_80F9050);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < nItems; i++) {
|
||||
if (!(carriedItems[i]->flags & ITEM_FLAG_EXISTS))
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == nItems) {
|
||||
sub_8045BF8(gUnknown_202DE58, groundItem);
|
||||
sub_805239C(entity, gUnknown_80F8F54);
|
||||
}
|
||||
else {
|
||||
if (_entityInfo->isNotTeamMember) {
|
||||
PlaySoundEffect(0x14B);
|
||||
}
|
||||
else {
|
||||
PlaySoundEffect(0x14A);
|
||||
}
|
||||
|
||||
if (inventoryIds[i] <= -1) {
|
||||
_entityInfo->heldItem = *groundItem;
|
||||
sub_8045BF8(gUnknown_202DE58, groundItem);
|
||||
sub_80461C8(&entity->pos, 1);
|
||||
sub_805239C(entity, gUnknown_80F9018);
|
||||
}
|
||||
else if (AddItemToInventory(groundItem)) {
|
||||
SetMessageArgument(gAvailablePokemonNames, entity, 0);
|
||||
sub_805239C(entity, gUnknown_80F8FAC);
|
||||
}
|
||||
else {
|
||||
sub_8045BF8(gUnknown_202DE58, groundItem);
|
||||
sub_80461C8(&entity->pos, 1);
|
||||
sub_805239C(entity, gUnknown_80F9050);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user