File: ChangeLog

package info (click to toggle)
xscorch 0.2.1~pre2-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 4,848 kB
  • ctags: 3,514
  • sloc: ansic: 30,552; sh: 9,843; makefile: 472; perl: 16
file content (1000 lines) | stat: -rw-r--r-- 42,737 bytes parent folder | download
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
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
$Header: /fridge/cvs/xscorch/ChangeLog,v 1.175 2009-05-24 19:38:44 jacob Exp $


ChangeLog for XScorch.
Copyright(c) 2000-2004 Justin David Smith
Copyright(c) 2000-2009 Jacob Luna Lundberg.


Changes in 0.2.1
------------------

   KNOWN BUGS:
    * RC - Rollers that hit an elastic floor cause an infinite loop.
      Search sphysics.c for TEMP to see where this goes wrong...
    * RC - Leap Frogs fail to leap in Interleaved Mode, because the land
      is not cleared by one explosion before the next missile is animated.
    * RC - We need to finish GTK2 support.  Most distros are dropping 1.2.
      1. GdkFont is deprecated, so all the font code still needs rewritten.
      2. A couple of spots with GtkText still need to be rewritten.
      3. Tooltips is deprecated in favor of Tooltip, a new interface.
         http://library.gnome.org/devel/gtk/unstable/gtk-migrating-tooltips.html
      4. sgtk/swidgets/sconsole.c:#define  __ALLOW_DEPRECATED_GDK__
         sgtk/swidgets/sdialog.c:#define  __ALLOW_DEPRECATED_GDK__
         sgtk/swindow-gtk.c:#define  __ALLOW_DEPRECATED_GDK__
    * RC - The configure script needs to test for host.h_addr_list[0] in
      <netdb.h> and set a variable so we can use it instead of host.h_addr.
    * Some moves/items are interpreted locally instead of sent through
      the network server like they should be.  It contributes to desync.
    * Graphics/Computers are fast - hangs and crashes have been reported.
    * The wedge code sometimes draws straight ends instead of rounded ones.
    * The man page is out of date enough to notice.


   BUG FIXES:
    * Audited for 64-bit pointers and should now run on 64-bit platforms.
    * Hans de Goede of the Fedora project fixed a stack smash in saddconf.


   MISCELLANEOUS:
    * Updated the FSF's address in our GPL notices.
    * Upgraded various autotools cruft so it kinda works with newer versions.


   GTK 2.0 CONVERSION
    * GTK >= 2.12.0 is now required.  I got tired of the GTK habit of
      constantly coming up with a new shiny thing and deprecating every
      way that used to be the right way to do stuff, so I am not going
      to even vaguely try to support GTK < 2.12.0.
    * Fixed segfault in some menus caused by incorrect use of GtkDialogBox.



Changes in 0.2.0
------------------

   KNOWN BUGS:
    * Some moves/items are interpreted locally instead of sent through
      the network server like they should be.  It contributes to desync.
    * Graphics/Computers are fast - hangs and crashes have been reported.
    * The wedge code sometimes draws straight ends instead of rounded ones.
    * Leap Frogs fail to leap in Interleaved Mode, because the land is not
      cleared by one explosion before the next missile is animated...
    * The man page is out of date enough to notice.


   BUG FIXES:
    * Removed excessive assertion in seconomy-gtk.c (thanks Gunnar).
    * Fix snet header file inclusion.
    * Only sa_handler OR sa_sigaction in handler (cross compatibility).
    * Repaired two bugs in sgame/soptions.c (fixes solaris compiles).


   MISCELLANEOUS:
    * License restricted to version 2 of the GPL.
    * Easter Egg wars :)
    * Fixed #warnings or changed them to /* TEMP */ for 0.2.0 release.



