wesnoth/data/core/macros/image-utils.cfg
Tommy 36d43da21a Add new PLACE_IMAGE_SUBMERGED macro and use for HttT:04_BoP
It does the same thing as PLACE_IMAGE except the created item may
use the same submerge code as units. If not placed on water there
will be no submersion effect. If placed on water it will be submerged
to the same level a unit would be submerged to. In general physical
items placed into water should use this, whereas items placed on top
of water should use PLACE_IMAGE.

The new macro has been applied to the merfolk cages in the Bay of Pearls
scenario in HttT.
2022-07-30 14:56:38 +12:00

360 lines
8.1 KiB
INI

#textdomain wesnoth
# Utility macros for images, overlays, and display effects.
# These don't depend on any other macros. Please don't change this.
#define COLOR_HEAL
color="0,255,0"
#enddef
#define COLOR_HARM
color="255,0,0"
#enddef
#define COLOR_WHITE
color="255,255,255"
#enddef
## TODO: this was moved to the loyal trait but a few codes used with witouht the loyal trait,
## so i'll leave it for now. since this icon is afaik not transparent though should not be a problem.
#define IS_HERO
# Embed this into a unit declaration to add a hero icon to the unit.
[+modifications]
[object]
[effect]
apply_to=overlay
add="misc/hero-icon.png"
[/effect]
[effect]
apply_to=ellipse
ellipse="misc/ellipse-hero"
[/effect]
[/object]
[/modifications]
#enddef
#define IS_LOYAL
# Embed this into a unit declaration to add a loyalty icon to the unit.
[+modifications]
[object]
[effect]
apply_to=overlay
add="misc/loyal-icon.png"
[/effect]
[/object]
[/modifications]
#enddef
#define IS_EXPENDABLE_LEADER
# Embed this into a unit declaration to add an expendable leader icon to the unit.
[+modifications]
[object]
[effect]
apply_to=overlay
add="misc/leader-expendable.png"
[/effect]
[/object]
[/modifications]
#enddef
#define NEW_JOURNEY X Y
# Make a new journey mark on a tracking map
[image]
x,y={X},{Y}
file=misc/new-journey.png
delay=500
centered=yes
[/image]
#enddef
#define OLD_JOURNEY X Y
# Make an old journey mark on a tracking map
[image]
x,y={X},{Y}
file=misc/dot-white.png
centered=yes
[/image]
#enddef
#define NEW_BATTLE X Y
# Make a new battle mark on a tracking map, with a blinking animation.
# Because of the animation, generally you should only use this as the final
# journey marker in any given story screen.
[image]
x,y={X},{Y}
file=misc/new-battle2.png
delay=500
centered=yes
[/image]
[image]
x,y={X},{Y}
file=misc/new-battle.png
delay=500
centered=yes
[/image]
[image]
x,y={X},{Y}
file=misc/new-battle2.png
delay=500
centered=yes
[/image]
[image]
x,y={X},{Y}
file=misc/new-battle.png
delay=500
centered=yes
[/image]
[image]
x,y={X},{Y}
file=misc/new-battle2.png
delay=500
centered=yes
[/image]
#enddef
#define OLD_BATTLE X Y
# Make an old battle mark on a tracking map
[image]
x,y={X},{Y}
file=misc/cross-white.png
centered=yes
[/image]
#enddef
#define NEW_REST X Y
# Make a new rest mark on a tracking map, with a blinking animation.
# Because of the animation, generally you should only use this as the final
# journey marker in any given story screen.
[image]
x,y={X},{Y}
file=misc/flag-red.png
delay=500
centered=yes
[/image]
[image]
x,y={X},{Y}
file=misc/flag-red2.png
delay=500
centered=yes
[/image]
[image]
x,y={X},{Y}
file=misc/flag-red.png
delay=500
centered=yes
[/image]
[image]
x,y={X},{Y}
file=misc/flag-red2.png
delay=500
centered=yes
[/image]
[image]
x,y={X},{Y}
file=misc/flag-red.png
delay=500
centered=yes
[/image]
#enddef
#define OLD_REST X Y
# Make an old rest mark on a tracking map
[image]
x,y={X},{Y}
file=misc/flag-white.png
centered=yes
[/image]
#enddef
#define PLACE_IMAGE IMAGE X Y
# Place an image at a specified location on the map.
[item]
x={X}
y={Y}
image={IMAGE}
[/item]
#enddef
#define PLACE_IMAGE_SUBMERGED IMAGE X Y
# Place an image at a specified location on the map, submerging in water.
[item]
x={X}
y={Y}
image={IMAGE}
submerge=1
[/item]
#enddef
#define REMOVE_IMAGE X Y
# Removes a previously set image from a tile.
#
# Example:
#! {REMOVE_IMAGE 14 5}
[remove_item]
x,y={X},{Y}
[/remove_item]
#enddef
#define TEAM_COLOR_OVERRIDE FILTER TEAMCOLOR_ID
# Override the team color of filtered units.
[object]
silent=yes
[filter]
{FILTER}
[/filter]
[effect]
apply_to=image_mod
add=RC(magenta>{TEAMCOLOR_ID})
[/effect]
[/object]
#enddef
#define MAKE_NONLOYAL ID_STRING
# Removes the loyal trait from the unit.
[remove_trait]
id={ID_STRING}
trait_id=loyal
[/remove_trait]
#enddef
#define MAKE_LOYAL_HERO ID_STRING
# Makes the unit a hero unit.
[remove_trait]
id={ID_STRING}
trait_id=loyal
[/remove_trait]
[modify_unit]
[filter]
id={ID_STRING}
[/filter]
{TRAIT_LOYAL_HERO}
canrecruit=no
[/modify_unit]
#enddef
#define MAKE_LOYAL_NORMAL ID_STRING
# Makes the unit a regular loyal unit (not a hero).
[remove_trait]
id={ID_STRING}
trait_id=loyal
[/remove_trait]
[modify_unit]
[filter]
id={ID_STRING}
[/filter]
{TRAIT_LOYAL}
canrecruit=no
[/modify_unit]
#enddef
#define MAKE_LOYAL_LEADER ID_STRING
# Makes the unit a leader.
[remove_trait]
id={ID_STRING}
trait_id=loyal
[/remove_trait]
[modify_unit]
[filter]
id={ID_STRING}
[/filter]
canrecruit=yes
[/modify_unit]
#enddef
#define MAKE_HERO ID_STRING
# Give an existing unit a hero overlay, without making them loyal.
[unit_overlay]
id={ID_STRING}
image=misc/hero-icon.png
[/unit_overlay]
[object]
silent=yes
duration=forever
[filter]
id={ID_STRING}
[/filter]
[effect]
apply_to=ellipse
ellipse="misc/ellipse-hero"
[/effect]
[/object]
#enddef
#define UNMAKE_HERO ID_STRING
# Remove the hero overlay from a unit
[remove_unit_overlay]
id={ID_STRING}
image=misc/hero-icon.png
[/remove_unit_overlay]
[object]
silent=yes
duration=forever
[filter]
id={ID_STRING}
[/filter]
[effect]
apply_to=ellipse
ellipse="misc/ellipse"
[/effect]
[/object]
#enddef
#define FLAG_VARIANT NAME
# Enable the specified flag variant: knalgan, loyalist, ragged,
# long, undead, or wood-elvish. Use within a [side] block; only
# affects that side.
# Since the ragged variant has six frames instead of the usual four,
# for that flag it's better to use FLAG_VARIANT6 below instead.
# wmlscope: start ignoring
flag=flags/{NAME}-flag-[1~4].png:150
flag_icon=flags/{NAME}-flag-icon.png
# wmlscope: stop ignoring
#enddef
#define FLAG_VARIANT6 NAME
# Like FLAG_VARIANT, but this supports flags with six frames.
# Currently only the ragged flag has six frames.
# wmlscope: start ignoring
flag=flags/{NAME}-flag-[1~6].png:150
flag_icon=flags/{NAME}-flag-icon.png
# wmlscope: stop ignoring
#enddef
#define ANIMATED_MAUSOLEUM X Y
# Embed this at scenario toplevel, not within an event.
# Note that it will freeze while dialogue popups are onscreen.
[terrain_graphics]
x={X}
y={Y}
[tile]
x=0
y=0
set_flag=mausoleum
[/tile]
[/terrain_graphics]
[terrain_graphics]
map="
, *
* , *
, 1
* , *
, *"
[tile]
pos=1
has_flag=mausoleum
[/tile]
[image]
layer=0
center=92,138
# wmlscope: start ignoring
# FIXME: More implicit-path breakage
name="../scenery/mausoleum[01~18].png:140"
# wmlscope: stop ignoring
[/image]
[/terrain_graphics]
#enddef