UnitBox experimental theme.

This commit is contained in:
fendrin 2013-05-31 12:52:41 +02:00
parent d7f3b5426e
commit 53b3e303d3
17 changed files with 821 additions and 0 deletions

View file

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

View file

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View file

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View file

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

741
data/themes/unit_box.cfg Normal file
View file

@ -0,0 +1,741 @@
#textdomain wesnoth
# wmlscope: set export=no
# some information about how theming works (especially the coordinates
# defined with rect=):
# http://www.wesnoth.org/forum/viewtopic.php?p=213708#213708
[theme]
name=UnitBox
#define DEFAULT_FONT_NORMAL
14 #enddef
#define DEFAULT_FONT_SMALL
12 #enddef
#define DEFAULT_FONT_TINY
10 #enddef
#define DEFAULT_FONT_REALLYTINY
9 #enddef
{themes/macros.cfg}
[resolution]
id=1024x768
width=1024
height=768
[screen]
# this is only useful as a ref for other rects
id=screen
rect="0,0,1024,768"
[/screen]
[panel]
id=top-panel
image=themes/editor/classic/menubar.png
ref=screen
rect="=,=,=,+27"
xanchor=top
yanchor=fixed
[/panel]
[main_map]
id=main-map
rect="=,+0,+800,768"
xanchor=left
yanchor=top
[/main_map]
[main_map_border]
border_size = 0.5
background_image = "terrain/off-map/background.png"
# this image is processed by the terrain matching code so should be
# in the terrains directory and should ommit the 'terrain/' prefix
# and the '.png' suffix
tile_image = "off-map/alpha.png"
corner_image_top_left = "terrain/off-map/fade_corner_top_left.png"
corner_image_bottom_left = "terrain/off-map/fade_corner_bottom_left.png"
# odd means the corner is on a tile with an odd x value,
# the tile is the ingame tile not the odd in C++
corner_image_top_right_odd = "terrain/off-map/fade_corner_top_right_odd.png"
corner_image_top_right_even = "terrain/off-map/fade_corner_top_right_even.png"
corner_image_bottom_right_odd = "terrain/off-map/fade_corner_bottom_right_odd.png"
corner_image_bottom_right_even = "terrain/off-map/fade_corner_bottom_right_even.png"
border_image_left = "terrain/off-map/fade_border_left.png"
border_image_right = "terrain/off-map/fade_border_right.png"
border_image_top_odd = "terrain/off-map/fade_border_top_odd.png"
border_image_top_even = "terrain/off-map/fade_border_top_even.png"
border_image_bottom_odd = "terrain/off-map/fade_border_bottom_odd.png"
border_image_bottom_even = "terrain/off-map/fade_border_bottom_even.png"
[/main_map_border]
# rightside panel
[panel]
id=sidebar-panel
ref=screen
rect="843,0,1024,768"
image=themes/editor/classic/sidebar.png
#rect="+0,=+0,1024,768"
xanchor=right
yanchor=top
[/panel]
# [panel]
# id=middle-right-panel
# image=themes/rightside-bg.png
# rect="=,+0,=,+421"
# xanchor=right
# yanchor=top
# [/panel]
# [panel]
# id=bottom-right-panel
# image=themes/rightside-bottom.png
# rect="=,+0,=,768"
# xanchor=right
# yanchor=bottom
# [/panel]
[menu]
id=menu-main
title= _ "Menu"
image=lite
items=objectives,statistics,unitlist,statustable,save,savereplay,savemap,load,preferences,chatlog,AUTOSAVES,help,stopnetwork,startnetwork,quit
ref=top-panel
rect="=+3,=+1,+100,=-4"
xanchor=fixed
yanchor=fixed
[/menu]
[menu]
id=actions-menu
title= _ "Actions"
image=lite
items=undo,redo,wbexecuteallactions,wbexecuteaction,wbdeleteaction,cycle,speak,recruit,recall,showenemymoves,bestenemymoves,wbtoggle,delayshroud,updateshroud,endturn
rect="+2,=,+100,="
xanchor=fixed
yanchor=fixed
[/menu]
[menu]
is_context_menu=true
items=wml,undo,redo,wbexecuteaction,wbdeleteaction,wbbumpupaction,wbbumpdownaction,wbsupposedead,describeunit,renameunit,createunit,changeside,labelteamterrain,labelterrain,clearlabels,speak,continue,recruit,recall,wbtoggle,delayshroud,updateshroud,cycle,endturn
[/menu]
[panel]
id=minimap-panel
image=themes/classic/minimap.png
#ref=screen
#ref=top-panel
rect="843,=+30,+181,+190"
xanchor=right
yanchor=fixed
[/panel]
# [panel]
# id=middle-right-panel
# image=themes/rightside-bg.png
# rect="=,+0,=,+421"
# xanchor=right
# yanchor=top
# [/panel]
[mini_map]
id=mini-map
#ref=top-right-panel
rect="=+51,=+9,=-14,+158"
xanchor=right
yanchor=fixed
[/mini_map]
# [mini_map]
# id=mini-map
# ref=top-right-panel
# rect="=+10,=+7,=-7,+143"
# xanchor=right
# yanchor=fixed
# [/mini_map]
[action]
id=button-endturn
image=large-button
title= _ "End Turn"
title2= _ "End Scenario"
items=endturn
ref=sidebar-panel
rect="=-17,=-30,+80,+20"
xanchor=right
yanchor=bottom
[/action]
[panel]
id=turn-panel
image=themes/status-bg.png
ref=actions-menu
rect="+5,=+1,+80,+19"
xanchor=fixed
yanchor=fixed
[/panel]
[panel]
id=gold-panel
image=themes/status-bg.png
rect="+5,=,+76,="
xanchor=fixed
yanchor=fixed
[/panel]
[panel]
id=villages-panel
image=themes/status-bg.png
rect="+5,=,+71,="
xanchor=fixed
yanchor=fixed
[/panel]
[panel]
id=units-panel
image=themes/status-bg.png
rect="+5,=,+71,="
xanchor=fixed
yanchor=fixed
[/panel]
[panel]
id=upkeep-panel
image=themes/status-bg.png
rect="+5,=,+90,="
xanchor=fixed
yanchor=fixed
[/panel]
[panel]
id=income-panel
image=themes/status-bg.png
rect="+5,=,+85,="
xanchor=fixed
yanchor=fixed
[/panel]
{COUNTDOWN_THEME}
# HP/XP
[label]
id=label-hp
font_size={DEFAULT_FONT_TINY}
text= _ "HP"
ref=top-right-panel
rect="=+84,=+209,+54,+12"
xanchor=right
yanchor=fixed
[/label]
[label]
id=label-xp
font_size={DEFAULT_FONT_TINY}
text= _ "XP"
# FIXME: should be ref=unit-hp
rect="=,+14,=,+12"
xanchor=right
yanchor=fixed
[/label]
[label]
id=gold-icon
icon=themes/gold.png
text= _ "gold"
ref=gold-panel
rect="=+5,=+1,+17,+17"
xanchor=fixed
yanchor=fixed
[/label]
[label]
id=villages-icon
icon=themes/villages.png
text= _ "villages"
ref=villages-panel
rect="=+5,=+1,+17,+17"
xanchor=fixed
yanchor=fixed
[/label]
[label]
id=units-icon
icon=themes/units.png
text= _ "units"
ref=units-panel
rect="=+5,=+1,+17,+17"
xanchor=fixed
yanchor=fixed
[/label]
[label]
id=upkeep-icon
icon=themes/upkeep.png
text= _ "upkeep"
ref=upkeep-panel
rect="=+5,=+1,+25,+17"
xanchor=fixed
yanchor=fixed
[/label]
[label]
id=income-icon
icon=themes/income.png
text= _ "income"
ref=income-panel
rect="=+5,=+1,+25,+17"
xanchor=fixed
yanchor=fixed
[/label]
[status]
# the time of day image
[unit_box]
id=image-tod
ref=top-right-panel
rect="=+10,=+159,+154,+94"
xanchor=right
yanchor=fixed
[/unit_box]
#put the side playing indicator next to the turn indicator
[side_playing]
id=icon-sideplaying
ref=turn-panel
rect="=+3,=+2,+25,+17"
xanchor=fixed
yanchor=fixed
[/side_playing]
# the game status
[turn]
id=turn
font_size={DEFAULT_FONT_SMALL}
rect="+4,=,+55,+16"
xanchor=fixed
yanchor=fixed
prefix="" #wmllint: ignore
prefix_literal=""
[/turn]
[gold]
id=gold
font_size={DEFAULT_FONT_SMALL}
ref=gold-icon
rect="+4,=,+55,+16"
xanchor=fixed
yanchor=fixed
prefix="" #wmllint: ignore
prefix_literal=""
[/gold]
[villages]
id=villages
font_size={DEFAULT_FONT_SMALL}
ref=villages-icon
rect="+4,=,+55,+16"
xanchor=fixed
yanchor=fixed
prefix="" #wmllint: ignore
prefix_literal=""
[/villages]
[num_units]
id=num-units
font_size={DEFAULT_FONT_SMALL}
ref=units-icon
rect="+4,=,+55,+16"
xanchor=fixed
yanchor=fixed
prefix="" #wmllint: ignore
prefix_literal=""
[/num_units]
[upkeep]
id=status-upkeep
font_size={DEFAULT_FONT_SMALL}
ref=upkeep-icon
rect="+4,=,+50,+16"
xanchor=fixed
yanchor=fixed
prefix="" #wmllint: ignore
prefix_literal=""
[/upkeep]
[income]
id=status-income
font_size={DEFAULT_FONT_SMALL}
ref=income-icon
rect="+4,=,+60,+16"
xanchor=fixed
yanchor=fixed
prefix="" #wmllint: ignore
prefix_literal=""
[/income]
{COUNTDOWN_THEME_STATUS {DEFAULT_FONT_SMALL}}
# This panel encloses the location information displays and the
# observer icon. This separate container is used so that we can
# make the terrain name display stretch to fill all available space
# so that the long strings don't get cut off as easily.
[panel]
id=terrain-panel
rect="+0,=,1024,="
xanchor=left
yanchor=fixed
[/panel]
# The size of these rectangles only accommodates hex coordinates
# up to 99. If either is over that maximum the movement cost will
# be pushed off the right end.
[position]
id=status-position
font_size={DEFAULT_FONT_SMALL}
ref=terrain-panel
rect="=+15,=,+95,="
xanchor=fixed
yanchor=fixed
[/position]
[terrain]
id=status-terrain
font_size={DEFAULT_FONT_SMALL}
ref=terrain-panel
rect="=+115,=,=-24,="
xanchor=left
yanchor=fixed
[/terrain]
[observers]
id=observers
font_size={DEFAULT_FONT_SMALL}
rect="+4,=,+16,+16"
xanchor=right
yanchor=fixed
[/observers]
#unit stats here
# [unit_image]
# id=unit-image
# ref=top-right-panel
# rect="=+9,=+215,+72,+72"
# xanchor=right
# yanchor=fixed
# [/unit_image]
[unit_name]
id=unit-description
font_size={DEFAULT_FONT_NORMAL}
ref=label-xp
rect="=+9,=+3,=-2,+18"
xanchor=right
yanchor=fixed
[/unit_name]
[unit_type]
id=unit-type
font_size={DEFAULT_FONT_SMALL}
rect="=,+0,=,+16"
xanchor=right
yanchor=fixed
[/unit_type]
[unit_race]
id=unit-race
font_size={DEFAULT_FONT_SMALL}
rect="=,+0,=,+16"
prefix= " "
xanchor=right
yanchor=fixed
[/unit_race]
[unit_level]
id=unit-level
font_size={DEFAULT_FONT_SMALL}
rect="=,+0,=,+16"
prefix= _ "statuspanel^level"
prefix_literal=" "
xanchor=right
yanchor=fixed
[/unit_level]
[unit_alignment]
id=unit-alignment
font_size={DEFAULT_FONT_SMALL}
rect="=,+0,=,+16"
xanchor=right
yanchor=fixed
[/unit_alignment]
[unit_traits]
id=unit-traits
font_size={DEFAULT_FONT_SMALL}
rect="=,+0,=,+16"
xanchor=right
yanchor=fixed
[/unit_traits]
[unit_abilities]
id=unit-abilities
font_size={DEFAULT_FONT_SMALL}
rect="=,+0,=,+16"
xanchor=right
yanchor=fixed
[/unit_abilities]
[unit_moves]
id=unit-moves
font_size={DEFAULT_FONT_SMALL}
rect="=,+0,=+2,+16"
prefix= _ "statuspanel^moves"
prefix_literal=": "
xanchor=right
yanchor=fixed
[/unit_moves]
[unit_defense]
id=unit-defense
font_size={DEFAULT_FONT_SMALL}
rect="=,+0,=,+16"
prefix= _ "statuspanel^terrain def."
prefix_literal=": "
xanchor=right
yanchor=fixed
[/unit_defense]
[unit_vision]
id=unit-vision
font_size={DEFAULT_FONT_SMALL}
rect="=,+0,=+2,+16"
#prefix= _ "statuspanel^vision"
#prefix_literal=": "
xanchor=right
yanchor=fixed
[/unit_vision]
# [unit_hp]
# id=unit-hp
# font_size={DEFAULT_FONT_SMALL}
# ref=label-hp
# rect="=,+0,+54,+14"
# #prefix=hp
# #prefix_literal=" "
# xanchor=right
# yanchor=fixed
# [/unit_hp]
# [unit_xp]
# id=unit-xp
# font_size={DEFAULT_FONT_SMALL}
# ref=label-xp
# rect="=,+0,+54,+14"
# #prefix=xp
# #prefix_literal=" "
# xanchor=right
# yanchor=fixed
# [/unit_xp]
# current position not usable, overlays with the status indication (like slow)
# please find a better place (yes, I know that this is barely possible...)
# [unit_side]
# id=unit-side
# font_size={DEFAULT_FONT_SMALL}
# ref=unit-xp
# rect="=,+0,=,+16"
# xanchor=right
# yanchor=fixed
# [/unit_side]
[unit_weapons]
id=unit-weapons
font_size={DEFAULT_FONT_SMALL}
ref=unit-vision
rect="=+0,+0,=,730"
xanchor=right
yanchor=top
[/unit_weapons]
[unit_status]
id=unit-status
font_size={DEFAULT_FONT_SMALL}
ref=unit-xp
rect="=+1,+3,=,+16"
xanchor=right
yanchor=fixed
[/unit_status]
[/status]
{REPLAY_THEME {DEFAULT_FONT_SMALL}}
[/resolution]
# [partialresolution]
# id=1024x600
# inherits=1024x768
# width=1024
# height=600
# # use right pane with a 40px smaller minimap
# [change]
# id=top-right-panel
# image=themes/rightside-small.png
# rect="+0,=+0,1024,+244"
# [/change]
# # increase size in middle panel since minimap is 40px smaller
# # give it additional 10px and move the end-turn button down
# [change]
# id=middle-right-panel
# rect="=,+0,=,+471"
# [/change]
# # reduce vertical size of minimap by 40px
# [change]
# id=mini-map
# rect="=+10,=+7,=-7,+103"
# [/change]
# # shift tod image up by 40px rel to 768px
# [change]
# id=image-tod
# rect="=+10,=+119,=-7,+39"
# [/change]
# # fixing this one fixes HP/XP/unit status
# [change]
# id=label-hp
# font_size={DEFAULT_FONT_TINY}
# rect="=+84,=+169,+54,+12"
# [/change]
# # shift unit image up by 40px rel to 768px
# [change]
# id=unit-image
# rect="=+9,=+175,+72,+72"
# [/change]
# [change]
# id=button-endturn
# image=button
# rect="=+17,=+3,+80,+20"
# [/change]
# # adjust allowed heigth for displaying weapon stuff
# [change]
# id=unit-weapons
# ref=unit-defense
# font_size={DEFAULT_FONT_SMALL}
# rect="=+0,+0,=,738"
# [/change]
# [/partialresolution]
# [partialresolution]
# id=800x600
# inherits=1024x600
# width=800
# height=600
# # fix top pane at 800x600
# [change]
# id=turn-panel
# rect="+5,=+1,+80,+19"
# [/change]
# [change]
# id=gold-panel
# rect="+5,=,+66,="
# [/change]
# [change]
# id=villages-panel
# rect="+5,=,+61,="
# [/change]
# [change]
# id=units-panel
# rect="+5,=,+55,="
# [/change]
# [change]
# id=upkeep-panel
# rect="+5,=,+80,="
# [/change]
# [change]
# id=income-panel
# rect="+5,=,+55,="
# [/change]
# [change]
# id=turn
# rect="+4,=,+55,+16"
# font_size={DEFAULT_FONT_TINY}
# [/change]
# [change]
# id=gold
# rect="+4,=,+45,+16"
# font_size={DEFAULT_FONT_TINY}
# [/change]
# [change]
# id=villages
# rect="+4,=,+45,+16"
# font_size={DEFAULT_FONT_TINY}
# [/change]
# [change]
# id=num-units
# rect="+4,=,+45,+16"
# font_size={DEFAULT_FONT_TINY}
# [/change]
# [change]
# id=status-upkeep
# rect="+4,=,+40,+16"
# font_size={DEFAULT_FONT_TINY}
# [/change]
# [change]
# id=status-income
# rect="+4,=,+50,+16"
# font_size={DEFAULT_FONT_TINY}
# [/change]
# [change]
# id=timeout-panel
# rect="+5,=,+75,="
# [/change]
# [change]
# id=report_timeout
# font_size={DEFAULT_FONT_TINY}
# rect="+0,=,+55,+20"
# [/change]
# [change]
# id=status-position
# rect="=+5,=,+80,="
# font_size={DEFAULT_FONT_TINY}
# [/change]
# [/partialresolution]
# [partialresolution]
# id=800x480
# inherits=800x600
# width=800
# height=480
# [remove]
# id=unit-race
# [/remove]
# # use smaller fonts to display things correctly when using a vertical resolution smaller than 600px
# [change]
# id=unit-description
# font_size={DEFAULT_FONT_SMALL}
# rect="=+9,=+3,=-2,+16"
# [/change]
# [change]
# id=unit-type
# font_size={DEFAULT_FONT_REALLYTINY}
# rect="=,+0,=,+11"
# [/change]
# # placing the unit level right of the alignment
# # doing it the other way around leads to a strange problem sometimes having the alingment not being displayed
# # this does not happen with this order
# [change]
# id=unit-level
# font_size={DEFAULT_FONT_REALLYTINY}
# rect="=+72,+0,=,+11"
# [/change]
# [change]
# id=unit-alignment
# font_size={DEFAULT_FONT_REALLYTINY}
# rect="=-72,=,=,+11"
# [/change]
# [change]
# id=unit-traits
# font_size={DEFAULT_FONT_REALLYTINY}
# rect="=,+0,=,+11"
# [/change]
# [change]
# id=unit-abilities
# font_size={DEFAULT_FONT_REALLYTINY}
# rect="=,+0,=,+11"
# [/change]
# [change]
# id=unit-moves
# font_size={DEFAULT_FONT_REALLYTINY}
# rect="=,+0,=,+11"
# [/change]
# [remove]
# id=unit-defense
# [/remove]
# [change]
# id=unit-weapons
# ref=unit-moves
# font_size={DEFAULT_FONT_REALLYTINY}
# [/change]
# [/partialresolution]
[/theme]
#undef DEFAULT_FONT_NORMAL
#undef DEFAULT_FONT_SMALL
#undef DEFAULT_FONT_TINY
#undef DEFAULT_FONT_REALLYTINY

