[[Graphics fixes]]

* Fixed some graphical glitches

* Cleaned the terrain-graphics.cfg file. Terrain graphics rule
  precedence is now deprecated, use terrain layers.
This commit is contained in:
Philippe Plantier 2004-07-25 18:31:45 +00:00
parent 0c19fe4d3c
commit b8c8434adb
14 changed files with 231 additions and 362 deletions

View file

@ -10,13 +10,13 @@ ggggggggggggggggggggggggggccccggggggg
ggggggggggggggggggggggggggggggggggggg
ggggggggggggggggggggggggggggggggggggg
ggggggggggggggggggggggggggggggggggggg
gggggggggggggggggggggCCCggggggggggggg
gggggggggggggggggggggCCCggggggggggggg
ggggggggggggggggggggggggggggggggggggg
ggnnKnggggggggggggggggggggggggggggggg
gggnngggggggggggggggggggggggggggggggg
gggggggggggggggggggggggggggg2gggggggg
gggggggDgggggtggggggggggggggggggggggg
gggggggggggggXgggggggCCCggggggggggggg
gggggggggggggXgggggggCCCggggggggggggg
ggggggggggggggXgggggggggggggggggggggg
ggnnKngggggggggXggggggggggggggggggggg
gggnnggggggggggXggggggggggggggggggggg
gggggggggggggggXgggggggggggg2gggggggg
gggggggDgggggtXgggggggggggggggggggggg
ggggggDgggtgggggggggggggggggggggggggg
ggggggggggggggggggggggggggggggggggggg
"

View file

