コード例 #1
0
ファイル: MapData.cs プロジェクト: blockspacer/MMXLegacy
        public void Load(SaveGameData p_data)
        {
            m_name = p_data.Get <String>("Name", null);
            Int32 num = p_data.Get <Int32>("ObjectCount", 0);

            for (Int32 i = 0; i < num; i++)
            {
                SaveGameData saveGameData = p_data.Get <SaveGameData>("InteractiveObject" + i, null);
                if (saveGameData != null)
                {
                    try
                    {
                        Int32             p_staticID        = saveGameData.Get <Int32>("StaticID", 0);
                        Int32             p_spawnID         = saveGameData.Get <Int32>("SpawnerID", 0);
                        EObjectType       p_type            = saveGameData.Get <EObjectType>("ObjectType", EObjectType.NONE);
                        InteractiveObject interactiveObject = (InteractiveObject)EntityFactory.Create(p_type, p_staticID, p_spawnID);
                        interactiveObject.Load(saveGameData);
                        m_objects.Add(interactiveObject);
                    }
                    catch (Exception p_message)
                    {
                        LegacyLogger.LogError(p_message);
                    }
                }
            }
            Int32 num2 = p_data.Get <Int32>("MonsterCount", 0);

            for (Int32 j = 0; j < num2; j++)
            {
                SaveGameData saveGameData2 = p_data.Get <SaveGameData>("Monster" + j, null);
                if (saveGameData2 != null)
                {
                    try
                    {
                        Monster monster = new Monster();
                        monster.Load(saveGameData2);
                        m_monster.Add(monster);
                    }
                    catch (Exception p_message2)
                    {
                        LegacyLogger.LogError(p_message2);
                    }
                }
            }
            SaveGameData saveGameData3 = p_data.Get <SaveGameData>("InvalidSpawns", null);

            if (saveGameData3 != null)
            {
                List <Int32> collection = SaveGame.CreateArrayFromData <Int32>(saveGameData3);
                m_invalidSpawns.AddRange(collection);
            }
            SaveGameData saveGameData4 = p_data.Get <SaveGameData>("TerrainMatrix", null);

            if (saveGameData4 != null)
            {
                m_terrainDataHeight = saveGameData4.Get <Int32>("MatrixHeight", 0);
                m_terrainDataWidth  = saveGameData4.Get <Int32>("MatrixWidth", 0);
                m_terrainData       = new TerrainTypeData[m_terrainDataWidth * m_terrainDataHeight];
                for (Int32 k = 0; k < m_terrainDataHeight; k++)
                {
                    for (Int32 l = 0; l < m_terrainDataWidth; l++)
                    {
                        SaveGameData saveGameData5 = saveGameData4.Get <SaveGameData>(String.Concat(new Object[]
                        {
                            "terrain_",
                            l,
                            "_",
                            k
                        }), null);
                        if (saveGameData5 != null)
                        {
                            TerrainTypeData terrainTypeData = default(TerrainTypeData);
                            terrainTypeData.Load(saveGameData5);
                            m_terrainData[k * m_terrainDataWidth + l] = terrainTypeData;
                        }
                    }
                }
            }
        }
コード例 #2
0
 public virtual void ExecutionBreak()
 {
     LegacyLogger.Log(GetType().Name + " execution aborded!", false);
     m_stateMachine.ChangeState(EState.FINISHED);
 }
コード例 #3
0
            public void Update(Dialog newDialog)
            {
                if (newDialog.m_entries == null || newDialog.m_entries.Length == 0)
                {
                    return;         // Not implemented
                }
                var result  = new LinkedList <DialogEntry>(m_entries);
                var current = new Dictionary <String, LinkedListNode <DialogEntry> >(m_entries.Length);

                if (result.Count > 0)
                {
                    for (var node = result.First; node != null; node = node.Next)
                    {
                        current[node.Value.GetKeyFromText()] = node;
                    }
                }

                foreach (DialogEntry ent in newDialog.m_entries)
                {
                    DialogEntry entry = ent;
                    if (entry.m_injection == null)
                    {
                        result.AddLast(entry);
                    }
                    else
                    {
                        // Remove injection to avoid memory growing
                        DialogEntryInjection injection = entry.m_injection;
                        entry.m_injection = null;

                        LinkedListNode <DialogEntry> node;
                        if (current.TryGetValue(injection.TextKey, out node))
                        {
                            switch (injection.InjectionType)
                            {
                            case EDialogInjectionType.InsertAfter:
                                result.AddAfter(node, entry);
                                break;

                            case EDialogInjectionType.InsertBefore:
                                result.AddBefore(node, entry);
                                break;

                            case EDialogInjectionType.Replace:
                                result.AddAfter(node, entry);
                                result.Remove(node);
                                break;

                            default:
                                throw new NotImplementedException(injection.InjectionType.ToString());
                            }
                        }
                        else
                        {
                            result.AddLast(entry);
                            LegacyLogger.LogError($"Cannot find injection target [{injection.TextKey}] in the dialog.");
                        }
                    }
                }

                m_entries = result.ToArray();
            }