Changes in 0.1.16
------------------

   KNOWN BUGS:
    * Some moves/items are interpreted locally instead of sent through
      the network server like they should be.  It contributes to desync.
    * Graphics/Computers are fast - hangs and crashes have been reported.
    * The wedge code sometimes draws straight ends instead of rounded ones.
    * Leap Frogs fail to leap in Interleaved Mode, because the land is not
      cleared by one explosion before the next missile is animated...
    * The man page is out of date enough to notice.


   BUG FIXES:
    * Resolved the force shields bug, thanks to Jason House.
    * Switched to more accurate (and slower) mag shield computations.
    * Fixed bug where power was being reduced unfairly at start of turn.
    * Resolved the mag shields sign bug in 0.1.16-pre1 (Jason House).
    * Prevent Auto Defense from raising a dead player's shields.
    * Fix precision and yield calculations on triple weapons.
    * WTF?  Wrong scaling used again/still when life lost...
    * Fix napalm bugs including tunneling through solid rock and
      fizzling even with contact triggers.
    * Fixed argument parsing of -g, -S, and unknown option error reporting.
    * Replaced !vp->dead with SC_PLAYER_IS_ALIVE(vp) in sai/saiturn.c
      This should make dead people invisible to AIs.
    * Weapons no longer pass through shields, with or without triggers.
    * Cleanup of sphysics and strack code, and adding more safety checks.
    * Corrected minor memory leaks, and a potentially major NULL pointer
      dereference, in the console highlights code.
    * Added support for dynamically updating fonts on consoles.
    * Added Glib assertions to console code to help track down problems.
    * Fixed several significant errors in the flight trajectory code,
      involving improperly initialized values, broken invariants, and
      other minor errors that, added up, resulted in serious bugs.  This
      fixes issues with tunnelling weapons never detonating or dampening
      until impact with the ground.
    * Fixed several logic errors in the roller code.
    * xscorch binary no longer has a dependence on the installed man page.
    * xscorch binary no longer has a dependence on license or xscorch.txt
      files.


   ACCESSORIES:
    * Switched accessory info storage over to the data registry.


   ECONOMICS:
    * Created scoring.def config file and added readers (Jason House).
    * Switched economics scoring types over to data registry storage.


   WEAPONS:
    * Cleanup of the phoenix system code.
    * Created a weapon explosion dispatch that simplifies things.
    * Add phoenix action DETONATE which causes immediate detonation.
    * Made some weapon explosion types match the def file more closely.
    * Add a new weapon called the ``Black Market MIRV''.  =)
    * For the truly adventurous, added a debug-only weapon called
      ``Mr. Napalm''.  Think Mr. Fusion, only with... ah... napalm...
    * Switched weapon info storage over to the data registry.
    * Implemented the capability to detonate weapons at the tank barrel.
    * Implemented wedged blasts, allowing Riot Charge and Riot Blast.
      Thanks to Jason House for the wedged explosions drawing code.


   MISCELLANEOUS:
    * Fixed <string.h> functions all over the codebase.
    * Fixed compiler warnings caused by empty last case switches.
    * Resolved some ambiguities in string manipulations.
    * Added memcmpn to sstr. Analagous to strcmpn.
    * Added truly hidden options.  Insanity, indeed...
    * Implemented a registry for in-game data.
    * It is now possible to override the fonts.  Save a ~/.xscorch/config
      file and edit the entries in the fonts section.  I (Justin) find that
      adding this to ~/.xscorch/config helps a lot if you're on XFree86 4.x:
         fonts = font_class {
            fixedFont        = "-adobe-courier-medium-r-*-*-12-*-*";
            italicFixedFont  = "-adobe-courier-medium-o-*-*-12-*-*";
            boldFixedFont    = "-adobe-courier-bold-r-*-*-12-*-*";
         }; End of block fonts
    * Added font selection interface.  It's not quite done yet, but you can
      access it from the main menu, or from the Graphics options window. It
      sort of works; the status bar gets reset, which can be annoying in
      the middle of the game, but the other consoles seem to update fine.
    * Converted over to using embedded libj libraries, instead of manually
      imported files for registry/string functions.
    * Added --enable-debug configure option.
    * Updated the ChangeLog. Numerous times...
    * Reorganized includes throughout the codebase.  From now on they are
      supposed to be rather alphabetized, so please sort when you add. ;)
      A note on that:  xscorch.h and sgtk.h break the rules, as they *must*
      be listed first if they are included at all.
    * Compliance with C99.
    * Fixed up and commented lots of trajectory code in sphysics.c.
    * Link problem on binary in OpenBSD - need explicit -lm (Jesse Meyer).
    * Fixing lags in interface caused by state machine problems.
    * Updated libtool, dispite what a PITA it is.
    * Hasn't anyone figured out what --insanity does yet?


   GTK 2.0 CONVERSION
    * Initiating conversion of interface code to GTK 2.0.  The 2.0-specific
      code is NOT WELL TESTED yet.  To force GTK 1.2, use the new configure
      option --with-gtk-12 (currently this is the default).  To force GTK
      2.0, use --without-gtk-12.  Once GTK 2.0 support is stable, the default
      will change to using GTK 2.0 code.
    * Current issues:
      1. GdkFont was deprecated.  All font code will need to be rewritten.
      2. There is text which assumes latin-1 encoding, GTK 2 wants unicode.
         To complicate matters, I use EUC-JP encoding, so forget about
         entering unicode data from my terminals...
      3. A couple of spots with GtkText must be rewritten.  This has been
         partially done for ScDialog, but right now the font support is
         only partially there.
      4. Some signalling paths, notably for expose, are not compatible
         with GTK 1.2.  This will take some time to fix everywhere; for
         now, the code is at least drawing, and that's good enough for me.



