by Graf Zahl » Tue Mar 24, 2015 3:05 am
I couldn't reproduce the crash - integer overflow notrmally can't happen unless there's a problem with the CPU - but the position issue is interesting:
It does get placed correctly, there's just a small issue with the order in which things get done:
- The move is too fast so it gets split in two.
- The first half of the move performs the teleport
- The second half of the move never realizes that the situation has changed and still does its thing.
Of course the direction it tries to move the armor in is wrong now. Since cause and effect are quite separated in the code this is going to be tricky...
The entire movement splitting in P_XYMovement seems to run bad if a move is blocked the first time around but in most cases the results are barely noticable.