public string ExtractKeyFromLink(StringArguments args, string[] linkType, out int found_idx, out string something1) { found_idx = 0; something1 = null; // skip empty if (args.Empty()) { return(null); } // return non link case if (args[0] != '|') { return(args.NextString()); } if (args[1] == 'c') { string check = args.NextString("|"); if (string.IsNullOrEmpty(check)) { return(null); } } else { args.NextChar(); } string cLinkType = args.NextString(":"); if (string.IsNullOrEmpty(cLinkType)) { return(null); } for (var i = 0; i < linkType.Length; ++i) { if (cLinkType == linkType[i]) { string cKey = args.NextString(":|"); // extract key something1 = args.NextString(":|"); // extract something args.NextString("]"); // restart scan tail and skip name with possible spaces args.NextString(); // skip link tail (to allow continue strtok(NULL, s) use after return from function found_idx = i; return(cKey); } } args.NextString(); SendSysMessage(CypherStrings.WrongLinkType); return(null); }
public override void Load(string str) { if (!string.IsNullOrEmpty(str)) { OUT_LOAD_INST_DATA_FAIL(); return; } OUT_LOAD_INST_DATA(str); StringArguments args = new StringArguments(str); char dataHead1 = args.NextChar(); char dataHead2 = args.NextChar(); ushort data0 = args.NextUInt16(); ushort data1 = args.NextUInt16(); ushort data2 = args.NextUInt16(); ushort data3 = args.NextUInt16(); ushort data4 = args.NextUInt16(); if (dataHead1 == 'V' && dataHead2 == 'H') { m_auiEncounter[0] = data0; m_auiEncounter[1] = data1; m_auiEncounter[2] = data2; for (byte i = 0; i < MAX_ENCOUNTER; ++i) { if ((EncounterState)m_auiEncounter[i] == EncounterState.InProgress) { m_auiEncounter[i] = (ushort)EncounterState.NotStarted; } } uiFirstBoss = (byte)data3; uiSecondBoss = (byte)data4; } else { OUT_LOAD_INST_DATA_FAIL(); } OUT_LOAD_INST_DATA_COMPLETE(); }
bool ReadSaveDataHeaders(StringArguments data) { foreach (char header in headers) { char buff = data.NextChar(); if (header != buff) { return(false); } } return(true); }