Zephyris' Houses (and other things) in NML questions

Discussions about the technical aspects of graphics development, including NewGRF tools and utilities.

Moderator: Graphics Moderators

User avatar
Zephyris
Tycoon
Tycoon
Posts: 2890
Joined: 16 May 2007 16:59

Re: Zephyris' Houses in NML questions

Post by Zephyris »

New question: Why do sprite sets in a sprite layout require the same number of sprites? Or is there a more subtle distinction I'm not aware of? For example:

I have 4 random variants of a house. There are 4 different snow overlays. This all makes sense, the sprite sets have a 1:1 correspondence (4 houses, 4 overlays) and are picked using the same variable (in my case, LOAD_TEMP(1)).

I want to add fences to the buildings, picked from a set of 16 sprites depending on the neighbouring roads. Now things get messy. I can pick the fence sprites from the fence sprite set using a different variable (in my case, animation_frame). However, if I try to do this nml gives an error, saying the sprite sets for the building (4 houses, 4 snow overlays, 16 fences) are not the same size...

I can get around this by adding 12 dummy sprites to the house and overlay sets, but that's a big waste if sprites and is very inelegant!

Is this a real limitation, or am I misunderstanding? Or is there some clever way around this I haven't thought of?
User avatar
Zephyris
Tycoon
Tycoon
Posts: 2890
Joined: 16 May 2007 16:59

Re: Zephyris' Houses in NML questions

Post by Zephyris »

In totally different news, I wanted to modify the default recolouring sprites so made a reference of what they look like without modification. These should be correct, but I haven't tested them.

DOS:
[+] Spoiler

Code: Select all

