diff options
author | Kermalis <29823718+Kermalis@users.noreply.github.com> | 2018-09-20 14:39:10 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-20 14:39:10 -0400 |
commit | 0ae6f1e4af8b8feee679775723fc22c3f3b95210 (patch) | |
tree | 3932099bd0b5d333542ab829bf343364b2831a95 /src | |
parent | 3e80e081b5c9d44ecc2e507302f67d4fbd8c48e6 (diff) | |
parent | 4abad1211c302f1dd3694d3169820840cbec7b88 (diff) |
Merge pull request #1 from pret/master
Pulling master commits
Diffstat (limited to 'src')
-rw-r--r-- | src/field_camera.c | 6 | ||||
-rw-r--r-- | src/fieldmap.c | 26 | ||||
-rw-r--r-- | src/item_menu.c | 292 |
3 files changed, 55 insertions, 269 deletions
diff --git a/src/field_camera.c b/src/field_camera.c index 29cdf0496..319c8a540 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -231,17 +231,17 @@ static void DrawMetatileAt(struct MapLayout *mapLayout, u16 offset, int x, int y u16 *metatiles; u16 metatileId = MapGridGetMetatileIdAt(x, y); - if (metatileId > 0x400) + if (metatileId > NUM_METATILES_TOTAL) metatileId = 0; - if (metatileId < 0x200) + if (metatileId < NUM_METATILES_IN_PRIMARY) { metatiles = mapLayout->primaryTileset->metatiles; } else { metatiles = mapLayout->secondaryTileset->metatiles; - metatileId -= 0x200; + metatileId -= NUM_METATILES_IN_PRIMARY; } DrawMetatile(MapGridGetMetatileLayerTypeAt(x, y), metatiles + metatileId * 8, offset); diff --git a/src/fieldmap.c b/src/fieldmap.c index 874df23b0..abb46fd35 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -463,15 +463,15 @@ void MapGridSetMetatileEntryAt(int x, int y, u16 metatile) u32 GetBehaviorByMetatileId(u16 metatile) { u16 *attributes; - if (metatile <= 0x1ff) + if (metatile < NUM_METATILES_IN_PRIMARY) { attributes = gMapHeader.mapLayout->primaryTileset->metatileAttributes; return attributes[metatile]; } - else if (metatile <= 0x3ff) + else if (metatile < NUM_METATILES_TOTAL) { attributes = gMapHeader.mapLayout->secondaryTileset->metatileAttributes; - return attributes[metatile - 0x200]; + return attributes[metatile - NUM_METATILES_IN_PRIMARY]; } else { @@ -878,17 +878,17 @@ void GetCameraCoords(u16 *x, u16 *y) *y = gSaveBlock1.pos.y; } -void sub_8056C98(struct Tileset *tileset, void *src) +void sub_8056C98(struct Tileset *tileset, void *dest) { if (tileset) { if (!tileset->isCompressed) { - CpuFastSet(tileset->tiles, src, 0x1000); + CpuFastCopy(tileset->tiles, dest, NUM_TILES_IN_PRIMARY * 16 * 2); } else { - LZ77UnCompVram(tileset->tiles, src); + LZ77UnCompVram(tileset->tiles, dest); } } } @@ -906,7 +906,7 @@ void sub_8056CBC(struct Tileset *tileset, int offset, int size) } else if (tileset->isSecondary == TRUE) { - LoadPalette(tileset->palettes + 0xc0, offset, size); + LoadPalette((u16*)tileset->palettes + (NUM_PALS_IN_PRIMARY * 16), offset, size); } else { @@ -918,24 +918,24 @@ void sub_8056CBC(struct Tileset *tileset, int offset, int size) void sub_8056D28(struct MapLayout *mapLayout) { - void *src = (void*)(BG_VRAM); - sub_8056C98(mapLayout->primaryTileset, src); + void *dest = (void*)(BG_VRAM); + sub_8056C98(mapLayout->primaryTileset, dest); } void sub_8056D38(struct MapLayout *mapLayout) { - void *src = (void*)(BG_VRAM + 0x4000); - sub_8056C98(mapLayout->secondaryTileset, src); + void *dest = (void*)(BG_VRAM + NUM_TILES_IN_PRIMARY * 16 * 2); + sub_8056C98(mapLayout->secondaryTileset, dest); } void apply_map_tileset1_palette(struct MapLayout *mapLayout) { - sub_8056CBC(mapLayout->primaryTileset, 0, 0xc0); + sub_8056CBC(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2); } void apply_map_tileset2_palette(struct MapLayout *mapLayout) { - sub_8056CBC(mapLayout->secondaryTileset, 0x60, 0xc0); + sub_8056CBC(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2); } void copy_map_tileset1_tileset2_to_vram(struct MapLayout *mapLayout) diff --git a/src/item_menu.c b/src/item_menu.c index 12d02ebd8..95a84b1fb 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1119,13 +1119,13 @@ static void sub_80A41E0(u8 *a, u16 b, const u8 *c, u16 d, u8 e) AlignInt1InMenuWindow(a, d, 0x78, 1); } -static u8 *sub_80A425C(u8 taskId, u8 *text, u8 c) +static u8 *sub_80A425C(u8 taskId, u8 *text, u8 itemSlot) { - if (gTasks[taskId].data[10] - gBagPocketScrollStates[sCurrentBagPocket].scrollTop - 1 == c) + if (gTasks[taskId].data[10] - gBagPocketScrollStates[sCurrentBagPocket].scrollTop - 1 == itemSlot) { text[0] = EXT_CTRL_CODE_BEGIN; text[1] = 1; - text[2] = 2; + text[2] = TEXT_COLOR_RED; text += 3; } return text; @@ -1222,275 +1222,61 @@ static void sub_80A444C(u16 a, int b, int c, int d) } } -// more gBGTilemapBuffers shenanigans -#ifdef NONMATCHING -static void sub_80A4548(u16 a, int b, int c, int d) +static void sub_80A4548(u16 taskId, int topItemOffset, int bottomItemOffset, int d) { u8 i; - for (i = b; i <= c; i++) + for (i = topItemOffset; i <= bottomItemOffset; i++) { - u8 r4; - u8 sp10; - u32 r5; + u8 slot; + u8 y; + u16 tilemapOffset; u8 *text; if (sub_80A42B0(i, d) == TRUE) break; - r4 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i; - sp10 = i * 2 + 2; - r5 = sp10 * 32 + 14; + + slot = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i; + y = i * 2 + 2; + tilemapOffset = y * 32 + 14; text = gStringVar1; - text = sub_80A425C(a, text, i); - if (gCurrentBagPocketItemSlots[r4].itemId < 0x153) + text = sub_80A425C(taskId, text, i); + + if (gCurrentBagPocketItemSlots[slot].itemId < ITEM_HM01_CUT) { - const u8 *r2; - - gBGTilemapBuffers[2][r5 + 0] = 0x59; - gBGTilemapBuffers[2][r5 + 1] = 0x4F; - gBGTilemapBuffers[2][r5 + 32] = 0x69; - gBGTilemapBuffers[2][r5 + 33] = 0x4F; - r2 = gMoveNames[ItemIdToBattleMoveId(gCurrentBagPocketItemSlots[r4].itemId)]; - sub_80A41E0(text, gCurrentBagPocketItemSlots[r4].itemId - 288, r2, gCurrentBagPocketItemSlots[r4].quantity, 2); + const u8 *moveName; + gBGTilemapBuffers[2][tilemapOffset + 0] = 0x59; + gBGTilemapBuffers[2][tilemapOffset + 1] = 0x4F; + gBGTilemapBuffers[2][tilemapOffset + 32] = 0x69; + gBGTilemapBuffers[2][tilemapOffset + 33] = 0x4F; + moveName = gMoveNames[ItemIdToBattleMoveId(gCurrentBagPocketItemSlots[slot].itemId)]; + sub_80A41E0(text, gCurrentBagPocketItemSlots[slot].itemId - (ITEM_TM01_FOCUS_PUNCH - 1), moveName, gCurrentBagPocketItemSlots[slot].quantity, 2); } else { const u8 *moveName; - - gBGTilemapBuffers[2][r5 + 0] = 0x105D; - gBGTilemapBuffers[2][r5 + 1] = 0x105E; - gBGTilemapBuffers[2][r5 + 32] = 0x106D; - gBGTilemapBuffers[2][r5 + 33] = 0x106E; + gBGTilemapBuffers[2][tilemapOffset + 0] = 0x105D; + gBGTilemapBuffers[2][tilemapOffset + 1] = 0x105E; + gBGTilemapBuffers[2][tilemapOffset + 32] = 0x106D; + gBGTilemapBuffers[2][tilemapOffset + 33] = 0x106E; text[0] = EXT_CTRL_CODE_BEGIN; text[1] = 0x13; text[2] = 0x11; text += 3; - text = ConvertIntToDecimalString(text, gCurrentBagPocketItemSlots[r4].itemId); + text = ConvertIntToDecimalString(text, gCurrentBagPocketItemSlots[slot].itemId - (ITEM_HM01_CUT - 1)); text[0] = EXT_CTRL_CODE_BEGIN; text[1] = 0x13; text[2] = 0x18; text += 3; - moveName = gMoveNames[ItemIdToBattleMoveId(gCurrentBagPocketItemSlots[r4].itemId)]; + moveName = gMoveNames[ItemIdToBattleMoveId(gCurrentBagPocketItemSlots[slot].itemId)]; AlignStringInMenuWindow(text, moveName, 0x78, 0); } - Menu_PrintText(gStringVar1, 14, sp10); + + Menu_PrintText(gStringVar1, 14, y); } } -#else -NAKED -static void sub_80A4548(u16 a, int b, int c, int d) -{ - asm(".syntax 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, 0x14\n\ - str r2, [sp, 0x8]\n\ - str r3, [sp, 0xC]\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x4]\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r8, r1\n\ - ldr r0, _080A456C @ =gBGTilemapBuffers + 0x1000\n\ - mov r9, r0\n\ - b _080A46C2\n\ - .align 2, 0\n\ -_080A456C: .4byte gBGTilemapBuffers + 0x1000\n\ -_080A4570:\n\ - ldr r1, _080A461C @ =gBagPocketScrollStates\n\ - ldr r0, _080A4620 @ =sCurrentBagPocket\n\ - ldrb r0, [r0]\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r4, [r0, 0x1]\n\ - add r4, r8\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - mov r1, r8\n\ - lsls r0, r1, 25\n\ - movs r3, 0x80\n\ - lsls r3, 18\n\ - adds r0, r3\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x10]\n\ - lsls r0, 5\n\ - adds r0, 0xE\n\ - adds r5, r0, 0\n\ - ldr r6, _080A4624 @ =gStringVar1\n\ - ldr r1, [sp, 0x4]\n\ - lsls r0, r1, 24\n\ - lsrs r0, 24\n\ - adds r1, r6, 0\n\ - mov r2, r8\n\ - bl sub_80A425C\n\ - adds r6, r0, 0\n\ - ldr r3, _080A4628 @ =gCurrentBagPocketItemSlots\n\ - mov r10, r3\n\ - ldr r0, [r3]\n\ - lsls r7, r4, 2\n\ - adds r3, r7, r0\n\ - ldrh r1, [r3]\n\ - movs r0, 0xA9\n\ - lsls r0, 1\n\ - cmp r1, r0\n\ - bhi _080A4634\n\ - lsls r0, r5, 1\n\ - add r0, r9\n\ - movs r1, 0x59\n\ - strh r1, [r0]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 1\n\ - add r0, r9\n\ - movs r2, 0x4F\n\ - strh r2, [r0]\n\ - adds r0, r5, 0\n\ - adds r0, 0x20\n\ - lsls r0, 1\n\ - add r0, r9\n\ - movs r1, 0x69\n\ - strh r1, [r0]\n\ - adds r0, r5, 0\n\ - adds r0, 0x21\n\ - lsls r0, 1\n\ - add r0, r9\n\ - strh r2, [r0]\n\ - ldrh r0, [r3]\n\ - bl ItemIdToBattleMoveId\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0xD\n\ - adds r2, r0, 0\n\ - muls r2, r1\n\ - ldr r0, _080A462C @ =gMoveNames\n\ - adds r2, r0\n\ - mov r1, r10\n\ - ldr r0, [r1]\n\ - adds r0, r7, r0\n\ - ldr r3, _080A4630 @ =0xfffffee0\n\ - adds r1, r3, 0\n\ - ldrh r3, [r0]\n\ - adds r1, r3\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - ldrh r3, [r0, 0x2]\n\ - movs r0, 0x2\n\ - str r0, [sp]\n\ - adds r0, r6, 0\n\ - bl sub_80A41E0\n\ - b _080A46AE\n\ - .align 2, 0\n\ -_080A461C: .4byte gBagPocketScrollStates\n\ -_080A4620: .4byte sCurrentBagPocket\n\ -_080A4624: .4byte gStringVar1\n\ -_080A4628: .4byte gCurrentBagPocketItemSlots\n\ -_080A462C: .4byte gMoveNames\n\ -_080A4630: .4byte 0xfffffee0\n\ -_080A4634:\n\ - lsls r0, r5, 1\n\ - add r0, r9\n\ - ldr r1, _080A46EC @ =0x0000105d\n\ - strh r1, [r0]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 1\n\ - add r0, r9\n\ - adds r1, 0x1\n\ - strh r1, [r0]\n\ - adds r0, r5, 0\n\ - adds r0, 0x20\n\ - lsls r0, 1\n\ - add r0, r9\n\ - adds r1, 0xF\n\ - strh r1, [r0]\n\ - adds r0, r5, 0\n\ - adds r0, 0x21\n\ - lsls r0, 1\n\ - add r0, r9\n\ - adds r1, 0x1\n\ - strh r1, [r0]\n\ - movs r0, 0xFC\n\ - strb r0, [r6]\n\ - movs r4, 0x13\n\ - strb r4, [r6, 0x1]\n\ - movs r0, 0x11\n\ - strb r0, [r6, 0x2]\n\ - adds r6, 0x3\n\ - mov r1, r10\n\ - ldr r0, [r1]\n\ - adds r0, r7, r0\n\ - ldrh r1, [r0]\n\ - ldr r3, _080A46F0 @ =0xfffffeae\n\ - adds r1, r3\n\ - adds r0, r6, 0\n\ - bl ConvertIntToDecimalString\n\ - adds r6, r0, 0\n\ - movs r0, 0xFC\n\ - strb r0, [r6]\n\ - strb r4, [r6, 0x1]\n\ - movs r0, 0x18\n\ - strb r0, [r6, 0x2]\n\ - adds r6, 0x3\n\ - mov r1, r10\n\ - ldr r0, [r1]\n\ - adds r0, r7, r0\n\ - ldrh r0, [r0]\n\ - bl ItemIdToBattleMoveId\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0xD\n\ - muls r1, r0\n\ - ldr r0, _080A46F4 @ =gMoveNames\n\ - adds r1, r0\n\ - adds r0, r6, 0\n\ - movs r2, 0x78\n\ - movs r3, 0\n\ - bl AlignStringInMenuWindow\n\ -_080A46AE:\n\ - ldr r0, _080A46F8 @ =gStringVar1\n\ - movs r1, 0xE\n\ - ldr r2, [sp, 0x10]\n\ - bl Menu_PrintText\n\ - mov r0, r8\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ -_080A46C2:\n\ - ldr r3, [sp, 0x8]\n\ - cmp r8, r3\n\ - bgt _080A46DA\n\ - mov r0, r8\n\ - ldr r1, [sp, 0xC]\n\ - bl sub_80A42B0\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _080A46DA\n\ - b _080A4570\n\ -_080A46DA:\n\ - add sp, 0x14\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\n\ - .align 2, 0\n\ -_080A46EC: .4byte 0x0000105d\n\ -_080A46F0: .4byte 0xfffffeae\n\ -_080A46F4: .4byte gMoveNames\n\ -_080A46F8: .4byte gStringVar1\n\ - .syntax divided\n"); -} -#endif -static void sub_80A46FC(u16 a, int b, int c, int d) +static void sub_80A46FC(u16 taskId, int b, int c, int d) { u8 i; @@ -1512,29 +1298,29 @@ static void sub_80A46FC(u16 a, int b, int c, int d) gBGTilemapBuffers[2][var] = 0x69; text = gStringVar1; - text = sub_80A425C(a, text, i); + text = sub_80A425C(taskId, text, i); CopyItemName(gCurrentBagPocketItemSlots[r4].itemId, gStringVar2); sub_80A41E0(text, gCurrentBagPocketItemSlots[r4].itemId - 0x84, gStringVar2, gCurrentBagPocketItemSlots[r4].quantity, 3); Menu_PrintText(gStringVar1, 14, r5); } } -static void sub_80A47E8(u16 a, int b, int c, int d) +static void sub_80A47E8(u16 taskId, int topItemOffset, int bottomItemOffset, int d) { switch (sCurrentBagPocket) { case BAG_POCKET_ITEMS: case BAG_POCKET_POKE_BALLS: - sub_80A4380(a, b, c, d); + sub_80A4380(taskId, topItemOffset, bottomItemOffset, d); break; case BAG_POCKET_KEY_ITEMS: - sub_80A444C(a, b, c, d); + sub_80A444C(taskId, topItemOffset, bottomItemOffset, d); break; case BAG_POCKET_TMs_HMs: - sub_80A4548(a, b, c, d); + sub_80A4548(taskId, topItemOffset, bottomItemOffset, d); break; case BAG_POCKET_BERRIES: - sub_80A46FC(a, b, c, d); + sub_80A46FC(taskId, topItemOffset, bottomItemOffset, d); break; } if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop != 0) @@ -1548,9 +1334,9 @@ static void sub_80A47E8(u16 a, int b, int c, int d) SetVerticalScrollIndicators(BOTTOM_ARROW, INVISIBLE); } -static void sub_80A48E8(u16 taskId, int b, int c) +static void sub_80A48E8(u16 taskId, int topItemOffset, int bottomItemOffset) { - sub_80A47E8(taskId, b, c, 0); + sub_80A47E8(taskId, topItemOffset, bottomItemOffset, 0); } static void sub_80A48F8(u16 taskId) |