Hidden weather command raw value override

develop
Petr Mrázek 2012-02-22 15:21:29 +01:00
parent 34c9c2d663
commit 8ee27e182a
5 changed files with 17 additions and 6 deletions

@ -44,6 +44,7 @@ distribution.
// C export macros for faking SDL and plugin exports
#ifdef LINUX_BUILD
#define DFhackCExport extern "C" __attribute__ ((visibility("default")))
#define DFhackDataExport __attribute__ ((visibility("default")))
#else
#define DFhackCExport extern "C" __declspec(dllexport)
#endif

@ -189,5 +189,5 @@ namespace DFHack
};
/// You have to have this in every plugin you write - just once. Ideally on top of the main file.
#define DFHACK_PLUGIN(plugin_name) DFhackCExport const char * version = DFHACK_VERSION;\
DFhackCExport const char * name = plugin_name;
#define DFHACK_PLUGIN(plugin_name) DFhackDataExport const char * version = DFHACK_VERSION;\
DFhackDataExport const char * name = plugin_name;

@ -1 +1 @@
Subproject commit 37844f572bb738606672e14c537949418e683aef
Subproject commit d9aa36c9865798fa262ea51628189443d4a2d138

@ -1 +1 @@
Subproject commit d6cb83efb16105e2c9e46df0989354d08309dd7f
Subproject commit 6a2241742561931aa6347c3d72529d976a82ee4d

@ -40,6 +40,7 @@ DFhackCExport command_result plugin_shutdown ( Core * c )
command_result weather (Core * c, vector <string> & parameters)
{
Console & con = c->con;
int val_override = -1;
bool lock = false;
bool unlock = false;
bool snow = false;
@ -58,7 +59,11 @@ command_result weather (Core * c, vector <string> & parameters)
else if(parameters[i] == "unlock")
unlock = true;
else
return CR_WRONG_USAGE;
{
val_override = atoi(parameters[i].c_str());
if(val_override == 0)
return CR_WRONG_USAGE;
}
}
if(lock && unlock)
{
@ -74,7 +79,7 @@ command_result weather (Core * c, vector <string> & parameters)
con << "Rain, snow or clear sky? DECIDE!" << std::endl;
return CR_FAILURE;
}
bool something = lock || unlock || rain || snow || clear;
bool something = lock || unlock || rain || snow || clear || val_override != -1;
CoreSuspender suspend(c);
DFHack::World * w = c->getWorld();
@ -128,6 +133,11 @@ command_result weather (Core * c, vector <string> & parameters)
con << "Suddenly, sunny weather!" << std::endl;
w->SetCurrentWeather(CLEAR);
}
if(val_override != -1)
{
con << "I have no damn idea what this is... " << val_override << std::endl;
w->SetCurrentWeather(val_override);
}
// FIXME: weather lock needs map ID to work reliably... needs to be implemented.
}
return CR_OK;