Esempio n. 1
0
        void HandleRoomListUpdated(RoomListCommand notification)
        {
            List <LobbyRoom> list = new List <LobbyRoom>();

            foreach (var roomOpts in notification.List)
            {
                var lobbyRoom = ConvertToLobbyRoom(roomOpts);
                list.Add(lobbyRoom);
            }
            Client.OnLobbyRoomListUpdated?.Invoke(list);
        }
Esempio n. 2
0
        public static void Export(string file, ORom.Build build)
        {
            OFileTable rom = new OFileTable(file, build);
            Scene      spirit;

            ExportModifiedScene(rom, out spirit, "06_h");
            RoomListCommand roomCommand = (RoomListCommand)spirit.Header[HeaderCommands.RoomList];

            for (int i = 0; i < 29; i++)
            {
                BinaryReader br;

                Room sRoom = new Room(Game.OcarinaOfTime, roomCommand.RoomAddresses[i]);
                Room beta  = new Room(Game.OcarinaOfTime, new FileAddress());
                br = new BinaryReader(rom.GetFile(sRoom.VirtualAddress));

                sRoom.Header.Load(br, 0);
                beta.Header.Load(br, SpiritHack.GetBetaRoomSetupOffset(0, i));

                List <SceneCommand> cmd       = beta.Header.Commands();
                SceneCommand        objectCmd = sRoom.Header[HeaderCommands.ObjectList];
                int index = cmd.FindIndex(x => x.Code == (int)HeaderCommands.ActorList);

                if (index > -1)
                {
                    cmd.Insert(index, objectCmd);
                }

                using (BinaryWriter bw = new BinaryWriter(new FileStream($"r/06_{i:D2}", FileMode.CreateNew)))
                {
                    beta.Header.WriteHeader(bw);
                    br.BaseStream.Position = bw.BaseStream.Position;

                    while (br.BaseStream.Position < br.BaseStream.Length)
                    {
                        bw.Write(br.ReadUInt32());
                    }
                }
            }
        }
Esempio n. 3
0
        public void SetCommand(SceneWord sceneWord, long HeaderOffset)
        {
            SceneCommand command;

            switch ((HeaderCommands)sceneWord.Code)
            {
            case HeaderCommands.PositionList:           //0x00
                command = new PositionListCommand(Game);
                break;

            case HeaderCommands.ActorList:              //0x01
                command = new ActorListCommand(Game);
                break;

            case HeaderCommands.Collision:              //0x03
                command = new CollisionCommand();
                break;

            case HeaderCommands.RoomList:               //0x04
                command = new RoomListCommand();
                break;

            case HeaderCommands.WindSettings:           //0x05
                command = new WindSettingsCommand();
                break;

            case HeaderCommands.EntranceDefs:           //0x06
                command = new EntranceDefinitionsCommand();
                break;

            case HeaderCommands.SpecialObject:          //0x07
                command = new SpecialObjectCommand();
                break;

            case HeaderCommands.RoomBehavior:           //0x08
                command = new RoomBehaviorCommand();
                break;

            case HeaderCommands.RoomMesh:               //0x0A
                command = new RoomMeshCommand();
                break;

            case HeaderCommands.ObjectList:             //0x0B
                command = new ObjectListCommand();
                break;

            case HeaderCommands.PathList:               //0x0D
                command = new PathListCommand();
                break;

            case HeaderCommands.TransitionActorList:    //0x0E
                command = new TransitionActorListCommand(Game);
                break;

            case HeaderCommands.EnvironmentSettings:    //0x0F
                command = new EnvironmentSettingsCommand();
                break;

            case HeaderCommands.TimeSettings:           //0x10
                command = new TimeSettingsCommand();
                break;

            case HeaderCommands.SkyboxSettings:         //0x11
                command = new SkyboxSettingsCommand();
                break;

            case HeaderCommands.SkyboxModifier:         //0x12
                command = new SkyboxModifierCommand();
                break;

            case HeaderCommands.ExitList:               //0x13
                command = new ExitListCommand();
                break;

            case HeaderCommands.End:                    //0x14
                command = new EndCommand();
                break;

            case HeaderCommands.SoundSettings:          //0x15
                command = new SoundSettingsCommand();
                break;

            case HeaderCommands.SoundSettingsEcho:      //0x16
                command = new SoundSettingsEchoCommand();
                break;

            case HeaderCommands.Cutscene:               //0x17
                command = new CutsceneCommand();
                break;

            case HeaderCommands.AlternateHeaders:       //0x18
                command = new AlternateHeadersCommand(Game);
                break;

            case HeaderCommands.JpegBackground:         //0x19
                command = new JpegBackgroundCommand();
                break;

            default: command = new SceneCommand();
                break;
            }

            command.SetCommand(sceneWord);
            command.OffsetFromFile = HeaderOffset;
            cmds.Add(command);
        }
