Opimalisation

This commit is contained in:
M. Sz 2020-11-25 12:37:16 +01:00
parent a4ded26038
commit 56787b13b8
5 changed files with 17 additions and 34 deletions

View File

@ -51,7 +51,7 @@ func GetFontCharset(language string) string {
}
// modificators for labels (used in string tables
func getModificators() map[string]int {
func getModifiers() map[string]int {
return map[string]int{
"ENG": 0, // (English) // checked
"ESP": 0, // (Spanish)
@ -69,8 +69,8 @@ func getModificators() map[string]int {
}
// GetFontCharset returns modificator for language
func GetLabelModificator(language string) int {
mod := getModificators()
func GetLabelModifier(language string) int {
mod := getModifiers()
return mod[language]
}

View File

@ -278,44 +278,27 @@ func (am *AssetManager) LoadStringTable(tablePath string) (d2tbl.TextDictionary,
return table, err
}
// TranslateString returns the translation of the given string. The string is retrieved from
// the loaded string tables.
func (am *AssetManager) TranslateString(key string) string {
func (am *AssetManager) TranslateString(input interface{}) string {
var key string
switch s := input.(type) {
case string:
key = s
case fmt.Stringer:
key = s.String()
}
for idx := range am.tables {
if value, found := am.tables[idx][key]; found {
return value
}
}
// Fix to allow v.setDescLabels("#123") to be bypassed for a patch in issue #360. Reenable later.
// log.Panicf("Could not find a string for the key '%s'", key)
return key
}
// TranslateHeroClass translates her class given to game locale
func (am *AssetManager) TranslateHeroClass(h d2enum.Hero) string {
switch h {
case d2enum.HeroBarbarian:
return am.TranslateString("Barbarian")
case d2enum.HeroNecromancer:
return am.TranslateString("Necromancer")
case d2enum.HeroPaladin:
return am.TranslateString("Paladin")
case d2enum.HeroAssassin:
return am.TranslateString("Assassin")
case d2enum.HeroSorceress:
return am.TranslateString("Sorceress")
case d2enum.HeroAmazon:
return am.TranslateString("Amazon")
case d2enum.HeroDruid:
return am.TranslateString("Druid")
default:
am.Error("Unknown Hero Class")
}
// should not be reached
return "---"
}
// LoadPaletteTransform loads a palette transform file
func (am *AssetManager) LoadPaletteTransform(path string) (*d2pl2.PL2, error) {
if pl2, found := am.transforms.Retrieve(path); found {

View File

@ -349,7 +349,7 @@ func (v *CharacterSelect) updateCharacterBoxes() {
heroName := v.gameStates[idx].HeroName
heroInfo := v.asset.TranslateString("level") + " " + strconv.FormatInt(int64(v.gameStates[idx].Stats.Level), 10) +
" " + v.asset.TranslateHeroClass(v.gameStates[idx].HeroType)
" " + v.asset.TranslateString(v.gameStates[idx].HeroType.String())
v.characterNameLabel[i].SetText(d2ui.ColorTokenize(heroName, d2ui.ColorTokenGold))
v.characterStatsLabel[i].SetText(d2ui.ColorTokenize(heroInfo, d2ui.ColorTokenWhite))

View File

@ -282,7 +282,7 @@ func (v *MainMenu) loadBackgroundSprites() {
}
func translateLabel(label int, lng string, asset *d2asset.AssetManager) string {
return asset.TranslateString(fmt.Sprintf("#%d", baseLabelNumbers(label+d2resource.GetLabelModificator(lng))))
return asset.TranslateString(fmt.Sprintf("#%d", baseLabelNumbers(label+d2resource.GetLabelModifier(lng))))
}
func (v *MainMenu) createLabels(loading d2screen.LoadingState) {

View File

@ -254,7 +254,7 @@ func (s *HeroStatsPanel) renderStaticLabels(target d2interface.Surface) {
centerAlign bool
}{
{labelHeroNameX, labelHeroNameY, s.heroName, d2resource.Font16, true},
{labelHeroClassX, labelHeroClassY, s.asset.TranslateHeroClass(s.heroClass), d2resource.Font16, true},
{labelHeroClassX, labelHeroClassY, s.asset.TranslateString(s.heroClass.String()), d2resource.Font16, true},
{labelLevelX, labelLevelY, s.asset.TranslateString("strchrlvl"), d2resource.Font6, true},
{labelExperienceX, labelExperienceY, s.asset.TranslateString("strchrexp"), d2resource.Font6, true},