#include "ToolClasses.h" //#TPT-Directive ToolClass Tool_Solid TOOL_SOLID 6 //#TPT-Directive ToolHeader Tool_Solid int LastSolid //#TPT-Directive ToolHeader Tool_Solid virtual int Start(Simulation * sim, Particle * cpart, int x, int y) Tool_Solid::Tool_Solid() { Identifier = "DEFAULT_TOOL_SOLID"; Name = "SLD"; Colour = PIXPACK(0xA0A080); Description = "Makes affected particles into a solid."; LastSolid = -1; } int Tool_Solid::Start(Simulation * sim, Particle * cpart, int x, int y) { if(cpart && cpart->sld) LastSolid = cpart->sld - 1; else LastSolid = -1; return 1; } int Tool_Solid::Perform(Simulation * sim, Particle * cpart, int x, int y, float strength) { int solid_index = LastSolid, i; if(!cpart || cpart->sld || !(sim->elements[cpart->type].Properties & TYPE_SOLID)) return 0; if(solid_index == -1) for(i=0; isolids[i].first == -1) { solid_index = i; break; } if(solid_index == -1) return 0; LastSolid = solid_index; return sim->link_solid(cpart - sim->parts, solid_index); } Tool_Solid::~Tool_Solid() {}