#textdomain wesnoth

#toplevel macros to handle villages

###############################
#  No test on neighbour       #
###############################
#define VILLAGE_PLFB TERRAIN PROB LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_SINGLE_PLFB ({TERRAIN})  ({PROB}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef

#meta-macro VILLAGE TERRAINLIST P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#define VILLAGE_RANDOM_LFB TERRAIN LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_SINGLE_RANDOM_LFB ({TERRAIN}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef

#meta-macro VILLAGE_RANDOM TERRAINLIST L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

###############################
#  Needs one neighbour        #
###############################

#define VILLAGE_RESTRICTED_PLFB TERRAIN ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) ()}
#enddef

#meta-macro VILLAGE_RESTRICTED TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#define VILLAGE_RESTRICTED_RANDOM_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) ()}
#enddef

#meta-macro VILLAGE_RESTRICTED_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#define VILLAGE_ROTATION_RESTRICTED_PLFB TERRAIN ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) (-@R0)}
#enddef

#meta-macro VILLAGE_ROTATION_RESTRICTED TERRAIN  ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#define VILLAGE_ROTATION_RESTRICTED_RANDOM_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) (-@R0)}
#enddef

#meta-macro VILLAGE_ROTATION_RESTRICTED_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

###############################
#  Needs two neighbours        #
###############################

#define VILLAGE_RESTRICTED2_PLFB TERRAIN ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) ()}
#enddef

#meta-macro VILLAGE_RESTRICTED2 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#define VILLAGE_RESTRICTED2_RANDOM_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) ()}
#enddef

#meta-macro VILLAGE_RESTRICTED2_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#define VILLAGE_ROTATION_RESTRICTED2_PLFB TERRAIN ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) (-@R0-@R1)}
#enddef

#meta-macro VILLAGE_ROTATION_RESTRICTED2 TERRAIN  ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#define VILLAGE_ROTATION_RESTRICTED2_RANDOM_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) (-@R0-@R1)}
#enddef

#meta-macro VILLAGE_ROTATION_RESTRICTED2_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

###############################
#  Needs three neighbours     #
###############################

#define VILLAGE_RESTRICTED3_PLFB TERRAIN ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) ()}
#enddef

#meta-macro VILLAGE_RESTRICTED3 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#define VILLAGE_RESTRICTED3_RANDOM_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) ()}
#enddef

#meta-macro VILLAGE_RESTRICTED3_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#define VILLAGE_ROTATION_RESTRICTED3_PLFB TERRAIN ADJACENT PROB LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) (-@R0-@R1-@R2)}
#enddef

#meta-macro VILLAGE_ROTATION_RESTRICTED3 TERRAIN  ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#define VILLAGE_ROTATION_RESTRICTED3_RANDOM_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM}) (-@R0-@R1-@R2)}
#enddef

#meta-macro VILLAGE_ROTATION_RESTRICTED3_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

###############################
#  Combination of the above   #
###############################

#define VILLAGE_COMPLETE_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {GENERIC_COMPLETE_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef

#meta-macro VILLAGE_COMPLETE TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM

