Unbake the special help texts.

The text in the various help dialogs that was previously baked into an image is now drawn as text, meaning that it benefits from text unblurring when scaling is active.

This entails some small changes to layout, since it's a different font.

Dialog engine changes:
* A new picture type allowing to draw the inventory button icons directly into a dialog.
* A new widget type that simply draws a line between two points.
This commit is contained in:
2025-03-09 11:34:38 -04:00
committed by Celtic Minstrel
parent 09e5649a61
commit 8b08b46ea0
27 changed files with 368 additions and 20 deletions

View File

@@ -10,7 +10,30 @@
To have the PC stand ready, click on them.
The buttons on the bottom act as follows:
</text>
<pict type='full' num='1401' top='66' left='147' width='320' height='125'/>
<pict name='toolbar' type='blank' outline='solid' color='white' top='66' left='147' width='320' height='125'/>
<pict name='ztoolbar' anchor='toolbar' relative='pos-in' type='full' framed='false' num='1401' top='56' left='23' width='266' height='38'/>
<text name='zheader' anchor='toolbar' relative='pos-in' color='black' top='4' left='0'>Combat Commands:</text>
<text name='zparen' anchor='toolbar' relative='pos-in' color='black' top='14' left='10' width='280' size='10' font='plain'>
(keyboard shortcut follows in parenthesis)
</text>
<text name='zlabel1' anchor='toolbar' relative='pos-in' color='black' top='30' left='27' size='9' font='plain'>Cast Priest (p)</text>
<line name='zline1' anchor='toolbar' relative='pos-in' top='44' left='79' width='0' height='12' color='black'/>
<text name='zlabel2' anchor='toolbar' relative='pos-in' color='black' top='30' left='114' size='9' font='plain'>Parry (d)</text>
<line name='zline2' anchor='toolbar' relative='pos-in' top='44' left='146' width='0' height='12' color='black'/>
<text name='zlabel3' anchor='toolbar' relative='pos-in' color='black' top='30' left='189' size='9' font='plain'>Wait (w)</text>
<line name='zline3' anchor='toolbar' relative='pos-in' top='44' left='218' width='0' height='12' color='black'/>
<text name='zlabel4' anchor='toolbar' relative='pos-in' color='black' top='30' left='234' size='9' font='plain'>End Combat (e)</text>
<line name='zline4' anchor='toolbar' relative='pos-in' top='44' left='277' width='0' height='12' color='black'/>
<text name='zlabel5' anchor='toolbar' relative='pos-in' color='black' top='105' left='-2' size='9' font='plain'>Cast Mage (m)</text>
<line name='zline5' anchor='toolbar' relative='pos-in' top='94' left='42' width='0' height='13' color='black'/>
<text name='zlabel6' anchor='toolbar' relative='pos-in' color='black' top='105' left='81' size='9' font='plain'>Look (l)</text>
<line name='zline6' anchor='toolbar' relative='pos-in' top='94' left='113' width='0' height='13' color='black'/>
<text name='zlabel7' anchor='toolbar' relative='pos-in' color='black' top='105' left='151' size='9' font='plain'>Get (g)</text>
<line name='zline7' anchor='toolbar' relative='pos-in' top='94' left='188' width='0' height='13' color='black'/>
<text name='zlabel8' anchor='toolbar' relative='pos-in' color='black' top='105' left='189' size='9' font='plain'>Shoot (s)</text>
<line name='zline8' anchor='toolbar' relative='pos-in' top='94' left='223' width='0' height='13' color='black'/>
<text name='zlabel9' anchor='toolbar' relative='pos-in' color='black' top='105' left='235' size='9' font='plain'>Make Active (x)</text>
<line name='zline9' anchor='toolbar' relative='pos-in' top='94' left='276' width='0' height='13' color='black'/>
<text top='206' left='66' width='475' height='35'>
Make Active -
This either makes only current character active,
@@ -23,7 +46,32 @@
and being hasted increases it.
The cost of each action is ...
</text>
<pict type='full' num='1300' top='232' left='284' width='275' height='100'/>
<pict name='apcost' type='blank' outline='solid' color='white' top='232' left='284' width='275' height='100'/>
<text name='zheader2' anchor='apcost' relative='pos-in' color='black' size='11' underline='true' top='5' left='-2'>Action Point Cost:</text>
<text name='zaction1' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='18' left='2'>Cast Mage Spell</text>
<text name='zpoints1' anchor='apcost' relative='pos-in' color='black' size='10' top='20' left='105'>6</text>
<text name='zaction2' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='30' left='2'>Cast Priest Spell</text>
<text name='zpoints2' anchor='apcost' relative='pos-in' color='black' size='10' top='32' left='105'>5</text>
<text name='zaction3' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='42' left='2'>Attack</text>
<text name='zpoints3' anchor='apcost' relative='pos-in' color='black' size='10' top='44' left='105'>4</text>
<text name='zaction4' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='54' left='2'>Fire Arrow</text>
<text name='zpoints4' anchor='apcost' relative='pos-in' color='black' size='10' top='56' left='105'>3</text>
<text name='zaction5' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='66' left='2'>Fire Thrown Missile</text>
<text name='zpoints5' anchor='apcost' relative='pos-in' color='black' size='10' top='68' left='105'>2</text>
<text name='zaction6' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='78' left='2'>Get Items</text>
<text name='zpoints6' anchor='apcost' relative='pos-in' color='black' size='10' top='80' left='105'>4</text>
<text name='zaction7' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='18' left='117' width='138'>Equip/Unequip Item</text>
<text name='zpoints7' anchor='apcost' relative='pos-in' color='black' size='10' top='20' left='230'>1</text>
<text name='zaction8' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='30' left='117'>Drop Item</text>
<text name='zpoints8' anchor='apcost' relative='pos-in' color='black' size='10' top='32' left='230'>1</text>
<text name='zaction9' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='42' left='117'>Give Item</text>
<text name='zpoints9' anchor='apcost' relative='pos-in' color='black' size='10' top='44' left='230'>1</text>
<text name='zaction10' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='54' left='117'>Trade Places</text>
<text name='zpoints10' anchor='apcost' relative='pos-in' color='black' size='10' top='56' left='230'>1</text>
<text name='zaction11' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='66' left='117'>Parry</text>
<text name='zpoints11' anchor='apcost' relative='pos-in' color='black' size='10' top='68' left='230' width='25'>All</text>
<text name='zaction12' anchor='apcost' relative='pos-in' color='black' size='10' font='plain' top='78' left='117'>Look</text>
<text name='zpoints12' anchor='apcost' relative='pos-in' color='black' size='10' top='80' left='230'>0</text>
<text top='348' left='66' width='476' height='49'>
Outdoors, you can only end combat when all foes are dead.
In an outdoor combat, to flee, move everyone off the border of the battlefield.

