- ported individual stations' station_roll setting to maintenance.

- fix: searching for one overlapping system by name in the long range map now should always identify the right system. (trunk & maintenance)
- docking clearance: all stations/carriers should now refuse docking clearance to hostile ships (trunk)
- more copyright cleanup

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@3657 127b21dd-08f5-0310-b4b7-95ae10353056
This commit is contained in:
Marc 2010-07-05 01:24:52 +00:00
parent a94d4b5bac
commit 27fbf520d1
3 changed files with 32 additions and 7 deletions

View File

@ -680,6 +680,13 @@
"Negative. %H security scans indicate your ship has a criminal record.", "Negative. %H security scans indicate your ship has a criminal record.",
"Docking clearance is denied, as per GalCop Station Security Regulations." "Docking clearance is denied, as per GalCop Station Security Regulations."
); );
"station-docking-clearance-denied" =
(
"Docking clearance refused to all hostile vessels.",
"Docking not allowed. You are not welcome.",
"Negative. Your ship cannot dock here.",
"Docking clearance denied."
);
"station-docking-clearance-granted-until-@" = "station-docking-clearance-granted-until-@" =
( (
"You are cleared to dock. Please proceed. Clearance expires at %@", "You are cleared to dock. Please proceed. Clearance expires at %@",

View File

@ -384,18 +384,27 @@ static NSTimeInterval time_last_frame;
} }
- (void) targetNewSystem:(int) direction - (void) targetNewSystem:(int) direction whileTyping:(BOOL) whileTyping
{ {
target_system_seed = [[UNIVERSE gui] targetNextFoundSystem:direction]; target_system_seed = [[UNIVERSE gui] targetNextFoundSystem:direction];
cursor_coordinates.x = target_system_seed.d; cursor_coordinates.x = target_system_seed.d;
cursor_coordinates.y = target_system_seed.b; cursor_coordinates.y = target_system_seed.b;
found_system_seed = target_system_seed; found_system_seed = target_system_seed;
[[UNIVERSE gameView] resetTypedString]; if (!whileTyping)
if (planetSearchString) [planetSearchString release]; {
planetSearchString = nil; [[UNIVERSE gameView] resetTypedString];
if (planetSearchString) [planetSearchString release];
planetSearchString = nil;
}
cursor_moving = YES; cursor_moving = YES;
} }
- (void) targetNewSystem:(int) direction
{
[self targetNewSystem:direction whileTyping:NO];
}
@end @end
@ -1474,9 +1483,10 @@ static NSTimeInterval time_last_frame;
{ {
// always reset the found system index at the beginning of a new search // always reset the found system index at the beginning of a new search
if ([planetSearchString length] == 1) [[UNIVERSE gui] targetNextFoundSystem:0]; if ([planetSearchString length] == 1) [[UNIVERSE gui] targetNextFoundSystem:0];
found_system_seed = [UNIVERSE findSystemAtCoords:search_coords withGalaxySeed:galaxy_seed];
moving = YES; // Always select the right one out of 2 overlapping systems.
cursor_coordinates = search_coords; [self targetNewSystem:1 whileTyping:YES];
[self targetNewSystem:-1 whileTyping:YES];
} }
else else
{ {

View File

@ -2078,6 +2078,14 @@ static NSDictionary* instructions(int station_id, Vector coords, float speed, fl
[player setDockingClearanceStatus:DOCKING_CLEARANCE_STATUS_NONE]; [player setDockingClearanceStatus:DOCKING_CLEARANCE_STATUS_NONE];
result = @"DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE"; result = @"DOCKING_CLEARANCE_DENIED_SHIP_FUGITIVE";
} }
if (result == nil && [other hasHostileTarget]) // do not grant docking clearance to hostile ships.
{
[self sendExpandedMessage:DESC(@"station-docking-clearance-denied") toShip:other];
if ([other isPlayer])
[player setDockingClearanceStatus:DOCKING_CLEARANCE_STATUS_NONE];
result = @"DOCKING_CLEARANCE_DENIED_SHIP_HOSTILE";
}
// Put ship in queue if we've got incoming or outgoing traffic // Put ship in queue if we've got incoming or outgoing traffic
if (result == nil && [shipsOnApproach count] && last_launch_time < timeNow) if (result == nil && [shipsOnApproach count] && last_launch_time < timeNow)