diff options
Diffstat (limited to 'src/elements/warp.c')
| -rw-r--r-- | src/elements/warp.c | 18 |
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; +} |