//771
recolour_sprite {
	0x01..0x0C: 0xF0;
	0x0D..0x0F: 0xEF;
	0x10..0xFE: 0x00;
}
//772
recolour_sprite {
	0x01..0x02: 0xB2..0xB3;
	0x03..0x05: 0xB3;
	0x06..0x07: 0xB4;
	0x08..0x09: 0xB5;
	0x0A..0x0D: 0xA3;
	0x0E..0x0F: 0xA4;
	0x10..0xFE: 0x00;
}
//773
recolour_sprite {
	0x02..0x05: 0x01;
	0x06..0x07: 0x80;
	0x08..0x0A: 0x81..0x83;
	0x0B..0x0C: 0x83..0x84;
	0x0D..0x0E: 0x84..0x85;
	0x0F: 0x85;
	0x10..0xFE: 0x00;
}
//775
recolour_sprite {
}
//776
recolour_sprite {
	0xC6..0xCD: 0x60..0x67;
}
//777
recolour_sprite {
	0xC6..0xCD: 0x2A..0x31;
}
//778
recolour_sprite {
	0xC6..0xCD: 0x3E..0x45;
}
//779
recolour_sprite {
	0xC6..0xCA: 0xB3..0xB7;
	0xCB..0xCD: 0xA4..0xA6;
}
//780
recolour_sprite {
	0xC6..0xCD: 0x9A..0xA1;
}
//781
recolour_sprite {
	0xC6..0xC9: 0x52..0x55;
	0xCA..0xCD: 0xCE..0xD1;
}
//782
recolour_sprite {
	0xC6..0xCD: 0x58..0x5F;
}
//783
recolour_sprite {
	0xC6..0xCD: 0x92..0x99;
}
//784
recolour_sprite {
	0xC6..0xCD: 0x72..0x79;
}
//785
recolour_sprite {
	0xC6..0xCD: 0x80..0x87;
}
//786
recolour_sprite {
	0xC6..0xCD: 0x88..0x8F;
}
//787
recolour_sprite {
	0xC6: 0x40;
	0xC7..0xCC: 0xC0..0xC5;
	0xCD: 0x27;
}
//788
recolour_sprite {
	0xC6..0xCD: 0x20..0x27;
}
//789
recolour_sprite {
	0xC6..0xCD: 0x04..0x0B;
}
//790
recolour_sprite {
	0xC6..0xCD: 0x08..0x0F;
}
//791
recolour_sprite {
	0x1C: 0x7C;
	0x1D: 0x7E;
	0x1E: 0x3A;
	0x51..0x55: 0x69..0x6D;
	0x56: 0x6D;
	0x5A: 0x7B;
	0x5D: 0x7D;
	0x5E: 0x7F;
}
//792
recolour_sprite {
	0x00..0xF3: 0xF4;
	0xF5..0xFE: 0xF4;
}
//793
recolour_sprite {
	0x00..0xF3: 0xF4;
	0xF5..0xFE: 0xF4;
}
//794
recolour_sprite {
	0x00..0xF3: 0xF4;
	0xF5..0xFE: 0xF4;
}
//795
recolour_sprite {
	0x46..0x47: 0x90;
	0x48..0x4F: 0x91..0x98;
}
//796
recolour_sprite {
	0x46..0x4D: 0x68..0x6F;
	0x4E..0x4F: 0x25..0x26;
}
//797
recolour_sprite {
	0x47: 0x03;
	0x48: 0x05;
	0x49..0x4A: 0x07..0x08;
	0x4B..0x4F: 0x0A..0x0E;
}
//798
recolour_sprite {
	0x47..0x4A: 0xB2..0xB5;
	0x4B..0x4F: 0xA2..0xA6;
}
//799
recolour_sprite {
	0x47..0x48: 0x60;
	0x49..0x4F: 0x61..0x67;
}
//800
recolour_sprite {
	0x47..0x4E: 0x10..0x17;
	0x4F: 0x0E;
}
//801
recolour_sprite {
	0x46..0x4F: 0x3C..0x45;
}
//802
recolour_sprite {
	0x02..0x03: 0x01..0x02;
	0x04..0x06: 0x02..0x04;
	0x07..0x09: 0x04..0x06;
	0x0A..0x0B: 0x06..0x07;
	0x0C..0x0E: 0x07..0x09;
	0x0F: 0x15;
	0x10..0x11: 0x02..0x03;
	0x12..0x13: 0x10..0x11;
	0x14..0x15: 0x05..0x06;
	0x16: 0x13;
	0x17: 0x08;
	0x18: 0x68;
	0x19..0x1A: 0x18;
	0x1B..0x1C: 0x19..0x1A;
	0x1D..0x1E: 0x5B..0x5C;
	0x1F: 0x07;
	0x20: 0x68;
	0x21..0x22: 0x18..0x19;
	0x23: 0x04;
	0x24..0x25: 0x22..0x23;
	0x26..0x27: 0x23..0x24;
	0x28: 0x46;
	0x29..0x2A: 0x28..0x29;
	0x2B: 0x48;
	0x2C..0x2E: 0x7B..0x7D;
	0x2F..0x30: 0x7D..0x7E;
	0x31: 0x07;
	0x32: 0x3F;
	0x33..0x34: 0x39;
	0x35..0x36: 0x68..0x69;
	0x37..0x38: 0x19..0x1A;
	0x39..0x3A: 0x22..0x23;
	0x3B: 0x23;
	0x3C: 0x46;
	0x3D..0x3E: 0x69..0x6A;
	0x3F: 0x36;
	0x40..0x41: 0x3E..0x3F;
	0x42..0x43: 0x3F;
	0x44..0x45: 0x39..0x3A;
	0x47..0x48: 0x46..0x47;
	0x49: 0x47;
	0x4A: 0x70;
	0x4B: 0x49;
	0x4C: 0x7C;
	0x4D: 0x72;
	0x4E: 0x7D;
	0x4F: 0x23;
	0x51..0x52: 0x50;
	0x53..0x56: 0x51..0x54;
	0x57: 0x1B;
	0x58: 0x01;
	0x59..0x5A: 0x58;
	0x5B..0x5D: 0x59..0x5B;
	0x5E..0x5F: 0x5B..0x5C;
	0x60: 0x01;
	0x61..0x62: 0x60..0x61;
	0x63..0x66: 0x61..0x64;
	0x67: 0x07;
	0x68: 0x46;
	0x69: 0x68;
	0x6B: 0x18;
	0x6C..0x6D: 0x70;
	0x6E..0x6F: 0x21..0x22;
	0x70: 0x47;
	0x71: 0x69;
	0x72..0x73: 0x70..0x71;
	0x74: 0x6C;
	0x75..0x76: 0x72..0x73;
	0x77..0x78: 0x23;
	0x79: 0x24;
	0x7A: 0x69;
	0x7B: 0x47;
	0x7C..0x7D: 0x70..0x71;
	0x7E: 0x22;
	0x7F: 0x05;
	0x80..0x81: 0x02;
	0x82: 0x80;
	0x83..0x84: 0x10;
	0x85: 0x83;
	0x86..0x87: 0x07..0x08;
	0x88: 0x80;
	0x89..0x8A: 0x88;
	0x8B..0x8C: 0x89;
	0x8D: 0x8A;
	0x8E..0x8F: 0x84;
	0x90..0x91: 0xC6;
	0x92..0x93: 0x90;
	0x94: 0x91;
	0x95..0x96: 0xC9;
	0x97..0x98: 0x9D..0x9E;
	0x99: 0x14;
	0x9A..0x9B: 0x80;
	0x9C: 0x10;
	0x9D: 0x9A;
	0x9E..0xA1: 0x11..0x14;
	0xA2: 0x49;
	0xA3..0xA4: 0x2B;
	0xA5..0xA6: 0x4B..0x4C;
	0xA7: 0x7E;
	0xA8..0xA9: 0x08..0x09;
	0xAA..0xAF: 0x80..0x85;
	0xB0..0xB1: 0x85;
	0xB2: 0x46;
	0xB3..0xB4: 0xB2..0xB3;
	0xB5..0xB6: 0xB3..0xB4;
	0xB7..0xB8: 0xB4..0xB5;
	0xB9: 0xB5;
	0xBA..0xBB: 0x3E..0x3F;
	0xBC..0xBF: 0x3F;
	0xC0..0xC1: 0x3E..0x3F;
	0xC2..0xC3: 0x3F;
	0xC4: 0x38;
	0xC5: 0x24;
	0xC7..0xC9: 0xC6;
	0xCA..0xCD: 0x9A..0x9D;
	0xCE: 0x5A;
	0xCF: 0x54;
	0xD0: 0x5B;
	0xD1: 0xCE;
	0xD2: 0xD6;
	0xD3..0xD4: 0x9D;
	0xD5..0xD6: 0x9C;
	0xD7..0xE7: 0xAB;
	0xE8..0xE9: 0xB5;
	0xEA..0xEB: 0x3E..0x3F;
	0xEC..0xEE: 0x3F;
	0xEF..0xF0: 0xB5;
	0xF1..0xF4: 0x3F;
	0xF5..0xF9: 0xC8;
	0xFA..0xFE: 0xC9;
}
//803
recolour_sprite {
	0x10: 0x04;
	0x11..0x15: 0x06..0x0A;
	0x16..0x17: 0x0C..0x0D;
	0x18..0x1C: 0x03..0x07;
	0x1D..0x1E: 0x09..0x0A;
	0x1F: 0x0C;
	0x20: 0x04;
	0x21..0x22: 0x06;
	0x23: 0x07;
	0x24: 0x09;
	0x25: 0x0B;
	0x26..0x27: 0x0D..0x0E;
	0x28: 0x04;
	0x29..0x2C: 0x06..0x09;
	0x2D..0x31: 0x0B..0x0F;
	0x32..0x34: 0x0F;
	0x35: 0x04;
	0x36..0x3A: 0x06..0x0A;
	0x3B: 0x0C;
	0x3C: 0x04;
	0x3D: 0x06;
	0x3E..0x3F: 0x08..0x09;
	0x40: 0x0B;
	0x41..0x43: 0x0D..0x0F;
	0x44..0x45: 0x0F;
	0x46: 0x02;
	0x47..0x49: 0x04..0x06;
	0x4A..0x4F: 0x08..0x0D;
	0x50..0x58: 0x03;
	0x59: 0x04;
	0x5A..0x5B: 0x06;
	0x5C: 0x07;
	0x5D..0x5E: 0x09..0x0A;
	0x5F: 0x0C;
	0x60..0x61: 0x03..0x04;
	0x62..0x64: 0x06..0x08;
	0x65: 0x0A;
	0x66..0x67: 0x0C..0x0D;
	0x68..0x6A: 0x02..0x04;
	0x6B..0x6C: 0x06;
	0x6D..0x6E: 0x07..0x08;
	0x6F: 0x0A;
	0x70: 0x04;
	0x71..0x73: 0x06..0x08;
	0x74..0x77: 0x0A..0x0D;
	0x78..0x79: 0x0D..0x0E;
	0x7A..0x7D: 0x05..0x08;
	0x7E..0x7F: 0x0A..0x0B;
	0x80..0x84: 0x04..0x08;
	0x85: 0x0A;
	0x86..0x87: 0x0C..0x0D;
	0x88: 0x07;
	0x89..0x8A: 0x09..0x0A;
	0x8B..0x8C: 0x0C..0x0D;
	0x8D..0x8F: 0x0F;
	0x90: 0x06;
	0x91: 0x08;
	0x92..0x93: 0x0A..0x0B;
	0x94..0x95: 0x0D;
	0x96..0x97: 0x0E;
	0x98..0x99: 0x0F;
	0x9A..0x9B: 0x06;
	0x9C..0x9D: 0x07..0x08;
	0x9E: 0x0A;
	0x9F..0xA0: 0x0C..0x0D;
	0xA1: 0x0F;
	0xA2: 0x0A;
	0xA3: 0x0D;
	0xA4..0xA9: 0x0F;
	0xAA..0xAB: 0x07..0x08;
	0xAC: 0x0A;
	0xAD..0xAE: 0x0C..0x0D;
	0xAF..0xB1: 0x0F;
	0xB2: 0x03;
	0xB3: 0x06;
	0xB4: 0x08;
	0xB5: 0x0A;
	0xB6..0xB7: 0x0C..0x0D;
	0xB8..0xBF: 0x0F;
	0xC0..0xC1: 0x0C..0x0D;
	0xC2..0xC5: 0x0F;
	0xC6..0xC7: 0x06;
	0xC8..0xC9: 0x07..0x08;
	0xCA..0xCB: 0x0A..0x0B;
	0xCC..0xCD: 0x0D;
	0xCE..0xCF: 0x09..0x0A;
	0xD0..0xD1: 0x0C..0x0D;
	0xD2: 0x0F;
	0xD3: 0x0E;
	0xD4: 0x0D;
	0xD5: 0x0C;
	0xD6: 0x0B;
	0xD7..0xE7: 0x0D;
	0xE8..0xF0: 0x0F;
	0xF1..0xF3: 0x08;
	0xF4: 0x0F;
	0xF5..0xF6: 0x06..0x07;
	0xF7..0xF8: 0x07..0x08;
	0xF9: 0x08;
	0xFA..0xFE: 0x0B..0x0F;
}
//804
recolour_sprite {
	0x02..0x03: 0x01;
	0x04..0x05: 0x02..0x03;
	0x06: 0x03;
	0x07..0x09: 0x05;
	0x0A..0x0C: 0x06..0x08;
	0x0D..0x0E: 0x08;
	0x0F: 0x09;
	0x10..0x11: 0x02..0x03;
	0x12..0x14: 0x05;
	0x15: 0x06;
	0x16..0x17: 0x08;
	0x18..0x1A: 0x01..0x03;
	0x1B: 0x03;
	0x1C..0x1D: 0x05;
	0x1E: 0x06;
	0x1F: 0x08;
	0x20..0x21: 0x02..0x03;
	0x22: 0x03;
	0x23..0x27: 0x05..0x09;
	0x28..0x29: 0x02..0x03;
	0x2A..0x2B: 0x05;
	0x2C..0x2E: 0x06..0x08;
	0x2F..0x30: 0x08;
	0x31..0x34: 0x09;
	0x35..0x36: 0x02..0x03;
	0x37..0x39: 0x05;
	0x3A: 0x06;
	0x3B: 0x08;
	0x3C..0x3D: 0x02..0x03;
	0x3E..0x41: 0x05..0x08;
	0x42..0x43: 0x08..0x09;
	0x44..0x45: 0x09;
	0x46..0x48: 0x01..0x03;
	0x49: 0x03;
	0x4A..0x4B: 0x05;
	0x4C..0x4E: 0x06..0x08;
	0x4F: 0x08;
	0x50..0x52: 0x01..0x03;
	0x53: 0x03;
	0x54..0x56: 0x05;
	0x57: 0x06;
	0x58..0x5A: 0x01..0x03;
	0x5B: 0x03;
	0x5C..0x5D: 0x05;
	0x5E: 0x06;
	0x5F: 0x08;
	0x60..0x62: 0x01..0x03;
	0x63..0x64: 0x05;
	0x65: 0x06;
	0x66..0x67: 0x08;
	0x68..0x69: 0x01;
	0x6A..0x6B: 0x02..0x03;
	0x6C: 0x03;
	0x6D..0x6E: 0x05;
	0x6F: 0x06;
	0x70..0x71: 0x02..0x03;
	0x72..0x73: 0x05;
	0x74..0x76: 0x06..0x08;
	0x77..0x79: 0x08;
	0x7A..0x7C: 0x03..0x05;
	0x7D..0x7F: 0x05..0x07;
	0x80..0x81: 0x02..0x03;
	0x82: 0x03;
	0x83..0x84: 0x05;
	0x85: 0x06;
	0x86..0x87: 0x08;
	0x88..0x89: 0x05;
	0x8A: 0x06;
	0x8B..0x8C: 0x08;
	0x8D..0x8F: 0x09;
	0x90: 0x03;
	0x91..0x94: 0x05..0x08;
	0x95..0x96: 0x08;
	0x97..0x99: 0x09;
	0x9A..0x9C: 0x03..0x05;
	0x9D..0x9E: 0x05..0x06;
	0x9F..0xA0: 0x08;
	0xA1: 0x09;
	0xA2: 0x06;
	0xA3..0xA4: 0x08..0x09;
	0xA5..0xA9: 0x09;
	0xAA..0xAB: 0x05;
	0xAC: 0x06;
	0xAD..0xAE: 0x08;
	0xAF..0xB1: 0x09;
	0xB2: 0x01;
	0xB3: 0x03;
	0xB4..0xB5: 0x05..0x06;
	0xB6..0xB7: 0x08;
	0xB8..0xBF: 0x09;
	0xC0..0xC1: 0x08;
	0xC2..0xC5: 0x09;
	0xC6..0xC8: 0x03..0x05;
	0xC9..0xCC: 0x05..0x08;
	0xCD: 0x08;
	0xCE..0xCF: 0x05..0x06;
	0xD0..0xD2: 0x08;
	0xD3: 0x07;
	0xD4: 0x06;
	0xD5: 0x05;
	0xD6: 0x04;
	0xD7..0xE7: 0x08;
	0xE8..0xF0: 0x09;
	0xF1..0xF3: 0x04;
	0xF4: 0x09;
	0xF5: 0x03;
	0xF6..0xF9: 0x05;
	0xFA..0xFB: 0x07..0x08;
	0xFC..0xFD: 0x08;
	0xFE: 0x09;
}
//1438
recolour_sprite {
	0x01..0x69: 0x00..0x68;
	0x6A..0x6B: 0x46..0x47;
	0x6C..0x6D: 0x6B..0x6C;
	0x6E..0x6F: 0x4A..0x4B;
	0x70..0x72: 0x6F..0x71;
	0x73: 0x49;
	0x74: 0x73;
	0x75: 0x4C;
	0x76: 0x75;
	0x77..0x79: 0x4D..0x4F;
	0x7A..0x7B: 0x79..0x7A;
	0x7C: 0x48;
	0x7D..0xFE: 0x7C..0xFD;
}
//1439
recolour_sprite {
	0x01..0x69: 0x00..0x68;
	0x6A: 0x02;
	0x6B: 0x21;
	0x6C..0x6D: 0x6B..0x6C;
	0x6E..0x6F: 0x23..0x24;
	0x70..0x72: 0x6F..0x71;
	0x73: 0x22;
	0x74: 0x73;
	0x75: 0x24;
	0x76: 0x75;
	0x77..0x79: 0x25..0x27;
	0x7A..0x7B: 0x79..0x7A;
	0x7C: 0x20;
	0x7D..0xFE: 0x7C..0xFD;
}
Windows:
[+] Spoiler

