예제 #1
0
        private static int CommandListPrintout(int id, SceneHeader header, int sceneId, int roomId, StringBuilder result)
        {
            List <List <SceneCommand> > commandList = header.GetAllCommandsWithId(id);

            AppendCommandList(commandList, sceneId, roomId, result);
            return(GetSublistCount(commandList));
        }
예제 #2
0
        private static int ActorListPrintout(int id, SceneHeader header, int sceneId, int roomId, StringBuilder result)
        {
            List <List <ActorSpawn> > actorList = header.GetActorsWithId(id);

            AppendActorList(actorList, sceneId, roomId, result);
            return(GetSublistCount(actorList));
        }
예제 #3
0
        private static int ObjectListPrintout(int id, SceneHeader header, int sceneId, int roomId, StringBuilder result)
        {
            List <List <ushort> > objectList = header.GetObjectsWithId(id);

            AppendObjectList(objectList, sceneId, roomId, result);
            return(GetSublistCount(objectList));
        }
예제 #4
0
        private static string ReadHeader(SceneHeader Header)
        {
            StringBuilder result = new StringBuilder();

            result.AppendLine("Setup 0: 00000000");
            result.AppendLine(Header.Read());
            if (Header.HasAlternateHeaders())
            {
                var Alternate = Header.Alternate;
                for (int i = 0; i < Alternate.Headers.Count; i++)
                {
                    if (Alternate.Headers[i] == null)
                    {
                        continue;
                    }

                    if (i < 3)
                    {
                        result.Append($"Setup {(i + 1)}: ");
                    }
                    else
                    {
                        result.Append($"Cutscene {(i - 3)}: ");
                    }
                    result.AppendLine(Alternate.Offsets[i].Offset.ToString("X8"));
                    result.AppendLine(Alternate.Headers[i].Read());
                }
            }
            return(result.ToString());
        }
예제 #5
0
        private static List <ItemLocation <T> > CreateList <T>(int id, SceneHeader header, int scene, int room, CreateListThings <T> del)
        {
            List <ItemLocation <T> > result = new List <ItemLocation <T> >();
            List <List <T> >         test   = del(id);

            for (int i = 0; i < test.Count; i++)
            {
                SceneRoomSetup srs = new SceneRoomSetup(scene, room, i);
                foreach (var item in test[i])
                {
                    result.Add(new ItemLocation <T>(item, srs));
                }
            }
            return(result);
        }
예제 #6
0
 public Scene(Game game, int id, FileAddress address)
 {
     Header         = new SceneHeader(game);
     VirtualAddress = address;
     Id             = id;
 }
예제 #7
0
파일: Room.cs 프로젝트: Ecksters/OcaLib
 public Room(Game game, FileAddress a)
 {
     Header         = new SceneHeader(game);
     VirtualAddress = a;
 }