~swag/armagetronad/0.2.9-sty+ct+ap-fork

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
Changes since 0.2.8.2:

  New settings:
- LAG_*: controls game level lag compensation.
- FILTER_NAME_MIDDLE: collapses multiple whitespaces to one in player names.
- FORTRESS_CONQEST_TIMEOUT: if an enemy contact with a zone happens longer ago than
  this value, it is discarded from zone memory.
- TOPOLOGY_POLICE_PARALLEL, extra topology police flag to control the checks 
  for walls getting copied into the grid in exactly the same place.
- CAMERA_GLANCE_*: separate settings for the glancing camera, work like CAMERA_CUSTOM_*.
  Likewise, CAMERA_SERVER_GLANCE_* can replace CAMERA_SERVER_CUSTOM_* when glancing.
  CAMERA_*CUSTOM_GLANCE* are server side settings that can control whether server or
  clientside settings are used in various situations, see settings.cfg for details.
- CYCLE_BOOST_? and CYCLE_BOOSTFACTOR_? for boosts when breaking away from walls,
  see settings.cfg or config.html for details
- CYCLE_ACCEL_TUNNEL, works like CYCLE_ACCEL_SLINGSHOT, but is active when
  none of the two walls you're in between is your own.
- CYCLE_WIDTH for making it impossible to squeeze through tight tunnels,
  see settings.cfg for details
- VOTING_MATURITY controls how long you have to wait after login before
  you can issue kick votes.
- CYCLE_DELAY_DOUBLEBIND_BONUS is an extra factor applied to CYCLE_DELAY
  for turns in the same direction. Can be used to limit the advantage
  doublebinders get while not punishing players who press both left and
  right at the same time.
- LAG_O_METER(TRESHOLD|BLEND|USE_OLD): Configure the minimal size of the Lag-O-Meter, its color and whether to scrap it all and stick with the old one.

  Featurelets:
- The client now can hadle network traffic while it is waiting for the graphics
  card to swap buffers.
- The dedicated server no longer uses a fixed delay, but a select() call (that
  returns when network data arrives) to idle. When data arrives, it does 
  the minimum amount of work before it sends out the responses, resulting in
  lower latency. It is now safe to decrease DEDICATED_FPS to 20 or 10, latency
  is no longer influenced by that setting.
- Game level lag compensation. When a command arrives from a client that is delayed,
  it is backdated to the time it was issued, provided enough "lag credit" is left.
  The client is informed of the delay so it can compensate in the future, which it does
  by forging the game timer.
- Nonnormalized axes and axes with odd turning directions are now properly supported
- The camera has a memory which player you like to watch. Every time you manually switch
  the camera and your favorite player is not dead, the favorite is set to the currently 
  watched player. The next time the camera doesn't know what to watch, your favorite
  will be selected.
- Players leaving to spectator mode with <0.2.8.2 clients are handled like
  spectators of 0.2.8.2 clients: they stay visible to the others.
- Kick statistics are now persistent across server runs.
- MESSAGE_OF_DAY is now displayed fullscreen if both server and client support it
- Manual fullscreen messages can be triggered with
  FULLSCREEN_MESSAGE <timeout> <message content>
- Axes Indicators by meriton, can be enabled using the AXES_INDICATORS
  setting.
- New "About" menu item in the main menu displays the version of
  Armagetron Advanced, the paths it uses, links to the main site, wiki
  and forums and the names of the project admins.

  Bugfixes:
- Fixed various trail end related extrapolation/simulation inaccuracies that looked
  like lag.
- When extrapolating, the game's sensors never detected own or teammates' walls,
  it mistook them for enemy walls.
- The acceleration and boost system always used settings for enemy walls instead of
  settings for team players' walls. That means that old clients connecting to a
  0.2.8.3+ server that has CYCLE_ACCEL_ENEMY and CYCLE_ACCEL_TEAM set to different
  values experience syncing problems. The default behavior therefore is to lock 0.2.8.2
  and earlier out of your server if you set one of them away from the default. 
  If you want to set both accelerations away from the default, but to the same value,
  there won't be a compatibility problem; in that case, set CYCLE_ACCEL_ENEMY_OVERRIDE
  and CYCLE_ACCEL_TEAM_OVERRIDE to 0 and old clients will be allowed in. However, you
  should manually lock out players with 0.2.7 clients, for example by modifying
  CYCLE_ACCEL_RIM a tiny bit.
