More macro typechecking. Clean up the terrain-types mess.

This commit is contained in:
Eric S. Raymond 2008-02-12 11:55:52 +00:00
parent ef4a692367
commit 4c6f5f1e3e
14 changed files with 193 additions and 193 deletions

View file

@ -523,7 +523,7 @@ _f, _f, _f, _f, _f, _f, Re, _f, _f, _f, _f, _f,
[/passage]
#enddef
#define ERASE_CASTLE SIDE LETTER
#define ERASE_CASTLE SIDE TERRAIN
[store_unit]
variable=side_store
[filter]
@ -544,7 +544,7 @@ _f, _f, _f, _f, _f, _f, Re, _f, _f, _f, _f, _f,
[terrain]
x=$x_range
y=$y_range
letter={LETTER}
letter={TERRAIN}
[/terrain]
#enddef

View file

@ -36,9 +36,9 @@
{CLEAR_VARIABLE chgtype_store}
#enddef
#define CHG_TERRAIN LETTER X_SPAN Y_SPAN
#define CHG_TERRAIN TERRAIN X_SPAN Y_SPAN
[terrain]
letter={LETTER}
letter={TERRAIN}
x={X_SPAN}
y={Y_SPAN}
[/terrain]

View file

@ -158,18 +158,18 @@
[/store_unit]
#enddef
#define RECALLMACRO DESCRIPTION
#define RECALLMACRO VALUE
[unstore_unit]
variable=temp{DESCRIPTION}
variable=temp{VALUE}
[/unstore_unit]
[recall]
role=temp{DESCRIPTION}
role=temp{VALUE}
[/recall]
[recall]
description={DESCRIPTION}
description={VALUE}
[/recall]
[clear_variable]
name=temp{DESCRIPTION}
name=temp{VALUE}
[/clear_variable]
#enddef

View file

@ -9,10 +9,10 @@
flag_icon=flag/SG-flag-icon.png
#enddef
#define SG_CHANGE_TERRAIN X Y LETTER
#define SG_CHANGE_TERRAIN X Y TERRAIN
[terrain]
x={X}
y={Y}
letter={LETTER}
letter={TERRAIN}
[/terrain]
#enddef

View file

@ -125,24 +125,24 @@
[/if]
#enddef
#define IMPORTANT_UNIT UNIT
#define IMPORTANT_UNIT NAME
[if]
# FIXME: Archer needs 44/35(intelligent), Fighter needs 38/30 (?)
[variable]
name={UNIT}.type
name={NAME}.type
equals=Elvish Archer
[/variable]
[variable]
name={UNIT}.experience
name={NAME}.experience
greater_than=30
[/variable]
[or]
[variable]
name={UNIT}.type
name={NAME}.type
equals=Elvish Fighter
[/variable]
[variable]
name={UNIT}.experience
name={NAME}.experience
greater_than=29
[/variable]
[/or]
@ -152,7 +152,7 @@
[if]
[variable]
name=galdrad_comments[$i].description
equals=${UNIT}.description
equals=${NAME}.description
[/variable]
[then]
{VARIABLE commented 1}
@ -166,7 +166,7 @@
[then]
[store_unit]
[filter]
description=${UNIT}.description
description=${NAME}.description
[/filter]
variable=galdrad_comments
mode=append
@ -179,15 +179,15 @@
[/if]
#enddef
#define DEFENDER_INJURED UNIT
#define DEFENDER_INJURED NAME
[if]
{NUMEQ {UNIT}.side 1}
{NUMEQ {NAME}.side 1}
[variable]
name={UNIT}.hitpoints
name={NAME}.hitpoints
less_than=19
[/variable]
[variable]
name={UNIT}.hitpoints
name={NAME}.hitpoints
greater_than=0
[/variable]
[then]
@ -200,7 +200,7 @@
[if]
[variable]
name=unit_complained[$i].description
equals=${UNIT}.description
equals=${NAME}.description
[/variable]
[then]
{VARIABLE complained 1}
@ -213,7 +213,7 @@
[then]
[store_unit]
[filter]
description=${UNIT}.description
description=${NAME}.description
[/filter]
variable=unit_complained
mode=append
@ -254,7 +254,7 @@
[/if]
{CLEAR_VARIABLE i}
{CLEAR_VARIABLE complained}
{IMPORTANT_UNIT {UNIT}}
{IMPORTANT_UNIT {NAME}}
[/then]
[/if]
#enddef

