private void AppendCharactersToHeader(StringBuilder sb, CharacterFolder characters, Game game) { int charactersCount = characters.GetAllItemsCount(); if (charactersCount > 0) { sb.AppendLine(string.Format("import Character character[{0}];", charactersCount)); foreach (Character character in characters.AllItemsFlat) { if (character.ScriptName.StartsWith("c") && (character.ScriptName.Length > 1)) { string macroName = character.ScriptName.Substring(1).ToUpper(); // only create the legacy #define if it doesn't start with 0-9 // (eg. c500 would cause error) if (!Char.IsDigit(macroName[0])) { sb.AppendLine("#define " + macroName + " " + character.ID); } } if (character.ScriptName.Length > 0) { sb.AppendLine("import Character " + character.ScriptName + ";"); } } } }
private void InitializeData() { this.logCount = 0; int memoryLogCount = logmemoryInfo.GetLogCount(); FF14LogParser logParser = new FF14LogParser(); if (memoryLogCount > 1000) { SetStatus("ログ読込中..."); FFXIVUserFolder userfolder = new FFXIVUserFolder(); CharacterFolder playnow = null; foreach (CharacterFolder cf in userfolder.GetCharacterFolders()) { if (playnow == null) { playnow = cf; } if (cf.LastPlayTimeFromLogFile > playnow.LastPlayTimeFromLogFile) { playnow = cf; } } List <FFXIVLog> LogsFromFile = new List <FFXIVLog>(); memoryLogCount = logmemoryInfo.GetLogCount(); if (playnow.LastPlayTimeFromLogFile > FFXIVLog.StartDateTime) { foreach (FFXIVLog log in FFXIVLogFileReader.GetLogsFromFile(playnow.GeLastWriteLogFile())) { logParser.Add(log); } } SetStatus("ログ読込中..."); foreach (byte[] data in logmemoryInfo.GetNewLogsData()) { logParser.Add(FFXIVLog.ParseSingleLog(data)); } SetStatus("読込完了"); } SetProgress(100, true); this.logParser = logParser; SetProgress(0, false); }
public Game() { _guis = new GUIFolder(GUIFolder.MAIN_GUI_FOLDER_NAME); _inventoryItems = new InventoryItemFolder(InventoryItemFolder.MAIN_INVENTORY_ITEM_FOLDER_NAME); _cursors = new List<MouseCursor>(); _dialogs = new DialogFolder(DialogFolder.MAIN_DIALOG_FOLDER_NAME); _fonts = new List<Font>(); _characters = new CharacterFolder(CharacterFolder.MAIN_CHARACTER_FOLDER_NAME); _plugins = new List<Plugin>(); _translations = new List<Translation>(); _rooms = new UnloadedRoomFolder(UnloadedRoomFolder.MAIN_UNLOADED_ROOM_FOLDER_NAME); _oldInteractionVariables = new List<OldInteractionVariable>(); _settings = new Settings(); _palette = new PaletteEntry[PALETTE_SIZE]; _sprites = new SpriteFolder("Main"); _views = new ViewFolder("Main"); _audioClips = new AudioClipFolder("Main"); _audioClipTypes = new List<AudioClipType>(); _textParser = new TextParser(); _lipSync = new LipSync(); _propertySchema = new CustomPropertySchema(); _globalVariables = new GlobalVariables(); _globalMessages = new string[NUMBER_OF_GLOBAL_MESSAGES]; _deletedViewIDs = new Dictionary<int, object>(); _scripts = new ScriptFolder(ScriptFolder.MAIN_SCRIPT_FOLDER_NAME); _scriptsToCompile = new Scripts(); ScriptAndHeader globalScript = new ScriptAndHeader( new Script(Script.GLOBAL_HEADER_FILE_NAME, "// script header\r\n", true), new Script(Script.GLOBAL_SCRIPT_FILE_NAME, "// global script\r\n", false)); _scripts.Items.Add(globalScript); _playerCharacter = null; for (int i = 0; i < _globalMessages.Length; i++) { _globalMessages[i] = string.Empty; } InitializeDefaultPalette(); }
public void FromXml(XmlNode node) { node = node.SelectSingleNode("Game"); _settings.FromXml(node); _lipSync.FromXml(node); _propertySchema.FromXml(node); if (node.SelectSingleNode("InventoryHotspotMarker") != null) { // Pre-3.0.3 InventoryHotspotMarker marker = new InventoryHotspotMarker(); marker.FromXml(node); _settings.InventoryHotspotMarker = marker; } foreach (XmlNode msgNode in SerializeUtils.GetChildNodes(node, "GlobalMessages")) { _globalMessages[Convert.ToInt32(msgNode.Attributes["ID"].InnerText) - GLOBAL_MESSAGE_ID_START] = msgNode.InnerText; } _plugins.Clear(); foreach (XmlNode pluginNode in SerializeUtils.GetChildNodes(node, "Plugins")) { _plugins.Add(new Plugin(pluginNode)); } _rooms = new UnloadedRoomFolder(node.SelectSingleNode("Rooms").FirstChild, node); _guis = new GUIFolder(node.SelectSingleNode("GUIs").FirstChild, node); _inventoryItems = new InventoryItemFolder(node.SelectSingleNode("InventoryItems").FirstChild, node); _textParser = new TextParser(node.SelectSingleNode("TextParser")); _characters = new CharacterFolder(node.SelectSingleNode("Characters").FirstChild, node); _playerCharacter = null; string playerCharText = SerializeUtils.GetElementString(node, "PlayerCharacter"); if (playerCharText.Length > 0) { int playerCharID = Convert.ToInt32(playerCharText); foreach (Character character in RootCharacterFolder.AllItemsFlat) { if (character.ID == playerCharID) { _playerCharacter = character; break; } } } _dialogs = new DialogFolder(node.SelectSingleNode("Dialogs").FirstChild, node); _cursors.Clear(); foreach (XmlNode cursNode in SerializeUtils.GetChildNodes(node, "Cursors")) { _cursors.Add(new MouseCursor(cursNode)); } _fonts.Clear(); foreach (XmlNode fontNode in SerializeUtils.GetChildNodes(node, "Fonts")) { _fonts.Add(new Font(fontNode)); } _palette = ReadPaletteFromXML(node); _sprites = new SpriteFolder(node.SelectSingleNode("Sprites").FirstChild); _views = new ViewFolder(node.SelectSingleNode("Views").FirstChild); _deletedViewIDs.Clear(); if (node.SelectSingleNode("DeletedViews") != null) { foreach (XmlNode transNode in SerializeUtils.GetChildNodes(node, "DeletedViews")) { _deletedViewIDs.Add(Convert.ToInt32(transNode.InnerText), null); } } _scripts = new ScriptFolder(node.SelectSingleNode("Scripts").FirstChild, node); if (node.SelectSingleNode("AudioClips") != null) { _audioClips = new AudioClipFolder(node.SelectSingleNode("AudioClips").FirstChild); } else { _audioClips = new AudioClipFolder("Main"); _audioClips.DefaultPriority = AudioClipPriority.Normal; _audioClips.DefaultRepeat = InheritableBool.False; _audioClips.DefaultVolume = 100; } _audioClipTypes.Clear(); if (node.SelectSingleNode("AudioClipTypes") != null) { foreach (XmlNode clipTypeNode in SerializeUtils.GetChildNodes(node, "AudioClipTypes")) { _audioClipTypes.Add(new AudioClipType(clipTypeNode)); } } _translations.Clear(); if (node.SelectSingleNode("Translations") != null) { foreach (XmlNode transNode in SerializeUtils.GetChildNodes(node, "Translations")) { _translations.Add(new Translation(transNode)); } } if (node.SelectSingleNode("GlobalVariables") != null) { _globalVariables = new GlobalVariables(node.SelectSingleNode("GlobalVariables")); } else { _globalVariables = new GlobalVariables(); } _oldInteractionVariables.Clear(); if (node.SelectSingleNode("OldInteractionVariables") != null) { foreach (XmlNode varNode in SerializeUtils.GetChildNodes(node, "OldInteractionVariables")) { _oldInteractionVariables.Add(new OldInteractionVariable(SerializeUtils.GetAttributeString(varNode, "Name"), SerializeUtils.GetAttributeInt(varNode, "Value"))); } } if (_savedXmlVersionIndex == null) { // Pre-3.0.3, upgrade co-ordinates ConvertCoordinatesToNativeResolution(); } }