Technologies in Thief 2 Walkthrough

Many new technologies are used in the Thief 2 Walkthrough.

XML and XSLT

XML is eXtensible Markup Language.
XSLT is eXtensible Stylesheet Language Transformations.
XML is an organized way to structure information, and XSLT a declarative method to convert the XML to a presentation you need.

XML is vital in the Thief 2 walkthrough.
All the missions are coded in XML, together with a number of XML files that are shared by all missions.
Then a set of XSLT files translate the mission XML into HTML when you browse it.
The generated HTML is largely controlled by shared files.
This avoids a lot of mistakes in the internal structure.
This also makes the code cleaner (and easier to debug) and more consistent.
Redunduncy is largely eliminated so it makes the walkthrough much more maintainable.

A second use of XML is the generation of the Table of Contents (TOC).
When the HTML is loaded, the initialisation code builds an XML structure of the key items.
There are four different views of the TOC: Hierarchical View (in the original HTML hierarchical structure), Loot Table view, Picks Table view and Secrets Table view.
All four views are generated from the same XML tree.
When you display the TOC (see User Interface on how to show it), one of two XSLT (one for the hierarchical view, one for the three tables view) is used to process the XML and generate the resulting information.

IE and Windows come with different versions of the XML Core Services.
Typically, it is the MSXML version 2.x or 3.0.
To find out if you have XML Core Services installed, go to XML Test on my personal home page.

The latest edition (as of Jul 2002) of XML Core Services is MSXML 4.0 SP1.
It is more efficient than the earlier versions.
Therefore, you should download the latest version either from here.

Dynamic HTML Behavior

Starting with IE 5.0, a new form of code encapsulation appeared: Dynamic HTML Behavior.
In programming language terms, it is an object.
Attached to any part of a web page like normal HTML tags, behaviors allow programming control of how the element operates.
It offers a neat way to write the code, and avoid codes from interfering with each other.

The hilite behavior does all sorts of high lighting.
Many elements in the walkthrough changes their appearances when you place your mouse pointer over them.
Most changes their color, some changes their background color for better visibility, section headings increases their width as well.
Also, when you jump to a target, the destination flashes in high light color for a little while, so that you can clearly see where you are landing.
All these are done by the hilite behavior.

Jumping is another behavior.
It scrolls you to the landing spot, expand all its collapsed parents to make it visible, and then trying to place it on the upper half of the screen.
Finally, it uses the hilite behavior to flash the target.
Jumping behavior also manages the way loots and picks are cumulated.
Sometimes you jump backwards, and sometimes you have alternatives.
Instead of cumulating the loots and picks as presented in the physical layout of the web page, the cumulated values follows the logical path directed by the jumps.

There are also behavior for cumulation (the loot and pick counts), for handling structures (sections and excursions), for jumping to the TOC, for jumping back from TOC, etc.

Here, the implementation varies a little depending on your browser version.
IE 5.5 and above supports two types of behaviors: Attached Behavior and Elemental Behavior.
Attached Behaviors are attached to HTML tags using CSS; Elemental Behaviors are custom HTML tags.
Since Elemental Behavior is more efficient, Elemental Behavior will be used if you are running IE5.5 or above.
When you are using IE5.0, they are automatically attached as Attached Behaviors.

Popup Windows

Popup is a new feature supported by IE5.5 and above.
It is used to create tooltips.
If you are running IE 5.0, dHTML will be used to create the tooltip.

When dHTML tooltip is used, the tip must stay within the original browser window.
Popups can, however, go beyond the the scroll bars and even right outside the browser window.
Using popups, the tip will try to maintain a better position relative to the mouse, instead of staying inside the browser window.

The two implementation differs in limitations and behavior.
Refer to User Interface for details.

Dynamic HTML and Cascaded Style Sheets

Of course, the good old dHTML and CSS are still in use in muct the same way as in my other game guides.
dHTML is used to expand and collapse sections, to change color and style, to scroll, to capture events, to do everything.