コード例 #4
0
        static void Main(string[] args)
        {
            ILegacyLogger logger = null;
            bool          bRes = true;
            string        sAsr = "", sGramPath = "", sUttPath = "";
            int           iRes, iNumIt = 0, iPause = 0, iNumArgsExpected = 5, iAsrIdx = 0, iGramIdx = 1, iUttIdx = 2, iItIdx = 3, iPauseIdx = 4;
            eAsrType      eAsr = eAsrType.unknown;

            try
            {
                for (int ii = 0; ii < args.Length; ii++)
                {
                    Console.Error.WriteLine("Arg {0}: '{1}'", ii, args[ii].ToString());
                }
                Thread.CurrentThread.Name = "asrtest";
                logger = new LegacyLogger();
                logger.Init("", "", Thread.CurrentThread.Name, "", "", "/opt/speechbridge/logs");
                bRes = logger.Open();

                if (!bRes || (args.Length != iNumArgsExpected))
                {
                    if (!bRes)
                    {
                        Console.Error.WriteLine("Unable to open the console logger!");
                    }
                    else
                    {
                        logger.Log(Level.Warning, "Usage:  asrtest AsrType GrammarFile UttWav NumIterations PauseInSecs");
                        logger.Log(Level.Warning, "    AsrType can be:  lumenvox, lumenvox2, OR vestec");
                    }
                    return;
                }
                else
                {
                    sAsr      = args[iAsrIdx];
                    sGramPath = args[iGramIdx];
                    sUttPath  = args[iUttIdx];
                    iNumIt    = int.Parse(args[iItIdx]);
                    iPause    = int.Parse(args[iPauseIdx]);

                    if ((sAsr == eAsrType.julius.ToString()) || (sAsr == eAsrType.loquendo.ToString()) || (sAsr == eAsrType.pocketsphinx.ToString()))
                    {
                        logger.Log(Level.Exception, "That AsrType is not yet supported.");
                    }
                    else if (sAsr == eAsrType.lumenvox.ToString())
                    {
                        eAsr = eAsrType.lumenvox;
                    }
                    else if (sAsr == eAsrType.lumenvox2.ToString())
                    {
                        eAsr = eAsrType.lumenvox2;
                    }
                    else if (sAsr == eAsrType.vestec.ToString())
                    {
                        eAsr = eAsrType.vestec;
                    }

                    if (eAsr != eAsrType.unknown)
                    {
                        iRes = RunTestBuffer(logger, eAsr, sGramPath, sUttPath, iNumIt, iPause);

                        logger.Log(Level.Info, "Successfully completed " + iRes.ToString() + " iterations.");
                    }
                }

                logger.Close();
            }
            catch (Exception exc)
            {
                logger.Log(Level.Exception, "Main caught exception: " + exc.ToString());
            }

            return;
        }
