Difference between revisions of "TerrainMacrosWML"

From The Battle for Wesnoth Wiki
(compat.cfg)
Line 18: Line 18:
 
* SOME_MACRO_B
 
* SOME_MACRO_B
  
this is a toplevel macro, it is used directly in ''terrains-graphics.cfg'' (others : Internal,Builder)
 
  
 
=== SOME_MACRO PARAM1 P=PROB=100 L=LAYER=0 F=FLAG=overlay B=BUILDER=IMAGE_SINGLE IMAGESTEM ===
 
=== SOME_MACRO PARAM1 P=PROB=100 L=LAYER=0 F=FLAG=overlay B=BUILDER=IMAGE_SINGLE IMAGESTEM ===
'''Toplevel'''
 
 
''containing_filename.cfg''
 
  
 
This macro is an example for documentation
 
This macro is an example for documentation
Line 85: Line 81:
 
   
 
   
 
=== IMAGE_SINGLE IMAGESTEM POSTFIX ===
 
=== IMAGE_SINGLE IMAGESTEM POSTFIX ===
'''Builer'''
 
 
''builder.cfg''
 
 
 
builds a single image image= line (i.e not animated) mainly used as default value for BUILDER parameter of meta-macros
 
builds a single image image= line (i.e not animated) mainly used as default value for BUILDER parameter of meta-macros
 
=== ANIMATION_03 IMAGESTEM POSTFIX ===
 
=== ANIMATION_03 IMAGESTEM POSTFIX ===
'''Builer'''
 
 
''builder.cfg''
 
 
 
builds a Three image animation, each image being displayed for 100 ms
 
builds a Three image animation, each image being displayed for 100 ms
 
''' Images Used '''
 
''' Images Used '''
Line 101: Line 89:
 
* IMAGESTEM-A03
 
* IMAGESTEM-A03
 
=== ANIMATION_04 IMAGESTEM POSTFIX ===  
 
=== ANIMATION_04 IMAGESTEM POSTFIX ===  
'''Builer'''
 
 
''builder.cfg''
 
 
 
builds a four image animation, each image being displayed for 100 ms
 
builds a four image animation, each image being displayed for 100 ms
 
''' Images Used '''
 
''' Images Used '''
Line 112: Line 96:
 
* IMAGESTEM-A04
 
* IMAGESTEM-A04
 
=== ANIMATION_10 IMAGESTEM POSTFIX ===
 
=== ANIMATION_10 IMAGESTEM POSTFIX ===
'''Builer'''
 
 
''builder.cfg''
 
 
 
builds a ten image animation, each image being displayed for 100 ms
 
builds a ten image animation, each image being displayed for 100 ms
 
''' Images Used '''
 
''' Images Used '''
Line 129: Line 109:
 
* IMAGESTEM-A10
 
* IMAGESTEM-A10
 
=== ANIMATION_15 IMAGESTEM POSTFIX ===
 
=== ANIMATION_15 IMAGESTEM POSTFIX ===
'''Builer'''
 
 
''builder.cfg''
 
 
 
builds a fifteen image animation, each image being displayed for 100 ms
 
builds a fifteen image animation, each image being displayed for 100 ms
 
''' Images Used '''
 
''' Images Used '''
Line 151: Line 127:
 
* IMAGESTEM-A15
 
* IMAGESTEM-A15
 
=== ANIMATION_04_140 IMAGESTEM POSTFIX ===
 
=== ANIMATION_04_140 IMAGESTEM POSTFIX ===
'''Builer'''
 
 
''builder.cfg''
 
 
 
builds a four image animation, each image being displayed for 140 ms
 
builds a four image animation, each image being displayed for 140 ms
 
''' Images Used '''
 
''' Images Used '''
Line 162: Line 134:
 
* IMAGESTEM-A04
 
* IMAGESTEM-A04
 
=== ANIMATION_18_70 IMAGESTEM POSTFIX ===
 
=== ANIMATION_18_70 IMAGESTEM POSTFIX ===
'''Builer'''
 
 
''builder.cfg''
 
 
 
builds a eighteen image animation, each image being displayed for 100 ms
 
builds a eighteen image animation, each image being displayed for 100 ms
 
''' Images Used '''
 
''' Images Used '''
Line 191: Line 159:
 
These are the main macros to attach an image to the tile
 
These are the main macros to attach an image to the tile
 
=== KEEP_BASE TERRAIN_PATTERN IMAGESTEM ===
 
=== KEEP_BASE TERRAIN_PATTERN IMAGESTEM ===
'''Toplevel'''
 
 
''base.cfg''
 
  
 
This macro will add a tile on a single hex using IMAGESTEM as the image
 
This macro will add a tile on a single hex using IMAGESTEM as the image
Line 206: Line 171:
  
 
=== TERRAIN_BASE TERRAIN P=PROB=100 L=LAYER=-1000 F=FLAG=base B=BUILDER=IMAGE_SINGLE IMAGESTEM ===
 
