public inbox for xconq7@sourceware.org
 help / color / mirror / Atom feed
* xConq alternate combat engine project
@ 2004-07-04  0:05 Ramsey
  2004-07-04  0:24 ` Eric McDonald
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Ramsey @ 2004-07-04  0:05 UTC (permalink / raw)
  To: xconq7


             Hello everyone. I'm part of a small team (two people) of undergraduate students at Portland State University. We are looking into the possibility of building a pathway for alternate combat engines into xConq. 

              We have looked at xConq's code and played the scenarios that came with the latest distribution. We were impressed by the game's ability to model game systems like those used in Empire, Panzer General and Civilisation. Combat seems to be resolved as a situation where a single unit fires onto or attacts an enemy stack. The combat algorithm calculates the results based on the strengths and attributes of the opposing units and the results are applied. 

              What we would like to explore is the ability to substitute in other functions or other programs for the built-in combat resolution system. They would be functionally equivalent, taking in the same arguments and returning compatible return values. 

              Many war games have a two-tiered system; the most popular are perhaps the Total War series, where the armies on the strategic map battle it out on a 3D field. Others are the tactical card system used by Avalon Hill's boardgame "We The People" and the simple "battle plan" system used by the Advanced Risk game in the Hasboro's CDRom version of "Risk". Another system would make the user the combat resolution function, having them simply type the results back into the program (for officiated games or play-by-mail). 

              In the case of xConq, a separate interactive combat engine would be best for modeling conflicts where relatively small forces (closely clustered in a small number of armies) manoeuver around a large area and engage in a small number of decisive battles (i.e. the ancien regime conflicts of the 17th-18th century). Because these battles were so important, it would be good to have a system to model them without bringing the strategic map down to the scale in which it would allow tactical manoeuver (making it huge and unplayable). 

              What we would like to ask is:
1. Is there any logical way to do this without changing xConq's code?

2. If not, where might be a good fissure point in xConq's action/combat system to interface a "black-box" combat resolution system? Hopefully as early as possible after combat being joined.

3. We are having trouble compiling the program on Redhat Fedora. We are users on the system (don't have root) and our compilation errors match exactly those encountered by Lincoln Peters when he tried to compile it on Debian:
http://sources.redhat.com/ml/xconq7/2003/msg00966.html
Would the solution be functionally different?

               Thank you for your time. 
               
               Our idea, if this functionality is not already built into the system, is to add a GDL tag that would turn on this extension and give the system the name and/or location of the combat resolution system to be used.

 
Sincerely,
-Damian Ramsey, Chris Wood

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-04  0:05 xConq alternate combat engine project Ramsey
@ 2004-07-04  0:24 ` Eric McDonald
  2004-07-05 19:17   ` Christopher Wood
  2004-07-04  0:30 ` xConq alternate combat engine project Eric McDonald
  2004-07-04  0:43 ` Hans Ronne
  2 siblings, 1 reply; 17+ messages in thread
From: Eric McDonald @ 2004-07-04  0:24 UTC (permalink / raw)
  To: Ramsey; +Cc: xconq7

Hi,

Ramsey wrote:

> 3. We are having trouble compiling the program on Redhat Fedora. We are users on the system (don't have root) and our compilation errors match exactly those encountered by Lincoln Peters when he tried to compile it on Debian:
> http://sources.redhat.com/ml/xconq7/2003/msg00966.html
> Would the solution be functionally different?

I'll reply to your other ideas later. But, let's try to get you 
successfully compiling first....

I do not have any problems on Fedora Core 1, and that is my primary 
development platform.

Not having root should not be a problem. I always compile and install 
Xconq as a non-root user. I do use a custom installation path (set with 
the "--prefix" argument to the configure script).

I also have fixed a number of Debian-related issues over the past 8 or 9 
months, and I am not sure that the message from Lincoln, which you 
cited, is releveant any longer.

Could you provide the configure and make output from your unsuccessful 
build attempt? It would be useful for diagnosing the problem.

   Thanks,
     Eric

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-04  0:05 xConq alternate combat engine project Ramsey
  2004-07-04  0:24 ` Eric McDonald
@ 2004-07-04  0:30 ` Eric McDonald
  2004-07-04  0:38   ` Eric McDonald
  2004-07-04  3:39   ` Christopher Wood
  2004-07-04  0:43 ` Hans Ronne
  2 siblings, 2 replies; 17+ messages in thread
From: Eric McDonald @ 2004-07-04  0:30 UTC (permalink / raw)
  To: Ramsey; +Cc: xconq7

Ramsey wrote:

>              I'm part of a small team (two people) of undergraduate students at Portland State University. 
>We are looking into the possibility of building a pathway for alternate combat engines into xConq. 

Xconq already has two combat models. Model 0 resolves combat in such a 
way that each round must be explictly initiated, and involves only a 
single attack (with possibility of counterattack); combat hits are 
determined by tables of probabilities ('hit-chance', 'protection', 
etc...). Model 1 combat, which is used in the Advances and Civ2 games, 
loops until the combat is resolved, and relies on relative strength and 
defense values.

Following the example of Model 1 combat, you could conceivably add a 
"Model 2" combat system.

> What we would like to explore is the ability to substitute in other functions or other programs for the built-in 
> combat resolution system. They would be functionally equivalent, taking in the same arguments and returning compatible 
> return values.

Calling another set of functions for a new combat model shouldn't be 
that big of a deal. Talking to an external process would require that 
some IPC stuff be added to Xconq, or that the existing TCP/IP 
infrastructure be expanded.

> In the case of xConq, a separate interactive combat engine would be best for modeling conflicts where relatively 
> small forces (closely clustered in a small number of armies) manoeuver around a large area and engage in a small 
> number of decisive battles (i.e. the ancien regime conflicts of the 17th-18th century). Because these battles 
> were so important, it would be good to have a system to model them without bringing the strategic map down to the 
> scale in which it would allow tactical manoeuver (making it huge and unplayable).

Adding multiple scales is certainly something I have had in the back of 
my mind as something to do in the long term. However, to do so, would 
require significant work. If you guys are planning on doing this as a 
semester project or something, it would probably prove to be too much 
work in the given time frame. Even if you are doing this independently 
of any scholastic endeavor, you would probably want to familiarize 
yourself with Xconq better by working on a number of smaller things 
first, and maybe writing a game module or two....

>               What we would like to ask is:
> 1. Is there any logical way to do this without changing xConq's code?

You would have to write new code to add a new combat model to Xconq.
After we get the 7.5 release out the door some day, I hope to modularize 
  the combat system to the point that various custom models can be made 
just by toggling some booleans in GDL. But, we are definitely not there yet.

> 2. If not, where might be a good fissure point in xConq's action/combat system to interface a "black-box" combat 
> resolution system? Hopefully as early as possible after combat being joined.

I would suggest that you take a look at the various Model 0 and Model 1 
functions in 'kernel/combat.c'. Particularly, pay attention to how Model 
1 combat was spliced in.

>                Our idea, if this functionality is not already built into the system, is to add a GDL tag 
> that would turn on this extension and give the system the name and/or location of the combat resolution 
> system to be used.

There is already a 'combat-model' GDL tag. My recommendation would be to 
proceed along the lines of adding a new combat model.

Hope this information is of some help,
    Eric

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-04  0:30 ` xConq alternate combat engine project Eric McDonald
@ 2004-07-04  0:38   ` Eric McDonald
  2004-07-04  0:45     ` Hans Ronne
  2004-07-04  3:39   ` Christopher Wood
  1 sibling, 1 reply; 17+ messages in thread
From: Eric McDonald @ 2004-07-04  0:38 UTC (permalink / raw)
  To: Eric McDonald; +Cc: Ramsey, xconq7

Eric McDonald wrote:

> etc...). Model 1 combat, which is used in the Advances and Civ2 games, 
> loops until the combat is resolved, and relies on relative strength and 
> defense values.

Correction: It is used in Civ2, but not Advances. I was thinking about 
advanced units rather than combat models.

Eric

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-04  0:05 xConq alternate combat engine project Ramsey
  2004-07-04  0:24 ` Eric McDonald
  2004-07-04  0:30 ` xConq alternate combat engine project Eric McDonald
