Merge branch 'master' of github.com:FacialTurd/The-Powder-Toy
This commit is contained in:
commit
8e689fdd08
2
.gitignore
vendored
2
.gitignore
vendored
@ -46,6 +46,8 @@ Makefile.me
|
|||||||
*.project
|
*.project
|
||||||
*.cproject
|
*.cproject
|
||||||
*.settings
|
*.settings
|
||||||
|
*.cbp
|
||||||
|
*.layout
|
||||||
config.log
|
config.log
|
||||||
*.sconsign.dblite
|
*.sconsign.dblite
|
||||||
*.sconf_temp
|
*.sconf_temp
|
||||||
|
@ -671,16 +671,29 @@ int luatpt_element_func(lua_State *l)
|
|||||||
return luaL_error(l, "Invalid element");
|
return luaL_error(l, "Invalid element");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(lua_isnil(l, 1))
|
||||||
|
{
|
||||||
|
int element = luaL_optint(l, 2, 0);
|
||||||
|
if(element > 0 && element < PT_NUM)
|
||||||
|
{
|
||||||
|
lua_el_func[element] = 0;
|
||||||
|
lua_el_mode[element] = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return luaL_error(l, "Invalid element");
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return luaL_error(l, "Not a function");
|
return luaL_error(l, "Not a function");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int luacon_graphicsReplacement(GRAPHICS_FUNC_ARGS)
|
int luacon_graphicsReplacement(GRAPHICS_FUNC_ARGS, int i)
|
||||||
{
|
{
|
||||||
int cache = 0, callret;
|
int cache = 0, callret;
|
||||||
lua_rawgeti(luacon_ci->l, LUA_REGISTRYINDEX, lua_gr_func[cpart->type]);
|
lua_rawgeti(luacon_ci->l, LUA_REGISTRYINDEX, lua_gr_func[cpart->type]);
|
||||||
lua_pushinteger(luacon_ci->l, 0);
|
lua_pushinteger(luacon_ci->l, i);
|
||||||
lua_pushinteger(luacon_ci->l, *colr);
|
lua_pushinteger(luacon_ci->l, *colr);
|
||||||
lua_pushinteger(luacon_ci->l, *colg);
|
lua_pushinteger(luacon_ci->l, *colg);
|
||||||
lua_pushinteger(luacon_ci->l, *colb);
|
lua_pushinteger(luacon_ci->l, *colb);
|
||||||
@ -715,7 +728,20 @@ int luatpt_graphics_func(lua_State *l)
|
|||||||
{
|
{
|
||||||
lua_gr_func[element] = function;
|
lua_gr_func[element] = function;
|
||||||
luacon_ren->graphicscache[element].isready = 0;
|
luacon_ren->graphicscache[element].isready = 0;
|
||||||
luacon_sim->elements[element].Graphics = &luacon_graphicsReplacement;
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return luaL_error(l, "Invalid element");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (lua_isnil(l, 1))
|
||||||
|
{
|
||||||
|
int element = luaL_optint(l, 2, 0);
|
||||||
|
if(element > 0 && element < PT_NUM)
|
||||||
|
{
|
||||||
|
lua_gr_func[element] = 0;
|
||||||
|
luacon_ren->graphicscache[element].isready = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -55,7 +55,7 @@ int luacon_element_getproperty(char * key, int * format, unsigned int * modified
|
|||||||
int luatpt_test(lua_State* l);
|
int luatpt_test(lua_State* l);
|
||||||
int luatpt_getelement(lua_State *l);
|
int luatpt_getelement(lua_State *l);
|
||||||
|
|
||||||
int luacon_graphicsReplacement(GRAPHICS_FUNC_ARGS);
|
int luacon_graphicsReplacement(GRAPHICS_FUNC_ARGS, int i);
|
||||||
int luatpt_graphics_func(lua_State *l);
|
int luatpt_graphics_func(lua_State *l);
|
||||||
|
|
||||||
int luacon_elementReplacement(UPDATE_FUNC_ARGS);
|
int luacon_elementReplacement(UPDATE_FUNC_ARGS);
|
||||||
|
@ -315,6 +315,7 @@ tpt.partsdata = nil");
|
|||||||
for(i = 0; i < PT_NUM; i++)
|
for(i = 0; i < PT_NUM; i++)
|
||||||
{
|
{
|
||||||
lua_el_mode[i] = 0;
|
lua_el_mode[i] = 0;
|
||||||
|
lua_gr_func[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1163,7 +1164,6 @@ int LuaScriptInterface::elements_element(lua_State * l)
|
|||||||
if(lua_type(l, -1) == LUA_TFUNCTION)
|
if(lua_type(l, -1) == LUA_TFUNCTION)
|
||||||
{
|
{
|
||||||
lua_gr_func[id] = luaL_ref(l, LUA_REGISTRYINDEX);
|
lua_gr_func[id] = luaL_ref(l, LUA_REGISTRYINDEX);
|
||||||
luacon_sim->elements[id].Graphics = &luacon_graphicsReplacement;
|
|
||||||
}
|
}
|
||||||
else if(lua_type(l, -1) == LUA_TBOOLEAN && !lua_toboolean(l, -1))
|
else if(lua_type(l, -1) == LUA_TBOOLEAN && !lua_toboolean(l, -1))
|
||||||
{
|
{
|
||||||
@ -1332,7 +1332,6 @@ int LuaScriptInterface::elements_property(lua_State * l)
|
|||||||
{
|
{
|
||||||
lua_pushvalue(l, 3);
|
lua_pushvalue(l, 3);
|
||||||
lua_gr_func[id] = luaL_ref(l, LUA_REGISTRYINDEX);
|
lua_gr_func[id] = luaL_ref(l, LUA_REGISTRYINDEX);
|
||||||
luacon_sim->elements[id].Graphics = &luacon_graphicsReplacement;
|
|
||||||
}
|
}
|
||||||
else if(lua_type(l, 3) == LUA_TBOOLEAN && !lua_toboolean(l, -1))
|
else if(lua_type(l, 3) == LUA_TBOOLEAN && !lua_toboolean(l, -1))
|
||||||
{
|
{
|
||||||
|
@ -37,7 +37,10 @@ void ConsoleView::DoKeyPress(int key, Uint16 character, bool shift, bool ctrl, b
|
|||||||
{
|
{
|
||||||
case KEY_ESCAPE:
|
case KEY_ESCAPE:
|
||||||
case '`':
|
case '`':
|
||||||
c->CloseConsole();
|
if (character != '~')
|
||||||
|
c->CloseConsole();
|
||||||
|
else
|
||||||
|
Window::DoKeyPress(key, character, shift, ctrl, alt);
|
||||||
break;
|
break;
|
||||||
case KEY_RETURN:
|
case KEY_RETURN:
|
||||||
case KEY_ENTER:
|
case KEY_ENTER:
|
||||||
|
@ -1818,7 +1818,7 @@ void GameView::OnDraw()
|
|||||||
{
|
{
|
||||||
activeBrush->RenderFill(ren, finalCurrentMouse);
|
activeBrush->RenderFill(ren, finalCurrentMouse);
|
||||||
}
|
}
|
||||||
if (drawMode == DrawPoints || drawMode==DrawLine)
|
if (drawMode == DrawPoints || drawMode==DrawLine || (drawMode == DrawRect && !isMouseDown))
|
||||||
{
|
{
|
||||||
if(wallBrush)
|
if(wallBrush)
|
||||||
{
|
{
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
#include "simulation/Elements.h"
|
#include "simulation/Elements.h"
|
||||||
#include "simulation/ElementGraphics.h"
|
#include "simulation/ElementGraphics.h"
|
||||||
#include "simulation/Air.h"
|
#include "simulation/Air.h"
|
||||||
|
#include "cat/LuaScriptInterface.h"
|
||||||
|
#include "cat/LuaScriptHelper.h"
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
#include "hmap.h"
|
#include "hmap.h"
|
||||||
@ -1158,7 +1160,11 @@ void Renderer::render_parts()
|
|||||||
{
|
{
|
||||||
if (elements[t].Graphics)
|
if (elements[t].Graphics)
|
||||||
{
|
{
|
||||||
if ((*(elements[t].Graphics))(this, &(sim->parts[i]), nx, ny, &pixel_mode, &cola, &colr, &colg, &colb, &firea, &firer, &fireg, &fireb)) //That's a lot of args, a struct might be better
|
if (lua_gr_func[t])
|
||||||
|
{
|
||||||
|
luacon_graphicsReplacement(this, &(sim->parts[i]), nx, ny, &pixel_mode, &cola, &colr, &colg, &colb, &firea, &firer, &fireg, &fireb, i);
|
||||||
|
}
|
||||||
|
else if ((*(elements[t].Graphics))(this, &(sim->parts[i]), nx, ny, &pixel_mode, &cola, &colr, &colg, &colb, &firea, &firer, &fireg, &fireb)) //That's a lot of args, a struct might be better
|
||||||
{
|
{
|
||||||
graphicscache[t].isready = 1;
|
graphicscache[t].isready = 1;
|
||||||
graphicscache[t].pixel_mode = pixel_mode;
|
graphicscache[t].pixel_mode = pixel_mode;
|
||||||
@ -2624,9 +2630,14 @@ std::vector<unsigned int> Renderer::GetRenderMode()
|
|||||||
|
|
||||||
void Renderer::CompileDisplayMode()
|
void Renderer::CompileDisplayMode()
|
||||||
{
|
{
|
||||||
|
int old_display_mode = display_mode;
|
||||||
display_mode = 0;
|
display_mode = 0;
|
||||||
for(int i = 0; i < display_modes.size(); i++)
|
for(int i = 0; i < display_modes.size(); i++)
|
||||||
display_mode |= display_modes[i];
|
display_mode |= display_modes[i];
|
||||||
|
if(!(display_mode & DISPLAY_PERS) && (old_display_mode & DISPLAY_PERS))
|
||||||
|
{
|
||||||
|
ClearAccumulation();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Renderer::AddDisplayMode(unsigned int mode)
|
void Renderer::AddDisplayMode(unsigned int mode)
|
||||||
|
@ -296,7 +296,7 @@ bool Element_LIGH::create_LIGH(Simulation * sim, int x, int y, int c, int temp,
|
|||||||
sim->parts[p].tmp = tmp;
|
sim->parts[p].tmp = tmp;
|
||||||
sim->parts[p].tmp2 = tmp2;
|
sim->parts[p].tmp2 = tmp2;
|
||||||
}
|
}
|
||||||
else
|
else if (x >= 0 && x < XRES && y >= 0 && y < YRES)
|
||||||
{
|
{
|
||||||
int r = sim->pmap[y][x];
|
int r = sim->pmap[y][x];
|
||||||
if ((((r&0xFF)==PT_VOID || ((r&0xFF)==PT_PVOD && sim->parts[r>>8].life >= 10)) && (!sim->parts[r>>8].ctype || (sim->parts[r>>8].ctype==c)!=(sim->parts[r>>8].tmp&1))) || (r&0xFF)==PT_BHOL || (r&0xFF)==PT_NBHL) // VOID, PVOD, VACU, and BHOL eat LIGH here
|
if ((((r&0xFF)==PT_VOID || ((r&0xFF)==PT_PVOD && sim->parts[r>>8].life >= 10)) && (!sim->parts[r>>8].ctype || (sim->parts[r>>8].ctype==c)!=(sim->parts[r>>8].tmp&1))) || (r&0xFF)==PT_BHOL || (r&0xFF)==PT_NBHL) // VOID, PVOD, VACU, and BHOL eat LIGH here
|
||||||
|
Reference in New Issue
Block a user