"THINBASIC ADVENTURE BUILDER"
=======================
Interactive Fiction/Text Adventure Maker
by Catventure (c) 2024

An offline, parser-based interactive text adventure creator for Windows XP and above.

+++++++++++++++++++
Version History Change Log
++++++++++++++++++

03 Sep 2023 (Release 71)
====================

*FIXED Minor bugfix to a Response processing anomaly that occurred in certain instance.

21 Aug 2023 (Release 71)
====================

*UPDATED System Message 48 has been expanded to include text customisation of TAB game window menu bar items. (useful for other language and translation purposes)

If using a database created with prior version 70 then to make compatible before running it will be necessary to add menu text items [43] to [52] to the System Message 48 list - as shown in the "default database" in this version 71 otherwise the menu bar items will not appear in the TAB Player game window.

*NEW Split-Screen Graphic/Text version. Replaces previous horizontal graphics version.

*NEW "lock" and "unlock" actions in graphics versions of TAB to disable/enable window resizing in the TAB game window.

01 Aug 2023 (Release 70)
====================

*Bugfix in automatic character random movement reporting routine.

02 Oct 2022 (Release 70)
====================

*NEW System Message 99 is now used for Character prefix definitions.

Specific Character number tags are now in the ranges:
%c1.1% to %c100.9%

Also there are tags to substitute the Character n1 or Character n2 noun for a currently referenced Character Noun number (1-100)

%cn1.1 to %cn1.9%
%cn2.1 to %cn2.9%

Each of the 100 Characters may have up to NINE alternative prefixes which will be printed in a message, system message or cmessage using the associated %tags% above providing the prefixes have been entered into System Message 99.

Character prefixes are very useful in making games in a different language.

Prefix text can be typed into System Message 99 between pairs of SQUARE BRACKETS identifier labels which contain the Character number, a dot (period or fullstop) and then the Character prefix element number in this format:

[CharNumber.element number]some text here [Charnumber.element number]

The text may be alphanumeric and contain spaces and punctuation marks.

For example:

[1.1]he[1.1]
[1.2]his[1.2]
[1.3]him[1.3]
.........
.........
[100.9]1 or more words with a trailing space [100.9]

The %tags% tell TAB to grab the text inside the bracketed identifier labels.

Message: %ucase%%cn1.1% tells you about some gold and %cn1.2% efforts to find it.

You can precede a Character prefix tag with the %ucase% tag to capitalise the first letter of the prefix if necessary.

He tells you about some gold and his efforts to find it.

Note: The character prefix must exist and be defined correctly in System Message 99 in order for the tag to have any effect.

*CHANGED With the introduction of the recent Object and Character Prefix Tables the former routines for Object Definite/Indefinite article tags and definitions are removed from this version 70.

30 Sep 2022 (Release 70)
====================

*NEW System Message 18 (previously reserved) is now used for the Object prefix tags.

Specific Object number tags are now in the ranges:
%1.1% to %200.9%

These tags will substitute Object n1 or Object n2 for a currently referenced Object Noun number (1-200)

%n1.1 to %n1.9%
%n2.1 to %n2.9%

Each of the 200 Objects may have up to NINE alternative prefixes which will be printed in a message, system message or cmessage using the associated %tags% above providing the prefixes have been entered into System Message 18.

Object prefixes are very useful in making games in a different language.

Prefix text can be typed into System Message 18 between pairs of SQUARE BRACKETS identifier labels which contain the object number, a dot (period or fullstop) and then the object prefix element number in this format:

[ObjNumber.element number]some text here [Objnumber.element number]

The text may be alphanumeric and contain spaces and punctuation marks.

For example:

[1.1]an [1.1]
[1.2]more words [1.2]
[1.3]even more words without a trailing space[1.3]
.........
.........
[200.9]word[200.9]

The %tags% tell TAB to grab the text inside the bracketed identifier labels.

Message: You examine %n1.1%%objn1%.

You can precede an object prefix tag with the %ucase% tag to capitalise the first letter of the prefix if necessary.

%ucase%%n1.1%%objn1%: taken.

An apple: taken.

Note: The object prefix must exist and be defined correctly in System Message 18 in order for the tag to have any effect.

* FIXED. Also a couple of small bug corrections.

24 May 2022 (Release 70)
===================
* IMPORTANT Do not load any save game position files or quicksaved files from previous version 70 into this latest version!

* ADDED A listing of the recent Default Database System Messages to "LANGUAGE".txt (System Message 18 is unused and is reserved for expansion purposes)

* ADDED A block of Response code to all databases to handle inputs made after a "nonsense" verb typed

* IMPROVED The default "oops" word in (System Message 60 configuration) can now be more or less than 4 letters long. Improved the "oops" routine.

* REMOVED "Prompt For Sounds" checkbox on Game Settings Editor - was causing problems

* FIXED The status of "objlistoff","charlistoff", "invlistoff", "speechlistoff", "showinv" and "showcontents" was not being saved in a saved game position file

* MINOR FIX QuickSave ID (system message 70) now added to textbox in supplied demogames

* MINOR FIX Default Fontname from Game Settings Editor had not been saved to System Message 52 in example databases

30 Apr 2022 (Release 70)
=========
* IMPROVED "autogetobj" and "autogetobjplus" actions now also try to get the named object from OFF any supporter object that is in the room. (Can be overridden with custom entries if desired)

* IMPROVED "showcontents" action now lists objects residing ON supporting objects as well as those in visible open containers.

23 Apr 2022 (Release 70)
=========
* IMPORTANT: Databases from tab_v68 will load into this new version. However they will not be fully compatible and will not run properly due to changes in the System Messages. Email me with your database if you would like it converting to run under the new v70.

* CHANGED The "wait" action is discontinued. Use a "cmess" action instead. eg: [start]wait[acts]cmessYou wait...[end]

* IMPROVED Invalid leading, trailing spaces or errant space characters inside Vocabulary entries are stripped out when accepted into a listbox.

* IMPROVE ALT+238 key combo can be used in vocabulary¯long¯words instead of nonstandard ALT+0175 symbol.

* NEW tags %objtextn1% and %objtextn2%. Substitute tag with object text description eg: "an apple" instead of object noun keyword "apple"

* CHANGED Quite a few of the system messages have been changed, simplified and/or renumbered.

* NEW Input command sentence separators in addition to (,) and (.) can be defined. Word for "undo", "but", "again" and "oops" internal keywords can be defined in System Message 60. Also in this message you can define internal words for "it", "all", and character command format. This is useful for translation purposes.

*NEW Missing opposite action commands to "objlistoff", "charlistoff", "invlistoff" and "speechlistoff"

objliston - list objects normally
charliston - list characters normally
invliston - list inventory normally
speechliston - report speech entries when Character not in player room

* IMPROVED TAB Viewers clear properly when new menu option selected. Option [View All Data] loads ALL game data into viewer. Can be saved out as a text file using [Save Data] to keep a record of all current data of a game.

* NEW French text %tags% for Male and Female characters:

%il.elle.n1% - prints "il" or "elle" depending on Character n1 gender (male or female only)
%ils.elles.n1% - prints "ils" or "elles" depending on Character n1 gender
%il.elle.n2% - prints "il" or "elle" depending on Character n2 gender
%ils.elles.n2% - prints "ils" or "elles" depending on Character n2 gender
%il.elle.speech% - prints "il" or "elle" depending on Character speech number's gender
%ils.elles.speech% - prints "ils" or "elles" depending on Character speeech number's gender

Respective variable charn1, charn2 or speech variable must hold a value >0.

15 Mar 2022 (Release 68)
===================
* NEW button on Main Menu to toggle Tooltips Off/On.

(Set to "off" by default)

11 Mar 2022 (Release 68)
=========
* ADDED some missing text labels to a few textboxes in the Editor.

* UPDATED QuickTutorial.

16 Sep 2021 (Release 68)
=========
*FIX "cleartext" action resets background color of adventure text window.

02 Apr 2021 (Release 68)
=========
*IMPROVED Some minor tweaks, improves, checks and code cleaning to: quicksave/quickload, undo, load/save, turns.

27 Mar 2021 (Release 68)
=========
*NEW Vocabulary Editor has a [View] button to show the Vocabulary in a TAB Viewer.

*IMPROVED The TAB Viewer now allow access to Editor.

*IMPROVED Multiple Instances of TAB Viewer are now allowed. Any TAB Viewers open when the Editor is closed are automatically closed.

*IMPROVED Diagnostic Window now allows access to Game Window. Diagnostics window will automatically be closed when Player is exited.

*ADDED a menu option On TAB Viewer to view Character Responses.

*FIXED The 'examall' action was not working on Objects greater than 100.

*IMPROVED Vocabulary Editor does not delete text from EditBox after an "Invalid Vocabulary Syntax" error dialog report.

17 Feb 2021 (Release 68)
=========
*UPDATED: updated some "autorun" code to work better.

25 Jan 2021 (Release 68)
=========
*UPDATED: When user enters "dx" into the Editor version of Player to invoke Diagnostics the panel remains in view until new [EXIT] button is pressed allowing multiple changes to be set to values of flags, room, object locations, weights, character locations etc...

23 Dec 2020 (Release 68)
=========
*FIX* Game starting location can now contain alternative location text descriptions by setting flags via Message 500 before game commences. (details in USERGUIDE)

19 Dec 2020 (Release 68)
==========
*NEW* [Find Text] buttons on coding editors.
Handy for searching and highlighting word(s) and phrases in the script editors so that you can more easily locate and edit particular code entries. Repeated button presses with the same text typed in the Editbox is useful for finding all occurrences of your search criteria.

*CHANGED* Tooltips amended slightly.

*NEW* Action "loopmovieFILENAME$"
Plays and loops a .wmv file in the Adventure Window itself until an [ESC] keypress. (GRAPHICS VERSIONS ONLY)

*FIXED* Corrected a bug in "Crystal_Keepers.tab" database.

*ADDED* "Realm_Of_Obsidian.tab" text adventure database by Amy Kerns. (TEXT-ONLY VERSION ONLY

09 Dec 2020 (Release 68)
==========
*NEW* Dropdown selecter lists for Locations, Objects, Characters, Messages and System Messages for easier finding and editing.

*AMENDED* the [Find] buttons now search for valid text and go to the entries that contains it for editing purposes.

*REMOVED* The [Search] buttons are no longer required.

27 Nov 2020 (Release 68)
==========
*NEW* [Find Object], [Find Character] and [Find Location] buttons on Editors.
Type in a valid object noun or synonym, character noun or synonym or a 'brief' location and press the button to edit that selection. (suggested by auraes)

*FIXED* Character edit details were deleted if 'Char Noun' field empty. (Thanks to auraes)

*NEW* Quickstart Tutorial added online and also to Main Directory in HTML page format.

*AMENDED* Radiobutton labels on Character Editor left-adjusted (Garry)

12 May 2020 (Release 68)
=========
*NEW "menuon" and "menuoff" actions for removing and showing the adventure window titlebar menus.
*NEW Message number 1 on the 'Message Editor' can optionally be used to hold input commands that will provide a full game solution that will autosolve a game when the player types "autosolve" at the start of a game. The player can simply press <RETURN> at the Input Prompt in the lower textbox and TAB will process each command sequentially from Message #1 for each <RETURN> keypress.
Each valid and logical command must be separated by a full stop or period (.)
A "speech" command (if used) must have a comma (,) after the character's noun name and between its commands.
If the game uses the "ask" action to request player input the "answer" conditions will always return true if autosolve is active as the player will have been adjudged as replying with a correct response... The player just needs to press <RETURN> to continue on with autosolving the game

Example Message#1 (game ends when monster is killed)

inventory.search trash.go nw.x tree.get acorn.say farmer,go south,get sword,wait.go south.talk to farmer.farmer,give sword to me.kill monster with sword

The last command of a solution will not need to be followed by a full stop.


11 Apr 2020 (Release 68)
=========
*FIXED gfx action error in graphic version of TAB.
*ADDED more to usertutorial.txt on gfx and sfx.

05 Feb 2019 (Release 68)
==========
*NEW There are now 3 separate versions of TABv68:
1) TEXT ONLY VERSION
2) SPLIT SCREEN TEXT/GRAPHIC VERSION
Both are available for download at: http://tab.thinbasic.com/
3) TEXT/GRAPHIC ORIGINAL VERSION
Available for download at:
https://catventure.itch.io/tab

*NEW Optional new syntax for certain conditions and actions.
Version 68 and above now supports the use of Vocabulary KEYWORDS of verbs, nouns, prepositions, object nouns or character nouns instead of their respective numbers in RESPONSE, SCRIPT1 or SCRIPT 2 coding entries - providing that there is not more than ONE entry for the word in the Vocabulary.
This should help clarify entries greatly!
However, if there IS more than one keyword entry for the same type of word then best to use only the default number of the word instead.
A list of the particular TAB conditions and actions that can use this facility is given in the "language.txt" file.

22 Feb 2018 (Release 67)
==========
*Fix. Game dialog window was not enabled and would freeze after "endgame" action prompt options selected if it was not the currently active window.
*Minor Fix to handling alternative Response word conditions.
*Minor fix to char_command_demo.tab.
*Minor fix to "again" or "g" command in Character command parsing.
*Fix. Adventure window statusbar now cleared properly when Player empty.

02 Feb 2016 (Release 66)
==========
*FIX Icons now show up in adventure window statusbar.
*FIX Action "endgame" now working correctly.
*FIX Deletions Editor now stops duplicate word being entered correctly.
*FIX Location ExitsOn/Off flag was not working correctly in all instances when a game was loaded into Player.
*FIX Actions "endgame", "presskey" and "keypress" now disable Player adventure window until a key is pressed.

23 Feb 2015 (Release 65)
=========
*FIX Character movement error causing a crash in particular instance.
*FIX Positioning of .wmv files corrected in graphic mode.

