It's nothing to do with Tango, just ZC's built-in screen freezing combos. Drawing won't work; the combo has to be used by an actual FFC.
You could have the global script go into a minimal inner loop while the menu is open.
The Screen Freeze (Except FFCs) combo is as close as you'll get. It won't suspend the global script, but that can be worked around.
If you draw with Y<0, it will draw over the active subscreen. If the "Subscreen Appears Above Sprites" rule is enabled, that will only work if you draw on layer 7.
The top-left of the screen is 0, 0, and the bottom-right is 255, 167. The passive subscreen extends to -56. There's no maximum or minimum; you can draw anywhere, even far offscreen.
There's no Z coordinate in drawing.
I have this working, but only partially. It may be a bug with the cascading menus...
This is what happens:
You open the main menu, the game freezes.
You pass though other menus, the game remains frozen.
When you return to the first menu (not fully exiting the menus, just dropping back to the lowest tier), the game unfreezes, while the first menu is still on-screen.
Closing and re-opening the menu, doesn't fix it. The game no longer freezes, when opening the main menu.
I set the freeze flag in every style choice, I set it it in menus directly; and I set it in the while(true) loop of the menu FFC.
None of this cleared the problem.
Here's a ZIP archive with a .qst file to illustrate the problem; including my style.zh, styles.zh, tango.zh, and menus.z files. If you need to look at any of my other files, let me know.
I can't find a reason for this; and just relying on the styles, without setting the freeze action everywhere, causes cascading windows that display moving text to unfreeze the game.
Would it be better to set a global bool to handle this? (That would certainly be easier, as this kind of action is desirable whenever a dialogue box of any kind is open...) If so, where should I put the instruction to activate it inside the Tango scripts, so that it becomes true whenever any menu is open, and becomes false when all menus are closed?
Edit:
I did this, which bypassed the problem (although I still think that's a bug with the freeze flag, for a primary cascading menu).
This fixes the problem:
gc_menus.z
What function clears all active Tango windows?
...and...
Is there a function that can make them invisible?
I'm going to need to do that, when using spells, so that the player selects a spell, the windows close, and the spell function runs.
I'm also going to need to allow a player to click on the screen with a mouse, to centre an area-effect, so the player will need to be able to see the entire screen.
Other Questions
Is there a Tango function ( @ ) to return the value of a counter; or a simple way to store a value as an int, and then to place that int into a tango string?
For example, if I do this:
int number = Game->Counter[CR_STAT];
or..
int number = StatsArray[2];
.How do I insert the value of number, into a tango string such as:
int string1[] = "MUSC STAT@tab(56)@ ???" ///??? = where I want to put the code to display the value of the int 'number'.
Edited by ZoriaRPG, 29 May 2014 - 08:11 PM.