From b7b15bb65587a742270bf8dda052db14bf5df1f3 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Sat, 26 Feb 2011 01:16:47 +0000
Subject: [PATCH] Dialogs UI update Lore found is displayed in a parchment like
 dialog, sometimes with bloodstains!

git-svn-id: http://svn.net-core.org/repos/t-engine4@2835 51575b47-30f0-44d4-a5cc-537603b46e54
---
 .../engines/default/data/gfx/border_1_sel.png | Bin 249 -> 0 bytes
 .../engines/default/data/gfx/border_3_sel.png | Bin 227 -> 0 bytes
 .../engines/default/data/gfx/border_7_sel.png | Bin 205 -> 0 bytes
 .../engines/default/data/gfx/border_9_sel.png | Bin 255 -> 0 bytes
 .../default/data/gfx/ui/border_hor_left.png   | Bin 0 -> 415 bytes
 .../default/data/gfx/ui/border_hor_middle.png | Bin 0 -> 225 bytes
 .../default/data/gfx/ui/border_hor_right.png  | Bin 0 -> 351 bytes
 .../data/gfx/ui/border_vert_bottom.png        | Bin 0 -> 431 bytes
 .../data/gfx/ui/border_vert_middle.png        | Bin 0 -> 220 bytes
 .../default/data/gfx/ui/border_vert_top.png   | Bin 0 -> 341 bytes
 game/engines/default/data/gfx/ui/button1.png  | Bin 0 -> 236 bytes
 game/engines/default/data/gfx/ui/button2.png  | Bin 0 -> 185 bytes
 game/engines/default/data/gfx/ui/button3.png  | Bin 0 -> 233 bytes
 game/engines/default/data/gfx/ui/button4.png  | Bin 0 -> 201 bytes
 game/engines/default/data/gfx/ui/button5.png  | Bin 0 -> 167 bytes
 game/engines/default/data/gfx/ui/button6.png  | Bin 0 -> 184 bytes
 game/engines/default/data/gfx/ui/button7.png  | Bin 0 -> 290 bytes
 game/engines/default/data/gfx/ui/button8.png  | Bin 0 -> 212 bytes
 game/engines/default/data/gfx/ui/button9.png  | Bin 0 -> 224 bytes
 .../default/data/gfx/ui/button_sel1.png       | Bin 0 -> 256 bytes
 .../default/data/gfx/ui/button_sel2.png       | Bin 0 -> 185 bytes
 .../default/data/gfx/ui/button_sel3.png       | Bin 0 -> 252 bytes
 .../default/data/gfx/ui/button_sel4.png       | Bin 0 -> 223 bytes
 .../default/data/gfx/ui/button_sel5.png       | Bin 0 -> 167 bytes
 .../default/data/gfx/ui/button_sel6.png       | Bin 0 -> 184 bytes
 .../default/data/gfx/ui/button_sel7.png       | Bin 0 -> 308 bytes
 .../default/data/gfx/ui/button_sel8.png       | Bin 0 -> 223 bytes
 .../default/data/gfx/ui/button_sel9.png       | Bin 0 -> 247 bytes
 .../default/data/gfx/ui/checkbox-ok.png       | Bin 566 -> 1280 bytes
 game/engines/default/data/gfx/ui/checkbox.png | Bin 0 -> 1101 bytes
 .../default/data/gfx/ui/dialogueV3_1.png      | Bin 0 -> 3494 bytes
 .../default/data/gfx/ui/dialogueV3_2.png      | Bin 0 -> 3828 bytes
 .../default/data/gfx/ui/dialogueV3_3.png      | Bin 0 -> 3747 bytes
 .../default/data/gfx/ui/dialogueV3_4.png      | Bin 0 -> 4106 bytes
 .../default/data/gfx/ui/dialogueV3_5.png      | Bin 0 -> 4362 bytes
 .../default/data/gfx/ui/dialogueV3_6.png      | Bin 0 -> 4153 bytes
 .../default/data/gfx/ui/dialogueV3_7.png      | Bin 0 -> 3714 bytes
 .../default/data/gfx/ui/dialogueV3_8.png      | Bin 0 -> 3769 bytes
 .../default/data/gfx/ui/dialogueV3_9.png      | Bin 0 -> 3371 bytes
 game/engines/default/data/gfx/ui/minus.png    | Bin 365 -> 385 bytes
 game/engines/default/data/gfx/ui/plus.png     | Bin 375 -> 802 bytes
 .../default/data/gfx/ui/scrollbar-sel.png     | Bin 295 -> 1009 bytes
 .../engines/default/data/gfx/ui/scrollbar.png | Bin 213 -> 159 bytes
 .../default/data/gfx/ui/scrollbar_bottom.png  | Bin 0 -> 221 bytes
 .../default/data/gfx/ui/scrollbar_top.png     | Bin 0 -> 221 bytes
 .../default/data/gfx/ui/selector-sel1.png     | Bin 0 -> 290 bytes
 .../default/data/gfx/ui/selector-sel2.png     | Bin 0 -> 208 bytes
 .../default/data/gfx/ui/selector-sel3.png     | Bin 0 -> 280 bytes
 .../default/data/gfx/ui/selector-sel4.png     | Bin 0 -> 203 bytes
 .../default/data/gfx/ui/selector-sel5.png     | Bin 0 -> 167 bytes
 .../default/data/gfx/ui/selector-sel6.png     | Bin 0 -> 207 bytes
 .../default/data/gfx/ui/selector-sel7.png     | Bin 0 -> 285 bytes
 .../default/data/gfx/ui/selector-sel8.png     | Bin 0 -> 216 bytes
 .../default/data/gfx/ui/selector-sel9.png     | Bin 0 -> 302 bytes
 .../engines/default/data/gfx/ui/selector1.png | Bin 0 -> 290 bytes
 .../engines/default/data/gfx/ui/selector2.png | Bin 0 -> 208 bytes
 .../engines/default/data/gfx/ui/selector3.png | Bin 0 -> 280 bytes
 .../engines/default/data/gfx/ui/selector4.png | Bin 0 -> 203 bytes
 .../engines/default/data/gfx/ui/selector5.png | Bin 0 -> 167 bytes
 .../engines/default/data/gfx/ui/selector6.png | Bin 0 -> 207 bytes
 .../engines/default/data/gfx/ui/selector7.png | Bin 0 -> 285 bytes
 .../engines/default/data/gfx/ui/selector8.png | Bin 0 -> 216 bytes
 .../engines/default/data/gfx/ui/selector9.png | Bin 0 -> 302 bytes
 game/engines/default/engine/ui/Base.lua       |  48 +++++++
 game/engines/default/engine/ui/Button.lua     |  45 +++---
 game/engines/default/engine/ui/Checkbox.lua   |  51 ++-----
 game/engines/default/engine/ui/Dialog.lua     | 130 +++++++++++++-----
 game/engines/default/engine/ui/List.lua       |  83 +++--------
 .../engines/default/engine/ui/ListColumns.lua |  98 ++++---------
 game/engines/default/engine/ui/Separator.lua  |  40 +++---
 game/engines/default/engine/ui/Slider.lua     |  47 +++++++
 game/engines/default/engine/ui/Textzone.lua   |  20 +--
 game/engines/default/engine/ui/TreeList.lua   | 104 ++++----------
 game/engines/default/engine/utils.lua         |   6 +-
 game/modules/tome/class/Game.lua              |   3 +-
 .../tome/class/interface/PlayerLore.lua       |   3 +-
 .../data/general/objects/boss-artifacts.lua   |   2 +-
 game/modules/tome/data/gfx/ui/parchment1.png  | Bin 0 -> 5246 bytes
 game/modules/tome/data/gfx/ui/parchment2.png  | Bin 0 -> 5818 bytes
 game/modules/tome/data/gfx/ui/parchment3.png  | Bin 0 -> 5096 bytes
 game/modules/tome/data/gfx/ui/parchment4.png  | Bin 0 -> 6033 bytes
 game/modules/tome/data/gfx/ui/parchment5.png  | Bin 0 -> 5086 bytes
 game/modules/tome/data/gfx/ui/parchment6.png  | Bin 0 -> 5743 bytes
 game/modules/tome/data/gfx/ui/parchment7.png  | Bin 0 -> 5266 bytes
 game/modules/tome/data/gfx/ui/parchment8.png  | Bin 0 -> 5935 bytes
 game/modules/tome/data/gfx/ui/parchment9.png  | Bin 0 -> 5131 bytes
 .../tome/data/gfx/ui/parchmentblood1.png      | Bin 0 -> 782 bytes
 .../tome/data/gfx/ui/parchmentblood2.png      | Bin 0 -> 671 bytes
 .../tome/data/gfx/ui/parchmentblood3.png      | Bin 0 -> 981 bytes
 .../tome/data/gfx/ui/parchmentblood4.png      | Bin 0 -> 594 bytes
 .../tome/data/gfx/ui/parchmentblood5.png      | Bin 0 -> 1446 bytes
 game/modules/tome/data/lore/age-allure.lua    |   1 +
 game/modules/tome/data/lore/maze.lua          |   1 +
 game/modules/tome/data/lore/old-forest.lua    |   1 +
 game/modules/tome/data/lore/trollmire.lua     |   1 +
 game/modules/tome/dialogs/LorePopup.lua       |  72 ++++++++++
 .../modules/tome/dialogs/debug/ChangeZone.lua |   2 +-
 src/core_lua.c                                |  20 +++
 98 files changed, 427 insertions(+), 351 deletions(-)
 delete mode 100644 game/engines/default/data/gfx/border_1_sel.png
 delete mode 100644 game/engines/default/data/gfx/border_3_sel.png
 delete mode 100644 game/engines/default/data/gfx/border_7_sel.png
 delete mode 100644 game/engines/default/data/gfx/border_9_sel.png
 create mode 100644 game/engines/default/data/gfx/ui/border_hor_left.png
 create mode 100644 game/engines/default/data/gfx/ui/border_hor_middle.png
 create mode 100644 game/engines/default/data/gfx/ui/border_hor_right.png
 create mode 100644 game/engines/default/data/gfx/ui/border_vert_bottom.png
 create mode 100644 game/engines/default/data/gfx/ui/border_vert_middle.png
 create mode 100644 game/engines/default/data/gfx/ui/border_vert_top.png
 create mode 100644 game/engines/default/data/gfx/ui/button1.png
 create mode 100644 game/engines/default/data/gfx/ui/button2.png
 create mode 100644 game/engines/default/data/gfx/ui/button3.png
 create mode 100644 game/engines/default/data/gfx/ui/button4.png
 create mode 100644 game/engines/default/data/gfx/ui/button5.png
 create mode 100644 game/engines/default/data/gfx/ui/button6.png
 create mode 100644 game/engines/default/data/gfx/ui/button7.png
 create mode 100644 game/engines/default/data/gfx/ui/button8.png
 create mode 100644 game/engines/default/data/gfx/ui/button9.png
 create mode 100644 game/engines/default/data/gfx/ui/button_sel1.png
 create mode 100644 game/engines/default/data/gfx/ui/button_sel2.png
 create mode 100644 game/engines/default/data/gfx/ui/button_sel3.png
 create mode 100644 game/engines/default/data/gfx/ui/button_sel4.png
 create mode 100644 game/engines/default/data/gfx/ui/button_sel5.png
 create mode 100644 game/engines/default/data/gfx/ui/button_sel6.png
 create mode 100644 game/engines/default/data/gfx/ui/button_sel7.png
 create mode 100644 game/engines/default/data/gfx/ui/button_sel8.png
 create mode 100644 game/engines/default/data/gfx/ui/button_sel9.png
 create mode 100644 game/engines/default/data/gfx/ui/checkbox.png
 create mode 100644 game/engines/default/data/gfx/ui/dialogueV3_1.png
 create mode 100644 game/engines/default/data/gfx/ui/dialogueV3_2.png
 create mode 100644 game/engines/default/data/gfx/ui/dialogueV3_3.png
 create mode 100644 game/engines/default/data/gfx/ui/dialogueV3_4.png
 create mode 100644 game/engines/default/data/gfx/ui/dialogueV3_5.png
 create mode 100644 game/engines/default/data/gfx/ui/dialogueV3_6.png
 create mode 100644 game/engines/default/data/gfx/ui/dialogueV3_7.png
 create mode 100644 game/engines/default/data/gfx/ui/dialogueV3_8.png
 create mode 100644 game/engines/default/data/gfx/ui/dialogueV3_9.png
 create mode 100644 game/engines/default/data/gfx/ui/scrollbar_bottom.png
 create mode 100644 game/engines/default/data/gfx/ui/scrollbar_top.png
 create mode 100644 game/engines/default/data/gfx/ui/selector-sel1.png
 create mode 100644 game/engines/default/data/gfx/ui/selector-sel2.png
 create mode 100644 game/engines/default/data/gfx/ui/selector-sel3.png
 create mode 100644 game/engines/default/data/gfx/ui/selector-sel4.png
 create mode 100644 game/engines/default/data/gfx/ui/selector-sel5.png
 create mode 100644 game/engines/default/data/gfx/ui/selector-sel6.png
 create mode 100644 game/engines/default/data/gfx/ui/selector-sel7.png
 create mode 100644 game/engines/default/data/gfx/ui/selector-sel8.png
 create mode 100644 game/engines/default/data/gfx/ui/selector-sel9.png
 create mode 100644 game/engines/default/data/gfx/ui/selector1.png
 create mode 100644 game/engines/default/data/gfx/ui/selector2.png
 create mode 100644 game/engines/default/data/gfx/ui/selector3.png
 create mode 100644 game/engines/default/data/gfx/ui/selector4.png
 create mode 100644 game/engines/default/data/gfx/ui/selector5.png
 create mode 100644 game/engines/default/data/gfx/ui/selector6.png
 create mode 100644 game/engines/default/data/gfx/ui/selector7.png
 create mode 100644 game/engines/default/data/gfx/ui/selector8.png
 create mode 100644 game/engines/default/data/gfx/ui/selector9.png
 create mode 100644 game/engines/default/engine/ui/Slider.lua
 create mode 100644 game/modules/tome/data/gfx/ui/parchment1.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchment2.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchment3.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchment4.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchment5.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchment6.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchment7.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchment8.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchment9.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchmentblood1.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchmentblood2.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchmentblood3.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchmentblood4.png
 create mode 100644 game/modules/tome/data/gfx/ui/parchmentblood5.png
 create mode 100644 game/modules/tome/dialogs/LorePopup.lua

diff --git a/game/engines/default/data/gfx/border_1_sel.png b/game/engines/default/data/gfx/border_1_sel.png
deleted file mode 100644
index 99ced49ab8ad309a82057719a9135b4fd7e8df7e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 249
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|I14-?iy0WW
zg+Z8+Vb&Z8pdfpRr>`sfO>Svs2G(juA330qWQl7;iF1B#Zfaf$gL6@8Vo7R>LV0FM
zhJw4NZ$Nk>pEyuanx~6nh{WZoXAJoq3>aD;?tjF^m!MY2pc1y)A|hW|*6Jd&z}(pp
zvWu3Lt#JHvS$dz%!l_@Dm#(?(XDzlQwdM=|jHh*tHa+{YSF9Flcx)udv33c&#aiYL
n4W<L<FAKz9VtK&G<W<ek*&xZXU8HUz&_)JNS3j3^P6<r_&SguJ

diff --git a/game/engines/default/data/gfx/border_3_sel.png b/game/engines/default/data/gfx/border_3_sel.png
deleted file mode 100644
index 6872c673de9d862059813e92ad48447483d8dde9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 227
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|I14-?iy0WW
zg+Z8+Vb&Z8pdfpRr>`sfO>Su>Ytw`kKlcKKBuiW)N}Tg^b5rw57@Uhz6H8K46v{J8
zG8EiBeFMT9`NV;W0z6$DLnJOIznL%lYd$0Ii<6PYF*~c~Km0JUo5zQTh2bUFmnUlq
zwHrL+c2>#j9cx<0tXBEsglh*=%2fk~$uXPXF)(xYH1l0sV|@Sw7#RA5WKz;^&wLFu
Oo59o7&t;ucLK6Uq^GE~$