@ -9,125 +9,93 @@
# * keep-of-$castle : castle being a tile letter. The corresponding tile is the
# keep correspoding to the given castle tile
# The following precendeces are defined to have a meaning:
# 0: normal terrain, normal transitions
# 16: castles
# 32: decorations over castles
# Use the following layers:
# -1000 : terrain base graphics
# -200 to -101 : stacked flat adjacent transitions
# -100 : buildings
# -80 : "northern" transitions
# -50 : castle walls
# -30 : castle transitions
# Loads the macros used in the file
{terrain-graphics}
#
# Attachs graphics to each known terrain types
#
# Castle-specific transitions. Those are placed before base terrains, as they
# override the normal base terrain.
{CASTLE_TRANSITION CK f dirt forest-ctrans}
#{CASTLE_TRANSITION nK f dirt forest-ctrans}
#Special cases for encampment (nw, nw-n-ne and ne)
{CASTLE_TRANSITION nK f dark_grass forest-etrans}
#On the rest fall back on forest-castle
{CASTLE_TRANSITION nK f dark_grass forest-ctrans}
#{TERRAIN_BASE K keep}
#{TERRAIN_BASE C castle}
#{TERRAIN_BASE n dirt}
#
# Attachs graphics to each known terrain types
#
{TERRAIN_BASE u cave}
{TERRAIN_BASE W cavewall}
{TERRAIN_BASE F snow-forest}
{TERRAIN_BASE_PROBABILITY f forest2 10}
{TERRAIN_BASE_PROBABILITY f forest3 10}
{TERRAIN_BASE_PROBABILITY f forest4 10}
{TERRAIN_BASE_PROBABILITY f forest5 10}
{TERRAIN_BASE_PROBABILITY f forest6 10}
{TERRAIN_BASE_PROBABILITY f forest7 10}
{TERRAIN_BASE_PROBABILITY f forest8 10}
{TERRAIN_BASE_PROBABILITY f forest-stones1 1}
{TERRAIN_BASE_PROBABILITY f forest-stones2 2}
{TERRAIN_BASE_PROBABILITY f forest-stones3 1}
{TERRAIN_BASE_PROBABILITY f forest-stones4 1}
{TERRAIN_BASE f forest}
{TERRAIN_BASE_PROBABILITY m mountains-peak1 33}
{TERRAIN_BASE_PROBABILITY m mountains-peak2 33}
{TERRAIN_BASE m mountains}
{TERRAIN_BASE H snow-hills}
{TERRAIN_BASE_PROBABILITY h hills-variation1 15}
{TERRAIN_BASE_PROBABILITY h hills-variation2 15}
{TERRAIN_BASE_PROBABILITY h hills-variation3 30}
{TERRAIN_BASE h hills}
{TERRAIN_BASE_PROBABILITY S snow2 30}
{TERRAIN_BASE_PROBABILITY S snow3 30}
{TERRAIN_BASE S snow}
{TERRAIN_BASE_PROBABILITY g grassland-rocks 4}
{TERRAIN_BASE_PROBABILITY g grassland-flowers 8}
{TERRAIN_BASE g grassland}
{TERRAIN_BASE r dirt}
{TERRAIN_BASE R road}
{TERRAIN_BASE_PROBABILITY d desert-plant 10}
{TERRAIN_BASE d desert}
{TERRAIN_BASE \ bridge-se-nw}
{TERRAIN_BASE / bridge-ne-sw}
{TERRAIN_BASE | bridge-n-s}
{TERRAIN_BASE_PROBABILITY w swampwater2 30}
{TERRAIN_BASE_PROBABILITY w swampwater3 30}
{TERRAIN_BASE w swampwater}
{TERRAIN_BASE i ice}
{TERRAIN_BASE p pier}
{TERRAIN_BASE c coast}
{TERRAIN_BASE s ocean}
{TERRAIN_BASE ~ fog}
{TERRAIN_BASE ( ) void}
{TERRAIN_BASE u cave}
{TERRAIN_BASE W cavewall}
{TERRAIN_BASE F snow-forest}
{TERRAIN_BASE_PROBABILITY f forest2 10}
{TERRAIN_BASE_PROBABILITY f forest3 10}
{TERRAIN_BASE_PROBABILITY f forest4 10}
{TERRAIN_BASE_PROBABILITY f forest5 10}
{TERRAIN_BASE_PROBABILITY f forest6 10}
{TERRAIN_BASE_PROBABILITY f forest7 10}
{TERRAIN_BASE_PROBABILITY f forest8 10}
{TERRAIN_BASE_PROBABILITY f forest-stones1 1}
{TERRAIN_BASE_PROBABILITY f forest-stones2 2}
{TERRAIN_BASE_PROBABILITY f forest-stones3 1}
{TERRAIN_BASE_PROBABILITY f forest-stones4 1}
{TERRAIN_BASE f forest}
{TERRAIN_BASE_PROBABILITY m mountains-peak1 33}
{TERRAIN_BASE_PROBABILITY m mountains-peak2 33}
{TERRAIN_BASE m mountains}
{TERRAIN_BASE H snow-hills}
{TERRAIN_BASE_PROBABILITY h hills-variation1 15}
{TERRAIN_BASE_PROBABILITY h hills-variation2 15}
{TERRAIN_BASE_PROBABILITY h hills-variation3 30}
{TERRAIN_BASE h hills}
{TERRAIN_BASE_PROBABILITY S snow2 30}
{TERRAIN_BASE_PROBABILITY S snow3 30}
{TERRAIN_BASE S snow}
{TERRAIN_BASE_PROBABILITY g grassland-rocks 4}
{TERRAIN_BASE_PROBABILITY g grassland-flowers 8}
{TERRAIN_BASE g grassland}
{TERRAIN_BASE r dirt}
{TERRAIN_BASE R road}
{TERRAIN_BASE_PROBABILITY d desert-plant 10}
{TERRAIN_BASE d desert}
{TERRAIN_BASE \ bridge-se-nw}
{TERRAIN_BASE / bridge-ne-sw}
{TERRAIN_BASE | bridge-n-s}
{TERRAIN_BASE_PROBABILITY w swampwater2 30}
{TERRAIN_BASE_PROBABILITY w swampwater3 30}
{TERRAIN_BASE w swampwater}
{TERRAIN_BASE i ice}
{TERRAIN_BASE p pier}
{TERRAIN_BASE c coast}
{TERRAIN_BASE s ocean}
{TERRAIN_BASE ~ fog}
{CANYON X canyon}
#
# Villages
#
{TERRAIN_BASE Y swampwater}
{BUILDING Y village-swampwater}
{TERRAIN_BASE V snow}
{BUILDING V village-snow}
{TERRAIN_BASE Z coast}
{BUILDING Z village-coast}
{TERRAIN_BASE v grassland}
{BUILDING v village-human}
{TERRAIN_BASE D cave}
{BUILDING D village-cave}
{TERRAIN_BASE t grassland}
# {BUILDING t village}
[terrain_graphics]
[tile]
//loc=0,0
x=0
y=0
type=t
[image]
layer=-98
name=village
[variant]
tod=dusk
name=village-dusk,village-dusk2,village-dusk3,village-dusk4
[/variant]
[variant]
tod=first_watch
name=village-dusk,village-dusk2,village-dusk3,village-dusk4
[/variant]
[variant]
tod=second_watch
name=village-dusk,village-dusk2,village-dusk3,village-dusk4
[/variant]
[variant]
tod=dawn
name=village-dusk,village-dusk2,village-dusk3,village-dusk4
[/variant]
[/image]
[/tile]
set_flag=building
no_flag=building
precedence=16
[/terrain_graphics]
{BUILDING Y ({IMG -100 village-swampwater })}
{BUILDING V ({IMG -100 village-snow })}
{BUILDING Z ({IMG -100 village-coast })}
{BUILDING v ({IMG -100 village-human })}
{BUILDING D ({IMG -100 village-cave })}
{BUILDING t ({IMG_NIGHT -100 village village-dusk,village-dusk2,village-dusk3,village-dusk4})}
#
# Transition between terrains
@ -139,114 +107,50 @@
# macro will determine the correct graphics to use, according to the adjacent
# castle letter.
#define KEEP_TILE
K
#enddef
# Flags the keep, they must be flagged to be recognized by the
# {CASTLE_AND_foo_KEEP} macros
{FLAG_IF_ADJACENT K C keep-of-C keep-flag}
{FLAG_IF_ADJACENT K n keep-of-n keep-flag}
{FLAG_REMAINING K keep-of-C keep-flag}
# Default keep floor. This is a kludgy hack.
[terrain_graphics]
[tile]
x=0
y=0
type={KEEP_TILE}
# not_flag=terrain-base
# set_flag=terrain-base
[image]
layer=-99
name=dirt
[/image]
[/tile]
[/terrain_graphics]
# Castle floor tiles.
{CASTLE_FLOOR C {KEEP_TILE} castle}
{CASTLE_FLOOR n {KEEP_TILE} dirt}
{CASTLE_AND_COMPOSED_KEEP C K castle keep}
#{CASTLE_AND_SIMPLE_KEEP C K gravewall}
{CASTLE_AND_SIMPLE_KEEP n K encampment}
{BUILDING_FLAG {KEEP_TILE} tent keep-of-n} # Keeps flagged "keep-of-n" should have a tent
{CASTLE_AND_COMPOSED_KEEP C {KEEP_TILE} castle keep}
#{CASTLE_AND_SIMPLE_KEEP C {KEEP_TILE} gravewall}
{CASTLE_AND_SIMPLE_KEEP n {KEEP_TILE} encampment}
#{BUILDING_PROBABILITY n tent1 30}
# Castle decorations and castle floors. Those must always be after the castles
# are defined.
{BUILDING_FLAG K ({IMG -100 tent}) keep-of-n}
{CASTLE_FLOOR C K castle}
{CASTLE_FLOOR n K dirt}
# Forest, hills and mountains should always overlay on northern sides
{TERRAIN_ADJACENT_NORTH m mountains}
{TERRAIN_ADJACENT_1 m !m mountains}
{TERRAIN_ADJACENT_NORTH H snow-hills}
{TERRAIN_ADJACENT_NORTH h hills}
{TERRAIN_ADJACENT_NORTH F snow-forest}
# TERRAIN_ADJACENT_NORTH currently only works with 1-tile transitions.
# The forest will be given high enough priority to have correct north adj anyway.
#{TERRAIN_ADJACENT_NORTH f forest}
{TERRAIN_ADJACENT_NORTH -80 m !m mountains}
{TERRAIN_ADJACENT_NORTH -80 H !H snow-hills}
{TERRAIN_ADJACENT_NORTH -80 h !hm hills} # No adj-north between hills and mountains
{TERRAIN_ADJACENT_NORTH -80 F !F snow-forest}
# Then, standard transitions
{TERRAIN_ADJACENT_1234 uD !uD cave}
{TERRAIN_ADJACENT_1234 -186 uD !uD cave}
# forest-to-water transitions. Place before forest-to-any.
{TERRAIN_ADJACENT_123 f cZp\|/ forest-to-water}
{TERRAIN_ADJACENT_123 f s forest-to-water}
{TERRAIN_ADJACENT_123 -187 f cZp\|/ forest-to-water}
{TERRAIN_ADJACENT_123 -187 f s forest-to-water}
# use forest-to-water for forest-to-dirt and forest-to-desert too
{TERRAIN_ADJACENT_123 f r forest-to-water}
{TERRAIN_ADJACENT_123 f d forest-to-water}
{TERRAIN_ADJACENT_123 -187 f r forest-to-water}
{TERRAIN_ADJACENT_123 -187 f d forest-to-water}
{TERRAIN_ADJACENT_123 f !f forest}
{TERRAIN_ADJACENT_1 F !F snow-forest}
{TERRAIN_ADJACENT_12 H !H snow-hills}
{TERRAIN_ADJACENT_12 h !h hills}
{TERRAIN_ADJACENT_1234 SV !SV snow}
{TERRAIN_ADJACENT_1234 tgv !tgv grassland}
{TERRAIN_ADJACENT_1 r !r dirt}
{TERRAIN_ADJACENT_1 R !R road} # Graphics do not seem to be here
{TERRAIN_ADJACENT_1 d !d desert}
{TERRAIN_ADJACENT_1 Yw !Yw swampwater}
{TERRAIN_ADJACENT_1 i !i ice}
{TERRAIN_ADJACENT_1 cZp\|/ !cZp\|/ coast}
{TERRAIN_ADJACENT_1 s !s ocean}
# Some test cases
#[terrain_graphics]
# map="
#. 1
# .
#. 1
# .
#. 1
# 1
#1"
# [tile]
# pos=1
# type=m
# [/tile]
#
# probability=30
# no_flag="built-m"
# set_flag="built-m"
#
# [image]
# layer=-99
# name="mountains-test"
# [/image]
#[/terrain_graphics]
#[terrain_graphics]
# [tile]
# x=0
# y=0
# type=m
# [image]
# layer=-99
# name="mountains-test-2"
# [/image]
# [/tile]
# # probability=20
# no_flag="built-m"
# set_flag="built-m"
#
# precedence=2
#[/terrain_graphics]
{TERRAIN_ADJACENT_123 -187 f !f forest}
{TERRAIN_ADJACENT_1 -188 F !F snow-forest}
{TERRAIN_ADJACENT_1 -189 m !m mountains}
{TERRAIN_ADJACENT_12 -190 H !H snow-hills}
{TERRAIN_ADJACENT_12 -191 h !h hills}
{TERRAIN_ADJACENT_1234 -192 SV !SV snow}
{TERRAIN_ADJACENT_1234 -193 tgv !tgvX grassland}
{TERRAIN_ADJACENT_1 -194 r !r dirt}
{TERRAIN_ADJACENT_1 -195 R !R road} # Missing gfx
{TERRAIN_ADJACENT_1 -196 d !d desert}
{TERRAIN_ADJACENT_1 -197 Yw !Yw swampwater}
{TERRAIN_ADJACENT_1 -198 i !i ice}
{TERRAIN_ADJACENT_1 -199 cZp\|/ !cZp\|/ coast}
{TERRAIN_ADJACENT_1 -200 s !s ocean}

