Example #1
0
    public void LoadFile()
    {
        GetArrays();
        loadedFile = true;

        PageController pageController = GameObject.FindObjectOfType <PageController>();

        pageController.ResetForm();
        BinaryFormatter bf = new BinaryFormatter();

        loadedFilePath = dataPath + "/" + loadName + ".dat";
        FileStream file = File.Open(loadedFilePath, FileMode.Open);
        // loadedFilePath = dataPath + "/" + loadName + ".dat";
        // Debug.Log(file.Name);
        SaveData data = (SaveData)bf.Deserialize(file);

        // Debug.Log(data.inputText.Length + " " + data.checkboxstate.Length);
        file.Close();


        try
        {
            GameObject.Find("PageController").GetComponent <PageController>().isEmergency = data.isEmergency;

            for (int i = 0; i < inputfields.Length; i++)
            {
                //   UnityEngine.Debug.Log("here 2");
                foreach (InputFieldID thisInputfield in inputfields)
                {
                    if (thisInputfield.objID == i + 1 && data.inputText[i] != null)
                    {
                        //Debug.Log("Loaded text for input field  " + i + " = " + data.inputText[i]);
                        thisInputfield.SetText(data.inputText[i]);
                    }
                }
            }
            for (int i = 0; i < checkBoxes.Length; i++)
            {
                //  UnityEngine.Debug.Log("here 3");
                foreach (CheckBoxID thisCheckBox in checkBoxes)
                {
                    if (thisCheckBox.objID == i + 1)
                    {
                        thisCheckBox.gameObject.GetComponent <Toggle>().isOn = data.checkboxstate[i];
                        // Debug.Log("checkBoxes" + data.checkboxstate[i]);
                    }
                }
            }
            for (int i = 0; i < data.sigbytes.Length; i++)
            {
                foreach (SignatureID thisSig in sigimages)
                {
                    if (thisSig.objID == i + 1 && data.sigbytes[i] != null)
                    {
                        thisSig.ConvertStringToTexture(data.sigbytes[i]);
                    }
                }
            }
            for (int i = 0; i < data.dropdownvalue.Length; i++) // serialize all the dropdown selected value as int
            {
                foreach (DropdownID thisDropdown in dropdowns)
                {
                    if (thisDropdown.objID == i + 1)
                    {
                        //  thisDropdown.GetComponent<Dropdown>().value = data.dropdownvalue[i];
                        Dropdown myDropdown = thisDropdown.GetComponent <Dropdown>();
                        //myDropdown.RefreshShownValue();
                        Dropdown.OptionData[] theseOptions = myDropdown.options.ToArray();
                        if (data.dropdownString[i] != null)
                        {
                            for (int j = 0; j < theseOptions.Length; j++)
                            {
                                string s = theseOptions[j].text;
                                if (s == data.dropdownString[i])
                                {
                                    myDropdown.value = j;
                                    if (myDropdown.CompareTag("SWP"))
                                    {
                                        SWPController mySWP = myDropdown.GetComponent <SWPController>();
                                        if (j > 0)
                                        {
                                            mySWP.myButton.gameObject.SetActive(true);
                                        }
                                    }
                                }
                            }
                            // myDropdown.captionText.text = data.dropdownString[i].ToString();

                            //  Debug.Log(data.dropdownString[i]);
                        }
                    }
                }
            }
            for (int i = 0; i < data.timestring.Length; i++) // serialize all the dropdown selected value as int
            {
                foreach (TimeID thisTime in times)
                {
                    if (thisTime.objID == i + 1)
                    {
                        if (data.timestring[i] == null && thisTime.CompareTag("MainTime"))
                        {
                            //  Debug.Log("Main Time null called" + thisTime.name);
                            thisTime.GetComponent <GetTime>().SetTime();
                            thisTime.GetComponent <GetTime>().myText.text = System.DateTime.Now.ToString("HH:mm");
                        }
                        if (data.timestring[i] == null && !thisTime.CompareTag("MainTime"))
                        {
                            thisTime.GetComponent <GetTime>().myText.text = "00:00";
                        }
                        if (data.timestring[i] != null)
                        {
                            thisTime.GetComponent <GetTime>().myText.text = data.timestring[i];
                        }
                    }
                }
            }
            for (int i = 0; i < date.Length; i++)
            {
                foreach (GetDate thisDate in date)
                {
                    if (thisDate.objID == i + 1 && data.datestring[i] != null)
                    {
                        thisDate.GetComponent <Text>().text = data.datestring[i];
                    }
                }
            }
            if (data.timeStampString != null)
            {
                for (int i = 0; i < data.timeStampString.Length; i++)
                {
                    foreach (TimeStampID thisStamp in timeStamps)
                    {
                        if (thisStamp.objID == i + 1 && data.timeStampString[i] != null)
                        {
                            UnityEngine.Debug.Log("Timestamp #" + thisStamp.objID);
                            thisStamp.GetComponent <Text>().text = data.timeStampString[i];
                        }
                    }
                }
            }


            if (data.trafficLayout != null)
            {
                myLayout[0].ConvertStringToTexture(data.trafficLayout); // there is only one layout element
            }
            //date[0].GetComponent<Text>().text = data.datestring;
        }
        catch (Exception e) {
            UnityEngine.Debug.Log("Caught an error type " + e);
            errorPanel.SetActive(true);
            return;
        }
        if (data.isEmergency)
        {
            pageController.CreateEmergencyPlan();
        }
        if (!data.isEmergency)
        {
            pageController.ResetForPlanLoad();
            pageController.CreateNewJobPLan();
            if (data.isCSEP == true)
            {
                pageController.isCSEP = data.isCSEP;
                foreach (CSEPNumberID thisNum in CSEPNUm)
                {
                    if (thisNum.ObjID == 0)
                    {
                        thisNum.GetComponent <Text>().text = data.CSEPNumber;
                    }
                }
                pageController.viewCSEPButton.GetComponentInChildren <Text>().text = "View CSEP # " + data.CSEPNumber;
                //Debug.Log("View button 1 should be " + data.CSEPNumber);
            }


            if (data.isCSEP2)
            {
                pageController.isCSEP2 = data.isCSEP2;
                foreach (CSEPNumberID thisNum in CSEPNUm)
                {
                    if (thisNum.ObjID == 1)
                    {
                        thisNum.GetComponent <Text>().text = data.CSEP2Number;
                    }
                }

                pageController.viewCSEP2Button.GetComponentInChildren <Text>().text = "View CSEP # " + data.CSEP2Number;
                //Debug.Log("View button 2 should be " + data.CSEP2Number);
            }
            pageController.LoadPlanWithCSEP();
        }



        loadPanel.SetActive(false);
        KillArrays();
        ContinuousSaveController.continuousSaveActive = true;
    }