View file

@ -4,13 +4,13 @@
# These don't depend on any other macros. Please don't change this.
# ! in comments is used in generating HTML documentation, ignore it otherwise.
#define MODIFY_TERRAIN LETTER X Y
#define MODIFY_TERRAIN TERRAIN X Y
# Changes the terrain at a given list of coordinates
#
# For example, we could make 14,15 and 14,16 grassland:
#! {MODIFY_TERRAIN Gg (14,14) (15,16)}
[terrain]
letter={LETTER}
letter={TERRAIN}
x={X}
y={Y}
[/terrain]

View file

@ -140,7 +140,7 @@
# Same as above, but for 1-tile (simple) transitions.
#define TERRAIN_ADJACENT_1_FL LAYER TERRAIN ADJACENT IMAGESTEM FLAG
#define TERRAIN_ADJACENT_1_FL LAYER TERRAIN_PATTERN ADJACENT IMAGESTEM FLAG
[terrain_graphics]
map="
, 2
@ -162,7 +162,7 @@
[/tile]
[tile]
pos=2
type={TERRAIN}
type={TERRAIN_PATTERN}
no_flag={FLAG}-@R3
set_flag={FLAG}-@R3
[/tile]
@ -175,32 +175,32 @@
# transitions to other terrains. The larger transitions have greater priority
# and go first.
#define TERRAIN_ADJACENT_FL LAYER TERRAIN ADJACENT IMAGESTEM FLAG
{TERRAIN_ADJACENT_4_FL ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGESTEM} {FLAG}}
{TERRAIN_ADJACENT_3_FL ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGESTEM} {FLAG}}
{TERRAIN_ADJACENT_2_FL ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGESTEM} {FLAG}}
{TERRAIN_ADJACENT_1_FL ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGESTEM} {FLAG}}
#define TERRAIN_ADJACENT_FL LAYER TERRAIN_PATTERN ADJACENT IMAGESTEM FLAG
{TERRAIN_ADJACENT_4_FL ({LAYER}) ({TERRAIN_PATTERN}) ({ADJACENT}) {IMAGESTEM} {FLAG}}
{TERRAIN_ADJACENT_3_FL ({LAYER}) ({TERRAIN_PATTERN}) ({ADJACENT}) {IMAGESTEM} {FLAG}}
{TERRAIN_ADJACENT_2_FL ({LAYER}) ({TERRAIN_PATTERN}) ({ADJACENT}) {IMAGESTEM} {FLAG}}
{TERRAIN_ADJACENT_1_FL ({LAYER}) ({TERRAIN_PATTERN}) ({ADJACENT}) {IMAGESTEM} {FLAG}}
#enddef
#define TERRAIN_ADJACENT LAYER TERRAIN ADJACENT IMAGESTEM
{TERRAIN_ADJACENT_FL ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGESTEM} transition}
#define TERRAIN_ADJACENT LAYER TERRAIN_PATTERN ADJACENT IMAGESTEM
{TERRAIN_ADJACENT_FL ({LAYER}) ({TERRAIN_PATTERN}) ({ADJACENT}) {IMAGESTEM} transition}
#enddef
#define TERRAIN_ADJACENT_OV LAYER TERRAIN ADJACENT IMAGESTEM
{TERRAIN_ADJACENT_FL ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGESTEM} overlay}
#define TERRAIN_ADJACENT_OV LAYER TERRAIN_PATTERN ADJACENT IMAGESTEM
{TERRAIN_ADJACENT_FL ({LAYER}) ({TERRAIN_PATTERN}) ({ADJACENT}) {IMAGESTEM} overlay}
#enddef
# If you need a custom flag use this one, this allows stacking of
# several transitions.
#define TERRAIN_ADJACENT_CUSTOM LAYER TERRAIN ADJACENT IMAGESTEM FLAG
{TERRAIN_ADJACENT_FL ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGESTEM} {FLAG}}
#define TERRAIN_ADJACENT_CUSTOM LAYER TERRAIN_PATTERN ADJACENT IMAGESTEM FLAG
{TERRAIN_ADJACENT_FL ({LAYER}) ({TERRAIN_PATTERN}) ({ADJACENT}) {IMAGESTEM} {FLAG}}
#enddef
# define a specific rule for layering when the transition borders
# on a specific OTHER_TERRAIN - to use in situations where the layering
# needs to be adjusted for three-way-junctions of a particular set of
# terrains
#define TERRAIN_ADJACENT_3_DIFFERENT LAYER TERRAIN ADJACENT OTHER_TERRAIN IMAGESTEM FLAG
#define TERRAIN_ADJACENT_3_DIFFERENT LAYER TERRAIN_PATTERN ADJACENT OTHER_TERRAIN_PATTERN IMAGESTEM FLAG
[terrain_graphics]
map="
, 2
@ -222,13 +222,13 @@
[/tile]
[tile]
pos=2
type={TERRAIN}
type={TERRAIN_PATTERN}
no_flag={FLAG}-@R3
set_flag={FLAG}-@R3
[/tile]
[tile]
pos=3
type={OTHER_TERRAIN}
type={OTHER_TERRAIN_PATTERN}
no_flag={FLAG}-@R4
set_flag={FLAG}-@R4
[/tile]
@ -256,13 +256,13 @@
[/tile]
[tile]
pos=2
type={TERRAIN}
type={TERRAIN_PATTERN}
no_flag={FLAG}-@R3
set_flag={FLAG}-@R3
[/tile]
[tile]
pos=3
type={OTHER_TERRAIN}
type={OTHER_TERRAIN_PATTERN}
no_flag={FLAG}-@R4
set_flag={FLAG}-@R4
[/tile]