View file

@ -3,7 +3,7 @@
# The other transitions may be defined below, with a lower priority; this will
# ensure the given tile always overlaps to the north.
#define TERRAIN_ADJACENT_NORTH LETTERS IMAGE
#define TERRAIN_ADJACENT_NORTH LAYER TERRAIN ADJACENT IMAGE
[terrain_graphics]
map="
2
@ -12,11 +12,11 @@
"
[tile]
pos=2
type=!{LETTERS}
type={ADJACENT}
no_flag=transition-s
set_flag=transition-s
[image]
layer=-99
layer={LAYER}
name={IMAGE}-s
[/image]
[/tile]
@ -24,7 +24,7 @@
no_flag=transition-n
set_flag=transition-n
pos=1
type={LETTERS}
type={TERRAIN}
[/tile]
[/terrain_graphics]
@ -36,11 +36,11 @@
"
[tile]
pos=2
type=!{LETTERS}
type={ADJACENT}
no_flag=transition-se
set_flag=transition-se
[image]
layer=-99
layer={LAYER}
name={IMAGE}-se
[/image]
[/tile]
@ -48,7 +48,7 @@
no_flag=transition-nw
set_flag=transition-nw
pos=1
type={LETTERS}
type={TERRAIN}
[/tile]
[/terrain_graphics]
@ -60,11 +60,11 @@
"
[tile]
pos=2
type=!{LETTERS}
type={ADJACENT}
no_flag=transition-sw
set_flag=transition-sw
[image]
layer=-99
layer={LAYER}
name={IMAGE}-sw
[/image]
[/tile]
@ -72,7 +72,7 @@
no_flag=transition-ne
set_flag=transition-ne
pos=1
type={LETTERS}
type={TERRAIN}
[/tile]
[/terrain_graphics]
#enddef

