mirror of https://github.com/OpenTTD/OpenTTD
Codechange: move non-GUI code to non-GUI source files.
parent
4ce941bbc2
commit
f513a807db
|
@ -17,9 +17,12 @@
|
||||||
#include "core/alloc_func.hpp"
|
#include "core/alloc_func.hpp"
|
||||||
#include "string_func.h"
|
#include "string_func.h"
|
||||||
|
|
||||||
|
#include "table/strings.h"
|
||||||
|
|
||||||
#include "safeguards.h"
|
#include "safeguards.h"
|
||||||
|
|
||||||
static GRFTownName *_grf_townnames = nullptr;
|
static GRFTownName *_grf_townnames = nullptr;
|
||||||
|
static std::vector<StringID> _grf_townname_names;
|
||||||
|
|
||||||
GRFTownName *GetGRFTownName(uint32 grfid)
|
GRFTownName *GetGRFTownName(uint32 grfid)
|
||||||
{
|
{
|
||||||
|
@ -101,16 +104,24 @@ char *GRFTownNameGenerate(char *buf, uint32 grfid, uint16 gen, uint32 seed, cons
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringID *GetGRFTownNameList()
|
|
||||||
|
/** Allocate memory for the NewGRF town names. */
|
||||||
|
void InitGRFTownGeneratorNames()
|
||||||
{
|
{
|
||||||
int nb_names = 0, n = 0;
|
_grf_townname_names.clear();
|
||||||
for (GRFTownName *t = _grf_townnames; t != nullptr; t = t->next) nb_names += t->nb_gen;
|
|
||||||
StringID *list = MallocT<StringID>(nb_names + 1);
|
|
||||||
for (GRFTownName *t = _grf_townnames; t != nullptr; t = t->next) {
|
for (GRFTownName *t = _grf_townnames; t != nullptr; t = t->next) {
|
||||||
for (int j = 0; j < t->nb_gen; j++) list[n++] = t->name[j];
|
for (int j = 0; j < t->nb_gen; j++) _grf_townname_names.push_back(t->name[j]);
|
||||||
}
|
}
|
||||||
list[n] = INVALID_STRING_ID;
|
}
|
||||||
return list;
|
|
||||||
|
const std::vector<StringID>& GetGRFTownNameList()
|
||||||
|
{
|
||||||
|
return _grf_townname_names;
|
||||||
|
}
|
||||||
|
|
||||||
|
StringID GetGRFTownNameName(uint gen)
|
||||||
|
{
|
||||||
|
return gen < _grf_townname_names.size() ? _grf_townname_names[gen] : STR_UNDEFINED;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CleanUpGRFTownNames()
|
void CleanUpGRFTownNames()
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#ifndef NEWGRF_TOWNNAME_H
|
#ifndef NEWGRF_TOWNNAME_H
|
||||||
#define NEWGRF_TOWNNAME_H
|
#define NEWGRF_TOWNNAME_H
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
#include "strings_type.h"
|
#include "strings_type.h"
|
||||||
|
|
||||||
struct NamePart {
|
struct NamePart {
|
||||||
|
@ -45,9 +46,11 @@ GRFTownName *AddGRFTownName(uint32 grfid);
|
||||||
GRFTownName *GetGRFTownName(uint32 grfid);
|
GRFTownName *GetGRFTownName(uint32 grfid);
|
||||||
void DelGRFTownName(uint32 grfid);
|
void DelGRFTownName(uint32 grfid);
|
||||||
void CleanUpGRFTownNames();
|
void CleanUpGRFTownNames();
|
||||||
StringID *GetGRFTownNameList();
|
|
||||||
char *GRFTownNameGenerate(char *buf, uint32 grfid, uint16 gen, uint32 seed, const char *last);
|
char *GRFTownNameGenerate(char *buf, uint32 grfid, uint16 gen, uint32 seed, const char *last);
|
||||||
uint32 GetGRFTownNameId(int gen);
|
uint32 GetGRFTownNameId(int gen);
|
||||||
uint16 GetGRFTownNameType(int gen);
|
uint16 GetGRFTownNameType(int gen);
|
||||||
|
StringID GetGRFTownNameName(uint gen);
|
||||||
|
|
||||||
|
const std::vector<StringID>& GetGRFTownNameList();
|
||||||
|
|
||||||
#endif /* NEWGRF_TOWNNAME_H */
|
#endif /* NEWGRF_TOWNNAME_H */
|
||||||
|
|
|
@ -74,35 +74,10 @@ static const StringID _font_zoom_dropdown[] = {
|
||||||
INVALID_STRING_ID,
|
INVALID_STRING_ID,
|
||||||
};
|
};
|
||||||
|
|
||||||
static StringID *_grf_names = nullptr; ///< Pointer to town names defined by NewGRFs.
|
|
||||||
static int _nb_grf_names = 0; ///< Number of town names defined by NewGRFs.
|
|
||||||
|
|
||||||
static Dimension _circle_size; ///< Dimension of the circle +/- icon. This is here as not all users are within the class of the settings window.
|
static Dimension _circle_size; ///< Dimension of the circle +/- icon. This is here as not all users are within the class of the settings window.
|
||||||
|
|
||||||
static const void *ResolveVariableAddress(const GameSettings *settings_ptr, const SettingDesc *sd);
|
static const void *ResolveVariableAddress(const GameSettings *settings_ptr, const SettingDesc *sd);
|
||||||
|
|
||||||
/** Allocate memory for the NewGRF town names. */
|
|
||||||
void InitGRFTownGeneratorNames()
|
|
||||||
{
|
|
||||||
free(_grf_names);
|
|
||||||
_grf_names = GetGRFTownNameList();
|
|
||||||
_nb_grf_names = 0;
|
|
||||||
for (StringID *s = _grf_names; *s != INVALID_STRING_ID; s++) _nb_grf_names++;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a town name.
|
|
||||||
* @param town_name Number of the wanted town name.
|
|
||||||
* @return Name of the town as string ID.
|
|
||||||
*/
|
|
||||||
static inline StringID TownName(int town_name)
|
|
||||||
{
|
|
||||||
if (town_name < BUILTIN_TOWNNAME_GENERATOR_COUNT) return STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH + town_name;
|
|
||||||
town_name -= BUILTIN_TOWNNAME_GENERATOR_COUNT;
|
|
||||||
if (town_name < _nb_grf_names) return _grf_names[town_name];
|
|
||||||
return STR_UNDEFINED;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get index of the current screen resolution.
|
* Get index of the current screen resolution.
|
||||||
* @return Index of the current screen resolution if it is a known resolution, _resolutions.size() otherwise.
|
* @return Index of the current screen resolution if it is a known resolution, _resolutions.size() otherwise.
|
||||||
|
@ -244,9 +219,10 @@ struct GameOptionsWindow : Window {
|
||||||
int enabled_item = (_game_mode == GM_MENU || Town::GetNumItems() == 0) ? -1 : *selected_index;
|
int enabled_item = (_game_mode == GM_MENU || Town::GetNumItems() == 0) ? -1 : *selected_index;
|
||||||
|
|
||||||
/* Add and sort newgrf townnames generators */
|
/* Add and sort newgrf townnames generators */
|
||||||
for (int i = 0; i < _nb_grf_names; i++) {
|
const auto &grf_names = GetGRFTownNameList();
|
||||||
|
for (uint i = 0; i < grf_names.size(); i++) {
|
||||||
int result = BUILTIN_TOWNNAME_GENERATOR_COUNT + i;
|
int result = BUILTIN_TOWNNAME_GENERATOR_COUNT + i;
|
||||||
list.emplace_back(new DropDownListStringItem(_grf_names[i], result, enabled_item != result && enabled_item >= 0));
|
list.emplace_back(new DropDownListStringItem(grf_names[i], result, enabled_item != result && enabled_item >= 0));
|
||||||
}
|
}
|
||||||
std::sort(list.begin(), list.end(), DropDownListStringItem::NatSortFunc);
|
std::sort(list.begin(), list.end(), DropDownListStringItem::NatSortFunc);
|
||||||
|
|
||||||
|
@ -331,7 +307,14 @@ struct GameOptionsWindow : Window {
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_GO_CURRENCY_DROPDOWN: SetDParam(0, _currency_specs[this->opt->locale.currency].name); break;
|
case WID_GO_CURRENCY_DROPDOWN: SetDParam(0, _currency_specs[this->opt->locale.currency].name); break;
|
||||||
case WID_GO_ROADSIDE_DROPDOWN: SetDParam(0, STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT + this->opt->vehicle.road_side); break;
|
case WID_GO_ROADSIDE_DROPDOWN: SetDParam(0, STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT + this->opt->vehicle.road_side); break;
|
||||||
case WID_GO_TOWNNAME_DROPDOWN: SetDParam(0, TownName(this->opt->game_creation.town_name)); break;
|
case WID_GO_TOWNNAME_DROPDOWN: {
|
||||||
|
int gen = this->opt->game_creation.town_name;
|
||||||
|
StringID name = gen < BUILTIN_TOWNNAME_GENERATOR_COUNT ?
|
||||||
|
STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH + gen :
|
||||||
|
GetGRFTownNameName(gen - BUILTIN_TOWNNAME_GENERATOR_COUNT);
|
||||||
|
SetDParam(0, name);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case WID_GO_AUTOSAVE_DROPDOWN: SetDParam(0, _autosave_dropdown[_settings_client.gui.autosave]); break;
|
case WID_GO_AUTOSAVE_DROPDOWN: SetDParam(0, _autosave_dropdown[_settings_client.gui.autosave]); break;
|
||||||
case WID_GO_LANG_DROPDOWN: SetDParamStr(0, _current_language->own_name); break;
|
case WID_GO_LANG_DROPDOWN: SetDParamStr(0, _current_language->own_name); break;
|
||||||
case WID_GO_RESOLUTION_DROPDOWN: SetDParam(0, GetCurRes() == _resolutions.size() ? STR_GAME_OPTIONS_RESOLUTION_OTHER : SPECSTR_RESOLUTION_START + GetCurRes()); break;
|
case WID_GO_RESOLUTION_DROPDOWN: SetDParam(0, GetCurRes() == _resolutions.size() ? STR_GAME_OPTIONS_RESOLUTION_OTHER : SPECSTR_RESOLUTION_START + GetCurRes()); break;
|
||||||
|
|
Loading…
Reference in New Issue