diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-06-11 07:00:08 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-06-11 07:00:08 -0400 |
commit | c68d4972888777f8b6f89be82895cf8f9e0bdd45 (patch) | |
tree | 491de6936783b864f896083021762f162074b55a /src | |
parent | aa498800067ba2689ae5bf5433459ba088bfa83b (diff) |
Document vars in TeachyTvLoadBg3Map
Diffstat (limited to 'src')
-rw-r--r-- | src/teachy_tv.c | 86 |
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) |