void MainWindow::on_OpenFile_triggered() { //Check if data configs are valid if( configs.check() ) { LogCritical(QString("Error! *.INI configs not loaded")); QMessageBox::warning(this, tr("Configuration is loaded with errors"), tr("Editor cannot open files:\nConfiguration package is loaded with errors.").arg(ConfStatus::configPath)); //Show configuration status window on_actionCurConfig_triggered(); return; } QString fileName_DATA = QFileDialog::getOpenFileName(this, trUtf8("Open file"),GlobalSettings::openPath, QString("All supported formats (*.lvlx *.wldx *.lvl *.wld npc-*.txt *.sav);;" "All SMBX files (*.lvl *.wld npc-*.txt);;" "All PGE files (*.lvlx *.wldx npc-*.txt);;" "SMBX Level (*.lvl);;" "PGE Level (*.lvlx);;" "SMBX World (*.wld);;" "PGE World (*.wldx);;" "SMBX NPC Config (npc-*.txt);;" "SMBX Game Save file (*.sav);;" "All Files (*.*)"),0); if(fileName_DATA==NULL) return; OpenFile(fileName_DATA); }
TEST(Empty, Init) { LogInfo("%s", "This is a test!"); LogWarning("%s", "This is a Warning"); LogError("%s", "This is a Error"); LogCritical("%s", "This is a Critical"); LogDebug("%s", "This is a Debug"); }
int main() { LogCritical("Hello World!\n"); LogError("Hello World!\n"); LogWarn("Hello World!\n"); LogPrompt("Hello World!\n"); return 0; }
cClient::cClient(int so) { if (so < 0 || so > MAXCLIENT) { char tmp[50]; sprintf(tmp,"Bad socket # <%d>",so); LogCritical(tmp); } else socket=so; }
void MainWindow::setMusic(bool checked) { checked = ui->actionPlayMusic->isChecked(); if( configs.check() ) { LogCritical(QString("Error! *.INI Configs for music not loaded")); return; } LvlMusPlay::updatePlayerState(checked); }
bool cChar::canPickUp(cItem* pi) { if (!pi) { LogCritical("bad parm"); return false; } if (this->priv2&1) // allmove return true; if ( (pi->isOwnerMovable() || pi->isLockedDown()) && !this->Owns(pi) ) // owner movable or locked down ? return false; tile_st tile; Map->SeekTile(pi->id(), &tile); if ( pi->isGMMovable() || (tile.weight == 255 && !pi->isAllMovable())) return false; return true; }
int CWorldDbmgr::LoadEntitiesOfType(T_VECTOR_OBJECT* p, CDbOper& db) { if(p->size() != 2) { return -1; } const char* pszEntityType = VOBJECT_GET_STR((*p)[0]); uint16_t nBaseappId = VOBJECT_GET_U16((*p)[1]); string strErr; int nRet = db.LoadAllEntitiesOfType(pszEntityType, nBaseappId, strErr); if(nRet != 0) { //load数据失败,退出进程 //todo,置全局退出标记 LogCritical("dbmgr.LoadEntitiesOfType", "err=%d", nRet); exit(-1); return -1; } return 0; }
int CWorldDbmgr::LoadAllAvatars(T_VECTOR_OBJECT* p, CDbOper& db) { if(p->size() != 2) { return -1; } const char* pszEntityType = VOBJECT_GET_STR((*p)[0]); const char* pszIndex = VOBJECT_GET_STR((*p)[1]); string strErr; int nRet = db.LoadAllAvatars(pszEntityType, pszIndex, strErr); if(nRet != 0) { //load数据失败,退出进程 //todo,置全局退出标记 LogCritical("dbmgr.LoadAllAvatar", "err=%d", nRet); exit(-1); return -1; } return 0; }
void MainWindow::OpenFile(QString FilePath, bool addToRecentList) { if(m_isFileReloading) return; m_isFileReloading = true; BoolReseter rst(&m_isFileReloading); Q_UNUSED(rst); if(!m_isAppInited) return; qApp->setActiveWindow(this); //Check if data configs are valid if( configs.check() ) { LogCritical(QString("Error! *.INI configs not loaded")); QMessageBox::warning(this, tr("Configuration is loaded with errors"), tr("Cannot open file:\n" "Configuration package loaded with errors.") .arg(ConfStatus::configPath)); //Show configuration status window on_actionCurConfig_triggered(); return; } QMdiSubWindow *newSubWin = NULL; QMdiSubWindow *existing = findOpenedFileWin(FilePath); if (existing) { ui->centralWidget->setActiveSubWindow(existing); return; } QFile file(FilePath); if (!file.open(QIODevice::ReadOnly)) { QMessageBox::critical(this, tr("File open error"), tr("Can't open the file: %1").arg(file.errorString()), QMessageBox::Ok); return; } QFileInfo in_1(FilePath); GlobalSettings::openPath = in_1.absoluteDir().absolutePath(); if((in_1.suffix().toLower() == "lvl")||(in_1.suffix().toLower() == "lvlx")) { LevelData FileData; LogDebug("> parsing level file format"); if( !FileFormats::OpenLevelFile(FilePath, FileData) ) { formatErrorMsgBox(FilePath, FileData.meta.ERROR_info, FileData.meta.ERROR_linenum, FileData.meta.ERROR_linedata); return; } LogDebug("File was read!"); FileData.meta.filename = util::getBaseFilename(in_1.fileName()); FileData.meta.path = in_1.absoluteDir().absolutePath(); FileData.playmusic = GlobalSettings::autoPlayMusic; file.close(); LogDebug("Creating of sub-window"); LevelEdit *child = createLvlChild(&newSubWin); if ( child->loadFile(FilePath, FileData, configs, GlobalSettings::LvlOpts) ) { child->show(); updateMenus(newSubWin, true); child->updateGeometry(); child->ResetPosition(); dock_LvlItemBox->setLvlItemBoxes(false, false); statusBar()->showMessage(tr("Level file loaded"), 2000); SetCurrentLevelSection(0); dock_LvlWarpProps->init(); dock_LvlLayers->setLayersBox(); if(GlobalSettings::autoPlayMusic) ui->actionPlayMusic->setChecked(true); on_actionPlayMusic_triggered(ui->actionPlayMusic->isChecked()); } else { LogDebug(">>File loading aborted"); //child->show(); child->LvlData.meta.modified = false; newSubWin->close(); LogDebug(">>Windows closed"); } } else if((in_1.suffix().toLower() == "wld")||(in_1.suffix().toLower() == "wldx")) { WorldData FileData; if( !FileFormats::OpenWorldFile( FilePath, FileData ) ) { formatErrorMsgBox(FilePath, FileData.meta.ERROR_info, FileData.meta.ERROR_linenum, FileData.meta.ERROR_linedata); return; } file.close(); WorldEdit *child = createWldChild(&newSubWin); if ( child->loadFile(FilePath, FileData, configs, GlobalSettings::LvlOpts) ) { child->show(); updateMenus(newSubWin, true); child->updateGeometry(); child->ResetPosition(); dock_WldItemBox->setWldItemBoxes(false, false); dock_WldSettingsBox->setCurrentWorldSettings(); if(FileData.HubStyledWorld) { dock_WldSettingsBox->setVisible(true); dock_WldSettingsBox->raise(); } statusBar()->showMessage(tr("World map file loaded"), 2000); } else { LogDebug(">>File loading aborted"); child->close(); newSubWin->close(); LogDebug(">>Windows closed"); } } else if(in_1.suffix().toLower() == "txt") { NPCConfigFile FileData; if( !FileFormats::ReadNpcTXTFileF(FilePath, FileData) ) { QMessageBox::critical(this, QObject::tr("File open error"), tr("Can't read the file"), QMessageBox::Ok); return; } if( !FileData.unknownLines.isEmpty() ) { QMessageBox::warning(this, QObject::tr("Unknown values are presented"), QObject::tr("Your file have an unknown values which will be removed\n" " when you will save file") + QString("\n====================================\n" "%1").arg(FileData.unknownLines), QMessageBox::Ok); } NpcEdit *child = createNPCChild(&newSubWin); if (child->loadFile(FilePath, FileData)) { statusBar()->showMessage(tr("NPC Config loaded"), 2000); child->show(); updateMenus(newSubWin, true); } else { child->close(); newSubWin->close(); } } else if(in_1.suffix().toLower() == "sav") { GamesaveData FileData; QString statistics; if(!FileFormats::ReadSMBX64SavFileF( FilePath, FileData)) { formatErrorMsgBox( FilePath, FileData.meta.ERROR_info, FileData.meta.ERROR_linenum, FileData.meta.ERROR_linedata ); return; } statistics+= QString("SMBX Game Save file version %1\n\n").arg(FileData.meta.RecentFormatVersion); if(FileData.gameCompleted) statistics+= " ====This game was completed====\n\n"; statistics+= QString("Lives: %1, Coins:%2, ").arg(FileData.lives).arg(FileData.coins); statistics+= QString("Total stars: %1, Gotten stars: %2\n") .arg(FileData.totalStars) .arg(FileData.gottenStars.size()); statistics+= QString("Position X=%1, Y=%2\n") .arg(FileData.worldPosX) .arg(FileData.worldPosY); if(FileData.musicID>0) { long item=configs.getMusWldI(FileData.musicID); if(item>=0) { statistics+= QString("Current music: %1\n\n").arg(configs.main_music_wld[item].name); } } statistics += "\n===========Players:============\n"; for(int i=0; i<FileData.characterStates.size();i++) { if(i<configs.main_characters.size()) statistics += QString("%1:\n").arg(configs.main_characters[i].name); else statistics += QString("<unknown character>:\n"); statistics += QString("Health: %1, ").arg(FileData.characterStates[i].health); statistics += QString("Power-UP: %1, ").arg(FileData.characterStates[i].state); switch(FileData.characterStates[i].mountType) { case 0: break; case 1: statistics += QString("Mounted vehicle: Shoe - "); switch(FileData.characterStates[i].mountID) { case 1: statistics += QString("Kuribo's (green)");break; case 2: statistics += QString("Podoboo's (red)");break; case 3: statistics += QString("Lakitu's (blue)");break; default: statistics += QString("of God Power :D");break; } break; case 3: statistics += QString("Mounted vehicle: Yoshi");break; default: statistics += QString("Mounted vehicle: <unknown>");break; } if( (FileData.characterStates[i].itemID>0) && configs.main_npc.contains(FileData.characterStates[i].itemID) ) { statistics += QString("%2Has item: %1") .arg(configs.main_npc[FileData.characterStates[i].itemID].setup.name) .arg(FileData.characterStates[i].mountType > 0 ? ", ":""); } if(i<FileData.characterStates.size()-1) statistics += "\n----------------------------\n"; } statistics += "\n=========================\n"; if( !FileData.meta.ReadFileValid ) return; QMessageBox::information(this, tr("Game save statistics"), statistics, QMessageBox::Ok); } else { QMessageBox::warning(this, tr("Bad file"), tr("This file have unknown extension"), QMessageBox::Ok); return; } // Add to recent fileList if(addToRecentList){ AddToRecentFiles(FilePath); SyncRecentFiles(); } }
static void close_state(FILE *S) { if(fclose(S) != 0) LogCritical("%s: Cannot close the monit state file '%s' -- %s\n", prog, Run.statefile, STRERROR); }
int main(int argc, char **argv) { std::string LocSocket = "/tmp/ipdupdetect"; std::unique_ptr<PIDFile> PidFile; std::string LocPidFile = ""; const char *opts = "hdp:"; int longindex = 0; int c = 0; int debug = 0; struct option loptions[] { {"help", 0, 0, 'h'}, {"pid", 1, 0, 'p'}, {"debug", 0, 0, 'd'}, {0, 0, 0, 0} }; while( (c = getopt_long(argc, argv, opts, loptions, &longindex)) >= 0) { switch(c) { case 'd': debug = 1; break; case 'h': print_help(stdout, argv[0]); exit(EXIT_SUCCESS); break; case 'p': LocPidFile = optarg; break; default: break; } } //Add Logging if (isatty(fileno(stdout)) == 1) { std::shared_ptr<ILogger> tmp = std::make_shared<LogStdoutColor>(); LogManager::Add(tmp); } else { std::shared_ptr<ILogger> tmp = std::make_shared<LogStdout>(); LogManager::Add(tmp); } if (debug) { LogManager::SetLevel(LOGGER_DEBUG); } else { LogManager::SetLevel(LOGGER_INFO); } if (LocPidFile != "") { PidFile.reset(new PIDFile(LocPidFile)); if (PidFile->Create() == false) { LogCritical("Cannot Create PID file '%s'", LocPidFile.c_str()); exit(EXIT_FAILURE); } LogInfo("Created PID file '%s'", LocPidFile.c_str()); } SigHandler SHandler; SignalHandler Signals = SignalHandler(&SHandler); Signals.Block(); do { ServerManager *SrvManager = NULL; MonitorManager MManager; Service *Srv = new Service(&MManager); //Bind instance of MonitorManager to the ServiceProxy struct timespec timeout = {60, 0}; //Timeout to reprocess interface list ScopedLock lock(&ExitLock); SHandler.SetMonitorManager(&MManager); //Bind MonitorManager to signal handler proxy ServerUnixPolled Unix(LocSocket); //Create a suitable socket SrvManager = new ServerManager(Srv); //Create a new server instance SrvManager->ServerAdd(&Unix); //Bind our Service proxy to the socket instance Signals.UnBlock(); while(DoExit == false) { MManager.Scan(); MManager.Purge(); ExitLock.Wait(&timeout); } lock.Unlock(); //Required to prevent hang in signals SrvManager->ServerRemove(&Unix); delete Srv; delete SrvManager; Signals.Block(); SHandler.SetMonitorManager(NULL); Signals.UnBlock(); } while(0); return 0; }