| 722 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 723 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 724 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 725 | < | ofstream BSLlog("BSL.log"); | 
 
 
 
 
 
 
 
 
 | 725 | > |  | 
 
 
 
 
 
 
 
 
 
 
 | 726 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 727 |  | vector<string> BSLfolders; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 728 |  | vector<string> skippedfolders; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 729 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 730 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 731 | < |  | 
 
 
 
 
 
 
 
 
 | 731 | > | ofstream BSLlog("BSL.log"); | 
 
 
 
 
 
 
 
 
 
 
 | 732 |  | for ( directory_iterator dir_itr( "../GameDataFolder/IGMD/" ), end_itr; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 733 |  | dir_itr != end_itr; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 734 |  | ++dir_itr ) { | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 741 |  | for (int i = installedMods.size() - 1; i >= 0; i--) {                                                   //Iterates through the installed mods (backwards :P) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 742 |  | for (unsigned int j = 0; j < globalPackages.size(); ++j) {                              //looking in the global packages | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 743 |  | if (globalPackages[j].modStringName == installedMods[i]) {      //for a mod that has BSL in it | 
 
 
 
 
 
 
 
 
 
 
 | 744 | < | BSLlog << "Testing " << globalPackages[j].modStringName << "\n" | 
 
 
 
 
 
 
 
 
 | 744 | > | /*BSLlog << "Testing " << globalPackages[j].modStringName << "\n" | 
 
 
 
 
 
 
 
 
 
 
 | 745 |  | << "HasBSL: " << globalPackages[j].hasBSL << "\n" | 
 
 
 
 
 
 
 
 
 
 
 | 746 | < | << "HasAddon: " << globalPackages[j].hasAddon << "\n"; | 
 
 
 
 
 
 
 
 
 | 746 | > | << "HasAddon: " << globalPackages[j].hasAddon << "\n";*/ | 
 
 
 
 
 
 
 
 
 
 
 | 747 |  | if(!(globalPackages[j].hasAddon || globalPackages[j].hasBSL)) break; //skip non-BSL | 
 
 
 
 
 
 
 
 
 
 
 | 748 | < | if( exists( "packages/" + globalPackages[j].modStringName + "/BSL" ) ) | 
 
 
 
 
 
 
 
 
 | 748 | > | if( exists( "packages/" + globalPackages[j].modStringName + "/BSL/" ) ) { | 
 
 
 
 
 
 
 
 
 
 
 | 749 |  | copyBSL("packages/" + globalPackages[j].modStringName + "/BSL", BSLfolders, globalPackages[j] ); | 
 
 
 
 
 
 
 
 | 750 | + | BSLlog << "Copied " <<  globalPackages[j].modStringName << "!\n"; | 
 
 
 
 
 
 
 
 | 751 | + | } | 
 
 
 
 
 
 
 
 | 752 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 753 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 754 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 755 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 756 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 757 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 758 |  | ModPackage emptyPackage; | 
 
 
 
 
 
 
 
 | 759 | + | emptyPackage.modStringName = "VanillaBSL"; | 
 
 
 
 
 
 
 
 | 760 | + | emptyPackage.hasBSL = 1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 761 |  | copyBSL("packages/VanillaBSL/IGMD", BSLfolders, emptyPackage); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 762 |  | BSLlog.close(); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 763 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 768 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 769 |  | string finallyDone = "Done! You can now play Oni."; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 770 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 771 | < | a | 
 
 
 
 
 
 
 
 
 | 771 | > |  | 
 
 
 
 
 
 
 
 
 
 
 | 772 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 773 |  | setStatusArea(finallyDone); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 774 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 802 |  | busy = 0; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 803 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 804 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 805 | < | void copyBSL(string copypath, vector<string> BSLfolders, ModPackage pkg) { | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 805 | > | void copyBSL(string copypath, vector<string>& BSLfolders, ModPackage pkg) { | 
 
 
 
 
 | 806 | > |  | 
 
 
 
 
 | 807 | > | ofstream BSLlog("BSL2.log", ios::app ); | 
 
 
 
 
 | 808 | > |  | 
 
 
 
 
 
 
 
 
 
 
 | 809 |  | try { | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 810 |  | for ( directory_iterator dir_itr( copypath ), end_itr; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 811 |  | dir_itr != end_itr; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 812 |  | ++dir_itr ) { | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 813 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 814 |  | if ( is_directory( dir_itr->path() ) && dir_itr->path().string() != ".svn" ) { | 
 
 
 
 
 
 
 
 | 815 | + | BSLlog << "Testing " << dir_itr->path().string() << " HasBSL: " << pkg.hasBSL << " HasAddon: " << pkg.hasAddon << "\n"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 816 |  | int skip_folder = 0; | 
 
 
 
 
 
 
 
 | 817 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 818 |  | for(unsigned int k = 0; k < BSLfolders.size(); k++)             {//iterate through already found BSL folders | 
 
 
 
 
 
 
 
 | 819 | + | BSLlog << "testing " << dir_itr->path().filename() << " vs " << BSLfolders[k] << "\n"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 820 |  | if(dir_itr->path().filename() == BSLfolders[k]) { | 
 
 
 
 
 
 
 
 
 
 
 | 821 | < | skip_folder = 1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 821 | > | skip_folder = 1; | 
 
 
 
 
 | 822 | > | BSLlog << "skipping " << BSLfolders[k] << " in " << pkg.modStringName << "\n"; | 
 
 
 
 
 
 
 
 
 
 
 | 823 |  | break; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 824 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 825 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 827 |  | remove_all( "../GameDataFolder/IGMD/" + dir_itr->path().filename() ); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 828 |  | Sleep(100); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 829 |  | create_directory( "../GameDataFolder/IGMD/" + dir_itr->path().filename()); | 
 
 
 
 
 
 
 
 
 
 
 | 830 | < |  | 
 
 
 
 
 
 
 
 
 | 830 | > | BSLlog << "Copied " << dir_itr->path().string() << " in " << pkg.modStringName << "!\n"; | 
 
 
 
 
 
 
 
 
 
 
 | 831 |  | for ( directory_iterator bsl_itr( dir_itr->path() ); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 832 |  | bsl_itr != end_itr; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 833 |  | bsl_itr++ ) { | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 835 |  | copy_file(bsl_itr->path(),  "../GameDataFolder/IGMD/" + dir_itr->path().filename() + "/" + bsl_itr->path().filename()); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 836 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 837 |  | } | 
 
 
 
 
 
 
 
 
 
 
 | 838 | < | BSLfolders.push_back( dir_itr->path().filename() ); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 838 | > | BSLfolders.push_back( dir_itr->path().filename() ); //add back check for addon | 
 
 
 
 
 | 839 | > | BSLlog << "Pushing " << dir_itr->path().filename() << "\n" ; | 
 
 
 
 
 
 
 
 
 
 
 | 840 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 841 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 842 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 846 |  | setStatusArea("Warning, exception " + (string)ex.what() + "!"); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 847 |  | while(1) Sleep(1000); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 848 |  | } | 
 
 
 
 
 
 
 
 
 
 
 | 849 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 849 | > | BSLlog.close(); | 
 
 
 
 
 | 850 | > |  | 
 
 
 
 
 
 
 
 
 
 
 | 851 |  | } | 
 
 
 
 
 
 
 
 
 
 
 | 852 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 853 | < |  | 
 
 
 
 
 
 
 
 
 | 852 | > |  | 
 
 
 
 
 | 853 | > |  | 
 
 
 
 
 
 
 
 
 
 
 | 854 |  | void writeInstalledMods(vector<string> installedMods) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 855 |  | { | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 856 |  |  |