=== TERRAIN_BASE TERRAIN P=PROB=100 L=LAYER=-1000 F=FLAG=base B=BUILDER=IMAGE_SINGLE IMAGESTEM ===
'''Toplevel'''
 
''tiles.cfg'''
 
 
 
adds the base tile for matching hex (single hex)
 
adds the base tile for matching hex (single hex)
  
Line 219: Line 181:
  
 
=== TERRAIN_BASE_RANDOM TERRAINLIST L=LAYER=-1000 F=FLAG=base IMAGESTEM ===
 
=== TERRAIN_BASE_RANDOM TERRAINLIST L=LAYER=-1000 F=FLAG=base IMAGESTEM ===
'''Toplevel'''
 
''random.cfg'''
 
 
 
similar to TERRAIN_BASE but takes an image from a set built from IMAGESTEM
 
similar to TERRAIN_BASE but takes an image from a set built from IMAGESTEM
  
Line 243: Line 202:
  
 
=== OVERLAY TERRAINLIST P=PROB=100 L=LAYER=0 F=FLAG=overlay B=BUILDER=IMAGE_SINGLE IMAGESTEM ===
 
=== OVERLAY TERRAINLIST P=PROB=100 L=LAYER=0 F=FLAG=overlay B=BUILDER=IMAGE_SINGLE IMAGESTEM ===
'''Toplevel'''
 
''tiles.cfg'''
 
  
 
adds the IMAGESTEM overlay on matching hex
 
adds the IMAGESTEM overlay on matching hex
Line 263: Line 220:
  
 
=== OVERLAY_RANDOM TERRAIN L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
 
=== OVERLAY_RANDOM TERRAIN L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
'''Toplevel'''
 
 
''random.cfg'''
 
  
 
similar to OVERLAY but takes an image from a random set
 
similar to OVERLAY but takes an image from a random set
Line 292: Line 246:
  
 
=== OVERLAY_RESTRICTED TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
 
=== OVERLAY_RESTRICTED TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
'''Toplevel'''
 
 
''restricted-transition.cfg'''
 
  
 
similar to OVERLAY but the tile must be next to at least one ADJACENT
 
similar to OVERLAY but the tile must be next to at least one ADJACENT
Line 314: Line 265:
  
 
=== OVERLAY_RESTRICTED2 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
 
=== OVERLAY_RESTRICTED2 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
 
'''Toplevel'''
 
 
''restricted-transition.cfg'''
 
 
 
similar to OVERLAY but the tile must be next to at least two ADJACENT
 
similar to OVERLAY but the tile must be next to at least two ADJACENT
  
Line 338: Line 284:
  
 
=== OVERLAY_RESTRICTED3 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
 
=== OVERLAY_RESTRICTED3 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
 
'''Toplevel'''
 
 
''restricted-transition.cfg''
 
  
 
similar to OVERLAY but the tile must be next to at least three ADJACENT
 
similar to OVERLAY but the tile must be next to at least three ADJACENT
Line 362: Line 304:
  
 
=== OVERLAY_ROTATION_RESTRICTED TERRAIN  ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
 
=== OVERLAY_ROTATION_RESTRICTED TERRAIN  ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
'''Toplevel'''
 
 
''restricted-transition.cfg''
 
  
  
Line 385: Line 324:
  
 
=== OVERLAY_ROTATION_RESTRICTED2 TERRAIN  ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
 
=== OVERLAY_ROTATION_RESTRICTED2 TERRAIN  ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM ===
'''Toplevel'''
 
 
''restricted-transition.cfg''
 
 
  
 
will place on TERRAIN with at least two neighbouring ADJACENT, but will add an -@R#-@R# to IMAGESTEM to show on which side the ADJACENT are
 
will place on TERRAIN with at least two neighbouring ADJACENT, but will add an -@R#-@R# to IMAGESTEM to show on which side the ADJACENT are
Line 409: Line 344:
 
== Transition related macros ==
 
== Transition related macros ==
 
=== TRANSITION_BASE TERRAIN ADJACENT P=PROB=100 L=LAYER=-500 F=FLAG=transition B=BUILDER=IMAGE_SINGLE IMAGESTEM ===
 
=== TRANSITION_BASE TERRAIN ADJACENT P=PROB=100 L=LAYER=-500 F=FLAG=transition B=BUILDER=IMAGE_SINGLE IMAGESTEM ===
'''Toplevel'''
 
 
''transitions_base.cfg''
 
 
  
 
This is the most basic form of transition, it will try to put a transition between the tile TERRAIN and ADJACENT
 
This is the most basic form of transition, it will try to put a transition between the tile TERRAIN and ADJACENT
Line 453: Line 384:
  
 
=== DISABLE_BASE_TRANSITIONS TERRAINLIST ===
 
