예제 #1
0
        private void btnLanguage_Click(object sender, EventArgs e)
        {
            language.CurrentID = (sender as Button).Tag as String;

            FileSystem.LocalizationCode = language.CurrentID;
            Burntime.Platform.IO.File file = FileSystem.GetFile(launcher);
            txt = new TextResourceFile(file);

            Text            = txt.Data[0];
            btnSingle.Text  = txt.Data[5];
            btnMulti.Text   = txt.Data[6];
            btnOptions.Text = txt.Data[7];
            btnExit.Text    = txt.Data[8];
            bugReport.Text  = txt.Data[9];

            // set user folder to systems settings.txt
            FileSystem.SetUserFolder("Burntime");

            ConfigFile config = new ConfigFile();

            file = FileSystem.GetFile("system:settings.txt");
            config.Open(file);
            config["game"].Set("language", language.CurrentID);
            file.Close();
            file = FileSystem.CreateFile("user:settings.txt");
            config.Save(file);
            file.Close();
        }
    void TestCreateNewRootKeys()
    {
        // Show root language editor window and get root values
        EditRootLanguageFileWindow           window = EditRootLanguageFileWindow.ShowWindow();
        Dictionary <string, LocalizedObject> dict   = LanguageHandlerEditor.LoadParsedLanguageFile(string.Empty, true);

        // Add any missing TEXT.RSC records
        DaggerfallUnity dfUnity = DaggerfallUnity.Instance;

        if (dfUnity.IsReady)
        {
            TextResourceFile rscFile = new TextResourceFile(dfUnity.Arena2Path, "TEXT.RSC");
            for (int i = 0; i < rscFile.RecordCount; i++)
            {
                TextResourceFile.TextRecord record = rscFile.GetTextRecordByIndex(i);
                string key = RSCNamespacePrefix + record.id.ToString();
                if (!dict.ContainsKey(key))
                {
                    LocalizedObject obj = new LocalizedObject();
                    obj.ObjectType = LocalizedObjectType.STRING;
                    obj.TextValue  = record.text;
                    LanguageDictionaryHelper.AddNewKeyPersistent(dict, key, obj);
                }
            }
        }

        //// Add new root keys and values
        //LocalizedObject obj = new LocalizedObject();
        //obj.ObjectType = LocalizedObjectType.STRING;
        //obj.TextValue = "This is a new text key.";
        //LanguageDictionaryHelper.AddNewKeyPersistent(dict, "NewKey.Test", obj);

        // Set new root values
        window.SetRootValues(dict);
    }
예제 #3
0
        public ClassicMultiplayer(TextResourceFile txt)
        {
            InitializeComponent();

            btnClose.Text = txt.Data[8];
            Text          = txt.Data[25];
            tabControl.TabPages[0].Text = txt.Data[26];
            tabControl.TabPages[1].Text = txt.Data[27];
            lblYourIP.Text = txt.Data[28];

            IPHostEntry ip = Dns.GetHostEntry(Dns.GetHostName());

            IPAddress address = null;

            foreach (IPAddress a in ip.AddressList)
            {
                if (a.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    address = a;
                    break;
                }
            }
            lblIP.Text       = address == null ? "" : address.ToString();
            lblYourName.Text = txt.Data[29];
            lblName.Text     = Dns.GetHostName();

            btnOpen.Text  = txt.Data[30];
            btnStart.Text = txt.Data[32];

            btnOpen.Enabled    = false;
            listPlayer.Enabled = false;
            btnStart.Enabled   = false;
        }
예제 #4
0
        public void AddDB(string filename)
        {
            File file = FileSystem.GetFile(filename + (filename.EndsWith(".txt", StringComparison.InvariantCultureIgnoreCase) ? "" : ".txt"));

            file.Encoding = encoding;
            TextResourceFile db = new TextResourceFile(file);

            txtDB.Add(filename, db);
        }
예제 #5
0
        public ClassicSettings(BurntimePath path, TextResourceFile txt)
        {
            InitializeComponent();

            this.path = path;
            this.txt  = txt;

            // set user folder to systems settings.txt
            FileSystem.SetUserFolder("Burntime");

            ConfigFile config = new ConfigFile();

            Burntime.Platform.IO.File file = FileSystem.GetFile("system:settings.txt");
            config.Open(file);
            lang = config["game"].GetString("language");
            file.Close();

            // set user folder to game specific location
            FileSystem.SetUserFolder("Burntime/Classic");

            file = FileSystem.GetFile(settings);
            config.Open(file);
            file.Close();

            Text                 = txt.Data[0];
            grpSettings.Text     = txt.Data[10];
            lblPresentation.Text = txt.Data[11];
            cmbPresentation.Items.Add(txt.Data[12]);
            cmbPresentation.Items.Add(txt.Data[13]);
            cmbPresentation.Items.Add(txt.Data[14]);
            lblBurntimePath.Text = txt.Data[15];
            btnChoose.Text       = txt.Data[16];
            lblPorted.Text       = txt.Data[17];
            lblMail.Text         = txt.Data[18];
            btnOK.Text           = txt.Data[3];
            btnCancel.Text       = txt.Data[4];

            if (config["system"].GetBool("windowmode"))
            {
                Vector2 res = config["system"].GetVector2("resolution");
                cmbPresentation.SelectedIndex = (res.x == 960 && res.y == 600) ? 2 : 1;
            }
            else
            {
                cmbPresentation.SelectedIndex = 0;
            }


            UpdatePathInfo();

            txtPath.Text = path.Path;
        }
예제 #6
0
        public ClassicLauncher(bool debugMode)
        {
            this.debugMode = debugMode;

            InitializeComponent();

            FileSystem.UseLocalization = false;
            FileSystem.BasePath        = debugMode ? "../" : "";
            FileSystem.AddPackage("system", "system");
            FileSystem.AddPackage("classic", gamepath);
            FileSystem.SetUserFolder("Burntime");

            language = new Language("launcher/");

            ConfigFile config = new ConfigFile();

            Burntime.Platform.IO.File file = FileSystem.GetFile("system:settings.txt");
            config.Open(file);
            language.CurrentID = config["game"].GetString("language");
            file.Close();

            FileSystem.UseLocalization  = true;
            FileSystem.LocalizationCode = language.CurrentID;

            file = FileSystem.GetFile(launcher);
            txt  = new TextResourceFile(new Burntime.Platform.IO.File(file));

            Text            = txt.Data[0];
            btnSingle.Text  = txt.Data[5];
            btnMulti.Text   = txt.Data[6];
            btnOptions.Text = txt.Data[7];
            btnExit.Text    = txt.Data[8];
            bugReport.Text  = txt.Data[9];

            path = new BurntimePath(FileSystem.BasePath + "system");
            btnSingle.Enabled = path.IsValid;
            btnMulti.Enabled  = path.IsValid & enableMulti;

            int buttonSize   = 30;
            int buttonHeight = 19;
            int buttonMargin = 4;
            int buttonTop    = 110;
            int buttonCount  = language.Languages.Length;
            int buttonOffset = (ClientSize.Width - (buttonSize * buttonCount + buttonMargin * (buttonCount - 1))) / 2;


            Button button;

            for (int i = 0; i < buttonCount; i++)
            {
                button        = new Button();
                button.Left   = buttonOffset + i * (buttonSize + buttonMargin);
                button.Top    = buttonTop;
                button.Width  = buttonSize;
                button.Height = buttonHeight;
                button.Tag    = language.Languages[i].ID;
                button.Image  = language.Languages[i].Icon;
                button.Click += new EventHandler(btnLanguage_Click);
                Controls.Add(button);
            }
        }