Merge branch 'maintenance/1.77'
Various bugfixes
This commit is contained in:
commit
42967920d8
@ -29,6 +29,14 @@ Changes between Oolite 1.77 and Oolite 1.77.1:
|
|||||||
* Fix calculation of heat damage to subentities
|
* Fix calculation of heat damage to subentities
|
||||||
* Fix updates of energy, laser temp, alert condition related to autopilot
|
* Fix updates of energy, laser temp, alert condition related to autopilot
|
||||||
* Fix for crash when pressing up on long manifest screen
|
* Fix for crash when pressing up on long manifest screen
|
||||||
|
* Fix conflict between "pilot" and "unpiloted" shipdata keys
|
||||||
|
* Fix equipment condition check in player.replaceShip()
|
||||||
|
* Fix flasher scaling in visual effects
|
||||||
|
* Add fuel scoop icon to small HUD
|
||||||
|
* Lighten mouse cursor cross color
|
||||||
|
* Sort save-game list alphabetically
|
||||||
|
* Slightly lengthen deadlines on parcel contracts to avoid impossible ones
|
||||||
|
* Prevent docking with dead stations
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -485,7 +485,7 @@ MA 02110-1301, USA.
|
|||||||
{
|
{
|
||||||
// rescale subentities
|
// rescale subentities
|
||||||
Entity<OOSubEntity> *se = nil;
|
Entity<OOSubEntity> *se = nil;
|
||||||
GLfloat flasher_factor = pow(factor/scaleX,1.0/3.0);
|
GLfloat flasher_factor = pow(factor/scaleY,1.0/3.0);
|
||||||
foreach (se, [self subEntities])
|
foreach (se, [self subEntities])
|
||||||
{
|
{
|
||||||
Vector move = [se position];
|
Vector move = [se position];
|
||||||
@ -516,7 +516,7 @@ MA 02110-1301, USA.
|
|||||||
{
|
{
|
||||||
// rescale subentities
|
// rescale subentities
|
||||||
Entity<OOSubEntity> *se = nil;
|
Entity<OOSubEntity> *se = nil;
|
||||||
GLfloat flasher_factor = pow(factor/scaleX,1.0/3.0);
|
GLfloat flasher_factor = pow(factor/scaleZ,1.0/3.0);
|
||||||
foreach (se, [self subEntities])
|
foreach (se, [self subEntities])
|
||||||
{
|
{
|
||||||
Vector move = [se position];
|
Vector move = [se position];
|
||||||
|
@ -2038,6 +2038,10 @@ static NSMutableDictionary *currentShipyard = nil;
|
|||||||
|
|
||||||
[self newShipCommonSetup:shipKey yardInfo:ship_info baseInfo:ship_base_dict];
|
[self newShipCommonSetup:shipKey yardInfo:ship_info baseInfo:ship_base_dict];
|
||||||
|
|
||||||
|
// perform the transformation
|
||||||
|
NSDictionary* cmdr_dict = [self commanderDataDictionary]; // gather up all the info
|
||||||
|
if (![self setCommanderDataFromDictionary:cmdr_dict]) return NO;
|
||||||
|
|
||||||
// refill from ship_info
|
// refill from ship_info
|
||||||
NSArray* extras = [NSMutableArray arrayWithArray:[[ship_info oo_dictionaryForKey:KEY_STANDARD_EQUIPMENT] oo_arrayForKey:KEY_EQUIPMENT_EXTRAS]];
|
NSArray* extras = [NSMutableArray arrayWithArray:[[ship_info oo_dictionaryForKey:KEY_STANDARD_EQUIPMENT] oo_arrayForKey:KEY_EQUIPMENT_EXTRAS]];
|
||||||
for (unsigned i = 0; i < [extras count]; i++)
|
for (unsigned i = 0; i < [extras count]; i++)
|
||||||
@ -2054,10 +2058,6 @@ static NSMutableDictionary *currentShipyard = nil;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// perform the transformation
|
|
||||||
NSDictionary* cmdr_dict = [self commanderDataDictionary]; // gather up all the info
|
|
||||||
if (![self setCommanderDataFromDictionary:cmdr_dict]) return NO;
|
|
||||||
|
|
||||||
[self setEntityPersonalityInt:[ship_info oo_unsignedShortForKey:SHIPYARD_KEY_PERSONALITY]];
|
[self setEntityPersonalityInt:[ship_info oo_unsignedShortForKey:SHIPYARD_KEY_PERSONALITY]];
|
||||||
|
|
||||||
return YES;
|
return YES;
|
||||||
|
@ -612,6 +612,13 @@ static ShipEntity *doOctreesCollide(ShipEntity *prime, ShipEntity *other);
|
|||||||
// ship skin insulation factor (1.0 is normal)
|
// ship skin insulation factor (1.0 is normal)
|
||||||
[self setHeatInsulation:[shipDict oo_floatForKey:@"heat_insulation" defaultValue:[self hasHeatShield] ? 2.0 : 1.0]];
|
[self setHeatInsulation:[shipDict oo_floatForKey:@"heat_insulation" defaultValue:[self hasHeatShield] ? 2.0 : 1.0]];
|
||||||
|
|
||||||
|
// unpiloted (like missiles asteroids etc.)
|
||||||
|
if ((isUnpiloted = [shipDict oo_fuzzyBooleanForKey:@"unpiloted"]))
|
||||||
|
{
|
||||||
|
[self setCrew:nil];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
// crew and passengers
|
// crew and passengers
|
||||||
NSDictionary* cdict = [[UNIVERSE characters] objectForKey:[shipDict oo_stringForKey:@"pilot"]];
|
NSDictionary* cdict = [[UNIVERSE characters] objectForKey:[shipDict oo_stringForKey:@"pilot"]];
|
||||||
if (cdict != nil)
|
if (cdict != nil)
|
||||||
@ -619,9 +626,7 @@ static ShipEntity *doOctreesCollide(ShipEntity *prime, ShipEntity *other);
|
|||||||
OOCharacter *pilot = [OOCharacter characterWithDictionary:cdict];
|
OOCharacter *pilot = [OOCharacter characterWithDictionary:cdict];
|
||||||
[self setCrew:[NSArray arrayWithObject:pilot]];
|
[self setCrew:[NSArray arrayWithObject:pilot]];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// unpiloted (like missiles asteroids etc.)
|
|
||||||
if ((isUnpiloted = [shipDict oo_fuzzyBooleanForKey:@"unpiloted"])) [self setCrew:nil];
|
|
||||||
|
|
||||||
[self setShipScript:[shipDict oo_stringForKey:@"script"]];
|
[self setShipScript:[shipDict oo_stringForKey:@"script"]];
|
||||||
|
|
||||||
@ -6926,6 +6931,9 @@ NSComparisonResult ComparePlanetsBySurfaceDistance(id i1, id i2, void* context)
|
|||||||
if (isUnpiloted)
|
if (isUnpiloted)
|
||||||
{
|
{
|
||||||
//unpiloted ships cannot have crew
|
//unpiloted ships cannot have crew
|
||||||
|
// but may have crew before isUnpiloted set, so force *that* to clear too
|
||||||
|
[crew autorelease];
|
||||||
|
crew = nil;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//do not set to hulk here when crew is nill (or 0). Some things like missiles have no crew.
|
//do not set to hulk here when crew is nill (or 0). Some things like missiles have no crew.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user