@ 2004-07-04  0:43 ` Hans Ronne
  2 siblings, 0 replies; 17+ messages in thread
From: Hans Ronne @ 2004-07-04  0:43 UTC (permalink / raw)
  To: Ramsey; +Cc: xconq7

>             Hello everyone. I'm part of a small team (two people) of
>undergraduate students at Portland State University. We are looking into
>the possibility of building a pathway for alternate combat engines into
>xConq.

<snip>

>              What we would like to ask is:
>1. Is there any logical way to do this without changing xConq's code?
>
>2. If not, where might be a good fissure point in xConq's action/combat
>system to interface a "black-box" combat resolution system? Hopefully as
>early as possible after combat being joined.

<snip>

>               Our idea, if this functionality is not already built into
>the system, is to add a GDL tag that would turn on this extension and give
>the system the name and/or location of the combat resolution system to be
>used.

Welcome to the list! Glad to hear that you like Xconq enough to think about
how to improve it.

As for your questions, Xconq already has two different combat engines,
called "combat model 0" and "combat model 1". Combat model 0 is the
traditional engine used in most Xconq games, while combat model 1 is
similar to combat resolution in Civ2 (absolute attack and defend values,
combat in several rounds until one unit is defeated). You decide what
combat model to use in a game by setting the GDL variable "combat-model".
if you want an engine with decisive until-death battles, you should use
combat model 1.

Right now, the two combat engines are intertwined within combat.c. I've
been planning to separate them and put them in different files. Once that
has been achieved, it would be easy to add more combat engines as plug-in
modules, similar to how the AI code already works (mplayer, iplayer etc).

Any code you would like to contribute would be welcome. We need more Xconq
developers.

Hans



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-04  0:38   ` Eric McDonald
@ 2004-07-04  0:45     ` Hans Ronne
  0 siblings, 0 replies; 17+ messages in thread
From: Hans Ronne @ 2004-07-04  0:45 UTC (permalink / raw)
  To: Eric McDonald; +Cc: xconq7

>Eric McDonald wrote:
>
>> etc...). Model 1 combat, which is used in the Advances and Civ2 games,
>> loops until the combat is resolved, and relies on relative strength and
>> defense values.
>
>Correction: It is used in Civ2, but not Advances. I was thinking about
>advanced units rather than combat models.

Combat model 1 is also used in the Lord of the Rings module.

Hans


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-04  0:30 ` xConq alternate combat engine project Eric McDonald
  2004-07-04  0:38   ` Eric McDonald
@ 2004-07-04  3:39   ` Christopher Wood
  2004-07-04  5:22     ` Christopher Wood
  2004-07-05  4:58     ` Elijah Meeks
  1 sibling, 2 replies; 17+ messages in thread
From: Christopher Wood @ 2004-07-04  3:39 UTC (permalink / raw)
  To: xconq7

Hi all. I am the other person in this group along with Damian. I'm not
at school right now so I can't get the information yet on the make and
congif. From what happened on my computer the configure did succeed.
Well at least it didn't give us any errors. And Damian is right that the
errors given by make were virtually the same if not exactly the same to
those in that link. What exact information do you want us to post about
it to clear up the problem? Anything outputted to the terminal
after we type the command?

Let me clear up a bit what our idea is for the combat engine, especially
since I am the one who has sort of been delegated to work on designing
this thing. Using the example of the Prussian campaign with the general
/leader container units, the idea would be to go to this external combat
system when a fight takes place. I have worked on some text based wargames
before where we developed rules and procedures to deal with lines of units
opposite enemy lines of units. While it would be cool to have it shrink
to a small hex grid for the tactical combat, I am perfectly willing to
enable this tactical engine just using a popup window with a text
interface.

The basic plan would be to have three parts of the army. A center or
vanguard and two wings. You would then place the units in the container
as you want within the three areas. Then there would be a limited option
of tactics that could be carried out. For example a simple one would be
have your center defend and overpower your wings to destroy the enemy
wings. Then when their wings are destroyed you crush their center, like
Cannae for example. With my knowledge of c and programming in it I am
fairly sure I can work out a text based system to do this. As something
else to look at, both Damian and me are working on a graphics course
this term as well. An idea would be to make a very basic open gl
interface.

From what you have said the most complicated thing would seem to be
figuring out the networking aspect of it, and doing things like the
functions that check if a function is progressing. To simplify the
above process, only a limited amount of features would be added to
the tac engine at first. And for added simplicity I'd say to make
it only workable with multiplayer, since then we don't have to deal
with the AI and how it would handle such a system.

Anyways I'll take your advice and try to figure out how we can create
a model 2 and see how the program works with model 0 and 1. What I have
found tricky is not the stuff within combat, but what I want to know
is what is calling combat, which I haven't been able to find yet. Then
again I've not looked that hard as of yet.

On Sat, 3 Jul 2004, Eric McDonald wrote:

> Ramsey wrote:
>
> >              I'm part of a small team (two people) of undergraduate students at Portland State University.
> >We are looking into the possibility of building a pathway for alternate combat engines into xConq.
>
> Xconq already has two combat models. Model 0 resolves combat in such a
> way that each round must be explictly initiated, and involves only a
> single attack (with possibility of counterattack); combat hits are
> determined by tables of probabilities ('hit-chance', 'protection',
> etc...). Model 1 combat, which is used in the Advances and Civ2 games,
> loops until the combat is resolved, and relies on relative strength and
> defense values.
>
> Following the example of Model 1 combat, you could conceivably add a
> "Model 2" combat system.
>
> > What we would like to explore is the ability to substitute in other functions or other programs for the built-in
> > combat resolution system. They would be functionally equivalent, taking in the same arguments and returning compatible
> > return values.
>
> Calling another set of functions for a new combat model shouldn't be
> that big of a deal. Talking to an external process would require that
> some IPC stuff be added to Xconq, or that the existing TCP/IP
> infrastructure be expanded.
>
> > In the case of xConq, a separate interactive combat engine would be best for modeling conflicts where relatively
> > small forces (closely clustered in a small number of armies) manoeuver around a large area and engage in a small
> > number of decisive battles (i.e. the ancien regime conflicts of the 17th-18th century). Because these battles
> > were so important, it would be good to have a system to model them without bringing the strategic map down to the
> > scale in which it would allow tactical manoeuver (making it huge and unplayable).
>
> Adding multiple scales is certainly something I have had in the back of
> my mind as something to do in the long term. However, to do so, would
> require significant work. If you guys are planning on doing this as a
> semester project or something, it would probably prove to be too much
> work in the given time frame. Even if you are doing this independently
> of any scholastic endeavor, you would probably want to familiarize
> yourself with Xconq better by working on a number of smaller things
> first, and maybe writing a game module or two....
>
> >               What we would like to ask is:
> > 1. Is there any logical way to do this without changing xConq's code?
>
> You would have to write new code to add a new combat model to Xconq.
> After we get the 7.5 release out the door some day, I hope to modularize
>   the combat system to the point that various custom models can be made
> just by toggling some booleans in GDL. But, we are definitely not there yet.
>
> > 2. If not, where might be a good fissure point in xConq's action/combat system to interface a "black-box" combat
> > resolution system? Hopefully as early as possible after combat being joined.
>
> I would suggest that you take a look at the various Model 0 and Model 1
> functions in 'kernel/combat.c'. Particularly, pay attention to how Model
> 1 combat was spliced in.
>
> >                Our idea, if this functionality is not already built into the system, is to add a GDL tag
> > that would turn on this extension and give the system the name and/or location of the combat resolution
> > system to be used.
>
> There is already a 'combat-model' GDL tag. My recommendation would be to
> proceed along the lines of adding a new combat model.
>
> Hope this information is of some help,
>     Eric
>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-04  3:39   ` Christopher Wood
@ 2004-07-04  5:22     ` Christopher Wood
  2004-07-05  4:58     ` Elijah Meeks
  1 sibling, 0 replies; 17+ messages in thread
From: Christopher Wood @ 2004-07-04  5:22 UTC (permalink / raw)
  To: xconq7

Oops. Forgot to say thanks for all the help.

Thanks,
Chris

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-04  3:39   ` Christopher Wood
  2004-07-04  5:22     ` Christopher Wood
@ 2004-07-05  4:58     ` Elijah Meeks
  2004-07-05 20:11       ` Christopher Wood
  1 sibling, 1 reply; 17+ messages in thread
From: Elijah Meeks @ 2004-07-05  4:58 UTC (permalink / raw)
  To: Christopher Wood, xconq7


 
> The basic plan would be to have three parts of the
> army. A center or
> vanguard and two wings. You would then place the
> units in the container
> as you want within the three areas. Then there would
> be a limited option
> of tactics that could be carried out. For example a
> simple one would be
> have your center defend and overpower your wings to
> destroy the enemy
> wings. Then when their wings are destroyed you crush
> their center, like
> Cannae for example. With my knowledge of c and
> programming in it I am
> fairly sure I can work out a text based system to do
> this. As something
> else to look at, both Damian and me are working on a
> graphics course
> this term as well. An idea would be to make a very
> basic open gl
> interface.

I think this is a great idea, and I hope you guys pull
it off.  I designed a system very similar to this for
and you're welcome to cull whatever you can use from
the old project site:

http://castironlife.sourceforge.net/combat/

I call my wings 'flanks' and I include a Reserve and,
later with technological advances, an Aircraft and a
Long Range Artillery box, but otherwise the basic
inspiration is the same.

Good luck and welcome aboard!




	
		
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-04  0:24 ` Eric McDonald
@ 2004-07-05 19:17   ` Christopher Wood
  2004-07-05 20:18     ` Christopher Wood
                       ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Christopher Wood @ 2004-07-05 19:17 UTC (permalink / raw)
  To: xconq7

Eric, here is the output from the configure and from the make. First
the configure

checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -E
checking if C compiler is actually a C++ compiler... checking for egrep... 
grep -E
no
checking for ranlib... ranlib
checking for a BSD-compatible install... /usr/bin/install -c
checking for ar... ar
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for Tcl configuration... found /usr/lib/tclConfig.sh
checking for Tk configuration... found /usr/lib/tkConfig.sh
checking for sdl-config... /usr/bin/sdl-config
checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include
checking for <sys/time.h>... yes
checking for <time.h>... yes
checking for struct timeval... yes
checking for struct timezone... yes
checking for <curses.h>... yes
checking for <ncurses.h>... yes
checking for gettimeofday... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating kernel/Makefile
config.status: creating lib/Makefile
config.status: creating images/Makefile
config.status: creating misc/Makefile
config.status: creating tcltk/Makefile
config.status: creating test/Makefile
config.status: creating curses/Makefile
config.status: creating sdl/Makefile
config.status: creating missing/Makefile
config.status: creating missing/snprintf/Makefile
config.status: creating missing/util/Makefile
config.status: creating SelFile/Makefile
config.status: creating x11/Makefile

