diff options
| author | jacksonmj <mj-pt@jacksonmj.co.uk> | 2011-08-24 15:35:52 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2011-08-27 10:37:03 (GMT) |
| commit | 42cfb74c2bb82eb185962a17f848e47265a16316 (patch) | |
| tree | d2185ba1276dd85144b7d26099f597833f0cc975 /src/elements/stkm.c | |
| parent | f97e8e5c7caddadadf71f7635070777c6e1248ad (diff) | |
| download | powder-42cfb74c2bb82eb185962a17f848e47265a16316.zip powder-42cfb74c2bb82eb185962a17f848e47265a16316.tar.gz | |
Remove blocking walls from pmap
2.5% speed increase on a screen full of water
Diffstat (limited to 'src/elements/stkm.c')
| -rw-r--r-- | src/elements/stkm.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/elements/stkm.c b/src/elements/stkm.c index 6873ef5..41d2871 100644 --- a/src/elements/stkm.c +++ b/src/elements/stkm.c @@ -188,10 +188,10 @@ int run_stickman(float* playerp, UPDATE_FUNC_ARGS) { if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry)) { r = pmap[y+ry][x+rx]; - if (!r || (r>>8)>=NPART) + if (!r) r = photons[y+ry][x+rx]; - if ((!r || (r>>8)>=NPART) && !bmap[(y+ry)/CELL][(x+rx)/CELL]) + if (!r && !bmap[(y+ry)/CELL][(x+rx)/CELL]) continue; if (ptypes[r&0xFF].falldown!=0 || (r&0xFF) == PT_NEUT || (r&0xFF) == PT_PHOT) @@ -230,8 +230,6 @@ int run_stickman(float* playerp, UPDATE_FUNC_ARGS) { { ry -= 2*(rand()%2)+1; r = pmap[ry][rx]; - if (!((r>>8)>=NPART)) - { if (ptypes[r&0xFF].state == ST_SOLID) { create_part(-1, rx, ry, PT_SPRK); @@ -267,7 +265,6 @@ int run_stickman(float* playerp, UPDATE_FUNC_ARGS) { } } - } } //Simulation of joints @@ -371,9 +368,9 @@ void STKM_interact(float* playerp, int i, int x, int y) if (x<0 || y<0 || x>=XRES || y>=YRES || !parts[i].type) return; r = pmap[y][x]; - if (r && (r>>8)<NPART) + if (r) { - if ((r&0xFF)==PT_SPRK && r && (r>>8)<NPART) //If on charge + if ((r&0xFF)==PT_SPRK) //If on charge { parts[i].life -= (int)(rand()*20/RAND_MAX)+32; } |
