Check particle exists in tpt.set_property, and sdl_scale mouse coords for Lua step

This commit is contained in:
jacksonmj 2011-06-24 21:54:59 +01:00 committed by Simon Robertshaw
parent 36e2a07a5b
commit c18009dd9c
2 changed files with 4 additions and 2 deletions

View File

@ -436,7 +436,7 @@ int luatpt_set_property(lua_State* l)
for (nx = x; nx<x+w; nx++)
for (ny = y; ny<y+h; ny++){
i = pmap[ny][nx]>>8;
if (i < 0 || i >= NPART || (partsel && partsel != parts[i].type))
if (!(pmap[ny][nx]&0xFF) || i < 0 || i >= NPART || (partsel && partsel != parts[i].type))
continue;
if(format==2){
*((float*)(((void*)&parts[i])+offset)) = f;
@ -455,6 +455,8 @@ int luatpt_set_property(lua_State* l)
}
if (i < 0 || i >= NPART)
return luaL_error(l, "Invalid particle ID '%d'", i);
if (!parts[i].type)
return 0;
if (partsel && partsel != parts[i].type)
return 0;
if(format==2){

View File

@ -2508,7 +2508,7 @@ int main(int argc, char *argv[])
b = SDL_GetMouseState(&x, &y); // b is current mouse state
#ifdef LUACONSOLE
if(luacon_step(x, y, b, bq, sdl_key))
if(luacon_step(x/sdl_scale, y/sdl_scale, b, bq, sdl_key))
b = 0; //Mouse click was handled by Lua step
#endif