• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
Originally posted by andrashi

However cooperation between me and MDS will be a problem since I refuse to have ANYTHING to do with its MOD.mr Ugly Duck!!! about this no discusion is posible..........
I will help You indevidualy if I can and if one wants and I help you to the procedure WHEN I sucseed but not in cooperation with youre mod. sorry!!
UglyDuck isn't MDS mod. In case you haven't noticed he is an administrator for the entire forum...
 
Originally posted by Zaphod B.
Yeah, but all you need to make maps for those games is East Front and the 'checksum' program...

Atleast I assume you mean making maps for games based on Tiller's engine.
By chance I did the Napoleon in Russia map wich is manly the Battle of Borodino I ext that to Moskau.....
However this one also disapeared as did all my "Plug the whole maps at Strategycon Forum for end July I recket my comp. and harddisk by a nasty fall due to sudden ilness.
 
Originally posted by Havard
UglyDuck isn't MDS mod. In case you haven't noticed he is an administrator for the entire forum...
True it indeed say's that he is Admin. on duty that changes nothing for me.....
nothing at all!
 
Originally posted by Gathenhielm
Thanks Kaigon.

Should answer your question andrashi? If you have more do pls ask.
Thank You both I'll hang on to You if I have more ,as I said I am a Comp. rookie.......:)
 
Deep deep past

Right now I am gathering info's to make a Scenario that starts 1500 BC and runs a 1000 years until the fall of Babylon to Persia in 538 BC people intrestet? then I 'll place some matherial as soon as I finnisched making it like maps and kinglists (relaiable ones!)and events of course as a game gide line....:)
Battle of TROY on EU2 for example!
 
Originally posted by andrashi
Again Sorry...what is PTI?? as I explained I am bad at this sort of terms....
And yes, if I make them I share them with you all!

PTI is Permanent Terra Incognita - the white areas you will never be able to see. What I meant was that I'm so tired of the PTI that I'd be willing to use the HoI map (which is far from perfect) if possible, just to get all areas of the world visible.
 
I'm afraid I must dissapoint you guys, but Inferis have abandoned this effort long time ago. I have been trying to convince him to start trying again, but without luck.
 
Hive said:
I'm afraid I must dissapoint you guys, but Inferis have abandoned this effort long time ago. I have been trying to convince him to start trying again, but without luck.
Try again :) (Not that i think he'll change his mind, but you never know)
 
Hive said:
I'm afraid I must dissapoint you guys, but Inferis have abandoned this effort long time ago. I have been trying to convince him to start trying again, but without luck.
I can confirm that.
I really don't have time or "the drive" to do more research on the TBL files. That, in combination that I'm a bit stuck, well...
 
LoupVert said:
Inferis,
2 questions:
Have u already answered to Paradox how it can works?
As far as u know after all ur experiences, is it possible to edit (add more provinces) to HOI map?
I'm not sure what you mean... Do you mean that paradox gave me answers, or the other way around? :wacko:
 
Inferis said:
I can confirm that. That, in combination that I'm a bit stuck, well...
Well if you're stuck there's not much you can do then anyways.
 
Oh no! :eek:

If you cannot get to the Holy Grail, no one will!

Damn...
 
I guess this might help Inferis :)

