mirror of https://github.com/OpenTTD/OpenTTD
(svn r24226) [1.2] -Backport from trunk:
- Fix: [Squirrel] Crash when trying to create an array with negative size [FS#5160] (r24153) - Fix: [NoAI] Do not return the last 'cached' speed of vehicles when they are stopped/crashed [FS#5157] (r24152) - Fix: [Script] Typo in script documentation (r24151) - Fix: Glass-sprite of bubble-generator was not drawn anymore for completely constructed tiles [FS#5143] (r24107)release/1.2
parent
7549982f12
commit
4e6310d848
|
@ -210,16 +210,22 @@ static SQInteger base_suspend(HSQUIRRELVM v)
|
||||||
static SQInteger base_array(HSQUIRRELVM v)
|
static SQInteger base_array(HSQUIRRELVM v)
|
||||||
{
|
{
|
||||||
SQArray *a;
|
SQArray *a;
|
||||||
SQObject &size = stack_get(v,2);
|
SQInteger nInitialSize = tointeger(stack_get(v,2));
|
||||||
|
SQInteger ret = 1;
|
||||||
|
if (nInitialSize < 0) {
|
||||||
|
v->Raise_Error(_SC("can't create/resize array with/to size %d"), nInitialSize);
|
||||||
|
nInitialSize = 0;
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
if(sq_gettop(v) > 2) {
|
if(sq_gettop(v) > 2) {
|
||||||
a = SQArray::Create(_ss(v),0);
|
a = SQArray::Create(_ss(v),0);
|
||||||
a->Resize(tointeger(size),stack_get(v,3));
|
a->Resize(nInitialSize,stack_get(v,3));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
a = SQArray::Create(_ss(v),tointeger(size));
|
a = SQArray::Create(_ss(v),nInitialSize);
|
||||||
}
|
}
|
||||||
v->Push(a);
|
v->Push(a);
|
||||||
return 1;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static SQInteger base_type(HSQUIRRELVM v)
|
static SQInteger base_type(HSQUIRRELVM v)
|
||||||
|
|
|
@ -254,9 +254,8 @@ static void IndustryDrawBubbleGenerator( const TileInfo *ti)
|
||||||
{
|
{
|
||||||
if (IsIndustryCompleted(ti->tile)) {
|
if (IsIndustryCompleted(ti->tile)) {
|
||||||
AddChildSpriteScreen(SPR_IT_BUBBLE_GENERATOR_BUBBLE, PAL_NONE, 5, _industry_anim_offs_bubbles[GetAnimationFrame(ti->tile)]);
|
AddChildSpriteScreen(SPR_IT_BUBBLE_GENERATOR_BUBBLE, PAL_NONE, 5, _industry_anim_offs_bubbles[GetAnimationFrame(ti->tile)]);
|
||||||
} else {
|
|
||||||
AddChildSpriteScreen(SPR_IT_BUBBLE_GENERATOR_SPRING, PAL_NONE, 3, 67);
|
|
||||||
}
|
}
|
||||||
|
AddChildSpriteScreen(SPR_IT_BUBBLE_GENERATOR_SPRING, PAL_NONE, 3, 67);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void IndustryDrawToyFactory(const TileInfo *ti)
|
static void IndustryDrawToyFactory(const TileInfo *ti)
|
||||||
|
|
|
@ -311,7 +311,8 @@
|
||||||
{
|
{
|
||||||
if (!IsValidVehicle(vehicle_id)) return -1;
|
if (!IsValidVehicle(vehicle_id)) return -1;
|
||||||
|
|
||||||
return ::Vehicle::Get(vehicle_id)->GetDisplaySpeed(); // km-ish/h
|
const ::Vehicle *v = ::Vehicle::Get(vehicle_id);
|
||||||
|
return (v->vehstatus & (::VS_STOPPED | ::VS_CRASHED)) == 0 ? v->GetDisplaySpeed() : 0; // km-ish/h
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ ScriptVehicle::VehicleState ScriptVehicle::GetState(VehicleID vehicle_id)
|
/* static */ ScriptVehicle::VehicleState ScriptVehicle::GetState(VehicleID vehicle_id)
|
||||||
|
|
|
@ -213,7 +213,7 @@ public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current speed of a vehicle.
|
* Get the current speed of a vehicle.
|
||||||
* @param vehicle_id The vehicle to get the age of.
|
* @param vehicle_id The vehicle to get the speed of.
|
||||||
* @pre IsValidVehicle(vehicle_id).
|
* @pre IsValidVehicle(vehicle_id).
|
||||||
* @return The current speed of the vehicle.
|
* @return The current speed of the vehicle.
|
||||||
* @note The speed is in OpenTTD's internal speed unit.
|
* @note The speed is in OpenTTD's internal speed unit.
|
||||||
|
@ -232,7 +232,7 @@ public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the running cost of this vehicle.
|
* Get the running cost of this vehicle.
|
||||||
* @param vehicle_id The vehicle to get the age of.
|
* @param vehicle_id The vehicle to get the running cost of.
|
||||||
* @pre IsValidVehicle(vehicle_id).
|
* @pre IsValidVehicle(vehicle_id).
|
||||||
* @return The running cost of the vehicle per year.
|
* @return The running cost of the vehicle per year.
|
||||||
* @note Cost is per year; divide by 365 to get per day.
|
* @note Cost is per year; divide by 365 to get per day.
|
||||||
|
|
Loading…
Reference in New Issue