Code: Select all

//771
recolour_sprite {
	0x0A..0x0C: 0xF0;
	0x0D..0x0F: 0xEF;
	0x10: 0x0F;
	0x11..0x1F: 0x00;
	0x20..0x21: 0xF0;
	0x22..0x27: 0x00;
	0x28: 0xF0;
	0x29..0x57: 0x00;
	0x58: 0xF0;
	0x59..0x69: 0x00;
	0x6A: 0xF0;
	0x6B..0x87: 0x00;
	0x88: 0xF0;
	0x89..0xD6: 0x00;
	0xD7..0xD8: 0xF0;
	0xD9..0xF4: 0x00;
	0xF5: 0xF0;
}
//772
recolour_sprite {
	0x0A..0x0D: 0xA3;
	0x0E..0x0F: 0xA4;
	0x10: 0x0F;
	0x11..0x1F: 0x00;
	0x20..0x21: 0xB4;
	0x22..0x27: 0x00;
	0x28: 0xB5;
	0x29..0x57: 0x00;
	0x58: 0xB3;
	0x59..0x69: 0x00;
	0x6A: 0xB3;
	0x6B..0x87: 0x00;
	0x88: 0xB3;
	0x89..0xD6: 0x00;
	0xD7..0xD8: 0xB2..0xB3;
	0xD9..0xF4: 0x00;
	0xF5: 0xB5;
}
//773
recolour_sprite {
	0x0A..0x0B: 0x83;
	0x0C..0x0D: 0x84;
	0x0E..0x0F: 0x85;
	0x10: 0x0F;
	0x11..0x1F: 0x00;
	0x20..0x21: 0x80;
	0x22..0x27: 0x00;
	0x28: 0x81;
	0x29..0x57: 0x00;
	0x58: 0xD7;
	0x59..0x69: 0x00;
	0x6A: 0xD7;
	0x6B..0x87: 0x00;
	0x88: 0xD7;
	0x89..0xD6: 0x00;
	0xD8: 0xD7;
	0xD9..0xF4: 0x00;
	0xF5: 0x81;
}
//775
recolour_sprite {
	0xF6: 0x00;
}
//776
recolour_sprite {
	0xC6..0xCD: 0x60..0x67;
	0xF6: 0x00;
}
//777
recolour_sprite {
	0xC6..0xCD: 0x2A..0x31;
	0xF6: 0x00;
}
//778
recolour_sprite {
	0xC6..0xCD: 0x3E..0x45;
	0xF6: 0x00;
}
//779
recolour_sprite {
	0xC6..0xCA: 0xB3..0xB7;
	0xCB..0xCD: 0xA4..0xA6;
	0xF6: 0x00;
}
//780
recolour_sprite {
	0xC6..0xCD: 0x9A..0xA1;
	0xF6: 0x00;
}
//781
recolour_sprite {
	0xC6..0xC9: 0x52..0x55;
	0xCA..0xCD: 0xCE..0xD1;
	0xF6: 0x00;
}
//782
recolour_sprite {
	0xC6: 0x60;
	0xC7..0xCD: 0x59..0x5F;
	0xF6: 0x00;
}
//783
recolour_sprite {
	0xC6..0xCD: 0x92..0x99;
	0xF6: 0x00;
}
//784
recolour_sprite {
	0xC6..0xCD: 0x72..0x79;
	0xF6: 0x00;
}
//785
recolour_sprite {
	0xC6..0xCD: 0x80..0x87;
	0xF6: 0x00;
}
//786
recolour_sprite {
	0xC6: 0xAA;
	0xC7..0xCD: 0x89..0x8F;
	0xF6: 0x00;
}
//787
recolour_sprite {
	0xC6: 0x40;
	0xC7..0xCC: 0xC0..0xC5;
	0xCD: 0x27;
	0xF6: 0x00;
}
//788
recolour_sprite {
	0xC6..0xC7: 0x35..0x36;
	0xC8..0xCD: 0x22..0x27;
	0xF6: 0x00;
}
//789
recolour_sprite {
	0xC6: 0x58;
	0xC7: 0x6A;
	0xC8..0xC9: 0x20..0x21;
	0xCA: 0x28;
	0xCB: 0xF5;
	0xCC..0xCD: 0x0A..0x0B;
	0xF6: 0x00;
}
//790
recolour_sprite {
	0xC6: 0x28;
	0xC7: 0xF5;
	0xC8..0xCD: 0x0A..0x0F;
	0xF6: 0x00;
}
//791
recolour_sprite {
	0x1C: 0x7C;
	0x1D: 0x7E;
	0x1E: 0x3A;
	0x51: 0x69;
	0x52: 0x35;
	0x53..0x55: 0x6B..0x6D;
	0x56: 0x6D;
	0x5A: 0x7B;
	0x5D: 0x7D;
	0x5E: 0x7F;
	0xF6: 0x00;
}
//792
recolour_sprite {
	0x10: 0x1F;
	0x11: 0x0B;
	0x12: 0x25;
	0x13: 0x1D;
	0x14: 0x39;
	0x15: 0x20;
	0x16: 0x22;
	0x17: 0x59;
	0x19: 0x34;
	0x1A: 0x33;
	0x1B: 0xC3;
	0x1C: 0x41;
	0x1D: 0x40;
	0x1E: 0x38;
	0x1F: 0x6D;
	0x22: 0x70;
	0x24..0x25: 0xC6;
	0x26..0x27: 0xC7..0xC8;
	0x29..0x2C: 0xCA..0xCD;
	0x2D: 0x98;
	0x2E: 0xE1;
	0x2F: 0xA1;
	0x30..0x31: 0xB2..0xB3;
	0x32..0x34: 0xB3..0xB5;
	0x35: 0x70;
	0x36..0x37: 0xA3..0xA4;
	0x38: 0x7A;
	0x39..0x3B: 0x3D..0x3F;
	0x3C: 0xC0;
	0x3D..0x3E: 0xC2..0xC3;
	0x3F: 0x34;
	0x40..0x41: 0x1C;
	0x42..0x43: 0x1B;
	0x44..0x45: 0x1A;
	0x46..0x47: 0x19;
	0x48: 0x18;
	0x49: 0xE8;
	0x4A..0x4B: 0xEA..0xEB;
	0x4C: 0xBC;
	0x4D: 0xEE;
	0x4E: 0x69;
	0x4F: 0x3C;
	0x50: 0x7B;
	0x51: 0x72;
	0x52: 0x6D;
	0x53: 0x74;
	0x54: 0x40;
	0x55..0x57: 0x76..0x78;
	0x59: 0xC5;
	0x5A: 0x20;
	0x5B: 0x23;
	0x5C: 0x7D;
	0x5D: 0x2C;
	0x5E: 0xAA;
	0x5F..0x60: 0x89..0x8A;
	0x61..0x63: 0x8C..0x8E;
	0x64: 0x1F;
	0x65: 0x1E;
	0x66: 0xF5;
	0x67: 0x24;
	0x68: 0x23;
	0x69: 0x22;
	0x6B: 0x69;
	0x6C: 0x18;
	0x6D: 0x59;
	0x6E: 0x35;
	0x6F: 0x6C;
	0x70: 0x36;
	0x71: 0xDF;
	0x72: 0x64;
	0x73: 0x63;
	0x74: 0x62;
	0x75: 0x61;
	0x76: 0x51;
	0x77: 0x50;
	0x78: 0x1C;
	0x79: 0x3A;
	0x7A..0x7B: 0x26..0x27;
	0x7C..0x7D: 0x23..0x24;
	0x7E: 0x1F;
	0x7F: 0xA8;
	0x80: 0x4E;
	0x81: 0x76;
	0x82..0x83: 0x4C;
	0x84: 0x4B;
	0x85: 0x4A;
	0x86: 0x7B;
	0x87: 0x48;
	0x89: 0x68;
	0x8A: 0x73;
	0x8B: 0x6D;
	0x8C: 0x72;
	0x8D: 0x59;
	0x8E: 0x6B;
	0x8F: 0x35;
	0x90: 0x19;
	0x91: 0x73;
	0x92: 0x6D;
	0x93: 0x72;
	0x94: 0x71;
	0x95: 0x6B;
	0x96: 0x35;
	0x97: 0x69;
	0x98: 0xD7;
	0x99: 0x80;
	0x9A: 0x18;
	0x9B..0x9C: 0x1A;
	0x9D..0x9E: 0x1B..0x1C;
	0x9F: 0x86;
	0xA0: 0x5F;
	0xA1: 0x5E;
	0xA2: 0x1C;
	0xA3: 0x5D;
	0xA4..0xA5: 0x5C;
	0xA6: 0x5B;
	0xA7: 0x5A;
	0xA8: 0xD8;
	0xA9..0xAA: 0x40;
	0xAB: 0x3F;
	0xAC: 0x3E;
	0xAD: 0x36;
	0xAE: 0x35;
	0xAF: 0x3C;
	0xB0..0xB6: 0x94;
	0xB7..0xBE: 0x93;
	0xBF..0xC7: 0x92;
	0xC8..0xD0: 0x91;
	0xD1..0xD6: 0x90;
	0xD9..0xDB: 0x8B;
	0xDC: 0xAD;
	0xDD..0xDE: 0xB8;
	0xDF: 0x91;
	0xE0..0xE1: 0x93;
	0xE2: 0x94;
	0xE3..0xE4: 0xDB;
	0xE5: 0xDC;
	0xE6..0xE9: 0xDE;
	0xEA: 0xCC;
	0xEB..0xF1: 0xCB;
	0xF2..0xF4: 0x8B;
	0xF6: 0x00;
}
//793
recolour_sprite {
	0x10: 0x1F;
	0x11: 0x0B;
	0x12: 0x25;
	0x13: 0x1D;
	0x14: 0x39;
	0x15: 0x20;
	0x16: 0x22;
	0x17: 0x59;
	0x19: 0x34;
	0x1A: 0x33;
	0x1B: 0xC3;
	0x1C: 0x41;
	0x1D: 0x40;
	0x1E: 0x38;
	0x1F: 0x6D;
	0x22: 0x70;
	0x24..0x25: 0xC6;
	0x26..0x27: 0xC7..0xC8;
	0x29..0x2C: 0xCA..0xCD;
	0x2D: 0x98;
	0x2E: 0xE1;
	0x2F: 0xA1;
	0x30..0x31: 0xB2..0xB3;
	0x32..0x34: 0xB3..0xB5;
	0x35: 0x70;
	0x36..0x37: 0xA3..0xA4;
	0x38: 0x7A;
	0x39..0x3B: 0x3D..0x3F;
	0x3C: 0xC0;
	0x3D..0x3E: 0xC2..0xC3;
	0x3F: 0x34;
	0x40..0x41: 0x1C;
	0x42..0x43: 0x1B;
	0x44..0x45: 0x1A;
	0x46..0x47: 0x19;
	0x48: 0x18;
	0x49: 0xE8;
	0x4A..0x4B: 0xEA..0xEB;
	0x4C: 0xBC;
	0x4D: 0xEE;
	0x4E: 0x69;
	0x4F: 0x3C;
	0x50: 0x7B;
	0x51: 0x72;
	0x52: 0x6D;
	0x53: 0x74;
	0x54: 0x40;
	0x55..0x57: 0x76..0x78;
	0x59: 0xC5;
	0x5A: 0x20;
	0x5B: 0x23;
	0x5C: 0x7D;
	0x5D: 0x2C;
	0x5E: 0xAA;
	0x5F..0x60: 0x89..0x8A;
	0x61..0x63: 0x8C..0x8E;
	0x64: 0x1F;
	0x65: 0x1E;
	0x66: 0xF5;
	0x67: 0x24;
	0x68: 0x23;
	0x69: 0x22;
	0x6B: 0x69;
	0x6C: 0x18;
	0x6D: 0x59;
	0x6E: 0x35;
	0x6F: 0x6C;
	0x70: 0x36;
	0x71: 0xDF;
	0x72: 0x64;
	0x73: 0x63;
	0x74: 0x62;
	0x75: 0x61;
	0x76: 0x51;
	0x77: 0x50;
	0x78: 0x1C;
	0x79: 0x3A;
	0x7A..0x7B: 0x26..0x27;
	0x7C..0x7D: 0x23..0x24;
	0x7E: 0x1F;
	0x7F: 0xA8;
	0x80: 0x4E;
	0x81: 0x76;
	0x82..0x83: 0x4C;
	0x84: 0x4B;
	0x85: 0x4A;
	0x86: 0x7B;
	0x87: 0x48;
	0x89: 0x68;
	0x8A: 0x56;
	0x8B: 0x1B;
	0x8C: 0x5B;
	0x8D: 0x1A;
	0x8E..0x8F: 0x52;
	0x90: 0x19;
	0x91: 0x73;
	0x92: 0x6D;
	0x93: 0x72;
	0x94: 0x71;
	0x95: 0x6B;
	0x96: 0x35;
	0x97: 0x69;
	0x98: 0xD7;
	0x99..0x9A: 0x80..0x81;
	0x9B..0x9D: 0x83..0x85;
	0x9E: 0x15;
	0x9F: 0x86;
	0xA0: 0x5F;
	0xA1: 0x5E;
	0xA2: 0x1C;
	0xA3: 0x56;
	0xA4..0xA5: 0x5C;
	0xA6: 0x5B;
	0xA7: 0x5A;
	0xA8: 0xD8;
	0xA9..0xAA: 0x40;
	0xAB: 0x3F;
	0xAC: 0x3E;
	0xAD: 0x36;
	0xAE: 0x35;
	0xAF: 0x3C;
	0xB0..0xB6: 0x94;
	0xB7..0xBE: 0x93;
	0xBF..0xC7: 0x92;
	0xC8..0xD0: 0x91;
	0xD1..0xD6: 0x90;
	0xD9..0xDB: 0x8B;
	0xDC: 0xAD;
	0xDD..0xDE: 0xB8;
	0xDF: 0x91;
	0xE0..0xE1: 0x93;
	0xE2: 0x94;
	0xE3..0xE4: 0xDB;
	0xE5: 0xDC;
	0xE6..0xE9: 0xDE;
	0xEA: 0xCC;
	0xEB..0xF1: 0xCB;
	0xF2..0xF4: 0x8B;
	0xF6: 0x00;
}
//794
recolour_sprite {
	0x10: 0x1F;
	0x11: 0x0B;
	0x12: 0x25;
	0x13: 0x1D;
	0x14: 0x39;
	0x15: 0x20;
	0x16: 0x22;
	0x17: 0x59;
	0x19: 0x34;
	0x1A: 0x33;
	0x1B: 0xC3;
	0x1C: 0x41;
	0x1D: 0x40;
	0x1E: 0x38;
	0x1F: 0x6D;
	0x22: 0x70;
	0x24..0x25: 0xC6;
	0x26..0x27: 0xC7..0xC8;
	0x29..0x2C: 0xCA..0xCD;
	0x2D: 0x98;
	0x2E: 0xE1;
	0x2F: 0xA1;
	0x30..0x31: 0xB2..0xB3;
	0x32..0x34: 0xB3..0xB5;
	0x35: 0x70;
	0x36..0x37: 0xA3..0xA4;
	0x38: 0x7A;
	0x39..0x3B: 0x3D..0x3F;
	0x3C: 0xC0;
	0x3D..0x3E: 0xC2..0xC3;
	0x3F: 0x34;
	0x40..0x41: 0x1C;
	0x42..0x43: 0x1B;
	0x44..0x45: 0x1A;
	0x46..0x47: 0x19;
	0x48: 0x18;
	0x49: 0xE8;
	0x4A..0x4B: 0xEA..0xEB;
	0x4C: 0xBC;
	0x4D: 0xEE;
	0x4E: 0x69;
	0x4F: 0x3C;
	0x50: 0x7B;
	0x51: 0x72;
	0x52: 0x6D;
	0x53: 0x74;
	0x54: 0x40;
	0x55..0x57: 0x76..0x78;
	0x59: 0xC5;
	0x5A: 0x20;
	0x5B: 0x23;
	0x5C: 0x7D;
	0x5D: 0x2C;
	0x5E: 0xAA;
	0x5F..0x60: 0x89..0x8A;
	0x61..0x63: 0x8C..0x8E;
	0x64: 0x1F;
	0x65: 0x1E;
	0x66: 0xF5;
	0x67: 0x24;
	0x68: 0x23;
	0x69: 0x22;
	0x6B: 0x69;
	0x6C: 0x18;
	0x6D: 0x59;
	0x6E: 0x35;
	0x6F: 0x6C;
	0x70: 0x36;
	0x71: 0xDF;
	0x72: 0x64;
	0x73: 0x63;
	0x74: 0x62;
	0x75: 0x61;
	0x76: 0x51;
	0x77: 0x50;
	0x78: 0x1C;
	0x79: 0x3A;
	0x7A..0x7B: 0x26..0x27;
	0x7C..0x7D: 0x23..0x24;
	0x7E: 0x1F;
	0x7F: 0xA8;
	0x80: 0x4E;
	0x81: 0x76;
	0x82..0x83: 0x4C;
	0x84: 0x4B;
	0x85: 0x4A;
	0x86: 0x7B;
	0x87: 0x48;
	0x89: 0x68;
	0x8A: 0x56;
	0x8B: 0x55;
	0x8C: 0x54;
	0x8D: 0x53;
	0x8E..0x8F: 0x52;
	0x90: 0x51;
	0x91: 0x73;
	0x92: 0x6D;
	0x93: 0x72;
	0x94: 0x71;
	0x95: 0x6B;
	0x96: 0x35;
	0x97: 0x69;
	0x98: 0xD7;
	0x99..0x9A: 0x80..0x81;
	0x9B..0x9D: 0x83..0x85;
	0x9E: 0x15;
	0x9F: 0x86;
	0xA0: 0x5F;
	0xA1: 0x5E;
	0xA2: 0x1D;
	0xA3: 0x5D;
	0xA4..0xA5: 0x5C;
	0xA6: 0x5B;
	0xA7: 0x5A;
	0xA8: 0xD8;
	0xA9..0xAA: 0x40;
	0xAB: 0x3F;
	0xAC: 0x3E;
	0xAD: 0x36;
	0xAE: 0x35;
	0xAF: 0x3C;
	0xB0..0xB6: 0x94;
	0xB7..0xBE: 0x93;
	0xBF..0xC7: 0x92;
	0xC8..0xD0: 0x91;
	0xD1..0xD6: 0x90;
	0xD9..0xDB: 0x8B;
	0xDC: 0xAD;
	0xDD..0xDE: 0xB8;
	0xDF: 0x91;
	0xE0..0xE1: 0x93;
	0xE2: 0x94;
	0xE3..0xE4: 0xDB;
	0xE5: 0xDC;
	0xE6..0xE9: 0xDE;
	0xEA: 0xCC;
	0xEB..0xF1: 0xCB;
	0xF2..0xF4: 0x8B;
	0xF6: 0x00;
}
//795
recolour_sprite {
	0x46..0x47: 0x90;
	0x48..0x4F: 0x91..0x98;
	0xF6: 0x00;
}
//796
recolour_sprite {
	0x46..0x47: 0x68..0x69;
	0x48: 0x35;
	0x49..0x4D: 0x6B..0x6F;
	0x4E..0x4F: 0x25..0x26;
	0xF6: 0x00;
}
//797
recolour_sprite {
	0x47: 0x88;
	0x48: 0x6A;
	0x49: 0x21;
	0x4A: 0x28;
	0x4B..0x4F: 0x0A..0x0E;
	0xF6: 0x00;
}
//798
recolour_sprite {
	0x47..0x4A: 0xB2..0xB5;
	0x4B..0x4F: 0xA2..0xA6;
	0xF6: 0x00;
}
//799
recolour_sprite {
	0x47..0x48: 0x60;
	0x49..0x4F: 0x61..0x67;
	0xF6: 0x00;
}
//800
recolour_sprite {
	0x47..0x4E: 0x10..0x17;
	0x4F: 0x0E;
	0xF6: 0x00;
}
//801
recolour_sprite {
	0x46..0x4F: 0x3C..0x45;
	0xF6: 0x00;
}
//802
recolour_sprite {
	0x0A..0x0B: 0x20..0x21;
	0x0C: 0x21;
	0x0D: 0x28;
	0x0E: 0xF5;
	0x0F: 0x15;
	0x10: 0xD8;
	0x11: 0x88;
	0x12..0x13: 0x10..0x11;
	0x14: 0x6A;
	0x15: 0x20;
	0x16: 0x13;
	0x17: 0x28;
	0x18: 0x68;
	0x19..0x1A: 0x18;
	0x1B..0x1C: 0x19..0x1A;
	0x1D..0x1E: 0x5B..0x5C;
	0x1F: 0x21;
	0x20..0x21: 0x58;
	0x22: 0x19;
	0x23: 0x58;
	0x24..0x25: 0x22..0x23;
	0x26..0x27: 0x23..0x24;
	0x28: 0x6A;
	0x29: 0xB2;
	0x2A: 0x29;
	0x2B: 0x48;
	0x2C..0x2E: 0x7B..0x7D;
	0x2F..0x30: 0x7D..0x7E;
	0x31: 0x21;
	0x32: 0x3F;
	0x33..0x34: 0x39;
	0x35..0x36: 0x68..0x69;
	0x37..0x38: 0x19..0x1A;
	0x39..0x3A: 0x22..0x23;
	0x3B: 0x23;
	0x3C: 0x46;
	0x3D: 0x69;
	0x3E..0x3F: 0x35..0x36;
	0x40..0x41: 0x3E..0x3F;
	0x42..0x43: 0x3F;
	0x44..0x45: 0x39..0x3A;
	0x47..0x48: 0x46..0x47;
	0x49: 0x47;
	0x4A: 0x70;
	0x4B: 0x49;
	0x4C: 0x7C;
	0x4D: 0x72;
	0x4E: 0x7D;
	0x4F: 0x23;
	0x51..0x52: 0x50;
	0x53..0x56: 0x51..0x54;
	0x57: 0x1B;
	0x58: 0xD8;
	0x59..0x5A: 0x60;
	0x5B..0x5D: 0x59..0x5B;
	0x5E..0x5F: 0x5B..0x5C;
	0x60: 0xD7;
	0x61..0x62: 0x60..0x61;
	0x63..0x66: 0x61..0x64;
	0x67: 0x21;
	0x68: 0x46;
	0x69: 0x68;
	0x6A: 0x88;
	0x6B: 0x18;
	0x6C..0x6D: 0x70;
	0x6E: 0x36;
	0x6F: 0x22;
	0x70: 0x47;
	0x71: 0x69;
	0x72..0x73: 0x70..0x71;
	0x74: 0x6C;
	0x75..0x76: 0x72..0x73;
	0x77..0x78: 0x23;
	0x79: 0x24;
	0x7A: 0x69;
	0x7B: 0x47;
	0x7C..0x7D: 0x70..0x71;
	0x7E: 0x22;
	0x7F: 0x6A;
	0x80..0x81: 0xD8;
	0x82: 0x80;
	0x83..0x84: 0x10;
	0x85: 0x83;
	0x86: 0x21;
	0x87: 0x28;
	0x88: 0xD8;
	0x89..0x8A: 0xAA;
	0x8B..0x8C: 0x89;
	0x8D: 0x8A;
	0x8E..0x8F: 0x84;
	0x90..0x91: 0xC6;
	0x92..0x93: 0x90;
	0x94: 0x91;
	0x95..0x96: 0xC9;
	0x97..0x98: 0x9D..0x9E;
	0x99: 0x14;
	0x9A..0x9B: 0x80;
	0x9C: 0x10;
	0x9D: 0x9A;
	0x9E..0xA1: 0x11..0x14;
	0xA2: 0x49;
	0xA3..0xA4: 0x2B;
	0xA5..0xA6: 0x4B..0x4C;
	0xA7: 0x7E;
	0xA8: 0x28;
	0xA9: 0xF5;
	0xAA..0xAF: 0x80..0x85;
	0xB0..0xB1: 0x85;
	0xB2: 0x46;
	0xB3..0xB4: 0xB2..0xB3;
	0xB5..0xB6: 0xB3..0xB4;
	0xB7..0xB8: 0xB4..0xB5;
	0xB9: 0xB5;
	0xBA..0xBB: 0x3E..0x3F;
	0xBC..0xBF: 0x3F;
	0xC0..0xC1: 0x3E..0x3F;
	0xC2..0xC3: 0x3F;
	0xC4: 0x38;
	0xC5: 0x24;
	0xC7..0xC9: 0xC6;
	0xCA..0xCD: 0x9A..0x9D;
	0xCE: 0x5A;
	0xCF: 0x54;
	0xD0: 0x5B;
	0xD1: 0xCE;
	0xD2: 0xD6;
	0xD3..0xD4: 0x9D;
	0xD5..0xD6: 0x9C;
	0xD8: 0xD7;
	0xD9..0xDD: 0xC8;
	0xDE..0xE2: 0xC9;
	0xE3..0xE7: 0xAB;
	0xE8..0xE9: 0xB5;
	0xEA..0xEB: 0x3E..0x3F;
	0xEC..0xEE: 0x3F;
	0xEF..0xF0: 0xB5;
	0xF1..0xF4: 0x3F;
	0xF5: 0x20;
}
//803
recolour_sprite {
	0x10: 0x58;
	0x11..0x12: 0x20..0x21;
	0x13: 0x28;
	0x14: 0xF5;
	0x15: 0x0A;
	0x16..0x17: 0x0C..0x0D;
	0x18: 0x88;
	0x19: 0x58;
	0x1A: 0x6A;
	0x1B..0x1C: 0x20..0x21;
	0x1D: 0xF5;
	0x1E: 0x0A;
	0x1F: 0x0C;
	0x22..0x23: 0x20..0x21;
	0x24: 0xF5;
	0x25: 0x0B;
	0x26..0x27: 0x0D..0x0E;
	0x29..0x2A: 0x20..0x21;
	0x2B: 0x28;
	0x2C: 0xF5;
	0x2D..0x31: 0x0B..0x0F;
	0x32..0x34: 0x0F;
	0x35: 0x58;
	0x36..0x37: 0x20..0x21;
	0x38: 0x28;
	0x39: 0xF5;
	0x3A: 0x0A;
	0x3B: 0x0C;
	0x3C: 0x58;
	0x3D: 0x20;
	0x3E: 0x28;
	0x3F: 0xF5;
	0x40: 0x0B;
	0x41..0x43: 0x0D..0x0F;
	0x44..0x45: 0x0F;
	0x46: 0xD8;
	0x47: 0x58;
	0x48: 0x6A;
	0x49: 0x20;
	0x4A: 0x28;
	0x4B: 0xF5;
	0x4C..0x4F: 0x0A..0x0D;
	0x50: 0x88;
	0x51: 0x58;
	0x52: 0x6A;
	0x53..0x54: 0x20..0x21;
	0x55: 0x28;
	0x56: 0xF5;
	0x57: 0x0A;
	0x59: 0x58;
	0x5A..0x5B: 0x20;
	0x5C: 0x21;
	0x5D: 0xF5;
	0x5E: 0x0A;
	0x5F: 0x0C;
	0x60: 0x88;
	0x61: 0x58;
	0x62..0x63: 0x20..0x21;
	0x64: 0x28;
	0x65: 0x0A;
	0x66..0x67: 0x0C..0x0D;
	0x68: 0xD8;
	0x69: 0x88;
	0x6B..0x6C: 0x20;
	0x6D: 0x21;
	0x6E: 0x28;
	0x6F: 0x0A;
	0x70: 0x58;
	0x71..0x72: 0x20..0x21;
	0x73: 0x28;
	0x74..0x77: 0x0A..0x0D;
	0x78..0x79: 0x0D..0x0E;
	0x7A: 0x6A;
	0x7B..0x7C: 0x20..0x21;
	0x7D: 0x28;
	0x7E..0x7F: 0x0A..0x0B;
	0x80: 0x58;
	0x81: 0x6A;
	0x82..0x83: 0x20..0x21;
	0x84: 0x28;
	0x85: 0x0A;
	0x86..0x87: 0x0C..0x0D;
	0x89: 0xF5;
	0x8A: 0x0A;
	0x8B..0x8C: 0x0C..0x0D;
	0x8D..0x8F: 0x0F;
	0x90: 0x20;
	0x91: 0x28;
	0x92..0x93: 0x0A..0x0B;
	0x94..0x95: 0x0D;
	0x96..0x97: 0x0E;
	0x98..0x99: 0x0F;
	0x9A..0x9B: 0x20;
	0x9C: 0x21;
	0x9D: 0x28;
	0x9E: 0x0A;
	0x9F..0xA0: 0x0C..0x0D;
	0xA1: 0x0F;
	0xA2: 0x0A;
	0xA3: 0x0D;
	0xA4..0xA9: 0x0F;
	0xAA: 0x21;
	0xAB: 0x28;
	0xAC: 0x0A;
	0xAD..0xAE: 0x0C..0x0D;
	0xAF..0xB1: 0x0F;
	0xB2: 0x88;
	0xB3: 0x20;
	0xB4: 0x28;
	0xB5: 0x0A;
	0xB6..0xB7: 0x0C..0x0D;
	0xB8..0xBF: 0x0F;
	0xC0..0xC1: 0x0C..0x0D;
	0xC2..0xC5: 0x0F;
	0xC6..0xC7: 0x20;
	0xC8: 0x21;
	0xC9: 0x28;
	0xCA..0xCB: 0x0A..0x0B;
	0xCC..0xCD: 0x0D;
	0xCE: 0xF5;
	0xCF: 0x0A;
	0xD0..0xD1: 0x0C..0x0D;
	0xD2: 0x0F;
	0xD3: 0x0E;
	0xD4: 0x0D;
	0xD5: 0x0C;
	0xD6: 0x0B;
	0xD9..0xDA: 0x20..0x21;
	0xDB: 0x21;
	0xDC..0xDD: 0x28;
	0xDE..0xE2: 0x0B..0x0F;
	0xE3..0xE7: 0x0D;
	0xE8..0xF0: 0x0F;
	0xF1..0xF3: 0x28;
	0xF4: 0x0F;
	0xF6: 0x00;
}
//804
recolour_sprite {
	0x0A..0x0B: 0x20..0x21;
	0x0C..0x0E: 0x28;
	0x0F: 0xF5;
	0x10: 0xD8;
	0x11: 0x88;
	0x12..0x14: 0x6A;
	0x15: 0x20;
	0x16..0x17: 0x28;
	0x18..0x19: 0xD7..0xD8;
	0x1A..0x1B: 0x88;
	0x1C..0x1D: 0x6A;
	0x1E: 0x20;
	0x1F: 0x28;
	0x20: 0x88;
	0x21: 0x6A;
	0x22: 0x88;
	0x23..0x24: 0x6A;
	0x25: 0x21;
	0x26: 0x28;
	0x27: 0xF5;
	0x28: 0x6A;
	0x29: 0x88;
	0x2A..0x2B: 0x6A;
	0x2C..0x2D: 0x20..0x21;
	0x2E..0x30: 0x28;
	0x31..0x34: 0xF5;
	0x35: 0xD8;
	0x36: 0x88;
	0x37..0x39: 0x6A;
	0x3A: 0x20;
	0x3B: 0x28;
	0x3C: 0xD8;
	0x3D: 0x88;
	0x3E..0x3F: 0x6A;
	0x40: 0x21;
	0x41..0x42: 0x28;
	0x43..0x45: 0xF5;
	0x46..0x47: 0xD7..0xD8;
	0x48..0x49: 0x88;
	0x4A..0x4B: 0x6A;
	0x4C..0x4D: 0x20..0x21;
	0x4E..0x4F: 0x28;
	0x50..0x51: 0xD7..0xD8;
	0x52..0x53: 0x88;
	0x54..0x56: 0x6A;
	0x57: 0x20;
	0x58..0x59: 0xD8;
	0x5A..0x5B: 0x88;
	0x5C..0x5D: 0x6A;
	0x5E: 0x20;
	0x5F: 0x28;
	0x60..0x61: 0xD7..0xD8;
	0x62: 0x88;
	0x63..0x64: 0x6A;
	0x65: 0x20;
	0x66..0x67: 0x28;
	0x68..0x69: 0xD7;
	0x6A..0x6C: 0x88;
	0x6D..0x6E: 0x6A;
	0x6F: 0x20;
	0x70: 0xD8;
	0x71: 0x88;
	0x72..0x73: 0x6A;
	0x74..0x75: 0x20..0x21;
	0x76..0x79: 0x28;
	0x7A..0x7B: 0x88;
	0x7C..0x7D: 0x6A;
	0x7E..0x7F: 0x20..0x21;
	0x80: 0xD8;
	0x81..0x82: 0x88;
	0x83..0x84: 0x6A;
	0x85: 0x20;
	0x86..0x87: 0x28;
	0x88: 0xD7;
	0x89: 0x6A;
	0x8A: 0x20;
	0x8B..0x8C: 0x28;
	0x8D..0x8F: 0xF5;
	0x90: 0x88;
	0x91: 0x6A;
	0x92..0x93: 0x20..0x21;
	0x94..0x96: 0x28;
	0x97..0x99: 0xF5;
	0x9A..0x9B: 0x88;
	0x9C..0x9D: 0x6A;
	0x9E: 0x20;
	0x9F..0xA0: 0x28;
	0xA1: 0xF5;
	0xA2: 0x20;
	0xA3: 0x28;
	0xA4..0xA9: 0xF5;
	0xAA..0xAB: 0x6A;
	0xAC: 0x20;
	0xAD..0xAE: 0x28;
	0xAF..0xB1: 0xF5;
	0xB2: 0xD7;
	0xB3: 0x88;
	0xB4: 0x6A;
	0xB5: 0x20;
	0xB6..0xB7: 0x28;
	0xB8..0xBF: 0xF5;
	0xC0..0xC1: 0x28;
	0xC2..0xC5: 0xF5;
	0xC6..0xC7: 0x88;
	0xC8..0xC9: 0x6A;
	0xCA..0xCB: 0x20..0x21;
	0xCC..0xCD: 0x28;
	0xCE: 0x6A;
	0xCF: 0x20;
	0xD0..0xD2: 0x28;
	0xD3: 0x21;
	0xD4: 0x20;
	0xD5: 0x6A;
	0xD6: 0x58;
	0xD8: 0xD7;
	0xD9: 0x88;
	0xDA..0xDD: 0x6A;
	0xDE: 0x21;
	0xDF..0xE1: 0x28;
	0xE2: 0xF5;
	0xE3..0xE7: 0x28;
	0xE8..0xF0: 0xF5;
	0xF1..0xF3: 0x58;
	0xF4: 0xF5;
	0xF5: 0x6A;
}
//1438
recolour_sprite {
	0x0A: 0x00;
	0x0B..0x35: 0x0A..0x34;
	0x36: 0x47;
	0x37..0x69: 0x36..0x68;
	0x6A: 0x46;
	0x6B..0x6D: 0x6A..0x6C;
	0x6E..0x6F: 0x4A..0x4B;
	0x70..0x72: 0x6F..0x71;
	0x73: 0x49;
	0x74: 0x73;
	0x75: 0x4C;
	0x76: 0x75;
	0x77..0x79: 0x4D..0x4F;
	0x7A..0x7B: 0x79..0x7A;
	0x7C: 0x48;
	0x7D..0xF5: 0x7C..0xF4;
}
//1439
recolour_sprite {
	0x0A: 0x00;
	0x0B..0x35: 0x0A..0x34;
	0x37..0x69: 0x36..0x68;
	0x6A: 0xD8;
	0x6B..0x6D: 0x6A..0x6C;
	0x6E..0x6F: 0x23..0x24;
	0x70..0x72: 0x6F..0x71;
	0x73: 0x22;
	0x74: 0x73;
	0x75: 0x24;
	0x76: 0x75;
	0x77..0x79: 0x25..0x27;
	0x7A..0x7B: 0x79..0x7A;
	0x7C: 0x35;
	0x7D..0xF5: 0x7C..0xF4;
}
Looking over them the bare earth (791) and church (1438, 1439) are pretty weird; there's not a lot of logic to them. It'd probably make sense to modify these in OpenGFX...
frosch
OpenTTD Developer
OpenTTD Developer
Posts: 988
Joined: 20 Dec 2006 13:31
Location: Aschaffenburg

