diff options
Diffstat (limited to 'Triple-layer-metatiles.md')
-rw-r--r-- | Triple-layer-metatiles.md | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/Triple-layer-metatiles.md b/Triple-layer-metatiles.md index 95aa620..a36bd21 100644 --- a/Triple-layer-metatiles.md +++ b/Triple-layer-metatiles.md @@ -37,48 +37,51 @@ The changes we need to make to the game's code are fairly simple. We need to mod The first function we tackle is `DrawMetatile` which is responsible for rendering the metatiles to VRAM. We overwrite the function with the following: ```C -static void DrawMetatile(s32 metatileLayerType, u16 *metatiles, u16 offset) +static void DrawMetatile(s32 metatileLayerType, u16 *tiles, u16 offset) { if(metatileLayerType == 0xFF) { // A door metatile shall be drawn, we use covered behavior // Draw metatile's bottom layer to the bottom background layer. - gBGTilemapBuffers3[offset] = metatiles[0]; - gBGTilemapBuffers3[offset + 1] = metatiles[1]; - gBGTilemapBuffers3[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers3[offset + 0x21] = metatiles[3]; + gOverworldTilemapBuffer_Bg3[offset] = tiles[0]; + gOverworldTilemapBuffer_Bg3[offset + 1] = tiles[1]; + gOverworldTilemapBuffer_Bg3[offset + 0x20] = tiles[2]; + gOverworldTilemapBuffer_Bg3[offset + 0x21] = tiles[3]; + + // Draw transparent tiles to the top background layer. + gOverworldTilemapBuffer_Bg2[offset] = 0; + gOverworldTilemapBuffer_Bg2[offset + 1] = 0; + gOverworldTilemapBuffer_Bg2[offset + 0x20] = 0; + gOverworldTilemapBuffer_Bg2[offset + 0x21] = 0; // Draw metatile's top layer to the middle background layer. - gBGTilemapBuffers1[offset] = metatiles[4]; - gBGTilemapBuffers1[offset + 1] = metatiles[5]; - gBGTilemapBuffers1[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers1[offset + 0x21] = metatiles[7]; + gOverworldTilemapBuffer_Bg1[offset] = tiles[4]; + gOverworldTilemapBuffer_Bg1[offset + 1] = tiles[5]; + gOverworldTilemapBuffer_Bg1[offset + 0x20] = tiles[6]; + gOverworldTilemapBuffer_Bg1[offset + 0x21] = tiles[7]; - // Draw transparent tiles to the top background layer. - gBGTilemapBuffers2[offset] = 0; - gBGTilemapBuffers2[offset + 1] = 0; - gBGTilemapBuffers2[offset + 0x20] = 0; - gBGTilemapBuffers2[offset + 0x21] = 0; } else { // Draw metatile's bottom layer to the bottom background layer. - gBGTilemapBuffers3[offset] = metatiles[0]; - gBGTilemapBuffers3[offset + 1] = metatiles[1]; - gBGTilemapBuffers3[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers3[offset + 0x21] = metatiles[3]; + gOverworldTilemapBuffer_Bg3[offset] = tiles[0]; + gOverworldTilemapBuffer_Bg3[offset + 1] = tiles[1]; + gOverworldTilemapBuffer_Bg3[offset + 0x20] = tiles[2]; + gOverworldTilemapBuffer_Bg3[offset + 0x21] = tiles[3]; // Draw metatile's middle layer to the middle background layer. - gBGTilemapBuffers1[offset] = metatiles[4]; - gBGTilemapBuffers1[offset + 1] = metatiles[5]; - gBGTilemapBuffers1[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers1[offset + 0x21] = metatiles[7]; + gOverworldTilemapBuffer_Bg2[offset] = tiles[4]; + gOverworldTilemapBuffer_Bg2[offset + 1] = tiles[5]; + gOverworldTilemapBuffer_Bg2[offset + 0x20] = tiles[6]; + gOverworldTilemapBuffer_Bg2[offset + 0x21] = tiles[7]; // Draw metatile's top layer to the top background layer, which covers object event sprites. - gBGTilemapBuffers2[offset] = metatiles[8]; - gBGTilemapBuffers2[offset + 1] = metatiles[9]; - gBGTilemapBuffers2[offset + 0x20] = metatiles[10]; - gBGTilemapBuffers2[offset + 0x21] = metatiles[11]; + gOverworldTilemapBuffer_Bg1[offset] = tiles[8]; + gOverworldTilemapBuffer_Bg1[offset + 1] = tiles[9]; + gOverworldTilemapBuffer_Bg1[offset + 0x20] = tiles[10]; + gOverworldTilemapBuffer_Bg1[offset + 0x21] = tiles[11]; + + } ScheduleBgCopyTilemapToVram(1); |