diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-08-28 16:07:35 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-28 16:07:35 -0400 |
commit | e9b734c1efd9ad8a079d9ca7c9ed65cff801be1c (patch) | |
tree | 48a735f5fc6b6dca208d8f8cdbdacfa6f54a5f88 /src | |
parent | 5dfbdca6c7df39c8064a82aa1316d6380ccb0d85 (diff) | |
parent | eb4bcc89cd149ae1a5e43f2aef0dddf5a69bb23c (diff) |
Merge branch 'master' into doc-blender
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_gfx_sfx_util.c | 13 | ||||
-rw-r--r-- | src/battle_main.c | 69 | ||||
-rw-r--r-- | src/battle_pyramid_bag.c | 8 | ||||
-rw-r--r-- | src/contest.c | 26 | ||||
-rw-r--r-- | src/contest_painting.c | 116 | ||||
-rw-r--r-- | src/event_object_movement.c | 79 | ||||
-rw-r--r-- | src/fldeff_cut.c | 13 | ||||
-rwxr-xr-x | src/item_menu.c | 156 | ||||
-rw-r--r-- | src/link_rfu_2.c | 78 | ||||
-rw-r--r-- | src/list_menu.c | 2 | ||||
-rw-r--r-- | src/menu.c | 56 | ||||
-rw-r--r-- | src/menu_specialized.c | 119 | ||||
-rw-r--r-- | src/pokemon.c | 28 | ||||
-rw-r--r-- | src/script.c | 6 | ||||
-rw-r--r-- | src/trainer_hill.c | 73 |
15 files changed, 310 insertions, 532 deletions
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 50a5f8ad5..1638e2f57 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -1014,15 +1014,12 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite) palOffset = (battlerId * 16) + 0x100; LoadCompressedPalette(gSubstituteDollPal, palOffset, 32); } - else + else if (!IsContest()) { - if (!IsContest()) - { - if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); - else - BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId); - } + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); + else + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId); } } diff --git a/src/battle_main.c b/src/battle_main.c index 0ea19dfaa..03e958c61 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4851,40 +4851,38 @@ static void SetActionsAndBattlersTurnOrder(void) gBattleStruct->focusPunchBattlerId = 0; return; } - else + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH) { - if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH) - { - gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; - gBattlerByTurnOrder[turnOrderId] = gActiveBattler; - turnOrderId++; - } + gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; + gBattlerByTurnOrder[turnOrderId] = gActiveBattler; + turnOrderId++; } - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + } + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + { + if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH) { - if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH) - { - gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; - gBattlerByTurnOrder[turnOrderId] = gActiveBattler; - turnOrderId++; - } + gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; + gBattlerByTurnOrder[turnOrderId] = gActiveBattler; + turnOrderId++; } - for (i = 0; i < gBattlersCount - 1; i++) + } + for (i = 0; i < gBattlersCount - 1; i++) + { + for (j = i + 1; j < gBattlersCount; j++) { - for (j = i + 1; j < gBattlersCount; j++) + u8 battler1 = gBattlerByTurnOrder[i]; + u8 battler2 = gBattlerByTurnOrder[j]; + + if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM + && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM + && gActionsByTurnOrder[i] != B_ACTION_SWITCH + && gActionsByTurnOrder[j] != B_ACTION_SWITCH) { - u8 battler1 = gBattlerByTurnOrder[i]; - u8 battler2 = gBattlerByTurnOrder[j]; - if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM - && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM - && gActionsByTurnOrder[i] != B_ACTION_SWITCH - && gActionsByTurnOrder[j] != B_ACTION_SWITCH) - { - if (GetWhoStrikesFirst(battler1, battler2, FALSE)) - SwapTurnOrder(i, j); - } + if (GetWhoStrikesFirst(battler1, battler2, FALSE)) + SwapTurnOrder(i, j); } } } @@ -4962,12 +4960,8 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) } TryClearRageStatuses(); - gCurrentTurnActionNumber = 0; -{ - // something stupid needed to match - u8 zero; - gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)]; -} + gCurrentTurnActionNumber = 0; //See comment underneath + gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; //Should be gActionsByTurnOrder[(gCurrentTurnActionNumber = 0)], but that doesn't match gDynamicBasePower = 0; gBattleStruct->dynamicMoveType = 0; gBattleMainFunc = RunTurnActionsFunctions; @@ -4990,13 +4984,10 @@ static void RunTurnActionsFunctions(void) gHitMarker &= ~(HITMARKER_x100000); gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F]; } - else + else if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId { - if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId - { - gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); - gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); - } + gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); + gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); } } diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 33daed80c..e038e71e1 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -970,7 +970,7 @@ static void HandleMenuActionInput(u8 taskId) if (id > 0 && IsValidMenuAction(id - 2)) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); } } else if (gMain.newKeys & DPAD_DOWN) @@ -978,7 +978,7 @@ static void HandleMenuActionInput(u8 taskId) if (id < gPyramidBagResources->menuActionsCount - 2 && IsValidMenuAction(id + 2)) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); } } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED) @@ -986,7 +986,7 @@ static void HandleMenuActionInput(u8 taskId) if (id & 1 && IsValidMenuAction(id - 1)) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); } } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED) @@ -994,7 +994,7 @@ static void HandleMenuActionInput(u8 taskId) if (!(id & 1) && IsValidMenuAction(id + 1)) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); } } else if (gMain.newKeys & A_BUTTON) diff --git a/src/contest.c b/src/contest.c index af9e734fa..4470ec2a2 100644 --- a/src/contest.c +++ b/src/contest.c @@ -999,8 +999,6 @@ void ResetLinkContestBoolean(void) static void SetupContestGpuRegs(void) { - u16 savedIme; - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP); SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -3410,8 +3408,7 @@ static void GetAllChosenMoves(void) static void RankContestants(void) { - s32 i; - s32 j; + s32 i, j; s16 arr[CONTESTANT_COUNT]; for (i = 0; i < CONTESTANT_COUNT; i++) @@ -3486,8 +3483,7 @@ static bool8 ContestantCanUseTurn(u8 contestant) { if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) return FALSE; - else - return TRUE; + return TRUE; } static void SetContestantStatusesForNextRound(void) @@ -3541,8 +3537,7 @@ bool8 Contest_IsMonsTurnDisabled(u8 contestant) { if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns) return TRUE; - else - return FALSE; + return FALSE; } static void CalculateTotalPointsForContestant(u8 contestant) @@ -4485,17 +4480,14 @@ static void CalculateAppealMoveImpact(u8 contestant) eContestantStatus[contestant].comboAppealBonus = eContestantStatus[contestant].baseAppeal * eContestantStatus[contestant].completedCombo; eContestantStatus[contestant].completedComboFlag = TRUE; // Redundant with completedCombo, used by AI } + else if (gContestMoves[eContestantStatus[contestant].currMove].comboStarterId != 0) + { + eContestantStatus[contestant].hasJudgesAttention = TRUE; + eContestantStatus[contestant].usedComboMove = TRUE; + } else { - if (gContestMoves[eContestantStatus[contestant].currMove].comboStarterId != 0) - { - eContestantStatus[contestant].hasJudgesAttention = TRUE; - eContestantStatus[contestant].usedComboMove = TRUE; - } - else - { - eContestantStatus[contestant].hasJudgesAttention = FALSE; - } + eContestantStatus[contestant].hasJudgesAttention = FALSE; } } if (eContestantStatus[contestant].repeatedMove) diff --git a/src/contest_painting.c b/src/contest_painting.c index 5dd4a70a5..a0c39dfc7 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -384,8 +384,6 @@ static void InitContestMonPixels(u16 species, u8 whichSprite) } } -#ifdef NONMATCHING -// functionally equivalent. static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64]) { u16 tileY, tileX, pixelY, pixelX; @@ -399,125 +397,21 @@ static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels) { for (pixelX = 0; pixelX < 8; pixelX++) { - int offset = 32 * (8 * tileY + tileX) + (pixelY * 4 + pixelX / 2); - colorIndex = spriteGfx[offset]; + colorIndex = spriteGfx[((tileY * 8) + tileX) * 32 + (pixelY << 2) + (pixelX >> 1)]; if (pixelX & 1) colorIndex >>= 4; else - colorIndex &= 0xF; + colorIndex &= 0xF; // %=16 works here too. Both match - if (colorIndex == 0) // transparent pixel - (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = 0x8000; + if (colorIndex == 0) // transparent pixel + (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = 0x8000; else - (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = palette[colorIndex]; + (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = palette[colorIndex]; } } } } } -#else -NAKED -static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)[64][64]) -{ - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - mov r10, r0\n\ - mov r9, r1\n\ - str r2, [sp]\n\ - movs r0, 0\n\ -_08130394:\n\ - movs r3, 0\n\ - adds r1, r0, 0x1\n\ - str r1, [sp, 0x4]\n\ - lsls r0, 3\n\ - str r0, [sp, 0x8]\n\ -_0813039E:\n\ - movs r1, 0\n\ - adds r2, r3, 0x1\n\ - mov r8, r2\n\ - ldr r7, [sp, 0x8]\n\ - adds r0, r7, r3\n\ - lsls r0, 5\n\ - mov r12, r0\n\ - lsls r4, r3, 3\n\ -_081303AE:\n\ - movs r3, 0\n\ - lsls r0, r1, 2\n\ - adds r6, r1, 0x1\n\ - mov r2, r12\n\ - adds r5, r2, r0\n\ - ldr r7, [sp, 0x8]\n\ - adds r0, r7, r1\n\ - lsls r0, 7\n\ - ldr r1, [sp]\n\ - adds r2, r0, r1\n\ -_081303C2:\n\ - lsrs r0, r3, 1\n\ - adds r0, r5, r0\n\ - add r0, r10\n\ - ldrb r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r3\n\ - cmp r0, 0\n\ - beq _081303D6\n\ - lsrs r1, 4\n\ - b _081303DA\n\ -_081303D6:\n\ - movs r0, 0xF\n\ - ands r1, r0\n\ -_081303DA:\n\ - cmp r1, 0\n\ - bne _081303EC\n\ - adds r0, r4, r3\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - movs r7, 0x80\n\ - lsls r7, 8\n\ - adds r1, r7, 0\n\ - b _081303F8\n\ -_081303EC:\n\ - adds r0, r4, r3\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - lsls r1, 1\n\ - add r1, r9\n\ - ldrh r1, [r1]\n\ -_081303F8:\n\ - strh r1, [r0]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x7\n\ - bls _081303C2\n\ - lsls r0, r6, 16\n\ - lsrs r1, r0, 16\n\ - cmp r1, 0x7\n\ - bls _081303AE\n\ - mov r1, r8\n\ - lsls r0, r1, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x7\n\ - bls _0813039E\n\ - ldr r2, [sp, 0x4]\n\ - lsls r0, r2, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x7\n\ - bls _08130394\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0"); -} -#endif #define VRAM_PICTURE_DATA(x, y) (((u16 *)(BG_SCREEN_ADDR(12)))[(y) * 32 + (x)]) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index a076a2a22..72de880c8 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -8216,15 +8216,13 @@ bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent) { return TRUE; } - else - { - objectEvent->frozen = 1; - objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused; - objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused; - gSprites[objectEvent->spriteId].animPaused = 1; - gSprites[objectEvent->spriteId].affineAnimPaused = 1; - return FALSE; - } + + objectEvent->frozen = 1; + objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused; + objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused; + gSprites[objectEvent->spriteId].animPaused = 1; + gSprites[objectEvent->spriteId].affineAnimPaused = 1; + return FALSE; } void FreezeObjectEvents(void) @@ -8397,8 +8395,8 @@ bool8 sub_80976EC(struct Sprite *sprite) if (sprite->data[5] > 15) return TRUE; - else - return FALSE; + + return FALSE; } static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = { @@ -8478,15 +8476,15 @@ static bool8 AnimateSpriteInFigure8(struct Sprite *sprite) return finished; } -static const s8 gUnknown_0850E802[] = { +static const s8 gUnknown_0850E802[16] = { -4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0 }; -static const s8 gUnknown_0850E812[] = { +static const s8 gUnknown_0850E812[16] = { 0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0 }; -static const s8 gUnknown_0850E822[] = { +static const s8 gUnknown_0850E822[16] = { -2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0 }; @@ -8509,23 +8507,11 @@ void sub_809783C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4) sprite->data[6] = 0; } -static const s16 gUnknown_0850E840[] = { - 16, 16, 32, -}; - -static const u8 gUnknown_0850E846[] = { - 0, 0, 1, -}; - u8 sub_809785C(struct Sprite *sprite) { - s16 v5[3]; - u8 v6[3]; - u8 v2; - - memcpy(v5, gUnknown_0850E840, 6); // TODO: get rid of memcpy - memcpy(v6, gUnknown_0850E846, 3); - v2 = 0; + s16 v5[] = {16, 16, 32}; + u8 v6[] = {0, 0, 1}; + u8 v2 = 0; if (sprite->data[4]) Step1(sprite, sprite->data[3]); @@ -8546,23 +8532,11 @@ u8 sub_809785C(struct Sprite *sprite) return v2; } -static const s16 gUnknown_0850E84A[] = { - 32, 32, 64, -}; - -static const u8 gUnknown_0850E850[] = { - 1, 1, 2, -}; - u8 sub_80978E4(struct Sprite *sprite) { - s16 v5[3]; - u8 v6[3]; - u8 v2; - - memcpy(v5, gUnknown_0850E84A, 6); - memcpy(v6, gUnknown_0850E850, 3); - v2 = 0; + s16 v5[] = {32, 32, 64}; + u8 v6[] = {1, 1, 2}; + u8 v2 = 0; if (sprite->data[4] && !(sprite->data[6] & 1)) Step1(sprite, sprite->data[3]); @@ -8590,12 +8564,9 @@ static void SetMovementDelay(struct Sprite *sprite, s16 timer) static bool8 WaitForMovementDelay(struct Sprite *sprite) { - sprite->data[3]--; - - if (sprite->data[3] == 0) + if (--sprite->data[3] == 0) return TRUE; - else - return FALSE; + return FALSE; } void SetAndStartSpriteAnim(struct Sprite *sprite, u8 animNum, u8 animCmdIndex) @@ -8609,8 +8580,7 @@ bool8 SpriteAnimEnded(struct Sprite *sprite) { if (sprite->animEnded) return TRUE; - else - return FALSE; + return FALSE; } void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible) @@ -8789,14 +8759,14 @@ static void UpdateObjectEventSpritePosition(struct Sprite *sprite) { switch(sprite->tAnimNum) { + case 0: + break; case UNION_ROOM_SPAWN_IN: MoveUnionRoomObjectDown(sprite); break; case UNION_ROOM_SPAWN_OUT: MoveUnionRoomObjectUp(sprite); break; - case 0: - break; default: sprite->tAnimNum = 0; break; @@ -8877,8 +8847,7 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct } else { - u8 i; - u8 firstFreeSlot; + u8 i, firstFreeSlot; bool32 found; for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++) { diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 34868342f..939c15dbf 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -227,9 +227,7 @@ bool8 SetUpFieldMove_Cut(void) y = gPlayerFacingPosition.y + sHyperCutStruct[i].y; tileCuttable = TRUE; - j = 0; - do - { + for (j = 0; j < 2; ++j) { if (sHyperCutStruct[i].unk2[j] == 0) break; if (cutTiles[(u8)(sHyperCutStruct[i].unk2[j] - 1)] == FALSE) @@ -237,7 +235,7 @@ bool8 SetUpFieldMove_Cut(void) tileCuttable = FALSE; break; } - } while (++j <= 1); + } if (tileCuttable == TRUE) { @@ -253,11 +251,8 @@ bool8 SetUpFieldMove_Cut(void) sHyperCutTiles[tileArrayId] = TRUE; ret = TRUE; } - else - { - if (MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE) - sHyperCutTiles[tileArrayId] = TRUE; - } + else if (MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE) + sHyperCutTiles[tileArrayId] = TRUE; } } } diff --git a/src/item_menu.c b/src/item_menu.c index b3dbb9b65..ed63d681c 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -52,6 +52,13 @@ #include "battle_pike.h" #include "constants/rgb.h" +enum +{ + SWITCH_POCKET_NONE, + SWITCH_POCKET_LEFT, + SWITCH_POCKET_RIGHT +}; + void GoToBagMenu(u8 bagMenuType, u8 pocketId, void (*postExitMenuMainCallback2)()); void CB2_Bag(void); bool8 SetupBagMenu(void); @@ -62,7 +69,7 @@ void AllocateBagItemListBuffers(void); void LoadBagItemListBuffers(u8); void BagMenu_PrintPocketNames(const u8*, const u8*); void BagMenu_CopyPocketNameToWindow(u32); -void BagMenu_DrawPocketIndicatorSquare(u8, u8); +static void DrawPocketIndicatorSquare(u8 x, bool8 isCurrentPocket); void CreatePocketScrollArrowPair(void); void CreatePocketSwitchArrowPair(void); void BagMenu_PrepareTMHMMoveWindow(void); @@ -80,16 +87,16 @@ u16 BagGetQuantityByPocketPosition(u8, u16); void BagDestroyPocketSwitchArrowPair(void); void TaskCloseBagMenu_2(u8); u8 AddItemMessageWindow(u8); -void bag_menu_RemoveBagItem_message_window(u8); +void BagMenu_RemoveBagItemMessageindow(u8); void set_callback3_to_bag(u8); void PrintItemDepositAmount(u8, s16); -u8 BagMenu_AddWindow(u8); -u8 GetSwitchBagPocketDirection(void); -void SwitchBagPocket(u8, s16, u16); -bool8 sub_81AC2C0(void); -void BagMenu_SwapItems(u8); -void sub_81AC10C(u8); -void sub_81AC3C0(u8); +static u8 BagMenu_AddWindow(u8); +static u8 GetSwitchBagPocketDirection(void); +static void SwitchBagPocket(u8, s16, u16); +static bool8 CanSwapItems(void); +static void BagMenu_SwapItems(u8 taskId); +static void sub_81AC10C(u8); +static void Task_HandleSwappingItemsInput(u8); void sub_81AC498(u8); void sub_81AC590(u8); void PrintTMHMMoveData(u16); @@ -106,19 +113,18 @@ void BagMenu_YesNo(u8, u8, const struct YesNoFuncTable*); void Task_ActuallyToss(u8); void ItemMenu_Cancel(u8); void sub_81AD350(u8); -void BagMenu_PrintItemCantBeHeld(u8); -void DisplayCurrentMoneyWindow(void); -void DisplaySellItemPriceAndConfirm(u8); +static void BagMenu_PrintItemCantBeHeld(u8); +static void DisplayCurrentMoneyWindow(void); +static void DisplaySellItemPriceAndConfirm(u8); void sub_81AD730(u8); void sub_81AD6E4(u8); -void bag_menu_remove_money_window(void); -void bag_menu_RemoveBagItem_message_window(u8); -void Task_BuyHowManyDialogueHandleInput(u8); -void sub_81AD8C8(u8); -void sub_81AD9C0(u8); -void sub_81ADB14(u8); -void sub_81ADA7C(u8); -void sub_81ADC0C(u8); +static void RemoveMoneyWindow(void); +static void Task_SellHowManyDialogueHandleInput(u8); +static void BagMenu_Sell_UpdateItemListAndMoney(u8); +static void BagMenu_Sell_WaitForABPress(u8); +static void BagMenu_TryDepositItem(u8); +static void Task_ChooseHowManyToDeposit(u8 taskId); +static void BagMenu_Deposit_WaitForABPress(u8); void CB2_ApprenticeExitBagMenu(void); void CB2_FavorLadyExitBagMenu(void); void CB2_QuizLadyExitBagMenu(void); @@ -688,7 +694,7 @@ bool8 SetupBagMenu(void) case 13: BagMenu_PrintPocketNames(gPocketNamesStringsTable[gBagPositionStruct.pocket], 0); BagMenu_CopyPocketNameToWindow(0); - BagMenu_DrawPocketIndicatorSquare(gBagPositionStruct.pocket, 1); + DrawPocketIndicatorSquare(gBagPositionStruct.pocket, TRUE); gMain.state++; break; case 14: @@ -1111,7 +1117,7 @@ void BagMenu_InitListsMenu(u8 taskId) s16* data = gTasks[taskId].data; u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; - bag_menu_RemoveBagItem_message_window(4); + BagMenu_RemoveBagItemMessageindow(4); DestroyListMenuTask(data[0], scrollPos, cursorPos); UpdatePocketItemList(gBagPositionStruct.pocket); SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket); @@ -1154,16 +1160,16 @@ void Task_BagMenu_HandleInput(u8 taskId) { switch (GetSwitchBagPocketDirection()) { - case 1: - SwitchBagPocket(taskId, -1, 0); + case SWITCH_POCKET_LEFT: + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, 0); return; - case 2: - SwitchBagPocket(taskId, 1, 0); + case SWITCH_POCKET_RIGHT: + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 0); return; default: if (gMain.newKeys & SELECT_BUTTON) { - if (sub_81AC2C0() == 1) + if (CanSwapItems() == TRUE) { ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos); if ((*scrollPos + *cursorPos) != gBagMenu->numItemStacks[gBagPositionStruct.pocket] - 1) @@ -1217,26 +1223,26 @@ void set_callback3_to_bag(u8 taskId) gTasks[taskId].func = Task_BagMenu_HandleInput; } -u8 GetSwitchBagPocketDirection(void) +static u8 GetSwitchBagPocketDirection(void) { u8 LRKeys; if (gBagMenu->pocketSwitchDisabled) - return 0; + return SWITCH_POCKET_NONE; LRKeys = GetLRKeysPressed(); if ((gMain.newKeys & DPAD_LEFT) || LRKeys == MENU_L_PRESSED) { PlaySE(SE_SELECT); - return 1; + return SWITCH_POCKET_LEFT; } if ((gMain.newKeys & DPAD_RIGHT) || LRKeys == MENU_R_PRESSED) { PlaySE(SE_SELECT); - return 2; + return SWITCH_POCKET_RIGHT; } - return 0; + return SWITCH_POCKET_NONE; } -void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) +static void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) { if (deltaBagPocketId == 1 && *bagPocketId == POCKETS_COUNT - 1) *bagPocketId = 0; @@ -1246,7 +1252,7 @@ void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) *bagPocketId += deltaBagPocketId; } -void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) +static void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) { s16* data = gTasks[taskId].data; u8 pocketId; @@ -1265,7 +1271,7 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) } pocketId = gBagPositionStruct.pocket; ChangeBagPocketId(&pocketId, deltaBagPocketId); - if (deltaBagPocketId == 1) + if (deltaBagPocketId == MENU_CURSOR_DELTA_RIGHT) { BagMenu_PrintPocketNames(gPocketNamesStringsTable[gBagPositionStruct.pocket], gPocketNamesStringsTable[pocketId]); BagMenu_CopyPocketNameToWindow(0); @@ -1275,8 +1281,8 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) BagMenu_PrintPocketNames(gPocketNamesStringsTable[pocketId], gPocketNamesStringsTable[gBagPositionStruct.pocket]); BagMenu_CopyPocketNameToWindow(8); } - BagMenu_DrawPocketIndicatorSquare(gBagPositionStruct.pocket, 0); - BagMenu_DrawPocketIndicatorSquare(pocketId, 1); + DrawPocketIndicatorSquare(gBagPositionStruct.pocket, FALSE); + DrawPocketIndicatorSquare(pocketId, TRUE); FillBgTilemapBufferRect_Palette0(2, 11, 14, 2, 15, 16); ScheduleBgCopyTilemapToVram(2); SetBagVisualPocketId(pocketId, 1); @@ -1293,15 +1299,15 @@ void sub_81AC10C(u8 taskId) { switch (GetSwitchBagPocketDirection()) { - case 1: + case SWITCH_POCKET_LEFT: ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]); SwitchTaskToFollowupFunc(taskId); - SwitchBagPocket(taskId, -1, 1); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_LEFT, 1); return; - case 2: + case SWITCH_POCKET_RIGHT: ChangeBagPocketId(&gBagPositionStruct.pocket, data[11]); SwitchTaskToFollowupFunc(taskId); - SwitchBagPocket(taskId, 1, 1); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 1); return; } } @@ -1338,16 +1344,16 @@ void sub_81AC23C(u8 a) ScheduleBgCopyTilemapToVram(2); } -void BagMenu_DrawPocketIndicatorSquare(u8 x, u8 is_current_bag) +static void DrawPocketIndicatorSquare(u8 x, bool8 isCurrentPocket) { - if (is_current_bag == 0) + if (!isCurrentPocket) FillBgTilemapBufferRect_Palette0(2, 0x1017, x + 5, 3, 1, 1); else FillBgTilemapBufferRect_Palette0(2, 0x102B, x + 5, 3, 1, 1); ScheduleBgCopyTilemapToVram(2); } -bool8 sub_81AC2C0(void) +static bool8 CanSwapItems(void) { if (gBagPositionStruct.location <= ITEMMENULOCATION_BATTLE) { @@ -1372,10 +1378,10 @@ void BagMenu_SwapItems(u8 taskId) sub_80D4FEC(data[1]); BagDestroyPocketSwitchArrowPair(); BagMenu_PrintCursor_(data[0], 2); - gTasks[taskId].func = sub_81AC3C0; + gTasks[taskId].func = Task_HandleSwappingItemsInput; } -void sub_81AC3C0(u8 taskId) +static void Task_HandleSwappingItemsInput(u8 taskId) { s16* data = gTasks[taskId].data; int input; @@ -1644,7 +1650,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if (cursorPos > 0 && sub_81ACDFC(cursorPos - 2)) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); } } else if (gMain.newKeys & DPAD_DOWN) @@ -1652,7 +1658,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if (cursorPos < (gBagMenu->contextMenuNumItems - 2) && sub_81ACDFC(cursorPos + 2)) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); } } else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED) @@ -1660,7 +1666,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if ((cursorPos & 1) && sub_81ACDFC(cursorPos - 1)) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); } } else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED) @@ -1668,7 +1674,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId) if (!(cursorPos & 1) && sub_81ACDFC(cursorPos + 1)) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); } } else if (gMain.newKeys & A_BUTTON) @@ -1871,7 +1877,7 @@ void BagMenu_PrintThereIsNoPokemon(u8 taskId) DisplayItemMessage(taskId, 1, gText_NoPokemon, sub_81AD350); } -void BagMenu_PrintItemCantBeHeld(u8 taskId) +static void BagMenu_PrintItemCantBeHeld(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeld); @@ -2012,7 +2018,7 @@ void Task_ItemContext_Sell(u8 taskId) } } -void DisplaySellItemPriceAndConfirm(u8 taskId) +static void DisplaySellItemPriceAndConfirm(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2030,8 +2036,8 @@ void BagMenu_CancelSell(u8 taskId) { s16* data = gTasks[taskId].data; - bag_menu_remove_money_window(); - bag_menu_RemoveBagItem_message_window(4); + RemoveMoneyWindow(); + BagMenu_RemoveBagItemMessageindow(4); BagMenu_PrintCursor_(data[0], 0); set_callback3_to_bag(taskId); } @@ -2043,10 +2049,10 @@ void sub_81AD730(u8 taskId) PrintItemSoldAmount(windowId, 1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); DisplayCurrentMoneyWindow(); - gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput; + gTasks[taskId].func = Task_SellHowManyDialogueHandleInput; } -void Task_BuyHowManyDialogueHandleInput(u8 taskId) +static void Task_SellHowManyDialogueHandleInput(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2064,9 +2070,9 @@ void Task_BuyHowManyDialogueHandleInput(u8 taskId) { PlaySE(SE_SELECT); BagMenu_PrintCursor_(data[0], 0); - bag_menu_remove_money_window(); + RemoveMoneyWindow(); BagMenu_RemoveWindow(8); - bag_menu_RemoveBagItem_message_window(4); + BagMenu_RemoveBagItemMessageindow(4); set_callback3_to_bag(taskId); } } @@ -2078,10 +2084,10 @@ void BagMenu_ConfirmSell(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar2); ConvertIntToDecimalStringN(gStringVar1, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount, STR_CONV_MODE_LEFT_ALIGN, 6); StringExpandPlaceholders(gStringVar4, gText_TurnedOverVar1ForVar2); - DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD8C8); + DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_Sell_UpdateItemListAndMoney); } -void sub_81AD8C8(u8 taskId) +static void BagMenu_Sell_UpdateItemListAndMoney(u8 taskId) { s16* data = gTasks[taskId].data; u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; @@ -2097,15 +2103,15 @@ void sub_81AD8C8(u8 taskId) data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); BagMenu_PrintCursor_(data[0], 2); PrintMoneyAmountInMoneyBox(gBagMenu->windowPointers[9], GetMoney(&gSaveBlock1Ptr->money), 0); - gTasks[taskId].func = sub_81AD9C0; + gTasks[taskId].func = BagMenu_Sell_WaitForABPress; } -void sub_81AD9C0(u8 taskId) +static void BagMenu_Sell_WaitForABPress(u8 taskId) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { PlaySE(SE_SELECT); - bag_menu_remove_money_window(); + RemoveMoneyWindow(); BagMenu_InitListsMenu(taskId); } } @@ -2117,7 +2123,7 @@ void Task_ItemContext_Deposit(u8 taskId) tItemCount = 1; if (data[2] == 1) { - sub_81ADB14(taskId); + BagMenu_TryDepositItem(taskId); } else { @@ -2126,11 +2132,11 @@ void Task_ItemContext_Deposit(u8 taskId) FillWindowPixelBuffer(1, PIXEL_FILL(0)); BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_81ABC3C(7); - gTasks[taskId].func = sub_81ADA7C; + gTasks[taskId].func = Task_ChooseHowManyToDeposit; } } -void sub_81ADA7C(u8 taskId) +static void Task_ChooseHowManyToDeposit(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2142,7 +2148,7 @@ void sub_81ADA7C(u8 taskId) { PlaySE(SE_SELECT); BagMenu_RemoveWindow(7); - sub_81ADB14(taskId); + BagMenu_TryDepositItem(taskId); } else if (gMain.newKeys & B_BUTTON) { @@ -2154,7 +2160,7 @@ void sub_81ADA7C(u8 taskId) } } -void sub_81ADB14(u8 taskId) +static void BagMenu_TryDepositItem(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2162,7 +2168,7 @@ void sub_81ADB14(u8 taskId) if (ItemId_GetImportance(gSpecialVar_ItemId)) { BagMenu_Print(1, 1, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, 0); - gTasks[taskId].func = sub_81ADC0C; + gTasks[taskId].func = BagMenu_Deposit_WaitForABPress; } else if (AddPCItem(gSpecialVar_ItemId, tItemCount) == TRUE) { @@ -2175,11 +2181,11 @@ void sub_81ADB14(u8 taskId) else { BagMenu_Print(1, 1, gText_NoRoomForItems, 3, 1, 0, 0, 0, 0); - gTasks[taskId].func = sub_81ADC0C; + gTasks[taskId].func = BagMenu_Deposit_WaitForABPress; } } -void sub_81ADC0C(u8 taskId) +static void BagMenu_Deposit_WaitForABPress(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2250,7 +2256,7 @@ void Task_WallyTutorialBagMenu(u8 taskId) { case 0x66: PlaySE(SE_SELECT); - SwitchBagPocket(taskId, 1, 0); + SwitchBagPocket(taskId, MENU_CURSOR_DELTA_RIGHT, 0); data[8]++; break; case 0xCC: @@ -2416,7 +2422,7 @@ u8 AddItemMessageWindow(u8 which) return *ptr; } -void bag_menu_RemoveBagItem_message_window(u8 which) +void BagMenu_RemoveBagItemMessageindow(u8 which) { u8 *ptr = &gBagMenu->windowPointers[which]; if (*ptr != 0xFF) @@ -2435,14 +2441,14 @@ void BagMenu_YesNo(u8 a, u8 b, const struct YesNoFuncTable *funcTable) CreateYesNoMenuWithCallbacks(a, &sContextMenuWindowTemplates[b], 1, 0, 2, 1, 14, funcTable); } -void DisplayCurrentMoneyWindow(void) +static void DisplayCurrentMoneyWindow(void) { u8 windowId = BagMenu_AddWindow(9); PrintMoneyAmountInMoneyBoxWithBorder(windowId, 1, 14, GetMoney(&gSaveBlock1Ptr->money)); AddMoneyLabelObject(19, 11); } -void bag_menu_remove_money_window(void) +static void RemoveMoneyWindow(void) { BagMenu_RemoveWindow(9); RemoveMoneyLabelObject(); diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 6a2605c96..1ea6f4fce 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -876,8 +876,7 @@ static void sub_800F498(u16 *a0, u8 *a1) static bool32 RfuProcessEnqueuedRecvBlock(void) { - u8 i; - u8 j; + u8 i, j; u8 sp00[MAX_RFU_PLAYERS * (2 * (CMD_LENGTH - 1))]; u8 sp48[2 * (CMD_LENGTH - 1)]; u8 status; @@ -923,7 +922,7 @@ static bool32 RfuProcessEnqueuedRecvBlock(void) static void HandleSendFailure(u8 unused, u32 flags) { - s32 i, j; + s32 i, j, temp; const u8 *r10 = Rfu.sendBlock.payload; for (i = 0; i < Rfu.sendBlock.count; i++) @@ -933,14 +932,15 @@ static void HandleSendFailure(u8 unused, u32 flags) sResendBlock16[0] = RFUCMD_0x8900 | i; for (j = 0; j < 7; j++) { - sResendBlock16[j + 1] = (r10[12 * i + (j << 1) + 1] << 8) | r10[12 * i + (j << 1) + 0]; + temp = j << 1; + sResendBlock16[j + 1] = (r10[i * 12 + temp + 1] << 8) | r10[i * 12 + temp]; } + for (j = 0; j < 7; j++) { - sResendBlock8[2 * j + 1] = sResendBlock16[j] >> 8; - sResendBlock8[2 * j + 0] = sResendBlock16[j]; - - j++;j--; // Needed to match; + temp = j << 1; + sResendBlock8[temp + 1] = sResendBlock16[j] >> 8; + sResendBlock8[temp + 0] = sResendBlock16[j] & 0xff; } RfuSendQueue_Enqueue(&Rfu.sendQueue, sResendBlock8); Rfu.sendBlock.failedFlags |= (1 << i); @@ -1024,8 +1024,7 @@ void Rfu_SetBerryBlenderLinkCallback(void) static void RfuHandleReceiveCommand(u8 unused) { - u16 i; - u16 j; + u16 i, j; for (i = 0; i < MAX_RFU_PLAYERS; i++) { @@ -1039,7 +1038,7 @@ static void RfuHandleReceiveCommand(u8 unused) if (gRfuLinkStatus->parentChild == MODE_CHILD) { Rfu.playerCount = gRecvCmds[i][1]; - Rfu.multiplayerId = sub_800F74C((u8 *)(gRecvCmds[i] + 2)); + Rfu.multiplayerId = sub_800F74C((u8 *)(&gRecvCmds[i][2])); } break; case RFUCMD_0x8800: @@ -1238,10 +1237,9 @@ void Rfu_SendPacket(void *data) bool32 Rfu_InitBlockSend(const u8 *src, size_t size) { bool8 r4; - if (Rfu.callback != NULL) - return FALSE; - if (gSendCmd[0] != 0) + if (Rfu.callback != NULL || gSendCmd[0] != 0) return FALSE; + if (Rfu.sendBlock.sending) { sRfuDebug.unk_83++; @@ -1419,16 +1417,12 @@ void Rfu_SetCloseLinkCallback(void) static void SendReadyExitStandbyUntilAllReady(void) { - u8 playerCount; - u8 i; + u8 i, playerCount; - if (GetMultiplayerId() != 0) + if (GetMultiplayerId() != 0 && Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60) { - if (Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60) - { - RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY); - Rfu.resendExitStandbyTimer = 0; - } + RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY); + Rfu.resendExitStandbyTimer = 0; } playerCount = GetLinkPlayerCount(); for (i = 0; i < playerCount; i++) @@ -1458,8 +1452,7 @@ static void LinkLeaderReadyToExitStandby(void) // RFU equivalent of LinkCB_Standby and LinkCB_StandbyForAll static void Rfu_LinkStandby(void) { - u8 i; - u8 playerCount; + u8 i, playerCount; if (GetMultiplayerId() != 0) { @@ -1555,28 +1548,28 @@ static bool8 CheckForLeavingGroupMembers(void) bool8 memberLeft = FALSE; for (i = 0; i < RFU_CHILD_MAX; i++) { - if (Rfu.partnerSendStatuses[i] < RFU_STATUS_JOIN_GROUP_OK - || Rfu.partnerSendStatuses[i] > RFU_STATUS_JOIN_GROUP_NO) + if (Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_OK + || Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_NO) { - if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS - || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) - { - if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE) - { - Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP; - Rfu.partnerRecvStatuses[i] = RFU_STATUS_10; - rfu_clearSlot(TYPE_NI_RECV, i); - rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1); - memberLeft = TRUE; - } + continue; + } - } - else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED) - rfu_clearSlot(TYPE_NI_RECV, i); + if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS + || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN) + { + if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE) { - + Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP; + Rfu.partnerRecvStatuses[i] = RFU_STATUS_10; + rfu_clearSlot(TYPE_NI_RECV, i); + rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1); + memberLeft = TRUE; } } + else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED) + { + rfu_clearSlot(TYPE_NI_RECV, i); + } } return memberLeft; } @@ -2097,8 +2090,7 @@ static void sub_80111FC(void) static void sub_801120C(u8 msg, u8 paramCount) { - u8 i; - u8 disconnectFlag = 0; + u8 i, disconnectFlag = 0; switch (msg) { case LMAN_MSG_INITIALIZE_COMPLETED: diff --git a/src/list_menu.c b/src/list_menu.c index ebf02bab6..ef55f5872 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -1282,7 +1282,7 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st { subsprites[id] = sSubsprite_RedOutline3; subsprites[id].x = i - 120; - subsprites[id].y = 136; + subsprites[id].y = -120; id++; subsprites[id] = sSubsprite_RedOutline6; diff --git a/src/menu.c b/src/menu.c index ac2f7d85b..f3334919c 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1299,10 +1299,12 @@ u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight, else sMenu.cursorPos = pos; - sub_8199134(0, 0); + // Why call this when it's not gonna move? + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE); return sMenu.cursorPos; } +// Unused u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7) { u8 cursorHeight = GetMenuCursorDimensionByFont(fontId, 1); @@ -1333,40 +1335,28 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos) 0); } -u8 sub_8199134(s8 deltaX, s8 deltaY) +u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY) { u8 oldPos = sMenu.cursorPos; if (deltaX != 0) { if ((sMenu.cursorPos % sMenu.columns) + deltaX < 0) - { sMenu.cursorPos += sMenu.columns - 1; - } else if ((sMenu.cursorPos % sMenu.columns) + deltaX >= sMenu.columns) - { sMenu.cursorPos = (sMenu.cursorPos / sMenu.columns) * sMenu.columns; - } else - { sMenu.cursorPos += deltaX; - } } if (deltaY != 0) { if ((sMenu.cursorPos / sMenu.columns) + deltaY < 0) - { sMenu.cursorPos += sMenu.columns * (sMenu.rows - 1); - } else if ((sMenu.cursorPos / sMenu.columns) + deltaY >= sMenu.rows) - { sMenu.cursorPos -= sMenu.columns * (sMenu.rows - 1); - } else - { sMenu.cursorPos += (sMenu.columns * deltaY); - } } if (sMenu.cursorPos > sMenu.maxCursorPos) @@ -1381,7 +1371,7 @@ u8 sub_8199134(s8 deltaX, s8 deltaY) } } -u8 sub_81991F8(s8 deltaX, s8 deltaY) +u8 ChangeGridMenuCursorPosition(s8 deltaX, s8 deltaY) { u8 oldPos = sMenu.cursorPos; @@ -1429,25 +1419,25 @@ s8 sub_8199284(void) else if (gMain.newKeys & DPAD_UP) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_DOWN) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } @@ -1469,25 +1459,25 @@ s8 Menu_ProcessInputGridLayout(void) } else if (gMain.newKeys & DPAD_UP) { - if (oldPos != sub_81991F8(0, -1)) + if (oldPos != ChangeGridMenuCursorPosition(0, -1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_DOWN) { - if (oldPos != sub_81991F8(0, 1)) + if (oldPos != ChangeGridMenuCursorPosition(0, 1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED) { - if (oldPos != sub_81991F8(-1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(-1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED) { - if (oldPos != sub_81991F8(1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } @@ -1509,31 +1499,32 @@ s8 sub_81993D8(void) else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP) { PlaySE(SE_SELECT); - sub_8199134(0, -1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) { PlaySE(SE_SELECT); - sub_8199134(0, 1); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(-1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED) { PlaySE(SE_SELECT); - sub_8199134(1, 0); + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE); return MENU_NOTHING_CHOSEN; } return MENU_NOTHING_CHOSEN; } +//Unused s8 sub_8199484(void) { u8 oldPos = sMenu.cursorPos; @@ -1549,25 +1540,25 @@ s8 sub_8199484(void) } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP) { - if (oldPos != sub_81991F8(0, -1)) + if (oldPos != ChangeGridMenuCursorPosition(0, -1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) { - if (oldPos != sub_81991F8(0, 1)) + if (oldPos != ChangeGridMenuCursorPosition(0, 1)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED) { - if (oldPos != sub_81991F8(-1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(-1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED) { - if (oldPos != sub_81991F8(1, 0)) + if (oldPos != ChangeGridMenuCursorPosition(1, 0)) PlaySE(SE_SELECT); return MENU_NOTHING_CHOSEN; } @@ -1732,7 +1723,8 @@ u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCurso else sMenu.cursorPos = pos; - sub_8199134(0, 0); + // Why call this when it's not gonna move? + ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_NONE); return sMenu.cursorPos; } diff --git a/src/menu_specialized.c b/src/menu_specialized.c index a99c5c9d0..d402ecb51 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -894,76 +894,73 @@ static u8 *GetConditionMenuMonString(u8 *dst, u16 boxId, u16 monId) { return StringCopyPadded(dst, gText_EggNickname, 0, 12); } + GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst); + StringGetEnd10(dst); + species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); + if (boxId == TOTAL_BOXES_COUNT) // Party mon. + { + level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); + gender = GetMonGender(&gPlayerParty[monId]); + } else { - GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst); - StringGetEnd10(dst); - species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); - if (boxId == TOTAL_BOXES_COUNT) // Party mon. - { - level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); - gender = GetMonGender(&gPlayerParty[monId]); - } - else - { - // Needed to match, feel free to remove. - boxId++;boxId--; - monId++;monId--; - - boxMon = GetBoxedMonPtr(boxId, monId); - gender = GetBoxMonGender(boxMon); - level = GetLevelFromBoxMonExp(boxMon); - } + // Needed to match, feel free to remove. + boxId++, boxId--; + monId++, monId--; - if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species])) - gender = MON_GENDERLESS; + boxMon = GetBoxedMonPtr(boxId, monId); + gender = GetBoxMonGender(boxMon); + level = GetLevelFromBoxMonExp(boxMon); + } - for (str = dst; *str != EOS; str++) - ; + if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species])) + gender = MON_GENDERLESS; - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_SKIP; - *(str++) = 60; + for (str = dst; *str != EOS; str++) + ; - switch (gender) - { - default: - *(str++) = CHAR_SPACE; - break; - case MON_MALE: - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_COLOR; - *(str++) = TEXT_COLOR_RED; - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_SHADOW; - *(str++) = TEXT_COLOR_LIGHT_RED; - *(str++) = CHAR_MALE; - break; - case MON_FEMALE: - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_COLOR; - *(str++) = TEXT_COLOR_GREEN; - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_SHADOW; - *(str++) = TEXT_COLOR_LIGHT_GREEN; - *(str++) = CHAR_FEMALE; - break; - } + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_SKIP; + *(str++) = 60; - *(str++) = EXT_CTRL_CODE_BEGIN; - *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; - *(str++) = TEXT_COLOR_BLUE; - *(str++) = TEXT_COLOR_TRANSPARENT; - *(str++) = TEXT_COLOR_LIGHT_BLUE; - *(str++) = CHAR_SLASH; - *(str++) = CHAR_EXTRA_SYMBOL; - *(str++) = CHAR_LV_2; - str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3); + switch (gender) + { + default: *(str++) = CHAR_SPACE; - *str = EOS; - - return str; + break; + case MON_MALE: + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR; + *(str++) = TEXT_COLOR_RED; + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_SHADOW; + *(str++) = TEXT_COLOR_LIGHT_RED; + *(str++) = CHAR_MALE; + break; + case MON_FEMALE: + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR; + *(str++) = TEXT_COLOR_GREEN; + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_SHADOW; + *(str++) = TEXT_COLOR_LIGHT_GREEN; + *(str++) = CHAR_FEMALE; + break; } + + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(str++) = TEXT_COLOR_BLUE; + *(str++) = TEXT_COLOR_TRANSPARENT; + *(str++) = TEXT_COLOR_LIGHT_BLUE; + *(str++) = CHAR_SLASH; + *(str++) = CHAR_EXTRA_SYMBOL; + *(str++) = CHAR_LV_2; + str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3); + *(str++) = CHAR_SPACE; + *str = EOS; + + return str; } // Buffers the string in src to dest up to n chars. If src is less than n chars, fill with spaces diff --git a/src/pokemon.c b/src/pokemon.c index 690f83bb1..b93c5f2ff 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1898,22 +1898,22 @@ static const u16 sDeoxysBaseStats[] = const u16 gLinkPlayerFacilityClasses[NUM_MALE_LINK_FACILITY_CLASSES + NUM_FEMALE_LINK_FACILITY_CLASSES] = { // Male classes - FACILITY_CLASS_COOLTRAINER_M, - FACILITY_CLASS_BLACK_BELT, + FACILITY_CLASS_COOLTRAINER_M, + FACILITY_CLASS_BLACK_BELT, FACILITY_CLASS_CAMPER, - FACILITY_CLASS_YOUNGSTER, - FACILITY_CLASS_PSYCHIC_M, + FACILITY_CLASS_YOUNGSTER, + FACILITY_CLASS_PSYCHIC_M, FACILITY_CLASS_BUG_CATCHER, - FACILITY_CLASS_PKMN_BREEDER_M, + FACILITY_CLASS_PKMN_BREEDER_M, FACILITY_CLASS_GUITARIST, // Female Classes - FACILITY_CLASS_COOLTRAINER_F, - FACILITY_CLASS_HEX_MANIAC, + FACILITY_CLASS_COOLTRAINER_F, + FACILITY_CLASS_HEX_MANIAC, FACILITY_CLASS_PICNICKER, - FACILITY_CLASS_LASS, - FACILITY_CLASS_PSYCHIC_F, + FACILITY_CLASS_LASS, + FACILITY_CLASS_PSYCHIC_F, FACILITY_CLASS_BATTLE_GIRL, - FACILITY_CLASS_PKMN_BREEDER_F, + FACILITY_CLASS_PKMN_BREEDER_F, FACILITY_CLASS_BEAUTY }; @@ -5806,7 +5806,7 @@ void AdjustFriendship(struct Pokemon *mon, u8 event) if (friendship > 199) friendshipLevel++; - if ((event != FRIENDSHIP_EVENT_WALKING || !(Random() & 1)) + if ((event != FRIENDSHIP_EVENT_WALKING || !(Random() & 1)) && (event != FRIENDSHIP_EVENT_LEAGUE_BATTLE || IS_LEAGUE_BATTLE)) { s8 mod = sFriendshipEventModifiers[event][friendshipLevel]; @@ -5848,7 +5848,7 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) { if (totalEVs >= MAX_TOTAL_EVS) break; - + if (CheckPartyHasHadPokerus(mon, 0)) multiplier = 2; else @@ -5895,9 +5895,9 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) if (totalEVs + (s16)evIncrease > MAX_TOTAL_EVS) evIncrease = ((s16)evIncrease + MAX_TOTAL_EVS) - (totalEVs + evIncrease); - if (evs[i] + (s16)evIncrease > 255) + if (evs[i] + (s16)evIncrease > MAX_PER_STAT_EVS) { - int val1 = (s16)evIncrease + 255; + int val1 = (s16)evIncrease + MAX_PER_STAT_EVS; int val2 = evs[i] + evIncrease; evIncrease = val1 - val2; } diff --git a/src/script.c b/src/script.c index 9ba1a7429..889c25765 100644 --- a/src/script.c +++ b/src/script.c @@ -26,9 +26,9 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable s32 i; ctx->mode = 0; - ctx->scriptPtr = 0; + ctx->scriptPtr = NULL; ctx->stackDepth = 0; - ctx->nativePtr = 0; + ctx->nativePtr = NULL; ctx->cmdTable = cmdTable; ctx->cmdTableEnd = cmdTableEnd; @@ -55,7 +55,7 @@ void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void)) void StopScript(struct ScriptContext *ctx) { ctx->mode = 0; - ctx->scriptPtr = 0; + ctx->scriptPtr = NULL; } bool8 RunScriptCommand(struct ScriptContext *ctx) diff --git a/src/trainer_hill.c b/src/trainer_hill.c index c5aea14d9..bed8df2e0 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -356,7 +356,7 @@ static void SetUpDataStruct(void) { if (sHillData == NULL) { - sHillData = AllocZeroed(sizeof(*sHillData)); + sHillData = AllocZeroed(sizeof(struct TrHillStruct2)); sHillData->floorId = gMapHeader.mapLayoutId - LAYOUT_TRAINER_HILL_1F; CpuCopy32(sDataPerTag[gSaveBlock1Ptr->trainerHill.tag], &sHillData->tag, sizeof(sHillData->tag) + 4 * sizeof(struct TrHillFloor)); nullsub_2(); @@ -672,70 +672,23 @@ bool32 LoadTrainerHillFloorObjectEventScripts(void) return TRUE; } -// Functionally equivalent. -#ifdef NONMATCHING static u32 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3) { - u32 var0, var1, var2, var3; + u16 var0, var1; + #ifndef NONMATCHING + register u16 var2 asm("r3"); //compiler keeps wanting to "mov r3, 0x80" instead of "mov r2 0x80" and then later "add r3, r2, 0" + #else + u16 var2; + #endif + u16 var3; - var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit)) & 1; - var1 = sHillData->floors[floorId].display.data[arg2 * arg3 + bit]; - var3 = 0x200; - var2 = 0x3000; + var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit) & 1); + var1 = sHillData->floors[floorId].display.data[arg3 * arg2 + bit]; + var2 = 0x200; + var3 = 0x3000; - return ((var0 << 10) | var2) | (var1 | var3); + return ((var0 << 10) | var3) | (var1 | var2); } -#else -NAKED -static u32 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3) -{ - asm_unified("\n\ - push {r4,r5,lr}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r4, =sHillData\n\ - ldr r4, [r4]\n\ - mov r12, r4\n\ - lsls r4, r2, 1\n\ - lsls r5, r0, 4\n\ - subs r5, r0\n\ - lsls r5, 3\n\ - subs r5, r0\n\ - lsls r5, 3\n\ - adds r4, r5\n\ - movs r0, 0xE8\n\ - lsls r0, 2\n\ - add r0, r12\n\ - adds r0, r4\n\ - ldrh r0, [r0]\n\ - movs r4, 0xF\n\ - subs r4, r1\n\ - asrs r0, r4\n\ - movs r4, 0x1\n\ - ands r0, r4\n\ - muls r2, r3\n\ - adds r2, r1\n\ - adds r2, r5\n\ - movs r1, 0xA8\n\ - lsls r1, 2\n\ - add r1, r12\n\ - adds r1, r2\n\ - ldrb r1, [r1]\n\ - movs r2, 0x80\n\ - lsls r2, 2\n\ - adds r3, r2, 0\n\ - movs r2, 0xC0\n\ - lsls r2, 6\n\ - lsls r0, 10\n\ - orrs r0, r2\n\ - orrs r1, r3\n\ - orrs r0, r1\n\ - pop {r4,r5}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); -} -#endif // NONMATCHING void GenerateTrainerHillFloorLayout(u16 *mapArg) { |