From 4d88eb5f612f6d276b47f2b640e2854b722afcb7 Mon Sep 17 00:00:00 2001 From: Francisco Modesto Date: Mon, 27 Apr 2026 09:29:40 +0100 Subject: [PATCH 1/3] Add: Bridge (feature 0x06) support --- examples/bridge/example_bridge.nml | 266 +++++++++++ examples/bridge/gfx/ramps_wood_rail_256.png | Bin 0 -> 53475 bytes examples/bridge/gfx/ramps_wood_rail_64.png | Bin 0 -> 4425 bytes examples/bridge/gfx/wood_rail_256.png | Bin 0 -> 38307 bytes examples/bridge/gfx/wood_rail_64.png | Bin 0 -> 3570 bytes examples/bridge/lang/english.lng | 6 + nml/actions/action0bridge.py | 466 ++++++++++++++++++++ nml/actions/action0properties.py | 71 ++- nml/ast/item.py | 10 +- nml/global_constants.py | 3 + regression/043_bridge.nml | 62 +++ regression/044_two_bridges.nml | 84 ++++ regression/045_bridge_dedup.nml | 92 ++++ regression/expected/043_bridge.grf | Bin 0 -> 2065 bytes regression/expected/043_bridge.nfo | 228 ++++++++++ regression/expected/044_two_bridges.grf | Bin 0 -> 3881 bytes regression/expected/044_two_bridges.nfo | 424 ++++++++++++++++++ regression/expected/045_bridge_dedup.grf | Bin 0 -> 2495 bytes regression/expected/045_bridge_dedup.nfo | 239 ++++++++++ regression/expected/example_bridge.grf | Bin 0 -> 122090 bytes regression/expected/example_bridge.nfo | 260 +++++++++++ 21 files changed, 2207 insertions(+), 4 deletions(-) create mode 100644 examples/bridge/example_bridge.nml create mode 100644 examples/bridge/gfx/ramps_wood_rail_256.png create mode 100644 examples/bridge/gfx/ramps_wood_rail_64.png create mode 100644 examples/bridge/gfx/wood_rail_256.png create mode 100644 examples/bridge/gfx/wood_rail_64.png create mode 100644 examples/bridge/lang/english.lng create mode 100644 nml/actions/action0bridge.py create mode 100644 regression/043_bridge.nml create mode 100644 regression/044_two_bridges.nml create mode 100644 regression/045_bridge_dedup.nml create mode 100644 regression/expected/043_bridge.grf create mode 100644 regression/expected/043_bridge.nfo create mode 100644 regression/expected/044_two_bridges.grf create mode 100644 regression/expected/044_two_bridges.nfo create mode 100644 regression/expected/045_bridge_dedup.grf create mode 100644 regression/expected/045_bridge_dedup.nfo create mode 100644 regression/expected/example_bridge.grf create mode 100644 regression/expected/example_bridge.nfo diff --git a/examples/bridge/example_bridge.nml b/examples/bridge/example_bridge.nml new file mode 100644 index 000000000..9dd279dc4 --- /dev/null +++ b/examples/bridge/example_bridge.nml @@ -0,0 +1,266 @@ +/* + * This file is aimed to provide an example on how to code a custom bridge in NML. + * It creates a wooden rail bridge with support for multiple transports + * (rail, road, monorail, maglev). + * + * Key concepts demonstrated: + * - Sprite templates: reusable coordinate definitions that work at multiple zoom levels + * - Bridge graphics structure: back sprites, front sprites, pillars, and ends (ramps) + * - Alternative sprites: higher-zoom graphics (4x) for better quality at higher resolutions + * + * For more information, refer to the NewGRF specifications documentation. + * + * Apart from this file, you will also need: + * - Graphics in gfx/ (ramps_wood_rail_64.png, ramps_wood_rail_256.png, + * wood_rail_64.png, wood_rail_256.png) + * - Language files in lang/ (english.lng) + */ + +/* + * First, define a grf block with basic properties. + * String constants like STR_GRF_NAME come from the language files in lang/. + */ +grf { + grfid: "NML\07"; + name: string(STR_GRF_NAME); + desc: string(STR_GRF_DESC); + version: 1; + min_compatible_version: 1; +} + +/* + * Sprite templates help avoid repetitive coordinate definitions. + * The z parameter scales coordinates for different zoom levels: + * z = 1 for normal zoom (64 pixels per tile) + * z = 4 for 4x zoom (256 pixels per tile) + * + * Sprite format: [ x_in_file, y_in_file, width, height, x_offset, y_offset ] + */ + +/* + * Bridge ramps -- 8 sprites per transport type for bridge approaches. + * First 4: flat end (far X, far Y, near X, near Y) + * Last 4: ramp (far X, far Y, near X, near Y) + */ +template template_bridgeramps_wood(x, y, z) { + [ 1*z+x*z, 1*z+y*z, 64*z, 47*z-1, -31*z, -24*z ] /* flat farthest X */ + [ 131*z+x*z, 1*z+y*z, 64*z, 47*z-1, -31*z, -24*z ] /* flat farthest Y */ + [ 66*z+x*z, 1*z+y*z, 64*z, 63*z-1, -31*z, -32*z ] /* flat nearest X */ + [ 196*z+x*z, 1*z+y*z, 64*z, 63*z-1, -31*z, -32*z ] /* flat nearest Y */ + [ 326*z+x*z, 1*z+y*z, 64*z, 55*z-1, -31*z, -24*z ] /* ramp farthest X */ + [ 456*z+x*z, 1*z+y*z, 64*z, 55*z-1, -31*z, -24*z ] /* ramp farthest Y */ + [ 261*z+x*z, 1*z+y*z, 64*z, 55*z-1, -31*z, -24*z ] /* ramp nearest X */ + [ 391*z+x*z, 1*z+y*z, 64*z, 55*z-1, -31*z, -24*z ] /* ramp nearest Y */ +} + +/* + * Bridge parts: + * _0_ Bridge of length 3 + * _0(23)1_ Bridge of even length + * _0(23)4(23)1_ Bridge of (uneven) lengths 5, 9, 13, 17 etc. + * _0(23)253(23)1_ Bridge of (uneven) lengths 7, 11, 15, 19 etc. + * + * BRIDGE_PIECE_NORTH (0): Outer end toward north (farthest) + * BRIDGE_PIECE_SOUTH (1): Outer end toward south (nearest) + * BRIDGE_PIECE_INNER_NORTH (2): Suspension towers near north } repeated + * BRIDGE_PIECE_INNER_SOUTH (3): Suspension towers near south } + * BRIDGE_PIECE_MIDDLE_ODD (4): Odd middle position } uneven lengths + * BRIDGE_PIECE_MIDDLE_EVEN (5): Even middle position } + */ + +template template_bridgesegment_back(x, y, z) { + [ 66*z+x*z, 1*z+y*z, 64*z, 128*z-1, -31*z, -84*z ] /* X-coord */ + [ 1*z+x*z, 1*z+y*z, 64*z, 128*z-1, -31*z, -84*z ] /* Y-coord */ +} + +template template_bridgesegment_front_pillar_rev(x, y, z) { + [ 66*z+x*z, 1*z+y*z, 64*z, 128*z-1, -55*z, -96*z ] /* X-coord */ + [ 1*z+x*z, 1*z+y*z, 64*z, 128*z-1, -7*z, -96*z ] /* Y-coord */ +} + +template template_bridgerow_back(x, y, z) { + template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_NORTH */ + template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_SOUTH */ + template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_INNER_NORTH */ + template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_INNER_SOUTH */ + template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_MIDDLE_ODD */ + template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_MIDDLE_EVEN */ +} + +template template_bridgerow_front_pillar_rev(x, y, z) { + template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_NORTH */ + template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_SOUTH */ + template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_INNER_NORTH */ + template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_INNER_SOUTH */ + template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_MIDDLE_ODD */ + template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_MIDDLE_EVEN */ +} + +/* + * Each role (back/front/pillars) is 48 sprites: 4 transports x 6 parts x 2 coords. + * This example reuses the same row per transport -- the global sprite pool will + * dedup them down to 12 unique part sprites. `ends` is 32 sprites across 4 transports. + * alternative_sprites adds higher-zoom graphics for high-resolution displays. + */ + +/* Back row: 48 sprites (12 x 4 transports) */ +spriteset(wood_back_spr, "gfx/wood_rail_64.png") { + template_bridgerow_back(0, 0, 1) + template_bridgerow_back(0, 0, 1) + template_bridgerow_back(0, 0, 1) + template_bridgerow_back(0, 0, 1) +} +alternative_sprites(wood_back_spr, ZOOM_LEVEL_IN_4X, BIT_DEPTH_8BPP, "gfx/wood_rail_256.png") { + template_bridgerow_back(0, 0, 4) + template_bridgerow_back(0, 0, 4) + template_bridgerow_back(0, 0, 4) + template_bridgerow_back(0, 0, 4) +} + +/* Front row: 48 sprites (12 x 4 transports) */ +spriteset(wood_front_spr, "gfx/wood_rail_64.png") { + template_bridgerow_front_pillar_rev(0, 129, 1) + template_bridgerow_front_pillar_rev(0, 129, 1) + template_bridgerow_front_pillar_rev(0, 129, 1) + template_bridgerow_front_pillar_rev(0, 129, 1) +} +alternative_sprites(wood_front_spr, ZOOM_LEVEL_IN_4X, BIT_DEPTH_8BPP, "gfx/wood_rail_256.png") { + template_bridgerow_front_pillar_rev(0, 129, 4) + template_bridgerow_front_pillar_rev(0, 129, 4) + template_bridgerow_front_pillar_rev(0, 129, 4) + template_bridgerow_front_pillar_rev(0, 129, 4) +} + +/* Pillars row: 48 sprites (12 x 4 transports) */ +spriteset(wood_pillar_spr, "gfx/wood_rail_64.png") { + template_bridgerow_front_pillar_rev(0, 259, 1) + template_bridgerow_front_pillar_rev(0, 259, 1) + template_bridgerow_front_pillar_rev(0, 259, 1) + template_bridgerow_front_pillar_rev(0, 259, 1) +} +alternative_sprites(wood_pillar_spr, ZOOM_LEVEL_IN_4X, BIT_DEPTH_8BPP, "gfx/wood_rail_256.png") { + template_bridgerow_front_pillar_rev(0, 259, 4) + template_bridgerow_front_pillar_rev(0, 259, 4) + template_bridgerow_front_pillar_rev(0, 259, 4) + template_bridgerow_front_pillar_rev(0, 259, 4) +} + +/* Ramp heads (BRIDGE_PIECE_HEAD): 32 sprites (8 x 4 transports) */ +spriteset(wood_ramps_spr, "gfx/ramps_wood_rail_64.png") { + template_bridgeramps_wood(0, 0, 1) + template_bridgeramps_wood(0, 0, 1) + template_bridgeramps_wood(0, 0, 1) + template_bridgeramps_wood(0, 0, 1) +} +alternative_sprites(wood_ramps_spr, ZOOM_LEVEL_IN_4X, BIT_DEPTH_8BPP, "gfx/ramps_wood_rail_256.png") { + template_bridgeramps_wood(0, 0, 4) + template_bridgeramps_wood(0, 0, 4) + template_bridgeramps_wood(0, 0, 4) + template_bridgeramps_wood(0, 0, 4) +} + +/* + * Bridge definition. + * The `graphics { }` block supplies sprite tables for all four transport types + * (rail, road, monorail, maglev). In this example we reuse the same sprites + * per transport; the game overlays the correct transport tiles at runtime. + */ +item(FEAT_BRIDGES, wood_rail_bridge, 0x00) { + property { + min_length: 0; + max_length: 255; + cost_factor: 80; + speed_limit: 40 km/h; + flags: 1; + avail_year: 1800; + name: string(STR_BRIDGE_NAME); + description_road: string(STR_BRIDGE_DESC_ROAD); + description_rail: string(STR_BRIDGE_DESC_RAIL); + /* + * pillar_info is 12 bytes (x0 y0 x1 y1 ... x5 y5) -- one byte per bridge part per coord. + * Each byte is a bitmask of which pillars (corner N/S/W/E) and walls (edge NE/NW/SE/SW) + * the piece renders. Compose with bitmask() and the BRIDGE_PILLAR_CORNER_{N,S,W,E} / + * BRIDGE_PILLAR_EDGE_{NE,SE,SW,NW} constants. + */ + pillar_info: [ + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ), + bitmask( + BRIDGE_PILLAR_CORNER_W, + BRIDGE_PILLAR_CORNER_S, + BRIDGE_PILLAR_CORNER_E, + BRIDGE_PILLAR_CORNER_N + ) + ]; + } + graphics { + bridge_back: [wood_back_spr]; + bridge_front: [wood_front_spr]; + bridge_pillars: [wood_pillar_spr]; + bridge_head: [wood_ramps_spr]; + } +} diff --git a/examples/bridge/gfx/ramps_wood_rail_256.png b/examples/bridge/gfx/ramps_wood_rail_256.png new file mode 100644 index 0000000000000000000000000000000000000000..d59327c38e8424ab423f3b3a71c6587a06b75f01 GIT binary patch literal 53475 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 literal 0 HcmV?d00001 diff --git a/examples/bridge/gfx/ramps_wood_rail_64.png b/examples/bridge/gfx/ramps_wood_rail_64.png new file mode 100644 index 0000000000000000000000000000000000000000..152e0f338e19af41623aa849b39b966e7f4a8ae3 GIT binary patch literal 4425 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 literal 0 HcmV?d00001 diff --git a/examples/bridge/gfx/wood_rail_256.png b/examples/bridge/gfx/wood_rail_256.png new file mode 100644 index 0000000000000000000000000000000000000000..c3e9069b89f28c923288bad81430ccc49c9913d8 GIT binary patch literal 38307 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 z

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 literal 0 HcmV?d00001 diff --git a/examples/bridge/lang/english.lng b/examples/bridge/lang/english.lng new file mode 100644 index 000000000..59755ed57 --- /dev/null +++ b/examples/bridge/lang/english.lng @@ -0,0 +1,6 @@ +##grflangid 0x01 +STR_GRF_NAME :NML Example NewGRF: Bridge +STR_GRF_DESC :{ORANGE}NML Example NewGRF: Bridge{}{BLACK}This NewGRF is intended to provide a coding example for the high-level NewGRF-coding language NML.{}It demonstrates how to define a custom bridge using FEAT_BRIDGES with sprite templates, 6-table duplication for bridge_parts, and 4x zoom alternatives. +STR_BRIDGE_NAME :Wooden Bridge +STR_BRIDGE_DESC_RAIL :A traditional wooden rail bridge. +STR_BRIDGE_DESC_ROAD :A traditional wooden road bridge. diff --git a/nml/actions/action0bridge.py b/nml/actions/action0bridge.py new file mode 100644 index 000000000..e5e28d8a4 --- /dev/null +++ b/nml/actions/action0bridge.py @@ -0,0 +1,466 @@ +__license__ = """ +NML is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +NML is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with NML; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.""" + +""" +Bridges (feature 0x06) -- sprite-table lowering for prop 0x0D. + +Called from GraphicsBlock when item_feature == 0x06. Each bridge's +``graphics { bridge_back: [...]; bridge_front: [...]; bridge_pillars: [...]; bridge_head: [...]; }`` block: + + ``bridge_back`` 48 sprites (4 transports x 6 tables x 2 coords) + ``bridge_front`` 48 sprites + ``bridge_pillars`` 48 sprites + ``bridge_head`` 32 sprites (table 6 / BRIDGE_PIECE_HEAD: 4 transports x flat/ramp x 4 sub-slots) + +All four are optional. Unique sprites across every bridge in a compile share a +single GRM reservation and a single ActionA sprite-load sequence, emitted once +before the first bridge's Action0. Each bridge's Action0 is patched via +Action6 so the 16-bit sprite-ID word of every prop 0x0D slot = GRM_base + idx. + +GRM base is stored in user param register 0x3F. That register is reserved at +the top of the user-param space (0x00-0x3F) because the internal Action6 pool +(0x40-0x7F) is transient -- popped registers there are re-issued after each +save/restore scope, whereas the GRM base written at compile start must survive +until every bridge's Action0 is emitted. If the user has already claimed +register 0x3F, a ScriptError is raised. + +Two entry points, one per compilation phase: + ``collect(graphics_block, pos)`` -- GraphicsBlock.pre_process: registers + this bridge's sprites in the shared + registry. Idempotent. + ``emit_actions(graphics_block, bridge_id, pos)`` + -- GraphicsBlock.get_action_list: + emits the shared prelude (once) and + this bridge's Action6 + Action0. +""" + +from nml import expression, generic, global_constants, nmlop +from nml.actions import action2, action6, real_sprite +from nml.actions.action0 import Action0 +from nml.actions.action0properties import BaseAction0Property +from nml.actions.actionA import ActionA +from nml.actions.actionD import ActionD +from nml.ast.spriteblock import SpriteSet + +# ---- Constants ---- + +_GRM_FEATURE = 0x08 # bridges GRM feature byte +_BRIDGE_PARAM = 0x3F # user-param slot reserved for the GRM base register + +# Action0 header: action(1) + feature(1) + numprops(1) + numinfo(1) +# + id_high(1) + id_word(2). Prop data starts at offset 7. +_ACTION0_HDR = 7 + +# ActionA layout: action(1) + num_sets(1) + num_per_set(1) + first_sprite(2) +# The first_sprite word sits at offset 3. +_ACTIONA_FIRST_SPRITE_OFFSET = 3 + + +# ---- Transpose tables ---- +# Input index within each 48-sprite array: i = g * 12 + t * 2 + c +# g in 0..3 transport (rail=0, road=1, mono=2, maglev=3) +# t in 0..5 piece (0=BRIDGE_PIECE_NORTH, 1=BRIDGE_PIECE_SOUTH, +# 2=BRIDGE_PIECE_INNER_NORTH, 3=BRIDGE_PIECE_INNER_SOUTH, +# 4=BRIDGE_PIECE_MIDDLE_ODD, 5=BRIDGE_PIECE_MIDDLE_EVEN) +# c in 0..1 coord (X=0, Y=1) +# +# NFO slot within BridgePartsProp (6 tables x 32 DWORDs = 192): +# slot = t * 32 + g * 8 + c * 4 + tp +# tp = 0 for back, 1 for front, 2 for pillars +# (tp == 3 slots are reserved, never written) + +_BACK_TO_NFO = [0] * 48 +_FRONT_TO_NFO = [0] * 48 +_PILLARS_TO_NFO = [0] * 48 +for _g in range(4): + for _t in range(6): + for _c in range(2): + _i = _g * 12 + _t * 2 + _c + _BACK_TO_NFO[_i] = _t * 32 + _g * 8 + _c * 4 + 0 + _FRONT_TO_NFO[_i] = _t * 32 + _g * 8 + _c * 4 + 1 + _PILLARS_TO_NFO[_i] = _t * 32 + _g * 8 + _c * 4 + 2 + + +# ---- Sprite key helpers ---- + + +def _rs_key(rs): + """Structural key for one RealSprite (one zoom/bpp variant of a slot).""" + mp = getattr(rs, "mask_pos", None) + return ( + rs.file.value, + rs.xpos.value if rs.xpos is not None else None, + rs.ypos.value if rs.ypos is not None else None, + rs.xsize.value if rs.xsize is not None else None, + rs.ysize.value if rs.ysize is not None else None, + rs.xrel.value, + rs.yrel.value, + rs.mask_file.value if getattr(rs, "mask_file", None) is not None else None, + (mp[0].value, mp[1].value) if mp is not None else None, + rs.flags.value if getattr(rs, "flags", None) is not None else 0, + getattr(rs, "bit_depth", 8), + getattr(rs, "zoom_level", 0), + ) + + +def _sprite_key(rsa): + """Hashes every zoom/bpp variant of a RealSpriteAction -- two slots that share + an 8bpp primary but differ in alts must not collapse.""" + return tuple(_rs_key(rs) for rs in rsa.sprite_list) + + +def _is_empty_rsa(rsa): + """True if this RealSpriteAction came from a blank ``[]`` literal -- its + underlying RealSprite has no parameters and ``is_empty`` is set. Such + slots map to dword=0 with no GRM patch.""" + return bool(rsa.sprite_list) and getattr(rsa.sprite_list[0], "is_empty", False) + + +# ---- Property classes ---- + + +class BridgePartsProp(BaseAction0Property): + """Prop 0x0D entry: tableid=0, numtables=6, 192 DWORDs (tables 0-5).""" + + TOTAL_DWORDS = 192 + HEADER_LEN = 3 # prop-num + tableid + numtables + + def __init__(self, dwords): + assert len(dwords) == self.TOTAL_DWORDS + self.dwords = dwords + + def write(self, file): + file.print_bytex(0x0D) + file.print_byte(0) + file.print_byte(6) + file.newline() + for t in range(6): + for i in range(32): + file.print_dwordx(self.dwords[t * 32 + i]) + file.newline() + + def get_size(self): + return self.HEADER_LEN + self.TOTAL_DWORDS * 4 # 3 + 768 = 771 + + +class BridgeEndsProp(BaseAction0Property): + """Prop 0x0D entry: tableid=6, numtables=1, 32 DWORDs (table 6).""" + + TOTAL_DWORDS = 32 + HEADER_LEN = 3 + + def __init__(self, dwords): + assert len(dwords) == self.TOTAL_DWORDS + self.dwords = dwords + + def write(self, file): + file.print_bytex(0x0D) + file.print_byte(6) + file.print_byte(1) + file.newline() + for i in range(32): + file.print_dwordx(self.dwords[i]) + file.newline() + + def get_size(self): + return self.HEADER_LEN + self.TOTAL_DWORDS * 4 # 3 + 128 = 131 + + +# ---- BridgeSpriteRegistry ---- + + +class BridgeSpriteRegistry: + """Shared across every bridge in one compile: interns unique sprites into a + global pool and emits the one-shot GRM reservation + ActionA sprite-load + prelude. Each bridge's Action0 prop 0x0D slots are later patched to + GRM_base + .""" + + def __init__(self): + self._sprite_to_index = {} # sprite_key -> global index + self._unique = [] # unique RealSpriteActions in insertion order + self._prelude_emitted = False + + def intern(self, sprites): + """Register a flat list of RealSpriteActions. Idempotent -- repeated + calls with the same sprites return the same indices. Empty (``[]``) + sprites are not interned; their entry in the returned list is + ``None``, signalling callers to leave the dword at 0 and skip the + GRM patch.""" + indices = [] + for rsa in sprites: + if _is_empty_rsa(rsa): + indices.append(None) + continue + k = _sprite_key(rsa) + if k not in self._sprite_to_index: + self._sprite_to_index[k] = len(self._unique) + self._unique.append(rsa) + indices.append(self._sprite_to_index[k]) + return indices + + def is_empty(self): + return not self._unique + + def needs_prelude(self): + return not self._prelude_emitted + + def build_prelude(self, pos): + """ActionD (GRM reserve N -> param 0x3F) + chunks of Action6+ActionA+sprites. + Each ActionA chunk holds up to 255 sprites. Action6 patches the ActionA + first_sprite word (2 bytes at offset 3) by adding _BRIDGE_PARAM, so the + per-chunk first_sprite = GRM_base + chunk_offset. Sets the emitted flag.""" + from nml.ast import grf as grf_mod + + # grf_mod.param_stats[0] tracks (highest_user_param_num + 1); > _BRIDGE_PARAM + # means the user has declared a parameter at 0x3F (which we'd overwrite). + if grf_mod.param_stats[0] > _BRIDGE_PARAM: + raise generic.ScriptError( + "GRF parameter 0x{:02X} is reserved for bridge sprite loading when a bridge defines graphics. " + "Move your parameter to a lower index (< 0x{:02X}) or remove the bridge's graphics block.".format( + _BRIDGE_PARAM, _BRIDGE_PARAM + ), + pos, + ) + + n = len(self._unique) + grm_data = expression.ConstantNumeric(0xFF | (_GRM_FEATURE << 8) | (n << 16)) + out = [ + ActionD( + expression.ConstantNumeric(_BRIDGE_PARAM), + expression.ConstantNumeric(0x00), + nmlop.ASSIGN, + expression.ConstantNumeric(0xFE), + grm_data, + ) + ] + idx = 0 + while idx < n: + k = min(n - idx, 255) + act6 = action6.Action6() + act6.modify_bytes(_BRIDGE_PARAM, 0x82, _ACTIONA_FIRST_SPRITE_OFFSET) + out.append(act6) + out.append(ActionA([(k, idx)])) + out.extend(self._unique[idx : idx + k]) + idx += k + + self._prelude_emitted = True + return out + + +# ---- BridgeGraphics ---- + + +class BridgeGraphics: + """One bridge's ``graphics { }`` block. Parses + validates role attributes + and resolves each into a flat list of RealSpriteActions. Constructed in + both phases -- the registry dedupes so re-running is cheap.""" + + # (role_name, expected_sprite_count, parts_transpose_table_or_None) + # bridge_head (BRIDGE_PIECE_HEAD) has its own prop; its transpose table is None. + ROLES = ( + ("bridge_back", 48, _BACK_TO_NFO), + ("bridge_front", 48, _FRONT_TO_NFO), + ("bridge_pillars", 48, _PILLARS_TO_NFO), + ("bridge_head", 32, None), + ) + _ROLE_NAMES = tuple(r[0] for r in ROLES) + _PARTS_ROLES = tuple(r[0] for r in ROLES if r[2] is not None) + _ENDS_ROLE = "bridge_head" + + def __init__(self, graphics_block, pos): + self.pos = pos + self._sprites = {role: None for role in self._ROLE_NAMES} + self._parse(graphics_block) + + def _parse(self, graphics_block): + if graphics_block.default_graphics is not None: + raise generic.ScriptError( + "graphics for bridges does not accept a default / returned value", + graphics_block.default_graphics.pos, + ) + + values = {role: None for role in self._ROLE_NAMES} + for gdef in graphics_block.graphics_list: + name = gdef.cargo_id + if not isinstance(name, expression.Identifier) or name.value not in values: + raise generic.ScriptError( + "graphics for bridges: unknown attribute; expected one of " + "bridge_back, bridge_front, bridge_pillars, bridge_head", + name.pos, + ) + if values[name.value] is not None: + raise generic.ScriptError( + "graphics for bridges: duplicate '{}' attribute".format(name.value), + name.pos, + ) + if gdef.result.value is None: + raise generic.ScriptError( + "graphics for bridges: 'return' is not allowed", + gdef.result.pos, + ) + values[name.value] = gdef.result.value.reduce(global_constants.const_list) + + for role, expected, _ in self.ROLES: + value = values[role] + if value is not None: + self._sprites[role] = self._resolve_and_flatten(value, expected, role) + + @staticmethod + def _resolve_and_flatten(value, expected, role): + if not isinstance(value, expression.Array): + raise generic.ScriptError( + "graphics: '{}' requires an array of spriteset references".format(role), value.pos + ) + sprites = [] + for elem in value.values: + if isinstance(elem, expression.SpriteGroupRef): + name = elem.name + elif isinstance(elem, (expression.Identifier, expression.StringLiteral)): + name = elem + else: + raise generic.ScriptError("Each element must be a spriteset name", elem.pos) + sg = action2.resolve_spritegroup(name) + if not isinstance(sg, SpriteSet): + raise generic.ScriptError("'{}' is not a spriteset".format(name.value), elem.pos) + sprites.extend(real_sprite.parse_sprite_data(sg)) + if len(sprites) != expected: + raise generic.ScriptError( + "graphics: '{}' must total exactly {:d} sprites ({:d} provided)".format(role, expected, len(sprites)), + value.pos, + ) + return sprites + + def register(self, registry): + """Phase 1 (GraphicsBlock.pre_process). Interns all role sprites into + the shared registry. Returned indices are discarded.""" + for sprites in self._sprites.values(): + if sprites is not None: + registry.intern(sprites) + + def emit(self, registry, bridge_id): + """Phase 2 (GraphicsBlock.get_action_list). Looks up indices via the + (now fully populated) registry and builds this bridge's Action6 + + Action0. Returns [] if no roles were provided.""" + indices_by_role = { + role: registry.intern(sprites) if sprites is not None else None for role, sprites in self._sprites.items() + } + + props = [] + mods = [] # (param, size_byte, absolute_byte_offset) + prop_offset = 0 + + built = self._build_parts_prop(indices_by_role) + if built is not None: + parts_prop, written = built + props.append(parts_prop) + # Only patch slots we actually wrote. Unwritten slots (missing + # role or `[]` blank) stay 0 -- adding GRM_base would wrongly + # turn them into the first bridge sprite. 0x82 = 2-byte add on + # the sprite-ID word only; leaves the palette word untouched. + for slot in sorted(written): + mods.append((_BRIDGE_PARAM, 0x82, _ACTION0_HDR + prop_offset + BridgePartsProp.HEADER_LEN + slot * 4)) + prop_offset += parts_prop.get_size() + + ends_built = self._build_ends_prop(indices_by_role[self._ENDS_ROLE]) + if ends_built is not None: + ends_prop, ends_written = ends_built + props.append(ends_prop) + for i in sorted(ends_written): + mods.append((_BRIDGE_PARAM, 0x82, _ACTION0_HDR + prop_offset + BridgeEndsProp.HEADER_LEN + i * 4)) + prop_offset += ends_prop.get_size() + + if not props: + return [] + + out = [] + act6 = action6.Action6() + for param, size_byte, abs_off in mods: + act6.modify_bytes(param, size_byte, abs_off) + if act6.modifications: + out.append(act6) + + act0 = Action0(0x06, bridge_id.value) + act0.prop_list = props + act0.num_ids = 1 + out.append(act0) + + return out + + @classmethod + def _build_parts_prop(cls, indices_by_role): + """Merges bridge_back/front/pillars indices into the single 192-DWORD + BridgePartsProp. Returns (prop, written_slots) or None when none of + the three parts roles are provided. ``None`` entries inside an + indices list (`[]` blank slots) leave the dword at 0 and stay out + of ``written``.""" + if all(indices_by_role[r] is None for r in cls._PARTS_ROLES): + return None + dwords = [0] * BridgePartsProp.TOTAL_DWORDS + written = set() + for role, _, slot_table in cls.ROLES: + if slot_table is None: + continue + m = indices_by_role[role] + if m is None: + continue + for i, uniq_idx in enumerate(m): + if uniq_idx is None: + continue + slot = slot_table[i] + dwords[slot] = uniq_idx + written.add(slot) + return BridgePartsProp(dwords), written + + @staticmethod + def _build_ends_prop(indices): + """Returns (prop, written_slots) or None when bridge_head is missing. + ``None`` entries inside the indices list (`[]` blank slots) become + dword=0 and are excluded from ``written_slots`` so they aren't + patched with the GRM base offset.""" + if indices is None: + return None + dwords = [0 if idx is None else idx for idx in indices] + written = {i for i, idx in enumerate(indices) if idx is not None} + return BridgeEndsProp(dwords), written + + +# ---- Module singleton + entry points ---- + +_registry = BridgeSpriteRegistry() + + +def collect(graphics_block, pos): + """Phase 1 -- called from GraphicsBlock.pre_process for bridge items. + Validates the graphics block and registers its sprites in the shared + registry so the prelude can reserve GRM space for all bridges together.""" + BridgeGraphics(graphics_block, pos).register(_registry) + + +def emit_actions(graphics_block, bridge_id, pos): + """Phase 2 -- called from GraphicsBlock.get_action_list for bridge items. + Emits the shared prelude on first use (ActionD + ActionA + sprites), + followed by this bridge's Action6 + Action0.""" + bridge = BridgeGraphics(graphics_block, pos) + out = [] + if _registry.needs_prelude(): + if _registry.is_empty(): + raise generic.ScriptError( + "bridge graphics block has no sprites -- provide at least one of " + "bridge_back/bridge_front/bridge_pillars/bridge_head", + pos, + ) + out.extend(_registry.build_prelude(pos)) + out.extend(bridge.emit(_registry, bridge_id)) + return out diff --git a/nml/actions/action0properties.py b/nml/actions/action0properties.py index 5b71255ef..4d1a20f1e 100644 --- a/nml/actions/action0properties.py +++ b/nml/actions/action0properties.py @@ -1,4 +1,4 @@ -__license__ = """ +__license__ = """ NML is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -928,7 +928,74 @@ def station_tile_list(value, prop_num, description): "graphic_flags": {"size": 1, "num": 0x09}, } -# TODO: Feature 0x06 + +# +# Feature 0x06 (Bridges) +# + + +class BridgePillarInfoProp(BaseAction0Property): + """Prop 0x15: pillar info -- 2n raw bytes, one pair per pillar config.""" + + def __init__(self, bytes_list): + assert len(bytes_list) % 2 == 0 and len(bytes_list) > 0 + self.bytes = bytes_list + + def write(self, file): + file.print_bytex(0x15) + file.print_bytex(len(self.bytes) // 2) + for i, b in enumerate(self.bytes): + if i > 0 and i % 8 == 0: + file.newline() + file.print_bytex(b) + file.newline() + + def get_size(self): + return 2 + len(self.bytes) # prop_num(1) + size_byte(1) + 2n data bytes + + +# fmt: off +def bridge_pillar_info(value): + if not isinstance(value, Array) or len(value.values) % 2 != 0 or len(value.values) == 0: + raise generic.ScriptError( + "pillar_info must be an array with an even number of bytes (2 per pillar config, typically 12)", + value.pos, + ) + + bytes_list = [] + for elem in value.values: + reduced = elem.reduce(global_constants.const_list) + if not isinstance(reduced, ConstantNumeric): + raise generic.ScriptError("pillar_info values must be compile-time constants", elem.pos) + generic.check_range(reduced.value, 0, 255, "pillar_info byte", elem.pos) + bytes_list.append(reduced.value) + + return [BridgePillarInfoProp(bytes_list)] + + +properties[0x06] = { + # 0x08 - year availability (old way) + "min_length": {"size": 1, "num": 0x09}, + "max_length": {"size": 1, "num": 0x0A}, + # 0x0B - cost factor (old way) + "speed_limit": { + "size": 2, + "num": 0x0C, + "unit_type": "speed", + "unit_conversion": (5000, 1397), + "adjust_value": lambda val, unit: ottd_display_speed(val, 1, 1, unit), + }, + # 0x0D - sprite tables (set via the `graphics { bridge_back/front/pillars/head: ... }` block) + "flags": {"size": 1, "num": 0x0E}, + "avail_year": {"size": 4, "num": 0x0F}, + "name": {"size": 2, "num": 0x10, "string": 0xDC}, + "description_rail": {"size": 2, "num": 0x11, "string": 0xDC}, + "description_road": {"size": 2, "num": 0x12, "string": 0xDC}, + "cost_factor": {"size": 2, "num": 0x13}, + "pillar_info": {"num": 0x15, "custom_function": bridge_pillar_info}, +} + +# fmt: on # # Feature 0x07 (Houses) diff --git a/nml/ast/item.py b/nml/ast/item.py index 87cc32901..3bc377ac6 100644 --- a/nml/ast/item.py +++ b/nml/ast/item.py @@ -14,7 +14,7 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.""" from nml import expression, generic, global_constants -from nml.actions import action0, action2, action2var, action3 +from nml.actions import action0, action0bridge, action2, action2var, action3 from nml.ast import base_statement, general item_feature = None @@ -234,6 +234,10 @@ def __init__(self, graphics_list, default_graphics, pos): self.default_graphics = default_graphics def pre_process(self): + if item_feature == 0x06: + action0bridge.collect(self, self.pos) + return + for graphics_def in self.graphics_list: graphics_def.reduce_expressions(action2var.get_scope(item_feature)) if self.default_graphics is not None: @@ -267,7 +271,9 @@ def debug_print(self, indentation): self.default_graphics.debug_print(indentation + 4) def get_action_list(self): - if self.prepare_act2_output(): + if item_feature == 0x06: + return action0bridge.emit_actions(self, item_id, self.pos) + elif self.prepare_act2_output(): return action3.parse_graphics_block(self, item_feature, item_id, item_size) return [] diff --git a/nml/global_constants.py b/nml/global_constants.py index cf808621e..5dcf41b6c 100644 --- a/nml/global_constants.py +++ b/nml/global_constants.py @@ -395,6 +395,9 @@ def constant_number(name, info, pos): # station tiles "STAT_ALL_TILES" : 0xFF, + # bridge general flags + "FAR_PILLARS_DISABLE" : 0, + # bridge pillar flags "BRIDGE_PILLAR_CORNER_W" : 0, "BRIDGE_PILLAR_CORNER_S" : 1, diff --git a/regression/043_bridge.nml b/regression/043_bridge.nml new file mode 100644 index 000000000..bcf38811c --- /dev/null +++ b/regression/043_bridge.nml @@ -0,0 +1,62 @@ +grf { + grfid: "NML+"; + name: string(STR_REGRESSION_NAME); + desc: string(STR_REGRESSION_DESC); + version: 0; + min_compatible_version: 0; +} + +/* Minimal bridge sprite template -- reuses a small region of oneway.png */ +template bridge_spr() { + [0, 0, 4, 4, -2, -2] +} + +/* + * Each of bridge_back/bridge_front/bridge_pillars is 48 sprites (4 transports x 6 tables x 2 coords). + * bridge_ends is 32 sprites (4 transports x flat/ramp x 4 sub-slots). + * 4 rows x 12 = 48 for parts; 4 rows x 8 = 32 for ends. + */ +spriteset(bridge_parts_spr, "oneway.png") { + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() +} + +spriteset(bridge_ends_spr, "oneway.png") { + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() +} + +item(FEAT_BRIDGES, my_bridge, 0x01) { + property { + min_length: 0; + max_length: 12; + cost_factor: 40; + speed_limit: 64 km/h; + flags: 0; + avail_year: 1930; + pillar_info: [ + bitmask(BRIDGE_PILLAR_CORNER_N, BRIDGE_PILLAR_CORNER_S), // BRIDGE_PIECE_NORTH x + bitmask(BRIDGE_PILLAR_CORNER_W, BRIDGE_PILLAR_CORNER_E), // BRIDGE_PIECE_NORTH y + bitmask(BRIDGE_PILLAR_EDGE_NE), // BRIDGE_PIECE_SOUTH x + bitmask(BRIDGE_PILLAR_EDGE_SW), // BRIDGE_PIECE_SOUTH y + 0x00, // BRIDGE_PIECE_INNER_NORTH x + 0x00, // BRIDGE_PIECE_INNER_NORTH y + 0xFF, // BRIDGE_PIECE_INNER_SOUTH x + 0xFF, // BRIDGE_PIECE_INNER_SOUTH y + bitmask(BRIDGE_PILLAR_EDGE_NW, BRIDGE_PILLAR_EDGE_SE), // BRIDGE_PIECE_MIDDLE_ODD x + bitmask(BRIDGE_PILLAR_CORNER_N), // BRIDGE_PIECE_MIDDLE_ODD y + 0x00, // BRIDGE_PIECE_MIDDLE_EVEN x + 0x00, // BRIDGE_PIECE_MIDDLE_EVEN y + ]; + } + graphics { + bridge_back: [bridge_parts_spr]; + bridge_front: [bridge_parts_spr]; + bridge_pillars: [bridge_parts_spr]; + bridge_head: [bridge_ends_spr]; + } +} diff --git a/regression/044_two_bridges.nml b/regression/044_two_bridges.nml new file mode 100644 index 000000000..4fa7ea7bd --- /dev/null +++ b/regression/044_two_bridges.nml @@ -0,0 +1,84 @@ +grf { + grfid: "NML+"; + name: string(STR_REGRESSION_NAME); + desc: string(STR_REGRESSION_DESC); + version: 0; + min_compatible_version: 0; +} + +/* Two independent bridges using the `graphics { bridge_back/bridge_front/bridge_pillars/bridge_ends: ... }` + block. Unique sprites from both bridges share a single GRM reservation and + a single ActionA sprite-load sequence, emitted once before the first bridge's + Action0. Each bridge's Action0 is patched via its own Action6. */ + +template bridge_spr() { + [0, 0, 4, 4, -2, -2] +} + +/* Bridge A sprites (48 for parts, 32 for ends) */ + +spriteset(bridge_a_parts_spr, "oneway.png") { + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() +} + +spriteset(bridge_a_ends_spr, "oneway.png") { + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() +} + +/* Bridge B sprites (48 for parts, 32 for ends) */ + +spriteset(bridge_b_parts_spr, "oneway.png") { + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() +} + +spriteset(bridge_b_ends_spr, "oneway.png") { + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() + bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() bridge_spr() +} + +/* Bridge definitions */ + +item(FEAT_BRIDGES, bridge_a, 0x01) { + property { + min_length: 0; + max_length: 12; + cost_factor: 40; + speed_limit: 64 km/h; + flags: 0; + avail_year: 1930; + } + graphics { + bridge_back: [bridge_a_parts_spr]; + bridge_front: [bridge_a_parts_spr]; + bridge_pillars: [bridge_a_parts_spr]; + bridge_head: [bridge_a_ends_spr]; + } +} + +item(FEAT_BRIDGES, bridge_b, 0x02) { + property { + min_length: 0; + max_length: 16; + cost_factor: 60; + speed_limit: 80 km/h; + flags: 0; + avail_year: 1950; + } + graphics { + bridge_back: [bridge_b_parts_spr]; + bridge_front: [bridge_b_parts_spr]; + bridge_pillars: [bridge_b_parts_spr]; + bridge_head: [bridge_b_ends_spr]; + } +} diff --git a/regression/045_bridge_dedup.nml b/regression/045_bridge_dedup.nml new file mode 100644 index 000000000..45e4c45f2 --- /dev/null +++ b/regression/045_bridge_dedup.nml @@ -0,0 +1,92 @@ +grf { + grfid: "NML+"; + name: string(STR_REGRESSION_NAME); + desc: string(STR_REGRESSION_DESC); + version: 0; + min_compatible_version: 0; +} + +/* + * Dedup regression test (global pool). + * + * bridge_back/bridge_front/bridge_pillars each reference `dedup_12` (12 distinct xrel sprites) + * four times -- 4 refs x 12 sprites = 48 per role, same 12 unique sprites. + * bridge_ends uses `dedup_ends` (32 identical sprites) -> 1 unique. + * + * Expected: + * - GRM reserves 13 sprites (12 unique parts + 1 unique end), shared globally. + * - Exactly one ActionA chunk of 13 sprites. + * - Prop 0x0D slots for bridge_back/bridge_front/bridge_pillars cycle indices 0..11 across each + * role; all 32 bridge_ends slots resolve to index 12. + */ + +/* 12 sprites with distinct xrel values -- one unique sprite per xrel. */ +spriteset(dedup_12, "oneway.png") { + [0, 0, 4, 4, -2, 0] + [0, 0, 4, 4, -3, 0] + [0, 0, 4, 4, -4, 0] + [0, 0, 4, 4, -5, 0] + [0, 0, 4, 4, -6, 0] + [0, 0, 4, 4, -7, 0] + [0, 0, 4, 4, -8, 0] + [0, 0, 4, 4, -9, 0] + [0, 0, 4, 4, -10, 0] + [0, 0, 4, 4, -11, 0] + [0, 0, 4, 4, -12, 0] + [0, 0, 4, 4, -13, 0] +} + +/* 32 identical sprites for ends -- deduplicates to 1 unique. */ +spriteset(dedup_ends, "oneway.png") { + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] + [0, 0, 4, 4, -2, -2] +} + +item(FEAT_BRIDGES, dedup_bridge, 0x03) { + property { + min_length: 0; + max_length: 12; + cost_factor: 40; + speed_limit: 64 km/h; + flags: 0; + avail_year: 1930; + } + graphics { + /* 4 refs x 12 sprites = 48 per role, 12 unique across back/front/pillars */ + bridge_back: [dedup_12, dedup_12, dedup_12, dedup_12]; + bridge_front: [dedup_12, dedup_12, dedup_12, dedup_12]; + bridge_pillars: [dedup_12, dedup_12, dedup_12, dedup_12]; + /* 32 sprites, all identical -> 1 unique */ + bridge_head: [dedup_ends]; + } +} diff --git a/regression/expected/043_bridge.grf b/regression/expected/043_bridge.grf new file mode 100644 index 0000000000000000000000000000000000000000..c613f3da4fecac3e8219ae8f632d3b78b99a635e GIT binary patch literal 2065 zcmeIzv1=1i9KiA4<=Sg{G*M$a7_h{Eq7?%c6)o5{CsrELv!+@xV8B2ODR|t(Tm6a)~pV&5ZXY~0;*NShRq;1hP zVTeE!Mj;MkkbrTRfJty51ukSD3pvQc5_sUlDy%^nDo}-W*nmygf^Dcl9U8C$yU>Id zw4noC*n@pIfI~Qf9s~@H4Pl5t6hf1G~_K7PO%QUD$(tIDkVqf*u3{8XLk8fhdeZ9L694<1hh};6Mso z$UqiykcTDkz=u^>gECa03hS@|o3I7jP=h)&U~LYBUh{{7%W9M-e%`01&hGL=%l%^%j!A-ekuaS+C2 literal 0 HcmV?d00001 diff --git a/regression/expected/043_bridge.nfo b/regression/expected/043_bridge.nfo new file mode 100644 index 000000000..ba008c982 --- /dev/null +++ b/regression/expected/043_bridge.nfo @@ -0,0 +1,228 @@ +// Automatically generated by GRFCODEC. Do not modify! +// (Info version 32) +// Escapes: 2+ 2- 2< 2> 2u< 2u> 2/ 2% 2u/ 2u% 2* 2& 2| 2^ 2sto = 2s 2rst = 2r 2psto 2ror = 2rot 2cmp 2ucmp 2<< 2u>> 2>> +// Escapes: 71 70 7= 7! 7< 7> 7G 7g 7gG 7GG 7gg 7c 7C +// Escapes: D= = DR D+ = DF D- = DC Du* = DM D* = DnF Du<< = DnC D<< = DO D& D| Du/ D/ Du% D% +// Format: spritenum imagefile depth xpos ypos xsize ysize xrel yrel zoom flags + +0 * 4 \d9 + +1 * 54 14 "C" "INFO" +"B" "VRSN" \w4 \dx00000000 +"B" "MINV" \w4 \dx00000000 +"B" "NPAR" \w1 00 +"B" "PALS" \w1 "W" +"B" "BLTR" \w1 "8" +00 +00 +2 * 52 08 08 "NML+" "NML regression test" 00 "A test newgrf testing NML" 00 +3 * 38 00 06 \b7 01 FF \wx0001 +09 00 +0A 0C +13 \wx0028 +0C \wx0040 +0E 00 +0F \dx0000078A +15 06 0A 05 10 40 00 00 FF FF +A0 08 00 00 + +// param[63] = param[0] +4 * 9 0D 3F \D= 00 FE \dx000108FF + +5 * 7 06 +3F 82 FF \wx0003 +FF + +6 * 5 0A \b1 \b1 \w0 + +7 oneway.png 8bpp 0 0 4 4 -2 -2 normal +8 * 882 06 +3F 82 FF \wx000A +3F 82 FF \wx000E +3F 82 FF \wx0012 +3F 82 FF \wx001A +3F 82 FF \wx001E +3F 82 FF \wx0022 +3F 82 FF \wx002A +3F 82 FF \wx002E +3F 82 FF \wx0032 +3F 82 FF \wx003A +3F 82 FF \wx003E +3F 82 FF \wx0042 +3F 82 FF \wx004A +3F 82 FF \wx004E +3F 82 FF \wx0052 +3F 82 FF \wx005A +3F 82 FF \wx005E +3F 82 FF \wx0062 +3F 82 FF \wx006A +3F 82 FF \wx006E +3F 82 FF \wx0072 +3F 82 FF \wx007A +3F 82 FF \wx007E +3F 82 FF \wx0082 +3F 82 FF \wx008A +3F 82 FF \wx008E +3F 82 FF \wx0092 +3F 82 FF \wx009A +3F 82 FF \wx009E +3F 82 FF \wx00A2 +3F 82 FF \wx00AA +3F 82 FF \wx00AE +3F 82 FF \wx00B2 +3F 82 FF \wx00BA +3F 82 FF \wx00BE +3F 82 FF \wx00C2 +3F 82 FF \wx00CA +3F 82 FF \wx00CE +3F 82 FF \wx00D2 +3F 82 FF \wx00DA +3F 82 FF \wx00DE +3F 82 FF \wx00E2 +3F 82 FF \wx00EA +3F 82 FF \wx00EE +3F 82 FF \wx00F2 +3F 82 FF \wx00FA +3F 82 FF \wx00FE +3F 82 FF \wx0102 +3F 82 FF \wx010A +3F 82 FF \wx010E +3F 82 FF \wx0112 +3F 82 FF \wx011A +3F 82 FF \wx011E +3F 82 FF \wx0122 +3F 82 FF \wx012A +3F 82 FF \wx012E +3F 82 FF \wx0132 +3F 82 FF \wx013A +3F 82 FF \wx013E +3F 82 FF \wx0142 +3F 82 FF \wx014A +3F 82 FF \wx014E +3F 82 FF \wx0152 +3F 82 FF \wx015A +3F 82 FF \wx015E +3F 82 FF \wx0162 +3F 82 FF \wx016A +3F 82 FF \wx016E +3F 82 FF \wx0172 +3F 82 FF \wx017A +3F 82 FF \wx017E +3F 82 FF \wx0182 +3F 82 FF \wx018A +3F 82 FF \wx018E +3F 82 FF \wx0192 +3F 82 FF \wx019A +3F 82 FF \wx019E +3F 82 FF \wx01A2 +3F 82 FF \wx01AA +3F 82 FF \wx01AE +3F 82 FF \wx01B2 +3F 82 FF \wx01BA +3F 82 FF \wx01BE +3F 82 FF \wx01C2 +3F 82 FF \wx01CA +3F 82 FF \wx01CE +3F 82 FF \wx01D2 +3F 82 FF \wx01DA +3F 82 FF \wx01DE +3F 82 FF \wx01E2 +3F 82 FF \wx01EA +3F 82 FF \wx01EE +3F 82 FF \wx01F2 +3F 82 FF \wx01FA +3F 82 FF \wx01FE +3F 82 FF \wx0202 +3F 82 FF \wx020A +3F 82 FF \wx020E +3F 82 FF \wx0212 +3F 82 FF \wx021A +3F 82 FF \wx021E +3F 82 FF \wx0222 +3F 82 FF \wx022A +3F 82 FF \wx022E +3F 82 FF \wx0232 +3F 82 FF \wx023A +3F 82 FF \wx023E +3F 82 FF \wx0242 +3F 82 FF \wx024A +3F 82 FF \wx024E +3F 82 FF \wx0252 +3F 82 FF \wx025A +3F 82 FF \wx025E +3F 82 FF \wx0262 +3F 82 FF \wx026A +3F 82 FF \wx026E +3F 82 FF \wx0272 +3F 82 FF \wx027A +3F 82 FF \wx027E +3F 82 FF \wx0282 +3F 82 FF \wx028A +3F 82 FF \wx028E +3F 82 FF \wx0292 +3F 82 FF \wx029A +3F 82 FF \wx029E +3F 82 FF \wx02A2 +3F 82 FF \wx02AA +3F 82 FF \wx02AE +3F 82 FF \wx02B2 +3F 82 FF \wx02BA +3F 82 FF \wx02BE +3F 82 FF \wx02C2 +3F 82 FF \wx02CA +3F 82 FF \wx02CE +3F 82 FF \wx02D2 +3F 82 FF \wx02DA +3F 82 FF \wx02DE +3F 82 FF \wx02E2 +3F 82 FF \wx02EA +3F 82 FF \wx02EE +3F 82 FF \wx02F2 +3F 82 FF \wx02FA +3F 82 FF \wx02FE +3F 82 FF \wx0302 +3F 82 FF \wx030D +3F 82 FF \wx0311 +3F 82 FF \wx0315 +3F 82 FF \wx0319 +3F 82 FF \wx031D +3F 82 FF \wx0321 +3F 82 FF \wx0325 +3F 82 FF \wx0329 +3F 82 FF \wx032D +3F 82 FF \wx0331 +3F 82 FF \wx0335 +3F 82 FF \wx0339 +3F 82 FF \wx033D +3F 82 FF \wx0341 +3F 82 FF \wx0345 +3F 82 FF \wx0349 +3F 82 FF \wx034D +3F 82 FF \wx0351 +3F 82 FF \wx0355 +3F 82 FF \wx0359 +3F 82 FF \wx035D +3F 82 FF \wx0361 +3F 82 FF \wx0365 +3F 82 FF \wx0369 +3F 82 FF \wx036D +3F 82 FF \wx0371 +3F 82 FF \wx0375 +3F 82 FF \wx0379 +3F 82 FF \wx037D +3F 82 FF \wx0381 +3F 82 FF \wx0385 +3F 82 FF \wx0389 +FF + +9 * 909 00 06 \b2 01 FF \wx0001 +0D \b0 \b6 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +0D \b6 \b1 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 + diff --git a/regression/expected/044_two_bridges.grf b/regression/expected/044_two_bridges.grf new file mode 100644 index 0000000000000000000000000000000000000000..44367a912c348123e8cf1e04e97cce010791758f GIT binary patch literal 3881 zcmeI#&x;aa0LJlmbTbpR+TEap7F!6)NJuJ5%FT&3R(7Xtwl)$H5^PzaiDow7$F|&t2vL$ z=lbatLd?lxxg|HLEZ$$!Rv)R``j$qA5bDO7wtZODHlw;Cn>M5CTZ(w5s_ReW{VgG` zGu7$THrB7m;x|(}W@>M5_l@D-PwnlC=)uKrq~7nCuMX!MK?p$@BA`MHG|(Xq2}nX33@{-BS;#>i3Q&X+l%WDus6ibX(1aGWp#xp$K_3P% zgb|Ek0#mRl5*K)39(=F_%MgGdgdhwNP$32y=n#hlBq0q3n2>=ix#xQ{?*z6JyoQ5-S4$i{`xCocw zDqMpba2xJI6du4DY`|l93eVvMyo40&!fSX7@8AP`gir7pzSym=Y&+qwv4K6pAvfae zn61Eny8<4E%%r0|{zR&cNIkW1N4PhM)Ur&_SxU}QQhvAtq)QM&5QYe-5CaW#h(iLB zkOl)x$UqiykcR>kp#){9Kox3GhXypE1#Rd+7kbc#0SsXTW0=4c{;8C-%~JAcKaaDg iAN>ma1u4lQ@Y}d3%iO^^wWgNcvaBEWZ;tQ$4~yR}o>LY8 literal 0 HcmV?d00001 diff --git a/regression/expected/044_two_bridges.nfo b/regression/expected/044_two_bridges.nfo new file mode 100644 index 000000000..f6cd28b96 --- /dev/null +++ b/regression/expected/044_two_bridges.nfo @@ -0,0 +1,424 @@ +// Automatically generated by GRFCODEC. Do not modify! +// (Info version 32) +// Escapes: 2+ 2- 2< 2> 2u< 2u> 2/ 2% 2u/ 2u% 2* 2& 2| 2^ 2sto = 2s 2rst = 2r 2psto 2ror = 2rot 2cmp 2ucmp 2<< 2u>> 2>> +// Escapes: 71 70 7= 7! 7< 7> 7G 7g 7gG 7GG 7gg 7c 7C +// Escapes: D= = DR D+ = DF D- = DC Du* = DM D* = DnF Du<< = DnC D<< = DO D& D| Du/ D/ Du% D% +// Format: spritenum imagefile depth xpos ypos xsize ysize xrel yrel zoom flags + +0 * 4 \d12 + +1 * 54 14 "C" "INFO" +"B" "VRSN" \w4 \dx00000000 +"B" "MINV" \w4 \dx00000000 +"B" "NPAR" \w1 00 +"B" "PALS" \w1 "W" +"B" "BLTR" \w1 "8" +00 +00 +2 * 52 08 08 "NML+" "NML regression test" 00 "A test newgrf testing NML" 00 +3 * 24 00 06 \b6 01 FF \wx0001 +09 00 +0A 0C +13 \wx0028 +0C \wx0040 +0E 00 +0F \dx0000078A + +// param[63] = param[0] +4 * 9 0D 3F \D= 00 FE \dx000108FF + +5 * 7 06 +3F 82 FF \wx0003 +FF + +6 * 5 0A \b1 \b1 \w0 + +7 oneway.png 8bpp 0 0 4 4 -2 -2 normal +8 * 882 06 +3F 82 FF \wx000A +3F 82 FF \wx000E +3F 82 FF \wx0012 +3F 82 FF \wx001A +3F 82 FF \wx001E +3F 82 FF \wx0022 +3F 82 FF \wx002A +3F 82 FF \wx002E +3F 82 FF \wx0032 +3F 82 FF \wx003A +3F 82 FF \wx003E +3F 82 FF \wx0042 +3F 82 FF \wx004A +3F 82 FF \wx004E +3F 82 FF \wx0052 +3F 82 FF \wx005A +3F 82 FF \wx005E +3F 82 FF \wx0062 +3F 82 FF \wx006A +3F 82 FF \wx006E +3F 82 FF \wx0072 +3F 82 FF \wx007A +3F 82 FF \wx007E +3F 82 FF \wx0082 +3F 82 FF \wx008A +3F 82 FF \wx008E +3F 82 FF \wx0092 +3F 82 FF \wx009A +3F 82 FF \wx009E +3F 82 FF \wx00A2 +3F 82 FF \wx00AA +3F 82 FF \wx00AE +3F 82 FF \wx00B2 +3F 82 FF \wx00BA +3F 82 FF \wx00BE +3F 82 FF \wx00C2 +3F 82 FF \wx00CA +3F 82 FF \wx00CE +3F 82 FF \wx00D2 +3F 82 FF \wx00DA +3F 82 FF \wx00DE +3F 82 FF \wx00E2 +3F 82 FF \wx00EA +3F 82 FF \wx00EE +3F 82 FF \wx00F2 +3F 82 FF \wx00FA +3F 82 FF \wx00FE +3F 82 FF \wx0102 +3F 82 FF \wx010A +3F 82 FF \wx010E +3F 82 FF \wx0112 +3F 82 FF \wx011A +3F 82 FF \wx011E +3F 82 FF \wx0122 +3F 82 FF \wx012A +3F 82 FF \wx012E +3F 82 FF \wx0132 +3F 82 FF \wx013A +3F 82 FF \wx013E +3F 82 FF \wx0142 +3F 82 FF \wx014A +3F 82 FF \wx014E +3F 82 FF \wx0152 +3F 82 FF \wx015A +3F 82 FF \wx015E +3F 82 FF \wx0162 +3F 82 FF \wx016A +3F 82 FF \wx016E +3F 82 FF \wx0172 +3F 82 FF \wx017A +3F 82 FF \wx017E +3F 82 FF \wx0182 +3F 82 FF \wx018A +3F 82 FF \wx018E +3F 82 FF \wx0192 +3F 82 FF \wx019A +3F 82 FF \wx019E +3F 82 FF \wx01A2 +3F 82 FF \wx01AA +3F 82 FF \wx01AE +3F 82 FF \wx01B2 +3F 82 FF \wx01BA +3F 82 FF \wx01BE +3F 82 FF \wx01C2 +3F 82 FF \wx01CA +3F 82 FF \wx01CE +3F 82 FF \wx01D2 +3F 82 FF \wx01DA +3F 82 FF \wx01DE +3F 82 FF \wx01E2 +3F 82 FF \wx01EA +3F 82 FF \wx01EE +3F 82 FF \wx01F2 +3F 82 FF \wx01FA +3F 82 FF \wx01FE +3F 82 FF \wx0202 +3F 82 FF \wx020A +3F 82 FF \wx020E +3F 82 FF \wx0212 +3F 82 FF \wx021A +3F 82 FF \wx021E +3F 82 FF \wx0222 +3F 82 FF \wx022A +3F 82 FF \wx022E +3F 82 FF \wx0232 +3F 82 FF \wx023A +3F 82 FF \wx023E +3F 82 FF \wx0242 +3F 82 FF \wx024A +3F 82 FF \wx024E +3F 82 FF \wx0252 +3F 82 FF \wx025A +3F 82 FF \wx025E +3F 82 FF \wx0262 +3F 82 FF \wx026A +3F 82 FF \wx026E +3F 82 FF \wx0272 +3F 82 FF \wx027A +3F 82 FF \wx027E +3F 82 FF \wx0282 +3F 82 FF \wx028A +3F 82 FF \wx028E +3F 82 FF \wx0292 +3F 82 FF \wx029A +3F 82 FF \wx029E +3F 82 FF \wx02A2 +3F 82 FF \wx02AA +3F 82 FF \wx02AE +3F 82 FF \wx02B2 +3F 82 FF \wx02BA +3F 82 FF \wx02BE +3F 82 FF \wx02C2 +3F 82 FF \wx02CA +3F 82 FF \wx02CE +3F 82 FF \wx02D2 +3F 82 FF \wx02DA +3F 82 FF \wx02DE +3F 82 FF \wx02E2 +3F 82 FF \wx02EA +3F 82 FF \wx02EE +3F 82 FF \wx02F2 +3F 82 FF \wx02FA +3F 82 FF \wx02FE +3F 82 FF \wx0302 +3F 82 FF \wx030D +3F 82 FF \wx0311 +3F 82 FF \wx0315 +3F 82 FF \wx0319 +3F 82 FF \wx031D +3F 82 FF \wx0321 +3F 82 FF \wx0325 +3F 82 FF \wx0329 +3F 82 FF \wx032D +3F 82 FF \wx0331 +3F 82 FF \wx0335 +3F 82 FF \wx0339 +3F 82 FF \wx033D +3F 82 FF \wx0341 +3F 82 FF \wx0345 +3F 82 FF \wx0349 +3F 82 FF \wx034D +3F 82 FF \wx0351 +3F 82 FF \wx0355 +3F 82 FF \wx0359 +3F 82 FF \wx035D +3F 82 FF \wx0361 +3F 82 FF \wx0365 +3F 82 FF \wx0369 +3F 82 FF \wx036D +3F 82 FF \wx0371 +3F 82 FF \wx0375 +3F 82 FF \wx0379 +3F 82 FF \wx037D +3F 82 FF \wx0381 +3F 82 FF \wx0385 +3F 82 FF \wx0389 +FF + +9 * 909 00 06 \b2 01 FF \wx0001 +0D \b0 \b6 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +0D \b6 \b1 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 + +10 * 24 00 06 \b6 01 FF \wx0002 +09 00 +0A 10 +13 \wx003C +0C \wx0050 +0E 00 +0F \dx0000079E + +11 * 882 06 +3F 82 FF \wx000A +3F 82 FF \wx000E +3F 82 FF \wx0012 +3F 82 FF \wx001A +3F 82 FF \wx001E +3F 82 FF \wx0022 +3F 82 FF \wx002A +3F 82 FF \wx002E +3F 82 FF \wx0032 +3F 82 FF \wx003A +3F 82 FF \wx003E +3F 82 FF \wx0042 +3F 82 FF \wx004A +3F 82 FF \wx004E +3F 82 FF \wx0052 +3F 82 FF \wx005A +3F 82 FF \wx005E +3F 82 FF \wx0062 +3F 82 FF \wx006A +3F 82 FF \wx006E +3F 82 FF \wx0072 +3F 82 FF \wx007A +3F 82 FF \wx007E +3F 82 FF \wx0082 +3F 82 FF \wx008A +3F 82 FF \wx008E +3F 82 FF \wx0092 +3F 82 FF \wx009A +3F 82 FF \wx009E +3F 82 FF \wx00A2 +3F 82 FF \wx00AA +3F 82 FF \wx00AE +3F 82 FF \wx00B2 +3F 82 FF \wx00BA +3F 82 FF \wx00BE +3F 82 FF \wx00C2 +3F 82 FF \wx00CA +3F 82 FF \wx00CE +3F 82 FF \wx00D2 +3F 82 FF \wx00DA +3F 82 FF \wx00DE +3F 82 FF \wx00E2 +3F 82 FF \wx00EA +3F 82 FF \wx00EE +3F 82 FF \wx00F2 +3F 82 FF \wx00FA +3F 82 FF \wx00FE +3F 82 FF \wx0102 +3F 82 FF \wx010A +3F 82 FF \wx010E +3F 82 FF \wx0112 +3F 82 FF \wx011A +3F 82 FF \wx011E +3F 82 FF \wx0122 +3F 82 FF \wx012A +3F 82 FF \wx012E +3F 82 FF \wx0132 +3F 82 FF \wx013A +3F 82 FF \wx013E +3F 82 FF \wx0142 +3F 82 FF \wx014A +3F 82 FF \wx014E +3F 82 FF \wx0152 +3F 82 FF \wx015A +3F 82 FF \wx015E +3F 82 FF \wx0162 +3F 82 FF \wx016A +3F 82 FF \wx016E +3F 82 FF \wx0172 +3F 82 FF \wx017A +3F 82 FF \wx017E +3F 82 FF \wx0182 +3F 82 FF \wx018A +3F 82 FF \wx018E +3F 82 FF \wx0192 +3F 82 FF \wx019A +3F 82 FF \wx019E +3F 82 FF \wx01A2 +3F 82 FF \wx01AA +3F 82 FF \wx01AE +3F 82 FF \wx01B2 +3F 82 FF \wx01BA +3F 82 FF \wx01BE +3F 82 FF \wx01C2 +3F 82 FF \wx01CA +3F 82 FF \wx01CE +3F 82 FF \wx01D2 +3F 82 FF \wx01DA +3F 82 FF \wx01DE +3F 82 FF \wx01E2 +3F 82 FF \wx01EA +3F 82 FF \wx01EE +3F 82 FF \wx01F2 +3F 82 FF \wx01FA +3F 82 FF \wx01FE +3F 82 FF \wx0202 +3F 82 FF \wx020A +3F 82 FF \wx020E +3F 82 FF \wx0212 +3F 82 FF \wx021A +3F 82 FF \wx021E +3F 82 FF \wx0222 +3F 82 FF \wx022A +3F 82 FF \wx022E +3F 82 FF \wx0232 +3F 82 FF \wx023A +3F 82 FF \wx023E +3F 82 FF \wx0242 +3F 82 FF \wx024A +3F 82 FF \wx024E +3F 82 FF \wx0252 +3F 82 FF \wx025A +3F 82 FF \wx025E +3F 82 FF \wx0262 +3F 82 FF \wx026A +3F 82 FF \wx026E +3F 82 FF \wx0272 +3F 82 FF \wx027A +3F 82 FF \wx027E +3F 82 FF \wx0282 +3F 82 FF \wx028A +3F 82 FF \wx028E +3F 82 FF \wx0292 +3F 82 FF \wx029A +3F 82 FF \wx029E +3F 82 FF \wx02A2 +3F 82 FF \wx02AA +3F 82 FF \wx02AE +3F 82 FF \wx02B2 +3F 82 FF \wx02BA +3F 82 FF \wx02BE +3F 82 FF \wx02C2 +3F 82 FF \wx02CA +3F 82 FF \wx02CE +3F 82 FF \wx02D2 +3F 82 FF \wx02DA +3F 82 FF \wx02DE +3F 82 FF \wx02E2 +3F 82 FF \wx02EA +3F 82 FF \wx02EE +3F 82 FF \wx02F2 +3F 82 FF \wx02FA +3F 82 FF \wx02FE +3F 82 FF \wx0302 +3F 82 FF \wx030D +3F 82 FF \wx0311 +3F 82 FF \wx0315 +3F 82 FF \wx0319 +3F 82 FF \wx031D +3F 82 FF \wx0321 +3F 82 FF \wx0325 +3F 82 FF \wx0329 +3F 82 FF \wx032D +3F 82 FF \wx0331 +3F 82 FF \wx0335 +3F 82 FF \wx0339 +3F 82 FF \wx033D +3F 82 FF \wx0341 +3F 82 FF \wx0345 +3F 82 FF \wx0349 +3F 82 FF \wx034D +3F 82 FF \wx0351 +3F 82 FF \wx0355 +3F 82 FF \wx0359 +3F 82 FF \wx035D +3F 82 FF \wx0361 +3F 82 FF \wx0365 +3F 82 FF \wx0369 +3F 82 FF \wx036D +3F 82 FF \wx0371 +3F 82 FF \wx0375 +3F 82 FF \wx0379 +3F 82 FF \wx037D +3F 82 FF \wx0381 +3F 82 FF \wx0385 +3F 82 FF \wx0389 +FF + +12 * 909 00 06 \b2 01 FF \wx0002 +0D \b0 \b6 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 +0D \b6 \b1 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 + diff --git a/regression/expected/045_bridge_dedup.grf b/regression/expected/045_bridge_dedup.grf new file mode 100644 index 0000000000000000000000000000000000000000..6dc14f0b89e49a72fa8f1ffbe902b44b21e4dfbf GIT binary patch literal 2495 zcmc)MPe>GD7{~E0BNg342piU2*$o{DqN}o>xl8}N1XoMzch8AdrHn5-zY{)`C z48S0aKpq?zhY2V^5hh^@reOwVVGibD0Ty8imSF`}VGY({12$m`wqXZK;6ga0F(3g+ zNI?TMLK8GY3$#KTSkMJFWT77hU=T(i4-SmO1QehMlQ0F-FaxtN2lKE1i?9UCumY>F z2J5f^o3I7jumdGXr=mHzE&<_JJ2qTaO2gYFn3Q&Ye zn1X4TfmxV?d02o&Sb}9(fmK+8b=ZJS*n(}?ffBe7j%ZA%fqFOw$KeE=gwt>q&cOw^ z3|Aln*P#=7;5OWa`|toBLJo%EF+7E5@B&`KD|iiWBHmkmb}AZXu`pFs{}2OBuS`lR z5bRGRqyJO;+dQlfBE|9a+5Il&lF`%tb?D$UJkh=iYc-;Hh yw?M`lfS-L0WV{sk*_S}ZdxD>R4rIJK_}QmG#@mFSeGFu5_cPaXJ^y~{Nc{qbmNEeV literal 0 HcmV?d00001 diff --git a/regression/expected/045_bridge_dedup.nfo b/regression/expected/045_bridge_dedup.nfo new file mode 100644 index 000000000..15a206f49 --- /dev/null +++ b/regression/expected/045_bridge_dedup.nfo @@ -0,0 +1,239 @@ +// Automatically generated by GRFCODEC. Do not modify! +// (Info version 32) +// Escapes: 2+ 2- 2< 2> 2u< 2u> 2/ 2% 2u/ 2u% 2* 2& 2| 2^ 2sto = 2s 2rst = 2r 2psto 2ror = 2rot 2cmp 2ucmp 2<< 2u>> 2>> +// Escapes: 71 70 7= 7! 7< 7> 7G 7g 7gG 7GG 7gg 7c 7C +// Escapes: D= = DR D+ = DF D- = DC Du* = DM D* = DnF Du<< = DnC D<< = DO D& D| Du/ D/ Du% D% +// Format: spritenum imagefile depth xpos ypos xsize ysize xrel yrel zoom flags + +0 * 4 \d21 + +1 * 54 14 "C" "INFO" +"B" "VRSN" \w4 \dx00000000 +"B" "MINV" \w4 \dx00000000 +"B" "NPAR" \w1 00 +"B" "PALS" \w1 "W" +"B" "BLTR" \w1 "8" +00 +00 +2 * 52 08 08 "NML+" "NML regression test" 00 "A test newgrf testing NML" 00 +3 * 24 00 06 \b6 01 FF \wx0003 +09 00 +0A 0C +13 \wx0028 +0C \wx0040 +0E 00 +0F \dx0000078A + +// param[63] = param[0] +4 * 9 0D 3F \D= 00 FE \dx000D08FF + +5 * 7 06 +3F 82 FF \wx0003 +FF + +6 * 5 0A \b1 \b13 \w0 + +7 oneway.png 8bpp 0 0 4 4 -2 0 normal +8 oneway.png 8bpp 0 0 4 4 -3 0 normal +9 oneway.png 8bpp 0 0 4 4 -4 0 normal +10 oneway.png 8bpp 0 0 4 4 -5 0 normal +11 oneway.png 8bpp 0 0 4 4 -6 0 normal +12 oneway.png 8bpp 0 0 4 4 -7 0 normal +13 oneway.png 8bpp 0 0 4 4 -8 0 normal +14 oneway.png 8bpp 0 0 4 4 -9 0 normal +15 oneway.png 8bpp 0 0 4 4 -10 0 normal +16 oneway.png 8bpp 0 0 4 4 -11 0 normal +17 oneway.png 8bpp 0 0 4 4 -12 0 normal +18 oneway.png 8bpp 0 0 4 4 -13 0 normal + +19 oneway.png 8bpp 0 0 4 4 -2 -2 normal +20 * 882 06 +3F 82 FF \wx000A +3F 82 FF \wx000E +3F 82 FF \wx0012 +3F 82 FF \wx001A +3F 82 FF \wx001E +3F 82 FF \wx0022 +3F 82 FF \wx002A +3F 82 FF \wx002E +3F 82 FF \wx0032 +3F 82 FF \wx003A +3F 82 FF \wx003E +3F 82 FF \wx0042 +3F 82 FF \wx004A +3F 82 FF \wx004E +3F 82 FF \wx0052 +3F 82 FF \wx005A +3F 82 FF \wx005E +3F 82 FF \wx0062 +3F 82 FF \wx006A +3F 82 FF \wx006E +3F 82 FF \wx0072 +3F 82 FF \wx007A +3F 82 FF \wx007E +3F 82 FF \wx0082 +3F 82 FF \wx008A +3F 82 FF \wx008E +3F 82 FF \wx0092 +3F 82 FF \wx009A +3F 82 FF \wx009E +3F 82 FF \wx00A2 +3F 82 FF \wx00AA +3F 82 FF \wx00AE +3F 82 FF \wx00B2 +3F 82 FF \wx00BA +3F 82 FF \wx00BE +3F 82 FF \wx00C2 +3F 82 FF \wx00CA +3F 82 FF \wx00CE +3F 82 FF \wx00D2 +3F 82 FF \wx00DA +3F 82 FF \wx00DE +3F 82 FF \wx00E2 +3F 82 FF \wx00EA +3F 82 FF \wx00EE +3F 82 FF \wx00F2 +3F 82 FF \wx00FA +3F 82 FF \wx00FE +3F 82 FF \wx0102 +3F 82 FF \wx010A +3F 82 FF \wx010E +3F 82 FF \wx0112 +3F 82 FF \wx011A +3F 82 FF \wx011E +3F 82 FF \wx0122 +3F 82 FF \wx012A +3F 82 FF \wx012E +3F 82 FF \wx0132 +3F 82 FF \wx013A +3F 82 FF \wx013E +3F 82 FF \wx0142 +3F 82 FF \wx014A +3F 82 FF \wx014E +3F 82 FF \wx0152 +3F 82 FF \wx015A +3F 82 FF \wx015E +3F 82 FF \wx0162 +3F 82 FF \wx016A +3F 82 FF \wx016E +3F 82 FF \wx0172 +3F 82 FF \wx017A +3F 82 FF \wx017E +3F 82 FF \wx0182 +3F 82 FF \wx018A +3F 82 FF \wx018E +3F 82 FF \wx0192 +3F 82 FF \wx019A +3F 82 FF \wx019E +3F 82 FF \wx01A2 +3F 82 FF \wx01AA +3F 82 FF \wx01AE +3F 82 FF \wx01B2 +3F 82 FF \wx01BA +3F 82 FF \wx01BE +3F 82 FF \wx01C2 +3F 82 FF \wx01CA +3F 82 FF \wx01CE +3F 82 FF \wx01D2 +3F 82 FF \wx01DA +3F 82 FF \wx01DE +3F 82 FF \wx01E2 +3F 82 FF \wx01EA +3F 82 FF \wx01EE +3F 82 FF \wx01F2 +3F 82 FF \wx01FA +3F 82 FF \wx01FE +3F 82 FF \wx0202 +3F 82 FF \wx020A +3F 82 FF \wx020E +3F 82 FF \wx0212 +3F 82 FF \wx021A +3F 82 FF \wx021E +3F 82 FF \wx0222 +3F 82 FF \wx022A +3F 82 FF \wx022E +3F 82 FF \wx0232 +3F 82 FF \wx023A +3F 82 FF \wx023E +3F 82 FF \wx0242 +3F 82 FF \wx024A +3F 82 FF \wx024E +3F 82 FF \wx0252 +3F 82 FF \wx025A +3F 82 FF \wx025E +3F 82 FF \wx0262 +3F 82 FF \wx026A +3F 82 FF \wx026E +3F 82 FF \wx0272 +3F 82 FF \wx027A +3F 82 FF \wx027E +3F 82 FF \wx0282 +3F 82 FF \wx028A +3F 82 FF \wx028E +3F 82 FF \wx0292 +3F 82 FF \wx029A +3F 82 FF \wx029E +3F 82 FF \wx02A2 +3F 82 FF \wx02AA +3F 82 FF \wx02AE +3F 82 FF \wx02B2 +3F 82 FF \wx02BA +3F 82 FF \wx02BE +3F 82 FF \wx02C2 +3F 82 FF \wx02CA +3F 82 FF \wx02CE +3F 82 FF \wx02D2 +3F 82 FF \wx02DA +3F 82 FF \wx02DE +3F 82 FF \wx02E2 +3F 82 FF \wx02EA +3F 82 FF \wx02EE +3F 82 FF \wx02F2 +3F 82 FF \wx02FA +3F 82 FF \wx02FE +3F 82 FF \wx0302 +3F 82 FF \wx030D +3F 82 FF \wx0311 +3F 82 FF \wx0315 +3F 82 FF \wx0319 +3F 82 FF \wx031D +3F 82 FF \wx0321 +3F 82 FF \wx0325 +3F 82 FF \wx0329 +3F 82 FF \wx032D +3F 82 FF \wx0331 +3F 82 FF \wx0335 +3F 82 FF \wx0339 +3F 82 FF \wx033D +3F 82 FF \wx0341 +3F 82 FF \wx0345 +3F 82 FF \wx0349 +3F 82 FF \wx034D +3F 82 FF \wx0351 +3F 82 FF \wx0355 +3F 82 FF \wx0359 +3F 82 FF \wx035D +3F 82 FF \wx0361 +3F 82 FF \wx0365 +3F 82 FF \wx0369 +3F 82 FF \wx036D +3F 82 FF \wx0371 +3F 82 FF \wx0375 +3F 82 FF \wx0379 +3F 82 FF \wx037D +3F 82 FF \wx0381 +3F 82 FF \wx0385 +3F 82 FF \wx0389 +FF + +21 * 909 00 06 \b2 01 FF \wx0003 +0D \b0 \b6 +\dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000001 \dx00000001 \dx00000001 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000001 \dx00000001 \dx00000001 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000001 \dx00000001 \dx00000001 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000000 \dx00000001 \dx00000001 \dx00000001 \dx00000000 +\dx00000002 \dx00000002 \dx00000002 \dx00000000 \dx00000003 \dx00000003 \dx00000003 \dx00000000 \dx00000002 \dx00000002 \dx00000002 \dx00000000 \dx00000003 \dx00000003 \dx00000003 \dx00000000 \dx00000002 \dx00000002 \dx00000002 \dx00000000 \dx00000003 \dx00000003 \dx00000003 \dx00000000 \dx00000002 \dx00000002 \dx00000002 \dx00000000 \dx00000003 \dx00000003 \dx00000003 \dx00000000 +\dx00000004 \dx00000004 \dx00000004 \dx00000000 \dx00000005 \dx00000005 \dx00000005 \dx00000000 \dx00000004 \dx00000004 \dx00000004 \dx00000000 \dx00000005 \dx00000005 \dx00000005 \dx00000000 \dx00000004 \dx00000004 \dx00000004 \dx00000000 \dx00000005 \dx00000005 \dx00000005 \dx00000000 \dx00000004 \dx00000004 \dx00000004 \dx00000000 \dx00000005 \dx00000005 \dx00000005 \dx00000000 +\dx00000006 \dx00000006 \dx00000006 \dx00000000 \dx00000007 \dx00000007 \dx00000007 \dx00000000 \dx00000006 \dx00000006 \dx00000006 \dx00000000 \dx00000007 \dx00000007 \dx00000007 \dx00000000 \dx00000006 \dx00000006 \dx00000006 \dx00000000 \dx00000007 \dx00000007 \dx00000007 \dx00000000 \dx00000006 \dx00000006 \dx00000006 \dx00000000 \dx00000007 \dx00000007 \dx00000007 \dx00000000 +\dx00000008 \dx00000008 \dx00000008 \dx00000000 \dx00000009 \dx00000009 \dx00000009 \dx00000000 \dx00000008 \dx00000008 \dx00000008 \dx00000000 \dx00000009 \dx00000009 \dx00000009 \dx00000000 \dx00000008 \dx00000008 \dx00000008 \dx00000000 \dx00000009 \dx00000009 \dx00000009 \dx00000000 \dx00000008 \dx00000008 \dx00000008 \dx00000000 \dx00000009 \dx00000009 \dx00000009 \dx00000000 +\dx0000000A \dx0000000A \dx0000000A \dx00000000 \dx0000000B \dx0000000B \dx0000000B \dx00000000 \dx0000000A \dx0000000A \dx0000000A \dx00000000 \dx0000000B \dx0000000B \dx0000000B \dx00000000 \dx0000000A \dx0000000A \dx0000000A \dx00000000 \dx0000000B \dx0000000B \dx0000000B \dx00000000 \dx0000000A \dx0000000A \dx0000000A \dx00000000 \dx0000000B \dx0000000B \dx0000000B \dx00000000 +0D \b6 \b1 +\dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C \dx0000000C + diff --git a/regression/expected/example_bridge.grf b/regression/expected/example_bridge.grf new file mode 100644 index 0000000000000000000000000000000000000000..7ccf0889cd9fd7cbcb8393ccd5154914038742bb GIT binary patch literal 122090 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 P9?SdRWQL$<>i0hY%a~>- literal 0 HcmV?d00001 diff --git a/regression/expected/example_bridge.nfo b/regression/expected/example_bridge.nfo new file mode 100644 index 000000000..171df7596 --- /dev/null +++ b/regression/expected/example_bridge.nfo @@ -0,0 +1,260 @@ +// Automatically generated by GRFCODEC. Do not modify! +// (Info version 32) +// Escapes: 2+ 2- 2< 2> 2u< 2u> 2/ 2% 2u/ 2u% 2* 2& 2| 2^ 2sto = 2s 2rst = 2r 2psto 2ror = 2rot 2cmp 2ucmp 2<< 2u>> 2>> +// Escapes: 71 70 7= 7! 7< 7> 7G 7g 7gG 7GG 7gg 7c 7C +// Escapes: D= = DR D+ = DF D- = DC Du* = DM D* = DnF Du<< = DnC D<< = DO D& D| Du/ D/ Du% D% +// Format: spritenum imagefile depth xpos ypos xsize ysize xrel yrel zoom flags + +0 * 4 \d23 + +1 * 54 14 "C" "INFO" +"B" "VRSN" \w4 \dx00000001 +"B" "MINV" \w4 \dx00000001 +"B" "NPAR" \w1 00 +"B" "PALS" \w1 "D" +"B" "BLTR" \w1 "8" +00 +00 +2 * 313 08 08 "NML\07" "NML Example NewGRF: Bridge" 00 "\8ENML Example NewGRF: Bridge\0D\98This NewGRF is intended to provide a coding example for the high-level NewGRF-coding language NML.\0DIt demonstrates how to define a custom bridge using FEAT_BRIDGES with sprite templates, 6-table duplication for bridge_parts, and 4x zoom alternatives." 00 +3 * 88 04 06 FF 03 \wxDC00 "Wooden Bridge" 00 "A traditional wooden road bridge." 00 "A traditional wooden rail bridge." 00 + +4 * 47 00 06 \b10 01 FF \wx0000 +09 00 +0A FF +13 \wx0050 +0C \wx0028 +0E 01 +0F \dx00000708 +10 \wxDC00 +12 \wxDC01 +11 \wxDC02 +15 06 0F 0F 0F 0F 0F 0F 0F 0F +0F 0F 0F 0F + +// param[63] = param[0] +5 * 9 0D 3F \D= 00 FE \dx000E08FF + +6 * 7 06 +3F 82 FF \wx0003 +FF + +7 * 5 0A \b1 \b14 \w0 + +8 gfx/wood_rail_64.png 8bpp 66 1 64 127 -31 -84 normal +| gfx/wood_rail_256.png 8bpp 264 4 256 511 -124 -336 zi4 +9 gfx/wood_rail_64.png 8bpp 1 1 64 127 -31 -84 normal +| gfx/wood_rail_256.png 8bpp 4 4 256 511 -124 -336 zi4 +10 gfx/wood_rail_64.png 8bpp 66 130 64 127 -55 -96 normal +| gfx/wood_rail_256.png 8bpp 264 520 256 511 -220 -384 zi4 +11 gfx/wood_rail_64.png 8bpp 1 130 64 127 -7 -96 normal +| gfx/wood_rail_256.png 8bpp 4 520 256 511 -28 -384 zi4 +12 gfx/wood_rail_64.png 8bpp 66 260 64 127 -55 -96 normal +| gfx/wood_rail_256.png 8bpp 264 1040 256 511 -220 -384 zi4 +13 gfx/wood_rail_64.png 8bpp 1 260 64 127 -7 -96 normal +| gfx/wood_rail_256.png 8bpp 4 1040 256 511 -28 -384 zi4 +14 gfx/ramps_wood_rail_64.png 8bpp 1 1 64 46 -31 -24 normal +| gfx/ramps_wood_rail_256.png 8bpp 4 4 256 187 -124 -96 zi4 +15 gfx/ramps_wood_rail_64.png 8bpp 131 1 64 46 -31 -24 normal +| gfx/ramps_wood_rail_256.png 8bpp 524 4 256 187 -124 -96 zi4 +16 gfx/ramps_wood_rail_64.png 8bpp 66 1 64 62 -31 -32 normal +| gfx/ramps_wood_rail_256.png 8bpp 264 4 256 251 -124 -128 zi4 +17 gfx/ramps_wood_rail_64.png 8bpp 196 1 64 62 -31 -32 normal +| gfx/ramps_wood_rail_256.png 8bpp 784 4 256 251 -124 -128 zi4 +18 gfx/ramps_wood_rail_64.png 8bpp 326 1 64 54 -31 -24 normal +| gfx/ramps_wood_rail_256.png 8bpp 1304 4 256 219 -124 -96 zi4 +19 gfx/ramps_wood_rail_64.png 8bpp 456 1 64 54 -31 -24 normal +| gfx/ramps_wood_rail_256.png 8bpp 1824 4 256 219 -124 -96 zi4 +20 gfx/ramps_wood_rail_64.png 8bpp 261 1 64 54 -31 -24 normal +| gfx/ramps_wood_rail_256.png 8bpp 1044 4 256 219 -124 -96 zi4 +21 gfx/ramps_wood_rail_64.png 8bpp 391 1 64 54 -31 -24 normal +| gfx/ramps_wood_rail_256.png 8bpp 1564 4 256 219 -124 -96 zi4 +22 * 882 06 +3F 82 FF \wx000A +3F 82 FF \wx000E +3F 82 FF \wx0012 +3F 82 FF \wx001A +3F 82 FF \wx001E +3F 82 FF \wx0022 +3F 82 FF \wx002A +3F 82 FF \wx002E +3F 82 FF \wx0032 +3F 82 FF \wx003A +3F 82 FF \wx003E +3F 82 FF \wx0042 +3F 82 FF \wx004A +3F 82 FF \wx004E +3F 82 FF \wx0052 +3F 82 FF \wx005A +3F 82 FF \wx005E +3F 82 FF \wx0062 +3F 82 FF \wx006A +3F 82 FF \wx006E +3F 82 FF \wx0072 +3F 82 FF \wx007A +3F 82 FF \wx007E +3F 82 FF \wx0082 +3F 82 FF \wx008A +3F 82 FF \wx008E +3F 82 FF \wx0092 +3F 82 FF \wx009A +3F 82 FF \wx009E +3F 82 FF \wx00A2 +3F 82 FF \wx00AA +3F 82 FF \wx00AE +3F 82 FF \wx00B2 +3F 82 FF \wx00BA +3F 82 FF \wx00BE +3F 82 FF \wx00C2 +3F 82 FF \wx00CA +3F 82 FF \wx00CE +3F 82 FF \wx00D2 +3F 82 FF \wx00DA +3F 82 FF \wx00DE +3F 82 FF \wx00E2 +3F 82 FF \wx00EA +3F 82 FF \wx00EE +3F 82 FF \wx00F2 +3F 82 FF \wx00FA +3F 82 FF \wx00FE +3F 82 FF \wx0102 +3F 82 FF \wx010A +3F 82 FF \wx010E +3F 82 FF \wx0112 +3F 82 FF \wx011A +3F 82 FF \wx011E +3F 82 FF \wx0122 +3F 82 FF \wx012A +3F 82 FF \wx012E +3F 82 FF \wx0132 +3F 82 FF \wx013A +3F 82 FF \wx013E +3F 82 FF \wx0142 +3F 82 FF \wx014A +3F 82 FF \wx014E +3F 82 FF \wx0152 +3F 82 FF \wx015A +3F 82 FF \wx015E +3F 82 FF \wx0162 +3F 82 FF \wx016A +3F 82 FF \wx016E +3F 82 FF \wx0172 +3F 82 FF \wx017A +3F 82 FF \wx017E +3F 82 FF \wx0182 +3F 82 FF \wx018A +3F 82 FF \wx018E +3F 82 FF \wx0192 +3F 82 FF \wx019A +3F 82 FF \wx019E +3F 82 FF \wx01A2 +3F 82 FF \wx01AA +3F 82 FF \wx01AE +3F 82 FF \wx01B2 +3F 82 FF \wx01BA +3F 82 FF \wx01BE +3F 82 FF \wx01C2 +3F 82 FF \wx01CA +3F 82 FF \wx01CE +3F 82 FF \wx01D2 +3F 82 FF \wx01DA +3F 82 FF \wx01DE +3F 82 FF \wx01E2 +3F 82 FF \wx01EA +3F 82 FF \wx01EE +3F 82 FF \wx01F2 +3F 82 FF \wx01FA +3F 82 FF \wx01FE +3F 82 FF \wx0202 +3F 82 FF \wx020A +3F 82 FF \wx020E +3F 82 FF \wx0212 +3F 82 FF \wx021A +3F 82 FF \wx021E +3F 82 FF \wx0222 +3F 82 FF \wx022A +3F 82 FF \wx022E +3F 82 FF \wx0232 +3F 82 FF \wx023A +3F 82 FF \wx023E +3F 82 FF \wx0242 +3F 82 FF \wx024A +3F 82 FF \wx024E +3F 82 FF \wx0252 +3F 82 FF \wx025A +3F 82 FF \wx025E +3F 82 FF \wx0262 +3F 82 FF \wx026A +3F 82 FF \wx026E +3F 82 FF \wx0272 +3F 82 FF \wx027A +3F 82 FF \wx027E +3F 82 FF \wx0282 +3F 82 FF \wx028A +3F 82 FF \wx028E +3F 82 FF \wx0292 +3F 82 FF \wx029A +3F 82 FF \wx029E +3F 82 FF \wx02A2 +3F 82 FF \wx02AA +3F 82 FF \wx02AE +3F 82 FF \wx02B2 +3F 82 FF \wx02BA +3F 82 FF \wx02BE +3F 82 FF \wx02C2 +3F 82 FF \wx02CA +3F 82 FF \wx02CE +3F 82 FF \wx02D2 +3F 82 FF \wx02DA +3F 82 FF \wx02DE +3F 82 FF \wx02E2 +3F 82 FF \wx02EA +3F 82 FF \wx02EE +3F 82 FF \wx02F2 +3F 82 FF \wx02FA +3F 82 FF \wx02FE +3F 82 FF \wx0302 +3F 82 FF \wx030D +3F 82 FF \wx0311 +3F 82 FF \wx0315 +3F 82 FF \wx0319 +3F 82 FF \wx031D +3F 82 FF \wx0321 +3F 82 FF \wx0325 +3F 82 FF \wx0329 +3F 82 FF \wx032D +3F 82 FF \wx0331 +3F 82 FF \wx0335 +3F 82 FF \wx0339 +3F 82 FF \wx033D +3F 82 FF \wx0341 +3F 82 FF \wx0345 +3F 82 FF \wx0349 +3F 82 FF \wx034D +3F 82 FF \wx0351 +3F 82 FF \wx0355 +3F 82 FF \wx0359 +3F 82 FF \wx035D +3F 82 FF \wx0361 +3F 82 FF \wx0365 +3F 82 FF \wx0369 +3F 82 FF \wx036D +3F 82 FF \wx0371 +3F 82 FF \wx0375 +3F 82 FF \wx0379 +3F 82 FF \wx037D +3F 82 FF \wx0381 +3F 82 FF \wx0385 +3F 82 FF \wx0389 +FF + +23 * 909 00 06 \b2 01 FF \wx0000 +0D \b0 \b6 +\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 +\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 +\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 +\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 +\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 +\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 +0D \b6 \b1 +\dx00000006 \dx00000007 \dx00000008 \dx00000009 \dx0000000A \dx0000000B \dx0000000C \dx0000000D \dx00000006 \dx00000007 \dx00000008 \dx00000009 \dx0000000A \dx0000000B \dx0000000C \dx0000000D \dx00000006 \dx00000007 \dx00000008 \dx00000009 \dx0000000A \dx0000000B \dx0000000C \dx0000000D \dx00000006 \dx00000007 \dx00000008 \dx00000009 \dx0000000A \dx0000000B \dx0000000C \dx0000000D + From 99ea323f8716eefaec8797977cab85194ac3cab2 Mon Sep 17 00:00:00 2001 From: Francisco Modesto Date: Wed, 29 Apr 2026 01:08:26 +0100 Subject: [PATCH 2/3] Example --- examples/bridge/example_bridge.nml | 343 ++++++++------------ examples/bridge/gfx/cable.png | Bin 0 -> 14118 bytes examples/bridge/gfx/ramps_wood_rail_256.png | Bin 53475 -> 0 bytes examples/bridge/gfx/ramps_wood_rail_64.png | Bin 4425 -> 0 bytes examples/bridge/gfx/wood_rail_256.png | Bin 38307 -> 0 bytes examples/bridge/gfx/wood_rail_64.png | Bin 3570 -> 0 bytes examples/bridge/lang/english.lng | 6 +- nml/actions/action0bridge.py | 2 +- nml/actions/action0properties.py | 2 +- regression/expected/example_bridge.grf | Bin 122090 -> 22271 bytes regression/expected/example_bridge.nfo | 125 +++---- 11 files changed, 179 insertions(+), 299 deletions(-) create mode 100644 examples/bridge/gfx/cable.png delete mode 100644 examples/bridge/gfx/ramps_wood_rail_256.png delete mode 100644 examples/bridge/gfx/ramps_wood_rail_64.png delete mode 100644 examples/bridge/gfx/wood_rail_256.png delete mode 100644 examples/bridge/gfx/wood_rail_64.png diff --git a/examples/bridge/example_bridge.nml b/examples/bridge/example_bridge.nml index 9dd279dc4..b285748db 100644 --- a/examples/bridge/example_bridge.nml +++ b/examples/bridge/example_bridge.nml @@ -1,266 +1,177 @@ -/* +/* * This file is aimed to provide an example on how to code a custom bridge in NML. - * It creates a wooden rail bridge with support for multiple transports - * (rail, road, monorail, maglev). + * It creates a cable bridge with support for multiple transport types (rail, road, + * monorail, maglev). The same set of cable sprites is reused across all transport + * types; the game overlays the correct track or road surface at runtime. * - * Key concepts demonstrated: - * - Sprite templates: reusable coordinate definitions that work at multiple zoom levels - * - Bridge graphics structure: back sprites, front sprites, pillars, and ends (ramps) - * - Alternative sprites: higher-zoom graphics (4x) for better quality at higher resolutions + * To keep the code readable, not every property is documented in detail. + * Refer to the bridge-specific reference in the documentation for the full list + * of available properties and callbacks. * - * For more information, refer to the NewGRF specifications documentation. + * Apart from this file, you will also need the following: + * - Graphics, in gfx/cable.png + * - Language files, to be placed in the 'lang' folder. + * Currently english.lng is supplied. * - * Apart from this file, you will also need: - * - Graphics in gfx/ (ramps_wood_rail_64.png, ramps_wood_rail_256.png, - * wood_rail_64.png, wood_rail_256.png) - * - Language files in lang/ (english.lng) + * Graphics are from JP+ Bridges by Emperor Jake. */ /* - * First, define a grf block with basic properties. - * String constants like STR_GRF_NAME come from the language files in lang/. + * First, define a grf block. This defines some basic properties of the grf, + * which are required for the grf to be valid and loadable. */ grf { + /* This grf is part of NML, therefore "NML" is chosen as the first three + * characters of the GRFID. It is the eighth example grf defined as part of + * NML, therefore the last character is set to 7 as numbering is zero-based. + */ grfid: "NML\07"; + /* GRF name and description strings are defined in the lang files */ name: string(STR_GRF_NAME); desc: string(STR_GRF_DESC); + /* This is the first version, start numbering at 1. */ version: 1; min_compatible_version: 1; } -/* - * Sprite templates help avoid repetitive coordinate definitions. - * The z parameter scales coordinates for different zoom levels: - * z = 1 for normal zoom (64 pixels per tile) - * z = 4 for 4x zoom (256 pixels per tile) +/* Next: a series of templates for the bridge graphics. + * Templates allow you to avoid repeating sprite coordinates for each spriteset. + * Parameter t selects the column within the sprite sheet (0 = leftmost column, + * 1 = next, and so on), so different bridge part slots can share the same layout. * - * Sprite format: [ x_in_file, y_in_file, width, height, x_offset, y_offset ] - */ - -/* - * Bridge ramps -- 8 sprites per transport type for bridge approaches. - * First 4: flat end (far X, far Y, near X, near Y) - * Last 4: ramp (far X, far Y, near X, near Y) - */ -template template_bridgeramps_wood(x, y, z) { - [ 1*z+x*z, 1*z+y*z, 64*z, 47*z-1, -31*z, -24*z ] /* flat farthest X */ - [ 131*z+x*z, 1*z+y*z, 64*z, 47*z-1, -31*z, -24*z ] /* flat farthest Y */ - [ 66*z+x*z, 1*z+y*z, 64*z, 63*z-1, -31*z, -32*z ] /* flat nearest X */ - [ 196*z+x*z, 1*z+y*z, 64*z, 63*z-1, -31*z, -32*z ] /* flat nearest Y */ - [ 326*z+x*z, 1*z+y*z, 64*z, 55*z-1, -31*z, -24*z ] /* ramp farthest X */ - [ 456*z+x*z, 1*z+y*z, 64*z, 55*z-1, -31*z, -24*z ] /* ramp farthest Y */ - [ 261*z+x*z, 1*z+y*z, 64*z, 55*z-1, -31*z, -24*z ] /* ramp nearest X */ - [ 391*z+x*z, 1*z+y*z, 64*z, 55*z-1, -31*z, -24*z ] /* ramp nearest Y */ -} - -/* - * Bridge parts: - * _0_ Bridge of length 3 - * _0(23)1_ Bridge of even length - * _0(23)4(23)1_ Bridge of (uneven) lengths 5, 9, 13, 17 etc. - * _0(23)253(23)1_ Bridge of (uneven) lengths 7, 11, 15, 19 etc. + * Each template produces two sprites: one for each track orientation (X-axis and Y-axis). * - * BRIDGE_PIECE_NORTH (0): Outer end toward north (farthest) - * BRIDGE_PIECE_SOUTH (1): Outer end toward south (nearest) - * BRIDGE_PIECE_INNER_NORTH (2): Suspension towers near north } repeated - * BRIDGE_PIECE_INNER_SOUTH (3): Suspension towers near south } - * BRIDGE_PIECE_MIDDLE_ODD (4): Odd middle position } uneven lengths - * BRIDGE_PIECE_MIDDLE_EVEN (5): Even middle position } + * A bridge span is divided into four visual layers: + * head - the ramp pieces where vehicles enter and leave the bridge + * back - the structural section drawn behind vehicles + * front - the structural section drawn in front of vehicles + * pillar - the support columns underneath the span */ - -template template_bridgesegment_back(x, y, z) { - [ 66*z+x*z, 1*z+y*z, 64*z, 128*z-1, -31*z, -84*z ] /* X-coord */ - [ 1*z+x*z, 1*z+y*z, 64*z, 128*z-1, -31*z, -84*z ] /* Y-coord */ +template template_head(t) { + [1 + t*130, 1, 64, 64, -31, -24] + [66 + t*130, 1, 64, 64, -31, -24] } -template template_bridgesegment_front_pillar_rev(x, y, z) { - [ 66*z+x*z, 1*z+y*z, 64*z, 128*z-1, -55*z, -96*z ] /* X-coord */ - [ 1*z+x*z, 1*z+y*z, 64*z, 128*z-1, -7*z, -96*z ] /* Y-coord */ +template template_back(t) { + /* ANIM marks these sprites as safe for animated palettes */ + [1 + t*130, 66, 64, 128, -31, -84, ANIM] + [66 + t*130, 66, 64, 128, -31, -84, ANIM] } -template template_bridgerow_back(x, y, z) { - template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_NORTH */ - template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_SOUTH */ - template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_INNER_NORTH */ - template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_INNER_SOUTH */ - template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_MIDDLE_ODD */ - template_bridgesegment_back(x, y, z) /* BRIDGE_PIECE_MIDDLE_EVEN */ +template template_front(t) { + [1 + t*130, 195, 64, 128, -55, -96, ANIM] + [66 + t*130, 195, 64, 128, -7, -96, ANIM] } -template template_bridgerow_front_pillar_rev(x, y, z) { - template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_NORTH */ - template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_SOUTH */ - template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_INNER_NORTH */ - template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_INNER_SOUTH */ - template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_MIDDLE_ODD */ - template_bridgesegment_front_pillar_rev(x, y, z) /* BRIDGE_PIECE_MIDDLE_EVEN */ +template template_pillar(t) { + [1 + t*130, 324, 64, 128, -55, -96] + [66 + t*130, 324, 64, 128, -7, -96] } -/* - * Each role (back/front/pillars) is 48 sprites: 4 transports x 6 parts x 2 coords. - * This example reuses the same row per transport -- the global sprite pool will - * dedup them down to 12 unique part sprites. `ends` is 32 sprites across 4 transports. - * alternative_sprites adds higher-zoom graphics for high-resolution displays. +/* The back, front and pillar spritesets each contain six part slots (0-5), which + * the game assembles in different combinations depending on bridge length: + * + * _0_ Bridge of length 3 + * _0(23)1_ Bridge of even length + * _0(23)4(23)1_ Bridge of lengths 5, 9, 13, 17 etc. + * _0(23)253(23)1_ Bridge of lengths 7, 11, 15, 19 etc. + * + * Here _ represents the head/ramp (a separate spriteset), and the numbers 0-5 are + * the span slots drawn in sequence. Slots 2 and 3 repeat as needed to fill the span. + * Slots 4 and 5 are inserted once in the middle to handle longer odd-length bridges. */ -/* Back row: 48 sprites (12 x 4 transports) */ -spriteset(wood_back_spr, "gfx/wood_rail_64.png") { - template_bridgerow_back(0, 0, 1) - template_bridgerow_back(0, 0, 1) - template_bridgerow_back(0, 0, 1) - template_bridgerow_back(0, 0, 1) -} -alternative_sprites(wood_back_spr, ZOOM_LEVEL_IN_4X, BIT_DEPTH_8BPP, "gfx/wood_rail_256.png") { - template_bridgerow_back(0, 0, 4) - template_bridgerow_back(0, 0, 4) - template_bridgerow_back(0, 0, 4) - template_bridgerow_back(0, 0, 4) +/* The head spriteset has eight sprites in total: a flat approach piece and a ramp piece + * for each bridge end (north and south), each in both track orientations (X-axis and Y-axis). + * Each template call produces the X-axis and Y-axis sprites for one piece. + */ +spriteset(cable_head, "gfx/cable.png") { + template_head(0) // north flat (X and Y) + template_head(1) // south flat (X and Y) + template_head(2) // north ramp (X and Y) + template_head(3) // south ramp (X and Y) } -/* Front row: 48 sprites (12 x 4 transports) */ -spriteset(wood_front_spr, "gfx/wood_rail_64.png") { - template_bridgerow_front_pillar_rev(0, 129, 1) - template_bridgerow_front_pillar_rev(0, 129, 1) - template_bridgerow_front_pillar_rev(0, 129, 1) - template_bridgerow_front_pillar_rev(0, 129, 1) -} -alternative_sprites(wood_front_spr, ZOOM_LEVEL_IN_4X, BIT_DEPTH_8BPP, "gfx/wood_rail_256.png") { - template_bridgerow_front_pillar_rev(0, 129, 4) - template_bridgerow_front_pillar_rev(0, 129, 4) - template_bridgerow_front_pillar_rev(0, 129, 4) - template_bridgerow_front_pillar_rev(0, 129, 4) +/* The back and front spritesets have one pair of sprites per slot. + * Slots 1 and 4 reuse the same column as slot 0 since they share the same appearance. + */ +spriteset(cable_back, "gfx/cable.png") { + template_back(0) // slot 0 + template_back(0) // slot 1: same appearance as slot 0 + template_back(2) // slot 2 + template_back(3) // slot 3 + template_back(0) // slot 4: same appearance as slot 0 + template_back(5) // slot 5 } -/* Pillars row: 48 sprites (12 x 4 transports) */ -spriteset(wood_pillar_spr, "gfx/wood_rail_64.png") { - template_bridgerow_front_pillar_rev(0, 259, 1) - template_bridgerow_front_pillar_rev(0, 259, 1) - template_bridgerow_front_pillar_rev(0, 259, 1) - template_bridgerow_front_pillar_rev(0, 259, 1) -} -alternative_sprites(wood_pillar_spr, ZOOM_LEVEL_IN_4X, BIT_DEPTH_8BPP, "gfx/wood_rail_256.png") { - template_bridgerow_front_pillar_rev(0, 259, 4) - template_bridgerow_front_pillar_rev(0, 259, 4) - template_bridgerow_front_pillar_rev(0, 259, 4) - template_bridgerow_front_pillar_rev(0, 259, 4) +spriteset(cable_front, "gfx/cable.png") { + template_front(0) // slot 0 + template_front(0) // slot 1: same appearance as slot 0 + template_front(2) // slot 2 + template_front(3) // slot 3 + template_front(0) // slot 4: same appearance as slot 0 + template_front(5) // slot 5 } -/* Ramp heads (BRIDGE_PIECE_HEAD): 32 sprites (8 x 4 transports) */ -spriteset(wood_ramps_spr, "gfx/ramps_wood_rail_64.png") { - template_bridgeramps_wood(0, 0, 1) - template_bridgeramps_wood(0, 0, 1) - template_bridgeramps_wood(0, 0, 1) - template_bridgeramps_wood(0, 0, 1) -} -alternative_sprites(wood_ramps_spr, ZOOM_LEVEL_IN_4X, BIT_DEPTH_8BPP, "gfx/ramps_wood_rail_256.png") { - template_bridgeramps_wood(0, 0, 4) - template_bridgeramps_wood(0, 0, 4) - template_bridgeramps_wood(0, 0, 4) - template_bridgeramps_wood(0, 0, 4) +/* Empty sprite pairs [] [] mean no pillar is drawn for that slot. + * Pillars are only needed at slots 3 and 5, where longer spans need support. + */ +spriteset(cable_pillar, "gfx/cable.png") { + [] [] // slot 0: no pillar at the ramp + [] [] // slot 1: short spans need no pillar + [] [] // slot 2: no pillar here + template_pillar(3) // slot 3: pillar for longer spans + [] [] // slot 4: no pillar here + template_pillar(3) // slot 5: reuse the same pillar graphics } /* - * Bridge definition. - * The `graphics { }` block supplies sprite tables for all four transport types - * (rail, road, monorail, maglev). In this example we reuse the same sprites - * per transport; the game overlays the correct transport tiles at runtime. + * Now define the bridge item itself. + * Unlike vehicles, bridges are identified by a fixed slot index rather than a + * named label. Valid IDs are 0x00 to 0x0D (0–13), each replacing the corresponding + * default OpenTTD bridge. It is not possible to add bridges beyond that range. */ item(FEAT_BRIDGES, wood_rail_bridge, 0x00) { property { - min_length: 0; - max_length: 255; - cost_factor: 80; - speed_limit: 40 km/h; - flags: 1; - avail_year: 1800; + min_length: 0; // allow spans of any length + max_length: 255; // effectively unlimited + cost_factor: 224; + speed_limit: 300 km/h; + flags: bitmask(FAR_PILLARS_DISABLE); // omit distant pillars for this style + avail_year: 1970; name: string(STR_BRIDGE_NAME); description_road: string(STR_BRIDGE_DESC_ROAD); description_rail: string(STR_BRIDGE_DESC_RAIL); - /* - * pillar_info is 12 bytes (x0 y0 x1 y1 ... x5 y5) -- one byte per bridge part per coord. - * Each byte is a bitmask of which pillars (corner N/S/W/E) and walls (edge NE/NW/SE/SW) - * the piece renders. Compose with bitmask() and the BRIDGE_PILLAR_CORNER_{N,S,W,E} / - * BRIDGE_PILLAR_EDGE_{NE,SE,SW,NW} constants. + + /* pillar_info declares where the bridge's pillars and walls are located for each + * span slot. There are six slots, each with one byte for the X orientation and one + * for Y, giving 12 values in total. Each byte is a bitmask of corners and edges, + * using BRIDGE_PILLAR_CORNER_{N,S,W,E} and BRIDGE_PILLAR_EDGE_{NE,SE,SW,NW}. + * The game checks this against whatever sits on the tiles underneath: if a tile + * conflicts with a declared pillar position, the game skips rendering that pillar + * for that tile. A value of 0 means no pillars for that slot and orientation. */ pillar_info: [ - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ), - bitmask( - BRIDGE_PILLAR_CORNER_W, - BRIDGE_PILLAR_CORNER_S, - BRIDGE_PILLAR_CORNER_E, - BRIDGE_PILLAR_CORNER_N - ) + 0, 0, // slot 0: no pillars + 0, 0, // slot 1: no pillars + 0, 0, // slot 2: no pillars + bitmask(BRIDGE_PILLAR_CORNER_N, BRIDGE_PILLAR_CORNER_E), // slot 3, X-axis + bitmask(BRIDGE_PILLAR_CORNER_S, BRIDGE_PILLAR_CORNER_W), // slot 3, Y-axis + 0, 0, // slot 4: no pillars + bitmask(BRIDGE_PILLAR_CORNER_N, BRIDGE_PILLAR_CORNER_E), // slot 5, X-axis + bitmask(BRIDGE_PILLAR_CORNER_S, BRIDGE_PILLAR_CORNER_W), // slot 5, Y-axis ]; } + + /* Assign spritesets to each visual layer. + * Each list holds four entries, one per transport type: [rail, road, monorail, maglev]. + * We supply the same cable sprites for all transport types; the game draws + * the appropriate track or road surface on top automatically. + */ graphics { - bridge_back: [wood_back_spr]; - bridge_front: [wood_front_spr]; - bridge_pillars: [wood_pillar_spr]; - bridge_head: [wood_ramps_spr]; + bridge_head: [cable_head, cable_head, cable_head, cable_head]; + bridge_back: [cable_back, cable_back, cable_back, cable_back]; + bridge_front: [cable_front, cable_front, cable_front, cable_front]; + bridge_pillars: [cable_pillar, cable_pillar, cable_pillar, cable_pillar]; } -} +} \ No newline at end of file diff --git a/examples/bridge/gfx/cable.png b/examples/bridge/gfx/cable.png new file mode 100644 index 0000000000000000000000000000000000000000..42e1cb2c9a8514b52afca01fb2e2626361da9360 GIT binary patch literal 14118 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 diff --git a/examples/bridge/gfx/ramps_wood_rail_64.png b/examples/bridge/gfx/ramps_wood_rail_64.png deleted file mode 100644 index 152e0f338e19af41623aa849b39b966e7f4a8ae3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4425 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 diff --git a/examples/bridge/gfx/wood_rail_256.png b/examples/bridge/gfx/wood_rail_256.png deleted file mode 100644 index c3e9069b89f28c923288bad81430ccc49c9913d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38307 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 z

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 diff --git a/examples/bridge/lang/english.lng b/examples/bridge/lang/english.lng index 59755ed57..f532774d1 100644 --- a/examples/bridge/lang/english.lng +++ b/examples/bridge/lang/english.lng @@ -1,6 +1,6 @@ ##grflangid 0x01 STR_GRF_NAME :NML Example NewGRF: Bridge STR_GRF_DESC :{ORANGE}NML Example NewGRF: Bridge{}{BLACK}This NewGRF is intended to provide a coding example for the high-level NewGRF-coding language NML.{}It demonstrates how to define a custom bridge using FEAT_BRIDGES with sprite templates, 6-table duplication for bridge_parts, and 4x zoom alternatives. -STR_BRIDGE_NAME :Wooden Bridge -STR_BRIDGE_DESC_RAIL :A traditional wooden rail bridge. -STR_BRIDGE_DESC_ROAD :A traditional wooden road bridge. +STR_BRIDGE_NAME :Cable-Stayed Bridge +STR_BRIDGE_DESC_RAIL :Cable-Stayed Rail Bridge +STR_BRIDGE_DESC_ROAD :Cable-Stayed Road Bridge diff --git a/nml/actions/action0bridge.py b/nml/actions/action0bridge.py index e5e28d8a4..a751e587b 100644 --- a/nml/actions/action0bridge.py +++ b/nml/actions/action0bridge.py @@ -1,4 +1,4 @@ -__license__ = """ +__license__ = """ NML is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or diff --git a/nml/actions/action0properties.py b/nml/actions/action0properties.py index 4d1a20f1e..ca6a82556 100644 --- a/nml/actions/action0properties.py +++ b/nml/actions/action0properties.py @@ -1,4 +1,4 @@ -__license__ = """ +__license__ = """ NML is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or diff --git a/regression/expected/example_bridge.grf b/regression/expected/example_bridge.grf index 7ccf0889cd9fd7cbcb8393ccd5154914038742bb..ca0615296926436413d8d309c53e3886eb6c8cd4 100644 GIT binary patch literal 22271 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 literal 122090 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 P9?SdRWQL$<>i0hY%a~>- diff --git a/regression/expected/example_bridge.nfo b/regression/expected/example_bridge.nfo index 171df7596..8ce82bcd5 100644 --- a/regression/expected/example_bridge.nfo +++ b/regression/expected/example_bridge.nfo @@ -5,7 +5,7 @@ // Escapes: D= = DR D+ = DF D- = DC Du* = DM D* = DnF Du<< = DnC D<< = DO D& D| Du/ D/ Du% D% // Format: spritenum imagefile depth xpos ypos xsize ysize xrel yrel zoom flags -0 * 4 \d23 +0 * 4 \d35 1 * 54 14 "C" "INFO" "B" "VRSN" \w4 \dx00000001 @@ -16,131 +16,108 @@ 00 00 2 * 313 08 08 "NML\07" "NML Example NewGRF: Bridge" 00 "\8ENML Example NewGRF: Bridge\0D\98This NewGRF is intended to provide a coding example for the high-level NewGRF-coding language NML.\0DIt demonstrates how to define a custom bridge using FEAT_BRIDGES with sprite templates, 6-table duplication for bridge_parts, and 4x zoom alternatives." 00 -3 * 88 04 06 FF 03 \wxDC00 "Wooden Bridge" 00 "A traditional wooden road bridge." 00 "A traditional wooden rail bridge." 00 +3 * 76 04 06 FF 03 \wxDC00 "Cable-Stayed Bridge" 00 "Cable-Stayed Road Bridge" 00 "Cable-Stayed Rail Bridge" 00 4 * 47 00 06 \b10 01 FF \wx0000 09 00 0A FF -13 \wx0050 -0C \wx0028 +13 \wx00E0 +0C \wx012B 0E 01 -0F \dx00000708 +0F \dx000007B2 10 \wxDC00 12 \wxDC01 11 \wxDC02 -15 06 0F 0F 0F 0F 0F 0F 0F 0F -0F 0F 0F 0F +15 06 00 00 00 00 00 00 0C 03 +00 00 0C 03 // param[63] = param[0] -5 * 9 0D 3F \D= 00 FE \dx000E08FF +5 * 9 0D 3F \D= 00 FE \dx001A08FF 6 * 7 06 3F 82 FF \wx0003 FF -7 * 5 0A \b1 \b14 \w0 +7 * 5 0A \b1 \b26 \w0 -8 gfx/wood_rail_64.png 8bpp 66 1 64 127 -31 -84 normal -| gfx/wood_rail_256.png 8bpp 264 4 256 511 -124 -336 zi4 -9 gfx/wood_rail_64.png 8bpp 1 1 64 127 -31 -84 normal -| gfx/wood_rail_256.png 8bpp 4 4 256 511 -124 -336 zi4 -10 gfx/wood_rail_64.png 8bpp 66 130 64 127 -55 -96 normal -| gfx/wood_rail_256.png 8bpp 264 520 256 511 -220 -384 zi4 -11 gfx/wood_rail_64.png 8bpp 1 130 64 127 -7 -96 normal -| gfx/wood_rail_256.png 8bpp 4 520 256 511 -28 -384 zi4 -12 gfx/wood_rail_64.png 8bpp 66 260 64 127 -55 -96 normal -| gfx/wood_rail_256.png 8bpp 264 1040 256 511 -220 -384 zi4 -13 gfx/wood_rail_64.png 8bpp 1 260 64 127 -7 -96 normal -| gfx/wood_rail_256.png 8bpp 4 1040 256 511 -28 -384 zi4 -14 gfx/ramps_wood_rail_64.png 8bpp 1 1 64 46 -31 -24 normal -| gfx/ramps_wood_rail_256.png 8bpp 4 4 256 187 -124 -96 zi4 -15 gfx/ramps_wood_rail_64.png 8bpp 131 1 64 46 -31 -24 normal -| gfx/ramps_wood_rail_256.png 8bpp 524 4 256 187 -124 -96 zi4 -16 gfx/ramps_wood_rail_64.png 8bpp 66 1 64 62 -31 -32 normal -| gfx/ramps_wood_rail_256.png 8bpp 264 4 256 251 -124 -128 zi4 -17 gfx/ramps_wood_rail_64.png 8bpp 196 1 64 62 -31 -32 normal -| gfx/ramps_wood_rail_256.png 8bpp 784 4 256 251 -124 -128 zi4 -18 gfx/ramps_wood_rail_64.png 8bpp 326 1 64 54 -31 -24 normal -| gfx/ramps_wood_rail_256.png 8bpp 1304 4 256 219 -124 -96 zi4 -19 gfx/ramps_wood_rail_64.png 8bpp 456 1 64 54 -31 -24 normal -| gfx/ramps_wood_rail_256.png 8bpp 1824 4 256 219 -124 -96 zi4 -20 gfx/ramps_wood_rail_64.png 8bpp 261 1 64 54 -31 -24 normal -| gfx/ramps_wood_rail_256.png 8bpp 1044 4 256 219 -124 -96 zi4 -21 gfx/ramps_wood_rail_64.png 8bpp 391 1 64 54 -31 -24 normal -| gfx/ramps_wood_rail_256.png 8bpp 1564 4 256 219 -124 -96 zi4 -22 * 882 06 +8 gfx/cable.png 8bpp 1 66 64 128 -31 -84 normal +9 gfx/cable.png 8bpp 66 66 64 128 -31 -84 normal +10 gfx/cable.png 8bpp 261 66 64 128 -31 -84 normal +11 gfx/cable.png 8bpp 326 66 64 128 -31 -84 normal +12 gfx/cable.png 8bpp 391 66 64 128 -31 -84 normal +13 gfx/cable.png 8bpp 456 66 64 128 -31 -84 normal +14 gfx/cable.png 8bpp 651 66 64 128 -31 -84 normal +15 gfx/cable.png 8bpp 716 66 64 128 -31 -84 normal + +16 gfx/cable.png 8bpp 1 195 64 128 -55 -96 normal +17 gfx/cable.png 8bpp 66 195 64 128 -7 -96 normal +18 gfx/cable.png 8bpp 261 195 64 128 -55 -96 normal +19 gfx/cable.png 8bpp 326 195 64 128 -7 -96 normal +20 gfx/cable.png 8bpp 391 195 64 128 -55 -96 normal +21 gfx/cable.png 8bpp 456 195 64 128 -7 -96 normal +22 gfx/cable.png 8bpp 651 195 64 128 -55 -96 normal +23 gfx/cable.png 8bpp 716 195 64 128 -7 -96 normal + +24 gfx/cable.png 8bpp 391 324 64 128 -55 -96 normal +25 gfx/cable.png 8bpp 456 324 64 128 -7 -96 normal +26 gfx/cable.png 8bpp 1 1 64 64 -31 -24 normal +27 gfx/cable.png 8bpp 66 1 64 64 -31 -24 normal +28 gfx/cable.png 8bpp 131 1 64 64 -31 -24 normal +29 gfx/cable.png 8bpp 196 1 64 64 -31 -24 normal +30 gfx/cable.png 8bpp 261 1 64 64 -31 -24 normal +31 gfx/cable.png 8bpp 326 1 64 64 -31 -24 normal +32 gfx/cable.png 8bpp 391 1 64 64 -31 -24 normal +33 gfx/cable.png 8bpp 456 1 64 64 -31 -24 normal + +34 * 722 06 3F 82 FF \wx000A 3F 82 FF \wx000E -3F 82 FF \wx0012 3F 82 FF \wx001A 3F 82 FF \wx001E -3F 82 FF \wx0022 3F 82 FF \wx002A 3F 82 FF \wx002E -3F 82 FF \wx0032 3F 82 FF \wx003A 3F 82 FF \wx003E -3F 82 FF \wx0042 3F 82 FF \wx004A 3F 82 FF \wx004E -3F 82 FF \wx0052 3F 82 FF \wx005A 3F 82 FF \wx005E -3F 82 FF \wx0062 3F 82 FF \wx006A 3F 82 FF \wx006E -3F 82 FF \wx0072 3F 82 FF \wx007A 3F 82 FF \wx007E -3F 82 FF \wx0082 3F 82 FF \wx008A 3F 82 FF \wx008E -3F 82 FF \wx0092 3F 82 FF \wx009A 3F 82 FF \wx009E -3F 82 FF \wx00A2 3F 82 FF \wx00AA 3F 82 FF \wx00AE -3F 82 FF \wx00B2 3F 82 FF \wx00BA 3F 82 FF \wx00BE -3F 82 FF \wx00C2 3F 82 FF \wx00CA 3F 82 FF \wx00CE -3F 82 FF \wx00D2 3F 82 FF \wx00DA 3F 82 FF \wx00DE -3F 82 FF \wx00E2 3F 82 FF \wx00EA 3F 82 FF \wx00EE -3F 82 FF \wx00F2 3F 82 FF \wx00FA 3F 82 FF \wx00FE -3F 82 FF \wx0102 3F 82 FF \wx010A 3F 82 FF \wx010E -3F 82 FF \wx0112 3F 82 FF \wx011A 3F 82 FF \wx011E -3F 82 FF \wx0122 3F 82 FF \wx012A 3F 82 FF \wx012E -3F 82 FF \wx0132 3F 82 FF \wx013A 3F 82 FF \wx013E -3F 82 FF \wx0142 3F 82 FF \wx014A 3F 82 FF \wx014E -3F 82 FF \wx0152 3F 82 FF \wx015A 3F 82 FF \wx015E -3F 82 FF \wx0162 3F 82 FF \wx016A 3F 82 FF \wx016E -3F 82 FF \wx0172 3F 82 FF \wx017A 3F 82 FF \wx017E -3F 82 FF \wx0182 3F 82 FF \wx018A 3F 82 FF \wx018E 3F 82 FF \wx0192 @@ -167,28 +144,20 @@ FF 3F 82 FF \wx0202 3F 82 FF \wx020A 3F 82 FF \wx020E -3F 82 FF \wx0212 3F 82 FF \wx021A 3F 82 FF \wx021E -3F 82 FF \wx0222 3F 82 FF \wx022A 3F 82 FF \wx022E -3F 82 FF \wx0232 3F 82 FF \wx023A 3F 82 FF \wx023E -3F 82 FF \wx0242 3F 82 FF \wx024A 3F 82 FF \wx024E -3F 82 FF \wx0252 3F 82 FF \wx025A 3F 82 FF \wx025E -3F 82 FF \wx0262 3F 82 FF \wx026A 3F 82 FF \wx026E -3F 82 FF \wx0272 3F 82 FF \wx027A 3F 82 FF \wx027E -3F 82 FF \wx0282 3F 82 FF \wx028A 3F 82 FF \wx028E 3F 82 FF \wx0292 @@ -247,14 +216,14 @@ FF 3F 82 FF \wx0389 FF -23 * 909 00 06 \b2 01 FF \wx0000 +35 * 909 00 06 \b2 01 FF \wx0000 0D \b0 \b6 -\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 -\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 -\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 -\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 -\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 -\dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 \dx00000000 \dx00000002 \dx00000004 \dx00000000 \dx00000001 \dx00000003 \dx00000005 \dx00000000 +\dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 \dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 \dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 \dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 +\dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 \dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 \dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 \dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 +\dx00000002 \dx0000000A \dx00000000 \dx00000000 \dx00000003 \dx0000000B \dx00000000 \dx00000000 \dx00000002 \dx0000000A \dx00000000 \dx00000000 \dx00000003 \dx0000000B \dx00000000 \dx00000000 \dx00000002 \dx0000000A \dx00000000 \dx00000000 \dx00000003 \dx0000000B \dx00000000 \dx00000000 \dx00000002 \dx0000000A \dx00000000 \dx00000000 \dx00000003 \dx0000000B \dx00000000 \dx00000000 +\dx00000004 \dx0000000C \dx00000010 \dx00000000 \dx00000005 \dx0000000D \dx00000011 \dx00000000 \dx00000004 \dx0000000C \dx00000010 \dx00000000 \dx00000005 \dx0000000D \dx00000011 \dx00000000 \dx00000004 \dx0000000C \dx00000010 \dx00000000 \dx00000005 \dx0000000D \dx00000011 \dx00000000 \dx00000004 \dx0000000C \dx00000010 \dx00000000 \dx00000005 \dx0000000D \dx00000011 \dx00000000 +\dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 \dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 \dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 \dx00000000 \dx00000008 \dx00000000 \dx00000000 \dx00000001 \dx00000009 \dx00000000 \dx00000000 +\dx00000006 \dx0000000E \dx00000010 \dx00000000 \dx00000007 \dx0000000F \dx00000011 \dx00000000 \dx00000006 \dx0000000E \dx00000010 \dx00000000 \dx00000007 \dx0000000F \dx00000011 \dx00000000 \dx00000006 \dx0000000E \dx00000010 \dx00000000 \dx00000007 \dx0000000F \dx00000011 \dx00000000 \dx00000006 \dx0000000E \dx00000010 \dx00000000 \dx00000007 \dx0000000F \dx00000011 \dx00000000 0D \b6 \b1 -\dx00000006 \dx00000007 \dx00000008 \dx00000009 \dx0000000A \dx0000000B \dx0000000C \dx0000000D \dx00000006 \dx00000007 \dx00000008 \dx00000009 \dx0000000A \dx0000000B \dx0000000C \dx0000000D \dx00000006 \dx00000007 \dx00000008 \dx00000009 \dx0000000A \dx0000000B \dx0000000C \dx0000000D \dx00000006 \dx00000007 \dx00000008 \dx00000009 \dx0000000A \dx0000000B \dx0000000C \dx0000000D +\dx00000012 \dx00000013 \dx00000014 \dx00000015 \dx00000016 \dx00000017 \dx00000018 \dx00000019 \dx00000012 \dx00000013 \dx00000014 \dx00000015 \dx00000016 \dx00000017 \dx00000018 \dx00000019 \dx00000012 \dx00000013 \dx00000014 \dx00000015 \dx00000016 \dx00000017 \dx00000018 \dx00000019 \dx00000012 \dx00000013 \dx00000014 \dx00000015 \dx00000016 \dx00000017 \dx00000018 \dx00000019 From f3b39382e79e5be4578ec5e3ed9706fc77641077 Mon Sep 17 00:00:00 2001 From: Francisco Modesto Date: Sat, 2 May 2026 09:22:08 +0100 Subject: [PATCH 3/3] Refactor --- nml/actions/action0bridge.py | 409 ++++++++++++----------- regression/expected/043_bridge.nfo | 4 +- regression/expected/044_two_bridges.nfo | 4 +- regression/expected/045_bridge_dedup.nfo | 4 +- regression/expected/example_bridge.nfo | 4 +- tmp/043_bridge.grf | Bin 0 -> 2065 bytes 6 files changed, 217 insertions(+), 208 deletions(-) create mode 100644 tmp/043_bridge.grf diff --git a/nml/actions/action0bridge.py b/nml/actions/action0bridge.py index a751e587b..48412b403 100644 --- a/nml/actions/action0bridge.py +++ b/nml/actions/action0bridge.py @@ -14,36 +14,28 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.""" """ -Bridges (feature 0x06) -- sprite-table lowering for prop 0x0D. - -Called from GraphicsBlock when item_feature == 0x06. Each bridge's -``graphics { bridge_back: [...]; bridge_front: [...]; bridge_pillars: [...]; bridge_head: [...]; }`` block: - - ``bridge_back`` 48 sprites (4 transports x 6 tables x 2 coords) - ``bridge_front`` 48 sprites - ``bridge_pillars`` 48 sprites - ``bridge_head`` 32 sprites (table 6 / BRIDGE_PIECE_HEAD: 4 transports x flat/ramp x 4 sub-slots) - -All four are optional. Unique sprites across every bridge in a compile share a -single GRM reservation and a single ActionA sprite-load sequence, emitted once -before the first bridge's Action0. Each bridge's Action0 is patched via -Action6 so the 16-bit sprite-ID word of every prop 0x0D slot = GRM_base + idx. - -GRM base is stored in user param register 0x3F. That register is reserved at -the top of the user-param space (0x00-0x3F) because the internal Action6 pool -(0x40-0x7F) is transient -- popped registers there are re-issued after each -save/restore scope, whereas the GRM base written at compile start must survive -until every bridge's Action0 is emitted. If the user has already claimed -register 0x3F, a ScriptError is raised. - -Two entry points, one per compilation phase: - ``collect(graphics_block, pos)`` -- GraphicsBlock.pre_process: registers - this bridge's sprites in the shared - registry. Idempotent. +Handles the ``graphics { }`` block for bridges (feature 0x06, property 0x0D). + +All defined bridge sprites are collected and deduplicated first. +A single ActionD reserves the full sprite block in the GRM and stores the +GRM base address in param 0x3F. The sprites are then loaded in ActionA +chunks, each preceded by Action6 to patch the chunk's first_sprite to +GRM_base + offset. Finally, each bridge's prop tables are emitted in +Action0, with another Action6 patching their relative indices by adding +param 0x3F. + +Param 0x3F must not be claimed by the user -- it is reserved for the GRM +base and must persist for the duration of the whole compile. A ScriptError +is raised if it is already in use. + +Two entry points: + ``collect(graphics_block, pos)`` + Phase 1 (GraphicsBlock.pre_process): validates and registers this + bridge's sprites in the shared pool. Idempotent. ``emit_actions(graphics_block, bridge_id, pos)`` - -- GraphicsBlock.get_action_list: - emits the shared prelude (once) and - this bridge's Action6 + Action0. + Phase 2 (GraphicsBlock.get_action_list): emits the one-shot GRM + reservation + ActionA sprite-load sequence (skipped when no bridge + contributed sprites), then this bridge's Action6 + Action0. """ from nml import expression, generic, global_constants, nmlop @@ -52,11 +44,12 @@ from nml.actions.action0properties import BaseAction0Property from nml.actions.actionA import ActionA from nml.actions.actionD import ActionD +from nml.ast.grf import param_stats from nml.ast.spriteblock import SpriteSet # ---- Constants ---- -_GRM_FEATURE = 0x08 # bridges GRM feature byte +_GRM_FEATURE = 0x08 # generic sprites _BRIDGE_PARAM = 0x3F # user-param slot reserved for the GRM base register # Action0 header: action(1) + feature(1) + numprops(1) + numinfo(1) @@ -93,6 +86,20 @@ _PILLARS_TO_NFO[_i] = _t * 32 + _g * 8 + _c * 4 + 2 +# ---- Role definitions ---- +# (role_name, expected_sprite_count, parts_transpose_table_or_None) +# bridge_head (BRIDGE_PIECE_HEAD) has its own prop; its transpose table is None. +_ROLES = ( + ("bridge_back", 48, _BACK_TO_NFO), + ("bridge_front", 48, _FRONT_TO_NFO), + ("bridge_pillars", 48, _PILLARS_TO_NFO), + ("bridge_head", 32, None), +) +_ROLE_NAMES = tuple(r[0] for r in _ROLES) +_PARTS_ROLES = tuple(r[0] for r in _ROLES if r[2] is not None) +_ENDS_ROLE = "bridge_head" + + # ---- Sprite key helpers ---- @@ -116,8 +123,9 @@ def _rs_key(rs): def _sprite_key(rsa): - """Hashes every zoom/bpp variant of a RealSpriteAction -- two slots that share - an 8bpp primary but differ in alts must not collapse.""" + """Returns a key covering all zoom/bpp variants of a RealSpriteAction. + Ensures two slots sharing an 8bpp primary but differing in alternate data + (e.g. a 32bpp variant or mask) are treated as distinct sprites.""" return tuple(_rs_key(rs) for rs in rsa.sprite_list) @@ -152,7 +160,7 @@ def write(self, file): file.newline() def get_size(self): - return self.HEADER_LEN + self.TOTAL_DWORDS * 4 # 3 + 768 = 771 + return self.HEADER_LEN + self.TOTAL_DWORDS * 4 class BridgeEndsProp(BaseAction0Property): @@ -182,10 +190,8 @@ def get_size(self): class BridgeSpriteRegistry: - """Shared across every bridge in one compile: interns unique sprites into a - global pool and emits the one-shot GRM reservation + ActionA sprite-load - prelude. Each bridge's Action0 prop 0x0D slots are later patched to - GRM_base + .""" + """Deduplicating pool of bridge sprites shared across all bridges in a + compile. Pure data store; emission lives in module-level _emit_prelude.""" def __init__(self): self._sprite_to_index = {} # sprite_key -> global index @@ -193,11 +199,10 @@ def __init__(self): self._prelude_emitted = False def intern(self, sprites): - """Register a flat list of RealSpriteActions. Idempotent -- repeated - calls with the same sprites return the same indices. Empty (``[]``) - sprites are not interned; their entry in the returned list is - ``None``, signalling callers to leave the dword at 0 and skip the - GRM patch.""" + """Interns a flat list of RealSpriteActions into the shared pool. + Idempotent -- the same sprite always gets the same index. Empty + (``[]``) sprites are skipped; their slot in the returned list is + ``None``, indicating the dword should stay 0 and not be patched.""" indices = [] for rsa in sprites: if _is_empty_rsa(rsa): @@ -216,72 +221,26 @@ def is_empty(self): def needs_prelude(self): return not self._prelude_emitted - def build_prelude(self, pos): - """ActionD (GRM reserve N -> param 0x3F) + chunks of Action6+ActionA+sprites. - Each ActionA chunk holds up to 255 sprites. Action6 patches the ActionA - first_sprite word (2 bytes at offset 3) by adding _BRIDGE_PARAM, so the - per-chunk first_sprite = GRM_base + chunk_offset. Sets the emitted flag.""" - from nml.ast import grf as grf_mod - - # grf_mod.param_stats[0] tracks (highest_user_param_num + 1); > _BRIDGE_PARAM - # means the user has declared a parameter at 0x3F (which we'd overwrite). - if grf_mod.param_stats[0] > _BRIDGE_PARAM: - raise generic.ScriptError( - "GRF parameter 0x{:02X} is reserved for bridge sprite loading when a bridge defines graphics. " - "Move your parameter to a lower index (< 0x{:02X}) or remove the bridge's graphics block.".format( - _BRIDGE_PARAM, _BRIDGE_PARAM - ), - pos, - ) - - n = len(self._unique) - grm_data = expression.ConstantNumeric(0xFF | (_GRM_FEATURE << 8) | (n << 16)) - out = [ - ActionD( - expression.ConstantNumeric(_BRIDGE_PARAM), - expression.ConstantNumeric(0x00), - nmlop.ASSIGN, - expression.ConstantNumeric(0xFE), - grm_data, - ) - ] - idx = 0 - while idx < n: - k = min(n - idx, 255) - act6 = action6.Action6() - act6.modify_bytes(_BRIDGE_PARAM, 0x82, _ACTIONA_FIRST_SPRITE_OFFSET) - out.append(act6) - out.append(ActionA([(k, idx)])) - out.extend(self._unique[idx : idx + k]) - idx += k - + def mark_prelude_emitted(self): self._prelude_emitted = True - return out + + @property + def unique(self): + return self._unique # ---- BridgeGraphics ---- class BridgeGraphics: - """One bridge's ``graphics { }`` block. Parses + validates role attributes - and resolves each into a flat list of RealSpriteActions. Constructed in - both phases -- the registry dedupes so re-running is cheap.""" - - # (role_name, expected_sprite_count, parts_transpose_table_or_None) - # bridge_head (BRIDGE_PIECE_HEAD) has its own prop; its transpose table is None. - ROLES = ( - ("bridge_back", 48, _BACK_TO_NFO), - ("bridge_front", 48, _FRONT_TO_NFO), - ("bridge_pillars", 48, _PILLARS_TO_NFO), - ("bridge_head", 32, None), - ) - _ROLE_NAMES = tuple(r[0] for r in ROLES) - _PARTS_ROLES = tuple(r[0] for r in ROLES if r[2] is not None) - _ENDS_ROLE = "bridge_head" + """Parses and resolves one bridge's ``graphics { }`` block. Pure parser: + validates each named role (bridge_back, bridge_front, bridge_pillars, + bridge_head), resolves its spriteset references, and exposes a flat + list of RealSpriteActions per role via ``self.sprites``.""" def __init__(self, graphics_block, pos): self.pos = pos - self._sprites = {role: None for role in self._ROLE_NAMES} + self.sprites = {role: None for role in _ROLE_NAMES} self._parse(graphics_block) def _parse(self, graphics_block): @@ -291,7 +250,7 @@ def _parse(self, graphics_block): graphics_block.default_graphics.pos, ) - values = {role: None for role in self._ROLE_NAMES} + values = {role: None for role in _ROLE_NAMES} for gdef in graphics_block.graphics_list: name = gdef.cargo_id if not isinstance(name, expression.Identifier) or name.value not in values: @@ -312,19 +271,24 @@ def _parse(self, graphics_block): ) values[name.value] = gdef.result.value.reduce(global_constants.const_list) - for role, expected, _ in self.ROLES: + for role, expected, _ in _ROLES: value = values[role] if value is not None: - self._sprites[role] = self._resolve_and_flatten(value, expected, role) + self.sprites[role] = self._resolve_and_flatten(value, expected, role) @staticmethod def _resolve_and_flatten(value, expected, role): - if not isinstance(value, expression.Array): + if isinstance(value, (expression.SpriteGroupRef, expression.Identifier, expression.StringLiteral)): + # Single spriteset -- wrap so the loop below handles it uniformly. + elems = [value] + elif isinstance(value, expression.Array): + elems = value.values + else: raise generic.ScriptError( - "graphics: '{}' requires an array of spriteset references".format(role), value.pos + "graphics: '{}' requires a spriteset or an array of spritesets".format(role), value.pos ) sprites = [] - for elem in value.values: + for elem in elems: if isinstance(elem, expression.SpriteGroupRef): name = elem.name elif isinstance(elem, (expression.Identifier, expression.StringLiteral)): @@ -343,97 +307,146 @@ def _resolve_and_flatten(value, expected, role): return sprites def register(self, registry): - """Phase 1 (GraphicsBlock.pre_process). Interns all role sprites into - the shared registry. Returned indices are discarded.""" - for sprites in self._sprites.values(): + """Add this bridge's role sprites to the shared pool (phase 1). + Indices aren't needed at this stage.""" + for sprites in self.sprites.values(): if sprites is not None: registry.intern(sprites) - def emit(self, registry, bridge_id): - """Phase 2 (GraphicsBlock.get_action_list). Looks up indices via the - (now fully populated) registry and builds this bridge's Action6 + - Action0. Returns [] if no roles were provided.""" - indices_by_role = { - role: registry.intern(sprites) if sprites is not None else None for role, sprites in self._sprites.items() - } - - props = [] - mods = [] # (param, size_byte, absolute_byte_offset) - prop_offset = 0 - - built = self._build_parts_prop(indices_by_role) - if built is not None: - parts_prop, written = built - props.append(parts_prop) - # Only patch slots we actually wrote. Unwritten slots (missing - # role or `[]` blank) stay 0 -- adding GRM_base would wrongly - # turn them into the first bridge sprite. 0x82 = 2-byte add on - # the sprite-ID word only; leaves the palette word untouched. - for slot in sorted(written): - mods.append((_BRIDGE_PARAM, 0x82, _ACTION0_HDR + prop_offset + BridgePartsProp.HEADER_LEN + slot * 4)) - prop_offset += parts_prop.get_size() - - ends_built = self._build_ends_prop(indices_by_role[self._ENDS_ROLE]) - if ends_built is not None: - ends_prop, ends_written = ends_built - props.append(ends_prop) - for i in sorted(ends_written): - mods.append((_BRIDGE_PARAM, 0x82, _ACTION0_HDR + prop_offset + BridgeEndsProp.HEADER_LEN + i * 4)) - prop_offset += ends_prop.get_size() - - if not props: - return [] - - out = [] + +# ---- Emission helpers ---- + + +def _emit_prelude(registry, pos): + """Emits the one-shot GRM reservation and sprite-load sequence. + Reserves all interned sprites in the GRM (storing the base in param + 0x3F via ActionD), then loads them in ActionA chunks of up to 255, + each preceded by an Action6 that adjusts the chunk's first_sprite + to GRM_base + chunk_start.""" + # Verify param 0x3F is available before emitting anything. + if param_stats[0] > _BRIDGE_PARAM: + raise generic.ScriptError( + "GRF parameter 0x{:02X} is reserved for bridge sprite loading when a bridge defines graphics. " + "Move your parameter to a lower index (< 0x{:02X}) or remove the bridge's graphics block.".format( + _BRIDGE_PARAM, _BRIDGE_PARAM + ), + pos, + ) + + # Reserve n generic sprites in the GRM and store the base address in param 0x3F via ActionD. + n = len(registry.unique) + grm_data = expression.ConstantNumeric(0xFF | (_GRM_FEATURE << 8) | (n << 16)) + out = [ + ActionD( + expression.ConstantNumeric(_BRIDGE_PARAM), + nmlop.GRM_RESERVE, + nmlop.ASSIGN, + expression.ConstantNumeric(0xFE), + grm_data, + ) + ] + idx = 0 + while idx < n: + k = min(n - idx, 255) + # Action6 patches this chunk's ActionA first_sprite: first_sprite += param 0x3F (GRM base). act6 = action6.Action6() - for param, size_byte, abs_off in mods: - act6.modify_bytes(param, size_byte, abs_off) - if act6.modifications: - out.append(act6) - - act0 = Action0(0x06, bridge_id.value) - act0.prop_list = props - act0.num_ids = 1 - out.append(act0) - - return out - - @classmethod - def _build_parts_prop(cls, indices_by_role): - """Merges bridge_back/front/pillars indices into the single 192-DWORD - BridgePartsProp. Returns (prop, written_slots) or None when none of - the three parts roles are provided. ``None`` entries inside an - indices list (`[]` blank slots) leave the dword at 0 and stay out - of ``written``.""" - if all(indices_by_role[r] is None for r in cls._PARTS_ROLES): - return None - dwords = [0] * BridgePartsProp.TOTAL_DWORDS - written = set() - for role, _, slot_table in cls.ROLES: - if slot_table is None: - continue - m = indices_by_role[role] - if m is None: + act6.modify_bytes(_BRIDGE_PARAM, 0x82, _ACTIONA_FIRST_SPRITE_OFFSET) + out.append(act6) + out.append(ActionA([(k, idx)])) + out.extend(registry.unique[idx : idx + k]) + idx += k + + registry.mark_prelude_emitted() + return out + + +def _build_parts_prop(indices_by_role): + """Merges bridge_back/front/pillars indices into the single 192-DWORD + BridgePartsProp. Returns (prop, written_slots) or None when none of + the three parts roles are provided. ``None`` entries inside an + indices list (`[]` blank slots) leave the dword at 0 and stay out + of ``written``.""" + if all(indices_by_role[r] is None for r in _PARTS_ROLES): + return None + dwords = [0] * BridgePartsProp.TOTAL_DWORDS + written = set() + for role, _, slot_table in _ROLES: + if slot_table is None: + continue + m = indices_by_role[role] + if m is None: + continue + for i, uniq_idx in enumerate(m): + if uniq_idx is None: continue - for i, uniq_idx in enumerate(m): - if uniq_idx is None: - continue - slot = slot_table[i] - dwords[slot] = uniq_idx - written.add(slot) - return BridgePartsProp(dwords), written + slot = slot_table[i] + dwords[slot] = uniq_idx + written.add(slot) + return BridgePartsProp(dwords), written + + +def _build_ends_prop(indices): + """Returns (prop, written_slots) or None when bridge_head is missing. + ``None`` entries inside the indices list (`[]` blank slots) become + dword=0 and are excluded from ``written_slots`` so they aren't + patched with the GRM base offset.""" + if indices is None: + return None + dwords = [0 if idx is None else idx for idx in indices] + written = {i for i, idx in enumerate(indices) if idx is not None} + return BridgeEndsProp(dwords), written + + +def _emit_bridge(sprites_by_role, registry, bridge_id): + """Builds Action6 + Action0 for one bridge. Resolves each role's + relative sprite indices from the registry and assembles prop 0x0D + entries with their Action6 patch offsets. Returns [] if no roles + were provided.""" + indices_by_role = { + role: registry.intern(sprites) if sprites is not None else None + for role, sprites in sprites_by_role.items() + } + + props = [] + mods = [] # (param, size_byte, absolute_byte_offset) + prop_offset = 0 + + built = _build_parts_prop(indices_by_role) + if built is not None: + parts_prop, written = built + props.append(parts_prop) + # Only patch slots we actually wrote. Unwritten slots (missing + # role or `[]` blank) stay 0 -- adding GRM_base would wrongly + # turn them into the first bridge sprite. 0x82 = 2-byte add on + # the sprite-ID word only; leaves the palette word untouched. + for slot in sorted(written): + mods.append((_BRIDGE_PARAM, 0x82, _ACTION0_HDR + prop_offset + BridgePartsProp.HEADER_LEN + slot * 4)) + prop_offset += parts_prop.get_size() + + ends_built = _build_ends_prop(indices_by_role[_ENDS_ROLE]) + if ends_built is not None: + ends_prop, ends_written = ends_built + props.append(ends_prop) + for i in sorted(ends_written): + mods.append((_BRIDGE_PARAM, 0x82, _ACTION0_HDR + prop_offset + BridgeEndsProp.HEADER_LEN + i * 4)) + prop_offset += ends_prop.get_size() + + if not props: + return [] - @staticmethod - def _build_ends_prop(indices): - """Returns (prop, written_slots) or None when bridge_head is missing. - ``None`` entries inside the indices list (`[]` blank slots) become - dword=0 and are excluded from ``written_slots`` so they aren't - patched with the GRM base offset.""" - if indices is None: - return None - dwords = [0 if idx is None else idx for idx in indices] - written = {i for i, idx in enumerate(indices) if idx is not None} - return BridgeEndsProp(dwords), written + out = [] + act6 = action6.Action6() + for param, size_byte, abs_off in mods: + act6.modify_bytes(param, size_byte, abs_off) + if act6.modifications: + out.append(act6) + + act0 = Action0(0x06, bridge_id.value) + act0.prop_list = props + act0.num_ids = 1 + out.append(act0) + + return out # ---- Module singleton + entry points ---- @@ -450,17 +463,13 @@ def collect(graphics_block, pos): def emit_actions(graphics_block, bridge_id, pos): """Phase 2 -- called from GraphicsBlock.get_action_list for bridge items. - Emits the shared prelude on first use (ActionD + ActionA + sprites), - followed by this bridge's Action6 + Action0.""" + Emits the shared prelude on first use (ActionD + ActionA + sprites) + when at least one bridge contributed sprites, followed by this + bridge's Action6 + Action0. Empty graphics blocks contribute nothing + and are silently skipped.""" bridge = BridgeGraphics(graphics_block, pos) out = [] - if _registry.needs_prelude(): - if _registry.is_empty(): - raise generic.ScriptError( - "bridge graphics block has no sprites -- provide at least one of " - "bridge_back/bridge_front/bridge_pillars/bridge_head", - pos, - ) - out.extend(_registry.build_prelude(pos)) - out.extend(bridge.emit(_registry, bridge_id)) + if _registry.needs_prelude() and not _registry.is_empty(): + out.extend(_emit_prelude(_registry, pos)) + out.extend(_emit_bridge(bridge.sprites, _registry, bridge_id)) return out diff --git a/regression/expected/043_bridge.nfo b/regression/expected/043_bridge.nfo index ba008c982..8de02cd57 100644 --- a/regression/expected/043_bridge.nfo +++ b/regression/expected/043_bridge.nfo @@ -26,8 +26,8 @@ 15 06 0A 05 10 40 00 00 FF FF A0 08 00 00 -// param[63] = param[0] -4 * 9 0D 3F \D= 00 FE \dx000108FF +// param[63] = param[\DR] +4 * 9 0D 3F \D= \DR FE \dx000108FF 5 * 7 06 3F 82 FF \wx0003 diff --git a/regression/expected/044_two_bridges.nfo b/regression/expected/044_two_bridges.nfo index f6cd28b96..091250e1b 100644 --- a/regression/expected/044_two_bridges.nfo +++ b/regression/expected/044_two_bridges.nfo @@ -24,8 +24,8 @@ 0E 00 0F \dx0000078A -// param[63] = param[0] -4 * 9 0D 3F \D= 00 FE \dx000108FF +// param[63] = param[\DR] +4 * 9 0D 3F \D= \DR FE \dx000108FF 5 * 7 06 3F 82 FF \wx0003 diff --git a/regression/expected/045_bridge_dedup.nfo b/regression/expected/045_bridge_dedup.nfo index 15a206f49..2cfc344a5 100644 --- a/regression/expected/045_bridge_dedup.nfo +++ b/regression/expected/045_bridge_dedup.nfo @@ -24,8 +24,8 @@ 0E 00 0F \dx0000078A -// param[63] = param[0] -4 * 9 0D 3F \D= 00 FE \dx000D08FF +// param[63] = param[\DR] +4 * 9 0D 3F \D= \DR FE \dx000D08FF 5 * 7 06 3F 82 FF \wx0003 diff --git a/regression/expected/example_bridge.nfo b/regression/expected/example_bridge.nfo index 8ce82bcd5..71d85a22d 100644 --- a/regression/expected/example_bridge.nfo +++ b/regression/expected/example_bridge.nfo @@ -31,8 +31,8 @@ 15 06 00 00 00 00 00 00 0C 03 00 00 0C 03 -// param[63] = param[0] -5 * 9 0D 3F \D= 00 FE \dx001A08FF +// param[63] = param[\DR] +5 * 9 0D 3F \D= \DR FE \dx001A08FF 6 * 7 06 3F 82 FF \wx0003 diff --git a/tmp/043_bridge.grf b/tmp/043_bridge.grf new file mode 100644 index 0000000000000000000000000000000000000000..c613f3da4fecac3e8219ae8f632d3b78b99a635e GIT binary patch literal 2065 zcmeIzv1=1i9KiA4<=Sg{G*M$a7_h{Eq7?%c6)o5{CsrELv!+@xV8B2ODR|t(Tm6a)~pV&5ZXY~0;*NShRq;1hP zVTeE!Mj;MkkbrTRfJty51ukSD3pvQc5_sUlDy%^nDo}-W*nmygf^Dcl9U8C$yU>Id zw4noC*n@pIfI~Qf9s~@H4Pl5t6hf1G~_K7PO%QUD$(tIDkVqf*u3{8XLk8fhdeZ9L694<1hh};6Mso z$UqiykcTDkz=u^>gECa03hS@|o3I7jP=h)&U~LYBUh{{7%W9M-e%`01&hGL=%l%^%j!A-ekuaS+C2 literal 0 HcmV?d00001