- 17
- Posts
- 17
- Years
- Seen Mar 29, 2016
Time that everyone sees how worthless I really am. I try to help others only to hurt them, btw, I have begun on adding color support to ClassicMap, but knowing that everything I do is pointless, I will just simply leave behind my c# SGBPal class for all to work with themselves, request permaban and leave (and then I shall be hated as things should be due to my autism)
Code:
public class SGBPal
{
private byte[] buffer;
private ushort[] colors;
private Color[] wincolors;
private ushort temp1;
private ushort temp2;
protected int red;
protected int green;
protected int blue;
protected int alpha;
public Color TransColor
{
get
{
temp1 = buffer[1];
temp2 = buffer[0];
temp2 = (ushort)(temp2 * 256);
temp1 = (ushort)(temp1 + temp2);
red = temp1 & 0x1F;
green = (temp1 & 0x3E0) / 32;
blue = (temp1 & 0x7C00) / 1024;
alpha = 31;
red = red * 8;
green = green * 8;
blue = blue * 8;
alpha = alpha * 8;
wincolors[0] = Color.FromArgb(alpha, red, green, blue);
return wincolors[0];
}
set
{
wincolors[0] = value;
red = wincolors[0].R / 8;
green = wincolors[0].G / 8;
blue = wincolors[0].B / 8;
temp1 = (ushort)blue;
temp1 = (ushort)((temp1 * 32) + green);
temp1 = (ushort)((temp1 * 32) + red);
temp2 = (ushort)(temp1 & 0xFF);
temp1 = (ushort)((temp1 & 0xFF00) / 256);
buffer[0] = (byte)temp1;
buffer[1] = (byte)temp2;
}
}
public Color Color1
{
get
{
temp1 = buffer[3];
temp2 = buffer[2];
temp2 = (ushort)(temp2 * 256);
temp1 = (ushort)(temp1 + temp2);
red = temp1 & 0x1F;
green = (temp1 & 0x3E0) / 32;
blue = (temp1 & 0x7C00) / 1024;
alpha = 31;
red = red * 8;
green = green * 8;
blue = blue * 8;
alpha = alpha * 8;
wincolors[1] = Color.FromArgb(alpha, red, green, blue);
return wincolors[1];
}
set
{
wincolors[1] = value;
red = wincolors[1].R / 8;
green = wincolors[1].G / 8;
blue = wincolors[1].B / 8;
temp1 = (ushort)blue;
temp1 = (ushort)((temp1 * 32) + green);
temp1 = (ushort)((temp1 * 32) + red);
temp2 = (ushort)(temp1 & 0xFF);
temp1 = (ushort)((temp1 & 0xFF00) / 256);
buffer[2] = (byte)temp1;
buffer[3] = (byte)temp2;
}
}
public Color Color2
{
get
{
temp1 = buffer[5];
temp2 = buffer[4];
temp2 = (ushort)(temp2 * 256);
temp1 = (ushort)(temp1 + temp2);
red = temp1 & 0x1F;
green = (temp1 & 0x3E0) / 32;
blue = (temp1 & 0x7C00) / 1024;
alpha = 31;
red = red * 8;
green = green * 8;
blue = blue * 8;
alpha = alpha * 8;
wincolors[2] = Color.FromArgb(alpha, red, green, blue);
return wincolors[2];
}
set
{
wincolors[2] = value;
red = wincolors[2].R / 8;
green = wincolors[2].G / 8;
blue = wincolors[2].B / 8;
temp1 = (ushort)blue;
temp1 = (ushort)((temp1 * 32) + green);
temp1 = (ushort)((temp1 * 32) + red);
temp2 = (ushort)(temp1 & 0xFF);
temp1 = (ushort)((temp1 & 0xFF00) / 256);
buffer[4] = (byte)temp1;
buffer[5] = (byte)temp2;
}
}
public Color Color3
{
get
{
temp1 = buffer[7];
temp2 = buffer[6];
temp2 = (ushort)(temp2 * 256);
temp1 = (ushort)(temp1 + temp2);
red = temp1 & 0x1F;
green = (temp1 & 0x3E0) / 32;
blue = (temp1 & 0x7C00) / 1024;
alpha = 31;
red = red * 8;
green = green * 8;
blue = blue * 8;
alpha = alpha * 8;
wincolors[3] = Color.FromArgb(alpha, red, green, blue);
return wincolors[3];
}
set
{
wincolors[3] = value;
red = wincolors[3].R / 8;
green = wincolors[3].G / 8;
blue = wincolors[3].B / 8;
temp1 = (ushort)blue;
temp1 = (ushort)((temp1 * 32) + green);
temp1 = (ushort)((temp1 * 32) + red);
temp2 = (ushort)(temp1 & 0xFF);
temp1 = (ushort)((temp1 & 0xFF00) / 256);
buffer[6] = (byte)temp1;
buffer[7] = (byte)temp2;
}
}
public void FillBuffer(byte[] bufferdata)
{
buffer = bufferdata;
}
public byte[] GetBuffer()
{
return buffer;
}
public void SGBPal(byte[] bufferdata)
{
buffer = bufferdata;
}
public void SGBPal()
{
buffer[0] = 0;
buffer[1] = 0;
buffer[2] = 0;
buffer[3] = 0;
buffer[4] = 0;
buffer[5] = 0;
buffer[6] = 0;
buffer[7] = 0;
}
public void SGBPal(Color Trans, Color c1, Color c2, Color c3)
{
wincolors[0] = Trans;
wincolors[1] = c1;
wincolors[2] = c2;
wincolors[3] = c3;
red = wincolors[0].R / 8;
green = wincolors[0].G / 8;
blue = wincolors[0].B / 8;
temp1 = (ushort)blue;
temp1 = (ushort)((temp1 * 32) + green);
temp1 = (ushort)((temp1 * 32) + red);
temp2 = (ushort)(temp1 & 0xFF);
temp1 = (ushort)((temp1 & 0xFF00) / 256);
buffer[0] = (byte)temp1;
buffer[1] = (byte)temp2;
red = wincolors[1].R / 8;
green = wincolors[1].G / 8;
blue = wincolors[1].B / 8;
temp1 = (ushort)blue;
temp1 = (ushort)((temp1 * 32) + green);
temp1 = (ushort)((temp1 * 32) + red);
temp2 = (ushort)(temp1 & 0xFF);
temp1 = (ushort)((temp1 & 0xFF00) / 256);
buffer[2] = (byte)temp1;
buffer[3] = (byte)temp2;
red = wincolors[2].R / 8;
green = wincolors[2].G / 8;
blue = wincolors[2].B / 8;
temp1 = (ushort)blue;
temp1 = (ushort)((temp1 * 32) + green);
temp1 = (ushort)((temp1 * 32) + red);
temp2 = (ushort)(temp1 & 0xFF);
temp1 = (ushort)((temp1 & 0xFF00) / 256);
buffer[4] = (byte)temp1;
buffer[5] = (byte)temp2;
red = wincolors[3].R / 8;
green = wincolors[3].G / 8;
blue = wincolors[3].B / 8;
temp1 = (ushort)blue;
temp1 = (ushort)((temp1 * 32) + green);
temp1 = (ushort)((temp1 * 32) + red);
temp2 = (ushort)(temp1 & 0xFF);
temp1 = (ushort)((temp1 & 0xFF00) / 256);
buffer[6] = (byte)temp1;
buffer[7] = (byte)temp2;
}
public void SGBPal(byte byte1, byte byte2, byte byte3, byte byte4, byte byte5, byte byte6, byte byte7, byte byte8)
{
buffer[0] = byte1;
buffer[1] = byte2;
buffer[2] = byte3;
buffer[3] = byte4;
buffer[4] = byte5;
buffer[5] = byte6;
buffer[6] = byte7;
buffer[7] = byte8;
}
};