View File

@@ -21,7 +21,21 @@
The Sell, ID, and Enchant buttons only appear when talking to a person who can do these things.
Many shopkeepers will buy your items, and certain sages can identify and even enchant them.
</text>
<pict type='full' num='1100' top='136' left='350' width='138' height='112'/>
<pict name='buttons' type='blank' outline='solid' color='white' top='136' left='350' width='138' height='112'/>
<pict name='zuse1' anchor='buttons' relative='pos-in' filled='false' type='btn' num='2' top='9' left='20' framed='false'/>
<text name='zuse2' anchor='buttons' relative='pos-in' top='6' left='45' color='black' size='9'>Use Item</text>
<pict name='zgive1' anchor='buttons' relative='pos-in' filled='false' type='btn' num='3' top='22' left='20' framed='false'/>
<text name='zgive2' anchor='buttons' relative='pos-in' top='19' left='45' color='black' size='9'>Give Item</text>
<pict name='zdrop1' anchor='buttons' relative='pos-in' filled='false' type='btn' num='4' top='35' left='19' framed='false'/>
<text name='zdrop2' anchor='buttons' relative='pos-in' top='33' left='45' color='black' size='9'>Drop Item</text>
<pict name='zinfo1' anchor='buttons' relative='pos-in' filled='false' type='btn' num='5' top='48' left='19' framed='false'/>
<text name='zinfo2' anchor='buttons' relative='pos-in' top='46' left='45' color='black' size='9'>Item Info</text>
<pict name='zid1' anchor='buttons' relative='pos-in' filled='false' type='btn' num='6' top='62' left='11' framed='false'/>
<text name='zid2' anchor='buttons' relative='pos-in' top='59' left='45' color='black' size='9'>Pay to identify</text>
<pict name='zsell1' anchor='buttons' relative='pos-in' filled='false' type='btn' num='7' top='75' left='11' framed='false'/>
<text name='zsell2' anchor='buttons' relative='pos-in' top='73' left='45' color='black' size='9'>Sell Item</text>
<pict name='zench1' anchor='buttons' relative='pos-in' filled='false' type='btn' num='8' top='88' left='11' framed='false'/>
<text name='zench2' anchor='buttons' relative='pos-in' top='85' left='45' color='black' size='9'>Pay to enchant</text>
<text top='274' left='63' width='429' height='50'>
Items from slain monsters normally appear unidentified.
To identify them, take them to a sage.

