summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2018-06-08 19:59:00 -0500
committerMarcus Huderle <huderlem@gmail.com>2018-06-08 20:56:19 -0500
commitc5bcb67bb871a445b20bbc0c226bc290dc5ba6bc (patch)
tree69245ce8d6204218292c0e0a30f58bf31673032e /src
parent4fa88f1a8fb21f4f6491446d8137853ed08825db (diff)
Label decoration_inventory
Diffstat (limited to 'src')
-rw-r--r--src/decoration.c15
-rw-r--r--src/decoration_inventory.c135
-rw-r--r--src/scrcmd.c6
-rw-r--r--src/trader.c6
4 files changed, 75 insertions, 87 deletions
diff --git a/src/decoration.c b/src/decoration.c
index 4c9e4509a..96cf61548 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -19,6 +19,7 @@
#include "event_data.h"
#include "field_weather.h"
#include "decoration.h"
+#include "decoration_inventory.h"
#include "shop.h"
#include "ewram.h"
@@ -1555,7 +1556,7 @@ void sub_80FE470(u8 decoCat, u8 left, u8 top, u8 palIdx) // PrintDecorationCateg
strptr[2] = palIdx;
strptr += 3;
strptr = StringCopy(strptr, gUnknown_083EC5E4[decoCat]);
- strptr = sub_8072C14(strptr, sub_8134194(decoCat), 0x56, 1);
+ strptr = sub_8072C14(strptr, GetNumDecorationsInInventoryCategory(decoCat), 0x56, 1);
*strptr++ = 0xba;
strptr = sub_8072C14(strptr, gDecorationInventories[decoCat].size, 0x68, 1);
strptr[0] = EXT_CTRL_CODE_BEGIN;
@@ -1609,10 +1610,10 @@ void sub_80FE604(u8 taskId)
gUnknown_020388F6 = Menu_GetCursorPos();
if (gUnknown_020388F6 != 8)
{
- gUnknown_020388D5 = sub_8134194(gUnknown_020388F6);
+ gUnknown_020388D5 = GetNumDecorationsInInventoryCategory(gUnknown_020388F6);
if (gUnknown_020388D5)
{
- sub_8134104(gUnknown_020388F6);
+ SortDecorationInventory(gUnknown_020388F6);
gUnknown_020388D0 = gDecorationInventories[gUnknown_020388F6].items;
sub_80FEF50(taskId);
ClearVerticalScrollIndicatorPalettes();
@@ -2022,7 +2023,7 @@ void sub_80FF098(u8 taskId)
{
gUnknown_020388F4--;
}
- sub_8134104(gUnknown_020388F6);
+ SortDecorationInventory(gUnknown_020388F6);
sub_80FED90(taskId);
sub_80FEF28();
}
@@ -2042,7 +2043,7 @@ void sub_80FF114(u8 taskId)
}
void sub_80FF160(u8 taskId)
{
- if (!sub_81341D4())
+ if (!GetNumDecorationsInInventory())
{
DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE428, 0);
} else
@@ -4190,7 +4191,7 @@ void sub_81016F4(void)
void sub_8101700(u8 taskId)
{
- if (!sub_81341D4())
+ if (!GetNumDecorationsInInventory())
{
DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE428, 0);
} else
@@ -4203,7 +4204,7 @@ void sub_8101700(u8 taskId)
void sub_8101750(u8 taskId)
{
- if (!sub_81341D4())
+ if (!GetNumDecorationsInInventory())
{
DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE428, 0);
} else
diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c
index d4ef2d589..feec11670 100644
--- a/src/decoration_inventory.c
+++ b/src/decoration_inventory.c
@@ -1,9 +1,9 @@
#include "global.h"
-#include "constants/decorations.h"
-#include "sprite.h"
-#include "task.h"
#include "decoration.h"
#include "decoration_inventory.h"
+#include "sprite.h"
+#include "task.h"
+#include "constants/decorations.h"
#define DECOR_INV(ptr) {.items = ptr, .size = sizeof ptr}
@@ -18,154 +18,141 @@ struct DecorationInventory const gDecorationInventories[] = {
DECOR_INV(gSaveBlock1.decorCushion)
};
-void ClearDecorationInventory(u8 invIdx)
+void ClearDecorationInventory(u8 category)
{
u8 i;
- for (i=0; i<gDecorationInventories[invIdx].size; i++)
+ for (i = 0; i < gDecorationInventories[category].size; i++)
{
- gDecorationInventories[invIdx].items[i] = DECOR_NONE;
+ gDecorationInventories[category].items[i] = DECOR_NONE;
}
}
void ClearDecorationInventories(void)
{
u8 i;
- for (i=0; i<8; i++)
+ for (i = 0; i < 8; i++)
{
ClearDecorationInventory(i);
}
}
-s8 sub_8133F9C(u8 invIdx)
+s8 FindFreeDecorationInventorySlot(u8 category)
{
s8 i;
- for (i=0; i<(s8)gDecorationInventories[invIdx].size; i++)
+ for (i = 0; i < (s8)gDecorationInventories[category].size; i++)
{
- if (gDecorationInventories[invIdx].items[i] == DECOR_NONE)
- {
+ if (gDecorationInventories[category].items[i] == DECOR_NONE)
return i;
- }
}
+
return -1;
}
-bool8 sub_8133FE4(u8 decorIdx)
+bool8 InventoryContainsDecoration(u8 decorationId)
{
- u8 invIdx;
u8 i;
- invIdx = gDecorations[decorIdx].category;
- for (i=0; i<gDecorationInventories[invIdx].size; i++)
+ u8 category = gDecorations[decorationId].category;
+ for (i = 0; i < gDecorationInventories[category].size; i++)
{
- if (gDecorationInventories[invIdx].items[i] == decorIdx)
- {
+ if (gDecorationInventories[category].items[i] == decorationId)
return TRUE;
- }
}
+
return FALSE;
}
-bool8 GiveDecoration(u8 decorIdx)
+bool8 GiveDecoration(u8 decorationId)
{
- u8 invIdx;
- s8 invSlot;
- if (decorIdx == DECOR_NONE)
- {
+ u8 category;
+ s8 slot;
+ if (decorationId == DECOR_NONE)
return FALSE;
- }
- invIdx = gDecorations[decorIdx].category;
- invSlot = sub_8133F9C(invIdx);
- if (invSlot == -1)
- {
+
+ category = gDecorations[decorationId].category;
+ slot = FindFreeDecorationInventorySlot(category);
+ if (slot == -1)
return FALSE;
- }
- gDecorationInventories[invIdx].items[invSlot] = decorIdx;
+
+ gDecorationInventories[category].items[slot] = decorationId;
return TRUE;
}
-bool8 sub_8134074(u8 decorIdx)
+bool8 CheckDecorationInventoryHasSpace(u8 decorationId)
{
- u8 invIdx;
- if (decorIdx == DECOR_NONE)
- {
+ u8 category;
+ if (decorationId == DECOR_NONE)
return FALSE;
- }
- invIdx = gDecorations[decorIdx].category;
- if (sub_8133F9C(invIdx) == -1)
- {
+
+ category = gDecorations[decorationId].category;
+ if (FindFreeDecorationInventorySlot(category) == -1)
return FALSE;
- }
+
return TRUE;
}
-s8 sub_81340A8(u8 decorIdx)
+s8 RemoveDecorationFromInventory(u8 decorationId)
{
- u8 i;
- u8 invIdx;
- i = 0;
- if (decorIdx == DECOR_NONE)
- {
+ u8 category;
+ u8 i = 0;
+ if (decorationId == DECOR_NONE)
return FALSE;
- }
- for (i=0; i<gDecorationInventories[gDecorations[decorIdx].category].size; i++)
+
+ for (i = 0; i < gDecorationInventories[gDecorations[decorationId].category].size; i++)
{
- invIdx = gDecorations[decorIdx].category;
- if (gDecorationInventories[invIdx].items[i] == decorIdx)
+ category = gDecorations[decorationId].category;
+ if (gDecorationInventories[category].items[i] == decorationId)
{
- gDecorationInventories[invIdx].items[i] = DECOR_NONE;
- sub_8134104(invIdx);
+ gDecorationInventories[category].items[i] = DECOR_NONE;
+ SortDecorationInventory(category);
return TRUE;
}
}
+
return FALSE;
}
-void sub_8134104(u8 invIdx)
+void SortDecorationInventory(u8 category)
{
u8 i;
u8 j;
u8 tmp;
- for (i=0; i<gDecorationInventories[invIdx].size; i++)
+ for (i = 0; i < gDecorationInventories[category].size; i++)
{
- for (j=i+1; j<gDecorationInventories[invIdx].size; j++)
+ for (j = i + 1; j < gDecorationInventories[category].size; j++)
{
- if (gDecorationInventories[invIdx].items[j] != 0 && (gDecorationInventories[invIdx].items[i] == DECOR_NONE || gDecorationInventories[invIdx].items[i] > gDecorationInventories[invIdx].items[j]))
+ if (gDecorationInventories[category].items[j] != 0 && (gDecorationInventories[category].items[i] == DECOR_NONE || gDecorationInventories[category].items[i] > gDecorationInventories[category].items[j]))
{
- tmp = gDecorationInventories[invIdx].items[i];
- gDecorationInventories[invIdx].items[i] = gDecorationInventories[invIdx].items[j];
- gDecorationInventories[invIdx].items[j] = tmp;
+ tmp = gDecorationInventories[category].items[i];
+ gDecorationInventories[category].items[i] = gDecorationInventories[category].items[j];
+ gDecorationInventories[category].items[j] = tmp;
}
}
}
}
-u8 sub_8134194(u8 invIdx)
+u8 GetNumDecorationsInInventoryCategory(u8 category)
{
u8 i;
- u8 count;
- count = 0;
- for (i=0; i<gDecorationInventories[invIdx].size; i++)
+ u8 count = 0;
+ for (i = 0; i < gDecorationInventories[category].size; i++)
{
- if (gDecorationInventories[invIdx].items[i] != 0)
- {
+ if (gDecorationInventories[category].items[i] != DECOR_NONE)
count++;
- }
}
+
return count;
}
-u8 sub_81341D4(void)
+u8 GetNumDecorationsInInventory(void)
{
u8 i;
- u8 count;
- count = 0;
- for (i=0; i<8; i++)
- {
- count += sub_8134194(i);
- }
+ u8 count = 0;
+ for (i = 0; i < 8; i++)
+ count += GetNumDecorationsInInventoryCategory(i);
+
return count;
}
-
#if DEBUG
void Debug_GiveAllDecorations(void)
{
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 3ad433fb7..ca49dc0df 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -556,7 +556,7 @@ bool8 ScrCmd_takedecoration(struct ScriptContext *ctx)
{
u32 decoration = VarGet(ScriptReadHalfword(ctx));
- gSpecialVar_Result = sub_81340A8(decoration);
+ gSpecialVar_Result = RemoveDecorationFromInventory(decoration);
return FALSE;
}
@@ -564,7 +564,7 @@ bool8 ScrCmd_checkdecorspace(struct ScriptContext *ctx)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
- gSpecialVar_Result = sub_8134074(decorId);
+ gSpecialVar_Result = CheckDecorationInventoryHasSpace(decorId);
return FALSE;
}
@@ -572,7 +572,7 @@ bool8 ScrCmd_checkdecor(struct ScriptContext *ctx)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
- gSpecialVar_Result = sub_8133FE4(decorId);
+ gSpecialVar_Result = InventoryContainsDecoration(decorId);
return FALSE;
}
diff --git a/src/trader.c b/src/trader.c
index e8fe743f8..f8606d499 100644
--- a/src/trader.c
+++ b/src/trader.c
@@ -188,7 +188,7 @@ void ScrSpecial_DoesPlayerHaveNoDecorations(void)
for (i = 0; i < 8; i++)
{
- if (sub_8134194(i))
+ if (GetNumDecorationsInInventoryCategory(i))
{
gSpecialVar_Result = FALSE;
return;
@@ -201,7 +201,7 @@ void ScrSpecial_IsDecorationFull(void)
{
gSpecialVar_Result = FALSE;
if (gDecorations[gSpecialVar_0x8004].category != gDecorations[gSpecialVar_0x8006].category
- && sub_8133F9C(gDecorations[gSpecialVar_0x8004].category) == -1)
+ && FindFreeDecorationInventorySlot(gDecorations[gSpecialVar_0x8004].category) == -1)
{
sub_80FE7D4(gStringVar2, gDecorations[gSpecialVar_0x8004].category);
gSpecialVar_Result = TRUE;
@@ -248,7 +248,7 @@ void ScrSpecial_TraderDoDecorationTrade(void)
{
struct MauvilleManTrader *trader = &gSaveBlock1.mauvilleMan.trader;
- sub_81340A8(gSpecialVar_0x8006);
+ RemoveDecorationFromInventory(gSpecialVar_0x8006);
GiveDecoration(gSpecialVar_0x8004);
StringCopy(trader->unk5[gSpecialVar_0x8005], gSaveBlock2.playerName);
trader->unk1[gSpecialVar_0x8005] = gSpecialVar_0x8006;