Changes in 0.1.15
------------------

   KNOWN BUGS:
    * Force Shields are definitely rebounding at odd angles sometimes.
    * Graphics/Computers are fast - hangs and crashes have been reported.
    * Napalm can tunnel upwards through solid rock, erm...
    * AIs target dead people.  ``I see dead people...''


   BUG FIXES:
    * Removed extra slashes being added to SC_GLOBAL_DIR in sgtk/smenu-gtk.c
    * Added a signal handler for SIGPIPE and removed MSG_NOSIGNAL


   NETWORK:
    * Update tcpnet to 0.5, only change is removal of MSG_NOSIGNAL


   AI:
    * Added some support to allow AIs to use Shield Sappers, but it
      is disabled for now because most of them almost always miss...
    * Made AIs buy just a wee bit more aggressively.  If they lose the
      first several rounds, they're often effectively done for good.
      What we really need here is a complete overhaul, however.



Changes in 0.1.14
------------------

   This release is gearing up toward a possible 0.2 release, now that most
   of the weapons are implemented...

   KNOWN BUGS
    * Force Shields are definitely rebounding at odd angles sometimes.
    * Graphics/Computers are fast - hangs and crashes have been reported.


   BUG FIXES:
    * Fixed a segfault in _sc_spill_fill, when no walls were selected and
      napalm detonated off-screen.  Parts of the spill code were not using
      proper VCS.
    * Fixed up a quick hack for the ``useless items'' bug.
      (Turning display of such items off was causing a lockup.)
    * Fixed some of the long standing roller bugs.
    * Fixed another roller bug (lockup on direct tank impact).
    * argument misordering in memcpy() in snetconnect.c
    * Fixed order for winners/losers first
    * Call order breakage in sending auto defense shield orders.
    * Wrong scaling was used in reducing power when life lost.
    * Return Leap Frogs to reasonable y values before creating children.
    * Fixed the funky tank placement where some got platforms and some not.
      (sc_land_avg_height_around() didn't always get it right)
    * Fixed potential infinite loop in MORON AI
      (thanks to Mark Anderson for spotting)
    * Fixed minor error in console driver; it allowed nonprintable chars
    * Fixed the buggy allowreturn logic in sactiveconsole.c
    * Fixed a bug that allowed user to issue commands to AI if the AI
      spent awhile thinking (this was one heck of a ``feature'' :)


   ACCESSORIES:
    * Improved magnetic effect precision in mag shielding.
    * Added the Tank Defense window (for Auto Defense accessories).
      It's currently incompletely implemented but I wanted to check
      it in anyway while I go off looking for a checkbox widget...
    * Months later -- finished the Tank Defense window.  Yay!


   WEAPONS:
    * Fixed thia really naaty apelling error in the weapona def file.


   ECONOMICS:
    * Winnings now scale by initialcash, so as not to be trivialised
      by a high interest rate and initial cash setting.
    * There is now a Lottery option that awards a random weapon to a
      random player before each round.


   MISCELLANEOUS:
    * --insanity does something now :)
    * Status bar includes information on rounds.
    * Added PGUP and PGDN to the tank power key bindings.
    * Cleaning up hacks in inventory dialogue
    * Made player selweapon and selshield use info ptrs.  This also
      cleans up the former hack used to fix the ``useless items bug''.


   NETWORK:
    * The low level of the network has been switched over to a much cleaner
      packet engine designed for TCP specifically.  If all goes well, there
      won't be any real change to network games, but this will allow for us
      to start working on the areas of networking that need it...
    * Update tcpnet to 0.4, no interface or packet changes.



