Outgun / 1.0.0 beta / Bug archive

Outgun 1.0.0 beta – bug archive

This contains information about old bugs that were fixed from the 1.0.0 beta versions.

The rev. column tells the last revision that has this bug. See the details below for explanation. Date is when the bug was reported.

Rev.DateReported byDescription
16 2005-01-22Nix Team messages near the maximal length cause the server to assert
16 2005-01-15Huntta S commands don’t work in labeled blocks in map files
16 2005-01-15Huntta Assertion failed in antialias.cpp: by < buf->h, when generating map pictures from wide maps
16 2005-01-14Nix Shadowed teammates’ positions aren’t updated on the minimap when you have the shadow
16 2005-01-10Huntta Players and flags can show up in wrong places in the minimap for a short time
16 2005-01-07Huntta In the map list view (F2), keypad keys both enter the map number and move the player
16 2005-01-05Joonas Invisible players’ deathbringer smoke and turbo trails are visible when they have the flag
16 2005-01-02Huntta Connecting to a server while already connected only disconnects
15 2004-12-21ThOR27 Problems with tournament server may crash Outgun
15 2004-04-23Nix+ Client crash at map change
15 2004-12-20unknown Assertion failed in world.cpp, or crash, at map change with rockets in the air
15 2004-12-18Syrus-DH Points from the last capture aren’t shown
15 2004-12-15Zique When changing teams when your deathbringer has exploded, the db changes teams too
15 2004-12-14Spinal Special collisions cause all kinds of erroneous behavior
15 2004-12-14Spinal Special collisions cause “unknown message code” for rev. 14 clients
15 2004-07-29ThOR27 Linux servers may not get to the master list without -ip
14 2004-12-14PHiN Bright purple player is transparent in some themes
14 2004-12-14ThOR27 Crash if log/leetclientdata.bin can’t be written
14 2004-12-13K4(Maicon)Teams aren’t separated in the game screen player list
14 2004-12-13ThOR27 The server password can only be entered once, without restarting Outgun
14 2004-12-10DetonadorServer hangs when kicking in rev. 14 without -unsafeserver
14 2004-12-10ThOR27 Shots appearing slightly in a wrong place
13 2004-11-28Huntta Map list change doesn’t update map voting status
13 2004-11-19Huntta Changing to a map that has errors can end up asserting
13 2004-11-20Huntta Player flashes in wrong position when changing team
13 2004-11-19Huntta Flag marker circles can have darker lines on them with antialiasing
13 2004-11-21Nix Events on the server while connecting to it make the client assert
12 2004-11-11Nix Unresponding players aren’t dropped
12 2004-10-30Nix ‘Ghost’ powerups
12 2004-10-24Huntta Assertion failed in client.cpp, around line 1066
12 2004-11-09Nix Changing physics settings while running causes choppy movement
12 2004-10-29Huntta Error in flag carry time stats on server side
12 2004-10-21Nix Pressing F5 in the menu can assert
12 2004-10-19Nix Assertion failed: (build.size() & 1) == 0, file antialias.cpp, line 421
11 2004-06-23rFrota Assertion failed: flag != -1, file world.cpp, line 1508
11 2004-10-04Nix Server becomes unresponsive after a player tries to connect but is rejected
10 2004-08-16Nix Memory leaks, potential misbehaviors and crashes
10 2004-08-07Nix Segmentation faults when exiting (Linux)
10 2004-04-22ThOR27 Own player name unknown to client
10 2004-08-01MM-coioteMessages from server lost
9 2004-04-25ThOR27 Assertion failed, antialias.cpp (Linux)
8 2004-07-05Nix Some gamemod settings don’t accept zero or negative values
8 2004-07-04Huntta Error about max_players at server startup, followed by a crash
8 2004-07-01Huntta Team statistics: shots taken aren’t updated
7 2004-05-17Joonas Wrong texture ordering
7 2004-05-18ThOR27 Room borders over walls in map
7 2004-05-06NosferatuAssertion failed, client.cpp, line 1053
7 2004-05-06NosferatuCrash when opening help
6 2004-04-27Huntta Someone changing team with flag results in an assertion “!flag”
6 2004-04-26Spinal Assertion failed, antialias.cpp, line 102
6 2004-04-19Huntta Inaccuracies in the saved stats
6 2004-04-25Nix+ Player’s don’t always collide with player_collisions
6 2004-04-25Huntta Server settings on client don’t update on server settings reset
5 2004-04-23PHIN Admin commands don’t work
5 2004-04-23Joonas Client map list gets corrupted by server settings reset
5 2004-04-21ThOR27 Error: Address already in use
5 2004-04-22Huntta Crash when connecting
4 2004-04-22Nix Server password doesn’t work
4 2004-04-22ThOR27 Setting fire button to 0 makes it fire constantly
4 2004-04-22Huntta Disabling “Use keypad for moving” doesn’t fully work
4 2004-04-21Nix Player name left hanging after respawn
4 2004-04-21Huntta Statistics are reset prematurely after a game
4 2004-04-21Huntta Time limit doesn’t reset on all restarts
3 2004-04-20ThOR27 High ping even on a local server
3 2004-04-20ThOR27 No background when alt-tabbing in flipped full screen
3 2004-04-20ThOR27 Player names are easily hidden with flag or deathbringer smoke
2? 2004-04-19Nix Occasional kick for client misbehavior on connect
2? 2004-04-19Spinal Assertion failed, antialias.cpp, line 18
2 2004-04-19ThOR27 Crash when trying to connect
1 2004-04-19Nix Erroneous “Extra-time out” message
1 2004-04-19Huntta Problems with server monitor utility