- "Team Red" bug. If the server allows maximally two teams, no team ever
  gets to be Team Red.
- Phasing made even more difficult; nice side effect of the fix is
  reduced network bandwidth usage.
- Speed gauge resets between rounds.
- More accurate Lag-O-Meter by meriton.

  Internals:
- A complete netsync cycle is now sn_Receive(); nNetObject::SyncAll(); sn_SendPlanned();.

Changes since 0.2.8.1:
- Timestamps and teamscores added to scorelog.txt
- Dedicated server now works on FreeBSD and OpenBSD
- User running the dedicated server is called "armagetronad" again, the
  longer "armagetronad-dedicated" caused problems with BSD
- Test versions refuse to connect to servers more than one version ahead
- Prepared client for respawns
- Team spawn formation is now configurable
- Added reasons to bans
- Added spectator autokicking
- Added history to chat and console (wrtlprnft). Press "Cursor up" to
  edit and repeat previous chats and console commands.
- You only enter a game once your client is synced
- /msg now prefers exact matches over partial matches
- Cycles now have better memory for pending turns (wrtlprnft)
- Added player join/leave/rename messages to ladderlog.txt with IPs
- Ping variance influence on packet loss tolerance code is now clamped
  by the regular, configurable, packet loss tolerance: effect of variance
  can be no bigger than the effect of ping.
- Spectators are now regular players and can chat
- The /msg command now converts the entered pattern into the internal
  name so if you write "/msg öäü" and there is a user named "öäü" with
  an internal nick of "oau" it will still get matched
- Team changes are now only executed when allowed, the need for the 
  temporary/permanent team imbalance setting distinction has gone away
- Added brake toggle button
  Bugfixes:
- Client sometimes crashed when leaving a server with AIs on over the menu
- The server starting scripts were chowning /var/run and /var/log to armagetronad
- Short names could crash the server
- Direct cycle collisions sometimes lead to both passing trough each other
- Init scripts now installed correctly with --enable-initscripts
- Hopeless pending team change wishes are deleted
- Large timesteps are now broken down into smaller ones on the game level 
- Pretend keys are released before entering chat
- Two cycle steering events were sent if you doublebound the brake
- Large speed boosts out of game rule bounds were possible during network
  glitches
- Debug recording reliability increased, function call with undefined return
  value eliminated
- Recording and scorekeeping no longer conflict
- Input during a recording now has an end marker, making quick keypresses
  after leaving a menu not break it
- CYCLE_RUBBER_DELAY was overridden sometimes by packet loss tolerance
- ALLOW_CONTROL_DURING_CHAT now ignores modifier keys like shift and
  has been reactivated
- The camera sometimes got stuck in free mode for the first round you watch
- Crashfix in hole blowing code when no cycle was set
- After a "perfect" 180, you're more often on the right side of your own wall
  That code caused some havoc at first, so it has been reworked
- The smart cam did not like fluctuating framerates
- Improved debug recording reliability: multiple master server visits
  and too quick keypresses were causing trouble.
- Canonical DESTDIR support and added ROOTDIR support for testing
- Login floods are detected and ignored
- Player name updates sanitized
- Disabled complicated feasibility tests for team menu entries, 
  they did not have the full information and were often wrong
- Team score only added to player score if no teamplay is possible

Changes since 0.2.8.0:
- INCLUDE console command now gives a file not found error
- ALL user given paths are validated for security problems in a special function
- Fallback to default map on map load failure works again (broken sine 0.2.8.0_rc4)

Changes since 0.2.8.0_rc4:
Bugfixes:
- SECURITY FIX: via a MAP_FILE path with included .., it was possible
  to write files anywhere, provided they did not exist previously.
  Clients with this vulnerability are locked out of the server now.
- ALLOW_CONTROL_DURING_CHAT has been disabled for now.
- Another connection termination bug.

Changes since 0.2.8.0_rc3: 
- Added spectator mode toggle key.
- Thresholds when a white background bar is rendered behind texts is
  now configurable in the expert section of settings.cfg.
- Ingame menu trigger key is configurable now, only ESC stays hardcoded.
- The map parser checks whether the map is stored at the right location.
- Map validation errors are now visible on the client.
- Made magic numbers used by the smart camera configurable for user tweaking.
  This is undocumented and unsupported.
- The server browser now shows a B beside the score to mark bookmarked servers.
 Bugfixes:
- -Os compile option is filtered out if GCC 3.3 is used, it makes the build go bad.
- Extremely low values of CYCLE_DELAY were not honored, an arbitrary delay of .005s
  was added to it.
- On entering a server, the camera would sometimes be stuck in free mode.

Changes since 0.2.8.0_rc2:
- Almost final artwork
- Moviepacks can now also contain texture replacements for the default cycle model
- Added number of teammates alive to HUD
  Bugfixes:
- Dual textured floor rendering is now disabled without alpha blending as it
  did not work anyway.
- Lag-O-Meter now has the correct size (the old, buggy one can be restored by
  setting LAG_O_METER_SCALE to .5).
- The network system made some IDs randomly unusable, causing zombie
  cycles, invisible walls and disconnections.
- The AI Team from a previous local game session was sometimes still visible
  on the score table in the following network game on a remote server.
- The server did not start a new match when temporarily, only spectators were online.
- Player walls were rendered twice.
- The server wrote console center messages to stderr.
- UNBAN_IP did not work at all.
- The code that should kill a cycle in performance/DOS protection
  circumstances just crashed.

Changes since 0.2.8.0_rc1: 
- Bugfixes:
  Dedicated server for Windows works again.
  Cycle turns are now executed more accurately on the server.
  Timer stuttering at end of round (was non-critical, but ugly).
  Custom camera did not turn when the internal camera was
  configured not to turn.
  Idle player kick code crashed when it kicked a client with
  many players.
  The code that removes inactive players after a while removed
  the AI players.
- Reverted smart camera movement to pre-beta4 behavior,
  the new code made some players seasick :)
- Ingame admin interface gives more useful information to the invoker 
- Small font rendering improvements
- Zone conquest message, if it is not the one that ends the round,
  now states the name of the zone owning team.

Changes since 0.2.8_beta4.2:
- Fixed bugs:
  Random client disconnection
  Another vote-not-appearing-on-client bug
  Invisible wall segments right after turn
  Arena initialization before all settings are transmitted from the server
  The server was using more rubber than the client sometimes
  Crash with moviepack and some maps
  Object sync messages not accepted by client in second network session
- Improved kill/suicide/team kill distinction (ENEMY_* settings)
- Chatbots and idle players can be removed from the game and kicked
  (CHATTER/IDLE_REMOVE_TIME,IDLE_KICK_TIME)
- Players/team leaders can pause the game before a rond starts (PLAYER_CHAT_WAIT*)
- Color codes can be filtered from player names (FILTER_COLOR_NAMES)
- New machine readable log file: ladderlog.txt
- Configurable and better core dump/team kill/suicide distinction algorithm
- Unknown settings are recognized now in configuration files
- All global key bindings (Grab mouse, pause and texture reload were left)
  are now configurable
- Player listing length limit adjusted so two teams/16 players fits on screen
- Less verbose upgrade warning messages
- Imposters can get a non-conflicting name (ALLOW_IMPOST[EO]RS)

Changes since 0.2.8_beta4:
- Fixed bugs:
  Windows version had a memory overwrite error causing crashes and weird behavior.
  The game quit when the chat key and a key bound to an instant chat were pressed to quickly.
  Votes expired too early on the client.
  Performance: a lot of unused temporary walls were hanging around each round.
  Cycles sometimes warped to odd locations.
- Tweaked smart camera to not stay in front of the cycle so much.
  Tweaked smart camera custom glancing.
  Report back whether you like or hate it!
- Made custom camera even more configurable, changed default settings.
  (old ones are still in settings.cfg)
- Forced glancing end on cycle turn now looks better.
- FOV settings now deal better with wide screens/splitscreen mode.
- Increased ping measurements again by adding the fluctuations. The raw 
  average ping caused the game logic to be too picky.

Changes since 0.2.8_beta3:
- Famous fixed bugs: 
  Random huge felt lag or blank screen (it was actually a problem with the timer) is gone.
  Bogus "possible phase bug" message.
  Seemingly random walls popping out of nothing, only to disappear a second later.
  Random camera focus changes while you were still alive.
  Every 100th console line got deleted.
- Reduced pings! Actually, just the measurement is improved, the actual latency
  stays the same. I hope nobody notices that. Good thing nobody reads NEWS files :)
- New text editing convenience: Home and end keys work, and CTRL+left/right/del/backspace
  work on whole words. Thanks, Nemo!
