summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKermalis <29823718+Kermalis@users.noreply.github.com>2018-09-20 14:39:10 -0400
committerGitHub <noreply@github.com>2018-09-20 14:39:10 -0400
commit0ae6f1e4af8b8feee679775723fc22c3f3b95210 (patch)
tree3932099bd0b5d333542ab829bf343364b2831a95 /src
parent3e80e081b5c9d44ecc2e507302f67d4fbd8c48e6 (diff)
parent4abad1211c302f1dd3694d3169820840cbec7b88 (diff)
Merge pull request #1 from pret/master
Pulling master commits
Diffstat (limited to 'src')
-rw-r--r--src/field_camera.c6
-rw-r--r--src/fieldmap.c26
-rw-r--r--src/item_menu.c292
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)