summaryrefslogtreecommitdiff
path: root/src/elements/warp.c
diff options
context:
space:
mode:
authorCatelite <liclockwork@yahoo.com>2012-06-06 13:41:56 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-06-07 13:03:16 (GMT)
commitc07afe4c892711b58061e5c0a3180ea3865f9452 (patch)
tree27f9836659c0ee42d884b8cd0e22ccade3fa0425 /src/elements/warp.c
parentfe39fdb0e5e91e3c09fe18d6bd1af72db4059ef7 (diff)
downloadpowder-c07afe4c892711b58061e5c0a3180ea3865f9452.zip
powder-c07afe4c892711b58061e5c0a3180ea3865f9452.tar.gz
Ton of changes to make EXOT work as expected. Added graphics to WARP to make it actually invisible besides BLOB mode, EXOT now makes rainbows and explodes with too many electrons o__o
Diffstat (limited to 'src/elements/warp.c')
-rw-r--r--src/elements/warp.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/elements/warp.c b/src/elements/warp.c
index 27352fd..0108bb9 100644
--- a/src/elements/warp.c
+++ b/src/elements/warp.c
@@ -17,6 +17,14 @@
int update_WARP(UPDATE_FUNC_ARGS) {
int trade, r, rx, ry;
+
+ if (parts[i].tmp2>2000)
+ {
+ parts[i].temp = 10000;
+ pv[y/CELL][x/CELL] += (parts[i].tmp2/2000) * CFDS;
+ if (2>rand()%1000)
+ create_part(-3, x, y, PT_ELEC);
+ }
for ( trade = 0; trade<5; trade ++)
{
rx = rand()%3-1;
@@ -26,12 +34,14 @@ int update_WARP(UPDATE_FUNC_ARGS) {
r = pmap[y+ry][x+rx];
if (!r)
continue;
- if ((r&0xFF)!=PT_WARP&&(r&0xFF)!=PT_STKM&&(r&0xFF)!=PT_STKM2&&(r&0xFF)!=PT_DMND&&(r&0xFF)!=PT_CLNE&&(r&0xFF)!=PT_BCLN&&(r&0xFF)!=PT_PCLN&&(10>=rand()%200))
+ if ((r&0xFF)!=PT_WARP&&(r&0xFF)!=PT_STKM&&(r&0xFF)!=PT_STKM2&&(r&0xFF)!=PT_DMND&&(r&0xFF)!=PT_CLNE&&(r&0xFF)!=PT_BCLN&&(r&0xFF)!=PT_PCLN)
{
parts[i].x = parts[r>>8].x;
parts[i].y = parts[r>>8].y;
parts[r>>8].x = x;
parts[r>>8].y = y;
+ parts[r>>8].vx = (rand()%4)-1.5;
+ parts[r>>8].vy = (rand()%4)-2;
parts[i].life += 4;
pmap[y][x] = r;
pmap[y+ry][x+rx] = (i<<8)|parts[i].type;
@@ -41,3 +51,9 @@ int update_WARP(UPDATE_FUNC_ARGS) {
}
return 0;
}
+int graphics_WARP(GRAPHICS_FUNC_ARGS)
+{
+ *cola = 0;
+ *pixel_mode &= ~PMODE;
+ return 0;
+}