60 lines
1.2 KiB
C++
60 lines
1.2 KiB
C++
// Copyright (C) 2007-2025 EQ2EMulator
|
|
// Licensed under GPL v3
|
|
|
|
#ifndef LANGUAGES_H_
|
|
#define LANGUAGES_H_
|
|
|
|
#include <string>
|
|
#include <list>
|
|
#include "../common/types.h"
|
|
|
|
using namespace std;
|
|
|
|
class Language {
|
|
public:
|
|
Language();
|
|
Language(Language* language);
|
|
void SetID(int32 id) {this->id = id;}
|
|
void SetName(const char *name) {strncpy(this->name, name, sizeof(this->name));}
|
|
void SetSaveNeeded(bool save_needed) {this->save_needed = save_needed;}
|
|
|
|
int32 GetID() {return id;}
|
|
const char* GetName() {return name;}
|
|
bool GetSaveNeeded() {return save_needed;}
|
|
|
|
private:
|
|
int32 id;
|
|
char name[50];
|
|
bool save_needed;
|
|
};
|
|
|
|
class MasterLanguagesList {
|
|
public:
|
|
MasterLanguagesList();
|
|
~MasterLanguagesList();
|
|
void Clear();
|
|
int32 Size();
|
|
void AddLanguage(Language* language);
|
|
Language* GetLanguage(int32 id);
|
|
Language* GetLanguageByName(const char* name);
|
|
list<Language*>* GetAllLanguages();
|
|
|
|
private:
|
|
list<Language*> languages_list;
|
|
};
|
|
|
|
class PlayerLanguagesList {
|
|
public:
|
|
PlayerLanguagesList();
|
|
~PlayerLanguagesList();
|
|
void Clear();
|
|
void Add(Language* language);
|
|
Language* GetLanguage(int32 id);
|
|
Language* GetLanguageByName(const char* name);
|
|
list<Language*>* GetAllLanguages();
|
|
|
|
private:
|
|
list<Language*> player_languages_list;
|
|
};
|
|
#endif
|