summaryrefslogtreecommitdiff
path: root/src/elements/warp.c
diff options
context:
space:
mode:
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;
+}