[BUG FIX] the icon of the great people can not be displayed correctly

mediv01

Chieftain
Joined
Nov 10, 2022
Messages
30
the icon of the great people can not be displayed correctly
pic01.png

I modified some Python code, and it is fixed like this
pic03.png


The cause of the problem is the use of UNICHR in PYTHON
pic04.png

it will be better if it is like this
PIC05.png



Python:
MAX_NUM_SYMBOLS = 33
[
    HAPPY_CHAR,
    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,
    CITIZEN_CHAR,
    GREAT_GENERAL_CHAR,
    AIRPORT_CHAR,
    ANGRY_CIV_CHAR,
    UNHAPPY_CIV_CHAR,
    NORMAL_CIV_CHAR,
    HAPPY_CIV_CHAR,
    VERYHAPPY_CIV_CHAR,
    CROSSED_CHAR,
    RANDOM_CHAR
] = range(8850, 8850 + MAX_NUM_SYMBOLS)

FontMap = {
    HAPPY_CHAR: FontSymbols.HAPPY_CHAR,
    UNHAPPY_CHAR: FontSymbols.UNHAPPY_CHAR,
    HEALTHY_CHAR: FontSymbols.HEALTHY_CHAR,
    UNHEALTHY_CHAR: FontSymbols.UNHEALTHY_CHAR,
    BULLET_CHAR: FontSymbols.BULLET_CHAR,
    MOVES_CHAR: FontSymbols.MOVES_CHAR,
    RELIGION_CHAR: FontSymbols.RELIGION_CHAR,
    STAR_CHAR: FontSymbols.STAR_CHAR,
    SILVER_STAR_CHAR: FontSymbols.SILVER_STAR_CHAR,
    TRADE_CHAR: FontSymbols.TRADE_CHAR,
    DEFENSE_CHAR: FontSymbols.DEFENSE_CHAR,
    GREAT_PEOPLE_CHAR: FontSymbols.GREAT_PEOPLE_CHAR,
    BAD_GOLD_CHAR: FontSymbols.BAD_GOLD_CHAR,
    BAD_FOOD_CHAR: FontSymbols.BAD_FOOD_CHAR,
    EATEN_FOOD_CHAR: FontSymbols.EATEN_FOOD_CHAR,
    GOLDEN_AGE_CHAR: FontSymbols.GOLDEN_AGE_CHAR,
    ANGRY_POP_CHAR: FontSymbols.ANGRY_POP_CHAR,
    OPEN_BORDERS_CHAR: FontSymbols.OPEN_BORDERS_CHAR,
    DEFENSIVE_PACT_CHAR: FontSymbols.DEFENSIVE_PACT_CHAR,
    MAP_CHAR: FontSymbols.MAP_CHAR,
    OCCUPATION_CHAR: FontSymbols.OCCUPATION_CHAR,
    POWER_CHAR: FontSymbols.POWER_CHAR,
    CITIZEN_CHAR: FontSymbols.CITIZEN_CHAR,
    GREAT_GENERAL_CHAR: FontSymbols.GREAT_GENERAL_CHAR,
    AIRPORT_CHAR: FontSymbols.AIRPORT_CHAR,
    ANGRY_CIV_CHAR: FontSymbols.ANGRY_CIV_CHAR,
    UNHAPPY_CIV_CHAR: FontSymbols.UNHAPPY_CIV_CHAR,
    NORMAL_CIV_CHAR: FontSymbols.NORMAL_CIV_CHAR,
    HAPPY_CIV_CHAR: FontSymbols.HAPPY_CIV_CHAR,
    VERYHAPPY_CIV_CHAR: FontSymbols.VERYHAPPY_CIV_CHAR,
    CROSSED_CHAR: FontSymbols.CROSSED_CHAR,
    RANDOM_CHAR: FontSymbols.RANDOM_CHAR,
}


def C2Cunichr2(id):
    fontid = FontMap.get(id)
    if fontid:
        char = u"%c" % GC.getGame().getSymbolID(fontid)
        return char

    for k in range(YieldTypes.NUM_YIELD_TYPES):
        if id == 8483 + k:
            info = gc.getYieldInfo(k)
            char = u"%c" % info.getChar()
            return char

    for k in range(CommerceTypes.NUM_COMMERCE_TYPES):
        if id == 8500 + k:
            info = gc.getCommerceInfo(k)
            char = u"%c" % info.getChar()
            return char

    return unichr(id)
 
Fascinating. @Toffer90 you seeing this? @mediv01 have you considered just submitting these kinds of improvements to our git server?
Yeah, I knew using the unicode caused the icons to be missing on the steam updated version of the game unless one set it to the beta version that is the same as the official latest version of BtS which all other platform provide.
Didn't know it caused symbol issues for Chinese translation though.... I thought the issues related to using unicode like that in py code was just limited to the steam created bullsh*t patch which hacked the exe and removed lots of files from the game.
 
Last edited:
Top Bottom