Example #1
0
        //Format selected save
        private void formatSave(ImageList iconList, ListView cardList, int pos)
        {
            ps1card _memCard = null;

            switch (pos)
            {
            case 0:
                _memCard = _memCardLeft;
                break;

            case 1:
                _memCard = _memCardRight;
                break;
            }
            //Check if there are any cards available
            if (_memCard != null)
            {
                if (cardList.SelectedIndices.Count == 0)
                {
                    return;
                }

                int slotNumber = cardList.SelectedIndices[0];

                //Check the save type
                switch (_memCard.saveType[slotNumber])
                {
                default:        //Slot is either initial, deleted initial or corrupted so it can be safetly formatted
                    if (DialogResult.Yes == FlexibleMessageBox.Show("Formatted slots cannot be restored.\nDo you want to proceed with this operation?", "Removing...", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                    {
                        _memCard.formatSave(slotNumber);
                        refreshListView(iconList, cardList, _memCard);
                    }
                    break;

                case 2:
                case 3:
                case 5:
                case 6:
                    FlexibleMessageBox.Show("The selected slot is linked. Select the initial save slot to proceed.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    break;
                }
            }
        }
Example #2
0
        private void btGeneSearch_Click(object sender, EventArgs e)
        {
            if (null != slLogger)
            {
                slLogger.Trace(">> Search Game Click");
            }
            String s = tbGeneSearchText.Text.Trim().ToUpper();

            lbGeneBigData.Items.Clear();
            lbGeneBigData.DisplayMember = "DisplayTitle";
            tbHiddenLink.Text           = "";
            btScraper.Enabled           = false;
            btScrapeImg.Enabled         = false;
            btViewPage.Enabled          = false;
            btLink.Enabled = false;
            _docHtmlStr    = String.Empty;
            if (dcPs1Games.Count > 0)
            {
                if (s.Length >= 2)
                {
                    foreach (KeyValuePair <string, ClPS1Game> pair in dcPs1Games)
                    {
                        ClPS1Game c1 = pair.Value;
                        if (c1.Title.ToUpper().Contains(s))
                        {
                            lbGeneBigData.Items.Add(c1);
                        }
                    }
                }
                else
                {
                    FlexibleMessageBox.Show("You have to enter at least 2 characters (other than space) to search something.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            else
            {
                FlexibleMessageBox.Show("Error. Gamelist not loaded.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            if (null != slLogger)
            {
                slLogger.Trace("<< Search Game Click");
            }
        }
Example #3
0
        private void btGenerateDB_Click(object sender, EventArgs e)
        {
            List <String> lsFilesOk = new List <string>();
            List <String> lsFilesKo = new List <string>();
            bool          bOkForDB  = false;

            try
            {
                if (0 == m_lcgs.Count)
                {
                    List <ClGameStructure> lcgs  = new List <ClGameStructure>();
                    ClDBManager            cdbm1 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "empty.db");
                    addInListOrAnother(cdbm1.BDone, "empty.db", lsFilesOk, lsFilesKo);
                    bOkForDB = cdbm1.BDone;
                    ClDBManager cdbm = new ClDBManager(m_lcgs, m_sFolderPath, m_bsversion, m_cvh, slLogger);
                    addInListOrAnother(cdbm.BDone, "regional.db", lsFilesOk, lsFilesKo);
                    bOkForDB &= cdbm.BDone;
                }
                else
                {
                    int iInternalGamesCount = 20; // in a variable, in case changes one day
                    int iCurrentIndex       = 0;
                    switch (m_SelectionDBCreation)
                    {
                    case 2:
                    {
                        int iMaxPage           = (int)(nudMaxGamesPerFolder.Value);
                        int iCountPageWanted   = (int)(Math.Ceiling((decimal)((float)(iInternalGamesCount + m_lcgs.Count) / (float)iMaxPage)));
                        int iFinalCountPerPage = (int)(Math.Ceiling((decimal)((float)(iInternalGamesCount + m_lcgs.Count) / (float)iCountPageWanted)));
                        iFinalCountPerPage = Math.Max(iFinalCountPerPage, 20);         // not less than 20
                        for (int i = 0; i < iCountPageWanted; i++)
                        {
                            int iNbGames = iFinalCountPerPage;
                            if (0 == i)
                            {
                                iNbGames -= iInternalGamesCount;
                                if (iNbGames < 0)
                                {
                                    iNbGames = 0;
                                }
                            }
                            List <ClGameStructure> lcgs   = new List <ClGameStructure>();
                            ClDBManager            cdbm20 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "empty.db");
                            addInListOrAnother(cdbm20.BDone, "empty.db", lsFilesOk, lsFilesKo);
                            bOkForDB = cdbm20.BDone;
                            for (int j = iCurrentIndex; j < Math.Min((iCurrentIndex + iNbGames), m_lcgs.Count); j++)
                            {
                                lcgs.Add(m_lcgs[j]);
                            }
                            if (0 == i)
                            {
                                ClDBManager cdbm2 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional.db", iCurrentIndex);
                                addInListOrAnother(cdbm2.BDone, "regional.db", lsFilesOk, lsFilesKo);
                                bOkForDB &= cdbm2.BDone;
                            }
                            else
                            {
                                ClDBManager cdbm2 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional" + i.ToString() + ".db", iCurrentIndex);
                                addInListOrAnother(cdbm2.BDone, "regional" + i.ToString() + ".db", lsFilesOk, lsFilesKo);
                                bOkForDB &= cdbm2.BDone;
                            }
                            iCurrentIndex += iNbGames;
                        }
                    }
                    break;

                    case 3:
                    {
                        int iMaxPage           = (int)(nudMaxGamesPerFolder.Value);
                        int iCountPageWanted   = (int)(Math.Ceiling((decimal)((float)(m_lcgs.Count) / (float)(iMaxPage))));
                        int iFinalCountPerPage = (int)(Math.Ceiling((decimal)((float)(m_lcgs.Count) / (float)(iCountPageWanted))));
                        iFinalCountPerPage = Math.Max(iFinalCountPerPage, 20);         // not less than 20
                        iCountPageWanted++;
                        for (int i = 0; i < iCountPageWanted; i++)
                        {
                            int iNbGames = iFinalCountPerPage;
                            List <ClGameStructure> lcgs = new List <ClGameStructure>();
                            if (0 == i)
                            {
                                ClDBManager cdbm30 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "empty.db");
                                addInListOrAnother(cdbm30.BDone, "empty.db", lsFilesOk, lsFilesKo);
                                bOkForDB = cdbm30.BDone;
                                ClDBManager cdbm31 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional.db");
                                addInListOrAnother(cdbm31.BDone, "regional.db", lsFilesOk, lsFilesKo);
                                bOkForDB &= cdbm31.BDone;
                            }
                            else
                            {
                                for (int j = iCurrentIndex; j < Math.Min((iCurrentIndex + iNbGames), m_lcgs.Count); j++)
                                {
                                    lcgs.Add(m_lcgs[j]);
                                }
                                ClDBManager cdbm3 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional" + i.ToString() + ".db", iCurrentIndex);
                                addInListOrAnother(cdbm3.BDone, "regional" + i.ToString() + ".db", lsFilesOk, lsFilesKo);
                                bOkForDB      &= cdbm3.BDone;
                                iCurrentIndex += iNbGames;
                            }
                        }
                    }
                    break;

                    case 4:
                    {
                        int iMaxPage           = (int)(nudMaxGamesPerFolder.Value);
                        int iCountPageWanted   = (int)(Math.Ceiling((decimal)((float)(m_lcgs.Count) / (float)iMaxPage)));
                        int iFinalCountPerPage = (int)(Math.Ceiling((decimal)((float)(m_lcgs.Count) / (float)iCountPageWanted)));
                        iFinalCountPerPage = Math.Max(iFinalCountPerPage, 20);         // not less than 20
                        for (int i = 0; i < iCountPageWanted; i++)
                        {
                            int iNbGames = iFinalCountPerPage;

                            List <ClGameStructure> lcgs   = new List <ClGameStructure>();
                            ClDBManager            cdbm40 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "empty.db");
                            addInListOrAnother(cdbm40.BDone, "empty.db", lsFilesOk, lsFilesKo);
                            bOkForDB = cdbm40.BDone;
                            for (int j = iCurrentIndex; j < Math.Min((iCurrentIndex + iNbGames), m_lcgs.Count); j++)
                            {
                                lcgs.Add(m_lcgs[j]);
                            }
                            if (0 == i)
                            {
                                ClDBManager cdbm4 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional.db", iCurrentIndex);
                                addInListOrAnother(cdbm4.BDone, "regional.db", lsFilesOk, lsFilesKo);
                                bOkForDB &= cdbm4.BDone;
                            }
                            else
                            {
                                ClDBManager cdbm4 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional" + i.ToString() + ".db", iCurrentIndex);
                                addInListOrAnother(cdbm4.BDone, "regional" + i.ToString() + ".db", lsFilesOk, lsFilesKo);
                                bOkForDB &= cdbm4.BDone;
                            }
                            iCurrentIndex += iNbGames;
                        }
                    }
                    break;

                    case 5:
                    {
                        Form10 f = new Form10(m_lcgs, m_sFolderPath, m_bsversion, m_cvh, slLogger, this);
                        f.ShowDialog();
                    }
                    break;

                    default:     // also case 1:
                    {
                        List <ClGameStructure> lcgs  = new List <ClGameStructure>();
                        ClDBManager            cdbm1 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "empty.db");
                        addInListOrAnother(cdbm1.BDone, "empty.db", lsFilesOk, lsFilesKo);
                        bOkForDB = cdbm1.BDone;
                        ClDBManager cdbm = new ClDBManager(m_lcgs, m_sFolderPath, m_bsversion, m_cvh, slLogger);
                        addInListOrAnother(cdbm.BDone, "regional.db", lsFilesOk, lsFilesKo);
                        bOkForDB &= cdbm.BDone;
                    }
                    break;
                    }
                    if (bOkForDB)
                    {
                        if (m_SelectionDBCreation != 1) // already done if 1
                        {
                            if (Constant.iBLEEMSYNC_V100 == m_bsversion)
                            {
                                // create the second db file
                                ClDBManager.BleemSyncUI_AddDB(m_lcgs, m_sFolderPath, m_cvh, slLogger);
                            }
                            if (Constant.iAUTOBLEEM_V06 == m_bsversion)
                            {
                                // create the files for autobleem in order to prevent a scan at start
                                ClDBManager.AutoBleem_CreateFiles(m_lcgs, m_sFolderPath, m_cvh, slLogger);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                bOkForDB = false;
                slLogger.Fatal(ex.Message);
            }
            m_frmParent.bNeedRecreateDB = !bOkForDB;
            if (!bOkForDB)
            {
                String sMsg = "There is a problem during database creation";
                if (lsFilesKo.Count > 0)
                {
                    sMsg += Environment.NewLine + "---------------" + Environment.NewLine + "Files ko:";
                    foreach (String sFile in lsFilesKo)
                    {
                        sMsg += Environment.NewLine + " -> " + sFile;
                    }
                }
                if (lsFilesOk.Count > 0)
                {
                    sMsg += Environment.NewLine + "---------------" + Environment.NewLine + "Files ok:";
                    foreach (String sFile in lsFilesOk)
                    {
                        sMsg += Environment.NewLine + " -> " + sFile;
                    }
                }
                FlexibleMessageBox.Show(sMsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                String sMsg = "Database regenerated. Now you can properly unplug your usb drive and plug it in your PSC.";
                if (lsFilesOk.Count > 0)
                {
                    sMsg += Environment.NewLine + "---------------" + Environment.NewLine + "Files ok:";
                    foreach (String sFile in lsFilesOk)
                    {
                        sMsg += Environment.NewLine + " -> " + sFile;
                    }
                }
                if (lsFilesKo.Count > 0)
                {
                    sMsg += Environment.NewLine + "---------------" + Environment.NewLine + "Files ko:";
                    foreach (String sFile in lsFilesKo)
                    {
                        sMsg += Environment.NewLine + " -> " + sFile;
                    }
                }
                FlexibleMessageBox.Show(sMsg, "Job done", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Example #4
0
        private void btSaveIni_Click(object sender, EventArgs e)
        {
            if (null != slLogger)
            {
                slLogger.Trace(">> Save Game.ini Click");
            }
            String s1 = ClPbHelper.RemoveQuotes(tbGeneTitle.Text); // have to be not empty
            String s2 = ClPbHelper.RemoveQuotes(tbGeneDiscs.Text); // have to be not empty

            if ((!String.IsNullOrEmpty(s1)) && (!(String.IsNullOrEmpty(s2))))
            {
                String s3   = ClPbHelper.RemoveQuotes(tbGenePublisher.Text);
                String s3_5 = ClPbHelper.RemoveQuotes(tbGeneDeveloper.Text);
                String s4   = ClPbHelper.RemoveQuotes(tbGeneAlphaTitle.Text);
                int    i1   = (int)(nuGenePlayers.Value);
                int    i2   = (int)(nuGeneYear.Value);
                if (!String.IsNullOrEmpty(_currentFilePathIni))
                {
                    String sFileName = _currentFilePathIni;
                    try
                    {
                        Dictionary <String, String> dcTosave = new Dictionary <string, string>();
                        dcTosave.Add("title", s1);
                        dcTosave.Add("discs", s2);
                        dcTosave.Add("publisher", s3);
                        dcTosave.Add("developer", s3_5);
                        dcTosave.Add("alphatitle", s4);
                        dcTosave.Add("players", i1.ToString());
                        dcTosave.Add("year", i2.ToString());
                        if (null != newGame)
                        {
                            dcTosave.Add("automation", newGame.ABautomation);
                            dcTosave.Add("highres", newGame.ABhighres);
                            dcTosave.Add("imagetype", newGame.ABimagetype);
                            dcTosave.Add("memcard", newGame.ABmemcard);
                        }
                        ClPbHelper.SaveGameIni(sFileName, dcTosave, slLogger);

                        _currentFilePathIni        = sFileName;
                        lbCurrentGameIniFile.Text  = _currentFilePathIni;
                        btSaveIni.Enabled          = true;
                        btReloadTitleDiscs.Enabled = true;
                        btIniReload.Enabled        = true;

                        if (null == newGame)
                        {
                            newGame = new ClGameStructure("", true, true);
                        }
                        newGame.IniMissing = false;
                        newGame.Title      = s1;
                        newGame.Discs      = s2;
                        newGame.Publisher  = s3;
                        newGame.Developer  = s3_5;
                        newGame.Alphatitle = s4;
                        try
                        {
                            newGame.Players = i1.ToString();
                        }
                        catch (Exception ex)
                        {
                            //
                        }
                        try
                        {
                            newGame.Year = i2.ToString();
                        }
                        catch (Exception ex)
                        {
                            //
                        }
                    }
                    catch (Exception ex)
                    {
                        if (null != slLogger)
                        {
                            slLogger.Fatal(ex.Message);
                        }
                    }
                }
            }
            else
            {
                FlexibleMessageBox.Show("You have to enter at least Title and Discs to continue...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            if (null != slLogger)
            {
                slLogger.Trace("<< Save Game.ini Click");
            }
        }