Bane of Magi bug
I have a bit of time and this problem still bugs me.
Many people have found a major bug in Bane when they talk to people in town, ask a question and it crashes. Once again I tried duplicating that to no avail.
If anyone is currently playing it and it crashes please try the 'debug mode' (alt-d) and post or email me the debug text at that point.
Or if anyone sees a problem in it here just say.
void talk()
{
if (&invis == 1)
{
external("item-inv","visable");
say_stop("`4Oh, I didn't see you.",¤t_sprite);
}
freeze(¤t_sprite);
freeze(1);
choice_start()
"Ask about any trouble in town"
"Ask about the Bringer of light"
"Leave"
choice_end()
if (&result == 1)
{
say_stop("Hi, is everyone in this town o.k.?",1);
wait (250);
say_stop("`4As long as we follow the Bringer of light we're o.k.",¤t_sprite);
}
if (&result == 2)
{
say_stop("Hello, what can you tell me about the Bringer of light?",1);
wait (200);
say_stop("`4shhh.. not now.",¤t_sprite);
}
if (&result == 3)
{
say_stop("Excuse me.",1);
}
unfreeze (¤t_sprite);
unfreeze (1);
}
}
//
apparently it crashes (for some people only) as soon as the first choice is picked. Grrr....
*edit*
I pasted in the rest of the talk () to show the unfreeze.
Many people have found a major bug in Bane when they talk to people in town, ask a question and it crashes. Once again I tried duplicating that to no avail.

Or if anyone sees a problem in it here just say.

void talk()
{
if (&invis == 1)
{
external("item-inv","visable");
say_stop("`4Oh, I didn't see you.",¤t_sprite);
}
freeze(¤t_sprite);
freeze(1);
choice_start()
"Ask about any trouble in town"
"Ask about the Bringer of light"
"Leave"
choice_end()
if (&result == 1)
{
say_stop("Hi, is everyone in this town o.k.?",1);
wait (250);
say_stop("`4As long as we follow the Bringer of light we're o.k.",¤t_sprite);
}
if (&result == 2)
{
say_stop("Hello, what can you tell me about the Bringer of light?",1);
wait (200);
say_stop("`4shhh.. not now.",¤t_sprite);
}
if (&result == 3)
{
say_stop("Excuse me.",1);
}
unfreeze (¤t_sprite);
unfreeze (1);
}
}
//
apparently it crashes (for some people only) as soon as the first choice is picked. Grrr....
*edit*
I pasted in the rest of the talk () to show the unfreeze.
It should. It now shows the full talk () with the unfreeze included. Did it leave you frozen?
I looked up and down and all around what you posted, and I still can't fathom why you have two }'s at the end. It seems like you only need one there.
Of course, I don't know enough about DinkC yet to know whether or not that'd cause a problem.
Edit: By the way, Ric, precisely which script is that?
Of course, I don't know enough about DinkC yet to know whether or not that'd cause a problem.
Edit: By the way, Ric, precisely which script is that?
Your right tal, the second bracket is not needed.
I believe I've located the problem.
Ok, I downloaded Bane of the Magi today and began to play it. As soon as I chose the first dialogue choice while talking to a little girl in town, the game crashed. Curious, I went into WinDinkEdit and checked which script the girl had: chat-sh.c. I perused through there in search of the mistake, and I found this within:
if (&result == 1)
{
say_stop("Hi, is everyone in this town o.k.?",1);
wait
There was no specification of time to wait behind the wait procedure... it was merely "wait". After changing it to wait(200); the script worked well.
I also found the same problem in chat-h.c.
What you posted looks correct (though again, ditch that bracket
), but it seems as though you fixed it and never made it public.
Edit: Out of boredom, I decided to download the 1.1 patch file, despite the fact that I downloaded BOTM 1.1 Full. Upon investigation, you never made any updates to chat-sh.c or chat-h.c, supporting my theory that you fixed the crash problem and never made the fix public... however, I did stumble across some other interesting things.
key-80.c - The version of key-80.c in the patch file is more recent, and is as follows:
void main ()
{
if(&story < 2)
{
return;
}
show_bmp("graphics\map.bmp", 0,0);
}
The version in the full release is a day older, and is as follows:
void main ()
{
if(&map < 10)
{
return;
}
show_bmp("graphics\map.bmp", 0,0);
}
Interesting difference in requirements. Which one should be the appropriate one?
mteach.c - Oddly enough, the version in the full release is more recent than the version in the patch file, and has one more line of dialogue near the end:
say_stop("`4Erm....how nice.",¤t_sprite);
Just thought you'd be interested in this info.
Ok, I downloaded Bane of the Magi today and began to play it. As soon as I chose the first dialogue choice while talking to a little girl in town, the game crashed. Curious, I went into WinDinkEdit and checked which script the girl had: chat-sh.c. I perused through there in search of the mistake, and I found this within:
if (&result == 1)
{
say_stop("Hi, is everyone in this town o.k.?",1);
wait
There was no specification of time to wait behind the wait procedure... it was merely "wait". After changing it to wait(200); the script worked well.
I also found the same problem in chat-h.c.
What you posted looks correct (though again, ditch that bracket

Edit: Out of boredom, I decided to download the 1.1 patch file, despite the fact that I downloaded BOTM 1.1 Full. Upon investigation, you never made any updates to chat-sh.c or chat-h.c, supporting my theory that you fixed the crash problem and never made the fix public... however, I did stumble across some other interesting things.
key-80.c - The version of key-80.c in the patch file is more recent, and is as follows:
void main ()
{
if(&story < 2)
{
return;
}
show_bmp("graphics\map.bmp", 0,0);
}
The version in the full release is a day older, and is as follows:
void main ()
{
if(&map < 10)
{
return;
}
show_bmp("graphics\map.bmp", 0,0);
}
Interesting difference in requirements. Which one should be the appropriate one?
mteach.c - Oddly enough, the version in the full release is more recent than the version in the patch file, and has one more line of dialogue near the end:
say_stop("`4Erm....how nice.",¤t_sprite);
Just thought you'd be interested in this info.
But, how? but, but....
Aggg!.
Time for 1.2 and thanx so much.
*edit*
I have no idea how, but it looks like some of the files in the 'update' were from the wrong archive.( I sometimes keep obsolete files.)
That bracket is just on the board. Snuck in when I pasted in the rest of the talk ()
Aggg!.
Time for 1.2 and thanx so much.


*edit*
I have no idea how, but it looks like some of the files in the 'update' were from the wrong archive.( I sometimes keep obsolete files.)
That bracket is just on the board. Snuck in when I pasted in the rest of the talk ()