- If you unpause right at the beginning of a round (see the next bug
for the reason why this is now common) you appear immediately, a
few seconds before everyone else reappears.
- The
Svan Ranking System
counts treasure scores for players which are in the W state waiting to get
in the game. The ranking patch fixes the first loop in
Punish_team()
which counts the players on each team and the
total scores, but the loop just below it which distributes the points does
not have the same change, so all waiting players get the points added or
taken away.
This one is easy to fix, but it doesn't mean much unless the people running
ranking servers apply it!
- Ships get stuck on sharp corners in walls because wall-to-ship collisions
are done only for the ship points and not the sides of the
ship.
One way to fix this would be to use the existing code until the ship gets
within a certain distance of the wall, and then use a line intersection test
to see if any of the lines of the ship intersect with lines in the wall.
This would probably require a line cache for the walls to be fast enough.
- Explosions have always had odd effects depending on the exact location
and velocity of ships that encounter them. If you hit a treasure really
fast, for example, you fly though the explosion and it actually accelerates
you in the direction you were going. If you are stationary you get a normal
amount of push, but if you are drifting slightly in the direction of the
explosion the force is much stronger because you are carried in the wave of
the particles for a longer time.
- Balls bounce on center rather than on edge. This would probably be easy
to fix, but it would change a lot of ball runs significantly.
- Ball-to-treasure box collisions are bizzare. Fixing this would also change
treasure runs.
- Ship-to-ship collisions should be based on shipshape rather than on the
ship-as-small-circle model used to do ship-to-shot collisions. A related
bug (?) is that larger diameter shields (as displayed) are not bigger for
purposes of collisions.
Ship-to-ship collisions can be fixed by using the existing code to detect
proximity and then doing line intersection.
- Some gameplay related timers like
RECOVERY_DELAY
are measured
in second rather than frames, so changing framerate changes gameplay (eg on
Blood's it takes 36 frames to reappear on your base at 12fps, but 48 at 16fps,
which is a lot of time in a duel for the treasure).
xp-replay
doesn't understand scaleFactor, which means
recordings that were done with scaleFactor != 1 open up windows of the wrong
size.
- Rumor has it that sliding radar is broken in the Win NT client.
- The client will request a display size larger than
1024x1024 with high scaleFactors. The client will send an unnecessary
DISPLAY packet each time it receives a frame from the server, because
the received and requested display sizes do not match. Trivial to
fix. (submitted by U)
I will make another patch for this if/when the developers decide if this
should be considered cheating (I don't think it is!).
- Analytical collision detection doesn't work with objects
that bounce during the frame, so it's supposed to be turned off in
that case. It isn't, however, and the code that is supposed to do that
just makes the problem worse. See the xpilot-hacks post "Improving
collision detection, parts 2 & 3". Should be easy to fix (the "turning
off properly" part; making it work with bounces is listed separately
later).
(submitted by U)
- Autopilot code contains a call to
Player_position_restore()
.
This shouldn't be used since it only restores the position
approximately and can move the ship inside a wall. See the
xpilot-hacks post "Using autopilot near walls can destroy your ship".
I think this can be fixed by just removing the call. Does anyone see
why it would be needed?
(submitted by U)
- You can fly through a wall of wormholes if you have enough
speed. If one of the ship points moves into a wormhole block, walls.c
code checks whether the middle of the ship is in the same block, using
OBJ_X_IN_BLOCKS(pl)
(probably because bigger ships shouldn't fall more
easily into wormholes). However, the player's position is not updated
until all the points have been moved, and so the check can only
succeed if the player was in the wormhole block when the frame
started.
(submitted by U)
I'm not sure how hard this will be to fix. One way might be
to add an extra point representing the middle of the ship, and make
only this point trigger the wormhole (but without any additional
checks). I think the current shipshape rules don't require that the
middle point belongs to the ship; does anyone use a shipshape that
might bounce wrong as a result?
(submitted by U)
- If a bullet hits a player and then a
wall during the same frame, the collision is not detected. See the
xpilot-hacks archives for discussion about this. Requires some new
code, but shouldn't be too hard to implement.
(submitted by U)
- Collision detection doesn't work with
objects that bounced during the frame.
(submitted by U)
It would be possible to write a
routine that did the detection by checking each straight part between
the bounces separately. I'm not sure whether it would be worth the
amount of work required though. At least I don't consider this
important enough that it would have to be fixed in the next version.
(submitted by U)