/* 2 x 2 TEST */ spriteset(test2x2_spriteset_ground_0, "src/graphics/industries/groundtiles.png") { tmpl_ground_tile(360, 10) } spriteset(test2x2_spriteset_ground_0_snow, "src/graphics/industries/groundtiles.png") { tmpl_ground_tile(220, 10) } spriteset(test2x2_spriteset_ground_overlay_0, "src/graphics/industries/groundtiles.png") { tmpl_ground_tile(360, 10) } spriteset(test2x2_spriteset_ground_overlay_0_snow, "src/graphics/industries/groundtiles.png") { tmpl_ground_tile(220, 10) } spriteset(test2x2_spriteset_1_0) { [32, 0, 64, 168, -31, -137, ANIM | NOCROP, "src/graphics/industries/test2x2_1.png"] } spriteset(test2x2_spriteset_1_0_snow) { [32, 0, 64, 168, -31, -137, ANIM | NOCROP, "src/graphics/industries/test2x2_1_snow.png"] } spriteset(test2x2_spriteset_2_0) { [64, 0, 64, 184, -31, -153, ANIM | NOCROP, "src/graphics/industries/test2x2_1.png"] } spriteset(test2x2_spriteset_2_0_snow) { [64, 0, 64, 184, -31, -153, ANIM | NOCROP, "src/graphics/industries/test2x2_1_snow.png"] } spriteset(test2x2_spriteset_3_0) { [0, 0, 64, 184, -31, -153, ANIM | NOCROP, "src/graphics/industries/test2x2_1.png"] } spriteset(test2x2_spriteset_3_0_snow) { [0, 0, 64, 184, -31, -153, ANIM | NOCROP, "src/graphics/industries/test2x2_1_snow.png"] } spriteset(test2x2_spriteset_4_0) { [32, 0, 64, 200, -31, -169, ANIM | NOCROP, "src/graphics/industries/test2x2_1.png"] } spriteset(test2x2_spriteset_4_0_snow) { [32, 0, 64, 200, -31, -169, ANIM | NOCROP, "src/graphics/industries/test2x2_1_snow.png"] } spriteset(test2x2_spriteset_5_0) { [165, 0, 64, 168, -31, -137, ANIM | NOCROP, "src/graphics/industries/test2x2_1.png"] } spriteset(test2x2_spriteset_5_0_snow) { [165, 0, 64, 168, -31, -137, ANIM | NOCROP, "src/graphics/industries/test2x2_1_snow.png"] } spriteset(test2x2_spriteset_6_0) { [197, 0, 64, 184, -31, -153, ANIM | NOCROP, "src/graphics/industries/test2x2_1.png"] } spriteset(test2x2_spriteset_6_0_snow) { [197, 0, 64, 184, -31, -153, ANIM | NOCROP, "src/graphics/industries/test2x2_1_snow.png"] } spriteset(test2x2_spriteset_7_0) { [133, 0, 64, 184, -31, -153, ANIM | NOCROP, "src/graphics/industries/test2x2_1.png"] } spriteset(test2x2_spriteset_7_0_snow) { [133, 0, 64, 184, -31, -153, ANIM | NOCROP, "src/graphics/industries/test2x2_1_snow.png"] } spriteset(test2x2_spriteset_8_0) { [165, 0, 64, 200, -31, -169, ANIM | NOCROP, "src/graphics/industries/test2x2_1.png"] } spriteset(test2x2_spriteset_8_0_snow) { [165, 0, 64, 200, -31, -169, ANIM | NOCROP, "src/graphics/industries/test2x2_1_snow.png"] } spritelayout test2x2_spritelayout_1 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; /* recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT;*/ } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x2_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x2_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x2_spriteset_1_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x2_spriteset_1_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x2_spriteset_1_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x2_spriteset_1_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x2_spriteset_1_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x2_spritelayout_2 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x2_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x2_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x2_spriteset_2_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x2_spriteset_2_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x2_spriteset_2_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x2_spriteset_2_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x2_spriteset_2_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x2_spritelayout_3 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x2_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x2_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x2_spriteset_3_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x2_spriteset_3_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x2_spriteset_3_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x2_spriteset_3_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x2_spriteset_3_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x2_spritelayout_4 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x2_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x2_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x2_spriteset_4_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x2_spriteset_4_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x2_spriteset_4_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x2_spriteset_4_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x2_spriteset_4_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x2_spritelayout_5 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x2_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x2_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x2_spriteset_5_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x2_spriteset_5_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x2_spriteset_5_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x2_spriteset_5_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x2_spriteset_5_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x2_spritelayout_6 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x2_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x2_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x2_spriteset_6_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x2_spriteset_6_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x2_spriteset_6_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x2_spriteset_6_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x2_spriteset_6_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x2_spritelayout_7 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x2_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x2_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x2_spriteset_7_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x2_spriteset_7_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x2_spriteset_7_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x2_spriteset_7_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x2_spriteset_7_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x2_spritelayout_8 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x2_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x2_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x2_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x2_spriteset_8_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x2_spriteset_8_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x2_spriteset_8_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x2_spriteset_8_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x2_spriteset_8_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } switch(FEAT_INDUSTRYTILES, SELF, test2x2_industry_layout_1_graphics_switch, relative_pos) { relative_coord(0, 0): test2x2_spritelayout_1; relative_coord(0, 1): test2x2_spritelayout_2; relative_coord(1, 0): test2x2_spritelayout_3; relative_coord(1, 1): test2x2_spritelayout_4; test2x2_spritelayout_2; // a default is needed, but should never be reached, layout definitions are explicit } switch(FEAT_INDUSTRYTILES, SELF, test2x2_industry_layout_2_graphics_switch, relative_pos) { relative_coord(0, 0): test2x2_spritelayout_5; relative_coord(0, 1): test2x2_spritelayout_6; relative_coord(1, 0): test2x2_spritelayout_7; relative_coord(1, 1): test2x2_spritelayout_8; test2x2_spritelayout_5; // a default is needed, but should never be reached, layout definitions are explicit } switch(FEAT_INDUSTRYTILES, PARENT, test2x2_industry_graphics_switch_layouts, layout_num) { 1: test2x2_industry_layout_1_graphics_switch; 2: test2x2_industry_layout_2_graphics_switch; test2x2_industry_layout_2_graphics_switch; // default } switch(FEAT_INDUSTRYTILES, SELF, test2x2_industry_construction_state_graphics_switch, construction_state) { 0..2: spritelayout_default_construction_states; test2x2_industry_graphics_switch_layouts; // default } switch(FEAT_INDUSTRYTILES, PARENT, test2x2_industry_master_graphics_switch, STORE_TEMP(random_bits, 0)) { test2x2_industry_construction_state_graphics_switch; // default } switch (FEAT_INDUSTRYTILES, SELF, test2x2_tile_fence_station, [ STORE_TEMP( LOAD_TEMP(9) * (nearby_tile_class(-1, 0) != TILE_CLASS_STATION), 9), STORE_TEMP( LOAD_TEMP(10) * (nearby_tile_class( 0, -1) != TILE_CLASS_STATION), 10), STORE_TEMP( LOAD_TEMP(11) * (nearby_tile_class( 0, 1) != TILE_CLASS_STATION), 11), STORE_TEMP( LOAD_TEMP(12) * (nearby_tile_class( 1, 0) != TILE_CLASS_STATION), 12), ]) { test2x2_industry_master_graphics_switch; } switch (FEAT_INDUSTRYTILES, SELF, test2x2_tile_fence_industry, [ STORE_TEMP( LOAD_TEMP(9) * !nearby_tile_is_same_industry(-1, 0), 9), STORE_TEMP( LOAD_TEMP(10) * !nearby_tile_is_same_industry( 0, -1), 10), STORE_TEMP( LOAD_TEMP(11) * !nearby_tile_is_same_industry( 0, 1), 11), STORE_TEMP( LOAD_TEMP(12) * !nearby_tile_is_same_industry( 1, 0), 12), ]) { test2x2_tile_fence_station; } switch (FEAT_INDUSTRYTILES, SELF, test2x2_tile_fences, [ STORE_TEMP( 0, 1), STORE_TEMP( 0, 2), STORE_TEMP( 0, 3), STORE_TEMP( 0, 4), STORE_TEMP( 1, 9), STORE_TEMP( 1, 10), STORE_TEMP( 1, 11), STORE_TEMP( 1, 12), STORE_TEMP( 0, 5), STORE_TEMP( 0, 6), STORE_TEMP( 0, 7), STORE_TEMP( 0, 8), ]) { test2x2_tile_fence_industry; } /* ************************************************* * Definition of the industry tile and its callbacks * *************************************************/ switch(FEAT_INDUSTRYTILES, SELF, test2x2_nearby_industry, (nearby_tile_class( 1, 1) == TILE_CLASS_INDUSTRY) | (nearby_tile_class( 1, 0) == TILE_CLASS_INDUSTRY) | (nearby_tile_class( 1, -1) == TILE_CLASS_INDUSTRY) | (nearby_tile_class( 0, -1) == TILE_CLASS_INDUSTRY) | (nearby_tile_class(-1, -1) == TILE_CLASS_INDUSTRY) | (nearby_tile_class(-1, 0) == TILE_CLASS_INDUSTRY) | (nearby_tile_class(-1, 1) == TILE_CLASS_INDUSTRY) | (nearby_tile_class( 0, 1) == TILE_CLASS_INDUSTRY)) { 1: return CB_RESULT_LOCATION_DISALLOW; return CB_RESULT_LOCATION_ALLOW; } switch (FEAT_INDUSTRYTILES, PARENT, test2x2_player_check, ( (((extra_callback_info2 & 0xFF00) >> 8) == IND_CREATION_FUND) || (((extra_callback_info2 & 0xFF00) >> 8) == IND_CREATION_PROSPECT) ) ) { 1: return CB_RESULT_LOCATION_ALLOW; test2x2_nearby_industry; } switch (FEAT_INDUSTRYTILES, SELF, test2x2_location_check, nearby_tile_slope(0,0) == SLOPE_FLAT) { 1: test2x2_player_check; return CB_RESULT_LOCATION_DISALLOW; } item(FEAT_INDUSTRYTILES, test2x2_tile, 123) { property { substitute: 0; accepted_cargos: [[FOOD, 4], [MNSP, 4]]; land_shape_flags: bitmask(LSF_ONLY_ON_FLAT_LAND); animation_triggers: bitmask(ANIM_TRIGGER_INDTILE_CONSTRUCTION_STATE); } graphics { tile_check: test2x2_location_check; test2x2_tile_fences; } } /* ************************************************* * Definition of the industry layouts * *************************************************/ tilelayout test2x2_industry_layout_1_tilelayout { 0, 0: test2x2_tile; 0, 1: test2x2_tile; 1, 0: test2x2_tile; 1, 1: test2x2_tile; } tilelayout test2x2_industry_layout_2_tilelayout { 0, 0: test2x2_tile; 0, 1: test2x2_tile; 1, 0: test2x2_tile; 1, 1: test2x2_tile; } /* ************************************************* * Definition of the industry * *************************************************/ produce(test2x2_production, waiting_cargo_1, // should be 0 waiting_cargo_2, // should be 0 waiting_cargo_3, // should be 0 LOAD_TEMP(1), // we stored output here 0, // no 2nd output 0 // don't repeat ); switch(FEAT_INDUSTRIES, PARENT, test2x2_produce, [STORE_TEMP(((population + 11) / (12 * 7)), 1)]) { 0: test2x2_production; test2x2_production; } switch (FEAT_INDUSTRIES, SELF, test2x2_town_distance, town_manhattan_dist(0, 0)) { 5 .. 35: return CB_RESULT_LOCATION_ALLOW; return CB_RESULT_LOCATION_DISALLOW; } item(FEAT_INDUSTRIES, test2x2, 91) { property { substitute: 0; life_type: 4; closure_msg: TTD_STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS; prod_increase_msg: TTD_STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL; prod_decrease_msg: TTD_STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL; new_ind_msg: TTD_STR_NEWS_INDUSTRY_CONSTRUCTION; min_cargo_distr: 5; map_colour: 83; spec_flags: bitmask(IND_FLAG_MILITARY_AIRPLANE_CAN_EXPLODE); layouts: [ test2x2_industry_layout_1_tilelayout, test2x2_industry_layout_2_tilelayout, ]; conflicting_ind_types: []; // set this prop empty, FIRS has it's own better checks for this name: string(STR_IND_TEST2X2); nearby_station_name: string(STR_STATION, string(STR_TOWN), string(STR_STATION_REFINERY)); prod_multiplier: [0, 0]; input_multiplier_1: [0, 0]; input_multiplier_2: [0, 0]; input_multiplier_3: [0, 0]; prob_random: 20; prob_in_game: 8; prospect_chance: 0.75; fund_cost_multiplier: 140; remove_cost_multiplier: 0; accept_cargo_types: [FOOD,MNSP]; prod_cargo_types: []; } } item(FEAT_INDUSTRIES, test2x2, 91) { graphics { location_check: test2x2_town_distance; produce_256_ticks: test2x2_produce; // add this line as well extra_text_industry: return string(STR_EXTRA_TEST2X2); } } /* END 2 x 2 TEST */ /* 2 x 3 TEST */ spriteset(test2x3_spriteset_ground_0, "src/graphics/industries/groundtiles.png") { tmpl_ground_tile(360, 10) } spriteset(test2x3_spriteset_ground_0_snow, "src/graphics/industries/groundtiles.png") { tmpl_ground_tile(220, 10) } spriteset(test2x3_spriteset_ground_overlay_0, "src/graphics/industries/groundtiles.png") { tmpl_ground_tile(360, 10) } spriteset(test2x3_spriteset_ground_overlay_0_snow, "src/graphics/industries/groundtiles.png") { tmpl_ground_tile(220, 10) } spriteset(test2x3_spriteset_1_0) { [64, 0, 64, 266, -31, -236, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_1_0_snow) { [64, 0, 64, 266, -31, -236, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_2_0) { [96, 0, 64, 282, -31, -252, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_2_0_snow) { [96, 0, 64, 282, -31, -252, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_3_0) { [32, 0, 64, 282, -31, -252, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_3_0_snow) { [32, 0, 64, 282, -31, -252, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_4_0) { [64, 0, 64, 298, -31, -268, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_4_0_snow) { [64, 0, 64, 298, -31, -268, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_5_0) { [0, 0, 64, 298, -31, -268, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_5_0_snow) { [64, 0, 64, 298, -31, -268, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_6_0) { [32, 0, 64, 314, -31, -284, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_6_0_snow) { [32, 0, 64, 314, -31, -284, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_7_0) { [202, 0, 64, 266, -31, -236, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_7_0_snow) { [202, 0, 64, 266, -31, -236, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_8_0) { [170, 0, 64, 282, -31, -252, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_8_0_snow) { [170, 0, 64, 282, -31, -252, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_9_0) { [234, 0, 64, 282, -31, -252, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_9_0_snow) { [234, 0, 64, 282, -31, -252, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_10_0) { [202, 0, 64, 298, -31, -268, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_10_0_snow) { [202, 0, 64, 298, -31, -268, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_11_0) { [266, 0, 64, 298, -31, -268, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_11_0_snow) { [266, 0, 64, 298, -31, -268, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spriteset(test2x3_spriteset_12_0) { [234, 0, 64, 314, -31, -284, ANIM | NOCROP, "src/graphics/industries/test2x3_1.png"] } spriteset(test2x3_spriteset_12_0_snow) { [234, 0, 64, 314, -31, -284, ANIM | NOCROP, "src/graphics/industries/test2x3_1_snow.png"] } spritelayout test2x3_spritelayout_1 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; /* recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT;*/ } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_1_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_1_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_1_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_1_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_1_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_2 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_2_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_2_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_2_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_2_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_2_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_3 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_3_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_3_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_3_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_3_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_3_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_4 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_4_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_4_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_4_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_4_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_4_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_5 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_5_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_5_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_5_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_5_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_5_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_6 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_6_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_6_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_6_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_6_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_6_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_7 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_7_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_7_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_7_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_7_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_7_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_8 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_8_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_8_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_8_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_8_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_8_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_9 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_9_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_9_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_9_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_9_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_9_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_10 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_10_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_10_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_6_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_10_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_10_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_11 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_11_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_11_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_11_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_11_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_11_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } spritelayout test2x3_spritelayout_12 { // generic ground (terrain aware / climate aware) ground { sprite: GROUNDSPRITE_NORMAL ; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; } childsprite { sprite: GROUNDSPRITE_DESERT; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || (climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) != TILETYPE_DESERT); } childsprite { sprite: GROUNDSPRITE_DESERT_1_2; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_TROPIC) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_DESERT)) || ((climate == CLIMATE_TROPIC) && (nearby_tile_terrain_type(0, 0) == TILETYPE_NORMAL) && ((nearby_tile_terrain_type( 1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type(-1, 0) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0, 1) != TILETYPE_DESERT) && (nearby_tile_terrain_type( 0,-1) != TILETYPE_DESERT) ) ); } childsprite { sprite: GROUNDSPRITE_SNOW_4_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && (nearby_tile_height(0, 0) < (snowline_height + 2)); } childsprite { sprite: GROUNDSPRITE_SNOW_3_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 2))); } childsprite { sprite: GROUNDSPRITE_SNOW_2_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height + 0)) || (nearby_tile_height(0, 0) >= (snowline_height + 1))); } childsprite { sprite: GROUNDSPRITE_SNOW_1_4; recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; always_draw: 1; hide_sprite: (climate != CLIMATE_ARCTIC) || (climate == CLIMATE_ARCTIC) && ((nearby_tile_height(0, 0) < (snowline_height - 1)) || (nearby_tile_height(0, 0) >= (snowline_height + 0))); } // industry-specific ground (snow aware) // normal childsprite { sprite: test2x3_spriteset_ground_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type == TILETYPE_SNOW); always_draw: 1; } // snow childsprite { sprite: test2x3_spriteset_ground_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } childsprite { sprite: test2x3_spriteset_ground_overlay_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; hide_sprite: (terrain_type != TILETYPE_SNOW); always_draw: 1; } // construction stages - optional // construction states (no snow awareness) building { sprite: test2x3_spriteset_12_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 0); } building { sprite: test2x3_spriteset_12_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 1); } building { sprite: test2x3_spriteset_12_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 2); } // buildings (snow aware) building { sprite: test2x3_spriteset_12_0(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type == TILETYPE_SNOW) ; } building { sprite: test2x3_spriteset_12_0_snow(0* animation_frame); recolour_mode: RECOLOUR_REMAP; palette: PALETTE_USE_DEFAULT; xoffset: 0; yoffset: 0; zoffset: 0; xextent: 16; yextent: 16; zextent: 16; always_draw: 0; hide_sprite: (construction_state != 3) || (terrain_type != TILETYPE_SNOW) ; } } switch(FEAT_INDUSTRYTILES, SELF, test2x3_industry_layout_1_graphics_switch, relative_pos) { relative_coord(0, 0): test2x3_spritelayout_1; relative_coord(0, 1): test2x3_spritelayout_2; relative_coord(1, 0): test2x3_spritelayout_3; relative_coord(1, 1): test2x3_spritelayout_4; relative_coord(2, 0): test2x3_spritelayout_5; relative_coord(2, 1): test2x3_spritelayout_6; test2x3_spritelayout_2; // a default is needed, but should never be reached, layout definitions are explicit } switch(FEAT_INDUSTRYTILES, SELF, test2x3_industry_layout_2_graphics_switch, relative_pos) { relative_coord(0, 0): test2x3_spritelayout_7; relative_coord(1, 0): test2x3_spritelayout_8; relative_coord(0, 1): test2x3_spritelayout_9; relative_coord(1, 1): test2x3_spritelayout_10; relative_coord(0, 2): test2x3_spritelayout_11; relative_coord(1, 2): test2x3_spritelayout_12; test2x3_spritelayout_5; // a default is needed, but should never be reached, layout definitions are explicit } switch(FEAT_INDUSTRYTILES, PARENT, test2x3_industry_graphics_switch_layouts, layout_num) { 1: test2x3_industry_layout_1_graphics_switch; 2: test2x3_industry_layout_2_graphics_switch; test2x3_industry_layout_2_graphics_switch; // default } switch(FEAT_INDUSTRYTILES, SELF, test2x3_industry_construction_state_graphics_switch, construction_state) { 0..2: spritelayout_default_construction_states; test2x3_industry_graphics_switch_layouts; // default } switch(FEAT_INDUSTRYTILES, PARENT, test2x3_industry_master_graphics_switch, STORE_TEMP(random_bits, 0)) { test2x3_industry_construction_state_graphics_switch; // default } switch (FEAT_INDUSTRYTILES, SELF, test2x3_tile_fence_station, [ STORE_TEMP( LOAD_TEMP(9) * (nearby_tile_class(-1, 0) != TILE_CLASS_STATION), 9), STORE_TEMP( LOAD_TEMP(10) * (nearby_tile_class( 0, -1) != TILE_CLASS_STATION), 10), STORE_TEMP( LOAD_TEMP(11) * (nearby_tile_class( 0, 1) != TILE_CLASS_STATION), 11), STORE_TEMP( LOAD_TEMP(12) * (nearby_tile_class( 1, 0) != TILE_CLASS_STATION), 12), ]) { test2x3_industry_master_graphics_switch; } switch (FEAT_INDUSTRYTILES, SELF, test2x3_tile_fence_industry, [ STORE_TEMP( LOAD_TEMP(9) * !nearby_tile_is_same_industry(-1, 0), 9), STORE_TEMP( LOAD_TEMP(10) * !nearby_tile_is_same_industry( 0, -1), 10), STORE_TEMP( LOAD_TEMP(11) * !nearby_tile_is_same_industry( 0, 1), 11), STORE_TEMP( LOAD_TEMP(12) * !nearby_tile_is_same_industry( 1, 0), 12), ]) { test2x3_tile_fence_station; } switch (FEAT_INDUSTRYTILES, SELF, test2x3_tile_fences, [ STORE_TEMP( 0, 1), STORE_TEMP( 0, 2), STORE_TEMP( 0, 3), STORE_TEMP( 0, 4), STORE_TEMP( 1, 9), STORE_TEMP( 1, 10), STORE_TEMP( 1, 11), STORE_TEMP( 1, 12), STORE_TEMP( 0, 5), STORE_TEMP( 0, 6), STORE_TEMP( 0, 7), STORE_TEMP( 0, 8), ]) { test2x3_tile_fence_industry; } /* ************************************************* * Definition of the industry tile and its callbacks * *************************************************/ switch(FEAT_INDUSTRYTILES, SELF, test2x3_nearby_industry, (nearby_tile_class( 1, 1) == TILE_CLASS_INDUSTRY) | (nearby_tile_class( 1, 0) == TILE_CLASS_INDUSTRY) | (nearby_tile_class( 1, -1) == TILE_CLASS_INDUSTRY) | (nearby_tile_class( 0, -1) == TILE_CLASS_INDUSTRY) | (nearby_tile_class(-1, -1) == TILE_CLASS_INDUSTRY) | (nearby_tile_class(-1, 0) == TILE_CLASS_INDUSTRY) | (nearby_tile_class(-1, 1) == TILE_CLASS_INDUSTRY) | (nearby_tile_class( 0, 1) == TILE_CLASS_INDUSTRY)) { 1: return CB_RESULT_LOCATION_DISALLOW; return CB_RESULT_LOCATION_ALLOW; } switch (FEAT_INDUSTRYTILES, PARENT, test2x3_player_check, ( (((extra_callback_info2 & 0xFF00) >> 8) == IND_CREATION_FUND) || (((extra_callback_info2 & 0xFF00) >> 8) == IND_CREATION_PROSPECT) ) ) { 1: return CB_RESULT_LOCATION_ALLOW; test2x3_nearby_industry; } switch (FEAT_INDUSTRYTILES, SELF, test2x3_location_check, nearby_tile_slope(0,0) == SLOPE_FLAT) { 1: test2x3_player_check; return CB_RESULT_LOCATION_DISALLOW; } item(FEAT_INDUSTRYTILES, test2x3_tile, 150) { property { substitute: 0; accepted_cargos: [[FOOD, 4], [MNSP, 4]]; land_shape_flags: bitmask(LSF_ONLY_ON_FLAT_LAND); animation_triggers: bitmask(ANIM_TRIGGER_INDTILE_CONSTRUCTION_STATE); } graphics { tile_check: test2x3_location_check; test2x3_tile_fences; } } /* ************************************************* * Definition of the industry layouts * *************************************************/ tilelayout test2x3_industry_layout_1_tilelayout { 0, 0: test2x3_tile; 0, 1: test2x3_tile; 1, 0: test2x3_tile; 1, 1: test2x3_tile; 2, 0: test2x3_tile; 2, 1: test2x3_tile; } tilelayout test2x3_industry_layout_2_tilelayout { 0, 0: test2x3_tile; 1, 0: test2x3_tile; 0, 1: test2x3_tile; 1, 1: test2x3_tile; 0, 2: test2x3_tile; 1, 2: test2x3_tile; } /* ************************************************* * Definition of the industry * *************************************************/ produce(test2x3_production, waiting_cargo_1, // should be 0 waiting_cargo_2, // should be 0 waiting_cargo_3, // should be 0 LOAD_TEMP(1), // we stored output here 0, // no 2nd output 0 // don't repeat ); switch(FEAT_INDUSTRIES, PARENT, test2x3_produce, [STORE_TEMP(((population + 11) / (12 * 7)), 1)]) { 0: test2x3_production; test2x3_production; } switch (FEAT_INDUSTRIES, SELF, test2x3_town_distance, town_manhattan_dist(0, 0)) { 5 .. 35: return CB_RESULT_LOCATION_ALLOW; return CB_RESULT_LOCATION_DISALLOW; } item(FEAT_INDUSTRIES, test, 118) { property { substitute: 0; life_type: 4; closure_msg: TTD_STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS; prod_increase_msg: TTD_STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL; prod_decrease_msg: TTD_STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL; new_ind_msg: TTD_STR_NEWS_INDUSTRY_CONSTRUCTION; min_cargo_distr: 5; map_colour: 83; spec_flags: bitmask(IND_FLAG_MILITARY_AIRPLANE_CAN_EXPLODE); layouts: [ test2x3_industry_layout_1_tilelayout, test2x3_industry_layout_2_tilelayout, ]; conflicting_ind_types: []; // set this prop empty, FIRS has it's own better checks for this name: string(STR_IND_TEST2X3); nearby_station_name: string(STR_STATION, string(STR_TOWN), string(STR_STATION_REFINERY)); prod_multiplier: [0, 0]; input_multiplier_1: [0, 0]; input_multiplier_2: [0, 0]; input_multiplier_3: [0, 0]; prob_random: 20; prob_in_game: 8; prospect_chance: 0.75; fund_cost_multiplier: 140; remove_cost_multiplier: 0; accept_cargo_types: [FOOD,MNSP]; prod_cargo_types: []; } } item(FEAT_INDUSTRIES, test, 118) { graphics { location_check: test2x3_town_distance; //produce_256_ticks: test2x3_produce; // add this line as well //extra_text_industry: return string(STR_EXTRA_TEST2X3); } } /* END 2 X 3 TEST */