View file

@ -4,7 +4,7 @@
# This will add 4-tile transitions from terrains of type g or t to terrains of
# any other type, using the filename grassland-x-x-x-x.png
#define TERRAIN_ADJACENT_4 TERRAIN ADJACENT IMAGE
#define TERRAIN_ADJACENT_4 LAYER TERRAIN ADJACENT IMAGE
[terrain_graphics]
map="
@ -22,7 +22,7 @@
set_flag=transition-@R0,transition-@R1,transition-@R2,transition-@R3
[image]
layer=-98
layer={LAYER}
name={IMAGE}-@R0-@R1-@R2-@R3
[/image]
[/tile]
@ -57,7 +57,7 @@
# Same as above, but for 3-tile transitions.
#define TERRAIN_ADJACENT_3 TERRAIN ADJACENT IMAGE
#define TERRAIN_ADJACENT_3 LAYER TERRAIN ADJACENT IMAGE
[terrain_graphics]
map="
2
@ -74,7 +74,7 @@
set_flag=transition-@R0,transition-@R1,transition-@R2
[image]
layer=-98
layer={LAYER}
name={IMAGE}-@R0-@R1-@R2
[/image]
[/tile]
@ -103,7 +103,7 @@
# Same as above, but for 2-tile transitions.
#define TERRAIN_ADJACENT_2 TERRAIN ADJACENT IMAGE
#define TERRAIN_ADJACENT_2 LAYER TERRAIN ADJACENT IMAGE
[terrain_graphics]
map="
2
@ -120,7 +120,7 @@
set_flag=transition-@R0,transition-@R1
[image]
layer=-98
layer={LAYER}
name={IMAGE}-@R0-@R1
[/image]
[/tile]
@ -143,7 +143,7 @@
# Same as above, but for 1-tile (simple) transitions.
#define TERRAIN_ADJACENT_1 TERRAIN ADJACENT IMAGE
#define TERRAIN_ADJACENT_1 LAYER TERRAIN ADJACENT IMAGE
[terrain_graphics]
map="
@ -161,7 +161,7 @@
set_flag=transition-@R0
[image]
layer=-98
layer={LAYER}
name={IMAGE}-@R0
[/image]
[/tile]
@ -180,21 +180,21 @@
# transitions to other terrains. The larger transitions have greater priority
# and go first.
#define TERRAIN_ADJACENT_1234 TERRAIN ADJACENT IMAGE
{TERRAIN_ADJACENT_4 ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_3 ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_2 ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_1 ({TERRAIN}) ({ADJACENT}) {IMAGE}}
#define TERRAIN_ADJACENT_1234 LAYER TERRAIN ADJACENT IMAGE
{TERRAIN_ADJACENT_4 ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_3 ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_2 ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_1 ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGE}}
#enddef
#define TERRAIN_ADJACENT_123 TERRAIN ADJACENT IMAGE
{TERRAIN_ADJACENT_3 ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_2 ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_1 ({TERRAIN}) ({ADJACENT}) {IMAGE}}
#define TERRAIN_ADJACENT_123 LAYER TERRAIN ADJACENT IMAGE
{TERRAIN_ADJACENT_3 ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_2 ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_1 ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGE}}
#enddef
#define TERRAIN_ADJACENT_12 TERRAIN ADJACENT IMAGE
{TERRAIN_ADJACENT_2 ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_1 ({TERRAIN}) ({ADJACENT}) {IMAGE}}
#define TERRAIN_ADJACENT_12 LAYER TERRAIN ADJACENT IMAGE
{TERRAIN_ADJACENT_2 ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGE}}
{TERRAIN_ADJACENT_1 ({LAYER}) ({TERRAIN}) ({ADJACENT}) {IMAGE}}
#enddef