- New instant chat functions: There are now 25 instant chat strings. If an instant
  chat string ends in a \, it will not be sent immediately, it's opened to be edited by you.
  Pressing an instant chat key while already chatting will insert the string, provided the
  key does not produce a regular character.
- If enabled by the server administrator: control your cycle while you chat.
- Turning speed of custom and internal camera can be adjusted with CAMERA_CUSTOM_TURN_SPEED
  and CAMERA_IN_TURN_SPEED.
- The custom camera zooms out from a closeup at round start. Useful to see your position
  in your team. Configurable with CAMERA_CUSTOM_ZOOM.
- Master server redundancy enabled. Thanks to Lucifer for hosting the backup master!

Changes since 0.2.8_beta2:
- More bugfixes: most annoying was the crash/infinite loop a server got in when
  the master server was unreachable
- Added zones to map specification
- Reworked top level map format (sorry to the map makers for the inconvenience)
- Windows: added start menu entries that open the system and user data directories
- Bandwidth limitation now works. That means if you lowered the bandwidth
  limits in the network setup, they were not respected. You probably should
  readjust them.

Changes since 0.2.8_beta1:
- bugfixes, of course
- added recording and playback startmenu entries for Windows
- abuse prevention: added IP banning, player number per IP and client limit, 
  doublebinding can be crippled on server command

Changes since 0.2.7.1:
- Server side cycle synchronization issues fixed:
  destination removal fixed
  lag sliding caused by different interpretation of grinding turn commands on client and server fixed
  niceness for older clients: sync interval decreased, no sync in front of wall to prevent local tunneling
- Client side cycle synchronization issues fixed:
  smooth corrections now only affect the appearance, the correct values are used internally
  sync messages are no longer ignored,
  new extrapolating sync method implemented,
  ghosting fixed,
  wall ends sticking out fixed ( for enemy cycles ),
  the sophisticated distance based sync code implemented years ago is now actually used, oh dear.
- Performance improvements:
  netobject synchronization does no longer traverse all netobjects
  disabled gameobject-gameobject interaction
- added support for nonorthogonal driving directions
- added support for debug recording and playback
- switched to using automake

Changes since 0.2.7.0:
- Fixed security issues: fake message ID crash, fake peer ID crash ( both
  maybe could be used to execute arbitrary code ), fake logout exploit, fake
  connections DOS attack
- The feared "left grid" error message has been replaced by recovery code
- Fixed transfer of infinite floats over the network
- Fixed network timer inaccuracies on long running servers
- Fixed rip bug ( for those who like it: search and you will find )
- Fixed wall bending ( there is still some wall bending left, but it will be
  too small to notice )
- Fixed tunneling bugs ( you were able to move from one side of a wall to the other )
- Fixed bounce bug ( a small zigzag towards a wall sometimes put you further
  away from it, leaving a hole )
- Fixed massive reference counting overflow crash caused by repeated close grinding/180ing
- Made rubber code customizable and frame rate independent ( new CYCLE_RUBBER_
  variables in settings.cfg )
- For debugging and scripting: dedicated server console messages can be
  decorated with client ID and IP
- Topology police: facility to catch tunneling issues after they happened. off
  by default
- Cycle network code is more robust
- Update frequency of cycle position now configurable and more frequent for
  client's own cycle that the rest by default
- Corrected rc.d scripts to start the server as a system service
- Voting more configurable: voters can be made public, spectators can't vote
  any more by default
- Moviepack floor color fixed
- Hostname lookup failure fixed
- "PLAYER_1 nick" console command problems fixed
- Windows libraries moved out of the main source tree
- Source code now compatible with 64 bit and gcc 3.4
- Colored explosions!
- HUD enhancements: customization, works in splitscreen mode
- Directory scanning code added ( not yet visible, will be used for
  moviepack/cycle selection )
- Moviepack sky texture support
- Master server can now run on windows, too
- Explosion sound now actually works

Changes since 0.2.6.0:
- added HUD
- Winzone may now be a deathzone

Changes since 0.2.5.2:
- Split custom camera into server defined and client defined custom camera
- Fixed monster chat message exploit
- Added local player silencing
- Added Kick voting
- Added player names on cycles ( implemented by Christian Reitwiessner )
- Harsher ( and configurable ) spam protection
- Fixed strangely bent walls