View file

@ -1101,6 +1101,86 @@ REPORT_GENERATOR(selected_time_of_day)
return time_of_day_at(selected_hex);
}
static config unit_box_at(const map_location& mouseover_hex)
{
std::ostringstream tooltip;
time_of_day local_tod;
time_of_day global_tod = resources::tod_manager->get_time_of_day();
const team &viewing_team = (*resources::teams)[resources::screen->viewing_team()];
if (viewing_team.shrouded(mouseover_hex)) {
// Don't show time on shrouded tiles.
local_tod = global_tod;
} else if (viewing_team.fogged(mouseover_hex)) {
// Don't show illuminated time on fogged tiles.
local_tod = resources::tod_manager->get_time_of_day(mouseover_hex);
} else {
local_tod = resources::tod_manager->get_illuminated_time_of_day(mouseover_hex);
}
int bonus = local_tod.lawful_bonus;
std::string lawful_color("white");
std::string chaotic_color("white");
std::string liminal_color("white");
if (bonus != 0) {
lawful_color = (bonus > 0) ? "green" : "red";
chaotic_color = (bonus < 0) ? "green" : "red";
liminal_color = "red";
}
tooltip << local_tod.name << '\n'
<< _("Lawful units: ") << "<span foreground=\"" << lawful_color << "\">"
<< utils::signed_percent(bonus) << "</span>\n"
<< _("Neutral units: ") << utils::signed_percent(0) << '\n'
<< _("Chaotic units: ") << "<span foreground=\"" << chaotic_color << "\">"
<< utils::signed_percent(-bonus) << "</span>\n"
<< _("Liminal units: ") << "<span foreground=\"" << liminal_color << "\">"
<< utils::signed_percent(-(abs(bonus))) << "</span>\n";
std::string local_tod_image = local_tod.image;
std::string global_tod_image = global_tod.image;
if (local_tod.bonus_modified > 0) tod_image += "~BRIGHTEN()";
else if (local_tod.bonus_modified < 0) tod_image += "~DARKEN()";
if (preferences::flip_time()) tod_image += "~FL(horiz)";
const gamemap &map = *resources::game_map;
t_translation::t_terrain terrain = map.get_terrain(mouseover_hex);
//if (terrain == t_translation::OFF_MAP_USER)
// return report();
//if (map.is_keep(mouseover_hex)) {
// add_image(cfg, "icons/terrain/terrain_type_keep.png", "");
//}
const t_translation::t_list& underlying_terrains = map.underlying_union_terrain(terrain);
std::string bg_terrain_image;
BOOST_FOREACH(const t_translation::t_terrain& underlying_terrain, underlying_terrains) {
const std::string& terrain_id = map.get_terrain_info(underlying_terrain).id();
bg_terrain_image = "~BLIT(unit_env/terrain/terrain-" + terrain_id + ".png)" + bg_terrain_image;
}
std::stringstream color;
color << local_tod.color;
bg_terrain_image = bg_terrain_image + "~CS(" + color.str() + ")";
const unit *u = get_visible_unit();
std::string unit_image;
if (u)
unit_image = "~BLIT(" + u->absolute_image() + u->image_mods() + ",35,22)";
return image_report(tod_image + bg_terrain_image + unit_image, tooltip.str(), "time_of_day");
}
REPORT_GENERATOR(unit_box)
{
map_location mouseover_hex = resources::screen->mouseover_hex();
return unit_box_at(mouseover_hex);
}
REPORT_GENERATOR(turn)
{
std::ostringstream str;