View file

@ -1,11 +1,11 @@
#textdomain wesnoth
#define TERRAIN_BASE_FLAG LETTER FLAG IMAGESTEM
#define TERRAIN_BASE_FLAG TERRAIN FLAG IMAGESTEM
[terrain_graphics]
[tile]
x=0
y=0
type="{LETTER}"
type="{TERRAIN}"
has_flag={FLAG}
[image]
layer=-1000

View file

@ -1,58 +1,58 @@
#textdomain wesnoth
#define BUILDING LETTER IMAGE_WML
#define BUILDING TERRAIN IMAGE_WML
[terrain_graphics]
[tile]
x=0
y=0
type={LETTER}
type={TERRAIN}
{IMAGE_WML}
[/tile]
set_flag=building-{LETTER}
no_flag=building-{LETTER}
set_flag=building-{TERRAIN}
no_flag=building-{TERRAIN}
[/terrain_graphics]
#enddef
#define BUILDING_FLAG LETTER IMAGE_WML FLAG
#define BUILDING_FLAG TERRAIN IMAGE_WML FLAG
[terrain_graphics]
[tile]
x=0
y=0
type={LETTER}
type={TERRAIN}
has_flag={FLAG}
{IMAGE_WML}
[/tile]
set_flag=building-{LETTER}
no_flag=building-{LETTER}
set_flag=building-{TERRAIN}
no_flag=building-{TERRAIN}
[/terrain_graphics]
#enddef
#define BUILDING_FLAG_PROB LETTER IMAGE_WML FLAG PROBABILITY
#define BUILDING_FLAG_PROB TERRAIN IMAGE_WML FLAG PROBABILITY
[terrain_graphics]
[tile]
x=0
y=0
type={LETTER}
type={TERRAIN}
has_flag={FLAG}
set_flag=overlay
{IMAGE_WML}
[/tile]
probability={PROBABILITY}
set_flag=building-{LETTER}
no_flag=building-{LETTER}
set_flag=building-{TERRAIN}
no_flag=building-{TERRAIN}
[/terrain_graphics]
#enddef
#define BUILDING_PROBABILITY LETTER IMAGE_WML PROBABILITY
#define BUILDING_PROBABILITY TERRAIN IMAGE_WML PROBABILITY
[terrain_graphics]
[tile]
x=0
y=0
type={LETTER}
type={TERRAIN}
{IMAGE_WML}
[/tile]
probability={PROBABILITY}
set_flag=building-{LETTER}
no_flag=building-{LETTER}
set_flag=building-{TERRAIN}
no_flag=building-{TERRAIN}
[/terrain_graphics]
#enddef