The following are mysterious bugs that didn’t have enough information to be solved but are so old without happening again that they probably have been fixed in some revision as a side-effect of another fix.

DateOriginal report byDescription
2004-04-21ThOR27Error setting windowed graphics mode
2004-04-21ThOR27Strafe always on

Details

Team messages near the maximal length the server to assert

When you send a team message (starting with ‘.’) that added with your name and “: ” is longer than the maximal length you’re allowed to type, the server fails an assertion: text.length() < max_chat_message_length. This is fixed in the final version.

S commands don’t work in labeled blocks in map files

In the labeled (‘:’) blocks in map files, the S command is unusable. This is fixed in the final version.

Assertion failed in antialias.cpp: by < buf->h, when generating map pictures from wide maps

This assertion can happen when running Outgun with the -mappic argument, if there are maps that are at least two times as wide as they are high (in room count). This is fixed in the final version.

Shadowed teammates’ positions aren’t updated on the minimap when you have the shadow

When both you and some of your teammates have the shadow powerup and they don’t carry a flag, you see them in their old position on the minimap until you come to the same room with them or the shadow runs out for one of you. This bug has been in Outgun always, but is fixed in the final version.

Players and flags can show up in wrong places in the minimap for a short time

When a player is seen for the first time in a while, he can first flash in the old place in the minimap. If he carries a flag, the flag flashes too. This bug has been in Outgun always, but is fixed in the final version.

In the map list view (F2), keypad keys both enter the map number and move the player

If ‘use keypad for moving’ is set, the keypad numbers both move the player and are interpreted as the map number to vote for, when the map list view is open. In the final version, you can’t use the keypad for moving when the map list is open.

Invisible players’ deathbringer smoke and turbo trails are visible when they have the flag

When a player is fully invisible with flag, or partially invisible, and they have powerups, the deathbringer smoke or turbo trails are drawn with the normal intensity. This is fixed in the final version. We hope it doesn’t alter the playability too much.

Connecting to a server while already connected only disconnects

When you’re connected to a server, and try to connect to another one, Outgun only closes the previous connection and you need to give a new command to connect before it actually connects. This is fixed in the final version.

Problems with tournament server may crash Outgun

If the master server forgets a player’s login, before the player connects to a server, the server may crash when receiving the denying reply from the master server. This is fixed in rev. 16.

Client crash at map change

This more mysterious crashing of all clients connected to a server on a map change is, if not before, fixed by the same fix as this other bug report.

