A hint menu. This same class can be used for the top-level hints menu and for sub-menus within the hints menu.

The typical hint menu system will be structured into a top-level hint menu that contains a set of sub-menus for the main areas of the game; each sub-menu will have a series of Goal items, each Goal providing a set of answers to a particular question. Something like this:

topHintMenu: TopHintMenu 'Hints';
+ HintMenu 'General Questions';
++ Goal 'What am I supposed to be doing?' [answer, answer, answer];
++ Goal 'Amusing things to try' [thing, thing, thing];
+ HintMenu 'First Area';
++ Goal 'How do I get past the shark?' [answer, answer, answer];
++ Goal 'How do I open the fish tank?' [answer, answer, answer];
+ HintMenu 'Second Area';
++ Goal 'Where is the gold key?' [answer, answer, answer];
++ Goal 'How do I unlock the gold door?' [answer, answer, answer];

Note that there's no requirement that the hint menu tree takes exactly this shape. A very small game could dispense with the submenus and simply put all of the goals directly in the top hint menu. A very large game with lots of goals could add more levels of sub-menus to make it easier to navigate the large number of topics.

class HintMenu :   MenuItem   HintMenuObject

Superclass Tree   (in declaration order)


Subclass Tree  


Global Objects  


Summary of Properties  

allContents  isActiveInMenu  title 

Inherited from MenuItem :
bgcolor  curKeyList  curMenu  fgcolor  fullScreenMode  heading  indent  isOpen  keyList  prevMenuLink  topbarbg  topbarfg  topMenu 

Inherited from MenuObject :
contents  menuOrder 

Inherited from HintMenuObject :

Summary of Methods  

addToContents  initializeContents  updateContents 

Inherited from MenuItem :
display  enterSubMenu  formatXML  getChildIndex  getKeysXML  getNextMenu  getPrevMenu  getXML  refreshTopMenuBanner  removeStatusLine  removeTopMenuBanner  showMenu  showMenuHtml  showMenuText  showTopMenuBanner 

Inherited from MenuObject :
compareForMenuSort  execute  initializeLocation 

Inherited from HintMenuObject :



our list of all of our sub-items (some of which may not be active, in which case they'll appear in this list but not in our 'contents' list, which contains only active contents)

we're active in a menu if we have any active contents

the menu's title


addToContents (obj)OVERRIDDENhintsys.t[463]

add a sub-item to our contents

initializeContents ( )OVERRIDDENhintsys.t[473]
initialize our contents list

updateContents ( )OVERRIDDENhintsys.t[435]
update our contents

TADS 3 Library Manual
Generated on 5/16/2013 from TADS version 3.1.3