View file

@ -1,49 +1,49 @@
#textdomain wesnoth
#define TRANS_0 LETTER
#define TRANS_0 TERRAIN
[tile]
pos=2
type={LETTER}
type={TERRAIN}
no_flag=canyon-nt-@R3
[/tile]
#enddef
#define TRANS_1 LETTER
#define TRANS_1 TERRAIN
[tile]
pos=3
type={LETTER}
type={TERRAIN}
no_flag=canyon-nt-@R4
[/tile]
#enddef
#define TRANS_2 LETTER
#define TRANS_2 TERRAIN
[tile]
pos=4
type={LETTER}
type={TERRAIN}
no_flag=canyon-nt-@R5
[/tile]
#enddef
#define TRANS_3 LETTER
#define TRANS_3 TERRAIN
[tile]
pos=5
type={LETTER}
type={TERRAIN}
no_flag=canyon-nt-@R0
[/tile]
#enddef
#define TRANS_4 LETTER
#define TRANS_4 TERRAIN
[tile]
pos=6
type={LETTER}
type={TERRAIN}
no_flag=canyon-nt-@R1
[/tile]
#enddef
#define TRANS_5 LETTER
#define TRANS_5 TERRAIN
[tile]
pos=7
type={LETTER}
type={TERRAIN}
no_flag=canyon-nt-@R2
[/tile]
#enddef
#define CANYON LETTER IMAGESTEM
#define CANYON TERRAIN IMAGESTEM
# Angles should not loop
[terrain_graphics]
@ -55,16 +55,16 @@
1, ."
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=2
type={LETTER}
type={TERRAIN}
set_flag=canyon-nt-@R1
[/tile]
[tile]
pos=3
type={LETTER}
type={TERRAIN}
set_flag=canyon-nt-@R4
[/tile]
rotations=n,ne,se,s,sw,nw
@ -77,15 +77,15 @@
, 1
6, 4
, 5"
{TRANS_0 {LETTER}}
{TRANS_1 {LETTER}}
{TRANS_2 {LETTER}}
{TRANS_3 {LETTER}}
{TRANS_4 {LETTER}}
{TRANS_5 {LETTER}}
{TRANS_0 {TERRAIN}}
{TRANS_1 {TERRAIN}}
{TRANS_2 {TERRAIN}}
{TRANS_3 {TERRAIN}}
{TRANS_4 {TERRAIN}}
{TRANS_5 {TERRAIN}}
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-all
@ -103,18 +103,18 @@
, 1
6, 4
, 5"
{TRANS_0 {LETTER}}
{TRANS_1 {LETTER}}
{TRANS_2 {LETTER}}
{TRANS_3 {LETTER}}
{TRANS_4 {LETTER}}
{TRANS_0 {TERRAIN}}
{TRANS_1 {TERRAIN}}
{TRANS_2 {TERRAIN}}
{TRANS_3 {TERRAIN}}
{TRANS_4 {TERRAIN}}
[tile]
pos=2
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-@R0-@R1-@R2-@R3-@R4
@ -132,17 +132,17 @@
, 1
., 4
, 5"
{TRANS_0 {LETTER}}
{TRANS_1 {LETTER}}
{TRANS_2 {LETTER}}
{TRANS_3 {LETTER}}
{TRANS_0 {TERRAIN}}
{TRANS_1 {TERRAIN}}
{TRANS_2 {TERRAIN}}
{TRANS_3 {TERRAIN}}
[tile]
pos=2
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-@R0-@R1-@R2-@R3
@ -160,17 +160,17 @@
, 1
6, 4
, ."
{TRANS_0 {LETTER}}
{TRANS_1 {LETTER}}
{TRANS_2 {LETTER}}
{TRANS_4 {LETTER}}
{TRANS_0 {TERRAIN}}
{TRANS_1 {TERRAIN}}
{TRANS_2 {TERRAIN}}
{TRANS_4 {TERRAIN}}
[tile]
pos=2
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-@R0-@R1-@R2-@R4
@ -188,16 +188,16 @@
, 1
., 4
, ."
{TRANS_0 {LETTER}}
{TRANS_1 {LETTER}}
{TRANS_2 {LETTER}}
{TRANS_0 {TERRAIN}}
{TRANS_1 {TERRAIN}}
{TRANS_2 {TERRAIN}}
[tile]
pos=2
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-@R0-@R1-@R2
@ -215,16 +215,16 @@
, 1
6, .
, ."
{TRANS_0 {LETTER}}
{TRANS_1 {LETTER}}
{TRANS_4 {LETTER}}
{TRANS_0 {TERRAIN}}
{TRANS_1 {TERRAIN}}
{TRANS_4 {TERRAIN}}
[tile]
pos=2
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-@R0-@R1-@R4
@ -242,16 +242,16 @@
, 1
., .
, 5"
{TRANS_0 {LETTER}}
{TRANS_1 {LETTER}}
{TRANS_3 {LETTER}}
{TRANS_0 {TERRAIN}}
{TRANS_1 {TERRAIN}}
{TRANS_3 {TERRAIN}}
[tile]
pos=2
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-@R0-@R1-@R3
@ -269,15 +269,15 @@
, 1
., .
, ."
{TRANS_0 {LETTER}}
{TRANS_1 {LETTER}}
{TRANS_0 {TERRAIN}}
{TRANS_1 {TERRAIN}}
[tile]
pos=2
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-@R0-@R1
@ -295,15 +295,15 @@
, 1
., .
, 5"
{TRANS_0 {LETTER}}
{TRANS_3 {LETTER}}
{TRANS_0 {TERRAIN}}
{TRANS_3 {TERRAIN}}
[tile]
pos=2
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-@R0-@R3
@ -321,15 +321,15 @@
, 1
., 4
, ."
{TRANS_0 {LETTER}}
{TRANS_2 {LETTER}}
{TRANS_0 {TERRAIN}}
{TRANS_2 {TERRAIN}}
[tile]
pos=2
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-@R0-@R2
@ -347,14 +347,14 @@
, 1
., .
, ."
{TRANS_0 {LETTER}}
{TRANS_0 {TERRAIN}}
[tile]
pos=2
type={LETTER}
type={TERRAIN}
[/tile]
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}-@R0
@ -374,7 +374,7 @@
, ."
[tile]
pos=1
type={LETTER}
type={TERRAIN}
[image]
layer=-1000
name={IMAGESTEM}

