void dataconfigs::loadLevelBGO() { unsigned int i; obj_bgo sbgo; unsigned long bgo_total=0; QString bgo_ini = config_dir + "lvl_bgo.ini"; if(!QFile::exists(bgo_ini)) { addError(QString("ERROR LOADING lvl_bgo.ini: file does not exist"), PGE_LogLevel::Critical); return; } QSettings bgoset(bgo_ini, QSettings::IniFormat); bgoset.setIniCodec("UTF-8"); main_bgo.clear(); //Clear old // index_bgo.clear(); bgoset.beginGroup("background-main"); bgo_total = bgoset.value("total", "0").toInt(); total_data +=bgo_total; bgoset.endGroup(); emit progressPartNumber(1); emit progressMax(bgo_total); emit progressValue(0); emit progressTitle(QObject::tr("Loading BGOs...")); ConfStatus::total_bgo = bgo_total; main_bgo.allocateSlots(bgo_total); if(ConfStatus::total_bgo==0) { addError(QString("ERROR LOADING lvl_bgo.ini: number of items not define, or empty config"), PGE_LogLevel::Critical); return; } for(i=1; i<=bgo_total; i++) { emit progressValue(i); if( loadLevelBGO(sbgo, QString("background-"+QString::number(i)), 0, "", &bgoset) ) { sbgo.id = i; main_bgo.storeElement(i, sbgo); } if( bgoset.status() != QSettings::NoError ) { addError(QString("ERROR LOADING lvl_bgo.ini N:%1 (bgo-%2)").arg(bgoset.status()).arg(i), PGE_LogLevel::Critical); } } if((unsigned int)main_bgo.stored()<bgo_total) { addError(QString("Not all BGOs loaded! Total: %1, Loaded: %2").arg(bgo_total).arg(main_bgo.stored())); } }
void dataconfigs::loadRotationTable() { size_t i = 0; obj_rotation_table rTable; QString rtables_ini = config_dir + "rotation_table.ini"; if(!QFile::exists(rtables_ini)) { addError(QString("Rotation tables wasn't load: rotation_table.ini does not exist"), PGE_LogLevel::Warning); return; } IniProcessing rtable_set(rtables_ini); main_rotation_table.clear(); std::vector<std::string> groups = rtable_set.childGroups(); if(groups.size()==0) { addError(QString("ERROR LOADING of rotation_table.ini: number of items not define, or empty config"), PGE_LogLevel::Warning); return; } emit progressPartNumber(12); emit progressMax(static_cast<int>(groups.size())); emit progressValue(0); emit progressTitle(QObject::tr("Loading rotation rules table...")); for(i = 0; i < groups.size(); i++) { emit progressValue(static_cast<int>(i)); if(groups[i]=="main") continue; rtable_set.beginGroup( groups[i] ); { rTable.type = Items::getItemType(rtable_set.value("type", "-1").toQString()); rTable.id = rtable_set.value("id", "0").toInt(); rTable.rotate_left = rtable_set.value("rotate-left", "0").toInt(); rTable.rotate_right = rtable_set.value("rotate-right", "0").toInt(); rTable.flip_h = rtable_set.value("flip-h", "0").toInt(); rTable.flip_v = rtable_set.value("flip-v", "0").toInt(); } rtable_set.endGroup(); if(rTable.type<0) continue; main_rotation_table.push_back(rTable); if(rtable_set.lastError() != IniProcessing::ERR_OK) { addError(QString("ERROR LOADING lvl_bgo.ini N:%1 (bgo-%2)").arg(rtable_set.lastError()).arg(i), PGE_LogLevel::Critical); } } }
void dataconfigs::loadLevelBGO() { unsigned long i; obj_bgo sbgo; unsigned long bgo_total=0; bool useDirectory=false; QString bgo_ini = getFullIniPath("lvl_bgo.ini"); if(bgo_ini.isEmpty()) return; QString nestDir = ""; QSettings setup(bgo_ini, QSettings::IniFormat); setup.setIniCodec("UTF-8"); main_bgo.clear(); //Clear old if(!openSection( &setup, "background-main")) return; bgo_total = setup.value("total", 0).toUInt(); defaultGrid.bgo = setup.value("grid", defaultGrid.bgo).toUInt(); total_data +=bgo_total; nestDir = setup.value("config-dir", "").toString(); if(!nestDir.isEmpty()) { nestDir = config_dir + nestDir; useDirectory = true; } closeSection(&setup); emit progressPartNumber(1); emit progressMax(static_cast<int>(bgo_total)); emit progressValue(0); emit progressTitle(QObject::tr("Loading BGOs...")); ConfStatus::total_bgo = static_cast<long>(bgo_total); main_bgo.allocateSlots(static_cast<int>(bgo_total)); if(ConfStatus::total_bgo==0) { addError(QString("ERROR LOADING lvl_bgo.ini: number of items not define, or empty config"), PGE_LogLevel::Critical); return; } for(i=1; i<=bgo_total; i++) { emit progressValue(static_cast<int>(i)); bool valid=false; if(useDirectory) { valid = loadLevelBGO(sbgo, "background", nullptr, QString("%1/background-%2.ini").arg(nestDir).arg(i)); } else { valid = loadLevelBGO(sbgo, QString("background-%1").arg(i), 0, "", &setup); } /***************Load image*******************/ if(valid) { QString errStr; GraphicsHelps::loadMaskedImage(bgoPath, sbgo.setup.image_n, sbgo.setup.mask_n, sbgo.image, errStr); if(!errStr.isEmpty()) { valid=false; addError(QString("BGO-%1 %2").arg(i).arg(errStr)); } } /***************Load image*end***************/ sbgo.setup.id = i; main_bgo.storeElement(static_cast<int>(i), sbgo, valid); if( setup.status() != QSettings::NoError ) { addError(QString("ERROR LOADING lvl_bgo.ini N:%1 (bgo-%2)").arg(setup.status()).arg(i), PGE_LogLevel::Critical); } } if(static_cast<unsigned long>(main_bgo.stored()) < bgo_total) { addError(QString("Not all BGOs loaded! Total: %1, Loaded: %2").arg(bgo_total).arg(main_bgo.stored())); } }
void dataconfigs::loadTilesets() { main_tilesets.clear(); main_tilesets_grp.clear(); QString tileset_dir = config_dir + "tilesets/"; QString tileset_grp_dir = config_dir + "group_tilesets/"; QStringList filters; if(QDir(tileset_dir).exists()) { emit progressPartNumber(10); emit progressMax(100); emit progressValue(0); emit progressTitle(QObject::tr("Loading Tilesets...")); filters.clear(); filters << "*.tileset.ini"; QDir tilesetDir(tileset_dir); tilesetDir.setSorting(QDir::Name); tilesetDir.setNameFilters(filters); QStringList files = tilesetDir.entryList(filters); emit progressMax(files.size()); for(int i=0;i<files.size(); i++) { emit progressValue(i); SimpleTileset xxx; if(tileset::OpenSimpleTileset(tileset_dir + files[i], xxx)) { main_tilesets.push_back(xxx); } } } if(QDir(tileset_grp_dir).exists()) { emit progressPartNumber(11); emit progressMax(100); emit progressValue(0); emit progressTitle(QObject::tr("Loading Tileset groups...")); filters.clear(); filters << "*.tsgrp.ini"; QDir tilesetDir(tileset_grp_dir); tilesetDir.setSorting(QDir::Name); tilesetDir.setNameFilters(filters); QStringList files = tilesetDir.entryList(filters); emit progressMax(files.size()); for(int i=0;i<files.size(); i++) { emit progressValue(i); SimpleTilesetGroup xxx; if(TilesetGroupEditor::OpenSimpleTilesetGroup(tileset_grp_dir + files[i], xxx)) { main_tilesets_grp.push_back(xxx); } } } }
void dataconfigs::loadLevelBackgrounds() { unsigned int i; obj_BG sbg; unsigned long bg_total=0; bool useDirectory=false; QString bg_ini = getFullIniPath("lvl_bkgrd.ini"); if( bg_ini.isEmpty() ) return; QString nestDir = ""; QSettings setup(bg_ini, QSettings::IniFormat); setup.setIniCodec("UTF-8"); main_bg.clear(); //Clear old if(!openSection(&setup, "background2-main")) return; bg_total = setup.value("total", 0).toUInt(); total_data += bg_total; nestDir = setup.value("config-dir", "").toString(); if(!nestDir.isEmpty()) { nestDir = config_dir + nestDir; useDirectory = true; } closeSection(&setup); emit progressPartNumber(0); emit progressMax(int(bg_total)); emit progressValue(0); emit progressTitle(QObject::tr("Loading Backgrounds...")); ConfStatus::total_bg = long(bg_total); main_bg.allocateSlots(int(bg_total)); if(ConfStatus::total_bg==0) { addError(QString("ERROR LOADING lvl_bkgrd.ini: number of items not define, or empty config"), PGE_LogLevel::Critical); return; } for(i=1; i<=bg_total; i++) { emit progressValue(int(i)); bool valid = false; if(useDirectory) { valid = loadLevelBackground(sbg, "background2", nullptr, QString("%1/background2-%2.ini").arg(nestDir).arg(i)); } else { valid = loadLevelBackground(sbg, QString("background2-%1").arg(i), 0, "", &setup); } sbg.id = i; main_bg.storeElement(int(i), sbg, valid); if( setup.status() != QSettings::NoError ) { addError(QString("ERROR LOADING lvl_bgrnd.ini N:%1 (background2-%2)").arg(setup.status()).arg(i), PGE_LogLevel::Critical); } } }
void dataconfigs::loadLevelBGO() { unsigned long i; obj_bgo sbgo; unsigned long bgo_total = 0; bool useDirectory = false; QString bgo_ini = getFullIniPath("lvl_bgo.ini"); if(bgo_ini.isEmpty()) return; IniProcessing setup(bgo_ini); folderLvlBgo.items.clear(); main_bgo.clear(); //Clear old if(!openSection(&setup, "background-main")) return; { setup.read("total", bgo_total, 0); setup.read("grid", defaultGrid.bgo, defaultGrid.bgo); total_data += bgo_total; setup.read("config-dir", folderLvlBgo.items, ""); setup.read("extra-settings", folderLvlBgo.extraSettings, folderLvlBgo.items); if(!folderLvlBgo.items.isEmpty()) { folderLvlBgo.items = config_dir + folderLvlBgo.items; useDirectory = true; } } closeSection(&setup); emit progressPartNumber(1); emit progressMax(static_cast<int>(bgo_total)); emit progressValue(0); emit progressTitle(QObject::tr("Loading BGOs...")); ConfStatus::total_bgo = static_cast<long>(bgo_total); main_bgo.allocateSlots(static_cast<int>(bgo_total)); if(ConfStatus::total_bgo == 0) { addError(QString("ERROR LOADING lvl_bgo.ini: number of items not define, or empty config"), PGE_LogLevel::Critical); return; } for(i = 1; i <= bgo_total; i++) { emit progressValue(static_cast<int>(i)); bool valid = false; if(useDirectory) valid = loadLevelBGO(sbgo, "background", nullptr, QString("%1/background-%2.ini").arg(folderLvlBgo.items).arg(i)); else valid = loadLevelBGO(sbgo, QString("background-%1").arg(i), 0, "", &setup); /***************Load image*******************/ if(valid) { QString errStr; GraphicsHelps::loadMaskedImage(folderLvlBgo.graphics, sbgo.setup.image_n, sbgo.setup.mask_n, sbgo.image, errStr); if(!errStr.isEmpty()) { valid = false; addError(QString("BGO-%1 %2").arg(i).arg(errStr)); } } /***************Load image*end***************/ sbgo.setup.id = i; main_bgo.storeElement(static_cast<int>(i), sbgo, valid); if(setup.lastError() != IniProcessing::ERR_OK) addError(QString("ERROR LOADING lvl_bgo.ini N:%1 (bgo-%2)").arg(setup.lastError()).arg(i), PGE_LogLevel::Critical); } if(static_cast<unsigned long>(main_bgo.stored()) < bgo_total) addError(QString("Not all BGOs loaded! Total: %1, Loaded: %2").arg(bgo_total).arg(main_bgo.stored())); }