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 updates of energy, laser temp, alert condition related to autopilot
|
||||
* 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
|
||||
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])
|
||||
{
|
||||
Vector move = [se position];
|
||||
@ -516,7 +516,7 @@ MA 02110-1301, USA.
|
||||
{
|
||||
// rescale subentities
|
||||
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])
|
||||
{
|
||||
Vector move = [se position];
|
||||
|
@ -2038,6 +2038,10 @@ static NSMutableDictionary *currentShipyard = nil;
|
||||
|
||||
[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
|
||||
NSArray* extras = [NSMutableArray arrayWithArray:[[ship_info oo_dictionaryForKey:KEY_STANDARD_EQUIPMENT] oo_arrayForKey:KEY_EQUIPMENT_EXTRAS]];
|
||||
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]];
|
||||
|
||||
return YES;
|
||||
|
@ -612,16 +612,21 @@ static ShipEntity *doOctreesCollide(ShipEntity *prime, ShipEntity *other);
|
||||
// ship skin insulation factor (1.0 is normal)
|
||||
[self setHeatInsulation:[shipDict oo_floatForKey:@"heat_insulation" defaultValue:[self hasHeatShield] ? 2.0 : 1.0]];
|
||||
|
||||
// crew and passengers
|
||||
NSDictionary* cdict = [[UNIVERSE characters] objectForKey:[shipDict oo_stringForKey:@"pilot"]];
|
||||
if (cdict != nil)
|
||||
{
|
||||
OOCharacter *pilot = [OOCharacter characterWithDictionary:cdict];
|
||||
[self setCrew:[NSArray arrayWithObject:pilot]];
|
||||
}
|
||||
|
||||
// unpiloted (like missiles asteroids etc.)
|
||||
if ((isUnpiloted = [shipDict oo_fuzzyBooleanForKey:@"unpiloted"])) [self setCrew:nil];
|
||||
if ((isUnpiloted = [shipDict oo_fuzzyBooleanForKey:@"unpiloted"]))
|
||||
{
|
||||
[self setCrew:nil];
|
||||
}
|
||||
else
|
||||
{
|
||||
// crew and passengers
|
||||
NSDictionary* cdict = [[UNIVERSE characters] objectForKey:[shipDict oo_stringForKey:@"pilot"]];
|
||||
if (cdict != nil)
|
||||
{
|
||||
OOCharacter *pilot = [OOCharacter characterWithDictionary:cdict];
|
||||
[self setCrew:[NSArray arrayWithObject:pilot]];
|
||||
}
|
||||
}
|
||||
|
||||
[self setShipScript:[shipDict oo_stringForKey:@"script"]];
|
||||
|
||||
@ -6926,6 +6931,9 @@ NSComparisonResult ComparePlanetsBySurfaceDistance(id i1, id i2, void* context)
|
||||
if (isUnpiloted)
|
||||
{
|
||||
//unpiloted ships cannot have crew
|
||||
// but may have crew before isUnpiloted set, so force *that* to clear too
|
||||
[crew autorelease];
|
||||
crew = nil;
|
||||
return;
|
||||
}
|
||||
//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