diff options
| author | jacksonmj <mj-pt@jacksonmj.co.uk> | 2011-08-18 00:01:24 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2011-08-19 11:22:34 (GMT) |
| commit | 31b6e6a3cfbe0addaae87a13f4010d803490861c (patch) | |
| tree | ae7615eaa10704d37ccd8d541b33ea80f7b2edb8 /src | |
| parent | de820e36f8032ed699065a0bc0fc425d66ef42f9 (diff) | |
| download | powder-31b6e6a3cfbe0addaae87a13f4010d803490861c.zip powder-31b6e6a3cfbe0addaae87a13f4010d803490861c.tar.gz | |
Move multiple STKM loading check
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 113 |
1 files changed, 59 insertions, 54 deletions
@@ -714,7 +714,7 @@ int parse_save(void *save, int size, int replace, int x0, int y0, unsigned char j = PT_DUST;//goto corrupt; } gol[x][y]=0; - if (j && !(player[27] == 1 && j==PT_STKM) && !(player2[27] == 1 && j==PT_STKM2)) //Don't comment this, it's needed + if (j) { if (pmap[y][x] && (pmap[y][x]>>8)<NPART) { @@ -764,59 +764,6 @@ int parse_save(void *save, int size, int replace, int x0, int y0, unsigned char { parts[i].vx = (d[p++]-127.0f)/16.0f; parts[i].vy = (d[p++]-127.0f)/16.0f; - if (parts[i].type == PT_STKM) - { - //player[2] = PT_DUST; - - player[3] = parts[i].x-1; //Setting legs positions - player[4] = parts[i].y+6; - player[5] = parts[i].x-1; - player[6] = parts[i].y+6; - - player[7] = parts[i].x-3; - player[8] = parts[i].y+12; - player[9] = parts[i].x-3; - player[10] = parts[i].y+12; - - player[11] = parts[i].x+1; - player[12] = parts[i].y+6; - player[13] = parts[i].x+1; - player[14] = parts[i].y+6; - - player[15] = parts[i].x+3; - player[16] = parts[i].y+12; - player[17] = parts[i].x+3; - player[18] = parts[i].y+12; - - player[27] = 1; - - } - if (parts[i].type == PT_STKM2) - { - //player[2] = PT_DUST; - - player2[3] = parts[i].x-1; //Setting legs positions - player2[4] = parts[i].y+6; - player2[5] = parts[i].x-1; - player2[6] = parts[i].y+6; - - player2[7] = parts[i].x-3; - player2[8] = parts[i].y+12; - player2[9] = parts[i].x-3; - player2[10] = parts[i].y+12; - - player2[11] = parts[i].x+1; - player2[12] = parts[i].y+6; - player2[13] = parts[i].x+1; - player2[14] = parts[i].y+6; - - player2[15] = parts[i].x+3; - player2[16] = parts[i].y+12; - player2[17] = parts[i].x+3; - player2[18] = parts[i].y+12; - - player2[27] = 1; - } } else p += 2; @@ -1026,6 +973,64 @@ int parse_save(void *save, int size, int replace, int x0, int y0, unsigned char // no more particle properties to load, so we can change type here without messing up loading if (i && i<=NPART) { + if ((player[27] == 1 && ty==PT_STKM) || (player2[27] == 1 && ty==PT_STKM2)) + { + parts[i-1].type = PT_NONE; + } + else if (parts[i-1].type == PT_STKM) + { + //player[2] = PT_DUST; + + player[3] = parts[i-1].x-1; //Setti-1ng legs posi-1ti-1ons + player[4] = parts[i-1].y+6; + player[5] = parts[i-1].x-1; + player[6] = parts[i-1].y+6; + + player[7] = parts[i-1].x-3; + player[8] = parts[i-1].y+12; + player[9] = parts[i-1].x-3; + player[10] = parts[i-1].y+12; + + player[11] = parts[i-1].x+1; + player[12] = parts[i-1].y+6; + player[13] = parts[i-1].x+1; + player[14] = parts[i-1].y+6; + + player[15] = parts[i-1].x+3; + player[16] = parts[i-1].y+12; + player[17] = parts[i-1].x+3; + player[18] = parts[i-1].y+12; + + player[27] = 1; + + } + else if (parts[i-1].type == PT_STKM2) + { + //player2[2] = PT_DUST; + + player2[3] = parts[i-1].x-1; //Setti-1ng legs posi-1ti-1ons + player2[4] = parts[i-1].y+6; + player2[5] = parts[i-1].x-1; + player2[6] = parts[i-1].y+6; + + player2[7] = parts[i-1].x-3; + player2[8] = parts[i-1].y+12; + player2[9] = parts[i-1].x-3; + player2[10] = parts[i-1].y+12; + + player2[11] = parts[i-1].x+1; + player2[12] = parts[i-1].y+6; + player2[13] = parts[i-1].x+1; + player2[14] = parts[i-1].y+6; + + player2[15] = parts[i-1].x+3; + player2[16] = parts[i-1].y+12; + player2[17] = parts[i-1].x+3; + player2[18] = parts[i-1].y+12; + + player2[27] = 1; + } + if (ver<48 && (ty==OLD_PT_WIND || (ty==PT_BRAY&&parts[i-1].life==0))) { // Replace invisible particles with something sensible and add decoration to hide it |