View File

@@ -4,12 +4,31 @@
<dialog defbtn='okay'>
<pict type='dlog' num='24' top='8' left='8'/>
<text top='10' left='52' width='292' height='16'>BLADES OF EXILE HELP: OUTDOOR COMMANDS</text>
<text top='31' left='65' width='456' height='34'>
<text top='31' left='65' width='420' height='34'>
To move, click on the terrain screen in the direction you want to move, or use the keypad.
To wait, click on your party.
The buttons on the bottom act as follows:
</text>
<pict type='full' num='1400' top='68' left='118' width='320' height='125'/>
<pict name='toolbar' type='blank' outline='solid' color='white' top='68' left='118' width='320' height='125'/>
<pict name='ztoolbar' anchor='toolbar' relative='pos-in' type='full' framed='false' num='1400' top='56' left='23' width='266' height='38'/>
<text name='zheader' anchor='toolbar' relative='pos-in' color='black' top='4' left='0'>Town Commands:</text>
<text name='zparen' anchor='toolbar' relative='pos-in' color='black' top='14' left='10' width='280' size='10' font='plain'>
(keyboard shortcut follows in parenthesis)
</text>
<text name='zlabel1' anchor='toolbar' relative='pos-in' color='black' top='30' left='27' size='9' font='plain'>Cast Priest (p)</text>
<line name='zline1' anchor='toolbar' relative='pos-in' top='44' left='79' width='0' height='12' color='black'/>
<text name='zlabel2' anchor='toolbar' relative='pos-in' color='black' top='30' left='130' size='9' font='plain'>Display AutoMap (a)</text>
<line name='zline2' anchor='toolbar' relative='pos-in' top='44' left='199' width='0' height='12' color='black'/>
<text name='zlabel3' anchor='toolbar' relative='pos-in' color='black' top='0' left='240' width='90' size='9' font='plain'>Load Game<br/>(PC: Ctrl-O)<br/>(Mac: Cmd-O)</text>
<line name='zline3' anchor='toolbar' relative='pos-in' top='44' left='274' width='0' height='12' color='black'/>
<text name='zlabel4' anchor='toolbar' relative='pos-in' color='black' top='105' left='-2' size='9' font='plain'>Cast Mage (m)</text>
<line name='zline4' anchor='toolbar' relative='pos-in' top='94' left='42' width='0' height='13' color='black'/>
<text name='zlabel5' anchor='toolbar' relative='pos-in' color='black' top='105' left='81' size='9' font='plain'>Look (l)</text>
<line name='zline5' anchor='toolbar' relative='pos-in' top='94' left='113' width='0' height='13' color='black'/>
<text name='zlabel6' anchor='toolbar' relative='pos-in' color='black' top='105' left='140' size='9' font='plain'>Rest (r)</text>
<line name='zline6' anchor='toolbar' relative='pos-in' top='94' left='162' width='0' height='13' color='black'/>
<text name='zlabel7' anchor='toolbar' relative='pos-in' color='black' top='90' left='196' width='134' size='9' font='plain'>Save Game<br/>(PC: Ctrl-S Mac: Cmd-S)</text>
<line name='zline7' anchor='toolbar' relative='pos-in' top='94' left='241' width='0' height='11' color='black'/>
<text top='209' left='69' width='417' height='33'>
To read a sign or search something, stand adjacent to it and look at it.
To enter a town/dungeon/tower/pit. etc., move onto it.

