TPT: Added smudge tool afbe8cf38e
This commit is contained in:
parent
a761fa5cbc
commit
43ae47ba77
@ -7,7 +7,7 @@
|
||||
class DecorationTool: public Tool
|
||||
{
|
||||
public:
|
||||
enum ToolType { BlendAdd = DECO_ADD, BlendRemove = DECO_SUBTRACT, BlendMultiply = DECO_MULTIPLY, BlendDivide = DECO_DIVIDE, BlendSet = DECO_DRAW };
|
||||
enum ToolType { BlendAdd = DECO_ADD, BlendRemove = DECO_SUBTRACT, BlendMultiply = DECO_MULTIPLY, BlendDivide = DECO_DIVIDE, BlendSet = DECO_DRAW, BlendSmudge = DECO_SMUDGE };
|
||||
|
||||
ToolType decoMode;
|
||||
|
||||
|
@ -97,6 +97,7 @@ GameModel::GameModel():
|
||||
menuList[SC_DECO]->AddTool(new DecorationTool(DecorationTool::BlendRemove, "SUB", 0, 0, 0));
|
||||
menuList[SC_DECO]->AddTool(new DecorationTool(DecorationTool::BlendMultiply, "MUL", 0, 0, 0));
|
||||
menuList[SC_DECO]->AddTool(new DecorationTool(DecorationTool::BlendDivide, "DIV", 0, 0, 0));
|
||||
menuList[SC_DECO]->AddTool(new DecorationTool(DecorationTool::BlendSmudge, "SMDG", 0, 0, 0));
|
||||
menuList[SC_DECO]->AddTool(new DecorationTool(DecorationTool::BlendSet, "SET", 0, 0, 0));
|
||||
|
||||
//Set default brush palette
|
||||
|
@ -371,6 +371,28 @@ void Simulation::ApplyDecoration(int x, int y, int colR_, int colG_, int colB_,
|
||||
tg /= 1.0f+(colG*0.1f)*colA;
|
||||
tb /= 1.0f+(colB*0.1f)*colA;
|
||||
}
|
||||
else if (mode == DECO_SMUDGE)
|
||||
{
|
||||
int rx, ry, num = 0;
|
||||
for (rx=-2; rx<3; rx++)
|
||||
for (ry=-2; ry<3; ry++)
|
||||
{
|
||||
if ((pmap[y+ry][x+rx]&0xFF) && parts[pmap[y+ry][x+rx]>>8].dcolour)
|
||||
{
|
||||
num++;
|
||||
ta += float((parts[pmap[y+ry][x+rx]>>8].dcolour>>24)&0xFF)/255.0f;
|
||||
tr += float((parts[pmap[y+ry][x+rx]>>8].dcolour>>16)&0xFF)/255.0f;
|
||||
tg += float((parts[pmap[y+ry][x+rx]>>8].dcolour>>8)&0xFF)/255.0f;
|
||||
tb += float((parts[pmap[y+ry][x+rx]>>8].dcolour)&0xFF)/255.0f;
|
||||
}
|
||||
}
|
||||
if (num == 0)
|
||||
return;
|
||||
ta = ta/float(num)+0.5f;
|
||||
tr = tr/float(num)+0.5f;
|
||||
tg = tg/float(num)+0.5f;
|
||||
tb = tb/float(num)+0.5f;
|
||||
}
|
||||
|
||||
colA_ = ta*255.0f;
|
||||
colR_ = tr*255.0f;
|
||||
|
@ -61,6 +61,7 @@
|
||||
#define DECO_SUBTRACT 2
|
||||
#define DECO_MULTIPLY 3
|
||||
#define DECO_DIVIDE 4
|
||||
#define DECO_SMUDGE 5
|
||||
|
||||
//Old IDs for GOL types
|
||||
#define GT_GOL 78
|
||||
|
Loading…
Reference in New Issue
Block a user