home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 July / maximum-cd-2010-07.iso / DiscContents / wesnoth-1.8-win32.exe / data / core / macros / interface-utils.cfg < prev    next >
Encoding:
Text File  |  2010-03-08  |  12.9 KB  |  521 lines

  1. #textdomain wesnoth
  2. # Interface shortcut macros.
  3.  
  4. # These don't depend on any other macros.  Please don't change this.
  5. # ! in comments is used to generate HTML documentation; ignore it otherwise.
  6.  
  7. #define MESSAGE SPEAKER_ID IMAGE CAPTION_TEXT MESSAGE_TEXT
  8.     # Displays a text message spoken by SPEAKER_ID.
  9.     # Speaker can be any of: narrator, unit and second_unit
  10.     # For example, let's have the narrator, which looks like a faery
  11.     # express some feelings on the undead:
  12.     #! {MESSAGE narrator "units/elves-wood/shyde.png" _ "Faery" _ "Aarr! Them be undeadies! Loooks at them.."}
  13.     [message]
  14.         speaker={SPEAKER_ID}
  15.         message={MESSAGE_TEXT}
  16.         image={IMAGE}
  17.         caption={CAPTION_TEXT}
  18.     [/message]
  19. #enddef
  20.  
  21. #define FLOATING_TEXT FILTER COLOUR_VALUE TEXT
  22.     # Floats the given text above the given unit in the same manner as
  23.     # damage numbers are displayed in combat.  For example when a unit
  24.     # steps on a hidden trap and is dealt 8 damage, let's show this to
  25.     # the player like all other damage is:
  26.     #! {FLOATING_TEXT x,y=$x1,$y1 255,0,0 "8"}
  27.     [store_unit]
  28.         [filter]
  29.             {FILTER}
  30.         [/filter]
  31.  
  32.         kill=no
  33.         variable=FLOATING_TEXT_temp
  34.     [/store_unit]
  35.  
  36.     [unstore_unit]
  37.         variable=FLOATING_TEXT_temp
  38.         find_vacant=no
  39.         red,green,blue={COLOUR_VALUE}
  40.         text={TEXT}
  41.     [/unstore_unit]
  42.  
  43.     {CLEAR_VARIABLE FLOATING_TEXT_temp}
  44. #enddef
  45.  
  46. #define HIGHLIGHT_IMAGE X Y IMAGE BACKGROUND_VALUE
  47.     # Scrolls to the given location, blinks the given image in and out a few
  48.     # times, and then leaves the image in place. Use this to pinpoint an
  49.     # important location to the player. If there's an existing [item] on the
  50.     # location, specify it as the BACKGROUND_VALUE or else it'll get lost
  51.     # during the blinking.
  52.     [scroll_to]
  53.         x,y={X},{Y}
  54.         check_fogged=false
  55.     [/scroll_to]
  56.     [item]
  57.         x,y={X},{Y}
  58.         halo={IMAGE}
  59.     [/item]
  60.     [redraw][/redraw]
  61.     [delay]
  62.         time=300
  63.     [/delay]
  64.     [removeitem]
  65.         x,y={X},{Y}
  66.     [/removeitem]
  67.     [item]
  68.         x,y={X},{Y}
  69.         image={BACKGROUND_VALUE}
  70.     [/item]
  71.     [redraw][/redraw]
  72.     [delay]
  73.         time=300
  74.     [/delay]
  75.     [item]
  76.         x,y={X},{Y}
  77.         halo={IMAGE}
  78.     [/item]
  79.     [redraw][/redraw]
  80.     [delay]
  81.         time=300
  82.     [/delay]
  83.     [removeitem]
  84.         x,y={X},{Y}
  85.     [/removeitem]
  86.     [item]
  87.         x,y={X},{Y}
  88.         image={BACKGROUND_VALUE}
  89.     [/item]
  90.     [redraw][/redraw]
  91.     [delay]
  92.         time=300
  93.     [/delay]
  94.     [item]
  95.         x,y={X},{Y}
  96.         halo={IMAGE}
  97.     [/item]
  98.     [redraw][/redraw]
  99.     [delay]
  100.         time=300
  101.     [/delay]
  102.     [removeitem]
  103.         x,y={X},{Y}
  104.     [/removeitem]
  105.     [item]
  106.         x,y={X},{Y}
  107.         image={BACKGROUND_VALUE}
  108.     [/item]
  109.     [redraw][/redraw]
  110.     [delay]
  111.         time=300
  112.     [/delay]
  113.     [item]
  114.         x,y={X},{Y}
  115.         image={IMAGE}
  116.     [/item]
  117.     [redraw][/redraw]
  118. #enddef
  119.  
  120. #define CLEAR_FOG SIDE X Y RADIUS
  121.     # Clears fog in a specific area for the given side. This is to be used only
  122.     # for the duration of an event: always use {UNCLEAR_FOG} (below) before the
  123.     # event exits, or otherwise you'll be left with fake fog clearer units on
  124.     # the map.
  125.     [if]
  126.         [have_unit]
  127.             type=Fog Clearer
  128.         [/have_unit]
  129.  
  130.         [then]
  131.             [set_variable]
  132.                 name=fog_clearer_i
  133.                 add=1
  134.             [/set_variable]
  135.         [/then]
  136.  
  137.         [else]
  138.             [set_variable]
  139.                 name=fog_clearer_i
  140.                 value=1
  141.             [/set_variable]
  142.         [/else]
  143.     [/if]
  144.  
  145.     [unit]
  146.         side={SIDE}
  147.         type=Fog Clearer
  148.         id=fog_clearer_$fog_clearer_i
  149.         x,y={X},{Y}
  150.         max_moves={RADIUS}
  151.     [/unit]
  152.  
  153.     [store_unit]
  154.         [filter]
  155.             id=fog_clearer_$fog_clearer_i
  156.         [/filter]
  157.  
  158.         kill=no
  159.         variable=new_fog_clearer
  160.     [/store_unit]
  161.  
  162.     [hide_unit]
  163.         x,y=$new_fog_clearer.x,$new_fog_clearer.y
  164.     [/hide_unit]
  165.  
  166.     [redraw]
  167.         side={SIDE}
  168.     [/redraw]
  169.  
  170.     [clear_variable]
  171.         name=fog_clearer_i
  172.     [/clear_variable]
  173.  
  174.     [clear_variable]
  175.         name=new_fog_clearer
  176.     [/clear_variable]
  177. #enddef
  178.  
  179. #define UNCLEAR_FOG
  180.     # Restores fog that was temporarily cleared (check CLEAR_FOG above). Only
  181.     # one UNCLEAR_FOG is required no matter how many times CLEAR_FOG was used.
  182.     [kill]
  183.         type=Fog Clearer
  184.         animate=no
  185.         fire_event=no
  186.     [/kill]
  187. #enddef
  188.  
  189. #define SET_LABEL X Y STRING
  190.     # Puts STRING on the map at X,Y.  Strictly a syntactic shortcut.
  191.     #
  192.     # For example:
  193.     #! {SET_LABEL 4 7 _ "There be dragons here!"}
  194.     [label]
  195.         x={X}
  196.         y={Y}
  197.         text={STRING}
  198.     [/label]
  199. #enddef
  200.  
  201. #define REMOVE_LABEL X Y
  202.     # Removes a label from a given tile.
  203.     #
  204.     # For example, remove it from 4,7
  205.     #! {REMOVE_LABEL 4 7}
  206.     [label]
  207.         x={X}
  208.         y={Y}
  209.         text=""    # wmllint: ignore
  210.     [/label]
  211. #enddef
  212.  
  213. #define SET_LABEL_PERSISTENT X Y STRING
  214.     # Sets a label on tile x,y that gets reset every sideturn in case
  215.     # someone clears it.
  216.     #
  217.     # Example:
  218.     #! {SET_LABEL_PERSISTENT 4 7 _ "There really will be dragons here!!"}
  219.     {SET_LABEL {X} {Y} ({STRING}) }
  220.     {ON_SIDETURN (
  221.         {SET_LABEL {X} {Y} ({STRING}) }
  222.     )}
  223. #enddef
  224.  
  225. #define SET_IMAGE_AND_LABEL_PERSISTENT X Y IMAGE STRING
  226.     # Shorthand for setting both a persistent label and image at once
  227.     {SET_LABEL_PERSISTENT {X} {Y} ({STRING}) }
  228.     {PLACE_IMAGE ({IMAGE}) {X} {Y}}
  229. #enddef
  230.  
  231. #define FAKE_UNIT_MOVE FROM_X TO_X FROM_Y TO_Y SIDE TYPE MODIFIER_WML
  232.     # Moves a fake unit using TYPE's animations, from (FROM_X, FROM_Y)
  233.     # to (TO_X, TO_Y).  You can also specify modifiers that change the
  234.     # baseframe displayed by unit's gender or variation, or none at
  235.     # all.
  236.     #
  237.     # Example:
  238.     #! {FAKE_UNIT_MOVE 1 2 1 2 1 (Dark Adept) (
  239.     #!     gender=female
  240.     #!     variation=fancy
  241.     #! )}
  242.     [move_unit_fake]
  243.         type={TYPE}
  244.         side={SIDE}
  245.         x={FROM_X},{TO_X}
  246.         y={FROM_Y},{TO_Y}
  247.         {MODIFIER_WML}
  248.     [/move_unit_fake]
  249. #enddef
  250.  
  251. #define SCROLL X Y
  252.     # Scrolls the screen by the specified offsets
  253.     #
  254.     # For example, let's scroll 5 right and 3 down:
  255.     #! {SCROLL 5 3}
  256.     [scroll]
  257.         x={X}
  258.         y={Y}
  259.     [/scroll]
  260. #enddef
  261.  
  262. #define SCROLL_TO X Y
  263.     # Scrolls the screen to focus on the specified coordinates
  264.     #
  265.     # For example, let's focus on 26,35:
  266.     #! {SCROLL 26 35}
  267.     [scroll_to]
  268.         x={X}
  269.         y={Y}
  270.     [/scroll_to]
  271. #enddef
  272.  
  273. #define REDRAW
  274.     [redraw]
  275.     [/redraw]
  276. #enddef
  277.  
  278. #define QUAKE SOUND
  279.     # Visuals and sound for an earth tremor.
  280.     [sound]
  281.         name={SOUND}
  282.     [/sound]
  283.     [scroll]
  284.         x=5
  285.         y=0
  286.     [/scroll]
  287.     [scroll]
  288.         x=-10
  289.         y=0
  290.     [/scroll]
  291.     [scroll]
  292.         x=5
  293.         y=5
  294.     [/scroll]
  295.     [scroll]
  296.         x=0
  297.         y=-10
  298.     [/scroll]
  299.     [scroll]
  300.         x=0
  301.         y=5
  302.     [/scroll]
  303. #enddef
  304.  
  305. #define EARTHQUAKE ACTION_WML
  306.     # Creates an earthquake-effect while performing ACTION_WML
  307.     # For example we could kill all non-leader units in the earthquake:
  308.     #! {EARTHQUAKE (
  309.     #!   [kill]
  310.     #!       canrecruit=no
  311.     #!       animate=yes
  312.     #!   [/kill]
  313.     #! )}
  314.     [sound]
  315.         name=lightning.ogg
  316.     [/sound]
  317.     {SCROLL 2 1}
  318.     {SCROLL -1 -3}
  319.     {SCROLL -3 1}
  320.     {ACTION_WML}
  321.     {SCROLL 1 3}
  322.     {SCROLL 1 -2}
  323. #enddef
  324.  
  325. #define COLOR_ADJUST RED GREEN BLUE
  326.     # Adjusts the color of the screen by a tint or red, green and blue
  327.     # for example, let's make it very blueish:
  328.     #! {COLOR_ADJUST 0 0 100}
  329.     [colour_adjust]
  330.         red={RED}
  331.         green={GREEN}
  332.         blue={BLUE}
  333.     [/colour_adjust]
  334. #enddef
  335.  
  336. # Flashes the screen with a given color performing ACTION_WML
  337. # These macros come in WHITE, RED, GREEN and BLUE and can
  338. # easily be expanded for ORANGE, PURPLE etc.
  339. #
  340. # Example: flash the screen to scare the player:
  341. #! {FLASH_GREEN ()}
  342. #! {FLASH_RED ()}
  343. #! {FLASH_BLUE ()}
  344. #! {FLASH_WHITE ()}
  345.  
  346. #define FLASH_WHITE ACTION_WML
  347.     # Flash the screen momentarily white.
  348.     {COLOR_ADJUST 67 67 67}
  349.     {COLOR_ADJUST 100 100 100}
  350.     {ACTION_WML}
  351.     {COLOR_ADJUST 33 33 33}
  352.     {COLOR_ADJUST 0 0 0}
  353. #enddef
  354.  
  355. #define FLASH_RED ACTION_WML
  356.     # Flash the screen momentarily red.
  357.     {COLOR_ADJUST 67 0 0}
  358.     {COLOR_ADJUST 100 0 0}
  359.     {ACTION_WML}
  360.     {COLOR_ADJUST 33 0 0}
  361.     {COLOR_ADJUST 0 0 0}
  362. #enddef
  363.  
  364. #define FLASH_GREEN ACTION_WML
  365.     # Flash the screen momentarily green.
  366.     {COLOR_ADJUST 0 67 0}
  367.     {COLOR_ADJUST 0 100 0}
  368.     {ACTION_WML}
  369.     {COLOR_ADJUST 0 33 0}
  370.     {COLOR_ADJUST 0 0 0}
  371. #enddef
  372.  
  373. #define FLASH_BLUE ACTION_WML
  374.     # Flash the screen momentarily blue.
  375.     {COLOR_ADJUST 0 0 67}
  376.     {COLOR_ADJUST 0 0 100}
  377.     {ACTION_WML}
  378.     {COLOR_ADJUST 0 0 33}
  379.     {COLOR_ADJUST 0 0 0}
  380. #enddef
  381.  
  382. #define THUNDER ACTION_WML
  383.     # Creates a thunder-and-lightning effect while performing ACTION_WML.
  384.     # For example, player 3 might disappear in the flash of lightning:
  385.     #! {THUNDER (
  386.     #!   [store_unit]
  387.     #!       [filter]
  388.     #!           side=3
  389.     #!       [/filter]
  390.     #!       variable=player3
  391.     #!       kill=yes
  392.     #!   [/store_unit]
  393.     #! )}
  394.     [sound]
  395.         name=lightning.ogg
  396.     [/sound]
  397.     {FLASH_WHITE ({ACTION_WML}) }
  398. #enddef
  399.  
  400. #The macro that all the following macros work off
  401. #define FADE_STEP_RGB RED GREEN BLUE DELAY_TIME
  402.     [colour_adjust]
  403.         red,green,blue={RED},{GREEN},{BLUE}
  404.     [/colour_adjust]
  405.     [delay]
  406.         time={DELAY_TIME}
  407.     [/delay]
  408.     [redraw][/redraw]
  409. #enddef
  410.  
  411. #The macro that the following fade to black macros rely on
  412. #define FADE_STEP NUMBER DELAY_TIME
  413.     {FADE_STEP_RGB {NUMBER} {NUMBER} {NUMBER} {DELAY_TIME}}
  414. #enddef
  415.  
  416. #define FADE_TO_BLACK
  417.     # Fades the screen to black. Use {FADE_IN} to return to normal
  418.     {FADE_STEP -32 5}
  419.     {FADE_STEP -64 5}
  420.     {FADE_STEP -96 5}
  421.     {FADE_STEP -128 5}
  422.     {FADE_STEP -160 5}
  423.     {FADE_STEP -192 5}
  424.     {FADE_STEP -224 5}
  425. #enddef
  426.  
  427. #define FADE_TO_BLACK_HOLD TIME
  428.     # Fades the screen to black and then pauses for TIME milliseconds.
  429.     # Use {FADE_IN} to return to normal
  430.     {FADE_STEP -32 5}
  431.     {FADE_STEP -64 5}
  432.     {FADE_STEP -96 5}
  433.     {FADE_STEP -128 5}
  434.     {FADE_STEP -160 5}
  435.     {FADE_STEP -192 5}
  436.     {FADE_STEP -224 {TIME}}
  437. #enddef
  438.  
  439. #define FADE_IN
  440.     # Brings the screen back from a {FADE_TO_BLACK}
  441.     {FADE_STEP -224 5}
  442.     {FADE_STEP -192 5}
  443.     {FADE_STEP -160 5}
  444.     {FADE_STEP -128 5}
  445.     {FADE_STEP -96 5}
  446.     {FADE_STEP -64 5}
  447.     {FADE_STEP -32 5}
  448.     {FADE_STEP 0 5}
  449. #enddef
  450.  
  451. #define DEBUG TEXT
  452.     # Logs a WML debug message to consol and the in-game chat.
  453.     # It does nothing unless the 'wml' log domain is set to debug
  454.     # level at application startup (usually with --log-debug=wml),
  455.     # or in-game with the :log command (e.g. :log debug wml).
  456.     #
  457.     # Example:
  458.     # ! {DEBUG "inconsistency: $unit.id is not loyal!"}
  459.     [wml_message]
  460.         logger=debug
  461.         message={TEXT}
  462.     [/wml_message]
  463. #enddef
  464.  
  465. #define LOG TEXT
  466.     # Logs a WML message to console and the in-game chat. It does
  467.     # nothing unless the 'wml' log domain is set to log level at
  468.     # application startup (usually with --log-info=wml), or in-game
  469.     # with the :log command (e.g. :log info wml).
  470.     #
  471.     # Example:
  472.     # ! {LOG "player moved to forbidden location"}
  473.     [wml_message]
  474.         logger=log
  475.         message={TEXT}
  476.     [/wml_message]
  477. #enddef
  478.  
  479. #define WARNING TEXT
  480.     # Logs a WML warning to console and the in-game chat. It does
  481.     # nothing unless the 'wml' log domain is set to warning level at
  482.     # application startup (usually with --log-warning=wml), or in-game
  483.     # with the :log command (e.g. :log warning wml).
  484.     #
  485.     # Example:
  486.     # ! {WARNING "malformed unit data"}
  487.     [wml_message]
  488.         logger=warn
  489.         message={TEXT}
  490.     [/wml_message]
  491. #enddef
  492.  
  493. #define ERROR TEXT
  494.     # Logs a WML error to console and the in-game chat.
  495.     #
  496.     # Example:
  497.     # ! {ERROR "could not respawn hero at 2,4"}
  498.     [wml_message]
  499.         logger=err
  500.         message={TEXT}
  501.     [/wml_message]
  502. #enddef
  503.  
  504. # Encapsulate text in conventional markup for characters whispering.
  505. # We do this so whispers can be restyled by tweaking this markup
  506. #define WHISPER TEXT
  507. "<small>(" + {TEXT} + ")</small>"#enddef
  508.  
  509. # Encapsulate text in conventional markup for characters speaking aside.
  510. # We do this so whispers can be restyled by tweaking this markup
  511. #define ASIDE TEXT
  512. "<i>(" + {TEXT} + ")</i>"#enddef
  513.  
  514. # Encapsulate text in conventional markup similar to how standard
  515. # character message dialogs are rendered. Intended for story screens
  516. # mainly.
  517. #define CAPTION TEXT
  518.     "<span color='#bcb088'><b>" + {TEXT} + "</b></span>
  519.  
  520. "#enddef
  521.