diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 9545c49f9..ba5333b1c 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -164,7 +164,7 @@ IF(UNIX) ENDIF() IF(UNIX) - SET(PROJECT_LIBS rt ) + SET(PROJECT_LIBS rt dl) ELSE(WIN32) #FIXME: do we really need this? SET(PROJECT_LIBS psapi ${dfhack_SOURCE_DIR}/library/depends/ntdll/ntdll.lib) diff --git a/plugins/mode.cpp b/plugins/mode.cpp index e8ef7fa4a..f318c3853 100644 --- a/plugins/mode.cpp +++ b/plugins/mode.cpp @@ -113,7 +113,7 @@ DFhackCExport command_result mode (Core * c, vector & parameters) printCurrentModes(gm, c->con); if(set) { - if(gm.g_mode == GAMEMODE_NONE || gm.g_type == GAMETYPE_VIEW_LEGENDS || gm.g_type == GAMETYPE_DWARF_RECLAIM) + if( gm.g_mode == GAMEMODE_NONE || gm.g_type == GAMETYPE_VIEW_LEGENDS ) { c->con.printerr("It is not safe to set modes in menus.\n"); return CR_FAILURE; @@ -123,6 +123,7 @@ DFhackCExport command_result mode (Core * c, vector & parameters) << "1 = Adventurer Mode" << endl << "2 = Arena Mode" << endl << "3 = Arena, controlling creature" << endl + << "4 = Reclaim Fortress Mode" << endl << "c = cancel/do nothing" << endl; uint32_t select=99; @@ -135,7 +136,7 @@ DFhackCExport command_result mode (Core * c, vector & parameters) const char * start = selected.c_str(); char * end = 0; select = strtol(start, &end, 10); - if(!end || end==start || select > 3) + if(!end || end==start || select > 4) { c->con.printerr("This is not a valid selection.\n"); goto input_again; @@ -159,6 +160,10 @@ DFhackCExport command_result mode (Core * c, vector & parameters) gm.g_mode = GAMEMODE_ADVENTURE; gm.g_type = GAMETYPE_ADVENTURE_ARENA; break; + case 4: + gm.g_mode = GAMEMODE_DWARF; + gm.g_type = GAMETYPE_DWARF_RECLAIM; + break; } c->Suspend(); world->WriteGameMode(gm);