Ignore:
Timestamp:
Mar 27, 2010, 3:17:32 PM (15 years ago)
Author:
gumby
Message:

More improvements.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • AE/Installer/trunk/source/installer.cpp

    r504 r505  
    350350                        if (!file.fail())
    351351                        {
    352                                 package = fileToModPackage(file);
     352                                package = fileToModPackage(file, dir_itr->path().filename());
    353353                                if (package.installerVersion.compare(INSTALLER_VERSION) < 1)  // if mod requires newer version of the Installer, we won't add it to the list
    354354                                {
     
    374374}
    375375
    376 ModPackage fileToModPackage(fstream &file)
     376ModPackage fileToModPackage(fstream &file, string modName)
    377377{
    378378        /*
     
    384384         slower than reading a variable.
    385385         */
     386       
    386387        ModPackage package;
    387388        string line;
    388         static string AEInstallVersion = "AEInstallVersion"; // used for comparing to the current token...
    389         static string NameOfMod = "NameOfMod";
    390         static string ARROW = "->";
    391         static string ModString = "ModString";
    392         static string Platform = "Platform";
    393         static string HasOnis = "HasOnis";
    394         static string HasDeltas = "HasDeltas";
    395         static string HasBSL = "HasBSL";
    396         static string HasDats = "HasDats";
    397         static string IsEngine = "IsEngine";
    398         static string Readme = "Readme";
    399         static string GlobalNeeded = "GlobalNeeded";
    400         static string Category = "Category";
    401         static string Creator = "Creator";
     389        const string AEInstallVersion = "AEInstallVersion"; // used for comparing to the current token...
     390        const string NameOfMod = "NameOfMod";
     391        const string ARROW = "->";
     392        const string ModString = "ModString";
     393        const string ModVersion = "ModVersion";
     394        const string Platform = "Platform";
     395        const string HasOnis = "HasOnis";
     396        const string HasDeltas = "HasDeltas";
     397        const string HasBSL = "HasBSL";
     398        const string HasDats = "HasDats";
     399        const string IsEngine = "IsEngine";
     400        const string Readme = "Readme";
     401        const string GlobalNeeded = "GlobalNeeded";
     402        const string Category = "Category";
     403        const string Creator = "Creator";
     404        package.modStringName = modName;
    402405        while (!file.eof())
    403406        {
     
    426429                        {
    427430                                iter++; iter++;
    428                                 package.modStringName = *iter;
     431                                //package.modStringName = *iter;
    429432                                iter++;
     433                                package.modStringVersion = atof((*iter).c_str());
     434                        }
     435                        else if (!ModString.compare(*iter))
     436                        {
     437                                iter++; iter++;
    430438                                package.modStringVersion = atof((*iter).c_str());
    431439                        }
     
    443451                        {
    444452                                iter++; iter++;
    445                                 if (toupper((*iter)[0]) == 'Y' && toupper((*iter)[1]) == 'E' && toupper((*iter)[2]) == 'S') package.hasBSL = true;
     453                                if (boost::iequals(*iter, "Yes")) package.hasBSL = true;
    446454                                else if (boost::iequals(*iter, "Addon")) package.hasAddon = true;
    447455                        }
     
    976984                        if (!file.fail())
    977985                        {
    978                                 ModPackage updatePackage = fileToModPackage(file);
     986                                ModPackage updatePackage = fileToModPackage(file, install_iter->path().filename());
    979987                        }
    980988                        else
     
    988996                        if (!file.fail())
    989997                        {
    990                                 ModPackage installedPackage = fileToModPackage(file);
     998                                ModPackage installedPackage = fileToModPackage(file, install_iter->path().filename());
    991999                        }
    9921000                        else
     
    12701278        try{
    12711279                directory_iterator end;
    1272                 for ( directory_iterator install_iter( pathToUpdate );
    1273                         install_iter != end;
    1274                         ++install_iter )
     1280                for ( directory_iterator update_iter( pathToUpdate );
     1281                        update_iter != end;
     1282                        ++update_iter )
    12751283                {
    12761284
    12771285                        ModPackage installedPackage, updatePackage;
    1278                         string updateStr = install_iter->path().string() + "/Mod_Info.cfg";
    1279                         if ( !boost::iequals(install_iter->path().filename(),"Edition")
    1280                                 && !boost::iequals(install_iter->path().filename(),"Edition-patch")
    1281                                 && is_directory( install_iter->path() )
    1282                                 && exists( install_iter->path().string() + "/Mod_Info.cfg" ) )
     1286                        string updateStr = update_iter->path().string() + "/Mod_Info.cfg";
     1287                        if ( !boost::iequals(update_iter->path().filename(),"Edition")
     1288                                && !boost::iequals(update_iter->path().filename(),"Edition-patch")
     1289                                && is_directory( update_iter->path() )
     1290                                && exists( update_iter->path().string() + "/Mod_Info.cfg" ) )
    12831291                        {
    12841292                                bool update = 0;
    12851293                                fstream file;
    1286                                 file.open( (install_iter->path().string() + "/Mod_Info.cfg").c_str()); 
     1294                                file.open( (update_iter->path().string() + "/Mod_Info.cfg").c_str());   
    12871295                                if (!file.fail())
    12881296                                {
    1289                                         updatePackage = fileToModPackage(file);
     1297                                        updatePackage = fileToModPackage(file, update_iter->path().filename());
    12901298                                }
    12911299                                else
     
    12941302                                        continue;
    12951303                                }
    1296                                 if(!exists(strPathToPackages + "/" + install_iter->path().filename() + "/Mod_Info.cfg"));
     1304                                if(!exists(strPathToPackages + "/" + update_iter->path().filename() + "/Mod_Info.cfg"));
    12971305                                file.close();
    12981306                                file.clear();
    1299                                 file.open((strPathToPackages + "/" + install_iter->path().filename() + "/Mod_Info.cfg").c_str());
     1307                                file.open((strPathToPackages + "/" + update_iter->path().filename() + "/Mod_Info.cfg").c_str());
    13001308                                if (!file.fail())
    13011309                                {
    1302                                         installedPackage = fileToModPackage(file);
     1310                                        installedPackage = fileToModPackage(file, update_iter->path().filename());
    13031311                                        file.close();
    13041312                                        if(updatePackage.modStringVersion > installedPackage.modStringVersion) {
Note: See TracChangeset for help on using the changeset viewer.