And from the make

make[1]: Entering directory `/u/cwood/xconq/tcltk'
gcc -c -g -O2 -DUNIX  -I. -I./.. -I./../kernel -I./../missing     
-I/usr/X11R6/include  tkmain.c
In file included from tkmain.c:11:
tkconq.h:21:17: tcl.h: No such file or directory
tkconq.h:22:16: tk.h: No such file or directory
In file included from tkconq.h:33,
                 from tkmain.c:11:
tkimf.h:14: error: syntax error before "Tk_Window"
tkimf.h:14: warning: no semicolon at end of struct or union
tkimf.h:15: warning: data definition has no type or storage class
tkimf.h:19: error: syntax error before "Pixmap"
tkimf.h:19: warning: no semicolon at end of struct or union
tkimf.h:20: warning: data definition has no type or storage class
tkimf.h:21: error: syntax error before "mask"
tkimf.h:21: warning: data definition has no type or storage class
tkimf.h:22: error: syntax error before '*' token
tkimf.h:22: warning: data definition has no type or storage class
tkimf.h:23: error: syntax error before '*' token
tkimf.h:23: warning: data definition has no type or storage class
tkimf.h:24: error: syntax error before '}' token
tkimf.h:24: warning: data definition has no type or storage class
tkimf.h:44: error: syntax error before '*' token
tkimf.h:44: warning: data definition has no type or storage class
tkimf.h:45: error: syntax error before '*' token
tkimf.h:45: warning: data definition has no type or storage class
tkimf.h:50: error: syntax error before "cldata"
In file included from tkmain.c:11:
tkconq.h:103: error: syntax error before "Display"
tkconq.h:103: warning: no semicolon at end of struct or union
tkconq.h:114: error: syntax error before '*' token
tkconq.h:114: warning: data definition has no type or storage class
tkconq.h:115: error: syntax error before '*' token
tkconq.h:115: warning: data definition has no type or storage class
tkconq.h:116: error: syntax error before '*' token
tkconq.h:116: warning: data definition has no type or storage class
tkconq.h:117: error: syntax error before '*' token
tkconq.h:117: warning: data definition has no type or storage class
tkconq.h:118: error: syntax error before '*' token
tkconq.h:118: warning: data definition has no type or storage class
tkconq.h:119: error: syntax error before '*' token
tkconq.h:119: warning: data definition has no type or storage class
tkconq.h:120: error: syntax error before '*' token
tkconq.h:120: warning: data definition has no type or storage class
tkconq.h:121: error: syntax error before '*' token
tkconq.h:121: warning: data definition has no type or storage class
tkconq.h:122: error: syntax error before '*' token
tkconq.h:122: warning: data definition has no type or storage class
tkconq.h:123: error: syntax error before '*' token
tkconq.h:123: warning: data definition has no type or storage class
tkconq.h:124: error: syntax error before '*' token
tkconq.h:124: warning: data definition has no type or storage class
tkconq.h:125: error: syntax error before '*' token
tkconq.h:125: warning: data definition has no type or storage class
tkconq.h:126: error: syntax error before '*' token
tkconq.h:126: warning: data definition has no type or storage class
tkconq.h:127: error: syntax error before '*' token
tkconq.h:127: warning: data definition has no type or storage class
tkconq.h:128: error: syntax error before '*' token
tkconq.h:128: warning: data definition has no type or storage class
tkconq.h:129: error: syntax error before '*' token
tkconq.h:129: warning: data definition has no type or storage class
tkconq.h:130: error: syntax error before '*' token
tkconq.h:130: warning: data definition has no type or storage class
tkconq.h:131: error: syntax error before '*' token
tkconq.h:131: warning: data definition has no type or storage class
tkconq.h:132: error: syntax error before '*' token
tkconq.h:132: warning: data definition has no type or storage class
tkconq.h:133: error: syntax error before '*' token
tkconq.h:133: warning: data definition has no type or storage class
tkconq.h:134: error: syntax error before '*' token
tkconq.h:134: warning: data definition has no type or storage class
tkconq.h:135: error: syntax error before '*' token
tkconq.h:135: warning: data definition has no type or storage class
tkconq.h:136: error: syntax error before '*' token
tkconq.h:136: warning: data definition has no type or storage class
tkconq.h:137: error: syntax error before '*' token
tkconq.h:137: warning: data definition has no type or storage class
tkconq.h:138: error: syntax error before '*' token
tkconq.h:138: warning: data definition has no type or storage class
tkconq.h:139: error: syntax error before '*' token
tkconq.h:139: warning: data definition has no type or storage class
tkconq.h:141: error: syntax error before '*' token
tkconq.h:141: warning: data definition has no type or storage class
tkconq.h:142: error: syntax error before '*' token
tkconq.h:142: warning: data definition has no type or storage class
tkconq.h:191: error: syntax error before '*' token
tkconq.h:191: warning: data definition has no type or storage class
tkconq.h:192: error: syntax error before "hexpics"
tkconq.h:192: warning: data definition has no type or storage class
tkconq.h:193: error: syntax error before "hexisopics"
tkconq.h:193: warning: data definition has no type or storage class
tkconq.h:195: error: syntax error before "emblempics"
tkconq.h:195: warning: data definition has no type or storage class
tkconq.h:196: error: syntax error before "emblemmasks"
tkconq.h:196: warning: data definition has no type or storage class
tkconq.h:206: error: syntax error before "grays"
tkconq.h:206: warning: data definition has no type or storage class
tkconq.h:207: error: syntax error before "dots"
tkconq.h:207: warning: data definition has no type or storage class
tkconq.h:208: error: syntax error before "cursors"
tkconq.h:208: warning: data definition has no type or storage class
tkconq.h:213: error: syntax error before '}' token
tkconq.h:213: warning: data definition has no type or storage class
tkconq.h:269: error: syntax error before '*' token
tkconq.h:269: warning: data definition has no type or storage class
tkmain.c:18: error: syntax error before "tmp_root_window"
tkmain.c:18: warning: data definition has no type or storage class
tkmain.c:33: error: syntax error before '*' token
tkmain.c:33: warning: data definition has no type or storage class
tkmain.c:110: error: syntax error before "cldata"
tkmain.c:251: error: syntax error before "cldata"
tkmain.c:255: error: syntax error before "Tcl_Interp"
tkmain.c: In function `tcl_cmd':
tkmain.c:265: error: `ClientData' undeclared (first use in this function)
tkmain.c:265: error: (Each undeclared identifier is reported only once
tkmain.c:265: error: for each function it appears in.)
tkmain.c:265: error: `Tcl_CmdDeleteProc' undeclared (first use in this 
function)
tkmain.c:265: error: syntax error before ')' token
tkmain.c: In function `initial_ui_init':
tkmain.c:306: error: `Tk_Window' undeclared (first use in this function)
tkmain.c:306: error: syntax error before "tkwin"
tkmain.c:310: warning: assignment makes pointer from integer without a 
cast
tkmain.c:312: error: `TCL_ERROR' undeclared (first use in this function)
tkmain.c:313: error: request for member `result' in something not a 
structure or union
tkmain.c:317: error: request for member `result' in something not a 
structure or union
tkmain.c:429: error: `tkwin' undeclared (first use in this function)
tkmain.c:432: error: `ClientData' undeclared (first use in this function)
tkmain.c:432: error: syntax error before "tkwin"
tkmain.c:435: error: syntax error before "tkwin"
tkmain.c:467: error: request for member `result' in something not a 
structure or union
tkmain.c:482: error: request for member `result' in something not a 
structure or union
tkmain.c: At top level:
tkmain.c:523: error: syntax error before "cldata"
tkmain.c: In function `tk_library_paths':
tkmain.c:564: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:568: error: syntax error before "cldata"
tkmain.c: In function `tk_numgames':
tkmain.c:571: error: request for member `result' in something not a 
structure or union
tkmain.c:572: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:576: error: syntax error before "cldata"
tkmain.c: In function `tk_any_variants':
tkmain.c:578: error: request for member `result' in something not a 
structure or union
tkmain.c:579: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:583: error: syntax error before "cldata"
tkmain.c: In function `tk_listallgames':
tkmain.c:585: error: request for member `result' in something not a 
structure or union
tkmain.c:586: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:590: error: syntax error before "cldata"
tkmain.c: In function `tk_side_lib_size':
tkmain.c:592: error: request for member `result' in something not a 
structure or union
tkmain.c:593: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:597: error: syntax error before "cldata"
tkmain.c: In function `tk_side_lib_entry':
tkmain.c:603: error: `argv' undeclared (first use in this function)
tkmain.c:613: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:614: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:618: error: syntax error before "cldata"
tkmain.c: In function `tk_side_lib_entry_available':
tkmain.c:625: error: `argv' undeclared (first use in this function)
tkmain.c:638: error: request for member `result' in something not a 
structure or union
tkmain.c:639: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:643: error: syntax error before "cldata"
tkmain.c: In function `tk_interpret_variants':
tkmain.c:647: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:651: error: syntax error before "cldata"
tkmain.c: In function `tk_set_variant_value':
tkmain.c:658: error: `argv' undeclared (first use in this function)
tkmain.c:669: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:673: error: syntax error before "cldata"
tkmain.c: In function `tk_numttypes':
tkmain.c:675: error: request for member `result' in something not a 
structure or union
tkmain.c:676: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:680: error: syntax error before "cldata"
tkmain.c: In function `tk_numutypes':
tkmain.c:682: error: request for member `result' in something not a 
structure or union
tkmain.c:683: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:687: error: syntax error before "cldata"
tkmain.c: In function `tk_nummtypes':
tkmain.c:689: error: request for member `result' in something not a 
structure or union
tkmain.c:690: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:694: error: syntax error before "cldata"
tkmain.c: In function `tk_numatypes':
tkmain.c:696: error: request for member `result' in something not a 
structure or union
tkmain.c:697: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:701: error: syntax error before "cldata"
tkmain.c: In function `tk_numsides':
tkmain.c:703: error: request for member `result' in something not a 
structure or union
tkmain.c:704: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:708: error: syntax error before "cldata"
tkmain.c: In function `tk_maxsides':
tkmain.c:710: error: request for member `result' in something not a 
structure or union
tkmain.c:711: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:715: error: syntax error before "cldata"
tkmain.c: In function `tk_minsides':
tkmain.c:717: error: request for member `result' in something not a 
structure or union
tkmain.c:718: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:722: error: syntax error before "cldata"
tkmain.c: In function `tk_numfeatures':
tkmain.c:724: error: request for member `result' in something not a 
structure or union
tkmain.c:725: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:729: error: syntax error before "cldata"
tkmain.c: In function `tk_numscorekeepers':
tkmain.c:731: error: request for member `result' in something not a 
structure or union
tkmain.c:732: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:736: error: syntax error before "cldata"
tkmain.c: In function `tk_numtreasury':
tkmain.c:744: error: request for member `result' in something not a 
structure or union
tkmain.c:745: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:749: error: syntax error before "cldata"
tkmain.c: In function `tk_curmap_number':
tkmain.c:754: error: dereferencing pointer to incomplete type
tkmain.c:755: error: dereferencing pointer to incomplete type
tkmain.c:760: error: request for member `result' in something not a 
structure or union
tkmain.c:761: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:765: error: syntax error before "cldata"
tkmain.c: In function `tk_ttype_name':
tkmain.c:769: error: `argv' undeclared (first use in this function)
tkmain.c:771: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:774: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:778: error: syntax error before "cldata"
tkmain.c: In function `tk_atype_name':
tkmain.c:782: error: `argv' undeclared (first use in this function)
tkmain.c:784: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:787: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:791: error: syntax error before "cldata"
tkmain.c: In function `tk_t_image_name':
tkmain.c:796: error: `argv' undeclared (first use in this function)
tkmain.c:801: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:804: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:808: error: syntax error before "cldata"
tkmain.c: In function `tk_utype_name':
tkmain.c:812: error: `argv' undeclared (first use in this function)
tkmain.c:814: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:817: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:821: error: syntax error before "cldata"
tkmain.c: In function `tk_u_image_name':
tkmain.c:826: error: `argv' undeclared (first use in this function)
tkmain.c:831: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:834: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:838: error: syntax error before "cldata"
tkmain.c: In function `tk_mtype_name':
tkmain.c:842: error: `argv' undeclared (first use in this function)
tkmain.c:844: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:847: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:851: error: syntax error before "cldata"
tkmain.c: In function `tk_m_image_name':
tkmain.c:856: error: `argv' undeclared (first use in this function)
tkmain.c:859: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:862: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:866: error: syntax error before "cldata"
tkmain.c: In function `tk_side_name':
tkmain.c:870: error: `argv' undeclared (first use in this function)
tkmain.c:872: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:875: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:879: error: syntax error before "cldata"
tkmain.c: In function `tk_side_adjective':
tkmain.c:883: error: `argv' undeclared (first use in this function)
tkmain.c:885: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:888: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:892: error: syntax error before "cldata"
tkmain.c: In function `tk_side_emblem':
tkmain.c:896: error: `argv' undeclared (first use in this function)
tkmain.c:898: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:903: error: dereferencing pointer to incomplete type
tkmain.c:904: error: dereferencing pointer to incomplete type
tkmain.c:911: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:915: error: syntax error before "cldata"
tkmain.c: In function `tk_short_side_title':
tkmain.c:919: error: `argv' undeclared (first use in this function)
tkmain.c:922: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:925: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:929: error: syntax error before "cldata"
tkmain.c: In function `tk_side_ingame':
tkmain.c:933: error: `argv' undeclared (first use in this function)
tkmain.c:935: error: request for member `result' in something not a 
structure or union
tkmain.c:937: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:938: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:942: error: syntax error before "cldata"
tkmain.c: In function `tk_simple_player_title':
tkmain.c:948: error: `argv' undeclared (first use in this function)
tkmain.c:951: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:952: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:956: error: syntax error before "cldata"
tkmain.c: In function `tk_simple_player_name':
tkmain.c:962: error: `argv' undeclared (first use in this function)
tkmain.c:965: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:966: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:970: error: syntax error before "cldata"
tkmain.c: In function `tk_player_advantage':
tkmain.c:975: error: `argv' undeclared (first use in this function)
tkmain.c:977: error: request for member `result' in something not a 
structure or union
tkmain.c:978: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:982: error: syntax error before "cldata"
tkmain.c: In function `tk_player_aitypename':
tkmain.c:987: error: `argv' undeclared (first use in this function)
tkmain.c:990: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:993: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:997: error: syntax error before "cldata"
tkmain.c: In function `tk_player_displayname':
tkmain.c:1002: error: `argv' undeclared (first use in this function)
tkmain.c:1005: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:1008: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1012: error: syntax error before "cldata"
tkmain.c: In function `tk_min_advantage':
tkmain.c:1017: error: `argv' undeclared (first use in this function)
tkmain.c:1019: error: request for member `result' in something not a 
structure or union
tkmain.c:1020: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1024: error: syntax error before "cldata"
tkmain.c: In function `tk_max_advantage':
tkmain.c:1029: error: `argv' undeclared (first use in this function)
tkmain.c:1031: error: request for member `result' in something not a 
structure or union
tkmain.c:1032: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1036: error: syntax error before "cldata"
tkmain.c: In function `tk_assigned_side':
tkmain.c:1041: error: `argv' undeclared (first use in this function)
tkmain.c:1044: error: request for member `result' in something not a 
structure or union
tkmain.c:1046: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:1048: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1052: error: syntax error before "cldata"
tkmain.c: In function `tk_assigned_player':
tkmain.c:1058: error: `argv' undeclared (first use in this function)
tkmain.c:1061: error: request for member `result' in something not a 
structure or union
tkmain.c:1063: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:1065: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1069: error: syntax error before "cldata"
tkmain.c: In function `tk_can_rename':
tkmain.c:1074: error: `argv' undeclared (first use in this function)
tkmain.c:1076: error: request for member `result' in something not a 
structure or union
tkmain.c:1077: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1081: error: syntax error before "cldata"
tkmain.c: In function `tk_adjust_advantage':
tkmain.c:1087: error: `argv' undeclared (first use in this function)
tkmain.c:1091: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1095: error: syntax error before "cldata"
tkmain.c: In function `tk_add_side_and_player':
tkmain.c:1102: error: request for member `result' in something not a 
structure or union
tkmain.c:1103: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1107: error: syntax error before "cldata"
tkmain.c: In function `tk_remove_side_and_player':
tkmain.c:1112: error: `argv' undeclared (first use in this function)
tkmain.c:1115: error: request for member `result' in something not a 
structure or union
tkmain.c:1116: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1120: error: syntax error before "cldata"
tkmain.c: In function `tk_rename_side_for_player':
tkmain.c:1125: error: `argv' undeclared (first use in this function)
tkmain.c:1128: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1132: error: syntax error before "cldata"
tkmain.c: In function `tk_set_ai_for_player':
tkmain.c:1139: error: `argv' undeclared (first use in this function)
tkmain.c:1147: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1151: error: syntax error before "cldata"
tkmain.c: In function `tk_exchange_players':
tkmain.c:1156: error: `argv' undeclared (first use in this function)
tkmain.c:1160: error: request for member `result' in something not a 
structure or union
tkmain.c:1162: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:1164: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1168: error: syntax error before "cldata"
tkmain.c: In function `tk_set_indepside_options':
tkmain.c:1173: error: `argv' undeclared (first use in this function)
tkmain.c:1181: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1185: error: syntax error before "cldata"
tkmain.c: In function `tk_dside':
tkmain.c:1187: error: request for member `result' in something not a 
structure or union
tkmain.c:1188: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1192: error: syntax error before "cldata"
tkmain.c: In function `tk_feature_info':
tkmain.c:1197: error: `argv' undeclared (first use in this function)
tkmain.c:1200: error: request for member `result' in something not a 
structure or union
tkmain.c:1202: error: request for member `result' in something not a 
structure or union
tkmain.c:1206: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:1207: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1211: error: syntax error before "cldata"
tkmain.c: In function `tk_feature_desc':
tkmain.c:1217: error: `argv' undeclared (first use in this function)
tkmain.c:1224: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:1225: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1229: error: syntax error before "cldata"
tkmain.c: In function `tk_set_feature_info':
tkmain.c:1236: error: `argv' undeclared (first use in this function)
tkmain.c:1244: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1248: error: syntax error before "cldata"
tkmain.c: In function `tk_version_string':
tkmain.c:1251: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:1252: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1256: error: syntax error before "cldata"
tkmain.c: In function `tk_copyright_string':
tkmain.c:1259: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:1260: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1264: error: syntax error before "cldata"
tkmain.c: In function `tk_game_homedir':
tkmain.c:1267: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:1268: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1272: error: syntax error before "cldata"
tkmain.c: In function `tk_game_info':
tkmain.c:1278: error: `argv' undeclared (first use in this function)
tkmain.c:1312: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1316: error: syntax error before "cldata"
tkmain.c: In function `tk_start_new_game':
tkmain.c:1321: error: `argv' undeclared (first use in this function)
tkmain.c:1328: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1332: error: syntax error before "cldata"
tkmain.c: In function `tk_start_saved_game':
tkmain.c:1337: error: `argv' undeclared (first use in this function)
tkmain.c:1344: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1348: error: syntax error before "cldata"
tkmain.c: In function `tk_start_player_pre_setup_stage':
tkmain.c:1352: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1356: error: syntax error before "cldata"
tkmain.c: In function `tk_start_game_load_stage':
tkmain.c:1360: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1364: error: syntax error before "cldata"
tkmain.c: In function `tk_start_player_setup_stage':
tkmain.c:1373: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1377: error: syntax error before "cldata"
tkmain.c: In function `tk_launch_game':
tkmain.c:1380: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1384: error: syntax error before "cldata"
tkmain.c: In function `tk_try_host_game':
tkmain.c:1386: error: `argv' undeclared (first use in this function)
tkmain.c:1387: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1391: error: syntax error before "cldata"
tkmain.c: In function `tk_try_join_game':
tkmain.c:1395: error: `argv' undeclared (first use in this function)
tkmain.c:1396: error: request for member `result' in something not a 
structure or union
tkmain.c:1397: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1401: error: syntax error before "cldata"
tkmain.c: In function `tk_send_chat':
tkmain.c:1403: error: `argv' undeclared (first use in this function)
tkmain.c:1404: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1408: error: syntax error before "cldata"
tkmain.c: In function `tk_run_game':
tkmain.c:1413: error: `argc' undeclared (first use in this function)
tkmain.c:1415: error: `TCL_OK' undeclared (first use in this function)
tkmain.c:1418: error: `argv' undeclared (first use in this function)
tkmain.c:1472: error: request for member `result' in something not a 
structure or union
tkmain.c: At top level:
tkmain.c:1477: error: syntax error before "cldata"
tkmain.c: In function `tk_run_game_idle':
tkmain.c:1484: error: `TCL_OK' undeclared (first use in this function)
tkmain.c:1487: error: dereferencing pointer to incomplete type
tkmain.c: At top level:
tkmain.c:1543: error: syntax error before "cldata"
tkmain.c: In function `tk_animate_selection':
tkmain.c:1550: error: dereferencing pointer to incomplete type
tkmain.c:1567: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1571: error: syntax error before "cldata"
tkmain.c: In function `tk_set_unit_type':
tkmain.c:1576: error: `argv' undeclared (first use in this function)
tkmain.c:1577: error: dereferencing pointer to incomplete type
tkmain.c:1583: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1587: error: syntax error before "cldata"
tkmain.c: In function `tk_mouse_down_cmd':
tkmain.c:1592: error: `argv' undeclared (first use in this function)
tkmain.c:1593: error: dereferencing pointer to incomplete type
tkmain.c:1601: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1605: error: syntax error before "cldata"
tkmain.c: In function `tk_mouse_up_cmd':
tkmain.c:1610: error: `argv' undeclared (first use in this function)
tkmain.c:1611: error: dereferencing pointer to incomplete type
tkmain.c:1619: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1623: error: syntax error before "cldata"
tkmain.c: In function `tk_mouse_over_cmd':
tkmain.c:1629: error: `argv' undeclared (first use in this function)
tkmain.c:1630: error: dereferencing pointer to incomplete type
tkmain.c:1638: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1700: error: syntax error before "cldata"
tkmain.c: In function `tk_world_mouse_down_cmd':
tkmain.c:1706: error: `argv' undeclared (first use in this function)
tkmain.c:1707: error: dereferencing pointer to incomplete type
tkmain.c:1715: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1719: error: syntax error before "cldata"
tkmain.c: In function `tk_world_mouse_up_cmd':
tkmain.c:1725: error: `argv' undeclared (first use in this function)
tkmain.c:1726: error: dereferencing pointer to incomplete type
tkmain.c:1734: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:1738: error: syntax error before "cldata"
tkmain.c: In function `tk_world_mouse_over_cmd':
tkmain.c:1744: error: `argv' undeclared (first use in this function)
tkmain.c:1745: error: dereferencing pointer to incomplete type
tkmain.c:1751: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: In function `draw_unit_info':
tkmain.c:1921: error: dereferencing pointer to incomplete type
tkmain.c:1922: error: dereferencing pointer to incomplete type
tkmain.c: In function `ui_mainloop':
tkmain.c:2005: error: `TCL_ALL_EVENTS' undeclared (first use in this 
function)
tkmain.c:2005: error: `TCL_DONT_WAIT' undeclared (first use in this 
function)
tkmain.c: At top level:
tkmain.c:2012: error: syntax error before "cldata"
tkmain.c: In function `check_network':
tkmain.c:2042: error: `ClientData' undeclared (first use in this function)
tkmain.c:2042: error: syntax error before numeric constant
tkmain.c: In function `update_area_display':
tkmain.c:2054: error: dereferencing pointer to incomplete type
tkmain.c: In function `update_cell_display':
tkmain.c:2072: error: dereferencing pointer to incomplete type
tkmain.c: In function `update_unit_display':
tkmain.c:2240: error: dereferencing pointer to incomplete type
tkmain.c: In function `update_action_result_display':
tkmain.c:2271: error: dereferencing pointer to incomplete type
tkmain.c: In function `update_turn_display':
tkmain.c:2289: error: dereferencing pointer to incomplete type
tkmain.c:2302: error: dereferencing pointer to incomplete type
tkmain.c:2303: error: dereferencing pointer to incomplete type
tkmain.c:2308: error: dereferencing pointer to incomplete type
tkmain.c:2313: error: dereferencing pointer to incomplete type
tkmain.c: In function `update_action_display':
tkmain.c:2335: error: dereferencing pointer to incomplete type
tkmain.c: In function `update_fire_at_display':
tkmain.c:2358: error: dereferencing pointer to incomplete type
tkmain.c: In function `update_fire_into_display':
tkmain.c:2373: error: dereferencing pointer to incomplete type
tkmain.c: In function `action_point':
tkmain.c:2410: error: dereferencing pointer to incomplete type
tkmain.c: In function `schedule_movie':
tkmain.c:2445: error: dereferencing pointer to incomplete type
tkmain.c:2447: error: dereferencing pointer to incomplete type
tkmain.c:2447: error: dereferencing pointer to incomplete type
tkmain.c:2447: error: dereferencing pointer to incomplete type
tkmain.c:2447: error: dereferencing pointer to incomplete type
tkmain.c:2447: error: dereferencing pointer to incomplete type
tkmain.c:2447: error: dereferencing pointer to incomplete type
tkmain.c:2447: error: dereferencing pointer to incomplete type
tkmain.c:2447: error: dereferencing pointer to incomplete type
tkmain.c:2448: error: dereferencing pointer to incomplete type
tkmain.c:2448: error: dereferencing pointer to incomplete type
tkmain.c:2467: error: dereferencing pointer to incomplete type
tkmain.c:2467: error: dereferencing pointer to incomplete type
tkmain.c:2470: error: dereferencing pointer to incomplete type
tkmain.c:2470: error: dereferencing pointer to incomplete type
tkmain.c:2472: error: dereferencing pointer to incomplete type
tkmain.c: In function `play_movies':
tkmain.c:2486: error: dereferencing pointer to incomplete type
tkmain.c:2489: error: dereferencing pointer to incomplete type
tkmain.c:2499: error: dereferencing pointer to incomplete type
tkmain.c:2504: error: dereferencing pointer to incomplete type
tkmain.c:2508: error: dereferencing pointer to incomplete type
tkmain.c:2513: error: dereferencing pointer to incomplete type
tkmain.c:2514: error: dereferencing pointer to incomplete type
tkmain.c:2515: error: dereferencing pointer to incomplete type
tkmain.c:2521: error: dereferencing pointer to incomplete type
tkmain.c:2529: error: dereferencing pointer to incomplete type
tkmain.c: In function `init_redraws':
tkmain.c:2565: error: dereferencing pointer to incomplete type
tkmain.c:2582: error: dereferencing pointer to incomplete type
tkmain.c: At top level:
tkmain.c:2677: error: syntax error before "cldata"
tkmain.c: In function `tk_save_prefs':
tkmain.c:2682: error: `TCL_GLOBAL_ONLY' undeclared (first use in this 
function)
tkmain.c:2682: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2684: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2686: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2688: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2690: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2692: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2694: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2696: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2698: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2700: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2702: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2704: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2706: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2708: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2710: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2712: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2714: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2716: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2718: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2720: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2722: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2724: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2726: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2728: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2730: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2732: warning: assignment makes pointer from integer without a 
cast
tkmain.c:2741: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:2997: error: syntax error before "cldata"
tkmain.c: In function `tk_init_help_list':
tkmain.c:3023: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3027: error: syntax error before "cldata"
tkmain.c: In function `tk_init_help_menu':
tkmain.c:3033: error: `argv' undeclared (first use in this function)
tkmain.c:3057: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3063: error: syntax error before "cldata"
tkmain.c: In function `tk_help_goto':
tkmain.c:3065: error: `argv' undeclared (first use in this function)
tkmain.c:3140: error: `TCL_ERROR' undeclared (first use in this function)
tkmain.c:3141: error: request for member `result' in something not a 
structure or union
tkmain.c:3145: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3151: error: syntax error before "cldata"
tkmain.c: In function `tk_interp_key':
tkmain.c:3155: error: `Tk_Window' undeclared (first use in this function)
tkmain.c:3155: error: syntax error before "tkwin"
tkmain.c:3159: error: `argv' undeclared (first use in this function)
tkmain.c:3160: error: dereferencing pointer to incomplete type
tkmain.c:3176: error: `TCL_OK' undeclared (first use in this function)
tkmain.c:3209: error: `tkwin' undeclared (first use in this function)
tkmain.c:3244: error: request for member `result' in something not a 
structure or union
tkmain.c:3250: error: dereferencing pointer to incomplete type
tkmain.c:3251: error: dereferencing pointer to incomplete type
tkmain.c:3262: error: request for member `result' in something not a 
structure or union
tkmain.c: At top level:
tkmain.c:3267: error: syntax error before "cldata"
tkmain.c: In function `tk_execute_long_command':
tkmain.c:3271: error: `argv' undeclared (first use in this function)
tkmain.c:3276: error: dereferencing pointer to incomplete type
tkmain.c:3282: error: dereferencing pointer to incomplete type
tkmain.c:3289: error: dereferencing pointer to incomplete type
tkmain.c:3291: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3295: error: syntax error before "cldata"
tkmain.c: In function `tk_game_save':
tkmain.c:3297: error: `argv' undeclared (first use in this function)
tkmain.c:3300: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3304: error: syntax error before "cldata"
tkmain.c: In function `tk_make_default_player_spec':
tkmain.c:3307: error: `argv' undeclared (first use in this function)
tkmain.c:3310: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3316: error: syntax error before "cldata"
tkmain.c: In function `tk_set_design_tool':
tkmain.c:3319: error: `argv' undeclared (first use in this function)
tkmain.c:3323: error: dereferencing pointer to incomplete type
tkmain.c:3325: error: dereferencing pointer to incomplete type
tkmain.c:3327: error: dereferencing pointer to incomplete type
tkmain.c:3330: error: dereferencing pointer to incomplete type
tkmain.c:3333: error: dereferencing pointer to incomplete type
tkmain.c:3336: error: dereferencing pointer to incomplete type
tkmain.c:3340: error: dereferencing pointer to incomplete type
tkmain.c:3342: error: dereferencing pointer to incomplete type
tkmain.c:3344: error: dereferencing pointer to incomplete type
tkmain.c:3346: error: dereferencing pointer to incomplete type
tkmain.c:3348: error: dereferencing pointer to incomplete type
tkmain.c:3350: error: dereferencing pointer to incomplete type
tkmain.c:3352: error: dereferencing pointer to incomplete type
tkmain.c:3354: error: dereferencing pointer to incomplete type
tkmain.c:3356: error: dereferencing pointer to incomplete type
tkmain.c:3358: error: dereferencing pointer to incomplete type
tkmain.c:3361: error: `TCL_OK' undeclared (first use in this function)
tkmain.c:3363: error: dereferencing pointer to incomplete type
tkmain.c:3364: error: dereferencing pointer to incomplete type
tkmain.c: At top level:
tkmain.c:3382: error: syntax error before "cldata"
tkmain.c: In function `tk_set_design_data':
tkmain.c:3386: error: `argv' undeclared (first use in this function)
tkmain.c:3393: error: `argc' undeclared (first use in this function)
tkmain.c:3409: error: dereferencing pointer to incomplete type
tkmain.c:3409: error: dereferencing pointer to incomplete type
tkmain.c:3409: error: dereferencing pointer to incomplete type
tkmain.c:3409: error: dereferencing pointer to incomplete type
tkmain.c:3410: error: dereferencing pointer to incomplete type
tkmain.c:3412: error: dereferencing pointer to incomplete type
tkmain.c:3413: error: dereferencing pointer to incomplete type
tkmain.c:3415: error: dereferencing pointer to incomplete type
tkmain.c:3418: error: dereferencing pointer to incomplete type
tkmain.c:3421: error: dereferencing pointer to incomplete type
tkmain.c:3424: error: dereferencing pointer to incomplete type
tkmain.c:3428: error: dereferencing pointer to incomplete type
tkmain.c:3431: error: dereferencing pointer to incomplete type
tkmain.c:3431: error: dereferencing pointer to incomplete type
tkmain.c:3431: error: dereferencing pointer to incomplete type
tkmain.c:3431: error: dereferencing pointer to incomplete type
tkmain.c:3432: error: dereferencing pointer to incomplete type
tkmain.c:3434: error: dereferencing pointer to incomplete type
tkmain.c:3437: error: dereferencing pointer to incomplete type
tkmain.c:3437: error: dereferencing pointer to incomplete type
tkmain.c:3437: error: dereferencing pointer to incomplete type
tkmain.c:3437: error: dereferencing pointer to incomplete type
tkmain.c:3438: error: dereferencing pointer to incomplete type
tkmain.c:3440: error: dereferencing pointer to incomplete type
tkmain.c:3443: error: dereferencing pointer to incomplete type
tkmain.c:3443: error: dereferencing pointer to incomplete type
tkmain.c:3443: error: dereferencing pointer to incomplete type
tkmain.c:3443: error: dereferencing pointer to incomplete type
tkmain.c:3444: error: dereferencing pointer to incomplete type
tkmain.c:3446: error: dereferencing pointer to incomplete type
tkmain.c:3449: error: dereferencing pointer to incomplete type
tkmain.c:3449: error: dereferencing pointer to incomplete type
tkmain.c:3449: error: dereferencing pointer to incomplete type
tkmain.c:3449: error: dereferencing pointer to incomplete type
tkmain.c:3450: error: dereferencing pointer to incomplete type
tkmain.c:3452: error: dereferencing pointer to incomplete type
tkmain.c:3455: error: dereferencing pointer to incomplete type
tkmain.c:3455: error: dereferencing pointer to incomplete type
tkmain.c:3455: error: dereferencing pointer to incomplete type
tkmain.c:3455: error: dereferencing pointer to incomplete type
tkmain.c:3456: error: dereferencing pointer to incomplete type
tkmain.c:3458: error: dereferencing pointer to incomplete type
tkmain.c:3460: error: dereferencing pointer to incomplete type
tkmain.c:3461: error: dereferencing pointer to incomplete type
tkmain.c:3463: error: dereferencing pointer to incomplete type
tkmain.c:3465: error: dereferencing pointer to incomplete type
tkmain.c:3467: error: dereferencing pointer to incomplete type
tkmain.c:3469: error: dereferencing pointer to incomplete type
tkmain.c:3471: error: dereferencing pointer to incomplete type
tkmain.c:3473: error: dereferencing pointer to incomplete type
tkmain.c:3475: error: dereferencing pointer to incomplete type
tkmain.c:3478: error: dereferencing pointer to incomplete type
tkmain.c:3478: error: dereferencing pointer to incomplete type
tkmain.c:3478: error: dereferencing pointer to incomplete type
tkmain.c:3478: error: dereferencing pointer to incomplete type
tkmain.c:3479: error: dereferencing pointer to incomplete type
tkmain.c:3481: error: dereferencing pointer to incomplete type
tkmain.c:3483: error: dereferencing pointer to incomplete type
tkmain.c:3486: error: request for member `result' in something not a 
structure or union
tkmain.c:3487: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3491: error: syntax error before "cldata"
tkmain.c: In function `tk_create_new_feature':
tkmain.c:3502: error: dereferencing pointer to incomplete type
tkmain.c:3505: error: request for member `result' in something not a 
structure or union
tkmain.c:3506: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3510: error: syntax error before "cldata"
tkmain.c: In function `tk_destroy_feature':
tkmain.c:3516: error: `argv' undeclared (first use in this function)
tkmain.c:3520: error: dereferencing pointer to incomplete type
tkmain.c:3523: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3527: error: syntax error before "cldata"
tkmain.c: In function `tk_designer_fix':
tkmain.c:3535: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3539: error: syntax error before "cldata"
tkmain.c: In function `tk_designer_save':
tkmain.c:3550: error: `argv' undeclared (first use in this function)
tkmain.c:3603: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3607: error: syntax error before "cldata"
tkmain.c: In function `tk_numutypes_available':
tkmain.c:3617: error: request for member `result' in something not a 
structure or union
tkmain.c:3618: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3622: error: syntax error before "cldata"
tkmain.c: In function `tk_utype_actual':
tkmain.c:3626: error: `argv' undeclared (first use in this function)
tkmain.c:3629: error: request for member `result' in something not a 
structure or union
tkmain.c:3630: error: `TCL_OK' undeclared (first use in this function)
tkmain.c:3634: error: request for member `result' in something not a 
structure or union
tkmain.c: At top level:
tkmain.c:3639: error: syntax error before "cldata"
tkmain.c: In function `tk_mtype_actual':
tkmain.c:3643: error: `argv' undeclared (first use in this function)
tkmain.c:3646: error: request for member `result' in something not a 
structure or union
tkmain.c:3647: error: `TCL_OK' undeclared (first use in this function)
tkmain.c:3651: error: request for member `result' in something not a 
structure or union
tkmain.c: At top level:
tkmain.c:3656: error: syntax error before "cldata"
tkmain.c: In function `tk_map_size_at_power':
tkmain.c:3660: error: `argv' undeclared (first use in this function)
tkmain.c:3661: error: request for member `result' in something not a 
structure or union
tkmain.c:3662: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3666: error: syntax error before "cldata"
tkmain.c: In function `tk_center_on_unit':
tkmain.c:3674: error: `argv' undeclared (first use in this function)
tkmain.c:3675: error: dereferencing pointer to incomplete type
tkmain.c:3681: error: dereferencing pointer to incomplete type
tkmain.c:3686: error: request for member `result' in something not a 
structure or union
tkmain.c:3687: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3691: error: syntax error before "cldata"
tkmain.c: In function `tk_available_advance':
tkmain.c:3696: error: `argv' undeclared (first use in this function)
tkmain.c:3701: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:3702: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3713: error: syntax error before "cldata"
tkmain.c: In function `tk_advance_needed_to_research':
tkmain.c:3718: error: `argv' undeclared (first use in this function)
tkmain.c:3723: error: request for member `result' in something not a 
structure or union
tkmain.c:3724: error: `TCL_OK' undeclared (first use in this function)
tkmain.c:3727: error: request for member `result' in something not a 
structure or union
tkmain.c: At top level:
tkmain.c:3733: error: syntax error before "cldata"
tkmain.c: In function `tk_current_advance':
tkmain.c:3738: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:3739: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3747: error: syntax error before "cldata"
tkmain.c: In function `tk_set_research_popped_up':
tkmain.c:3750: error: `argv' undeclared (first use in this function)
tkmain.c:3751: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3755: error: syntax error before "cldata"
tkmain.c: In function `tk_set_side_research':
tkmain.c:3760: error: `argv' undeclared (first use in this function)
tkmain.c:3763: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3802: error: syntax error before "cldata"
tkmain.c: In function `tk_get_scores':
tkmain.c:3804: error: `TCL_VOLATILE' undeclared (first use in this 
function)
tkmain.c:3805: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3809: error: syntax error before "cldata"
tkmain.c: In function `tk_reset_popup_flag':
tkmain.c:3813: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3817: error: syntax error before "cldata"
tkmain.c: In function `tk_set_want_to_exit':
tkmain.c:3820: error: `argv' undeclared (first use in this function)
tkmain.c:3821: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:3825: error: syntax error before "cldata"
tkmain.c: In function `tk_exit_xconq':
tkmain.c:3828: error: `TCL_OK' undeclared (first use in this function)
tkmain.c: In function `place_legends':
tkmain.c:3840: error: dereferencing pointer to incomplete type
tkmain.c:3841: error: dereferencing pointer to incomplete type
tkmain.c:3842: error: dereferencing pointer to incomplete type
tkmain.c: In function `eval_tcl_cmd':
tkmain.c:3860: error: `TCL_ERROR' undeclared (first use in this function)
tkmain.c:3861: error: request for member `result' in something not a 
structure or union
tkmain.c: In function `create_map':
tkmain.c:4006: error: dereferencing pointer to incomplete type
tkmain.c:4007: error: dereferencing pointer to incomplete type
tkmain.c:4009: error: dereferencing pointer to incomplete type
tkmain.c: At top level:
tkmain.c:4641: error: syntax error before "cldata"
tkmain.c: In function `tk_withdraw_window':
tkmain.c:4643: error: `argc' undeclared (first use in this function)
tkmain.c:4645: error: `TCL_ERROR' undeclared (first use in this function)
tkmain.c:4647: error: `argv' undeclared (first use in this function)
tkmain.c: At top level:
tkmain.c:4656: error: syntax error before "Tcl_Interp"
tkmain.c: In function `withdraw_window':
tkmain.c:4658: error: `Tk_Window' undeclared (first use in this function)
tkmain.c:4658: error: syntax error before "tkwin"
tkmain.c:4660: error: `Window' undeclared (first use in this function)
tkmain.c:4663: error: `tkwin' undeclared (first use in this function)
tkmain.c:4663: error: `windowpath' undeclared (first use in this function)
tkmain.c:4672: error: `xid' undeclared (first use in this function)
tkmain.c:4682: error: `TCL_OK' undeclared (first use in this function)
make[1]: *** [tkmain.o] Error 1
make[1]: Leaving directory `/u/cwood/xconq/tcltk'
make: *** [all-tcltk] Error 2


Hope you can help for getting this error fixed so we can compile and 
start playing with it.

Thanks,
Chris Wood

On Sat, 3 Jul 2004, Eric McDonald wrote:

> Hi,
> 
> Ramsey wrote:
> 
> > 3. We are having trouble compiling the program on Redhat Fedora. We are users on the system (don't have root) and our compilation errors match exactly those encountered by Lincoln Peters when he tried to compile it on Debian:
> > http://sources.redhat.com/ml/xconq7/2003/msg00966.html
> > Would the solution be functionally different?
> 
> I'll reply to your other ideas later. But, let's try to get you 
> successfully compiling first....
> 
> I do not have any problems on Fedora Core 1, and that is my primary 
> development platform.
> 
> Not having root should not be a problem. I always compile and install 
> Xconq as a non-root user. I do use a custom installation path (set with 
> the "--prefix" argument to the configure script).
> 
> I also have fixed a number of Debian-related issues over the past 8 or 9 
> months, and I am not sure that the message from Lincoln, which you 
> cited, is releveant any longer.
> 
> Could you provide the configure and make output from your unsuccessful 
> build attempt? It would be useful for diagnosing the problem.
> 
>    Thanks,
>      Eric
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-05  4:58     ` Elijah Meeks
@ 2004-07-05 20:11       ` Christopher Wood
  0 siblings, 0 replies; 17+ messages in thread
From: Christopher Wood @ 2004-07-05 20:11 UTC (permalink / raw)
  To: Elijah Meeks; +Cc: xconq7

Elijah,

Yeah I looked at yours a bit. How far along did you get in
getting things implemented? I like how your system works though
and think doing a simplified version of that would be good
for the scope of this project. Did you get it working enough
that it ran? Any details would be appreciated.

Thanks,
Chris Wood

On Sun, 4 Jul 2004, Elijah Meeks wrote:

> 
>  
> > The basic plan would be to have three parts of the
> > army. A center or
> > vanguard and two wings. You would then place the
> > units in the container
> > as you want within the three areas. Then there would
> > be a limited option
> > of tactics that could be carried out. For example a
> > simple one would be
> > have your center defend and overpower your wings to
> > destroy the enemy
> > wings. Then when their wings are destroyed you crush
> > their center, like
> > Cannae for example. With my knowledge of c and
> > programming in it I am
> > fairly sure I can work out a text based system to do
> > this. As something
> > else to look at, both Damian and me are working on a
> > graphics course
> > this term as well. An idea would be to make a very
> > basic open gl
> > interface.
> 
> I think this is a great idea, and I hope you guys pull
> it off.  I designed a system very similar to this for
> and you're welcome to cull whatever you can use from
> the old project site:
> 
> http://castironlife.sourceforge.net/combat/
> 
> I call my wings 'flanks' and I include a Reserve and,
> later with technological advances, an Aircraft and a
> Long Range Artillery box, but otherwise the basic
> inspiration is the same.
> 
> Good luck and welcome aboard!
> 
> 
> 
> 
> 	
> 		
> __________________________________
> Do you Yahoo!?
> New and Improved Yahoo! Mail - 100MB free storage!
> http://promotions.yahoo.com/new_mail 
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-05 19:17   ` Christopher Wood
@ 2004-07-05 20:18     ` Christopher Wood
  2004-07-05 20:27     ` Eric McDonald
  2004-07-05 20:44     ` Question on combat procedures Christopher Wood
  2 siblings, 0 replies; 17+ messages in thread
From: Christopher Wood @ 2004-07-05 20:18 UTC (permalink / raw)
  To: xconq7

Eric,

I think from talking to our teacher we figured out what
might have been the problem. That was an incorrectly
placed and installed directories for tcl and such. So
I think we should be able to get that done by tomorrow,
and I'll email you guys back and report on our progress
on that.

Thanks,
Chris Wood

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: xConq alternate combat engine project
  2004-07-05 19:17   ` Christopher Wood
  2004-07-05 20:18     ` Christopher Wood
@ 2004-07-05 20:27     ` Eric McDonald
  2004-07-05 20:44     ` Question on combat procedures Christopher Wood
  2 siblings, 0 replies; 17+ messages in thread
From: Eric McDonald @ 2004-07-05 20:27 UTC (permalink / raw)
  To: Christopher Wood; +Cc: xconq7

Christopher Wood wrote:

[ snipped ]

> checking for Tcl configuration... found /usr/lib/tclConfig.sh
> checking for Tk configuration... found /usr/lib/tkConfig.sh

[ snipped ]

> make[1]: Entering directory `/u/cwood/xconq/tcltk'
> gcc -c -g -O2 -DUNIX  -I. -I./.. -I./../kernel -I./../missing     
> -I/usr/X11R6/include  tkmain.c
> In file included from tkmain.c:11:
> tkconq.h:21:17: tcl.h: No such file or directory
> tkconq.h:22:16: tk.h: No such file or directory
> In file included from tkconq.h:33,
>                  from tkmain.c:11:

