diff --git a/include/pokemon_storage_system_internal.h b/include/pokemon_storage_system_internal.h index 1376c7396..3890928e4 100644 --- a/include/pokemon_storage_system_internal.h +++ b/include/pokemon_storage_system_internal.h @@ -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); diff --git a/src/pokemon_storage_system_2.c b/src/pokemon_storage_system_2.c index d835fb50c..918ffaf7d 100644 --- a/src/pokemon_storage_system_2.c +++ b/src/pokemon_storage_system_2.c @@ -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; diff --git a/src/pokemon_storage_system_3.c b/src/pokemon_storage_system_3.c index d68aaafdc..46212d06c 100644 --- a/src/pokemon_storage_system_3.c +++ b/src/pokemon_storage_system_3.c @@ -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(); } diff --git a/src/pokemon_storage_system_4.c b/src/pokemon_storage_system_4.c index 349a9b7b1..cbd2f1b9c 100644 --- a/src/pokemon_storage_system_4.c +++ b/src/pokemon_storage_system_4.c @@ -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++) { diff --git a/src/pokemon_storage_system_5.c b/src/pokemon_storage_system_5.c index 68a23b053..f01a1551b 100644 --- a/src/pokemon_storage_system_5.c +++ b/src/pokemon_storage_system_5.c @@ -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); diff --git a/src/pokemon_storage_system_8.c b/src/pokemon_storage_system_8.c index 327ceb541..b14eb9844 100644 --- a/src/pokemon_storage_system_8.c +++ b/src/pokemon_storage_system_8.c @@ -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;