Re: Zephyris' Houses in NML questions

Post by frosch »

Zephyris wrote:New question: Why do sprite sets in a sprite layout require the same number of sprites? Or is there a more subtle distinction I'm not aware of? For example:
This is a limitation of NML. Mixing spritesets of different sizes is only supported by OpenTTD after NML was designed, and NML has not been updated since.
Zephyris wrote:In totally different news, I wanted to modify the default recolouring sprites so made a reference of what they look like without modification. These should be correct, but I haven't tested them.
Why would you want to modify the default recolouring sprites? Just add new ones.
You can reference them in the sprite_layout.
Also, the original recolouring sprites are defined by the original graphics and won't be changed.

Also, when it comes to recolouring, use TTDViewer :)
https://dev.openttdcoop.org/projects/ttdviewer
Zephyris wrote: In NML a spritelayout can take parameters for offset in a sprite set, (...)
I would have thought you could use a similar approach to modify recolouring, eg:
Should work, looks like a bug in NML.

Also, if you want to disable recolouring, use the palette PALETTE_IDENTITY.
Zephyris wrote:New question: Is it intentional behaviour to be able to block removal of buildings by setting the local authority rating impact to greater than 1000? I'm not complaining (it would be very useful for landmark-type buildings) but I found it a little surprising.
It probably works, but usually you allow players to remove all houses. Removal by AIs and town-growth itself can be intentionally blocked via "HOUSE_FLAG_PROTECTED" or the "protected" callback.
michael blunck wrote:accessing town var 0x80
Town var 0x80 only really works for 256x256 maps.
⢇⡸⢸⠢⡇⡇⢎⡁⢎⡱⢸⡱⢸⣭⠀⢸⢜⢸⢸⣀⢸⣀⢸⣭⢸⡱⠀⢰⠭⡆⣫⠰⣉⢸⢸⠀⢰⠭⡆⡯⡆⢹⠁⠀⢐⠰⡁
User avatar
Zephyris
Tycoon
Tycoon
Posts: 2890
Joined: 16 May 2007 16:59