Your 'tclConfig.sh' and 'tkConfig.sh' are being found, and so this is a 
good sign. It would be useful to see the contents of the those two 
files, so that I can determine whether they are telling the Xconq 
configurator to look in the right place for the Tcl/Tk header files.
There are two possibilities:
(1) Your 'tclConfig.sh' and 'tkConfig.sh' files are lying about where 
Tcl/Tk is located.
(2) The Xconq configure script is not doing the right thing with the 
information provided by the aforementioned files.

If you can send me an email with the Tcl and Tk config files attached, I 
can better diagnose the situation.

   Thanks,
     Eric

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Question on combat procedures
  2004-07-05 19:17   ` Christopher Wood
  2004-07-05 20:18     ` Christopher Wood
  2004-07-05 20:27     ` Eric McDonald
@ 2004-07-05 20:44     ` Christopher Wood
  2004-07-05 20:54       ` Eric McDonald
                         ` (2 more replies)
  2 siblings, 3 replies; 17+ messages in thread
From: Christopher Wood @ 2004-07-05 20:44 UTC (permalink / raw)
  To: xconq7

Hi all,

I am trying to figure out how these combat module works in the 
xconq source code. I have looked over combat.c and I have seen
how it switches depending on the model through the g_combat_model
call. However what I would like is to know what is calling the 
functions in combat and how the order is being done. The combat.c
file is quite confusing and I can't quite figure out how it works
together with the rest of the program since I have no idea where
these functions are being called from. The only 
place I could find something that even fits that is action.def
where it seemed it went according to the following list.