Assertion failed in world.cpp, or crash, at map change with rockets in the air

When there are shots that haven’t hit anything in a room whose index is not found in the next (smaller) map, Outgun may crash with a page fault / segmentation fault, or this assertion can fail in world.cpp at map change: rock[i].px >= 0 && rock[i].py >= 0 && rock[i].px < map.w && rock[i].py < map.h. This is fixed in rev. 16.

Points from the last capture aren’t shown

The 5 points from the last capture of a round aren’t shown (or saved) by the clients, even though they are calculated by the server and both saved in the server stats and used in tournament scoring. This is fixed in rev. 16.

When changing teams when your deathbringer has exploded, the db changes teams too

You have the deathbringer, and you die. It explodes and while its effect is still on screen, you change teams. At that point, also the deathbringer “changes teams” and damages your original teammates. This is fixed in rev. 16.

Special collisions cause all kinds of erroneous behavior

When the server has special collisions enabled, them happening cause different problems to the clients. Most usual of the problems is the team scores showing wrong numbers after a collision. This is fixed in rev. 16. For public information: the fault is not in Spinal’s code, but Nix’s. Along with the other special collisions bug, the only workaround to this is disabling special collisions until rev. 16.

Special collisions cause “unknown message code” for rev. 14 clients

When a revision 14 client is in the same where a special collision with damage takes place, the client leaves the server with the message “Server sent an unknown message code: 95”. Rev. 16 is no longer compatible with either rev. 14 or 15, so this is no issue in it. For public information: the fault is not in Spinal’s code, but Nix’s. Along with the other special collisions bug, the only workaround to this is disabling special collisions until rev. 16.

Linux servers may not get to the master list without -ip

On Linux, and maybe other Unix-like systems the network library might be unable to fetch the local IP address. For revisions older than 12, this results in Outgun sending the loopback address 127.0.0.1 to the master server, resulting in an error which is not reported to the user. Revision 12 both includes 127.0.0.1 in its tests against private addresses and logs failures with the master server better. Until rev. 16 this still meant that the server couldn’t be added to the master list, but rev. 16 bypasses this problem by letting the master server detect from which address the request comes from.

Bright purple player is transparent in some themes

If a graphics theme uses the player color in its pure form on some pixels, the bright purple player will have those pixels transparent. This is fixed in rev. 15.

Crash if log/leetclientdata.bin can’t be written

If log/leetclientdata.bin or leetserverdata.bin can’t be written (for a permissions problem, open file, or otherwise), the client or server may crash. This can be prevented in rev. 14 by using the command line argument -debug 0, but is fully fixed in rev. 15.

Teams aren’t separated in the game screen player list

There’s a bug in the player list code, which results in the two teams not having a separating line in between, when the red team is full. This is fixed in rev. 15.

The server password can only be entered once, without restarting Outgun

If a wrong server password is entered, it can’t be corrected without restarting Outgun. After entering a server password, entering to any server that doesn’t have that password isn’t possible without restarting Outgun. These are fixed in rev. 15.

Server hangs when kicking in rev. 14 without -unsafeserver

This results from the new server thread protection in rev. 14 locking down when a player is kicked. The protection can be removed by using the command line argument -unsafeserver in rev. 14. In rev. 15, the whole issue is fixed.

Shots appearing slightly in a wrong place

This “feature” has been in all previous versions of Outgun as far as we know. When moving and shooting to another direction than straight forward, the shots appear slightly in a wrong place. Specifically, they start from a little behind the player, but most usually this is seen like only starting a little off center. This is fixed in rev. 15.

Map list change doesn’t update map voting status

When the server is made reset its settings with srvmonit, the clients who had voted think they still have voted on a map (which might be different than the originally voted one) while the server erases their vote. In rev. 14 the server doesn’t erase the vote unless the map is erased from rotation, and the client is correctly informed.

Changing to a map that has errors can end up asserting

Changing to a map that has errors is possible, if the map file is modified after the server has loaded its map list. In that case, changing to such a map can produce surprising effects. For example, if a player is carrying a flag when that is done, the client will assert. In revision 14, broken maps result in a server settings reload which re-initializes the map list; if all maps are broken, the server quits.

