summaryrefslogtreecommitdiff
path: root/src/elements/sprk.c
diff options
context:
space:
mode:
authorjacksonmj <mj-pt@jacksonmj.co.uk>2012-08-11 08:53:02 (GMT)
committer jacksonmj <mj-pt@jacksonmj.co.uk>2012-08-13 22:48:55 (GMT)
commit8ec0f41fb143a6bda08d078232f3d70b36328dc4 (patch)
tree93b52bfef3bd66f04c62fa944728bb152079e56c /src/elements/sprk.c
parenta4c15746b8b3f6c187fbc7403fe5082883a8d9b7 (diff)
downloadpowder-8ec0f41fb143a6bda08d078232f3d70b36328dc4.zip
powder-8ec0f41fb143a6bda08d078232f3d70b36328dc4.tar.gz
Powered pipe, based on jacob1's commits
PSCN to turn on, NSCN to turn off, INST to reverse. Differences from jacob1's commit include: flood fill function that includes 1px diagonal pipes, powered/reversed state stored in tmp instead of flags, sparks from PSCN/NSCN/INST always take effect the following frame, single pixel pipe directions are a number from 0 to 7 so "if(coords)" does not check whether one is set (store another "transfers according to 1px pipe direction" bit for reverse flow).
Diffstat (limited to 'src/elements/sprk.c')
-rw-r--r--src/elements/sprk.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/elements/sprk.c b/src/elements/sprk.c
index 291937a..1c4c5bc 100644
--- a/src/elements/sprk.c
+++ b/src/elements/sprk.c
@@ -154,6 +154,11 @@ int update_SPRK(UPDATE_FUNC_ARGS) {
else if (ct==PT_NSCN && parts[r>>8].tmp == 3) parts[r>>8].tmp = 1;
}
+ if (rt == PT_PPIP && parts[i].life == 3 && pavg!=PT_INSL)
+ {
+ if (ct == PT_NSCN || ct == PT_PSCN || ct == PT_INST)
+ PPIP_flood_trigger(x+rx, y+ry, ct);
+ }
// ct = spark from material, rt = spark to material. Make conduct_sprk = 0 if conduction not allowed