[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: modifying current execution line/opcode
- From: Niklas Frykholm <niklas@...>
- Date: Fri, 15 Dec 2006 11:55:56 +0100
Terisquas Brothers wrote:
Even if you manage to rewind/jump in the Lua code won't you still have
the problem of rewinding the C side, i.e. moving NPC1 back five steps if
you rewind over step 2? Seems like a difficult problem to be able to run
the script code and everything it does both forwards and backwards.
The scripter is playing the current cutscene,which is
executed in a coroutine (as some instructions need
synchronization with the C part of the game, i.e. when
saying things the player must hit a button to
1 - NPC1 says "Hello"
2 - NPC1 moves forward 5 steps
3 - NPC1 turns to NPC2
4 - NPC1 says "It's been a long time"
5 - NPC2 says "..."
imagine the creator sees the script reproduced in the
tool, and once it reaches and executes #4, he decides
that he wants to see again from #2 (cutscenes can have
100s of lines, so it'd be useful to avoid 40 seconds
The first step would be "rewinding" the execution to
instruction #2 so that he can see the process again.
I'd like to offer the user a kind of "time bar" so
that he can rewind to any previous position. Fast
forward is easier (just run through the script).
It might be simpler to fake rewind by doing a reset to the initial state
(also resetting the C side) and then just fast forward to the point
where you want to arrive. Of course this requires that you have a "fast
forward mode" that can run through the code very quickly, e. g.
teleporting the character five steps intead of playing the walk
animation, etc. If you do it this way, it should also be possible to
replace and restart the coroutine.