.com.unity Forums

.com.unity Forums (http://forum.shrapnelgames.com/index.php)
-   Dominions 2: The Ascension Wars (http://forum.shrapnelgames.com/forumdisplay.php?f=55)
-   -   Dominions II mapfile parser (http://forum.shrapnelgames.com/showthread.php?t=22052)

CJN December 17th, 2004 10:44 AM

Dominions II mapfile parser
 
1 Attachment(s)
I have made a Python script that reads a .map file and prints out info from it on the screen. The script is attached as a zip file to this post.
It started when I wanted to get the terrain specifications to a more readable format, and I later decided to add all map-file commands that I know of.

It should be considered beta, so report any errors and suggestions for improvements.
Feel free to host it on your Dom 2 sites if you want.

EDIT:
Updated to v0.6.0:
v0.6.0:
- Reworked internal handling of terrain.
- Added calculation of number of land and sea neighbours.
- Prints out terrain as plains if no other terrain type is set.
- Moved many-sites from terrain line.
- Use only one type of output for nostart.
- Added information based on terrain of neighbours (island, coastal , etc.)
- Allways print out province owner special info line and moved it after neighbours.
- Switched province id and province name in output.
- Added parsing of independents command.

PDF December 18th, 2004 10:58 AM

Re: Dominions II mapfile parser
 
Interesting, but I can't make it work, the .py files aren't executables, I suppose I should have some Pythonnesque runtime lib ??

Skolem December 18th, 2004 11:45 AM

Re: Dominions II mapfile parser
 
I wanted to test it and I receive the following error:
IndexError: list index out of range

File "mapinfo.py", line 156, in ?
fname = sys.argv[1]
What should I do?

CJN December 18th, 2004 12:07 PM

Re: Dominions II mapfile parser
 
Quote:

PDF said:
Interesting, but I can't make it work, the .py files aren't executables, I suppose I should have some Pythonnesque runtime lib ??

I guess that you are using Windows?
- First make sure you have installed Python. It can be found at Python Programming Language. The only libraries used are sys, re and string which should be part of the standard installation.
- I have no Windows installation, so I can't test, but try either to open it in IDLE and run it from there or type the following at command line:
<font class="small">Code:</font><hr /><pre>python mapinfo.py &lt;mapfile.map&gt; </pre><hr />

CJN December 18th, 2004 12:14 PM

Re: Dominions II mapfile parser
 
Quote:

Skolem said:
I wanted to test it and I receive the following error:
IndexError: list index out of range

File "mapinfo.py", line 156, in ?
fname = sys.argv[1]
What should I do?

Sounds like you didn't add the mapfile name when you ran it.
(sys.argv[1] = first command line argument)
Did you use IDLE to run in windows? Is it possible to add command line arguments when you use IDLE?

EDIT:
A new Version is now available, which has some improvements.
For details &amp; download, see the first post.

Skolem December 18th, 2004 01:40 PM

Re: Dominions II mapfile parser
 
I tested it again with orania nasty ed. and it works great!
Last thing, he warned about one unknown command: #independents 9.
I'm pretty sure this maps use almost all possible map commands so it is indeed a good result. This will be surely very usefull for making maps
Thanks!

CJN December 19th, 2004 11:27 AM

Re: Dominions II mapfile parser
 
Quote:

Skolem said:
I tested it again with orania nasty ed. and it works great!
Last thing, he warned about one unknown command: #independents 9.
I'm pretty sure this maps use almost all possible map commands so it is indeed a good result. This will be surely very usefull for making maps
Thanks!

Well, that command is not in mapedit.pdf. I will add it next time I update. I guess that it sets the strength of independent forces, right? Does anyone know of any other undocumented map commands?

Gandalf Parker December 19th, 2004 03:31 PM

Re: Dominions II mapfile parser
 
Nicely done. The format isnt as friendly toward further programming as I might want, but I can see where it would be useful for many.

CJN December 20th, 2004 06:57 PM

Re: Dominions II mapfile parser
 
Quote:

Gandalf Parker said:
Nicely done. The format isnt as friendly toward further programming as I might want, but I can see where it would be useful for many.

I might be able to do something about the format if you post some details about the problem.

Gandalf Parker December 21st, 2004 01:15 PM

Re: Dominions II mapfile parser
 
Only my own comment. If others dont jump in then its not worth doing anything about it. It depends on what you program in..
<font class="small">Code:</font><hr /><pre>
&lt;random&gt;(46):
NOSTART
forest small
neighbours: ['37', '55', '68']
&lt;random&gt;(62):
NOSTART

neighbours: ['58', '76']
&lt;random&gt;(82):

neighbours: ['73', '78', '81', '84', '89']
&lt;random&gt;(100):
forest mountain
neighbours: ['85', '87', '91', '97']
</pre><hr />

Its a very readable format for user info which may be all it needs to do. But not good for programming. If there is no terrain you leave a blank line. Actually 0 terrain is plains (default) so you might want to make that change. But if there is no blankline for NOSTART. That means that in a program the code would be something like "find swamp, check next line for neighboring 32, back up one or two lines to get province number for including special site location".

Im not sure if everything can be placed on one line and still be good for user reading, but possibly the NOSTART and terrains could be on the same line as the province number. That would make parsing abit easier, and make the neighbor line always be in the same spot in relation to those.


All times are GMT -4. The time now is 08:01 AM.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©1999 - 2025, Shrapnel Games, Inc. - All Rights Reserved.