summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/code_8090208.c34
-rw-r--r--src/code_8095824.c4
-rw-r--r--src/dungeon_2.c83
-rw-r--r--src/friend_area_action_menu_1.c126
-rw-r--r--src/friend_list_menu.c8
-rw-r--r--src/items.c4
-rw-r--r--src/kangaskhan_storage_3.c6
-rw-r--r--src/kecleon_items_1.c213
-rw-r--r--src/luminous_cave.c1
-rw-r--r--src/pokemon_3.c12
-rw-r--r--src/pokemon_mid.c4
-rw-r--r--src/post_office_guide.c4
12 files changed, 434 insertions, 65 deletions
diff --git a/src/code_8090208.c b/src/code_8090208.c
deleted file mode 100644
index 8322ffc..0000000
--- a/src/code_8090208.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#include "global.h"
-#include "dungeon.h"
-#include "code_800D090.h"
-
-extern const char gUnknown_8108F10[];
-extern const char gUnknown_8108F18[];
-extern const char gUnknown_8108F2C[];
-
-struct unkDungeonStruct
-{
- u8 index;
- u8 floor;
-};
-
-void sub_8090208(u8 *buffer, struct unkDungeonStruct *dungeonLocation)
-{
- sprintf_2(buffer, gUnknown_8108F10, gDungeonNames[dungeonLocation->index].name1); // {COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2} (normal floor print (no B)
-}
-
-void PrintDungeonLocationtoBuffer(u8 *buffer, struct unkDungeonStruct *dungeonLocation)
-{
- if(gDungeons[dungeonLocation->index].stairDirection != 0){
- sprintf_2(buffer, gUnknown_8108F18, gDungeonNames[dungeonLocation->index].name1, dungeonLocation->floor); //_F
- }
- else
- {
- sprintf_2(buffer, gUnknown_8108F2C, gDungeonNames[dungeonLocation->index].name1, dungeonLocation->floor); // B _F
- }
-}
-
-void CopyDungeonName1toBuffer(u8 *buffer, struct unkDungeonStruct *dungeonLocation)
-{
- strncpy(buffer, gDungeonNames[dungeonLocation->index].name1, 0x50);
-}
diff --git a/src/code_8095824.c b/src/code_8095824.c
index b366574..8792545 100644
--- a/src/code_8095824.c
+++ b/src/code_8095824.c
@@ -40,7 +40,7 @@ u32 sub_80954CC(u8 *a, u32 b)
temp = &gUnknown_203B484->unk4;
memset(temp, 0, sizeof(struct PokemonStruct));
RestoreIntegerBits(&backup, &temp->unk0, 2);
- RestoreIntegerBits(&backup, &temp->unk2, 1);
+ RestoreIntegerBits(&backup, &temp->isLeader, 1);
RestoreIntegerBits(&backup, &temp->unkHasNextStage, 7);
xxx_restore_poke_sub_4_8090314(&backup, &temp->unk4);
RestoreIntegerBits(&backup, &temp->speciesNum, 9);
@@ -82,7 +82,7 @@ u32 sub_8095624(u8 *a, u32 b)
SaveIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
temp = &gUnknown_203B484->unk4;
SaveIntegerBits(&backup, &temp->unk0, 2);
- SaveIntegerBits(&backup, &temp->unk2, 1);
+ SaveIntegerBits(&backup, &temp->isLeader, 1);
SaveIntegerBits(&backup, &temp->unkHasNextStage, 7);
xxx_save_poke_sub_4_80902F4(&backup, &temp->unk4);
SaveIntegerBits(&backup, &temp->speciesNum, 9);
diff --git a/src/dungeon_2.c b/src/dungeon_2.c
new file mode 100644
index 0000000..18b6fe5
--- /dev/null
+++ b/src/dungeon_2.c
@@ -0,0 +1,83 @@
+#include "global.h"
+#include "dungeon.h"
+#include "code_800D090.h"
+#include "pokemon.h"
+#include "code_8092334.h"
+#include "constants/dungeon.h"
+
+extern const char gUnknown_8108F10[];
+extern const char gUnknown_8108F18[];
+extern const char gUnknown_8108F2C[];
+extern u8 gUnknown_81077A8[];
+extern u8 gUnknown_81077E8[];
+
+void sub_80901D8(struct unkPokeSubStruct_4 *param_1,struct unkPokeSubStruct_4 *param_2)
+{
+ if ((u8)(param_2->dungeonIndex - DUNGEON_NORMAL_MAZE_2) < NUM_DUNGEON_MAZE) {
+ param_1->dungeonIndex = DUNGEON_NORMAL_MAZE;
+ param_1->dungeonFloor = (param_2->dungeonIndex - DUNGEON_NORMAL_MAZE_2) * 3 + param_2->dungeonFloor;
+ }
+ else {
+ *param_1 = *param_2;
+ }
+}
+
+void PrintYellowDungeonNametoBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation)
+{
+ sprintf_2(buffer, gUnknown_8108F10, gDungeonNames[dungeonLocation->dungeonIndex].name1); // {COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2} (normal floor print (no B)
+}
+
+void PrintDungeonLocationtoBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation)
+{
+ if(gDungeons[dungeonLocation->dungeonIndex].stairDirection != 0){
+ sprintf_2(buffer, gUnknown_8108F18, gDungeonNames[dungeonLocation->dungeonIndex].name1, dungeonLocation->dungeonFloor); //_F
+ }
+ else
+ {
+ sprintf_2(buffer, gUnknown_8108F2C, gDungeonNames[dungeonLocation->dungeonIndex].name1, dungeonLocation->dungeonFloor); // B _F
+ }
+}
+
+void CopyDungeonName1toBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation)
+{
+ strncpy(buffer, gDungeonNames[dungeonLocation->dungeonIndex].name1, 0x50);
+}
+
+u8 sub_8090298(u8 dungeon)
+{
+ if ((u8)(dungeon - DUNGEON_NORMAL_MAZE_2) < NUM_DUNGEON_MAZE)
+ return 4;
+ else if(dungeon > DUNGEON_PURITY_FOREST)
+ return 1;
+ else
+ return gUnknown_81077A8[dungeon];
+}
+
+u8 sub_80902C8(u8 dungeon)
+{
+ if ((u8)(dungeon - DUNGEON_NORMAL_MAZE_2) < NUM_DUNGEON_MAZE)
+ return 0;
+ else if(dungeon > DUNGEON_PURITY_FOREST)
+ return 0;
+ else
+ return gUnknown_81077E8[dungeon];
+}
+
+void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924* r0, struct unkPokeSubStruct_4* r1)
+{
+ SaveIntegerBits(r0, &r1->dungeonIndex, 0x7);
+ SaveIntegerBits(r0, &r1->dungeonFloor, 0x7);
+}
+
+void xxx_restore_poke_sub_4_8090314(struct unkStruct_8094924* r0, struct unkPokeSubStruct_4* r1)
+{
+ r1->dungeonIndex = 0;
+ r1->dungeonFloor = 0;
+ RestoreIntegerBits(r0, &r1->dungeonIndex, 0x7);
+ RestoreIntegerBits(r0, &r1->dungeonFloor, 0x7);
+}
+
+u8 GetDungeonUnk1(u8 dungeon)
+{
+ return gDungeons[dungeon].unk1;
+}
diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c
index 3f1bb5f..38650d0 100644
--- a/src/friend_area_action_menu_1.c
+++ b/src/friend_area_action_menu_1.c
@@ -43,11 +43,129 @@ extern u32 sub_801F194(void);
u32 sub_8027E18(struct PokemonStruct *);
u8 sub_8027E4C(struct PokemonStruct *r0);
+
extern u32 sub_801BF48(void);
extern void sub_801BF98(void);
extern u32 sub_80244E4(void);
extern void sub_802453C(void);
+extern u32 sub_8023A94(u32);
+extern bool8 sub_808D750(s16 index_);
+extern struct PokemonStruct *GetPlayerPokemonStruct(void);
+extern void sub_808ED00();
+extern s16 sub_8023B44(void);
+extern void sub_8023C60(void);
+
+void sub_80277FC(void)
+{
+ struct PokemonStruct *iVar4;
+
+ switch(sub_8023A94(1)) {
+ case 0:
+ case 1:
+ break;
+ case 3:
+ gUnknown_203B2BC->targetPoke = sub_8023B44();
+ iVar4 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
+ gUnknown_203B2BC->unk18 = iVar4;
+ gUnknown_203B2BC->unk1C = iVar4->isLeader;
+ PeekPokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->unk14);
+ SetFriendAreaActionMenuState(3);
+ break;
+ case 4:
+ gUnknown_203B2BC->targetPoke = sub_8023B44();
+ iVar4 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
+ gUnknown_203B2BC->unk18 = iVar4;
+ gUnknown_203B2BC->unk1C = iVar4->isLeader;
+ PeekPokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->unk14);
+ SetFriendAreaActionMenuState(4);
+ break;
+ case 2:
+ sub_8023C60();
+ SetFriendAreaActionMenuState(0x11);
+ break;
+ }
+}
+
+void sub_80278B4(void)
+{
+ struct PokemonStruct *playerStruct;
+ struct PokemonStruct *puVar3;
+ struct PokemonStruct *iVar4;
+ int local_c;
+
+ local_c = 0;
+ sub_8023A94(0);
+ if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == '\0') && (sub_8013114(&gUnknown_203B2BC->unk7C,&local_c), local_c != 1)) {
+ gUnknown_203B2BC->unk70 = local_c;
+ }
+ switch(local_c) {
+ case 6:
+ if (sub_808D750(gUnknown_203B2BC->targetPoke) != '\0') {
+#ifdef NONMATCHING
+ puVar3 = &gRecruiedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
+#else
+ register size_t offset asm("r1") = offsetof(struct unkStruct_203B45C, pokemon[gUnknown_203B2BC->targetPoke]);
+ struct PokemonStruct* p = gRecruitedPokemonRef->pokemon;
+ size_t addr = offset + (size_t)p;
+ puVar3 = (struct PokemonStruct*)addr;
+#endif
+ puVar3->unk0 |= 2;
+ nullsub_104();
+ }
+ sub_808ED00();
+ SetFriendAreaActionMenuState(2);
+ break;
+ case 7:
+ gUnknown_203B2BC->unk18->unk0 &= 0xfffd;
+ nullsub_104();
+ sub_808ED00();
+ SetFriendAreaActionMenuState(2);
+ break;
+ case 8:
+ iVar4 = &gRecruitedPokemonRef->pokemon[gUnknown_203B2BC->targetPoke];
+ playerStruct = GetPlayerPokemonStruct();
+ if (!iVar4->isLeader) {
+ playerStruct->isLeader = FALSE;
+ iVar4->isLeader = TRUE;
+ nullsub_104();
+ }
+ sub_808ED00();
+ SetFriendAreaActionMenuState(2);
+ break;
+ case 9:
+ SetFriendAreaActionMenuState(8);
+ break;
+ case 0xc:
+ SetFriendAreaActionMenuState(0xe);
+ break;
+ case 10:
+ SetFriendAreaActionMenuState(10);
+ break;
+ case 0xb:
+ PlaySound(0x14d);
+ if (gUnknown_203B2BC->unk14.itemIndex != ITEM_ID_NOTHING) {
+ AddHeldItemToInventory(&gUnknown_203B2BC->unk14);
+ }
+ FillInventoryGaps();
+ gUnknown_203B2BC->unk14.itemIndex = 0;
+ gUnknown_203B2BC->unk14.numItems = 0;
+ GivePokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->unk14);
+ nullsub_104();
+ SetFriendAreaActionMenuState(2);
+ break;
+ case 4:
+ SetFriendAreaActionMenuState(4);
+ break;
+ case 5:
+ SetFriendAreaActionMenuState(5);
+ break;
+ case 1:
+ SetFriendAreaActionMenuState(2);
+ break;
+ }
+}
+
void sub_8027A40(void)
{
switch(sub_80244E4())
@@ -171,7 +289,7 @@ void sub_8027BD8(void)
ShiftItemsDownFrom(gUnknown_203B2BC->itemIndex);
FillInventoryGaps();
if (gUnknown_203B2BC->unk14.itemIndex != 0) {
- sub_8091274(&gUnknown_203B2BC->unk14);
+ AddHeldItemToInventory(&gUnknown_203B2BC->unk14);
}
GivePokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->itemToGive);
sub_801A928();
@@ -267,7 +385,7 @@ void sub_8027D40(u32 r0, struct HeldItem *heldItem)
u32 sub_8027D9C(struct PokemonStruct *r0)
{
u32 var1;
- if(r0->unk2 == 0)
+ if(r0->isLeader == 0)
{
var1 = 0;
if(r0->unk4.dungeonIndex == 0x41)
@@ -288,7 +406,7 @@ u32 sub_8027DCC(struct PokemonStruct *r0)
u32 var1;
if(sub_808D3BC() != r0)
if(sub_808D3F8() != r0)
- if(r0->unk2 == 0)
+ if(r0->isLeader == 0)
{
var1 = 0;
if(r0->unk4.dungeonIndex == 0x41)
@@ -345,7 +463,7 @@ void sub_8027EB8(void)
{
case 1:
PlaySound(0x14d);
- sub_8091274(&gUnknown_203B2BC->unk14);
+ AddHeldItemToInventory(&gUnknown_203B2BC->unk14);
FillInventoryGaps();
gUnknown_203B2BC->unk14.itemIndex = 0;
gUnknown_203B2BC->unk14.numItems = 0;
diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c
index 142aeca..fe9de8c 100644
--- a/src/friend_list_menu.c
+++ b/src/friend_list_menu.c
@@ -222,7 +222,7 @@ void sub_8026C14(void)
ShiftItemsDownFrom(gUnknown_203B2B8->unkC);
FillInventoryGaps();
if (gUnknown_203B2B8->unk14.itemIndex != '\0') {
- sub_8091274(&gUnknown_203B2B8->unk14);
+ AddHeldItemToInventory(&gUnknown_203B2B8->unk14);
nextState = 0x10;
}
HeldItemToSlot(&slot,&gUnknown_203B2B8->unk10);
@@ -342,7 +342,7 @@ void sub_8026E08(u32 r0)
u32 sub_8026E88(struct PokemonStruct *r0)
{
u8 iVar3;
- if(r0->unk2 == 0)
+ if(r0->isLeader == 0)
{
iVar3 = (r0->unk4.dungeonIndex == 0x41);
if(iVar3 != 0)
@@ -359,7 +359,7 @@ u32 sub_8026EB8(struct PokemonStruct *r0)
u8 iVar3;
if(sub_808D3BC() != r0)
if(sub_808D3F8() != r0)
- if(r0->unk2 == 0)
+ if(r0->isLeader == 0)
{
iVar3 = (r0->unk4.dungeonIndex == 0x41);
if(iVar3 != 0)
@@ -414,7 +414,7 @@ void sub_8026FA4(void)
{
case 1:
PlaySound(0x14d);
- sub_8091274(&gUnknown_203B2B8->unk14);
+ AddHeldItemToInventory(&gUnknown_203B2B8->unk14);
FillInventoryGaps();
gUnknown_203B2B8->unk14.itemIndex = 0;
gUnknown_203B2B8->unk14.numItems = 0;
diff --git a/src/items.c b/src/items.c
index e4bdc6a..6d2acaf 100644
--- a/src/items.c
+++ b/src/items.c
@@ -586,7 +586,7 @@ bool8 sub_809124C(u8 itemIndex, u8 param_3)
return AddItemToInventory(&temp);
}
-bool8 sub_8091274(struct HeldItem* slot)
+bool8 AddHeldItemToInventory(struct HeldItem* slot)
{
struct ItemSlot temp;
@@ -1083,7 +1083,7 @@ struct HeldItem* xxx_get_unk250_at_8091A90(u8 index) {
return &gTeamInventory_203B460->unk250[index];
}
-void xxx_fill_inv_unk250_gaps_8091AA8(u8 index) {
+void xxx_fill_inv_unk250_gaps_8091AA8(void) {
s32 slot_checking = 0;
s32 last_filled = 0;
diff --git a/src/kangaskhan_storage_3.c b/src/kangaskhan_storage_3.c
index 1c65da6..568e69f 100644
--- a/src/kangaskhan_storage_3.c
+++ b/src/kangaskhan_storage_3.c
@@ -159,7 +159,7 @@ void sub_80186F8(void)
item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | (0x80 << 1);
}
gTeamInventory_203B460->teamStorage[item.temp.norm.itemIndex] -= item.temp.norm.numItems;
- sub_8091274((struct HeldItem *)&item);
+ AddHeldItemToInventory((struct HeldItem *)&item);
}
}
FillInventoryGaps();
@@ -218,7 +218,7 @@ void sub_8018854(void)
itemsCast = (gUnknown_203B20C->unk8.numItems << 8);
item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | itemsCast;
- sub_8091274((struct HeldItem *)&item);
+ AddHeldItemToInventory((struct HeldItem *)&item);
if(sub_801CF14(1) == 0)
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
{
@@ -319,7 +319,7 @@ void sub_80189C8(void)
itemsCast = (gUnknown_203B20C->unk8.numItems << 8);
item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | itemsCast;
- sub_8091274((struct HeldItem *)&item);
+ AddHeldItemToInventory((struct HeldItem *)&item);
if(sub_801CF14(1) == 0)
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
{
diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c
index cd5df5b..e504f81 100644
--- a/src/kecleon_items_1.c
+++ b/src/kecleon_items_1.c
@@ -99,12 +99,215 @@ extern void sub_8013984(u8 *);
extern void sub_801A064(void);
extern void sub_801A0D8(void);
extern void AddMenuCursorSprite(void *);
-extern s32 xxx_count_inv_unk230();
extern u8 sub_801A37C(void);
extern u16 gUnknown_203B228;
extern u16 gUnknown_203B22A;
extern struct UnkTextStruct2 gUnknown_80DB95C;
+extern void sub_801A010(void);
+extern void sub_801A3DC(void);
+extern void sub_801AD34(u32);
+extern void PlaySound(u16 songIndex);
+
+extern void xxx_init_inv_unk250_at_8091A74(u8 index);
+extern void xxx_fill_inv_unk250_gaps_8091AA8(void);
+
+u32 sub_8019D8C(void);
+
+void sub_8019730(void)
+{
+ s32 local_8;
+
+ if (sub_80144A4(&local_8) != 0) {
+ return;
+ }
+ if (local_8 != 1) {
+ gUnknown_203B210->unk28 = local_8;
+ }
+ switch(local_8) {
+ case 2:
+ if (sub_8019D8C() == 0) {
+ UpdateKecleonStoreState(5);
+ }
+ else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) {
+ UpdateKecleonStoreState(0xA);
+ }
+ else {
+ UpdateKecleonStoreState(0xF);
+ }
+ break;
+ case 3:
+ if (GetNumberOfFilledInventorySlots() == 0) {
+ UpdateKecleonStoreState(9);
+ }
+ else if (gUnknown_203B210->unk14 == 0) {
+ UpdateKecleonStoreState(8);
+ }
+ else if (gTeamInventory_203B460->teamMoney < 99999) {
+ UpdateKecleonStoreState(0x17);
+ }
+ else
+ UpdateKecleonStoreState(7);
+ break;
+ case 4:
+ if (GetNumberOfFilledInventorySlots() == 0)
+ UpdateKecleonStoreState(9);
+ else if (gUnknown_203B210->unk14 == 0)
+ UpdateKecleonStoreState(8);
+ else if (gUnknown_203B210->unk18 + gTeamInventory_203B460->teamMoney > 99999) {
+ UpdateKecleonStoreState(7);
+ }
+ else
+ UpdateKecleonStoreState(0x1f);
+ break;
+ case 7:
+ UpdateKecleonStoreState(2);
+ break;
+ case 1:
+ UpdateKecleonStoreState(3);
+ break;
+ }
+}
+
+void sub_8019850(void)
+{
+ s32 local_c;
+
+ if (sub_80144A4(&local_c) == 0) {
+ switch(local_c)
+ {
+ case 5:
+ AddToTeamMoney(-gUnknown_203B210->itemSellPrice);
+ if (gUnknown_203B210->unk4 != '\0') {
+ AddHeldItemToInventory(xxx_get_inv_unk230_at_809185C(gUnknown_203B210->unk20));
+ xxx_init_unk230_substruct(gUnknown_203B210->unk20);
+ xxx_fill_unk230_gaps();
+ }
+ else {
+ AddHeldItemToInventory(xxx_get_unk250_at_8091A90(gUnknown_203B210->unk21));
+ xxx_init_inv_unk250_at_8091A74(gUnknown_203B210->unk21);
+ xxx_fill_inv_unk250_gaps_8091AA8();
+ }
+ PlaySound(0x14c);
+ UpdateKecleonStoreState(0x11);
+ break;
+ case 6:
+ case 1:
+ UpdateKecleonStoreState(0x10);
+ break;
+ }
+ }
+}
+
+void sub_80198E8(void)
+{
+ s32 local_c;
+
+ if (sub_80144A4(&local_c) == 0) {
+ switch(local_c)
+ {
+ case 5:
+ AddToTeamMoney(gUnknown_203B210->itemSellPrice);
+ ShiftItemsDownFrom(gUnknown_203B210->unk24);
+ PlaySound(0x14c);
+ UpdateKecleonStoreState(0x19);
+ break;
+ case 6:
+ case 1:
+ UpdateKecleonStoreState(0x18);
+ break;
+ }
+ }
+}
+
+void sub_8019944(void)
+{
+ s32 slotIndex;
+ s32 local_10;
+ struct ItemSlot *itemSlot;
+
+ if (sub_80144A4(&local_10) == 0) {
+ switch(local_10)
+ {
+ case 5:
+ for(slotIndex = 0; slotIndex < INVENTORY_SIZE; slotIndex++)
+ {
+ itemSlot = &gTeamInventory_203B460->teamItems[slotIndex];
+ if ((itemSlot->itemFlags & ITEM_FLAG_EXISTS) && CanSellItem(itemSlot->itemIndex)) {
+ ClearItemSlotAt(slotIndex);
+ }
+ }
+ FillInventoryGaps();
+ AddToTeamMoney(gUnknown_203B210->unk18);
+ PlaySound(0x14c);
+ UpdateKecleonStoreState(0x20);
+ break;
+ case 1:
+ case 6:
+ UpdateKecleonStoreState(1);
+ break;
+ }
+ }
+}
+
+void sub_80199CC(void)
+{
+ u32 uVar2;
+ struct HeldItem *puVar3;
+
+ if (gUnknown_203B210->unk4 != '\0') {
+ uVar2 = sub_8019EDC(1);
+ }
+ else {
+ uVar2 = sub_801A2A8(1);
+ }
+
+ switch(uVar2)
+ {
+ case 3:
+ if (gUnknown_203B210->unk4) {
+ gUnknown_203B210->unk20 = sub_8019FB0();
+ puVar3 = xxx_get_inv_unk230_at_809185C(gUnknown_203B210->unk20);
+ }
+ else {
+ gUnknown_203B210->unk21 = sub_801A37C();
+ puVar3 = xxx_get_unk250_at_8091A90(gUnknown_203B210->unk21);
+ }
+ xxx_init_itemslot_8090A8C(&gUnknown_203B210->unk1C,puVar3->itemIndex,0);
+ gUnknown_203B210->unk1C.numItems =puVar3->numItems;
+ gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->unk1C);
+ UpdateKecleonStoreState(0x14);
+ break;
+ case 4:
+ if (gUnknown_203B210->unk4) {
+ gUnknown_203B210->unk20 = sub_8019FB0();
+ puVar3 = xxx_get_inv_unk230_at_809185C(gUnknown_203B210->unk20);
+ }
+ else {
+ gUnknown_203B210->unk21 = sub_801A37C();
+ puVar3 = xxx_get_unk250_at_8091A90(gUnknown_203B210->unk21);
+ }
+ xxx_init_itemslot_8090A8C(&gUnknown_203B210->unk1C,puVar3->itemIndex,0);
+ gUnknown_203B210->unk1C.numItems = puVar3->numItems;
+ gUnknown_203B210->itemSellPrice = GetStackBuyPrice(&gUnknown_203B210->unk1C);
+ UpdateKecleonStoreState(0x15);
+ break;
+ case 2:
+ if (gUnknown_203B210->unk4) {
+ sub_801A010();
+ }
+ else {
+ sub_801A3DC();
+ }
+ UpdateKecleonStoreState(1);
+ break;
+ case 1:
+ sub_801AD34(0);
+ DrawTeamMoneyBox(1);
+ break;
+ }
+}
+
void sub_8019B08(void)
{
switch(sub_801A6E8(1))
@@ -253,15 +456,15 @@ u32 sub_8019D8C(void)
void sub_8019DAC(void)
{
s32 iVar3;
- struct ItemSlot *pbVar4;
+ struct ItemSlot *itemSlot;
s32 iVar5;
gUnknown_203B210->unk14 = 0;
gUnknown_203B210->unk18 = 0;
for(iVar5 = 0; iVar5 < INVENTORY_SIZE; iVar5++){
- pbVar4 = &gTeamInventory_203B460->teamItems[iVar5];
- if (((pbVar4->itemFlags & ITEM_FLAG_EXISTS) != 0) && (CanSellItem(pbVar4->itemIndex))) {
- iVar3 = GetStackSellPrice(pbVar4);
+ itemSlot = &gTeamInventory_203B460->teamItems[iVar5];
+ if (((itemSlot->itemFlags & ITEM_FLAG_EXISTS) != 0) && (CanSellItem(itemSlot->itemIndex))) {
+ iVar3 = GetStackSellPrice(itemSlot);
gUnknown_203B210->unk18 += iVar3;
gUnknown_203B210->unk14++;
}
diff --git a/src/luminous_cave.c b/src/luminous_cave.c
index 2b5afa3..fa78f06 100644
--- a/src/luminous_cave.c
+++ b/src/luminous_cave.c
@@ -97,7 +97,6 @@ extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u16 *, u32, u32, struct OpenedFile **r5, u32);
void xxx_call_fade_out_bgm(u16 speed);
void sub_801199C(u16 songIndex);
-void ClearItemSlotAt(u32 index);
void xxx_call_fade_in_new_bgm(u16 songIndex, u16 speed);
void sub_80977D0(void);
void PlaySound(u32);
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index 68c894b..1a38475 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -685,7 +685,7 @@ s32 SaveRecruitedPokemon(u8 *a1, s32 a2)
if (pokemon->unk0 & 2) {
buffer[count++] = i;
}
- if (pokemon->unk2) {
+ if (pokemon->isLeader) {
data_s16 = i;
}
}
@@ -745,7 +745,7 @@ s32 RestoreRecruitedPokemon(u8 *a1, s32 a2)
}
RestoreIntegerBits(&backup, &data_s16, 16);
if ((u16)data_s16 < NUM_SPECIES) {
- gRecruitedPokemonRef->pokemon[data_s16].unk2 = 1;
+ gRecruitedPokemonRef->pokemon[data_s16].isLeader = 1;
}
nullsub_102(&backup);
return backup.unk8;
@@ -776,7 +776,7 @@ void RestorePokemonStruct(struct unkStruct_8094924* a1, struct PokemonStruct* po
{
memset(pokemon, 0, sizeof(struct PokemonStruct));
pokemon->unk0 = 0;
- pokemon->unk2 = 0;
+ pokemon->isLeader = 0;
RestoreIntegerBits(a1, &pokemon->unkHasNextStage, 7);
if (pokemon->unkHasNextStage) {
pokemon->unk0 |= 1;
@@ -814,7 +814,7 @@ s32 SavePokemonStruct2(u8* a1, s32 size)
struct PokemonStruct2* pokemon2 = &gRecruitedPokemonRef->pokemon2[i];
SaveIntegerBits(&backup, &pokemon2->unk0, 2);
- SaveIntegerBits(&backup, pokemon2->unk2 ? &data_u8_neg1 : &data_u8_zero, 1);
+ SaveIntegerBits(&backup, pokemon2->isLeader ? &data_u8_neg1 : &data_u8_zero, 1);
SaveIntegerBits(&backup, &pokemon2->unkHasNextStage, 7);
xxx_save_poke_sub_4_80902F4(&backup, &pokemon2->unk4);
@@ -858,10 +858,10 @@ s32 RestorePokemonStruct2(u8* a1, s32 size)
RestoreIntegerBits(&backup, &unk2, 1);
if (unk2 & 1) {
- pokemon2->unk2 = TRUE;
+ pokemon2->isLeader = TRUE;
}
else {
- pokemon2->unk2 = FALSE;
+ pokemon2->isLeader = FALSE;
}
RestoreIntegerBits(&backup, &pokemon2->unkHasNextStage, 7);
diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c
index d57e8a2..11e387e 100644
--- a/src/pokemon_mid.c
+++ b/src/pokemon_mid.c
@@ -529,7 +529,7 @@ void xxx_pokemonstruct_to_pokemon2_808DE50(struct PokemonStruct2 * a1, struct Po
a1->IQSkills = pokemon->IQSkills;
sub_808E6F4(&a1->unk54);
a1->unk4 = pokemon->unk4;
- a1->unk2 = pokemon->unk2;
+ a1->isLeader = pokemon->isLeader;
a1->unkA = a3;
a1->speciesNum = pokemon->speciesNum;
a1->unk50 = pokemon->unk24;
@@ -582,7 +582,7 @@ void xxx_pokemon2_to_pokemonstruct_808DF44(struct PokemonStruct* pokemon, struct
pokemon->IQ = a2->IQ;
pokemon->IQSkills = a2->IQSkills;
pokemon->unk4 = a2->unk4;
- pokemon->unk2 = a2->unk2;
+ pokemon->isLeader = a2->isLeader;
pokemon->speciesNum = a2->speciesNum;
pokemon->unk24 = a2->unk50;
pokemon->pokeHP = a2->unk12;
diff --git a/src/post_office_guide.c b/src/post_office_guide.c
index 929c2e1..f009895 100644
--- a/src/post_office_guide.c
+++ b/src/post_office_guide.c
@@ -166,7 +166,7 @@ extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32
extern u32 sub_8012A64(struct UnkInputStruct**, u32);
extern void PlayMenuSoundEffect(u32);
extern void sub_8031A84();
-extern void sub_8031AE8();
+extern void DisplayMissionObjectives();
extern u8 gUnknown_202E5D8[];
extern u8 gAvailablePokemonNames[];
@@ -535,7 +535,7 @@ u32 sub_80319F8(void)
void sub_8031A2C(void)
{
sub_8031A84();
- sub_8031AE8();
+ DisplayMissionObjectives();
}
void sub_8031A3C(void)