diff options
author | Marcus Huderle <huderlem@gmail.com> | 2018-06-08 19:59:00 -0500 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2018-06-08 20:56:19 -0500 |
commit | c5bcb67bb871a445b20bbc0c226bc290dc5ba6bc (patch) | |
tree | 69245ce8d6204218292c0e0a30f58bf31673032e /src/decoration_inventory.c | |
parent | 4fa88f1a8fb21f4f6491446d8137853ed08825db (diff) |
Label decoration_inventory
Diffstat (limited to 'src/decoration_inventory.c')
-rw-r--r-- | src/decoration_inventory.c | 135 |
1 files changed, 61 insertions, 74 deletions
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) { |