DEF_ACTION("attack", ACTION_ATTACK, "Un",
  prep_attack_action, net_prep_attack_action,
  do_attack_action, check_attack_action,
  (Unit *unit, Unit *unit2, Unit *defender, int n),
  "Attack a given unit")

DEF_ACTION("overrun", ACTION_OVERRUN, "xyzn",
  prep_overrun_action, net_prep_overrun_action,
  do_overrun_action, check_overrun_action,
  (Unit *unit, Unit *unit2, int x, int y, int z, int n),
  "Attack everything in a cell and occupy if possible")

DEF_ACTION("fire-at", ACTION_FIRE_AT, "Um",
  prep_fire_at_action, net_prep_fire_at_action,
  do_fire_at_action, check_fire_at_action,
  (Unit *unit, Unit *unit2, Unit *defender, int m),
  "Throw a given material at a given unit")

DEF_ACTION("fire-into", ACTION_FIRE_INTO, "xyzm",
  prep_fire_into_action, net_prep_fire_into_action,
  do_fire_into_action, check_fire_into_action,
  (Unit *unit, Unit *unit2, int x, int y, int z, int m),
  "Throw a given material at a given cell")

DEF_ACTION("capture", ACTION_CAPTURE, "U",
  prep_capture_action, net_prep_capture_action,
  do_capture_action, check_capture_action,
  (Unit *unit, Unit *unit2, Unit *defender),
  "Take a unit prisoner")

