diff --git a/LoadSave.m b/LoadSave.m index a74656fd..5a31eddf 100644 --- a/LoadSave.m +++ b/LoadSave.m @@ -272,9 +272,9 @@ } } [gui setSelectedRow: highlightRowOnPage]; - - // show the first ship, this will be the selected row - [self showCommanderShip: highlightIdx]; + highlightIdx = (highlightRowOnPage - STARTROW) + (currentPage * NUMROWS); + // show the first ship, this will be the selected row + [self showCommanderShip: highlightIdx]; } @@ -531,7 +531,7 @@ if ([cdr objectForKey:@"isFolder"]) { - NSString *folderDesc=[NSString stringWithFormat: @"Hold Ctrl and press return to open folder: %@", [(NSString *)[cdr objectForKey:@"saved_game_path"] lastPathComponent]]; + NSString *folderDesc=[NSString stringWithFormat: @"Hold command and press return to open folder: %@", [(NSString *)[cdr objectForKey:@"saved_game_path"] lastPathComponent]]; [gui addLongText: folderDesc startingAtRow: CDRDESCROW align: GUI_ALIGN_LEFT]; @@ -540,7 +540,7 @@ if ([cdr objectForKey:@"isParentFolder"]) { - NSString *folderDesc=[NSString stringWithFormat: @"Hold Ctrl and press return to open parent folder: %@", [(NSString *)[cdr objectForKey:@"saved_game_path"] lastPathComponent]]; + NSString *folderDesc=[NSString stringWithFormat: @"Hold command and press return to open parent folder: %@", [(NSString *)[cdr objectForKey:@"saved_game_path"] lastPathComponent]]; [gui addLongText: folderDesc startingAtRow: CDRDESCROW align: GUI_ALIGN_LEFT]; diff --git a/ParticleEntity.h b/ParticleEntity.h index a57e7647..6e09a1f6 100644 --- a/ParticleEntity.h +++ b/ParticleEntity.h @@ -68,7 +68,7 @@ Your fair use and other rights are in no way affected by the above. #define PARTICLE_LASER_LENGTH 10000.0 #define PARTICLE_LASER_RANGE_LIMIT 1000000000.0 -#define LASER_FLASH_SIZE 1.0 +#define LASER_FLASH_SIZE 1.0 + 2.0 * randf() @class Entity; diff --git a/ParticleEntity.m b/ParticleEntity.m index a92f2d24..656ad9ce 100644 --- a/ParticleEntity.m +++ b/ParticleEntity.m @@ -635,6 +635,7 @@ static Vector circleVertex[65]; // holds vector coordinates for a unit circle return self; } +// used exclusively for explosion flashes - (id) initFlashSize:(GLfloat) flashSize FromPosition:(Vector) fragPos { // @@ -648,6 +649,8 @@ static Vector circleVertex[65]; // holds vector coordinates for a unit circle size = NSMakeSize( flashSize, flashSize); // growth_rate = 150.0 * flashSize; // if average flashSize is 80 then this is 12000 + if (growth_rate < 6000.0) + growth_rate = 6000.0; // put a minimum size on it // time_counter = 0.0; duration = 0.4; @@ -674,6 +677,7 @@ static Vector circleVertex[65]; // holds vector coordinates for a unit circle return self; } +// used for laser flashes - (id) initFlashSize:(GLfloat) flashSize FromPosition:(Vector) fragPos Color:(NSColor*) flashColor { // @@ -689,7 +693,7 @@ static Vector circleVertex[65]; // holds vector coordinates for a unit circle growth_rate = 150.0 * flashSize; // if average flashSize is 80 then this is 12000 // time_counter = 0.0; - duration = 0.4; + duration = 0.3; position = fragPos; // [self setColor:flashColor]; diff --git a/Resources/Config/shipdata.plist b/Resources/Config/shipdata.plist index 7e933bfa..e12826b1 100644 --- a/Resources/Config/shipdata.plist +++ b/Resources/Config/shipdata.plist @@ -129,7 +129,7 @@ alloy ai_type - nullAI.plist + dumbAI.plist bounty 1 cargo_type @@ -600,12 +600,6 @@ 0.0 forward_weapon_type WEAPON_NONE - has_ecm - - has_escape_pod - - has_scoop - likely_cargo 0 max_cargo @@ -3007,7 +3001,7 @@ scarred-alloy ai_type - nullAI.plist + dumbAI.plist bounty 1 cargo_type diff --git a/ShipEntity.m b/ShipEntity.m index 6aa33f10..6164193c 100644 --- a/ShipEntity.m +++ b/ShipEntity.m @@ -1905,7 +1905,7 @@ BOOL ship_canCollide (ShipEntity* ship) { ShipEntity* leadShip = (ShipEntity *)[universe entityForUniversalID:owner]; double eta = (distance - desired_range) / flight_speed; - if ((eta < 5.0)&&(leadShip->isShip)) + if ((eta < 5.0)&&(leadShip)&&(leadShip->isShip)) desired_speed = [leadShip flight_speed] * 1.25; else desired_speed = max_flight_speed; @@ -5327,34 +5327,37 @@ Vector randomPositionInBoundingBox(BoundingBox bb) { ent = [(Entity *)[collidingEntities objectAtIndex:0] retain]; [collidingEntities removeObjectAtIndex:0]; - if (ent->isShip) + if (ent) { - other_ship = (ShipEntity *)ent; - [self collideWithShip:other_ship]; - } - if (ent->isPlanet) - { - if (isPlayer) + if (ent->isShip) { - [(PlayerEntity *)self getDestroyed]; - return; + other_ship = (ShipEntity *)ent; + [self collideWithShip:other_ship]; } - [self becomeExplosion]; - } - if (ent->isWormhole) - { - WormholeEntity* whole = (WormholeEntity*)ent; - if (isPlayer) + if (ent->isPlanet) { - [(PlayerEntity*)self enterWormhole: whole]; - return; + if (isPlayer) + { + [(PlayerEntity *)self getDestroyed]; + return; + } + [self becomeExplosion]; } - else + if (ent->isWormhole) { - [whole suckInShip: self]; + WormholeEntity* whole = (WormholeEntity*)ent; + if (isPlayer) + { + [(PlayerEntity*)self enterWormhole: whole]; + return; + } + else + { + [whole suckInShip: self]; + } } + [ent release]; } - [ent release]; } } diff --git a/Universe.m b/Universe.m index 84e4096d..b049a90e 100644 --- a/Universe.m +++ b/Universe.m @@ -3103,7 +3103,7 @@ Your fair use and other rights are in no way affected by the above. return 1 + (ranrot_rand() % 6) + (ranrot_rand() % 6) + (ranrot_rand() % 6); break; case 2 : // GRAMS - return 1 + (ranrot_rand() % 6) + (ranrot_rand() % 6); + return 4 + 3 * (ranrot_rand() % 6) + 2 * (ranrot_rand() % 6) + (ranrot_rand() % 6); break; } return 1;