diff --git a/bin/data/cmclient-2.grf b/bin/data/cmclient-2.grf index 3de68ee384..a36612fc25 100644 Binary files a/bin/data/cmclient-2.grf and b/bin/data/cmclient-2.grf differ diff --git a/grf/cmclient.nml b/grf/cmclient.nml index 4cad523dff..75130d7ebe 100644 --- a/grf/cmclient.nml +++ b/grf/cmclient.nml @@ -28,6 +28,7 @@ replace inner_highlight(10000, "sprites/innerhighlight00.png") { [722, 72, 64, 31, -31, -1] [ 2, 136, 20, 14, 1, 5] [ 34, 136, 20, 20, 0, 0] + [185, 125, 18, 15, -8, 7] // red recolour_sprite { @@ -450,36 +451,50 @@ replace border_highlight(10029, "sprites/borderhighlight.png") { [1194, 748, 64, 31, -31, -1] [1268, 748, 64, 31, -31, -1] [1342, 748, 64, 31, -31, -1] - // red recolour + // deep red tint recolour_sprite { 0x00: 0x2b; 0x01: 0xb5; 0x02: 0xb5; 0x03: 0xb5; 0x04: 0xa2; 0x05: 0xa2; 0x06: 0xa3; 0x07: 0xa3; 0x08: 0xa3; 0x09: 0xa3; 0x0a: 0xa3; 0x0b: 0xa3; 0x0c: 0xa5; 0x0d: 0xa5; 0x0e: 0xa5; 0x0f: 0xa5; 0x10: 0xa2; 0x11: 0xa2; 0x12: 0xa2; 0x13: 0xa3; 0x14: 0xa3; 0x15: 0xa3; 0x16: 0xa3; 0x17: 0xa5; 0x18: 0xb5; 0x19: 0xb5; 0x1a: 0xb6; 0x1b: 0xb6; 0x1c: 0xa3; 0x1d: 0xa3; 0x1e: 0xa3; 0x1f: 0xa5; 0x20: 0xb6; 0x21: 0xb6; 0x22: 0xb6; 0x23: 0xa3; 0x24: 0xa3; 0x25: 0xa3; 0x26: 0xa4; 0x27: 0xa5; 0x28: 0xb5; 0x29: 0xb6; 0x2a: 0xb6; 0x2b: 0xb6; 0x2c: 0xa3; 0x2d: 0xa3; 0x2e: 0xa4; 0x2f: 0xa4; 0x30: 0xa4; 0x31: 0xa5; 0x32: 0xb9; 0x33: 0xb9; 0x34: 0xa5; 0x35: 0xb6; 0x36: 0xb6; 0x37: 0xb6; 0x38: 0xa3; 0x39: 0xa3; 0x3a: 0xa3; 0x3b: 0xa3; 0x3c: 0xb6; 0x3d: 0xb6; 0x3e: 0xb6; 0x3f: 0xb7; 0x40: 0xb9; 0x41: 0xb9; 0x42: 0xb9; 0x43: 0xb9; 0x44: 0xa5; 0x45: 0xa5; 0x46: 0xb5; 0x47: 0xb5; 0x48: 0xb6; 0x49: 0xb6; 0x4a: 0xb6; 0x4b: 0xb7; 0x4c: 0xa3; 0x4d: 0xa3; 0x4e: 0xa3; 0x4f: 0xa4; 0x50: 0xb5; 0x51: 0xb5; 0x52: 0xb5; 0x53: 0xb5; 0x54: 0xb5; 0x55: 0xa2; 0x56: 0xa3; 0x57: 0xa3; 0x58: 0xb5; 0x59: 0xb5; 0x5a: 0xa2; 0x5b: 0xa2; 0x5c: 0xa3; 0x5d: 0xa3; 0x5e: 0xa3; 0x5f: 0xa3; 0x60: 0xb5; 0x61: 0xb5; 0x62: 0xa2; 0x63: 0xa2; 0x64: 0xa2; 0x65: 0xa3; 0x66: 0xa3; 0x67: 0xa5; 0x68: 0xb5; 0x69: 0xb5; 0x6a: 0xb6; 0x6b: 0xb6; 0x6c: 0xb6; 0x6d: 0xb6; 0x6e: 0xa3; 0x6f: 0xa3; 0x70: 0xb6; 0x71: 0xb6; 0x72: 0xb6; 0x73: 0xa3; 0x74: 0xa3; 0x75: 0xa3; 0x76: 0xa4; 0x77: 0xa4; 0x78: 0xa4; 0x79: 0xa4; 0x7a: 0xb6; 0x7b: 0xb6; 0x7c: 0xb6; 0x7d: 0xa3; 0x7e: 0xa3; 0x7f: 0xa3; 0x80: 0xb5; 0x81: 0xa2; 0x82: 0xa2; 0x83: 0xa2; 0x84: 0xa3; 0x85: 0xa3; 0x86: 0xa3; 0x87: 0xa5; 0x88: 0x2b; 0x89: 0xa2; 0x8a: 0xa2; 0x8b: 0xa3; 0x8c: 0xa3; 0x8d: 0x2d; 0x8e: 0x2d; 0x8f: 0xa5; 0x90: 0x2b; 0x91: 0x2b; 0x92: 0x2b; 0x93: 0x2b; 0x94: 0x2c; 0x95: 0x2c; 0x96: 0x2c; 0x97: 0x2d; 0x98: 0x2d; 0x99: 0xa5; 0x9a: 0x2b; 0x9b: 0xa2; 0x9c: 0xa2; 0x9d: 0xa2; 0x9e: 0xa2; 0x9f: 0xa3; 0xa0: 0x2d; 0xa1: 0xa5; 0xa2: 0xb7; 0xa3: 0xb7; 0xa4: 0xb8; 0xa5: 0xa4; 0xa6: 0xa4; 0xa7: 0xa4; 0xa8: 0xa5; 0xa9: 0xa5; 0xaa: 0xa2; 0xab: 0xa2; 0xac: 0xa3; 0xad: 0xa3; 0xae: 0xa3; 0xaf: 0xa5; 0xb0: 0xa5; 0xb1: 0xa5; 0xb2: 0xb5; 0xb3: 0xb6; 0xb4: 0xb6; 0xb5: 0xb7; 0xb6: 0xb7; 0xb7: 0xb8; 0xb8: 0xb8; 0xb9: 0xb8; 0xba: 0xb9; 0xbb: 0xb9; 0xbc: 0xb9; 0xbd: 0xb9; 0xbe: 0xb9; 0xbf: 0xba; 0xc0: 0xb9; 0xc1: 0xb9; 0xc2: 0xb9; 0xc3: 0xb9; 0xc4: 0xa4; 0xc5: 0xa5; 0xc6: 0x2b; 0xc7: 0x2b; 0xc8: 0x2b; 0xc9: 0xa2; 0xca: 0xa2; 0xcb: 0x2c; 0xcc: 0x2c; 0xcd: 0x2d; 0xce: 0xa2; 0xcf: 0xa3; 0xd0: 0xa3; 0xd1: 0xa3; 0xd2: 0xa5; 0xd3: 0xa5; 0xd4: 0xa5; 0xd5: 0x2d; 0xd6: 0xa2; 0xd7: 0xa4; 0xd8: 0xa4; 0xd9: 0xa4; 0xda: 0xa4; 0xdb: 0xa4; 0xdc: 0xa4; 0xdd: 0xa4; 0xde: 0xa4; 0xdf: 0xa4; 0xe0: 0xa4; 0xe1: 0xa4; 0xe2: 0xa4; 0xe3: 0xb6; 0xe4: 0xb6; 0xe5: 0xb6; 0xe6: 0xa3; 0xe7: 0xa4; 0xe8: 0xb8; 0xe9: 0xb8; 0xea: 0xb9; 0xeb: 0xb9; 0xec: 0xb9; 0xed: 0xb9; 0xee: 0xb9; 0xef: 0xb5; 0xf0: 0xb8; 0xf1: 0xb5; 0xf2: 0xb5; 0xf3: 0xb6; 0xf4: 0xba; 0xf5: 0xa2; 0xf6: 0xa2; 0xf7: 0xa2; 0xf8: 0xa2; 0xf9: 0xa2; 0xfa: 0xa2; 0xfb: 0xa3; 0xfc: 0xa5; 0xfd: 0xa2; 0xfe: 0xa2; 0xff: 0xa5; } - // orange recolour + // deep orange tint recolour_sprite { 0x00: 0x4c; 0x01: 0x3f; 0x02: 0x3f; 0x03: 0x40; 0x04: 0x40; 0x05: 0x40; 0x06: 0x40; 0x07: 0x40; 0x08: 0x41; 0x09: 0x41; 0x0a: 0x41; 0x0b: 0x41; 0x0c: 0xc3; 0x0d: 0xc3; 0x0e: 0xc3; 0x0f: 0xc4; 0x10: 0x40; 0x11: 0x40; 0x12: 0x40; 0x13: 0x40; 0x14: 0x41; 0x15: 0x41; 0x16: 0x41; 0x17: 0xc3; 0x18: 0x3f; 0x19: 0x40; 0x1a: 0x40; 0x1b: 0xc0; 0x1c: 0xc0; 0x1d: 0x41; 0x1e: 0x41; 0x1f: 0xc3; 0x20: 0x40; 0x21: 0x40; 0x22: 0x40; 0x23: 0xc0; 0x24: 0x41; 0x25: 0x41; 0x26: 0xc3; 0x27: 0xc3; 0x28: 0x3f; 0x29: 0x40; 0x2a: 0x40; 0x2b: 0x40; 0x2c: 0xba; 0x2d: 0xba; 0x2e: 0x41; 0x2f: 0x41; 0x30: 0xc3; 0x31: 0xc3; 0x32: 0xc2; 0x33: 0xbc; 0x34: 0xc3; 0x35: 0x40; 0x36: 0x40; 0x37: 0xc0; 0x38: 0xc0; 0x39: 0xc0; 0x3a: 0x41; 0x3b: 0x41; 0x3c: 0x3f; 0x3d: 0x40; 0x3e: 0xc0; 0x3f: 0xc0; 0x40: 0xc1; 0x41: 0xc1; 0x42: 0xc2; 0x43: 0xc2; 0x44: 0xc3; 0x45: 0xc3; 0x46: 0x3f; 0x47: 0x3f; 0x48: 0x40; 0x49: 0x40; 0x4a: 0x40; 0x4b: 0xc0; 0x4c: 0xc0; 0x4d: 0xc1; 0x4e: 0x41; 0x4f: 0x41; 0x50: 0x3f; 0x51: 0x3f; 0x52: 0x40; 0x53: 0x40; 0x54: 0x40; 0x55: 0xc0; 0x56: 0xc0; 0x57: 0xc0; 0x58: 0x3f; 0x59: 0x40; 0x5a: 0x40; 0x5b: 0x40; 0x5c: 0x40; 0x5d: 0x41; 0x5e: 0x41; 0x5f: 0x41; 0x60: 0x3f; 0x61: 0x40; 0x62: 0x40; 0x63: 0x40; 0x64: 0x40; 0x65: 0x41; 0x66: 0x41; 0x67: 0xc3; 0x68: 0x3f; 0x69: 0x3f; 0x6a: 0x40; 0x6b: 0x40; 0x6c: 0x40; 0x6d: 0xc0; 0x6e: 0xc0; 0x6f: 0xc0; 0x70: 0x40; 0x71: 0x40; 0x72: 0x40; 0x73: 0xc0; 0x74: 0xc0; 0x75: 0xc1; 0x76: 0xc1; 0x77: 0x41; 0x78: 0xc3; 0x79: 0xc3; 0x7a: 0x40; 0x7b: 0x40; 0x7c: 0x40; 0x7d: 0x40; 0x7e: 0xc0; 0x7f: 0x41; 0x80: 0x3f; 0x81: 0x40; 0x82: 0x40; 0x83: 0x40; 0x84: 0x40; 0x85: 0x41; 0x86: 0x76; 0x87: 0xc3; 0x88: 0x74; 0x89: 0x74; 0x8a: 0x75; 0x8b: 0x75; 0x8c: 0x75; 0x8d: 0x76; 0x8e: 0x76; 0x8f: 0x76; 0x90: 0x3f; 0x91: 0x74; 0x92: 0x74; 0x93: 0x74; 0x94: 0x6f; 0x95: 0x75; 0x96: 0x75; 0x97: 0x76; 0x98: 0x77; 0x99: 0x77; 0x9a: 0x40; 0x9b: 0x40; 0x9c: 0x40; 0x9d: 0x40; 0x9e: 0x75; 0x9f: 0x76; 0xa0: 0x76; 0xa1: 0xc4; 0xa2: 0xba; 0xa3: 0xba; 0xa4: 0xba; 0xa5: 0xba; 0xa6: 0xbb; 0xa7: 0xc3; 0xa8: 0xc3; 0xa9: 0xc4; 0xaa: 0x40; 0xab: 0x40; 0xac: 0x75; 0xad: 0x76; 0xae: 0x76; 0xaf: 0x77; 0xb0: 0x77; 0xb1: 0xa6; 0xb2: 0x3f; 0xb3: 0x3f; 0xb4: 0xb9; 0xb5: 0xb9; 0xb6: 0xb9; 0xb7: 0xb9; 0xb8: 0xb9; 0xb9: 0xba; 0xba: 0xba; 0xbb: 0xbb; 0xbc: 0xbb; 0xbd: 0xc2; 0xbe: 0xc2; 0xbf: 0xbc; 0xc0: 0xbb; 0xc1: 0xbb; 0xc2: 0xbb; 0xc3: 0xbb; 0xc4: 0xc3; 0xc5: 0xc3; 0xc6: 0x3f; 0xc7: 0x3f; 0xc8: 0x74; 0xc9: 0x74; 0xca: 0x75; 0xcb: 0x75; 0xcc: 0x75; 0xcd: 0x76; 0xce: 0xc0; 0xcf: 0xc0; 0xd0: 0x41; 0xd1: 0x41; 0xd2: 0xc4; 0xd3: 0xc4; 0xd4: 0x77; 0xd5: 0x76; 0xd6: 0x75; 0xd7: 0xa5; 0xd8: 0xa5; 0xd9: 0xa5; 0xda: 0xa5; 0xdb: 0xa5; 0xdc: 0xa5; 0xdd: 0xa5; 0xde: 0xa5; 0xdf: 0xa5; 0xe0: 0xa5; 0xe1: 0xa5; 0xe2: 0xa5; 0xe3: 0x40; 0xe4: 0x40; 0xe5: 0xc0; 0xe6: 0xc1; 0xe7: 0x41; 0xe8: 0xba; 0xe9: 0xba; 0xea: 0xba; 0xeb: 0xbb; 0xec: 0xbb; 0xed: 0xbb; 0xee: 0xc2; 0xef: 0x3f; 0xf0: 0xb9; 0xf1: 0x3f; 0xf2: 0x40; 0xf3: 0x40; 0xf4: 0xbc; 0xf5: 0x40; 0xf6: 0x40; 0xf7: 0x40; 0xf8: 0x40; 0xf9: 0x40; 0xfa: 0x40; 0xfb: 0x75; 0xfc: 0xc4; 0xfd: 0x75; 0xfe: 0x40; 0xff: 0xc4; } - // yellow recolour + // red tint recolour_sprite { - 0x00: 0x1d; 0x01: 0x40; 0x02: 0xc0; 0x03: 0x41; 0x04: 0x41; 0x05: 0x41; 0x06: 0x41; 0x07: 0x41; 0x08: 0x42; 0x09: 0x33; 0x0a: 0x33; 0x0b: 0x33; 0x0c: 0x33; 0x0d: 0x33; 0x0e: 0x33; 0x0f: 0x34; 0x10: 0x41; 0x11: 0x41; 0x12: 0x41; 0x13: 0x41; 0x14: 0x33; 0x15: 0x33; 0x16: 0x33; 0x17: 0x33; 0x18: 0xc0; 0x19: 0xc0; 0x1a: 0x41; 0x1b: 0x42; 0x1c: 0x42; 0x1d: 0x42; 0x1e: 0x33; 0x1f: 0x33; 0x20: 0xc0; 0x21: 0x41; 0x22: 0x41; 0x23: 0x42; 0x24: 0x42; 0x25: 0x33; 0x26: 0x33; 0x27: 0x33; 0x28: 0xc0; 0x29: 0xc0; 0x2a: 0xc0; 0x2b: 0x41; 0x2c: 0x41; 0x2d: 0xc3; 0x2e: 0xc3; 0x2f: 0x33; 0x30: 0x33; 0x31: 0x33; 0x32: 0xbe; 0x33: 0xbf; 0x34: 0x33; 0x35: 0xc0; 0x36: 0x41; 0x37: 0x42; 0x38: 0x42; 0x39: 0x42; 0x3a: 0x33; 0x3b: 0x33; 0x3c: 0xc0; 0x3d: 0xc0; 0x3e: 0x42; 0x3f: 0x42; 0x40: 0x42; 0x41: 0x43; 0x42: 0xbe; 0x43: 0xbf; 0x44: 0x33; 0x45: 0x33; 0x46: 0xc0; 0x47: 0xc0; 0x48: 0xc0; 0x49: 0x41; 0x4a: 0x41; 0x4b: 0x42; 0x4c: 0x42; 0x4d: 0x42; 0x4e: 0x42; 0x4f: 0x33; 0x50: 0x57; 0x51: 0x57; 0x52: 0x57; 0x53: 0x41; 0x54: 0x42; 0x55: 0x42; 0x56: 0x42; 0x57: 0x42; 0x58: 0x57; 0x59: 0x41; 0x5a: 0x41; 0x5b: 0x41; 0x5c: 0x42; 0x5d: 0x42; 0x5e: 0x33; 0x5f: 0x33; 0x60: 0x57; 0x61: 0x57; 0x62: 0x41; 0x63: 0x41; 0x64: 0x42; 0x65: 0x33; 0x66: 0x33; 0x67: 0x33; 0x68: 0xc0; 0x69: 0xc0; 0x6a: 0xc0; 0x6b: 0xc0; 0x6c: 0x41; 0x6d: 0x42; 0x6e: 0x42; 0x6f: 0x42; 0x70: 0xc0; 0x71: 0x41; 0x72: 0x41; 0x73: 0x42; 0x74: 0x42; 0x75: 0x42; 0x76: 0x42; 0x77: 0x33; 0x78: 0x33; 0x79: 0x33; 0x7a: 0xc0; 0x7b: 0x41; 0x7c: 0x41; 0x7d: 0x42; 0x7e: 0x42; 0x7f: 0x33; 0x80: 0x57; 0x81: 0x41; 0x82: 0x41; 0x83: 0x41; 0x84: 0x41; 0x85: 0x33; 0x86: 0x33; 0x87: 0x33; 0x88: 0x57; 0x89: 0x41; 0x8a: 0x3a; 0x8b: 0x3a; 0x8c: 0x5f; 0x8d: 0x5f; 0x8e: 0xc4; 0x8f: 0xc4; 0x90: 0x57; 0x91: 0x57; 0x92: 0x57; 0x93: 0xd0; 0x94: 0x5e; 0x95: 0xd1; 0x96: 0x5f; 0x97: 0x5f; 0x98: 0x5f; 0x99: 0x44; 0x9a: 0x57; 0x9b: 0x57; 0x9c: 0x57; 0x9d: 0x57; 0x9e: 0xd1; 0x9f: 0x5f; 0xa0: 0x33; 0xa1: 0x44; 0xa2: 0x42; 0xa3: 0x42; 0xa4: 0xbc; 0xa5: 0xc3; 0xa6: 0x33; 0xa7: 0x33; 0xa8: 0x33; 0xa9: 0x34; 0xaa: 0x41; 0xab: 0x41; 0xac: 0x41; 0xad: 0xc4; 0xae: 0xc4; 0xaf: 0xc4; 0xb0: 0xc4; 0xb1: 0x44; 0xb2: 0xc0; 0xb3: 0xc0; 0xb4: 0xc0; 0xb5: 0xc1; 0xb6: 0xc1; 0xb7: 0xc2; 0xb8: 0xc2; 0xb9: 0xbd; 0xba: 0xbd; 0xbb: 0x32; 0xbc: 0xbe; 0xbd: 0xbe; 0xbe: 0xbf; 0xbf: 0xbf; 0xc0: 0x32; 0xc1: 0x32; 0xc2: 0x43; 0xc3: 0xbe; 0xc4: 0x33; 0xc5: 0x33; 0xc6: 0x57; 0xc7: 0x57; 0xc8: 0x57; 0xc9: 0x57; 0xca: 0xd0; 0xcb: 0xd1; 0xcc: 0x5f; 0xcd: 0x5f; 0xce: 0x42; 0xcf: 0x42; 0xd0: 0x33; 0xd1: 0x33; 0xd2: 0x34; 0xd3: 0x44; 0xd4: 0x44; 0xd5: 0x5f; 0xd6: 0xd1; 0xd7: 0xa6; 0xd8: 0xa6; 0xd9: 0xa6; 0xda: 0xa6; 0xdb: 0xa6; 0xdc: 0xa6; 0xdd: 0xa6; 0xde: 0xa6; 0xdf: 0xa6; 0xe0: 0xa6; 0xe1: 0xa6; 0xe2: 0xa6; 0xe3: 0xc0; 0xe4: 0x41; 0xe5: 0x42; 0xe6: 0x42; 0xe7: 0x33; 0xe8: 0xbc; 0xe9: 0xbd; 0xea: 0xbd; 0xeb: 0x32; 0xec: 0x43; 0xed: 0xbe; 0xee: 0xbe; 0xef: 0xc0; 0xf0: 0xc2; 0xf1: 0xc0; 0xf2: 0xc0; 0xf3: 0x42; 0xf4: 0xbf; 0xf5: 0x57; 0xf6: 0x57; 0xf7: 0x57; 0xf8: 0x57; 0xf9: 0x57; 0xfa: 0x41; 0xfb: 0xd1; 0xfc: 0x34; 0xfd: 0xd1; 0xfe: 0x41; 0xff: 0x34; + 0x00: 0xab; 0x01: 0xb4; 0x02: 0x2a; 0x03: 0x2a; 0x04: 0x2b; 0x05: 0x2b; 0x06: 0xa2; 0x07: 0x2c; 0x08: 0x4c; 0x09: 0x2d; 0x0a: 0x2d; 0x0b: 0x2e; 0x0c: 0x2e; 0x0d: 0x2f; 0x0e: 0xa6; 0x0f: 0x30; 0x10: 0x2b; 0x11: 0x2b; 0x12: 0x2c; 0x13: 0x2c; 0x14: 0x2d; 0x15: 0x2d; 0x16: 0x2e; 0x17: 0x2f; 0x18: 0xb4; 0x19: 0x3e; 0x1a: 0x3e; 0x1b: 0x3e; 0x1c: 0xa2; 0x1d: 0x4c; 0x1e: 0x75; 0x1f: 0x76; 0x20: 0xb5; 0x21: 0xb5; 0x22: 0xa2; 0x23: 0xa2; 0x24: 0xa3; 0x25: 0x75; 0x26: 0xa5; 0x27: 0xa6; 0x28: 0xb4; 0x29: 0xb5; 0x2a: 0xb5; 0x2b: 0xb6; 0x2c: 0xa3; 0x2d: 0xa3; 0x2e: 0xa3; 0x2f: 0xa5; 0x30: 0xa5; 0x31: 0xa5; 0x32: 0xbb; 0x33: 0xbb; 0x34: 0xc3; 0x35: 0xb5; 0x36: 0xb5; 0x37: 0xa2; 0x38: 0xa2; 0x39: 0xa3; 0x3a: 0x75; 0x3b: 0x76; 0x3c: 0xb4; 0x3d: 0xb5; 0x3e: 0xb5; 0x3f: 0xa3; 0x40: 0xa3; 0x41: 0xb9; 0x42: 0xba; 0x43: 0xbb; 0x44: 0xc3; 0x45: 0xa6; 0x46: 0xb4; 0x47: 0xb4; 0x48: 0xb5; 0x49: 0xb5; 0x4a: 0xa2; 0x4b: 0xa2; 0x4c: 0xa3; 0x4d: 0xa3; 0x4e: 0xa3; 0x4f: 0xa5; 0x50: 0x3d; 0x51: 0x3d; 0x52: 0x3e; 0x53: 0x3e; 0x54: 0x3e; 0x55: 0x3f; 0x56: 0x3f; 0x57: 0x40; 0x58: 0x7b; 0x59: 0x49; 0x5a: 0x4a; 0x5b: 0x4b; 0x5c: 0x4b; 0x5d: 0x74; 0x5e: 0x75; 0x5f: 0x76; 0x60: 0x7b; 0x61: 0x49; 0x62: 0x4a; 0x63: 0x4b; 0x64: 0x74; 0x65: 0x4c; 0x66: 0x4e; 0x67: 0x4f; 0x68: 0xb4; 0x69: 0xb4; 0x6a: 0xb5; 0x6b: 0xb5; 0x6c: 0xb5; 0x6d: 0xa2; 0x6e: 0xa2; 0x6f: 0xa3; 0x70: 0xb5; 0x71: 0xb5; 0x72: 0xa2; 0x73: 0xa2; 0x74: 0xa3; 0x75: 0xa3; 0x76: 0xa3; 0x77: 0xa5; 0x78: 0xa5; 0x79: 0xa5; 0x7a: 0xb5; 0x7b: 0xb5; 0x7c: 0xa2; 0x7d: 0xa2; 0x7e: 0xa3; 0x7f: 0x2d; 0x80: 0x2a; 0x81: 0x2b; 0x82: 0x2b; 0x83: 0x2c; 0x84: 0x2c; 0x85: 0x2d; 0x86: 0x2e; 0x87: 0x2f; 0x88: 0x2b; 0x89: 0x2b; 0x8a: 0x2c; 0x8b: 0x2c; 0x8c: 0x2d; 0x8d: 0x2d; 0x8e: 0x2e; 0x8f: 0x2e; 0x90: 0x2a; 0x91: 0xaa; 0x92: 0xaa; 0x93: 0xab; 0x94: 0xab; 0x95: 0x84; 0x96: 0x84; 0x97: 0x08; 0x98: 0x7f; 0x99: 0x2f; 0x9a: 0x2b; 0x9b: 0x7c; 0x9c: 0x7d; 0x9d: 0x7d; 0x9e: 0x7e; 0x9f: 0x7e; 0xa0: 0x7f; 0xa1: 0x2f; 0xa2: 0xa3; 0xa3: 0xa3; 0xa4: 0xa4; 0xa5: 0xa4; 0xa6: 0xa5; 0xa7: 0xa5; 0xa8: 0xa6; 0xa9: 0xa6; 0xaa: 0x2b; 0xab: 0x2c; 0xac: 0x2c; 0xad: 0x2d; 0xae: 0x2e; 0xaf: 0x2f; 0xb0: 0x2f; 0xb1: 0x2f; 0xb2: 0xb4; 0xb3: 0xb5; 0xb4: 0xb5; 0xb5: 0xb6; 0xb6: 0xb7; 0xb7: 0xb7; 0xb8: 0xb8; 0xb9: 0xb9; 0xba: 0xb9; 0xbb: 0xb9; 0xbc: 0xba; 0xbd: 0xba; 0xbe: 0xbb; 0xbf: 0xc2; 0xc0: 0xb9; 0xc1: 0xb9; 0xc2: 0xb9; 0xc3: 0xba; 0xc4: 0xa5; 0xc5: 0xa5; 0xc6: 0x2a; 0xc7: 0x2a; 0xc8: 0x2b; 0xc9: 0x2b; 0xca: 0x2c; 0xcb: 0x7e; 0xcc: 0x7e; 0xcd: 0x7e; 0xce: 0x3f; 0xcf: 0x3f; 0xd0: 0x40; 0xd1: 0x75; 0xd2: 0x30; 0xd3: 0x2f; 0xd4: 0x2f; 0xd5: 0x2e; 0xd6: 0x7e; 0xd7: 0xa4; 0xd8: 0xa4; 0xd9: 0xa4; 0xda: 0xa4; 0xdb: 0xa4; 0xdc: 0xa4; 0xdd: 0xa4; 0xde: 0xa4; 0xdf: 0xa4; 0xe0: 0xa4; 0xe1: 0xa4; 0xe2: 0xa4; 0xe3: 0xb5; 0xe4: 0xb5; 0xe5: 0xa2; 0xe6: 0xa3; 0xe7: 0xa5; 0xe8: 0xb8; 0xe9: 0xb9; 0xea: 0xb9; 0xeb: 0xb9; 0xec: 0xb9; 0xed: 0xba; 0xee: 0xba; 0xef: 0xb4; 0xf0: 0xb8; 0xf1: 0xb4; 0xf2: 0x3e; 0xf3: 0x3e; 0xf4: 0xc2; 0xf5: 0x2b; 0xf6: 0x2b; 0xf7: 0x2b; 0xf8: 0x2b; 0xf9: 0x7d; 0xfa: 0x2c; 0xfb: 0x7e; 0xfc: 0x30; 0xfd: 0x7e; 0xfe: 0x2c; 0xff: 0x30; } - // yellow white recolour + // orange tint recolour_sprite { - 0x00: 0x15; 0x01: 0x39; 0x02: 0x3a; 0x03: 0x3a; 0x04: 0x3a; 0x05: 0x5f; 0x06: 0x5f; 0x07: 0x5f; 0x08: 0x5f; 0x09: 0x26; 0x0a: 0x26; 0x0b: 0xc5; 0x0c: 0xc5; 0x0d: 0x27; 0x0e: 0x45; 0x0f: 0x45; 0x10: 0x5e; 0x11: 0x1e; 0x12: 0x5f; 0x13: 0x5f; 0x14: 0x26; 0x15: 0x1f; 0x16: 0xc5; 0x17: 0x27; 0x18: 0x3a; 0x19: 0x3a; 0x1a: 0x3a; 0x1b: 0x5f; 0x1c: 0x5f; 0x1d: 0x5f; 0x1e: 0xc5; 0x1f: 0xc5; 0x20: 0x3a; 0x21: 0x3a; 0x22: 0x3a; 0x23: 0x5f; 0x24: 0x5f; 0x25: 0xc5; 0x26: 0xc5; 0x27: 0x44; 0x28: 0x39; 0x29: 0x3a; 0x2a: 0x3a; 0x2b: 0x77; 0x2c: 0x78; 0x2d: 0x78; 0x2e: 0x79; 0x2f: 0x79; 0x30: 0xc5; 0x31: 0xc5; 0x32: 0x33; 0x33: 0x44; 0x34: 0x34; 0x35: 0x3a; 0x36: 0x3a; 0x37: 0x5f; 0x38: 0x5f; 0x39: 0x5f; 0x3a: 0xc4; 0x3b: 0x44; 0x3c: 0x3a; 0x3d: 0x3a; 0x3e: 0x77; 0x3f: 0xc4; 0x40: 0xc4; 0x41: 0xc4; 0x42: 0x33; 0x43: 0x33; 0x44: 0x34; 0x45: 0x34; 0x46: 0x39; 0x47: 0x3a; 0x48: 0x3a; 0x49: 0x3a; 0x4a: 0x77; 0x4b: 0x78; 0x4c: 0x78; 0x4d: 0xc4; 0x4e: 0xc4; 0x4f: 0xc5; 0x50: 0x5e; 0x51: 0x5e; 0x52: 0x5e; 0x53: 0x5e; 0x54: 0x5e; 0x55: 0x5f; 0x56: 0x5f; 0x57: 0x5f; 0x58: 0x5e; 0x59: 0x5e; 0x5a: 0x5e; 0x5b: 0x5f; 0x5c: 0x5f; 0x5d: 0x5f; 0x5e: 0x5f; 0x5f: 0x44; 0x60: 0x5e; 0x61: 0x5e; 0x62: 0x5f; 0x63: 0x5f; 0x64: 0x5f; 0x65: 0x5f; 0x66: 0x1f; 0x67: 0x27; 0x68: 0x39; 0x69: 0x3a; 0x6a: 0x3a; 0x6b: 0x3a; 0x6c: 0x3a; 0x6d: 0x25; 0x6e: 0x5f; 0x6f: 0xc4; 0x70: 0x3a; 0x71: 0x3a; 0x72: 0x3a; 0x73: 0x78; 0x74: 0xc4; 0x75: 0xc4; 0x76: 0xc4; 0x77: 0xc4; 0x78: 0xc5; 0x79: 0xc5; 0x7a: 0x3a; 0x7b: 0x3a; 0x7c: 0x3a; 0x7d: 0x78; 0x7e: 0x78; 0x7f: 0x79; 0x80: 0x3a; 0x81: 0x3a; 0x82: 0x1e; 0x83: 0x1e; 0x84: 0x3b; 0x85: 0x26; 0x86: 0x1f; 0x87: 0x27; 0x88: 0x25; 0x89: 0x1e; 0x8a: 0x3b; 0x8b: 0x3b; 0x8c: 0x1f; 0x8d: 0x1f; 0x8e: 0x1f; 0x8f: 0x27; 0x90: 0x5e; 0x91: 0x5e; 0x92: 0x1e; 0x93: 0x66; 0x94: 0x66; 0x95: 0x66; 0x96: 0x66; 0x97: 0x1f; 0x98: 0x1f; 0x99: 0x27; 0x9a: 0x5e; 0x9b: 0x5e; 0x9c: 0x5f; 0x9d: 0x5f; 0x9e: 0x5f; 0x9f: 0x1f; 0xa0: 0x1f; 0xa1: 0x45; 0xa2: 0x77; 0xa3: 0xc4; 0xa4: 0xc4; 0xa5: 0xc4; 0xa6: 0xc5; 0xa7: 0xc5; 0xa8: 0xc5; 0xa9: 0x45; 0xaa: 0x25; 0xab: 0x3b; 0xac: 0x3b; 0xad: 0x26; 0xae: 0x1f; 0xaf: 0x27; 0xb0: 0x27; 0xb1: 0x27; 0xb2: 0x39; 0xb3: 0x3a; 0xb4: 0x76; 0xb5: 0x76; 0xb6: 0x77; 0xb7: 0xc3; 0xb8: 0xc3; 0xb9: 0xc4; 0xba: 0xc4; 0xbb: 0xc4; 0xbc: 0x33; 0xbd: 0x33; 0xbe: 0x33; 0xbf: 0x33; 0xc0: 0xc4; 0xc1: 0xc4; 0xc2: 0x33; 0xc3: 0xc4; 0xc4: 0x44; 0xc5: 0x44; 0xc6: 0x5e; 0xc7: 0x5e; 0xc8: 0x1e; 0xc9: 0x1e; 0xca: 0x1e; 0xcb: 0x5f; 0xcc: 0x1f; 0xcd: 0x1f; 0xce: 0x5f; 0xcf: 0x5f; 0xd0: 0x5f; 0xd1: 0x44; 0xd2: 0x45; 0xd3: 0x45; 0xd4: 0x27; 0xd5: 0x1f; 0xd6: 0x5f; 0xd7: 0x30; 0xd8: 0x30; 0xd9: 0x30; 0xda: 0x30; 0xdb: 0x30; 0xdc: 0x30; 0xdd: 0x30; 0xde: 0x30; 0xdf: 0x30; 0xe0: 0x30; 0xe1: 0x30; 0xe2: 0x30; 0xe3: 0x3a; 0xe4: 0x3a; 0xe5: 0x77; 0xe6: 0xc4; 0xe7: 0xc5; 0xe8: 0xc3; 0xe9: 0xc4; 0xea: 0xc4; 0xeb: 0xc4; 0xec: 0x33; 0xed: 0x33; 0xee: 0x33; 0xef: 0x39; 0xf0: 0xc3; 0xf1: 0x3a; 0xf2: 0x3a; 0xf3: 0x3a; 0xf4: 0x33; 0xf5: 0x1e; 0xf6: 0x1e; 0xf7: 0x1e; 0xf8: 0x1e; 0xf9: 0x1e; 0xfa: 0x5f; 0xfb: 0x5f; 0xfc: 0x45; 0xfd: 0x5f; 0xfe: 0x5f; 0xff: 0x45; + 0x00: 0xab; 0x01: 0x36; 0x02: 0x3e; 0x03: 0x37; 0x04: 0x6d; 0x05: 0x6e; 0x06: 0x74; 0x07: 0x75; 0x08: 0x75; 0x09: 0x76; 0x0a: 0x77; 0x0b: 0x77; 0x0c: 0x78; 0x0d: 0x78; 0x0e: 0x79; 0x0f: 0xc5; 0x10: 0x6d; 0x11: 0x73; 0x12: 0x6e; 0x13: 0x6f; 0x14: 0x6f; 0x15: 0x77; 0x16: 0x77; 0x17: 0x78; 0x18: 0x3e; 0x19: 0x3f; 0x1a: 0x3f; 0x1b: 0x3f; 0x1c: 0x40; 0x1d: 0x75; 0x1e: 0x76; 0x1f: 0x78; 0x20: 0x3e; 0x21: 0x3f; 0x22: 0x3f; 0x23: 0x40; 0x24: 0x75; 0x25: 0x76; 0x26: 0x77; 0x27: 0xc4; 0x28: 0x3e; 0x29: 0x3e; 0x2a: 0xa2; 0x2b: 0xa2; 0x2c: 0xa3; 0x2d: 0x75; 0x2e: 0x76; 0x2f: 0x76; 0x30: 0xa6; 0x31: 0xa6; 0x32: 0xbc; 0x33: 0xc3; 0x34: 0xc4; 0x35: 0x3e; 0x36: 0x3f; 0x37: 0x3f; 0x38: 0x40; 0x39: 0x40; 0x3a: 0x41; 0x3b: 0x77; 0x3c: 0x3e; 0x3d: 0x3f; 0x3e: 0x3f; 0x3f: 0x40; 0x40: 0xc0; 0x41: 0xc1; 0x42: 0xbc; 0x43: 0xbc; 0x44: 0xc4; 0x45: 0xc4; 0x46: 0x3e; 0x47: 0x3e; 0x48: 0x3e; 0x49: 0x3f; 0x4a: 0x3f; 0x4b: 0x40; 0x4c: 0x40; 0x4d: 0x75; 0x4e: 0x76; 0x4f: 0x76; 0x50: 0x36; 0x51: 0x3e; 0x52: 0x37; 0x53: 0x3f; 0x54: 0x3f; 0x55: 0x3f; 0x56: 0x40; 0x57: 0x40; 0x58: 0x37; 0x59: 0x37; 0x5a: 0x3f; 0x5b: 0x38; 0x5c: 0x40; 0x5d: 0x39; 0x5e: 0x41; 0x5f: 0x41; 0x60: 0x37; 0x61: 0x37; 0x62: 0x38; 0x63: 0x38; 0x64: 0x39; 0x65: 0x39; 0x66: 0x3a; 0x67: 0x78; 0x68: 0x3e; 0x69: 0x3e; 0x6a: 0x3e; 0x6b: 0x3f; 0x6c: 0x3f; 0x6d: 0x40; 0x6e: 0x40; 0x6f: 0x40; 0x70: 0x3e; 0x71: 0x3f; 0x72: 0x3f; 0x73: 0x40; 0x74: 0x40; 0x75: 0x40; 0x76: 0x41; 0x77: 0x76; 0x78: 0xc3; 0x79: 0xc4; 0x7a: 0x3e; 0x7b: 0x3f; 0x7c: 0x3f; 0x7d: 0x40; 0x7e: 0x75; 0x7f: 0x76; 0x80: 0x6d; 0x81: 0x6d; 0x82: 0x73; 0x83: 0x6e; 0x84: 0x6f; 0x85: 0x4e; 0x86: 0x77; 0x87: 0x78; 0x88: 0x7d; 0x89: 0x7d; 0x8a: 0x7e; 0x8b: 0x7e; 0x8c: 0x2e; 0x8d: 0x7f; 0x8e: 0x7f; 0x8f: 0x2f; 0x90: 0x22; 0x91: 0x05; 0x92: 0x06; 0x93: 0x06; 0x94: 0x13; 0x95: 0x13; 0x96: 0x08; 0x97: 0x09; 0x98: 0x0a; 0x99: 0x26; 0x9a: 0x22; 0x9b: 0x23; 0x9c: 0x23; 0x9d: 0x23; 0x9e: 0x24; 0x9f: 0x3a; 0xa0: 0x3b; 0xa1: 0x26; 0xa2: 0xa3; 0xa3: 0xb9; 0xa4: 0xb9; 0xa5: 0xa5; 0xa6: 0xa5; 0xa7: 0xa6; 0xa8: 0xc4; 0xa9: 0x79; 0xaa: 0x7d; 0xab: 0x4c; 0xac: 0x7e; 0xad: 0x2e; 0xae: 0x7f; 0xaf: 0x30; 0xb0: 0x30; 0xb1: 0x79; 0xb2: 0x3e; 0xb3: 0x3e; 0xb4: 0xa2; 0xb5: 0xb6; 0xb6: 0xb9; 0xb7: 0xb9; 0xb8: 0xb9; 0xb9: 0xba; 0xba: 0xba; 0xbb: 0xbb; 0xbc: 0xc2; 0xbd: 0xbc; 0xbe: 0xbd; 0xbf: 0x32; 0xc0: 0xc1; 0xc1: 0xc1; 0xc2: 0xbb; 0xc3: 0xc2; 0xc4: 0xc3; 0xc5: 0xc4; 0xc6: 0x72; 0xc7: 0x22; 0xc8: 0x23; 0xc9: 0x23; 0xca: 0x07; 0xcb: 0x07; 0xcc: 0x08; 0xcd: 0x09; 0xce: 0x40; 0xcf: 0x57; 0xd0: 0x41; 0xd1: 0x41; 0xd2: 0x79; 0xd3: 0x26; 0xd4: 0x26; 0xd5: 0x25; 0xd6: 0x1d; 0xd7: 0x2e; 0xd8: 0x2e; 0xd9: 0x2e; 0xda: 0x2e; 0xdb: 0x2e; 0xdc: 0x2e; 0xdd: 0x2e; 0xde: 0x2e; 0xdf: 0x2e; 0xe0: 0x2e; 0xe1: 0x2e; 0xe2: 0x2e; 0xe3: 0x3e; 0xe4: 0x3f; 0xe5: 0x40; 0xe6: 0x40; 0xe7: 0x76; 0xe8: 0xb9; 0xe9: 0xba; 0xea: 0xba; 0xeb: 0xbb; 0xec: 0xbb; 0xed: 0xc2; 0xee: 0xbc; 0xef: 0x3e; 0xf0: 0xb9; 0xf1: 0x3e; 0xf2: 0x3f; 0xf3: 0x3f; 0xf4: 0x32; 0xf5: 0x23; 0xf6: 0x23; 0xf7: 0x23; 0xf8: 0x23; 0xf9: 0x23; 0xfa: 0x7e; 0xfb: 0x6f; 0xfc: 0x79; 0xfd: 0x6f; 0xfe: 0x6e; 0xff: 0xc5; } - // white recolour + // yellow tint recolour_sprite { - 0x00: 0x8e; 0x01: 0x15; 0x02: 0x0a; 0x03: 0x0a; 0x04: 0x0b; 0x05: 0x0b; 0x06: 0x0c; 0x07: 0x0c; 0x08: 0x0c; 0x09: 0x0d; 0x0a: 0x0d; 0x0b: 0x0e; 0x0c: 0x0e; 0x0d: 0x0e; 0x0e: 0xa9; 0x0f: 0x0f; 0x10: 0x86; 0x11: 0x0b; 0x12: 0x16; 0x13: 0x0c; 0x14: 0x17; 0x15: 0x0d; 0x16: 0x0e; 0x17: 0x0e; 0x18: 0x0a; 0x19: 0x0a; 0x1a: 0x0b; 0x1b: 0x1f; 0x1c: 0x1f; 0x1d: 0x0c; 0x1e: 0x0d; 0x1f: 0x0e; 0x20: 0x0a; 0x21: 0x0a; 0x22: 0x0b; 0x23: 0x1f; 0x24: 0x0c; 0x25: 0x0d; 0x26: 0x0e; 0x27: 0xa9; 0x28: 0x0a; 0x29: 0x0a; 0x2a: 0x0a; 0x2b: 0x30; 0x2c: 0x30; 0x2d: 0x31; 0x2e: 0x31; 0x2f: 0xa8; 0x30: 0xa8; 0x31: 0xa9; 0x32: 0xc5; 0x33: 0x45; 0x34: 0x45; 0x35: 0x0a; 0x36: 0x3b; 0x37: 0x1f; 0x38: 0x1f; 0x39: 0x1f; 0x3a: 0x0d; 0x3b: 0x0d; 0x3c: 0x0a; 0x3d: 0x3b; 0x3e: 0x26; 0x3f: 0x26; 0x40: 0x79; 0x41: 0x27; 0x42: 0xc5; 0x43: 0xc5; 0x44: 0x45; 0x45: 0xa9; 0x46: 0x09; 0x47: 0x0a; 0x48: 0x0a; 0x49: 0x0b; 0x4a: 0x26; 0x4b: 0x1f; 0x4c: 0x1f; 0x4d: 0x31; 0x4e: 0xa8; 0x4f: 0xa8; 0x50: 0x0a; 0x51: 0x0a; 0x52: 0x66; 0x53: 0x66; 0x54: 0x66; 0x55: 0x1f; 0x56: 0x1f; 0x57: 0x1f; 0x58: 0x0a; 0x59: 0x0a; 0x5a: 0x0b; 0x5b: 0x0b; 0x5c: 0x0c; 0x5d: 0x0c; 0x5e: 0x0d; 0x5f: 0x0d; 0x60: 0x0a; 0x61: 0x0a; 0x62: 0x0b; 0x63: 0x0b; 0x64: 0x0c; 0x65: 0x17; 0x66: 0x0d; 0x67: 0x0e; 0x68: 0x0a; 0x69: 0x0a; 0x6a: 0x0a; 0x6b: 0x0a; 0x6c: 0x0b; 0x6d: 0x1f; 0x6e: 0x1f; 0x6f: 0x0c; 0x70: 0x0a; 0x71: 0x0a; 0x72: 0x0b; 0x73: 0x1f; 0x74: 0x1f; 0x75: 0x31; 0x76: 0xa8; 0x77: 0xa8; 0x78: 0xa8; 0x79: 0xa8; 0x7a: 0x0a; 0x7b: 0x0a; 0x7c: 0x0b; 0x7d: 0x1f; 0x7e: 0x0c; 0x7f: 0x0d; 0x80: 0x0a; 0x81: 0x86; 0x82: 0x16; 0x83: 0x16; 0x84: 0x0c; 0x85: 0x17; 0x86: 0x87; 0x87: 0x0e; 0x88: 0x86; 0x89: 0x86; 0x8a: 0x16; 0x8b: 0xaf; 0x8c: 0xaf; 0x8d: 0xb0; 0x8e: 0xb1; 0x8f: 0xb1; 0x90: 0x86; 0x91: 0x86; 0x92: 0xd5; 0x93: 0xa0; 0x94: 0xa0; 0x95: 0xa0; 0x96: 0xd4; 0x97: 0x99; 0x98: 0xd3; 0x99: 0xd2; 0x9a: 0x86; 0x9b: 0x16; 0x9c: 0x16; 0x9d: 0x16; 0x9e: 0x17; 0x9f: 0x17; 0xa0: 0xa1; 0xa1: 0xd2; 0xa2: 0x30; 0xa3: 0x30; 0xa4: 0xa7; 0xa5: 0x31; 0xa6: 0xa8; 0xa7: 0xa8; 0xa8: 0xa9; 0xa9: 0x0f; 0xaa: 0x86; 0xab: 0x16; 0xac: 0x0c; 0xad: 0x17; 0xae: 0xb1; 0xaf: 0xb1; 0xb0: 0xb1; 0xb1: 0x0f; 0xb2: 0x0a; 0xb3: 0x7f; 0xb4: 0x4f; 0xb5: 0x30; 0xb6: 0x30; 0xb7: 0x30; 0xb8: 0x30; 0xb9: 0xa7; 0xba: 0xa7; 0xbb: 0xc5; 0xbc: 0xc5; 0xbd: 0xc5; 0xbe: 0xc5; 0xbf: 0x34; 0xc0: 0xc5; 0xc1: 0xc5; 0xc2: 0xc5; 0xc3: 0x27; 0xc4: 0xa8; 0xc5: 0xa9; 0xc6: 0x15; 0xc7: 0x86; 0xc8: 0x86; 0xc9: 0x16; 0xca: 0xa0; 0xcb: 0xa0; 0xcc: 0xd4; 0xcd: 0x99; 0xce: 0x1f; 0xcf: 0x1f; 0xd0: 0x67; 0xd1: 0x67; 0xd2: 0x0f; 0xd3: 0xd2; 0xd4: 0xd2; 0xd5: 0xd3; 0xd6: 0x17; 0xd7: 0xb0; 0xd8: 0xb0; 0xd9: 0xb0; 0xda: 0xb0; 0xdb: 0xb0; 0xdc: 0xb0; 0xdd: 0xb0; 0xde: 0xb0; 0xdf: 0xb0; 0xe0: 0xb0; 0xe1: 0xb0; 0xe2: 0xb0; 0xe3: 0x0a; 0xe4: 0x26; 0xe5: 0x1f; 0xe6: 0x0c; 0xe7: 0xa8; 0xe8: 0xa7; 0xe9: 0xa7; 0xea: 0xa7; 0xeb: 0xc5; 0xec: 0xc5; 0xed: 0xc5; 0xee: 0xc5; 0xef: 0x0a; 0xf0: 0x30; 0xf1: 0x0a; 0xf2: 0x0a; 0xf3: 0x3b; 0xf4: 0x34; 0xf5: 0x16; 0xf6: 0x16; 0xf7: 0x16; 0xf8: 0x16; 0xf9: 0x16; 0xfa: 0x16; 0xfb: 0x17; 0xfc: 0x0f; 0xfd: 0x17; 0xfe: 0x16; 0xff: 0x0f; + 0x00: 0x84; 0x01: 0x37; 0x02: 0x56; 0x03: 0x56; 0x04: 0x38; 0x05: 0x57; 0x06: 0x39; 0x07: 0x39; 0x08: 0x3a; 0x09: 0x5f; 0x0a: 0x5f; 0x0b: 0x5f; 0x0c: 0x44; 0x0d: 0x44; 0x0e: 0x44; 0x0f: 0x34; 0x10: 0x38; 0x11: 0x57; 0x12: 0x39; 0x13: 0x5e; 0x14: 0x3a; 0x15: 0x5f; 0x16: 0x5f; 0x17: 0x44; 0x18: 0x56; 0x19: 0x56; 0x1a: 0x57; 0x1b: 0x57; 0x1c: 0x41; 0x1d: 0x41; 0x1e: 0xc4; 0x1f: 0xc4; 0x20: 0x3f; 0x21: 0x40; 0x22: 0x40; 0x23: 0x41; 0x24: 0x41; 0x25: 0xc4; 0x26: 0xc4; 0x27: 0x44; 0x28: 0x3f; 0x29: 0x3f; 0x2a: 0x40; 0x2b: 0x40; 0x2c: 0x41; 0x2d: 0x41; 0x2e: 0xc3; 0x2f: 0xc4; 0x30: 0xc4; 0x31: 0xc4; 0x32: 0xbe; 0x33: 0x33; 0x34: 0x33; 0x35: 0x3f; 0x36: 0x40; 0x37: 0x40; 0x38: 0x41; 0x39: 0x41; 0x3a: 0x41; 0x3b: 0xc4; 0x3c: 0x3f; 0x3d: 0x40; 0x3e: 0xc0; 0x3f: 0xc0; 0x40: 0x42; 0x41: 0x42; 0x42: 0x43; 0x43: 0xbe; 0x44: 0x33; 0x45: 0x34; 0x46: 0x37; 0x47: 0x3f; 0x48: 0x3f; 0x49: 0x40; 0x4a: 0x40; 0x4b: 0x41; 0x4c: 0x41; 0x4d: 0x41; 0x4e: 0xc3; 0x4f: 0xc4; 0x50: 0x55; 0x51: 0x56; 0x52: 0x56; 0x53: 0x56; 0x54: 0x57; 0x55: 0x57; 0x56: 0x57; 0x57: 0x41; 0x58: 0x56; 0x59: 0x56; 0x5a: 0x57; 0x5b: 0x57; 0x5c: 0x57; 0x5d: 0x41; 0x5e: 0xd1; 0x5f: 0x33; 0x60: 0x56; 0x61: 0x56; 0x62: 0x57; 0x63: 0x57; 0x64: 0x57; 0x65: 0xd1; 0x66: 0x5f; 0x67: 0x44; 0x68: 0x37; 0x69: 0x3f; 0x6a: 0x3f; 0x6b: 0x40; 0x6c: 0x40; 0x6d: 0x40; 0x6e: 0x41; 0x6f: 0x41; 0x70: 0x3f; 0x71: 0x40; 0x72: 0x40; 0x73: 0x41; 0x74: 0x41; 0x75: 0x41; 0x76: 0xc3; 0x77: 0xc3; 0x78: 0xc4; 0x79: 0xc4; 0x7a: 0x3f; 0x7b: 0x40; 0x7c: 0x40; 0x7d: 0x41; 0x7e: 0x41; 0x7f: 0xc4; 0x80: 0x38; 0x81: 0x38; 0x82: 0x38; 0x83: 0x39; 0x84: 0x39; 0x85: 0x3a; 0x86: 0x5f; 0x87: 0x44; 0x88: 0x1c; 0x89: 0x24; 0x8a: 0x1d; 0x8b: 0x3a; 0x8c: 0x25; 0x8d: 0x3b; 0x8e: 0x26; 0x8f: 0x26; 0x90: 0x5c; 0x91: 0x5c; 0x92: 0x64; 0x93: 0x64; 0x94: 0x65; 0x95: 0x65; 0x96: 0x65; 0x97: 0x66; 0x98: 0x5f; 0x99: 0x1f; 0x9a: 0x1c; 0x9b: 0xcf; 0x9c: 0x5d; 0x9d: 0x5d; 0x9e: 0x5e; 0x9f: 0x5f; 0xa0: 0x5f; 0xa1: 0x44; 0xa2: 0xc0; 0xa3: 0x41; 0xa4: 0xbb; 0xa5: 0xc3; 0xa6: 0xc4; 0xa7: 0xc4; 0xa8: 0x44; 0xa9: 0x44; 0xaa: 0x6e; 0xab: 0x6f; 0xac: 0x3a; 0xad: 0x25; 0xae: 0x3b; 0xaf: 0x26; 0xb0: 0xc5; 0xb1: 0xc5; 0xb2: 0x3f; 0xb3: 0x3f; 0xb4: 0x3f; 0xb5: 0x40; 0xb6: 0xba; 0xb7: 0xba; 0xb8: 0xba; 0xb9: 0xc2; 0xba: 0xbc; 0xbb: 0xbd; 0xbc: 0x32; 0xbd: 0xbe; 0xbe: 0xbe; 0xbf: 0xbf; 0xc0: 0x42; 0xc1: 0xbd; 0xc2: 0xbd; 0xc3: 0x32; 0xc4: 0x33; 0xc5: 0x33; 0xc6: 0x1c; 0xc7: 0x1c; 0xc8: 0x5c; 0xc9: 0x5d; 0xca: 0x5d; 0xcb: 0x5e; 0xcc: 0x5e; 0xcd: 0x5f; 0xce: 0x57; 0xcf: 0x57; 0xd0: 0xd1; 0xd1: 0xd1; 0xd2: 0x44; 0xd3: 0x44; 0xd4: 0x1f; 0xd5: 0x5f; 0xd6: 0x5e; 0xd7: 0x2f; 0xd8: 0x2f; 0xd9: 0x2f; 0xda: 0x2f; 0xdb: 0x2f; 0xdc: 0x2f; 0xdd: 0x2f; 0xde: 0x2f; 0xdf: 0x2f; 0xe0: 0x2f; 0xe1: 0x2f; 0xe2: 0x2f; 0xe3: 0x3f; 0xe4: 0x40; 0xe5: 0x40; 0xe6: 0x41; 0xe7: 0xc4; 0xe8: 0xbb; 0xe9: 0xc2; 0xea: 0xbc; 0xeb: 0xbc; 0xec: 0xbd; 0xed: 0x32; 0xee: 0xbe; 0xef: 0x3f; 0xf0: 0xba; 0xf1: 0x56; 0xf2: 0x56; 0xf3: 0x40; 0xf4: 0xbf; 0xf5: 0x1c; 0xf6: 0x5d; 0xf7: 0x5d; 0xf8: 0x5d; 0xf9: 0x5d; 0xfa: 0x1d; 0xfb: 0x5e; 0xfc: 0x44; 0xfd: 0x5e; 0xfe: 0x5d; 0xff: 0x34; } - // green recolour + // yellow white tint recolour_sprite { - 0x00: 0x9c; 0x01: 0x54; 0x02: 0x54; 0x03: 0x54; 0x04: 0x55; 0x05: 0xce; 0x06: 0xce; 0x07: 0xce; 0x08: 0xce; 0x09: 0xcf; 0x0a: 0xcf; 0x0b: 0xd0; 0x0c: 0xd0; 0x0d: 0xd0; 0x0e: 0xd1; 0x0f: 0xd1; 0x10: 0x55; 0x11: 0xce; 0x12: 0xce; 0x13: 0xce; 0x14: 0xcf; 0x15: 0xcf; 0x16: 0xd0; 0x17: 0xd0; 0x18: 0x54; 0x19: 0x55; 0x1a: 0x55; 0x1b: 0x55; 0x1c: 0xce; 0x1d: 0xcf; 0x1e: 0xcf; 0x1f: 0xd0; 0x20: 0x54; 0x21: 0x55; 0x22: 0x55; 0x23: 0xce; 0x24: 0xce; 0x25: 0xcf; 0x26: 0xd0; 0x27: 0xd0; 0x28: 0x54; 0x29: 0x54; 0x2a: 0x55; 0x2b: 0x55; 0x2c: 0xce; 0x2d: 0xce; 0x2e: 0xcf; 0x2f: 0xcf; 0x30: 0xd0; 0x31: 0xd0; 0x32: 0x57; 0x33: 0xd0; 0x34: 0xd0; 0x35: 0x54; 0x36: 0x55; 0x37: 0x55; 0x38: 0xce; 0x39: 0xce; 0x3a: 0xcf; 0x3b: 0xd0; 0x3c: 0x54; 0x3d: 0x55; 0x3e: 0x55; 0x3f: 0x56; 0x40: 0x56; 0x41: 0xcf; 0x42: 0x57; 0x43: 0x57; 0x44: 0xd0; 0x45: 0xd1; 0x46: 0x54; 0x47: 0x54; 0x48: 0x54; 0x49: 0x55; 0x4a: 0x55; 0x4b: 0xce; 0x4c: 0xce; 0x4d: 0xce; 0x4e: 0xcf; 0x4f: 0xcf; 0x50: 0x54; 0x51: 0x54; 0x52: 0x54; 0x53: 0x55; 0x54: 0x55; 0x55: 0xce; 0x56: 0xce; 0x57: 0xce; 0x58: 0x54; 0x59: 0x54; 0x5a: 0x55; 0x5b: 0xce; 0x5c: 0xce; 0x5d: 0xce; 0x5e: 0xcf; 0x5f: 0xd0; 0x60: 0x54; 0x61: 0x54; 0x62: 0xce; 0x63: 0xce; 0x64: 0xce; 0x65: 0xcf; 0x66: 0xd0; 0x67: 0xd0; 0x68: 0x54; 0x69: 0x54; 0x6a: 0x54; 0x6b: 0x55; 0x6c: 0x55; 0x6d: 0xce; 0x6e: 0xce; 0x6f: 0xce; 0x70: 0x54; 0x71: 0x55; 0x72: 0x55; 0x73: 0xce; 0x74: 0xce; 0x75: 0xce; 0x76: 0xcf; 0x77: 0xcf; 0x78: 0xd0; 0x79: 0xd0; 0x7a: 0x54; 0x7b: 0x55; 0x7c: 0x55; 0x7d: 0xce; 0x7e: 0xce; 0x7f: 0xcf; 0x80: 0x54; 0x81: 0xce; 0x82: 0xce; 0x83: 0xce; 0x84: 0xce; 0x85: 0xcf; 0x86: 0xd0; 0x87: 0xd0; 0x88: 0x54; 0x89: 0xce; 0x8a: 0xce; 0x8b: 0xce; 0x8c: 0xce; 0x8d: 0xcf; 0x8e: 0xcf; 0x8f: 0xd0; 0x90: 0x54; 0x91: 0x62; 0x92: 0xce; 0x93: 0xce; 0x94: 0xce; 0x95: 0xce; 0x96: 0xcf; 0x97: 0xcf; 0x98: 0xd0; 0x99: 0xd0; 0x9a: 0xce; 0x9b: 0xce; 0x9c: 0xce; 0x9d: 0xce; 0x9e: 0xce; 0x9f: 0xcf; 0xa0: 0xd0; 0xa1: 0xd1; 0xa2: 0xce; 0xa3: 0x56; 0xa4: 0x56; 0xa5: 0xcf; 0xa6: 0xd0; 0xa7: 0xd0; 0xa8: 0xd0; 0xa9: 0xd1; 0xaa: 0xce; 0xab: 0xce; 0xac: 0xce; 0xad: 0xcf; 0xae: 0xcf; 0xaf: 0xd0; 0xb0: 0xd0; 0xb1: 0xd0; 0xb2: 0x54; 0xb3: 0x54; 0xb4: 0x55; 0xb5: 0x55; 0xb6: 0x55; 0xb7: 0x55; 0xb8: 0x56; 0xb9: 0x56; 0xba: 0x56; 0xbb: 0x57; 0xbc: 0x57; 0xbd: 0x57; 0xbe: 0xd0; 0xbf: 0xd0; 0xc0: 0x56; 0xc1: 0x56; 0xc2: 0x57; 0xc3: 0xcf; 0xc4: 0xd0; 0xc5: 0xd0; 0xc6: 0x54; 0xc7: 0x54; 0xc8: 0xce; 0xc9: 0xce; 0xca: 0xce; 0xcb: 0xce; 0xcc: 0xcf; 0xcd: 0xcf; 0xce: 0xce; 0xcf: 0xce; 0xd0: 0xcf; 0xd1: 0xcf; 0xd2: 0xd1; 0xd3: 0xd0; 0xd4: 0xd0; 0xd5: 0xd0; 0xd6: 0xcf; 0xd7: 0x64; 0xd8: 0x64; 0xd9: 0x64; 0xda: 0x64; 0xdb: 0x64; 0xdc: 0x64; 0xdd: 0x64; 0xde: 0x64; 0xdf: 0x64; 0xe0: 0x64; 0xe1: 0x64; 0xe2: 0x64; 0xe3: 0x54; 0xe4: 0x55; 0xe5: 0xce; 0xe6: 0xce; 0xe7: 0xcf; 0xe8: 0x56; 0xe9: 0x56; 0xea: 0x56; 0xeb: 0x56; 0xec: 0x57; 0xed: 0x57; 0xee: 0x57; 0xef: 0x54; 0xf0: 0x56; 0xf1: 0x54; 0xf2: 0x55; 0xf3: 0x55; 0xf4: 0xd0; 0xf5: 0xce; 0xf6: 0xce; 0xf7: 0xce; 0xf8: 0xce; 0xf9: 0xce; 0xfa: 0xce; 0xfb: 0xce; 0xfc: 0xd1; 0xfd: 0xce; 0xfe: 0xce; 0xff: 0xd1; + 0x00: 0x8b; 0x01: 0x1c; 0x02: 0x1c; 0x03: 0x1c; 0x04: 0x24; 0x05: 0x1d; 0x06: 0x3a; 0x07: 0x1e; 0x08: 0x1e; 0x09: 0x3b; 0x0a: 0x1f; 0x0b: 0x1f; 0x0c: 0x27; 0x0d: 0x27; 0x0e: 0x45; 0x0f: 0x45; 0x10: 0x5d; 0x11: 0x1d; 0x12: 0x5e; 0x13: 0x1e; 0x14: 0x1e; 0x15: 0x1f; 0x16: 0x1f; 0x17: 0x27; 0x18: 0x38; 0x19: 0x38; 0x1a: 0x39; 0x1b: 0x39; 0x1c: 0x3a; 0x1d: 0x5f; 0x1e: 0x26; 0x1f: 0xc5; 0x20: 0x38; 0x21: 0x39; 0x22: 0x39; 0x23: 0x3a; 0x24: 0x25; 0x25: 0x26; 0x26: 0xc5; 0x27: 0xc5; 0x28: 0x6e; 0x29: 0x74; 0x2a: 0x74; 0x2b: 0x75; 0x2c: 0x76; 0x2d: 0x77; 0x2e: 0x78; 0x2f: 0x79; 0x30: 0x79; 0x31: 0xc5; 0x32: 0x33; 0x33: 0x33; 0x34: 0x34; 0x35: 0x38; 0x36: 0x39; 0x37: 0x39; 0x38: 0x3a; 0x39: 0x25; 0x3a: 0x3b; 0x3b: 0x26; 0x3c: 0x38; 0x3d: 0x38; 0x3e: 0x39; 0x3f: 0x41; 0x40: 0x41; 0x41: 0xc3; 0x42: 0x33; 0x43: 0x33; 0x44: 0x34; 0x45: 0x45; 0x46: 0x38; 0x47: 0x38; 0x48: 0x6e; 0x49: 0x39; 0x4a: 0x39; 0x4b: 0x76; 0x4c: 0x77; 0x4d: 0x77; 0x4e: 0x78; 0x4f: 0x79; 0x50: 0x1c; 0x51: 0xce; 0x52: 0x57; 0x53: 0x57; 0x54: 0x57; 0x55: 0x57; 0x56: 0xd0; 0x57: 0xd1; 0x58: 0x1c; 0x59: 0x5d; 0x5a: 0x5d; 0x5b: 0x1d; 0x5c: 0x5e; 0x5d: 0x5f; 0x5e: 0x5f; 0x5f: 0x5f; 0x60: 0x1c; 0x61: 0x5d; 0x62: 0x5d; 0x63: 0x5e; 0x64: 0x5e; 0x65: 0x5f; 0x66: 0x1f; 0x67: 0x1f; 0x68: 0x1c; 0x69: 0x38; 0x6a: 0x38; 0x6b: 0x39; 0x6c: 0x39; 0x6d: 0x39; 0x6e: 0x3a; 0x6f: 0x25; 0x70: 0x38; 0x71: 0x39; 0x72: 0x39; 0x73: 0x3a; 0x74: 0x77; 0x75: 0x77; 0x76: 0x78; 0x77: 0x78; 0x78: 0x79; 0x79: 0xc5; 0x7a: 0x38; 0x7b: 0x39; 0x7c: 0x39; 0x7d: 0x3a; 0x7e: 0x25; 0x7f: 0x26; 0x80: 0x5d; 0x81: 0x5d; 0x82: 0x1d; 0x83: 0x1d; 0x84: 0x1e; 0x85: 0x1e; 0x86: 0x1f; 0x87: 0x27; 0x88: 0x07; 0x89: 0x08; 0x8a: 0x09; 0x8b: 0x15; 0x8c: 0x86; 0x8d: 0x86; 0x8e: 0x0c; 0x8f: 0x0c; 0x90: 0x07; 0x91: 0x13; 0x92: 0x13; 0x93: 0xd6; 0x94: 0xd6; 0x95: 0x9f; 0x96: 0x9f; 0x97: 0xa0; 0x98: 0x67; 0x99: 0x0d; 0x9a: 0x64; 0x9b: 0x64; 0x9c: 0x65; 0x9d: 0x65; 0x9e: 0x66; 0x9f: 0x66; 0xa0: 0x67; 0xa1: 0x45; 0xa2: 0x76; 0xa3: 0x76; 0xa4: 0xa5; 0xa5: 0xa6; 0xa6: 0xc4; 0xa7: 0xc5; 0xa8: 0x27; 0xa9: 0x45; 0xaa: 0x08; 0xab: 0x08; 0xac: 0x09; 0xad: 0x0a; 0xae: 0x0b; 0xaf: 0x0d; 0xb0: 0x0d; 0xb1: 0xa8; 0xb2: 0x6e; 0xb3: 0x74; 0xb4: 0x74; 0xb5: 0x75; 0xb6: 0x75; 0xb7: 0xa5; 0xb8: 0xa5; 0xb9: 0xc3; 0xba: 0xc3; 0xbb: 0xc3; 0xbc: 0xc3; 0xbd: 0x33; 0xbe: 0x33; 0xbf: 0x33; 0xc0: 0xc3; 0xc1: 0xc3; 0xc2: 0xc3; 0xc3: 0xc4; 0xc4: 0xc4; 0xc5: 0xc5; 0xc6: 0x07; 0xc7: 0x07; 0xc8: 0x07; 0xc9: 0x08; 0xca: 0x65; 0xcb: 0x66; 0xcc: 0x66; 0xcd: 0x66; 0xce: 0x5e; 0xcf: 0xd1; 0xd0: 0xd1; 0xd1: 0x5f; 0xd2: 0x45; 0xd3: 0x45; 0xd4: 0x0d; 0xd5: 0x67; 0xd6: 0x66; 0xd7: 0x30; 0xd8: 0x30; 0xd9: 0x30; 0xda: 0x30; 0xdb: 0x30; 0xdc: 0x30; 0xdd: 0x30; 0xde: 0x30; 0xdf: 0x30; 0xe0: 0x30; 0xe1: 0x30; 0xe2: 0x30; 0xe3: 0x38; 0xe4: 0x39; 0xe5: 0x76; 0xe6: 0x77; 0xe7: 0x78; 0xe8: 0xc3; 0xe9: 0xc3; 0xea: 0xc3; 0xeb: 0xc3; 0xec: 0xc3; 0xed: 0x33; 0xee: 0x33; 0xef: 0x6e; 0xf0: 0xa5; 0xf1: 0x38; 0xf2: 0x38; 0xf3: 0x57; 0xf4: 0x33; 0xf5: 0x08; 0xf6: 0x08; 0xf7: 0x08; 0xf8: 0x65; 0xf9: 0x65; 0xfa: 0x09; 0xfb: 0x0a; 0xfc: 0x45; 0xfd: 0x0a; 0xfe: 0x09; 0xff: 0x45; } + // white tint + recolour_sprite { + 0x00: 0x8d; 0x01: 0x07; 0x02: 0x07; 0x03: 0x08; 0x04: 0x08; 0x05: 0x09; 0x06: 0x0a; 0x07: 0x0a; 0x08: 0x0b; 0x09: 0x0b; 0x0a: 0x0c; 0x0b: 0x0d; 0x0c: 0x0d; 0x0d: 0x0e; 0x0e: 0xa9; 0x0f: 0x0f; 0x10: 0x14; 0x11: 0x09; 0x12: 0x15; 0x13: 0x86; 0x14: 0x16; 0x15: 0x0c; 0x16: 0x17; 0x17: 0x0e; 0x18: 0x07; 0x19: 0x1d; 0x1a: 0x1d; 0x1b: 0x3a; 0x1c: 0x1e; 0x1d: 0x1f; 0x1e: 0x1f; 0x1f: 0x0d; 0x20: 0x24; 0x21: 0x1d; 0x22: 0x25; 0x23: 0x1e; 0x24: 0x3b; 0x25: 0x1f; 0x26: 0x27; 0x27: 0xa8; 0x28: 0x7e; 0x29: 0x7e; 0x2a: 0x7e; 0x2b: 0x7f; 0x2c: 0x7f; 0x2d: 0x30; 0x2e: 0x30; 0x2f: 0x31; 0x30: 0x31; 0x31: 0xa8; 0x32: 0xc4; 0x33: 0x44; 0x34: 0x45; 0x35: 0x24; 0x36: 0x1d; 0x37: 0x3a; 0x38: 0x1e; 0x39: 0x3b; 0x3a: 0x1f; 0x3b: 0x1f; 0x3c: 0x24; 0x3d: 0x24; 0x3e: 0x3a; 0x3f: 0x25; 0x40: 0x78; 0x41: 0x78; 0x42: 0xc4; 0x43: 0x44; 0x44: 0x45; 0x45: 0xa9; 0x46: 0x07; 0x47: 0x24; 0x48: 0x24; 0x49: 0x7f; 0x4a: 0x7f; 0x4b: 0x7f; 0x4c: 0x4f; 0x4d: 0x26; 0x4e: 0x26; 0x4f: 0x31; 0x50: 0x64; 0x51: 0x64; 0x52: 0x5d; 0x53: 0x5d; 0x54: 0x5e; 0x55: 0x5e; 0x56: 0x5e; 0x57: 0x5f; 0x58: 0x07; 0x59: 0x08; 0x5a: 0x09; 0x5b: 0x09; 0x5c: 0x1e; 0x5d: 0x0a; 0x5e: 0x1f; 0x5f: 0x1f; 0x60: 0x64; 0x61: 0x08; 0x62: 0x09; 0x63: 0x15; 0x64: 0x66; 0x65: 0x0b; 0x66: 0x67; 0x67: 0x0d; 0x68: 0x07; 0x69: 0x07; 0x6a: 0x24; 0x6b: 0x24; 0x6c: 0x3a; 0x6d: 0x25; 0x6e: 0x1e; 0x6f: 0x26; 0x70: 0x24; 0x71: 0x1d; 0x72: 0x7f; 0x73: 0x7f; 0x74: 0x4f; 0x75: 0x26; 0x76: 0x26; 0x77: 0x79; 0x78: 0x27; 0x79: 0xa8; 0x7a: 0x24; 0x7b: 0x24; 0x7c: 0x7f; 0x7d: 0x7f; 0x7e: 0x3b; 0x7f: 0x0c; 0x80: 0x08; 0x81: 0x14; 0x82: 0x85; 0x83: 0x15; 0x84: 0x15; 0x85: 0x16; 0x86: 0x17; 0x87: 0x0e; 0x88: 0x85; 0x89: 0x85; 0x8a: 0xae; 0x8b: 0xae; 0x8c: 0xae; 0x8d: 0x8f; 0x8e: 0xaf; 0x8f: 0xb1; 0x90: 0x9e; 0x91: 0xd6; 0x92: 0xd6; 0x93: 0xcd; 0x94: 0xcd; 0x95: 0xcd; 0x96: 0x98; 0x97: 0xa0; 0x98: 0x99; 0x99: 0xa1; 0x9a: 0x14; 0x9b: 0x14; 0x9c: 0x9f; 0x9d: 0x9f; 0x9e: 0xd5; 0x9f: 0xa0; 0xa0: 0xd4; 0xa1: 0xd2; 0xa2: 0x4f; 0xa3: 0x2f; 0xa4: 0xa6; 0xa5: 0x30; 0xa6: 0x31; 0xa7: 0xa8; 0xa8: 0xa9; 0xa9: 0xa9; 0xaa: 0x85; 0xab: 0x85; 0xac: 0xae; 0xad: 0x86; 0xae: 0xaf; 0xaf: 0xb1; 0xb0: 0xb1; 0xb1: 0xb1; 0xb2: 0x7e; 0xb3: 0x7e; 0xb4: 0x4d; 0xb5: 0x4d; 0xb6: 0x2e; 0xb7: 0xa5; 0xb8: 0xa5; 0xb9: 0xa6; 0xba: 0xc4; 0xbb: 0xc4; 0xbc: 0xc4; 0xbd: 0xc4; 0xbe: 0x44; 0xbf: 0x34; 0xc0: 0x78; 0xc1: 0xc4; 0xc2: 0xc4; 0xc3: 0xc5; 0xc4: 0xc5; 0xc5: 0xa8; 0xc6: 0x13; 0xc7: 0x85; 0xc8: 0x85; 0xc9: 0x85; 0xca: 0x9f; 0xcb: 0xd5; 0xcc: 0xa0; 0xcd: 0xa0; 0xce: 0x5f; 0xcf: 0x5f; 0xd0: 0x5f; 0xd1: 0x1f; 0xd2: 0xd2; 0xd3: 0xd2; 0xd4: 0xd3; 0xd5: 0xd4; 0xd6: 0xa0; 0xd7: 0xaf; 0xd8: 0xaf; 0xd9: 0xaf; 0xda: 0xaf; 0xdb: 0xaf; 0xdc: 0xaf; 0xdd: 0xaf; 0xde: 0xaf; 0xdf: 0xaf; 0xe0: 0xaf; 0xe1: 0xaf; 0xe2: 0xaf; 0xe3: 0x24; 0xe4: 0x24; 0xe5: 0x7f; 0xe6: 0x26; 0xe7: 0x1f; 0xe8: 0xa6; 0xe9: 0xa6; 0xea: 0xa6; 0xeb: 0xc4; 0xec: 0xc4; 0xed: 0xc4; 0xee: 0xc4; 0xef: 0x7e; 0xf0: 0xa5; 0xf1: 0x5d; 0xf2: 0x1d; 0xf3: 0x1d; 0xf4: 0x34; 0xf5: 0x85; 0xf6: 0x85; 0xf7: 0x85; 0xf8: 0x85; 0xf9: 0x85; 0xfa: 0x15; 0xfb: 0x16; 0xfc: 0xd2; 0xfd: 0x86; 0xfe: 0x15; 0xff: 0x0f; + } + + // green tint + recolour_sprite { + 0x00: 0xca; 0x01: 0x52; 0x02: 0x53; 0x03: 0x54; 0x04: 0x54; 0x05: 0xce; 0x06: 0xce; 0x07: 0xce; 0x08: 0xcf; 0x09: 0xcf; 0x0a: 0xd0; 0x0b: 0xd0; 0x0c: 0xd1; 0x0d: 0xd1; 0x0e: 0xd1; 0x0f: 0x5f; 0x10: 0x54; 0x11: 0xce; 0x12: 0xce; 0x13: 0xce; 0x14: 0xcf; 0x15: 0xd0; 0x16: 0xd0; 0x17: 0xd1; 0x18: 0x53; 0x19: 0x54; 0x1a: 0x54; 0x1b: 0x55; 0x1c: 0xce; 0x1d: 0xcf; 0x1e: 0xd0; 0x1f: 0xd1; 0x20: 0x54; 0x21: 0x54; 0x22: 0x55; 0x23: 0xce; 0x24: 0xcf; 0x25: 0xd0; 0x26: 0xd0; 0x27: 0xd1; 0x28: 0x53; 0x29: 0x53; 0x2a: 0x54; 0x2b: 0x55; 0x2c: 0xce; 0x2d: 0xce; 0x2e: 0xcf; 0x2f: 0xd0; 0x30: 0x5e; 0x31: 0xd1; 0x32: 0x57; 0x33: 0xd1; 0x34: 0xd1; 0x35: 0x54; 0x36: 0x54; 0x37: 0x55; 0x38: 0xce; 0x39: 0xcf; 0x3a: 0xcf; 0x3b: 0xd0; 0x3c: 0x53; 0x3d: 0x54; 0x3e: 0x55; 0x3f: 0x56; 0x40: 0x56; 0x41: 0x57; 0x42: 0x57; 0x43: 0x57; 0x44: 0xd1; 0x45: 0xd1; 0x46: 0x52; 0x47: 0x53; 0x48: 0x54; 0x49: 0x54; 0x4a: 0x55; 0x4b: 0x56; 0x4c: 0xce; 0x4d: 0xcf; 0x4e: 0xcf; 0x4f: 0xd0; 0x50: 0x53; 0x51: 0x53; 0x52: 0x54; 0x53: 0x54; 0x54: 0x55; 0x55: 0x55; 0x56: 0xce; 0x57: 0xce; 0x58: 0x53; 0x59: 0x54; 0x5a: 0x54; 0x5b: 0xce; 0x5c: 0xce; 0x5d: 0xcf; 0x5e: 0xcf; 0x5f: 0xd0; 0x60: 0x53; 0x61: 0x54; 0x62: 0xce; 0x63: 0xce; 0x64: 0xce; 0x65: 0xcf; 0x66: 0xd0; 0x67: 0xd1; 0x68: 0x53; 0x69: 0x53; 0x6a: 0x54; 0x6b: 0x54; 0x6c: 0x55; 0x6d: 0x55; 0x6e: 0xce; 0x6f: 0xcf; 0x70: 0x54; 0x71: 0x54; 0x72: 0x55; 0x73: 0xce; 0x74: 0xce; 0x75: 0xcf; 0x76: 0xcf; 0x77: 0xd0; 0x78: 0xd0; 0x79: 0xd1; 0x7a: 0x54; 0x7b: 0x54; 0x7c: 0x55; 0x7d: 0xce; 0x7e: 0xce; 0x7f: 0xcf; 0x80: 0x54; 0x81: 0x62; 0x82: 0x62; 0x83: 0xce; 0x84: 0xce; 0x85: 0xcf; 0x86: 0xd0; 0x87: 0xd1; 0x88: 0x62; 0x89: 0x62; 0x8a: 0x63; 0x8b: 0x64; 0x8c: 0x9e; 0x8d: 0xd6; 0x8e: 0x65; 0x8f: 0x65; 0x90: 0x61; 0x91: 0x9b; 0x92: 0x9b; 0x93: 0x9c; 0x94: 0x9d; 0x95: 0x9d; 0x96: 0x9e; 0x97: 0xd6; 0x98: 0xd6; 0x99: 0x66; 0x9a: 0x62; 0x9b: 0x62; 0x9c: 0x63; 0x9d: 0xce; 0x9e: 0xcf; 0x9f: 0xd0; 0xa0: 0xd1; 0xa1: 0x66; 0xa2: 0x56; 0xa3: 0x56; 0xa4: 0x38; 0xa5: 0x57; 0xa6: 0xd0; 0xa7: 0xd1; 0xa8: 0xd1; 0xa9: 0xd1; 0xaa: 0x62; 0xab: 0x63; 0xac: 0x63; 0xad: 0x64; 0xae: 0x65; 0xaf: 0x66; 0xb0: 0x66; 0xb1: 0x66; 0xb2: 0x53; 0xb3: 0x53; 0xb4: 0x54; 0xb5: 0x1b; 0xb6: 0x37; 0xb7: 0x3f; 0xb8: 0x3f; 0xb9: 0x40; 0xba: 0x57; 0xbb: 0x57; 0xbc: 0x57; 0xbd: 0x57; 0xbe: 0x57; 0xbf: 0xd0; 0xc0: 0x57; 0xc1: 0x57; 0xc2: 0x57; 0xc3: 0x57; 0xc4: 0xd1; 0xc5: 0xd1; 0xc6: 0x61; 0xc7: 0x62; 0xc8: 0x62; 0xc9: 0x62; 0xca: 0x9d; 0xcb: 0x9d; 0xcc: 0x9e; 0xcd: 0xd6; 0xce: 0xce; 0xcf: 0xcf; 0xd0: 0xcf; 0xd1: 0xd0; 0xd2: 0x66; 0xd3: 0x66; 0xd4: 0xd1; 0xd5: 0x65; 0xd6: 0xcf; 0xd7: 0x08; 0xd8: 0x08; 0xd9: 0x08; 0xda: 0x08; 0xdb: 0x08; 0xdc: 0x85; 0xdd: 0x85; 0xde: 0x85; 0xdf: 0x85; 0xe0: 0x85; 0xe1: 0x85; 0xe2: 0x85; 0xe3: 0x53; 0xe4: 0x54; 0xe5: 0x55; 0xe6: 0xce; 0xe7: 0xd0; 0xe8: 0x40; 0xe9: 0x40; 0xea: 0x57; 0xeb: 0x57; 0xec: 0x57; 0xed: 0x57; 0xee: 0x57; 0xef: 0x53; 0xf0: 0x3f; 0xf1: 0x53; 0xf2: 0x54; 0xf3: 0x54; 0xf4: 0xd1; 0xf5: 0x62; 0xf6: 0x62; 0xf7: 0x62; 0xf8: 0x62; 0xf9: 0x63; 0xfa: 0x63; 0xfb: 0x64; 0xfc: 0x66; 0xfd: 0x64; 0xfe: 0x63; 0xff: 0x5f; + } + + // cyan tint + recolour_sprite { + 0x00: 0x94; 0x01: 0x9b; 0x02: 0x9c; 0x03: 0x9d; 0x04: 0x9d; 0x05: 0x9e; 0x06: 0x9e; 0x07: 0xd6; 0x08: 0xd6; 0x09: 0x9f; 0x0a: 0x9f; 0x0b: 0xd5; 0x0c: 0xd5; 0x0d: 0xa0; 0x0e: 0xa0; 0x0f: 0x99; 0x10: 0x9d; 0x11: 0x9e; 0x12: 0x9e; 0x13: 0xd6; 0x14: 0x9f; 0x15: 0xcd; 0x16: 0xd5; 0x17: 0x98; 0x18: 0x9c; 0x19: 0x9d; 0x1a: 0x9d; 0x1b: 0x64; 0x1c: 0x9e; 0x1d: 0xd6; 0x1e: 0x9f; 0x1f: 0xd5; 0x20: 0x9d; 0x21: 0x9d; 0x22: 0x9e; 0x23: 0x9e; 0x24: 0xd6; 0x25: 0x9f; 0x26: 0xd5; 0x27: 0xa0; 0x28: 0x9c; 0x29: 0x9c; 0x2a: 0x9d; 0x2b: 0x13; 0x2c: 0x9e; 0x2d: 0xd6; 0x2e: 0x9f; 0x2f: 0x9f; 0x30: 0xd5; 0x31: 0xa0; 0x32: 0xd1; 0x33: 0x5f; 0x34: 0x67; 0x35: 0x9d; 0x36: 0x63; 0x37: 0x64; 0x38: 0x65; 0x39: 0x65; 0x3a: 0x9f; 0x3b: 0x9f; 0x3c: 0x9c; 0x3d: 0x63; 0x3e: 0x64; 0x3f: 0x64; 0x40: 0x65; 0x41: 0x5e; 0x42: 0xd1; 0x43: 0xd1; 0x44: 0x67; 0x45: 0xd4; 0x46: 0x9b; 0x47: 0x9c; 0x48: 0x9d; 0x49: 0x9d; 0x4a: 0x64; 0x4b: 0x9e; 0x4c: 0x65; 0x4d: 0x65; 0x4e: 0x9f; 0x4f: 0x9f; 0x50: 0x9c; 0x51: 0x9c; 0x52: 0x9d; 0x53: 0x9d; 0x54: 0x9d; 0x55: 0x64; 0x56: 0x64; 0x57: 0x65; 0x58: 0x9c; 0x59: 0x9d; 0x5a: 0x9d; 0x5b: 0x9e; 0x5c: 0x9e; 0x5d: 0xd6; 0x5e: 0x9f; 0x5f: 0x66; 0x60: 0x9c; 0x61: 0x9d; 0x62: 0x9d; 0x63: 0x9e; 0x64: 0xd6; 0x65: 0xd6; 0x66: 0xcd; 0x67: 0xd5; 0x68: 0x9c; 0x69: 0x9c; 0x6a: 0x9d; 0x6b: 0x9d; 0x6c: 0x9d; 0x6d: 0x64; 0x6e: 0x9e; 0x6f: 0xd6; 0x70: 0x9d; 0x71: 0x9d; 0x72: 0x64; 0x73: 0x9e; 0x74: 0x65; 0x75: 0x65; 0x76: 0x65; 0x77: 0x66; 0x78: 0x66; 0x79: 0x66; 0x7a: 0x9c; 0x7b: 0x9d; 0x7c: 0x64; 0x7d: 0x9e; 0x7e: 0xd6; 0x7f: 0x9f; 0x80: 0x9d; 0x81: 0x9d; 0x82: 0xcb; 0x83: 0x9e; 0x84: 0xd6; 0x85: 0xcd; 0x86: 0xd5; 0x87: 0x98; 0x88: 0xca; 0x89: 0xcb; 0x8a: 0xcc; 0x8b: 0xcc; 0x8c: 0x96; 0x8d: 0x97; 0x8e: 0x97; 0x8f: 0x98; 0x90: 0xca; 0x91: 0x94; 0x92: 0x95; 0x93: 0x95; 0x94: 0x95; 0x95: 0x96; 0x96: 0x96; 0x97: 0x97; 0x98: 0x97; 0x99: 0x98; 0x9a: 0xca; 0x9b: 0xcb; 0x9c: 0xcb; 0x9d: 0xcb; 0x9e: 0xcc; 0x9f: 0xcd; 0xa0: 0x98; 0xa1: 0x98; 0xa2: 0x13; 0xa3: 0x08; 0xa4: 0x08; 0xa5: 0x09; 0xa6: 0x66; 0xa7: 0xa0; 0xa8: 0xa0; 0xa9: 0xd4; 0xaa: 0xca; 0xab: 0xcb; 0xac: 0xcc; 0xad: 0xcc; 0xae: 0xcd; 0xaf: 0x98; 0xb0: 0x98; 0xb1: 0x98; 0xb2: 0x9c; 0xb3: 0x9c; 0xb4: 0x12; 0xb5: 0x06; 0xb6: 0x06; 0xb7: 0x07; 0xb8: 0x7e; 0xb9: 0x1d; 0xba: 0x5e; 0xbb: 0x5e; 0xbc: 0x5e; 0xbd: 0xd1; 0xbe: 0xd1; 0xbf: 0xd1; 0xc0: 0x5e; 0xc1: 0x5e; 0xc2: 0x5e; 0xc3: 0x5f; 0xc4: 0x66; 0xc5: 0x67; 0xc6: 0xca; 0xc7: 0xca; 0xc8: 0x95; 0xc9: 0x95; 0xca: 0x95; 0xcb: 0x96; 0xcc: 0x96; 0xcd: 0x97; 0xce: 0x9e; 0xcf: 0xd6; 0xd0: 0x65; 0xd1: 0x9f; 0xd2: 0x98; 0xd3: 0x98; 0xd4: 0x98; 0xd5: 0xcd; 0xd6: 0xcc; 0xd7: 0x8d; 0xd8: 0x8d; 0xd9: 0x8d; 0xda: 0x8d; 0xdb: 0x8d; 0xdc: 0x8d; 0xdd: 0x8d; 0xde: 0x8d; 0xdf: 0x8d; 0xe0: 0x8d; 0xe1: 0x8d; 0xe2: 0x8d; 0xe3: 0x9c; 0xe4: 0x9d; 0xe5: 0x9e; 0xe6: 0x65; 0xe7: 0x9f; 0xe8: 0x1d; 0xe9: 0x1d; 0xea: 0x5e; 0xeb: 0x5e; 0xec: 0x5e; 0xed: 0xd1; 0xee: 0xd1; 0xef: 0x9c; 0xf0: 0x7e; 0xf1: 0x9c; 0xf2: 0x9d; 0xf3: 0x63; 0xf4: 0xd1; 0xf5: 0xcb; 0xf6: 0xcb; 0xf7: 0xcb; 0xf8: 0xcb; 0xf9: 0xcb; 0xfa: 0xcc; 0xfb: 0xcc; 0xfc: 0x98; 0xfd: 0xcc; 0xfe: 0xcb; 0xff: 0x99; + } } diff --git a/grf/recolourgen.py b/grf/recolourgen.py index a4dbc19db6..75d4d99b8f 100644 --- a/grf/recolourgen.py +++ b/grf/recolourgen.py @@ -59,9 +59,12 @@ for _ in range(256): # if c in SAFE_COLORS: colors.append((int(i), c)) -gen_recolor(spectra.rgb(1, 0, 0), 0.6, "red recolour") -gen_recolor(spectra.rgb(1, 0.5, 0), 0.65, "orange recolour") -gen_recolor(spectra.rgb(1.0, 1.0, 0), 0.6, "yellow recolour") -gen_recolor(spectra.rgb(1.0, 1.0, 0.5), 0.6, "yellow white recolour") -gen_recolor(spectra.rgb(1.0, 1.0, 1.0), 0.6, "white recolour") -gen_recolor(spectra.rgb(0, 1.0, 0), 0.6, "green recolour") +gen_recolor(spectra.rgb(1, 0, 0), 0.6, "deep red tint") +gen_recolor(spectra.rgb(1, 0.5, 0), 0.65, "deep orange tint") +gen_recolor(spectra.rgb(1, 0, 0), 0.4, "red tint") +gen_recolor(spectra.rgb(1, 0.5, 0), 0.4, "orange tint") +gen_recolor(spectra.rgb(1.0, 1.0, 0), 0.4, "yellow tint") +gen_recolor(spectra.rgb(1.0, 1.0, 0.5), 0.4, "yellow white tint") +gen_recolor(spectra.rgb(1.0, 1.0, 1.0), 0.4, "white tint") +gen_recolor(spectra.rgb(0, 1.0, 0), 0.4, "green tint") +gen_recolor(spectra.rgb(0, 1.0, 1.0), 0.4, "cyan tint") diff --git a/grf/sprites/innerhighlight00.png b/grf/sprites/innerhighlight00.png index 50698bbe79..f280035d1d 100644 Binary files a/grf/sprites/innerhighlight00.png and b/grf/sprites/innerhighlight00.png differ diff --git a/src/citymania/zoning.cpp b/src/citymania/zoning.cpp index 38c06d2930..fb0d0e736e 100644 --- a/src/citymania/zoning.cpp +++ b/src/citymania/zoning.cpp @@ -49,23 +49,84 @@ void DrawBorderSprites(const TileInfo *ti, ZoningBorder border, SpriteID color) DrawSelectionSprite(tile_sprite + 18, color, ti, 7, FOUNDATION_PART_NORMAL); } +SpriteID GetIndustryZoningPalette(TileIndex tile) { + if (!IsTileType(tile, MP_INDUSTRY)) return PAL_NONE; + Industry *ind = Industry::GetByTile(tile); + auto n_produced = 0; + auto n_serviced = 0; + for (auto j = 0; j < INDUSTRY_NUM_OUTPUTS; j++) { + if (ind->produced_cargo[j] == CT_INVALID) continue; + if (ind->last_month_production[j] == 0 && ind->this_month_production[j] == 0) continue; + n_produced++; + if (ind->last_month_transported[j] > 0 || ind->last_month_transported[j] > 0) + n_serviced++; + } + if (n_serviced < n_produced) + return (n_serviced == 0 ? PALETTE_TINT_RED_DEEP : PALETTE_TINT_ORANGE_DEEP); + return PAL_NONE; +} + TileHighlight GetTileHighlight(const TileInfo *ti) { TileHighlight th; + if (ti->tile == INVALID_TILE) return th; if (_zoning.outer == CHECKTOWNZONES) { auto p = GetTownZoneBorder(ti->tile); th.border = p.first; + auto pal = PAL_NONE; switch (p.second) { - default: th.border_color = SPR_PALETTE_ZONING_WHITE; break; // Tz0 - case 2: th.border_color = SPR_PALETTE_ZONING_YELLOW; break; // Tz1 - case 3: th.border_color = SPR_PALETTE_ZONING_ORANGE; break; // Tz2 - case 4: th.border_color = SPR_PALETTE_ZONING_ORANGE; break; // Tz3 - case 5: th.border_color = SPR_PALETTE_ZONING_RED; break; // Tz4 - center + default: break; // Tz0 + case 1: th.border_color = SPR_PALETTE_ZONING_WHITE; pal = PALETTE_TINT_WHITE; break; // Tz0 + case 2: th.border_color = SPR_PALETTE_ZONING_YELLOW; pal = PALETTE_TINT_YELLOW; break; // Tz1 + case 3: th.border_color = SPR_PALETTE_ZONING_ORANGE; pal = PALETTE_TINT_ORANGE; break; // Tz2 + case 4: th.border_color = SPR_PALETTE_ZONING_ORANGE; pal = PALETTE_TINT_ORANGE; break; // Tz3 + case 5: th.border_color = SPR_PALETTE_ZONING_RED; pal = PALETTE_TINT_RED; break; // Tz4 - center }; - } else if (_zoning.outer == CHECKBULUNSER || _zoning.outer == CHECKINDUNSER) { - // handled in house drawing + th.ground_pal = th.structure_pal = pal; } else if (_zoning.outer == CHECKSTACATCH) { th.border = citymania::GetAnyStationCatchmentBorder(ti->tile); th.border_color = SPR_PALETTE_ZONING_LIGHT_BLUE; + } else if (_zoning.outer == CHECKTOWNGROWTHTILES) { + auto tgt = max(_towns_growth_tiles[ti->tile], _towns_growth_tiles_last_month[ti->tile]); + // if (tgt == TGTS_NEW_HOUSE) th.sprite = SPR_IMG_HOUSE_NEW; + switch (tgt) { + case TGTS_CB_HOUSE_REMOVED_NOGROW: + case TGTS_RH_REMOVED: + th.selection = SPR_PALETTE_ZONING_LIGHT_BLUE; + th.ground_pal = PALETTE_TINT_CYAN; + break; + case TGTS_RH_REBUILT: + th.selection = SPR_PALETTE_ZONING_WHITE; + th.ground_pal = th.structure_pal = PALETTE_TINT_WHITE; + break; + case TGTS_NEW_HOUSE: + th.selection = SPR_PALETTE_ZONING_GREEN; + th.ground_pal = th.structure_pal = PALETTE_TINT_GREEN; + break; + case TGTS_CYCLE_SKIPPED: + th.selection = SPR_PALETTE_ZONING_ORANGE; + th.ground_pal = PALETTE_TINT_ORANGE; + break; + case TGTS_HOUSE_SKIPPED: + th.selection = SPR_PALETTE_ZONING_YELLOW; + th.ground_pal = PALETTE_TINT_YELLOW; + break; + case TGTS_CB_HOUSE_REMOVED: + th.selection = SPR_PALETTE_ZONING_RED; + th.ground_pal = PALETTE_TINT_RED; + break; + default: th.selection = PAL_NONE; + } + } else if (_zoning.outer == CHECKBULUNSER) { + if (IsTileType (ti->tile, MP_HOUSE)) { + StationFinder stations(TileArea(ti->tile, 1, 1)); + + // TODO check cargos + if (stations.GetStations()->empty()) + th.ground_pal = th.structure_pal = PALETTE_TINT_RED_DEEP; + } + } else if (_zoning.outer == CHECKINDUNSER) { + auto pal = GetIndustryZoningPalette(ti->tile); + if (pal) th.ground_pal = th.structure_pal = PALETTE_TINT_RED_DEEP; } return th; } @@ -73,6 +134,14 @@ TileHighlight GetTileHighlight(const TileInfo *ti) { void DrawTileSelection(const TileInfo *ti, const TileHighlight &th) { if (th.border != ZoningBorder::NONE) DrawBorderSprites(ti, th.border, th.border_color); + if (th.sprite) { + DrawSelectionSprite(th.sprite, PAL_NONE, ti, 0, FOUNDATION_PART_NORMAL); + } + if (th.selection) { + DrawBorderSprites(ti, ZoningBorder::FULL, th.selection); + // DrawSelectionSprite(SPR_SELECT_TILE + _tileh_to_sprite[ti->tileh], + // th.selection, ti, 0, FOUNDATION_PART_NORMAL); + } } void AllocateZoningMap(uint map_size) { @@ -192,55 +261,4 @@ ZoningBorder GetAnyStationCatchmentBorder(TileIndex tile) { return border; } -SpriteID GetTownTileZoningPalette(TileIndex tile) { - if (_zoning.outer == CHECKBULUNSER) { - StationFinder stations(TileArea(tile, 1, 1)); - - if (stations.GetStations()->empty()) - return SPR_RECOLOUR_RED; - } else if (_zoning.outer == CHECKTOWNZONES) { - HouseZonesBits next_zone = HZB_BEGIN, tz = HZB_END; - - for (Town *town : Town::Iterate()) { - uint dist = DistanceSquare(tile, town->xy); - // town code uses <= for checking town borders (tz0) but < for other zones - while (next_zone < HZB_END - && (town->cache.squared_town_zone_radius[next_zone] == 0 - || dist <= town->cache.squared_town_zone_radius[next_zone] - (next_zone == HZB_BEGIN ? 0 : 1)) - ){ - if(town->cache.squared_town_zone_radius[next_zone] != 0) tz = next_zone; - next_zone++; - } - } - - switch (tz) { - case HZB_TOWN_EDGE: return SPR_RECOLOUR_WHITE; // Tz0 - case HZB_TOWN_OUTSKIRT: return SPR_RECOLOUR_YELLOW; // Tz1 - case HZB_TOWN_OUTER_SUBURB: return SPR_RECOLOUR_ORANGE; // Tz2 - case HZB_TOWN_INNER_SUBURB: return SPR_RECOLOUR_ORANGE; // Tz3 - case HZB_TOWN_CENTRE: return SPR_RECOLOUR_RED; // Tz4 - center - default: return PAL_NONE; // no town - } - } - return PAL_NONE; -} - -SpriteID GetIndustryTileZoningPalette(TileIndex tile, Industry *ind) { - if (_zoning.outer == CHECKINDUNSER) { - auto n_produced = 0; - auto n_serviced = 0; - for (auto j = 0; j < INDUSTRY_NUM_OUTPUTS; j++) { - if (ind->produced_cargo[j] == CT_INVALID) continue; - if (ind->last_month_production[j] == 0 && ind->this_month_production[j] == 0) continue; - n_produced++; - if (ind->last_month_transported[j] > 0 || ind->last_month_transported[j] > 0) - n_serviced++; - } - if (n_serviced < n_produced) - return (n_serviced == 0 ? SPR_RECOLOUR_RED : SPR_RECOLOUR_ORANGE); - } - - return PAL_NONE; -} - } // namespace citymania diff --git a/src/citymania/zoning.hpp b/src/citymania/zoning.hpp index 5d540357ba..c346c7c786 100644 --- a/src/citymania/zoning.hpp +++ b/src/citymania/zoning.hpp @@ -23,12 +23,15 @@ enum ZoningBorder: uint8 { RIGHT_CORNER = 32, BOTTOM_CORNER = 64, LEFT_CORNER = 128, + FULL = TOP_LEFT | TOP_RIGHT | BOTTOM_LEFT | BOTTOM_RIGHT, }; class TileHighlight { public: SpriteID ground_pal = PAL_NONE; SpriteID structure_pal = PAL_NONE; + SpriteID sprite = 0; + SpriteID selection = PAL_NONE; ZoningBorder border = ZoningBorder::NONE; SpriteID border_color; }; diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 90b9b6cf65..b76367c877 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -44,8 +44,6 @@ #include "table/industry_land.h" #include "table/build_industry.h" -#include "citymania/zoning.hpp" - #include "safeguards.h" IndustryPool _industry_pool("Industry"); @@ -350,14 +348,12 @@ static void DrawTile_Industry(TileInfo *ti) /* DrawFoundation() modifies ti->z and ti->tileh */ if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED); - auto zoning_pal = citymania::GetIndustryTileZoningPalette(ti->tile, ind); - /* If the ground sprite is the default flat water sprite, draw also canal/river borders. * Do not do this if the tile's WaterClass is 'land'. */ if (image == SPR_FLAT_WATER_TILE && IsTileOnWater(ti->tile)) { DrawWaterClassGround(ti); } else { - DrawGroundSprite(image, zoning_pal == PAL_NONE ? GroundSpritePaletteTransform(image, dits->ground.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)) : zoning_pal); + DrawGroundSprite(image, GroundSpritePaletteTransform(image, dits->ground.pal, GENERAL_SPRITE_COLOUR(ind->random_colour))); // DrawGroundSprite(image, GroundSpritePaletteTransform(image, dits->ground.pal, GENERAL_SPRITE_COLOUR(ind->random_colour))); } @@ -367,7 +363,7 @@ static void DrawTile_Industry(TileInfo *ti) /* Add industry on top of the ground? */ image = dits->building.sprite; if (image != 0) { - AddSortableSpriteToDraw(image, zoning_pal == PAL_NONE ? SpriteLayoutPaletteTransform(image, dits->building.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)) : zoning_pal, + AddSortableSpriteToDraw(image, SpriteLayoutPaletteTransform(image, dits->building.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)), ti->x + dits->subtile_x, ti->y + dits->subtile_y, dits->width, diff --git a/src/rev.cpp b/src/rev.cpp index 16bc31d965..f507c0b488 100644 --- a/src/rev.cpp +++ b/src/rev.cpp @@ -83,4 +83,4 @@ const byte _openttd_revision_tagged = 1; const uint32 _openttd_newgrf_version = 1 << 28 | 10 << 24 | 0 << 20 | 0 << 19 | 28004; -const char _citymania_version[] = "20200203-master-md10a631d93 03.02.20"; +const char _citymania_version[] = "20200204-master-ma3890d4e5f 04.02.20"; diff --git a/src/table/sprites.h b/src/table/sprites.h index 9757c7253d..513cdf89ee 100644 --- a/src/table/sprites.h +++ b/src/table/sprites.h @@ -305,29 +305,33 @@ static const uint16 PALETTE_SPRITE_COUNT = 1; static const SpriteID SPR_INNER_HIGHLIGHT_BASE = SPR_PALETTE_BASE + PALETTE_SPRITE_COUNT; static const SpriteID SPR_IMG_COMPANY_CARGO = SPR_INNER_HIGHLIGHT_BASE + 19; static const SpriteID SPR_IMG_COMPANY_GOAL = SPR_INNER_HIGHLIGHT_BASE + 20; -static const SpriteID SPR_PALETTE_ZONING_RED = SPR_INNER_HIGHLIGHT_BASE + 21; -static const SpriteID SPR_PALETTE_ZONING_GREEN = SPR_INNER_HIGHLIGHT_BASE + 22; -static const SpriteID SPR_PALETTE_ZONING_BLACK = SPR_INNER_HIGHLIGHT_BASE + 23; -static const SpriteID SPR_PALETTE_ZONING_LIGHT_BLUE = SPR_INNER_HIGHLIGHT_BASE + 24; -static const SpriteID SPR_PALETTE_ZONING_ORANGE = SPR_INNER_HIGHLIGHT_BASE + 25; -static const SpriteID SPR_PALETTE_ZONING_WHITE = SPR_INNER_HIGHLIGHT_BASE + 26; -static const SpriteID SPR_PALETTE_ZONING_YELLOW = SPR_INNER_HIGHLIGHT_BASE + 27; -static const SpriteID SPR_PALETTE_ZONING_PURPLE = SPR_INNER_HIGHLIGHT_BASE + 28; -static const SpriteID SPR_INNER_HIGHLIGHT_COUNT = 29; +static const SpriteID SPR_IMG_HOUSE_NEW = SPR_INNER_HIGHLIGHT_BASE + 21; +static const SpriteID SPR_PALETTE_ZONING_RED = SPR_INNER_HIGHLIGHT_BASE + 22; +static const SpriteID SPR_PALETTE_ZONING_GREEN = SPR_INNER_HIGHLIGHT_BASE + 23; +static const SpriteID SPR_PALETTE_ZONING_BLACK = SPR_INNER_HIGHLIGHT_BASE + 24; +static const SpriteID SPR_PALETTE_ZONING_LIGHT_BLUE = SPR_INNER_HIGHLIGHT_BASE + 25; +static const SpriteID SPR_PALETTE_ZONING_ORANGE = SPR_INNER_HIGHLIGHT_BASE + 26; +static const SpriteID SPR_PALETTE_ZONING_WHITE = SPR_INNER_HIGHLIGHT_BASE + 27; +static const SpriteID SPR_PALETTE_ZONING_YELLOW = SPR_INNER_HIGHLIGHT_BASE + 28; +static const SpriteID SPR_PALETTE_ZONING_PURPLE = SPR_INNER_HIGHLIGHT_BASE + 29; +static const SpriteID SPR_INNER_HIGHLIGHT_COUNT = 30; static const SpriteID SPR_BORDER_HIGHLIGHT_BASE = SPR_INNER_HIGHLIGHT_BASE + SPR_INNER_HIGHLIGHT_COUNT + 1; static const SpriteID SPR_BORDER_HIGHLIGHT_COUNT = 19 * 19; -static const SpriteID SPR_RECOLOUR_BASE = SPR_BORDER_HIGHLIGHT_BASE + SPR_BORDER_HIGHLIGHT_COUNT; -static const SpriteID SPR_RECOLOUR_RED = SPR_RECOLOUR_BASE; -static const SpriteID SPR_RECOLOUR_ORANGE = SPR_RECOLOUR_BASE + 1; -static const SpriteID SPR_RECOLOUR_YELLOW = SPR_RECOLOUR_BASE + 2; -static const SpriteID SPR_RECOLOUR_YELLOW_WHITE = SPR_RECOLOUR_BASE + 3; -static const SpriteID SPR_RECOLOUR_WHITE = SPR_RECOLOUR_BASE + 4; -static const SpriteID SPR_RECOLOUR_GREEN = SPR_RECOLOUR_BASE + 5; -static const SpriteID SPR_RECOLOUR_COUNT = 5; +static const SpriteID PALETTE_TINT_BASE = SPR_BORDER_HIGHLIGHT_BASE + SPR_BORDER_HIGHLIGHT_COUNT; +static const SpriteID PALETTE_TINT_RED_DEEP = PALETTE_TINT_BASE; +static const SpriteID PALETTE_TINT_ORANGE_DEEP = PALETTE_TINT_BASE + 1; +static const SpriteID PALETTE_TINT_RED = PALETTE_TINT_BASE + 2; +static const SpriteID PALETTE_TINT_ORANGE = PALETTE_TINT_BASE + 3; +static const SpriteID PALETTE_TINT_YELLOW = PALETTE_TINT_BASE + 4; +static const SpriteID PALETTE_TINT_YELLOW_WHITE = PALETTE_TINT_BASE + 5; +static const SpriteID PALETTE_TINT_WHITE = PALETTE_TINT_BASE + 6; +static const SpriteID PALETTE_TINT_GREEN = PALETTE_TINT_BASE + 7; +static const SpriteID PALETTE_TINT_CYAN = PALETTE_TINT_BASE + 8; +static const SpriteID PALETTE_TINT_COUNT = 8; /* From where can we start putting NewGRFs? */ -static const SpriteID SPR_NEWGRFS_BASE = SPR_RECOLOUR_BASE + SPR_RECOLOUR_COUNT; +static const SpriteID SPR_NEWGRFS_BASE = PALETTE_TINT_BASE + PALETTE_TINT_COUNT; /* Manager face sprites */ static const SpriteID SPR_GRADIENT = 874; // background gradient behind manager face diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index c2f2ed17d9..4e709acfe8 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -301,8 +301,7 @@ static void DrawTile_Town(TileInfo *ti) if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED); - auto zoning_pal = citymania::GetTownTileZoningPalette(ti->tile); - DrawGroundSprite(dcts->ground.sprite, zoning_pal == PAL_NONE ? dcts->ground.pal : zoning_pal); + DrawGroundSprite(dcts->ground.sprite, dcts->ground.pal); /* If houses are invisible, do not draw the upper part */ if (IsInvisibilitySet(TO_HOUSES)) return; @@ -310,7 +309,7 @@ static void DrawTile_Town(TileInfo *ti) /* Add a house on top of the ground? */ SpriteID image = dcts->building.sprite; if (image != 0) { - AddSortableSpriteToDraw(image, zoning_pal == PAL_NONE ? dcts->building.pal : zoning_pal, + AddSortableSpriteToDraw(image, dcts->building.pal, ti->x + dcts->subtile_x, ti->y + dcts->subtile_y, dcts->width, diff --git a/src/viewport.cpp b/src/viewport.cpp index 4bdd7fbf2c..4671cd5e08 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -205,7 +205,7 @@ struct ViewportDrawer { int *last_foundation_child[FOUNDATION_PART_END]; ///< Tail of ChildSprite list of the foundations. (index into child_screen_sprites_to_draw) Point foundation_offset[FOUNDATION_PART_END]; ///< Pixel offset for ground sprites on the foundations. - citymania::TileHighlight zoning; + citymania::TileHighlight cm_highlight; }; static void MarkViewportDirty(const ViewPort *vp, int left, int top, int right, int bottom); @@ -594,7 +594,7 @@ void DrawGroundSpriteAt(SpriteID image, PaletteID pal, int32 x, int32 y, int z, { /* Switch to first foundation part, if no foundation was drawn */ if (_vd.foundation_part == FOUNDATION_PART_NONE) _vd.foundation_part = FOUNDATION_PART_NORMAL; - + if (_vd.cm_highlight.ground_pal) pal = _vd.cm_highlight.ground_pal; if (_vd.foundation[_vd.foundation_part] != -1) { Point pt = RemapCoords(x, y, z); AddChildSpriteToFoundation(image, pal, sub, _vd.foundation_part, pt.x + extra_offs_x * ZOOM_LVL_BASE, pt.y + extra_offs_y * ZOOM_LVL_BASE); @@ -703,6 +703,8 @@ void AddSortableSpriteToDraw(SpriteID image, PaletteID pal, int x, int y, int w, assert((image & SPRITE_MASK) < MAX_SPRITES); + if (_vd.cm_highlight.structure_pal) pal = _vd.cm_highlight.structure_pal; + /* make the sprites transparent with the right palette */ if (transparent) { SetBit(image, PALETTE_MODIFIER_TRANSPARENT); @@ -1118,9 +1120,6 @@ static void DrawTileSelection(const TileInfo *ti) /* Highlight tiles insede local authority of selected towns. */ HighlightTownLocalAuthorityTiles(ti); - auto cmth = citymania::GetTileHighlight(ti); - citymania::DrawTileSelection(ti, cmth); - /* Draw a red error square? */ bool is_redsq = _thd.redsq == ti->tile; if (is_redsq) DrawTileSelectionRect(ti, PALETTE_TILE_RED_PULSATING); @@ -1323,16 +1322,20 @@ static void ViewportAddLandscape() _vd.foundation[1] = -1; _vd.last_foundation_child[0] = nullptr; _vd.last_foundation_child[1] = nullptr; + _vd.cm_highlight = citymania::GetTileHighlight(&tile_info); _tile_type_procs[tile_type]->draw_tile_proc(&tile_info); + if (tile_info.tile != INVALID_TILE){ DrawTileZoning(&tile_info); + citymania::DrawTileSelection(&tile_info, _vd.cm_highlight); DrawIndustryForbiddenTiles(&tile_info); DrawTileSelection(&tile_info); } } } } + _vd.cm_highlight = citymania::TileHighlight(); } /** diff --git a/src/zoning_cmd.cpp b/src/zoning_cmd.cpp index fd53cd6f8c..43c827dbb4 100644 --- a/src/zoning_cmd.cpp +++ b/src/zoning_cmd.cpp @@ -419,22 +419,15 @@ void DrawBorderSprites(const TileInfo *ti, citymania::ZoningBorder border, Sprit */ void DrawTileZoning(const TileInfo *ti) { - // AddSortableSpriteToDraw((SPR_FLAT_BARE_LAND|(1U << PALETTE_MODIFIER_TRANSPARENT)) + _tileh_to_sprite[ti->tileh], - // SPR_RECOLOUR_RED, ti->x, ti->y, 0x10, 0x10, 1, ti->z); - // AddSortableSpriteToDraw(SPR_FLAT_BARE_LAND + _tileh_to_sprite[ti->tileh], SPR_RECOLOUR_RED, ti->x, ti->y, 0x10, 0x10, 1, ti->z + 7, false); if(_zoning.outer == CHECKNOTHING && _zoning.inner == CHECKNOTHING) return; //nothing to do if (_game_mode != GM_NORMAL || ti->tile >= MapSize() || IsTileType(ti->tile, MP_VOID)) return; //check invalid if (_zoning.outer != CHECKNOTHING){ - if (_zoning.outer == CHECKTOWNZONES) { - // auto p = citymania::GetTownZoneBorder(ti->tile); - // if (p.first && p.second) { - // DrawBorderSprites(ti, p.first, GetTownZoneBorderColor(p.second)); - // } - } else if (_zoning.outer == CHECKBULUNSER || _zoning.outer == CHECKINDUNSER) { - // handled in house drawing - } else if (_zoning.outer == CHECKSTACATCH) { - // auto b = citymania::GetAnyStationCatchmentBorder(ti->tile); - // DrawBorderSprites(ti, b, SPR_PALETTE_ZONING_LIGHT_BLUE); + if (_zoning.outer == CHECKTOWNZONES || + _zoning.outer == CHECKBULUNSER || + _zoning.outer == CHECKINDUNSER || + _zoning.outer == CHECKSTACATCH || + _zoning.outer == CHECKTOWNGROWTHTILES) { + // handled by citymania zoning } else { DrawZoningSprites(SPR_SELECT_TILE, TileZoningSpriteEvaluation(ti->tile, _local_company, _zoning.outer), ti); }