View File

@@ -7,7 +7,11 @@
<text top='29' left='61' width='394' height='33'>
This area lists the names of your party members, their health and magic points, and two buttons:
</text>
<pict type='full' num='1200' top='66' left='168' width='106' height='29'/>
<pict name='buttons' type='blank' outline='solid' color='white' top='66' left='168' width='106' height='29'/>
<pict name='zinfo1' anchor='buttons' relative='pos-in' filled='false' type='btn' num='0' top='3' left='6' framed='false'/>
<text name='zinfo2' anchor='buttons' relative='pos-in' top='0' left='17' color='black' size='9'>Character Info</text>
<pict name='zswitch1' anchor='buttons' relative='pos-in' filled='false' type='btn' num='1' top='16' left='6' framed='false'/>
<text name='zswitch2' anchor='buttons' relative='pos-in' top='14' left='17' color='black' size='9'>Switch Places</text>
<text top='102' left='61' width='401' height='46'>
To have two PCs switch places, click on their switch places buttons.
To get a full description of a character, click on the '?' button.

View File

@@ -9,7 +9,28 @@
To wait, click on your party.
The action buttons (and the equivalent keys) are:
</text>
<pict type='full' num='1402' top='87' left='107' width='320' height='125'/>
<pict name='toolbar' type='blank' outline='solid' color='white' top='87' left='107' width='320' height='125'/>
<pict name='ztoolbar' anchor='toolbar' relative='pos-in' type='full' framed='false' num='1402' top='56' left='23' width='266' height='38'/>
<text name='zheader' anchor='toolbar' relative='pos-in' color='black' top='4' left='0'>Town Commands:</text>
<text name='zparen' anchor='toolbar' relative='pos-in' color='black' top='14' left='10' width='280' size='10' font='plain'>
(keyboard shortcut follows in parenthesis)
</text>
<text name='zlabel1' anchor='toolbar' relative='pos-in' color='black' top='30' left='27' size='9' font='plain'>Cast Priest (p)</text>
<line name='zline1' anchor='toolbar' relative='pos-in' top='44' left='79' width='0' height='12' color='black'/>
<text name='zlabel2' anchor='toolbar' relative='pos-in' color='black' top='30' left='155' size='9' font='plain'>Get (g)</text>
<line name='zline2' anchor='toolbar' relative='pos-in' top='44' left='185' width='0' height='12' color='black'/>
<text name='zlabel3' anchor='toolbar' relative='pos-in' color='black' top='30' left='211' size='9' font='plain'>Use (u)</text>
<line name='zline3' anchor='toolbar' relative='pos-in' top='44' left='225' width='0' height='12' color='black'/>
<text name='zlabel4' anchor='toolbar' relative='pos-in' color='black' top='105' left='-2' size='9' font='plain'>Cast Mage (m)</text>
<line name='zline4' anchor='toolbar' relative='pos-in' top='94' left='42' width='0' height='13' color='black'/>
<text name='zlabel5' anchor='toolbar' relative='pos-in' color='black' top='105' left='81' size='9' font='plain'>Look (l)</text>
<line name='zline5' anchor='toolbar' relative='pos-in' top='94' left='113' width='0' height='13' color='black'/>
<text name='zlabel6' anchor='toolbar' relative='pos-in' color='black' top='105' left='128' size='9' font='plain'>Talk (t)</text>
<line name='zline6' anchor='toolbar' relative='pos-in' top='94' left='151' width='0' height='13' color='black'/>
<text name='zlabel7' anchor='toolbar' relative='pos-in' color='black' top='105' left='185' size='9' font='plain'>Map (m)</text>
<line name='zline7' anchor='toolbar' relative='pos-in' top='94' left='225' width='0' height='13' color='black'/>
<text name='zlabel8' anchor='toolbar' relative='pos-in' color='black' top='105' left='226' width='94' size='9' font='plain'>Start Combat (f)</text>
<line name='zline8' anchor='toolbar' relative='pos-in' top='94' left='262' width='0' height='13' color='black'/>
<text top='227' left='61' width='428' height='49'>
When talking, looking, or using, first click on the appropriate button,
and then click on the space to act on.