Player flashes in wrong position when changing team

When a player changes team, he is seen in a wrong place for a small instant of time. This is fixed in rev. 14, except for (rare) high network utilization situations.

Flag marker circles can have darker lines on them with antialiasing

In certain kinds of maps (none in the distributions as far as we know), a flag position marker circle is drawn with darker horizontal lines on it, whenever antialiasing is enabled. This is fixed in rev. 14.

Events on the server while connecting to it make the client assert

A set of ugly bugs resulting from a design flaw, manifest in the client quitting with an assertion, when some critical event takes place on the server while connecting to it. Possible triggers may include players entering or leaving the server; changing teams; dying; and picking up, dropping, or capturing flags. A much rarer occurence is when two players are joining the server at ‘exactly’ the same time and end up with the same player ID, which causes problems to everyone, including the server. All of these problems are fixed in rev. 14.

Unresponding players aren’t dropped

On some systems (like my Linux), unresponding (crashed, or behind a network breakage) clients are never dropped from the server. On others, they are dropped most of the time but rarely a client can be left without ever getting dropped. This causes a non-responsive player to appear to stay on the server, and the server to continue indefinitely sending out extra traffic at about 2.5 k/s. This bug exists in all prior versions of Outgun, but is fixed in rev. 13.

‘Ghost’ powerups

It can happen that a player sees powerups that aren’t really there. It should be reasonably rare as it only happens when messages from the server are too many to be sent at once. This is fixed in rev. 13.

Assertion failed in client.cpp, around line 1066

This happens (at least) in these very specific circumstances. When closing a server which had some errors, you end up connecting to the same server right after accepting the error message, this assertion can happen:

Assertion failed: openMenus.safeTop() == &m_connectProgress.menu || openMenus.safeTop() == &menu.help.menu, file client.cpp, line 1066

This is fixed in rev. 13.

Changing physics settings while running causes choppy movement

If the server physics are changed (by editing the gamemod and using “reset settings” in the server monitor program) while a player is connected to the server, the client is not informed about the change. This makes its predictions on acceleration incorrect, resulting in choppy movement. This is fixed in rev. 13.

Error in flag carry time stats on server side

On the server side stats, a player’s flag carry time becomes negative if they’re carrying the flag when the round ends.

Pressing F5 in the menu can assert

The server configuration display which can normally be opened by pressing F5, is also opened while in the menu which is not the intended behaviour in itself. When F5 is pressed before having been connected to a server, an assertion is the result. This is fixed in rev. 13.

Assertion failed: (build.size() & 1) == 0, file antialias.cpp, line 421

On maps with certain patterns, this assertion can happen. None of the previously seen maps seem to trigger it – it was found when designing a new map. It’s fixed in rev. 13.

Assertion failed: flag != -1, file world.cpp, line 1508

This was reported to happen occasionally. After a great effort of charting the relevant function calls (which are a mess, really) I think it may be fixed in revision 12. If not, it must be something else that I can’t see in the code.

Server becomes unresponsive after a player tries to connect but is rejected

This happens for example when a player tries to connect to a full server or with a different version client. The bug has surfaced only with other bugfixes in revision 11 and does not exist in earlier revisions. After the rejection, further connection attempts by any player may result in the server not responding, and the server won’t shut down properly. This is fixed in rev. 12.

Memory leaks, potential misbehaviors and crashes

A whole bunch of miscellaneous smaller bugs of varying ages were found thanks to Valgrind. These fixes in rev. 11 prevent different kinds of bugs I’ve never experienced or heard reports of.

Segmentation faults when exiting (Linux)

Some occasional crashes when exiting Outgun have been fixed for rev. 11. They have only surfaced on Linux but might pertain to Windows too.

Own player name unknown to client

It’s possible to have a player name reported as (name unknown). In the reported instance it was the player himself. This was probably due to the “messages from server lost” bug, so we hope it has also been fixed with revision 11. Report if you still have this, including your log/leetclientdata.bin.