Changes in 0.1.13
------------------

   KNOWN BUGS:
    * There is some evidence that force shields may not be rebounding
      weapons in quite the right direction, but only occasionally.
    * Player drop, death and move events do not trigger a landfall on
      land above the tank (can only happen in certain circumstances but
      appears to be aggravated in Interleave mode)


   BUG FIXES:
    * Fixed buggy calculations for determining shield and tank impacts.
    * Fixed a nasty bug where double-clicking in inventory screen and
      other locations was interpreted as _three_ button clicks, not 2.
    * Fixed funky bombs so they will draw arcs when the center of
      detonation is at ground level (or more specifically, one pixel
      below ground level).
    * Fixed bug in scrollable active consoles, which caused mouse click
      events to be interpreted at the wrong locations when scrolled.
    * Fixed error in values displayed in inventory header (round count)


   INTERFACE:
    * Keybindings for shields have changed!  Press `e' to engage the
      shields now; the `s' key now toggles between shields which are
      currently in inventory, as it should always have done...
    * Status bar has been redesigned: there is a new option, Extended
      Status in game options window, which will bring up a two-line
      statusbar; the second line contains less vital information about
      the current game.
    * Added wind indicator to top-right of screen
    * Status bar now accepts mouse input on certain controls, to toggle
      weapons, activate shields, toggle triggers, use batteries, move.
    * Information about the currently selected item is now displayed at
      the bottom of the inventory screen.

   The currently selected shields are displayed in the status bar next
   to the strength of the current shield.  The display for currently
   selected shields is a bit cryptic, but it will help to know that
   shields are classified by their power, with a suffix indicating type:
   M for magnetic, F for force, and S for standard shields.  So, for
   example, `160M' represents a magnetic shield with 16000 life.

   When no shields are selected (i.e. you have no shields left in your
   inventory), the text `None' is displayed next to the shield power in
   the status bar.


   ACCESSORIES:
    * Remove shield probability hack.
    * Support for Magnetic Shields.
    * Support for Force Shields.
    * Disallow shields directly absorbing their owner's missiles.
    * Each shield type has its own colour.
    * Solar Panels can recharge some shield damage each turn.

   The magnetic shielding is a very complex piece to tune correctly
   so it may be a bit odd until we get it adjusted just right.  Feel
   free to e-mail us (particularly Jacob) with any suggestions as to
   tuning or functionality of the new shielding.


   WEAPONS:
    * Created the Shield Sapper weapon, which really saps shields.


   AI:
    * Worked on AI targetting, making them compensate for new shields
    * Added new option, "Always Offset" to the AI controller menu.
    * Added new option, "Scan Refinement" to the AI controller menu.
    * Updates to Annihilator AI, w.r.t. its budget
    * AI's now know how to buy and use batteries


   GAME PLAY MODES:

   Interleave mode is in development.  This will probably be renamed
   once it stabilizes, currently it is anything but stable.  When enabled,
   it basically means weapons and explosions are run in parallel -- the
   game will NOT stop to draw an explosion, other weapons will merrily
   continue to fly and detonate.

   The major problem with it right now is an issue of causality -- when
   do certain events occur?  F.e., land isn't cleared until an explosion
   clears (not as its exploding), which causes drastically different
   behaviour for spread weapons than the old state machine gave.  Whether
   this is a good or bad thing?  *shrug*

   If you really want to play with this, check the ``Interleave Tracking''
   checkbox in the ``Game Options'' window.  And watch out for levitating
   napalm :)


   MISCELLANEOUS:
    * Immobile tanks are identified in player screen with an `(I)'
    * Auto defense now automatically revives dead shields when the
      tank sustains damage
    * Cleaned up GTK dialogue code
    * Tank info and Tank Fuel screens now focus properly, and also
      accept the ESC key to close the windows out (in addition to
      Return)
    * Fixed most console windows so they FINALLY grab focus like
      they were supposed to do 10 releases back or so...
    * Added tooltips, and a configuration option in Game Options
      to turn tooltips off.
    * Console scrollbars now accept mouse input
    * Consoles now accept PageUp/PageDown to scroll
    * State machine overhaul (partly to support interleaving
      the various tracking states, making simultaneous explosions
      and weapon tracking possible)



Changes in 0.1.12
------------------

   This release should be considered to resolve most of the stability
   regression of the last release, except in the networking code, which
   is already marked with a big fat EXPERIMENTAL anyway.  ;-)

   BUG FIXES:
    * Fixed a nasty loop bug in the Moron AI weapons purchasing.
    * Enabled compile-time font selection (see sgtkfont.h).
    * Fixed a memory leak in an aibuy failure path probably nobody sees.
    * Fixed can-buy limitations for one-time purchases (like Triple Turret).
    * Removed const from info structs (no user-visible change I hope).
    * Fixed a `weapon inventories linger from one game to the next' bug.
    * Working on getting tunnelling to work properly...  Currently the
      tunnelling is working reasonably well (landfall is postponed until
      the weapon actually detonates) but there is some strange rebound
      going on when the weapon first impacts with land...
    * Implemented proper mechanism for making course corrections to a
      missile in FLIGHT mode, use sc_traj_revise_velocity(), do NOT attempt
      to modify the control equations directly.
    * Above fix also fixes tunnelling rebound bug
    * Fixed wind bug/quicksand bug in tunnelling by revising acceleration
      values while a weapon is tunnelling through the ground.  This finally
      makes tunnelling quite usable!


   TANK PROFILES:
    * Added two new tank profiles and renamed Default to Fortification.
    * Added support for more/less fuel-efficient tanks.
    * Added support for harder/softer tanks.
    * Added support for immobile tanks.
    * Added turretRadius option (affects both firing point and drawing).
      Make sure this value is large enough to be outside shield radius...

   Yes yes, so hardness isn't really a very good measure of how much damage
   a tank will take.  When I worked for a Titanium manufacturer they were
   constantly looking for that elusive balance of hardness and strength that
   would work best on tanks.  It's worth a lot of money...  Plus real tanks
   tend to have this brittle filler crap that is supposed to absorb the
   shock from direct hits.  Turns out that otherwise the concussion will
   often do in the tank's occupants even if the tank itself isn't really
   breached.  Hmm.  So anyway, it's a computer game.  Let's just call it
   hardness, ok?  =)


   ACCESSORIES:
    * Fixed contact triggers so they're only consumed if they're consumable.
    * The accessories.def version of the weapons.def file is now supported.
    * Added batteries for repairing tank damage (and therefore allowing you
      to restore full firing power when damaged, see below).  To use a single
      battery on a damaged tank, press `B' -- it restores 5% of life.


   WEAPONS:
    * The yield calculations of spider weapons (funky bomb) are increased
      by 50% to more accurately model the yields given in the real code.
      On average, 75% of legs are detonated, not 50% as assumed before.
    * Remove the phoenix debug output that snuck into the last release.
    * Restored the functionality of the DEFER state flag.
    * Resolve remaining Leap Frog issues.
    * Firing power is limited by tank's life (i.e. damage sustained directly
      to tank will affect maximum firing ability)
    * Added precision weapons buying for Choosers and Calculators.
    * Made AIs that buy from lists of weapons a bit less predictable.
    * Introduced notion of ground damping to tunneling weapons.
    * Ground damping constant can be controlled in Physics Options window.


   MISCELLANEOUS:
    * Fixed AUTHORS to credit Brian Bassett as the new Debian maintainer.



Changes in 0.1.11
------------------

   KNOWN ISSUES:
    * This release may be a regression in stability.  There are changes
      to internal game structures that the network code definitely has
      NOT been updated for, in particular.  0.1.10 is more stable, but
      hey -- this release has rollers :)
    * For most accessories, you can only purchase one bundle right now.
      Don't know why, but bug will probably be cleared once accessories
      are moved to the config files.
    * Tunnelling leaves a lot to be desired.  It produces ah... amusing
      effects -- probably also why digger/sandhog weapons don't work.


   WEAPONRY AND ACCESSORIES:
    * Roller weapons are now supported.
    * Work is in progress on the digger/sandhog weapons.
    * Work is in progress on tunnelling/contact triggers.
    * Auto-defense is now implemented, so sequential mode is now
      playable :)  Auto-defense will just bring up the best shields
      that you have at the beginning of the round; not too fancy
      right now.  Includes AI support for auto-defense.
    * Fixed bug in napalm spill code that caused napalm weapons to
      fizzle unexpectedly in certain terrains.
    * Really fixed the fuel bug this time...
    * Check out the new weapons.def file!


   NETWORK:
    * Player status is now sent across the network; the network
      information panel will tell you who else is in the game,
      their network address, and their current status.
    * Not much progress here this time.  Go play with weapons.def!
    * Network support is NOT compatible with previous releases, and
      currently no weapon configurations are sent across; so you
      will see _very_ interesting results if you mix-n-match the
      weapon.def files on each client.


   EXPLOSIONS AND ANIMATION:
    * Explosions now ``clear'' by erasing from the inside out.
    * Fixed redraw problem when using riot bombs (bug was introduced
      in the prerelease from the new explosion clearing code).
    * Dirt bombs and riot bombs now animate.
    * Fixed bug where tanks are not redrawn if buried, after land fall.
    * Further bugfixes in explosion drawing code.


   MISCELLANEOUS:
    * Fixed an omission in snet/Makefile.am that prevented compiling
      when mikmod enabled and installed in a nonstandard location
      (thanks to Will Andrews for spotting)
    * Various changes in the game timing.
    * ``None'' landscape added (mainly for debug: to test rollers).
    * Added support for loading user-defined weapons and tank
      profiles -- see the user config file for more.
    * Can now specify an alternate user config file to load, using
      the --config option on the command-line.
    * Build system updated; new configure option, --disable-sound,
      to disable sound support in the client.

   The changes required to bring the game's manipulation of weapons
   structures in line and allow loading of weapons files were not at
   all small ones.  I (Jacob) had to rewrite several functions in
   random places like saibuy.c and sinventory-gtk.c in order to allow
   this to work.  So in some ways this release may be a bit of a
   stability regression.  Please test it.  Go look in the weapons.def
   file and play in there too.  I will try and write some useful
   documentation on the structure of this file soon.  In the meantime
   there is some documentation inside sphoenix.h for the bold.  The
   next release will hopefully modify accessories to load from file.

   On the other side of things, the new weapons stuff definitely will
   have destabilized network games to the extent that you must make
   sure the client and server have the same weapons.def file.  In the
   future, the server will manage the weapons lists and this will
   alleviate this particular problem.  Networking is still in quite a
   transitional state anyway, and is likely to be unstable in other
   ways as well.  Look for big changes there in the ``near'' future.



Changes in 0.1.10
------------------

   NETWORK SUPPORT:
    * The network sync types are now checked.
    * Better documentation on the sync events in the code.
    * Chat dialogue box is hooked up.
    * We have packet ordering, but not yet retransmission or reordering
      so if tcp manages to drop a packet it's game over...
    * Lots of (now dead) bugs fell out of the new packet reception code.
    * Server is now allowed to configure most game options, even after
      other players have connected.  Clients may look at the game options
      but they will not be allowed to change the options.


   MISCELLANEOUS:
    * Some sundry speling fixces went in to the source commentary.
    * Sanity checking is performed before beginning a game.

   ``Bring out your dead...''
   ``But I'm not dead yet!''

   We're still here, just incredibly busy these days -- both of us are
   swamped in the vagaries of academia, work, research, and more work.  But
   there have been changes in the game, mostly to the networking code --
   we're trying to get it to be more stable.  Please give it a try, and let
   us know if it's working, etc.  See doc/NETWORK for some more information.

   We want to get the networking stuff stable before continuing work on
   other aspects of the game.  If you'd like to help out on anything in the
   game, just drop us an e-mail -- we'd love to have the help (and it could
   speed up the release cycle, too :) We'll try to get prereleases out more
   often, time permitting.



Changes in 0.1.9
-----------------

   BUG FIXES:
    * Deflector shield strength was too low/incorrect.
    * Fixed problem with shields taking the shot when player fires to
      right at 64degrees.
    * Fixed problem with signal handling that prevented GTK from
      exiting when various dialogues were open.
    * Fuel counter wasn't decremented when moving (I think this bug was
      introduced in the prereleases).


   NETWORK SUPPORT:
    * Gave up on UDP, ripped out xpuyopuyo's TCP codebase.
    * Implemented (mostly) variable length packets and a recv queue.
    * Fixed condition that might cause segfault regarding screen
      sizes (see #warning's in 0.1.8 for details)
    * Fixed misalignment caused by PRELUDE_BEGIN state (particularly
      noticable when given the --client command-line option).
    * Verification is sort of done on the current player state.
    * Merged recvfrom() calls into single function (Nickolai Zeldovich)
    * Fixed misalignments that were caused by a certain packet arriving
      out of order.
    * Messages are now displayed when client is waiting for some sort
      of network activity.
    * Player movement with fuel is now communicated.
    * Client code was cleaned up.
    * Network > Status option enabled in network games.  The server can
      see all client connections, although the client does not (yet) have
      that information.

   This is a significant overhaul of the network code base; we decided to go
   with TCP after all since the amount of data communicated is rather low.
   The network code is much more stable; we were able to play complete
   rounds over a rather unstable network link across 1000miles :)  Even the
   bugs in the program (levitating land?!) were consistent on both sides.

   There is better error recovery.  When a client drops off permanently, we
   will probably have their player permanently destroyed, or perhaps turn it
   over to an AI player.  Currently, nothing is done, so their tank will just
   sit there until the end of time or someone gets around to blowing it up :)

   The downside is 0.1.9 server can only talk to 0.1.9 clients; the protocol
   is not yet stable.  But it seems to be working better; if you want to
   give it a try, just do ./configure --enable-network



Changes in 0.1.8
-----------------

   NETWORK SUPPORT:
    * It's there.  It sort of works.  See below.
    * Merged network bugfixes by Nickolai Zeldovich
    * Added --port, --server, --client, --name commandline options
    * Config data/player information is synchronized, sort of.
    * Player orders and inventories are synchronized.


   MISCELLANEOUS:
    * Random walls implemented
    * Fixed bug with getopt() that prevented compile on SunOS
    * The animate flag is now used in land, player dropping

   This release is a bugfix-only release, unless you're following network
   development.  If you're following the network development, PLEASE read
   doc/NETWORK for the current status, especially before sending in bug
   reports.  Networking is disabled by default, you need to ./configure
   --enable-network if you want to try network play.

   There was a segfault-on-startup report on a libc-5 system, but we've been
   unable to determine if xscorch was at fault.  Anyone out there with Linux
   libc 5.3.12 who has been able to run xscorch?



Changes in 0.1.7
-----------------

   NETWORKING MODE:
    * Client/server communication code written.
    * Control messages and chat appear to be working.
    * Chat sort of works (can send, but text box isn't updated for recv)


   BUG FIXES:
    * VCS bug: tanks disappear when wrapping around - fixed.
    * VCS bug: tanks can colocate if in different frames - fixed.
    * VCS bug: distance calculation for damage could take long path even
      with wraparound boundaries, causing no damage to be dealt even
      though it is reasonable to expect damage - fixed.

   The virtual coordinate system (VCS) was implemented in 0.1.5 to make
   coordinate specification simpler, by allowing us to specify coordinates
   without having to worry about the boundary conditions all over the code.
   Unfortunately, this change broke a lot of things.  Hopefully they are
   fixed now.

   Networking code is disabled by default; you must configure with the
   option --enable-network to build the networking code.  NETWORK GAMES
   ARE NOT CURRENTLY PLAYABLE, but if you'd like to check out the code,
   help debug it or better yet, send in code, we'd appreciate it.



Changes in 0.1.6
-----------------

   BUG FIXES:
    * Fixed an off-by-one error that will cause segfaults on game start
      for most operating systems (even sometimes Linux).
    * Additional safeties to avoid a potential but unlikely segfault
      when verifying phoenix class weaponry.
    * make install now uses DESTDIR.


   PORTABILITY:
    * Removed some DEBUG defines that used ellipsi from xscorch.h.
    * Replaced variable array declarations with malloc/free.


   GAMEPLAY:
    * Tank profiles are implemented.  As a direct consequence, tanks can
      no longer occupy the same location on the screen.  Nor can they
      occupy the same position as a blob of land.  The physics model should
      be much better behaved, now.  This also means there will be user-
      selectable tank icons, in the near future.

   If you get any `levitation' warnings during the game, please contact us
   promptly.  I think I've resolved the levitation bug, but I'm not sure.



