// Author: Uberteg.  I got the o2 heater disable from falcon GSR.
// Andrew Shinn added some shit, so did ndogg and Civic TSI
num hKnock	= -1;
num hVTEC	= -1;
num hVVSS	= -1;
num hVECT	= -1;
num hPASN	= -1;
num hELDD	= -1;
num hHeater	= -1;
num hRemoveSpeed= -1;
num hInjector   = -1;

num hmap00;
num hmap01;
num hmap02;
num hmap03;
num hmap04;
num hmap05;
num hmap06;
num hmap07;
num hmap08;
num hmap09;
num hmap10;
num hmap11;
num hmap12;
num hmap13;
num hmap14;

void open()
{
	num x = 10;
	num y = 10;

	CreateBorder(x, y, 515, 85, 6, 0, "Misc");
	CreateStatic(x+5, y-5, 100, 20, 6, 0, "Misc Options");
	
	x = x + 20;
	y = y + 20;

	hKnock = CreateCheck(x, y, 150, 20, 6, 0, "Knock Sensor");
	if(readbyte(0x5467))
		setitem(hKnock, 1);
	else
		setitem(hKnock, 0);

	y = y + 20;
	hVTEC = CreateCheck(x, y, 150, 20, 6, 0, "VTEC");
	if(readbyte(0x5466))	
		setitem(hVTEC, 1);
	else
		setitem(hVTEC, 0);

	y = y + 20;
	hVVSS = CreateCheck(x, y, 150, 20, 6, 0, "VTEC < 20MPH");
	if(readbyte(0x547D))	
		setitem(hVVSS, 1);
	else
		setitem(hVVSS, 0);

	y = y + -40;
	hVECT = CreateCheck(x+170, y, 150, 20, 6, 0, "VTEC Coolant Check");
	if(readbyte(0x120E) == 0x44)
		setitem(hVECT, 1);
	else
		setitem(hVECT, 0);

	y = y + 20;
	hPASN = CreateCheck(x+170, y, 150, 20, 6, 0, "PA Sensor");
	if(readbyte(0x5469))
		setitem(hPASN, 1);
	else
		setitem(hPASN, 0);

	y = y + 20;
	hELDD = CreateCheck(x+170, y, 150, 20, 6, 0, "ELD");
	if(readbyte(0x5471))
		setitem(hELDD, 0);
	else
		setitem(hELDD, 1);

	y = y + -40;
	hHeater = CreateCheck(x+340, y, 150, 20, 6, 0, "O2 Heater Disable");
	if(readbyte(0x2315) == 0x03)
		setitem(hHeater, 1);
	else
		setitem(hHeater, 0);

	y = y + 20;
	hRemoveSpeed = CreateCheck(x+340, y, 150, 20, 6, 0, "Remove Speed Limiter");
	if(readbyte(0x18A5))	
		setitem(hRemoveSpeed, 0);
	else
		setitem(hRemoveSpeed, 1);

	y = y + 20;
	hInjector = CreateCheck(x+340, y, 150, 20, 6, 0, "Injector Test Disable");
	if(readbyte(0x0630) == 0x03)	
		setitem(hInjector, 1);
	else
		setitem(hInjector, 0);
}

void save()
{
	if(getitem(hKnock))	
		writebyte(0x5467, 0xFF);
	else
		writebyte(0x5467, 0x00);

	if(getitem(hVTEC))	
		writebyte(0x5466, 0xFF);
	else
		writebyte(0x5466, 0x00);
	
	if(getitem(hVVSS))	
		writebyte(0x547D, 0xFF);
	else
		writebyte(0x547D, 0x00);
	
	if(getitem(hVECT))	
		writebyte(0x120E, 0x44);
	else
		writebyte(0x120E, 0xFF);

	if(getitem(hPASN))
		writebyte(0x5469, 0xFF);
	else
		writebyte(0x5469, 0x00);

	if(getitem(hELDD))	
		writebyte(0x5471, 0x00);
	else
		writebyte(0x5471, 0xFF);

	if(getitem(hHeater))
	{
		writebyte(0x2315, 0x03);
		writebyte(0x2316, 0x50);
		writebyte(0x2317, 0x23);
	}
	else
	{
		writebyte(0x2315, 0xF4);
		writebyte(0x2316, 0xBC);
		writebyte(0x2317, 0xCE);
	}

	if(getitem(hRemoveSpeed))
	{	writebyte(0x18A5, 0x00);
		writebyte(0x18A6, 0x00);
	}
	else
	{
		writebyte(0x18A5, 0xCD);
		writebyte(0x18A6, 0x0A);
	}

	if(getitem(hInjector))
	{
		writebyte(0x0630, 0x03);
		writeword(0x0631, 0x063D);
		writebyte(0x1520, 0x03);
		writeword(0x1521, 0x153A);
	}
	else
	{
		writebyte(0x0630, 0xC4);
		writebyte(0x0631, 0x2A);
		writebyte(0x0632, 0x08);
		writebyte(0x1520, 0x30);
		writebyte(0x1521, 0xFC);
		writebyte(0x1522, 0x32);
	}
}