View file

@ -9,7 +9,7 @@
y=0
type="{LETTER}"
[image]
layer=-99
layer=-1000
name={IMAGE}
[/image]
[/tile]

View file

@ -5,14 +5,10 @@
x=0
y=0
type={LETTER}
[image]
layer=-98
name={IMAGE}
[/image]
{IMAGE}
[/tile]
set_flag=building-{LETTER}
no_flag=building-{LETTER}
precedence=16
[/terrain_graphics]
#enddef
@ -23,14 +19,10 @@
y=0
type={KEEP}
has_flag={FLAG}
[image]
layer=-99
name={IMAGE}
[/image]
{IMAGE}
[/tile]
set_flag=building-{LETTER}
no_flag=building-{LETTER}
precedence=16
[/terrain_graphics]
#enddef
@ -41,14 +33,10 @@
y=0
type={KEEP}
probability={PROBABILITY}
[image]
layer=-99
name={IMAGE}
[/image]
{IMAGE}
[/tile]
set_flag=building-{LETTER}
no_flag=building-{LETTER}
precedence=16
[/terrain_graphics]
#enddef

View file

@ -28,11 +28,11 @@
pos=1
type={FOREST}
[image]
layer=-99
layer=-1000
name={BACKGROUND}
[/image]
set_flag="terrain-{FOREST}"
no_flag="terrain-{FOREST}"
set_flag="terrain-base"
no_flag="terrain-base"
[/tile]
[/terrain_graphics]
@ -50,12 +50,12 @@
pos=1
type={FOREST}
[image]
layer=-99
layer=-1000
name={BACKGROUND}
[/image]
set_flag="terrain-{FOREST}"
no_flag="terrain-{FOREST}"
set_flag="terrain-base"
no_flag="terrain-base"
[/tile]
[/terrain_graphics]
@ -73,11 +73,11 @@
pos=1
type={FOREST}
[image]
layer=-99
layer=-1000
name={BACKGROUND}
[/image]
set_flag="terrain-{FOREST}"
no_flag="terrain-{FOREST}"
set_flag="terrain-base"
no_flag="terrain-base"
[/tile]
[/terrain_graphics]
@ -97,14 +97,13 @@
pos=1
type={FOREST}
[image]
layer=-99
layer=-30
name={FOREGROUND}-nw-n-ne
[/image]
set_flag=castle-transition-nw,castle-transition-n,castle-transition-ne
no_flag=castle-transition-nw,castle-transition-n,castle-transition-ne
[/tile]
precedence=32 # Just after terrains
[/terrain_graphics]
[terrain_graphics]
@ -121,13 +120,12 @@
pos=1
type={FOREST}
[image]
layer=-99
layer=-30
name={FOREGROUND}-nw-n
[/image]
set_flag=castle-transition-nw,castle-transition-n
no_flag=castle-transition-nw,castle-transition-n
[/tile]
precedence=32 # Just after terrains
[/terrain_graphics]
[terrain_graphics]
@ -144,13 +142,12 @@
pos=1
type={FOREST}
[image]
layer=-99
layer=-30
name={FOREGROUND}-n-ne
[/image]
set_flag=castle-transition-n,castle-transition-ne
no_flag=castle-transition-n,castle-transition-ne
set_flag=castle-transition-ne,castle-transition-n
no_flag=castle-transition-ne,castle-transition-n
[/tile]
precedence=32 # Just after terrains
[/terrain_graphics]
[terrain_graphics]
@ -169,11 +166,10 @@
set_flag=castle-transition-n
no_flag=castle-transition-n
[image]
layer=-99
layer=-30
name={FOREGROUND}-n
[/image]
[/tile]
precedence=32 # Just after terrains
[/terrain_graphics]
[terrain_graphics]
@ -192,11 +188,10 @@
set_flag=castle-transition-nw
no_flag=castle-transition-nw
[image]
layer=-99
layer=-30
name={FOREGROUND}-nw
[/image]
[/tile]
precedence=32 # Just after terrains
[/terrain_graphics]
[terrain_graphics]
@ -215,11 +210,9 @@
set_flag=castle-transition-ne
no_flag=castle-transition-ne
[image]
layer=-99
layer=-30
name={FOREGROUND}-ne
[/image]
[/tile]
precedence=32 # Just after terrains
[/terrain_graphics]
#enddef

