private void LoadSemiStaticData()
        {
            logicPtrVal = MemoryReader.ReadIntPtr(EngineAddr + logicOffset);
            if (logicPtrVal == IntPtr.Zero)
            {
                throw new InconsistentDataException();
            }

            string logicName = RttiReader.GetMangledClassNameFromObjPtr(logicPtrVal);

            switch (logicName)
            {
            case ".?AVLogicGame@Queen@@":
                logicMode = LogicMode.Game;
                break;

            case ".?AVLogicDemo@Queen@@":
                logicMode = LogicMode.Demo;
                break;

            case ".?AVLogicInterview@Queen@@":
                logicMode = LogicMode.Interview;
                break;

            default:
                throw new InvalidDataException("Unrecognized logic type");
            }
        }
Exemplo n.º 2
0
        internal UnknownEngineAccessor(ScummVMConnector connector, IntPtr engineAddr) : base(connector, engineAddr)
        {
            string mangledName = RttiReader.GetMangledClassNameFromObjPtr(engineAddr);

            Debug.WriteLine($"Unknown engine class name \"{mangledName}\"");
        }