Re: Zephyris' Houses in NML questions

Post by Zephyris »

frosch wrote:This is a limitation of NML. Mixing spritesets of different sizes is only supported by OpenTTD after NML was designed, and NML has not been updated since.
Ah, ok, feature request submitted :)
frosch wrote:Why would you want to modify the default recolouring sprites? Just add new ones.
You can reference them in the sprite_layout.
I didn't have any luck with this; I'm using the house colour callback to switch recolour palettes.

Code of this type:

Code: Select all

recolour_sprite (recolour_sprite_greys) {
	0x46..0x4F: 0x04..0x0D; //Structure red/browns to greys
	0xC6..0xCD: 0x01..0x08; //Company colour 1 to dark greys
	0x50..0x57: 0x90..0x97; //Company colour 2 to dark blues
}

switch (FEAT_HOUSES, SELF, switch_house_redrecolour_random_paintedhouse, [
	(random_bits>>4)%7
]) {
	0: PALETTE_CC_WHITE;
	1..2: recolour_sprite_greys;
	3..6: PALETTE_STRUCT_WHITE;
	PALETTE_STRUCT_WHITE;
}

item(FEAT_HOUSES, item_house_thatched, 0) {
    property {
		substitute: 25;
		name: string(STR_HOUSE_THATCHED_NAME);
		population: 10;
		mail_multiplier: 2;
		accepted_cargos: [[PASS, 2], [MAIL, 1], [FOOD, 1]];
		local_authority_impact: 75;
		removal_cost_multiplier: 75;
		probability: 6;
		years_available: [0, 1950];
		availability_mask: [bitmask(TOWNZONE_EDGE), ALL_CLIMATES | bitmask(ABOVE_SNOWLINE)];
		random_colours: [COLOUR_WHITE, COLOUR_GREY, COLOUR_BROWN, COLOUR_DARK_GREEN];
		building_class: 10; //Detached class
    }

    graphics {
		construction_check: switch_house_thatched_constrcheck;
		colour: switch_house_redrecolour_random_paintedhouse;
		anim_control: switch_house_aminframe_4road;
		default: switch_house_thatched_constr;
    }
}
gets this error:

