Tuesday, October 2, 2012

Loading Triggers for Tutorial #1

The trigger manager seems to be fully functional at this point.  Now, tutorial #1 needs the triggers to be loaded into the manager.  The general progression of the tutorial #1 dialog can be found here: http://abanathie.blogspot.com/2012/07/tutorial-1-dialog.html

There will be some changes to the progression.  First, the instruction to stop and use the mouse scroll button will occur while traveling to the first waypoint.  The instruction to "glide" will occur between first and second waypoint.  In this blog, I will breakdown the progression of the first tutorial into a trigger manager friendly format. 

First, let's take a look at the general process.

The tutorial starts off with the instructor giving the pilot the instruction to turn left (audtt1Start).  This dialog takes 14 seconds.  After the 14 seconds, the manager needs to load two triggers.  The trigger, tgrtt1Start, loads two triggers: audtt1Right and tgrtt1Right.  The first is an audio instructing the player to turn right.  The second is a trigger load for the next sequence of triggers.

  Time (0)
    audtt1Start* (Instructor - true) - 14 seconds long

tgrtt1Start - Trigger Load
  Left Turn (14)
    audtt1Right(Instructor - true)  - 5 seconds long
    Turn Left (0)
    Turn Right (5)

The next trigger, tgrtt1Right, waits for a turn right trigger.  Once it receives that trigger it loads two triggers from the trigger load table.  The first, audtt1Up, plays an audio file to turn the fighter upwards.  The second is another trigger load that waits for a Turn Up trigger.

tgrtt1Right - Trigger Load
  Turn Right (5)
    audtt1Up(Instrutor - true) - 6 seconds long
    Turn Right (0)
    Turn Up (6)

The next sequence loads another set of triggers; however, I think I got the process down at this point.  It requires me to make a slight adjustment to the trigger load routine.  Instead of restricting the trigger load, the trigger load trigger needs to be able to create multiple triggers.  Instead of a one to one exchange, a single trigger load can point to multiple triggers.  This just makes it a one to many relationship in database terms...


  1. Got it work, briefly. Once I got it to work, I decided to create another trigger that occured once an audio file finished. I incorporated this trigger into the manager and quickly broke the manager again. So...

    I'll have to figure out how to incorporate it into the flow...

    Here's the my train of thought...

    Audio to turn left
    Wait for completion of audio file
    Load a turn left trigger
    Play turn right audio
    Wait for the audio to complete
    Load a turn right trigger
    Play turn up audio
    Wait for the audio to complete playing
    Load a turn up trigger

    So, the general format is Wait, Load and Play. Let's see if that helps me get this done...

  2. Actually, it was a simple...

    Load two triggers
    Play audio
    Wait for audio to complete
    Load two triggers...

    The trigger system seems to be working... That makes me happy.