Skip to content

Commit 159e4f5

Browse files
committed
Allow triggerable objects to act inverted.
1 parent 5a31df4 commit 159e4f5

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

src/trigger.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ void Trigger::onFixedUpdate()
5454
trigger_delay = 30;
5555
return;
5656
}
57-
57+
5858
if (trigger_delay > 0)
5959
{
6060
trigger_delay--;

src/triggerableNode.cpp

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@ void TriggerableNode::triggerAdd()
77
trigger_counter++;
88

99
if (trigger_counter == trigger_level)
10-
onTrigger();
10+
{
11+
if (inverted)
12+
onUnTrigger();
13+
else
14+
onTrigger();
15+
}
1116
}
1217

1318
void TriggerableNode::triggerSubstract()
@@ -16,7 +21,12 @@ void TriggerableNode::triggerSubstract()
1621
return;
1722

1823
if (trigger_counter == trigger_level)
19-
onUnTrigger();
24+
{
25+
if (inverted)
26+
onTrigger();
27+
else
28+
onUnTrigger();
29+
}
2030
trigger_counter--;
2131
}
2232

@@ -26,6 +36,12 @@ void TriggerableNode::setProperty(sp::string name, sp::string value)
2636
once = sp::stringutil::convert::toBool(value);
2737
else if (name == "trigger_level")
2838
trigger_level = sp::stringutil::convert::toInt(value);
39+
else if (name == "trigger_invert")
40+
{
41+
inverted = sp::stringutil::convert::toBool(value);
42+
if (inverted)
43+
onTrigger();
44+
}
2945
else
3046
LevelObject::setProperty(name, value);
3147
}

src/triggerableNode.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class TriggerableNode : public LevelObject
2727
int trigger_level = 1; //Amount of active triggers required for this triggerable to activate.
2828
sp::string trigger_name;
2929
bool once = false;
30+
bool inverted = false;
3031
};
3132

3233
#endif//TRIGGER_H

0 commit comments

Comments
 (0)