summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-06-11 07:00:08 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-06-11 07:00:08 -0400
commitc68d4972888777f8b6f89be82895cf8f9e0bdd45 (patch)
tree491de6936783b864f896083021762f162074b55a /src
parentaa498800067ba2689ae5bf5433459ba088bfa83b (diff)
Document vars in TeachyTvLoadBg3Map
Diffstat (limited to 'src')
-rw-r--r--src/teachy_tv.c86
1 files changed, 41 insertions, 45 deletions
diff --git a/src/teachy_tv.c b/src/teachy_tv.c
index 49e8d99c3..1a144b0dd 100644
--- a/src/teachy_tv.c
+++ b/src/teachy_tv.c
@@ -1218,71 +1218,67 @@ void TeachyTvRestorePlayerPartyCallback(void)
void TeachyTvLoadBg3Map(u16 *buffer)
{
- u16 * r7;
- u8 * r5;
- u16 r4, r2, r3;
- u16 r4_1;
- void * sp08;
- void * sp0C;
- u16 sp10 = 0;
- const struct MapData *layout = &Route1_Layout; // r8
- u16 * r6 = AllocZeroed(0x800);
- sp08 = AllocZeroed(0x8000);
- sp0C = Alloc(16);
- memset(sp0C, 0xFF, 16);
-
- TeachyTvLoadMapTilesetToBuffer(layout->primaryTileset, sp08, 0x280);
- TeachyTvLoadMapTilesetToBuffer(layout->secondaryTileset, sp08 + 0x5000, 0x180);
-
- for (r4 = 0; r4 < 9; r4++)
+ u16 * bgTilesBuffer;
+ u8 * mapTilesRowBuffer;
+ u16 i, j, k;
+ u16 currentBlockIdx;
+ void * tilesetsBuffer;
+ void * palIndicesBuffer;
+ u16 numMapTilesRows = 0;
+ const struct MapData *layout = &Route1_Layout;
+ u16 * blockIndicesBuffer = AllocZeroed(0x800);
+ tilesetsBuffer = AllocZeroed(0x8000);
+ palIndicesBuffer = Alloc(16);
+ memset(palIndicesBuffer, 0xFF, 16);
+
+ TeachyTvLoadMapTilesetToBuffer(layout->primaryTileset, tilesetsBuffer, 0x280);
+ TeachyTvLoadMapTilesetToBuffer(layout->secondaryTileset, tilesetsBuffer + 0x5000, 0x180);
+
+ for (i = 0; i < 9; i++)
{
- // sp+18 = r4 + 6
- // r10 = r4 << 4
- // r9 = r4 << 6
- // sp14 <- r4++
- for (r2 = 0; r2 < 16; r2++)
+ for (j = 0; j < 16; j++)
{
- r4_1 = layout->map[8 + (r4 + 6) * layout->width + r2] & 0x3FF;
- for (r3 = 0; r3 < (r4 << 4) + r2; r3++)
+ currentBlockIdx = layout->map[8 + (i + 6) * layout->width + j] & 0x3FF;
+ for (k = 0; k < (i << 4) + j; k++)
{
- if (r6[r3] == 0)
+ if (blockIndicesBuffer[k] == 0)
break;
- if (r6[r3] == r4_1)
+ if (blockIndicesBuffer[k] == currentBlockIdx)
break;
}
- if (r6[r3] == 0)
+ if (blockIndicesBuffer[k] == 0)
{
- r6[r3] = r4_1;
- sp10++;
+ blockIndicesBuffer[k] = currentBlockIdx;
+ numMapTilesRows++;
}
- TeachyTvPushBackNewMapPalIndexArrayEntry(layout, &buffer[64 * r4 + 2 * r2], sp0C, r4_1, r3);
+ TeachyTvPushBackNewMapPalIndexArrayEntry(layout, &buffer[64 * i + 2 * j], palIndicesBuffer, currentBlockIdx, k);
}
}
- r7 = Alloc(sp10 * 0x80);
- r5 = Alloc(0x80);
- for (r4 = 0; r4 < sp10; r4++)
+ bgTilesBuffer = Alloc(numMapTilesRows * 0x80);
+ mapTilesRowBuffer = Alloc(0x80);
+ for (i = 0; i < numMapTilesRows; i++)
{
- memset(r5, 0, 0x80);
- if (r6[r4] < 0x280)
+ memset(mapTilesRowBuffer, 0, 0x80);
+ if (blockIndicesBuffer[i] < 0x280)
{
- TeachyTvComputeMapTilesFromTilesetAndMetaTiles(layout->primaryTileset->metatiles + r6[r4] * 16, r5, sp08);
+ TeachyTvComputeMapTilesFromTilesetAndMetaTiles(layout->primaryTileset->metatiles + blockIndicesBuffer[i] * 16, mapTilesRowBuffer, tilesetsBuffer);
}
else
{
- TeachyTvComputeMapTilesFromTilesetAndMetaTiles(layout->secondaryTileset->metatiles + (r6[r4] - 0x280) * 16, r5, sp08);
+ TeachyTvComputeMapTilesFromTilesetAndMetaTiles(layout->secondaryTileset->metatiles + (blockIndicesBuffer[i] - 0x280) * 16, mapTilesRowBuffer, tilesetsBuffer);
}
- CpuFastCopy(r5, r7 + r4 * 0x40, 0x80);
+ CpuFastCopy(mapTilesRowBuffer, bgTilesBuffer + i * 0x40, 0x80);
}
- LoadBgTiles(3, r7, sp10 * 0x80, 0);
- TeachyTvLoadMapPalette(layout, sp0C);
+ LoadBgTiles(3, bgTilesBuffer, numMapTilesRows * 0x80, 0);
+ TeachyTvLoadMapPalette(layout, palIndicesBuffer);
- Free(r5);
- Free(r7);
- Free(sp0C);
- Free(sp08);
- Free(r6);
+ Free(mapTilesRowBuffer);
+ Free(bgTilesBuffer);
+ Free(palIndicesBuffer);
+ Free(tilesetsBuffer);
+ Free(blockIndicesBuffer);
}
void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size)