Code: Select all

Palette is not recognized as a valid palette.
Is the use of custom palettes restricted to static references in the sprite layouts?

Also, the original recolouring sprites are defined by the original graphics and won't be changed.
I'd argue the OpenGFX recolouring sprites could be modified; it'd make sense to me to alter the bare ground and church recolours...
frosch wrote:Should work, looks like a bug in NML.
Bug reported :)
frosch wrote:Town var 0x80 only really works for 256x256 maps.
What's the issue? Is it limited to a byte or similar? I'd like to have a random (or pseudorandom) variable for towns. As I understand it there are no random bits for towns?
User avatar
Zephyris
Tycoon
Tycoon
Posts: 2890
Joined: 16 May 2007 16:59

Re: Zephyris' Houses (and other things) in NML questions

Post by Zephyris »

I still want to use recolouring, but I still can't get it to work! Does anyone have any ideas about this?
User avatar
Quast65
Tycoon
Tycoon
Posts: 2654
Joined: 09 Oct 2011 13:51
Location: The Netherlands

Re: Zephyris' Houses (and other things) in NML questions

Post by Quast65 »

Zephyris wrote: 26 Jan 2018 12:30 I still want to use recolouring, but I still can't get it to work! Does anyone have any ideas about this?
Have you ever been able to get it to work?
I would like to try to have objects that randomly recolor the blue Company Colors, but some working examples (doesnt have to be objects) would be nice ;-)
Projects: http://www.tt-forums.net/viewtopic.php?f=26&t=57266
Screenshots: http://www.tt-forums.net/viewtopic.php?f=47&t=56959
Scenario of The Netherlands: viewtopic.php?f=60&t=87604

