public void NextEventInQueue() { if (eventQueue.Count == 0) { // load next branch if (!currentBranch.connectionOutputs[0].hide) { if (currentBranch.connectionOutputs[0].connectedToGUIDs == null || currentBranch.connectionOutputs[0].connectedToGUIDs.Count == 0) { throw new System.Exception("Scenimatic came to an ungraceful end!"); } nextGUID = currentBranch.connectionOutputs[0].connectedToGUIDs[0]; } LoadBranch(nextGUID); return; } currentEvent = eventQueue.Dequeue(); switch (currentEvent.eventType) { case ScenimaticEvent.ScenimaticEventType.Dialog: dialogPanel.NextTextBlock(currentEvent.image, currentEvent.text); break; case ScenimaticEvent.ScenimaticEventType.Query: queryPanel.SetOptionList(currentEvent.options, 0); break; default: Debug.LogWarning("Event type " + currentEvent.eventType + " unrecognized or un-implemented"); break; } }