Changes in 0.1.5
-----------------

   BUG FIXES:
    * Fix minor alloc bug with AI controller (Nickolai Zeldovich).
    * Problems with attempting to install to `NONE' are hopefully fixed.
    * Since 0.1.2, funky bombs detonated near the edge of the screen could
      send legs in the wrong direction.  This has hopefully been solved as
      part of a large simplification in how land locations are specified.


   GAMEPLAY:
    * Player starting positions are now randomized (Nickolai Zeldovich).


   WEAPONS:
    * Liquid dirt implemented.
    * Triple Shots have gone away, in favor of the new Triple Turret
      accessory, which now impacts both baby missiles and missiles...
    * Weapon verification completed, one step closer to weapon save files.

   Ah, I forgot to release 0.1.4, in the midst of the system crash.  Let's
   see, Sequential mode has been implemented, but otherwise the changes from
   0.1.4 were minor.  Tank profiles (-> custom tank icons) are next on
   Justin's list, and user-defined weapons are coming up on Jacob's list.



Changes in 0.1.4
-----------------

   BUG FIXES:
    * Fix realloc bug that shows up in Solaris (Nickolai Zeldovich).


   GAMEPLAY:
    * Sequential mode implemented
    * Explosions are now faster



Changes in 0.1.3
-----------------

   BUG FIXES:
    * Bug prevented compiling without sound support, now fixed.


   GRAPHICS:
    * Napalm now has flames.  In the next version, they'll probably be
      animated flames.


   USER INTERFACE:
    * Pause feature: press ^Z.  This is only meaningful during actual
      firing but it's kind of handy to be able to pause the game while
      the missiles are flying...



Changes in 0.1.2
-----------------

   BUG FIXES:
    * Fix crash on startup:  0.1.1 introduced a realloc thinko because I
      wasn't really prepared to release yet.  The realloc was to remind me
      how it should get done...  This release makes sure to initialise that
      pointer first.  ;) -Jacob
    * Made Spider weapons (Funky Bombs) avoid potential lockup.
    * Fixed fatal bug with --geometry, when dimensions given were small.


   SOUND SUPPORT:
    * Sound support is present - see below for comments.


   USER INTERFACE:
    * Minor enhancements; status bar is now usable in small screens (it
      will split into two rows so you still have access to all the info)
    * Inventory lists will attempt to adjust to the current window size.


   MISCELLANEOUS:
    * `Unknown' AI added. This will select a random AI type, but
      you will not be informed which AI you are playing against!
    * `Random' landscape generator and `Random' sky selection.  These
      will select any of the landscape generators to construct land.
    * `Mass Kill', in the System Menu, is implemented.
    * Icon-related code updated.
    * Ditch Day's Tomorrow!

   Sound support is present, but as you'll quickly notice, there are no
   sounds yet.  Neither of us is particularly musically gifted, so if
   someone out there is willing to write modules and sound effects, that
   would be great!  The system is currently looking for XM files, although
   any format playable by libmikmod is fine.

   If you're interested in doing music, I've been thinking of splitting
   it into five parts, prelude, inventory screen, main game, end round,
   and end game.



Changes in 0.1.1
-----------------

   USER INTERFACE:
    * Merged icon, in xscorch-icon.xpm (Matti H´┐Żnninen).
    * New xscorch logo! (thanks to Claire Luna Lundberg)
    * Now you can find out who killed you (at end of round).
      Look for the horribly labelled `Xby' field.
    * Added --geometry command-line option
    * Inventory lists are scrolling.  Unfortunately, the scroll
      bars are not actually hooked up (yet).  Arrow keys will
      scroll through the list; I'll get the pager keys working
      someday.  Also, the inventory lists will be smarter about
      dynamically sizing in the next release.


   WEAPONS and DETONATIONS:
    * Version 1.0 of Riot Bombs, dirt weapons.
    * Ripped out constants all over the place to allow dynamic
      resizing of weapon and accessory lists.  This allows changes
      that will introduce save files for both categories.
    * Made RAND phoenix location work (mostly).
    * Killed one of the state flag ints in the sc_weapon struct.
    * New plasma explosion-drawing code


   LAND and GRAPHICS:
    * New landscape:  Canyon

   This release is primarily a bugfix release for folks who were having
   crashes when running the game on recent Debian and FreeBSD releases.
   The bug corrected is that of pressing Enter while in Inventory or
   certain other screens.

   In the meantime, enjoy the dirt bomb and riot charges :)



