TPT: Added smudge tool afbe8cf38e
This commit is contained in:
parent
a761fa5cbc
commit
43ae47ba77
@ -7,7 +7,7 @@
|
|||||||
class DecorationTool: public Tool
|
class DecorationTool: public Tool
|
||||||
{
|
{
|
||||||
public:
|
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;
|
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::BlendRemove, "SUB", 0, 0, 0));
|
||||||
menuList[SC_DECO]->AddTool(new DecorationTool(DecorationTool::BlendMultiply, "MUL", 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::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));
|
menuList[SC_DECO]->AddTool(new DecorationTool(DecorationTool::BlendSet, "SET", 0, 0, 0));
|
||||||
|
|
||||||
//Set default brush palette
|
//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;
|
tg /= 1.0f+(colG*0.1f)*colA;
|
||||||
tb /= 1.0f+(colB*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;
|
colA_ = ta*255.0f;
|
||||||
colR_ = tr*255.0f;
|
colR_ = tr*255.0f;
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
#define DECO_SUBTRACT 2
|
#define DECO_SUBTRACT 2
|
||||||
#define DECO_MULTIPLY 3
|
#define DECO_MULTIPLY 3
|
||||||
#define DECO_DIVIDE 4
|
#define DECO_DIVIDE 4
|
||||||
|
#define DECO_SMUDGE 5
|
||||||
|
|
||||||
//Old IDs for GOL types
|
//Old IDs for GOL types
|
||||||
#define GT_GOL 78
|
#define GT_GOL 78
|
||||||
|
Loading…
Reference in New Issue
Block a user