summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2013-06-02 01:57:03 (GMT)
committer jacob1 <jfu614@gmail.com>2013-06-02 01:57:03 (GMT)
commit8d7ab7f5e27b9b5ba71b4ef13e4cbb9f7e5a4641 (patch)
treed3bf71c04abc24aa014dbc403421d1821a8c96be /src
parentb16524292e2d8c640e0e4e0801d5cb4e512e4707 (diff)
downloadpowder-8d7ab7f5e27b9b5ba71b4ef13e4cbb9f7e5a4641.zip
powder-8d7ab7f5e27b9b5ba71b4ef13e4cbb9f7e5a4641.tar.gz
allow creating WIND lines from lua
Diffstat (limited to 'src')
-rw-r--r--src/cat/LuaScriptInterface.cpp26
-rw-r--r--src/cat/LuaScriptInterface.h1
-rw-r--r--src/client/Client.cpp4
-rw-r--r--src/gui/game/PropertyTool.cpp2
-rw-r--r--src/gui/game/Tool.cpp2
-rw-r--r--src/gui/game/Tool.h2
-rw-r--r--src/simulation/Simulation.h27
7 files changed, 46 insertions, 18 deletions
diff --git a/src/cat/LuaScriptInterface.cpp b/src/cat/LuaScriptInterface.cpp
index 452a14c..cbd8217 100644
--- a/src/cat/LuaScriptInterface.cpp
+++ b/src/cat/LuaScriptInterface.cpp
@@ -506,6 +506,7 @@ void LuaScriptInterface::initSimulationAPI()
lua_pushinteger(l, TOOL_AIR); lua_setfield(l, simulationAPI, "TOOL_AIR");
lua_pushinteger(l, TOOL_PGRV); lua_setfield(l, simulationAPI, "TOOL_PGRV");
lua_pushinteger(l, TOOL_NGRV); lua_setfield(l, simulationAPI, "TOOL_NGRV");
+ lua_pushinteger(l, luacon_sim->tools.size()); lua_setfield(l, simulationAPI, "TOOL_WIND");
lua_pushinteger(l, DECO_DRAW); lua_setfield(l, simulationAPI, "DECO_DRAW");
lua_pushinteger(l, DECO_CLEAR); lua_setfield(l, simulationAPI, "DECO_CLEAR");
lua_pushinteger(l, DECO_ADD); lua_setfield(l, simulationAPI, "DECO_ADD");
@@ -1106,7 +1107,12 @@ int LuaScriptInterface::simulation_toolBrush(lua_State * l)
int tool = luaL_optint(l,5,0);
int brush = luaL_optint(l,6,CIRCLE_BRUSH);
float strength = luaL_optnumber(l,7,1.0f);
- if (tool < 0 || tool >= luacon_sim->tools.size())
+ if (tool == luacon_sim->tools.size())
+ {
+ lua_pushinteger(l, 0);
+ return 1;
+ }
+ else if (tool < 0 || tool >= luacon_sim->tools.size())
return luaL_error(l, "Invalid tool id '%d'", tool);
vector<Brush*> brushList = luacon_model->GetBrushList();
@@ -1132,7 +1138,7 @@ int LuaScriptInterface::simulation_toolLine(lua_State * l)
int tool = luaL_optint(l,7,0);
int brush = luaL_optint(l,8,CIRCLE_BRUSH);
float strength = luaL_optnumber(l,9,1.0f);
- if (tool < 0 || tool >= luacon_sim->tools.size())
+ if (tool < 0 || tool >= luacon_sim->tools.size()+1)
return luaL_error(l, "Invalid tool id '%d'", tool);
vector<Brush*> brushList = luacon_model->GetBrushList();
@@ -1141,7 +1147,14 @@ int LuaScriptInterface::simulation_toolLine(lua_State * l)
ui::Point tempRadius = brushList[brush]->GetRadius();
brushList[brush]->SetRadius(ui::Point(rx, ry));
- luacon_sim->ToolLine(x1, y1, x2, y2, tool, brushList[brush], strength);
+ if (tool == luacon_sim->tools.size())
+ {
+ Tool *WindTool = luacon_model->GetToolFromIdentifier("DEFAULT_UI_WIND");
+ WindTool->DrawLine(luacon_sim, brushList[brush], ui::Point(x1, y1), ui::Point(x2, y2));
+ return 1;
+ }
+ else
+ luacon_sim->ToolLine(x1, y1, x2, y2, tool, brushList[brush], strength);
brushList[brush]->SetRadius(tempRadius);
return 0;
}
@@ -1154,7 +1167,12 @@ int LuaScriptInterface::simulation_toolBox(lua_State * l)
int y2 = luaL_optint(l,4,-1);
int tool = luaL_optint(l,5,0);
float strength = luaL_optnumber(l,6,1.0f);
- if (tool < 0 || tool >= luacon_sim->tools.size())
+ if (tool == luacon_sim->tools.size())
+ {
+ lua_pushinteger(l, 0);
+ return 1;
+ }
+ else if (tool < 0 || tool >= luacon_sim->tools.size())
return luaL_error(l, "Invalid tool id '%d'", tool);
luacon_sim->ToolBox(x1, y1, x2, y2, tool, strength);
diff --git a/src/cat/LuaScriptInterface.h b/src/cat/LuaScriptInterface.h
index d8ad350..6556d35 100644
--- a/src/cat/LuaScriptInterface.h
+++ b/src/cat/LuaScriptInterface.h
@@ -75,6 +75,7 @@ class LuaScriptInterface: public CommandInterface
static int simulation_toolBrush(lua_State * l);
static int simulation_toolLine(lua_State * l);
static int simulation_toolBox(lua_State * l);
+ static int simulation_floodProp(lua_State * l);
static int simulation_decoBrush(lua_State * l);
static int simulation_decoLine(lua_State * l);
static int simulation_decoBox(lua_State * l);
diff --git a/src/client/Client.cpp b/src/client/Client.cpp
index 367aa70..1e76ade 100644
--- a/src/client/Client.cpp
+++ b/src/client/Client.cpp
@@ -444,7 +444,9 @@ std::vector<std::string> Client::DirectorySearch(std::string directory, std::str
findFileHandle = _findfirst(fileMatch.c_str(), &currentFile);
if (findFileHandle == -1L)
{
+#ifdef DEBUG
printf("Unable to open directory: %s\n", directory.c_str());
+#endif
return std::vector<std::string>();
}
do
@@ -461,7 +463,9 @@ std::vector<std::string> Client::DirectorySearch(std::string directory, std::str
DIR *directoryHandle = opendir(directory.c_str());
if(!directoryHandle)
{
+#ifdef DEBUG
printf("Unable to open directory: %s\n", directory.c_str());
+#endif
return std::vector<std::string>();
}
while(directoryEntry = readdir(directoryHandle))
diff --git a/src/gui/game/PropertyTool.cpp b/src/gui/game/PropertyTool.cpp
index 90e70b3..a95d2c9 100644
--- a/src/gui/game/PropertyTool.cpp
+++ b/src/gui/game/PropertyTool.cpp
@@ -129,7 +129,7 @@ void PropertyWindow::SetProperty()
if(type != -1)
{
#ifdef DEBUG
- std::cout << "Got type from particle name" << std::endl;
+ std::cout << "Got type from particle name" << std::endl;
#endif
tempInt = type;
}
diff --git a/src/gui/game/Tool.cpp b/src/gui/game/Tool.cpp
index df99e57..2ff1a1b 100644
--- a/src/gui/game/Tool.cpp
+++ b/src/gui/game/Tool.cpp
@@ -47,7 +47,7 @@ void Tool::DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Po
void Tool::DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) {
sim->ToolBox(position1.X, position1.Y, position2.X, position2.Y, toolID, strength);
}
-void Tool::DrawFill(Simulation * sim, Brush * brush, ui::Point position) {};
+void Tool::DrawFill(Simulation * sim, Brush * brush, ui::Point position) {}
ElementTool::ElementTool(int id, string name, string description, int r, int g, int b, std::string identifier, VideoBuffer * (*textureGen)(int, int, int)):
diff --git a/src/gui/game/Tool.h b/src/gui/game/Tool.h
index df4e5cc..37b79e3 100644
--- a/src/gui/game/Tool.h
+++ b/src/gui/game/Tool.h
@@ -86,7 +86,7 @@ public:
}
virtual ~PropertyTool() {}
virtual void Click(Simulation * sim, Brush * brush, ui::Point position);
- virtual void Draw(Simulation * sim, Brush * brush, ui::Point position) {};
+ virtual void Draw(Simulation * sim, Brush * brush, ui::Point position) {}
virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2, bool dragging = false) { }
virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { }
virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position) { }
diff --git a/src/simulation/Simulation.h b/src/simulation/Simulation.h
index 1b27bc7..bc728b4 100644
--- a/src/simulation/Simulation.h
+++ b/src/simulation/Simulation.h
@@ -52,26 +52,32 @@ public:
int currentTick;
+ char can_move[PT_NUM][PT_NUM];
+ int parts_lastActiveIndex;// = NPART-1;
+ int pfree;
+ int NUM_PARTS;
+ bool elementRecount;
+ int elementCount[PT_NUM];
+ int ISWIRE;
+ int force_stacking_check;
+ int emp_decor;
+ //Stickman
playerst player;
playerst player2;
playerst fighters[256]; //255 is the maximum number of fighters
unsigned char fighcount; //Contains the number of fighters
int lighting_recreate;
bool gravWallChanged;
+ //Portals and Wifi
Particle portalp[CHANNELS][8][80];
Particle emptyparticle;
int portal_rx[8];
int portal_ry[8];
int wireless[CHANNELS][2];
- char can_move[PT_NUM][PT_NUM];
- int parts_lastActiveIndex;// = NPART-1;
- int pfree;
- int NUM_PARTS;
- bool elementRecount;
- int elementCount[PT_NUM];
- int ISWIRE;
- int force_stacking_check;
- int emp_decor;
+ //PROP tool property to draw (TODO)
+ //void *prop_value;
+ //StructProperty::PropertyType proptype;
+ //size_t prop_offset;
//Gol sim
int CGOL;
int GSPEED;
@@ -97,10 +103,9 @@ public:
int pmap[YRES][XRES];
int photons[YRES][XRES];
int pmap_count[YRES][XRES];
- //
+ //Simulation Settings
int edgeMode;
int gravityMode;
- //int airMode;
int legacy_enable;
int aheat_enable;
int VINE_MODE;