Gave that a shot, and unfortunately it didn't work.
I went back to my old method, though, and just added a simple line of talk code for when it reached the unzipped state.
Code:
[ZIP_OPEN]
{
loc.oz.item = 0;//The clothing item, the number is found in their init file under cloth items
loc.oz.open = true; // if the zipper is open or closed and can be manipulated
loc.oz.d = 0.05;// how much to open the zipper by
OpenClothZipper(loc.oz);//execute the above
loc.closed = GetClothZipperIsClosed(loc.oz);
[loc.closed < 11] return;
talk.s = "Zipper is open";
state.dyn.me.do.state2 = ZIP_TALK0;
}
So then it supposed to go to this next state.
Code:
[ZIP_TALK0]
{
// loc.ts = GetTs();
// [loc.ts < state.dyn.me.do.ts] return;
talk.s = "Oh shoot, this damn zipper never stays closed.";
do_set_timer(2);
state.dyn.me.do.state2 = ZIP_TALK1;
}
And absolutely refuses to run it. If I go straight to the one after it...
Code:
[ZIP_TALK1]
{
//loc.ts = GetTs();
//[loc.ts < state.dyn.me.do.ts] return;
talk.s = "I'm sorry you have to see this, {^gname}. It's very unprofessional of me.";
do_set_timer(2);
state.dyn.me.do.state2 = ZIP_TALK2;
}
... zero problems. It just continues on as if life is peachy.
So, now the zipper works as it's supposed to, but something about ZIP_TALK0 is broken. I don't get why, though.
Also, what exactly is the Ts in GetTs();? I see it pop up alot, but near as I can figure out, it's either for timers, or tasks. If it's for tasks, is there a specific call just for timers?