City Billboard and Gamefonts woes...

Dom Pedro II

Modder For Life
Joined
Apr 3, 2002
Messages
6,811
Location
Exit 16, New Jersey
I'm trying to add an icon to the city billboard to show if a city can perform airlifts. I find it frustrating that I can't easily spot which cities can airlift units, so I want to add an icon that'll tell me at a glance.

Actually adding an icon to the city billboard is simple enough. The problem is getting the game to read a new icon. I've read in some places that the font symbols are hard-coded and adding more will just cause everything to come out wrong (which is exactly what happened when I tried), but it seems other people have been able to add new font symbols.... so is there a work around? Or am I stuck (keeping in mind that this has to work in the SDK)?
 
CvEnums.h:

Code:
enum DllExport FontSymbols					// Exposed to Python
{
	// 'OTHER' symbols
	HAPPY_CHAR = 0,
	UNHAPPY_CHAR,
	HEALTHY_CHAR,
	UNHEALTHY_CHAR,
	BULLET_CHAR,
	STRENGTH_CHAR,
	MOVES_CHAR,
	RELIGION_CHAR,
	STAR_CHAR,
	SILVER_STAR_CHAR,
	TRADE_CHAR,
	DEFENSE_CHAR,
	GREAT_PEOPLE_CHAR,
	BAD_GOLD_CHAR,
	BAD_FOOD_CHAR,
	EATEN_FOOD_CHAR,
	GOLDEN_AGE_CHAR,
	ANGRY_POP_CHAR,
	OPEN_BORDERS_CHAR,
	DEFENSIVE_PACT_CHAR,
	MAP_CHAR,
	OCCUPATION_CHAR,
	POWER_CHAR,
/*************************************************************************************************/
/**	PrettyPic								04/04/09								Xienwolf	**/
/**																								**/
/**				Includes new Characters in the Font Files for use in display					**/
/*************************************************************************************************/
	DEMON_CHAR,
	ANIMAL_CHAR,
	ORC_CHAR,
	FURIOUS_CHAR,
	ANNOYED_CHAR,
	CAUTIOUS_CHAR,
	PLEASED_CHAR,
	FRIENDLY_CHAR,
/*************************************************************************************************/
/**	PrettyPic								END													**/
/*************************************************************************************************/

#ifdef _USRDLL
	MAX_NUM_SYMBOLS
#endif
};
CyEnumsInterface:
Code:
	python::enum_<FontSymbols>("FontSymbols")
		.value("HAPPY_CHAR", HAPPY_CHAR)
		.value("UNHAPPY_CHAR", UNHAPPY_CHAR)
		.value("HEALTHY_CHAR", HEALTHY_CHAR)
		.value("UNHEALTHY_CHAR", UNHEALTHY_CHAR)
		.value("BULLET_CHAR", BULLET_CHAR)
		.value("STRENGTH_CHAR", STRENGTH_CHAR)
		.value("MOVES_CHAR", MOVES_CHAR)
		.value("RELIGION_CHAR", RELIGION_CHAR)
		.value("STAR_CHAR", STAR_CHAR)
		.value("SILVER_STAR_CHAR", SILVER_STAR_CHAR)
		.value("TRADE_CHAR", TRADE_CHAR)
		.value("DEFENSE_CHAR", DEFENSE_CHAR)
		.value("GREAT_PEOPLE_CHAR", GREAT_PEOPLE_CHAR)
		.value("BAD_GOLD_CHAR", BAD_GOLD_CHAR)
		.value("BAD_FOOD_CHAR", BAD_FOOD_CHAR)
		.value("EATEN_FOOD_CHAR", EATEN_FOOD_CHAR)
		.value("GOLDEN_AGE_CHAR", GOLDEN_AGE_CHAR)
		.value("ANGRY_POP_CHAR", ANGRY_POP_CHAR)
		.value("OPEN_BORDERS_CHAR", OPEN_BORDERS_CHAR)
		.value("DEFENSIVE_PACT_CHAR", DEFENSIVE_PACT_CHAR)
		.value("MAP_CHAR", MAP_CHAR)
		.value("OCCUPATION_CHAR", OCCUPATION_CHAR)
		.value("POWER_CHAR", POWER_CHAR)
/*************************************************************************************************/
/**	PrettyPic								04/04/09								Xienwolf	**/
/**																								**/
/**				Includes new Characters in the Font Files for use in display					**/
/*************************************************************************************************/
		.value("DEMON_CHAR", DEMON_CHAR)
		.value("ANIMAL_CHAR", ANIMAL_CHAR)
		.value("ORC_CHAR", ORC_CHAR)
		.value("FURIOUS_CHAR", FURIOUS_CHAR)
		.value("ANNOYED_CHAR", ANNOYED_CHAR)
		.value("CAUTIOUS_CHAR", CAUTIOUS_CHAR)
		.value("PLEASED_CHAR", PLEASED_CHAR)
		.value("FRIENDLY_CHAR", FRIENDLY_CHAR)
/*************************************************************************************************/
/**	PrettyPic								END													**/
/*************************************************************************************************/
		.value("MAX_NUM_SYMBOLS", MAX_NUM_SYMBOLS)
		;
To use from DLL:
Code:
					szTempBuffer += CvWString::format(L"%c", (gDLL->getSymbolID(PLEASED_CHAR)));
To use from python
Code:
														szTempBuffer = u"%c" %(CyGame().getSymbolID(FontSymbols.PLEASED_CHAR))


Order in Enums matches order in TGA
 
I haven't tried to use them in the Billboard, but I've used them successfully in the score list so far. I remember trying to do it this way once before and having issues, but this time it worked fine.

Yeah, oddly enough I'm not getting the same crazy problems. The icon's not appearing yet, but I'm not getting the weird reordering of all the font symbols that I got the first time I did it. So obviously I did something I shouldn't have the first time or didn't do something I should've. I think maybe I didn't add the enums to the CyEnumsInterface file the first time.
 
Top Bottom