diff --git a/game/engines/default/data/gfx/border_7_sel.png b/game/engines/default/data/gfx/border_7_sel.png
deleted file mode 100644
index be00ddc55dc416018cea6f9cbd5bb2667d9976e5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 205
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|I14-?iy0WW
zg+Z8+Vb&Z8pdfpRr>`sfElz%3L(APwztw?4k|nMYCC>S|xv6<249-QVi6yBi3gww4
z84B*6z5(HleBwYwR-P`7ArhC9QyQA~TC4v_Kfok0QFVRH-u{&gv7bIn?AG9l*x(se
t-E~OR;Go0}l|Ye%$wvYjcm+Zj7#gNXcID4l;R`f{!PC{xWt~$(69Du7I<Wu%

diff --git a/game/engines/default/data/gfx/border_9_sel.png b/game/engines/default/data/gfx/border_9_sel.png
deleted file mode 100644
index e5c46af2864ab728971d972dcfb315d2e898e16f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 255
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|I14-?iy0WW
zg+Z8+Vb&Z8pdfpRr>`sfO>Svs2I)q=!djq^WQl7;iF1B#Zfaf$gL6@8Vo7R>LV0FM
zhJw4NZ$Nk>pEyuaj;D)bh{WaOJG+Yy)wAgwxVg8X5d;d8;_cd)WOH42D5c5eoojRN
zk25;3Vb2_v!>g~$OB^}EBDt^j_rU`xZ#7Rb9OeOn_WqcZ1R&T^^wo|T1cWzTG;lT0
kHV{$JKD3fSRv?6dp*2U|^{r8;70_M=Pgg&ebxsLQ0I2v(x&QzG

diff --git a/game/engines/default/data/gfx/ui/border_hor_left.png b/game/engines/default/data/gfx/ui/border_hor_left.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b3130eef84224d32ae885ca5c161255460c1808
GIT binary patch
literal 415
zcmeAS@N?(olHy`uVBq!ia0vp^0zfRm!3HEhFR0}KQk(@Ik;OoHD-dR6R+4K43bLd-
z`Z_W&Y@C<q<M<uOS4j2<@?~JC2Wn`|W?*FYWMF9MW?%@|%D~9>pMk;pE(3!MM^V0x
z0|Nu2sHcl#NX4x;Q+&M-I|#JR_cXg-!Y!)B^6KjBzrkPKqd!RS2Z;vVQDN(y-q{i~
zDQho>p3a+d?`#h5v9`WcD*K$L-}t!w1966B@f{ruivr@)^JlZYILg4$$kNg9pltKb
z{gLZWZpsmQuyQl2*a04oZROEv*Csu;yml+FVf{q$1EL#Po~<jg5jlE&sq+a%g-a*A
z6If#yraYC?;Amn<KC^_4(;)o$>3<h?b}hf#w``p|<2)xN1y&=5WS&Bq!0WvExxe>X
z3A9-BaUAA2|J}{?O#}Y|R;dGw>y?^{`*!8^vA_7;*s)~Rcdi|B9W&-ddAygZ<hNP1
zHpJGCE#$!Fcky3bn*w{;G%JpKReHTpeBeIc^Iu)?Um1q_sV>?%hYDW<1Czni)z4*}
HQ$iB}u)&%0

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/border_hor_middle.png b/game/engines/default/data/gfx/ui/border_hor_middle.png
new file mode 100644
index 0000000000000000000000000000000000000000..33f47205854ce4e15fa5c890e4c7d68792b732a4
GIT binary patch
literal 225
zcmeAS@N?(olHy`uVBq!ia0vp^96&6=!3HFc-`pbrq&N#aB8!3YRv^sCtR&Y86l6(v
z^mSxl*f=lI$MHLmuaN8!<jcTN&%?mbn$5t-?8(5;(9OUQu$6(4?LPy9^<4%A8IGcS
z9S5M=a8DP<kcwMLfByfsXSO?V#DRf_leLG3hsUNu^vrB?{(OfGe|~;$H!|N)^ZOg`
z{wDVC?;nSMc=xxO>+Xk#f7zQDO{Ld!0+p9@XzuVh!6kZ1sry@}m;plttK>Whf6<#j
PD;PXo{an^LB{Ts5>M24N

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/border_hor_right.png b/game/engines/default/data/gfx/ui/border_hor_right.png
new file mode 100644
index 0000000000000000000000000000000000000000..61f0794af30d93ee94a9b90d0ca90f6df142a9bb
GIT binary patch
literal 351
zcmeAS@N?(olHy`uVBq!ia0vp^96&6=!3HFc-`pbrq&N#aB8!3YRv^sCtR&Y86l6(v
z^mSxl*f=lI$MHLmuaN8!<jcTN&%?mbn$5t-?8(5;(9OUQu$6(4?LPy9^<4%A8IGcS
z9S5M=tDY{7Ar-f-Ogfl#*np?ap4a-6V#}Rt!Ji(q?z!C8>co9B^MYEm!s6M<?-xx?
zm3*Dq&e@XsU*3LFuBYb5=sShV|5z0q5=%GD(N&(XB=@$wzS8;PSG$h23WP0MwP@85
ziR-p2v|Ixp>{VadGJ9DjV@hP(cR4}E1G4<>tOfgT#>6t*+4)}FfrC+SVW!lnO-E|q
zKTMUWd}GD1YSkg$zZ+&Hy<oSS%X;J1PnJ0id^c`Z6&<+O!2N;8hH>%Rbaoqw4}5!O
uRcx#J_ey|w*Nh)*M{f6j{XYL&GQ<A4!O4zp(QQBvGI+ZBxvX<aXaWHKFobCU

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/border_vert_bottom.png b/game/engines/default/data/gfx/ui/border_vert_bottom.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a78bacf717e2c2214bd1313151c7bea3da516aa
GIT binary patch
literal 431
zcmV;g0Z{&lP)<h;3K|Lk000e1NJLTq000;O000mO1^@s63?#pm00009a7bBm000d-
z000d-0Rti)g#Z8m1ZP1_K>z@;o?%Qu_W%F@AY({UO#lFY3;+OyYXAWQNdN$VivR#n
zwEzJI{{R3x-2ea_2y$;MKmY&%B}qg<RCwC#)UiurK@bM;-^O<)iiChX5rUmyX`_W#
zq)u`FKU^6SiwK(Ni!X^G*=r_;&8Y#c&Vgli_WPJ`c4v1}&KabXj&O=|T!ufrzPkEV
zmM5Uw?YjASqby6%ZnyP%z2psR_+tBy1d5`N^Tv2QHk-{pSD+{gtya@wv2;5c84Ly=
z7Af8%BuT5)w7=if*lT#IDx={LbUK}#1Tr>QVTl^gDJ6AXTP&7;iPOo{!(;;b{r=kp
zzIq3TIK~++!XM)>xHaxE#P9I;Ip_MLJ6K2M74Bl~3C)-<@fcVY@p_jdT4Rofh$lF}
zkBC=+SHYR@DzL#zRK3D9k~d!A+y2ahyV<qLtElP)dq^?1cn*9W$@9CnaNFeXzvy4~
ZX8_1XYtcDK!BPMK002ovPDHLkV1kcsv5Noz

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/border_vert_middle.png b/game/engines/default/data/gfx/ui/border_vert_middle.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c6ece2a46ef2f2262bad44abc958a515b314705
GIT binary patch
literal 220
zcmeAS@N?(olHy`uVBq!ia0vp^5<tws!3HEBFSJhvQk(@Ik;OoHD-dR6R+4K43bLd-
z`Z_W&Y@C<q<M<uOS4j2<@?~JC=V4%I&1PU^_GDma=w@ID*vi1j_Md^l`Yr>53`bGE
zjss9_kf)1dNX4x;XBGJl8wfBQ-1*?t8zt{$PgV5_8sjJYuRpGOP%$*JP3KNTc4J4y
zf=8X#Z~l7s_rx8??6W_3W^#IIKAZFK(6jUJ4%+^>E6%|1|35Rs6g_rcn-Bd!7cek*
My85}Sb4q9e0L6(%W&i*H

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/border_vert_top.png b/game/engines/default/data/gfx/ui/border_vert_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..938dd5a32cb9d0f856cbdb0297e1b2b53cfc4084
GIT binary patch
literal 341
zcmeAS@N?(olHy`uVBq!ia0vp^5<tws!3HEBFSJhvQk(@Ik;OoHD-dR6R+4K43bLd-
z`Z_W&Y@C<q<M<uOS4j2<@?~JC=V4%I&1PU^_GDma=w@ID*vi1j_Md^l`Yr>53`bGE
zjssBbX-^l&kcwMdE*|td6d=;_@O{|&=}{V-+h$C-;XZ-=LFtEus)?P}kyBX8kNO(M
zN*tB=cU9$i%Ck8>7IXa+S|%ty;<FTbbh>J9ZJeH{YvPFvlS?MOSF=R_9C+)HzPGYd
zQtgEKdg;lVwnXSmN#zXk3i8^u?z8mahS~o<NlKkDw5^lb`?f6JyEIn1|9Dc*x%>ZB
z6~0bC|FMNV<2G|yQqQVYLdhad1)Mh>+V?ffT)y|`qfO53=D)w=u9u3>t`{%RvwA4k
iT0d#0Q8@n(8HTv+Dy{E2ntOoWV(@hJb6Mw<&;$Up7Jl#m

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button1.png b/game/engines/default/data/gfx/ui/button1.png
new file mode 100644
index 0000000000000000000000000000000000000000..00976452efe42bbe87f28e0607393b312c0a5479
GIT binary patch
literal 236
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP;HW@i(^Q|tttJ6Tn7|Hoab--Zr{JUf;Ii%SN^8k>=W;=JbI}tV_6G}T%jUM@wtb4
zkDqz5cXO8g**TNVbF&RL|8M4AxT=F=>$T?&p_)r46uY^+>o7c)&bi^Zgs0}ksOs86
a9tN2%bDfW+D{cX8WAJqKb6Mw<&;$Uss7rGI

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button2.png b/game/engines/default/data/gfx/ui/button2.png
new file mode 100644
index 0000000000000000000000000000000000000000..9cc7816a8b88d7ac1706b2f0286d8566ad75e135
GIT binary patch
literal 185
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_4eFi(^Q|t)!UEX=m%%Y#KTn85YDao^It9|De62;-gY(n8B)5s~&w-1FHT1pP8Xp
WnlpXog1fFjE`z75pUXO@geCy#WiQMC

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button3.png b/game/engines/default/data/gfx/ui/button3.png
new file mode 100644
index 0000000000000000000000000000000000000000..58c2f02f1337da0466a99fe396bf563dd8a590ec
GIT binary patch
literal 233
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP;I=Yi(^Q|ttGvuIS(j^upB?{xP@=`c8RqP7u5FH#PK<KI4QKB$&74^4fYDu>oI(>
zm)YR?kxvKf4_=STZ(XINWbu64g{a+}iY!51M<lj?m=lvdH`2wxGQIZiH@R%x;|x=u
V%g%~ocnoqTgQu&X%Q~loCIHJGM*{!=

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button4.png b/game/engines/default/data/gfx/ui/button4.png
new file mode 100644
index 0000000000000000000000000000000000000000..877a852cb1854e0ba60cdaa97fc3e53102a16de2
GIT binary patch
literal 201
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_4bEi(^Q|tu<#4axy6JIA1*C{9S%|bZOJFc`SmiEcZ3r`4{dM_naZAqNrq$o$TS1
omUOk?qu2x+_Ry~nla}){2rLw0NxAt?0%#P2r>mdKI;Vst0OpD`SpWb4

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button5.png b/game/engines/default/data/gfx/ui/button5.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f9caf1b4c781dfad789deff090344bae8b29076
GIT binary patch
literal 167
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3+|i(^Q|t)!UEX=m%%Y#KTn86@ODPGI=|pP50XlUcaLK>P@Z@9FC2vd$@?2>?RW
BBq#s?

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button6.png b/game/engines/default/data/gfx/ui/button6.png
new file mode 100644
index 0000000000000000000000000000000000000000..55e30a5b40567f8cfbf3873aaeefc996d5f9c33e
GIT binary patch
literal 184
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3S)i(^Q|t)!UEX=m%%R6e}8sNDAZ`+H*pAh4<XGo!JykwHQZ<R*sy|Ct&3qqzPj
S8-CCR@jYGrT-G@yGywq9Kra0N

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button7.png b/game/engines/default/data/gfx/ui/button7.png
new file mode 100644
index 0000000000000000000000000000000000000000..99f9414b1a423a7d37be1348335a25b11e6b104c
GIT binary patch
literal 290
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zQ0)v)7srr_TRDA(d94NltjF)UUT`@6SKrms+u5~o!=8%0nu}b11}&>ye9`;%w$|N?
zSM@yZm>HP;w7q7Y`ehTt^TvXW9R@tiN=+RLEYs&bPmC11R(kY|#?k<<g<IQJX)P5w
z(^GqY|7Od})yMA!3MwjfaJ>8d%!2RVq_aI83$A&+pF8DJ`-1nsAH9pY{`KR(@Qk$+
ggMO8>{E%XBI1=&w(Pg#SKsPdYy85}Sb4q9e03a%Cv;Y7A

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button8.png b/game/engines/default/data/gfx/ui/button8.png
new file mode 100644
index 0000000000000000000000000000000000000000..98eae90eee50109e3185550e75ba2ed62d7de4b6
GIT binary patch
literal 212
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_37zi(^Q|ttDqS@*XhYVLmurA>;qqJx$*y=q}^9bjx+0-2}5^0_{m_j|wvEu%5~3
zP#zrW@qWW>$w@b=KR@hXa1b(lZWCuQ{a<rB!#^2m8GY9-pv?>np00i_>zopr0Epi`
AfdBvi

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button9.png b/game/engines/default/data/gfx/ui/button9.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a94b8dd11d27a043f83884da189adc940fb441d
GIT binary patch
literal 224
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP;Ho}i(^Q|ttGu1c@HS?u;@?xKEGWzBjUij2@95QNLi(zsuH?x@AbbEi}~UT%0om8
zzx(zXzSuiC=+U1^OGToxIUHQpyiv_w%h0jv9#`5nl@0MWKka8QGh9tDIp!zz!wYBw
NgQu&X%Q~loCIHPzL_Poj

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button_sel1.png b/game/engines/default/data/gfx/ui/button_sel1.png
new file mode 100644
index 0000000000000000000000000000000000000000..84024fd45c6d2d7dd45741ce848acb69caa14d27
GIT binary patch
literal 256
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP;Hr~i(^Q|t(LBXTulxluIG!N8UH!I?_}=on6Hd^QM^HdJ$fw{R;VbgeSRvy?ZcXL
zPvvedk)OI<;n*U>3U-b9MS)*#U%t!PvCO$t^~cx51oxF!FFaAbeyG)PE!+E|RgdRg
ve`~~ltNnrhY4rx%l<0H2ThgO99x-4@Niddq85VR4=mG{$S3j3^P6<r_Bh*;)

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button_sel2.png b/game/engines/default/data/gfx/ui/button_sel2.png
new file mode 100644
index 0000000000000000000000000000000000000000..80490c979142f9be9b4c33d64db8c859edff00e5
GIT binary patch
literal 185
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_4eFi(^Q|t)!l)fB)^7<qjNiU<g>(@bu);yFWy2_U~*r(w3+UdHbPC7^wFDe`bcF
WY|h+stMjJ<xeT7JelF{r5}E)-1u?7u

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button_sel3.png b/game/engines/default/data/gfx/ui/button_sel3.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b36e22ca5c0db56a4aa8044451d30337177f2e6
GIT binary patch
literal 252
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP;HT?i(^Q|t)!l)fB)^7g(`l(kUBhFeYvCr5Zv3d<LH4S4h#Y78lIk9dRK$#|NsB#
zKmPU3Y@GaB-{s)v+0_9e2Ae+{Z1^jf^5dKWLtsPRll$}ICF(XB8yM6iCH(mQou65`
of7RXkoU-CgK(UPmh74>Bm3tKHLh|xWfwnVvy85}Sb4q9e0Ee7YR{#J2

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button_sel4.png b/game/engines/default/data/gfx/ui/button_sel4.png
new file mode 100644
index 0000000000000000000000000000000000000000..3748d5f7458f207b3b7200d1fe853907f9691d65
GIT binary patch
literal 223
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP;IEEi(^Q|t(N|cybT5d%;y8SqNKu7&8H<Wmn~pg)UurEV~55%o!=^_rIx4Ma=q^U
ziQzPlME{}OPi)6ud9&|{VKtZ_<<QZfbs+LzdQ8ev!;iHL1-uMZ93ro0z1#W#XaR$#
LtDnm{r-UW|Tf#tL

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button_sel5.png b/game/engines/default/data/gfx/ui/button_sel5.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a03675556a4645a9c1733a02fb967556e09bb4b
GIT binary patch
literal 167
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3+|i(^Q|t)!l)fB)^7<qjNiVBq0r1xhgd|If@IeukOfcB<tZ5Z}|)&t;ucLK6U3
CxFqBN

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button_sel6.png b/game/engines/default/data/gfx/ui/button_sel6.png
new file mode 100644
index 0000000000000000000000000000000000000000..1fc0d7f740b4bca7e915d05f77d7e8892b4cf3a7
GIT binary patch
literal 184
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3S)i(^Q|t)!l)fB)^7g(`l(kUBhFeYvCr5Zv3d<LH4S4h%f}tU#3v|Nk>HOflzX
T{XcV_DTwds>gTe~DWM4fq0%kD

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button_sel7.png b/game/engines/default/data/gfx/ui/button_sel7.png
new file mode 100644
index 0000000000000000000000000000000000000000..3cb79bd2878b4babe1ac41fc66d0ed68744be32a
GIT binary patch
literal 308
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zQ0*#D7srr_TPf$P`I;Og7#{viRJCd1_t7yaE1P#mdPW6v@=I171F=PnEUaab+Q~if
zwntCAn{hMz@uIyQ1#2pvvE98=W6^%4{bk2Zuf_<ri3)KI69w+NuE>*{q`Kit;$8tc
z4oSZ6OmV6!5>j@?wi>m)70zMcy5O7<8!(Ug+Ltd&539EQW!q3Azv|YatpOP?bUHpb
who)z++b%z{)aU2ol5B(43BM0Kv9I7~*iq$J)VOs?4basLp00i_>zopr0Iqv!!vFvP

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button_sel8.png b/game/engines/default/data/gfx/ui/button_sel8.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f127091610d7de9fb7d5beedc3c660456cc0e8b
GIT binary patch
literal 223
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP;IEEi(^Q|tu=jyLJkfBEY;`5+K<TB+*d!b*JatOz5{PLpGd#lu{u5F=J~GXIL!xK
z3_?;{dKn@NPZc}=Jv8gNAj>0`SbnDimmKU4@RZ!W!}^DLKgWB9sh7lLYl7bF2U@`3
M>FVdQ&MBb@07Mr<VE_OC

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/button_sel9.png b/game/engines/default/data/gfx/ui/button_sel9.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a37a9c601008a1050b148cbc71cf16c19c3ea56
GIT binary patch
literal 247
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP;IWKi(^Q|t)!UZZ<p)YbRJxmH*2%~enT>1Uw!JK2{oUm&V2YOysS;SI^Dn^ar%>l
zilUzehp+ed0~Kf$82|Zw_`rw%_RNRR_w(?C#~C}Q+`pTg00NdJB3E0s_pdvsDk&jh
hu-1WniZ%le!v;Q`!^U;VGk_K|c)I$ztaD0e0sv-$PLBWp

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/checkbox-ok.png b/game/engines/default/data/gfx/ui/checkbox-ok.png
index ea6255e2c2162c871542fd003bc928c6c992f0e2..cbde8abc763eb2af5b90ac7a2921257359cba6b4 100644
GIT binary patch
literal 1280
zcmV+b1^@bqP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000d-
z000d-0Rti)g#Z8m1ZP1_K>z@;o?%Qu_W%F@AY({UO#lFY3;+OyYXAWQNdN$VivR#n
zwEzJI{{R3x-2ea_2y$;MKmY&)c1c7*RCwC#mRoF8RTPH5bIzPI*S0g$%fNJ+R!d6}
zYokUm5u@UTh-g5(ga=U`OhAJ|44R-(fi#8~2?kL>A54@WNF^e{fQ?XE6iCCJhPF^F
zl+rt$na)gS=A5&A&?ea6&=v|W{LgD=efhKY`j;exU_hBZh0&A{NYOr15(cttktByx
zO3K^}35dsVC>CXgJ4c)Azf)_>@XB^1u-t_9k^}`AW0cv&rRwu{++};fm7Z?dvZf^n
zLK|%Wt3cY9U7%Lw6{+{VxHx@sB&f?f*LR!Agjoh8M-yO-qEMArqSZb8l6~={$KCQ@
zr@Q6NpT=mZ*B1aM0Y+;E##=PGspLUNV)At7bC1o;Ryx`)%bQk4X{p!W0X7U2j)nu1
zESh|<u+*M-;uUQ|UV%sMZ13j#Wf58%jTOMED~oTm1J9_Md@#4b#kl+Jnm^a0<WI1$
z`&*rJC-hH%4+lTEkq$g$wJAFSg=zSURi2(}$6plX&+UTWe+U75aJ5G_3Lr~Xq?)n$
zPSU*^xkca(=+y3svSDc-!elC74hKL26u|grjii)IR;13HTnFxK8+T7pm^I%kbRyD`
zT@t}g^CMu-|2@9i47enTkSa+l6oYpSLwHg&S0stBH^+uA&w<SWv))c4Awr_zaDvK>
zA%K;s=m$ICdiK?^;i9rMVhORZp*D2(#2>-3o=dS+?QLeQCr3e+{sXUPWLohTxUgsv
zZ+)#nztw0w9MUU34_cE6@iGuk1u)nF@7|xg*t@+4hbB80l^5Q#@5t0S<H|C(WsOy5
zr<vHVsD0g)p%N%eLs2E>yst9NR$v}G&=GHM)|KNmF@TC|4bNZ)E`)oN)E&A^urtZw
z>L3LZt?b`5E%4fVd$;c1+yOD;GhnBx$?F1zX{ega#79i#l@_wIyG3+dG{lY#A;mP9
z@$U?!4vMS9u>{PpsPcAyzKcMSm3yb!c=XA9Y#Antrk~_oeTe+=8Mw2oczp2VS|`mU
z%{A*omoJ`?l;6G!ej@}+hLlt(?tv+aB3EYz>}2}vxZD;Nemo9$rjzm|Rm6JIktEo-
zH5(sUV)gFR$;!>4$cdVMS6{Cv0h)#akZKdw7>4O=KOdp>T$sMzB&(M;a_B%aZ!9Yz
z-J_BnQ1Nk`3p8?cUw`~klP>ytMfp&h4`mTWg+T4?iYKjh3%-DZ+Nv%zo0kR4^LWa?
zAAn!0oynus-I3M?-6LSRG>i>4lq}GNz}IytMkJi1wL#{mFMFx4>jvhr<IH4p%NG~J
zp)RA%Foa*a_TpkBVbq}~%@<ml`iMt$gb9_KLR2&yqw<%QXxsT@e>^IRky8Kp>j40$
z=#S`co;?*L7SV}E;nbn9d2m-KZqZ~l5jX5W|FG}15nRRdHLLPfahV6zCYf%3U!uAq
zrs_!wf#%@?j3f=$CE|wn!r5?nx<`}iYWr<^lC>jgK2iq;G*hw2+YH?-9k}mqHUNMZ
q=((<&{YrpaA(>mO+W@x#{vH5QFUA;O?hw5I0000<MNUMnLSTY4t59G7

literal 566
zcmV-60?GY}P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipN3
z5fB8?d^b7(0013nR9JLFZ*6U5Zgc<u0000(a%Ew3Wn>_CX>@2HM@dakWG-a~0004v
zNkl<ZNXPA!&ntvM7{@=0TohX_#9>OxL2hnJiuUHh#lc=QaWS0y2Z{?dM^jRM<wOz}
z?Sadlq#RJn6k(4@%3-<8*7SP!$GiKMi|6#r^UOTo`99A)&%nO`%F4!KzPcEK_W*aw
z%JDFNqQ>AUU=L^kK7j!(%tb5=l$G<qu?r562RdV6psXAMGM?!H7}dgD2KP2pNnkdx
z?$^TPVyS_$vKzSZ(%Ywnxr+3Pl$A+kWml0i3*NbtQo(<vNLiT%7J&|z<Kck69Y}ko
zrE-je49;Ef1Td(qYz_G5fI?GcwJ>Lq0JJdoK-Ob7=H0#-nD(|WS5mXE8ti!bq^HjS
zNvB@}hm`;%LJHglJOcHuc?6IHEYR+@O=)4)t74#qc>zv6|Ab>w2>t|YRr;)pHQF|i
z^3vpAWK|3ERV%;&@BuUdy`KFQSc}q_p^c`6d3PW|F<O|nngN__gxFT1j+RmYnZSBq
z3-cTsfEFh2#=^HV?N&2(OMW<7m`z{=xCM^><WnyvKNVnPGA4%+iU0rr07*qoM6N<$
Eg3{jVI{*Lx

diff --git a/game/engines/default/data/gfx/ui/checkbox.png b/game/engines/default/data/gfx/ui/checkbox.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb2c7e9ac0241190ab313510aa48cc90e8abc7eb
GIT binary patch
literal 1101
zcmV-T1hV^yP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01Y|-01Y|;10o)U00007bV*G`2ipP}
z7CQ*ZKDF@x00YfQL_t(o!|j*NZX8t*g}=J@cF%Y`HfDh!j_v$OF@yzq9VEnSpe({`
zus{eQ9tH`-A_6-J3qUL&D2`(mo}cbpRV;3M2pM~f?2)|TN;8XAtL~|)Q>RXgyK|K%
zaK-1!0i@F&ZtmRi_wU_fbuhr(5Fn<Cs;&qUQB&L<Q^QO#%cv?MLW~tvU4uJjj=Rz8
z)x5X6%cl<?$hj5RxpmhCI6ORL(llgMrcJ|i+AumEb38g`G9EJ?jTuiyjK?D;;|Xok
zVg^myFrADs%QS6+s*+-2xIW~|ufComoV-fHog25^351v!uD`+BaFrJ?4jGM(2_b@j
zh;-R?*{cH3>kkMqqM9+ytgNikG!16PySsO}fByq+-q>MnZOF$TeJH25zzhii+;KCW
z{qYRd7IDRLMkG++I_?f`q!36cQB{eY%e&&nbbNf0AwNBR%Erb9{az2%e0B>Q$1Kxo
z=Ju_dtgR0*Gu#w+!!+ZTF;!f(a3dyCRiU}XRl%&Q(8;?kIZyd<Z=al7%<OCux;qZ2
zX12Gk@y^?C@x|w#U5e$`uW#dKynK1k5!Mz@fgm`}V6ejGwaulCTiX;ux}O8U-M}G8
zD1^K0aR)E05)tZN|7;Ej<-!;v5+kXqmy*4R5L2S6d#nz63pjuiVj{!}5h28Q`O8B<
zB!EO>OiUYHPyvzd7YY|%Bg};WAmv{KGbQJIb_E2%-O;u|bDo>o3sC^aO=(+2bH>!p
zUq+5&u4rzT!T|@ew&b?KY(WK1q&9S9v?aAby7rnWnsw0_N++`&kg%+6?OnV`s;UJ5
zyj<=lI<N!)-o=bDotn_R6bq!PMq-@l!evPqVgyOhwc&h6B+?;YmR~FvpB8V9gaEm1
zaWnKav==>P36&+M`d=#0ZT%q2wTvOexu&MmbXyQoObk{BOOWD-yE7OJh%wH|`<xQe
z$uI&<oB8CyLmoeQLW~t5$jmVn!>MJ(c6w2kmlI>8N|A5A{T^)_L^IplTX<K6bJlSQ
z@aTuf92_3;*U=Geo5|V!?Frp*vzb`cb)S6VlBZMpy*@izTm1aXuf(cHuRq}V!69#M
zY@B1u-N20fy*>8#_i?<C(tS3^WkL#o5F&M5(O+GsnNCq{(VS<QN=K=K=LbwD;}ZWY
zR}8SVwc{X2OtZ^Mmc>|fVu`yWL8$9Kb-#~hLp9^3vyqb!a5LP6Sk<hp4cUA2oh$^<
z`8an#B;q&%q*Rp*UfJ^@1X5KKBy?NP3ShT?X5J|y4gC50Z?f>a;Qx=)t2loHic(Oo
TnR8+F00000NkvXXu0mjfp=$IJ

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/dialogueV3_1.png b/game/engines/default/data/gfx/ui/dialogueV3_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc1304bdf94ef1611a34e595bc445edcb348e63f
GIT binary patch
literal 3494
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
Up?aR_W&i*H07*qoM6N<$f?d~c7XSbN

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/dialogueV3_2.png b/game/engines/default/data/gfx/ui/dialogueV3_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9304fd19f9cd9e7addb555238ab01f865e20917
GIT binary patch
literal 3828
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

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/dialogueV3_3.png b/game/engines/default/data/gfx/ui/dialogueV3_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..59a35dd49c4c4c19ed7488842de7208c747d3240
GIT binary patch
literal 3747
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
N002ovPDHLkV1oF$3W5Lt

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/dialogueV3_4.png b/game/engines/default/data/gfx/ui/dialogueV3_4.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd251293fde8f59873fba81b97e5e6721536afd8
GIT binary patch
literal 4106
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
IM6N<$f<f8Ca{vGU

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/dialogueV3_5.png b/game/engines/default/data/gfx/ui/dialogueV3_5.png
new file mode 100644
index 0000000000000000000000000000000000000000..20ffaf2e23686b80a8a7da2759b7858e83f0f9d9
GIT binary patch
literal 4362
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
Eg7vX)t^fc4

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/dialogueV3_6.png b/game/engines/default/data/gfx/ui/dialogueV3_6.png
new file mode 100644
index 0000000000000000000000000000000000000000..f1c5f5eb73fc598cb5f29215fcf0759335ef69b3
GIT binary patch
literal 4153
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
D^VsCZ

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/dialogueV3_7.png b/game/engines/default/data/gfx/ui/dialogueV3_7.png
new file mode 100644
index 0000000000000000000000000000000000000000..b05f385bee8b43a2b4c6015e72298a20b9d4c444
GIT binary patch
literal 3714
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

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/dialogueV3_8.png b/game/engines/default/data/gfx/ui/dialogueV3_8.png
new file mode 100644
index 0000000000000000000000000000000000000000..7db710a7158edc54385476e9ac31d784d4715d53
GIT binary patch
literal 3769
zcmV;q4o2~bP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00009a7bBm000d-
z000d-0Rti)g#Z8m1ZP1_K>z@;o?%Qu_W%F@AY({UO#lFY3;+OyYXAWQNdN$VivR#n
zwEzJI{{R3x-2ea_2y$;MKmY&^FG)l}RCwC#TFs87HxWHm_U)dY44|NdQAP?92#GC^
z!V9oLEJ0$)Gw^yWV2#+IO#Yck`d+(=h3k~dokvJ_6y3Q$-)Fmg>eM;qPuv|p=0C-c
z{O>sc&jEN2z;ghe1MnPx=Kwqh;5h)#0eB9;a{!(L@MHYzfBwr~U8Di-aM+59Hn=$e
zhr`j@CBApK18|3^z}>#Ny8ZLb>yQ8Vuh0JR-Rt{b{oNjKzZXb1ceu}WEdY0mS3m^o
z{vuEjINZ&~J3+gt`nT@-)_wd$+ug4LG+ytv#uW(6W-dZh*JtiIxAQjwz@ge;W^fpq
z_7#BJbpRMJv-qvR{Sg4rw87kA_K4OLW(L&-8k+`f`V$fP^gsXp><=H_{o+sWzWn+l
z)rM&k0)eXHidzQF+}GkAXiYJvp*4j&#LQl`rVz-74*#W_!~6<Wh5H(JPRsWKfx~0U
z0c37W1PZ`fumdV<KAfB55duM95h-1v(jl4=L6LQ%77<ich$_rX1bEZB{Oxu%cwD2g
zBM#5N3Ix4z2OI*)am*qR=5UGeIFEQ0EVPKM%q5~Y)|hjl$yT5{6k|?^AUAE=OayXa
zy?&{>cX>g`DoisVgj$Q;HnV)6QIG!;F=jc*iY6{zAee3tIAU11BhxMy1I>9XG+>YO
zWb?RC_l*L`3J}NcoE%}~zVdSh?BMI)+=YalO2UbgS$V(U2@!~I<Pb>?he8($WWjgN
zb^qR4?7U@gd7X$tWG##VJdjzoR$`6}5Cg&a3nVwZfByLw(58S0EOXN1Vuy%ej0w0y
zo5IYYy7Fm^2~|0+O~}X23y`_K79;0%W1{tjIo4wPrNhi%Gtk#`-D6DjOUJm41>L?D
zt+J8Idzsl9-yLQPt=ii$AGo9ShW^>xFOJ2o%@d5<Snq*#(`hT(eN_ksiD+>5W0H#}
zR$wxq0o7Gu5EZ6j+y?rkW6q5zhc7adjW7V~H_7sr_vJlXYcMy!0e45gboj~>cvLbK
z#hj5wjF`5at8+|9L?4+)o{L`>#sZ@}!B^nsm>H0$6l=l@{}7RNovlgQw6*Kg&|2Gs
z>}xR^h@5i*g1rF|JTp586(qg*Edo7r&STTKv7L+MPGTT;kFcC$<__nMh+^CZT5B03
z4JKzP(x&Sk5)*5C_lY*{YHMp@D*A(9x84$!oEsP2FMT6LcB-i8+I1`xa1%jZijD98
zef#z(M}jCdky`>ubj)CJDN*!kczU$L8eGxh%u4`n2J^Lpgndm9UN6Bd3$_bE5S*pV
z0jPuq*z>Y!ne)(uaTW?*-(gz?Fs|-MqBApi5fc)8L1ClZiwK&VAA-rT;H#>c5>e=3
z({fBvUFp#zC-2x$clR|0`NOI2_Gg%u0owWxkXWP0xl!&w|KyX`QHx^`!ZUVoF)R{t
ztNcj0$=Wd$%@LVCBv;Q0!qN&%v&`J3@@A4)!nLFogD4`Hb0%-p01-VTUZzU&#aweI
z8Nz`sv1@2+;beHSEpv`sz)6u+nI0=R%RgWO+7))QWw(Ot+#N0v5LwZZrtoQpgtd52
zLT02GK%z-h0K?*<-qw5Hgq<m5F>b9EQF{A~+6f@b5!sT_nzu!MSs4Of{47hPDgePW
z$N%2H!x#gA;O_no_m@i&k4;+$5P@B9_~x5$@$%(Myn6L=FGgbbWKTFbCaR4M%lAZU
zzjQPS0@d{$tAauSMIs6S<Tt<loi9~Jcnyez;dt^&<FOz+vKpKWC}<K&5F{qY^)>=A
z)DZ?1g}E*FS!8VHZl;umob@cH7V~17S*k|eRZW&76i9fNx!rE4*6t;jc>|A0nazyg
z5?c~X>S(RQLxIt)c`(a#2aGETiyBf^g51a%5;>xw9RP`7%a-WIN+VeTRCLWXstY%Q
z!D0!dEa$z<Cd_68Q_&^NjYfoaR1KGYNf9H<Hl&xo-fmHq)*#E@qbN$r#d9kqYJ8R}
z^Ae-zKLpZ%2y*cubytI>Bd;yzHs@H^!7`vyD!@ux23^q!e^tTHe){wLLR3RR4G096
zy9-nVkJl?&>$raNB@~KFZ)lBy0(!eZo2LK%>Z>oKtSWlH95tB4`u%nF8+z~IL^T7@
zn&NVINkc_+_SWD4#<=DEsVnA~nd@JF{S|Iw?go!9w3$uJY3QH6d9(6R6x!O#?NCc{
z>1gd``si^RVK4?>fAkR^9v<KhynFv1*Xs>0?(Xp7;l)aWke;tTc!k>-%jP<8e}9LE
z7x%ba?$BDp-Q|MTJK#$r*fhL*_a53BE|-oumk!aUxISJn#!`cqP<NLouS;4Rngad4
zCwIKK|2P$3Rh_F*;^<ubDnD~Co*k4)Umy_gxVyiD1gys#@aed;j`kvUV2rI51bBG3
z#|P~J^JazA1dos3qxX*Y@7^Vmu>!d{?D~lBzuQ%Zl}2RwkLCCzs|LLASc_V3Gvzz)
zudYWBw2Bqc?e`&zX{$k6_1^)Spy^?DR*Or+=uph?RUqh>^>6J87?L+c_LyA2QlG1C
zXB`hsPq|!$6ZHu@P^l+E;L(tc+t`kgnu5XrMU~M^Xp|HYNt;>U6H;!T0;<|qo599q
z3<{f7x^`QO3p+GO7%DnE%Hh^p+UV2;;VEdV88{lGtP;CBvc`I<>~f-W9u|`W6D@Ph
z?b&13sr$_>?^Oj1iHhmPh0^2@adm8_AO+Vd9!s8A(bg}0NpSWHVhmo(Ad1T2CiT$H
zp|GgC=bXD+91!K=32h=_JCiU~F%Z9-V`ko_3X6#{?^|oxGhpr$JvNKM3e`t*#ohza
zR^|I)%R}wfhD@)}tx%;st@&8FA{Pz-bNhQrP@fJwabN5#@qVImz?*#sZUo`X;A>kw
zh}8VyD~Lp*&1Q72u$5!V>oU*Q+cHDEA!_q5j7#Pob~nb{j#d|noz9L-ust0Z&!9+V
z%wOhdI!o@pZ}Y{^(*VU>#%-jl%dQjiJDMwpgN;;XfW~b=30=0Rm^a!q*|IWpwVe_Y
zQ$-VMgj;1@4mxg2RLwb$j*t1dFxKeW<w;u|<eW%gfUr}m-ZwX@6}uj!*;-pwfTTha
z%0bPK-XQb1HapUWM%0;uth?F&D?K`dYbHdq4aSld-&M1fY3ggfY@v}?YW3mxt+kvV
z`<4uDR-DZ7fDGSPXwNYZ_D=6!Pj{vrlQFZDr95b1#mRd+vTEc4+Ue$KyV)+MP3G=1
z-B7eX|Hf@BqKtL%Uahad#9Z`fZ*ynmN&o0+rC=v{j+x(4ktG@W<_+dGp<BDO$;!dz
z>ETOn@8}j`R}G@Do-}c8T;$UxD+zZ6CzKd-mR(je3$L!b_wJ=NmG%_}L6Z0~uqEfX
z1Bs|mo<{|ev+Y(%c+Pp89aJSq;gyP(*H8-AZZxZc%1VLO+Hq4+2}h@?ySWfX`w&TK
zQ!NivIFaMGzPm_SZOl`uX3Hx0hTPJ6OXAE!oZ6<7jg&(!hkW0MAezWy%4)*FthBzj
zaA33uDK3JGR$1sE;~(5nYB<T(u@{`diJl=PE?ZcY)sxwyr=N<jl+r4yQocu<EG2P~
z)Bx7$aP9k31LP4C*_}Ba8oKG$1gZ*y9eO_ffbGsL(}%fTd4^WF3Ypv`RVXx1k!HA7
z5n1L68!>c?wQLU?2g#1xSp5Y7lmpKZy|aL_l}-#xhfO>5I2B<<1i7NZGJhW>l?yxS
zb2($Iq?^vIbf0VYiI65@s2B1?NhMQ<_uy%kO+!B{BG37-jSs~U$*Ml^kiI%dk1{up
zq6+JZ2n?2Lu1VYHgSPwi)jZ{SfaniMO=Wj@DaOzXvIzOMOMB}rbp))q!J3bpKouTO
zWiEG$mh|9+Xr+zYNG*^Rh4nZV&E2O?KX`+jVa4MYsmsqeZz7C~OhFdqk|i`Pc<2#I
zx-46HR6S-!kkHKr1|1d;H6uN;d!%~oWY%EegA{h!+qjk_%g=cqa>>z)C~1>N>gLCS
zx!7?VhuC7Oi>&VB50AtsW21hPR9KesSju(|9w*GQZ73ycR*-UBRmqEKlP5Y+ewi}-
zpLw4mhzd2@dPGo`&9;MBs}y;tQ;^i7uj6F5p11~ldDKm!qB`Sse0)Zs=`;!1e(8tR
zPLh2x9_6l^XWx&?an1?XecnecLj<z)vFxS!DlIo|RyQ+<@5TgkxUy!dG@b{_PK%tp
zpXd11_~b!I+w5+`&f~Urc7iJ5l3?la>s+2n;XK<c1jtQb8BPSdFCkRV`f7B>ZDfat
zyH1su{r6B`^?Z>*WQyeOP+>-EtTr=h<)Lv=(L_RaeoAMU_LdGZeL!#rOM6w1Rheqj
zl>)WHn`ijI@thBlP|F@P9zVgFfHuusuFoGP^h+<Hp3s`C@vGrUKJmib^&GN%UK=C~
zHoH_rpTUl&SBSD+A2g~mx1Qw_8L9FFuwh#S`7TY#5s^a1BPy#$Q(Hq+i_OvrK`PCB
zxWWu*r~S>|q{{iq@*VSFWkcKEA=_?*RW=fBx0AAs6n%X3(t?gwnz&@}syRB!r0r)5
zvj-WHoA+T4@OX%!2qVQNGX{$YAu8P*rW?WaDYq0%QO=2;ULSiq`goAzhYUpO_JRm9
zY?agXK-1#kNgH-NISRuTF1}UYvFo-atvu<nrY?DM9+AEPTU}-+TFz3gwV}w8lTFdG
z1AJJjO5WN&hi@{hnt=DKoKkf<eaO=sXDK5(YK!hTb10sJ>6i~&l}CN@m_ME)N>V0s
zl3gh<5-wp_s-?}vh#b!s(O0A!^DVQPYSn({lN&5eA)WKUq&zQ3<Hg`JwQ4^h4H0%~
jQEof71*Y|e1OFcYZrTc@h7|9M00000NkvXXu0mjf$@3uK

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/dialogueV3_9.png b/game/engines/default/data/gfx/ui/dialogueV3_9.png
new file mode 100644
index 0000000000000000000000000000000000000000..0edb8bda24dae50cde401536b02bf30da4df21d4
GIT binary patch
literal 3371
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
BNkISr

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/minus.png b/game/engines/default/data/gfx/ui/minus.png
index 4f6d721d5467bf90eccfa8096af6b25b83a003ec..f7f8bacf5a1b98a6c28f44494eb92e72b7f30a1c 100644
GIT binary patch
delta 358
zcmV-s0h#{o0)YdNB!3BTNLh0L01Y|-01Y|;10o)U00004XF*Lt006O`VN5~y0000W
zV@Og>004gs004z+009F@004lC002<6009R7002AP000~aa&Ig^0002@Nkl<Zc-rif
zJxT*n6otS0ekO4yMn*(O&`N|rzzw9*6}SgikR8~$1^3_zY=7K<T@(ziL2Qhf%+Gt*
z!af;DVdLq~xtH^CL{-^FhAs8?0U|K7hLJ+|HWZv7EoLsm)YeyH<ByA+fa~NIRg&VI
z=a<jM?F|xtd695)eM&#g&=}X-W58wu%w)>l?SpqQDvz&y&JN!=$s={U;eJrEgM#s7
z!S~k(&Iniot6!>OSq7T*4-i|hs|AD-;~dT!7^cG0dycotrXpj6o^8pF?y*ad-5pmK
z``%ZL(2au72BpYKYFr~C%s@uJa5_^2RRQMmzXg5<06<b!{t&nDQ2+n{07*qoM6N<$
Ef_b@=lmGw#

delta 338
zcmZo<e#<mLrJk`k$lZxy-8q?;3=9lxN#5=*4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfn
zjs#GUy~NYkmHieMlehxgFSo*lKq1-8kcblJ{M_8syb>Unfx)>bHL)Z$MWH;iBtya7
z(>EYRFO?lAe#FzoF~s8Z(#f`5ha3dl>f^)m6>iL8t`L1ZC26{qX3-RpW!r>LABj<A
zH(2{X&}DY#8t)V5e<dWar|tV&Hj^{p)TTQOGmi;aPU!aF7RdO_x5KdC!{wDj{=UcV
z8C5#VU#-y(T5eX%8ni%S$HoGezGcf3dRCXlN%xoAzfH+h|NU0-fvu82i0>cY820X+
zWp&;%K=!M&WG%b;4N^iLY8*0aJ|BLOQ$EMdMQH8I9e?ak?FyafUaX?DmQi4$6vy1>
eJZp<r*w!!{Z`0+toqcQ($g7^NelF{r5}E*kkAJ8D

diff --git a/game/engines/default/data/gfx/ui/plus.png b/game/engines/default/data/gfx/ui/plus.png
index 8e700c6fa51c5a9fc175a4504223ed343260524e..96659f95d199c1f9b09ec2ef3a5019a2b216e745 100644
GIT binary patch
delta 779
zcmV+m1N8j&0-^?xB!3BTNLh0L01Y|-01Y|;10o)U00004XF*Lt006O`VN5~y0000W
zV@Og>004gs004z+009F@004lC002<6009R7002AP000~aa&Ig^0007*Nkl<Zc-m}}
zJ7`pS6vlt&|G#&f$(@XuBqp;m8X?A@S;0csEMjA2p%AgN5`WjuDrjM8XD8TcXJ@gj
z?3Na~g2=9DK-?^2%=p-7VjN61lX>2`|A$3<I|oj4`1sD_`;O2hl#<d!QN{}cX%Pv1
zIIvYp&(;>2wdRP@3cTk{rHc2Spc_FtrFTtDX5`GV?F{eODNLT`{PeZr+-#XBn`UPA
z6-#f|Hkx%K(0>YM{>yOZ?`OPxUIyB<>Q$e_9sYV)=1F<!6SnIF0v-`Moi<5a2Ok5T
zM{`RoR;piN17II82G|cZ*D+qK6%bIOK+>#M6IrZOr@ok41M@+yN8dd(p`yZY9xEYu
z$J*-uqC-O_0B;Qtapc&fO2;p5h)ocIRAGz<|Ex4*+ka5TpF5i3m#Lj(q6p_b&!5gS
zQ+mhNK0~fIVsvtf?DitOevDmTMfc`V2d24r;a39ZJU3_4j1HA3<{gOzC6@6Y3>_mh
zTMhobb)8VBKnvD5vRevF9H`T%y(3VvarJf_(`;E12Z)f;f(VEg9FEwvaR!Wmpj`*s
zLInYVR)3J|5pF-t6KW4YoCxW_aQMd>gE@sw9COP7kC!7_9U-j^(eM>?6Qnm2)C&D!
z6eofQoQIxGN=AmWocy`M{yqH^$A04MrF;BwKlWjuFxF9sTEv8npw==6Ym4S98M7Jv
z+pc1y@D82nB|3D1#?^{jUVU)<ql|A>(2&drz<;9;`S}+_Jb)H9c2p?_@_oKIwE6ef
z-x#T@l>tGZnP}?G4wyPhDfaCyGP-T>J12IHC<T9(`+2yq#wjji)}16tlf7eoSlj01
zQvIXtyFHVXw)BPL&Wjj}&!u9ConDBI8W8~z#Y(k<_n!9y0MsBAhD)<2F#rGn07*qo
JL<FuvV1hq`UF84(

delta 348
zcmZ3)_MK^hN<Cw7kh>GZx^prw85kJYlDyqr82*Fcg1yTp14TFsJR*x37`TN&n2}-D
z90{Nxdx@v7EBh@jCUFG~wFxzOKq1-8kcblJ{M_8syb>Unfx)>bHL)Z$MWH;iBtya7
z(>EYRFO?lAe$LayF~s8Z(qKcrrU0JW`oAC9)YcU-tWzp6$vb0IAi_4|W{>iTP>Y5&
zD)Stt*9A+f{;2ev{QuYG>(`g4a@^W>msvyQSpbv9%t{u9NspKtr2jb|I%Dhk-1?Bf
zPW@@cg>IR50;J5J?EI4{5~jc&p#5*khZVgiPD&oFYJ9u8>V3?CJN&+8vz8PxC*OQt
z+P5oIv0Au&>W>12Qz_Qv&TjizoMdvIvz+5*>3d~sc{8{FRL2B4&wpA+^<RfauG8Yw
q@S9Ot!f@b>ZNrHk<MMM8uRLIVon{v5`PR}5<Y`Y=KbLh*2~7ZB2!{6n

diff --git a/game/engines/default/data/gfx/ui/scrollbar-sel.png b/game/engines/default/data/gfx/ui/scrollbar-sel.png
index 21ebe87149a225adf15a59dd4d1edbd3b6020ae1..65abf84a55ae61d337ca206ad96f9375e8b5838b 100644
GIT binary patch
literal 1009
zcmV<N0}lL&P)<h;3K|Lk000e1NJLTq000;O000vR1^@s6im=T)00009a7bBm000d-
z000d-0Rti)g#Z8m1ZP1_K>z@;o?%Qu_W%F@AY({UO#lFY3;+OyYXAWQNdN$VivR#n
zwEzJI{{R3x-2ea_2y$;MKmY&(XGugsRCwC7l)rBrMHq&knb}|G+p{^_cXr|slE{%G
zOi0quQ6Yrr=z~NTA<?-5@dqF(8af(8L67Jt5K2jbB_x7uM_92PU+kRkZtwPXXJ==J
z;w~1J>?-7KK27sIdghZ};haMV!GClA!RPM14?kjQsZD7uI?vE~hS52N&M-xRtt?VX
zY*}JVK~);0Quuy=a}b6etJf~$O?Sq?@^rGhwaMePJ6u_Nhs79<4!Q`HpgavKWt{F&
z7!A$=V2noR8PfAnQd6&m1bz*v{8PX(@By$2kdIUT`TGwZ{_+!7Z@x{SAj>qBHRQt{
z>9~ihDuk4TQ3EM`Y-K2Qf#*SUzRkuLUt!XxXAD+>y8t*x_h_GP=Lw7LOT7Q_2Cp?{
z81*{X$}vt)s7eD!q$kmN#yC0Q%C$FXw=eO-cVCl@4vA-KNY06K6-H~aG@-M%#qYoU
zOt+h0stRK?Gxd2^uHPmI0&tGG`4w*5x<{+kA{{)T7AjWSF^xDnH8=|ZtSzzDFdUq)
z_2)x$X}G`f8Tlc&%2KZ@T9+5-9CT^U&Qli0Jl}gnZ6-!4g;YMJvF97$9F?_LYq4cP
z(mP^%^H+ZS=3Cyq1MBw`(GrYHSiZ49k~}3j-bE>e@_bC`=sX{h4ATn?oTG9M=iCHh
zEk!=&;PEC8KK+tr>ne@K>ojJYjQab;HIJ30S?ZBTWlKz<N%}qNHUDA&&LN~gDUTqC
z@Pd%il%(m9(rnW|-bG49<s4D1PQTmY_2nk5c8k&!<XMU@FSr3Xq?Aah@Pm+Ay@B$4
zq*O>8p6BBS(Ztjg^iPf$^t&8)V%}O`!xTArmJ)jIe1H&=AdK+*fG~=w)f)&Y0YMN(
z_(3pvR}~0>5Q6crPp|uoJWojm1M)1r_=}Y1GdJHRJlJPA95C8S5JJA7Pwgg#&N<4`
zV02ENr)>Wvh~qg94?8R_E}RdjDodd?tG8|wgb`slxq&G(#uNlW$V@zk6oR7AWaAO(
zXh50_uvN)ivrT_2sKploDh4OdKuBu!7!%DPm4_*EOrcTAV>}ulgrqbDh0f4Aqbv#>
zj#2-ZokyFzadRCpZPUBJC#O~Ma@hpFpUzW*5wOGmlbz|l$;qY$XX^STGXgp<Ai_;M
f{Z&Qsiu3OP<6E@x$#RSU00000NkvXXu0mjflV81=

literal 295
zcmeAS@N?(olHy`uVBq!ia0vp^96-#<!3HENCaw(yQjEnx?oJHr&dIz4a@dl*-CY>0
z7-lo@7i$OJ0E%!HctjR6FmQK*Fr)d&(`$i(>?NMQuI#tC7==tY12nHC0EJ{TLn2C?
z^K)}k^GbkR1_tM%)Wnk16ovB4k_-iRPv3wPy;OFfc%7$<V+hCf*j_`fLk=RW&rh2*
zhG;W3uMK^-Z2Curc?VCkwB)*|I6Y|h6)6+^BepDHdF4?X3ClRX-9?cm{W7&a%*j$S
zHW@u#@vtT<cI&EbFDt*Z&6E7ybM0%?Tm|U~^2`a}J|)y8Mlb~b6A)zOT(|%0?@Qvn
gHLB0L%kFNiWv-MooEO}3eFn&hp00i_>zopr0Dk*nYXATM

diff --git a/game/engines/default/data/gfx/ui/scrollbar.png b/game/engines/default/data/gfx/ui/scrollbar.png
index c20574112f672353bab2e0f58fb4d66fbea4e908..ebb91fdb2b17413c482611dabbadb0ec346c65c0 100644
GIT binary patch
delta 125
zcmcc0IG=HXI2Q*88v_Hw5&nJM6BWfW{xbmKg1yTp1I0KCJR*x37<jEfn2}jYt`#WA
zUgGKN%6^+kQdGn8x2G3SghAfZ#W6(Ua`K=5|LvKTl^=Vu={)%V|Nk=|9+m?i0vH%B
WZeZu_f6Vp?q}J2b&t;ucLK6TCDks<g

delta 180
zcmbQwc$IO2I2R)a8v_HwV}|$66BWhktr%uA@E2<b-T;bm7I;J!Gca&>f-s}`$<u3r
zg6t)pzOL-IxEO`mtV?`$E&~e5W`;zRIOpf)rskCZxeN@>MX8A;sVNHOnI#zt?w-B@
zDSD~wKye*U7sn8e>x_yF_x>}26i&W+G4#XtU!fnq{SJNj_6x%Y`R~71fB5!m^_i5w
Y)uvBHnF0^5_5msMboFyt=akR{07$qz^8f$<

diff --git a/game/engines/default/data/gfx/ui/scrollbar_bottom.png b/game/engines/default/data/gfx/ui/scrollbar_bottom.png
new file mode 100644
index 0000000000000000000000000000000000000000..70772188ba2cb979e9159f70724bfe184b27d286
GIT binary patch
literal 221
zcmeAS@N?(olHy`uVBq!ia0vp^96-#+!3HFS!eXZZDaPU;cPEB*=VV?2Ic!PZ?k)`f
zL2$v|<&%LToCO|{#X#*=Ak4_DB-aWQWH0gbb!ETJBq^%Fv-Ve?GEgYi)5S4F;_}%E
z8+jWXc$nY*Z=ZT&eqSHsjK*19msKV?>Sq*A*07wrC_u<V?}f{ykPj2>nNKZqwUy&e
zn}6V%p*ee+vC*ps2c%9hEjU(Fl3-rTd-|*cv!DHpNpb%R7*89C%!$?G-3zpc!PC{x
JWt~$(69A!$MWFxy

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/scrollbar_top.png b/game/engines/default/data/gfx/ui/scrollbar_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb72163c5bd6ad14a8f29104cf604145aacd2fac
GIT binary patch
literal 221
zcmeAS@N?(olHy`uVBq!ia0vp^96-#+!3HFS!eXZZDaPU;cPEB*=VV?2Ic!PZ?k)`f
zL2$v|<&%LToCO|{#X#*=Ak4_DB-aWQWH0gbb!ETJBq^#P7w7yx8z>a(>Eak7artbY
zBUgg~4~zQ2)xTOF-Tc4*`1BH639nn1c5^2xTB~GFGT6+-v7)BvfQoIj&N&Y4gv=8S
zFRn7OZ?<6$f3@Job)Gv9yDr-?ss8u9*HEir$#~A`^aK9`+~#S*mwo^FhXE~O@O1Ta
JS?83{1OUpTM~VOd

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector-sel1.png b/game/engines/default/data/gfx/ui/selector-sel1.png
new file mode 100644
index 0000000000000000000000000000000000000000..b0ddd760d866b7ebd5804f3bdeb22bda476ff6e5
GIT binary patch
literal 290
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zQ0)v)7srr_TRHuE1selJT+ZM7-ZTFQhl-J}h6AS?qm@9GqqWwARSxV)miKpSCm0-S
zvwnW&P1e?r|7!NWfA?8<Z`}MKuBB{>jvWvD=S*Om&HuopZYl%E9iP9S3cPzVW)w73
zFdeg){EUrhsfQ|8V54KyjyoAMQ@B+owCJoll4!Q-_UY6{fo&7N+zVtq{xaZnp?M_t
euKVu&j0|5m?YydE*(L$q$l&Sf=d#Wzp$P#0&R|dg

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector-sel2.png b/game/engines/default/data/gfx/ui/selector-sel2.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c1f15423cdb0b46346114be54bfebdd8a8ba1d2
GIT binary patch
literal 208
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3J%i(^Q|tt68b`#;QYY;1h^zn*PP1M74ar-Si-v?Bif{ok(Dv~1qf_wV=r@cr@k
wyL8xG13m7?$+c^^Boeu{Sg@!)+{|Ra@Fi0swBpWdaiEC|p00i_>zopr0AII1ng9R*

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector-sel3.png b/game/engines/default/data/gfx/ui/selector-sel3.png
new file mode 100644
index 0000000000000000000000000000000000000000..a18adda6ba5476883fe44f56357d440dd6ab279c
GIT binary patch
literal 280
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP;H;5i(^Q|t(-nXKE^}|m;2}UD``c!-)Ot^_Da<A3l@#qI~otks%-jQ>%Vc6i;vOK
zlsL8EZNFD9St3*`Bv^8H^0RG=V@=yvElBtjF6^w~{Nq5MgRgMa2_GIqp&v|(xP2}j
zyvRQ5M_ZP7|HhCBEt&pN49~XSF`rTxxIkf3T!`1hnA<-;{rDZTV)H4^9edaq+Wlgc
U^d=O{0lJLA)78&qol`;+0I9QJg8%>k

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector-sel4.png b/game/engines/default/data/gfx/ui/selector-sel4.png
new file mode 100644
index 0000000000000000000000000000000000000000..164fd1ef9bcd9824a77bce82e476856dd0cc7e13
GIT binary patch
literal 203
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3h<i(^Q|tt1|=ANLF2{(b-HewVsLMC47$88c@}&WM~LF=K{=q=bZ|<P3=i4T4iS
rpDJk{;A0CpSkJ@yKX7J%UIN3@QtsZ>tTX2T4P)?h^>bP0l+XkK`^`5+

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector-sel5.png b/game/engines/default/data/gfx/ui/selector-sel5.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d804e9fa0edcee3aa360c99d033cc4270b75746
GIT binary patch
literal 167
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3+|i(^Q|tt68b`#;QQ<WERaU}$S+0!lFa|If@Yc@I-x>b1J-Aik%opUXO@geCxT
Ct0ubu

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector-sel6.png b/game/engines/default/data/gfx/ui/selector-sel6.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d20de19463dd780848e002029e49ed78b4caec9
GIT binary patch
literal 207
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3({i(^Q|tt68b`#;Qo_`klb{{KJYKYu^>KYV|GKhOU9|0xN3^A9diJ#p*gkpm#W
sakQY}fq|g_LrL(5`4X%eT>>%(7~Efqc|0qe334cdr>mdKI;Vst01)FsKmY&$

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector-sel7.png b/game/engines/default/data/gfx/ui/selector-sel7.png
new file mode 100644
index 0000000000000000000000000000000000000000..3dbb01ff4dd216cc0e90e6513c2c8dfb6dee8e34
GIT binary patch
literal 285
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zQ0-(-7srr_TQ$A5T!#WASkk}SZsBmcaO#q9MSIKvHSrG%;tpA_=*@62aa=Ut^}zgN
zx!Z0ex_`A|SoO|N_Mq|)U%nN6xj9m$K5of6jy22&UlqKbsk>e0l;!0`75#z}8pF8C
zmTR9)^^X*}!NlpA!k}2>^@Zj6x}!I5$cf0$F7UHZozpY<!B5r`PKS-nBowk=)K~H{
ZOs!Vi_xpYBETHokJYD@<);T3K0RTAaUN!&#

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector-sel8.png b/game/engines/default/data/gfx/ui/selector-sel8.png
new file mode 100644
index 0000000000000000000000000000000000000000..48ad10102b61e0e4cc2d1cb21ac626d4e58d541f
GIT binary patch
literal 216
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3V*i(^Q|t)wqqzwBo+@+bT}^vj-oJri?xIZuV?oa&E4`<wXp*FBi__xynahmIU+
z@t@b&+Sxks;s5$KToRHJ5)l$0AXzx$!~8}@1BTNEf-|Lhc4h)iX7F_Nb6Mw<&;$Un
CpFes4

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector-sel9.png b/game/engines/default/data/gfx/ui/selector-sel9.png
new file mode 100644
index 0000000000000000000000000000000000000000..36ed869166a5d341cc23b90b8be6353a618e3e8a
GIT binary patch
literal 302
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zQ0)>=7srr_TP=Ooe2#%449{i0?+sYtk>jj+QPZ@_TVVG_-s%m^(g816I{p8As(UVX
zRC~|4E0fQhD0!zXwc>%+mP;+B8#vb=na;qm!#Pj2Unx1DRQzwB&!K`6*Ck?`HYL?t
zey)kJcysK_t&=)A{pxpQW$awfz5ROZXl6Ha%EP!6h9eRiFL_*Qh;$KPXj;|86jrVx
qmG)`&H3f|YUVoW7%vk<?kYzAQwkuq))8G}*y$qhNelF{r5}E+4eP{dt

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector1.png b/game/engines/default/data/gfx/ui/selector1.png
new file mode 100644
index 0000000000000000000000000000000000000000..b0ddd760d866b7ebd5804f3bdeb22bda476ff6e5
GIT binary patch
literal 290
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zQ0)v)7srr_TRHuE1selJT+ZM7-ZTFQhl-J}h6AS?qm@9GqqWwARSxV)miKpSCm0-S
zvwnW&P1e?r|7!NWfA?8<Z`}MKuBB{>jvWvD=S*Om&HuopZYl%E9iP9S3cPzVW)w73
zFdeg){EUrhsfQ|8V54KyjyoAMQ@B+owCJoll4!Q-_UY6{fo&7N+zVtq{xaZnp?M_t
euKVu&j0|5m?YydE*(L$q$l&Sf=d#Wzp$P#0&R|dg

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector2.png b/game/engines/default/data/gfx/ui/selector2.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c1f15423cdb0b46346114be54bfebdd8a8ba1d2
GIT binary patch
literal 208
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3J%i(^Q|tt68b`#;QYY;1h^zn*PP1M74ar-Si-v?Bif{ok(Dv~1qf_wV=r@cr@k
wyL8xG13m7?$+c^^Boeu{Sg@!)+{|Ra@Fi0swBpWdaiEC|p00i_>zopr0AII1ng9R*

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector3.png b/game/engines/default/data/gfx/ui/selector3.png
new file mode 100644
index 0000000000000000000000000000000000000000..a18adda6ba5476883fe44f56357d440dd6ab279c
GIT binary patch
literal 280
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP;H;5i(^Q|t(-nXKE^}|m;2}UD``c!-)Ot^_Da<A3l@#qI~otks%-jQ>%Vc6i;vOK
zlsL8EZNFD9St3*`Bv^8H^0RG=V@=yvElBtjF6^w~{Nq5MgRgMa2_GIqp&v|(xP2}j
zyvRQ5M_ZP7|HhCBEt&pN49~XSF`rTxxIkf3T!`1hnA<-;{rDZTV)H4^9edaq+Wlgc
U^d=O{0lJLA)78&qol`;+0I9QJg8%>k

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector4.png b/game/engines/default/data/gfx/ui/selector4.png
new file mode 100644
index 0000000000000000000000000000000000000000..164fd1ef9bcd9824a77bce82e476856dd0cc7e13
GIT binary patch
literal 203
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3h<i(^Q|tt1|=ANLF2{(b-HewVsLMC47$88c@}&WM~LF=K{=q=bZ|<P3=i4T4iS
rpDJk{;A0CpSkJ@yKX7J%UIN3@QtsZ>tTX2T4P)?h^>bP0l+XkK`^`5+

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector5.png b/game/engines/default/data/gfx/ui/selector5.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d804e9fa0edcee3aa360c99d033cc4270b75746
GIT binary patch
literal 167
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3+|i(^Q|tt68b`#;QQ<WERaU}$S+0!lFa|If@Yc@I-x>b1J-Aik%opUXO@geCxT
Ct0ubu

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector6.png b/game/engines/default/data/gfx/ui/selector6.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d20de19463dd780848e002029e49ed78b4caec9
GIT binary patch
literal 207
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3({i(^Q|tt68b`#;Qo_`klb{{KJYKYu^>KYV|GKhOU9|0xN3^A9diJ#p*gkpm#W
sakQY}fq|g_LrL(5`4X%eT>>%(7~Efqc|0qe334cdr>mdKI;Vst01)FsKmY&$

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector7.png b/game/engines/default/data/gfx/ui/selector7.png
new file mode 100644
index 0000000000000000000000000000000000000000..3dbb01ff4dd216cc0e90e6513c2c8dfb6dee8e34
GIT binary patch
literal 285
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zQ0-(-7srr_TQ$A5T!#WASkk}SZsBmcaO#q9MSIKvHSrG%;tpA_=*@62aa=Ut^}zgN
zx!Z0ex_`A|SoO|N_Mq|)U%nN6xj9m$K5of6jy22&UlqKbsk>e0l;!0`75#z}8pF8C
zmTR9)^^X*}!NlpA!k}2>^@Zj6x}!I5$cf0$F7UHZozpY<!B5r`PKS-nBowk=)K~H{
ZOs!Vi_xpYBETHokJYD@<);T3K0RTAaUN!&#

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector8.png b/game/engines/default/data/gfx/ui/selector8.png
new file mode 100644
index 0000000000000000000000000000000000000000..48ad10102b61e0e4cc2d1cb21ac626d4e58d541f
GIT binary patch
literal 216
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zP_3V*i(^Q|t)wqqzwBo+@+bT}^vj-oJri?xIZuV?oa&E4`<wXp*FBi__xynahmIU+
z@t@b&+Sxks;s5$KToRHJ5)l$0AXzx$!~8}@1BTNEf-|Lhc4h)iX7F_Nb6Mw<&;$Un
CpFes4

literal 0
HcmV?d00001

diff --git a/game/engines/default/data/gfx/ui/selector9.png b/game/engines/default/data/gfx/ui/selector9.png
new file mode 100644
index 0000000000000000000000000000000000000000..36ed869166a5d341cc23b90b8be6353a618e3e8a
GIT binary patch
literal 302
zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#Xxy05N2dnl4}JDvZOou
zIx;Y9oR{e1_#MbsNcITwWnif1VPI&@W?*FYWMF6jY7W@Sz{vKWfx-GN1A`1lQNE4?
zQ0)>=7srr_TP=Ooe2#%449{i0?+sYtk>jj+QPZ@_TVVG_-s%m^(g816I{p8As(UVX
zRC~|4E0fQhD0!zXwc>%+mP;+B8#vb=na;qm!#Pj2Unx1DRQzwB&!K`6*Ck?`HYL?t
zey)kJcysK_t&=)A{pxpQW$awfz5ROZXl6Ha%EP!6h9eRiFL_*Qh;$KPXj;|86jrVx
qmG)`&H3f|YUVoW7%vk<?kYzAQwkuq))8G}*y$qhNelF{r5}E+4eP{dt

literal 0
HcmV?d00001

diff --git a/game/engines/default/engine/ui/Base.lua b/game/engines/default/engine/ui/Base.lua
index 555d008115..62f0291714 100644
--- a/game/engines/default/engine/ui/Base.lua
+++ b/game/engines/default/engine/ui/Base.lua
@@ -26,6 +26,7 @@ module(..., package.seeall, class.make)
 
 local gfx_prefix = "/data/gfx/"
 local cache = {}
+local tcache = {}
 
 -- Default font
 _M.font = core.display.newFont("/data/font/Vera.ttf", 12)
@@ -61,3 +62,50 @@ function _M:getImage(file)
 	cache[file] = {s, s:getSize()}
 	return unpack(cache[file])
 end
+
+function _M:getTexture(file)
+	if tcache[file] then return tcache[file] end
+	local i, w, h = self:getImage(file)
+	if not i then return end
+	local t, tw, th = i:glTexture()
+	local r = {t=t, w=w, h=h, tw=tw, th=th}
+	tcache[file] = r
+	return r
+end
+
+function _M:makeFrame(base, w, h)
+	local f = {}
+	if base then
+		f.b7 = self:getTexture(base.."7.png")
+		f.b9 = self:getTexture(base.."9.png")
+		f.b1 = self:getTexture(base.."1.png")
+		f.b3 = self:getTexture(base.."3.png")
+		f.b8 = self:getTexture(base.."8.png")
+		f.b4 = self:getTexture(base.."4.png")
+		f.b2 = self:getTexture(base.."2.png")
+		f.b6 = self:getTexture(base.."6.png")
+		f.b5 = self:getTexture(base.."5.png")
+	end
+	f.w = w
+	f.h = h
+	return f
+end
+
+function _M:drawFrame(f, x, y, r, g, b, a)
+	if not f.b7 then return end
+
+	-- Sides
+	f.b8.t:toScreenFull(x + f.b7.w, y, f.w - f.b7.w - f.b9.w + 1, f.b8.h, f.b8.tw, f.b8.th, r, g, b, a)
+	f.b2.t:toScreenFull(x + f.b7.w, y + f.h - f.b3.h, f.w - f.b7.w - f.b9.w + 1, f.b2.h, f.b2.tw, f.b2.th, r, g, b, a)
+	f.b4.t:toScreenFull(x, y + f.b7.h, f.b4.w, f.h - f.b7.h - f.b1.h + 1, f.b4.tw, f.b4.th, r, g, b, a)
+	f.b6.t:toScreenFull(x + f.w - f.b9.w, y + f.b7.h, f.b6.w, f.h - f.b7.h - f.b1.h + 1, f.b6.tw, f.b6.th, r, g, b, a)
+
+	-- Body
+	f.b5.t:toScreenFull(x + f.b7.w, y + f.b7.h, f.w - f.b7.w - f.b3.w + 1, f.h - f.b7.h - f.b3.h + 1, f.b6.tw, f.b6.th, r, g, b, a)
+
+	-- Corners
+	f.b7.t:toScreenFull(x, y, f.b7.w, f.b7.h, f.b7.tw, f.b7.th, r, g, b, a)
+	f.b1.t:toScreenFull(x, y + f.h - f.b1.h, f.b1.w, f.b1.h, f.b1.tw, f.b1.th, r, g, b, a)
+	f.b9.t:toScreenFull(x + f.w - f.b9.w, y, f.b9.w, f.b9.h, f.b9.tw, f.b9.th, r, g, b, a)
+	f.b3.t:toScreenFull(x + f.w - f.b3.w, y + f.h - f.b3.h, f.b3.w, f.b3.h, f.b3.tw, f.b3.th, r, g, b, a)
+end
diff --git a/game/engines/default/engine/ui/Button.lua b/game/engines/default/engine/ui/Button.lua
index a105864189..9297469b69 100644
--- a/game/engines/default/engine/ui/Button.lua
+++ b/game/engines/default/engine/ui/Button.lua
@@ -24,6 +24,11 @@ local Focusable = require "engine.ui.Focusable"
 --- A generic UI button
 module(..., package.seeall, class.inherit(Base, Focusable))
 
+frame_ox1 = -5
+frame_ox2 = 5
+frame_oy1 = -5
+frame_oy2 = 5
+
 function _M:init(t)
 	self.text = assert(t.text, "no button text")
 	self.fct = assert(t.fct, "no button fct")
@@ -36,51 +41,37 @@ function _M:generate()
 	self.mouse:reset()
 	self.key:reset()
 
-	local ls, ls_w, ls_h = self:getImage("ui/button-left-sel.png")
-	local ms, ms_w, ms_h = self:getImage("ui/button-middle-sel.png")
-	local rs, rs_w, rs_h = self:getImage("ui/button-right-sel.png")
-	local l, l_w, l_h = self:getImage("ui/button-left.png")
-	local m, m_w, m_h = self:getImage("ui/button-middle.png")
-	local r, r_w, r_h = self:getImage("ui/button-right.png")
-
 	-- Draw UI
 	self.font:setStyle("bold")
 	local w, h = self.font:size(self.text)
 	if self.force_w then w = self.force_w end
-	local fw, fh = w + ls_w + rs_w, ls_h
-	local ss = core.display.newSurface(fw, fh)
-	local s = core.display.newSurface(fw, fh)
-
-	ss:merge(ls, 0, 0)
-	for i = ls_w, fw - rs_w do ss:merge(ms, i, 0) end
-	ss:merge(rs, fw - rs_w, 0)
-	ss:drawColorStringBlended(self.font, self.text, ls_w, (fh - h) / 2, 255, 255, 255)
+	self.w, self.h = w - frame_ox1 + frame_ox2, h - frame_oy1 + frame_oy2
 
-	s:merge(l, 0, 0)
-	for i = l_w, fw - r_w do s:merge(m, i, 0) end
-	s:merge(r, fw - r_w, 0)
-	s:drawColorStringBlended(self.font, self.text, ls_w, (fh - h) / 2, 255, 255, 255)
+	local s = core.display.newSurface(w, h)
+	s:drawColorStringBlended(self.font, self.text, 0, 0, 255, 255, 255, true)
+	self.tex = {s:glTexture()}
 	self.font:setStyle("normal")
 
 	-- Add UI controls
-	self.mouse:registerZone(0, 0, fw, fh, function(button, x, y, xrel, yrel, bx, by, event) if button == "left" and event == "button" then self.fct() end end)
+	self.mouse:registerZone(0, 0, self.w, self.h, function(button, x, y, xrel, yrel, bx, by, event) if button == "left" and event == "button" then self.fct() end end)
 	self.key:addBind("ACCEPT", function() self.fct() end)
 
-	self.tex, self.tex_w, self.tex_h = s:glTexture()
-	self.stex = ss:glTexture()
-	self.rw, self.rh = fw, fh
-	self.w, self.h = fw+10, fh+10
+	self.rw, self.rh = w, h
+	self.frame = self:makeFrame("ui/button", self.w, self.h)
+	self.frame_sel = self:makeFrame("ui/button_sel", self.w, self.h)
 end
 
 function _M:display(x, y, nb_keyframes)
 	if self.focused then
-		self.stex:toScreenFull(x+5, y+5, self.rw, self.rh, self.tex_w, self.tex_h)
+		self:drawFrame(self.frame_sel, x, y)
+		self.tex[1]:toScreenFull(x-frame_ox1, y-frame_oy1, self.rw, self.rh, self.tex[2], self.tex[3])
 	else
-		self.tex:toScreenFull(x+5, y+5, self.rw, self.rh, self.tex_w, self.tex_h)
+		self:drawFrame(self.frame, x, y)
 		if self.focus_decay then
-			self.stex:toScreenFull(x+5, y+5, self.rw, self.rh, self.tex_w, self.tex_h, 1, 1, 1, self.focus_decay / self.focus_decay_max_d)
+			self:drawFrame(self.frame_sel, x, y, 1, 1, 1, self.focus_decay / self.focus_decay_max_d)
 			self.focus_decay = self.focus_decay - nb_keyframes
 			if self.focus_decay <= 0 then self.focus_decay = nil end
 		end
+		self.tex[1]:toScreenFull(x-frame_ox1, y-frame_oy1, self.rw, self.rh, self.tex[2], self.tex[3])
 	end
 end
diff --git a/game/engines/default/engine/ui/Checkbox.lua b/game/engines/default/engine/ui/Checkbox.lua
index 17095f7be3..39bb919c73 100644
--- a/game/engines/default/engine/ui/Checkbox.lua
+++ b/game/engines/default/engine/ui/Checkbox.lua
@@ -37,44 +37,21 @@ function _M:generate()
 	self.mouse:reset()
 	self.key:reset()
 
-	local ls, ls_w, ls_h = self:getImage("ui/textbox-left-sel.png")
-	local ms, ms_w, ms_h = self:getImage("ui/textbox-middle-sel.png")
-	local rs, rs_w, rs_h = self:getImage("ui/textbox-right-sel.png")
-	local l, l_w, l_h = self:getImage("ui/textbox-left.png")
-	local m, m_w, m_h = self:getImage("ui/textbox-middle.png")
-	local r, r_w, r_h = self:getImage("ui/textbox-right.png")
-	local c, c_w, c_h = self:getImage("ui/textbox-cursor.png")
-	local chk, chk_w, chk_h = self:getImage("ui/checkbox-ok.png")
+	self.check = self:getTexture("ui/checkbox.png")
+	self.tick = self:getTexture("ui/checkbox-ok.png")
 
 	self.h = r_h
 
 	-- Draw UI
-	local title_w = self.font:size(self.title)
-	self.w = title_w + chk_w
-	local w, h = self.w, r_h
-	local fw, fh = w - title_w - ls_w - rs_w, self.font_h
-	self.fw, self.fh = fw, fh
-	self.text_x = ls_w + title_w
-	self.text_y = (h - fh) / 2
-	self.max_display = math.floor(fw / self.font_mono_w)
-	local ss = core.display.newSurface(w, h)
-	local s = core.display.newSurface(w, h)
+	self.title_w, self.title_h = self.font:size(self.title)
+	self.w, self.h = self.title_w + self.check.w, math.max(self.font_h, self.check.h)
 
-	ss:merge(ls, title_w, 0)
-	for i = title_w + ls_w, w - rs_w do ss:merge(ms, i, 0) end
-	ss:merge(rs, w - rs_w, 0)
-	ss:drawColorStringBlended(self.font, self.title, 0, (h - fh) / 2, 255, 255, 255, true)
-
-	s:merge(l, title_w, 0)
-	for i = title_w + l_w, w - r_w do s:merge(m, i, 0) end
-	s:merge(r, w - r_w, 0)
-	s:drawColorStringBlended(self.font, self.title, 0, (h - fh) / 2, 255, 255, 255, true)
-
-	self.chk_tex, self.chk_tex_w, self.chk_tex_h = chk:glTexture()
-	self.chk_w, self.chk_h = chk_w, chk_h
+	local s = core.display.newSurface(self.title_w, self.title_h)
+	s:drawColorStringBlended(self.font, self.title, 0, 0, 255, 255, 255, true)
+	self.tex = {s:glTexture()}
 
 	-- Add UI controls
-	self.mouse:registerZone(title_w + ls_w, 0, fw, h, function(button, x, y, xrel, yrel, bx, by, event)
+	self.mouse:registerZone(0, 0, self.w, self.h, function(button, x, y, xrel, yrel, bx, by, event)
 		if event == "button" then
 			self:select()
 		end
@@ -83,9 +60,6 @@ function _M:generate()
 	self.key:addCommands{
 		_SPACE = function() self:select() end,
 	}
-
-	self.tex, self.tex_w, self.tex_h = s:glTexture()
-	self.stex = ss:glTexture()
 end
 
 function _M:select()
@@ -93,17 +67,18 @@ function _M:select()
 end
 
 function _M:display(x, y, nb_keyframes)
+	self.tex[1]:toScreenFull(x, y + (self.h - self.title_h) / 2, self.title_w, self.title_h, self.tex[2], self.tex[3])
 	if self.focused then
-		self.stex:toScreenFull(x, y, self.w, self.h, self.tex_w, self.tex_h)
+		self.check.t:toScreenFull(x + self.title_w, y, self.check.w, self.check.h, self.check.tw, self.check.th)
 	else
-		self.tex:toScreenFull(x, y, self.w, self.h, self.tex_w, self.tex_h)
+		self.check.t:toScreenFull(x + self.title_w, y, self.check.w, self.check.h, self.check.tw, self.check.th)
 		if self.focus_decay then
-			self.stex:toScreenFull(x, y, self.w, self.h, self.tex_w, self.tex_h, 1, 1, 1, self.focus_decay / self.focus_decay_max_d)
+--			self.check.t:toScreenFull(x + self.title_w, y, self.check.w, self.check.h, self.check.tw, self.check.th)
 			self.focus_decay = self.focus_decay - nb_keyframes
 			if self.focus_decay <= 0 then self.focus_decay = nil end
 		end
 	end
 	if self.checked then
-		self.chk_tex:toScreenFull(x + self.w - self.chk_w, y, self.chk_w, self.chk_h, self.chk_tex_w, self.chk_tex_h)
+		self.tick.t:toScreenFull(x + self.title_w, y, self.tick.w, self.tick.h, self.tick.tw, self.tick.th)
 	end
 end
diff --git a/game/engines/default/engine/ui/Dialog.lua b/game/engines/default/engine/ui/Dialog.lua
index a2dbc4420f..9fd7bb980c 100644
--- a/game/engines/default/engine/ui/Dialog.lua
+++ b/game/engines/default/engine/ui/Dialog.lua
@@ -128,6 +128,25 @@ function _M:init(title, w, h, x, y, alpha, font, showup)
 		self.__showup = 2
 	end
 
+	self.frame = self.frame or {
+		b7 = "ui/dialogueV3_7.png",
+		b9 = "ui/dialogueV3_9.png",
+		b1 = "ui/dialogueV3_1.png",
+		b3 = "ui/dialogueV3_3.png",
+		b4 = "ui/dialogueV3_4.png",
+		b6 = "ui/dialogueV3_6.png",
+		b8 = "ui/dialogueV3_8.png",
+		b2 = "ui/dialogueV3_2.png",
+		b5 = "ui/dialogueV3_5.png",
+		shadow = {x=15, y=15, a=0.5},
+		a = 1,
+	}
+	self.frame.ox1 = self.frame.ox1 or -42
+	self.frame.ox2 = self.frame.ox2 or 42
+	self.frame.oy1 = self.frame.oy1 or -42
+	self.frame.oy2 = self.frame.oy2 or 42
+	self.frame.a = self.frame.a or 1
+
 	self.uis = {}
 	self.focus_ui = nil
 	self.focus_ui_id = 0
@@ -153,35 +172,37 @@ end
 
 function _M:generate()
 	local gamew, gameh = core.display.size()
-	local s = core.display.newSurface(self.w, self.h)
-	s:alpha(true)
-	s:erase(0, 0, 0, self.alpha)
-
-	local b7, b7_w, b7_h = self:getImage("border_7.png")
-	local b9, b9_w, b9_h = self:getImage("border_9.png")
-	local b1, b1_w, b1_h = self:getImage("border_1.png")
-	local b3, b3_w, b3_h = self:getImage("border_3.png")
-	local b8, b8_w, b8_h = self:getImage("border_8.png")
-	local b4, b4_w, b4_h = self:getImage("border_4.png")
-
-	s:merge(b7, 0, 0)
-	s:merge(b9, self.w - b9_w, 0)
-	s:merge(b1, 0, self.h - b1_h)
-	s:merge(b3, self.w - b9_w, self.h - b3_h)
-
-	for i = b7_w, self.w - b9_w do
-		s:merge(b8, i, 0)
-		s:merge(b8, i, 20)
-		s:merge(b8, i, self.h - 3)
-	end
-	for i = b7_h, self.h - b1_h do
-		s:merge(b4, 0, i)
-		s:merge(b4, self.w - 3, i)
+
+	self.frame.w = self.w - self.frame.ox1 + self.frame.ox2
+	self.frame.h = self.h - self.frame.oy1 + self.frame.oy2
+
+	self.b7 = self:getTexture(self.frame.b7)
+	self.b9 = self:getTexture(self.frame.b9)
+	self.b1 = self:getTexture(self.frame.b1)
+	self.b3 = self:getTexture(self.frame.b3)
+	self.b8 = self:getTexture(self.frame.b8)
+	self.b4 = self:getTexture(self.frame.b4)
+	self.b2 = self:getTexture(self.frame.b2)
+	self.b6 = self:getTexture(self.frame.b6)
+	self.b5 = self:getTexture(self.frame.b5)
+
+	self.overs = {}
+	for i, o in ipairs(self.frame.overlays or {}) do
+		local ov = self:getTexture(o.image)
+		if o.gen then
+			o.gen(ov, self)
+		else
+			ov.x = o.x
+			ov.y = o.y
+			ov.a = o.a
+		end
+		self.overs[#self.overs+1] = ov
 	end
 
+--[[
 	local tw, th = self.font_bold:size(self.title)
 	s:drawColorStringBlended(self.font_bold, self.title, (self.w - tw) / 2, 4, 255,255,255)
-
+]]
 	if self.absolute then
 		self.mouse:registerZone(0, 0, gamew, gameh, function(button, x, y, xrel, yrel, bx, by, event) self:mouseEvent(button, x, y, xrel, yrel, bx - self.display_x, by - self.display_y, event) end)
 	else
@@ -196,8 +217,6 @@ function _M:generate()
 		MOVE_LEFT = "MOVE_UP",
 		MOVE_RIGHT = "MOVE_DOWN",
 	}
-
-	self.tex, self.tex_w, self.tex_h = s:glTexture()
 end
 
 function _M:loadUI(t)
@@ -362,32 +381,67 @@ function _M:makeKeyChar(i)
 	end
 end
 
+function _M:drawFrame(x, y, r, g, b, a)
+	x = x + self.frame.ox1
+	y = y + self.frame.oy1
+
+	-- Corners
+	self.b7.t:toScreenFull(x, y, self.b7.w, self.b7.h, self.b7.tw, self.b7.th, r, g, b, a)
+	self.b1.t:toScreenFull(x, y + self.frame.h - self.b1.h, self.b1.w, self.b1.h, self.b1.tw, self.b1.th, r, g, b, a)
+	self.b9.t:toScreenFull(x + self.frame.w - self.b9.w, y, self.b9.w, self.b9.h, self.b9.tw, self.b9.th, r, g, b, a)
+	self.b3.t:toScreenFull(x + self.frame.w - self.b3.w, y + self.frame.h - self.b3.h, self.b3.w, self.b3.h, self.b3.tw, self.b3.th, r, g, b, a)
+
+	-- Sides
+	self.b8.t:toScreenFull(x + self.b7.w, y, self.frame.w - self.b7.w - self.b9.w, self.b8.h, self.b8.tw, self.b8.th, r, g, b, a)
+	self.b2.t:toScreenFull(x + self.b7.w, y + self.frame.h - self.b3.h, self.frame.w - self.b7.w - self.b9.w, self.b2.h, self.b2.tw, self.b2.th, r, g, b, a)
+	self.b4.t:toScreenFull(x, y + self.b7.h, self.b4.w, self.frame.h - self.b7.h - self.b1.h, self.b4.tw, self.b4.th, r, g, b, a)
+	self.b6.t:toScreenFull(x + self.frame.w - self.b9.w, y + self.b7.h, self.b6.w, self.frame.h - self.b7.h - self.b1.h, self.b6.tw, self.b6.th, r, g, b, a)
+
+	-- Body
+	self.b5.t:toScreenFull(x + self.b7.w, y + self.b7.h, self.frame.w - self.b7.w - self.b3.w , self.frame.h - self.b7.h - self.b3.h, self.b6.tw, self.b6.th, r, g, b, a)
+
+	-- Overlays
+	for i = 1, #self.overs do
+		local ov = self.overs[i]
+		ov.t:toScreenFull(x + ov.x, y + ov.y, ov.w , ov.h, ov.tw, ov.th, r, g, b, a * ov.a)
+	end
+end
+
 function _M:toScreen(x, y, nb_keyframes)
 	if self.__hidden then return end
 
-	-- Draw with only the texture
+	local zoom = 1
 	if self.__showup then
 		local eff = self.__showup_effect or "pop"
 		if eff == "overpop" then
-			local zoom = self.__showup / 7
+			zoom = self.__showup / 7
 			if self.__showup >= 9 then
 				zoom = (9 - (self.__showup - 9)) / 7 - 1
 				zoom = 1 + zoom * 0.5
 			end
-			self.tex:toScreenFull(x + (self.w - self.w * zoom) / 2, y + (self.h - self.h * zoom) / 2, self.w * zoom, self.h * zoom, self.tex_w * zoom, self.tex_h * zoom)
 			self.__showup = self.__showup + nb_keyframes
 			if self.__showup >= 11 then self.__showup = nil end
 		else
-			local zoom = self.__showup / 7
-			self.tex:toScreenFull(x + (self.w - self.w * zoom) / 2, y + (self.h - self.h * zoom) / 2, self.w * zoom, self.h * zoom, self.tex_w * zoom, self.tex_h * zoom)
+			zoom = self.__showup / 7
 			self.__showup = self.__showup + nb_keyframes
 			if self.__showup >= 7 then self.__showup = nil end
 		end
-	else
-		self.tex:toScreenFull(x, y, self.w, self.h, self.tex_w, self.tex_h)
-		for i = 1, #self.uis do
-			local ui = self.uis[i]
-			ui.ui:display(x + ui.x, y + ui.y, nb_keyframes)
-		end
 	end
+
+	local ox, oy = x, y
+	local hw, hh = math.floor(self.w / 2), math.floor(self.h / 2)
+	local tx, ty = x + hw, y + hh
+	x, y = -hw, -hh
+	core.display.glTranslate(tx, ty, 0)
+	if zoom < 1 then core.display.glScale(zoom, zoom, zoom) end
+
+	if self.frame.shadow then self:drawFrame(x + self.frame.shadow.x, y + self.frame.shadow.y, 0, 0, 0, self.frame.shadow.a) end
+	self:drawFrame(x, y, 1, 1, 1, self.frame.a)
+	for i = 1, #self.uis do
+		local ui = self.uis[i]
+		ui.ui:display(x + ui.x, y + ui.y, nb_keyframes, ox + ui.x, oy + ui.y)
+	end
+
+	if zoom < 1 then core.display.glScale() end
+	core.display.glTranslate(-tx, -ty, 0)
 end
diff --git a/game/engines/default/engine/ui/List.lua b/game/engines/default/engine/ui/List.lua
index 0094d55ecf..9577fd556a 100644
--- a/game/engines/default/engine/ui/List.lua
+++ b/game/engines/default/engine/ui/List.lua
@@ -20,17 +20,12 @@
 require "engine.class"
 local Base = require "engine.ui.Base"
 local Focusable = require "engine.ui.Focusable"
+local Slider = require "engine.ui.Slider"
+local Slider = require "engine.ui.Slider"
 
 --- A generic UI list
 module(..., package.seeall, class.inherit(Base, Focusable))
 
-local ls, ls_w, ls_h = _M:getImage("ui/selection-left-sel.png")
-local ms, ms_w, ms_h = _M:getImage("ui/selection-middle-sel.png")
-local rs, rs_w, rs_h = _M:getImage("ui/selection-right-sel.png")
-local l, l_w, l_h = _M:getImage("ui/selection-left.png")
-local m, m_w, m_h = _M:getImage("ui/selection-middle.png")
-local r, r_w, r_h = _M:getImage("ui/selection-right.png")
-
 function _M:init(t)
 	self.list = assert(t.list, "no list list")
 	self.w = assert(t.width, "no list width")
@@ -42,23 +37,6 @@ function _M:init(t)
 	self.scrollbar = t.scrollbar
 	self.all_clicks = t.all_clicks
 
-	self.fh = ls_h
-	self.default = {}
-	self.default.surface = core.display.newSurface(self.w, self.fh)
-	self.default.s = core.display.newSurface(self.w, self.fh)
-	self.default.ss = core.display.newSurface(self.w, self.fh)
-	self.default.sus = core.display.newSurface(self.w, self.fh)
-
-	self.default.ss:merge(ls, 0, 0)
-	for i = ls_w, self.w - rs_w, ms_w do self.default.ss:merge(ms, i, 0) end
-	self.default.ss:merge(rs, self.w - rs_w, 0)
-
-	self.default.s:erase(0, 0, 0)
-
-	self.default.sus:merge(l, 0, 0)
-	for i = l_w, self.w - r_w, m_w do self.default.sus:merge(m, i, 0) end
-	self.default.sus:merge(r, self.w - r_w, 0)
-
 	Base.init(self, t)
 end
 
@@ -70,8 +48,14 @@ function _M:generate()
 	self.scroll = 1
 	self.max = #self.list
 
-	local fw, fh = self.w, ls_h
+	local fw, fh = self.w, self.font_h + 6
 	self.fw, self.fh = fw, fh
+	if not self.surf then self.surf = core.display.newSurface(fw, fh) end
+	local s = self.surf
+
+	self.frame = self:makeFrame(nil, fw, fh)
+	self.frame_sel = self:makeFrame("ui/selector-sel", fw, fh)
+	self.frame_usel = self:makeFrame("ui/selector", fw, fh)
 
 	if not self.h then self.h = self.nb_items * fh end
 
@@ -79,39 +63,17 @@ function _M:generate()
 
 	-- Draw the scrollbar
 	if self.scrollbar then
-		local sb, sb_w, sb_h = self:getImage("ui/scrollbar.png")
-		local ssb, ssb_w, ssb_h = self:getImage("ui/scrollbar-sel.png")
-
-		self.scrollbar = { bar = {}, sel = {} }
-		self.scrollbar.sel.w, self.scrollbar.sel.h, self.scrollbar.sel.tex, self.scrollbar.sel.texw, self.scrollbar.sel.texh = ssb_w, ssb_h, ssb:glTexture()
-		local s = core.display.newSurface(sb_w, self.h - fh)
-		for i = 0, self.h - fh do s:merge(sb, 0, i) end
-		self.scrollbar.bar.w, self.scrollbar.bar.h, self.scrollbar.bar.tex, self.scrollbar.bar.texw, self.scrollbar.bar.texh = ssb_w, self.h - fh, s:glTexture()
+		self.scrollbar = Slider.new{size=self.h - fh, max=self.max}
 	end
 
 	-- Draw the list items
 	for i, item in ipairs(self.list) do
 		local color = item.color or {255,255,255}
 		local text = item[self.display_prop]
-		local src_ss = self.default.ss
-		local src_sus = self.default.sus
-		local src_s = self.default.s
-		local ss = self.default.surface
-		local sus = self.default.surface
-		local s = self.default.surface
-
-		ss:erase(0, 0, 0)
-		ss:merge(src_ss, 0, 0)
-		ss:drawColorStringBlended(self.font, text, ls_w, (fh - self.font_h) / 2, color[1], color[2], color[3], nil, fw - ls_w - rs_w)
-		item._stex = ss:glTexture()
-
-		s:merge(src_s, 0, 0)
-		s:drawColorStringBlended(self.font, text, ls_w, (fh - self.font_h) / 2, color[1], color[2], color[3], nil, fw - ls_w - rs_w)
-		item._tex, item._tex_w, item._tex_h = s:glTexture()
-
-		sus:merge(src_sus, 0, 0)
-		sus:drawColorStringBlended(self.font, text, ls_w, (fh - self.font_h) / 2, color[1], color[2], color[3], nil, fw - ls_w - rs_w)
-		item._sustex = sus:glTexture()
+
+		s:erase(0, 0, 0, 0)
+		s:drawColorStringBlended(self.font, text, 0, (self.fh - self.font_h) / 2, color[1], color[2], color[3], true, fw)
+		item._tex = {s:glTexture()}
 	end
 
 	-- Add UI controls
@@ -179,24 +141,23 @@ function _M:display(x, y, nb_keyframes)
 		local item = self.list[i]
 		if not item then break end
 		if self.sel == i then
-			if self.focused then item._stex:toScreenFull(x, y, self.fw, self.fh, item._tex_w, item._tex_h)
-			else item._sustex:toScreenFull(x, y, self.fw, self.fh, item._tex_w, item._tex_h) end
+			if self.focused then self:drawFrame(self.frame_sel, x, y)
+			else self:drawFrame(self.frame_usel, x, y) end
 		else
-			item._tex:toScreenFull(x, y, self.fw, self.fh, item._tex_w, item._tex_h)
+			self:drawFrame(self.frame, x, y)
 			if item.focus_decay then
-				if self.focused then item._stex:toScreenFull(x, y, self.fw, self.fh, item._tex_w, item._tex_h, 1, 1, 1, item.focus_decay / self.focus_decay_max_d)
-				else item._sustex:toScreenFull(x, y, self.fw, self.fh, item._tex_w, item._tex_h, 1, 1, 1, item.focus_decay / self.focus_decay_max_d) end
+				if self.focused then self:drawFrame(self.frame_sel, x, y, 1, 1, 1, item.focus_decay / self.focus_decay_max_d)
+				else self:drawFrame(self.frame_usel, x, y, 1, 1, 1, item.focus_decay / self.focus_decay_max_d) end
 				item.focus_decay = item.focus_decay - nb_keyframes
 				if item.focus_decay <= 0 then item.focus_decay = nil end
 			end
 		end
+		item._tex[1]:toScreenFull(x + self.frame_sel.b4.w, y, self.fw, self.fh, item._tex[2], item._tex[3])
 		y = y + self.fh
 	end
 
 	if self.focused and self.scrollbar then
-		local pos = self.sel * (self.h - self.fh) / self.max
-
-		self.scrollbar.bar.tex:toScreenFull(bx + self.w - self.scrollbar.bar.w, by + self.fh, self.scrollbar.bar.w, self.scrollbar.bar.h, self.scrollbar.bar.texw, self.scrollbar.bar.texh)
-		self.scrollbar.sel.tex:toScreenFull(bx + self.w - self.scrollbar.sel.w, by + self.fh + pos, self.scrollbar.sel.w, self.scrollbar.sel.h, self.scrollbar.sel.texw, self.scrollbar.sel.texh)
+		self.scrollbar.pos = self.sel
+		self.scrollbar:display(bx + self.w - self.scrollbar.w, by)
 	end
 end
diff --git a/game/engines/default/engine/ui/ListColumns.lua b/game/engines/default/engine/ui/ListColumns.lua
index 6335070d1e..60df37ca15 100644
--- a/game/engines/default/engine/ui/ListColumns.lua
+++ b/game/engines/default/engine/ui/ListColumns.lua
@@ -20,24 +20,11 @@
 require "engine.class"
 local Base = require "engine.ui.Base"
 local Focusable = require "engine.ui.Focusable"
+local Slider = require "engine.ui.Slider"
 
 --- A generic UI multi columns list
 module(..., package.seeall, class.inherit(Base, Focusable))
 
-local ls, ls_w, ls_h = _M:getImage("ui/selection-left-sel.png")
-local ms, ms_w, ms_h = _M:getImage("ui/selection-middle-sel.png")
-local rs, rs_w, rs_h = _M:getImage("ui/selection-right-sel.png")
-local l, l_w, l_h = _M:getImage("ui/selection-left.png")
-local m, m_w, m_h = _M:getImage("ui/selection-middle.png")
-local r, r_w, r_h = _M:getImage("ui/selection-right.png")
-
-local cls, cls_w, cls_h = _M:getImage("ui/selection-left-column-sel.png")
-local cms, cms_w, cms_h = _M:getImage("ui/selection-middle-column-sel.png")
-local crs, crs_w, crs_h = _M:getImage("ui/selection-right-column-sel.png")
-local cl, cl_w, cl_h = _M:getImage("ui/selection-left-column.png")
-local cm, cm_w, cm_h = _M:getImage("ui/selection-middle-column.png")
-local cr, cr_w, cr_h = _M:getImage("ui/selection-right-column.png")
-
 function _M:init(t)
 	self.list = assert(t.list, "no list list")
 	self.columns = assert(t.columns, "no list columns")
@@ -54,6 +41,8 @@ function _M:init(t)
 
 	self.fh = t.item_height or ls_h
 
+	self.fh = t.item_height or (self.font_h + 6)
+
 	local w = self.w
 	if self.scrollbar then w = w - 10 end
 	for j, col in ipairs(self.columns) do
@@ -73,23 +62,11 @@ function _M:init(t)
 		end
 
 		col.surface = core.display.newSurface(col.width, self.fh)
-		col.s = core.display.newSurface(col.width, self.fh)
-		col.ss = core.display.newSurface(col.width, self.fh)
-		col.sus = core.display.newSurface(col.width, self.fh)
-
-		col.ss:merge(ls, 0, 0)
-		for i = ls_w, col.width - rs_w, ms_w do col.ss:merge(ms, i, 0) end
-		col.ss:merge(rs, col.width - rs_w, 0)
-
-		col.s:erase(0, 0, 0)
-
-		col.sus:merge(l, 0, 0)
-		for i = l_w, col.width - r_w, m_w do col.sus:merge(m, i, 0) end
-		col.sus:merge(r, col.width - r_w, 0)
-
-		col._istex = {col.ss:glTexture()}
-		col._itex = {col.s:glTexture()}
-		col._isustex = {col.sus:glTexture()}
+		col.frame = self:makeFrame(nil, col.width, self.fh)
+		col.frame_sel = self:makeFrame("ui/selector-sel", col.width, self.fh)
+		col.frame_usel = self:makeFrame("ui/selector", col.width, self.fh)
+		col.frame_col = self:makeFrame("ui/selector", col.width, self.fh)
+		col.frame_col_sel = self:makeFrame("ui/selector-sel", col.width, self.fh)
 	end
 
 	Base.init(self, t)
@@ -115,7 +92,7 @@ function _M:drawItem(item)
 
 			s:erase(0, 0, 0, 0)
 			-- We use 1000 and do not cut lines to make sure it draws as much as possible
-			text:drawOnSurface(s, 10000, nil, self.font, ls_w, (fh - self.font_h) / 2, color[1], color[2], color[3])
+			text:drawOnSurface(s, 10000, nil, self.font, col.frame_sel.b4.w, (fh - self.font_h) / 2, color[1], color[2], color[3])
 			item._tex = item._tex or {}
 			item._tex[j] = {s:glTexture()}
 		end
@@ -131,8 +108,7 @@ function _M:generate()
 	self.max = #self.list
 	self:selectColumn(1, true)
 
-	local fh = ls_h
-	self.fh = fh
+	local fh = self.fh
 
 	if not self.h then self.h = self.nb_items * fh end
 
@@ -140,14 +116,7 @@ function _M:generate()
 
 	-- Draw the scrollbar
 	if self.scrollbar then
-		local sb, sb_w, sb_h = self:getImage("ui/scrollbar.png")
-		local ssb, ssb_w, ssb_h = self:getImage("ui/scrollbar-sel.png")
-
-		self.scrollbar = { bar = {}, sel = {} }
-		self.scrollbar.sel.w, self.scrollbar.sel.h, self.scrollbar.sel.tex, self.scrollbar.sel.texw, self.scrollbar.sel.texh = ssb_w, ssb_h, ssb:glTexture()
-		local s = core.display.newSurface(sb_w, self.h - fh)
-		for i = 0, self.h - fh do s:merge(sb, 0, i) end
-		self.scrollbar.bar.w, self.scrollbar.bar.h, self.scrollbar.bar.tex, self.scrollbar.bar.texw, self.scrollbar.bar.texh = ssb_w, self.h - fh, s:glTexture()
+		self.scrollbar = Slider.new{size=self.h - fh, max=self.max}
 	end
 
 	-- Draw the list columns
@@ -156,23 +125,14 @@ function _M:generate()
 		local fw = col.width
 		col.fw = fw
 		local text = col.name
-		local ss = core.display.newSurface(fw, fh)
-		local s = core.display.newSurface(fw, fh)
+		local s = col.surface
 
 		self.font:setStyle("bold")
-		ss:merge(cls, 0, 0)
-		for i = cls_w, fw - crs_w do ss:merge(cms, i, 0) end
-		ss:merge(crs, fw - crs_w, 0)
-		ss:drawColorStringBlended(self.font, text, cls_w, (fh - self.font_h) / 2, 255, 255, 255, nil, fw - cls_w - crs_w)
-
-		s:merge(cl, 0, 0)
-		for i = cl_w, fw - cr_w do s:merge(cm, i, 0) end
-		s:merge(cr, fw - cr_w, 0)
-		s:drawColorStringBlended(self.font, text, cl_w, (fh - self.font_h) / 2, 255, 255, 255, nil, fw - cl_w - cr_w)
+		s:erase(0, 0, 0, 0)
+		s:drawColorStringBlended(self.font, text, col.frame_sel.b4.w, (fh - self.font_h) / 2, 255, 255, 255, true, fw - col.frame_sel.b4.w - col.frame_sel.b6.w)
 		self.font:setStyle("normal")
 
 		col._tex, col._tex_w, col._tex_h = s:glTexture()
-		col._stex = ss:glTexture()
 
 		self.mouse:registerZone(colx, 0, col.width, self.fh, function(button, x, y, xrel, yrel, bx, by, event)
 			if button == "left" and event == "button" then self:selectColumn(j) end
@@ -279,17 +239,15 @@ function _M:selectColumn(i, force)
 	end
 end
 
-function _M:display(x, y, nb_keyframes)
+function _M:display(x, y, nb_keyframes, screen_x, screen_y)
 	local bx, by = x, y
 	for j = 1, #self.columns do
 		local col = self.columns[j]
 		local y = y
 		if not self.hide_columns then
-			if self.cur_col == j then
-				col._stex:toScreenFull(x, y, col.fw, self.fh, col._tex_w, col._tex_h)
-			else
-				col._tex:toScreenFull(x, y, col.fw, self.fh, col._tex_w, col._tex_h)
-			end
+			if self.cur_col == j then self:drawFrame(col.frame_col_sel, x, y)
+			else self:drawFrame(col.frame_col_sel, x, y) end
+			col._tex:toScreenFull(x, y, col.fw, self.fh, col._tex_w, col._tex_h)
 			y = y + self.fh
 		end
 
@@ -298,13 +256,13 @@ function _M:display(x, y, nb_keyframes)
 			local item = self.list[i]
 			if not item then break end
 			if self.sel == i then
-				if self.focused then col._istex[1]:toScreenFull(x, y, col.fw, self.fh, col._istex[2], col._istex[3])
-				else col._isustex[1]:toScreenFull(x, y, col.fw, self.fh, col._isustex[2], col._isustex[3]) end
+				if self.focused then self:drawFrame(col.frame_sel, x, y)
+				else self:drawFrame(col.frame_usel, x, y) end
 			else
-				col._itex[1]:toScreenFull(x, y, col.fw, self.fh, col._itex[2], col._itex[3])
+				self:drawFrame(col.frame, x, y)
 				if item.focus_decay then
-					if self.focused then col._istex[1]:toScreenFull(x, y, col.fw, self.fh, col._istex[2], col._istex[3], 1, 1, 1, item.focus_decay / self.focus_decay_max_d)
-					else col._isustex[1]:toScreenFull(x, y, col.fw, self.fh, col._isustex[2], col._isustex[3], 1, 1, 1, item.focus_decay / self.focus_decay_max_d) end
+					if self.focused then self:drawFrame(col.frame_sel, x, y, 1, 1, 1, item.focus_decay / self.focus_decay_max_d)
+					else self:drawFrame(col.frame_usel, x, y, 1, 1, 1, item.focus_decay / self.focus_decay_max_d) end
 					item.focus_decay = item.focus_decay - nb_keyframes
 					if item.focus_decay <= 0 then item.focus_decay = nil end
 				end
@@ -314,8 +272,8 @@ function _M:display(x, y, nb_keyframes)
 			else
 				item._tex[j][1]:toScreenFull(x, y, col.fw, self.fh, item._tex[j][2], item._tex[j][3])
 			end
-			item.last_display_x = x
-			item.last_display_y = y
+			item.last_display_x = screen_x + (x - bx)
+			item.last_display_y = screen_y + (y - by)
 			y = y + self.fh
 		end
 
@@ -323,9 +281,7 @@ function _M:display(x, y, nb_keyframes)
 	end
 
 	if self.focused and self.scrollbar then
-		local pos = self.sel * (self.h - self.fh) / self.max
-
-		self.scrollbar.bar.tex:toScreenFull(bx + self.w - self.scrollbar.bar.w, by + self.fh, self.scrollbar.bar.w, self.scrollbar.bar.h, self.scrollbar.bar.texw, self.scrollbar.bar.texh)
-		self.scrollbar.sel.tex:toScreenFull(bx + self.w - self.scrollbar.sel.w, by + self.fh + pos, self.scrollbar.sel.w, self.scrollbar.sel.h, self.scrollbar.sel.texw, self.scrollbar.sel.texh)
+		self.scrollbar.pos = self.sel
+		self.scrollbar:display(bx + self.w - self.scrollbar.w, by)
 	end
 end
diff --git a/game/engines/default/engine/ui/Separator.lua b/game/engines/default/engine/ui/Separator.lua
index 1bb87ee15f..f930557484 100644
--- a/game/engines/default/engine/ui/Separator.lua
+++ b/game/engines/default/engine/ui/Separator.lua
@@ -32,28 +32,30 @@ end
 
 function _M:generate()
 	if self.dir == "horizontal" then
-		local b4, b4_w, b4_h = self:getImage("border_4.png")
-
-		-- Draw UI
-		self.w, self.h = b4_w, self.size
-		local s = core.display.newSurface(self.w, self.h)
-
-		for i = 0, self.size do s:merge(b4, 0, i) end
-
-		self.tex, self.tex_w, self.tex_h = s:glTexture()
+		self.top = self:getTexture("ui/border_vert_top.png")
+		self.middle = self:getTexture("ui/border_vert_middle.png")
+		self.bottom = self:getTexture("ui/border_vert_bottom.png")
+		self.w, self.h = self.middle.w, self.size
 	else
-		local b8, b8_w, b8_h = self:getImage("border_8.png")
-
-		-- Draw UI
-		self.w, self.h = self.size, b8_h
-		local s = core.display.newSurface(self.w, self.h)
-
-		for i = 0, self.size do s:merge(b8, i, 0) end
-
-		self.tex, self.tex_w, self.tex_h = s:glTexture()
+		self.left = self:getTexture("ui/border_hor_left.png")
+		self.middle = self:getTexture("ui/border_hor_middle.png")
+		self.right = self:getTexture("ui/border_hor_right.png")
+		self.w, self.h = self.size, self.middle.h
 	end
 end
 
 function _M:display(x, y)
-	self.tex:toScreenFull(x, y, self.w, self.h, self.tex_w, self.tex_h)
+	if self.dir == "horizontal" then
+--		x = x - math.floor(self.top.w / 2)
+--		y = y - math.floor(self.top.h / 2)
+		self.top.t:toScreenFull(x, y, self.top.w, self.top.h, self.top.tw, self.top.th)
+		self.bottom.t:toScreenFull(x, y + self.h - self.bottom.h, self.bottom.w, self.bottom.h, self.bottom.tw, self.bottom.th)
+		self.middle.t:toScreenFull(x, y + self.top.h, self.middle.w, self.h - self.top.h - self.bottom.h, self.middle.tw, self.middle.th)
+	else
+--		x = x - math.floor(self.left.w / 2)
+--		y = y - math.floor(self.left.h / 2)
+		self.left.t:toScreenFull(x, y, self.left.w, self.left.h, self.left.tw, self.left.th)
+		self.right.t:toScreenFull(x + self.w - self.right.w, y, self.right.w, self.right.h, self.right.tw, self.right.th)
+		self.middle.t:toScreenFull(x + self.left.w, y, self.w - self.left.w - self.right.w, self.middle.h, self.middle.tw, self.middle.th)
+	end
 end
diff --git a/game/engines/default/engine/ui/Slider.lua b/game/engines/default/engine/ui/Slider.lua
new file mode 100644
index 0000000000..b4147e988d
--- /dev/null
+++ b/game/engines/default/engine/ui/Slider.lua
@@ -0,0 +1,47 @@
+-- TE4 - T-Engine 4
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+require "engine.class"
+local Base = require "engine.ui.Base"
+
+--- A generic UI slider, usualy used by other UI elements
+module(..., package.seeall, class.inherit(Base))
+
+function _M:init(t)
+	self.size = assert(t.size, "no slider size")
+	self.max = assert(t.max, "no slider max")
+	self.pos = t.pos or 0
+
+	Base.init(self, t)
+end
+
+function _M:generate()
+	self.top = self:getTexture("ui/scrollbar_top.png")
+	self.middle = self:getTexture("ui/scrollbar.png")
+	self.bottom = self:getTexture("ui/scrollbar_bottom.png")
+	self.sel = self:getTexture("ui/scrollbar-sel.png")
+	self.w, self.h = self.middle.w, self.size
+end
+
+function _M:display(x, y)
+	self.top.t:toScreenFull(x, y, self.top.w, self.top.h, self.top.tw, self.top.th)
+	self.bottom.t:toScreenFull(x, y + self.h - self.bottom.h, self.bottom.w, self.bottom.h, self.bottom.tw, self.bottom.th)
+	self.middle.t:toScreenFull(x, y + self.top.h, self.middle.w, self.h - self.top.h - self.bottom.h, self.middle.tw, self.middle.th)
+	self.sel.t:toScreenFull(x - (self.sel.w - self.top.w) / 2, y + (self.pos * self.size / self.max) + self.sel.h / 2, self.sel.w, self.sel.h, self.sel.tw, self.sel.th)
+end
diff --git a/game/engines/default/engine/ui/Textzone.lua b/game/engines/default/engine/ui/Textzone.lua
index 45fdc5bb93..8a111e924b 100644
--- a/game/engines/default/engine/ui/Textzone.lua
+++ b/game/engines/default/engine/ui/Textzone.lua
@@ -20,6 +20,7 @@
 require "engine.class"
 local Base = require "engine.ui.Base"
 local Focusable = require "engine.ui.Focusable"
+local Slider = require "engine.ui.Slider"
 
 --- A generic UI list
 module(..., package.seeall, class.inherit(Base, Focusable))
@@ -34,6 +35,7 @@ function _M:init(t)
 	self.no_color_bleed = t.no_color_bleed
 	self.auto_height = t.auto_height
 	self.auto_width = t.auto_width
+	self.color = t.color or {r=255, g=255, b=255}
 
 	if self.auto_width then self.w = 10000 end
 
@@ -64,19 +66,11 @@ function _M:generate()
 	end
 
 	-- Draw the list items
-	self.list = tstring.makeLineTextures(text, self.fw, self.font, true)
+	self.list = tstring.makeLineTextures(text, self.fw, self.font, true, self.color.r, self.color.g, self.color.b)
 
 	-- Draw the scrollbar
 	if self.scrollbar then
-		local sb, sb_w, sb_h = self:getImage("ui/scrollbar.png")
-		local ssb, ssb_w, ssb_h = self:getImage("ui/scrollbar-sel.png")
-
-		self.scrollbar = { bar = {}, sel = {} }
-		self.scrollbar.sel.w, self.scrollbar.sel.h, self.scrollbar.sel.tex, self.scrollbar.sel.texw, self.scrollbar.sel.texh = ssb_w, ssb_h, ssb:glTexture()
-		local s = core.display.newSurface(sb_w, self.h - fh)
-		s:erase(200,0,0)
-		for i = 0, self.h - fh do s:merge(sb, 0, i) end
-		self.scrollbar.bar.w, self.scrollbar.bar.h, self.scrollbar.bar.tex, self.scrollbar.bar.texw, self.scrollbar.bar.texh = ssb_w, self.h - fh, s:glTexture()
+		self.scrollbar = Slider.new{size=self.h - fh, max=self.max - self.max_display + 1}
 	end
 
 	-- Add UI controls
@@ -109,9 +103,7 @@ function _M:display(x, y)
 	end
 
 	if self.focused and self.scrollbar then
-		local pos = self.scroll * (self.h - self.fh) / (self.max - self.max_display + 1)
-
-		self.scrollbar.bar.tex:toScreenFull(bx + self.w - self.scrollbar.bar.w, by + self.fh, self.scrollbar.bar.w, self.scrollbar.bar.h, self.scrollbar.bar.texw, self.scrollbar.bar.texh)
-		self.scrollbar.sel.tex:toScreenFull(bx + self.w - self.scrollbar.sel.w, by + self.fh + pos, self.scrollbar.sel.w, self.scrollbar.sel.h, self.scrollbar.sel.texw, self.scrollbar.sel.texh)
+		self.scrollbar.pos = self.scroll
+		self.scrollbar:display(bx + self.w - self.scrollbar.w, by)
 	end
 end
diff --git a/game/engines/default/engine/ui/TreeList.lua b/game/engines/default/engine/ui/TreeList.lua
index 41a6fdc7a2..c33ed2a24b 100644
--- a/game/engines/default/engine/ui/TreeList.lua
+++ b/game/engines/default/engine/ui/TreeList.lua
@@ -20,18 +20,13 @@
 require "engine.class"
 local Base = require "engine.ui.Base"
 local Focusable = require "engine.ui.Focusable"
+local Slider = require "engine.ui.Slider"
 
 --- A generic UI list
 module(..., package.seeall, class.inherit(Base, Focusable))
 
-local ls, ls_w, ls_h = _M:getImage("ui/selection-left-sel.png")
-local ms, ms_w, ms_h = _M:getImage("ui/selection-middle-sel.png")
-local rs, rs_w, rs_h = _M:getImage("ui/selection-right-sel.png")
-local l, l_w, l_h = _M:getImage("ui/selection-left.png")
-local m, m_w, m_h = _M:getImage("ui/selection-middle.png")
-local r, r_w, r_h = _M:getImage("ui/selection-right.png")
-local plus, plus_w, plus_h = _M:getImage("ui/plus.png")
-local minus, minus_w, minus_h = _M:getImage("ui/minus.png")
+local plus = _M:getTexture("ui/plus.png")
+local minus = _M:getTexture("ui/minus.png")
 
 function _M:init(t)
 	self.tree = assert(t.tree, "no tree tree")
@@ -50,8 +45,7 @@ function _M:init(t)
 	self.key_prop = t.key_prop or "__id"
 	self.sel_by_col = t.sel_by_col and {} or nil
 
-
-	self.fh = ls_h
+	self.fh = t.item_height or (self.font_h + 6)
 
 	local w = self.w
 	if self.scrollbar then w = w - 10 end
@@ -78,6 +72,11 @@ function _M:init(t)
 		end
 
 		col.surface = core.display.newSurface(col.width, self.fh)
+		col.frame = self:makeFrame(nil, col.width, self.fh)
+		col.frame_sel = self:makeFrame("ui/selector-sel", col.width, self.fh)
+		col.frame_usel = self:makeFrame("ui/selector", col.width, self.fh)
+		col.frame_col = self:makeFrame("ui/selector", col.width, self.fh)
+		col.frame_col_sel = self:makeFrame("ui/selector-sel", col.width, self.fh)
 
 		col._backs = {}
 	end
@@ -87,46 +86,6 @@ function _M:init(t)
 	Base.init(self, t)
 end
 
-function _M:getColumnBackground(col, level, sign, shown)
-	if sign then sign = true else sign = false end
-	if shown then shown = true else shown = false end
-	level = (col.id == 1) and level or 0
-	if col._backs[level] and col._backs[level][sign] and col._backs[level][sign][shown] then return col._backs[level][sign][shown] end
-	local backs = {}
-	col._backs[level] = col._backs[level] or {}
-	col._backs[level][sign] = col._backs[level][sign] or {}
-	col._backs[level][sign][shown] = backs
-
-	local s = col.surface
-
-	local offset = 0
-	if col.id == 1 then
-		offset = level * self.level_offset
-		if sign then offset = offset + plus_w end
-	end
-	local startx = ls_w + offset
-
-	s:erase(0, 0, 0)
-	s:merge(ls, offset, 0)
-	for i = offset + ls_w, col.width - rs_w, ms_w do s:merge(ms, i, 0) end
-	s:merge(rs, col.width - rs_w, 0)
-	if col.id == 1 and sign then s:merge(shown and minus or plus, offset - plus_w, 0) end
-	backs._stex, backs._stex_w, backs._stex_h = s:glTexture()
-
-	s:erase(0, 0, 0)
-	if col.id == 1 and sign then s:merge(shown and minus or plus, offset - plus_w, 0) end
-	backs._tex, backs._tex_w, backs._tex_h = s:glTexture()
-
-	s:erase(0, 0, 0)
-	s:merge(l, offset, 0)
-	for i = offset + l_w, col.width - r_w, m_w do s:merge(m, i, 0) end
-	s:merge(r, col.width - r_w, 0)
-	if col.id == 1 and sign then s:merge(shown and minus or plus, offset - plus_w, 0) end
-	backs._sustex, backs._sustex_w, backs._sustex_h = s:glTexture()
-
-	return backs
-end
-
 function _M:drawItem(item)
 	item.cols = {}
 	for i, col in ipairs(self.columns) do
@@ -147,14 +106,14 @@ function _M:drawItem(item)
 		local offset = 0
 		if i == 1 then
 			offset = level * self.level_offset
-			if item.nodes then offset = offset + plus_w end
+			if item.nodes then offset = offset + plus.w end
 		end
-		local startx = ls_w + offset
+		local startx = col.frame_sel.b4.w + offset
 
 		item.cols[i] = {}
 
 		s:erase(0, 0, 0, 0)
-		text:drawOnSurface(s, col.width - startx - rs_w, 1, self.font, startx, (self.fh - self.font_h) / 2, color[1], color[2], color[3])
+		text:drawOnSurface(s, col.width - startx - col.frame_sel.b6.w, 1, self.font, startx, (self.fh - self.font_h) / 2, color[1], color[2], color[3])
 		item.cols[i]._tex, item.cols[i]._tex_w, item.cols[i]._tex_h = s:glTexture()
 	end
 	if self.on_drawitem then self.on_drawitem(item) end
@@ -176,7 +135,7 @@ function _M:generate()
 	self.mouse:reset()
 	self.key:reset()
 
-	local fw, fh = self.w, ls_h
+	local fw, fh = self.w, self.fh
 	self.fw, self.fh = fw, fh
 
 	if not self.h then self.h = self.nb_items * fh end
@@ -185,14 +144,7 @@ function _M:generate()
 
 	-- Draw the scrollbar
 	if self.scrollbar then
-		local sb, sb_w, sb_h = self:getImage("ui/scrollbar.png")
-		local ssb, ssb_w, ssb_h = self:getImage("ui/scrollbar-sel.png")
-
-		self.scrollbar = { bar = {}, sel = {} }
-		self.scrollbar.sel.w, self.scrollbar.sel.h, self.scrollbar.sel.tex, self.scrollbar.sel.texw, self.scrollbar.sel.texh = ssb_w, ssb_h, ssb:glTexture()
-		local s = core.display.newSurface(sb_w, self.h - fh)
-		for i = 0, self.h - fh do s:merge(sb, 0, i) end
-		self.scrollbar.bar.w, self.scrollbar.bar.h, self.scrollbar.bar.tex, self.scrollbar.bar.texw, self.scrollbar.bar.texh = ssb_w, self.h - fh, s:glTexture()
+		self.scrollbar = Slider.new{size=self.h - fh, max=1}
 	end
 
 	-- Draw the tree items
@@ -212,7 +164,7 @@ function _M:generate()
 			end end
 		end
 		self:onSelect()
-		if self.list[self.sel] and self.list[self.sel].nodes and bx <= plus_w and button ~= "wheelup" and button ~= "wheeldown" and event == "button" then
+		if self.list[self.sel] and self.list[self.sel].nodes and bx <= plus.w and button ~= "wheelup" and button ~= "wheeldown" and event == "button" then
 			self:treeExpand(nil)
 		else
 			if (self.all_clicks or button == "left") and button ~= "wheelup" and button ~= "wheeldown" and event == "button" then self:onUse(button) end
@@ -324,21 +276,24 @@ function _M:display(x, y, nb_keyframes)
 			local col = self.columns[j]
 			local item = self.list[i]
 			if not item then break end
-			local backs = self:getColumnBackground(col, item.level, item.nodes, item.shown)
 			if self.sel == i and (not self.sel_by_col or self.cur_col == j) then
-				if self.focused then backs._stex:toScreenFull(x, y, col.width, self.fh, backs._stex_w, backs._stex_h)
-				else backs._sustex:toScreenFull(x, y, col.width, self.fh, backs._sustex_w, backs._sustex_h) end
+				if self.focused then self:drawFrame(col.frame_sel, x, y)
+				else self:drawFrame(col.frame_usel, x, y) end
 			elseif (not self.sel_by_col or self.cur_col == j) then
-				backs._tex:toScreenFull(x, y, col.width, self.fh, backs._tex_w, backs._tex_h)
+				self:drawFrame(col.frame, x, y)
 				if item.focus_decay then
-					if self.focused then backs._stex:toScreenFull(x, y, col.width, self.fh, backs._stex_w, backs._stex_h, 1, 1, 1, item.focus_decay / self.focus_decay_max_d)
-					else backs._sustex:toScreenFull(x, y, col.width, self.fh, backs._sustex_w, backs._sustex_h, 1, 1, 1, item.focus_decay / self.focus_decay_max_d) end
+					if self.focused then self:drawFrame(col.frame_sel, x, y, 1, 1, 1, item.focus_decay / self.focus_decay_max_d)
+					else self:drawFrame(col.frame_usel, x, y, 1, 1, 1, item.focus_decay / self.focus_decay_max_d) end
 					item.focus_decay = item.focus_decay - nb_keyframes
 					if item.focus_decay <= 0 then item.focus_decay = nil end
 				end
-			else
-				backs._tex:toScreenFull(x, y, col.width, self.fh, backs._tex_w, backs._tex_h)
 			end
+
+			if item.nodes and j == 1 then
+				local s = item.shown and minus or plus
+				s.t:toScreenFull(x, y + (self.fh - s.h) / 2, s.w, s.h, s.th, s.th)
+			end
+
 			item.cols[j]._tex:toScreenFull(x, y, col.width, self.fh, item.cols[j]._tex_w, item.cols[j]._tex_h)
 			x = x + col.width
 		end
@@ -346,9 +301,8 @@ function _M:display(x, y, nb_keyframes)
 	end
 
 	if self.focused and self.scrollbar then
-		local pos = self.sel * (self.h - self.fh) / self.max
-
-		self.scrollbar.bar.tex:toScreenFull(bx + self.w - self.scrollbar.bar.w, by + self.fh, self.scrollbar.bar.w, self.scrollbar.bar.h, self.scrollbar.bar.texw, self.scrollbar.bar.texh)
-		self.scrollbar.sel.tex:toScreenFull(bx + self.w - self.scrollbar.sel.w, by + self.fh + pos, self.scrollbar.sel.w, self.scrollbar.sel.h, self.scrollbar.sel.texw, self.scrollbar.sel.texh)
+		self.scrollbar.pos = self.sel
+		self.scrollbar.max = self.max
+		self.scrollbar:display(bx + self.w - self.scrollbar.w, by)
 	end
 end
diff --git a/game/engines/default/engine/utils.lua b/game/engines/default/engine/utils.lua
index 99f5bd91bf..fdc6c51b10 100644
--- a/game/engines/default/engine/utils.lua
+++ b/game/engines/default/engine/utils.lua
@@ -647,15 +647,15 @@ function tstring:splitLines(max_width, font)
 	return ret, max_w
 end
 
-function tstring:makeLineTextures(max_width, font, no_split)
+function tstring:makeLineTextures(max_width, font, no_split, r, g, b)
 	local list = no_split and self or self:splitLines(max_width, font)
 	local fh = font:lineSkip()
 	local s = core.display.newSurface(max_width, fh)
 	s:erase(0, 0, 0, 0)
 	local texs = {}
 	local w = 0
-	local r, g, b = 255, 255, 255
-	local oldr, oldg, oldb = 255, 255, 255
+	local r, g, b = r or 255, g or 255, b or 255
+	local oldr, oldg, oldb = r, g, b
 	local v, tv
 	for i = 1, #list do
 		v = list[i]
diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index 716087f729..118179bf0c 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -853,8 +853,7 @@ function _M:setupCommands()
 		end end,
 		[{"_g","ctrl"}] = function() if config.settings.cheat then
 --			self.nicer_tiles:postProcessLevelTiles(self.level)
-			local m = game.zone:makeEntity(game.level, "object", {properties={"lore"}}, nil, true)
-			game.zone:addEntity(game.level, m, "object", game.player.x, game.player.y)
+			game:registerDialog(require("mod.dialogs.Donation").new())
 		end end,
 	}
 
diff --git a/game/modules/tome/class/interface/PlayerLore.lua b/game/modules/tome/class/interface/PlayerLore.lua
index abfd377ed0..4a7579d4ab 100644
--- a/game/modules/tome/class/interface/PlayerLore.lua
+++ b/game/modules/tome/class/interface/PlayerLore.lua
@@ -19,6 +19,7 @@
 
 require "engine.class"
 local Dialog = require "engine.ui.Dialog"
+local LorePopup = require "mod.dialogs.LorePopup"
 
 module(..., package.seeall, class.make)
 
@@ -75,7 +76,7 @@ end
 function _M:learnLore(lore)
 	if not self:knownLore(lore) then
 		local l = self:getLore(lore)
-		Dialog:simpleLongPopup("Lore found: #0080FF#"..l.name, "#ANTIQUE_WHITE#"..util.getval(l.lore), game.w * 0.6, nil, nil, 0.8)
+		LorePopup.new(l, game.w * 0.6, 0.8)
 		game.logPlayer(self, "Lore found: #0080FF#%s", l.name)
 		game.logPlayer(self, "#ANTIQUE_WHITE#%s", util.getval(l.lore))
 		game.logPlayer(self, "You can read all your collected lore in the game menu, by pressing Escape.")
diff --git a/game/modules/tome/data/general/objects/boss-artifacts.lua b/game/modules/tome/data/general/objects/boss-artifacts.lua
index 89202fa735..12651ce7ff 100644
--- a/game/modules/tome/data/general/objects/boss-artifacts.lua
+++ b/game/modules/tome/data/general/objects/boss-artifacts.lua
@@ -801,7 +801,7 @@ newEntity{ base = "BASE_GEM", define_as = "CRYSTAL_FOCUS",
 			o.unique = o.name
 			o.no_unique_lore = true
 			if o.combat and o.combat.dam then
-				o.combat.dam = o.combat.dam * 1.5
+				o.combat.dam = o.combat.dam * 1.25
 				o.combat.damtype = engine.DamageType.ARCANE
 			end
 			o.wielder = o.wielder or {}
diff --git a/game/modules/tome/data/gfx/ui/parchment1.png b/game/modules/tome/data/gfx/ui/parchment1.png
new file mode 100644
index 0000000000000000000000000000000000000000..1204872001b2f74f6ee48d436b08a6f204b5e0fb
GIT binary patch
literal 5246
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

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchment2.png b/game/modules/tome/data/gfx/ui/parchment2.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5c5c23245189ab4f08e099c4e70536acb409728
GIT binary patch
literal 5818
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

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchment3.png b/game/modules/tome/data/gfx/ui/parchment3.png
new file mode 100644
index 0000000000000000000000000000000000000000..053d56494a64c4b8a957400665b0de14797f8702
GIT binary patch
literal 5096
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

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchment4.png b/game/modules/tome/data/gfx/ui/parchment4.png
new file mode 100644
index 0000000000000000000000000000000000000000..af534d4a3253cb842a33aa75a5372f9687b17f38
GIT binary patch
literal 6033
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
X4~)Ip)Y*`=&w-Q2y^hu4f;0ag)iOT}

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchment5.png b/game/modules/tome/data/gfx/ui/parchment5.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3aee676a26ba0895abc6a564515eb2e6dc52c28
GIT binary patch
literal 5086
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
b0wJ(Hq+iFRtKS@aivzHZ$1pXA&n5g1?V++)

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchment6.png b/game/modules/tome/data/gfx/ui/parchment6.png
new file mode 100644
index 0000000000000000000000000000000000000000..10f0fa0a6af3808498dcf02df56389464e25c2e5
GIT binary patch
literal 5743
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
LVOIwBZ1VpAd^zor

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchment7.png b/game/modules/tome/data/gfx/ui/parchment7.png
new file mode 100644
index 0000000000000000000000000000000000000000..93e2b95813484e9a26a5e3fa4d6489609b39ddad
GIT binary patch
literal 5266
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

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchment8.png b/game/modules/tome/data/gfx/ui/parchment8.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f12823702b6f66592357f7cf3771c8b1063f2a4
GIT binary patch
literal 5935
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

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchment9.png b/game/modules/tome/data/gfx/ui/parchment9.png
new file mode 100644
index 0000000000000000000000000000000000000000..25b3ec0a34b91d8e715c11d69223eeac231a6df0
GIT binary patch
literal 5131
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
K-tAto7yl20)(ZXr

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchmentblood1.png b/game/modules/tome/data/gfx/ui/parchmentblood1.png
new file mode 100644
index 0000000000000000000000000000000000000000..ddda2adc90189b35119fb376f4a7b1f9a16e0406
GIT binary patch
literal 782
zcmV+p1M&QcP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01Y|-01Y|;10o)U00007bV*G`2ipP}
z5fLi^eI70V0013nR9JLFZ*6U5Zgc<u0000(a%Ew3Wn>_CX>@2HM@dakWG-a~0007I
zNkl<ZSi|MlOOFh36b0~K)$}~tYYg#-M93^mEW|4lLP8LH2C=ZVs83Ugt@r{$f|!V%
z5V0YVNQk#Vh%iPBX7pIp9k2AX>8c(U{+mvBRrS61+;h&o#s7Yib|1*;Mi0JVDr34z
z0<|`SFUB^k!gV~Uia^>%@Lue~K|IH+PPCvl$KVN;Vk@5EcE&^}5=iqu@F1?&F^o~1
z$NNr^Fh$=S?pYQHT*qieqhl(_*%FXW%~Jisfc_y~WPB~5oG$cZ5X*5Nk25A~cy0EI
zx-g(f?p4X)bqrxI4q!b-ic6l<vZAkABrt(nS)u!O0w+=RP8^8@`onuRVL?+B<i&5P
z!eII^mN8kPy}j6s<JcXotSSEMZG8TkK+Xyr#wT2gewCHmKtR3+i=wFU@Q*Gua?;vw
zkPYD&uHa(Eg9-$%N55x+Kf@_pz*<GIqu-q{JpC?C;w(N^RM<PbiJ9>d=Wrs_G=vR)
zMj*~>oX(0CR6XOk8i6k3QCRuDXzgWuNzCKPSrR7J7tCL$kn#=O%=nNrk&db(c9s#o
zAihoqv8OVolel3<BIA)j!(Tc{*yM09b0o-@qS4HrJAGyh=MA3v5pXqn@)8?Usg*2H
zm<iVSn=NQXoV3ETNnRjWn-c;}rq{}_%+Kwj5vyAr+hcXR*NRK&EJ^LhjuK02E#x*C
z!N>fefMx+Ea3;*7QG(Q;Vqd&7FYg6SjH?@yWz8!sOTvJAP566H$KMNDkuQP|;%JQ9
zq+<!pQGUJH7&HDFK3B2g-soYYjo$afNd1t-{HT(^p%{;2|H1*k0Tw}?nOgeg8UO$Q
M07*qoM6N<$f+90m^Z)<=

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchmentblood2.png b/game/modules/tome/data/gfx/ui/parchmentblood2.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc14764296191cff425f9e6e5d16e46361f66b35
GIT binary patch
literal 671
zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01Y|-01Y|;10o)U00007bV*G`2ipP}
z5fTmfUC0ms0013nR9JLFZ*6U5Zgc<u0000(a%Ew3Wn>_CX>@2HM@dakWG-a~0005@
zNkl<ZSi|kty=zlp6bA5LlD4$5R?#Rb3NC&uB7((1MbKRo^gnR)PW~YdcXx9WoOJA>
zgP?<hAby~NR7<PWQrg5OO&#tjgli*hawCX6aJjsB-^+R4=RD^lY}@~CrOri~tw%6{
z-Lc=mH#8F3MFSYhtw(VTS8x{Nn8y^RQl=Bu1_B^%zZW-g3pJEwx1K~357CITiU3p2
ztq<Z{I3J4rAsojgjHL`?KX#?L5cUgTJ^rH`09$8k4M%Ysmr>~#L>|B*zN3{p*9sxF
z1Hc9BDIyG=0M@X87ns3nI9$P7Ji{{H;Xa-wzXR<%4XZeX>$r$9Oye=0;B|acMLo%c
znNQ(%=kLALfe9SJVN~!1U$KOxZnYrgPzZPquM&Q2xei1;7t)OCkHNq`oWy5*=;FMB
zGq{8IxT_Zc9YC6Brdc{(!+AWyy$DkyD&x8Uhl9C^5a(F0bzr0Y6}*h670%l^^|vq^
zq52eI*t!Nbptgzwac(BbbkOZ=4W}cG-z3!kdS^>16;U0x?ccDJ9feOsTXcQ{5AYMK
zy*8y%9}J8~Png7W%=H4I+y{HhGA2&MyEHHcx{Y9I*8O&3G07@s@c_a}ElTiw(L-r@
z6F0BnYQ%b^=xo}I2I|q8XJbkl+#i!aurM4Quw~l{wqN>Nf{pv-kz@b>002ovPDHLk
FV1hDM703Vp

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchmentblood3.png b/game/modules/tome/data/gfx/ui/parchmentblood3.png
new file mode 100644
index 0000000000000000000000000000000000000000..d069932e34e33b9ce8a54b83ae86978ae78f81eb
GIT binary patch
literal 981
zcmV;`11kK9P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01Y|-01Y|;10o)U00007bV*G`2ipP}
z5fUa;;W1DE0013nR9JLFZ*6U5Zgc<u0000(a%Ew3Wn>_CX>@2HM@dakWG-a~0009l
zNkl<ZSi{}cOKV(p7zXg)OePm&qiL;LZ><Hfid1S{v?_wMf)XzU1$TmoZo~tw`~c!N
zm}PhF1Ql@;6mj83p+@Ni!D^}|XzdN6O-$^hjf?XP9L7k-nd!zC{>+>U=e<48^S(8G
zSd$v+xRT#3xD&tNTtRE2Z`A&)qk^^EYsA?ee1o}e9Clj0OXoM?G2GE)IFB~r3A~NR
zb8X-OC>`#PqgS!B$q-gCkK-wMtCs*8>t)<7b0x@OjNvJKhhMRb&vShy*Zl>Ma*w6V
z%jxMQoWO^8B#!C@m$8u3vki4PpG;q0Kz)kS1(&8+!d$?13=7jG^82>V7F>h-@F=!p
zp~*~9W_>bepjPW>!6<g%LEMd>@h<)f%C`m&7qC#2Kpb2El~#=6I$XpGZotC<;WnJY
zJ2+bO*@}O#APiW^(JaxwI}|*CkpOcm-bgiiwr+Ib+Th}WP_YrLJcJ$1?!M7|1^(ro
zvGjf|y1#-iaDLz|SjU#|H9n5+x1tN5Vxq}dk#<#ZG!%SY?hv(}0$2|Je-AZRF^*?&
zFAn3!4kqnPdr#VcDUB`$Q4Na`pc8qtJMCCgDq{QndKmK@KI(~vl~FsIGaL<Q;e0SK
zo@y*&z9@B~T7g@YD!Q^kf+Oqcz*s);M*_SJuVv_bnT#h=jWfN1uvs!`Z=<8!6WE8n
z_#heIob2Zk(3ObPcAV{FliGsKLzNqwGXq}7({ZpVeE%x_{xeG0!cnYFS1{16O=GJ3
zd!be-$No4!kVWIO%z#69FG0*k14b&iI9~L)j6gle-IkSWU*`Ma45jBosh5K6rBvcY
zypopnJ&uQPBkm7{*6=2-58B(*TBuayS)7YDto9qgT7qaVC!;}rEzerX{8WOO$h~9P
z1q~vAvzWm>xIH~?PsOEVI-kk+e(>-^QC6Y<eV|#EdRG8=Fq*%F@1qHec&p%(L2pEj
zir#;V)8YHeq1+6f#83FmRj~Dxa56)t&HFv+{SnM=B(HrhBt?n#BLUeh0o}oz$w60O
z-EAhzW-C?L6_vcGGIXw53p&~{j=PfiY=+OO|C9X<y?5k#^B1gb00000NkvXXu0mjf
Dk@>@V

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchmentblood4.png b/game/modules/tome/data/gfx/ui/parchmentblood4.png
new file mode 100644
index 0000000000000000000000000000000000000000..959a9c87c680a6022d53e6353ca450b16665e28d
GIT binary patch
literal 594
zcmV-Y0<HatP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01Y|-01Y|;10o)U00007bV*G`2ipP}
z5fcLj{?t|g0013nR9JLFZ*6U5Zgc<u0000(a%Ew3Wn>_CX>@2HM@dakWG-a~00050
zNkl<ZSi|ktKTi}v7zXg)?x7y>Ph+8lgaouBCKM1mD-&a5?|0ZQVK2>Ad;()dp_Q6o
zB^7)EjDjJNgb+v|cb<Au>?DME-p+bsw@<Z`op;}7-g(}6W-}2e$uNzps^{Z^?=>-3
zkQemE&C4Q^U&dW5V^%d@!&bp?Ox!d&I4$`7w|P?$1-Ol8cpN_X9{b~xL*2@w2$WUA
zTey#1Y~UUCB|=>VhWLzC9AO&=1;0`e$RY)pV>oUvTl}{zh(%fHsf&KW&)B#;QSuIE
z@C0*V+^h?N*sg`X?+3N_BEQqc5}xA~R&d<34ZB#x)6i~j@HLV^ADeiAFXD+`*n%5)
zfQPsj2t^^B3p;p;^@72_97H{Q!Uw#?w<bCW!aJGdBs{@7ws3&c2?RM+=azr8VF<j0
zL5<60A;FIk?{duJ4nD?^$VZH`2-2N$#Ju9%J2o0uAo5;tGmt!N(4vzQ2&-MdBbCBm
zV>g94<&nud;h<R#qz9>-F}4CZ=7P9(u-By5Q<+UxCi0FJEn2ilek(4|U9|DfOP(nC
gLb%FZFB>lE3|Sy%<-f}HCIA2c07*qoM6N<$f@q}k-v9sr

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/ui/parchmentblood5.png b/game/modules/tome/data/gfx/ui/parchmentblood5.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e6c047bb24fdee9113618af865d9ea126b9ad17
GIT binary patch
literal 1446
zcmV;X1zGxuP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01Y|-01Y|;10o)U00007bV*G`2ipP}
z5fc^iDq#lz0013nR9JLFZ*6U5Zgc<u0000(a%Ew3Wn>_CX>@2HM@dakWG-a~000F2
zNkl<Zc-rln%WGU^7{-5diDNQTHP+f#)5b<ci6Y)m5EmliB_f4_6zNI?7sBUX;nvl+
za3SczjSB^}ixCB}qJmPPSglD-Qfq74#I!N#OyYEIF1}|>taCYYIdgi_^TH5@GdbUR
z-|xLV&+{FKEV9TVi!8FpdSMn~VSDCSj~pKWhH-y$23D?$0BFZ|0#5+<14F<x@ScIy
zFa#jkrSl`e%fNm)|0VD>kPE2%ZUA-zabV8NCM3IDcR=^}7MKDK11Ahr>OG)=s*f=k
z03HYS0hfTcfMY!kfNDLXIxku{2fVAr7l5@!PWtRTKmr(4S^oj#{V0Jk;A!A9V8*ye
zpKg_!eQ+M2pbVVGrT*ET20%4-J#Y{3o!9^Clk=$T7WDCF3Rt)fxD_~K;9`T{#MOk#
z{c^rRscr)<8YudX11`&wZR*4)S}pFA^Kq5xKHwwZ_j*matrD=10!jwT9uQy!2ZRFI
zeXW~QFUYrg4zE4n-?VNJ@wC3?jaxhykn<R*T37-;_fm$j7U?{wn-rR4#+|@(z&!AY
zMr2UC-?qhDIR6wdVe4dyc788#5O@i=O|v*u7H@K`q#3_V{U(wE9tECPY0Rkvs-X{n
zfvP~xFTi|*E}8*u0=5H3fT<w5zOQ7+z~4<S=Y+f}0!A}o)G)dsLj~Yx;1muNT?%6W
zy43?}<FV2VY;3szXetZ?Hv`v*cr1o72+0ndPXLbq&q@ti)%?E@#xiJE4~S{jj{&2=
zufP|Y7R4=F0@jVY0<b1*y+gbIr&7O6NG;~U`805#mgb$*d5tW!3z96PjYnn2?+obp
zLDVq!h$hb(k3`8jk@ZF313!b{`$2|vjvoLfa6;uwvrN!vt%}tR8CP~!BoOjy>uQuo
zfU_-}PvNBPzkq_@&i5q)8ub7<TQ-h#)pq`N+!@1%I9<QeMcJhl%oS1eQcxMtsQD%8
zs5Lo_)NTcpjIhcxxHF5dG_iuofPO-2W!o6=8t^Jk!hgfSj~!>g=Emf6rc~(8@r)Fz
zaokDOA?^M-&rQ(6wW^&}18ai5BVv44@_}a(xC3|vcu*7PO`KG>+>Ri!8z*tyXC2W=
z0=EDownsg~Lfkf2qdKvap7SB8Su4OX<B)2xoiR9s)AxR0BPFNA`g&CYe)OJ#p7U*-
zkaN^PS%FSy;#9l@;IwWs&xWj=vk>nU-Svq(lyHZlheXWso2E@l0ScvN5m{tmfWm4v
zJ2i*T0H?yB6U2KQ%)5ctaW74!uc{1C77Qy03%FzHQUjuLqx6CE#xcLG5de>HbrhHc
z9uwAhUx5guT#|iWFCm=%0`LItSS<<6S~!n8UFxg6o(!Ppq(oZMqO23b>L~%4k1c%K
zsD%93k-pjF29!>z50n&)F?}Bg?iG@on}l4pOZaUemhC10782PWaeypTCml|o2afAg
zQeVg@Lk59ez$`GA?J^6potA*!wAulTTR6!kRwb4=sx)3w6Z3j1w60n|sZ5xb(@$=?
z-!O0&?(}&*s2-389>%>3{Emc$+FRfwqRe}MZ*Voc*oHh-#xb=ba8%s=xPa7eI5G4v
zeR%6U*@9gyYlklI-!WCoj$Pv5sSa6T)jFZ&dj%jRDqE2NQw%Zy>%dO}HH(*};ymsh
z;qB_&OO4=htC6Pbd3-(riY&6oB8x1t$o^;l0CYuvs(_e7bN~PV07*qoM6N<$f^)oy
AZ~y=R

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/lore/age-allure.lua b/game/modules/tome/data/lore/age-allure.lua
index e38b646b7c..caf075978e 100644
--- a/game/modules/tome/data/lore/age-allure.lua
+++ b/game/modules/tome/data/lore/age-allure.lua
@@ -116,6 +116,7 @@ newLore{
 	id = "halfling-research-note-4",
 	category = "age of allure",
 	name = "research log of halfling mage Hompalan",
+	bloodstains = 7,
 	lore = [[
 #{bold}#Hompalan's Log Entry 9#{normal}#
 #{italic}#Age of Allure 4549#{normal}#
diff --git a/game/modules/tome/data/lore/maze.lua b/game/modules/tome/data/lore/maze.lua
index 7cdf247f65..b97d01fb8d 100644
--- a/game/modules/tome/data/lore/maze.lua
+++ b/game/modules/tome/data/lore/maze.lua
@@ -84,6 +84,7 @@ newLore{
 	id = "maze-note-7",
 	category = "maze",
 	name = "diary (the maze)",
+	bloodstains = 2,
 	lore = [[Dear diary,
 
 #{italic}#This text is unreadable as it is thoroughly caked in blood.#{normal}#]],
diff --git a/game/modules/tome/data/lore/old-forest.lua b/game/modules/tome/data/lore/old-forest.lua
index 0fd0b4852d..f360b35dee 100644
--- a/game/modules/tome/data/lore/old-forest.lua
+++ b/game/modules/tome/data/lore/old-forest.lua
@@ -75,6 +75,7 @@ newLore{
 	id = "old-forest-note-6",
 	category = "old forest",
 	name = "journal entry (old forest)",
+	bloodstains = 4,
 	lore = [[#{italic}#From the notes of Darwood Oakton, explorer:
 #{bold}#CHAPTER SIX: HORR...
 
diff --git a/game/modules/tome/data/lore/trollmire.lua b/game/modules/tome/data/lore/trollmire.lua
index 910f22705d..07d1260f3c 100644
--- a/game/modules/tome/data/lore/trollmire.lua
+++ b/game/modules/tome/data/lore/trollmire.lua
@@ -58,6 +58,7 @@ newLore{
 	id = "trollmire-note-5",
 	category = "trollmire",
 	name = "tattered paper scrap (trollmire)",
+	bloodstains = 3,
 	lore = [[You find a tattered page scrap. Perhaps this is part of a diary entry.
 "...writing this in a tree and he's at the bottom of it. Waiting. His club is the size of a tall dwarf. Don't think I'm going to make it."]],
 }
diff --git a/game/modules/tome/dialogs/LorePopup.lua b/game/modules/tome/dialogs/LorePopup.lua
new file mode 100644
index 0000000000..ae39ea07e7
--- /dev/null
+++ b/game/modules/tome/dialogs/LorePopup.lua
@@ -0,0 +1,72 @@
+-- ToME - Tales of Maj'Eyal
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+require "engine.class"
+local Dialog = require "engine.ui.Dialog"
+local ListColumns = require "engine.ui.ListColumns"
+local TextzoneList = require "engine.ui.TextzoneList"
+local Separator = require "engine.ui.Separator"
+
+module(..., package.seeall, class.inherit(Dialog))
+
+function _M:init(l, w, force_height)
+	local text = util.getval(l.lore).."\n"
+	local list = text:splitLines(w - 10, self.font)
+
+	self.frame = {
+		shadow = {x = 10, y = 10, a = 0.5},
+		ox1 = -16, ox2 = 16,
+		oy1 = -16, oy2 = 16,
+		b7 = "ui/parchment7.png",
+		b9 = "ui/parchment9.png",
+		b1 = "ui/parchment1.png",
+		b3 = "ui/parchment3.png",
+		b4 = "ui/parchment4.png",
+		b6 = "ui/parchment6.png",
+		b8 = "ui/parchment8.png",
+		b2 = "ui/parchment2.png",
+		b5 = "ui/parchment5.png",
+	}
+	if l.bloodstains then
+		local ovs = {}
+		for i = 1, l.bloodstains do
+			ovs[#ovs+1] = {image="ui/parchmentblood"..rng.range(1, 5)..".png", gen=function(self, dialog)
+				self.x = rng.range(30, dialog.w - 60)
+				self.y = rng.range(30, dialog.h - 60)
+				self.a = rng.float(0.5, 0.8)
+			end}
+		end
+		self.frame.overlays = ovs
+	end
+
+	Dialog.init(self, "Lore found: #0080FF#"..l.name, 1, 1)
+
+	local h = math.min(force_height and (force_height * game.h) or 999999999, self.font_h * #list)
+	self:loadUI{
+		{left = 3, top = 3, ui=require("engine.ui.Textzone").new{
+				width=w+10, height=h, scrollbar=(h < self.font_h * #list) and true or false, text=text, color={r=0x3a, g=0x35, b=0x33},
+			}
+		}
+	}
+	if not no_leave then
+		self.key:addBind("EXIT", function() game:unregisterDialog(self) if fct then fct() end end)
+	end
+	self:setupUI(true, true)
+	game:registerDialog(self)
+end
diff --git a/game/modules/tome/dialogs/debug/ChangeZone.lua b/game/modules/tome/dialogs/debug/ChangeZone.lua
index e19b23fa0a..0168539ab5 100644
--- a/game/modules/tome/dialogs/debug/ChangeZone.lua
+++ b/game/modules/tome/dialogs/debug/ChangeZone.lua
@@ -28,7 +28,7 @@ function _M:init()
 	self:generateList()
 	engine.ui.Dialog.init(self, "Debug/Cheat! It's BADDDD!", 1, 1)
 
-	local list = List.new{width=400, height=500, list=self.list, fct=function(item) self:use(item) end}
+	local list = List.new{width=400, height=500, scrollbar=true, list=self.list, fct=function(item) self:use(item) end}
 
 	self:loadUI{
 		{left=0, top=0, ui=list},
diff --git a/src/core_lua.c b/src/core_lua.c
index ebbf456345..8ad2ed6197 100644
--- a/src/core_lua.c
+++ b/src/core_lua.c
@@ -1018,6 +1018,24 @@ static int sdl_texture_toscreen_full(lua_State *L)
 	return 0;
 }
 
+static int gl_scale(lua_State *L)
+{
+	if (lua_isnumber(L, 1))
+	{
+		glPushMatrix();
+		glScalef(lua_tonumber(L, 1), lua_tonumber(L, 2), lua_tonumber(L, 3));
+	}
+	else
+		glPopMatrix();
+	return 0;
+}
+
+static int gl_translate(lua_State *L)
+{
+	glTranslatef(lua_tonumber(L, 1), lua_tonumber(L, 2), lua_tonumber(L, 3));
+	return 0;
+}
+
 static int sdl_texture_bind(lua_State *L)
 {
 	GLuint *t = (GLuint*)auxiliar_checkclass(L, "gl{texture}", 1);
@@ -1520,6 +1538,8 @@ static const struct luaL_reg displaylib[] =
 	{"getModesList", sdl_get_modes_list},
 	{"setMouseCursor", sdl_set_mouse_cursor},
 	{"setGamma", sdl_set_gamma},
+	{"glTranslate", gl_translate},
+	{"glScale", gl_scale},
 	{NULL, NULL},
 };
 
-- 
GitLab