diff --git a/grf/bordergen.py b/grf/bordergen.py new file mode 100644 index 0000000000..07305dd6e8 --- /dev/null +++ b/grf/bordergen.py @@ -0,0 +1,133 @@ +import math + +from PIL import Image + + +TILESHAPES = "sprites/tileshapes.png" +SPITE_MARGIN = 10 +TILEDATA = [ + [ 20, 20, 64, 31, -31, 7], + [ 20, 70, 64, 31, -31, 7], + [ 20, 120, 64, 23, -31, 7], + [ 20, 170, 64, 23, -31, 7], + [ 20, 220, 64, 31, -31, 7], + [ 20, 270, 64, 31, -31, 7], + [ 20, 320, 64, 23, -31, 7], + [ 20, 370, 64, 23, -31, 7], + [ 20, 420, 64, 39, -31, -1], + [ 20, 470, 64, 39, -31, -1], + [ 20, 520, 64, 31, -31, -1], + [ 20, 570, 64, 31, -31, -1], + [ 20, 620, 64, 39, -31, -1], + [ 20, 670, 64, 39, -31, -1], + [ 20, 720, 64, 31, -31, -1], + [ 20, 770, 64, 47, -31, -9], + [ 20, 820, 64, 15, -31, 7], + [ 20, 870, 64, 31, -31, -1], + [ 20, 920, 64, 31, -31, -1], +] + +def pointdist(x, y, p): + xx, yy = p + return math.hypot(xx - x, yy - y) + +def linedist(x, y, p1, p2): + x1, y1 = p1 + x2, y2 = p2 + return abs((y2 - y1) * x - (x2 - x1) * y + x2 * y1 - y2 * x1) / math.hypot(y2 - y1, x2 - x1) + +def gen_borders(tile, borders, corner): + D = 4 + w, h = tile.size + + res = tile.copy() + pixels = res.load() + + mx = w // 2 + my1, my2 = 0, 0 + for i in range(h): + if pixels[0, i]: + my1 = i + if pixels[w - 1, i]: + my2 = i + + ptop = (32, -1) # -.5 extra instead of adding .5 to pixels + pbottom = (32, h) + pleft = (0, my1) + pright = (64, my2) + for y in range(h): + for x in range(w): + if pixels[x, y] == 0: + continue + d = D + 1 + if borders & 1: + d = min(d, linedist(x, y, ptop, pleft)) + + if borders & 2: + d = min(d, linedist(x, y, ptop, pright)) + + if borders & 4: + d = min(d, linedist(x, y, pbottom, pright)) + + if borders & 8: + d = min(d, linedist(x, y, pbottom, pleft)) + + if corner: + d = min(d, pointdist(x, y, [None, ptop, pright, pbottom, pleft][corner])) + # d = D + 1 + # dxa, dxb, dya, dyb = 0, 0, 0, 0 + # if borders & 1 and x < mx and y <= my1: + # dxa, dya, d = -D, -D, min(d, x + 1, y + 1) + # if borders & 2 and x >= mx and y <= my2: + # dxb, dya, d = D, -D, min(d, w - x, y + 1) + # if borders & 4 and x >= mx and y > my2: + # dxb, dyb, d = D, D, min(d, w - x, h - y) + # if borders & 8 and x < mx and y > my1: + # dxa, dyb, d = -D, D, min(d, x + 1, h - y) + + # for j in range(max(0, y + dya), min(h, y + dyb + 1)): + # for i in range(max(0, x + dxa), min(w, x + dxb + 1)): + # if pixels[i, j] == 0: + # d = min(d, dist(i, j, x, y)) + # d = min(d, dist(x, y, 31, -1), dist(x, y, 32, -1)) + # d = min(d, dist(x, y, 31, h), dist(x, y, 32, h)) + # d = min(d, dist(x, y, -1, my1), dist(x, y, w, my2)) + if d <= D: + pixels[x, y] = 0x0f - int(d * 1.4) + else: + # pixels[x, y] = int(bool(pixels[x, y])) * 0xD7 + pixels[x, y] = 0 + + return res + +def process_tile(iimg, oimg, tiledata, x_ofs, y_ofs): + x, y, w, h, ox, oy = tiledata + tile = iimg.crop((x, y, x + w, y + h)) + + def add_sprite(res): + nonlocal x_ofs + oimg.paste(res, (x_ofs, y_ofs)) + print(f"[{x_ofs:4}, {y_ofs:4}, {w:2}, {h:2}, {ox:3}, {oy:3}]") + x_ofs += w + SPITE_MARGIN + + for borders in range(1, 16): + add_sprite(gen_borders(tile, borders, 0)) + + for corner in range(1, 5): + add_sprite(gen_borders(tile, 0, corner)) + + return h + + +iimg = Image.open(TILESHAPES) +oimg = iimg.crop((0, 0, 19 * (64 + SPITE_MARGIN) + SPITE_MARGIN, 789)) +oimg.load() +oimg.paste(0xf, (0, 0, oimg.width, oimg.height)) + +x_ofs = SPITE_MARGIN +y_ofs = SPITE_MARGIN +for p in TILEDATA: + h = process_tile(iimg, oimg, p, x_ofs, y_ofs) + y_ofs += h + SPITE_MARGIN +oimg.save('sprites/borderhighlight.png') +oimg.show() diff --git a/grf/cmclient.nml b/grf/cmclient.nml new file mode 100644 index 0000000000..2875aab6c5 --- /dev/null +++ b/grf/cmclient.nml @@ -0,0 +1,453 @@ +grf { + grfid: "CMC\01"; + name: string(STR_GRF_NAME); + desc: string(STR_GRF_DESCRIPTION); + version: 1; + min_compatible_version: 1; +} + +replace inner_highlight(10000, "sprites/innerhighlight00.png") { + [ 18, 8, 64, 31, -31, 7] + [ 98, 8, 64, 31, -31, 7] + [178, 8, 64, 23, -31, 7] + [258, 8, 64, 23, -31, 7] + [338, 8, 64, 31, -31, 7] + [418, 8, 64, 31, -31, 7] + [498, 8, 64, 23, -31, 7] + [578, 8, 64, 23, -31, 7] + [658, 8, 64, 39, -31, -1] + [ 2, 72, 64, 39, -31, -1] + [ 82, 72, 64, 31, -31, -1] + [162, 72, 64, 31, -31, -1] + [242, 72, 64, 39, -31, -1] + [322, 72, 64, 39, -31, -1] + [402, 72, 64, 31, -31, -1] + [482, 72, 64, 47, -31, -9] + [562, 72, 64, 15, -31, 7] + [642, 72, 64, 31, -31, -1] + [722, 72, 64, 31, -31, -1] + [ 2, 136, 20, 14, 1, 5] + [ 34, 136, 20, 20, 0, 0] + + // red + recolour_sprite { + 0x01..0x09: 0x00; + 0x0A..0x0B: 0xB6; + 0x0C..0x0D: 0xB7; + 0x0E..0x0F: 0xB8; + 0x10..0xFF: 0x00; + } + + // green + recolour_sprite { + 0x0A..0x0B: 0xCF; + 0x0C..0x0D: 0xD0; + 0x0E..0x0F: 0xD1; + } + + // black + recolour_sprite { + 0x0A..0x0B: 0x10; + 0x0C..0x0D: 0x11; + 0x0E..0x0F: 0x12; + } + + // ligth blue + recolour_sprite { + 0x0A..0x0B: 0x96; + 0x0C..0x0D: 0x97; + 0x0E..0x0F: 0x98; + } + + // orange + recolour_sprite { + 0x0A..0x0B: 0xB9; + 0x0C..0x0D: 0xBA; + 0x0E..0x0F: 0xBB; + } + + // white + recolour_sprite { + 0x0A..0x0B: 0x0D; + 0x0C..0x0D: 0x0E; + 0x0E..0x0F: 0x0F; + } + + // white (yellow) + recolour_sprite { + 0x0A..0x0B: 0x32; + 0x0C..0x0D: 0x33; + 0x0E..0x0F: 0x34; + } + + // white (purple) + recolour_sprite { + 0x0A..0x0B: 0xAC; + 0x0C..0x0D: 0xAD; + 0x0E..0x0F: 0xAE; + } +} + +replace border_highlight(10029, "sprites/borderhighlight.png") { + [ 10, 10, 64, 31, -31, 7] + [ 84, 10, 64, 31, -31, 7] + [ 158, 10, 64, 31, -31, 7] + [ 232, 10, 64, 31, -31, 7] + [ 306, 10, 64, 31, -31, 7] + [ 380, 10, 64, 31, -31, 7] + [ 454, 10, 64, 31, -31, 7] + [ 528, 10, 64, 31, -31, 7] + [ 602, 10, 64, 31, -31, 7] + [ 676, 10, 64, 31, -31, 7] + [ 750, 10, 64, 31, -31, 7] + [ 824, 10, 64, 31, -31, 7] + [ 898, 10, 64, 31, -31, 7] + [ 972, 10, 64, 31, -31, 7] + [1046, 10, 64, 31, -31, 7] + [1120, 10, 64, 31, -31, 7] + [1194, 10, 64, 31, -31, 7] + [1268, 10, 64, 31, -31, 7] + [1342, 10, 64, 31, -31, 7] + [ 10, 51, 64, 31, -31, 7] + [ 84, 51, 64, 31, -31, 7] + [ 158, 51, 64, 31, -31, 7] + [ 232, 51, 64, 31, -31, 7] + [ 306, 51, 64, 31, -31, 7] + [ 380, 51, 64, 31, -31, 7] + [ 454, 51, 64, 31, -31, 7] + [ 528, 51, 64, 31, -31, 7] + [ 602, 51, 64, 31, -31, 7] + [ 676, 51, 64, 31, -31, 7] + [ 750, 51, 64, 31, -31, 7] + [ 824, 51, 64, 31, -31, 7] + [ 898, 51, 64, 31, -31, 7] + [ 972, 51, 64, 31, -31, 7] + [1046, 51, 64, 31, -31, 7] + [1120, 51, 64, 31, -31, 7] + [1194, 51, 64, 31, -31, 7] + [1268, 51, 64, 31, -31, 7] + [1342, 51, 64, 31, -31, 7] + [ 10, 92, 64, 23, -31, 7] + [ 84, 92, 64, 23, -31, 7] + [ 158, 92, 64, 23, -31, 7] + [ 232, 92, 64, 23, -31, 7] + [ 306, 92, 64, 23, -31, 7] + [ 380, 92, 64, 23, -31, 7] + [ 454, 92, 64, 23, -31, 7] + [ 528, 92, 64, 23, -31, 7] + [ 602, 92, 64, 23, -31, 7] + [ 676, 92, 64, 23, -31, 7] + [ 750, 92, 64, 23, -31, 7] + [ 824, 92, 64, 23, -31, 7] + [ 898, 92, 64, 23, -31, 7] + [ 972, 92, 64, 23, -31, 7] + [1046, 92, 64, 23, -31, 7] + [1120, 92, 64, 23, -31, 7] + [1194, 92, 64, 23, -31, 7] + [1268, 92, 64, 23, -31, 7] + [1342, 92, 64, 23, -31, 7] + [ 10, 125, 64, 23, -31, 7] + [ 84, 125, 64, 23, -31, 7] + [ 158, 125, 64, 23, -31, 7] + [ 232, 125, 64, 23, -31, 7] + [ 306, 125, 64, 23, -31, 7] + [ 380, 125, 64, 23, -31, 7] + [ 454, 125, 64, 23, -31, 7] + [ 528, 125, 64, 23, -31, 7] + [ 602, 125, 64, 23, -31, 7] + [ 676, 125, 64, 23, -31, 7] + [ 750, 125, 64, 23, -31, 7] + [ 824, 125, 64, 23, -31, 7] + [ 898, 125, 64, 23, -31, 7] + [ 972, 125, 64, 23, -31, 7] + [1046, 125, 64, 23, -31, 7] + [1120, 125, 64, 23, -31, 7] + [1194, 125, 64, 23, -31, 7] + [1268, 125, 64, 23, -31, 7] + [1342, 125, 64, 23, -31, 7] + [ 10, 158, 64, 31, -31, 7] + [ 84, 158, 64, 31, -31, 7] + [ 158, 158, 64, 31, -31, 7] + [ 232, 158, 64, 31, -31, 7] + [ 306, 158, 64, 31, -31, 7] + [ 380, 158, 64, 31, -31, 7] + [ 454, 158, 64, 31, -31, 7] + [ 528, 158, 64, 31, -31, 7] + [ 602, 158, 64, 31, -31, 7] + [ 676, 158, 64, 31, -31, 7] + [ 750, 158, 64, 31, -31, 7] + [ 824, 158, 64, 31, -31, 7] + [ 898, 158, 64, 31, -31, 7] + [ 972, 158, 64, 31, -31, 7] + [1046, 158, 64, 31, -31, 7] + [1120, 158, 64, 31, -31, 7] + [1194, 158, 64, 31, -31, 7] + [1268, 158, 64, 31, -31, 7] + [1342, 158, 64, 31, -31, 7] + [ 10, 199, 64, 31, -31, 7] + [ 84, 199, 64, 31, -31, 7] + [ 158, 199, 64, 31, -31, 7] + [ 232, 199, 64, 31, -31, 7] + [ 306, 199, 64, 31, -31, 7] + [ 380, 199, 64, 31, -31, 7] + [ 454, 199, 64, 31, -31, 7] + [ 528, 199, 64, 31, -31, 7] + [ 602, 199, 64, 31, -31, 7] + [ 676, 199, 64, 31, -31, 7] + [ 750, 199, 64, 31, -31, 7] + [ 824, 199, 64, 31, -31, 7] + [ 898, 199, 64, 31, -31, 7] + [ 972, 199, 64, 31, -31, 7] + [1046, 199, 64, 31, -31, 7] + [1120, 199, 64, 31, -31, 7] + [1194, 199, 64, 31, -31, 7] + [1268, 199, 64, 31, -31, 7] + [1342, 199, 64, 31, -31, 7] + [ 10, 240, 64, 23, -31, 7] + [ 84, 240, 64, 23, -31, 7] + [ 158, 240, 64, 23, -31, 7] + [ 232, 240, 64, 23, -31, 7] + [ 306, 240, 64, 23, -31, 7] + [ 380, 240, 64, 23, -31, 7] + [ 454, 240, 64, 23, -31, 7] + [ 528, 240, 64, 23, -31, 7] + [ 602, 240, 64, 23, -31, 7] + [ 676, 240, 64, 23, -31, 7] + [ 750, 240, 64, 23, -31, 7] + [ 824, 240, 64, 23, -31, 7] + [ 898, 240, 64, 23, -31, 7] + [ 972, 240, 64, 23, -31, 7] + [1046, 240, 64, 23, -31, 7] + [1120, 240, 64, 23, -31, 7] + [1194, 240, 64, 23, -31, 7] + [1268, 240, 64, 23, -31, 7] + [1342, 240, 64, 23, -31, 7] + [ 10, 273, 64, 23, -31, 7] + [ 84, 273, 64, 23, -31, 7] + [ 158, 273, 64, 23, -31, 7] + [ 232, 273, 64, 23, -31, 7] + [ 306, 273, 64, 23, -31, 7] + [ 380, 273, 64, 23, -31, 7] + [ 454, 273, 64, 23, -31, 7] + [ 528, 273, 64, 23, -31, 7] + [ 602, 273, 64, 23, -31, 7] + [ 676, 273, 64, 23, -31, 7] + [ 750, 273, 64, 23, -31, 7] + [ 824, 273, 64, 23, -31, 7] + [ 898, 273, 64, 23, -31, 7] + [ 972, 273, 64, 23, -31, 7] + [1046, 273, 64, 23, -31, 7] + [1120, 273, 64, 23, -31, 7] + [1194, 273, 64, 23, -31, 7] + [1268, 273, 64, 23, -31, 7] + [1342, 273, 64, 23, -31, 7] + [ 10, 306, 64, 39, -31, -1] + [ 84, 306, 64, 39, -31, -1] + [ 158, 306, 64, 39, -31, -1] + [ 232, 306, 64, 39, -31, -1] + [ 306, 306, 64, 39, -31, -1] + [ 380, 306, 64, 39, -31, -1] + [ 454, 306, 64, 39, -31, -1] + [ 528, 306, 64, 39, -31, -1] + [ 602, 306, 64, 39, -31, -1] + [ 676, 306, 64, 39, -31, -1] + [ 750, 306, 64, 39, -31, -1] + [ 824, 306, 64, 39, -31, -1] + [ 898, 306, 64, 39, -31, -1] + [ 972, 306, 64, 39, -31, -1] + [1046, 306, 64, 39, -31, -1] + [1120, 306, 64, 39, -31, -1] + [1194, 306, 64, 39, -31, -1] + [1268, 306, 64, 39, -31, -1] + [1342, 306, 64, 39, -31, -1] + [ 10, 355, 64, 39, -31, -1] + [ 84, 355, 64, 39, -31, -1] + [ 158, 355, 64, 39, -31, -1] + [ 232, 355, 64, 39, -31, -1] + [ 306, 355, 64, 39, -31, -1] + [ 380, 355, 64, 39, -31, -1] + [ 454, 355, 64, 39, -31, -1] + [ 528, 355, 64, 39, -31, -1] + [ 602, 355, 64, 39, -31, -1] + [ 676, 355, 64, 39, -31, -1] + [ 750, 355, 64, 39, -31, -1] + [ 824, 355, 64, 39, -31, -1] + [ 898, 355, 64, 39, -31, -1] + [ 972, 355, 64, 39, -31, -1] + [1046, 355, 64, 39, -31, -1] + [1120, 355, 64, 39, -31, -1] + [1194, 355, 64, 39, -31, -1] + [1268, 355, 64, 39, -31, -1] + [1342, 355, 64, 39, -31, -1] + [ 10, 404, 64, 31, -31, -1] + [ 84, 404, 64, 31, -31, -1] + [ 158, 404, 64, 31, -31, -1] + [ 232, 404, 64, 31, -31, -1] + [ 306, 404, 64, 31, -31, -1] + [ 380, 404, 64, 31, -31, -1] + [ 454, 404, 64, 31, -31, -1] + [ 528, 404, 64, 31, -31, -1] + [ 602, 404, 64, 31, -31, -1] + [ 676, 404, 64, 31, -31, -1] + [ 750, 404, 64, 31, -31, -1] + [ 824, 404, 64, 31, -31, -1] + [ 898, 404, 64, 31, -31, -1] + [ 972, 404, 64, 31, -31, -1] + [1046, 404, 64, 31, -31, -1] + [1120, 404, 64, 31, -31, -1] + [1194, 404, 64, 31, -31, -1] + [1268, 404, 64, 31, -31, -1] + [1342, 404, 64, 31, -31, -1] + [ 10, 445, 64, 31, -31, -1] + [ 84, 445, 64, 31, -31, -1] + [ 158, 445, 64, 31, -31, -1] + [ 232, 445, 64, 31, -31, -1] + [ 306, 445, 64, 31, -31, -1] + [ 380, 445, 64, 31, -31, -1] + [ 454, 445, 64, 31, -31, -1] + [ 528, 445, 64, 31, -31, -1] + [ 602, 445, 64, 31, -31, -1] + [ 676, 445, 64, 31, -31, -1] + [ 750, 445, 64, 31, -31, -1] + [ 824, 445, 64, 31, -31, -1] + [ 898, 445, 64, 31, -31, -1] + [ 972, 445, 64, 31, -31, -1] + [1046, 445, 64, 31, -31, -1] + [1120, 445, 64, 31, -31, -1] + [1194, 445, 64, 31, -31, -1] + [1268, 445, 64, 31, -31, -1] + [1342, 445, 64, 31, -31, -1] + [ 10, 486, 64, 39, -31, -1] + [ 84, 486, 64, 39, -31, -1] + [ 158, 486, 64, 39, -31, -1] + [ 232, 486, 64, 39, -31, -1] + [ 306, 486, 64, 39, -31, -1] + [ 380, 486, 64, 39, -31, -1] + [ 454, 486, 64, 39, -31, -1] + [ 528, 486, 64, 39, -31, -1] + [ 602, 486, 64, 39, -31, -1] + [ 676, 486, 64, 39, -31, -1] + [ 750, 486, 64, 39, -31, -1] + [ 824, 486, 64, 39, -31, -1] + [ 898, 486, 64, 39, -31, -1] + [ 972, 486, 64, 39, -31, -1] + [1046, 486, 64, 39, -31, -1] + [1120, 486, 64, 39, -31, -1] + [1194, 486, 64, 39, -31, -1] + [1268, 486, 64, 39, -31, -1] + [1342, 486, 64, 39, -31, -1] + [ 10, 535, 64, 39, -31, -1] + [ 84, 535, 64, 39, -31, -1] + [ 158, 535, 64, 39, -31, -1] + [ 232, 535, 64, 39, -31, -1] + [ 306, 535, 64, 39, -31, -1] + [ 380, 535, 64, 39, -31, -1] + [ 454, 535, 64, 39, -31, -1] + [ 528, 535, 64, 39, -31, -1] + [ 602, 535, 64, 39, -31, -1] + [ 676, 535, 64, 39, -31, -1] + [ 750, 535, 64, 39, -31, -1] + [ 824, 535, 64, 39, -31, -1] + [ 898, 535, 64, 39, -31, -1] + [ 972, 535, 64, 39, -31, -1] + [1046, 535, 64, 39, -31, -1] + [1120, 535, 64, 39, -31, -1] + [1194, 535, 64, 39, -31, -1] + [1268, 535, 64, 39, -31, -1] + [1342, 535, 64, 39, -31, -1] + [ 10, 584, 64, 31, -31, -1] + [ 84, 584, 64, 31, -31, -1] + [ 158, 584, 64, 31, -31, -1] + [ 232, 584, 64, 31, -31, -1] + [ 306, 584, 64, 31, -31, -1] + [ 380, 584, 64, 31, -31, -1] + [ 454, 584, 64, 31, -31, -1] + [ 528, 584, 64, 31, -31, -1] + [ 602, 584, 64, 31, -31, -1] + [ 676, 584, 64, 31, -31, -1] + [ 750, 584, 64, 31, -31, -1] + [ 824, 584, 64, 31, -31, -1] + [ 898, 584, 64, 31, -31, -1] + [ 972, 584, 64, 31, -31, -1] + [1046, 584, 64, 31, -31, -1] + [1120, 584, 64, 31, -31, -1] + [1194, 584, 64, 31, -31, -1] + [1268, 584, 64, 31, -31, -1] + [1342, 584, 64, 31, -31, -1] + [ 10, 625, 64, 47, -31, -9] + [ 84, 625, 64, 47, -31, -9] + [ 158, 625, 64, 47, -31, -9] + [ 232, 625, 64, 47, -31, -9] + [ 306, 625, 64, 47, -31, -9] + [ 380, 625, 64, 47, -31, -9] + [ 454, 625, 64, 47, -31, -9] + [ 528, 625, 64, 47, -31, -9] + [ 602, 625, 64, 47, -31, -9] + [ 676, 625, 64, 47, -31, -9] + [ 750, 625, 64, 47, -31, -9] + [ 824, 625, 64, 47, -31, -9] + [ 898, 625, 64, 47, -31, -9] + [ 972, 625, 64, 47, -31, -9] + [1046, 625, 64, 47, -31, -9] + [1120, 625, 64, 47, -31, -9] + [1194, 625, 64, 47, -31, -9] + [1268, 625, 64, 47, -31, -9] + [1342, 625, 64, 47, -31, -9] + [ 10, 682, 64, 15, -31, 7] + [ 84, 682, 64, 15, -31, 7] + [ 158, 682, 64, 15, -31, 7] + [ 232, 682, 64, 15, -31, 7] + [ 306, 682, 64, 15, -31, 7] + [ 380, 682, 64, 15, -31, 7] + [ 454, 682, 64, 15, -31, 7] + [ 528, 682, 64, 15, -31, 7] + [ 602, 682, 64, 15, -31, 7] + [ 676, 682, 64, 15, -31, 7] + [ 750, 682, 64, 15, -31, 7] + [ 824, 682, 64, 15, -31, 7] + [ 898, 682, 64, 15, -31, 7] + [ 972, 682, 64, 15, -31, 7] + [1046, 682, 64, 15, -31, 7] + [1120, 682, 64, 15, -31, 7] + [1194, 682, 64, 15, -31, 7] + [1268, 682, 64, 15, -31, 7] + [1342, 682, 64, 15, -31, 7] + [ 10, 707, 64, 31, -31, -1] + [ 84, 707, 64, 31, -31, -1] + [ 158, 707, 64, 31, -31, -1] + [ 232, 707, 64, 31, -31, -1] + [ 306, 707, 64, 31, -31, -1] + [ 380, 707, 64, 31, -31, -1] + [ 454, 707, 64, 31, -31, -1] + [ 528, 707, 64, 31, -31, -1] + [ 602, 707, 64, 31, -31, -1] + [ 676, 707, 64, 31, -31, -1] + [ 750, 707, 64, 31, -31, -1] + [ 824, 707, 64, 31, -31, -1] + [ 898, 707, 64, 31, -31, -1] + [ 972, 707, 64, 31, -31, -1] + [1046, 707, 64, 31, -31, -1] + [1120, 707, 64, 31, -31, -1] + [1194, 707, 64, 31, -31, -1] + [1268, 707, 64, 31, -31, -1] + [1342, 707, 64, 31, -31, -1] + [ 10, 748, 64, 31, -31, -1] + [ 84, 748, 64, 31, -31, -1] + [ 158, 748, 64, 31, -31, -1] + [ 232, 748, 64, 31, -31, -1] + [ 306, 748, 64, 31, -31, -1] + [ 380, 748, 64, 31, -31, -1] + [ 454, 748, 64, 31, -31, -1] + [ 528, 748, 64, 31, -31, -1] + [ 602, 748, 64, 31, -31, -1] + [ 676, 748, 64, 31, -31, -1] + [ 750, 748, 64, 31, -31, -1] + [ 824, 748, 64, 31, -31, -1] + [ 898, 748, 64, 31, -31, -1] + [ 972, 748, 64, 31, -31, -1] + [1046, 748, 64, 31, -31, -1] + [1120, 748, 64, 31, -31, -1] + [1194, 748, 64, 31, -31, -1] + [1268, 748, 64, 31, -31, -1] + [1342, 748, 64, 31, -31, -1] +} \ No newline at end of file diff --git a/grf/lang/english.lng b/grf/lang/english.lng new file mode 100644 index 0000000000..0659e5d42d --- /dev/null +++ b/grf/lang/english.lng @@ -0,0 +1,3 @@ +##grflangid 0x01 +STR_GRF_NAME :CityMania Client Resourse Pack v1 +STR_GRF_DESCRIPTION :Provides additional resources for a CityMania patched client (citymania.org/downloads). Should be put in your client data folder. Do not add this to your game via NewGRF options, it may break something. diff --git a/grf/sprites/borderhighlight.png b/grf/sprites/borderhighlight.png new file mode 100644 index 0000000000..80da84a93d Binary files /dev/null and b/grf/sprites/borderhighlight.png differ diff --git a/grf/sprites/innerhighlight00.png b/grf/sprites/innerhighlight00.png new file mode 100644 index 0000000000..50698bbe79 Binary files /dev/null and b/grf/sprites/innerhighlight00.png differ diff --git a/grf/sprites/tileshapes.png b/grf/sprites/tileshapes.png new file mode 100644 index 0000000000..67980313cb Binary files /dev/null and b/grf/sprites/tileshapes.png differ