View file

@ -20,7 +20,7 @@
[/tile]
[image]
layer=-99
layer=-50
name="{IMAGE}-bg-concave-@R0"
[/image]
[image]
@ -28,7 +28,6 @@
name="{IMAGE}-fg-concave-@R0"
[/image]
rotations=ne,e,se,sw,w,nw
precedence=16
[/terrain_graphics]
[terrain_graphics]
@ -46,7 +45,7 @@
[/tile]
[image]
layer=-99
layer=-50
name="{IMAGE}-bg-convex-@R0"
[/image]
[image]
@ -54,7 +53,6 @@
name="{IMAGE}-fg-convex-@R0"
[/image]
rotations=ne,e,se,sw,w,nw
precedence=16
[/terrain_graphics]
#enddef
@ -64,10 +62,10 @@
x=0
y=0
type={CASTLE}
# not_flag=terrain-base
# set_flag=terrain-base
no_flag=terrain-base
set_flag=terrain-base
[image]
layer=-99
layer=-1000
name={IMAGE}
[/image]
[/tile]
@ -77,11 +75,11 @@
x=0
y=0
type={KEEP}
# not_flag=terrain-base
# set_flag=terrain-base
no_flag=terrain-base
set_flag=terrain-base
has_flag=keep-of-{CASTLE}
[image]
layer=-99
layer=-1000
name={IMAGE}
[/image]
[/tile]
@ -95,7 +93,6 @@
#define CASTLE_AND_COMPOSED_KEEP CASTLE KEEP CASTLE_IMAGE KEEP_IMAGE
# Keep rules will only work if the keep is adjacent to a castle tile.
{FLAG_IF_ADJACENT {KEEP} {CASTLE} keep-of-{CASTLE}}
{CASTLE_WALLS {CASTLE} !{CASTLE}{KEEP} {CASTLE_IMAGE}}
{DISABLE_TRANSITIONS {KEEP}}
@ -115,7 +112,7 @@
[/tile]
[image]
layer=-99
layer=-50
name="{KEEP_IMAGE}-bg-inside-@R0"
[/image]
[image]
@ -123,7 +120,6 @@
name="{KEEP_IMAGE}-fg-inside-@R0"
[/image]
rotations=ne,e,se,sw,w,nw
precedence=16
[/terrain_graphics]
[terrain_graphics]
@ -142,7 +138,7 @@
[/tile]
[image]
layer=-99
layer=-50
name="{KEEP_IMAGE}-bg-wall-@R0"
[/image]
[image]
@ -150,7 +146,6 @@
name="{KEEP_IMAGE}-fg-wall-@R0"
[/image]
rotations=ne,e,se,sw,w,nw
precedence=16
[/terrain_graphics]
[terrain_graphics]
@ -174,7 +169,7 @@
[/tile]
[image]
layer=-99
layer=-50
name="{KEEP_IMAGE}-bg-wall-0-@R0"
[/image]
[image]
@ -182,7 +177,6 @@
name="{KEEP_IMAGE}-fg-wall-0-@R0"
[/image]
rotations=ne,e,se,sw,w,nw
precedence=16
[/terrain_graphics]
[terrain_graphics]
@ -205,7 +199,7 @@
type=!{CASTLE}{KEEP}
[/tile]
[image]
layer=-99
layer=-50
name="{KEEP_IMAGE}-bg-wall-1-@R0"
[/image]
[image]
@ -213,7 +207,6 @@
name="{KEEP_IMAGE}-fg-wall-1-@R0"
[/image]
rotations=ne,e,se,sw,w,nw
precedence=16
[/terrain_graphics]
#enddef
@ -223,7 +216,6 @@
#define CASTLE_AND_SIMPLE_KEEP CASTLE KEEP CASTLE_IMAGE
{FLAG_IF_ADJACENT {KEEP} {CASTLE} keep-of-{CASTLE}}
{DISABLE_TRANSITIONS {CASTLE}{KEEP}}
[terrain_graphics]
@ -241,7 +233,7 @@
[/tile]
[image]
layer=-99
layer=-50
name="{CASTLE_IMAGE}-bg-concave-@R0"
[/image]
[image]
@ -267,7 +259,7 @@
[/tile]
[image]
layer=-99
layer=-50
name="{CASTLE_IMAGE}-bg-convex-@R0"
[/image]
[image]
@ -294,7 +286,7 @@
[/tile]
[image]
layer=-99
layer=-50
name="{CASTLE_IMAGE}-bg-convex-@R0"
[/image]
[image]