View file

@ -112,7 +112,7 @@
# adjacent to another given type. Used to set the transition2 flag for sunken
# keeps, so their cliff transition to water will be disabled.
#define SET_ADJACENT_FLAG CENTER_LETTER ADJACENT_LETTER ADJACENT_TO_LETTER FLAG
#define SET_ADJACENT_FLAG CENTER_TERRAIN ADJACENT_TERRAIN ADJACENT_TO_TERRAIN FLAG
[terrain_graphics]
map="
, 2
@ -123,13 +123,13 @@
[tile]
pos=1
type={CENTER_LETTER}
type={CENTER_TERRAIN}
[/tile]
[tile]
pos=2
type={ADJACENT_LETTER}
set_flag="adjacent_to_{ADJACENT_TO_LETTER}"
no_flag="adjacent_to_{ADJACENT_TO_LETTER}"
type={ADJACENT_TERRAIN}
set_flag="adjacent_to_{ADJACENT_TO_TERRAIN}"
no_flag="adjacent_to_{ADJACENT_TO_TERRAIN}"
[/tile]
rotations=n,ne,se,s,sw,nw
@ -145,12 +145,12 @@
[tile]
pos=3
type={ADJACENT_LETTER}
has_flag="adjacent_to_{ADJACENT_TO_LETTER}"
type={ADJACENT_TERRAIN}
has_flag="adjacent_to_{ADJACENT_TO_TERRAIN}"
[/tile]
[tile]
pos=4
type={ADJACENT_TO_LETTER}
type={ADJACENT_TO_TERRAIN}
no_flag={FLAG}-@R3
set_flag={FLAG}-@R3
[/tile]
@ -162,17 +162,17 @@
# This utility macro sets a flag on a given terrain, if it is adjacent to an
# other terrain.
# Example:
# {FLAG_IF_ADJACENT K C keep-of-castle} makes flags all K tiles adjacent to C
# tiles with the keep-of-castle flag
# {FLAG_IF_ADJACENT Kud Cud keep-of-castle} flags all Kud tiles
# adjacent to Cud tiles with the keep-of-castle flag
#
# Use this to make other rule depend on adjacent terrain
# Use This to make other rule depend on adjacent terrain
#define FLAG_IF_ADJACENT LETTER ADJACENT FLAG CLASS
#define FLAG_IF_ADJACENT TERRAIN ADJACENT FLAG CLASS
[terrain_graphics]
[tile]
x=0
y=0
type={LETTER}
type={TERRAIN}
set_flag={FLAG},{CLASS}
no_flag={CLASS}
[/tile]
@ -185,12 +185,12 @@
[/terrain_graphics]
#enddef
#define FLAG_REMAINING LETTER FLAG CLASS
#define FLAG_REMAINING TERRAIN FLAG CLASS
[terrain_graphics]
[tile]
x=0
y=0
type={LETTER}
type={TERRAIN}
set_flag={FLAG},{CLASS}
no_flag={CLASS}
[/tile]

