[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