=== DISABLE_BASE_TRANSITIONS TERRAINLIST ===
'''Toplevel'''
 
 
''transitions_bas.cfg''
 
 
 
This macro will set all transition-@R* on the tile (''n,ne,se,s,sw'')  thus preventing any other transition from being added
 
This macro will set all transition-@R* on the tile (''n,ne,se,s,sw'')  thus preventing any other transition from being added
  

Revision as of 19:47, 24 May 2010

Template:DevFeature1.9 This page is entirely base on the 1.9 macros, they are very close to the 1.8 macros, but no attempt has been done to document the difference

Contents

Documentation format

here is an example of macro

this is a macro with default parameters. It means that the following macros exist

  • SOME_MACRO
  • SOME_MACRO_P
  • SOME_MACRO_PL
  • SOME_MARCRO_PLF
  • SOME_MACRO_PLFB
  • SOME_MACRO_L
  • SOME_MACRO_LF
  • SOME_MACRO_LFB
  • SOME_MACRO_F
  • SOME_MACRO_FB
  • SOME_MACRO_B


SOME_MACRO PARAM1 P=PROB=100 L=LAYER=0 F=FLAG=overlay B=BUILDER=IMAGE_SINGLE IMAGESTEM

This macro is an example for documentation

Images used

  • IMAGESTEM_n
  • IMAGESTEM_tr

Parameters

  • Param1: description of a mandatory param
  • P=Prob: description of an optional param

Flag Handling how does this macro handle flags

Flag Management

This section lists the common flags used by macros and their high level signification

  • base: is set on all hex when the base tile is set.
  • overlay: is set on all hex that have something drawn on the hex itself (i.e not a transition) over the base terrain.
  • village: is set when a village is added on a tile.
  • transition-@R*: is set on a tile which has a transition on it's corresponding side set (i.e if there is a transition with the tile at its north, transition-n will be set) possible values: n,ne,nw,s,se,sw Also not that the macros handl it in a reciprocal way. in other word if a tile has transition-n set, it's northern neighbour should have transition-s set

Layer Management

  • -1000: default layer for base tiles
  • 0: default layer for overlays and villages
  • 1: used by the base tile of castles/keeps

Common Parameters

These parameters are very common in animations, we document them here to avoid repetition

  • PROB : The probability of the rules generated by the macros of being applied. See the discussion in TerrainGraphicsTutorial#Cumulative_Probabilities for complications
  • LAYER : The layer that will be used for the generated rules
  • BUILDER : the builder macro that will be used to create the animations in the image= field of the generated terrain code. See the dicussion at the begining of the builder section
  • IMAGESTEM: the basename on which filenames will be based.

Image Builder macros

The problem

suppose we want to animate a transition with the following line

image=image1;image2;image3

Since it's a transition, we would like to write something like (simplified)

{TRANSITION_BASE <parameters> image1;image2;image3}

However, for a north transition, the macro would expand to something similar to

image=image1;image2;image3-n

Which is wrong, we want the prefix added to all images in the animation

image=image1-n;image2-n;image3-n

To get the result we want, we use macro indirection. In other word, we have a set of macros who take two parameters

#define BUILDER IMAGESTEM POSTFIX

Which are in charge of returning what should be on the right side of the image= So, with the following macro

#define MY_BUILDER IMAGESTEM POSTFIX
{IMAGESTEM}1{POSTFIX};{IMAGESTEM}2{POSTFIX};{IMAGESTEM}3{POSTFIX};

and the following code in the TRANSITION_BASE macro

image={{BUILDER} {IMAGESTEM} -n}

a call to

{TRANSITION_BASE_B <parameters> MY_BUILDER image}

would correctly expand.

Common parameters for all builders

All builders must have exactly the same parameters

  • IMAGESTEM : the base name of the image from which to build
  • POSTFIX : a postfix to add to all images

IMAGE_SINGLE IMAGESTEM POSTFIX

builds a single image image= line (i.e not animated) mainly used as default value for BUILDER parameter of meta-macros

ANIMATION_03 IMAGESTEM POSTFIX

builds a Three image animation, each image being displayed for 100 ms Images Used

  • IMAGESTEM-A01
  • IMAGESTEM-A02
  • IMAGESTEM-A03

ANIMATION_04 IMAGESTEM POSTFIX

builds a four image animation, each image being displayed for 100 ms Images Used

  • IMAGESTEM-A01
  • IMAGESTEM-A02
  • IMAGESTEM-A03
  • IMAGESTEM-A04

ANIMATION_10 IMAGESTEM POSTFIX

builds a ten image animation, each image being displayed for 100 ms Images Used

  • IMAGESTEM-A01
  • IMAGESTEM-A02
  • IMAGESTEM-A03
  • IMAGESTEM-A04
  • IMAGESTEM-A05
  • IMAGESTEM-A06
  • IMAGESTEM-A07
  • IMAGESTEM-A08
  • IMAGESTEM-A09
  • IMAGESTEM-A10