Changes since 0.2.5.1:
- Fixed fullscreen toggle while chatting
- Disabled trilinear filtering for ATI cards by default ( to avoid lockups )
- Worked around flawy S3 texture storage
- Fixed crash when trying to change teams in spectator mode

Changes since 0.2.5:
- Another go at the "11th Round Bug"
- Player list is now sorted after displayed score ( before: some invisible combination of team score and own score )
- Fixed brakes when connecting to a 0.2.4 or earlier server
- Updated FAQ with server setting hints
- Unified Windows and Unix network code
- Fixed texture hardware mode
- Less connection losses
- Fixed network ID related crash
- Added player names to information you get from a server
- Added window-fullscreen toggle key and separate setting of screen resolution/window size

Changes since 0.2.4:
- Fixed online observer mode switching
- Fixed command line options
- Fixed player quit message
- Fixed AI join message
- Fixed double registration of some network objects ( had no known visible symptom )
- Added security checks to see if Armagetron is run correctly
- Fixed big brother ( reporting of OS, graphic card and version to the master server )
- Disabled memory manager by default
- Fixed single player exit game crash
- Fixed zero length sting receive crash
- Completed network version control
- Added timestamps to logfiles ( code fragments by k_at_work )
- Added reason to login deny/kick messages
- Fixed 11th round bug ( additional round started after match end )
- Added --doc command line switch to print offline version of online help
- Fixed sign of rise/drop highscore messages
- New console commands: quit/exit ( dedicated server only ), kick <player name>, center_message <message> and console_message <message>
- New setting item: MAX_CLIENTS
- Improved server browser, less skipping around
- Added instant win zone
- Cycle brake is now of limited duration

Changes since 0.2.3:
- Fixed score display ( really! )
- Fixed freestyle mode round counting
- Fixed server freezer
- Fixed explosion sync
- Fixed AI crashes when player leaves in mid-battle
- Fixed configure script: now really uses sdl-config
- Speeded up deletion of unreachable servers
- Fixed endless recursion bug ( "11th player bug" )
- Moved team start positions further apart
- Player name is now taken from $USER on first start and player color is randomized

Changes since 0.2.2:
- Fixed highscores and ladder
- Delayed score deletion after match end
- Fixed autoexec.cfg loading
- More automatic rebuilding
- Fixed dedicated server idle quitting
- Fixed auto AI
- Fixed instant chat
- Fixed score display for many players or long player names
- Fixed very rare client crash
- Fixed not so rare release only crash
- Fixed balance-related typos
- Tweaked smart camera so that it works well when braking
- Fixed finish mode game setting

Changes since 0.2.1:
- Fixed another connection-loss bug
- Fixed observer freeze
- Observers now don't just get kicked when nobody else is online
- Fixed software renderer detection
- Updated FAQ
- Fixed config file loading on some architectures
- Improved team coloring
- Fixed stuck brake bug

Changes since 0.2.0:
- Fixed crash when watching a quitting player

Changes since 0.2.pre4:
- Fixed crashes
- Fixed windows network connection problems
- Fixed clour related problems
- Added marker for own cycle to avoid confusion in team mode
- Changed directory placement: configuration resides in /etc/armagetron,
  user configuration in ~/.armagetron/var
- Data files added to ~/.armagetron/textures ( or /models or /sounds )
  are now loaded in favor of original data, allowing user specific mods

Changes since 0.2.pre3:
- Fixed some more rare crashes and lockups
- Fixed team handling: all team change operations now get only active
  on next round address
- Fixed moviesounds
- Fixed server-master server communications
- new installation method: make update ( keeps user configuration )

Changes since 0.2.pre2:
- Fixed some rare crashes and lockups
- Improved cycle handling over network
- It is now allowed to fight with an arbitrary large team against the AI
  regardless of the balancing settings
- improved rendering precision: z-fighting artefact are now uncommon,
  and at the same time early clipping on the near clipping plane

Changes since 0.2.pre:
- got rid of "zombie" players
- corrected team messages
- fixed chatting
- fixed 32 bit rendering

Changes since 0.1.4.9:
- it is now possible for players to form teams
- explosion now can blow holes in player walls
- delay added to wall disappearance after death
- finite wall length supported for snake-style gameplay
- arena size and game speed configurable in the menu
- the AI has been greatly improved
- there is an Internet master server active
- support for localization has been added, currently featuring 
  English and German
- AI players now have names
- the moviepack title screen is displayed
- Linux version: easier system-wide installation with RPM packages 
  or "make install"