Messages from server lost

This has happened a few times, and often for some players with bad connections. The client behaves very strangely, own shots aren’t seen, nor messages, and other things. This should be fixed for revision 11. This bug was originally reported by Huntta in 2004-04-19, but completed by MM-coiote by sending a leetclientdata.bin that helped solve it.

Assertion failed, antialias.cpp (Linux)

Assertions in antialias.cpp often happen on Linux in maps that have circular walls. This might also happen on Windows if you compile Outgun yourself, with a newer compiler. The cause is a feature of GCC (the compiler), but a workaround has been devised and it should not happen in revision 10 up.

Some gamemod settings don’t accept zero or negative values

Those floating point values in gamemod that shouldn’t be limited at all in the negative end, give an error when set zero or negative. This is fixed for revision 9.

Error about max_players at server startup, followed by a crash

It is possible to get the error message “ERROR: Can't change max_players while players are connected” when starting a server before any players have joined. This will also soon lead to a program crash. It is fixed for revision 9.

Team statistics: shots taken aren’t updated

The “shots taken” count of each team always shows 0. This is fixed for revision 9.

Wrong texture ordering

The wall and floor textures in a room are only partially drawn in the order they are listed in the map file. Instead, they are first ordered by shape (rectangular, triangular and circular). This makes it impossible to precisely control the placement of different textures of the same type (wall or floor). This is fixed for revision 8.

Room borders over walls in map

Without antialiasing, in some maps (and some resolutions) the gray room border lines in the minimap are drawn over the walls. There is no reason to keep the antialiasing off, it only slows down room changes a bit in the “on” setting and works the same speed in the “map” setting. Keeping this in mind, the full “off” setting is removed from revision 8. Having antialiasing disabled will correspond to the current “map” setting.

Assertion failed, client.cpp, line 1053

This assertion happens when you press F1 to enter help while trying to connect to a server:

Assertion failed: openMenus.safeTop() == &m_connectProgress.menu, file client.cpp, line 1053

It is fixed in revision 8. If this still happens with a newer version, or on any version without pressing F1, report it.

Crash when opening help

Opening the help page makes Outgun crash when the window is at least 720 pixels high so that all the help fits on one screen. This is fixed for revision 8.

Someone changing team with flag results in an assertion “!flag”

When someone changes team while carrying a flag, and later picks up a flag, this error can come up:

Assertion failed: !flag, file world.cpp, line 3116

Also there might be errors in the statistics for the player. This is hopefully fixed for revision 7.

Assertion failed, antialias.cpp, line 102

Getting a message similar to this is possible. It has been reported to consistently occur in the map Viemäri, but it depends on resolution and maybe other things.

Assertion failed: val >= -.0001 && val <= 1.00001 (int(val*1000000.)==-112), file antialias.cpp, line 102

This was hopefully fixed for revision 7.

Inaccuracies in the saved stats

The stats saved by the client might differ slightly from the real stats (the ones saved by the server). This was fixed for revision 7. If there still are differences in the stats (with the exception of small differences in times), they are an error, so report.

Player’s don’t always collide with player_collisions

It is a rare occurence, that players can get through each other even with player_collisions enabled, and not only at room changes. The bug is not fatal at all, but is fixed for revision 7 (hopefully).

Server settings on client don’t update on server settings reset

When the admin uses the srvmonit utility to make the server reload it’s settings (gamemod), the client’s server settings window (F5) isn’t updated with the new settings. This is fixed for revision 7.

Admin commands don’t work

Of the in-game admin commands, only /ban with a time works reliably. This seems to be an error in our C++ STL implementation, but it can be easily worked around so it’s fixed in revision 6.

Client map list gets corrupted by server settings reset

When the server admin orders a settings reset (gamemod reload) through srvmonit, the clients’ map lists don’t clear but the new map list is appended to it. This was fixed for revision 6.

Error: Address already in use

Error messages like this are possible: “Client can't connect to master server. Address already in use”. This is a deficiency in HawkNL (the network library) code, but it is easy to fix and a fixed version of nl.dll is in the rev. 6 support file package. Meanwhile, the workaround is to wait: Windows releases the port after a small timeout (around a minute).

