public static void StartSelectedDemo() { // first unit is filename GuiTextListCtrl RecordingsDlgList = "RecordingsDlgList"; int sel = RecordingsDlgList.getSelectedId(); string rowText = RecordingsDlgList.getRowTextById(sel); string file = omni.sGlobal["$currentMod"] + "/recordings/" + omni.Util.getField(rowText, 0) + ".rec"; GameConnection ServerConnection = new ObjectCreator("GameConnection", "ServerConnection").Create(); ((SimGroup) "RootGroup").add(ServerConnection); // Start up important client-side stuff, such as the group // for particle emitters. This doesn't get launched during a demo // as we short circuit the whole mission loading sequence. mission.clientStartMission(); if (ServerConnection.playDemo(file)) { ((GuiCanvas) "canvas").setContent("PlayGui"); ((GuiCanvas) "canvas").popDialog("RecordingsDlg"); ServerConnection.call("prepDemoPlayback"); } else { messageBox.MessageBoxOK("Playback Failed", "Demo playback failed for file '" + file + "'.", ""); if ("ServerConnection".isObject()) "ServerConnection".delete(); } }