Yo, Cine Beast here - asking for aid yet again. 
I'm developing a game that uses the tried-and-true Sierra interface, but I want to mix things up with one of the cursors (a cursor I've added).
I have made a Wand cursor that can be directed just like the others, but I want the following to occur when I left-click a hotspot/object/everything:
A Text GUI appears with a list of spells -
I pick a spell in the textbox and hit "Cast" -
The spell is cast, and the target is affected.
In short, a system similar to the interface in 7 Days a Skeptic & 6 Days a Sacrifice.
I'm pretty much done, but there is an inescapable problem: the GUI shows up, but when I hit "Cast," the effect does not occur.
This is the messy code for when I left-click the hotspot:
gSpell.Visible = true;
if (currentspell == 1 && heroicspell == true) {//So, if Incendio is chosen AND cast, the following occurs.
cEgo.Say("Incendio!");
Display("Fire streams from your wand and sets the blackness ablaze.");
heroicspell = false;//So the player just casts the spell once.
mouse.UseModeGraphic(eModeMagic);
}
I have it set that when in the GUI, if you select "Incendio," the int "currentspell" is set to 1, and when you click "Cast," the bool "heroicspell" is set to true, so this really should work.
I think the problem is that by the time I've selected the spell and cast it, the function has already ended, and I've missed my chance. If so, I suppose I need some way for the function to repeat, or else become Blocked just after the GUI becomes visible.
I hope I made my problem clear. Thanks in advance.

I'm developing a game that uses the tried-and-true Sierra interface, but I want to mix things up with one of the cursors (a cursor I've added).
I have made a Wand cursor that can be directed just like the others, but I want the following to occur when I left-click a hotspot/object/everything:
A Text GUI appears with a list of spells -
I pick a spell in the textbox and hit "Cast" -
The spell is cast, and the target is affected.
In short, a system similar to the interface in 7 Days a Skeptic & 6 Days a Sacrifice.
I'm pretty much done, but there is an inescapable problem: the GUI shows up, but when I hit "Cast," the effect does not occur.
This is the messy code for when I left-click the hotspot:
gSpell.Visible = true;
if (currentspell == 1 && heroicspell == true) {//So, if Incendio is chosen AND cast, the following occurs.
cEgo.Say("Incendio!");
Display("Fire streams from your wand and sets the blackness ablaze.");
heroicspell = false;//So the player just casts the spell once.
mouse.UseModeGraphic(eModeMagic);
}
I have it set that when in the GUI, if you select "Incendio," the int "currentspell" is set to 1, and when you click "Cast," the bool "heroicspell" is set to true, so this really should work.
I think the problem is that by the time I've selected the spell and cast it, the function has already ended, and I've missed my chance. If so, I suppose I need some way for the function to repeat, or else become Blocked just after the GUI becomes visible.
I hope I made my problem clear. Thanks in advance.