View file

@ -2,6 +2,39 @@
# This utility macro disables standard transitions on a given terrain type. It
# is used for castles and keeps, as those have custom transitions.
#define IMG LAYER NAME
[image]
name={NAME}
layer={LAYER}
[/image]
#enddef
#define IMG_NIGHT LAYER NAME NAME_NIGHT
[image]
name={NAME}
layer={LAYER}
[variant]
tod=dusk
name={NAME_NIGHT}
[/variant]
[variant]
tod=first_watch
name={NAME_NIGHT}
[/variant]
[variant]
tod=second_watch
name={NAME_NIGHT}
[/variant]
[variant]
tod=dawn
name={NAME_NIGHT}
[/variant]
[/image]
#enddef
#define DISABLE_TRANSITIONS LETTER
[terrain_graphics]
map="
@ -39,7 +72,6 @@
pos=7
type={LETTER}
[/tile]
precedence=-16
[/terrain_graphics]
#enddef
@ -51,13 +83,14 @@
#
# Use this to make other rule depend on adjacent terrain
#define FLAG_IF_ADJACENT LETTER ADJACENT FLAG
#define FLAG_IF_ADJACENT LETTER ADJACENT FLAG CLASS
[terrain_graphics]
[tile]
x=0
y=0
type={LETTER}
set_flag={FLAG}
set_flag={FLAG},{CLASS}
no_flag={CLASS}
[/tile]
[tile]
x=0
@ -65,7 +98,18 @@
type={ADJACENT}
[/tile]
rotations=x,x,x,x,x,x
precedence=-16
[/terrain_graphics]
#enddef
#define FLAG_REMAINING LETTER FLAG CLASS
[terrain_graphics]
[tile]
x=0
y=0
type={LETTER}
set_flag={FLAG},{CLASS}
no_flag={CLASS}
[/tile]
[/terrain_graphics]
#enddef

View file

@ -253,7 +253,11 @@ recruit_from=true
recruit_onto=true
[/terrain]
#[terrain]
#image=canyon
#name=canyon
#char=X
#[/terrain]
# 'y' and 'z' are reserved chars
# They can be used at the discretion of campaign designers

