This commit is contained in:
Eduardo Quezada
2022-07-31 22:39:59 -04:00
parent 9d9c2a9667
commit 36a5761d36
6 changed files with 117 additions and 113 deletions
+12 -11
View File
@@ -27,11 +27,12 @@ enum
enum
{
BOX_OPTION_WITHDRAW,
BOX_OPTION_DEPOSIT,
BOX_OPTION_MOVE_MONS,
BOX_OPTION_MOVE_ITEMS,
BOX_OPTION_EXIT,
OPTION_WITHDRAW,
OPTION_DEPOSIT,
OPTION_MOVE_MONS,
OPTION_MOVE_ITEMS,
OPTION_EXIT,
OPTIONS_COUNT
};
enum
@@ -208,9 +209,9 @@ struct UnkUtilData
struct UnkUtil
{
struct UnkUtilData *unk_00;
u8 unk_04;
u8 unk_05;
struct UnkUtilData *data;
u8 numActive;
u8 max;
};
struct PSS_ItemIconSprite
@@ -437,7 +438,7 @@ bool8 sub_8095050(void);
void sub_80950A4(void);
void sub_80950BC(u8 a0);
bool8 sub_80950D0(void);
void sub_8095B5C(void);
void CreateItemIconSprites(void);
void sub_8096088(void);
void sub_80960C0(void);
bool8 sub_809610C(void);
@@ -445,8 +446,8 @@ const u8 *GetMovingItemName(void);
void InitItemInfoWindow(void);
bool8 UpdateItemInfoWindowSlideIn(void);
bool8 UpdateItemInfoWindowSlideOut(void);
void sub_8096BE4(struct UnkUtil *arg0, struct UnkUtilData *arg1, u32 arg2);
void sub_8096BF8(void);
void UnkUtil_Init(struct UnkUtil *arg0, struct UnkUtilData *arg1, u32 arg2);
void UnkUtil_Run(void);
void AddMenu(void);
bool8 CanMovePartyMon(void);
bool8 CanShiftMon(void);
-10
View File
@@ -15,16 +15,6 @@
#include "constants/field_weather.h"
#include "constants/help_system.h"
// PC main menu options
enum {
OPTION_WITHDRAW,
OPTION_DEPOSIT,
OPTION_MOVE_MONS,
OPTION_MOVE_ITEMS,
OPTION_EXIT,
OPTIONS_COUNT
};
static EWRAM_DATA u8 sPreviousBoxOption = 0;
static EWRAM_DATA struct ChooseBoxMenu *sBoxSelectionPopupSpriteManager = NULL;
+17 -17
View File
@@ -349,7 +349,7 @@ static void VblankCb_PSS(void)
{
LoadOam();
ProcessSpriteCopyRequests();
sub_8096BF8();
UnkUtil_Run();
TransferPlttBuffer();
SetGpuReg(REG_OFFSET_BG2HOFS, gPSSData->bg2_X);
}
@@ -421,7 +421,7 @@ static void sub_808CF10(void)
FreeAllSpritePalettes();
ClearDma3Requests();
gReservedSpriteTileCount = 0x280;
sub_8096BE4(&gPSSData->unkUtil, gPSSData->unkUtilData, 8);
UnkUtil_Init(&gPSSData->unkUtil, gPSSData->unkUtilData, 8);
gKeyRepeatStartDelay = 20;
ClearScheduledBgCopiesToVram();
AllocBoxPartyPokemonDropdowns(3);
@@ -433,13 +433,13 @@ static void sub_808CF10(void)
static void sub_808CF94(void)
{
sub_8092B50();
sInPartyMenu = gPSSData->boxOption == BOX_OPTION_DEPOSIT;
sInPartyMenu = gPSSData->boxOption == OPTION_DEPOSIT;
gUnknown_20397B6 = 0;
}
static void sub_808CFC4(void)
{
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
{
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(7, 11));
@@ -529,7 +529,7 @@ static void Cb_InitPSS(u8 taskId)
if (sub_809140C())
return;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
{
gPSSData->markMenu.baseTileTag = TAG_TILE_D;
gPSSData->markMenu.basePaletteTag = TAG_PAL_DACE;
@@ -538,7 +538,7 @@ static void Cb_InitPSS(u8 taskId)
}
else
{
sub_8095B5C();
CreateItemIconSprites();
sub_808FDFC();
}
break;
@@ -608,7 +608,7 @@ static void Cb_MainPSS(u8 taskId)
gPSSData->state = 1;
break;
case 5:
if (gPSSData->boxOption != BOX_OPTION_MOVE_MONS && gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_MONS && gPSSData->boxOption != OPTION_MOVE_ITEMS)
{
PrintStorageActionText(PC_TEXT_WHICH_ONE_WILL_TAKE);
gPSSData->state = 3;
@@ -620,14 +620,14 @@ static void Cb_MainPSS(u8 taskId)
}
break;
case 6:
if (gPSSData->boxOption == BOX_OPTION_MOVE_MONS)
if (gPSSData->boxOption == OPTION_MOVE_MONS)
{
if (IsMonBeingMoved() && ItemIsMail(gPSSData->displayMonItemId))
gPSSData->state = 5;
else
SetPSSCallback(Cb_HidePartyPokemon);
}
else if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
else if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
{
SetPSSCallback(Cb_HidePartyPokemon);
}
@@ -650,7 +650,7 @@ static void Cb_MainPSS(u8 taskId)
gPSSData->newCurrBoxId = StorageGetCurrentBox() + 1;
if (gPSSData->newCurrBoxId >= TOTAL_BOXES_COUNT)
gPSSData->newCurrBoxId = 0;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
{
SetUpScrollToBox(gPSSData->newCurrBoxId);
gPSSData->state = 2;
@@ -666,7 +666,7 @@ static void Cb_MainPSS(u8 taskId)
gPSSData->newCurrBoxId = StorageGetCurrentBox() - 1;
if (gPSSData->newCurrBoxId < 0)
gPSSData->newCurrBoxId = TOTAL_BOXES_COUNT - 1;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
{
SetUpScrollToBox(gPSSData->newCurrBoxId);
gPSSData->state = 2;
@@ -794,7 +794,7 @@ static void Cb_MainPSS(u8 taskId)
BoxSetMosaic();
}
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
{
sub_8094D84();
gPSSData->state = 11;
@@ -909,7 +909,7 @@ static void Cb_OnSelectedMon(u8 taskId)
if (!BoxGetMosaic())
{
PlaySE(SE_SELECT);
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
PrintStorageActionText(PC_TEXT_IS_SELECTED);
else if (IsActiveItemMoving() || gPSSData->displayMonItemId != 0)
PrintStorageActionText(PC_TEXT_IS_SELECTED2);
@@ -2041,7 +2041,7 @@ static void Cb_ChangeScreen(u8 taskId)
u8 mode, monIndex, maxMonIndex;
u8 screenChangeType = gPSSData->screenChangeType;
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS && IsActiveItemMoving() == TRUE)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS && IsActiveItemMoving() == TRUE)
gUnknown_20397BA = GetMovingItem();
else
gUnknown_20397BA = ITEM_NONE;
@@ -2149,7 +2149,7 @@ static void sub_808F078(void)
LoadPalette(gUnknown_8E9C3F8, 0, 0x20);
LoadPalette(gUnknown_8E9C418, 0x20, 0x20);
LoadPalette(gUnknown_83CEA10, 0xF0, 0x20);
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
LoadPalette(gUnknown_83CE738, 0x30, 0x20);
else
LoadPalette(gUnknown_83CE758, 0x30, 0x20);
@@ -2290,7 +2290,7 @@ static void PrintCursorMonInfo(void)
u16 i;
u16 y;
FillWindowPixelBuffer(0, PIXEL_FILL(1));
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
{
for (i = 0, y = 0; i < 3; i++, y += 14)
{
@@ -2403,7 +2403,7 @@ static void SetUpHidePartyMenu(void)
gPSSData->partyMenuUnused1 = 0;
gPSSData->partyMenuY = 22;
gPSSData->partyMenuMoveTimer = 0;
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
sub_80960C0();
}
+4 -4
View File
@@ -314,7 +314,7 @@ static void sub_80900D4(u8 boxId)
}
}
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
{
for (boxPosition = 0; boxPosition < IN_BOX_COUNT; boxPosition++)
{
@@ -335,7 +335,7 @@ void sub_80901EC(u8 boxPosition)
u32 personality = GetCurrentBoxMonData(boxPosition, MON_DATA_PERSONALITY);
gPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(species, personality, x, y, 2, 19 - (boxPosition % IN_BOX_ROWS));
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
gPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND;
}
}
@@ -411,7 +411,7 @@ static u8 sub_80903A4(u8 row, u16 times, s16 xDelta)
u8 count = 0;
u8 boxPosition = row;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
{
for (i = 0; i < IN_BOX_COLUMNS; i++)
{
@@ -591,7 +591,7 @@ void CreatePartyMonsSprites(bool8 arg0)
}
}
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
{
for (i = 0; i < PARTY_SIZE; i++)
{
+14 -14
View File
@@ -51,7 +51,7 @@ static const u16 sHandCursorShadowTiles[] = INCBIN_U16("graphics/interface/pss_u
void sub_80922C0(void)
{
if (gPSSData->boxOption != BOX_OPTION_DEPOSIT)
if (gPSSData->boxOption != OPTION_DEPOSIT)
sBoxCursorArea = CURSOR_AREA_IN_BOX;
else
sBoxCursorArea = CURSOR_AREA_IN_PARTY;
@@ -140,7 +140,7 @@ bool8 sub_80924A8(void)
if (gPSSData->cursorMoveSteps == 0)
{
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
return FALSE;
else
return sub_809610C();
@@ -245,7 +245,7 @@ static void sub_80927E8(u8 newCurosrArea, u8 newCursorPosition)
{
sub_8092604(newCurosrArea, newCursorPosition);
sub_8092660();
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
{
if (gPSSData->inBoxMovingMode == 0 && !sIsMonBeingMoved)
StartSpriteAnim(gPSSData->cursorSprite, 1);
@@ -256,7 +256,7 @@ static void sub_80927E8(u8 newCurosrArea, u8 newCursorPosition)
StartSpriteAnim(gPSSData->cursorSprite, 1);
}
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
{
if (sBoxCursorArea == CURSOR_AREA_IN_BOX)
sub_8095D44(CURSOR_AREA_IN_BOX, sBoxCursorPosition);
@@ -304,7 +304,7 @@ static void sub_80929B0(void)
{
sBoxCursorArea = gPSSData->newCursorArea;
sBoxCursorPosition = gPSSData->newCursorPosition;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
{
if (gPSSData->inBoxMovingMode == 0 && !sIsMonBeingMoved)
StartSpriteAnim(gPSSData->cursorSprite, 1);
@@ -1237,7 +1237,7 @@ static u8 InBoxInput_Normal(void)
if (!sCanOnlyMove)
return 8;
if (gPSSData->boxOption != BOX_OPTION_MOVE_MONS || sIsMonBeingMoved == TRUE)
if (gPSSData->boxOption != OPTION_MOVE_MONS || sIsMonBeingMoved == TRUE)
{
switch (sub_8094E50(0))
{
@@ -1509,7 +1509,7 @@ static u8 HandleInput_InParty(void)
{
if (sBoxCursorPosition == PARTY_SIZE)
{
if (gPSSData->boxOption == BOX_OPTION_DEPOSIT)
if (gPSSData->boxOption == OPTION_DEPOSIT)
return 4;
gotoBox = TRUE;
@@ -1543,7 +1543,7 @@ static u8 HandleInput_InParty(void)
if (JOY_NEW(B_BUTTON))
{
if (gPSSData->boxOption == BOX_OPTION_DEPOSIT)
if (gPSSData->boxOption == OPTION_DEPOSIT)
return 19;
gotoBox = TRUE;
@@ -1754,7 +1754,7 @@ static void AddBoxMenu(void)
static bool8 sub_8094924(void)
{
InitMenu();
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
return sub_809494C();
else
return sub_8094A0C();
@@ -1766,19 +1766,19 @@ static bool8 sub_809494C(void)
switch (gPSSData->boxOption)
{
case BOX_OPTION_DEPOSIT:
case OPTION_DEPOSIT:
if (var0)
SetMenuText(PC_TEXT_STORE);
else
return FALSE;
break;
case BOX_OPTION_WITHDRAW:
case OPTION_WITHDRAW:
if (var0)
SetMenuText(PC_TEXT_WITHDRAW);
else
return FALSE;
break;
case BOX_OPTION_MOVE_MONS:
case OPTION_MOVE_MONS:
if (sIsMonBeingMoved)
{
if (var0)
@@ -1794,13 +1794,13 @@ static bool8 sub_809494C(void)
return FALSE;
}
break;
case BOX_OPTION_MOVE_ITEMS:
case OPTION_MOVE_ITEMS:
default:
return FALSE;
}
SetMenuText(PC_TEXT_SUMMARY);
if (gPSSData->boxOption == BOX_OPTION_MOVE_MONS)
if (gPSSData->boxOption == OPTION_MOVE_MONS)
{
if (!sBoxCursorArea)
SetMenuText(PC_TEXT_WITHDRAW);
+70 -57
View File
@@ -110,7 +110,7 @@ static const union AffineAnimCmd *const gUnknown_83D370C[] = {
gUnknown_83D36FC
};
static const struct SpriteTemplate gUnknown_83D3728 = {
static const struct SpriteTemplate sSpriteTemplate_ItemIcon = {
.tileTag = TAG_TILE_7,
.paletteTag = TAG_PAL_DACB,
.oam = &gUnknown_83D365C,
@@ -120,25 +120,25 @@ static const struct SpriteTemplate gUnknown_83D3728 = {
.callback = SpriteCallbackDummy,
};
void sub_8095B5C(void)
void CreateItemIconSprites(void)
{
s32 i;
u8 spriteId;
struct CompressedSpriteSheet spriteSheet;
struct SpriteTemplate spriteTemplate;
static u32 gUnknown_3000FE8[0x61];
static u32 sItemIconGfxBuffer[0x61];
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
{
spriteSheet.data = gUnknown_3000FE8;
spriteSheet.data = sItemIconGfxBuffer;
spriteSheet.size = 0x200;
spriteTemplate = gUnknown_83D3728;
spriteTemplate = sSpriteTemplate_ItemIcon;
for (i = 0; i < MAX_ITEM_ICONS; i++)
{
spriteSheet.tag = TAG_TILE_7 + i;
LoadCompressedSpriteSheet(&spriteSheet);
gPSSData->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * 32 + (void *)(OBJ_VRAM0);
gPSSData->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * TILE_SIZE_4BPP + (void *)(OBJ_VRAM0);
gPSSData->itemIcons[i].palIndex = AllocSpritePalette(TAG_PAL_DACB + i);
gPSSData->itemIcons[i].palIndex *= 16;
gPSSData->itemIcons[i].palIndex += 0x100;
@@ -147,7 +147,7 @@ void sub_8095B5C(void)
spriteId = CreateSprite(&spriteTemplate, 0, 0, 11);
gPSSData->itemIcons[i].sprite = &gSprites[spriteId];
gPSSData->itemIcons[i].sprite->invisible = TRUE;
gPSSData->itemIcons[i].active = 0;
gPSSData->itemIcons[i].active = FALSE;
}
}
gPSSData->movingItemId = ITEM_NONE;
@@ -157,7 +157,7 @@ void sub_8095C84(u8 cursorArea, u8 cursorPos)
{
u16 heldItem;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
return;
if (IsItemIconAtPosition(cursorArea, cursorPos))
return;
@@ -195,7 +195,7 @@ void sub_8095D44(u8 cursorArea, u8 cursorPos)
{
u8 id;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
return;
id = GetItemIconIdxByPosition(cursorArea, cursorPos);
@@ -208,7 +208,7 @@ void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos)
u8 id;
u16 item;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
return;
id = GetItemIconIdxByPosition(cursorArea, cursorPos);
@@ -249,7 +249,7 @@ void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos)
u8 id;
u16 item;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
return;
id = GetItemIconIdxByPosition(cursorArea, cursorPos);
@@ -277,7 +277,7 @@ void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos)
{
u8 id;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
return;
id = GetItemIconIdxByPosition(2, 0);
@@ -300,7 +300,7 @@ void Item_TakeMons(u8 cursorArea, u8 cursorPos)
u8 id;
u16 item;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
return;
item = 0;
@@ -321,7 +321,7 @@ void Item_TakeMons(u8 cursorArea, u8 cursorPos)
void sub_8096088(void)
{
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
{
u8 id = GetItemIconIdxByPosition(2, 0);
SetItemIconAffineAnim(id, 5);
@@ -333,7 +333,7 @@ void sub_80960C0(void)
{
s32 i;
if (gPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption != OPTION_MOVE_ITEMS)
return;
for (i = 0; i < MAX_ITEM_ICONS; i++)
@@ -365,7 +365,7 @@ bool8 IsActiveItemMoving(void)
{
s32 i;
if (gPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
if (gPSSData->boxOption == OPTION_MOVE_ITEMS)
{
for (i = 0; i < MAX_ITEM_ICONS; i++)
{
@@ -779,80 +779,93 @@ static void SpriteCB_ItemIcon_HideParty(struct Sprite *sprite)
#undef sCursorArea
#undef sCursorPos
static EWRAM_DATA struct UnkUtil *gUnknown_203982C = NULL;
static void sub_8096CDC(struct UnkUtilData *unkStruct);
static void sub_8096D70(struct UnkUtilData *unkStruct);
//------------------------------------------------------------------------------
// SECTION: UnkUtil
//
// Some data transfer utility that goes functionally unused.
// It gets initialized with UnkUtil_Init, and run every vblank in Pokémon
// Storage with UnkUtil_Run, but neither of the Add functions are ever used,
// so UnkUtil_Run performs no actions.
//------------------------------------------------------------------------------
void sub_8096BE4(struct UnkUtil *arg0, struct UnkUtilData *arg1, u32 arg2)
static EWRAM_DATA struct UnkUtil *sUnkUtil = NULL;
static void UnkUtil_CpuRun(struct UnkUtilData *unkStruct);
static void UnkUtil_DmaRun(struct UnkUtilData *unkStruct);
void UnkUtil_Init(struct UnkUtil *util, struct UnkUtilData *data, u32 max)
{
gUnknown_203982C = arg0;
arg0->unk_00 = arg1;
arg0->unk_05 = arg2;
arg0->unk_04 = 0;
sUnkUtil = util;
util->data = data;
util->max = max;
util->numActive = 0;
}
void sub_8096BF8(void)
void UnkUtil_Run(void)
{
u16 i;
if (gUnknown_203982C->unk_04)
if (sUnkUtil->numActive)
{
for (i = 0; i < gUnknown_203982C->unk_04; i++)
for (i = 0; i < sUnkUtil->numActive; i++)
{
struct UnkUtilData *unkStruct = &gUnknown_203982C->unk_00[i];
unkStruct->func(unkStruct);
struct UnkUtilData *data = &sUnkUtil->data[i];
data->func(data);
}
gUnknown_203982C->unk_04 = 0;
sUnkUtil->numActive = 0;
}
}
static bool8 sub_8096C40(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height, u16 unkArg)
// Unused
static bool8 UnkUtil_CpuAdd(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height, u16 unkArg)
{
struct UnkUtilData *unkStruct;
struct UnkUtilData *data;
if (gUnknown_203982C->unk_04 >= gUnknown_203982C->unk_05)
if (sUnkUtil->numActive >= sUnkUtil->max)
return FALSE;
unkStruct = &gUnknown_203982C->unk_00[gUnknown_203982C->unk_04++];
unkStruct->size = width * 2;
unkStruct->dest = dest + 2 * (dTop * 32 + dLeft);
unkStruct->src = src + 2 * (sTop * unkArg + sLeft);
unkStruct->height = height;
unkStruct->unk = unkArg;
unkStruct->func = sub_8096CDC;
data = &sUnkUtil->data[sUnkUtil->numActive++];
data->size = width * 2;
data->dest = dest + 2 * (dTop * 32 + dLeft);
data->src = src + 2 * (sTop * unkArg + sLeft);
data->height = height;
data->unk = unkArg;
data->func = UnkUtil_CpuRun;
return TRUE;
}
static void sub_8096CDC(struct UnkUtilData *unkStruct)
// Functionally unused
static void UnkUtil_CpuRun(struct UnkUtilData *data)
{
u16 i;
for (i = 0; i < unkStruct->height; i++)
for (i = 0; i < data->height; i++)
{
CpuCopy16(unkStruct->src, unkStruct->dest, unkStruct->size);
unkStruct->dest += 64;
unkStruct->src += (unkStruct->unk * 2);
CpuCopy16(data->src, data->dest, data->size);
data->dest += 64;
data->src += (data->unk * 2);
}
}
static bool8 sub_8096D14(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height)
// Unused
static bool8 UnkUtil_DmaAdd(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height)
{
struct UnkUtilData *unkStruct;
struct UnkUtilData *data;
if (gUnknown_203982C->unk_04 >= gUnknown_203982C->unk_05)
if (sUnkUtil->numActive >= sUnkUtil->max)
return FALSE;
unkStruct = &gUnknown_203982C->unk_00[gUnknown_203982C->unk_04++];
unkStruct->size = width * 2;
unkStruct->dest = dest + ((dTop * 32) + dLeft) * 2;
unkStruct->height = height;
unkStruct->func = sub_8096D70;
data = &sUnkUtil->data[sUnkUtil->numActive++];
data->size = width * 2;
data->dest = dest + ((dTop * 32) + dLeft) * 2;
data->height = height;
data->func = UnkUtil_DmaRun;
return TRUE;
}
static void sub_8096D70(struct UnkUtilData *data)
// Functionally unused
static void UnkUtil_DmaRun(struct UnkUtilData *data)
{
u16 i;