97 lines
4.7 KiB
INI

#
# Mine rail graphics
#
# this macro adds switches at track intersections
#define RAIL_SWITCH IMAGESTEM BRIDGETYPE_NAME BRIDGETYPE_JOIN_NAME SWITCHSIDE_AFFIX MAINRAIL_AFFIX SWITCH_REVERSE_AFFIX X Y
[terrain_graphics]
[tile]
x=1
y=1
type={BRIDGETYPE_NAME}
set_flag=angle_{SWITCH_REVERSE_AFFIX}
[/tile]
[tile]
x={X}
y={Y}
type={BRIDGETYPE_JOIN_NAME}
no_flag=angleaway_{SWITCHSIDE_AFFIX}, angle_{SWITCHSIDE_AFFIX}, angle_{SWITCH_REVERSE_AFFIX}
set_flag=angleaway_{SWITCHSIDE_AFFIX}
{IMAGE_L_N -80 ({IMAGESTEM}-switch-{SWITCHSIDE_AFFIX}-{MAINRAIL_AFFIX})}
[/tile]
[/terrain_graphics]
#enddef
# this macro adds ends wherever rails don't join with another track
#define RAIL_END IMAGESTEM BRIDGETYPE_NAME TRACKSIDE_AFFIX X Y
[terrain_graphics]
[tile]
x=1
y=1
type={BRIDGETYPE_NAME}
[/tile]
[tile]
x={X}
y={Y}
no_flag=angleaway_{TRACKSIDE_AFFIX}, angle_{TRACKSIDE_AFFIX}
{IMAGE_L_N -80 {IMAGESTEM}-{TRACKSIDE_AFFIX}-end}
[/tile]
[/terrain_graphics]
#enddef
#define RAILWAY SE_NW_VALUE N_S_VALUE NE_SW_VALUE IMAGESTEM
# find Y intersections
{BRIDGE_Y {N_S_VALUE} {SE_NW_VALUE} {NE_SW_VALUE} {IMAGESTEM}-joint-ne-s-nw n ne se s sw nw 2 4 3 . . .}
{BRIDGE_Y {NE_SW_VALUE} {N_S_VALUE} {SE_NW_VALUE} {IMAGESTEM}-joint-n-se-sw ne se s sw nw n . 2 4 3 . .}
{BRIDGE_Y {SE_NW_VALUE} {NE_SW_VALUE} {N_S_VALUE} {IMAGESTEM}-joint-ne-s-nw se s sw nw n ne . . 2 4 3 .}
{BRIDGE_Y {N_S_VALUE} {SE_NW_VALUE} {NE_SW_VALUE} {IMAGESTEM}-joint-n-se-sw s sw nw n ne se . . . 2 4 3}
{BRIDGE_Y {NE_SW_VALUE} {N_S_VALUE} {SE_NW_VALUE} {IMAGESTEM}-joint-ne-s-nw sw nw n ne se s 3 . . . 2 4}
{BRIDGE_Y {SE_NW_VALUE} {NE_SW_VALUE} {N_S_VALUE} {IMAGESTEM}-joint-n-se-sw nw n ne se s sw 4 3 . . . 2}
# make sure that colinear adjacent bridges stay connected
{BRIDGECONNECT {N_S_VALUE} n ne se s sw nw 1 0}
{BRIDGECONNECT {NE_SW_VALUE} ne se s sw nw n 2 1}
{BRIDGECONNECT {SE_NW_VALUE} se s sw nw n ne 2 2}
# normal corners
{CORNER {IMAGESTEM}-joint-s-nw {N_S_VALUE} {SE_NW_VALUE} s nw se n sw ne 2 3 . . . .}
{CORNER {IMAGESTEM}-joint-ne-s {N_S_VALUE} {NE_SW_VALUE} s ne sw n se nw . 3 2 . . .}
{CORNER {IMAGESTEM}-joint-n-sw {NE_SW_VALUE} {N_S_VALUE} sw n s ne nw se . 2 3 . . .}
{CORNER {IMAGESTEM}-joint-se-sw {NE_SW_VALUE} {SE_NW_VALUE} sw se nw ne s n . . 3 2 . .}
{CORNER {IMAGESTEM}-joint-ne-nw {SE_NW_VALUE} {NE_SW_VALUE} nw ne sw se n s . . 2 3 . .}
{CORNER {IMAGESTEM}-joint-s-nw {SE_NW_VALUE} {N_S_VALUE} nw s n se sw ne . . . 3 2 .}
{CORNER {IMAGESTEM}-joint-n-se {N_S_VALUE} {SE_NW_VALUE} n se nw s ne sw . . . 2 3 .}
{CORNER {IMAGESTEM}-joint-n-sw {N_S_VALUE} {NE_SW_VALUE} n sw ne s nw se . . . . 3 2}
{CORNER {IMAGESTEM}-joint-ne-s {NE_SW_VALUE} {N_S_VALUE} ne s n sw se nw . . . . 2 3}
{CORNER {IMAGESTEM}-joint-ne-nw {NE_SW_VALUE} {SE_NW_VALUE} ne nw se sw n s 2 . . . . 3}
{CORNER {IMAGESTEM}-joint-se-sw {SE_NW_VALUE} {NE_SW_VALUE} se sw ne nw s n 3 . . . . 2}
{CORNER {IMAGESTEM}-joint-n-se {SE_NW_VALUE} {N_S_VALUE} se n s nw ne sw 3 2 . . . .}
# these 3 macros define the default straight bridges
{TERRAIN_BASE_OV {N_S_VALUE} {IMAGESTEM}-n-s}
{TERRAIN_BASE_OV {NE_SW_VALUE} {IMAGESTEM}-ne-sw}
{TERRAIN_BASE_OV {SE_NW_VALUE} {IMAGESTEM}-se-nw}
# add switches that are not Ys
{RAIL_SWITCH {IMAGESTEM} {N_S_VALUE} {NE_SW_VALUE} s ne n 1 0}
{RAIL_SWITCH {IMAGESTEM} {N_S_VALUE} {SE_NW_VALUE} s nw n 1 0}
{RAIL_SWITCH {IMAGESTEM} {NE_SW_VALUE} {N_S_VALUE} sw n ne 2 1}
{RAIL_SWITCH {IMAGESTEM} {NE_SW_VALUE} {SE_NW_VALUE} sw se sw 2 1}
{RAIL_SWITCH {IMAGESTEM} {SE_NW_VALUE} {N_S_VALUE} nw s se 2 2}
{RAIL_SWITCH {IMAGESTEM} {SE_NW_VALUE} {NE_SW_VALUE} nw ne nw 2 2}
{RAIL_SWITCH {IMAGESTEM} {N_S_VALUE} {NE_SW_VALUE} n sw s 1 2}
{RAIL_SWITCH {IMAGESTEM} {N_S_VALUE} {SE_NW_VALUE} n se s 1 2}
{RAIL_SWITCH {IMAGESTEM} {NE_SW_VALUE} {N_S_VALUE} ne s sw 0 2}
{RAIL_SWITCH {IMAGESTEM} {NE_SW_VALUE} {SE_NW_VALUE} ne nw ne 0 2}
{RAIL_SWITCH {IMAGESTEM} {SE_NW_VALUE} {N_S_VALUE} se n nw 0 1}
{RAIL_SWITCH {IMAGESTEM} {SE_NW_VALUE} {NE_SW_VALUE} se sw se 0 1}
# add basic end to anything left
{RAIL_END {IMAGESTEM} {N_S_VALUE} s 1 0}
{RAIL_END {IMAGESTEM} {NE_SW_VALUE} sw 2 1}
{RAIL_END {IMAGESTEM} {SE_NW_VALUE} nw 2 2}
{RAIL_END {IMAGESTEM} {N_S_VALUE} n 1 2}
{RAIL_END {IMAGESTEM} {NE_SW_VALUE} ne 0 2}
{RAIL_END {IMAGESTEM} {SE_NW_VALUE} se 0 1}
#enddef