File diff r3:e0ae611b04b0 → r4:44fa2d88cb6a
namegen.c
Show inline comments
 
@@ -534,7 +534,7 @@ static byte MakeGermanTownName(byte *buf
 
	if ((ext==12) || (ext==19)) {
 
		i=GETNUM(2,NUM_GERMAN_3-2);
 
		AppendPart(&buf, 2+i, german_3);
 
		}
 
	}
 

	
 

	
 
	i=GETNUM(3,NUM_GERMAN_1);
 
@@ -543,7 +543,7 @@ static byte MakeGermanTownName(byte *buf
 

	
 
	if (i>NUM_GERMAN_1_HARDCODED-1) {
 
		AppendPart(&buf, GETNUM(5, NUM_GERMAN_2), german_2);
 
		}
 
	}
 

	
 
	if (ext==24) {
 
		i=GETNUM(9,NUM_GERMAN_4);
 
@@ -551,11 +551,11 @@ static byte MakeGermanTownName(byte *buf
 
		if (i<=NUM_GERMAN_4_PRECHANGE-1) {
 
			AppendPart(&buf, 0, german_3);
 
			AppendPart(&buf, i, german_4);
 
			} else {
 
		} else {
 
			AppendPart(&buf, 1, german_3);
 
			AppendPart(&buf, i, german_4);
 
			}
 
		}
 
	}
 

	
 
	return 0;
 
}
 
@@ -802,7 +802,7 @@ static const char silly_1[] =
 
	MK("Scramble")
 
	MK("Silly")
 
	MK("Simple")
 
	MK("Tricky")
 
	MK("Trickle")
 
	MK("Slippery")
 
	MK("Slimey")
 
	MK("Slumber")
 
@@ -1972,3 +1972,34 @@ TownNameGenerator * const _town_name_gen
 
	MakeHungarianTownName,
 
	MakeAustrianTownName
 
};
 

	
 
#define FIXNUM(x, y, z) (((((x) << 16) / (y)) + 1) << z)
 

	
 
uint32 GetOldTownName(uint32 townnameparts, byte old_town_name_type)
 
{
 
	uint32 a = 0;
 
	switch (old_town_name_type) {
 
		case 0: case 3: /* English, American */
 
			/*	Already OK */
 
			return townnameparts;
 
		case 1: /* French */
 
			/*	For some reason 86 needs to be subtracted from townnameparts
 
			 *	0000 0000 0000 0000 0000 0000 1111 1111 */
 
			return FIXNUM(townnameparts - 86, NUM_FRENCH_1, 0);
 
		case 2: /* German */
 
			#ifdef _DEBUG
 
				printf("German Townnames are buggy... (%d)\n", townnameparts);
 
			#endif
 
			return townnameparts;
 
		case 4: /* Latin-American */
 
			/*	0000 0000 0000 0000 0000 0000 1111 1111 */
 
			return FIXNUM(townnameparts, NUM_SPANISH_1, 0);
 
		case 5: /* Silly */
 
				//AppendPart(&buf, GETNUM(16, NUM_SILLY_2),silly_2);
 
			/*	NUM_SILLY_1	-	lower 16 bits
 
			 *	NUM_SILLY_2	-	upper 16 bits without leading 1 (first 8 bytes)
 
			 *	1000 0000 2222 2222 0000 0000 1111 1111 */
 
			return FIXNUM(townnameparts, NUM_SILLY_1, 0) | FIXNUM(((townnameparts >> 16)&0xFF), NUM_SILLY_2, 16);
 
	}
 
	return 0;
 
}