Changes in 0.1.0
-----------------

   LAND and GRAPHICS:
    * Merged Matti H´┐Żnninen's improved land generation code.
    * Finally fixed the land_level bug on right boundary.
    * Explosions wrap when wraparound walls are selected
    * Added support for dynamic screen size / other graphics
      options are implemented, and the graphics pipe has been
      optimized yet again.  Land draws fast, now!


   CONFIGURATION:
    * Configuration files have been written; can save the game
      options (well, most of them) by clicking the "Save Options"
      button in the main menu.


   WEAPONS and DETONATIONS:
    * Funky Bombs really work now.
    * Added "Black Rain" under arms level four.
    * Complete separation of location from function of phoenix
      weapons.  This will make some really twisted weapons possible
      to create if you tweak sweapon.c right.  But the weapons
      struct is rather poorly documented / commented right now...
    * Improvements to weapon yield calculations used by AIs.
    * Adjustments to scaling of Leap Frogs.
    * Trace Paths is implemented.
    * Napalm is implemented.
    * Players can die in several ways.

      Napalm is implemented.  It isn't all that great yet, but it
      is implemented.  Future improvements will bring along burnt
      land, and animated flames... for the time being, the relevant
      part -- the destructive power -- is there. :)


   AI CONTROLLER:
      The AI controller is implemented.  These options are global,
      they will affect all AI types.  These options will generally
      make the game quite miserable for the human players.

       - Human Target Practice:  AI's will always prefer human
         targets to AI targets (except for AI's that fire at
         random).  When playing against 9 Calculators, this can
         make your day pretty lousy.

       - Allow Offset Targetting:  generally, when a weapon hits a
         shield it does less damage than an explosion detonating
         right outside the shield (weapons hitting the shield do
         not have a chance to detonate).  This changes the AI
         targetting behaviour so they will deliberately aim outside
         the shield, if their intended victim has raised shields.

       - No budget constraints:  AI's will spend as much money as
         they can, disregarding their budget preferences.


   MISCELLANEOUS:
    * Fixed a serious timing problem in the game
    * Fuel has been implemented; press "F".  While in fuel menu,
      you can use buttons or the Left/Right arrow keys to move.
    * System menu implemented  (Ctrl-Y)
    * Explosions wrap when wraparound walls are selected
    * Added --yields command-line option
    * Options not implemented are marked "N/A"
    * Actual documentation exists, yay!

   At this point, the game is functional enough to go to 0.1.0.  The 0.1.0
   series will see addition of the missing weapons and accessories, and
   implementation of the remaining "N/A" options.

   Please note, that _two_ versions of the man page will be installed. One
   is a "standard" manpage, while the other is a text document which is used
   for the on-line game help.  You may remove the latter document, but the
   Help menu will no longer function.