DEF_ACTION("detonate", ACTION_DETONATE, "xyz",
  prep_detonate_action, net_prep_detonate_action,
  do_detonate_action, check_detonate_action,
  (Unit *unit, Unit *unit2, int x, int y, int z),
  "Damage or destroy self in a violent fashion")

This seems to be saying that any action is broken into a 
series of four calls, a prep, a net_prep (I take it this has
to do with network protocals), a do and a check. So if I wanted
to change things around I would change the function calls in this
list? Also when two units are next to eachother and one targets 
another, how does the engine determine which of the overrun, attack,
fire at, etc lists gets called?

So here broken down are my questions.

1) Is the above lists in action.def the series of functions that get
called for a particular attack? 

2) Would it be possible to switch the do_ action for one of my own that
would implement the tactical combat engine?

3) This question is mainly for Elijah. Were you able to get the 
castironlife extension to implement the tactical engine you have on
the site for your game?

Thanks,
Chris Wood

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Question on combat procedures
  2004-07-05 20:44     ` Question on combat procedures Christopher Wood
@ 2004-07-05 20:54       ` Eric McDonald
  2004-07-05 21:25       ` Jim Kingdon
  2004-07-05 22:12       ` Hans Ronne
  2 siblings, 0 replies; 17+ messages in thread