Esempio n. 4
0
        public void SetCommand(SceneWord sceneWord, long HeaderOffset)
        {
            SceneCommand command;

            switch ((HeaderCommands)sceneWord.Code)
            {
            case HeaderCommands.PositionList:           //0x00
                command = new ActorSpawnCommand(Game);
                break;

            case HeaderCommands.ActorList:              //0x01
                command = new ActorSpawnCommand(Game);
                break;

            case HeaderCommands.Collision:              //0x03
                command = new CollisionCommand();
                break;

            case HeaderCommands.RoomList:               //0x04
                command = new RoomListCommand();
                break;

            case HeaderCommands.WindSettings:           //0x05
                command = new SettingsCommand();
                break;

            case HeaderCommands.EntranceDefs:           //0x06
                command = new EntranceDefinitionsCommand();
                break;

            case HeaderCommands.SpecialObject:          //0x07
                command = new SettingsCommand();
                break;

            case HeaderCommands.RoomBehavior:           //0x08
                command = new RoomBehaviorCommand(Game);
                break;

            case HeaderCommands.RoomMesh:               //0x0A
                command = new RoomMeshCommand();
                break;

            case HeaderCommands.ObjectList:             //0x0B
                command = new ObjectListCommand();
                break;

            case HeaderCommands.PathList:               //0x0D
                command = new PathListCommand();
                break;

            case HeaderCommands.TransitionActorList:    //0x0E
                command = new TransitionActorListCommand(Game);
                break;

            case HeaderCommands.EnvironmentSettings:    //0x0F
                command = new EnvironmentSettingsCommand();
                break;

            case HeaderCommands.TimeSettings:           //0x10
                command = new SettingsCommand();
                break;

            case HeaderCommands.SkyboxSettings:         //0x11
                command = new SettingsCommand();
                break;

            case HeaderCommands.SkyboxModifier:         //0x12
                command = new SettingsCommand();
                break;

            case HeaderCommands.ExitList:               //0x13
                command = new ExitListCommand();
                break;

            case HeaderCommands.End:                    //0x14
                command = new EndCommand();
                break;

            case HeaderCommands.SoundSettings:          //0x15
                command = new SettingsCommand();
                break;

            case HeaderCommands.SoundSettingsEcho:      //0x16
                command = new SettingsCommand();
                break;

            case HeaderCommands.Cutscene:               //0x17
                command = new CutsceneCommand(Game);
                break;

            case HeaderCommands.AlternateHeaders:       //0x18
                command = new AlternateHeadersCommand(Game);
                break;

            case HeaderCommands.CameraAndWorldMap:      //0x19
                command = new SettingsCommand();
                break;

            case HeaderCommands.Textures:               //0x1A
                if (Game == Game.MajorasMask)
                {
                    command = new TexturesCommand();
                    break;
                }
                goto default;

            case HeaderCommands._0x1B:                  //0x1B
                if (Game == Game.MajorasMask)
                {
                    command = new _0x1BCommand();
                    break;
                }
                goto default;

            case HeaderCommands.Minimap:
                if (Game == Game.MajorasMask)
                {
                    command = new MinimapCommand();
                    break;
                }
                goto default;

            case HeaderCommands.MinimapChests:
                if (Game == Game.MajorasMask)
                {
                    command = new MinimapChestsCommand();
                    break;
                }
                goto default;

            default: command = new SceneCommand();
                break;
            }

            command.SetCommand(sceneWord);
            command.OffsetFromFile = HeaderOffset;
            cmds.Add(command);
        }