/*
	This script file is part of the Sonic 3 A.I.R. script software distribution.
	Copyright (C) 2017-2024 by Eukaryot

	Published under the GNU GPLv3 open source software license, see license.txt
	or https://www.gnu.org/licenses/gpl-3.0.en.html
*/



function void LevelRingsTableBuilder.buildRings_AIZ1()
{
	LevelRingsTableBuilder.addRing(0x0000, 0x0000)
	LevelRingsTableBuilder.addRing(0x16c8, 0x03ec)
	LevelRingsTableBuilder.addRing(0x16e0, 0x03ec)
	LevelRingsTableBuilder.addRing(0x16f8, 0x03ec)
	LevelRingsTableBuilder.addRing(0x1760, 0x0410)
	LevelRingsTableBuilder.addRing(0x1780, 0x0420)
	LevelRingsTableBuilder.addRing(0x17a0, 0x0430)
	LevelRingsTableBuilder.addRing(0x17c0, 0x0440)
	LevelRingsTableBuilder.addRing(0x17e0, 0x0450)
	LevelRingsTableBuilder.addRing(0x1898, 0x0460)
	LevelRingsTableBuilder.addRing(0x18b4, 0x0450)
	LevelRingsTableBuilder.addRing(0x18c8, 0x0438)
	LevelRingsTableBuilder.addRing(0x19f8, 0x0420)
	LevelRingsTableBuilder.addRing(0x1a10, 0x0420)
	LevelRingsTableBuilder.addRing(0x1a28, 0x0420)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) == 2)
	{
		// Rings for Knuckles' new path
		LevelRingsTableBuilder.addRing(0x1a30, 0x00d8)
		LevelRingsTableBuilder.addRing(0x1a48, 0x00a4)
		LevelRingsTableBuilder.addRing(0x1a80, 0x0090)
		LevelRingsTableBuilder.addRing(0x1ab8, 0x00a4)
		LevelRingsTableBuilder.addRing(0x1ad0, 0x00d8)
		LevelRingsTableBuilder.addRing(0x1b98, 0x0160)
		LevelRingsTableBuilder.addRing(0x1bb4, 0x0150)
		LevelRingsTableBuilder.addRing(0x1bc8, 0x0138)
	}

	LevelRingsTableBuilder.addRing(0x1c00, 0x0268)
	LevelRingsTableBuilder.addRing(0x1c18, 0x0268)
	LevelRingsTableBuilder.addRing(0x1c30, 0x0268)
	LevelRingsTableBuilder.addRing(0x1ca0, 0x02b8)
	LevelRingsTableBuilder.addRing(0x1cc0, 0x02b0)
	LevelRingsTableBuilder.addRing(0x1ce0, 0x02a8)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) == 2)
	{
		// Rings for Knuckles' new path
		LevelRingsTableBuilder.addRing(0x1d50, 0x00b4)
		LevelRingsTableBuilder.addRing(0x1d68, 0x00b4)
		LevelRingsTableBuilder.addRing(0x1d80, 0x00b4)
	}

	LevelRingsTableBuilder.addRing(0x1e90, 0x04d4)
	LevelRingsTableBuilder.addRing(0x1eb0, 0x04c4)
	//LevelRingsTableBuilder.addRing(0x1eb0, 0x04c4)	// Removed duplicate ring (in all layouts)
	LevelRingsTableBuilder.addRing(0x1ed0, 0x04b4)

	if (Game.getSetting(SETTING_LEVELLAYOUTS) == 2)
	{
		// Rings for Knuckles' new path
		LevelRingsTableBuilder.addRing(0x1f0a, 0x007c)
		LevelRingsTableBuilder.addRing(0x1f0a, 0x0094)
		LevelRingsTableBuilder.addRing(0x1f0a, 0x00ac)
		LevelRingsTableBuilder.addRing(0x1f22, 0x007c)
		LevelRingsTableBuilder.addRing(0x1f22, 0x0094)
		LevelRingsTableBuilder.addRing(0x1f22, 0x00ac)
	}

	LevelRingsTableBuilder.addRing(0x1fec, 0x0210)
	LevelRingsTableBuilder.addRing(0x2004, 0x0210)
	LevelRingsTableBuilder.addRing(0x201c, 0x0210)
	LevelRingsTableBuilder.addRing(0x2230, 0x0240)
	LevelRingsTableBuilder.addRing(0x2230, 0x0458)
	LevelRingsTableBuilder.addRing(0x2240, 0x02f0)
	LevelRingsTableBuilder.addRing(0x2248, 0x0424)
	LevelRingsTableBuilder.addRing(0x2258, 0x02f0)
	LevelRingsTableBuilder.addRing(0x2270, 0x0250)
	LevelRingsTableBuilder.addRing(0x2270, 0x02f0)
	LevelRingsTableBuilder.addRing(0x2280, 0x0410)
	LevelRingsTableBuilder.addRing(0x22b0, 0x0260)
	LevelRingsTableBuilder.addRing(0x22b8, 0x0424)
	LevelRingsTableBuilder.addRing(0x22d0, 0x0458)
	LevelRingsTableBuilder.addRing(0x22f0, 0x0270)
	LevelRingsTableBuilder.addRing(0x2330, 0x0280)
	LevelRingsTableBuilder.addRing(0x2370, 0x0290)
	LevelRingsTableBuilder.addRing(0x23b0, 0x02a0)
	LevelRingsTableBuilder.addRing(0x23e8, 0x033c)
	LevelRingsTableBuilder.addRing(0x23f0, 0x02b0)
	LevelRingsTableBuilder.addRing(0x2400, 0x033c)
	LevelRingsTableBuilder.addRing(0x2418, 0x033c)
	LevelRingsTableBuilder.addRing(0x2430, 0x02c0)
	LevelRingsTableBuilder.addRing(0x2470, 0x02d0)
	LevelRingsTableBuilder.addRing(0x24b0, 0x02e0)
	LevelRingsTableBuilder.addRing(0x24f0, 0x02f0)
	LevelRingsTableBuilder.addRing(0x2530, 0x0300)
	LevelRingsTableBuilder.addRing(0x2558, 0x054c)
	LevelRingsTableBuilder.addRing(0x2570, 0x0310)
	LevelRingsTableBuilder.addRing(0x2574, 0x028c)
	LevelRingsTableBuilder.addRing(0x2578, 0x0540)
	LevelRingsTableBuilder.addRing(0x2598, 0x0534)
	LevelRingsTableBuilder.addRing(0x25b0, 0x0274)
	LevelRingsTableBuilder.addRing(0x25b0, 0x0320)
	LevelRingsTableBuilder.addRing(0x25ec, 0x028c)
	LevelRingsTableBuilder.addRing(0x25ec, 0x0304)
	LevelRingsTableBuilder.addRing(0x2608, 0x02cc)
	LevelRingsTableBuilder.addRing(0x2638, 0x0248)
	LevelRingsTableBuilder.addRing(0x2650, 0x0248)
	LevelRingsTableBuilder.addRing(0x2650, 0x02e0)
	LevelRingsTableBuilder.addRing(0x2668, 0x0248)
	LevelRingsTableBuilder.addRing(0x2668, 0x02e0)
	LevelRingsTableBuilder.addRing(0x2680, 0x02e0)
	LevelRingsTableBuilder.addRing(0x2710, 0x0358)
	LevelRingsTableBuilder.addRing(0x2730, 0x0348)
	LevelRingsTableBuilder.addRing(0x2750, 0x0338)
	LevelRingsTableBuilder.addRing(0x2754, 0x01d8)
	LevelRingsTableBuilder.addRing(0x2760, 0x01c0)
	LevelRingsTableBuilder.addRing(0x276c, 0x01d8)
	LevelRingsTableBuilder.addRing(0x2778, 0x01c0)
	LevelRingsTableBuilder.addRing(0x2784, 0x01d8)
	LevelRingsTableBuilder.addRing(0x2790, 0x01c0)
	LevelRingsTableBuilder.addRing(0x279c, 0x01d8)
	LevelRingsTableBuilder.addRing(0x28a4, 0x0200)
	LevelRingsTableBuilder.addRing(0x28bc, 0x0200)
	LevelRingsTableBuilder.addRing(0x28be, 0x04bc)
	LevelRingsTableBuilder.addRing(0x28be, 0x04d4)
	LevelRingsTableBuilder.addRing(0x28be, 0x04ec)
	LevelRingsTableBuilder.addRing(0x28d4, 0x0200)
	LevelRingsTableBuilder.addRing(0x292c, 0x02d8)
	LevelRingsTableBuilder.addRing(0x2944, 0x02a4)
	LevelRingsTableBuilder.addRing(0x2980, 0x028c)
	LevelRingsTableBuilder.addRing(0x2984, 0x045c)
	LevelRingsTableBuilder.addRing(0x299c, 0x045c)
	LevelRingsTableBuilder.addRing(0x29b4, 0x045c)
	LevelRingsTableBuilder.addRing(0x29bc, 0x02a4)
	LevelRingsTableBuilder.addRing(0x29d4, 0x02d8)
	LevelRingsTableBuilder.addRing(0x2ab0, 0x0358)
	LevelRingsTableBuilder.addRing(0x2ac8, 0x0328)
	LevelRingsTableBuilder.addRing(0x2b00, 0x0310)
	LevelRingsTableBuilder.addRing(0x2b24, 0x045c)
	LevelRingsTableBuilder.addRing(0x2b38, 0x0328)
	LevelRingsTableBuilder.addRing(0x2b40, 0x0448)
	LevelRingsTableBuilder.addRing(0x2b50, 0x0358)
	LevelRingsTableBuilder.addRing(0x2b50, 0x042c)
	LevelRingsTableBuilder.addRing(0x2bd0, 0x03e4)
	LevelRingsTableBuilder.addRing(0x2bf0, 0x03f4)
	LevelRingsTableBuilder.addRing(0x2c10, 0x0404)
	LevelRingsTableBuilder.addRing(0x2c30, 0x0414)
	LevelRingsTableBuilder.addRing(0x2c50, 0x0424)
	u32[A1] = 0xffffffff
	A1 += 4
}