#####################################################################################################
###############        AUTO GENERATED CODE        ###################################################
#####################################################################################################
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE TERRAINLIST P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_LFB TERRAINLIST LAYER FLAG BUILDER IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) 100 ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_PFB TERRAINLIST PROB FLAG BUILDER IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) ({PROB}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_FB TERRAINLIST FLAG BUILDER IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) 100 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_PLB TERRAINLIST PROB LAYER BUILDER IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) ({PROB}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_LB TERRAINLIST LAYER BUILDER IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) 100 ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_PB TERRAINLIST PROB BUILDER IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) ({PROB}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_B TERRAINLIST BUILDER IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) 100 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_PLF TERRAINLIST PROB LAYER FLAG IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) ({PROB}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_LF TERRAINLIST LAYER FLAG IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) 100 ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_PF TERRAINLIST PROB FLAG IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) ({PROB}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_F TERRAINLIST FLAG IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) 100 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_PL TERRAINLIST PROB LAYER IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) ({PROB}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_L TERRAINLIST LAYER IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) 100 ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_P TERRAINLIST PROB IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) ({PROB}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE TERRAINLIST IMAGESTEM
    {VILLAGE_PLFB ({TERRAINLIST}) 100 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_RANDOM TERRAINLIST L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_RANDOM_FB TERRAINLIST FLAG BUILDER IMAGESTEM
    {VILLAGE_RANDOM_LFB ({TERRAINLIST}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RANDOM_LB TERRAINLIST LAYER BUILDER IMAGESTEM
    {VILLAGE_RANDOM_LFB ({TERRAINLIST}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RANDOM_B TERRAINLIST BUILDER IMAGESTEM
    {VILLAGE_RANDOM_LFB ({TERRAINLIST}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RANDOM_LF TERRAINLIST LAYER FLAG IMAGESTEM
    {VILLAGE_RANDOM_LFB ({TERRAINLIST}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RANDOM_F TERRAINLIST FLAG IMAGESTEM
    {VILLAGE_RANDOM_LFB ({TERRAINLIST}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RANDOM_L TERRAINLIST LAYER IMAGESTEM
    {VILLAGE_RANDOM_LFB ({TERRAINLIST}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RANDOM TERRAINLIST IMAGESTEM
    {VILLAGE_RANDOM_LFB ({TERRAINLIST}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_RESTRICTED TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_RESTRICTED_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_PFB TERRAIN ADJACENT PROB FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_PLB TERRAIN ADJACENT PROB LAYER BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_PB TERRAIN ADJACENT PROB BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_PF TERRAIN ADJACENT PROB FLAG IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_PL TERRAIN ADJACENT PROB LAYER IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_P TERRAIN ADJACENT PROB IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_RESTRICTED_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_RESTRICTED_RANDOM_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_RANDOM_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_RANDOM_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_RANDOM_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_RANDOM_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_RANDOM_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED_RANDOM TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_ROTATION_RESTRICTED TERRAIN  ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_ROTATION_RESTRICTED_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_PFB TERRAIN ADJACENT PROB FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_PLB TERRAIN ADJACENT PROB LAYER BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_PB TERRAIN ADJACENT PROB BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_PF TERRAIN ADJACENT PROB FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_PL TERRAIN ADJACENT PROB LAYER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_P TERRAIN ADJACENT PROB IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_ROTATION_RESTRICTED_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_ROTATION_RESTRICTED_RANDOM_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_RANDOM_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_RANDOM_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_RANDOM_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_RANDOM_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_RANDOM_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED_RANDOM TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_RESTRICTED2 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_RESTRICTED2_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_PFB TERRAIN ADJACENT PROB FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_PLB TERRAIN ADJACENT PROB LAYER BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_PB TERRAIN ADJACENT PROB BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_PF TERRAIN ADJACENT PROB FLAG IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_PL TERRAIN ADJACENT PROB LAYER IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_P TERRAIN ADJACENT PROB IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2 TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_RESTRICTED2_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_RESTRICTED2_RANDOM_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_RANDOM_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_RANDOM_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_RANDOM_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_RANDOM_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_RANDOM_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED2_RANDOM TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_ROTATION_RESTRICTED2 TERRAIN  ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_ROTATION_RESTRICTED2_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_PFB TERRAIN ADJACENT PROB FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_PLB TERRAIN ADJACENT PROB LAYER BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_PB TERRAIN ADJACENT PROB BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_PF TERRAIN ADJACENT PROB FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_PL TERRAIN ADJACENT PROB LAYER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_P TERRAIN ADJACENT PROB IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2 TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_ROTATION_RESTRICTED2_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_ROTATION_RESTRICTED2_RANDOM_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_RANDOM_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_RANDOM_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_RANDOM_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_RANDOM_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_RANDOM_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED2_RANDOM TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED2_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_RESTRICTED3 TERRAIN ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_RESTRICTED3_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_PFB TERRAIN ADJACENT PROB FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_PLB TERRAIN ADJACENT PROB LAYER BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_PB TERRAIN ADJACENT PROB BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_PF TERRAIN ADJACENT PROB FLAG IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_PL TERRAIN ADJACENT PROB LAYER IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_P TERRAIN ADJACENT PROB IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3 TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_RESTRICTED3_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_RESTRICTED3_RANDOM_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_RANDOM_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_RANDOM_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_RANDOM_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_RANDOM_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_RANDOM_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_RESTRICTED3_RANDOM TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_ROTATION_RESTRICTED3 TERRAIN  ADJACENT P=PROB=100 L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_ROTATION_RESTRICTED3_LFB TERRAIN ADJACENT LAYER FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_PFB TERRAIN ADJACENT PROB FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_PLB TERRAIN ADJACENT PROB LAYER BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_PB TERRAIN ADJACENT PROB BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_PLF TERRAIN ADJACENT PROB LAYER FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_PF TERRAIN ADJACENT PROB FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_PL TERRAIN ADJACENT PROB LAYER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_P TERRAIN ADJACENT PROB IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) ({PROB}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3 TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_PLFB ({TERRAIN}) ({ADJACENT}) 100 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_ROTATION_RESTRICTED3_RANDOM TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_ROTATION_RESTRICTED3_RANDOM_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_RANDOM_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_RANDOM_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_RANDOM_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_RANDOM_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_RANDOM_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_ROTATION_RESTRICTED3_RANDOM TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_ROTATION_RESTRICTED3_RANDOM_LFB ({TERRAIN}) ({ADJACENT}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
#The following code is autogenerated by expand-terrain-macros.py
#generated from: #meta-macro VILLAGE_COMPLETE TERRAIN ADJACENT L=LAYER=0 F=FLAG=village B=BUILDER=IMAGE_SINGLE IMAGESTEM
#Please do not modify
#define VILLAGE_COMPLETE_FB TERRAIN ADJACENT FLAG BUILDER IMAGESTEM
    {VILLAGE_COMPLETE_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_COMPLETE_LB TERRAIN ADJACENT LAYER BUILDER IMAGESTEM
    {VILLAGE_COMPLETE_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_COMPLETE_B TERRAIN ADJACENT BUILDER IMAGESTEM
    {VILLAGE_COMPLETE_LFB ({TERRAIN}) ({ADJACENT}) 0 village ({BUILDER}) ({IMAGESTEM})}
#enddef
#define VILLAGE_COMPLETE_LF TERRAIN ADJACENT LAYER FLAG IMAGESTEM
    {VILLAGE_COMPLETE_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_COMPLETE_F TERRAIN ADJACENT FLAG IMAGESTEM
    {VILLAGE_COMPLETE_LFB ({TERRAIN}) ({ADJACENT}) 0 ({FLAG}) IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_COMPLETE_L TERRAIN ADJACENT LAYER IMAGESTEM
    {VILLAGE_COMPLETE_LFB ({TERRAIN}) ({ADJACENT}) ({LAYER}) village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#define VILLAGE_COMPLETE TERRAIN ADJACENT IMAGESTEM
    {VILLAGE_COMPLETE_LFB ({TERRAIN}) ({ADJACENT}) 0 village IMAGE_SINGLE ({IMAGESTEM})}
#enddef
#end of generated code