04 Aug 2012 (Release 64)
==========
*NEW actions:
sizeX=Y - change the size attribute of object X to Y
objn1size=Y
objn2size=Y
(suggested by acko)

showcontentsoff - turn off showcontents
showinvoff - turn off showinv

*NEW text format variable
%sizeX%

eg: cmessThe size of object number 3 is %size3%.

*NEW actions:
lookonobjn2 - same as lookonobj
lookonobjn1 - same as lookonobj but for object noun1
listsurfaceX - same as lookonobj but for object number X

*NEW condition/action coding tags:
%surfacen1%
%surfacen2%

eg:
anyobjs%surfacen1% - are any objects ON object noun1?
eg:
listobjs%surfacen2% - list objects ON object noun2

***Please note that older GAME POSITION FILES created with prior versions 63 and earlier
will NOT be compatible with this release and on no account should be loaded into TABv64***

02 Aug 2012 (Release 63)
=========
*FIX. The "sizeX=Y" and "sizeX<Y" conditions were not working properly. (Thanks to acko)

*NEW. "lookonobj" action is in place to handle listing objects which lie or stand ON a surface object.
To set an object's position to ON top of another object surface eg: a table simply send the object to the receiving objects number + 1000. For instance if a table was Object number 6 then the location 1006 would be the surface container for the table. (Thanks to Gareth)

*NEW. System Message 47 (previously unused) is now set to read "On the " for use with surface object listing action "lookonobj".

*NEW "showcontents" and "showinv" actions for object listing and character listing respectively.
These only work providing the "objlistoff" and "charlistoff" actions have not been used anywhere in the database.

These will show the contents of a container object (providing it is OPEN) and/or the carried and worn inventories of any Characters present in the room when the room is described or arrived at by a movement direction and the objects and characters are initially listed...

Example Location
=======
This room is very small and cramped.
Exits lead: north, south and west.
Visible objects are:
a box.
In the box is:
a penknife. (looks like a small dagger)
a key.
Joseph the friendly farmer is here.
Joseph the farmer owns:
a brass lamp.
He is wearing:
a hat.
Bill the policeman is here.
Roger your canine companion sits near you.
Robbie the robot patrols the area.

Whizzo the wizard arrives.

(Thanks to acko for this alternative listing suggestion)

18 Jul 2012 (Release 62)
=========
*NEW ACTIONS
room=flagX - set current location to be value of room integer held in flag X
gotoflagX - go to the room number held in flag X and describe the room

*NEW CONDITIONS
room=flagX
room<>flagX
room>flagX
room<flagX
room>=flagX
room<=flagX
Check the current room number held as an integer in flagX.

Thanks to forum member 'acko' for suggestions.

08 Sep 2011 (Release 61)
=========
*IMPROVED No longer need to use "Accept" button on Editors.
Data is auto-accepted when exiting an Editor or using next/previous/go buttons.

*CHANGED 'Accept' buttons replaced with 'View' buttons.

*UPDATED tutorial.txt

*FIXED Text caret was showing in input textbox during "presskey" or "keypress" action if called before any input made at start of game.

21 Jun 2011 (Release 60)
=========
*IMPROVED. When re-entering the Responses, Script1, Script2 and Char. Responses Editor the text is no longer printed from the top of the list but is now restored to its viewable status as it was at the point of the last exit from these Editors. This will continue to work after testing a game and returning to the Editor;but of course if a new or same datafile is Loaded/Opened into TAB from the Editor or Player then these restoration settings will be lost and will be initially reset to zero again. (Stants)

*IMPROVED. Current loaded database filename is now displayed in TAB Editor Dialog Window TitleBar. (Cuthbertson)

*IMPROVED. TAB download is no longer named "tabdemo.zip" but each new release filename will include current version number. This one is: "tab_v60".

30 Apr 2011 (Release 59)
=========
*FIX. Adventure window now disabled until a movie operation finished if called by playmovie or loopmovie actions (Thanks to stants)

03 Aug 2010 (Release 58)
=========
New predefined color assignments that can be used for text, back text and control color text
in the COLOR tags when printing text to the adventure window...

There is also a new [/color] closing block tag which will automatically reinstate the previous color
in use prior to the [color=...] or [bcolor=...] tags. These can be nested.

Red Colors
=========
%RGB_INDIANRED
%RGB_LIGHTCORAL
%RGB_SALMON
%RGB_DARKSALMON
%RGB_LIGHTSALMON
%RGB_CRIMSON
%RGB_RED
%RGB_FIREBRICK
%RGB_DARKRED

Pink Colors
=========
%RGB_PINK
%RGB_LIGHTPINK
%RGB_HOTPINK
%RGB_DEEPPINK
%RGB_MEDIUMVIOLETRED
%RGB_PALEVIOLETRED

Orange Colors
===========
%RGB_LIGHTSALMON
%RGB_CORAL
%RGB_TOMATO
%RGB_ORANGERED
%RGB_DARKORANGE
%RGB_ORANGE

Yellow Colors
==========
%RGB_GOLD
%RGB_YELLOW
%RGB_LIGHTYELLOW
%RGB_LEMONCHIFFON
%RGB_LIGHTGOLDENRODYELLOW
%RGB_PAPAYAWHIP
%RGB_MOCCASIN
%RGB_PEACHPUFF
%RGB_PALEGOLDENROD
%RGB_KHAKI
%RGB_DARKKHAKI

Purple Colors
==========
%RGB_LAVENDER
%RGB_THISTLE
%RGB_PLUM
%RGB_VIOLET
%RGB_ORCHID
%RGB_MAGENTA
%RGB_MEDIUMORCHID
%RGB_MEDIUMPURPLE
%RGB_BLUEVIOLET
%RGB_DARKVIOLET
%RGB_DARKORCHID
%RGB_DARKMAGENTA
%RGB_PURPLE
%RGB_INDIGO
%RGB_SLATEBLUE
%RGB_DARKSLATEBLUE
%RGB_MEDIUMSLATEBLUE

Green Colors
==========
%RGB_GREENYELLOW
%RGB_CHARTREUSE
%RGB_LAWNGREEN
%RGB_LIME
%RGB_LIMEGREEN
%RGB_PALEGREEN
%RGB_LIGHTGREEN
%RGB_MEDIUMSPRINGGREEN
%RGB_SPRINGGREEN
%RGB_MEDIUMSEAGREEN
%RGB_SEAGREEN
%RGB_FORESTGREEN
%RGB_GREEN
%RGB_DARKGREEN
%RGB_YELLOWGREEN
%RGB_OLIVEDRAB
%RGB_OLIVE
%RGB_DARKOLIVEGREEN
%RGB_MEDIUMAQUAMARINE
%RGB_DARKSEAGREEN
%RGB_LIGHTSEAGREEN
%RGB_DARKCYAN
%RGB_TEAL

Blue Colors
=========
%RGB_CYAN
%RGB_LIGHTCYAN
%RGB_PALETURQUOISE
%RGB_AQUAMARINE
%RGB_TURQUOISE
%RGB_MEDIUMTURQUOISE
%RGB_DARKTURQUOISE
%RGB_CADETBLUE
%RGB_STEELBLUE
%RGB_LIGHTSTEELBLUE
%RGB_POWDERBLUE
%RGB_LIGHTBLUE
%RGB_SKYBLUE
%RGB_LIGHTSKYBLUE
%RGB_DEEPSKYBLUE
%RGB_DODGERBLUE
%RGB_CORNFLOWERBLUE
%RGB_MEDIUMSLATEBLUE
%RGB_ROYALBLUE
%RGB_BLUE
%RGB_MEDIUMBLUE
%RGB_DARKBLUE
%RGB_NAVY
%RGB_MIDNIGHTBLUE

Brown Colors
==========
%RGB_CORNSILK
%RGB_BLANCHEDALMOND
%RGB_BISQUE
%RGB_NAVAJOWHITE
%RGB_WHEAT
%RGB_BURLYWOOD
%RGB_TAN
%RGB_ROSYBROWN
%RGB_SANDYBROWN
%RGB_GOLDENROD
%RGB_DARKGOLDENROD
%RGB_PERU
%RGB_CHOCOLATE
%RGB_SADDLEBROWN
%RGB_SIENNA
%RGB_BROWN
%RGB_MAROON

White Colors
==========
%RGB_WHITE
%RGB_SNOW
%RGB_HONEYDEW
%RGB_MINTCREAM
%RGB_AZURE
%RGB_ALICEBLUE
%RGB_GHOSTWHITE
%RGB_WHITESMOKE
%RGB_SEASHELL
%RGB_BEIGE
%RGB_OLDLACE
%RGB_FLORALWHITE
%RGB_IVORY
%RGB_ANTIQUEWHITE
%RGB_LINEN
%RGB_LAVENDERBLUSH
%RGB_MISTYROSE

Gray Colors
=========
%RGB_GAINSBORO
%RGB_LIGHTGRAY
%RGB_SILVER
%RGB_DARKGRAY
%RGB_GRAY
%RGB_DIMGRAY
%RGB_LIGHTSLATEGRAY
%RGB_SLATEGRAY
%RGB_DARKSLATEGRAY
%RGB_BLACK

Usage eg:

[color=%rgb_beige]I am some beige text. [color=%rgb_red]I am printed in red.[/color]
I have returned to beige.[/color] I am printed in the default text color!

Works with [bcolor] too:

[color=%rgb_red][bcolor=%rgb_black]I am red text printed on black background[/color][/color]
I am default text color with normal control color background

The second [/color] turns off the black background text color and reinstates the previous bcolor (in this case the default)

and [ccolor]

[ccolor=%rgb_limegreen]

Adventure text window is changed to lime green.

These enhancements are in addition to the existing way of setting colors within text.

20 Jun 2010 (Release 57.6)
=========
*FIX. Player Menu Options for load and save game position not working properly

12 Mar 2010 (Release 57.5)
=========
*NEW. Conditions requested by Jason:

itemscarr [ >= | <= | <> | > | < | = ] Y
Example: "itemscarr=1"
'total number of objects CARRIED by player

itemsworn [ >= | <= | <> | > | < | = ] Y
Example: "itemsworn<=3"
'total number of objects WORN by player

*FIX. **Conditions "charitemscarr" and "charitemsworn" were not taking into account object numbers
greater than 100!

*NEW. Sound playing conditions requested by Frank
sfxon - true if sound playing actions enabled with action "sfxon"
sfxoff - true if sound playing actions disabled with action "sfxoff"
musicfxon - true if music playing actions enabled with action "musicfxon"
musicfxoff - true if music playing actions disabled with action "musicfxoff"
samplefxon - true if sample playing actions enabled with action "samplefxon"
samplefxoff - true if sample playing actions disabled with action "samplefxoff"

09 Mar 2010 (Release 57.4)
=========
*FIX. Tab website URL sometimes not showing up on Editor Main Menu Dialog

*NEW condition (thanks to Jason):
v=? - true if player types a verb twice in succession as an input command.
Useful to check for nonsensical input such as >get get
[start]v ?#v=?[acts]cmessYou typed the verb "%v%" twice!#done[end]

