summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsavask <savask@yandex.ru>2010-08-13 11:09:24 (GMT)
committer FacialTurd <simon@hardwired.org.uk>2010-08-13 11:18:29 (GMT)
commit48bfba2677292e4502b25f718d252ca009efce5e (patch)
treeea0a8132e7db0c3751fdf088f53cfa403339a629
parente02d78c85d41bb8add66e80a84f8b7b3e3270033 (diff)
downloadpowder-48bfba2677292e4502b25f718d252ca009efce5e.zip
powder-48bfba2677292e4502b25f718d252ca009efce5e.tar.gz
Fixed bug with checking for dangerous particle near foot. Collide code a
liitle more logical now.
-rwxr-xr-xpowder.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/powder.c b/powder.c
index 5a34b56..0d4a8f5 100755
--- a/powder.c
+++ b/powder.c
@@ -2196,9 +2196,9 @@ void update_particles_i(pixel *vid, int start, int inc){
}
//Collision checks
- for(ny = 0; ny<=2+(int)parts[i].vy; ny++)
+ for(ny = -2-(int)parts[i].vy; ny<=0; ny++)
{
- r = pmap[(int)(player[8]-ny)][(int)(player[7]+0.5)]; //This is to make coding more pleasant :-)
+ r = pmap[(int)(player[8]+ny)][(int)(player[7]+0.5)]; //This is to make coding more pleasant :-)
//For left leg
if (r && (r&0xFF)!=PT_STKM)
@@ -2214,13 +2214,13 @@ void update_particles_i(pixel *vid, int start, int inc){
}
else
{
- player[8] -= ny+1;
+ player[8] += ny-1;
parts[i].vy -= 0.5*parts[i].vy;
}
player[9] = player[7];
}
- r = pmap[(int)(player[16]-ny)][(int)(player[15]+0.5)];
+ r = pmap[(int)(player[16]+ny)][(int)(player[15]+0.5)];
//For right leg
if (r && (r&0xFF)!=PT_STKM)
@@ -2236,7 +2236,7 @@ void update_particles_i(pixel *vid, int start, int inc){
}
else
{
- player[16] -= ny+1;
+ player[16] += ny-1;
parts[i].vy -= 0.5*parts[i].vy;
}
player[17] = player[15];
@@ -2265,7 +2265,7 @@ void update_particles_i(pixel *vid, int start, int inc){
}
//If legs touch something
- r = pmap[(int)(player[8]+1.5)][(int)(player[7]+0.5)];
+ r = pmap[(int)(player[8]+0.5)][(int)(player[7]+0.5)];
if((r&0xFF)==PT_SPRK && r && (r>>8)<NPART) //If on charge
{
parts[i].life -= (int)(rand()/1000)+38;
@@ -2286,7 +2286,7 @@ void update_particles_i(pixel *vid, int start, int inc){
if ((r&0xFF)==PT_PLUT) //If on plut
parts[i].life -= 1;
- r = pmap[(int)(player[16]+1.5)][(int)(player[15]+0.5)];
+ r = pmap[(int)(player[16]+0.5)][(int)(player[15]+0.5)];
if((r&0xFF)==PT_SPRK && r && (r>>8)<NPART) //If on charge
{
parts[i].life -= (int)(rand()/1000)+38;