mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-07-08 21:39:42 +01:00
(svn r15765) [0.7] -Backport from trunk:
- Change: [NewGRF] Expose GRF ID of engines in var action property 0x25 (r15739) - Fix: Add Engine::GetDisplayDefaultCapacity() and use it everywhere, so CB 36 is also used everywhere (r15763) - Fix: [Windows] Inlined UTF-8 characters (in the source code) are not handled properly on Eastern versions of Windows so escape them (r15762) - Fix: [Windows] On some system searching a font using its English name fails. So now we search the font using the localised name and use the English name for the final 'validation' only (r15757)
This commit is contained in:
parent
9e592b9986
commit
61e97110c9
@ -6,9 +6,10 @@
|
|||||||
#include "ai_cargo.hpp"
|
#include "ai_cargo.hpp"
|
||||||
#include "../../company_func.h"
|
#include "../../company_func.h"
|
||||||
#include "../../strings_func.h"
|
#include "../../strings_func.h"
|
||||||
#include "../../aircraft.h"
|
|
||||||
#include "../../vehicle_func.h"
|
#include "../../vehicle_func.h"
|
||||||
#include "../../settings_type.h"
|
#include "../../settings_type.h"
|
||||||
|
#include "../../rail.h"
|
||||||
|
#include "../../engine_base.h"
|
||||||
#include "../../articulated_vehicles.h"
|
#include "../../articulated_vehicles.h"
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
||||||
@ -77,11 +78,8 @@
|
|||||||
} break;
|
} break;
|
||||||
|
|
||||||
case VEH_SHIP:
|
case VEH_SHIP:
|
||||||
return e->u.ship.capacity;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case VEH_AIRCRAFT:
|
case VEH_AIRCRAFT:
|
||||||
return AircraftDefaultCargoCapacity(e->GetDefaultCargoType(), &e->u.air);
|
return e->GetDisplayDefaultCapacity();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: NOT_REACHED();
|
default: NOT_REACHED();
|
||||||
|
@ -3,9 +3,11 @@
|
|||||||
/** @file ai_event_types.cpp Implementation of all EventTypes. */
|
/** @file ai_event_types.cpp Implementation of all EventTypes. */
|
||||||
|
|
||||||
#include "ai_event_types.hpp"
|
#include "ai_event_types.hpp"
|
||||||
|
#include "../../command_type.h"
|
||||||
#include "../../strings_func.h"
|
#include "../../strings_func.h"
|
||||||
#include "../../settings_type.h"
|
#include "../../settings_type.h"
|
||||||
#include "../../aircraft.h"
|
#include "../../rail.h"
|
||||||
|
#include "../../engine_base.h"
|
||||||
#include "../../articulated_vehicles.h"
|
#include "../../articulated_vehicles.h"
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
||||||
@ -41,11 +43,8 @@ int32 AIEventEnginePreview::GetCapacity()
|
|||||||
} break;
|
} break;
|
||||||
|
|
||||||
case VEH_SHIP:
|
case VEH_SHIP:
|
||||||
return e->u.ship.capacity;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case VEH_AIRCRAFT:
|
case VEH_AIRCRAFT:
|
||||||
return AircraftDefaultCargoCapacity(e->GetDefaultCargoType(), &e->u.air);
|
return e->GetDisplayDefaultCapacity();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: NOT_REACHED();
|
default: NOT_REACHED();
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "train.h"
|
#include "train.h"
|
||||||
#include "roadveh.h"
|
#include "roadveh.h"
|
||||||
#include "aircraft.h"
|
|
||||||
#include "newgrf_engine.h"
|
#include "newgrf_engine.h"
|
||||||
#include "vehicle_func.h"
|
#include "vehicle_func.h"
|
||||||
|
|
||||||
@ -52,22 +51,7 @@ static inline uint16 GetVehicleDefaultCapacity(EngineID engine, VehicleType type
|
|||||||
CargoID cargo = (e->CanCarryCargo() ? e->GetDefaultCargoType() : (CargoID)CT_INVALID);
|
CargoID cargo = (e->CanCarryCargo() ? e->GetDefaultCargoType() : (CargoID)CT_INVALID);
|
||||||
if (cargo_type != NULL) *cargo_type = cargo;
|
if (cargo_type != NULL) *cargo_type = cargo;
|
||||||
if (cargo == CT_INVALID) return 0;
|
if (cargo == CT_INVALID) return 0;
|
||||||
switch (type) {
|
return e->GetDisplayDefaultCapacity();
|
||||||
case VEH_TRAIN:
|
|
||||||
return GetEngineProperty(engine, 0x14, e->u.rail.capacity) + (e->u.rail.railveh_type == RAILVEH_MULTIHEAD ? e->u.rail.capacity : 0);
|
|
||||||
|
|
||||||
case VEH_ROAD:
|
|
||||||
return GetEngineProperty(engine, 0x0F, e->u.road.capacity);
|
|
||||||
|
|
||||||
case VEH_SHIP:
|
|
||||||
return GetEngineProperty(engine, 0x0D, e->u.ship.capacity);
|
|
||||||
|
|
||||||
case VEH_AIRCRAFT:
|
|
||||||
return AircraftDefaultCargoCapacity(cargo, &e->u.air);
|
|
||||||
|
|
||||||
default: NOT_REACHED();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -225,8 +225,11 @@ static int CDECL RoadVehEngineCapacitySorter(const void *a, const void *b)
|
|||||||
/* Ship vehicle sorting functions */
|
/* Ship vehicle sorting functions */
|
||||||
static int CDECL ShipEngineCapacitySorter(const void *a, const void *b)
|
static int CDECL ShipEngineCapacitySorter(const void *a, const void *b)
|
||||||
{
|
{
|
||||||
int va = ShipVehInfo(*(const EngineID*)a)->capacity;
|
const Engine *e_a = GetEngine(*(const EngineID*)a);
|
||||||
int vb = ShipVehInfo(*(const EngineID*)b)->capacity;
|
const Engine *e_b = GetEngine(*(const EngineID*)b);
|
||||||
|
|
||||||
|
int va = e_a->GetDisplayDefaultCapacity();
|
||||||
|
int vb = e_b->GetDisplayDefaultCapacity();
|
||||||
int r = va - vb;
|
int r = va - vb;
|
||||||
|
|
||||||
/* Use EngineID to sort instead since we want consistent sorting */
|
/* Use EngineID to sort instead since we want consistent sorting */
|
||||||
@ -240,8 +243,8 @@ static int CDECL AircraftEngineCargoSorter(const void *a, const void *b)
|
|||||||
const Engine *e_a = GetEngine(*(const EngineID*)a);
|
const Engine *e_a = GetEngine(*(const EngineID*)a);
|
||||||
const Engine *e_b = GetEngine(*(const EngineID*)b);
|
const Engine *e_b = GetEngine(*(const EngineID*)b);
|
||||||
|
|
||||||
int va = AircraftDefaultCargoCapacity(e_a->GetDefaultCargoType(), &e_a->u.air);
|
int va = e_a->GetDisplayDefaultCapacity();
|
||||||
int vb = AircraftDefaultCargoCapacity(e_b->GetDefaultCargoType(), &e_b->u.air);
|
int vb = e_b->GetDisplayDefaultCapacity();
|
||||||
int r = va - vb;
|
int r = va - vb;
|
||||||
|
|
||||||
if (r == 0) {
|
if (r == 0) {
|
||||||
@ -383,7 +386,7 @@ static int DrawRailWagonPurchaseInfo(int x, int y, EngineID engine_number, const
|
|||||||
/* Wagon weight - (including cargo) */
|
/* Wagon weight - (including cargo) */
|
||||||
uint weight = e->GetDisplayWeight();
|
uint weight = e->GetDisplayWeight();
|
||||||
SetDParam(0, weight);
|
SetDParam(0, weight);
|
||||||
uint cargo_weight = (e->CanCarryCargo() ? GetCargo(e->GetDefaultCargoType())->weight * GetEngineProperty(engine_number, 0x14, rvi->capacity) >> 4 : 0);
|
uint cargo_weight = (e->CanCarryCargo() ? GetCargo(e->GetDefaultCargoType())->weight * e->GetDisplayDefaultCapacity() >> 4 : 0);
|
||||||
SetDParam(1, cargo_weight + weight);
|
SetDParam(1, cargo_weight + weight);
|
||||||
DrawString(x, y, STR_PURCHASE_INFO_WEIGHT_CWEIGHT, TC_FROMSTRING);
|
DrawString(x, y, STR_PURCHASE_INFO_WEIGHT_CWEIGHT, TC_FROMSTRING);
|
||||||
y += 10;
|
y += 10;
|
||||||
@ -482,7 +485,7 @@ static int DrawShipPurchaseInfo(int x, int y, EngineID engine_number, const Ship
|
|||||||
|
|
||||||
/* Cargo type + capacity */
|
/* Cargo type + capacity */
|
||||||
SetDParam(0, e->GetDefaultCargoType());
|
SetDParam(0, e->GetDefaultCargoType());
|
||||||
SetDParam(1, GetEngineProperty(engine_number, 0x0D, svi->capacity));
|
SetDParam(1, e->GetDisplayDefaultCapacity());
|
||||||
SetDParam(2, refittable ? STR_9842_REFITTABLE : STR_EMPTY);
|
SetDParam(2, refittable ? STR_9842_REFITTABLE : STR_EMPTY);
|
||||||
DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, TC_FROMSTRING);
|
DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, TC_FROMSTRING);
|
||||||
y += 10;
|
y += 10;
|
||||||
@ -509,14 +512,14 @@ static int DrawAircraftPurchaseInfo(int x, int y, EngineID engine_number, const
|
|||||||
|
|
||||||
/* Cargo capacity */
|
/* Cargo capacity */
|
||||||
if (cargo == CT_INVALID || cargo == CT_PASSENGERS) {
|
if (cargo == CT_INVALID || cargo == CT_PASSENGERS) {
|
||||||
SetDParam(0, avi->passenger_capacity);
|
SetDParam(0, e->GetDisplayDefaultCapacity());
|
||||||
SetDParam(1, avi->mail_capacity);
|
SetDParam(1, avi->mail_capacity);
|
||||||
DrawString(x, y, STR_PURCHASE_INFO_AIRCRAFT_CAPACITY, TC_FROMSTRING);
|
DrawString(x, y, STR_PURCHASE_INFO_AIRCRAFT_CAPACITY, TC_FROMSTRING);
|
||||||
} else {
|
} else {
|
||||||
/* Note, if the default capacity is selected by the refit capacity
|
/* Note, if the default capacity is selected by the refit capacity
|
||||||
* callback, then the capacity shown is likely to be incorrect. */
|
* callback, then the capacity shown is likely to be incorrect. */
|
||||||
SetDParam(0, cargo);
|
SetDParam(0, cargo);
|
||||||
SetDParam(1, AircraftDefaultCargoCapacity(cargo, avi));
|
SetDParam(1, e->GetDisplayDefaultCapacity());
|
||||||
SetDParam(2, refittable ? STR_9842_REFITTABLE : STR_EMPTY);
|
SetDParam(2, refittable ? STR_9842_REFITTABLE : STR_EMPTY);
|
||||||
DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, TC_FROMSTRING);
|
DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, TC_FROMSTRING);
|
||||||
}
|
}
|
||||||
|
@ -15,14 +15,14 @@
|
|||||||
* | | Euro year | | | name
|
* | | Euro year | | | name
|
||||||
* | | | | | | | */
|
* | | | | | | | */
|
||||||
static const CurrencySpec origin_currency_specs[NUM_CURRENCY] = {
|
static const CurrencySpec origin_currency_specs[NUM_CURRENCY] = {
|
||||||
{ 1, ',', CF_NOEURO, "£", "", 0, STR_CURR_GBP }, ///< british pounds
|
{ 1, ',', CF_NOEURO, "\xC2\xA3", "", 0, STR_CURR_GBP }, ///< british pounds
|
||||||
{ 2, ',', CF_NOEURO, "$", "", 0, STR_CURR_USD }, ///< us dollars
|
{ 2, ',', CF_NOEURO, "$", "", 0, STR_CURR_USD }, ///< us dollars
|
||||||
{ 2, ',', CF_ISEURO, "€", "", 0, STR_CURR_EUR }, ///< Euro
|
{ 2, ',', CF_ISEURO, "\xE2\x82\xAC", "", 0, STR_CURR_EUR }, ///< Euro
|
||||||
{ 220, ',', CF_NOEURO, "¥", "", 0, STR_CURR_YEN }, ///< yen
|
{ 220, ',', CF_NOEURO, "\xC2\xA5", "", 0, STR_CURR_YEN }, ///< yen
|
||||||
{ 20, ',', 2002, "", " S.", 1, STR_CURR_ATS }, ///< austrian schilling
|
{ 20, ',', 2002, "", " S.", 1, STR_CURR_ATS }, ///< austrian schilling
|
||||||
{ 59, ',', 2002, "BEF ", "", 0, STR_CURR_BEF }, ///< belgian franc
|
{ 59, ',', 2002, "BEF ", "", 0, STR_CURR_BEF }, ///< belgian franc
|
||||||
{ 2, ',', CF_NOEURO, "CHF ", "", 0, STR_CURR_CHF }, ///< swiss franc
|
{ 2, ',', CF_NOEURO, "CHF ", "", 0, STR_CURR_CHF }, ///< swiss franc
|
||||||
{ 41, ',', CF_NOEURO, "", " Kč", 1, STR_CURR_CZK }, ///< czech koruna
|
{ 41, ',', CF_NOEURO, "", " K\xC4\x8D", 1, STR_CURR_CZK }, ///< czech koruna
|
||||||
{ 3, '.', 2002, "DM ", "", 0, STR_CURR_DEM }, ///< deutsche mark
|
{ 3, '.', 2002, "DM ", "", 0, STR_CURR_DEM }, ///< deutsche mark
|
||||||
{ 11, '.', CF_NOEURO, "", " kr", 1, STR_CURR_DKK }, ///< danish krone
|
{ 11, '.', CF_NOEURO, "", " kr", 1, STR_CURR_DKK }, ///< danish krone
|
||||||
{ 245, '.', 2002, "Pts ", "", 0, STR_CURR_ESP }, ///< spanish pesetas
|
{ 245, '.', 2002, "Pts ", "", 0, STR_CURR_ESP }, ///< spanish pesetas
|
||||||
|
@ -177,6 +177,36 @@ bool Engine::CanCarryCargo() const
|
|||||||
return this->GetDefaultCargoType() != CT_INVALID;
|
return this->GetDefaultCargoType() != CT_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines the default cargo capacity of an engine for display purposes.
|
||||||
|
*
|
||||||
|
* For planes carrying both passenger and mail this is the passenger capacity.
|
||||||
|
* For multiheaded engines this is the capacity of both heads.
|
||||||
|
* For articulated engines use GetCapacityOfArticulatedParts
|
||||||
|
*
|
||||||
|
* @return The default capacity
|
||||||
|
* @see GetDefaultCargoType
|
||||||
|
*/
|
||||||
|
uint Engine::GetDisplayDefaultCapacity() const
|
||||||
|
{
|
||||||
|
if (!this->CanCarryCargo()) return 0;
|
||||||
|
switch (type) {
|
||||||
|
case VEH_TRAIN:
|
||||||
|
return GetEngineProperty(this->index, 0x14, this->u.rail.capacity) + (this->u.rail.railveh_type == RAILVEH_MULTIHEAD ? this->u.rail.capacity : 0);
|
||||||
|
|
||||||
|
case VEH_ROAD:
|
||||||
|
return GetEngineProperty(this->index, 0x0F, this->u.road.capacity);
|
||||||
|
|
||||||
|
case VEH_SHIP:
|
||||||
|
return GetEngineProperty(this->index, 0x0D, this->u.ship.capacity);
|
||||||
|
|
||||||
|
case VEH_AIRCRAFT:
|
||||||
|
return AircraftDefaultCargoCapacity(this->GetDefaultCargoType(), &this->u.air);
|
||||||
|
|
||||||
|
default: NOT_REACHED();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Money Engine::GetRunningCost() const
|
Money Engine::GetRunningCost() const
|
||||||
{
|
{
|
||||||
switch (this->type) {
|
switch (this->type) {
|
||||||
|
@ -53,6 +53,7 @@ struct Engine : PoolItem<Engine, EngineID, &_Engine_pool> {
|
|||||||
|
|
||||||
CargoID GetDefaultCargoType() const;
|
CargoID GetDefaultCargoType() const;
|
||||||
bool CanCarryCargo() const;
|
bool CanCarryCargo() const;
|
||||||
|
uint GetDisplayDefaultCapacity() const;
|
||||||
Money GetRunningCost() const;
|
Money GetRunningCost() const;
|
||||||
Money GetCost() const;
|
Money GetCost() const;
|
||||||
uint GetDisplayMaxSpeed() const;
|
uint GetDisplayMaxSpeed() const;
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
#include "engine_gui.h"
|
#include "engine_gui.h"
|
||||||
#include "articulated_vehicles.h"
|
#include "articulated_vehicles.h"
|
||||||
#include "rail.h"
|
#include "rail.h"
|
||||||
#include "aircraft.h"
|
|
||||||
|
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
@ -151,7 +150,7 @@ static void DrawAircraftEngineInfo(EngineID engine, int x, int y, int maxw)
|
|||||||
if (cargo == CT_INVALID || cargo == CT_PASSENGERS) {
|
if (cargo == CT_INVALID || cargo == CT_PASSENGERS) {
|
||||||
SetDParam(0, e->GetCost());
|
SetDParam(0, e->GetCost());
|
||||||
SetDParam(1, e->GetDisplayMaxSpeed());
|
SetDParam(1, e->GetDisplayMaxSpeed());
|
||||||
SetDParam(2, e->u.air.passenger_capacity);
|
SetDParam(2, e->GetDisplayDefaultCapacity());
|
||||||
SetDParam(3, e->u.air.mail_capacity);
|
SetDParam(3, e->u.air.mail_capacity);
|
||||||
SetDParam(4, e->GetRunningCost());
|
SetDParam(4, e->GetRunningCost());
|
||||||
|
|
||||||
@ -160,7 +159,7 @@ static void DrawAircraftEngineInfo(EngineID engine, int x, int y, int maxw)
|
|||||||
SetDParam(0, e->GetCost());
|
SetDParam(0, e->GetCost());
|
||||||
SetDParam(1, e->GetDisplayMaxSpeed());
|
SetDParam(1, e->GetDisplayMaxSpeed());
|
||||||
SetDParam(2, cargo);
|
SetDParam(2, cargo);
|
||||||
SetDParam(3, AircraftDefaultCargoCapacity(cargo, &e->u.air));
|
SetDParam(3, e->GetDisplayDefaultCapacity());
|
||||||
SetDParam(4, e->GetRunningCost());
|
SetDParam(4, e->GetRunningCost());
|
||||||
|
|
||||||
DrawStringMultiCenter(x, y, STR_982E_COST_MAX_SPEED_CAPACITY, maxw);
|
DrawStringMultiCenter(x, y, STR_982E_COST_MAX_SPEED_CAPACITY, maxw);
|
||||||
@ -187,13 +186,12 @@ static void DrawRoadVehEngineInfo(EngineID engine, int x, int y, int maxw)
|
|||||||
|
|
||||||
static void DrawShipEngineInfo(EngineID engine, int x, int y, int maxw)
|
static void DrawShipEngineInfo(EngineID engine, int x, int y, int maxw)
|
||||||
{
|
{
|
||||||
const ShipVehicleInfo *svi = ShipVehInfo(engine);
|
|
||||||
const Engine *e = GetEngine(engine);
|
const Engine *e = GetEngine(engine);
|
||||||
|
|
||||||
SetDParam(0, e->GetCost());
|
SetDParam(0, e->GetCost());
|
||||||
SetDParam(1, e->GetDisplayMaxSpeed());
|
SetDParam(1, e->GetDisplayMaxSpeed());
|
||||||
SetDParam(2, e->GetDefaultCargoType());
|
SetDParam(2, e->GetDefaultCargoType());
|
||||||
SetDParam(3, GetEngineProperty(engine, 0x0D, svi->capacity));
|
SetDParam(3, e->GetDisplayDefaultCapacity());
|
||||||
SetDParam(4, e->GetRunningCost());
|
SetDParam(4, e->GetRunningCost());
|
||||||
DrawStringMultiCenter(x, y, STR_982E_COST_MAX_SPEED_CAPACITY, maxw);
|
DrawStringMultiCenter(x, y, STR_982E_COST_MAX_SPEED_CAPACITY, maxw);
|
||||||
}
|
}
|
||||||
|
@ -172,6 +172,8 @@ static FT_Error GetFontByFaceName(const char *font_name, FT_Face *face)
|
|||||||
if (err != FT_Err_Ok) break;
|
if (err != FT_Err_Ok) break;
|
||||||
|
|
||||||
if (strncasecmp(font_name, (*face)->family_name, strlen((*face)->family_name)) == 0) break;
|
if (strncasecmp(font_name, (*face)->family_name, strlen((*face)->family_name)) == 0) break;
|
||||||
|
/* Try english name if font name failed */
|
||||||
|
if (strncasecmp(font_name + strlen(font_name) + 1, (*face)->family_name, strlen((*face)->family_name)) == 0) break;
|
||||||
err = FT_Err_Cannot_Open_Resource;
|
err = FT_Err_Cannot_Open_Resource;
|
||||||
|
|
||||||
} while ((FT_Long)++index != (*face)->num_faces);
|
} while ((FT_Long)++index != (*face)->num_faces);
|
||||||
@ -296,12 +298,18 @@ static int CALLBACK EnumFontCallback(const ENUMLOGFONTEX *logfont, const NEWTEXT
|
|||||||
if ((fs.fsCsb[0] & info->locale.lsCsbSupported[0]) == 0 && (fs.fsCsb[1] & info->locale.lsCsbSupported[1]) == 0) return 1;
|
if ((fs.fsCsb[0] & info->locale.lsCsbSupported[0]) == 0 && (fs.fsCsb[1] & info->locale.lsCsbSupported[1]) == 0) return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *font_name = GetEnglishFontName(logfont);
|
const char *english_name = GetEnglishFontName(logfont);
|
||||||
DEBUG(freetype, 1, "Fallback font: %s", font_name);
|
const char *font_name = WIDE_TO_MB((const TCHAR*)logfont->elfFullName);
|
||||||
|
DEBUG(freetype, 1, "Fallback font: %s (%s)", font_name, english_name);
|
||||||
|
|
||||||
strecpy(info->settings->small_font, font_name, lastof(info->settings->small_font));
|
strecpy(info->settings->small_font, font_name, lastof(info->settings->small_font));
|
||||||
strecpy(info->settings->medium_font, font_name, lastof(info->settings->medium_font));
|
strecpy(info->settings->medium_font, font_name, lastof(info->settings->medium_font));
|
||||||
strecpy(info->settings->large_font, font_name, lastof(info->settings->large_font));
|
strecpy(info->settings->large_font, font_name, lastof(info->settings->large_font));
|
||||||
|
|
||||||
|
/* Add english name after font name */
|
||||||
|
strecpy(info->settings->small_font + strlen(info->settings->small_font) + 1, english_name, lastof(info->settings->small_font));
|
||||||
|
strecpy(info->settings->medium_font + strlen(info->settings->medium_font) + 1, english_name, lastof(info->settings->medium_font));
|
||||||
|
strecpy(info->settings->large_font + strlen(info->settings->large_font) + 1, english_name, lastof(info->settings->large_font));
|
||||||
return 0; // stop enumerating
|
return 0; // stop enumerating
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ struct AboutWindow : public Window {
|
|||||||
" Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework",
|
" Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework",
|
||||||
" Victor Fischer (Celestar) - Programming everywhere you need him to",
|
" Victor Fischer (Celestar) - Programming everywhere you need him to",
|
||||||
" Christoph Elsenhans (frosch) - General coding",
|
" Christoph Elsenhans (frosch) - General coding",
|
||||||
" Loïc Guilloux (glx) - Windows Expert",
|
" Lo\xC3\xAF""c Guilloux (glx) - Windows Expert",
|
||||||
" Michael Lutz (michi_cc) - Path based signals",
|
" Michael Lutz (michi_cc) - Path based signals",
|
||||||
" Owen Rudge (orudge) - Forum host, OS/2 port",
|
" Owen Rudge (orudge) - Forum host, OS/2 port",
|
||||||
" Peter Nelson (peter1138) - Spiritual descendant from newGRF gods",
|
" Peter Nelson (peter1138) - Spiritual descendant from newGRF gods",
|
||||||
@ -324,10 +324,10 @@ struct AboutWindow : public Window {
|
|||||||
" Thijs Marinussen (Yexo) - AI Framework",
|
" Thijs Marinussen (Yexo) - AI Framework",
|
||||||
"",
|
"",
|
||||||
"Inactive Developers:",
|
"Inactive Developers:",
|
||||||
" Tamás Faragó (Darkvater) - Ex-Lead coder",
|
" Tam\xC3\xA1s Farag\xC3\xB3 (Darkvater) - Ex-Lead coder",
|
||||||
" Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)",
|
" Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)",
|
||||||
" Jonathan Coome (Maedhros) - High priest of the NewGRF Temple",
|
" Jonathan Coome (Maedhros) - High priest of the NewGRF Temple",
|
||||||
" Attila Bán (MiHaMiX) - WebTranslator, Nightlies, Wiki and bugtracker host",
|
" Attila B\xC3\xA1n (MiHaMiX) - WebTranslator, Nightlies, Wiki and bugtracker host",
|
||||||
" Christoph Mallon (Tron) - Programmer, code correctness police",
|
" Christoph Mallon (Tron) - Programmer, code correctness police",
|
||||||
"",
|
"",
|
||||||
"Retired Developers:",
|
"Retired Developers:",
|
||||||
|
@ -295,7 +295,7 @@ static byte MakeFinnishTownName(char *buf, uint32 seed, const char *last)
|
|||||||
{
|
{
|
||||||
strecat(buf, "la", last);
|
strecat(buf, "la", last);
|
||||||
} else {
|
} else {
|
||||||
strecat(buf, "lä", last);
|
strecat(buf, "l\xC3\xA4", last);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* A two-part name by combining one of _name_finnish_{1,2} + _name_finnish_3.
|
/* A two-part name by combining one of _name_finnish_{1,2} + _name_finnish_3.
|
||||||
|
@ -122,7 +122,8 @@ const GRFFile *GetEngineGRF(EngineID engine)
|
|||||||
*/
|
*/
|
||||||
uint32 GetEngineGRFID(EngineID engine)
|
uint32 GetEngineGRFID(EngineID engine)
|
||||||
{
|
{
|
||||||
return GetEngineGRF(engine)->grfid;
|
const GRFFile *file = GetEngineGRF(engine);
|
||||||
|
return file == NULL ? 0 : file->grfid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -500,6 +501,9 @@ static uint32 VehicleGetVariable(const ResolverObject *object, byte variable, by
|
|||||||
|
|
||||||
/* Calculated vehicle parameters */
|
/* Calculated vehicle parameters */
|
||||||
switch (variable) {
|
switch (variable) {
|
||||||
|
case 0x25: // Get engine GRF ID
|
||||||
|
return GetEngineGRFID(v->engine_type);
|
||||||
|
|
||||||
case 0x40: // Get length of consist
|
case 0x40: // Get length of consist
|
||||||
if (!HasBit(v->cache_valid, 0)) {
|
if (!HasBit(v->cache_valid, 0)) {
|
||||||
v->cached_var40 = PositionHelper(v, false);
|
v->cached_var40 = PositionHelper(v, false);
|
||||||
|
@ -85,7 +85,7 @@ BEGIN
|
|||||||
VALUE "FileDescription", "OpenTTD\0"
|
VALUE "FileDescription", "OpenTTD\0"
|
||||||
VALUE "FileVersion", "Development @@VERSION@@\0"
|
VALUE "FileVersion", "Development @@VERSION@@\0"
|
||||||
VALUE "InternalName", "openttd\0"
|
VALUE "InternalName", "openttd\0"
|
||||||
VALUE "LegalCopyright", "Copyright © OpenTTD Developers 2002-2009. All Rights Reserved.\0"
|
VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2009. All Rights Reserved.\0"
|
||||||
VALUE "LegalTrademarks", "\0"
|
VALUE "LegalTrademarks", "\0"
|
||||||
VALUE "OriginalFilename", "openttd.exe\0"
|
VALUE "OriginalFilename", "openttd.exe\0"
|
||||||
VALUE "PrivateBuild", "\0"
|
VALUE "PrivateBuild", "\0"
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user