[Languages] Cleanup language constants, use repositories (#3838)

* [Languages] Cleanup languages constants

# Notes
- Cleanup formatting and logic where necessary.
- Cleaned up constants to use a namespace with `constexpr` instead.
- Changed `LoadCharacterLanguages` to use a repository instead.

* Lua GroupMessage uint8/language_id

* Lua More uint8/language_id
This commit is contained in:
Alex King
2024-01-06 23:17:10 -05:00
committed by GitHub
parent 43c4b13978
commit 122fe398b4
34 changed files with 393 additions and 393 deletions
+71 -86
View File
@@ -28,7 +28,6 @@
#include "../common/inventory_profile.h"
#include "../common/races.h"
#include "../common/classes.h"
#include "../common/languages.h"
#include "../common/skills.h"
#include "../common/extprofile.h"
#include "../common/strings.h"
@@ -2181,115 +2180,101 @@ void Client::SetRaceStartingSkills( PlayerProfile_Struct *pp )
void Client::SetRacialLanguages( PlayerProfile_Struct *pp )
{
switch( pp->race )
{
case BARBARIAN:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_BARBARIAN] = 100;
switch (pp->race) {
case Race::Human: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
break;
}
case DARK_ELF:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_DARK_ELVISH] = 100;
pp->languages[LANG_DARK_SPEECH] = 100;
pp->languages[LANG_ELDER_ELVISH] = 100;
pp->languages[LANG_ELVISH] = 25;
case Race::Barbarian: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::Barbarian] = Language::MaxValue;
break;
}
case DWARF:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_DWARVISH] = 100;
pp->languages[LANG_GNOMISH] = 25;
case Race::Erudite: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::Erudian] = Language::MaxValue;
break;
}
case ERUDITE:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_ERUDIAN] = 100;
case Race::WoodElf: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::Elvish] = Language::MaxValue;
break;
}
case FROGLOK:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_FROGLOK] = 100;
pp->languages[LANG_TROLL] = 25;
case Race::HighElf: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::DarkElvish] = 25;
pp->languages[Language::ElderElvish] = 25;
pp->languages[Language::Elvish] = Language::MaxValue;
break;
}
case GNOME:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_DWARVISH] = 25;
pp->languages[LANG_GNOMISH] = 100;
case Race::DarkElf: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::DarkElvish] = Language::MaxValue;
pp->languages[Language::DarkSpeech] = Language::MaxValue;
pp->languages[Language::ElderElvish] = Language::MaxValue;
pp->languages[Language::Elvish] = 25;
break;
}
case HALF_ELF:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_ELVISH] = 100;
case Race::HalfElf: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::Elvish] = Language::MaxValue;
break;
}
case HALFLING:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_HALFLING] = 100;
case Race::Dwarf: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::Dwarvish] = Language::MaxValue;
pp->languages[Language::Gnomish] = 25;
break;
}
case HIGH_ELF:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_DARK_ELVISH] = 25;
pp->languages[LANG_ELDER_ELVISH] = 25;
pp->languages[LANG_ELVISH] = 100;
case Race::Troll: {
pp->languages[Language::CommonTongue] = RuleI(Character, TrollCommonTongue);
pp->languages[Language::DarkSpeech] = Language::MaxValue;
pp->languages[Language::Troll] = Language::MaxValue;
break;
}
case HUMAN:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
case Race::Ogre: {
pp->languages[Language::CommonTongue] = RuleI(Character, OgreCommonTongue);
pp->languages[Language::DarkSpeech] = Language::MaxValue;
pp->languages[Language::Ogre] = Language::MaxValue;
break;
}
case IKSAR:
{
pp->languages[LANG_COMMON_TONGUE] = RuleI(Character, IksarCommonTongue);
pp->languages[LANG_DARK_SPEECH] = 100;
pp->languages[LANG_LIZARDMAN] = 100;
case Race::Halfling: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::Halfling] = Language::MaxValue;
break;
}
case OGRE:
{
pp->languages[LANG_COMMON_TONGUE] = RuleI(Character, OgreCommonTongue);
pp->languages[LANG_DARK_SPEECH] = 100;
pp->languages[LANG_OGRE] = 100;
case Race::Gnome: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::Dwarvish] = 25;
pp->languages[Language::Gnomish] = Language::MaxValue;
break;
}
case TROLL:
{
pp->languages[LANG_COMMON_TONGUE] = RuleI(Character, TrollCommonTongue);
pp->languages[LANG_DARK_SPEECH] = 100;
pp->languages[LANG_TROLL] = 100;
case Race::Iksar: {
pp->languages[Language::CommonTongue] = RuleI(Character, IksarCommonTongue);
pp->languages[Language::DarkSpeech] = Language::MaxValue;
pp->languages[Language::Lizardman] = Language::MaxValue;
break;
}
case WOOD_ELF:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_ELVISH] = 100;
case Race::VahShir: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::CombineTongue] = Language::MaxValue;
pp->languages[Language::Erudian] = 25;
pp->languages[Language::VahShir] = Language::MaxValue;
break;
}
case VAHSHIR:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_COMBINE_TONGUE] = 100;
pp->languages[LANG_ERUDIAN] = 25;
pp->languages[LANG_VAH_SHIR] = 100;
case Race::Froglok: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::Froglok] = Language::MaxValue;
pp->languages[Language::Troll] = 25;
break;
}
case DRAKKIN:
{
pp->languages[LANG_COMMON_TONGUE] = 100;
pp->languages[LANG_ELDER_DRAGON] = 100;
pp->languages[LANG_DRAGON] = 100;
case Race::Drakkin: {
pp->languages[Language::CommonTongue] = Language::MaxValue;
pp->languages[Language::ElderDragon] = Language::MaxValue;
pp->languages[Language::Dragon] = Language::MaxValue;
break;
}
default: {
break;
}
}
@@ -2298,12 +2283,12 @@ void Client::SetRacialLanguages( PlayerProfile_Struct *pp )
void Client::SetClassLanguages(PlayerProfile_Struct *pp)
{
// we only need to handle one class, but custom server might want to do more
switch(pp->class_) {
case Class::Rogue:
pp->languages[LANG_THIEVES_CANT] = 100;
break;
default:
break;
switch (pp->class_) {
case Class::Rogue:
pp->languages[Language::ThievesCant] = Language::MaxValue;
break;
default:
break;
}
}