ANIMATION_15 IMAGESTEM POSTFIX

builds a fifteen image animation, each image being displayed for 100 ms Images Used

  • IMAGESTEM-A01
  • IMAGESTEM-A02
  • IMAGESTEM-A03
  • IMAGESTEM-A04
  • IMAGESTEM-A05
  • IMAGESTEM-A06
  • IMAGESTEM-A07
  • IMAGESTEM-A08
  • IMAGESTEM-A09
  • IMAGESTEM-A10
  • IMAGESTEM-A11
  • IMAGESTEM-A12
  • IMAGESTEM-A13
  • IMAGESTEM-A14
  • IMAGESTEM-A15

ANIMATION_04_140 IMAGESTEM POSTFIX

builds a four image animation, each image being displayed for 140 ms Images Used

  • IMAGESTEM-A01
  • IMAGESTEM-A02
  • IMAGESTEM-A03
  • IMAGESTEM-A04

ANIMATION_18_70 IMAGESTEM POSTFIX

builds a eighteen image animation, each image being displayed for 100 ms Images Used

  • IMAGESTEM-A01
  • IMAGESTEM-A02
  • IMAGESTEM-A03
  • IMAGESTEM-A04
  • IMAGESTEM-A05
  • IMAGESTEM-A06
  • IMAGESTEM-A07
  • IMAGESTEM-A08
  • IMAGESTEM-A09
  • IMAGESTEM-A10
  • IMAGESTEM-A11
  • IMAGESTEM-A12
  • IMAGESTEM-A13
  • IMAGESTEM-A14
  • IMAGESTEM-A15
  • IMAGESTEM-A16
  • IMAGESTEM-A17
  • IMAGESTEM-A18


Base tile related macros

These are the main macros to attach an image to the tile

KEEP_BASE TERRAIN_PATTERN IMAGESTEM

This macro will add a tile on a single hex using IMAGESTEM as the image

'The layer is forced to 1' Images Used IMAGESTEM.png Flag Management base is checked and set Parameters

  • TERRAIN_PATTERN: a regexp describing the hex where this rule should be applied

TERRAIN_BASE TERRAIN P=PROB=100 L=LAYER=-1000 F=FLAG=base B=BUILDER=IMAGE_SINGLE IMAGESTEM

adds the base tile for matching hex (single hex)

Images Used IMAGESTEM

Parameters

  • TERRAIN: regexp for terrain to match
  • FLAG: this flag is set/checked for when matching terrain

TERRAIN_BASE_RANDOM TERRAINLIST L=LAYER=-1000 F=FLAG=base IMAGESTEM

similar to TERRAIN_BASE but takes an image from a set built from IMAGESTEM

Images Used

  • {IMAGESTEM}
  • {IMAGESTEM}2
  • {IMAGESTEM}3
  • {IMAGESTEM}4
  • {IMAGESTEM}5
  • {IMAGESTEM}6
  • {IMAGESTEM}7
  • {IMAGESTEM}8
  • {IMAGESTEM}9


Parameters

  • TERRAIN: regexp for terrain to match
  • FLAG: this flag is set/checked for when matching terrain

Overlay related macros

OVERLAY TERRAINLIST P=PROB=100 L=LAYER=0 F=FLAG=overlay B=BUILDER=IMAGE_SINGLE IMAGESTEM

adds the IMAGESTEM overlay on matching hex

note that the images are placed with the following parameters

  • base=90,144
  • center=90,144

Images Used IMAGESTEM

Parameters

  • TERRAINLIST: regexp for terrain to match
  • FLAG: this flag is set/checked for when matching terrain

Flage management the FLAG parameter is test and set

OVERLAY_RANDOM TERRAIN L=LAYER=0 F=FLAG=overlay IMAGESTEM

similar to OVERLAY but takes an image from a random set

note that the images are placed with the following parameters

  • base=90,144
  • center=90,144

Images Used

  • {IMAGESTEM}
  • {IMAGESTEM}2
  • {IMAGESTEM}3
  • {IMAGESTEM}4
  • {IMAGESTEM}5
  • {IMAGESTEM}6
  • {IMAGESTEM}7
  • {IMAGESTEM}8
  • {IMAGESTEM}9

Parameters

  • TERRAINLIST: regexp for terrain to match
  • FLAG: this flag is set/checked for when matching terrain

Flage management the FLAG parameter is test and set

OVERLAY_RESTRICTED TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM

similar to OVERLAY but the tile must be next to at least one ADJACENT

note that the images are placed with the following parameters

  • base=90,144
  • center=90,144

Images Used

  • {IMAGESTEM}


Parameters

  • TERRAINLIST: regexp for terrain to match
  • FLAG: this flag is set/checked for when matching terrain
  • ADJACENT: regexp describing what the tile must be next to

