From 0a2a027385a8e15c0872e920f105119a0b84f6cd Mon Sep 17 00:00:00 2001 From: dP Date: Mon, 4 Nov 2019 02:30:54 +0300 Subject: [PATCH] Add nml and sprites for new cmclient.grf --- grf/bordergen.py | 133 +++++++++ grf/cmclient.nml | 453 +++++++++++++++++++++++++++++++ grf/lang/english.lng | 3 + grf/sprites/borderhighlight.png | Bin 0 -> 19669 bytes grf/sprites/innerhighlight00.png | Bin 0 -> 4666 bytes grf/sprites/tileshapes.png | Bin 0 -> 15951 bytes 6 files changed, 589 insertions(+) create mode 100644 grf/bordergen.py create mode 100644 grf/cmclient.nml create mode 100644 grf/lang/english.lng create mode 100644 grf/sprites/borderhighlight.png create mode 100644 grf/sprites/innerhighlight00.png create mode 100644 grf/sprites/tileshapes.png 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 0000000000000000000000000000000000000000..80da84a93d7a491513e2fafc1569350819cb6725 GIT binary patch literal 19669 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 literal 0 HcmV?d00001 diff --git a/grf/sprites/innerhighlight00.png b/grf/sprites/innerhighlight00.png new file mode 100644 index 0000000000000000000000000000000000000000..50698bbe79bbc521136fd7bb8ea9a4bd1dd36733 GIT binary patch literal 4666 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