*NEW CONDITIONS (Character Speech Responses Only; thanks to Jason)
objlocn1=speechpresent (true if objn1 in character's room, carried or worn location)
objlocn1=speechabsent
objlocn2=speechpresent
objlocn2=speechabsent

objlocn1=speechcarrworn (true if objn1 in character's carried or worn location)
objlocn1<>speechcarrworn
objlocn2=speechcarrworn
objlocn2<>speechcarrworn

02 Mar 2010 (Release 57.3)
=========
*FIX. The "link" ACTION is now back after being repaired. Use in Response or Script 2 only. Load a database into the Player. eg: #dialogmessThe password for Part 2 is "orion".#linkmygamepart2.tab[end]
Use in Response or Script 2 code only - must be the LAST action in an entry.

*FIX. %contn1% and %contn2% tags now working correctly in actions (thanks to Jason)

28 Feb 2010 (Release 57.2)
=========
*FIX. Player window close button is now available after (R)estart or (L)oad game position
option is selected from the "endgame" action prompt.

*NEW. conditions:
charfollowingn1 - is character n1 following the player?
charfollowingn2 - is character n2 following the player?
charfollowingX - is character X following the player?
anycharsfollow - true if ANY chars are following player
notanycharsfollow - true if NO characters are following player

*FIX. Adjustment to spacing for messages printed by "lookincontn1" and "lookincontn2"

*IMPROVED. The "lookincontn1" and "lookincontn2" actions now work if called in Character Speech Response entry.

*UPDATED. Remote games "piggeryjokery", "tutorial" and "crystal_keepers"
nowback online and updated with recent system messages etc...

*NEW. Actions controlling sound:
musicfxon - turn on music playing actions
musicfxoff - stops any currently playing music and turns off music playing actions
samplefxon - turn on sample playing actions
samplefxoff - stops any currently playing sample and turns off sample playing actions
NOTE: "sfxoff" (turns off both music and sample playing actions) has priority

*NEW. %contn1% and %contn2% tags that can be used in CONDITIONS/ACTIONS.
Substituted with NUMBER of object container n1 or n2 (inside of container location)

21 Feb 2010 (Release 57.1)
=========
*FIX. "charinvplusX" action failing to report when more than 2 objects worn by a character (thanks to Jason)

*FIX. "sfxoff" now stops sample/music that is playing immediately. (thanks to Frank)

20 Feb 2010 (Release 57)
=========
*FIX. Blank line after "again" command following speech input removed.

*FIX. Slight adjustment to object sentence listing for "drop all", "wear all", "remove all"

*FIX. Action "charlocX=room" now works

*NEW. "charlocX=charlocY" ACTION - the location of char X is changed to be the location of char Y

*NEW. "lookinobjn2" ACTION - works exactly the same as "lookinobj"

*NEW. "lookinobjn1" ACTION - the same as "lookinobjn2" except uses container object n1

*NEW. "lookincontn1" ; "lookincontn2" - work like "lookinobj" except objects listed in sentence fashion.
NOTE: the "objlistoff" action must be activated before usage!

*NEW. "charinvplusX" - where X can be the tags: n1, n2, %speech% OR a valid character number (1-100)
Lists objects carried and worn by Character X eg:

Joseph the farmer is carrying a rope, a penknife and a lamp. He is wearing a multicolored coat.

System Message 48 is now marked to accompany this new action and is needed to be changed by the author
to read by default: "is wearing " (note the trailing space) TAB will work out whether to use 'He/She/It" from the
Character gender setting from the Character Editor for the second sentence listing the objects worn.
System Message 48 may use random elements (%r%)
The demo databases are updated to include it.

*NEW. Introduction of a Diagnostics dialog. Type in and enter "dx" at the input prompt (in the Editor version of TAB only) to access Diagnostics.
Some basic DIAGNOSTICS to help when playtesting in the TAB Editor.
Simple changes that can be made to move objects, alter flag values, change rooms, change weights of objects, alter turns, change carryable limit and move characters to different locations.

14 Feb 2010 (Release 56.2)
=========
*FIX. "objlocn1=carrworncont"; "objlocn2=carrworncont"; "objlocn1<>carrworncont" and "objlocn2<>carrworncont"
CONDITIONS now working correctly.

*NEW. Text formatting tag: %objX% - prints object noun keyword for object X (1-200)

*NEW. "objlocn1=carrwornroomcont"; "objlocn2=carrwornroomcont";
"objlocn1<>carrwornroomcont" and "objlocn2<>carrwornroomcont" CONDITIONS
These check for an object (objn1 or objn2) in ANY container that may be carried, worn or in the current player room.

13 Feb 2010 (Release 56.1)
=========
*FIX. The TAB Player window close button is now no longer active when an "endgame" prompt is awaiting user
keypress. Sometimes the music channel continued to play when exiting the game via the close gadget during an
"endgame" prompt resulting in an improper closing of TAB and no way to turn the music off!

12 Feb 2010 (Release 56)
=========
*FIX. Script1 not being called by option (U)ndo after an "endgame" action in Script2

*NEW. I made it so you can customize the menu About Box with your own text by using
previously unused system message 49.
By default the About Box will use the inverse colors of your start game text and back colors.
The box will use the game window title (from game settings editor) and an OK button.
This box will only appear if a game is loaded into the TAB Player.
Otherwise if no game is loaded in the Player then the normal TAB 'About' box will be shown.

The Player 'Help' menu option will now autoload and run NOTEPAD with your help/instructions or whatnot
(providing your game is loaded into the TAB Player)
The file must be named "help.txt" and reside in the game source directory.
If a text file called 'help.txt' does NOT exist then an alert message will show asking the player to check the game
directory for any helpfile.
If no game is loaded in the TAB Player then the normal TAB Alert box will appear as usual for now...

For those not using MenuBar in games (menu disabled on game settings editor) don't worry you will still be able to
show the about box and/or helpfile with 2 new actions:

about - show about box (with text from system message 49)
help - show notepad with "help.txt" from game directory

*NOTE. If using 'About' box, please update your data to include System Message 49 to show some info, credits, version release, author details or whatever.. The demo databases have been updated to include a standard text for the 'About' box.

10 Feb 2010 (Release 55.2)
=========
*FIX. Adjustment to "playsample" action (reported by Amy)

05 Feb 2010 (Release 55.1)
=========
*FIX. Undo not working correctly on game ending via "endgame" action. (reported by Amy)

03 Feb 2010 (Release 55)
=========
*CHANGED. System Message 43 only must be used for game input prompts now so as to free up System Messages 44 - 49.

*FIXED Splash Screen dialog causing TAB to launch duplicate TAB Player if ENTER/SPACE pressed...
Focus will now be on button. If RETURN, ENTER OR SPACEBAR is pressed it will be equivalent to clicking "Start Game" button.

*FIXED. LineFeeds missing when text printed in a multi-input phrase eg:
>e,w,drop pen,take pen,examine pen and eat it

*NEW. Action "newline" prints a blank line.

*NEW Action "endgame" ends current game with options.... Requires new System Message 46:
"Would you like to (Q)uit, (R)estart, (L)oad a saved game or (U)ndo?"

*NEW. Actions "quicksave" and "quickload" act like saving a game position without the hassle of naming a file in a file selecter.
This is an OPTIONAL extra feature that the game author can allow or not. It acts a bit like the old ramsave/ramload used in early text adventures.

*NEW. Quicksave ID Filename textbox on "Game Settings Editor"

Existing datafiles need to add the following Response entries:

[start]quickload[acts]quickload#done[end]
[start]quicksave[acts]quicksave#done[end]

and Vocab verbs with synonyms if wanted...

/quicksave/qsave/qs/

/quickload/qload/ql/

System Message 44 must be changed to now contain a related "quickload" message:
"No quicksave file is present." or similar type report.

System Message 70 should be changed to hold a unique quicksave filename eg: "mygame"
This is used to tag, identify and associate a resultant ".qsav" file so that it may only be used when playing THAT unique game only.
The quicksave ID filename can be also be inserted/amended and autosaved to System Message 70 on the "Game Settings Editor"

System Message 26 ("Okay") will be used by TAB to report the quicksave action has been done.

The demo databases have now been updated to include this new feature.

*FIX/CHANGE. "Undo" now works after an input timeout.
An extra undo System Message 45 must now be inserted in the database:
"You cannot use undo again straight after an undo command" so TAB can report if the player tries to use undo consecutively.
Undo now works if typed in a multi-input phrase. "Again/g" now recognises "undo".
The demo databases have been updated.

30 Jan 2010 (Release 54.7)
=========
*CHANGED. Undo now describes location etc and updates statusbar pane text; also refreshes location graphics in mode 2 after the turn is undone.
*FIX. "[" open square brackets symbol does not now cause problem in input text line. Can also now be used in "typemess" action without problems.

29 Jan 2010 (Release 54.6)
=========
*NEW. "undo" command (built-in command)

If undo is active (switched on with "enableundo") the typed "undo" command will undo a turn and go back one move restoring the game position to as it was before the last input command was entered. If undo is inactive (switched off with "disableundo") then System Message 85 will be printed.

*NEW. "enableundo" and "disableundo" ACTIONS will set "undo" feature to on/off

*NEW. "undoenabled" and "undodisabled" CONDITIONS check if "undo" feature is active or not

To incorporate this feature into existing TAB adventure databases the data needs updating to include 2 new System Messages 80 and 85 (previously reserved) and optionally (but recommended) the following 2 new RESPONSE entries, verb and preps.

[start]undo on#undoenabled[acts]cmessUndo is already active.#else#undodisabled[acts]cmessUndo is now active.#enableundo[end]

[start]undo off#undodisabled[acts]cmessUndo is already deactivated.#else#undoenabled[acts]cmessUndo is now deactivated.#disableundo[end]

System Message 80:
"Turn undone!"

System Message 85:
"Sorry. Undo is not available yet."

Remember, System Messages can use %random% texts if desired.

Vocabulary Verb (if not already present!) :
/undo/

Vocabulary Preps (if not already present!):
/on/
/off/

Check out the demonstration databases which have been updated to include these amendments.


25 Jan 2010 (Release 54.5)
=========
*FIX Transcript not logging text correctly

*CHANGED. fade/appear ACTIONS delay time changed from 3 to 1 second

*FIX. Input textbox now has focus after a typed restart or replay action when opening room contains a "keypress/presskey" wait for key action

*NEW. "scoreturns" ACTION - prints player's score and turns taken

*CHANGED. "score" ACTION now prints player's score only

*NEW. "objn1fitsintoobjn2" CONDITION will be TRUE if the size of object objn1 is less or equal to that of CONTAINER object objn2 OR if CONTAINER object objn2 has a size value of 0 (zero; ie. any objs can fit in it!) It will thus be TRUE if objn1 fits into the container objn2.

*NEW. action "typemess". This prints out a message letter by letter in a sort of typewriter fashion with a small pause between each letter, until the end of the text has been output. Might be useful in a particular situation eg:
#typemessI am message written by the new typemess action!#
NOTE: Because individual textual characters are printed singly, one by one, 'text formatting codes' or %tags% will NOT have any effect in a typemess... But you can set font and color etc. prior to using it.

*NEW. "wear all" and "remove all" now lists objects in concatenation style if "objlistoff" enabled eg:

>wear all

You are now wearing the smock, sandals and bag.

>remove all

You remove the smock, sandals and bag.

19 Jan 2010 (Release 54.4)
=========
*NEW. Some new ACTIONS:
"fade" - fades adventure window until disappears
"appear" - fades window back into view again
"slideoff" - slides window horizontally right until disappeared
"slideon" - slides window horizontally left back into view again
"hide" - instantly hides adventure window from view
"reveal" - instantly reveals a previously hidden window with "hide"
*NEW. Some new program window fx.
Editor Dialog Window now slides vertically up/down on opening/closing
Player Dialog Window now expands outward on open - collapses inward on close

17 Jan 2010 (Revised Release 54.3)
=========
*FIX. Autorun would sometimes not display the Player at start of game if waiting for a reply to a "presskey" or "keypress" action in Script 1 or 2.
*IMPROVED. Scrolling bar now set to bottom after text output finished.

16 Jan 2010 (Release 54.3)
=========
*CHANGED. Scrolling reverted back to prior release due to reported problems.

16 Jan 2010 (Release 54.2)
=========
*IMPROVED. Scrolling bar now set to bottom after text output finished.
*IMPROVED. "pauseX" action now blocks input and disables keyboard for duration of pause. Apart from that there is no change to this action and it operates as before.
Note to Vista/7 users: In order for 'blockinput' to be totally effective during the pause TAB or a TAB game must be run with administrator rights.

11 Jan 2010 (Release 54.1)
=========
*CHANGED. "randomroomX" action now behaves like a "room=X" action. To describe the random room now use "desc" action.

06 Jan 2010 (Release 54)
=========
*CHANGE. The "linkX$" action was causing problems and is now removed from TAB. Please do not use this (rarely used) action any more. It will not work.

*FIX. Temporary workaround fix to "gameover" action when used after "pause" action to prevent user keypresses affecting "gameover" messagebox and causing it to not appear at all.

*FIX. The %speechloc% character speech tag was broken. Now works.

*FIX. The following commands were previously not working or listed in the language document:

charlocn1 [ >= | <= | <> | > | < | = ] X
Example: "charlocn1>=40"
Example: "charlocn1=%speechloc%

charlocn2 [ >= | <= | <> | > | < | = ] X
Example: "charlocn2>=37"
Example: "charlocn2=%speechloc%

*FIX. If a database is loaded and the User quits the TAB_Editor and responds affirmative to the messagebox prompt: "Save Database Before Exiting?" the "Save File" requester will now correctly appear allowing data to be resaved etc. After which the program will return to the TAB Editor.
This was not previously occurring and might give the illusion that data was being automatically saved on exit without any confirmation when the program closed...

*FIX. The Game Window Title (as entered on the Game Settings Editor) will now show up on the opening intro splash dialog window if the TAB Player is set to autoload and run a game from the Player main directory (autorun.tab)
Previously not possible because the game data wasn't loaded first before the splash dialog window was displayed.

*NEW & IMPROVED. A transcript will now log text output sent to the game richedit control in real time to a user-designated file - instead of previously only doing a simple capture of all the current text in the control to a text file when selected from the TAB Player [Adventure] menu.

There are now 2 menu options on the Player to replace the [transcript] menu option:
[Transcript On] - If not already on prompts the user via the file requester to select a filepath (if required) and create an output transcript text file for recording.
[Transcript Off] - If not already off, stops transcript recording by closing the output file.

When turning on transcript it is possible to select an existing transcript file and have subsequent logged text appended to it...

NOTE: Text on a "dialogmess" box, an ask/answer inputdialog box or any TAB system messagebox will not be recorded.

*CHANGED. The "transcript" ACTION is now defunct and is replaced with 2 new actions:
"transcripton" and "transcriptoff" which behave the same as their [Adventure] menu option counterparts.

*NEW. "randomroomX,X,X,X,X....."
Will randomly select one of the room numbers indicated then do an automatic "gotoX" action to place the player in that room and describe it eg:

#randomroom1,5,23,56,70#

Put player in a random pick of one of the above rooms 1,5,23,56 or 70 and then do a location describe.

There's no upper limit on the number of random rooms you can list - but they must be valid location numbers.

You could possibly make the game start off each time in one of the different stated random rooms...

*NEW A location can now have alternate descriptions. (individual elements in a location text)
A spare User Flag needs to be loaded with a special numerical value to indicate to TAB that a location contains alternate location descriptions and that when doing a location describe to simply print out a particular numbered alternate description from out of the location text.
An example:

Room 5 is required to contain ALTERNATE descriptions.
We will also use a spare flag say... flag 31

At the start of the game we decide that we want to print the FIRST alternate description of room 5 when the player arrives in it - until, that is, we decide otherwise...

Because it's room 5 we load flag 31 with 5000 + THE NUMBER OF THE ALTERNATE DESCRIPTION!

In this case it will thus be set with the value: 5001

The formula is:
Flag Value = (room number * 1000) + THE NUMBER OF THE ALTERNATE DESCRIPTION

So we go to Script1 or Script2 and put in an entry early on to put in an ACTION #flag31=5001# like so:

[start]turns=0[acts]flag31=5001[end]

(We might need also to set in that entry any more flags relating to OTHER alternate description rooms too that we might be using in a game so that TAB "knows" what to do)

Now we go to the Location Editor to enter our room description(s) for Location 5. We have decided beforehand that there will be 4 alternate scenes for room 5. (although most will probably use only 1 or 2 usually to reflect little changes in the room atmosphere etc) We will use bracketed number tags to make plain to TAB the starting and ending points of each individual segment...

Location 5 text
===========
[1]This is the first room 5 description.[1]

[2]This is the second room 5 description.[2]

[3]This is the third room 5 description.[3]

[4]This is the fourth room 5 description.[4]

=========
You can use carriage returns to space them out for clarity.
The tags are important and *MUST* be present for correct textual output.

TAB will grab the chunk it needs from between the number indicators BEFORE it goes on to do the checks for cyclic and then random formatting etc. - so it would be perfectly possible to include cyclic/random elements within each alternate room description too!

Recap:

If the location were 16 and the spare flag used 56 we'd need to set an action such as:
#flag56=16003#
which would cause TAB to only print alternate description 3 of room 16.

If the location were 500 and the spare flag used was 1 an action such as:
#flag1=500002#
would always print the second alternate description of room number 500.

 

I am sure you will think of times when it may be handy to use alternate descriptions after certain puzzles or changes in a game etc. Now it will be possible.
eg: room description says "There is a closed cupboard" in the text.

Player opens the cupboard (if successful then use action to set "alternate room flag")

Alternate room description now tells player somewhere in text: "The cupboard door has been opened"

*NEW. Alternate 'Object Examine' messages, Alternate 'Character Examine' messages and Alternate 'Character Announcement' texts can be entered into the Editors using the same procedure as above using the flags with the following formulas:

The formula for alternate object examine messages:
Flag Value = (object number * 1000) + 100 + THE NUMBER OF THE ALTERNATE DESCRIPTION

The formula for alternate character examine messages:
Flag Value = (character number * 1000) + 200 + THE NUMBER OF THE ALTERNATE DESCRIPTION

The formula for alternate character announcement texts:
Flag Value = (character number * 1000) + 300 + THE NUMBER OF THE ALTERNATE DESCRIPTION

Remember, if using alternate descriptions to set the relevant flags to contain the default starting description (formula value) in a coding table so as to trigger before a game starts.

Examples
=======
#flag23=30103# - set object 30's examine message to only print description 3

#flag2=10201# -set character 10's examine message to always show description 1

#flag101=45302# - set character 45's announcement text to print description 2

The following actions will also reflect these new instructions in the text printed:
objn1mess, objn2mess, objmessX, autoexamobj, examall, charn1mess, charn2mess,charmessX,
autoexamchar.

NOTE:
The portions of Object examine messages and Character examine messages which have been constructed to contain Character speech replies ie. those output by the "charobjn1mess", "charobjn2mess", "charcharn1mess" and "charcharn2mess" ACTIONS (those that contain %chX% format tags) MAY NOT contain ALTERNATE descriptions. Only the PLAYER examine parts of these messages (the text before the " %endmess%" tag) is ALLOWED to contain alternate descriptions.

27 Dec 2009 (Release 53.6)
=========
*FIX. music volume and sound volume level reset to normal default (100 ; full volume) when game initialised or re-initialised in TAB Player.

26 Dec 2009 (Release 53.5)
=========
*NEW sound actions which should be useful.

musicvol=X
samplevol=X

where X is a value of 1 (lowest) to 100 (full volume)

Controls volume of music or sample channel.

eg: #musicvol=80#loopsamplewindsound.wav#
eg: #loopsamplewindsound.wav#musicvol=50#
Can be used before sound is playing or after sound is playing.

*FIX. Ensured relevant playing channel is stopped first before a new sample/music playing action is done.

26 Dec 2009 (Release 53.4)
=========
*NEW sound ACTIONS:
musicpause - halt/pause a currently playing music file
samplepause - halt/pause a currently playing sample file

musicresume - resume playing loaded music file from paused point
sampleresume - resume playing loaded sample file from paused point

musicrestart - restart currently loaded music from beginning of file
samplerestart - restart currently loaded sample from beginning of file

loopsampleX$ - load, play and loop a sound sample
eg: #loopsamplewind.wav#
(stop sample playing with "samplestop" or samplepause" action)

18 Dec 2009 (Release 53.3)
=========
*FIX. Strange quirk: Typing "[" character in player input command causing TAB to crash.
(originally fixed in Release 42)

16 Dec 2009 (Release 53.2)
=========
*NEW conditions added by request:

notanycharsroom - TRUE if no characters in player's current room.
notanycharsX - TRUE if no characters in room X.

anystaticroom - TRUE if any static objects in player's current room.
anystaticX - TRUE if any static objects are in room X.

notanystaticroom - TRUE if no static objects in player's current room.
notanystaticX - TRUE if no static objects are in room X.

notanyobjsroom - TRUE if no dynamic objects present in current room.
notanyobjsX - TRUE if no dynamic objects are in room X.

anyinroom - TRUE if any static AND/OR dynamic objs are in current room.
anyinroomX - TRUE if any static AND/OR dynamic objs are in room X.

notanyinroom - TRUE if no static AND/OR dynamic objs are in current room.
notanyinX - TRUE if no static AND/OR dynamic objs are in room X.

*NEW. %exits% text formatting tag. Will be replaced by the directions only from the player's current location - but only works if exits are on and it is not dark in that room... eg: "north, south and west"

05 Dec 2009 (Release 53.1)
=========
*IMPROVED. When a player confirms to quit an adventure game an optional sound file in .wav or .mp3 format can be made to play (providing ingame sound is enabled) before the game is fully exited/closed down.
The file must be present in the game sound folder (as set in "Game Settings Editor") and in order to be recognized must be named "quitsound". (suggested by Frank Fridd)

27 Nov 2009 (Release 53)
=========
*FIX. Use of "gameover" action causing subsequent display problems in TAB Player if user responds NO to game restart dialog. In order to prevent this happening and as a temporary but necessary fix a game will now restart in TAB Player whether user responds YES or NO to the "gameover" action restart dialog until further notice.

12 Oct 2009 (Release 52)
=========
*NEW. Character Announcement Text, Character Name Text, Object Text Description and ALL System Message Texts (except Statusbar pane messages) can now contain random elements using the familiar "%r%" tag. These will work irrespective of the state of "objlistoff", "charlistoff" or "invlistoff" variables.

eg: Character 1 RANDOM announcement text:
"Joseph the farmer is here.%r%Farmer Joseph stands near you.%r%Joseph, a friendly farmer, is beside you."

eg: Character 1 RANDOM name text:
"Joseph the farmer%r%Farmer Joseph%r%The farmer named Joseph%r%Joseph"

eg: Object Text RANDOM description:
"a knife.%r%a sharp knife.%r%a knife. (looks like a penknife)%r%A knife. Slightly bloodstained."

eg: Random System Message 1:
"You now have the %r%You take the %r%You pick up the %r%You %vsyn% the "

**NOTE** The "objlistoff" ACTION command forces TAB to concatenate object listing in room descriptions and is similar to action "invlistoff". If choosing the "objlistoff" option then as stated earlier in this alpha history all object text descriptions should begin with a lower case letter and should not terminate with a period. (full stop)
eg: "a brown satchel" is OK. "A brown satchel." is not OK for this type of object listing output.

Example code required in Script 1:

' enable concatenated object listing...

[start]flag20=0[acts]flag20=1#objlistoff[end]

Example output:

"Also visible is a torch, a spanner, some food and a computer."

You may need to adjust System Message 40. You can use %r% (random) message tags in System Message 40: "Also Visible: " eg:

"Also visible is %r%I can also see %r%Notable objects present include "

"Crystal_Keepers.tab" game has been set to use this format.

Remember to preserve the correct spacing required if randomizing System Messages.

09 Oct 2009 (Release 51.5)
=========
*FIX. Editor wasn't allowing use of Main Menu buttons when a database loaded for first time. (Thanks to Frank Fridd)

08 Oct 2009 (Release 51.4)
=========
*FIX. TAB now ensures that multiple objects with same noun name are ignored and not just the first occurrence of such an object noun in the Object List when a valid input phrase containing an "all except/everything but" is entered.

eg:

Object Noun 5 = /lamp/ (unlit lamp)
Object Noun 12 = /lamp/ (lit lamp)

>get all but the lamp

In such a situation it was possible for "getall" to wrongly take the "lit lamp" if it existed in the game.
I uncovered this anomaly while playing "character_demo.tab"

06 Oct 2009 (Release 51.3)
=========
*FIX. Static Objects can now be unset in the Object Editor (Thanks to Gareth)

01 Oct 2009 (Release 51.2)
=========
*FIX. Coding error related to last release. Fixed

30 Sep 2009 (Release 51.1)
=========
*FIX. TAB now calls Script1 after a location which is set to DARK is described via System Message 78: "It's Dark. You can't see anything." (Thanks to Gareth for reporting)

26 Sep 2009 (Release 51)
=========
*FIX. Graphics now using listview control to correct pictures not centred properly in graphic display mode.

21 Sep 2009 (Release 50)
=========
*NEW. #minversion set to 1.7.9.0
*FIX. Datafiles with long intro and/or opening location descriptions (including 'autorun' datafiles) were not loading properly into TAB Player(s) and was resulting in TAB Player failing to appear...

15 Apr 2009 (Release 49.7)
=========
*FIXED. TAB control callbacks for Character Movement radiobuttons were not functional in the Character Editor. Sorry.
Thanks to Frank Fridd for reporting!

05 Apr 2009 (Release 49.6)
=========
*NEW. #minversion set to 1.7.7.0
*NEW. TAB converted from windows events loops to callback windows
*IMPROVED. Graphics now shown using new thinbasic module UI_IMAGECTX
*IMPROVED. Actions following a "playmovie" action are not now processed until after movie has been exited.
*IMPROVED. Vocabulary Editor does not now accept "//" in Editbox field
*NEW. If an input command begins with "rem:" any following text is NOT PROCESSED by TAB. However that text will be printed in any transcript text file. (if "transcript" is turned on)
Useful in playtesting games to highlight game anomalies in a transcript for reporting to game author.

25 Feb 2009 (Release 49.5)
=========
*FIX. Vocabulary Editor does not now crash TAB during Search Mode in certain instance
*FIX. Vocabulary Editor now searches and highlights "Deletions List" for complete words only
*FIX. Vocabulary Editor now disregards any leading/trailing space characters.
*FIX. Vocabulary Editor does not now delete listbox word entry if the EditBox textfield does not contain "/" characters

27 Jan 2009 (Release 49.2)
=========
*FIX. Adventure text now auto-adjusts to a window resize operation. Text is scrolled up to current text caret position (vertical scrollbar moved to bottom)

*FIX. "jump" command faulty: now working OK

*NEW "updatecommand" ACTION. Constructs a new input command based on the parser variables that have been changed in an entry and also changes string variables vsyn, n1syn, psyn and n2syn to be corresponding KEYWORDs (if necessary). Can be used before the "jump" action to change an input command so that the new command can be processed from the jump label... eg: ....#updatecommand#jumpSOMECODE[end]
An example of "updatecommand" action in use is in "char_commands_demo.tab" Response entries (giving object to character)

*FIX. <F1> Command History Scroller Improved to skip past empty array strings

*FIX. Carried items now correctly saved/restored in a Load/Save Game Position

22 Jan 2009 (Release 49.1)
=========
*FIX. "anyobjsroom" CONDITION now correctly disregards static objects that may be present in the room.

*IMPROVED. The "again/g" command now works with last found Character speech command eg:
>say to smith,inventory

Smith owns:
nothing at all.

>g

Smith owns:
nothing at all.

*FIX. Speech command input format: "<character>," now responding correctly after previous input commands

*FIX. Minor fix to Character Movement Routine causing occasional crash on game startup

*FIX. Adjustment to turnscount re: "replay", "restart", & "gameover" ACTIONS.
Important: These actions must be the LAST action and only used in a RESPONSE or SCRIPT2 coding entry.

15 Jan 2009 (REVISED Release 49)
=========
*FIX. "speechcount" conditions were faulty. Now corrected

*CHANGED. Optional System Message 86 is now handled explicitly in the Character Speech Commands Responses
(on Character Editor) See "char_commands_demo.tab"

12 Jan 2009 (Release 49)
=========
*FIX. Turns now starts at 0 following a "gameover" action called from Response Editor

*FIX. "jump" command not adjusting "player input command" when parser variables had been reset

*FIX. Adjustment to <F1> Command History Key Scroller

*CHANGED. "say to <char>" and equivalent responses now processed in Character Speech Command Response List. (see "char_commands_demo.tab")

*NEW. 2 new SPEECH conditions:
speechcount=X
speechcount<>x
They are only used in default character speech entry to handle commands given to an ABSENT character

09 Jan 2009 (REVISED Release 48)
=========
*FIX. Some internal code fixes that might affect performance and operation of program

08 Jan 2009 (Release 48)
=========
*FIX. "say to <char>" typed without any character commands does not now print System Message 84.
(replies to this can be handled explicitly in Character Commands List - see "char_commands_demo.tab")

*FIX. "autoremoveobj" was not checking objects carried value before moving a worn object to player's held inventory.

*NEW. %cap% format tag. Auto-capitalises first letter of first word in text only. Useful for character name text that does not start with a capital letter eg:
"%cap%the black cat"

*FIX. Slight adjustment to turnscount routine.

*NEW formatting code tags:
%he.she.speech% - print "he", "she" or "it" depending on speech character's gender (male, female or "it")
%him.her.speech% - print "him", "her" or "it" depending on speech character's gender (male, female or "it")
%his.her.speech% - print "his", "her" or "its" depending on speech character's gender (male, female or "it")

*NEW Conditions:

charitemscarrX[ >= | <= | <> | > | < | = ] Y
eg: #charitemscarr1< 3#rem: Is character number 1 carrying less than 3 items?

charitemswornX[ >= | <= | <> | > | < | = ] Y
eg: #charitemsworn16> =9#rem: Is character number 16 wearing 9 or more items?

charitemscarrn1[ >= | <= | <> | > | < | = ] Y
eg: #charitemscarrn1< 3#rem: Is character charn1 carrying less than 3 items?

charitemscarrn2[ >= | <= | <> | > | < | = ] Y
eg: #charitemscarrn2< 3#rem: Is character charn2 carrying less than 3 items?

charitemswornn1[ >= | <= | <> | > | < | = ] Y
eg: #charitemswornn1> =9#rem: Is character charn1 wearing 9 or more items?

charitemswornn2[ >= | <= | <> | > | < | = ] Y
eg: #charitemswornn2< 3#rem: Is character charn2 wearing less than 3 items?

You can also use the %speech% formatting suffix for the SPEECH Character eg:

#charitemsworn%speech%<4#rem: Is speech character wearing less than 4 items?

charsamelocX,Y - Are characters X and Y both present in the SAME ROOM?

*NEW Actions:

speech=charn1 - set speech to be number of charn1

speech=charn2 - set speech to be number of charn2

speech=X - set speech to character number X (1-100)

smessX - same as "messX" except only works in Speech Command Responses

scmessX$ - same as "cmessX$" except only works in Speech Command Responses

charcharn1msg - similar to "charobjn1msg". Prints Character n1 examine text

charcharn2msg - similar to "charobjn2msg". Prints Character n2 examine text

*FIX. A blank line is not now output as a result of a Response code entry where no text is actually outputted

*IMPROVED. "charlocX" CONDITION can now be tested against player current room number:
charlocX [ >= | <= | <> | > | < | = ] room
Example: "charloc5=room"

*MODIFIED. F1 input command history reversed and text caret now appears at end of text

*NEW. System Message 86 (previously unused) can be optionally used for an extra reply when Player types in a valid Character Speech Command:

>farmer, go east

The farmer listens to your request.

The farmer travels east.

*NEW. "speechlistoff" ACTION command.
This action turns off Speech Character Command message reporting via "cmess", "mess" and other speech actions that print text - but only if the Speech Character is not in the same location as the Player. In such a situation any actions other than text output will still be carried out by TAB.

*NEW. Implemented "oops" command functionality on current input phrase eg:
>examine tablee

Sorry. I do not understand the word "tablee" as a noun.

>oops table

The table is very ornate and polished.

*FIX. "score", "score+X" and "score-X" actions now update statusbar text pane if followed by a "done" action

*FIX. "presskey" and "keypress" actions scroll behaviour corrected

24 Dec 2008 (REVISED Release 47)
=========
*FIX. Character Speech Coding error in "char_commands_demo.tab"

*IMPROVED. Quotation marks deleted from input command so that eg: >say to <char>,"hello" would still work.

*NEW. "transcript" ACTION (for use in games with disabled menu)

*MODIFIED. Interaction when commanding characters can now be accomplished via 3 ways:
say <character>, command(s)
say to <character>, commands
<character>, commands

*CHANGED. Changed Font for some Editor textboxes due to reported editing problems

*NEW. An additional new text format command:
The following will operate on valid Character noun1 and/or Character noun 2 words typed by player.
%his.her.n1% - print "his", "her" or "its" depending on Char Noun 1's gender (male, female or "it")
%his.her.n2% - print "his", "her" or "its" depending on Char Noun 2's gender (male, female or "it")

*NEW. <F1> Key now holds last 10 player input commands history which can be scrolled and edited in Input Command textbox.

*NEW "playmovieX$" ACTION
Similar to "playmovie1X$" and "playmovie2X$" except will work in display modes 1 or 2. Plays videoclip in adventure window Example: #playmovietest.wmv#

*NEW. 2 new Conditions:
"anycharsroom" - are any characters present in current room?
"anycharsX" - are any characters present in room X?

*NEW. 2 new Actions:
"showobjs" - list objects visible in current room (listing fashion is dependent on "objlistoff" setting)
"showchars" - list characters present in current room (listing fashion is dependent on "charlistoff" setting)

*FIXED. Errant "incflag" messagebox removed

28 Nov 2008 (Release 46.9)
=========
*FIX. Save/Load Data and Save/Load Game Position updated to fix Character movement problems.

*ADDED. Syntax check for "/" (slash symbol) now present for Character Editor Nouns and Object Editor Nouns.
Functions same way as in Vocabulary.

*NEW. "presskey" action - same as "keypress" action except requires key "C" to be pressed instead of SPACE before continuing with game... System Message 69 (previously unused) now set to read: "Press C to Continue...". This eliminates windows system sound "ding" present in "keypress" action.

22 Nov 2008 (Release 46.8)
=========
*FIX. "pattcharX=Y$", "pattcharn1=Y$" and "pattcharn2=Y$" actions were faulty and causing problems in character movement.

19 Nov 2008 (Release 46.7)
=========
*FIX. "openobjn1", "openobjn2", "closeobjn1", and "closeobjn2" ACTIONS were faulty and not working.

08 Nov 2008 (Release 46.6)
=========
*FIX. "pattcharX=Y$" ; "pattcharn1=X$" ; "pattcharn2=X$" ACTIONS now working correctly

*FIX. Character(s) moving by movement pattern glitch corrected.

02 Nov 2008 (Release 46.5)
=========
*FIX. A minor but important deletion word handling fix.

*FIX. The following actions were not taking Player inventory object carryable/weight status into account:
objlocn1=charlocn2
objlocn2=charlocn1
objlocn1=charlocX
objlocn2=charlocX

*FIX. "getall" and "getallplus" actions amended to prevent error occurring.

*CHANGED. Splash Screen close button now exits TAB Player

30 Oct 2008 (Release 46.4)
=========
*FIX. A bug in Characters moving by walk pattern that was causing TAB to crash.

*FIX. A bug in movement reporting message for Random Characters with prohibited location walk pattern.

28 Oct 2008 (Release 46.3)
=========
*FIX. A "quit", "restart", "gameover" or dialogmess" action dialog box is no longer skipped/missing after a "More..." text prompt SPACE keypress.
This was still causing trouble and is hopefully now fixed.

27 Oct 2008 (Release 46.2)
=========
*CHANGED. Turns not incremented if player aborts or replies "no" to a typed QUIT input command

*FIX. A "quit", "restart", "gameover" or dialogmess" action dialog box is no longer skipped/missing after a "More..." text prompt SPACE keypress!

*IMPROVED. System Message 98 changed to support a plural format:
" follows you.| follow you." (note spaces)
Uses the bar/pipe symbol "|" to split text between singular and plural.
If more than one character following the Player then TAB will now print the second version of this message. Text is still customizable.
eg: "Billy the thief and Roger your canine companion follow you."

*CHANGED. Script 2 is now processed AFTER any Character movement reporting.

22 Oct 2008 (Release 46.1)
=========
*FIXED. "ask" action does not now wrongly process Script2 entries twice

*CHANGED. Turns are not incremented if Player replies "no" or "cancel" to a restart operation or cancels a save game position or load game position operation either from the adventure menubar or as a result of a typed input command.

*REMOVED. Some code testing dialog box now deleted from long¯verb function

*IMPROVED. Characters set to "follow" in the Character Editor can now be accepted with a Start Location of 0.

*IMPROVED. When an object is set as a container the corresponding location text is set to: "Inside of <object noun keyword>." instead of "Inside of Object <object number>"

19 Oct 2008 (Release 46)
=========
*NEW. TAB now has auto-detect for Character Speech Commands inputs.
You may now optionally shorten input commands such as:

>say to the farmer, go south and get all
>say to joseph,go south and get all
>say to joseph the farmer, go south and get all

to the much easier and simpler:

>farmer, go south and get all"

*NEW. "getallplus" default ACTION firstly tries to get all objects in any open containers in the room and then tries to get any objects in the room itself. (getall)

*NEW. "autogetobjplus" default ACTION tries to take the named object firstly from any open container which may be held, worn or in the current room if it is in one, otherwise it will then try to get the named object from the room itself (autogetobj).

*FIX. Due to errant coding Multiple long¯words were not working correctly.

*FIX. Script1 now executing correctly a "turns=0" condition after "yes" reply to a "gameover" action.

*FIX. "keypress" action is now working correctly if used before a "gameover" action.

13 Oct 2008 (Release 45)
=========
*CHANGED. System Message 56 can now contain the "quit" message in the dialog that appears when exiting the Player whilst a game is still loaded. The dialog also contains the game title" caption (from Game Settings Editor)

*CHANGED. If menubar is absent, TAB Player is closed when game exited.

*NEW. "samplestop" action: stops a sample from playing (useful for large .wav files)

*ADDED. Extra InfoBox on [Help>>About] Menu Option on TAB Player.

10 Oct 2008 (Release 44.3)
=========
*FIX. The "again/g" command is cleared to empty when game restarted or new game loaded into Player.

*IMPROVED. "dialogmess" action. Text can now begin by optionally specifying a titlebar text caption. The caption text should be split from the box text using the "|" (bar or pipe symbol)
Format: #dialogmessI am the caption|I am the text in the dialog.#

*FIX. Error since last version: Opening a new game in Player now preserves current dialog window size instead of autoresizing to default start-up dimensions.

*FIX. Removed some obsolete code testing from Response entries in "character_demo.tab" that was affecting gameplay in this demo.

*IMPROVED. Vocabulary "Multiple Long Nouns" and "Long Verbs" now supported in word entries.

*CHANGED. "splash.bmp"

*FIX. If Character Editor "follow" checkbox ticked, TAB warns author if Character Start Room is not the same as Player's Start Room.

*NEW. "maximize" ACTION. Forces TAB Player window to maximize eg. Script 2 entry:
[start]flag10=0[acts]flag10=1#maximize[end]

*FIX. "cyclemessX" action was broken - now works OK.

07 Oct 2008 (Release 44.2)
=========
*CHANGED. Character following a player are now reported in concatenation listing fashion eg:
"Joseph the farmer, Robbie the robot, and Roger follows you."

*FIX. "closeobjn1" action now working correctly.


07 Oct 2008 (Release 44.1)
=========
*FIX. Text now displays properly when a game is loaded from menubar after a NO response to a "gameover" action.

*ADDED. "openobjn1", "openobjn2", "closeobjn1", "closeobjn2" ACTION commands which were missing.

05 Oct 2008 (Release 44)
=========
*FIX. Starting location at the beginning of game now displays cyclic elements correctly in Player.

*NEW. "sfxon" and "sfxoff" actions to turn sound on/off during a game.

*FIX. A YES response to "Play again? on a "gameover" action now correctly performs a "restart" action instead of a "replay" action.

*FIX. "messX", "sysmessX" and "revmessX" actions now responding correctly in TAB Player. (sorry)

*FIX. Text finally displays correctly now in Player after a game "restart", "replay" and "gameover"

*NEW. "Prompt for Sounds" checkbox option in Game Settings Editor. If ticked a messagebox will ask Player at the start of the game whether sound (music and sfx) should be on or off.

*NEW. "Disable Menu" checkbox option in Game Settings Editor. If ticked the TAB Player MenuBar will not be attached to the Player Dialog Window. Players will need to manually type in 'save' and 'load' to store or restore saved game positions or 'quit' to exit a game.

*NEW. "menuon" and "menuoff" ACTIONS to show/hide TAB Player MenuBar.

*CHANGED. TAB Player Window Title now reads simply: "TAB Player"

20 Sep 2008 (Release 43)
=========
*FIX "mess" action followed by string instead of digit causing crash.

*FIX. Enabled a blank Game Window Title to be accepted in Settings Editor.

*FIX. Numbers can now be entered into Deletions Listbox on Vocabulary Editor.

*ADDED. n1=n2; n2=n1; n1<>n2'; n2<>n1 parser variable checking CONDITIONS

*FIX. "replay" action in TAB Player. Also turnscount adjustment for a typed replay/restart and a "gameover" action

*FIX. Bug in character movement for characters with a walk pattern causing TAB to crash

*NEW. Author can now control text in StatusBar (3 text panes). System Messages 81, 82 and 83 can be customized and can include message format %tags% such as %score%, %turns%, %brief% etc. See demos.

*NEW. Extra Conditions added on request:

objlocn1=carrworn - is object n1 carried or worn?
objlocn2=carrworn
objlocn1=carrworncont - is object n1 in a carried or worn container?
objlocn2=carrworncont
objlocn1=roomcont - is object n1 in a container in the current room?
objlocn2=roomcont

objlocn1<>carrworn - is object n1 not carried and not worn?
objlocn2<>carrworn
objlocn1<>carrworncont - is object n1 not in a carried or worn container?
objlocn2<>carrworncont
objlocn1<>roomcont - is object n1 not in a container in the current room?
objlocn2<>roomcont

*NEW. "call_CONDITION" is an ACTION that allows you to call a condition check whilst processing actions after the [acts] tag in a coding entry. All conditions can be prefixed by "call_" to cause TAB to briefly jump out of ACTIONS to check the specified condition. eg: #call_flag30=2# : Is flag 30 equal to 2?
If the condition is passed as TRUE then TAB continues with the following ACTIONS. If it is FALSE then TAB exits that entry. This useful ACTION replaces the little used and not working correctly "then" action command which is now no longer supported by TAB and has been superceded by the "call_condition" action.

*NEW "call_ACTION" is a CONDITION that allows you to call an action during condition processing before the [acts] tag in a coding entry. All actions can be prefixed by "call_" to cause TAB to briefly jump out of CONDITIONS to do the specified action. eg: #call_cmessI am a message.# : Print a cmess.
TAB then continues checking the subsequent conditions as normal.
The "call_" commands will prove to be a very useful addition to TAB and they can be used in Response, Script1 and Script 2.

*NEW. (ADVANCED TAB CODERS) Character "charmsg" ACTION extended to include optional facility to include Character compliance level messages. If using this note that flags 501 to 600 will need to be reserved to hold the "trust/compliance" level for each Character. New CONDITION "trust=X" and "trust<>X" ; where X is the compliance level held in the corresponding flag linked to the Character being commanded.
More info on this in TAB forum/Email Group.

*FIX. Coding fix for Script1 and Script 2 "else" processing.

*FIX. Some minor fixes.

12 Sep 2008 (Release 42)
=========
*NEW. "Create New" button on Message Editor. Finds and goes to the first free available empty message in the database.

*IMPROVED. Tab Editor Tooltips (help balloons) can be disabled by deleting the blank file "tooltips.txt" from the TAB main directory.
To reinstate simply restore a new blank text file of same name. By default the file exists. (tooltips ON)

*FIXED. Strange quirk: Typing "[" character in player input command causing TAB to crash.

*FIXED. In graphic game if any image file not present when a "picture showing action" is called TAB does not now produce "Invalid Action" message dialog.

*FIXED. Load/Save buttons on coding editors now work correctly. They save and load in .txt format and not incorrect .rtf format.

*FIXED. "%anyn1%" and "%anyn2%" tags responding correctly in Response entries after "it/them/him/her" detection.

*CHANGED. Multiple commands in same input line are now output separated with a newline.

*FIXED. Input textbox now inactive after a user "quit" or "gameover" action.

20 Aug 2008 (Release 41)
=========
*NEW. Search facility on Vocabulary Editor. TAB also checks new insertions and warns the author if a duplicate word already exists in the current Vocabulary category. Entries are also checked to see if words start and begin with "/" character.

*CHANGED. TAB Player "More text" prompt changed to System Message 23: "Press [SPACEBAR] To Continue..." This function is now more stable and working better now.

*MODIFIED. "keypress" ACTION command now uses System Message 23: "Press [SPACEBAR] To Continue..." which is now printed in the player input textbox until SPACE is pressed to continue program execution.

*IMPROVED. "cleartext" ACTION command now working properly. Clears adventure window of all text. Text begins scrolling from bottom of richedit after this action.

06 Aug 2008 (Release 40.2)
=========
*FIX. Space missing in "objlistoff" style of inventory listing when listing objects in carried container

*FIX. Coding flaw in #else# processing which was affecting game logic.

*ADDED. "door_demo.tab". Example door puzzle. (Thanks to sandyrepope)

02 Aug 2008 (Release 40.1)
=========
*FIX.The following ACTIONS now work correctly
swapobjsX,Y
swapcharsX,Y
swapflagsX,Y

*FIX. %anyn1% and %anyn2% text format tags causing TAB to get stuck in loop/crash if used out of context when no noun1 or noun2 parser variable existed.


26 Jul 2008 (Release 40)
=========
*CHANGED. TAB Player dialog window (text mode) now opens in same size as graphic mode game.

*NEW. Action "linkX$" automatically load a database into Player. eg: linkpart2.tab
Useful for multipart games over more than one database.

*NEW. "gfxdir=X$" and "sfxdir=X$" actions. Change picture and sound folders used by TAB.
eg: gfxdir=\part2pics\
eg: sfxdir=\sounds\

*CHANGED. Any character movements are not now reported when player is in a dark location.

*FIX. The following actions were not working correctly *all* the time:
n1=n2
n2=n1
objn1=objn2
objn2=objn1
charn1=charn2
charn2=charn1

*CHANGED. playmovie display problems fixed. movie can now loop/repeat.

*IMPROVED. Long noun now works for ordinary and character nouns as well as object nouns.

*CHANGED. Video clip/movies are now called by the below actions:
playmovie1FILENAME$ - play a .wmv video clip in picbox1 ONCE only
playmovie2FILENAME$ - play a .wmv video clip in picbox2 ONCE only
loopmovie1FILENAME$ - loop a .wmv video clip in picbox1
loopmovie2FILENAME$ - loop a .wmv video clip in picbox2
Note: Player can press <ESCAPE> key to exit videoclips

*FIX. 'objn2notstatic' condition now works properly
*FIX. 'objn2notcontainer' condition now works properly

*NEW. Some new conditions added:
objn1lit - is object noun 1 a lightsource?
objn2lit
objn1notlit - is object noun 1 not a lightsource?
objn2notlit
litX - is object X a lightsource?
notlitX - is object X not a lightsource?

*NEW. 3 new OPTIONAL Character SPEECH actions are:

"charobjn1msg" - print a Speech Character's response to an object noun 1 'examine' command (uses object examine message text in Object Editor)

"charobjn2msg" - print a Speech Character's response to an object noun 2 'examine' command (uses object examine message text in Object Editor)

In order for the above 2 commands to work in the Character SPEECH Response entries the normal PLAYER object examine message for the object in question must now terminate with a tag:

%endmess%

This tag informs TAB that it signifies the end of the Player object examine text - and that any text below it can be used for if character(s) are commanded to examine an object also.

Example:

Object Message 5:

The hat is a safety hat for protection.%endmess%

Once you have put in this tag, you can begin to type in each characters response to an examine object command....
Each character's individual response must be enclosed within %chX% tags eg:

Object Message 5:

The hat is a safety helmet for protection.%endmess%

%ch1%%speechname% says: "The hat is your size. You should wear it at all times."%ch1%

'rem: you can add comments in between char responses...

%ch2%The %speechnoun% tells you that the hat is made of a strong metal and has a sharp brim.%ch2%

%ch3%Joseph the farmer examines it. "Might be useful", he remarks.%ch3%

etc.. etc..

Maybe you don't want to type in different responses like this for ALL your characters.
You can make them reply with a standard character default reply using the %chdef% tags! eg:


Object Message 5:

The hat is a safety helmet for protection.%endmess%

%ch1%%speechname says: "The hat is your size. You should wear it at all times."%ch1%

'rem: you can add comments in between char responses...

%ch2%The %speechnoun% tells you that the hat is made of strong metal and has a sharp brim.%ch2%

%ch3%Joseph the farmer examines it. "Might be useful.", he remarks.%ch3%

%chdef%%speechname% says: "That hat looks like it fits you. Could be handy.%chdef%


So now for Characters other than 1, 2 or 3 the DEFAULT reply will be output...

Here is the calling entry from Char Response Commands:

[start]examine %objn1%#charpresent%speech%#or_objlocn1=%speechworn%#or_objlocn1=%speechcarr%#or_objlocn1=here[acts]charobjn1mess[end]

If player and char in same room then if the object is here or if char is carrying or holding it then print the Character's individual reply.


'=============

The other new action is similar.

charmsgX - where X is a MESSAGE number. Print Speech Character's response to a command.

Use a blank, spare or unused message for character replies using this action.

Let's say the player types in:

>say to <character>, hello

You decide to use Message 450 to deal with the various Character replies...

Message 450:

command HELLO
This message deals with player saying hello to character.
'REM comments are allowed.

%ch1%%speechname% says: "Hello".%ch1%

%ch2%%speechname% says: "Hello to you as well!"%ch2%

%ch3%%speechname% greets you pleasantly with a courteous nod.%ch3%

%chdef%The %speechnoun% welcomes you with a smile.%chdef%

===========
Remember to add carriage returns to elements of ordinary messages if you need to
Char Response Command:

[start]hello#charpresent%speech%[acts]charmsg450[end]

You can use random %r% message tags inside of %chX% tags as well. Remember to use correct format for random message elements.

There's an example usage of these commands in "char_command_demo.tab"

21 Jul 2008 (Release 39)
=========
*NEW. "#then#" ACTION command implemented. An extension to TAB coding.

EXAMPLE:
[start]words conditions#condition#condition[acts]action#action#then#condition#condition[acts]action# action#then#condition#condition[acts]action#action[end]

*NEW. Set Editor Background Color button added to "Game Settings Editor"

*NEW. Objects can now be set as a "lightsource" on the Object Editor.

*NEW Locations can be set to be "dark" unless a lightsource is available.
To make a 'dark' location prefix the Location "brief" text field with an exclamation symbol ( ! )
TAB will display system message 78: "It's dark. You can't see anything" instead.
Location pics, exits, objects visible, and any characters present will not be reported in dark rooms...
(More info on TAB forum)

*NEW. 2 new conditions
dark - true if location is dark
notdark - true if location is not dark

*CHANGED. Actions may now follow a playmovie action command. TAB Player adventure dialog cannot be resized, minimized or maximized while video playing. TAB will be on "hold" until video closes.

20 Jul 2008 (Release 38.1)
=========
FIX. "#else#" not functioning correctly. Amended

FIX. Condition "objlocn2=absent" was missing due to duplication of "objlocn2=here"

18 Jul 2008 (Release 38)
=========
*NEW. "#else#" ACTION command implemented. An extension to TAB coding.

EXAMPLE:
[start]words conditions#condition#condition[acts]action#action#else#condition#condition[acts]action# action#else#condition#condition[acts]action#action#else#[acts]action[end]

Therefore you can have multiple conditions and actions in respect of the SAME starting "words conditions". .. Think about it; it could save writing several individual entries to build up a particular game puzzle and also cuts down on typing too!
Think of action "#else#" as meaning ELSE IF. The last use of action "#else#" in this example shows how to do an ELSE DO type of statement.
In other words if NONE of the previous Response entry conditions and actions were executed then this default action in respect of the valid command will ALWAYS be done. Notice there are no conditions before the [acts] tag for this "catch-all" usage of "#else#"

Example SCRIPT 1 or 2 usage format:

[start]condition[acts]action#else#condition#condition[acts]action#else#condition[acts]action[end]

There are no "words conditions" in these coding editors but you could use #else# as above
to truncate several entries into a single entry to save space...
You can still use the or-checking syntax ( "or_" prefix on conditions) in this new extension to TAB coding as well.

[start]words condition#or_ condition#or_condition[acts]action#else#or_condition#or_condition[acts]action#else#[acts]action[end]

*ADDED. New parser variable CONDITIONS that were missing or forgotten:
charn1=charn2 - is parser variable charn1 the same number as parser variable charn2?
charn2=charn1
charn1<>charn2 - is parser variable charn1 not the same as parser variable charn2?
charn2<>charn1

*ADDED. When entering CONTAINER objects in the Object Editor, TAB now warns user that the corresponding location number will be used as its contents holder. If accepted that Location will be flagged as "Inside of Object X." and will not be editable in the Locations Editor.

17 Jul 2008 (Release 37.1)
=========
*FIX. 'Deletion' word handling causing TAB to crash in particular situation . Revamped deletion routine.

*ADDED Web Page Tutorial pages included in text format as requested

15 Jul 2008 (Release 37)
=========
*IMPROVED %lcase% and %ucase% can now be used in conjunction with ALL other text format %tags%
eg: "The following noun in this sentence will start with a capital letter - %ucase%%anyn1%."

*NEW %up% and %/up% text format commands. Set/Unset UPPERCASE text

Example: This sentence has %up%two words%/up% in uppercase.

*NEW 2 new actions for Windows Media Player audio/video movie files (Graphic Display Mode 2 Only):

playmovie1FILENAME$ - play a .wmv video clip in picbox1
playmovie2FIELNAME$ - play a .wmv video clip in picbox2

Movies will be adjusted to fit in TAB graphicboxes. Game will auto-continue when movie ends or if [SPACEBAR] pressed to exit movie clip. This means you can play "cut-scenes" or title/intro/credit clips, videos of game locations, actions, objects, characters, speech to player etc.. to make adventures more "real" and involving and create for a more interactive movie feel and experience!
NOTE: Any "Input Timeout" settings are suspended for the duration of the movie.
(Thanks to Michael Hartlef for: "mciVideo.inc")

11 Jul 2008 (Release 36)
========
*FIX. 'long' noun not being correctly printed by noun format %tags%. Now OK.

*FIX. "Save Transcript" menu option on [Adventure] menu in TAB Player now disabled if no game loaded.

*FIX. %anyn1% and %anyn2% causing TAB to get stuck in a loop and crash in certain situation. Now Ok.

08 Jul 2008 (Release 35)
========
*FIX. Opening graphics are now shown in TAB Player even if the intro text larger than text area (in Graphic Mode)

*FIX. File requester now does not try to load an empty file if no file selected in "Open Adventure" on Editor version of Player

*IMPROVED. Some slight overall speed improves to TAB program (courtesy of new thinBasic)

*ADDED. "Launch Notepad" menu item added to [Options] menu on TAB Viewer

*NEW. "revmess" ACTION command. Outputs a message in REVERSE!

*CHANGED Reinstated system message 61: "That's not possible" for %anywords% Response entries.

*FIX. Statusbar now cleared to defaults if player quits from a "gameover" action in Script1 or Script 2

*FIX. Statusbar now updates turns and score correctly when a loadgameposition is restored into the TAB Player(s)

02 Jul 2008 (Release 34)
========
*FIX. Number of turns taken was not being updated in TAB Player Statusbar after a timeout occurrence.

*IMPROVED. Viewer button moved to "Game Settings Editor". Menus added. Text shown is now editable.

*FIX. Load/Save Response, Script1 and Script2 buttons now functioning correctly.

*NEW. "Save Transcript" option added to [Adventure] Menu on Player(s).
Saves a transcript of game played so far in the TAB Player as plain text. Can be viewed/edited in a text editor or word processor eg: Notepad, Wordpad.

*IMPROVED. Text formatting using [b] [/b], [i] [/i], [u] [/u], [s] [/s] etc... can now be applied to individual letters of a word.

eg: [b][i]w][/i][/b][u]e[/u]

Prints the word "we" ; letter "w" using bold and italic and the letter "e" using underline only.
Previously not possible. Also, any other words inside square brackets eg. [myword] typed by the game author inside texts are not now deleted by the text formatter when a string of text is output to adventure Player - which is correct.
(Previously wrongly recognised as invalid UBB codes and removed from the text)

*NEW. %psyn% text formatting code substitutes preposition synonym typed by player into message text instead of preposition keyword. (suggested by Jason Nicholls)

*NEW. 2 more Text formatting codes:
%n1syn% - prints ordinary, object or character n1 SYNONYM or keyword if typed by player
%n2syn% - prints ordinary, object or character n2 SYNONYM or keyword if typed by player

*FIX. When quitting Player (Editor version) an input prompt for game password will now appear if the data held in the Editor is password protected. Full access to Editor buttons will only be given for the correct password (similar to loading a passworded game into Editor).

25 Jun 2008 (Release 33)
=========
*NEW "View" button added to Location, Message, Sysmessage, Object and Character Editors.
Displays window with readonly scrollable list of data entries and info.
You can highlight text or select all, cut, copy and paste using CTRL+A, CTRL+X, CTRL+C and CTRL+V respectively.
Handy for copying lists to text editor for printing or saving as a text file etc..

*ADDED "Search" button to Object and Character Editors
All textual fields on these Editors are included in the search operation.
Search is case insensitive.

*AMENDED. "and" added to exit listing. "Exits lead: north, south, west."
Now prints as "Exits lead: north, south and west.", eg. "Exits lead: southwest and in."

*FIX. Two important bugfixes relating to %anyn1% and %anyn2% causing TAB to crash.
(reported by Jason Nicholls)

*IMPROVED. Location texts can now be cyclic **provided corresponding message number
in the message editor does not contain cyclic tags** and vice versa.

22 Jun 2008 (Release 32)
=========
*NEW conditions

validmove - true if valid exit exists from player's location

invalidmove - true if valid exit does not exist from player's location

validcharmove - true if valid exit exists from commanded character's current location

invalidcharmove - true if valid exit does not exist from commanded character's current location

*ADDED "Search" buttons to some Editors for finding text

*NEW "charlistoff" ACTION - similar to objlistoff and charlistoff.
enables concatenated Character announcement reporting eg:
"Joseph the farmer is here, Robbie the robot patrols the area and Roger your canine companion sits beside you."

*NEW
%anyn1%
%anyn2%

format codes for Response "words conditions" true if noun KEYWORD is an ordinary, object or character noun

also 2 new text tags:

%anyn1%, %anyn2% format codes for message text output.

*CHANGED Added a newline after each Character movement notification to space out text.


15 Jun 2008 (Release 31.1)
=========
*FIX %v% text format code causing crash. Now OK

15 Jun 2008 (Release 31)
=========
*FIX. %?% wasn't being replaced if more than one occurrence in a text.

*IMPROVED. Player name dialog box can now be called at times other than the start of a game using new action command "getplayername" in a coding entry.

*FIX. Save Data routine minor buglet on exiting Editor now working properly.

*NEW. Cyclic messages using "cyclemessX" action where X is a valid message number in the Message Editor.
Example uses %c% tags to enclose elements of the cyclic message:

%c%I am message 1.
%c%I am message 2.
%c%I am message 3.
%c%

Cyclic messages can repeat cycle or stop at the last element of a cyclic message (using the %end% tag)

%c%I am message 1.
%c%I am message 2.
%c%%end%I am message 3.
%c%

*NEW. "objlistoff" ACTION command forces TAB to concatenate object listing in room descriptions and is similar to action "invlistoff". If choosing this option all object text descriptions should begin with a lower case letter and should not terminate with a period. (full stop)
eg: "a brown satchel" is OK. "A brown satchel." is not OK for this type of object listing output.

Example code required in Script 1:

' enable concatenated object listing...

[start]flag20=0[acts]flag20=1#objlistoff[end]

Example output:

"Also visible is a torch, a spanner, some food and a computer."

You can also use %r% (random) message tags in System Message 40: "Also Visible:" eg:

"Also visible is%r%I can also see%r%Notable objects present include"

"Crystal_Keepers.tab" game has been set to use this format.

*NEW. To help prevent data loss through GPF or crash TAB now autosaves currently loaded database under filename "recover.tab" into main TAB directory when selecting "Test Adventure" button on Editor Main Window - just before it displays Player.
This recovery file can be reloaded into the TAB Editor to investigate reason and afterward resaved as normal under different filename. It is a backup datafile useful if TAB Player crashes using data which was previously unsaved by the Author via "Save Adventure".


09 Jun 2008 (Release 30)
==========
*IMPROVED scrolling when game starts

*CHANGED. Save Adventure: TAB Editor now requires user authorisation when saving currently loaded adventure data under a different filename to the original.

*CHANGED. Selecting "OPEN ADVENTURE" from pulldown menu on Editor version of Player: TAB now requires user authorisation before loading a different named database and warns/reminds the user that the data in the Editor will be overwritten by the new game data.

*NEW. "replay" action command - restarts game from beginning without confirm dialog and without introductory message.

*FIX. More than one page of richedit text on start of Editor version of Player causing crash in Graphic Adventure display mode.

*IMPROVED. Some coding made for more than one object to exist with same noun name eg:
"a red pencil"
"a blue pencil"

Implemented long noun for textual output purposes.

[Still in early development]


13 May 2008 (Release 29)
===========
*NEW. Select game default font now active on "Game Settings Editor".

*FIX. Statusbar repetition glitch in Editor version of Player solved.

*FIX. Menu Option "Exit TAB Player" on Editor version of Player does not now crash TAB.

*FIX. "ask" action and "answer="; "answer<>" conditions routines now working properly again.

*CHANGED. Used InputBox$ for requesting game password when protected game loaded into Editor.

*NEW. "showexits" action. Prints exit directions from current location. (only if exits set to ON)

*NEW. "jumpLABEL" ACTION command - where label is a word(s) further ahead in the code.
Can be used in Response, Script1,Script2 and Character Speech coding editors.

EXAMPLE RESPONSE ENTRY

[start]push %n1%/push %objn1%/push %charn1%[acts]jumpPUSH_CODE[end]

'REM if player types verb "push" + valid noun jump over subsequent code to label

........
.......
.......
.......
.......
.......
PUSH_CODE:

'REM note colon after label marker name! Label name does not need to be capitalised and can be numeric or alphanumeric.
'REM Continue processing conditions and actions from here after the "jump"

[start]push button#room=1#flag20=2[acts]flag20=3#cmessYou push the button...etc[end]

jumpLABEL is very handy for jumping over or bypassing blocks of coding entries to access other entries more quickly.
Will be mainly used in Response Editor.

*NEW. TAB Online Updater accessible from Editor Main Menu. Checks online to see if new version of TAB available. Also download latest adventures made with TAB.

*NEW. New text format codes added:

%ucase% - capitalise first letter of next word in text
%lcase% - make first letter of word lower case

EXAMPLE: %lcase%My sentence now begins with a lower case M.

The following will operate on valid Character noun1 and/or Character noun 2 words typed by player.
%he.she.n1% - print "he", "she" or "it" depending on Char Noun 1's gender (male, female or "it")
%he.she.n2% - print "he", "she" or "it" depending on Char Noun 2's gender (male, female or "it")
%him.her.n1% - print "him", "her" or "it" depending on Char Noun 1's gender (male, female or "it")
%him.her.n2% - print "him", "her" or "it" depending on Char Noun 2's gender (male, female or "it")

*NEW. TAB can now load a splash window with graphic before Player is shown. The file "splash.bmp" should be in the same directory as Player. Useful for introductory pic, game credits, instructions etc..

04 May 2008 (Release 28)
===========
*NEW. %vsyn% text formatting code substitutes verb synonym typed by player into message text instead of verb keyword. (suggested by Jason Nicholls)

*CHANGED. Bigger font in *most* Editor textboxes for clarity and easier reading. (suggested by Jason Nicholls)

*NEW. Ability to make TAB_Player autoload and run a specified adventure datafile. (suggested by Jason Nicholls)
To make this work simply rename your database to "autorun" and place in same folder as TAB Player.

*CHANGED. TAB Editor can now be minimized.

*NEW. "invlistoff" ACTION command forces TAB to concatenate PLAYER inventory listing. If choosing this option the previously unused System Message 51 should be set to read by default: "You are wearing" and all object text descriptions should begin with a lower case letter and should not terminate with a period. (full stop)
eg: "a brown satchel" is OK. "A brown satchel." is not OK for this type of inventory output.

Example code required in Script 2:

' enable concatenated player inventory listing...

[start]flag20=0[acts]flag20=1#invlistoff[end]

Example output:

You are carrying a torch and a spanner. You are wearing a satchel, a hat and a blazer. In the satchel is a map, a small compass and the revolver.

"Crystal_Keepers.tab" has been updated to use this type of inventory listing.

*NEW. Random Messages feature. Use %r% format code(s) inside a message text to signify elements of a randomly printed message

EXAMPLE
-------

"The knife is bloodstained and very sharp.
%r%The knife is covered in blood.
%r%The knife is coated with patches of blood.
%r%The knife is smeared with red blood.
%r%Knife: It's got blood on the handle and blade!
%r%Ugh! The small knife has got blood all over it.
%r%The knife looks like it's been used recently. There are splashes of blood on it."


>examine knife

Knife: It's got blood on the handle and blade!

Can be used in locations, messages, custom messages (cmess), object descriptions, object examine text, Character text and *some* system messages (one's that are complete messages)
There is no fixed upper limit to the number of random elements a text may contain.
A very useful addition to TAB.

"Character_demo.tab" has some example uses of %r% code embedding.

*FIX. LOADING Response ,Script1, Script2 and Character Speech text files now operating correctly without trouble.

*NEW. New %?% format code used in Response and Character Speech to provide customised replies when words not understood by TAB. eg: Response entries

[start]?[acts]cmessSorry. I do not understand "%?%" as a verb.#done[end]

[start]%v% ?[acts]cmessSorry. I do not understand "%?%" as a noun in that sentence.#done[end]

[start]%v% %n1% ?/%v% %objn1% ?/%v% %charn1% ?[acts]cmessSorry. I do not understand "%?%" in that sentence.#done[end]

[start]%v% %n1% %p% ?/%v% %objn1% %p% ?/%v% %charn1% %p% ?[acts]cmessI didn't understand "%?%" as a noun in that sentence.#done[end]

[start]%v% %p% ?[acts]cmessSorry."%?%" is not in my vocabulary as a noun.#done[end]

Traps nonsense words or words not understood by TAB and prints appropriate reply.

All example demo datafiles updated to include this.


27 Apr 2008 (Release 27)
===========
* FIX. Object weight reporting now handled correctly when attempting to take an object out of a container.
* FIX. Adventure Statusbar now updates current "brief location description" pane correctly in TAB Editor version of player.
* FIX. Input commands consisting of a valid verb, a valid preposition and an unknown second noun eg: "look at dsfsd" are now responded to correctly.


05 Feb 2008 (Release 26)
===========
* NEW Adventure Player now uses tb Statusbar commands.
* NEW Tab now uses icons in dialog window and Statusbar.

22 Jan 2008 (Release 25.1)
===========
* FIX. Further fix addresses input prompt repetition issue.

18 Jan 2008 (Release 25)
===========
* FIX. Quick Release for compatibility reason with thinBasic 1.6.0.1

21 Mar 2007 (Release 24)
===========
* FIX. Images not displaying properly in WinXP for "graphic_demo.tab"
* Graphic games can now use .bmp, .jpg, .gif and .png image formats
* Images now displayed in Listview control instead of Label control

13 Mar 2007 (Release 23)
===========
* The FOR/NEXT nesting bug is now fixed
* Some minor improve tweaks
* #MINVERSION set to 1.3.0.0

28 Feb 2007 (Release 22)
===========
* The "return/enter" key problem in the player input textbox
is now solved! (Thanks Psch)

* #MINVERSION set to 1.2.0.1

* "Press Return To Continue" prompt text not appearing in Input Textbox in 1.2.0.1
Fixed using CONTROL REDRAW command before entering keypress loop (Psch)

26 Feb 2007 (Release 21)
===========
Some fix and compatibility issues addressed

25 Nov 2006 (Release 20)
===========
*NEW The Response, Script1, Script2 and Character Commands Editboxes
now use RichEdit control to allow higher text limit for game data

The following forgotten ACTIONS have been added:

destroycharn1 - move character n1 to loc 0 and set pattern to static
destroycharn2
destroycharX
createcharn1 - create char n1 in current room
createcharn2
createcharX
charlocn1=X - create or move charn1 to loc X
charlocn2=X
charlocX=Y - create or move char X to loc Y

The following ACTION has been renamed:
"gotolocX" is now "gotoX"

Some correction to flag setting and object placement ACTIONS

Fix to Vocabulary Deletion word handling

Fix to reporting message when trying to put worn object into a container

Fix: TAB was wrongly trying to put all objs into container even when
an object was too big to fit in the container due to its size value

Savegameposition now saves any changed location connections properly

"autoexamchar" ACTION will not now describe characters inventory by default
Use action "charn1inv" after this action to show this if necessary

"tweight", "wornweight" and "carrweight" CONDITIONS do not now cause crash

"room=X" ACTION missing - now reinstated.

NEW "keypress" action halts program execution until "C" key pressed

Fixed: some TAB CONDITIONS returning false were not exiting properly

NEW 2 Text Adventures to try out and play. Download from site using Updater

13 Nov 2006 (Release 19)
===========
Some graphic support in this version.

*NEW Ability to show bitmap images in games.
2 graphic slots for .bmp size 280 x 220 pixels.

Location pics use filename eg: loc1.bmp
Object pics use filename eg: obj4.bmp
Character pics use filename eg: char5.bmp

Display mode 2 (on Game Settings Editor) invokes
graphic display in TABPlayer.

New Actions:
pic1box$filename$ eg: pic1boxMyPic.bmp (show image in picbox1)
pic2box$filename$ eg: pic2boxMyPic.bmp (show image in picbox2)

showobjn1aspic1 - show object image in picbox1
showobjn1aspic2 - show object image in picbox2
showobjn2aspic1
showobjn2aspic2

showcharn1aspic1 - show character image in picbox1
showcharn1aspic2 - show character image in picbox2
showcharn2aspic1
showcharn2aspic2

clearpic1 - clear picbox1
clearpic2 - clear picbox2

By default TAB will automatically show any location image for the
adventure starting room into picbox 1 at the beginning of the game.

By default TAB will automatically show any location image for each room
visited in picbox 1 (if it exists and has correct filename as above)

By default TAB will automatically load any image named "logopic.bmp"
into picbox 2 at the beginning of game.

Pics of objects/characters could also be shown using above actions
eg: below Response entries will show pics for ALL characters/objects if
"look at <character>" or "look at <object>" typed by player:

[start]look at %charn2%#charpresentn2[acts]cmessYou look at %charname2%.#
showcharn2aspic1[end]

[start]look at %objn2%#objlocn2=here[acts]cmessYou look at the %objn2%.#
showobjn2aspic1[end]

2 New textboxes added to Game Settings Editor to set the
Sourcepath graphics and sound directory names for each game database.
(if necessary)

TABPlayer now auto detects and self-adjusts to loaded gamefile
for correct display mode 1 or 2. (text only or text/graphic)

*Incorrect or mis-spelt ACTIONS now reported by TABPlayer as error.

*Some bugfix

07 Nov 2006 (Release 18.1)
===========
* TAB now checks that a saved_game_position file being loaded
was saved by the currently opened game in the Player.

Stops savedgamepositions from one game being loaded
into other games, thus corrupting data and making a
game unplayable.

05 Nov 2006 (Release 18)
===========
* NEW Beginnings of music and sound in TAB.
"playmusicX$" and "playsampleX$" actions for playing
mp3's and .wav files
eg: playmusicMymusic.mp3
eg: playsampleNoise.wav
"musicstop" - stop and clear current playing music.
Music will autoloop unless "playmusicX$"
action starts a new music or "musicstop" action is done.
Music erased when game restarted, new game loaded, a
'gameover' situation or the TAB Player is exited due to a
player "quit" command or window close.

* FIX Password textbox now removed when password dialog finishes.
Password routine now works properly.

*NEW Graphic on Editor Main Menu.

*Few bugs fixed.

28 Oct 06 (Release 17)
=========
* FIX A select case/end select bug has been corrected.
* NEW Characters can now be commanded to carry out
instructions using format "say to <character>,<command(s)>"
Commands can be designed in the "Character Commands" list
in the Character Editor in a very similar fashion to Response
and Script entries.
See "character_commands.tab" adventure datafile.
* Some changes to language conditions/actions.
* New tags %speech%, %speechnoun%, %speechname% and %speechloc%
and new condition "speech [ > | < | <> | = | >= | <= ] X" for
use with character commands.
* TAB Homepage URL now on Editor Dialog.

21 Oct 06 (Release 16)
=========
* NEW TAB Online Version Updater program "tab_updater.tbasic"
Check for latest update and download latest TAB games (when available)
* NEW "flash" action flashes richedit background color
randomly for a second or two before restoring default
background color.
* FIX Another little fix to "gameover" action.
* FIX Character start location box cleared to 0 when Character deleted.
* FIX minor buglet in %charn2% format code

16 Oct 06 (Release 15)
=========
* TAB now uses new thinbasic GETWINDOWKEYSTATE instruction
therefore tb #MINVERSION set to 1.1.0.0
* [color=xxx];[color=r,g,b]
* [bcolor=xxx];[bcolor=r,g,b]
* [ccolor=xxx];[ccolor=r,g,b]
ubb codes for setting text, text background and control colors
* A basic TAB tutorial online at http://tab.thinbasic.com
* Obj Wearable checkbox cleared when Delete Object performed
in Object Editor
* Bug in 'gameover' action fixed

11 Oct 06 (Updated Release 14)
=========
* FIXED Action "cleartext" now works properly. It clears
the richedit of all text. Subsequent text is printed from top.

* FIXED "destroyX" was action not removing objectX to location 0

* FIXED Background color for "Cloak of Darkness" set to black

* Msgbox dialogs now owned by parent window (Psch suggestion)

* UBB codes now:
[B][/B]
for start/end bold
[I][/I]
for start/end italic
[U][/U]
for start/end underline
[S][/S]
for start/end strikeout
[left]
for left align
[center]
for center align
[right]
for right align
[size=xx]
set font size
[font=FontName]
set font

* FIXED Some minor bugs.

08 Oct 06 (Updated Release 14)
=========
* CHANGED The TAB Player Dialog Window is now cleared and reset to default
when the player types 'quit' and responds 'yes' to the quit action dialog box.
Previously the TAB Player Window was closed.

*CHANGED The TAB Player Dialog Window is now cleared and reset to default
if the player responds to the 'gameover' action dialog box "Play Again?"
with 'no'. Previously the TAB Player Window was closed.

*CHANGED The TAB Player Dialog Window does not now close and re-open
when a player chooses to 'restart' a game in progress or responds to a
'gameover' action dialog box with a 'yes' to replay the game from the start.
The TAB window is cleared and the current adventure is reloaded and
restarted from the beginning.

* CHANGED The TAB Player Dialog Window does not now close and re-open
when Opening a new adventure or Restarting the current adventure from
these options on the "Adventure" Menu. The TAB Window is cleared, if necessary,
and the selected adventure datafile is loaded and run.

To close the TAB Player: use the window close gadget or select 'Exit
TAB Player' item from the "Adventure" Menu.

* FIXED Color Dialogs set default colors on 'game settings editor' (Psch suggestion)

* CHANGED Editor now asks to confirm saving adventure data before closing (Psch suggestion)


06 Oct 06 (Release 14)
=========

* FIXED Tab Player now forced to start new adventure with default left
aligned richedit setting (instead of center aligned)

* NEW 'wintitle' ACTION allows you to change/set dialog window
caption.

eg: #wintitleThis is a new window caption.#

You can use %score% and %turns% formatting codes in the message
See "Cloak of Darkness" showing how turns and score are updated
every game turn and displayed in window titlebar.

* NEW 'ask' ACTION and 'answer=X$' + 'answer<>X$' CONDITIONS
now work. This means you (or a character) can be made to
ask the player a question and then events can happen
dependent on the player's correct or incorrect response.
Example; in Character demo ask a character about the box...

* NEW Text formatting introduced using UBB's code for
bold, underline, italic and strikeout eg:
[b]This is bold text[/b] and [u]I am underlined.[/u]
Good for highlighting or enhancing adventure text.

*NEW [left], [right] and [center] UBB embedding codes for
aligning paragraphs of text.
eg:
[center]I am centered message.

*NEW alignleft, alignright and aligncenter ACTIONS for
changing text alignment for outputted text

eg: aligncenter#cmessI am a centered message#alignleft#
cmessI am left aligned as normal.

*NEW 'bgcolor=X' ; 'fgcolor=X' ACTIONS

eg: bgcolor=303030#cmessMy text has a background color!#bgcolor=0
(Possibly this may be implemented as UBB code later)

*NEW 'fontname=X$' ; 'fontsize=X' ACTIONS to enable use of
different fonts for text output.
Font formatting is still in experimental stage.
(Possibly this may be implemented as UBB code later)

* FIXED bug causing TAB to 'hang' when multiple commands
typed by player in certain situation.


21 Sep 06 (Release 13)
=========
* Released due to new thinbasic "rtf_getclass" command - Thanks Eros!
* Coloured text introduced; Default Colours for game text,
input prompt, player input echo and richedit background colour
can be set on the Game Settings Editor.
I'm looking into giving authors more power and control over text colour and
formatting in future releases.


17 Sep 06 (Revised Release 12)
=========
* Added new "#DEFAULT BOUNDCHECK OFF" command to program source listing
to prevent RunTime Error problem.
* Added more tooltips to Editor dialog buttons and boxes


05 Sep 06 (Release 12)
=========
* Vocabulary Listboxes now functioning correctly
* %charname1% and %charname2% tags now printing 'character name text' properly
* Character demo database updated to demonstrate communication with Characters
eg: 'ask <character> about <person/thing>' or talk to <character>'
The User flag variables could be used to vary replies in certain situations.
* turnscount 'turns' now starts correctly at 0 instead of -1
* conditions: charpresentn1,charpresentn2,charabsentn1, charabsentn2
charpresentX and charabsentX were causing problems in entries. Fixed.

04 Sep 06 (Release 11)
=========
* Character text announcement display anomaly fixed
* %tags% now work in locations, system messages and other text shown (reported by Psch)
* Font colour trick didn't work in WinME/2000. Removed until better way of assigning colours to outputted text found. (Reported by Psch)
* Some speed improvement due to latest faster ThinBasic.

08 Jul 06 (Revised Release 10)
=========

* Updated to work in latest release of thinBasic

10 Mar 06 (Release 10)
=========
* Input not now allowed in textbox of standalone Player when no game loaded
* %v% and %p% now working properly.
* About box appearing when player window resized in Editor due to
duplication of alias. Fixed.
* Speedier text output due to improvements in latest thinBasic.


05 Feb 06 (Release 9)
=========
* FIXED bug causing "Too Many Nested GOSUBS.."

* NEW: Standalone TAB Player. This will be the executable
runner for gamefiles constructed with the TAB Editor
required for when distributing finished text adventures.
Basically it's the TAB program minus the Editor.

* Little amendment to 'Cloak' demo game
* About Box on Player Help menu

03 Feb 06 (Release 8)
=========
* FIXED couple of parser bugs causing GPF
* FIXED numerous coding mistakes
* ADDED menu options for open,restart,save game position
and load game position
* ADDED Tooltips for Editor boxes
* NEW small demo game included: 'Cloak of Darkness'.

22 Jan 06 (Release 7)
=========
* FIXED the richedit text scrolling glitch.
TAB should prompt with a "Press [RETURN] To Continue" prompt
if it can't show all reply text in one go, before resuming
scrolling...
The scroll *should* work properly if Player Dialog window is
resized too - but the formula I used needs more precision for
use with some fonts and font sizes.

13 Jan 06 (Release 6b)
=========
* FIX or-checking in conditions now works in
Script 1 and 2 lists

* Save/Load game position implemented.
files saved with extension 't.sav'

* Character worn and carried inventories now work!

Character carried locations are 601 to 700
Character worn locations are 701 to 800

Objects can be initially placed in these locations
in the Object Editor. eg: An Object 1 starting in room 603
would be carried by Character 3. (603 is Char 3's carried loc)
eg: An object placed in room 712 would be worn by Character 12.
(712 is Character 12's worn inventory)

* "charn1inv", "charn2inv" and "charinvX" actions made to
display the Character's inventories. By default these are
shown after a player 'examines' a Character so the player can
see if a character owns anything.

* New 'allX' action where X is a valid location number.
'allX' works on Noun1 objects so that you can design your own 'all'
type of command eg:

>throw all

Code required in Response:

[start]throw all#anyobjs501[acts]all501#objlocn1=room#cmessYou
hurl the %objn1% to the floor.[end]

IF player types 'throw all' AND IF player is carrying(loc 501) any
objects THEN repeat ALL further actions for EACH object carried until
there are no more objects carried by the player!

12 Jan 06 (Release 5)
=========
* automatic actions for 'get','drop','wear'
'remove' and 'examine' objects eg:
>get knife
>drop lamp
>examine hat

* auto actions for container objects now work:
>get <object> out/from <container>
>drop <object> in/inside/into <container>
>look in/inside/into <container>
>get all out/from <container>
>put everything in/inside/into <container>

* 'all/everything' now works on objects when 'get','drop','wear'
'remove' and 'examine' used eg:
>get all
>examine everything
>drop all

* except/but now works on objects when 'get','drop','wear'
'remove' and 'examine' used eg:
>get all but knife
>examine all except lamp
>drop all except the hat
>get all except the knife out of the <container>
>put all but knife in/inside/into the <container>

* added %charname1% and %charname2% and some other format codes.

* Brief/verbose, exits on/off, score, inventory
+ all basic standard adventure authoring condition/actions
now done. (see language.txt file)

* Implemented or-checking in script language CONDITIONS.

05 Jan 06 (Release 4)
=========
* Player can now follow a character eg:
>follow farmer
>follow joseph the farmer
>follow farmer joseph
and stop following by simply following another
character instead or by typing eg:
>stop following
* The main addition to this release is a major one!
The Response Editor and the Script 1 and 2
editors have been introduced and now work.
These adventure authoring lists will use the
TAB condition/action scripting language.
They are very important for creating the puzzles
in games and for dealing with player input commands.
Have a look at these Editors for more info.
At present Response, Script1 and 2 have limited
functionality as I have not made many conditions
and actions to use just now.
* Added a few new conditions and actions.
(see functions 'processacts' and 'processconds')
* Added some formatting codes for use in messages and
author cond/acts:
%v%
%n1%
%n2%
%p%
%objn1%
%objn2%
%charn1%
%charn2%
%directn1%
%directn2%

Example usage (from Response Editor):
[start]go %directn1%[acts]moveplayer[end]

Example usage (in a message):
The %charn1% is not here!
What good will smashing the %objn1% do?

More formatting codes to be added soon.

31 Dec 05 (Release 3)
=========
* Quit msgbox dialog added to Adventure Dialog window
* Character movement routines fully implemented
* Characters can be static, follow player, move randomly
or according to a preset walk loop.
* Random characters can be prohibited from visiting certain
rooms.
* Words not in vocab or nonsense words now handled
* Events now happen if timeout occurs

13 Dec 05 (Release 2)
=========
* Player name dialog shown for
if 'get player name' checked in
game settings editor
* 'About' box shown on Editor Main Window at startup
* Added some default vocab words to default database
* made some tempvars for holding original data
while game is being played.
* Added exit listing routine for getting
and displaying exits from a location
* Hide Editor when testing adventure and
redisplaying it after exiting game.
* Altered 'exit' buttons to read 'back'
* Added 'brief desc' on Locations Editor
* Added Character worn and carried inventory locations array
* Added Object Surface locations array
* Added array to check for 'except/but' objects
* Deletion words now stripped from input commands
* Player input string converted into format for parser
* Beginnings of Parser implemented.
* Player input timed out according to secs. value on 'game settings'
editor.

06 Dec 05 (Release 1)
=========
First Alpha released.


To Do:
=====
* Comprehensive Helpfile/Tutorial


Regards,
Catventure

Feedback/bugs/findings/suggestions/questions:
email: catventure@yahoo.co.uk


END