コード例 #5
0
        static void Main(string[] args)
        {
            bool            bRes = true;
            string          sPrompt = "> ", sCmd = "", sLogPath = "";
            AudioEngine_srv amSrv = null;
            ILegacyLogger   logger = null;
            string          sDisableKeyboard = "", sVer = "";
            AssemblyName    asmName = null;

            //Name the main thread
            Thread.CurrentThread.Name = "AudioMgrMainT";

            // Set up the logger(s)
            sLogPath = ConfigurationManager.AppSettings[cs_LogFilePath];
            if (!(sLogPath.EndsWith("/") || sLogPath.EndsWith("\\")))
            {
                sLogPath = sLogPath + "/";
            }
            logger = new LegacyLogger();
            logger.Init("", "", Thread.CurrentThread.Name, "", "", sLogPath);
            bRes = logger.Open();
            if (!bRes)
            {
                Console.Error.WriteLine("AudioMgr failed to open the logger!");
            }
            else
            {
                asmName = Assembly.GetAssembly(typeof(AudioMgr.AudioEngine)).GetName();
                sVer    = asmName.Version.ToString();
                logger.Log(Level.Info, "AudioMgr v" + sVer);

                bRes = RemotingConfig(logger);

                amSrv = new AudioEngine_srv(logger);
                bRes  = RegisterEventHandlers(amSrv);

                if (!bRes)
                {
                    logger.Log(Level.Exception, " AudioMgr failed registering event handlers!");
                }
                else
                {
                    bRes = amSrv.LoadASR(logger);
                    if (!bRes)
                    {
                        logger.Log(Level.Exception, " AudioMgr failed to load ASR(s)!");
                    }
                    else
                    {
                        bRes = amSrv.CreateWorkerThreads(sLogPath);
                        if (!bRes)
                        {
                            logger.Log(Level.Exception, " AudioMgr failed to create worker threads!");
                        }
                        else
                        {
                            //Console.WriteLine("AudioMgr startup successful.");
                            logger.Log(Level.Info, "AudioMgr startup successful.");

                            sDisableKeyboard = ConfigurationManager.AppSettings[cs_DisableKeyboard];
                            sDisableKeyboard = (sDisableKeyboard == null) ? "" : sDisableKeyboard;
                            if (sDisableKeyboard == "false")
                            {
                                Console.Write(sPrompt);
                                sCmd = Console.ReadLine();
                                while (bRes)
                                {
                                    bRes = amSrv.ProcessCmdString(sCmd);
                                    if (bRes)
                                    {
                                        Console.Write(sPrompt);
                                        sCmd = Console.ReadLine();
                                    }
                                }
                            }

                            // Join worker threads before exiting
                            amSrv.JoinWorkerThreads();

                            UnregisterEventHandlers(amSrv);
                        }
                    }
                }

                logger.Log(Level.Info, "AudioMgr shutdown.");
                logger.Close();
            }
        }
コード例 #6
0
 public override void UpdateTurn()
 {
     base.UpdateTurn();
     if (State == EState.IDLE)
     {
         Position position = LegacyLogic.Instance.WorldManager.Party.Position;
         Grid     grid     = LegacyLogic.Instance.MapLoader.Grid;
         for (Int32 i = m_invalidSpawners.Count - 1; i >= 0; i--)
         {
             Spawn spawn = m_invalidSpawners[i];
             if (spawn.ObjectType == EObjectType.MONSTER && spawn.InSpawnRange(position) && !m_spawnObjects.Contains(spawn))
             {
                 m_invalidSpawners.RemoveAt(i);
                 m_spawnObjects.Add(spawn);
             }
         }
         if (m_spawnObjects.Count > 0)
         {
             m_spawnedInteractiveObjects.Clear();
             for (Int32 j = m_spawnObjects.Count - 1; j >= 0; j--)
             {
                 Spawn      spawn2     = m_spawnObjects[j];
                 BaseObject baseObject = LegacyLogic.Instance.WorldManager.FindObjectBySpawnerId(spawn2.ID);
                 if (baseObject == null && spawn2.ObjectType == EObjectType.MONSTER && !spawn2.InSpawnRange(position))
                 {
                     m_spawnObjects.RemoveAt(j);
                     m_invalidSpawners.Add(spawn2);
                     spawn2.SetCanRespawn();
                 }
                 else if (baseObject == null)
                 {
                     BaseObject baseObject2 = spawn2.SpawnObject();
                     if (baseObject2 != null)
                     {
                         spawn2.EndTurn();
                         LegacyLogic.Instance.UpdateManager.SpawnTurnActor.RemoveSpawner(spawn2);
                         LegacyLogic.Instance.WorldManager.InvalidSpawner.Add(spawn2.ID);
                         Boolean flag = false;
                         if (baseObject2 is MovingEntity)
                         {
                             MovingEntity movingEntity = (MovingEntity)baseObject2;
                             if (!grid.AddMovingEntity(movingEntity.Position, movingEntity))
                             {
                                 LegacyLogger.LogError(String.Concat(new Object[]
                                 {
                                     "Cannot add object to GRID! SpawnerID: ",
                                     movingEntity.SpawnerID,
                                     ", staticID: ",
                                     movingEntity.StaticID
                                 }));
                             }
                             else
                             {
                                 flag = true;
                             }
                         }
                         else if (baseObject2 is InteractiveObject)
                         {
                             InteractiveObject interactiveObject = (InteractiveObject)baseObject2;
                             grid.AddInteractiveObject(interactiveObject);
                             interactiveObject.OnAfterCreate(grid);
                             interactiveObject.OnAfterSpawn(grid);
                             m_spawnedInteractiveObjects.Add(interactiveObject);
                             flag = true;
                         }
                         if (flag)
                         {
                             LegacyLogic.Instance.WorldManager.SpawnObject(baseObject2, spawn2.Position);
                         }
                     }
                 }
             }
             foreach (InteractiveObject interactiveObject2 in m_spawnedInteractiveObjects)
             {
                 interactiveObject2.OnPrewarm(grid);
             }
             m_stateMachine.ChangeState(EState.RUNNING);
         }
         else
         {
             m_stateMachine.ChangeState(EState.FINISHED);
         }
     }
     else if (State == EState.RUNNING)
     {
         Boolean flag2 = true;
         foreach (Spawn spawn3 in m_spawnObjects)
         {
             if (spawn3.State != Spawn.EState.ACTION_FINISHED && spawn3.State != Spawn.EState.IDLE)
             {
                 flag2 = false;
                 break;
             }
         }
         if (flag2)
         {
             if (m_isFirstUpdate)
             {
                 LegacyLogic.Instance.MapLoader.OnLevelLoaded();
                 m_isFirstUpdate = false;
             }
             m_stateMachine.ChangeState(EState.FINISHED);
             foreach (Spawn spawn4 in m_spawnObjects)
             {
                 spawn4.TurnIdle.Trigger();
             }
         }
     }
     foreach (Spawn spawn5 in m_spawnObjects)
     {
         spawn5.Update();
     }
 }