function void LevelRingsTableBuilder.buildRings_AIZ2()
{
	LevelRingsTableBuilder.addRing(0x0000, 0x0000)
	LevelRingsTableBuilder.addRing(0x03a8, 0x02d4)
	LevelRingsTableBuilder.addRing(0x03c8, 0x02e4)
	LevelRingsTableBuilder.addRing(0x03d4, 0x0208)
	LevelRingsTableBuilder.addRing(0x03d4, 0x0220)
	LevelRingsTableBuilder.addRing(0x03d4, 0x0238)
	LevelRingsTableBuilder.addRing(0x03d4, 0x0250)
	LevelRingsTableBuilder.addRing(0x03e8, 0x02f4)
	LevelRingsTableBuilder.addRing(0x03ec, 0x0208)
	LevelRingsTableBuilder.addRing(0x03ec, 0x0220)
	LevelRingsTableBuilder.addRing(0x03ec, 0x0238)
	LevelRingsTableBuilder.addRing(0x03ec, 0x0250)
	LevelRingsTableBuilder.addRing(0x0600, 0x02f8)
	LevelRingsTableBuilder.addRing(0x0618, 0x02f8)
	LevelRingsTableBuilder.addRing(0x0630, 0x02f8)
	LevelRingsTableBuilder.addRing(0x06c0, 0x04dc)
	LevelRingsTableBuilder.addRing(0x06d8, 0x04dc)
	LevelRingsTableBuilder.addRing(0x06f0, 0x04dc)
	LevelRingsTableBuilder.addRing(0x0708, 0x04dc)
	LevelRingsTableBuilder.addRing(0x0730, 0x0358)
	LevelRingsTableBuilder.addRing(0x0750, 0x0368)
	LevelRingsTableBuilder.addRing(0x0760, 0x0468)
	LevelRingsTableBuilder.addRing(0x0770, 0x0378)
	LevelRingsTableBuilder.addRing(0x0778, 0x0468)
	LevelRingsTableBuilder.addRing(0x0790, 0x0468)
	LevelRingsTableBuilder.addRing(0x08b8, 0x0314)
	LevelRingsTableBuilder.addRing(0x08f8, 0x0324)
	LevelRingsTableBuilder.addRing(0x0938, 0x0334)
	LevelRingsTableBuilder.addRing(0x0978, 0x0344)
	LevelRingsTableBuilder.addRing(0x09b8, 0x0354)
	LevelRingsTableBuilder.addRing(0x09d8, 0x03c0)
	LevelRingsTableBuilder.addRing(0x09f0, 0x03c0)
	LevelRingsTableBuilder.addRing(0x09f8, 0x0364)
	LevelRingsTableBuilder.addRing(0x0a08, 0x03c0)
	LevelRingsTableBuilder.addRing(0x0a1c, 0x059c)
	LevelRingsTableBuilder.addRing(0x0a34, 0x059c)
	LevelRingsTableBuilder.addRing(0x0a38, 0x0374)
	LevelRingsTableBuilder.addRing(0x0a4c, 0x059c)
	LevelRingsTableBuilder.addRing(0x0a64, 0x059c)
	LevelRingsTableBuilder.addRing(0x0a78, 0x0384)
	LevelRingsTableBuilder.addRing(0x0ab8, 0x0394)
	LevelRingsTableBuilder.addRing(0x0af8, 0x03a4)
	LevelRingsTableBuilder.addRing(0x0b00, 0x032c)
	LevelRingsTableBuilder.addRing(0x0b38, 0x0314)
	LevelRingsTableBuilder.addRing(0x0b38, 0x03b4)
	LevelRingsTableBuilder.addRing(0x0b70, 0x032c)
	LevelRingsTableBuilder.addRing(0x0b70, 0x039c)
	LevelRingsTableBuilder.addRing(0x0b88, 0x0364)
	LevelRingsTableBuilder.addRing(0x0ba4, 0x0614)
	LevelRingsTableBuilder.addRing(0x0bc4, 0x0624)
	LevelRingsTableBuilder.addRing(0x0be4, 0x0634)
	LevelRingsTableBuilder.addRing(0x0c30, 0x03d8)
	LevelRingsTableBuilder.addRing(0x0c48, 0x03a4)
	LevelRingsTableBuilder.addRing(0x0c80, 0x038c)
	LevelRingsTableBuilder.addRing(0x0c94, 0x0580)
	LevelRingsTableBuilder.addRing(0x0cac, 0x0580)
	LevelRingsTableBuilder.addRing(0x0cb8, 0x03a4)
	LevelRingsTableBuilder.addRing(0x0cd0, 0x03d8)
	LevelRingsTableBuilder.addRing(0x0d68, 0x03dc)
	LevelRingsTableBuilder.addRing(0x0d80, 0x03dc)
	LevelRingsTableBuilder.addRing(0x0d98, 0x03dc)
	LevelRingsTableBuilder.addRing(0x0e30, 0x0494)
	LevelRingsTableBuilder.addRing(0x0e50, 0x04a4)
	LevelRingsTableBuilder.addRing(0x0e70, 0x04b4)
	LevelRingsTableBuilder.addRing(0x0e90, 0x02ec)
	LevelRingsTableBuilder.addRing(0x0ea8, 0x02ec)
	LevelRingsTableBuilder.addRing(0x0ec0, 0x02ec)
	LevelRingsTableBuilder.addRing(0x0fb0, 0x0318)
	LevelRingsTableBuilder.addRing(0x0fd0, 0x0328)
	LevelRingsTableBuilder.addRing(0x0ff0, 0x0338)
	LevelRingsTableBuilder.addRing(0x12a8, 0x0590)
	LevelRingsTableBuilder.addRing(0x12e8, 0x05b0)
	LevelRingsTableBuilder.addRing(0x1328, 0x05d0)
	LevelRingsTableBuilder.addRing(0x1368, 0x05f0)
	LevelRingsTableBuilder.addRing(0x1378, 0x0360)
	LevelRingsTableBuilder.addRing(0x1390, 0x0360)
	LevelRingsTableBuilder.addRing(0x13a8, 0x0360)
	LevelRingsTableBuilder.addRing(0x13a8, 0x0610)
	LevelRingsTableBuilder.addRing(0x13e8, 0x0630)
	LevelRingsTableBuilder.addRing(0x1414, 0x0700)
	LevelRingsTableBuilder.addRing(0x142c, 0x0700)
	LevelRingsTableBuilder.addRing(0x1528, 0x06d0)
	LevelRingsTableBuilder.addRing(0x1568, 0x06f0)
	LevelRingsTableBuilder.addRing(0x15f8, 0x0780)
	LevelRingsTableBuilder.addRing(0x1610, 0x0780)
	LevelRingsTableBuilder.addRing(0x1628, 0x0780)
	LevelRingsTableBuilder.addRing(0x1700, 0x0460)
	LevelRingsTableBuilder.addRing(0x1728, 0x0810)
	LevelRingsTableBuilder.addRing(0x1740, 0x0460)
	LevelRingsTableBuilder.addRing(0x1748, 0x0820)
	LevelRingsTableBuilder.addRing(0x1768, 0x0830)
	LevelRingsTableBuilder.addRing(0x1780, 0x0460)
	LevelRingsTableBuilder.addRing(0x17a8, 0x0710)
	LevelRingsTableBuilder.addRing(0x17c0, 0x0460)
	LevelRingsTableBuilder.addRing(0x17c8, 0x0720)
	LevelRingsTableBuilder.addRing(0x17e8, 0x0730)
	LevelRingsTableBuilder.addRing(0x1800, 0x0460)
	LevelRingsTableBuilder.addRing(0x18a8, 0x0710)
	LevelRingsTableBuilder.addRing(0x18d8, 0x0728)
	LevelRingsTableBuilder.addRing(0x18e8, 0x0540)
	LevelRingsTableBuilder.addRing(0x1900, 0x0540)
	LevelRingsTableBuilder.addRing(0x1908, 0x0740)
	LevelRingsTableBuilder.addRing(0x1918, 0x0540)
	LevelRingsTableBuilder.addRing(0x1938, 0x0758)
	LevelRingsTableBuilder.addRing(0x1968, 0x0770)
	LevelRingsTableBuilder.addRing(0x1ac4, 0x04e0)
	LevelRingsTableBuilder.addRing(0x1adc, 0x04e0)
	LevelRingsTableBuilder.addRing(0x1ae8, 0x0760)
	LevelRingsTableBuilder.addRing(0x1af4, 0x04e0)
	LevelRingsTableBuilder.addRing(0x1b00, 0x0760)
	LevelRingsTableBuilder.addRing(0x1b0c, 0x04e0)
	LevelRingsTableBuilder.addRing(0x1b18, 0x0760)
	LevelRingsTableBuilder.addRing(0x1be8, 0x07c0)
	LevelRingsTableBuilder.addRing(0x1c00, 0x07c0)
	LevelRingsTableBuilder.addRing(0x1c18, 0x07c0)
	LevelRingsTableBuilder.addRing(0x1ca8, 0x04dc)
	LevelRingsTableBuilder.addRing(0x1ca8, 0x07d0)
	LevelRingsTableBuilder.addRing(0x1cc0, 0x04dc)
	LevelRingsTableBuilder.addRing(0x1cc8, 0x07e0)
	LevelRingsTableBuilder.addRing(0x1cd8, 0x04dc)
	LevelRingsTableBuilder.addRing(0x1ce8, 0x07f0)
	LevelRingsTableBuilder.addRing(0x1da8, 0x0790)
	LevelRingsTableBuilder.addRing(0x1dd8, 0x07a8)
	LevelRingsTableBuilder.addRing(0x1e08, 0x07c0)
	LevelRingsTableBuilder.addRing(0x1e38, 0x03c0)
	LevelRingsTableBuilder.addRing(0x1e38, 0x07d8)
	LevelRingsTableBuilder.addRing(0x1e68, 0x07f0)
	LevelRingsTableBuilder.addRing(0x1e78, 0x03d0)
	LevelRingsTableBuilder.addRing(0x1eb8, 0x03e0)
	LevelRingsTableBuilder.addRing(0x1ec8, 0x06dc)
	LevelRingsTableBuilder.addRing(0x1ee0, 0x06dc)
	LevelRingsTableBuilder.addRing(0x1ef8, 0x03f0)
	LevelRingsTableBuilder.addRing(0x1ef8, 0x06dc)
	LevelRingsTableBuilder.addRing(0x1f38, 0x0400)
	LevelRingsTableBuilder.addRing(0x1f78, 0x0410)
	LevelRingsTableBuilder.addRing(0x1fb8, 0x0420)
	LevelRingsTableBuilder.addRing(0x1ff8, 0x0430)
	LevelRingsTableBuilder.addRing(0x2028, 0x055c)
	LevelRingsTableBuilder.addRing(0x2040, 0x055c)
	LevelRingsTableBuilder.addRing(0x2058, 0x055c)
	LevelRingsTableBuilder.addRing(0x20a0, 0x06a8)
	LevelRingsTableBuilder.addRing(0x20c0, 0x06b0)
	LevelRingsTableBuilder.addRing(0x20e0, 0x06b8)
	LevelRingsTableBuilder.addRing(0x2108, 0x064c)
	LevelRingsTableBuilder.addRing(0x2120, 0x064c)
	LevelRingsTableBuilder.addRing(0x2138, 0x064c)
	LevelRingsTableBuilder.addRing(0x21b0, 0x0560)
	LevelRingsTableBuilder.addRing(0x21b0, 0x06d8)
	LevelRingsTableBuilder.addRing(0x21c4, 0x06a4)
	LevelRingsTableBuilder.addRing(0x21c8, 0x0560)
	LevelRingsTableBuilder.addRing(0x21e0, 0x0560)
	LevelRingsTableBuilder.addRing(0x2200, 0x068c)
	LevelRingsTableBuilder.addRing(0x223c, 0x06a4)
	LevelRingsTableBuilder.addRing(0x2250, 0x06d8)
	LevelRingsTableBuilder.addRing(0x2298, 0x04c8)
	LevelRingsTableBuilder.addRing(0x22b8, 0x04d0)
	LevelRingsTableBuilder.addRing(0x22d8, 0x04d8)
	LevelRingsTableBuilder.addRing(0x2330, 0x0758)
	LevelRingsTableBuilder.addRing(0x2344, 0x0724)
	LevelRingsTableBuilder.addRing(0x2380, 0x0710)
	LevelRingsTableBuilder.addRing(0x23b8, 0x0724)
	LevelRingsTableBuilder.addRing(0x23d0, 0x0758)
	LevelRingsTableBuilder.addRing(0x24b0, 0x07d0)
	LevelRingsTableBuilder.addRing(0x24c8, 0x07a0)
	LevelRingsTableBuilder.addRing(0x2500, 0x078c)
	LevelRingsTableBuilder.addRing(0x2534, 0x07a0)
	LevelRingsTableBuilder.addRing(0x2550, 0x07d0)
	LevelRingsTableBuilder.addRing(0x2810, 0x0708)
	LevelRingsTableBuilder.addRing(0x2828, 0x0594)
	LevelRingsTableBuilder.addRing(0x2830, 0x0718)
	LevelRingsTableBuilder.addRing(0x2848, 0x05a4)
	LevelRingsTableBuilder.addRing(0x2850, 0x0728)
	LevelRingsTableBuilder.addRing(0x2868, 0x05b4)
	LevelRingsTableBuilder.addRing(0x2870, 0x0738)
	LevelRingsTableBuilder.addRing(0x29e0, 0x06d8)
	LevelRingsTableBuilder.addRing(0x29f8, 0x06d8)
	LevelRingsTableBuilder.addRing(0x2a00, 0x0200)
	LevelRingsTableBuilder.addRing(0x2a00, 0x0218)
	LevelRingsTableBuilder.addRing(0x2a00, 0x0230)
	LevelRingsTableBuilder.addRing(0x2a00, 0x0248)
	LevelRingsTableBuilder.addRing(0x2a00, 0x0260)
	LevelRingsTableBuilder.addRing(0x2a10, 0x06d8)
	LevelRingsTableBuilder.addRing(0x2ad4, 0x00fc)
	LevelRingsTableBuilder.addRing(0x2ad4, 0x0114)
	LevelRingsTableBuilder.addRing(0x2ad4, 0x012c)
	LevelRingsTableBuilder.addRing(0x2aec, 0x00fc)
	LevelRingsTableBuilder.addRing(0x2aec, 0x0114)
	LevelRingsTableBuilder.addRing(0x2aec, 0x012c)
	LevelRingsTableBuilder.addRing(0x2b00, 0x06a8)
	LevelRingsTableBuilder.addRing(0x2b04, 0x00fc)
	LevelRingsTableBuilder.addRing(0x2b04, 0x0114)
	LevelRingsTableBuilder.addRing(0x2b04, 0x012c)
	LevelRingsTableBuilder.addRing(0x2b18, 0x06a8)
	LevelRingsTableBuilder.addRing(0x2b1c, 0x00fc)
	LevelRingsTableBuilder.addRing(0x2b1c, 0x0114)
	LevelRingsTableBuilder.addRing(0x2b1c, 0x012c)
	LevelRingsTableBuilder.addRing(0x2b20, 0x0538)
	LevelRingsTableBuilder.addRing(0x2b30, 0x0390)
	LevelRingsTableBuilder.addRing(0x2b30, 0x06a8)
	LevelRingsTableBuilder.addRing(0x2b40, 0x035c)
	LevelRingsTableBuilder.addRing(0x2b40, 0x03c4)
	LevelRingsTableBuilder.addRing(0x2b40, 0x0530)
	LevelRingsTableBuilder.addRing(0x2b4c, 0x0209)
	LevelRingsTableBuilder.addRing(0x2b50, 0x022c)
	LevelRingsTableBuilder.addRing(0x2b60, 0x0248)
	LevelRingsTableBuilder.addRing(0x2b60, 0x0528)
	LevelRingsTableBuilder.addRing(0x2b70, 0x0340)
	LevelRingsTableBuilder.addRing(0x2b70, 0x03dc)
	LevelRingsTableBuilder.addRing(0x2b7c, 0x025c)
	LevelRingsTableBuilder.addRing(0x2b9f, 0x0269)
	LevelRingsTableBuilder.addRing(0x2cb0, 0x05d8)
	LevelRingsTableBuilder.addRing(0x2cc8, 0x03f9)
	LevelRingsTableBuilder.addRing(0x2cd0, 0x05e8)
	LevelRingsTableBuilder.addRing(0x2ce0, 0x03f9)
	LevelRingsTableBuilder.addRing(0x2cf0, 0x05f8)
	LevelRingsTableBuilder.addRing(0x2cf8, 0x03f9)
	LevelRingsTableBuilder.addRing(0x2d70, 0x045c)
	LevelRingsTableBuilder.addRing(0x2d88, 0x045c)
	LevelRingsTableBuilder.addRing(0x2da0, 0x045c)
	LevelRingsTableBuilder.addRing(0x2e20, 0x06c8)
	LevelRingsTableBuilder.addRing(0x2e34, 0x0518)
	LevelRingsTableBuilder.addRing(0x2e40, 0x06d0)
	LevelRingsTableBuilder.addRing(0x2e48, 0x0530)
	LevelRingsTableBuilder.addRing(0x2e60, 0x0330)
	LevelRingsTableBuilder.addRing(0x2e60, 0x06d8)
	LevelRingsTableBuilder.addRing(0x2e64, 0x0540)
	LevelRingsTableBuilder.addRing(0x2e80, 0x0340)
	LevelRingsTableBuilder.addRing(0x2ea0, 0x0350)
	LevelRingsTableBuilder.addRing(0x2f30, 0x0358)
	LevelRingsTableBuilder.addRing(0x2f48, 0x0324)
	LevelRingsTableBuilder.addRing(0x2f80, 0x0310)
	LevelRingsTableBuilder.addRing(0x2f88, 0x051c)
	LevelRingsTableBuilder.addRing(0x2f88, 0x05c4)
	LevelRingsTableBuilder.addRing(0x2fbc, 0x0324)
	LevelRingsTableBuilder.addRing(0x2fbc, 0x0538)
	LevelRingsTableBuilder.addRing(0x2fbc, 0x05a8)
	LevelRingsTableBuilder.addRing(0x2fd0, 0x0358)
	LevelRingsTableBuilder.addRing(0x2fd0, 0x0570)

	// Fix for one misplaced ring, move it 0x100 to the left (changing order of the next block of rings)
	LevelRingsTableBuilder.addRing(0x30b0, 0x03d8)
	LevelRingsTableBuilder.addRing(0x30c8, 0x03a4)
	LevelRingsTableBuilder.addRing(0x3100, 0x0390)
	LevelRingsTableBuilder.addRing(0x3120, 0x05fc)
	LevelRingsTableBuilder.addRing(0x3138, 0x03a4)
	LevelRingsTableBuilder.addRing(0x3140, 0x05f4)
	LevelRingsTableBuilder.addRing(0x3150, 0x03d8)
	LevelRingsTableBuilder.addRing(0x3160, 0x05ec)

	LevelRingsTableBuilder.addRing(0x31e0, 0x0470)
	LevelRingsTableBuilder.addRing(0x3200, 0x0480)
	LevelRingsTableBuilder.addRing(0x3220, 0x0490)
	LevelRingsTableBuilder.addRing(0x3258, 0x05bc)
	LevelRingsTableBuilder.addRing(0x3270, 0x05bc)
	LevelRingsTableBuilder.addRing(0x3288, 0x05bc)
	LevelRingsTableBuilder.addRing(0x32d0, 0x073c)
	LevelRingsTableBuilder.addRing(0x32e8, 0x073c)
	LevelRingsTableBuilder.addRing(0x3300, 0x073c)
	LevelRingsTableBuilder.addRing(0x3400, 0x0350)
	LevelRingsTableBuilder.addRing(0x3418, 0x0350)
	LevelRingsTableBuilder.addRing(0x3430, 0x0350)
	LevelRingsTableBuilder.addRing(0x3460, 0x0070)
	LevelRingsTableBuilder.addRing(0x3460, 0x0098)
	LevelRingsTableBuilder.addRing(0x346c, 0x0084)
	LevelRingsTableBuilder.addRing(0x3478, 0x0070)
	LevelRingsTableBuilder.addRing(0x3478, 0x0098)
	LevelRingsTableBuilder.addRing(0x3484, 0x0084)
	LevelRingsTableBuilder.addRing(0x3490, 0x0070)
	LevelRingsTableBuilder.addRing(0x3490, 0x0098)
	LevelRingsTableBuilder.addRing(0x349c, 0x0084)
	LevelRingsTableBuilder.addRing(0x34a8, 0x0070)
	LevelRingsTableBuilder.addRing(0x34a8, 0x0098)
	LevelRingsTableBuilder.addRing(0x34b4, 0x0084)
	LevelRingsTableBuilder.addRing(0x34c0, 0x0070)
	LevelRingsTableBuilder.addRing(0x34c0, 0x0098)
	LevelRingsTableBuilder.addRing(0x34d0, 0x0384)
	LevelRingsTableBuilder.addRing(0x34e8, 0x0384)
	LevelRingsTableBuilder.addRing(0x3500, 0x0384)
	LevelRingsTableBuilder.addRing(0x350c, 0x0200)
	LevelRingsTableBuilder.addRing(0x3524, 0x0200)
	LevelRingsTableBuilder.addRing(0x353c, 0x0200)
	LevelRingsTableBuilder.addRing(0x3554, 0x0200)
	LevelRingsTableBuilder.addRing(0x3580, 0x0660)
	LevelRingsTableBuilder.addRing(0x35a0, 0x0648)
	LevelRingsTableBuilder.addRing(0x35b0, 0x0628)
	LevelRingsTableBuilder.addRing(0x3618, 0x04dc)
	LevelRingsTableBuilder.addRing(0x3630, 0x04dc)
	LevelRingsTableBuilder.addRing(0x3648, 0x04dc)
	LevelRingsTableBuilder.addRing(0x3660, 0x04dc)
	LevelRingsTableBuilder.addRing(0x36f4, 0x06f8)
	LevelRingsTableBuilder.addRing(0x3703, 0x01e0)
	LevelRingsTableBuilder.addRing(0x370c, 0x06f8)
	LevelRingsTableBuilder.addRing(0x371c, 0x01cc)
	LevelRingsTableBuilder.addRing(0x3724, 0x06f8)
	LevelRingsTableBuilder.addRing(0x372f, 0x01b2)
	LevelRingsTableBuilder.addRing(0x37a8, 0x0710)
	LevelRingsTableBuilder.addRing(0x37c8, 0x0720)
	LevelRingsTableBuilder.addRing(0x37e8, 0x0730)
	LevelRingsTableBuilder.addRing(0x37fc, 0x0162)
	LevelRingsTableBuilder.addRing(0x3814, 0x0162)
	LevelRingsTableBuilder.addRing(0x382c, 0x0162)
	LevelRingsTableBuilder.addRing(0x39a8, 0x0690)
	LevelRingsTableBuilder.addRing(0x39c8, 0x06a0)
	LevelRingsTableBuilder.addRing(0x39e8, 0x06b0)
	LevelRingsTableBuilder.addRing(0x3b68, 0x067c)
	LevelRingsTableBuilder.addRing(0x3b80, 0x067c)
	LevelRingsTableBuilder.addRing(0x3b98, 0x067c)
	LevelRingsTableBuilder.addRing(0x4058, 0x0194)
	LevelRingsTableBuilder.addRing(0x4070, 0x0194)
	LevelRingsTableBuilder.addRing(0x4088, 0x0194)
	u32[A1] = 0xffffffff
	A1 += 4
}
