Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
            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();
            }
Exemplo n.º 3
0
        bool ReadSaveDataHeaders(StringArguments data)
        {
            foreach (char header in headers)
            {
                char buff = data.NextChar();

                if (header != buff)
                {
                    return(false);
                }
            }

            return(true);
        }