From: Eric McDonald @ 2004-07-05 20:54 UTC (permalink / raw)
  To: Christopher Wood; +Cc: xconq7

Christopher Wood wrote:

> I am trying to figure out how these combat module works in the 
> xconq source code. I have looked over combat.c and I have seen
> how it switches depending on the model through the g_combat_model
> call. However what I would like is to know what is calling the 
> functions in combat and how the order is being done. The combat.c
> file is quite confusing and I can't quite figure out how it works
> together with the rest of the program since I have no idea where
> these functions are being called from. 

You need to account for the user interfaces. They are in separate 
directories; 'tcltk' houses the Tcl/Tk interface, for example. Also, the 
user interfaces make use of 'ui.h' and 'ui.c'. You should also look at 
'task.c' and 'plan.c'; 'task.c' contains the 'hit-unit' task code. The 
kernel run code in 'run.c' and 'action.c' is what actually schedules 
things to happen (i.e., running prepped actions).

Remember, grep is your friend:
$ grep 'prep_attack' *.c
combat.c:prep_attack_action(Unit *unit, Unit *unit2, Unit *defender, int n)
task.c:             prep_attack_action(unit, unit, unit2, 100);
task.c:                 prep_attack_action(unit, unit, unit2, 100);
task.c:                 prep_attack_action(unit, unit, unit2, 100);
task.c:             prep_attack_action(unit, unit, unit2, 100);
task.c:             prep_attack_action(unit, unit, unit2, 100);
tp.c:net_prep_attack_action(Unit *unit, Unit *unit2, Unit *defender, int n)
tp.c:   rslt = prep_attack_action(unit, unit2, defender, n);
ui.c:               net_prep_attack_action(unit, unit, other, 100);
ui.c:               net_prep_attack_action(unit, unit, other, 100);
$ grep 'do_attack' *.c
actions.c:      rslt = do_attack_action(unit, unit2, aunits[0], a[1]);
combat.c:do_attack_action(Unit *unit, Unit *unit2, Unit *defender, int n)

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Question on combat procedures
  2004-07-05 20:44     ` Question on combat procedures Christopher Wood
  2004-07-05 20:54       ` Eric McDonald