Flage management the FLAG parameter is test and set

OVERLAY_RESTRICTED2 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM

similar to OVERLAY but the tile must be next to at least two ADJACENT

note that the images are placed with the following parameters

  • base=90,144
  • center=90,144

Images Used

  • {IMAGESTEM}


Parameters

  • TERRAINLIST: regexp for terrain to match
  • FLAG: this flag is set/checked for when matching terrain
  • ADJACENT: regexp describing what the tile must be next to

Flage management the FLAG parameter is test and set


OVERLAY_RESTRICTED3 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM

similar to OVERLAY but the tile must be next to at least three ADJACENT

note that the images are placed with the following parameters

  • base=90,144
  • center=90,144

Images Used

  • {IMAGESTEM}


Parameters

  • TERRAINLIST: regexp for terrain to match
  • FLAG: this flag is set/checked for when matching terrain
  • ADJACENT: regexp describing what the tile must be next to

Flage management the FLAG parameter is test and set


OVERLAY_ROTATION_RESTRICTED TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM

will place on TERRAIN with at least one ADJACENT, but will add an -@R# to IMAGESTEM to show on which side the ADJACENT is

note that the images are placed with the following parameters

  • base=90,144
  • center=90,144

Images Used

  • {IMAGESTEM}-@R0 (n,ne,se,s,sw,nw : the direction of ADJACENT)


Parameters

  • TERRAIN: regexp for terrain to match
  • FLAG: this flag is set/checked for when matching terrain
  • ADJACENT: regexp describing what the tile must be next to

Flage management the FLAG parameter is test and set on the TERRAIN tile

OVERLAY_ROTATION_RESTRICTED2 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM

will place on TERRAIN with at least two neighbouring ADJACENT, but will add an -@R#-@R# to IMAGESTEM to show on which side the ADJACENT are

note that the images are placed with the following parameters

  • base=90,144
  • center=90,144

Images Used

  • {IMAGESTEM}-@R0-@R1 (n,ne,se,s,sw,nw : the direction of ADJACENT)


Parameters

  • TERRAIN: regexp for terrain to match
  • FLAG: this flag is set/checked for when matching terrain
  • ADJACENT: regexp describing what the tile must be next to

Flage management the FLAG parameter is test and set on the TERRAIN tile

Transition related macros

TRANSITION_BASE TERRAIN ADJACENT P=PROB=100 L=LAYER=-500 F=FLAG=transition B=BUILDER=IMAGE_SINGLE IMAGESTEM

This is the most basic form of transition, it will try to put a transition between the tile TERRAIN and ADJACENT

It will try to find the best matching image (with n,ne,se,s,sw,nw for @R flags)

i.e if your TERRAIN matches 2 ADJACENT tiles,

  • it will not match for 4 sided and 3 sided images
  • it will try 2 sided transitions with PROB (see also the FLAG discussion below)
  • if it doesn't match it will 1 sided transition similarly

Images Used

  • {{BUILDER} {IMAGESTEM} -@R0-@R1-@R2-@R3}
  • {{BUILDER} {IMAGESTEM} -@R0-@R1-@R2}
  • {{BUILDER} {IMAGESTEM} -@R0-@R1}
  • {{BUILDER} {IMAGESTEM} -@R0}

Flag Management

This macro checks flags according to the common transition policy, i.e it will check that both this tile and the ADJACENT neighbours don't have the transition-@R# flags before applying.

suppose our TERRAIN has two ADJACENT on north and north east

it will check the following flags before adding {{BUILDER} {IMAGESTEM} -n-ne}

  • TERRAIN has neither transition-n nor transition-ne set
  • the north ADJACENT doesn't have transition-s set
  • the north east ADJACENT doesn't have transition-sw set

if the conditions are met, it will apply the transition and set all the flags mentionned above

it will then try to apply {{BUILDER} {IMAGESTEM} -n} and check the following flags

  • TERRAIN has neither transition-n set
  • the north ADJACENT doesn't have transition-s set

(note that if the first rule applied, it will have set some flags and this rule will always fail) again, if it can apply, it will set the flags mentionned above

it will then try to apply {{BUILDER} {IMAGESTEM} -ne} and check the following flags

  • TERRAIN has neither transition-ne set
  • the north ADJACENT doesn't have transition-sw set

(note that if the first rule applied, it will have set some flags and this rule will always fail, however this rule could be applied with the second rule above since no flag contradict) again, if it can apply, it will set the flags mentionned above

DISABLE_BASE_TRANSITIONS TERRAINLIST

This macro will set all transition-@R* on the tile (n,ne,se,s,sw) thus preventing any other transition from being added

Flag Management will set all transition-@R* on the TERRAINLIST tiles

Village related macros

VILLAGE_RANDOM TERRAINLIST IMAGESTEM

