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

Gandalf Parker December 21st, 2004 01:25 PM

Re: Dominions II mapfile parser
 
By The Way, your neighbor line could be used by someone for computing "quickest path from A to B" routines. Very nice.

DomMap added some info to its output for programming special sites and such..
<font class="small">Code:</font><hr /><pre>
#neighbour 49 50
#neighbour 51 53
#neighbour 52 53
#terrain 1 2 -- L-S0L2
#terrain 2 208 -- L-S0L1
#terrain 3 130 -- L-S0L4
</pre><hr />

If a province is L-S4L1 then its saying its Land with 4 Sea neighbors and 1 Land neighborsm or a penninsula. L-S4L0 would be Land with 4 Sea and no Land neighbors, or an island. S-L4S0 would be Sea with 4 land neighbors and no Sea neighbors, or a lake. Yoiu might want to do something like that but probably in a more user format like actually saying island and lake.

CJN December 22nd, 2004 05:43 PM

Re: Dominions II mapfile parser
 
Quote:

Gandalf Parker said:
Only my own comment. If others dont jump in then its not worth doing anything about it. It depends on what you program in..


Don't worry about that, I program it mostly to improve my programming skills.

Quote:


<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.

How about:
Line 1: Name, id
Line 2: Terrain
Line 3: Neighbours
Line 4: NOSTART, START, VP, etc.
Line 5-&gt;: commanders, features, population, buildings

There is also the problem that there are two ways to add nostart. As a terrain flag and as a separate command. Should the output differ for them?

I will consider these changes and adding counting of number of land-sea neighbours to next Version. It will take to after Christmas before I have time however.

Gandalf Parker December 23rd, 2004 11:32 AM

Re: Dominions II mapfile parser
 
Quote:

CJN said:
How about:
Line 1: Name, id
Line 2: Terrain
Line 3: Neighbours
Line 4: NOSTART, START, VP, etc.
Line 5-&gt;: commanders, features, population, buildings


Oohhh name of the province? Much variable there. That is difficult to parse. How about if as much as possible, which can easily be parsed, be on one line. Then the difficult to parse can be seperated by "newline" as long as they always can be found on that line each time. Such as...
Line 1: Name
Line 2: id, Terrain, NOSTART, VP, etc
Line 3: Neighbors

That way even if there are no Neighbors it should still have a line which says Neighbors with no other output.

Quote:

There is also the problem that there are two ways to add nostart. As a terrain flag and as a separate command. Should the output differ for them?

Well the purpose I see is either for Users/map-makers who want readable info.. or for people who want to include it into a scripting pipe as an easy way to get info they didnt want to figure out how to extract. So Id say just put NOSTART when applicable no matter how its generated.

Quote:

Line 5-&gt;: commanders, features, population, buildings

OUCH that puts a wrench into the whole thing. It means that I cant just count lines and say "if line 2 has NOSTART skip next 2 lines and check again".

OK now Im thinking there are two ways to go. One is to have a unique character or Groups of characters flagging the begining of each province output. Such as -=- which can be used to count from or jump to the next province. The problem is finding something which in a script environment such as linux doesnt mean something special already. OR add a switch such as -v for more verbose output and have two outputs. One for all info, and the other for easy-parse info. Hmmm wait, the more casual user should always be considered for defaults. So maybe have the fully englished curious-user output be default with a -s short-Version for script programmers.

CJN December 30th, 2004 03:13 AM

Re: Dominions II mapfile parser
 
Quote:

Gandalf Parker said:

Oohhh name of the province? Much variable there. That is difficult to parse. How about if as much as possible, which can easily be parsed, be on one line. Then the difficult to parse can be seperated by "newline" as long as they always can be found on that line each time. Such as...
Line 1: Name
Line 2: id, Terrain, NOSTART, VP, etc
Line 3: Neighbors

That way even if there are no Neighbors it should still have a line which says Neighbors with no other output.


Quote:

Line 5-&gt;: commanders, features, population, buildings

OUCH that puts a wrench into the whole thing. It means that I cant just count lines and say "if line 2 has NOSTART skip next 2 lines and check again".

OK now Im thinking there are two ways to go. One is to have a unique character or Groups of characters flagging the begining of each province output. Such as -=- which can be used to count from or jump to the next province. The problem is finding something which in a script environment such as linux doesnt mean something special already. OR add a switch such as -v for more verbose output and have two outputs. One for all info, and the other for easy-parse info. Hmmm wait, the more casual user should always be considered for defaults. So maybe have the fully englished curious-user output be default with a -s short-Version for script programmers.

Version 0.6.0 is now available. Take a look at it.
I decided to move the province id first in the first line of province info to make parsing easier. Just look for lines starting with "(". some basic neighbour info is also added.
For details &amp; download see first post.


All times are GMT -4. The time now is 04:36 AM.

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