Difference between revisions of "Riven HSPT resources"

From A look inside The Link @ wiki
Jump to: navigation, search
m (frame around cursors)
m (adjustments)
 
Line 30: Line 30:
 
|}
 
|}
  
Hotspot rectangles can fall outside the game window (in any direction) and often two or more hotspots overlap. There are even cases with ''left'' > ''right'' (card 371, t_Data). When more hotspots overlap, the "active" hotspot receiving mouse events is the one with the largest ''index'' value.
+
[[Image:Cursors.png|right|frame|Riven cursor icons and their IDs]]
  
[[Image:Cursors.png|right|frame|Riven cursor icons and their IDs]]Cursor icon values are listed on the right.
+
Hotspot rectangles can fall outside the game window (in any direction) and often two or more hotspots overlap. There are even cases with ''left'' > ''right'' (card 371, t_Data). When more hotspots overlap, the hotspot "on top" is the one with the largest ''index'' value.
 +
 
 +
Cursor icon values are listed on the right.
  
 
''u0'' seems always zero and changing it seems to leave Riven indifferent. ''u1'' is very very often -1 but not always. ''u2'' is 0 for ordinary hotspots, 1 for Zip Mode ones: the engine disables all Zip Mode hotspots when Zip Mode is off.
 
''u0'' seems always zero and changing it seems to leave Riven indifferent. ''u1'' is very very often -1 but not always. ''u2'' is 0 for ordinary hotspots, 1 for Zip Mode ones: the engine disables all Zip Mode hotspots when Zip Mode is off.
  
 
For info on the attached script see the [[Riven scripts|scripts section]].
 
For info on the attached script see the [[Riven scripts|scripts section]].

Latest revision as of 02:36, 18 February 2008

Riven
Mohawk Overview
BLST CARD FLST HSPT
MLST NAME PLST RMAP
SFXE SLST tBMP tMOV
tWAV VARS VERS ZIPS
Scripts Variables
External commands

These contain hotspots, sort of invisible buttons within cards that respond to mouse clicks (and other events) by performing actions described by attached scripts.

Each HSPT resource is a list of records and starts with an unsigned short equal to the number of records. Due to the attached scripts, HSPT records can have different size and there is no way to know it without fully decoding the record. Each record has the following structure:

unsigned short blst_id Links the hotspot to a BLST resource record
short name_rec If ≥ 0, record index in NAME resource 2 to provide a name for the hotspot
short left Hotspot rectangle within the game window, in pixels
short top
short right
short bottom
unsigned short u0
unsigned short mouse_cursor Cursor icon to set when the mouse rolls over this hotspot
unsigned short index Record index starting from 1
short u1
unsigned short u2
variable size script
Error creating thumbnail: Unable to save thumbnail to destination
Riven cursor icons and their IDs

Hotspot rectangles can fall outside the game window (in any direction) and often two or more hotspots overlap. There are even cases with left > right (card 371, t_Data). When more hotspots overlap, the hotspot "on top" is the one with the largest index value.

Cursor icon values are listed on the right.

u0 seems always zero and changing it seems to leave Riven indifferent. u1 is very very often -1 but not always. u2 is 0 for ordinary hotspots, 1 for Zip Mode ones: the engine disables all Zip Mode hotspots when Zip Mode is off.

For info on the attached script see the scripts section.