[conquest] Conquest 8.4 (stable) is available

Jon Trulson jon at radscan.com
Sun Aug 10 00:56:29 MDT 2008


         Source tarball:
         http://downloads.sourceforge.net/conq/conquest-8.4.src.tar.gz

         Optional musicpak (unpack in ~/.conquest/):
         http://downloads.sourceforge.net/conq/conquest-musicpak-8.3.tar.gz

         SVN tagged release:
         http://conq.svn.sourceforge.net/svnroot/conq/tags/conquest-8.4

         SVN current (possibly unstable) development:
         http://conq.svn.sourceforge.net/svnroot/conq/trunk


   Conquest 8.4, in all of it's glory is now availabe.  There turned
   out to be quite a few more changes than anticipated, but alot of
   bugs were fixed, some new enhancements added, and a great deal of
   code reorginaization and cleanup occurred.

   There is the HISTORY snippet for this release.

=-=
8.4 (stable) 08/09/2008

   - 8.4 stable release.

     Here are the main highlights of this release.  Due to the server
     and client changes, I would recommend an update to this release,
     but then, that's just me.

     - server changes:

       - correct some nasty off-by-one's (NUMPLANETS) in
         serverpkt.c:spktPlanetLoc() and spktPlanetLoc2().  Depending
         on your environment (OS, compiler, etc) your results could
         vary.  The typical symptoms would be reports of invalid packet
         types or sizes in the logs (client and/or server), and usually
         a rapid ship death with a killed-by of "Nothing in
         particular".

       - dead rework.  Now when you die in the GL client, you still get
         to watch the activity going on around your exploded ship.

         When you die, you can now press [ESC] to return to the main
         menu, or [TAB] to re-enter a new ship.

     - conquestgl changes:

       - new star textures

       - add support for mipmapping of textures.  Textures can specify
         the boolean 'mipmap' in their texture definition to specify
         that mipmaps should be generated for the texture.  This is now
         done for stars, planets, ships, and the doomsday machine.

         This improves the quality of these textures significantly when
         viewed at different sizes (scaling and magfactor).

       - nCP.c (cockpit): Fix case where when bombing or beaming, and a
         mouse macro is used, the relevant sound effects might not stop
         and proper state restored.

       - bombing graphics, phasers, and moons are now displayed in LR scan.

       - reworked the 'alt_hud' stuff.  When enabled, this would allow
         certain information (distance, direction) about a ship or
         planet that was last (i)nfo'd to be displayed.

         This option is now called hud_info, and is enabled by default.

         For the GL client, this data is displayed below the ship's
         status icon in the hud.  For the curses client, this
         information is displayed just below the viewer.

         The alt_hud config option is still present but does nothing.
         In the future it will be used to enable an experimental
         cockpit (hud/viewer), if one is ever written.

      - fix bug that prevented you from seeing your own torps on LR scan
        if you were at war with your team.

      - clients now compute orbital position directly rather than using
        the server's idea of your ship's position in orbit around a
        planet.  This provides for much smoother movement when you see
        ships (including your own) that are in orbit around fast moving
        objects.

      - rework the handling of the hud and it's associated data.

      - CQI:

        - fixup the CQI parser so that sections can be nested up to a
          depth of 15.  Get rid of the subsection crap^Wstuff - no
          longer needed.

        - add ability to inline animdefs directly into an animation.

        - fix a reduce conflict in 'stmt' grammer

        - improve error handling/recovery during parsing of certain
          sections.

      - General:

        - massive code cleanup - fixups for newer, stricter compilers.
          Rename/standardize variables/functions and relocate in
          appropriate source files and headers.  Clean up some of the
          internal API's.  Probably every src file was touched in some
          way :)

        - tcpwrap.c: only log successful connections if verbose/debug is
          specified.  Only 'access denied' events are always logged.

        - add a '-v' verbose option to the clients.  More '-v's
          increase verbosity.

        - fix some stupidness in sem.c.

        - sparc/solaris porting.  conquestgl works with OpenGL and
          sound if the appropriate requirements are met.

        - rework the way the playback speed and time is displayed in
          both the curses and GL clients.  Now show the percentage into
          the recording you are currently viewing, and instead of
          displaying the internal framedelay, show the 'speed' (1x, 2x,
          -3x, etc).

        - fix UDP error on Solaris (possibly others).  Use write()
          rather than sendto() when a UDP connection has already been
          properly established (EISCONN).

        - fix doomsday motion.  Instead of simply stopping when within
          range of a locked-on planet or ship, continue to stay in
          range when possible (ie: should the planet/ship move out of
          range).

      - New SourceForge project page (Conq):

        https://sourceforge.net/projects/conq/

        SVN URL's

        - current (possibly unstable) development

          https://conq.svn.sourceforge.net/svnroot/conq/trunk

        - tagged (official) releases

          https://conq.svn.sourceforge.net/svnroot/conq/tags/


   Here are the details of the changes since 8.3 stable:

   8.3c (devel) 07/22/2008

   - okay, another huge code cleanup, function/variable renaming, API
     cleaning, crap removing load of good fun.

   - can now see moons on LR scan

   8.3b (devel) 07/21/2008

   - rework 'dead' handling.

     - Now, at least in the GL client, when you die you will actually
       see it.

     - The 'dead' node has been converted to an overlay node.  After
       you've died, you will still see what is going on around you.

     - in the dead node, hitting ESC will take you back to the main
       menu, hitting [TAB] will re-enter your ship directly without
       having to go through the menu.

   - clients now compute orbital position directly rather than using
     the server's idea of your ship's position in orbit around a
     planet.  This provides for much smoother movement when you see
     ships (including your own) that are in orbit around fast moving
     objects.

   - fix doomsday motion.  Instead of simply stopping when within range
     of a locked-on planet or ship, continue to stay in range when possible
     (ie: should the planet/ship move out of range).

   - conquestd (server) changes

     - dead rework.  No longer sleep for 2 seconds after a ship is
       killed.

     - in the menu state, no longer wait for 1 second before updating
       the client.  Now we update at full speed.

     - got rid of the driver countdown timer.  There is really no need
       to kill the driver (if your client driver started it) just
       because your ship has been dead for more than 15 seconds.  This
       is the 21st century after all.

     - Older clients playing on newer servers will notice that you go
       immediately to the 'dead' screen when you die, since the server
       no longer sleeps for 2 seconds on ship death.

     - Newer clients playing on older servers will notice that when
       they die, ship and planet updates will decrease to one per
       second.  After 15 seconds, and if you are the only player,
       updates will stop entirely.

       Other than these changes in behavior, client/servers are still
       compatible.  As usual, use the latest client on the latest
       server for the best results :)

   - fix bug that prevented you from seeing your own torps on LR scan
     if you were at war with your team.

   - redo how data data is cached and stored in the GL client.  New
     hud.c and hud.h files handle the setting of hud information (alert
     level, warp, damage, etc).  Move this stuff out of GL.c.  Move hud
     caching out of gldisplay and into the hud data structs where it
     belongs.

     This should speed up hud endering somewhat by avoiding
     unneccessary computations and string generation.

   - reworked the 'alt_hud' stuff.  When enabled, this would allow
     certain information (distance, direction) about a ship or planet
     that was last (i)nfo'd to be displayed.

     This option is now called hud_info, and is enabled by default.

     For the GL client, this data is displayed below the ship's status
     icon in the hud.  For the curses client, this information is
     displayed just below the viewer.

     The alt_hud config option is still present but does nothing.  In
     the future it will be used to enable an experimental cockpit
     (hud/viewer), if one is ever written.

   - re-implemented the 'REPAIR' and 'CLOAKED' icon ship indicators to
     just render the text directly rather than use textures.

     got rid of the icon cloak and repair textures since their services
     are no longer required.  There were 8 of them, though only two
     were even being used.

   - got rid of the 'BETTER_ETA' defines.  This code has been in use
     forever, I think it works, so no need to conditionally compile it
     :)

   - initGLShips() - don't go all fatal on us just because some textures
     couldn't be found...

   - When pausing during playback of a recording, use the framedelay
     rather than spinning as fast as possible.

   - rework the way the playback speed and time is displayed in both
     the curses and GL clients.  Now show the percentage into the
     recording you are currently viewing, and instead of displaying the
     internal framedelay, show the 'speed' (1x, 2x, -3x, etc).

   - fix UDP error on Solaris (possibly others).  Use write() rather
     than sendto() when a UDP connection has already been properly
     established (EISCONN).

   - standardize how some buttons are referenced in the game's text for
     consistancy:

     RETURN -> [ENTER]
     TAB    -> [TAB]
     ESCAPE -> [ESC]

   - rename clPutShip() -> clbPutShip(), like most everything else in
     conqlb.

   - minor code cleanups


   8.3a (devel) 05/10/2008

   - correct some nasty off-by-one's (NUMPLANETS) in
     serverpkt.c:spktPlanetLoc() and spktPlanetLoc2().  Depending on
     your environment (OS, compiler, etc) your results could vary.  The
     typical symptoms would be reports of invalid packet types or sizes
     in the logs (client and/or server), and usually a rapid ship death
     with a killed-by of "Nothing in particular".

     This is a server-only bug, and all servers should be upgraded,
     whether or not your clients have seen this problem, since it's
     pretty certain that something important in memory will get
     corrupted :).

   - bombing graphics and phasers are now displayed in LR scan.

   - enable alpha testing in glfRender so that font glyph backgrounds
     aren't rendered (obvious in the text overlay nodes like ship
     list, planet list, etc).

   - nCP.c (cockpit): Fix case where when bombing or beaming, and a
     mouse macro is used, the relevant sound effects might not stop and
     proper state restored.

   - new star texture, based on prodding from Michael Derek Barnett who
     pointed me toward NASA's SOHO site
     http://sohowww.nascom.nasa.gov/data/realtime/gif/ .

     One of the images of the sun from this site was used, and with
     alot of GIMP majik, a new star texture was born :) I think it
     looks a lot nicer.  Note, stars will appear larger now, as a
     proper star should.

   - Per Derek Barnett, set Sirius to be a blue star, and Betelguese to
     be a red star, just like in real life :)

   - Add texture definitions (and appropriate colors) for the stars to
     the 00_plantex.trc file.  Remove all planet/star color
     specifications from conqinitrc as they don't really belong there -
     color is a texture property, not a planetary one...

   - Massive code cleanup, mainly related to the confusing use of
     Unsgn8 and char.  gcc 4.1.2 complains bitterly about these with
     '-Wall', so they have all been fixed up to use char where
     appropriate (strcpy, el .al) and Unsgn8 (packet data).

   - CQI parser:

     - fixup parsing routines to be 'flat' according to the current
       section, and only care about (nested) subsections when really
       neccessary.

     - fixup the CQI parser so that sections can be nested up to a
       depth of 15.  Get rid of the subsection crap^Wstuff - no longer
       needed.

     - add ability to inline animdefs directly into an animation.

     - add ability to derive inlined animdefs from previously defined
       global (non-inlined) animdefs.

     - remove the rmDQuote() function.  Now use checkString(), which
       ensures all strings specified to CQI are properly 'cleaned' at
       parse time :)

     - fix a reduce conflict in 'stmt' grammer

     - use a 'CQI' prefix to error/warning messages generated when a
       section is finished parsing.

     - remove multiple copies of 'check for banned substances' code
       since all strings are now sanitized as soon as they are parsed.

     - improve error handling/recovery during parsing of certain
       sections.

     - add ability to disable anim types within an animdef, by setting
       'stages' to 0, or in the case of toganims, delayms to 0.  Useful
       for derived animdefs.

     - remove the ability to specify a color specification within a
       planet definition.  Colors should only be specified with the
       planet's texture definition.

       This means you will need to update your
       <install_prefix>/etc/conqinitrc file maunally - if you have
       previously installed conquest, as color values can no longer be
       specified for a planet.  If you don't, then you will just get
       warnings since the conqinitrc file is not overwritten on
       an install...

   - texturesrc - inline most animdefs, and re-arange for the new
     world order.

     Derive the inlined 'bombing' animdef from the 'explosion'
     animdef.  Neat. :)

   - add support for mipmapping of textures.  Textures can specify the
     boolean 'mipmap' in their texture definition to specify that mipmaps
     should be generated for the texture.  This is now done for stars,
     planets, ships, and the doomsday machine.

     This improves the quality of these textures significantly when
     viewed at different sizes (scaling and magfactor).

     For now, the GL_TEXTURE_MIN_FILTER is set to
     GL_LINEAR_MIPMAP_LINEAR (highest quality).  The min-filter is
     currently not configurable, nor can mipmaps be completely disabled
     (without editing the texture config files) though they should be.

   - use iBufFlush to flush the input buffer when entering the CP, so
     that previously queued commands aren't issued when you re-enter a
     ship after you've died in glorious battle.

   - fix configure.ac to SUBST YFLAGS.  No idea why this is now needed
     (perhaps the switch to AC_PROG_YACC in a previous release?).

   - sparc/solaris porting.

     - Sparc (and probably everything else) does not really like
       unaligned accesses to the common block.  On sparc, a bus error
       occurs when certain CB accesses are made.

       Now, on non-x86 hardware, always align the CB structures on a 16
       byte boundary.  This should be done on all architectures, but I
       do not want to break x86 CB compatibility yet.  Soon though,
       very soon :)

     - prefer OS native curses libraries and header files to ncurses
       when available.

     - include termio before term in c_defs.h to avoid SGTTY compile
       issue.

     - include -lsocket and -lnsl libraries during linking.

     - fixed longstanding problem with the lexer on Solaris and other
       systems.  Apparently, 'WS' is already pre-defined somewhere, so
       rename 'WS' to 'whtspc' in the lex (*.l) files.  Got rid of the
       'OWS' tokens since we aren't using them anyway.

   - fix some stupidness in sem.c.

   - move metaserver query into the nMeta node, where it belongs
     (conquestgl).

   - makesrcpkg: make sure install-sh and ylwrap are executable.

   - add a '-v' verbose option to the clients.  More '-v's increase
     verbosity.

   - implement a generic ringbuffer mechanism (rb.h, rb.c). Currently,
     only ibuf (keyboard/macro handling) uses it, but in the future it
     will also be used for network buffers when that code is reworked
     to use non-blocking sockets.

   - tcpwrap.c: only log successful connections if verbose/debug is
     specified.  Only 'access denied' events are always logged.

   - correct/update some of the documentation for CONQINIT.TXT (CQI).

   - New SourceForge project page (Conq):

     https://sourceforge.net/projects/conq/

     - migrated svn source repo to sourceforge.

     - svn URL's

       - current (possibly unstable) development

         https://conq.svn.sourceforge.net/svnroot/conq/trunk

       - tagged (official) releases

         https://conq.svn.sourceforge.net/svnroot/conq/tags/


=-=


-- 
Happy cheese in fear                 | Jon Trulson
against oppressor, rebel!            | mailto:jon at radscan.com
Brocolli, hostage.       -Unknown    | #include <std/disclaimer.h>



More information about the Conquest mailing list