- added some new 'predictable' random number generation for use in lua scripts
This commit is contained in:
parent
5cc39e7c53
commit
d25fc14244
|
@ -277,6 +277,10 @@ void ScriptManager::init(World* world, GameCamera *gameCamera, const XmlNode *ro
|
|||
luaScript.registerFunction(getCellTriggeredEventId, "triggeredCellEventId");
|
||||
luaScript.registerFunction(getTimerTriggeredEventId, "triggeredTimerEventId");
|
||||
|
||||
luaScript.registerFunction(setRandomGenInit, "setRandomGenInit");
|
||||
luaScript.registerFunction(getRandomGen, "getRandomGen");
|
||||
luaScript.registerFunction(getWorldFrameCount, "getWorldFrameCount");
|
||||
|
||||
luaScript.registerFunction(getStartLocation, "startLocation");
|
||||
luaScript.registerFunction(getUnitPosition, "unitPosition");
|
||||
luaScript.registerFunction(getUnitFaction, "unitFaction");
|
||||
|
@ -1130,6 +1134,21 @@ int ScriptManager::getTimerTriggeredEventId() {
|
|||
return currentTimerTriggeredEventId;
|
||||
}
|
||||
|
||||
void ScriptManager::setRandomGenInit(int seed) {
|
||||
ScriptManager_STREFLOP_Wrapper streflopWrapper;
|
||||
random.init(seed);
|
||||
}
|
||||
|
||||
int ScriptManager::getRandomGen(int minVal, int maxVal) {
|
||||
ScriptManager_STREFLOP_Wrapper streflopWrapper;
|
||||
return random.randRange(minVal,maxVal);
|
||||
}
|
||||
|
||||
int ScriptManager::getWorldFrameCount() {
|
||||
ScriptManager_STREFLOP_Wrapper streflopWrapper;
|
||||
return world->getFrameCount();
|
||||
}
|
||||
|
||||
bool ScriptManager::getGameWon() {
|
||||
ScriptManager_STREFLOP_Wrapper streflopWrapper;
|
||||
return gameWon;
|
||||
|
@ -1630,6 +1649,24 @@ int ScriptManager::getTimerTriggeredEventId(LuaHandle* luaHandle){
|
|||
return luaArguments.getReturnCount();
|
||||
}
|
||||
|
||||
int ScriptManager::setRandomGenInit(LuaHandle* luaHandle){
|
||||
LuaArguments luaArguments(luaHandle);
|
||||
thisScriptManager->setRandomGenInit(luaArguments.getInt(-1));
|
||||
return luaArguments.getReturnCount();
|
||||
}
|
||||
|
||||
int ScriptManager::getRandomGen(LuaHandle* luaHandle){
|
||||
LuaArguments luaArguments(luaHandle);
|
||||
luaArguments.returnInt(thisScriptManager->getRandomGen(luaArguments.getInt(-2),luaArguments.getInt(-1)));
|
||||
return luaArguments.getReturnCount();
|
||||
}
|
||||
|
||||
int ScriptManager::getWorldFrameCount(LuaHandle* luaHandle){
|
||||
LuaArguments luaArguments(luaHandle);
|
||||
luaArguments.returnInt(thisScriptManager->getWorldFrameCount());
|
||||
return luaArguments.getReturnCount();
|
||||
}
|
||||
|
||||
int ScriptManager::getLastDeadUnitName(LuaHandle* luaHandle){
|
||||
LuaArguments luaArguments(luaHandle);
|
||||
luaArguments.returnString(thisScriptManager->getLastDeadUnitName());
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "game_constants.h"
|
||||
#include <map>
|
||||
#include "xml_parser.h"
|
||||
#include "randomgen.h"
|
||||
#include "leak_dumper.h"
|
||||
|
||||
using std::string;
|
||||
|
@ -30,6 +31,7 @@ using Shared::Graphics::Vec2i;
|
|||
using Shared::Lua::LuaScript;
|
||||
using Shared::Lua::LuaHandle;
|
||||
using Shared::Xml::XmlNode;
|
||||
using Shared::Util::RandomGen;
|
||||
|
||||
namespace Glest{ namespace Game{
|
||||
|
||||
|
@ -176,6 +178,7 @@ private:
|
|||
bool inCellTriggerEvent;
|
||||
std::vector<int> unRegisterCellTriggerEventList;
|
||||
|
||||
RandomGen random;
|
||||
const XmlNode *rootNode;
|
||||
|
||||
private:
|
||||
|
@ -264,6 +267,10 @@ private:
|
|||
int getCellTriggeredEventId();
|
||||
int getTimerTriggeredEventId();
|
||||
|
||||
void setRandomGenInit(int seed);
|
||||
int getRandomGen(int minVal, int maxVal);
|
||||
int getWorldFrameCount();
|
||||
|
||||
bool getAiEnabled(int factionIndex);
|
||||
bool getConsumeEnabled(int factionIndex);
|
||||
|
||||
|
@ -357,6 +364,10 @@ private:
|
|||
static int getCellTriggeredEventId(LuaHandle* luaHandle);
|
||||
static int getTimerTriggeredEventId(LuaHandle* luaHandle);
|
||||
|
||||
static int setRandomGenInit(LuaHandle* luaHandle);
|
||||
static int getRandomGen(LuaHandle* luaHandle);
|
||||
static int getWorldFrameCount(LuaHandle* luaHandle);
|
||||
|
||||
static int setPlayerAsWinner(LuaHandle* luaHandle);
|
||||
static int endGame(LuaHandle* luaHandle);
|
||||
|
||||
|
|
Loading…
Reference in New Issue