Winner of the following screenshot competitions:
sep 2012, jan 2013, apr 2013, aug 2013, mar 2014, mar 2016, oct 2020
All my work is released under GPL-license (either V2 or V3), if not clearly stated otherwise.
User avatar
Zephyris
Tycoon
Tycoon
Posts: 2890
Joined: 16 May 2007 16:59

Re: Zephyris' Houses (and other things) in NML questions

Post by Zephyris »

I haven't tested it recently (last 2 years) but no success last time I tried!
User avatar
Quast65
Tycoon
Tycoon
Posts: 2654
Joined: 09 Oct 2011 13:51
Location: The Netherlands

Re: Zephyris' Houses (and other things) in NML questions

Post by Quast65 »

Zephyris wrote: 19 Jan 2022 07:46 I haven't tested it recently (last 2 years) but no success last time I tried!
Over in this thread:
viewtopic.php?p=1251088#p1251088
2TallTyler wrote what he did to get it to work for his houses.
Sadly doesnt instantly do the trick for objects too, but it may possibly help you in the future.
Projects: http://www.tt-forums.net/viewtopic.php?f=26&t=57266
Screenshots: http://www.tt-forums.net/viewtopic.php?f=47&t=56959
Scenario of The Netherlands: viewtopic.php?f=60&t=87604

