OpenTTD: src/townname.cpp File Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Data Structures | Typedefs | Functions | Variables
townname.cpp File Reference

Town name generators. More...

`#include "stdafx.h"`
`#include "string_func.h"`
`#include "townname_type.h"`
`#include "town.h"`
`#include "strings_func.h"`
`#include "core/random_func.hpp"`
`#include "genworld.h"`
`#include "gfx_layout.h"`
`#include "table/townname.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | TownNameGeneratorParams
| Contains pointer to generator and minimum buffer size (not incl. More...

## Typedefs
typedef char * | TownNameGenerator (char *buf, const char *last, uint32 seed)
| Type for all town name generator functions.

## Functions
char * | GetTownName (char *buff, const TownNameParams *par, uint32 townnameparts, const char *last)
| Fills buffer with specified town name.
char * | GetTownName (char *buff, const Town *t, const char *last)
| Fills buffer with town's name.
bool | VerifyTownName (uint32 r, const TownNameParams *par, TownNames *town_names)
| Verifies the town name is valid and unique.
bool | GenerateTownName (uint32 *townnameparts, TownNames *town_names)
| Generates valid town name.
static uint32 | SeedChance (byte shift_by, int max, uint32 seed)
| Generates a number from given seed.
static uint32 | SeedModChance (byte shift_by, int max, uint32 seed)
| Generates a number from given seed.
static int32 | SeedChanceBias (byte shift_by, int max, uint32 seed, int bias)
| Generates a number from given seed.
static void | ReplaceWords (const char *org, const char *rep, char *buf)
| Replaces a string beginning in 'org' with 'rep'.
static void | ReplaceEnglishWords (char *buf, bool original)
| Replaces english curses and ugly letter combinations by nicer ones.
static char * | MakeEnglishOriginalTownName (char *buf, const char *last, uint32 seed)
| Generates English (Original) town name from given seed.
static char * | MakeEnglishAdditionalTownName (char *buf, const char *last, uint32 seed)
| Generates English (Additional) town name from given seed.
static char * | MakeAustrianTownName (char *buf, const char *last, uint32 seed)
| Generates Austrian town name from given seed.
static char * | MakeGermanTownName (char *buf, const char *last, uint32 seed)
| Generates German town name from given seed.
static char * | MakeSpanishTownName (char *buf, const char *last, uint32 seed)
| Generates Latin-American town name from given seed.
static char * | MakeFrenchTownName (char *buf, const char *last, uint32 seed)
| Generates French town name from given seed.
static char * | MakeSillyTownName (char *buf, const char *last, uint32 seed)
| Generates Silly town name from given seed.
static char * | MakeSwedishTownName (char *buf, const char *last, uint32 seed)
| Generates Swedish town name from given seed.
static char * | MakeDutchTownName (char *buf, const char *last, uint32 seed)
| Generates Dutch town name from given seed.
static char * | MakeFinnishTownName (char *buf, const char *last, uint32 seed)
| Generates Finnish town name from given seed.
static char * | MakePolishTownName (char *buf, const char *last, uint32 seed)
| Generates Polish town name from given seed.
static char * | MakeCzechTownName (char *buf, const char *last, uint32 seed)
| Generates Czech town name from given seed.
static char * | MakeRomanianTownName (char *buf, const char *last, uint32 seed)
| Generates Romanian town name from given seed.
static char * | MakeSlovakTownName (char *buf, const char *last, uint32 seed)
| Generates Slovak town name from given seed.
static char * | MakeNorwegianTownName (char *buf, const char *last, uint32 seed)
| Generates Norwegian town name from given seed.
static char * | MakeHungarianTownName (char *buf, const char *last, uint32 seed)
| Generates Hungarian town name from given seed.
static char * | MakeSwissTownName (char *buf, const char *last, uint32 seed)
| Generates Swiss town name from given seed.
static char * | MakeDanishTownName (char *buf, const char *last, uint32 seed)
| Generates Danish town name from given seed.
static char * | MakeTurkishTownName (char *buf, const char *last, uint32 seed)
| Generates Turkish town name from given seed.
static char * | MakeItalianTownName (char *buf, const char *last, uint32 seed)
| Generates Italian town name from given seed.
static char * | MakeCatalanTownName (char *buf, const char *last, uint32 seed)
| Generates Catalan town name from given seed.
char * | GenerateTownNameString (char *buf, const char *last, size_t lang, uint32 seed)
| Generates town name from given seed.

## Variables
static const TownNameGeneratorParams | _town_name_generators []
| Town name generators.

## Detailed Description

Town name generators.

Definition in file townname.cpp.

## Typedef Documentation

typedef char* TownNameGenerator(char *buf, const char *last, uint32 seed)

Type for all town name generator functions.

Parameters

  buf | The buffer to write the name to.
  last | The last element of the buffer.
  seed | The seed of the town name.

Returns
  The end of the filled buffer.

Definition at line 1013 of file townname.cpp.

## Function Documentation

bool GenerateTownName | ( | uint32 * | townnameparts,
|  | TownNames * | town_names
| ) |  |

Generates valid town name.

Parameters

  townnameparts | if a name is generated, it's stored there
  town_names | if a name is generated, check its uniqueness with the set

Returns
  true iff a name was generated

Definition at line 122 of file townname.cpp.

References _generating_world, _settings_game, GameSettings::game_creation, Layouter::ReduceLineCache(), GameCreationSettings::town_name, and VerifyTownName().

Referenced by GenerateTowns().

char* GenerateTownNameString | ( | char * | buf,
|  | const char * | last,
|  | size_t | lang,
|  | uint32 | seed
| ) |  |

Generates town name from given seed.

a language.

Parameters

  buf | output buffer
  last | end of buffer
  lang | town name language
  seed | generation seed

Returns
  last character ('/0')

Definition at line 1055 of file townname.cpp.

References AllocaM, lengthof, TownNameGeneratorParams::min, TownNameGeneratorParams::proc, and strecpy().

Referenced by FormatString().

char* GetTownName | ( | char * | buff,
|  | const TownNameParams * | par,
|  | uint32 | townnameparts,
|  | const char * | last
| ) |  |

Fills buffer with specified town name.

Parameters

  buff | buffer start
  par | town name parameters
  townnameparts | 'encoded' town name
  last | end of buffer

Returns
  pointer to terminating '\0'

Definition at line 51 of file townname.cpp.

References GetStringWithArgs(), TownNameParams::grfid, and TownNameParams::type.

Referenced by FormatString(), GetTownName(), and VerifyTownName().

char* GetTownName | ( | char * | buff,
|  | const Town * | t,
|  | const char * | last
| ) |  |

Fills buffer with town's name.

Parameters

  buff | buffer start
  t | we want to get name of this town
  last | end of buffer

Returns
  pointer to terminating '\0'

Definition at line 70 of file townname.cpp.

References GetTownName().

static char* MakeAustrianTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Austrian town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 310 of file townname.cpp.

References lengthof, SeedChance(), SeedChanceBias(), and strecpy().

static char* MakeCatalanTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Catalan town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 975 of file townname.cpp.

References lengthof, SeedChance(), SeedModChance(), and strecpy().

static char* MakeCzechTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Czech town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 599 of file townname.cpp.

References GB(), lengthof, SeedModChance(), and strecpy().

static char* MakeDanishTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Danish town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 870 of file townname.cpp.

References lengthof, SeedChance(), SeedChanceBias(), and strecpy().

static char* MakeDutchTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Dutch town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 463 of file townname.cpp.

References lengthof, SeedChance(), SeedChanceBias(), and strecpy().

static char* MakeEnglishAdditionalTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates English (Additional) town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 271 of file townname.cpp.

References lengthof, ReplaceEnglishWords(), SeedChance(), SeedChanceBias(), and strecpy().

static char* MakeEnglishOriginalTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates English (Original) town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 235 of file townname.cpp.

References lengthof, ReplaceEnglishWords(), SeedChance(), SeedChanceBias(), and strecpy().

static char* MakeFinnishTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Finnish town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 489 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakeFrenchTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates French town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 409 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakeGermanTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates German town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 354 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakeHungarianTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Hungarian town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 828 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakeItalianTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Italian town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 927 of file townname.cpp.

References lengthof, SeedChance(), SeedModChance(), and strecpy().

static char* MakeNorwegianTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Norwegian town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 804 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakePolishTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Polish town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 537 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakeRomanianTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Romanian town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 780 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakeSillyTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Silly town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 421 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakeSlovakTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Slovak town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 792 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakeSpanishTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Latin-American town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 397 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakeSwedishTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Swedish town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 436 of file townname.cpp.

References lengthof, SeedChance(), SeedChanceBias(), and strecpy().

static char* MakeSwissTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Swiss town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 858 of file townname.cpp.

References lengthof, SeedChance(), and strecpy().

static char* MakeTurkishTownName | ( | char * | buf,
|  | const char * | last,
|  | uint32 | seed
| ) |  |
| static

Generates Turkish town name from given seed.

Parameters

  buf | output buffer
  seed | town name seed
  last | end of buffer

Definition at line 890 of file townname.cpp.

References lengthof, SeedModChance(), and strecpy().

static void ReplaceEnglishWords | ( | char * | buf,
|  | bool | original
| ) |  |
| static

Replaces english curses and ugly letter combinations by nicer ones.

Parameters

  buf | buffer with town name
  original | English (Original) generator was used

Definition at line 215 of file townname.cpp.

References ReplaceWords().

Referenced by MakeEnglishAdditionalTownName(), and MakeEnglishOriginalTownName().

static void ReplaceWords | ( | const char * | org,
|  | const char * | rep,
|  | char * | buf
| ) |  |
| static

Replaces a string beginning in 'org' with 'rep'.

Parameters

  org | string to replace, has to be 4 characters long
  rep | string to be replaced with, has to be 4 characters long
  buf | buffer with string

Definition at line 203 of file townname.cpp.

Referenced by ReplaceEnglishWords().

static uint32 SeedChance | ( | byte | shift_by,
|  | int | max,
|  | uint32 | seed
| ) |  |
| inlinestatic

Generates a number from given seed.

Parameters

  shift_by | number of bits seed is shifted to the right
  max | generated number is in interval 0...max-1
  seed | seed

Returns
  seed transformed to a number from given range

Definition at line 155 of file townname.cpp.

References GB().

Referenced by MakeAustrianTownName(), MakeCatalanTownName(), MakeDanishTownName(), MakeDutchTownName(), MakeEnglishAdditionalTownName(), MakeEnglishOriginalTownName(), MakeFinnishTownName(), MakeFrenchTownName(), MakeGermanTownName(), MakeHungarianTownName(), MakeItalianTownName(), MakeNorwegianTownName(), MakePolishTownName(), MakeRomanianTownName(), MakeSillyTownName(), MakeSlovakTownName(), MakeSpanishTownName(), MakeSwedishTownName(), MakeSwissTownName(), and SeedChanceBias().

static int32 SeedChanceBias | ( | byte | shift_by,
|  | int | max,
|  | uint32 | seed,
|  | int | bias
| ) |  |
| inlinestatic

Generates a number from given seed.

Parameters

  shift_by | number of bits seed is shifted to the right
  max | generated number is in interval -bias...max-1
  seed | seed
  bias | minimum value that can be returned

Returns
  seed transformed to a number from given range

Definition at line 191 of file townname.cpp.

References SeedChance().

Referenced by MakeAustrianTownName(), MakeDanishTownName(), MakeDutchTownName(), MakeEnglishAdditionalTownName(), MakeEnglishOriginalTownName(), and MakeSwedishTownName().

static uint32 SeedModChance | ( | byte | shift_by,
|  | int | max,
|  | uint32 | seed
| ) |  |
| inlinestatic

Generates a number from given seed.

Uses different algorithm than SeedChance().

Parameters

  shift_by | number of bits seed is shifted to the right
  max | generated number is in interval 0...max-1
  seed | seed

Returns
  seed transformed to a number from given range

Definition at line 168 of file townname.cpp.

References max().

Referenced by MakeCatalanTownName(), MakeCzechTownName(), MakeItalianTownName(), and MakeTurkishTownName().

bool VerifyTownName | ( | uint32 | r,
|  | const TownNameParams * | par,
|  | TownNames * | town_names
| ) |  |

Verifies the town name is valid and unique.

Parameters

  r | random bits
  par | town name parameters
  town_names | if a name is generated, check its uniqueness with the set

Returns
  true iff name is valid and unique

Definition at line 84 of file townname.cpp.

References GetTownName(), lastof, MAX_CHAR_LENGTH, MAX_LENGTH_TOWN_NAME_CHARS, Town::name, and Utf8StringLength().

Referenced by CmdFoundTown(), and GenerateTownName().

## Variable Documentation

const TownNameGeneratorParams _town_name_generators[]
| static

Initial value:
{
{ 4, MakeEnglishOriginalTownName},
{ 0, MakeFrenchTownName},
{ 0, MakeGermanTownName},
{ 4, MakeEnglishAdditionalTownName},
{ 0, MakeSpanishTownName},
{ 0, MakeSillyTownName},
{ 0, MakeSwedishTownName},
{ 0, MakeDutchTownName},
{ 8, MakeFinnishTownName},
{ 0, MakePolishTownName},
{ 0, MakeSlovakTownName},
{ 0, MakeNorwegianTownName},
{ 0, MakeHungarianTownName},
{ 0, MakeAustrianTownName},
{ 0, MakeRomanianTownName},
{ 28, MakeCzechTownName},
{ 0, MakeSwissTownName},
{ 0, MakeDanishTownName},
{ 0, MakeTurkishTownName},
{ 0, MakeItalianTownName},
{ 0, MakeCatalanTownName},
}

Town name generators.

Definition at line 1022 of file townname.cpp.