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;