Changes in 0.0.2
-----------------

   *  Justin: I broke smoke tracers. Hopefully they are fixed now.
   *   Jacob: Changed accessory lookup to model after weapon lookup.
              Created a weapon-specific yield calculation function.
              Increased velocity damping in Leap-Frog weapons.
              Made shield damage spill over when a shield fails.
              Made chain weapons get smaller not larger.
              Cleaned up and moved sc_phoenix_frog to sc_phoenix_chain.

   *  Justin: Major UI changes.  Console widgets are now implemented so we
         can have decent mouse support.  As time permits, these consoles
         will take on a style other than the current "block-character"
         format they are in.  The widgets will probably change in
         appearance, but the usage will remain the same.
   *  Justin: Overhaul of configuration dialogues

   *  Justin: Added --insanity command-line option.

   Thanks to everyone who dropped us a note about the first release -- we
   appreciate the feedback!

   There's not much new, in terms of gameplay.  This release is mainly a
   restructuring of the code, so most of the advanced weapons/accessories
   can be implemented.  Now that the code structure has more or less
   stabilized, this is a good opportunity for other interested developers
   to join the bandwagon.

   In the next couple of releases, most of the weapons and accessories will
   be implemented (and maybe a few new items as well) -- for all of those
   whose favourite weapon is napalm, don't worry -- it is at the top of the
   list :)



Changes in 0.0.1
-----------------

   *  Justin and Jacob: Coded like crazy.  Here's the result...