Hi Phil,
(I appologise for the length of this post by the way, I just thought the more info I supplied, the more help it might be in solving the issue!)
Just to let you know I've recently encountered a rather serious scenario where TAB hangs after what appears to be a random period of time. My game was built with a previous version of TAB and continued to be built with the latest version. I do not use the save/load options to save and restart games (as you suggested that that should not be done after version 64 was created).
I've actually spend hours trying to decode my game scripts and am pretty sure that the hanging interval definitely appears to have no explainable pattern with regards to player commands, i.e. it crashes no matter what responses I use (either standard ones shipped with TAB or responses I have created myself).
(nb. I can't test in previous versions of TAB as I haven't saved any and the link you supply only seems to have the latest version available. I have experienced the crashes under both Windows XP and Windows 7.)
Where I think I may have narrrowed it down to is the point between where the last character/object is described, and the point where script 2 is about to be executed. I've put debugging messages throughout my code and you can see below that when a crash/hang occurs, the first debug message at the very top of script 2 is not output.
You are in a pub. To the east there is a round green door.
Script1 Position1 (first line of script)
Script1 Position2
Script1 Position3
Script1 Position4 (last line of script)
Exits lead: east only.
You can see :
the bar
the chair
Harold the barman
Felicity the barmaid
Script2 Position1 (first line of script)
Script2 Position2
Script2 Position3
Script2 Position4 (last line of script)
When the crash occurs after a random number of LOOK inputs the following is displayed:
You are in a pub. To the east there is a round green door.
Script1 Position1 (first line of script)
Script1 Position2
Script1 Position3
Script1 Position4 (last line of script)
Exits lead: east only.
You can see :
the bar
the chair
Harold the barman
Felicity the barmaid
As you can see, the debug message 'Script2 Position1 (first line of script)', as well as the subsequent script 2 messages, is not output after the last character (Felicity) is displayed; TAB merely hangs and I'm forced to use Windows Task Manager in order to kill the thinbasic.exe process.
The actual player command doesn't seem to affect the final result and after a few turns (as few as 3 and as many as 20+) TAB hangs.
As I mentioned earlier, the point of the crash seems to be between where the last character/object is described, and the point where script 2 is about to be executed, so I wondering if you could tell me what TAB is actually processing at this point?
In my last test I removed all my script code except for one debug message in script1 and script2. I then removed all my response commands except for LOOK, and I added a debug message after the room is re-described, i.e.
[start]look[acts]cleartext#desc#cmess[color=%rgb_plum]ResponseScript Debug Message[end]
The output I get before the crash, again only using the LOOK entry, is:
You are in a pub. To the east there is a round green door.
Script1 Debug Message
You can see :
the bar
the chair
Harold the barman
Felicity the barmaid
ResponseScript Debug Message
Script2 Debug Message
And after a crash occurs:
You are in a pub. To the east there is a round green door.
Script1 Debug Message
You can see :
the bar
the chair
Harold the barman
Felicity the barmaid
ResponseScript Debug Message
So once again you can see that processing did not get as far as script 2.
One other thing of note is that I have the Input Timeout set for my game. If I do nothing and observe the game running on its own I notice the only entry I get is the 'Script2 Debug Message' which is as I'd expect. However, again, after what seems to be a random number of timeout intervals, the game hangs as before - and at the point of the crash the final 'Script2 Debug Message' is not displayed.
I'm all out of ideas now
But many HAPPY 60th returns for last week though
Mark