View File

@@ -5,5 +5,5 @@
<button name='okay' type='regular' top='276' left='232'>OK</button>
<pict type='dlog' num='21' top='6' left='6'/>
<text name='title' size='large' top='6' left='50' width='300' height='17'>Map of Somewhere:</text>
<pict name='map' type='full' num='1100' top='28' left='50'/>
<pict name='map' type='full' num='1400' top='28' left='50'/>
</dialog>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@@ -18,6 +18,7 @@
<xs:enumeration value="full"/>
<xs:enumeration value="map"/>
<xs:enumeration value="status"/>
<xs:enumeration value="btn"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="btntype">
@@ -213,8 +214,8 @@
<xs:attribute name="num" type="xs:integer"/>
<xs:attributeGroup ref="rect-size"/>
<xs:attributeGroup ref="position"/>
<xs:attribute name="fill-color"/>
<xs:attribute name="fill-colour"/>
<xs:attribute name="color"/>
<xs:attribute name="colour"/>
</xs:complexType>
<xs:complexType mixed="true" name="button">
<xs:sequence>
@@ -252,6 +253,28 @@
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="line">
<xs:attribute name="slope">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="positive"/>
<xs:enumeration value="negative"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="name" type="xs:token"/>
<xs:attribute name="size">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value='2'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="color"/>
<xs:attribute name="colour"/>
<xs:attributeGroup ref="rect-size"/>
<xs:attributeGroup ref="position"/>
</xs:complexType>
<xs:complexType name="slider">
<xs:attribute name="name" type="xs:token"/>
<xs:attribute name="max" type="xs:integer" use="required"/>
@@ -278,6 +301,7 @@
<xs:element name="pict" type="pict"/>
<xs:element name="button" type="button"/>
<xs:element name="led" type="led"/>
<xs:element name="line" type="line"/>
<xs:element name="group" type="ledGroup"/>
<xs:element name="slider" type="slider"/>
<xs:element name="page">
@@ -308,6 +332,7 @@
<xs:element name="pict" type="pict"/>
<xs:element name="button" type="button"/>
<xs:element name="led" type="led"/>
<xs:element name="line" type="line"/>
<xs:element name="group" type="ledGroup"/>
<xs:element name="mapgroup" type="ledGroup"/>
<xs:element name="slider" type="slider"/>
@@ -327,6 +352,7 @@
<xs:element name="pict" type="pict"/>
<xs:element name="button" type="button"/>
<xs:element name="led" type="led"/>
<xs:element name="line" type="line"/>
<xs:element name="group" type="ledGroup"/>
<xs:element name="slider" type="slider"/>
</xs:choice>
@@ -344,6 +370,7 @@
<xs:element name="pict" type="pict"/>
<xs:element name="button" type="button"/>
<xs:element name="led" type="led"/>
<xs:element name="line" type="line"/>
<xs:element name="group" type="ledGroup"/>
<xs:element name="slider" type="slider"/>
<xs:element name="stack" type="stack">