Tuo johtuu siitä, että seinään osumisen jälkeen kun luoti on poistettu, Grandin koodissa tarkistetaan vielä osuiko luoti vihuihin. Ja MAVihan se iskee kun luotia ei enää ole. Tämä on onneksi helppo korjata. Törmäyksentunnistus vihujen kanssa olisi vielä muutenkin bugannut jossain vaiheessa, sillä loopista ei poistuttu luodin poistamisen jälkeen. Tässä korjattu versio:
Code: Select all
For luoti.AMMUS=Each AMMUS
MoveObject luoti\obj,8
If GetMap(2,ObjectX(luoti\obj),ObjectY(luoti\obj)) Then
DeleteObject luoti\obj
Delete luoti
Else
For vihu.VIHUT = each VIHUT
If ObjectsOverlap(luoti\obj,vihu\pahis) Then
DeleteObject luoti\obj
Delete luoti
Exit
EndIf
Next vihu
EndIf
Next luoti
Homma toimii nyt siis niin, että jos seinään ei osuttu, tarkistetaan myös vihut. Ja vihuun osutessa poistutaan niiden tarkistuksesta (exit), ettei jatkettaisi tarkistusta enää olemattoman luodin kanssa.