View file

@ -52,12 +52,15 @@ void terrain_builder::tile::rebuild_cache(const std::string &tod) const
images_background.clear();
images_foreground.clear();
// std::cerr << "rebuilding cache\n";
std::multimap<int, const rule_image*>::const_iterator itor;
util::array<std::string, 2> search_variants;
search_variants[0] = tod;
for(itor = images.begin(); itor != images.end(); ++itor) {
// std::cerr << "layer is " << itor->first << "\n";
// std::cerr << "image is " << itor->second->variants.find("")->second.image.get_current_frame().get_filename() << "\n";
for(util::array<std::string, 2>::const_iterator var_name = search_variants.begin();
var_name != search_variants.end(); ++var_name) {
@ -204,21 +207,6 @@ bool terrain_builder::rule_valid(const building_rule &rule)
constraint_set::const_iterator constraint;
rule_image_variantlist::const_iterator variant;
#if 0
for(image = rule.images.begin();
image != rule.images.end(); ++image) {
for(variant = image->variants.begin(); variant != image->variants.end(); ++variant) {
std::string s = variant->second.image_string;
s = s.substr(0, s.find_first_of(",:"));
if(!image::exists("terrain/" + s + ".png"))
return false;
}
}
#endif
for(constraint = rule.constraints.begin();
constraint != rule.constraints.end(); ++constraint) {
for(image = constraint->second.images.begin();
@ -247,22 +235,6 @@ bool terrain_builder::start_animation(building_rule &rule)
for(constraint = rule.constraints.begin();
constraint != rule.constraints.end(); ++constraint) {
#if 0
for(image = rule.images.begin();
image != rule.images.end(); ++image) {
for(variant = image->variants.begin(); variant != image->variants.end(); ++variant) {
animated<image::locator> th(variant->second.image_string,
locator_string_initializer());
variant->second.image = th;
variant->second.image.start_animation(0, animated<image::locator>::INFINITE_CYCLES);
variant->second.image.update_current_frame();
}
}
#endif
for(image = constraint->second.images.begin();
image != constraint->second.images.end();
++image) {
@ -379,9 +351,6 @@ terrain_builder::building_rule terrain_builder::rotate_rule(const terrain_builde
std::cerr << "Error: invalid rotations\n";
return ret;
}
#if 0
ret.images = rule.images;
#endif
ret.location_constraints = rule.location_constraints;
ret.probability = rule.probability;
ret.precedence = rule.precedence;
@ -429,14 +398,6 @@ void terrain_builder::add_images_from_config(rule_imagelist& images, const confi
{
const config::child_list& cimages = cfg.get_children("image");
#if 0
for(config::child_list::const_iterator itor = cimages.begin(); itor != cimages.end(); ++itor) {
const int z_index = atoi((**itor)["z_index"].c_str());
const std::string &name = (**itor)["name"];
images.insert(std::pair<int, std::string>(z_index, name));
}
#endif
for(config::child_list::const_iterator img = cimages.begin(); img != cimages.end(); ++img) {
@ -795,23 +756,6 @@ void terrain_builder::apply_rule(const terrain_builder::building_rule &rule, con
tile& btile = tile_map_[tloc];
#if 0
for(img = rule.images.begin(); img != rule.images.end(); ++img) {
#if 0
th.start_animation(0,animated<image::locator>::INFINITE_CYCLES);
th.update_current_frame();
//image::locator th(img->second, constraint->second.loc);
if(img->first < 0) {
btile.images_background.push_back(th);
} else {
btile.images_foreground.push_back(th);
}
#endif
btile.images.push_back(std::pair<int, rule_image*>(img->layer, *img));
}
#endif
//std::multimap<int, std::string>::const_iterator img;
for(img = constraint->second.images.begin(); img != constraint->second.images.end(); ++img) {

View file

@ -1644,7 +1644,7 @@ std::vector<surface> display::get_terrain_images(int x, int y, image::TYPE image
res.push_back(surface);
}
}
}
}
if(terrain_type == ADJACENT_FOREGROUND) {
const std::vector<std::string> fog_shroud = get_fog_shroud_graphics(gamemap::location(x,y));

View file

@ -11,7 +11,7 @@
See the COPYING file for more details.
*/
#include "game_config.hpp"
#include <config.h>
#include "config.h"
#include <cstdlib>

View file

@ -25,7 +25,7 @@
#include "widgets/button.hpp"
#include "widgets/slider.hpp"
#include "widgets/menu.hpp"
#include <config.h>
#include "config.h"
#include <cstdlib>
#include <iostream>