undo revert
This commit is contained in:
2781
src/decoration.c
Normal file
2781
src/decoration.c
Normal file
File diff suppressed because it is too large
Load Diff
189
src/decoration_inventory.c
Normal file
189
src/decoration_inventory.c
Normal file
@@ -0,0 +1,189 @@
|
||||
|
||||
// Includes
|
||||
#include "global.h"
|
||||
#include "decoration.h"
|
||||
#include "decoration_inventory.h"
|
||||
|
||||
// Static type declarations
|
||||
|
||||
// Static RAM declarations
|
||||
|
||||
EWRAM_DATA struct DecorationInventory gDecorationInventories[8] = {};
|
||||
|
||||
// Static ROM declarations
|
||||
|
||||
// .rodata
|
||||
|
||||
// .text
|
||||
|
||||
#define SET_DECOR_INV(i, ptr) {\
|
||||
gDecorationInventories[i].items = ptr;\
|
||||
gDecorationInventories[i].size = sizeof(ptr);\
|
||||
}
|
||||
|
||||
void SetDecorationInventoriesPointers(void)
|
||||
{
|
||||
SET_DECOR_INV(0, gSaveBlock1Ptr->decorDesk);
|
||||
SET_DECOR_INV(1, gSaveBlock1Ptr->decorChair);
|
||||
SET_DECOR_INV(2, gSaveBlock1Ptr->decorPlant);
|
||||
SET_DECOR_INV(3, gSaveBlock1Ptr->decorOrnament);
|
||||
SET_DECOR_INV(4, gSaveBlock1Ptr->decorMat);
|
||||
SET_DECOR_INV(5, gSaveBlock1Ptr->decorPoster);
|
||||
SET_DECOR_INV(6, gSaveBlock1Ptr->decorDoll);
|
||||
SET_DECOR_INV(7, gSaveBlock1Ptr->decorCushion);
|
||||
sub_8126968();
|
||||
}
|
||||
|
||||
static void ClearDecorationInventory(u8 idx)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < gDecorationInventories[idx].size; i ++)
|
||||
{
|
||||
gDecorationInventories[idx].items[i] = DECOR_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
void ClearDecorationInventories(void)
|
||||
{
|
||||
u8 idx;
|
||||
|
||||
for (idx = 0; idx < 8; idx ++)
|
||||
{
|
||||
ClearDecorationInventory(idx);
|
||||
}
|
||||
}
|
||||
|
||||
s8 GetFirstEmptyDecorSlot(u8 idx)
|
||||
{
|
||||
s8 i;
|
||||
|
||||
for (i = 0; i < (s8)gDecorationInventories[idx].size; i ++)
|
||||
{
|
||||
if (gDecorationInventories[idx].items[i] == DECOR_NONE)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool8 CheckHasDecoration(u8 decor)
|
||||
{
|
||||
u8 i;
|
||||
u8 category;
|
||||
|
||||
category = gDecorations[decor].category;
|
||||
for (i = 0; i < gDecorationInventories[category].size; i ++)
|
||||
{
|
||||
if (gDecorationInventories[category].items[i] == decor)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 DecorationAdd(u8 decor)
|
||||
{
|
||||
u8 category;
|
||||
s8 idx;
|
||||
|
||||
if (decor == DECOR_NONE)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
category = gDecorations[decor].category;
|
||||
idx = GetFirstEmptyDecorSlot(category);
|
||||
if (idx == -1)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
gDecorationInventories[category].items[idx] = decor;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 DecorationCheckSpace(u8 decor)
|
||||
{
|
||||
if (decor == DECOR_NONE)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
if (GetFirstEmptyDecorSlot(gDecorations[decor].category) == -1)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
s8 DecorationRemove(u8 decor)
|
||||
{
|
||||
u8 i;
|
||||
u8 idx;
|
||||
|
||||
i = 0;
|
||||
if (decor == DECOR_NONE)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
for (i = 0; i < gDecorationInventories[gDecorations[decor].category].size; i ++)
|
||||
{
|
||||
idx = gDecorations[decor].category;
|
||||
if (gDecorationInventories[idx].items[i] == decor)
|
||||
{
|
||||
gDecorationInventories[idx].items[i] = DECOR_NONE;
|
||||
CondenseDecorationCategoryN(idx);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void CondenseDecorationCategoryN(u8 idx)
|
||||
{
|
||||
u8 i;
|
||||
u8 j;
|
||||
u8 tmp;
|
||||
|
||||
for (i = 0; i < gDecorationInventories[idx].size; i ++)
|
||||
{
|
||||
for (j = i + 1; j < gDecorationInventories[idx].size; j ++)
|
||||
{
|
||||
if (gDecorationInventories[idx].items[j] != DECOR_NONE && (gDecorationInventories[idx].items[i] == DECOR_NONE || gDecorationInventories[idx].items[i] > gDecorationInventories[idx].items[j]))
|
||||
{
|
||||
tmp = gDecorationInventories[idx].items[i];
|
||||
gDecorationInventories[idx].items[i] = gDecorationInventories[idx].items[j];
|
||||
gDecorationInventories[idx].items[j] = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u8 CountDecorationCategoryN(u8 idx)
|
||||
{
|
||||
u8 i;
|
||||
u8 ct;
|
||||
|
||||
ct = 0;
|
||||
for (i = 0; i < gDecorationInventories[idx].size; i ++)
|
||||
{
|
||||
if (gDecorationInventories[idx].items[i] != DECOR_NONE)
|
||||
{
|
||||
ct ++;
|
||||
}
|
||||
}
|
||||
return ct;
|
||||
}
|
||||
|
||||
u8 CountDecorations(void)
|
||||
{
|
||||
u8 idx;
|
||||
u8 ct;
|
||||
|
||||
ct = 0;
|
||||
for (idx = 0; idx < 8; idx ++)
|
||||
{
|
||||
ct += CountDecorationCategoryN(idx);
|
||||
}
|
||||
return ct;
|
||||
}
|
||||
@@ -28,13 +28,13 @@ s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 lett
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 GetMaxWidthInMenuTable(const u8 **str, s32 arg1)
|
||||
s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1)
|
||||
{
|
||||
s32 i, var;
|
||||
|
||||
for (var = 0, i = 0; i < arg1; i++)
|
||||
{
|
||||
s32 stringWidth = GetStringWidth(1, str[i * 2], 0);
|
||||
s32 stringWidth = GetStringWidth(1, str[i].text, 0);
|
||||
if (stringWidth > var)
|
||||
var = stringWidth;
|
||||
}
|
||||
@@ -42,13 +42,13 @@ s32 GetMaxWidthInMenuTable(const u8 **str, s32 arg1)
|
||||
return convert_pixel_width_to_tile_width(var);
|
||||
}
|
||||
|
||||
s32 sub_81DB3D8(const u8 **str, u8* arg1, s32 arg2)
|
||||
s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2)
|
||||
{
|
||||
s32 i, var;
|
||||
|
||||
for (var = 0, i = 0; i < arg2; i++)
|
||||
{
|
||||
s32 stringWidth = GetStringWidth(1, str[arg1[i] * 2], 0);
|
||||
s32 stringWidth = GetStringWidth(1, str[arg1[i]].text, 0);
|
||||
if (stringWidth > var)
|
||||
var = stringWidth;
|
||||
}
|
||||
|
||||
3679
src/pokemon_summary_screen.c
Executable file
3679
src/pokemon_summary_screen.c
Executable file
File diff suppressed because it is too large
Load Diff
@@ -207,7 +207,7 @@ static bool32 PrintStartMenuItemsMultistep(s16 *index, u32 n)
|
||||
|
||||
do
|
||||
{
|
||||
if (sStartMenuItems[sCurrentStartMenuActions[_index]].func == StartMenu_PlayerName)
|
||||
if (sStartMenuItems[sCurrentStartMenuActions[_index]].func.u8_void == StartMenu_PlayerName)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user