Birger Jarl said:I would like to see less cartoonish map and more like CK/Vicky.![]()
Noooooo! The EUII-style map is SO much better than Vicky/CK!
Birger Jarl said:I would like to see less cartoonish map and more like CK/Vicky.![]()
XieChengnuo said:Accurate world map projections!!![]()
![]()
![]()
Hive said:Noooooo! The EUII-style map is SO much better than Vicky/CK!![]()
no biggie, i've been looking into the projections and we can just blow up the islands or do a cool island grouping = province deal... i have some ideas in mind, definitelyWiSK said:Like I said in post 537, an accurate map means a lot of islands are very very small. It also might be difficult to fit into 16 megs.
Birger Jarl said:I love the details in the CK map, even the COTN and TT maps are beautiful.
The EU is just too cartoonish...![]()
Hive said:...and are less hardware demanding...
WiSK said:Sounds pretty cool
Just to double-check: you realise you need to make two maps? One is the graphical rendition of the map, and one defines the borders and the provinces like a kind of mask. It's not clear yet the specifications of the second part, because Inferis hasn't defined the exact functionality of his editor. However, as long as you have the borders as a separate layer then I think you can probably generate this quite simply.
EDIT: To see what I mean, have a look at Inferis' map viewer. The graphic marked 'lightmap' is a representation of how the picture data is stored, while the graphic marked 'IDMap' shows how the borders and provinces are stored.
Ah, it's called a 'halo' then? But any idea which font it is that Paradox uses on the standard maps?
Birger Jarl said:Someone should buy a new computer...![]()
WiSK said:Some specific questions:
* index1 is absolute, right? the max number of descriptors is 60?
* what does river==15 mean, and what does river!=15 mean?
* index2 is relative to index1, right? is it signed or unsigned?
* Inferis suggests colour is unused, so why are there so many province descriptor pairs where colour is the only difference?
WiSK said:Another point, looking at Johan's posted bit of code. If the quadtree is traversed breadth-first, why bother representing the tree in memory, why not just render each subsection of the 32x32 block as you go through the bitstream?
Well, yes and no.WiSK said:Looking again through Johan's 'MapCodec', some things become apparent.
* index1 is an index into the ID table (kinda self-referencing, or sibling referencing)
* index2 and river however, are indices into adjacent.tbl (I think!)
* the codec then checks to see if the border between index1 and index2 needs to be drawn
* in that case, and there is a river defined (!=15), index1 becomes the river province
* in case of no border, i'm not sure what's going on here
This explains to me why changing adjacent.tbl often gives problems with the game's rendering of province borders. In effect, by changing the size of the list of adjacent provinces, you are messing with the indexing system used in the lightmap files.
Also, the rendering algorithm is dependent on neighbouring blocks to do it's drawing...WiSK said:Answer: because the position of the next part of the datablock is dependent on the length of the bitstream.
That might be a bit of work, unless you know the PSD format or it is trivial to guess. Considering the ease with which a user can import 3 files into 3 new layers in a Photoshop file, I think there are better things to waste your time onInferis said:Ideally, the tool should spew out a layered PSD file, but I'm not going to focus on that (yet).
It's this bit from Johan's code I'm wondering about...Inferis said:Depending on if the border is a river or not, those values would be set accordingly (no river = river adjacency will have all bits set, and index2 will just be the index into the province adjacency table).
if ((!(gpMap->MapMode._DrawFlags & PROVINCE_DRAW_BORDERS))
|| Province[id1].GetBorderStatus() == Province[id2].GetBorderStatus())
{
if (river != INVALID_ADJ)
id1 = Province[id1].GetNeighbor(river);
BlockDecompressed.IdTable[a] = id1;
} else {
if (Province[id1].IsViewable())
BlockDecompressed.IdTable[a] = MAX_PROVINCE;
else
BlockDecompressed.IdTable[a] = MAX_PROVINCE+2;
}
Can you explain what you mean here? Which neighbouring blocks, and how is it dependent?Inferis said:Also, the rendering algorithm is dependent on neighbouring blocks to do it's drawing...
WiSK said:Well, I'm getting there, albeit slowly. Spent all last night making a quicker non-recursive algorithm for unpacking the QuadTree. Seems to work
screenshot
Now need to make it show the provId mask, border mask and shading. Also need to rewrite the class I made for the adjacent.tbl and include it in this project.
Indeed. I have absolutely no idea what anything means either, but it does look good.Hive said:I have no idea what you are doing... but good work, keep it up!![]()
Yup. Lots of difficult words...tombom said:Indeed. I have absolutely no idea what anything means either, but it does look good.