Winner of the following screenshot competitions:
sep 2012, jan 2013, apr 2013, aug 2013, mar 2014, mar 2016, oct 2020
All my work is released under GPL-license (either V2 or V3), if not clearly stated otherwise.
User avatar
OzTrans
Tycoon
Tycoon
Posts: 1675
Joined: 04 Mar 2005 01:07

Re: Zephyris' Houses (and other things) in NML questions

Post by OzTrans »

Zephyris wrote: 19 Jan 2022 07:46 I haven't tested it recently (last 2 years) but no success last time I tried!
Quast65 wrote: 18 Jan 2022 15:13 Have you ever been able to get it to work?
Recolouring of houses and objects is a no-brainer. I do that all the time (in NFO), and it works.

There is more than one way to skin that cat. You are probably mixing things up.

Now, I don't do NML, it is Not My Language; but you can send me the GRF (so I can get the NFO code) and I have a look where you are going wrong ...
michael blunck
Tycoon
Tycoon
Posts: 5948
Joined: 27 Apr 2005 07:09
Contact:

Re: Zephyris' Houses (and other things) in NML questions

Post by michael blunck »

Probably a bug in that nml (?).

I'm using recolouring of houses and objects in m4nfo (based on nfo) and it works.

regards
Michael
Image
Post Reply

Return to “NewGRF Technical Discussions”

Who is online

Users browsing this forum: Borg and 3 guests