Crash when connecting

A rare crash when connecting to server was investigated. This client-killing server side bug was hopefully fixed for revision 6.

Server password doesn’t work

If the player password is set for a server that has a server password, the server complains about wrong server password even if no server password was given. Also, even if the previous isn’t true, the client always throws an assertion when trying to enter a server password. These problems are fixed in rev. 5.

Setting fire button to 0 makes it fire constantly

Trying to disable the joystick fire button from the control menu (setting it to 0) makes the game think a fire button is constantly pressed. This was fixed for rev. 5.

Disabling “Use keypad for moving” doesn’t fully work

The “Use keypad for moving” setting added to rev. 4 wasn’t fully functional. Disabling it only disabled the diagonal keys (1, 3, 7, 9). This was fixed for rev. 5.

Player name left hanging after respawn

If showing player names is enabled, after a player dies and respawns, the player’s name is still shown to others in the place of death if the other player doesn’t know where the player moves to. It also affects some other situations where a player “disappears”. This was fixed for rev. 5.

Statistics are reset prematurely after a game

After a game is over, the server keeps sending stats updates, and with the right timing that will clear the client’s view of stats before the new game is begun. This was fixed for rev. 5.

Time limit doesn’t reset on all restarts

At least when the game restarts when a second player enters, the time limit doesn’t work properly. This was fixed for rev. 5.

High ping even on a local server

The combination of a graphics mode and FPS setting that make the game run at a lower speed than the FPS limit can cause a considerably higher ping. The lag prediction setting might be a factor too.

We try to address this in revision 4 by increasing the network thread priorities for the client. It should also make pings on remote servers slightly better.

What’s the part of the lag prediction setting is yet unknown. Use it only if you need it and feel it helps more than hinders. It doesn’t do much good when your ping is already under 100.

No background when alt-tabbing in flipped full screen

When you use the page flipping option (in fullscreen mode), and alt-tab out of Outgun and back, the room background is erased. It comes back when you move to another room or switch graphics modes. This is fixed in revision 4.

Player names are easily hidden with flag or deathbringer smoke

The player names are currently drawn too early and so get hidden under a large flag sprite (as in the metal theme), or deathbringer smoke. This is fixed for revision 4.

Occasional kick for client misbehavior on connect

On some occasions, the client gets kicked out of the server because of “client misbehavior” when just connecting to the server. Some additional logging has been added to the server for revision 2, and we’re expecting more information on this now. This might also have been a side effect of the crash bug. Please report if this happens to you.

Assertion failed, antialias.cpp, line 18

Getting a message similar to this is possible but should be rare.

Assertion failed: r2 - (y - cy)*(y - cy) >= 0 (int(r2*1000.)==81112, int(y*1000.)==33599, int(cy*1000.)==54812), file antialias.cpp, line 18

It’s possible this bug was also caused by the crash when trying to connect bug. If you have a similar message in revision 3 or newer, please report it.

Crash when trying to connect

We’ve had reports of Outgun totally crashing (GPFs) when trying to connect to any server. In analyzing one such crash, reported by ThOR27, a little coding mistake was spotted. It’s possible (but not sure) this was the cause for all the different crashes. Any crash with revision 3 is a different bug so please report that.

Erroneous “Extra-time out” message

The server sometimes says “Extra-time out” when the game restarts for other reasons. This was fixed for revision 2.

Problems with server monitor utility

There were some bugs with the server monitor (with player name reporting, muting players and sending invalid characters). They are now fixed, and revision 2 should work with srvmonit.

Error setting windowed graphics mode

Sometimes setting a graphics mode might fail even if the mode normally works on the machine. If you have this, please send log/clientlog.txt, we need more information (win the reported by).

Strafe always on

The game might at some time think you’re always strafing (as in pressing alt). The reported account was fixed by restarting the server. If you have this, please send log/leetclientdata.bin, we need more information (win the reported by).


Updated 2005-01-25 – Niko Ritari