Code:
void CGameMapCodec::DecompressBlock(int wx, int wy, int zoom)
{
#ifndef _BUILDMAP
	int a, b = 4711;

	if (wx < 0)
		wx += MAP_WIDTH;
	if (wx >= MAP_WIDTH)
		wx -= MAP_WIDTH;
	
	ASSERT(wy >= 0 && wy < MAP_HEIGHT);
	
	wx >>= zoom;
	
	wy >>= zoom;

				int mappitch = MAP_WIDTH >> zoom;
				int index = MapTrees[zoom].Offsets[(((wx)>>5) + ((wy)>>5) * ((mappitch>>5)))*3] + (MapTrees[zoom].Offsets[(((wx)>>5) + ((wy)>>5) * ((mappitch>>5)))*3+1]<<8) + (MapTrees[zoom].Offsets[(((wx)>>5) + ((wy)>>5) * ((mappitch>>5)))*3+2]<<16);
				int size = MapTrees[zoom].Offsets[(((wx)>>5) + ((wy)>>5) * ((mappitch>>5)))*3+3] + (MapTrees[zoom].Offsets[(((wx)>>5) + ((wy)>>5) * ((mappitch>>5)))*3+4]<<8) + (MapTrees[zoom].Offsets[(((wx)>>5) + ((wy)>>5) * ((mappitch>>5)))*3+5]<<16) - index;
				
				// The id list is the first thing in the compressed block
				BlockCompressed.IdTable = &MapTrees[zoom].Trees[index];
				
				// Build an id table out of the bit7-terminated list
				BlockDecompressed.NumOfIds = -1;
				do
				{
					BlockDecompressed.NumOfIds++;
					BlockDecompressed.IdTable[BlockDecompressed.NumOfIds] = BlockCompressed.IdTable[(BlockDecompressed.NumOfIds<<1)] | ((BlockCompressed.IdTable[(BlockDecompressed.NumOfIds<<1)+1]&127)<<8);
					if (BlockDecompressed.IdTable[BlockDecompressed.NumOfIds]>MAX_PROVINCE)
						int r = 0;
					index += 2;
				}
				while(BlockCompressed.IdTable[(BlockDecompressed.NumOfIds<<1)+1] < TERMINATOR);
				BlockDecompressed.NumOfIds++;

				for(a = 0; a < BlockDecompressed.NumOfIds; a++)
				{
					if (BlockDecompressed.IdTable[a] > MAX_PROVINCE)
					{
						int color = BlockDecompressed.IdTable[a] & 1;
						int id1 = BlockDecompressed.IdTable[((BlockDecompressed.IdTable[a]>>9)&63)-4];
						int id2 = Province[id1].GetNeighbor((BlockDecompressed.IdTable[a]>>1)&15);
						int river = (BlockDecompressed.IdTable[a]>>5)&15;
						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;//+color;
							else
								BlockDecompressed.IdTable[a] = MAX_PROVINCE+2;//color;//+2;
						}
					}
				}
				
				// The tree structure pointer
				BlockCompressed.Nodes = &MapTrees[zoom].Trees[index];
				
				BlockDecompressed.NumOfLeafs = 0;
				BlockDecompressed.SizeOfLeafs = 0;
				BlockCompressed.NodeIndex = 0;
				BlockCompressed.NodeMask = 1;
				TreeInfo(5);
				
				index += BlockCompressed.NodeIndex;
				if (BlockCompressed.NodeMask > 1)
					index++;

				
				// The id information pointer
				BlockCompressed.Ids = &MapTrees[zoom].Trees[index];

				// Read the id stream diffrently depending on bit depth
				if (BlockDecompressed.NumOfIds == 1)
				{
					b = 0;
					for (a = 0; a < BlockDecompressed.NumOfLeafs; a++)
						BlockDecompressed.Ids[a] = 0;//BlockDecompressed.IdTable[0];
				}
				else if (BlockDecompressed.NumOfIds == 2)
				{
					a = b = 0;
					while (a < BlockDecompressed.NumOfLeafs)
					{
						BlockDecompressed.Ids[a++] = BlockCompressed.Ids[b] & 1;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 2)>>1;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 4)>>2;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 8)>>3;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 16)>>4;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 32)>>5;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 64)>>6;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 128)>>7;
						b++;
					}
				}
				else if (BlockDecompressed.NumOfIds > 2 && BlockDecompressed.NumOfIds <= 4)
				{
					a = b = 0;
					while (a < BlockDecompressed.NumOfLeafs)
					{
						BlockDecompressed.Ids[a++] = BlockCompressed.Ids[b] & 3;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 12)>>2;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 48)>>4;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 192)>>6;
						b++;
					}
				}
				else if (BlockDecompressed.NumOfIds > 4 && BlockDecompressed.NumOfIds <= 16)
				{
					a = b = 0;
					while (a < BlockDecompressed.NumOfLeafs)
					{
						BlockDecompressed.Ids[a++] = BlockCompressed.Ids[b] & 15;
						BlockDecompressed.Ids[a++] = (BlockCompressed.Ids[b] & 240)>>4;
						b++;
					}
				}				
				else if (BlockDecompressed.NumOfIds > 16)
				{
					a = b = 0;
					while (a < BlockDecompressed.NumOfLeafs)
					{
						BlockDecompressed.Ids[a++] = BlockCompressed.Ids[b];
						b++;
					}
				}				

				index += b;

				
				// The leafs pointer
				BlockCompressed.Leafs = &MapTrees[zoom].Trees[index];

				// Read the leaf stream
				a = b = 0;
				while(a < BlockDecompressed.SizeOfLeafs)
				{
					BlockDecompressed.Leafs[a++] = BlockCompressed.Leafs[b] & 63;
					BlockDecompressed.Leafs[a++] = (BlockCompressed.Leafs[b] >> 6 | BlockCompressed.Leafs[b+1] << 2) & 63;
					BlockDecompressed.Leafs[a++] = (BlockCompressed.Leafs[b+1] >> 4 | BlockCompressed.Leafs[b+2] << 4) & 63;
					BlockDecompressed.Leafs[a++] = BlockCompressed.Leafs[b+2] >> 2;
					b += 3;
				}

				// Initialize the tree bitstream counters
				BlockCompressed.NodeIndex = 0;
				BlockCompressed.NodeMask = 1;

				BlockDecompressed.LeafIndex = 0;
				BlockDecompressed.IdIndex = 0;
#endif
}
 
Now...does this mean inferis will be able to mod the map? Can we start writing wishlists?
Imagine the possibilities :rofl:
 
Wow... this is big... :eek:

This is really great for the modding community, thanks Johan. :)

Now where is that lazy Inferis? Get to work dammit! :D :p