equivalent to {OVERLAY_RANDOM_LF ({TERRAINLIST}) 0 village {IMAGESTEM} }

i.e puts a village on layer 0 using the village flag

VILLAGE TERRAIN P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

equivalent to {OVERLAY_PLFB ({TERRAIN}) {PROB} {LAYER} {FLAG} {BUILDER} {IMAGESTEM} }

the point is to have different default arguments (in particular

TO BE DOCUMENTED

misc ideas

  • move/get rid of KEEP_BASE, move stuff from random.cfg and tiles.cfg to base.cfg so all stuff related to the base tile is in base.cfg
  • get rid of deprecated macros
  • the macros TERRAIN_BASE_RANDOM and OVERLAY_RANDOM and TERRAIN_BASE/OVERLAY could be merged into one function
  • unify the way overlay/village/base (including random) macros work to all call a common backend with different default parameters

misc.cfg

  1. meta-macro WALL_TRANSITION TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM
  2. meta-macro WALL_TRANSITION2 TERRAIN1 TERRAIN2 ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM
  3. meta-macro WALL_TRANSITION3 TERRAIN1 TERRAIN2 TERRAIN3 P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGESTEM
  1. define SIMPLE_OVERLAY_TERRAIN TERRAINLIST RESTRICTING IMAGESTEM

bridges.cfg

  1. define IMAGE_L_N LAYER NAME
  2. define DOCK_END IMAGESTEM WATER_TERRAIN_NAME BRIDGETYPE_NAME BEACHSIDE_AFFIX X Y
  3. define RAMP_BRIDGE IMAGESTEM BRIDGETYPE_NAME BRIDGES_VALUE R0 R1 R2 R3 R4 R5 S0 S1 S2 S3 S4 S5
  4. define RAMP_END IMAGESTEM WATER_TERRAIN_NAME NOTERM_AFFIX BRIDGETYPE_NAME R0 R1 R2 R3 R4 R5 X Y
  5. define BRIDGE_Y BRIDGETYPE1_NAME BRIDGETYPE2_NAME BRIDGETYPE3_NAME Y_IMAGE R0 R1 R2 R3 R4 R5 S0 S1 S2 S3 S4 S5
  6. define BRIDGECONNECT BRIDGETYPE_NAME R0 R1 R2 R3 R4 R5 X Y
  7. define CORNER ANGLE_IMAGE BRIDGETYPE1_NAME BRIDGETYPE2_NAME A1 A2 A3 A4 A5 A6 S0 S1 S2 S3 S4 S5
  8. define BRIDGE SE_NW_VALUE N_S_VALUE NE_SW_VALUE WATER_TERRAIN_NAME NOTERM_AFFIX IMAGESTEM


building.cfg

  1. define BUILDING TERRAIN IMAGE_WML
  2. define BUILDING_PROBABILITY TERRAIN IMAGE_WML PROB

canyon.cfg

  1. define TRANS_0 TERRAIN
  2. define TRANS_1 TERRAIN
  3. define TRANS_2 TERRAIN
  4. define TRANS_3 TERRAIN
  5. define TRANS_4 TERRAIN
  6. define TRANS_5 TERRAIN
  7. define CANYON TERRAIN IMAGESTEM

castles.cfg

  1. define TERRAIN_ADJACENT_CORNER_LAYER TERRAIN1 TERRAIN2 TERRAIN3 LAYER BASE_POSITION IMAGESTEM
  2. define TERRAIN_ADJACENT_CORNER TERRAIN1 TERRAIN2 TERRAIN3 BASE_POSITION IMAGESTEM
  3. define TERRAIN_ADJACENT_CORNER_FLAG1 TERRAIN1 TERRAIN2 TERRAIN3 BASE_POSITION FLAG IMAGESTEM
  4. define TERRAIN_ADJACENT_CORNER_PROB TERRAIN1 TERRAIN2 TERRAIN3 BASE_POSITION IMAGESTEM PROB

foresetcastle.cfg

  1. define FORESTADJCASTLEA FOREST_ID ID PROB TILE_IMAGE
  2. define FORESTADJCASTLES FOREST_ID ID PROB TILE_IMAGE
  3. define FORESTADJCASTLEO FOREST_ID ID PROB TILE_IMAGE
  4. define FORESTADJCASTLE FOREST_ID ID PROB TILE_IMAGE
  5. define FORESTADJ FOREST_ID ID PROB TILE_IMAGE
  6. define MOUNTAINADJCASTLEA FOREST_ID ID PROB TILE_IMAGE

forest.cfg

  1. define SINGLE_FOREST_TILE TERRAINLIST PROB IMAGESTEM
  2. define SINGLE_FOREST_TILE_RESTRICTED TERRAINLIST ADJACENT PROB IMAGESTEM
  3. define SIMPLE_FOREST_TERRAIN TERRAINLIST ADJACENT IMAGESTEM

mountains.cfg

  1. define MOUNTAINS_2x2 TERRAIN PROB FLAG IMAGESTEM
  2. define MOUNTAINS_2x4_NW_SE TERRAIN PROB FLAG IMAGESTEM
  3. define MOUNTAINS_2x4_SW_NE TERRAIN PROB FLAG IMAGESTEM
  4. define MOUNTAINS_1x3_NW_SE TERRAIN PROB FLAG IMAGESTEM
  5. define MOUNTAINS_1x3_SW_NE TERRAIN PROB FLAG IMAGESTEM
  6. define MOUNTAIN_SINGLE TERRAIN PROB FLAG IMAGESTEM
  7. define PEAKS_LARGE TERRAIN PROB FLAG IMAGESTEM
  8. define PEAKS_1x2_SW_NE TERRAIN PROB FLAG IMAGESTEM

rails.cfg

  1. define RAIL_SWITCH IMAGESTEM BRIDGETYPE_NAME BRIDGETYPE_JOIN_NAME SWITCHSIDE_AFFIX MAINRAIL_AFFIX SWITCH_REVERSE_AFFIX X Y
  2. define RAIL_END IMAGESTEM BRIDGETYPE_NAME TRACKSIDE_AFFIX X Y
  3. define RAILWAY SE_NW_VALUE N_S_VALUE NE_SW_VALUE IMAGESTEM

walls.cfg

  1. define IMAGE_NW BUILDER IMAGESTEM
  2. define IMAGE_N BUILDER IMAGESTEM
  3. define IMAGE_NE BUILDER IMAGESTEM
  4. define IMAGE_SE BUILDER IMAGESTEM
  5. define IMAGE_S BUILDER IMAGESTEM
  6. define IMAGE_SW BUILDER IMAGESTEM
  7. define IMAGE_NW_N BUILDER IMAGESTEM
  8. define IMAGE_N_NE BUILDER IMAGESTEM
  9. define IMAGE_NE_SE BUILDER IMAGESTEM
  10. define IMAGE_SE_S BUILDER IMAGESTEM
  11. define IMAGE_S_SW BUILDER IMAGESTEM
  12. define IMAGE_SW_NW BUILDER IMAGESTEM
  13. define IMAGE_NW_N_NE BUILDER IMAGESTEM
  14. define IMAGE_N_NE_SE BUILDER IMAGESTEM
  15. define IMAGE_NE_SE_S BUILDER IMAGESTEM
  16. define IMAGE_SE_S_SW BUILDER IMAGESTEM
  17. define IMAGE_S_SW_NW BUILDER IMAGESTEM
  18. define IMAGE_SW_NW_N BUILDER IMAGESTEM
  19. define IMAGE_N_NE_SE_S BUILDER IMAGESTEM
  20. define IMAGE_S_SW_NW_N BUILDER IMAGESTEM
  21. define IMAGE_NW_N_NE_SE BUILDER IMAGESTEM
  22. define IMAGE_SW_NW_N_NE BUILDER IMAGESTEM
  23. define IMAGE_NE_SE_S_SW BUILDER IMAGESTEM
  24. define IMAGE_SE_S_SW_NW BUILDER IMAGESTEM
  25. define IMAGE_NW_N_NE_SE_S BUILDER IMAGESTEM
  26. define IMAGE_N_NE_SE_S_SW BUILDER IMAGESTEM
  27. define IMAGE_NE_SE_S_SW_NW BUILDER IMAGESTEM
  28. define IMAGE_SE_S_SW_NW_N BUILDER IMAGESTEM
  29. define IMAGE_S_SW_NW_N_NE BUILDER IMAGESTEM
  30. define IMAGE_SW_NW_N_NE_SE BUILDER IMAGESTEM
  31. define IMAGE_N_NE_SE_S_SW_NW BUILDER IMAGESTEM
  32. define WALL_1_VARIATION PROB TERRAIN_PATTERN ADJACENT BUILDER IMAGESTEM
  33. define WALL_ADJACENT_1 TERRAIN_PATTERN ADJACENT BUILDER IMAGESTEM
  34. define WALL_2_VARIATION PROB TERRAIN_PATTERN ADJACENT BUILDER IMAGESTEM
  35. define WALL_ADJACENT_2 TERRAIN_PATTERN ADJACENT BUILDER IMAGESTEM
  36. define WALL_ADJACENT_3 TERRAIN_PATTERN ADJACENT BUILDER IMAGESTEM
  37. define WALL_ADJACENT_4 TERRAIN_PATTERN ADJACENT BUILDER IMAGESTEM
  38. define WALL_ADJACENT_5 TERRAIN_PATTERN ADJACENT BUILDER IMAGESTEM
  39. define WALL_ADJACENT_6 TERRAIN_PATTERN ADJACENT BUILDER IMAGESTEM
  40. define DISABLE_WALLS TERRAIN1 TERRAIN2 TERRAIN3
  41. define WALL_ADJACENT TERRAIN_PATTERN ADJACENT BUILDER IMAGESTEM BASE_NAME

adjacent.cfg

  • #define TERRAIN_ADJACENT_4_FL LAYER TERRAIN ADJACENT IMAGESTEM FLAG
  • #define TERRAIN_ADJACENT_3_FL LAYER TERRAIN ADJACENT IMAGESTEM FLAG
  • #define TERRAIN_ADJACENT_2_FL LAYER TERRAIN ADJACENT IMAGESTEM FLAG
  • #define TERRAIN_ADJACENT_1_FL LAYER TERRAIN_PATTERN ADJACENT IMAGESTEM FLAG
  • #define TERRAIN_ADJACENT_FL LAYER TERRAIN_PATTERN ADJACENT IMAGESTEM FLAG
  • #define TERRAIN_ADJACENT LAYER TERRAIN_PATTERN ADJACENT IMAGESTEM
  • #define TERRAIN_ADJACENT_OV LAYER TERRAIN_PATTERN ADJACENT IMAGESTEM
  • #define TERRAIN_ADJACENT_CUSTOM LAYER TERRAIN_PATTERN ADJACENT IMAGESTEM FLAG
  • #define TERRAIN_ADJACENT_3_DIFFERENT LAYER TERRAIN_PATTERN ADJACENT OTHER_TERRAIN_PATTERN IMAGESTEM FLAG

base.cfg

  • #define TERRAIN_BASE_PROB_FL TERRAIN_PATTERN IMAGESTEM PROB FLAG LAYER
  • #define TERRAIN_BASE_FL TERRAIN_PATTERN IMAGESTEM FLAG LAYER
  • #define TERRAIN_BASE_PROB TERRAIN_PATTERN IMAGESTEM PROB
  • #define TERRAIN_BASE_PROB_OV TERRAIN_PATTERN IMAGESTEM PROB
  • #define TERRAIN_BASE_OV TERRAIN_PATTERN IMAGESTEM
  • #define TERRAIN_BASE_DEFAULT IMAGESTEM

builder.cfg

  • #define ANIMATION_01_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_02_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_03_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_04_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_05_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_06_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_07_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_08_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_09_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_10_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_11_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_12_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_13_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_14_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_15_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_16_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_17_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define ANIMATION_18_INTERNAL IMAGESTEM POSTFIX DURATION
  • #define BUILD_IMAGE BUILDER IMAGESTEM POSTFIX

compat.cfg

  • #define TERRAIN_ADJACENT_CORNER_BOTH INNER_TERRAIN_PATTERN OUTER_TERRAIN_PATTERN IMAGESTEM
  • #define TERRAIN_OVERLAY_PROB TERRAIN_PATTERN FLAG PROB IMAGESTEM
  • #define SHEX TYPE FLAG PROB TILE_NAME
  • #define SHEX_DOUBLE TYPE FLAG PROB TILE1_NAME TILE2_NAME
  • #define SHEX_LAYER TYPE FLAG LAYER PROB TILE_NAME

corner_overlay.cfg

  • #meta-macro CORNER_OVERLAY TERRAIN ADJACENT1 ADJACENT2 P=PROB=100 L=LAYER=0 B=BASE=(54,72) F=FLAG=overlay IMAGE
  • #define DISABLE_CORNER_TRANSITIONS_F TERRAIN FLAG
  • #define DISABLE_CORNER_TRANSITIONS TERRAIN

restricted-transitions

  • #define OVERLAY_RESTRICTED2_N_NE_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
  • #define OVERLAY_RESTRICTED2_N_SE_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
  • #define OVERLAY_RESTRICTED2_N_S_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
  • #define OVERLAY_RESTRICTED3_N_NE_SE_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
  • #define OVERLAY_RESTRICTED3_N_NE_S_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
  • #define OVERLAY_RESTRICTED3_N_NE_SW_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
  • #define OVERLAY_RESTRICTED3_N_SE_SW_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM

transitions_base

  • #define TRANSITION1_BASE_PLFB TERRAIN ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM
  • #define TRANSITION2_BASE_PLFB TERRAIN ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM
  • #define TRANSITION3_BASE_PLFB TERRAIN ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM
  • #define TRANSITION4_BASE_PLFB TERRAIN ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM
  • #define DISABLE_BASE_TRANSITIONS_F TERRAIN FLAG

transitions_overlay

  • #meta-macro TRANSITION1_OVERLAY TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGE
  • #meta-macro TRANSITION2_OVERLAY TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=overlay IMAGE

util.cfg

  • #define VIMG BASE_STRING NAME_STRING
  • #define DISABLE_TRANSITIONS TERRAIN_PATTERN
  • #define FLAG_IF_ADJACENT TERRAIN ADJACENT FLAG