* 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: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 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
* 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: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-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-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
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).