View file

@ -1034,9 +1034,9 @@
{CLEAR_VARIABLE w_id}
#enddef
#define WEATHER_MAP MAP
#define WEATHER_MAP NAME
[terrain_mask]
mask={MAP}
mask={NAME}
x=1
y=1
[/terrain_mask]

View file

@ -232,49 +232,49 @@ usage=mask
)}
#enddef
#define TS_SPAWN1 UNIT
{IF_ALIVE 2 ({MP_GENERIC_UNIT 1 ({UNIT}) 12 10})}
{IF_ALIVE 3 ({MP_GENERIC_UNIT 1 ({UNIT}) 29 7})}
{IF_ALIVE 4 ({MP_GENERIC_UNIT 1 ({UNIT}) 41 18})}
{IF_ALIVE 5 ({MP_GENERIC_UNIT 1 ({UNIT}) 36 32})}
{IF_ALIVE 6 ({MP_GENERIC_UNIT 1 ({UNIT}) 19 36})}
{IF_ALIVE 7 ({MP_GENERIC_UNIT 1 ({UNIT}) 7 25})}
#define TS_SPAWN1 TYPE
{IF_ALIVE 2 ({MP_GENERIC_UNIT 1 ({TYPE}) 12 10})}
{IF_ALIVE 3 ({MP_GENERIC_UNIT 1 ({TYPE}) 29 7})}
{IF_ALIVE 4 ({MP_GENERIC_UNIT 1 ({TYPE}) 41 18})}
{IF_ALIVE 5 ({MP_GENERIC_UNIT 1 ({TYPE}) 36 32})}
{IF_ALIVE 6 ({MP_GENERIC_UNIT 1 ({TYPE}) 19 36})}
{IF_ALIVE 7 ({MP_GENERIC_UNIT 1 ({TYPE}) 7 25})}
#enddef
#define TS_SPAWN2 UNIT
{IF_ALIVE 2 ({MP_GENERIC_UNIT 1 ({UNIT}) 19 7})}
{IF_ALIVE 3 ({MP_GENERIC_UNIT 1 ({UNIT}) 36 10})}
{IF_ALIVE 4 ({MP_GENERIC_UNIT 1 ({UNIT}) 41 25})}
{IF_ALIVE 5 ({MP_GENERIC_UNIT 1 ({UNIT}) 29 36})}
{IF_ALIVE 6 ({MP_GENERIC_UNIT 1 ({UNIT}) 12 32})}
{IF_ALIVE 7 ({MP_GENERIC_UNIT 1 ({UNIT}) 7 18})}
#define TS_SPAWN2 TYPE
{IF_ALIVE 2 ({MP_GENERIC_UNIT 1 ({TYPE}) 19 7})}
{IF_ALIVE 3 ({MP_GENERIC_UNIT 1 ({TYPE}) 36 10})}
{IF_ALIVE 4 ({MP_GENERIC_UNIT 1 ({TYPE}) 41 25})}
{IF_ALIVE 5 ({MP_GENERIC_UNIT 1 ({TYPE}) 29 36})}
{IF_ALIVE 6 ({MP_GENERIC_UNIT 1 ({TYPE}) 12 32})}
{IF_ALIVE 7 ({MP_GENERIC_UNIT 1 ({TYPE}) 7 18})}
#enddef
#define TS_SWAMP_SPAWN UNIT
{IF_ALIVE 2 ({MP_GENERIC_UNIT 1 ({UNIT}) 15 6})}
{IF_ALIVE 3 ({MP_GENERIC_UNIT 1 ({UNIT}) 35 7})}
{IF_ALIVE 4 ({MP_GENERIC_UNIT 1 ({UNIT}) 44 22})}
{IF_ALIVE 5 ({MP_GENERIC_UNIT 1 ({UNIT}) 33 37})}
{IF_ALIVE 6 ({MP_GENERIC_UNIT 1 ({UNIT}) 13 36})}
{IF_ALIVE 7 ({MP_GENERIC_UNIT 1 ({UNIT}) 4 20})}
#define TS_SWAMP_SPAWN TYPE
{IF_ALIVE 2 ({MP_GENERIC_UNIT 1 ({TYPE}) 15 6})}
{IF_ALIVE 3 ({MP_GENERIC_UNIT 1 ({TYPE}) 35 7})}
{IF_ALIVE 4 ({MP_GENERIC_UNIT 1 ({TYPE}) 44 22})}
{IF_ALIVE 5 ({MP_GENERIC_UNIT 1 ({TYPE}) 33 37})}
{IF_ALIVE 6 ({MP_GENERIC_UNIT 1 ({TYPE}) 13 36})}
{IF_ALIVE 7 ({MP_GENERIC_UNIT 1 ({TYPE}) 4 20})}
#enddef
#define TS_LAKE_SPAWN UNIT
{IF_ALIVE 2 ({MP_GENERIC_UNIT 1 ({UNIT}) 17 10})}
{IF_ALIVE 3 ({MP_GENERIC_UNIT 1 ({UNIT}) 32 10})}
{IF_ALIVE 4 ({MP_GENERIC_UNIT 1 ({UNIT}) 39 22})}
{IF_ALIVE 5 ({MP_GENERIC_UNIT 1 ({UNIT}) 31 33})}
{IF_ALIVE 6 ({MP_GENERIC_UNIT 1 ({UNIT}) 16 32})}
{IF_ALIVE 7 ({MP_GENERIC_UNIT 1 ({UNIT}) 9 21})}
#define TS_LAKE_SPAWN TYPE
{IF_ALIVE 2 ({MP_GENERIC_UNIT 1 ({TYPE}) 17 10})}
{IF_ALIVE 3 ({MP_GENERIC_UNIT 1 ({TYPE}) 32 10})}
{IF_ALIVE 4 ({MP_GENERIC_UNIT 1 ({TYPE}) 39 22})}
{IF_ALIVE 5 ({MP_GENERIC_UNIT 1 ({TYPE}) 31 33})}
{IF_ALIVE 6 ({MP_GENERIC_UNIT 1 ({TYPE}) 16 32})}
{IF_ALIVE 7 ({MP_GENERIC_UNIT 1 ({TYPE}) 9 21})}
#enddef
#define TS_HOME_SPAWN UNIT
{IF_ALIVE 2 ({MP_GENERIC_UNIT 1 ({UNIT}) 18 12})}
{IF_ALIVE 3 ({MP_GENERIC_UNIT 1 ({UNIT}) 30 12})}
{IF_ALIVE 4 ({MP_GENERIC_UNIT 1 ({UNIT}) 36 21})}
{IF_ALIVE 5 ({MP_GENERIC_UNIT 1 ({UNIT}) 30 30})}
{IF_ALIVE 6 ({MP_GENERIC_UNIT 1 ({UNIT}) 18 13})}
{IF_ALIVE 7 ({MP_GENERIC_UNIT 1 ({UNIT}) 12 21})}
#define TS_HOME_SPAWN TYPE
{IF_ALIVE 2 ({MP_GENERIC_UNIT 1 ({TYPE}) 18 12})}
{IF_ALIVE 3 ({MP_GENERIC_UNIT 1 ({TYPE}) 30 12})}
{IF_ALIVE 4 ({MP_GENERIC_UNIT 1 ({TYPE}) 36 21})}
{IF_ALIVE 5 ({MP_GENERIC_UNIT 1 ({TYPE}) 30 30})}
{IF_ALIVE 6 ({MP_GENERIC_UNIT 1 ({TYPE}) 18 13})}
{IF_ALIVE 7 ({MP_GENERIC_UNIT 1 ({TYPE}) 12 21})}
#enddef
#define TS_SPAWNS
@ -326,9 +326,9 @@ usage=mask
# For example, we could win:
# {ENDGAME victory}
#
#define ENDGAME RESULT
#define ENDGAME VALUE
[endlevel]
result={RESULT}
result={VALUE}
[/endlevel]
#enddef

View file

@ -71,11 +71,11 @@ def formaltype(f):
ftype = "span"
elif f in ("RANGE",):
ftype = "range"
elif f in ("LETTER",):
elif f in ("TERRAIN",):
ftype = "terrain_code"
elif f in ("NAME", "VAR", "IMAGESTEM", "ID") or f.endswith("_NAME"):
ftype = "name"
elif f in ("STRING", "TYPE", "TERRAIN", "TEXT"):
elif f in ("STRING", "TYPE", "TEXT"):
ftype = "string"
elif f in ("DESCRIPTION", "USER_DESCRIPTION",):
ftype = "optional_string"
@ -107,7 +107,7 @@ def actualtype(a):
atype = None # Can't tell -- it's a macro expansion
elif re.match(image_reference, a):
atype = "image"
elif re.match(r"[A-Z][a-z]+\^[A-Z][a-z]+\Z", a):
elif re.match(r"[A-Z][a-z]+\^[A-Z][a-z\\|/]+\Z", a):
atype = "terrain_code"
elif a.endswith(".wav") or a.endswith(".ogg"):
atype = "sound"