コード例 #7
0
        static void Main(string[] args)
        {
            bool bRes;

            DialogMgr_srv.eDMResult eRes  = DialogMgr_srv.eDMResult.eUnknown;
            DialogMgr_srv           dmSrv = null;
            string        sPath;
            string        sDisableKeyboard = "", sVer = "";
            AssemblyName  asmName = null;
            ILegacyLogger logger  = null;

            // Name the main thread
            Thread.CurrentThread.Name = "DialogMgrMainT";

            // Set up the logger(s)
            sPath  = ConfigurationManager.AppSettings["LogFilePath"];
            logger = new LegacyLogger();
            logger.Init("", "", Thread.CurrentThread.Name, "", "", sPath);
            bRes = logger.Open();
            if (!bRes)
            {
                Console.Error.WriteLine("DialogMgr failed to open the logger!");
            }
            else
            {
                asmName = Assembly.GetAssembly(typeof(DialogMgr_Console.DialogMgr)).GetName();
                sVer    = asmName.Version.ToString();
                logger.Log(Level.Info, "DialogMgr v" + sVer);

                bRes = LoadCustomAssemblies(logger);

                bRes = RemotingConfig(logger);

                dmSrv = new DialogMgr_srv(logger);
                bRes  = RegisterEventHandlers(dmSrv);

                if (bRes)
                {
                    bRes = dmSrv.CreateWorkerThreads("");

                    //Console.WriteLine("DialogMgr_Console startup successful.");
                    logger.Log(Level.Info, "DialogMgr_Console startup successful.");

                    sDisableKeyboard = ConfigurationManager.AppSettings["DisableKeyboard"];
                    sDisableKeyboard = (sDisableKeyboard == null) ? "" : sDisableKeyboard;
                    if (sDisableKeyboard == "false")
                    {
                        // Start processing messages
                        eRes = dmSrv.ProcessKbMsgLoop();
                    }

                    // Join worker threads before exiting
                    dmSrv.JoinWorkerThreads();

                    // Clean up
                    UnregisterEventHandlers(dmSrv);
                }
                else
                {
                    //Console.WriteLine("DialogMgr_Console startup unsuccessful!!!");
                    logger.Log(Level.Exception, "DialogMgr_Console startup unsuccessful!!!");
                }

                logger.Log(Level.Info, "DialogMgr_Console shutdown.");
                logger.Close();
            }
        }
コード例 #8
0
ファイル: CreditsData.cs プロジェクト: blockspacer/MMXLegacy
 public void Update(IXmlStaticData additionalData)
 {
     LegacyLogger.LogError("The method Update of the type CreditsData isn't implemented.");
 }