@ 2004-07-05 21:25       ` Jim Kingdon
  2004-07-05 22:12       ` Hans Ronne
  2 siblings, 0 replies; 17+ messages in thread
From: Jim Kingdon @ 2004-07-05 21:25 UTC (permalink / raw)
  To: cwood; +Cc: xconq7

> The only place I could find something that even fits that is
> action.def where it seemed it went according to the following list.

You should probably see Eric's email which is more likely to be the
answer to your question than what I'm going to say, but here's the
deal on action.def (and by extension, the rest of the .def files which
are used quite a bit).

The idea is that something can #define DEF_ACTION and then #include
action.def.  So for example, actions.c builds up a table actiondefns
(with only 3 of the items from DEF_ACTION).  And kernel.h declares the
prep functions.

The whole can be hard to follow, yes.  But it does allow putting a
bunch of things pertaining to an action in one place, rather than
scattered about.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Question on combat procedures
  2004-07-05 20:44     ` Question on combat procedures Christopher Wood
  2004-07-05 20:54       ` Eric McDonald
  2004-07-05 21:25       ` Jim Kingdon
@ 2004-07-05 22:12       ` Hans Ronne
  2 siblings, 0 replies; 17+ messages in thread
From: Hans Ronne @ 2004-07-05 22:12 UTC (permalink / raw)
  To: Christopher Wood; +Cc: xconq7

>1) Is the above lists in action.def the series of functions that get
>called for a particular attack?

Yes. The normal sequence is that the AI, interface or task code makes two
calls:

1. check_some_action. Checks that the action is possible.

2. Either prep_some_action or net_prep_some_action. Schedules the action
for execution. The net_ functions also broadcast the action, so that every
computer in the game schedules it. For an explanation of the difference
between the two and when to use broadcast functions, see my reply to Peter
Garrone last year:

http://sources.redhat.com/ml/xconq7/2003/msg00918.html

Next time something happens is when the run_game code calls execute_action.
It also makes two calls:

3. check_some_action (in case things changed and the action is no longer
possible).

4. do_some_action, which finally does the job.

BTW, the task code (next abstraction layer above the actions) is quite
similar. See task.def.

Hans



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2004-07-05 21:25 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-07-04  0:05 xConq alternate combat engine project Ramsey
2004-07-04  0:24 ` Eric McDonald
2004-07-05 19:17   ` Christopher Wood
2004-07-05 20:18     ` Christopher Wood
2004-07-05 20:27     ` Eric McDonald
2004-07-05 20:44     ` Question on combat procedures Christopher Wood
2004-07-05 20:54       ` Eric McDonald
2004-07-05 21:25       ` Jim Kingdon
2004-07-05 22:12       ` Hans Ronne
2004-07-04  0:30 ` xConq alternate combat engine project Eric McDonald
2004-07-04  0:38   ` Eric McDonald
2004-07-04  0:45     ` Hans Ronne
2004-07-04  3:39   ` Christopher Wood
2004-07-04  5:22     ` Christopher Wood
2004-07-05  4:58     ` Elijah Meeks
2004-07-05 20:11       ` Christopher Wood
2004-07-04  0:43 ` Hans Ronne

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).