Fix possible buffer overflow problem in default_player_spec
on Unix (thanks Steve Kemp).
* xconq.c (make_default_player_spec): Limit it to BUFSIZE -1.
* xtconq.c (make_default_player_spec): Limit it to BUFSIZE -1.
In due course, bump to xconq-7.4.1nb1.
Summary of changes:
- removal of USE_GTEXINFO
- addition of mk/texinfo.mk
- inclusion of this file in package Makefiles requiring it
- `install-info' substituted by `${INSTALL_INFO}' in PLISTs
- tuning of mk/bsd.pkg.mk:
removal of USE_GTEXINFO
INSTALL_INFO added to PLIST_SUBST
`${INSTALL_INFO}' replace `install-info' in target rules
print-PLIST target now generate `${INSTALL_INFO}' instead of `install-info'
- a couple of new patch files added for a handful of packages
- setting of the TEXINFO_OVERRIDE "switch" in packages Makefiles requiring it
- devel/cssc marked requiring texinfo 4.0
- a couple of packages Makefiles were tuned with respect of INFO_FILES and
makeinfo command usage
See -newly added by this commit- section 10.24 of Packages.txt for
further information.
redefines about which buildlink.mk files would care is BUILDLINK_X11_DIR,
which points to the location of the X11R6 hierarchy used during building.
If x11.buildlink.mk isn't included, then BUILDLINK_X11_DIR defaults to
${X11BASE} (set in bsd.pkg.mk), so its value is always safe to use. Remove
the ifdefs surrounding the use of BUILDLINK_X11_DIR in tk/buildlink.mk and
revert changes to move x11.buildlink.mk before the other buildlink.mk files.
*** 7.4.1
The Windows port has not been built, and probably won't build without
some work, because of networking changes in shared Windows/Unix code.
Made cconq build again.
*** 7.4.0
Hans Ronne contributed a new Tolkien-inspired game "Lord of the Rings"
(lord-rings.g), and its supporting modules 3rd-age.g and t-midearth.g.
Keir Novik's "Carrier Battles" (tailhook.g), a detailed game of WWII
naval combat, and "Coral Sea", a Coral Sea scenario for it, are now
part of the game library.
Erik Sigra and Michael Burschik contributed better random name
generators, for Swedish and German place names respectively.
Standard flags now include 16-pixel-wide versions, and the 8-pixel
version use more colors.
The program tracks views of units using individual objects, which
enables more accurate display of multiple enemy units stacked at a
single location.
Networked games can be started from a mix of interactive and
command-line invocations. The game module will not be downloaded
through the network connection, which makes startup faster.
Some unused and un-useful GDL constructs are gone, such as extension
properties, program-version, and image palettes.
The program supplies more feedback on why actions and tasks fail.
There is a "new" AI type named oplayer, which is just the previous
version of the AI. This is mainly for testing that the AI is actually
getting smarter rather than dumber.
There is now more control available for the behavior of independent
units, for instance, you can set whether they will research and build
other units.
Sides now get colors instead of numbers if they have no emblems.
Games can use unit images that fill an entire hex, where previously
they were limited to a smaller bounding box within the hex. This
is controlled by a new GDL variable "bigicons".
The tcl/tk interface now has a working isometric display mode.
The tcl/tk interface now lists only finished games by default,
and includes a button to list all games.
The Mac interface has many display improvements, from terrain
transitions to more floating windows.
The old Xt/Xaw interface has been removed, since it was no longer
being maintained.
There have been a host of minor improvements throughout the programs
and game libraries.
*** 7.3.3
Fix pathnames to tcl/tk libraries.
Fix Mac bugs: 1-bit images, loading of emblems from saved games, large
map handling, removed variants.
Add better solid colors in advterr.g.
*** 7.3.2
Fix crash with no-indepside games on Unix.
Add terrain images for advances.g.
*** 7.3.1
In Unix/Windows player setup, make separate buttons to add/remove
indepside AI and to configure indepside behavior.
Add --enable-alternate-scoresdir configure option.
Update config.guess and config.sub.
*** 7.3.0
This release accumulates over two years of changes throughout the
program. In general, the emphasis has been on improving the program's
usability, making the AI smarter, improving existing games, and
extending to Civ-type games, rather than adding random new games to
the library.
The Unix user interface has been rewritten to use tcl/tk. It includes
a full set of menus, resizeable panes in the map windows, buttons for
common operations, a mouseover display, and many additional map
display options. There is also a full set of dialogs for setting up a
game, plus a chat window to facilitate setting up networked games.
There is now a port to Windows, using the tcl/tk-based interface,
which means no more requirement to run an X server. The Windows port
still has bugs though.
The Mac interface now has floating windows for most auxiliary windows,
city and research dialogs, and more display controls, including
player controls over most colors and imagery used. Selected units
can now blink rather than being surrounded with a box.
Unix networking support now allows for more than two players in a
game, and the game setup dialogs are synchronized, so for instance
clicking on a variant checkbox causes all players' checkboxes to
change.
Hans Ronne added the game "Ancient Near East" (anc-near-east.g),
similar to Civilization but with more detail, such as different kinds
of wheat to discover. The included map of the Near East is
spectacularly large and detailed.
A Civilization II emulation (civ2.g) has been added. The game works,
but happiness is not implemented, most of the city improvements have
no effect, nor do the Wonders.
Linn Stanton added an extended version of the standard game (lhs.g)
that includes radar, artillery, aaa, engineers, mines, and minefields.
Many new graphic images are available, particularly for terrain.
Xconq can load images directly from image files in standard formats
(although only GIF is available at present).
Players in the standard game get towns with names appropriate to
their chosen nationalities.
It is now possible to play independent units as if they were a regular
side, and (more usefully), it's possible to have an AI run the
independent units. Watch out for the marauding barbarians!
A second AI type, the "iplayer", is available. It is a minimal
AI that does basic tactical planning for individual units, but
does not attempt to coordinate them.
A set of commands, agreement-draft etc, are available for setting
up agreements. (Agreement support is still incomplete though.)
New commands:
"c-rate" sets conversion rates for materials (division of
trade into science/shields/luxuries in Civ, for instance).
"collect" sets up a task to collect materials from terrain.
"research" sets per-side research into advances.
There is a new GDL type "advance", to represent scientific or
technological advances. Game designers can lay out a whole technology
tree, and either units or whole sides may do research to achieve
advances.
To allow "research" to apply to advances, the existing research
activity to develop tech levels has been renamed to "development".
Its characteristics remain the same however.
The "extract" action is available for units to get materials
directly from terrain.
A game design can include "advanced" units that are like Civ
cities; they are variable-sized, and can collect materials from
the surrounding terrain.
GDL includes many more variables, type properties, and tables.
Some of the more notable additions include:
global "combat-model", to choose algorithm for combat resolution
global "indepside-has-ai", to control indepside use of AI.
global "country-border-color" etc, to control colors used by
interfaces
side property "treasury", tables "gives-to-treasury" and
"takes-from-treasury", to accumulate materials for the
side as a whole
table "advance-needed-to-build", to define how the technology
tree enables the construction of unit types
table "terrain-density", to add random variation to synthesized
terrain
tables "unit-consumption-to-grow", "size-limit-without-advance",
and "side-limit-without-occupant", to regulate the
growth of advanced units (cities)
table "cellwide-protection-for", that controls protection for
all units in a cell
unit type properties "attack" and "defend", to define generic
attack/defense strengths
unit type property "advanced", to define advanced units
unit type properties "advanced-auto-construct" and
"advanced-auto-research", to automate the activities
of advanced units
unit type property "ai-tactical-range", to control the area
of awareness for a unit's tactical decisions
Sami Perttu contributed a supply system model; see doc/README.supply
for more detail on how to use in game designs.
The tcl/tk port includes experimental support for isometric display,
but this needs more work, and so is turned off by default. (See the
top of tcltk/tkconq.tcl to see how to enable.)
The Unix port uses autoconf for configuration. Xconq now conforms
better to FHS; library files reside in /usr/local/share/xconq, while
score files live in /var/lib/xconq/scores.
Many many bug fixes and smaller cleanups.