Files
questshock/modding/hacked/ss1/resource/Language.go
T

47 lines
1.2 KiB
Go

package resource
import "fmt"
// Language defines the human language of a resource.
type Language byte
const (
// LangAny identifies language agnostic resources.
LangAny Language = 0xFF
// LangDefault identifies the default language, typically English - unless modded.
LangDefault Language = 0
// LangFrench identifies the French language.
LangFrench Language = 1
// LangGerman identifies the German language.
LangGerman Language = 2
// LanguageCount specifies how many languages are supported.
LanguageCount = 3
)
func (lang Language) String() string {
switch lang {
case LangAny:
return "Any"
case LangDefault:
return "Default"
case LangFrench:
return "French"
case LangGerman:
return "German"
default:
return fmt.Sprintf("Unknown%02X", int(lang))
}
}
// Languages returns a slice of all human languages. Does not include "Any" selector.
func Languages() []Language {
return []Language{LangDefault, LangFrench, LangGerman}
}
// Includes returns true if the language includes the provided one.
// This is not symmetrical. While "Any" includes "German", "German" does not include "Any".
func (lang Language) Includes(other Language) bool {
return (lang == LangAny) || (lang == other)
}