Oolite 1.91.0.7708-250910-30bbc4c
Loading...
Searching...
No Matches
GuiDisplayGen(Internal) Category Reference

Instance Methods

(void) - drawGLDisplay:x:y:z:
(void) - drawCrossHairsWithSize:x:y:z:
(void) - drawStarChart:x:y:z:alpha:
(void) - drawSystemMarkers:atX:andY:andZ:withAlpha:andScale:
(void) - drawSystemMarker:atX:andY:andZ:withAlpha:andScale:
(void) - drawEquipmentList:z:
(void) - drawAdvancedNavArrayAtX:y:z:alpha:usingRoute:optimizedBy:zoom:

Detailed Description

Definition at line 47 of file GuiDisplayGen.m.

Method Documentation

◆ drawAdvancedNavArrayAtX:y:z:alpha:usingRoute:optimizedBy:zoom:

- (void) drawAdvancedNavArrayAtX: (float) x
y: (float) y
z: (float) z
alpha: (float) alpha
usingRoute: (NSDictionary *) route
optimizedBy: (OORouteType) optimizeBy
zoom: (OOScalar) zoom 

Extends class GuiDisplayGen.

Definition at line 2480 of file GuiDisplayGen.m.

2480 :(float)x y:(float)y z:(float)z alpha:(float)alpha usingRoute:(NSDictionary *) routeInfo optimizedBy:(OORouteType) optimizeBy zoom: (OOScalar) zoom
2481{
2482 GLfloat lr,lg,lb,la,lr2,lg2,lb2,la2;
2483 double hscale = size_in_pixels.width / (CHART_WIDTH_AT_MAX_ZOOM*zoom);
2484 double vscale = -1.0 * size_in_pixels.height / (2*CHART_HEIGHT_AT_MAX_ZOOM*zoom);
2485 NSPoint star = NSZeroPoint,
2486 star2 = NSZeroPoint,
2487 starabs = NSZeroPoint,
2488 star2abs = NSZeroPoint;
2489 OOSystemDescriptionManager *systemManager = [UNIVERSE systemManager];
2490 OOGalaxyID g = [PLAYER galaxyNumber];
2491 OOSystemID planetNumber = [PLAYER systemID];
2492
2493 OOColor *defaultConnectionColor = [self colorFromSetting:kGuiChartConnectionColor defaultValue:[OOColor colorWithWhite:0.25 alpha:1.0]];
2494 OOColor *currentJumpColorStart = [self colorFromSetting:kGuiChartCurrentJumpStartColor defaultValue:[OOColor colorWithWhite:0.25 alpha:0.0]];
2495 OOColor *currentJumpColorEnd = [self colorFromSetting:kGuiChartCurrentJumpEndColor defaultValue:[OOColor colorWithWhite:0.25 alpha:0.0]];
2496
2497 OOColor *thisConnectionColor = nil;
2498 OOColor *thatConnectionColor = nil;
2499
2500 float jumpRange = MAX_JUMP_RANGE * ((optimizeBy == OPTIMIZED_BY_NONE) ? [PLAYER dialFuel] : 1.0);
2501
2502 NSInteger concealment[256];
2503 for (NSUInteger i=0;i<256;i++) {
2504 NSDictionary *systemInfo = [systemManager getPropertiesForSystem:i inGalaxy:g];
2505 concealment[i] = [systemInfo oo_intForKey:@"concealment" defaultValue:OO_SYSTEMCONCEALMENT_NONE];
2506 }
2507
2508
2509 OOGLBEGIN(GL_LINES);
2510 for (OOSystemID i = 0; i < 256; i++)
2511 {
2512
2513 if (concealment[i] >= OO_SYSTEMCONCEALMENT_NOTHING) {
2514 // system is not known
2515 continue;
2516 }
2517
2518 /* Concealment */
2519 if (optimizeBy == OPTIMIZED_BY_NONE && i != planetNumber)
2520 {
2521 continue;
2522 }
2523
2524 starabs = [systemManager getCoordinatesForSystem:i inGalaxy:g];
2525
2526 star.x = (float)(starabs.x * hscale);
2527 star.y = (float)(starabs.y * vscale);
2528
2529 // if in non-route mode, we're always starting from i, so need
2530 // to do <i here too.
2531 OOSystemID loopstart = (optimizeBy == OPTIMIZED_BY_NONE) ? 0 : (i+1);
2532
2533 for (OOSystemID j = loopstart; j < 256; j++)
2534 {
2535 if (i == j)
2536 {
2537 continue; // for OPTIMIZED_BY_NONE case
2538 }
2539
2540 if (concealment[j] >= OO_SYSTEMCONCEALMENT_NOTHING) {
2541 // system is not known
2542 continue;
2543 }
2544
2545 star2abs = [systemManager getCoordinatesForSystem:j inGalaxy:g];
2546 double d = distanceBetweenPlanetPositions(starabs.x, starabs.y, star2abs.x, star2abs.y);
2547
2548 if (d <= jumpRange) // another_commander - Default to 7.0 LY.
2549 {
2550 star2.x = (float)(star2abs.x * hscale);
2551 star2.y = (float)(star2abs.y * vscale);
2552 if (optimizeBy == OPTIMIZED_BY_NONE)
2553 {
2554 [currentJumpColorStart getRed:&lr green:&lg blue:&lb alpha:&la];
2555 [currentJumpColorEnd getRed:&lr2 green:&lg2 blue:&lb2 alpha:&la2];
2556 OOGL(glColor4f(lr, lg, lb, la*alpha));
2557 glVertex3f(x+star.x, y+star.y, z);
2558
2559 float frac = (d/jumpRange);
2560 OOGL(glColor4f(
2561 OOLerp(lr,lr2,frac),
2562 OOLerp(lg,lg2,frac),
2563 OOLerp(lb,lb2,frac),
2564 OOLerp(la,la2,frac)
2565 ));
2566 glVertex3f(x+star2.x, y+star2.y, z);
2567
2568 }
2569 else
2570 {
2571 thisConnectionColor = [OOColor colorWithDescription:[systemManager getProperty:@"link_color" forSystemKey:[NSString stringWithFormat:@"interstellar: %d %ld %ld", g, (long)i, (long)j]]];
2572
2573 if (thisConnectionColor == nil)
2574 {
2575 thisConnectionColor = defaultConnectionColor;
2576 }
2577 [thisConnectionColor getRed:&lr green:&lg blue:&lb alpha:&la];
2578 OOGL(glColor4f(lr, lg, lb, la*alpha));
2579
2580 glVertex3f(x+star.x, y+star.y, z);
2581
2582 // and the other colour for the other end
2583 thatConnectionColor = [OOColor colorWithDescription:[systemManager getProperty:@"link_color" forSystemKey:[NSString stringWithFormat:@"interstellar: %d %ld %ld", g, (long)j, (long)i]]];
2584
2585 if (thatConnectionColor == nil)
2586 {
2587 thatConnectionColor = thisConnectionColor;
2588 }
2589 [thatConnectionColor getRed:&lr green:&lg blue:&lb alpha:&la];
2590 OOGL(glColor4f(lr, lg, lb, la*alpha));
2591
2592 glVertex3f(x+star2.x, y+star2.y, z);
2593 }
2594 }
2595 }
2596 }
2597 OOGLEND();
2598
2599 if (optimizeBy == OPTIMIZED_BY_NONE)
2600 {
2601 return;
2602 }
2603
2604 if (routeInfo)
2605 {
2606 NSUInteger i, route_hops = [[routeInfo oo_arrayForKey:@"route"] count] - 1;
2607
2608 if (optimizeBy == OPTIMIZED_BY_JUMPS)
2609 {
2610 // route optimised by distance
2611 [self setGLColorFromSetting:kGuiChartRouteShortColor defaultValue:[OOColor yellowColor] alpha:alpha];
2612 }
2613 else
2614 {
2615 // route optimised by time
2616 [self setGLColorFromSetting:kGuiChartRouteQuickColor defaultValue:[OOColor cyanColor] alpha:alpha];
2617 }
2618 OOSystemID loc;
2619 for (i = 0; i < route_hops; i++)
2620 {
2621 loc = [[routeInfo objectForKey:@"route"] oo_intAtIndex:i];
2622 starabs = [systemManager getCoordinatesForSystem:loc inGalaxy:g];
2623 star2abs = [systemManager getCoordinatesForSystem:[[routeInfo objectForKey:@"route"] oo_intAtIndex:i+1] inGalaxy:g];
2624
2625 star.x = (float)(starabs.x * hscale);
2626 star.y = (float)(starabs.y * vscale);
2627
2628 star2.x = (float)(star2abs.x * hscale);
2629 star2.y = (float)(star2abs.y * vscale);
2630
2631
2632 OOGLBEGIN(GL_LINES);
2633 glVertex3f(x+star.x, y+star.y, z);
2634 glVertex3f(x+star2.x, y+star2.y, z);
2635 OOGLEND();
2636
2637 // Label the route, if not already labelled
2638 if (zoom > CHART_ZOOM_SHOW_LABELS && concealment[loc] < OO_SYSTEMCONCEALMENT_NONAME)
2639 {
2640 OODrawString([UNIVERSE systemNameIndex:loc], x + star.x + 2.0, y + star.y, z, NSMakeSize(8,8));
2641 }
2642 }
2643 // Label the destination, which was not included in the above loop.
2644 if (zoom > CHART_ZOOM_SHOW_LABELS)
2645 {
2646 loc = [[routeInfo objectForKey:@"route"] oo_intAtIndex:i];
2647 if(concealment[loc] < OO_SYSTEMCONCEALMENT_NONAME)
2648 {
2649 OODrawString([UNIVERSE systemNameIndex:loc], x + star2.x + 2.0, y + star2.y, z, NSMakeSize(10,10));
2650 }
2651 }
2652 }
2653}
void OODrawString(NSString *text, GLfloat x, GLfloat y, GLfloat z, NSSize siz)
GLfloat OOScalar
Definition OOMaths.h:64
#define OOGLBEGIN
Definition OOOpenGL.h:253
#define OOGL(statement)
Definition OOOpenGL.h:251
#define OOGLEND
Definition OOOpenGL.h:254
return nil
float y
float x
@ OO_SYSTEMCONCEALMENT_NOTHING
@ OO_SYSTEMCONCEALMENT_NONAME
OORouteType
Definition OOTypes.h:33
@ OPTIMIZED_BY_NONE
Definition OOTypes.h:34
@ OPTIMIZED_BY_JUMPS
Definition OOTypes.h:35
int16_t OOSystemID
Definition OOTypes.h:211
uint8_t OOGalaxyID
Definition OOTypes.h:210
#define CHART_WIDTH_AT_MAX_ZOOM
#define CHART_ZOOM_SHOW_LABELS
#define CHART_HEIGHT_AT_MAX_ZOOM
#define MAX_JUMP_RANGE
Definition ShipEntity.h:107
#define UNIVERSE
Definition Universe.h:840
OOColor * cyanColor()
Definition OOColor.m:286
OOColor * colorWithWhite:alpha:(float white,[alpha] float alpha)
Definition OOColor.m:103
OOColor * colorWithDescription:(id description)
Definition OOColor.m:127
void getRed:green:blue:alpha:(float *red,[green] float *green,[blue] float *blue,[alpha] float *alpha)
Definition OOColor.m:368
OOColor * yellowColor()
Definition OOColor.m:292
NSPoint getCoordinatesForSystem:inGalaxy:(OOSystemID s,[inGalaxy] OOGalaxyID g)
NSDictionary * getPropertiesForSystem:inGalaxy:(OOSystemID s,[inGalaxy] OOGalaxyID g)
id getProperty:forSystemKey:(NSString *property,[forSystemKey] NSString *key)
OOINLINE double distanceBetweenPlanetPositions(int x1, int y1, int x2, int y2) INLINE_CONST_FUNC

References CHART_HEIGHT_AT_MAX_ZOOM, CHART_WIDTH_AT_MAX_ZOOM, CHART_ZOOM_SHOW_LABELS, GuiDisplayGen::colorFromSetting:defaultValue:, OOColor::colorWithDescription:, OOColor::colorWithWhite:alpha:, OOColor::cyanColor, distanceBetweenPlanetPositions(), OOSystemDescriptionManager::getCoordinatesForSystem:inGalaxy:, OOSystemDescriptionManager::getPropertiesForSystem:inGalaxy:, OOSystemDescriptionManager::getProperty:forSystemKey:, OOColor::getRed:green:blue:alpha:, MAX_JUMP_RANGE, nil, OO_SYSTEMCONCEALMENT_NONAME, OO_SYSTEMCONCEALMENT_NOTHING, OODrawString(), OOGL, OOGLBEGIN, OOGLEND, OPTIMIZED_BY_JUMPS, OPTIMIZED_BY_NONE, GuiDisplayGen::setGLColorFromSetting:defaultValue:alpha:, UNIVERSE, x, y, and OOColor::yellowColor.

Referenced by drawStarChart:x:y:z:alpha:.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ drawCrossHairsWithSize:x:y:z:

- (void) drawCrossHairsWithSize: (GLfloat) size
x: (GLfloat) x
y: (GLfloat) y
z: (GLfloat) z 

Extends class GuiDisplayGen.

Definition at line 1716 of file GuiDisplayGen.m.

1716 :(GLfloat) size x:(GLfloat)x y:(GLfloat)y z:(GLfloat)z
1717{
1718 OOGLBEGIN(GL_QUADS);
1719 glVertex3f(x - 1, y - size, z);
1720 glVertex3f(x + 1, y - size, z);
1721 glVertex3f(x + 1, y + size, z);
1722 glVertex3f(x - 1, y + size, z);
1723 glVertex3f(x - size, y - 1, z);
1724 glVertex3f(x + size, y - 1, z);
1725 glVertex3f(x + size, y + 1, z);
1726 glVertex3f(x - size, y + 1, z);
1727 OOGLEND();
1728}
voidpf void uLong size
Definition ioapi.h:134

References OOGLBEGIN, OOGLEND, x, and y.

Referenced by drawStarChart:x:y:z:alpha:.

Here is the caller graph for this function:

◆ drawEquipmentList:z:

- (void) drawEquipmentList: (NSArray *) eqptList
z: (GLfloat) z 

add color selection here

Extends class GuiDisplayGen.

Definition at line 1234 of file GuiDisplayGen.m.

1234 :(NSArray *)eqptList z:(GLfloat)z
1235{
1236 if ([eqptList count] == 0) return;
1237
1239 NSUInteger maxRows = STATUS_EQUIPMENT_MAX_ROWS;
1240 if ([[PLAYER hud] allowBigGui])
1241 {
1243 }
1244 NSUInteger itemsPerColumn = maxRows;
1245
1246
1247 NSInteger firstY = 40; // firstRow =10 :-> 40 - firstRow=11 -> 24 etc...
1248 NSUInteger eqptCount = [eqptList count];
1249 NSUInteger pageCount = 1;
1250 NSUInteger i;
1251 NSInteger start;
1252 NSArray *info = nil;
1253 NSString *name = nil;
1254 BOOL damaged;
1255
1256 // Paging calculations. Assuming 10 lines we get - one page:20 items per page (ipp)
1257 // two pages: 18 ipp - three+ pages: 1st & last 18pp, middle pages 16ipp
1258
1259 i = itemsPerColumn * 2 + 2;
1260 if (eqptCount > i) // don't fit in one page?
1261 {
1262 [[UNIVERSE gameController] setMouseInteractionModeForUIWithMouseInteraction:YES];
1263
1264 i = itemsPerColumn * 4; // total items in the first and last pages
1265 itemsPerColumn--; // for all the middle pages.
1266 if (eqptCount <= i) // two pages
1267 {
1268 pageCount++;
1269 if (statusPage == 1)
1270 {
1271 start = 0;
1272 }
1273 else
1274 {
1275 statusPage = 2;
1276 start = i/statusPage; // for the for loop
1277 }
1278 }
1279 else // three or more
1280 {
1281 pageCount = ceil((float)(eqptCount-i)/(itemsPerColumn*2)) + 2;
1282 statusPage = (NSInteger)OOClampInteger(statusPage, 1, pageCount);
1283 start = (statusPage == 1) ? 0 : (statusPage-1) * itemsPerColumn * 2 + 2;
1284 }
1285 }
1286 else
1287 {
1288 statusPage = pageCount; // one page
1289 start = 0;
1290 // if we have mouse interaction active, it means that we had more than one
1291 // pages earlier, but only one now, as e.g. in the case of a hud that wss
1292 // subsequently hidden, resulting in the equip list fitting in one page,
1293 // so we need to deactivate it
1294 if (OOMouseInteractionModeIsUIScreen([[UNIVERSE gameController] mouseInteractionMode]))
1295 {
1296 // clear the gui-more and gui-back key rows first
1297 [self setText:@"" forRow:firstRow];
1298 [self setKey:GUI_KEY_SKIP forRow:firstRow];
1299 [self setText:@"" forRow:firstRow + STATUS_EQUIPMENT_MAX_ROWS];
1300 [self setKey:GUI_KEY_SKIP forRow:firstRow + STATUS_EQUIPMENT_MAX_ROWS];
1301 [self setSelectableRange:NSMakeRange(0,0)];
1302
1303 [[UNIVERSE gameController] setMouseInteractionModeForUIWithMouseInteraction:NO];
1304 }
1305 }
1306
1307 if (statusPage > 1)
1308 {
1309 [self setColor:[self colorFromSetting:kGuiStatusEquipmentScrollColor defaultValue:[OOColor greenColor]] forRow:firstRow];
1310 [self setArray:[NSArray arrayWithObjects:DESC(@"gui-back"), @"", @" <-- ",nil] forRow:firstRow];
1311 [self setKey:GUI_KEY_OK forRow:firstRow];
1312 firstY -= 16; // start 1 row down!
1313 if (statusPage == pageCount)
1314 {
1315 [self setSelectableRange:NSMakeRange(firstRow, 1)];
1316 [self setSelectedRow:firstRow];
1317 }
1318 }
1319 if (statusPage < pageCount)
1320 {
1321 [self setColor:[self colorFromSetting:kGuiStatusEquipmentScrollColor defaultValue:[OOColor greenColor]] forRow:firstRow + maxRows];
1322 [self setArray:[NSArray arrayWithObjects:DESC(@"gui-more"), @"", @" --> ",nil] forRow:firstRow + maxRows];
1323 [self setKey:GUI_KEY_OK forRow:firstRow + maxRows];
1324 if (statusPage == 1)
1325 {
1326 [self setSelectableRange:NSMakeRange(firstRow + maxRows, 1)];
1327 [self setSelectedRow:firstRow + maxRows];
1328 }
1329 }
1330 if (statusPage > 1 && statusPage < pageCount)
1331 {
1332 [self setSelectableRange:NSMakeRange(firstRow, MIN(firstRow + maxRows, GUI_DEFAULT_ROWS - firstRow))];
1333 // default selected row to 'More -->' if we are looking at one of the middle pages
1334 if ([self selectedRow] == -1) [self setSelectedRow:firstRow + maxRows];
1335 }
1336
1337 if (statusPage == 1 || statusPage == pageCount) itemsPerColumn++;
1338 eqptCount = (NSInteger)OOClampInteger(eqptCount, 1, start + itemsPerColumn * 2);
1339 for (i = start; i < eqptCount; i++)
1340 {
1341 info = [eqptList oo_arrayAtIndex:i];
1342 name = [info oo_stringAtIndex:0];
1343 if([name length] > 42) name = [[name substringToIndex:40] stringByAppendingString:@"..."];
1344
1345 damaged = ![info oo_boolAtIndex:1];
1346 if (damaged)
1347 {
1348 // Damaged items show up orange.
1349 [self setGLColorFromSetting:@"status_equipment_damaged_color" defaultValue:[OOColor orangeColor] alpha:1.0];
1350 }
1351 else
1352 {
1353 OOColor *dispCol = [info oo_objectAtIndex:2];
1354 // Normal items in default colour
1355 [self setGLColorFromSetting:@"status_equipment_ok_color" defaultValue:dispCol alpha:1.0];
1356 }
1357
1358 if (i - start < itemsPerColumn)
1359 {
1360 OODrawString(name, -220, firstY - 16 * (NSInteger)(i - start), z, NSMakeSize(15, 15));
1361 }
1362 else
1363 {
1364 OODrawString(name, 50, firstY - 16 * (NSInteger)(i - itemsPerColumn - start), z, NSMakeSize(15, 15));
1365 }
1366 }
1367}
NSInteger OOGUIRow
OOINLINE long long OOClampInteger(long long value, long long minValue, long long maxValue) ALWAYS_INLINE_FUNC
BOOL OOMouseInteractionModeIsUIScreen(OOMouseInteractionMode mode)
unsigned count
@ STATUS_EQUIPMENT_FIRST_ROW
@ STATUS_EQUIPMENT_MAX_ROWS
@ STATUS_EQUIPMENT_BIGGUI_EXTRA_ROWS
#define PLAYER
OOColor * orangeColor()
Definition OOColor.m:304
OOColor * greenColor()
Definition OOColor.m:274

References GuiDisplayGen::colorFromSetting:defaultValue:, count, OOColor::greenColor, nil, OOClampInteger(), OODrawString(), OOMouseInteractionModeIsUIScreen(), OOColor::orangeColor, PLAYER, GuiDisplayGen::setArray:forRow:, GuiDisplayGen::setColor:forRow:, GuiDisplayGen::setGLColorFromSetting:defaultValue:alpha:, GuiDisplayGen::setKey:forRow:, GuiDisplayGen::setSelectableRange:, GuiDisplayGen::setSelectedRow:, GuiDisplayGen::setText:forRow:, STATUS_EQUIPMENT_BIGGUI_EXTRA_ROWS, STATUS_EQUIPMENT_FIRST_ROW, STATUS_EQUIPMENT_MAX_ROWS, and UNIVERSE.

Referenced by GuiDisplayGen::drawGUI:drawCursor:.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ drawGLDisplay:x:y:z:

- (void) drawGLDisplay: (GLfloat)
x: (GLfloat)
y: (GLfloat)
z: (GLfloat) alpha 

Extends class GuiDisplayGen.

Definition at line 1483 of file GuiDisplayGen.m.

1483 :(GLfloat)x :(GLfloat)y :(GLfloat)z :(GLfloat) alpha
1484{
1485 NSSize strsize;
1486 unsigned i;
1487 OOTimeDelta delta_t = [UNIVERSE getTimeDelta];
1488 NSSize characterSize = pixel_text_size;
1489 NSSize titleCharacterSize = pixel_title_size;
1490 float backgroundAlpha = self == [UNIVERSE messageGUI] && ![UNIVERSE permanentMessageLog] ? 0.0f : alpha;
1491 float row_alpha[n_rows];
1492
1493 // calculate fade out time and alpha for each row. Do it before
1494 // applying a potential background because we need the maximum alpha
1495 // of all rows to be the alpha applied to the background color
1496 for (i = 0; i < n_rows; i++)
1497 {
1498 row_alpha[i] = alpha;
1499
1500 if(![UNIVERSE autoMessageLogBg] && [PLAYER guiScreen] == GUI_SCREEN_MAIN) backgroundAlpha = alpha;
1501
1502 if (rowFadeTime[i] > 0.0f && ![UNIVERSE permanentMessageLog])
1503 {
1504 rowFadeTime[i] -= (float)delta_t;
1505 if (rowFadeTime[i] <= 0.0f)
1506 {
1507 [rowText replaceObjectAtIndex:i withObject:@""];
1508 rowFadeTime[i] = 0.0f;
1509 continue;
1510 }
1511 if ((rowFadeTime[i] > 0.0f)&&(rowFadeTime[i] < 1.0))
1512 {
1513 row_alpha[i] *= rowFadeTime[i];
1514 if (backgroundAlpha < row_alpha[i]) backgroundAlpha = row_alpha[i];
1515 }
1516 else
1517 {
1518 backgroundAlpha = alpha;
1519 }
1520 }
1521 }
1522
1523 // do backdrop
1524 // don't draw it if docked, unless message_gui is permanent
1525 // don't draw it on the intro screens
1526 if (backgroundColor)
1527 {
1528 int playerStatus = [PLAYER status];
1529 if (playerStatus != STATUS_START_GAME && playerStatus != STATUS_DEAD)
1530 {
1531 OOGL(glColor4f([backgroundColor redComponent], [backgroundColor greenComponent], [backgroundColor blueComponent], backgroundAlpha * [backgroundColor alphaComponent]));
1532 OOGLBEGIN(GL_QUADS);
1533 glVertex3f(x + 0.0f, y + 0.0f, z);
1534 glVertex3f(x + size_in_pixels.width, y + 0.0f, z);
1535 glVertex3f(x + size_in_pixels.width, y + size_in_pixels.height, z);
1536 glVertex3f(x + 0.0f, y + size_in_pixels.height, z);
1537 OOGLEND();
1538 }
1539 }
1540
1541 // show the 'foreground', aka overlay!
1542
1543 if (foregroundSprite != nil)
1544 {
1545 [foregroundSprite blitCentredToX:x + 0.5f * size_in_pixels.width Y:y + 0.5f * size_in_pixels.height Z:z alpha:alpha];
1546 }
1547
1548 if (!RowInRange(selectedRow, selectableRange))
1549 selectedRow = -1; // out of Range;
1550
1552 // drawing operations here
1553
1554 if (title != nil)
1555 {
1556 //
1557 // draw the title
1558 //
1559 strsize = OORectFromString(title, 0.0f, 0.0f, titleCharacterSize).size;
1560 [self setGLColorFromSetting:kGuiScreenTitleColor defaultValue:[OOColor redColor] alpha:alpha];
1561
1562 OODrawString(title, x + pixel_row_center - strsize.width/2.0, y + size_in_pixels.height - pixel_title_size.height, z, titleCharacterSize);
1563
1564 // draw a horizontal divider
1565 //
1566 [self setGLColorFromSetting:kGuiScreenDividerColor defaultValue:[OOColor colorWithWhite:0.75 alpha:1.0] alpha:alpha];
1567
1568 OOGLBEGIN(GL_QUADS);
1569 glVertex3f(x + 0, y + size_in_pixels.height - pixel_title_size.height + 4, z);
1570 glVertex3f(x + size_in_pixels.width, y + size_in_pixels.height - pixel_title_size.height + 4, z);
1571 glVertex3f(x + size_in_pixels.width, y + size_in_pixels.height - pixel_title_size.height + 2, z);
1572 glVertex3f(x + 0, y + size_in_pixels.height - pixel_title_size.height + 2, z);
1573 OOGLEND();
1574 }
1575
1576 // draw each row of text
1577 //
1579 for (i = 0; i < n_rows; i++)
1580 {
1581 OOColor* row_color = (OOColor *)[rowColor objectAtIndex:i];
1582 glColor4f([row_color redComponent], [row_color greenComponent], [row_color blueComponent], row_alpha[i]);
1583
1584 if ([[rowText objectAtIndex:i] isKindOfClass:[NSString class]])
1585 {
1586 NSString* text = (NSString *)[rowText objectAtIndex:i];
1587 if (![text isEqual:@""])
1588 {
1589 strsize = OORectFromString(text, 0.0f, 0.0f, characterSize).size;
1590 switch (rowAlignment[i])
1591 {
1592 case GUI_ALIGN_LEFT :
1593 rowPosition[i].x = 0.0f;
1594 break;
1595 case GUI_ALIGN_RIGHT :
1596 rowPosition[i].x = size_in_pixels.width - strsize.width;
1597 break;
1598 case GUI_ALIGN_CENTER :
1599 rowPosition[i].x = (size_in_pixels.width - strsize.width)/2.0f;
1600 break;
1601 }
1602 if (i == (unsigned)selectedRow)
1603 {
1604 NSRect block = OORectFromString(text, x + rowPosition[i].x + 2, y + rowPosition[i].y + 2, characterSize);
1606 [self setGLColorFromSetting:kGuiSelectedRowBackgroundColor defaultValue:[OOColor redColor] alpha:alpha];
1607 OOGLBEGIN(GL_QUADS);
1608 glVertex3f(block.origin.x, block.origin.y, z);
1609 glVertex3f(block.origin.x + block.size.width, block.origin.y, z);
1610 glVertex3f(block.origin.x + block.size.width, block.origin.y + block.size.height, z);
1611 glVertex3f(block.origin.x, block.origin.y + block.size.height, z);
1612 OOGLEND();
1613 [self setGLColorFromSetting:kGuiSelectedRowColor defaultValue:[OOColor blackColor] alpha:alpha];
1615 }
1616 OODrawStringQuadsAligned(text, x + rowPosition[i].x, y + rowPosition[i].y, z, characterSize, NO);
1617
1618 // draw cursor at end of current Row
1619 //
1620 if ((showTextCursor)&&(i == (unsigned)currentRow))
1621 {
1622 NSRect tr = OORectFromString(text, 0.0f, 0.0f, characterSize);
1623 NSPoint cu = NSMakePoint(x + rowPosition[i].x + tr.size.width + 0.2f * characterSize.width, y + rowPosition[i].y);
1624 tr.origin = cu;
1625 tr.size.width = 0.5f * characterSize.width;
1626 GLfloat g_alpha = 0.5f * (1.0f + (float)sin(6 * [UNIVERSE getTime]));
1628 [self setGLColorFromSetting:kGuiTextInputCursorColor defaultValue:[OOColor redColor] alpha:row_alpha[i]*g_alpha];
1629 OOGLBEGIN(GL_QUADS);
1630 glVertex3f(tr.origin.x, tr.origin.y, z);
1631 glVertex3f(tr.origin.x + tr.size.width, tr.origin.y, z);
1632 glVertex3f(tr.origin.x + tr.size.width, tr.origin.y + tr.size.height, z);
1633 glVertex3f(tr.origin.x, tr.origin.y + tr.size.height, z);
1634 OOGLEND();
1636 }
1637 }
1638 }
1639 if ([[rowText objectAtIndex:i] isKindOfClass:[NSArray class]])
1640 {
1641 NSArray *array = [rowText oo_arrayAtIndex:i];
1642 NSUInteger j, max_columns = MIN([array count], n_columns);
1643 BOOL isLeftAligned;
1644
1645 for (j = 0; j < max_columns; j++)
1646 {
1647 NSString* text = [array oo_stringAtIndex:j];
1648 if ([text length] != 0)
1649 {
1650 isLeftAligned = tabStops[j] >= 0;
1651 rowPosition[i].x = labs(tabStops[j]);
1652
1653 // we don't want to highlight leading space(s) or narrow spaces (\037s)
1654 NSString *hilitedText = [text stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" \037"]];
1655 NSRange txtRange = [text rangeOfString:hilitedText];
1656 unsigned leadingSpaces = 0;
1657
1658 if (EXPECT_NOT(txtRange.location == NSNotFound))
1659 {
1660 // This never happens!
1661 hilitedText = text;
1662 }
1663 else if (txtRange.location > 0)
1664 {
1665 // padded string!
1666 NSRange padRange;
1667 padRange.location = 0;
1668 padRange.length = txtRange.location;
1669 NSRect charBlock = OORectFromString([text substringWithRange:padRange], 0, 0, characterSize);
1670 leadingSpaces = (unsigned)charBlock.size.width;
1671
1672/* // if we're displaying commodity-quantity-none, let's try and be pixel perfect!
1673 NSString *qtyNone = DESC(@"commodity-quantity-none");
1674 txtRange = [hilitedText rangeOfString:qtyNone];
1675
1676 if (txtRange.location == 0) // bingo!
1677 {
1678 rowPosition[i].x += OORectFromString(@"0", 0, 0, characterSize).size.width - OORectFromString(qtyNone, 0, 0, characterSize).size.width;
1679 } */
1680 }
1681
1682 // baseline text rect, needed for correct highlight positioning.
1683 NSRect block = OORectFromString(text, x + rowPosition[i].x + 2, y + rowPosition[i].y + 2, characterSize);
1684
1685 if(!isLeftAligned)
1686 {
1687 rowPosition[i].x -= block.size.width + 3;
1688 }
1689 block = OORectFromString(hilitedText, x + rowPosition[i].x + 1 + leadingSpaces, y + rowPosition[i].y + 2, characterSize);
1690 block.size.width += 3;
1691
1692
1693 if (i == (unsigned)selectedRow)
1694 {
1696 [self setGLColorFromSetting:kGuiSelectedRowBackgroundColor defaultValue:[OOColor redColor] alpha:alpha];
1697 OOGLBEGIN(GL_QUADS);
1698 glVertex3f(block.origin.x, block.origin.y, z);
1699 glVertex3f(block.origin.x + block.size.width, block.origin.y, z);
1700 glVertex3f(block.origin.x + block.size.width, block.origin.y + block.size.height, z);
1701 glVertex3f(block.origin.x, block.origin.y + block.size.height, z);
1702 OOGLEND();
1703 [self setGLColorFromSetting:kGuiSelectedRowColor defaultValue:[OOColor blackColor] alpha:alpha];
1705 }
1706 OODrawStringQuadsAligned(text, x + rowPosition[i].x, y + rowPosition[i].y, z, characterSize,NO);
1707 }
1708 }
1709 }
1710 }
1713}
@ GUI_ALIGN_RIGHT
@ GUI_ALIGN_LEFT
@ GUI_ALIGN_CENTER
OOINLINE BOOL RowInRange(OOGUIRow row, NSRange range)
void OODrawStringQuadsAligned(NSString *text, GLfloat x, GLfloat y, GLfloat z, NSSize siz, BOOL rightAlign)
void OOStartDrawingStrings(void)
NSRect OORectFromString(NSString *text, GLfloat x, GLfloat y, NSSize siz)
void OOStopDrawingStrings(void)
#define EXPECT_NOT(x)
#define MIN(A, B)
Definition OOMaths.h:111
double OOTimeDelta
Definition OOTypes.h:224
OOColor * redColor()
Definition OOColor.m:268
OOColor * blackColor()
Definition OOColor.m:238
void applyNone()
Definition OOTexture.m:275

References OOTexture::applyNone, OOColor::blackColor, OOColor::colorWithWhite:alpha:, count, EXPECT_NOT, GUI_ALIGN_CENTER, GUI_ALIGN_LEFT, GUI_ALIGN_RIGHT, MIN, nil, OODrawString(), OODrawStringQuadsAligned(), OOGL, OOGLBEGIN, OOGLEND, OORectFromString(), OOStartDrawingStrings(), OOStopDrawingStrings(), PLAYER, OOColor::redColor, RowInRange(), GuiDisplayGen::setGLColorFromSetting:defaultValue:alpha:, UNIVERSE, x, and y.

Here is the call graph for this function:

◆ drawStarChart:x:y:z:alpha:

- (void) drawStarChart: (GLfloat)
x: (GLfloat)
y: (GLfloat)
z: (GLfloat)
alpha: (BOOL) compact 

Extends class GuiDisplayGen.

Definition at line 1757 of file GuiDisplayGen.m.

1757 :(GLfloat)x :(GLfloat)y :(GLfloat)z :(GLfloat) alpha :(BOOL)compact
1758{
1759 PlayerEntity* player = PLAYER;
1760
1761 if (!player)
1762 return;
1763
1764 OOSystemDescriptionManager *systemManager = [UNIVERSE systemManager];
1765
1766 OOScalar zoom = [player chart_zoom];
1767 NSPoint chart_centre_coordinates = [player adjusted_chart_centre];
1768 NSPoint galaxy_coordinates = [player galaxy_coordinates];
1769 NSPoint cursor_coordinates = [player cursor_coordinates];
1770 NSPoint info_system_coordinates = [[UNIVERSE systemManager] getCoordinatesForSystem: [player infoSystemID] inGalaxy: [player galaxyNumber]];
1771 OOLongRangeChartMode chart_mode = [player longRangeChartMode];
1772 OOGalaxyID galaxy_id = [player galaxyNumber];
1773 GLfloat r = 1.0, g = 1.0, b = 1.0;
1774 BOOL noNova;
1775 NSPoint cu;
1776 NSUInteger systemParameter;
1777
1778 double fuel = 35.0 * [player dialFuel];
1779
1780 double hcenter = size_in_pixels.width/2.0;
1781 double hscale = size_in_pixels.width / (CHART_WIDTH_AT_MAX_ZOOM*zoom);
1782 double vscale = -size_in_pixels.height / (2*CHART_HEIGHT_AT_MAX_ZOOM*zoom);
1783 double vcenter = CHART_SCREEN_VERTICAL_CENTRE;
1784 double hoffset = hcenter - chart_centre_coordinates.x*hscale;
1785 double voffset = size_in_pixels.height - vcenter - chart_centre_coordinates.y*vscale;
1786
1787 if (compact)
1788 {
1789 hscale = size_in_pixels.width / 256.0;
1790 vscale = -1.0 * size_in_pixels.height / 512.0;
1791 hoffset = 0.0f;
1792 voffset = size_in_pixels.height - pixel_title_size.height - 5;
1794 chart_centre_coordinates.x = 128.0;
1795 chart_centre_coordinates.y = 128.0;
1796 zoom = CHART_MAX_ZOOM;
1797 }
1798
1799 int i;
1800 double d, distance = 0.0, time = 0.0;
1801 int jumps = 0;
1802 NSPoint star;
1803 OOScalar pixelRatio;
1804 NSRect clipRect;
1805
1806 OORouteType advancedNavArrayMode = [player ANAMode];
1807 BOOL routeExists = NO;
1808
1809 NSInteger concealment[256];
1810 for (i=0;i<256;i++) {
1811 NSDictionary *systemInfo = [systemManager getPropertiesForSystem:i inGalaxy:galaxy_id];
1812 concealment[i] = [systemInfo oo_intForKey:@"concealment" defaultValue:OO_SYSTEMCONCEALMENT_NONE];
1813 }
1814
1815 BOOL *systemsFound = [UNIVERSE systemsFound];
1816 NSSize viewSize = [[UNIVERSE gameView] backingViewSize];
1817 double aspect_ratio = viewSize.width / viewSize.height;
1818
1819 // default colours - match those in HeadUpDisplay:OODrawPlanetInfo
1820 GLfloat govcol[] = { 0.5, 0.0, 0.7,
1821 0.7, 0.5, 0.3,
1822 0.0, 1.0, 0.3,
1823 1.0, 0.8, 0.1,
1824 1.0, 0.0, 0.0,
1825 0.1, 0.5, 1.0,
1826 0.7, 0.7, 0.7,
1827 0.7, 1.0, 1.0};
1828
1829 if (aspect_ratio > 4.0/3.0)
1830 {
1831 pixelRatio = viewSize.height / 480.0;
1832 }
1833 else
1834 {
1835 pixelRatio = viewSize.width / 640.0;
1836 }
1837
1838 NSInteger textRow = compact ? GUI_ROW_CHART_SYSTEM_COMPACT : GUI_ROW_CHART_SYSTEM;
1839
1840 clipRect = NSMakeRect((viewSize.width - size_in_pixels.width*pixelRatio)/2.0,
1841 (viewSize.height + size_in_pixels.height*pixelRatio)/2.0 - (pixel_title_size.height + 15 + (textRow-2)*MAIN_GUI_ROW_HEIGHT) * pixelRatio,
1842 size_in_pixels.width * pixelRatio,
1843 (textRow-1) * MAIN_GUI_ROW_HEIGHT * pixelRatio);
1844
1845 OOSystemID target = [PLAYER targetSystemID];
1846 double dx, dy;
1847
1848 // get a list of systems marked as contract destinations
1849 NSDictionary* markedDestinations = [player markedDestinations];
1850
1851 // get present location
1852 cu = NSMakePoint((float)(hscale*galaxy_coordinates.x+hoffset),(float)(vscale*galaxy_coordinates.y+voffset));
1853
1854 // enable draw clipping; limit drawing area within the chart area
1855 OOGL(glEnable(GL_SCISSOR_TEST));
1856 OOGL(glScissor(clipRect.origin.x, clipRect.origin.y, clipRect.size.width, clipRect.size.height));
1857
1858 // Cache nearby systems so that [UNIVERSE generateSystemData:] does not get called on every frame
1859 // Caching code submitted by Y A J, 20091022
1860
1861 static OOGalaxyID saved_galaxy_id;
1862 static struct saved_system
1863 {
1864 OOSystemID sysid;
1865 int tec, eco, gov;
1866 NSString* p_name;
1867 BOOL nova;
1868 } nearby_systems[ 256 ];
1869 static int num_nearby_systems = 0;
1870
1871 if ( _refreshStarChart || galaxy_id != saved_galaxy_id)
1872 {
1873 // saved systems are stale; recompute
1874 _refreshStarChart = NO;
1875 for (i = 0; i < num_nearby_systems; i++)
1876 [nearby_systems[ i ].p_name release];
1877
1878 num_nearby_systems = 0;
1879 for (i = 0; i < 256; i++)
1880 {
1881
1882 NSDictionary* sys_info = [UNIVERSE generateSystemData:i];
1883 if (EXPECT_NOT([sys_info oo_boolForKey:@"sun_gone_nova"]))
1884 {
1885 nearby_systems[ num_nearby_systems ].gov = -1; // Flag up nova systems!
1886 }
1887 else
1888 {
1889 nearby_systems[ num_nearby_systems ].tec = [sys_info oo_intForKey:KEY_TECHLEVEL];
1890 nearby_systems[ num_nearby_systems ].eco = [sys_info oo_intForKey:KEY_ECONOMY];
1891 nearby_systems[ num_nearby_systems ].gov = [sys_info oo_intForKey:KEY_GOVERNMENT];
1892 }
1893 nearby_systems[ num_nearby_systems ].sysid = i;
1894 nearby_systems[ num_nearby_systems ].p_name = [[sys_info oo_stringForKey:KEY_NAME] retain];
1895 nearby_systems[ num_nearby_systems ].nova = [[UNIVERSE generateSystemData:i] oo_boolForKey:@"sun_gone_nova"];
1896 num_nearby_systems++;
1897 }
1898 saved_galaxy_id = [player galaxyNumber];
1899 }
1900
1901 static OOSystemID savedPlanetNumber = 0;
1902 static OOSystemID savedDestNumber = 0;
1903 static OORouteType savedArrayMode = OPTIMIZED_BY_NONE;
1904 static NSDictionary *routeInfo = nil;
1905
1906 /* May override current mode for mission screens */
1907 if (backgroundSpecial == GUI_BACKGROUND_SPECIAL_LONG_ANA_SHORTEST ||
1908 backgroundSpecial == GUI_BACKGROUND_SPECIAL_SHORT_ANA_SHORTEST ||
1909 backgroundSpecial == GUI_BACKGROUND_SPECIAL_CUSTOM_ANA_SHORTEST)
1910 {
1911 advancedNavArrayMode = OPTIMIZED_BY_JUMPS;
1912 }
1913 else if (backgroundSpecial == GUI_BACKGROUND_SPECIAL_LONG_ANA_QUICKEST ||
1914 backgroundSpecial == GUI_BACKGROUND_SPECIAL_SHORT_ANA_QUICKEST ||
1915 backgroundSpecial == GUI_BACKGROUND_SPECIAL_CUSTOM_ANA_QUICKEST)
1916 {
1917 advancedNavArrayMode = OPTIMIZED_BY_TIME;
1918 }
1919
1920 if (advancedNavArrayMode != OPTIMIZED_BY_NONE && [player hasEquipmentItemProviding:@"EQ_ADVANCED_NAVIGATIONAL_ARRAY"])
1921 {
1922 OOSystemID planetNumber = [PLAYER systemID];
1923 OOSystemID destNumber = [PLAYER targetSystemID];
1924 if (routeInfo == nil || planetNumber != savedPlanetNumber || destNumber != savedDestNumber || advancedNavArrayMode != savedArrayMode)
1925 {
1926 [routeInfo release];
1927 routeInfo = [[UNIVERSE routeFromSystem:planetNumber toSystem:destNumber optimizedBy:advancedNavArrayMode] retain];
1928 savedPlanetNumber = planetNumber;
1929 savedDestNumber = destNumber;
1930 savedArrayMode = advancedNavArrayMode;
1931 }
1932 target = destNumber;
1933
1934 // if the ANA has been activated and we are in string input mode (i.e. planet search),
1935 // get out of it so that distance and time data can be displayed
1936 //if ([[[UNIVERSE gameView] typedString] length] > 0) [player clearPlanetSearchString];
1937
1938 if (routeInfo) routeExists = YES;
1939
1940 [self drawAdvancedNavArrayAtX:x+hoffset y:y+voffset z:z alpha:alpha usingRoute: (planetNumber != destNumber ? (id)routeInfo : nil) optimizedBy:advancedNavArrayMode zoom: zoom];
1941
1942 if (routeExists)
1943 {
1944 distance = [routeInfo oo_doubleForKey:@"distance"];
1945 time = [routeInfo oo_doubleForKey:@"time"];
1946 jumps = [routeInfo oo_intForKey:@"jumps"];
1947
1948 if (distance == 0.0 && planetNumber != destNumber)
1949 {
1950 // zero-distance double fix
1951 distance = 0.1;
1952 time = 0.01;
1953 }
1954 }
1955 }
1956 else
1957 {
1958 [self drawAdvancedNavArrayAtX:x+hoffset y:y+voffset z:z alpha:alpha usingRoute:nil optimizedBy:OPTIMIZED_BY_NONE zoom: zoom];
1959 }
1960 if (!routeExists)
1961 {
1962 NSPoint targetCoordinates = [systemManager getCoordinatesForSystem:target inGalaxy:galaxy_id];
1963
1964 distance = distanceBetweenPlanetPositions(targetCoordinates.x,targetCoordinates.y,galaxy_coordinates.x,galaxy_coordinates.y);
1965 if (distance == 0.0)
1966 {
1967 if (target != [PLAYER systemID])
1968 {
1969 // looking at the other half of a zero-distance double
1970 // distance is treated as 0.1 LY
1971 distance = 0.1;
1972 }
1973 }
1974 if ([player hasHyperspaceMotor] && distance <= [player fuel]/10.0)
1975 {
1976 time = distance * distance;
1977 }
1978 else
1979 {
1980 time = 0.0;
1981 }
1982 }
1983
1984 if ([player hasHyperspaceMotor])
1985 {
1986 // draw fuel range circle
1987 OOGL(GLScaledLineWidth(2.0f));
1988 [self setGLColorFromSetting:kGuiChartRangeColor defaultValue:[OOColor greenColor] alpha:alpha];
1989
1990 GLDrawOval(x + cu.x, y + cu.y, z, NSMakeSize((float)(fuel*hscale), 2*(float)(fuel*vscale)), 5);
1991 }
1992
1993
1994 // draw crosshairs over current location
1995 //
1996 [self setGLColorFromSetting:kGuiChartCrosshairColor defaultValue:[OOColor greenColor] alpha:alpha];
1997
1998 [self drawCrossHairsWithSize:12/zoom+2 x:x + cu.x y:y + cu.y z:z];
1999
2000
2001 // draw crosshairs over cursor
2002 //
2003 [self setGLColorFromSetting:kGuiChartCursorColor defaultValue:[OOColor redColor] alpha:alpha];
2004 cu = NSMakePoint((float)(hscale*cursor_coordinates.x+hoffset),(float)(vscale*cursor_coordinates.y+voffset));
2005 [self drawCrossHairsWithSize:7/zoom+2 x:x + cu.x y:y + cu.y z:z];
2006
2007 // draw marks and stars
2008 //
2009 OOGL(GLScaledLineWidth(1.5f));
2010 OOGL(glColor4f(1.0f, 1.0f, 0.75f, alpha)); // pale yellow
2011
2012 for (i = 0; i < num_nearby_systems; i++)
2013 {
2014 NSPoint sys_coordinates = [systemManager getCoordinatesForSystem:i inGalaxy:galaxy_id];
2015
2016 dx = fabs(chart_centre_coordinates.x - sys_coordinates.x);
2017 dy = fabs(chart_centre_coordinates.y - sys_coordinates.y);
2018
2020 continue;
2021
2022
2023 if (concealment[i] >= OO_SYSTEMCONCEALMENT_NOTHING) {
2024 // system is not known
2025 continue;
2026 }
2027
2028 NSDictionary *systemInfo = [systemManager getPropertiesForSystem:i inGalaxy:galaxy_id];
2029 float blob_factor = [guiUserSettings oo_floatForKey:kGuiChartCircleScale defaultValue:0.0017];
2030 float blob_size = (1.0f + blob_factor * [systemInfo oo_floatForKey:@"radius"])/zoom;
2031 if (blob_size < 0.5) blob_size = 0.5;
2032
2033 star.x = (float)(sys_coordinates.x * hscale + hoffset);
2034 star.y = (float)(sys_coordinates.y * vscale + voffset);
2035
2036 noNova = !nearby_systems[i].nova;
2037 NSAssert1(chart_mode <= OOLRC_MODE_TECHLEVEL, @"Long range chart mode %i out of range", (int)chart_mode);
2038
2039 NSArray *markers = [markedDestinations objectForKey:[NSNumber numberWithInt:i]];
2040 if (markers != nil) // is marked
2041 {
2042 GLfloat base_size = 0.5f * blob_size + 2.5f;
2043 [self drawSystemMarkers:markers atX:x+star.x andY:y+star.y andZ:z withAlpha:alpha andScale:base_size];
2044 }
2045
2046 if (concealment[i] >= OO_SYSTEMCONCEALMENT_NODATA) {
2047 // no system data available
2048 r = g = b = 0.7;
2049 OOGL(glColor4f(r, g, b, alpha));
2050 } else {
2051 switch (chart_mode)
2052 {
2053 case OOLRC_MODE_ECONOMY:
2054 if (EXPECT(noNova))
2055 {
2056 systemParameter = nearby_systems[i].eco;
2057 GLfloat ce1 = 1.0f - 0.125f * systemParameter;
2058 [self setGLColorFromSetting:[NSString stringWithFormat:kGuiChartEconomyUColor, (unsigned long)systemParameter]
2059 defaultValue:[OOColor colorWithRed:ce1 green:1.0f blue:0.0f alpha:1.0f]
2060 alpha:1.0];
2061 }
2062 else
2063 {
2064 r = g = b = 0.3;
2065 OOGL(glColor4f(r, g, b, alpha));
2066 }
2067 break;
2068 case OOLRC_MODE_GOVERNMENT:
2069 if (EXPECT(noNova))
2070 {
2071 systemParameter = nearby_systems[i].gov;
2072 [self setGLColorFromSetting:[NSString stringWithFormat:kGuiChartGovernmentUColor, (unsigned long)systemParameter]
2073 defaultValue:[OOColor colorWithRed:govcol[systemParameter*3] green:govcol[1+(systemParameter*3)] blue:govcol[2+(systemParameter*3)] alpha:1.0f]
2074 alpha:1.0];
2075 }
2076 else
2077 {
2078 r = g = b = 0.3;
2079 OOGL(glColor4f(r, g, b, alpha));
2080 }
2081 break;
2082 case OOLRC_MODE_TECHLEVEL:
2083 if (EXPECT(noNova))
2084 {
2085 systemParameter = nearby_systems[i].tec;
2086 r = 0.6;
2087 g = b = 0.20 + (0.05 * (GLfloat)systemParameter);
2088 }
2089 else
2090 {
2091 r = g = b = 0.3;
2092 }
2093 OOGL(glColor4f(r, g, b, alpha));
2094 break;
2095 case OOLRC_MODE_UNKNOWN:
2096 case OOLRC_MODE_SUNCOLOR:
2097 if (EXPECT(noNova))
2098 {
2099 r = g = b = 1.0;
2100 OOColor *sunColor = [OOColor colorWithDescription:[[UNIVERSE systemManager] getProperty:@"sun_color" forSystem:i inGalaxy:galaxy_id]];
2101 if (sunColor != nil) {
2102 [sunColor getRed:&r green:&g blue:&b alpha:&alpha];
2103 alpha = 1.0; // reset
2104 }
2105 }
2106 else
2107 {
2108 r = 1.0;
2109 g = 0.2;
2110 b = 0.0;
2111 }
2112 OOGL(glColor4f(r, g, b, alpha));
2113 break;
2114 }
2115 }
2116
2117 GLDrawFilledOval(x + star.x, y + star.y, z, NSMakeSize(blob_size,blob_size), 15);
2118 }
2119
2120 // draw found stars and captions
2121 //
2122 GLfloat systemNameScale = [guiUserSettings oo_floatForKey:kGuiChartLabelScale defaultValue:1.0];
2123
2124 OOGL(GLScaledLineWidth(1.5f));
2125 [self setGLColorFromSetting:kGuiChartMatchBoxColor defaultValue:[OOColor greenColor] alpha:alpha];
2126
2127 int n_matches = 0, foundIndex = -1;
2128
2129 for (i = 0; i < 256; i++) if (systemsFound[i])
2130 {
2131 if(foundSystem == n_matches) foundIndex = i;
2132 n_matches++;
2133 }
2134
2135 if (n_matches == 0)
2136 {
2137 foundSystem = 0;
2138 }
2139 else if (backgroundSpecial == GUI_BACKGROUND_SPECIAL_LONG_ANA_SHORTEST || backgroundSpecial == GUI_BACKGROUND_SPECIAL_LONG_ANA_QUICKEST || backgroundSpecial == GUI_BACKGROUND_SPECIAL_LONG)
2140 {
2141 // do nothing at this stage
2142 }
2143 else
2144 {
2145 for (i = 0; i < 256; i++)
2146 {
2147 if (concealment[i] >= OO_SYSTEMCONCEALMENT_NONAME)
2148 {
2149 continue;
2150 }
2151
2152 BOOL mark = systemsFound[i];
2153 float marker_size = 8.0/zoom;
2154 NSPoint sys_coordinates = [systemManager getCoordinatesForSystem:i inGalaxy:galaxy_id];
2155
2156 dx = fabs(chart_centre_coordinates.x - sys_coordinates.x);
2157 dy = fabs(chart_centre_coordinates.y - sys_coordinates.y);
2158
2159 if (mark && (dx <= zoom*(CHART_WIDTH_AT_MAX_ZOOM/2.0+CHART_CLIP_BORDER))&&(dy <= zoom*(CHART_HEIGHT_AT_MAX_ZOOM+CHART_CLIP_BORDER)))
2160 {
2161 star.x = (float)(sys_coordinates.x * hscale + hoffset);
2162 star.y = (float)(sys_coordinates.y * vscale + voffset);
2163 OOGLBEGIN(GL_LINE_LOOP);
2164 glVertex3f(x + star.x - marker_size, y + star.y - marker_size, z);
2165 glVertex3f(x + star.x + marker_size, y + star.y - marker_size, z);
2166 glVertex3f(x + star.x + marker_size, y + star.y + marker_size, z);
2167 glVertex3f(x + star.x - marker_size, y + star.y + marker_size, z);
2168 OOGLEND();
2169 if (i == foundIndex || n_matches == 1)
2170 {
2171 if (n_matches == 1) foundSystem = 0;
2172 if (zoom > CHART_ZOOM_SHOW_LABELS && advancedNavArrayMode == OPTIMIZED_BY_NONE)
2173 {
2174 [self setGLColorFromSetting:kGuiChartMatchLabelColor defaultValue:[OOColor cyanColor] alpha:alpha];
2175 OODrawString([UNIVERSE systemNameIndex:i] , x + star.x + 2.0, y + star.y - 10.0f, z, NSMakeSize(10*systemNameScale,10*systemNameScale));
2176 [self setGLColorFromSetting:kGuiChartMatchBoxColor defaultValue:[OOColor greenColor] alpha:alpha];
2177 }
2178 }
2179 else if (zoom > CHART_ZOOM_SHOW_LABELS)
2180 {
2181 OODrawString([UNIVERSE systemNameIndex:i] , x + star.x + 2.0, y + star.y - 10.0f, z, NSMakeSize(10*systemNameScale,10*systemNameScale));
2182 }
2183 }
2184 }
2185 }
2186
2187 // draw names
2188 //
2189// OOGL(glColor4f(1.0f, 1.0f, 0.0f, alpha)); // yellow
2190
2191 int targetIdx = -1;
2192 struct saved_system *sys;
2193 NSSize chSize = NSMakeSize(pixel_row_height*systemNameScale/zoom,pixel_row_height*systemNameScale/zoom);
2194
2195 double jumpRange = MAX_JUMP_RANGE * [PLAYER dialFuel];
2196 for (i = 0; i < num_nearby_systems; i++)
2197 {
2198 if (concealment[i] >= OO_SYSTEMCONCEALMENT_NONAME)
2199 {
2200 continue;
2201 }
2202
2203 sys = nearby_systems + i;
2204 NSPoint sys_coordinates = [systemManager getCoordinatesForSystem:sys->sysid inGalaxy:galaxy_id];
2205
2206 dx = fabs(chart_centre_coordinates.x - sys_coordinates.x);
2207 dy = fabs(chart_centre_coordinates.y - sys_coordinates.y);
2208
2210 continue;
2211 star.x = (float)(sys_coordinates.x * hscale + hoffset);
2212 star.y = (float)(sys_coordinates.y * vscale + voffset);
2213 if (sys->sysid == target) // not overlapping twin? (example: Divees & Tezabi in galaxy 5)
2214 {
2215 targetIdx = i; // we have a winner!
2216 }
2217
2218
2219
2220 if (zoom < CHART_ZOOM_SHOW_LABELS)
2221 {
2222 if (![player showInfoFlag]) // System's name
2223 {
2224
2225 d = distanceBetweenPlanetPositions(galaxy_coordinates.x, galaxy_coordinates.y, sys_coordinates.x, sys_coordinates.y);
2226 if (d <= jumpRange)
2227 {
2228 [self setGLColorFromSetting:kGuiChartLabelReachableColor defaultValue:[OOColor yellowColor] alpha:alpha];
2229 }
2230 else
2231 {
2232 [self setGLColorFromSetting:kGuiChartLabelColor defaultValue:[OOColor yellowColor] alpha:alpha];
2233
2234 }
2235
2236 OODrawString(sys->p_name, x + star.x + 2.0, y + star.y, z, chSize);
2237 }
2238 else if (EXPECT(sys->gov >= 0)) // Not a nova? Show the info.
2239 {
2240 if (concealment[i] >= OO_SYSTEMCONCEALMENT_NODATA)
2241 {
2242 [self setGLColorFromSetting:kGuiChartLabelColor defaultValue:[OOColor yellowColor] alpha:alpha];
2243 OODrawHilightedString(@"???", x + star.x + 2.0, y + star.y, z, chSize);
2244 }
2245 else
2246 {
2247 OODrawPlanetInfo(sys->gov, sys->eco, sys->tec, x + star.x + 2.0, y + star.y + 2.0, z, chSize);
2248 }
2249 }
2250 }
2251 }
2252
2253 // highlight the name of the currently selected system
2254 // (needed to get things right in closely-overlapping systems)
2255 if( targetIdx != -1 && zoom <= CHART_ZOOM_SHOW_LABELS)
2256 {
2257 if (concealment[targetIdx] < OO_SYSTEMCONCEALMENT_NONAME)
2258 {
2259 sys = nearby_systems + targetIdx;
2260 NSPoint sys_coordinates = [systemManager getCoordinatesForSystem:sys->sysid inGalaxy:galaxy_id];
2261
2262 star.x = (float)(sys_coordinates.x * hscale + hoffset);
2263 star.y = (float)(sys_coordinates.y * vscale + voffset);
2264
2265 if (![player showInfoFlag])
2266 {
2267 d = distanceBetweenPlanetPositions(galaxy_coordinates.x, galaxy_coordinates.y, sys_coordinates.x, sys_coordinates.y);
2268 if (d <= jumpRange)
2269 {
2270 [self setGLColorFromSetting:kGuiChartLabelReachableColor defaultValue:[OOColor yellowColor] alpha:alpha];
2271 }
2272 else
2273 {
2274 [self setGLColorFromSetting:kGuiChartLabelColor defaultValue:[OOColor yellowColor] alpha:alpha];
2275
2276 }
2277
2278 OODrawHilightedString(sys->p_name, x + star.x + 2.0, y + star.y, z, chSize);
2279 }
2280 else if (sys->gov >= 0) // Not a nova? Show the info.
2281 {
2282 if (concealment[targetIdx] >= OO_SYSTEMCONCEALMENT_NODATA)
2283 {
2284 [self setGLColorFromSetting:kGuiChartLabelColor defaultValue:[OOColor yellowColor] alpha:alpha];
2285 OODrawHilightedString(@"???", x + star.x + 2.0, y + star.y, z, chSize);
2286 }
2287 else
2288 {
2289 OODrawHilightedPlanetInfo(sys->gov, sys->eco, sys->tec, x + star.x + 2.0, y + star.y + 2.0, z, chSize);
2290 }
2291 }
2292 }
2293 }
2294
2295 OOGUITabSettings tab_stops;
2296 tab_stops[0] = 0;
2297 tab_stops[1] = 96;
2298 tab_stops[2] = 288;
2299 [self overrideTabs:tab_stops from:kGuiChartTraveltimeTabs length:3];
2300 [self setTabStops:tab_stops];
2301 NSString *targetName = [[UNIVERSE getSystemName:target] retain];
2302
2303 // distance-f & est-travel-time-f are identical between short & long range charts in standard Oolite, however can be alterered separately via OXPs
2304 NSString *travelDistLine = @"";
2305 if (distance > 0)
2306 {
2307 travelDistLine = OOExpandKey(@"long-range-chart-distance", distance);
2308 }
2309 NSString *travelTimeLine = @"";
2310 if (time > 0)
2311 {
2312 travelTimeLine = OOExpandKey(@"long-range-chart-est-travel-time", time);
2313 }
2314
2315 if(concealment[target] < OO_SYSTEMCONCEALMENT_NONAME)
2316 {
2317 [self setArray:[NSArray arrayWithObjects:targetName, travelDistLine,travelTimeLine,nil] forRow:textRow];
2318 }
2319 else
2320 {
2321 [self setArray:[NSArray arrayWithObjects:@"", travelDistLine,travelTimeLine,nil] forRow:textRow];
2322 }
2323 if ([PLAYER guiScreen] == GUI_SCREEN_SHORT_RANGE_CHART)
2324 {
2325 if (jumps > 0)
2326 {
2327 [self setArray:[NSArray arrayWithObjects: @"", OOExpandKey(@"short-range-chart-jumps", jumps), nil] forRow: textRow + 1];
2328 }
2329 else
2330 {
2331 [self setArray:[NSArray array] forRow: textRow + 1];
2332 }
2333 }
2334 [targetName release];
2335
2336 // draw planet info circle
2337 OOGL(GLScaledLineWidth(2.0f));
2338 [self setGLColorFromSetting: kGuiChartInfoMarkerColor defaultValue:[OOColor blueColor] alpha:alpha];
2339 cu = NSMakePoint((float)(hscale*info_system_coordinates.x+hoffset),(float)(vscale*info_system_coordinates.y+voffset));
2340 GLDrawOval(x + cu.x, y + cu.y, z, NSMakeSize(6.0f/zoom+2.0f, 6.0f/zoom+2.0f), 5);
2341
2342 // disable draw clipping
2343 OOGL(glDisable(GL_SCISSOR_TEST));
2344
2345 // Draw bottom divider
2346 [self setGLColorFromSetting:kGuiScreenDividerColor defaultValue:[OOColor colorWithWhite:0.75 alpha:1.0] alpha:alpha];
2347 OOGLBEGIN(GL_QUADS);
2348 glVertex3f(x + 0, (float)(y + size_in_pixels.height - (textRow-1)*MAIN_GUI_ROW_HEIGHT - pixel_title_size.height), z);
2349 glVertex3f(x + size_in_pixels.width, (GLfloat)(y + size_in_pixels.height - (textRow-1)*MAIN_GUI_ROW_HEIGHT - pixel_title_size.height), z);
2350 glVertex3f(x + size_in_pixels.width, (GLfloat)(y + size_in_pixels.height - (textRow-1)*MAIN_GUI_ROW_HEIGHT - pixel_title_size.height - 2), z);
2351 glVertex3f(x + 0, (GLfloat)(y + size_in_pixels.height - (textRow-1)*MAIN_GUI_ROW_HEIGHT - pixel_title_size.height - 2), z);
2352 OOGLEND();
2353}
@ GUI_BACKGROUND_SPECIAL_CUSTOM_ANA_QUICKEST
@ GUI_BACKGROUND_SPECIAL_SHORT_ANA_SHORTEST
@ GUI_BACKGROUND_SPECIAL_LONG
@ GUI_BACKGROUND_SPECIAL_LONG_ANA_SHORTEST
@ GUI_BACKGROUND_SPECIAL_SHORT_ANA_QUICKEST
@ GUI_BACKGROUND_SPECIAL_LONG_ANA_QUICKEST
@ GUI_BACKGROUND_SPECIAL_CUSTOM_ANA_SHORTEST
OOGUITabStop OOGUITabSettings[GUI_MAX_COLUMNS]
#define MAIN_GUI_ROW_HEIGHT
static BOOL _refreshStarChart
void OODrawHilightedString(NSString *text, GLfloat x, GLfloat y, GLfloat z, NSSize siz)
void OODrawHilightedPlanetInfo(int gov, int eco, int tec, GLfloat x, GLfloat y, GLfloat z, NSSize siz)
void OODrawPlanetInfo(int gov, int eco, int tec, GLfloat x, GLfloat y, GLfloat z, NSSize siz)
#define EXPECT(x)
void GLDrawFilledOval(GLfloat x, GLfloat y, GLfloat z, NSSize siz, GLfloat step)
Definition OOOpenGL.m:165
void GLScaledLineWidth(GLfloat width)
Definition OOOpenGL.m:218
void GLDrawOval(GLfloat x, GLfloat y, GLfloat z, NSSize siz, GLfloat step)
Definition OOOpenGL.m:155
#define OOExpandKey(key,...)
@ OO_SYSTEMCONCEALMENT_NODATA
OOLongRangeChartMode
Definition OOTypes.h:50
@ OPTIMIZED_BY_TIME
Definition OOTypes.h:36
#define CHART_SCREEN_VERTICAL_CENTRE
#define CHART_SCREEN_VERTICAL_CENTRE_COMPACT
#define CHART_MAX_ZOOM
@ GUI_ROW_CHART_SYSTEM_COMPACT
@ GUI_ROW_CHART_SYSTEM
#define CHART_CLIP_BORDER
OOColor * colorWithRed:green:blue:alpha:(float red,[green] float green,[blue] float blue,[alpha] float alpha)
Definition OOColor.m:95
OOColor * blueColor()
Definition OOColor.m:280
OOLongRangeChartMode longRangeChartMode
OOGalaxyID galaxyNumber()
OORouteType ANAMode()
NSPoint galaxy_coordinates
NSPoint cursor_coordinates
OOScalar chart_zoom
OOSystemID infoSystemID()
NSPoint adjusted_chart_centre()
NSDictionary * markedDestinations()
GLfloat dialFuel()

References _refreshStarChart, PlayerEntity::adjusted_chart_centre, PlayerEntity::ANAMode, OOColor::blueColor, CHART_CLIP_BORDER, CHART_HEIGHT_AT_MAX_ZOOM, CHART_MAX_ZOOM, CHART_SCREEN_VERTICAL_CENTRE, CHART_SCREEN_VERTICAL_CENTRE_COMPACT, CHART_WIDTH_AT_MAX_ZOOM, PlayerEntity::chart_zoom, CHART_ZOOM_SHOW_LABELS, OOColor::colorWithDescription:, OOColor::colorWithRed:green:blue:alpha:, OOColor::colorWithWhite:alpha:, PlayerEntity::cursor_coordinates, OOColor::cyanColor, PlayerEntity::dialFuel, distanceBetweenPlanetPositions(), GuiDisplayGen::drawAdvancedNavArrayAtX:y:z:alpha:usingRoute:optimizedBy:zoom:, GuiDisplayGen::drawCrossHairsWithSize:x:y:z:, GuiDisplayGen::drawSystemMarkers:atX:andY:andZ:withAlpha:andScale:, EXPECT, EXPECT_NOT, PlayerEntity::galaxy_coordinates, PlayerEntity::galaxyNumber, OOSystemDescriptionManager::getCoordinatesForSystem:inGalaxy:, OOSystemDescriptionManager::getPropertiesForSystem:inGalaxy:, OOColor::getRed:green:blue:alpha:, GLDrawFilledOval(), GLDrawOval(), GLScaledLineWidth(), OOColor::greenColor, GUI_BACKGROUND_SPECIAL_CUSTOM_ANA_QUICKEST, GUI_BACKGROUND_SPECIAL_CUSTOM_ANA_SHORTEST, GUI_BACKGROUND_SPECIAL_LONG, GUI_BACKGROUND_SPECIAL_LONG_ANA_QUICKEST, GUI_BACKGROUND_SPECIAL_LONG_ANA_SHORTEST, GUI_BACKGROUND_SPECIAL_SHORT_ANA_QUICKEST, GUI_BACKGROUND_SPECIAL_SHORT_ANA_SHORTEST, GUI_ROW_CHART_SYSTEM, GUI_ROW_CHART_SYSTEM_COMPACT, PlayerEntity::infoSystemID, PlayerEntity::longRangeChartMode, MAIN_GUI_ROW_HEIGHT, PlayerEntity::markedDestinations, MAX_JUMP_RANGE, nil, OO_SYSTEMCONCEALMENT_NODATA, OO_SYSTEMCONCEALMENT_NONAME, OO_SYSTEMCONCEALMENT_NOTHING, OODrawHilightedPlanetInfo(), OODrawHilightedString(), OODrawPlanetInfo(), OODrawString(), OOExpandKey, OOGL, OOGLBEGIN, OOGLEND, OPTIMIZED_BY_JUMPS, OPTIMIZED_BY_NONE, OPTIMIZED_BY_TIME, GuiDisplayGen::overrideTabs:from:length:, PLAYER, OOColor::redColor, GuiDisplayGen::setArray:forRow:, GuiDisplayGen::setGLColorFromSetting:defaultValue:alpha:, GuiDisplayGen::setTabStops:, UNIVERSE, x, y, and OOColor::yellowColor.

Here is the call graph for this function:

◆ drawSystemMarker:atX:andY:andZ:withAlpha:andScale:

- (void) drawSystemMarker: (NSDictionary *) marker
atX: (GLfloat) x
andY: (GLfloat) y
andZ: (GLfloat) z
withAlpha: (GLfloat) alpha
andScale: (GLfloat) scale 

Extends class GuiDisplayGen.

Definition at line 2367 of file GuiDisplayGen.m.

2367 :(NSDictionary *)marker atX:(GLfloat)x andY:(GLfloat)y andZ:(GLfloat)z withAlpha:(GLfloat)alpha andScale:(GLfloat)scale
2368{
2369 NSString *colorDesc = [marker oo_stringForKey:@"markerColor" defaultValue:@"redColor"];
2370 OORGBAComponents color = [[OOColor colorWithDescription:colorDesc] rgbaComponents];
2371
2372 OOGL(glColor4f(color.r, color.g, color.b, alpha)); // red
2373 GLfloat mark_size = [marker oo_floatForKey:@"markerScale" defaultValue:1.0];
2374 if (mark_size > 2.0)
2375 {
2376 mark_size = 2.0;
2377 }
2378 else if (mark_size < 0.5)
2379 {
2380 mark_size = 0.5;
2381 }
2382 mark_size *= scale;
2383
2384 NSString *shape = [marker oo_stringForKey:@"markerShape" defaultValue:@"MARKER_X"];
2385
2386 OOGLBEGIN(GL_LINES);
2387 if ([shape isEqualToString:@"MARKER_X"])
2388 {
2389 glVertex3f(x - mark_size, y - mark_size, z);
2390 glVertex3f(x + mark_size, y + mark_size, z);
2391 glVertex3f(x - mark_size, y + mark_size, z);
2392 glVertex3f(x + mark_size, y - mark_size, z);
2393 }
2394 else if ([shape isEqualToString:@"MARKER_PLUS"])
2395 {
2396 mark_size *= 1.4; // match volumes
2397 glVertex3f(x, y - mark_size, z);
2398 glVertex3f(x, y + mark_size, z);
2399 glVertex3f(x - mark_size, y, z);
2400 glVertex3f(x + mark_size, y, z);
2401 }
2402 else if ([shape isEqualToString:@"MARKER_SQUARE"])
2403 {
2404 glVertex3f(x - mark_size, y - mark_size, z);
2405 glVertex3f(x - mark_size, y + mark_size, z);
2406 glVertex3f(x - mark_size, y + mark_size, z);
2407 glVertex3f(x + mark_size, y + mark_size, z);
2408 glVertex3f(x + mark_size, y + mark_size, z);
2409 glVertex3f(x + mark_size, y - mark_size, z);
2410 glVertex3f(x + mark_size, y - mark_size, z);
2411 glVertex3f(x - mark_size, y - mark_size, z);
2412 }
2413 else if ([shape isEqualToString:@"MARKER_DIAMOND"])
2414 {
2415 mark_size *= 1.4; // match volumes
2416 glVertex3f(x, y - mark_size, z);
2417 glVertex3f(x - mark_size, y, z);
2418 glVertex3f(x - mark_size, y, z);
2419 glVertex3f(x, y + mark_size, z);
2420 glVertex3f(x, y + mark_size, z);
2421 glVertex3f(x + mark_size, y, z);
2422 glVertex3f(x + mark_size, y, z);
2423 glVertex3f(x, y - mark_size, z);
2424 }
2425 OOGLEND();
2426}
OORGBAComponents rgbaComponents()
Definition OOColor.m:379

References OOColor::colorWithDescription:, OOGL, OOGLBEGIN, OOGLEND, OOColor::rgbaComponents, x, and y.

Referenced by drawSystemMarkers:atX:andY:andZ:withAlpha:andScale:.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ drawSystemMarkers:atX:andY:andZ:withAlpha:andScale:

- (void) drawSystemMarkers: (NSArray *) marker
atX: (GLfloat) x
andY: (GLfloat) y
andZ: (GLfloat) z
withAlpha: (GLfloat) alpha
andScale: (GLfloat) scale 

Extends class GuiDisplayGen.

Definition at line 2356 of file GuiDisplayGen.m.

2356 :(NSArray *)markers atX:(GLfloat)x andY:(GLfloat)y andZ:(GLfloat)z withAlpha:(GLfloat)alpha andScale:(GLfloat)scale
2357{
2358 NSEnumerator *mEnum;
2359 NSDictionary *marker;
2360 for (mEnum = [markers objectEnumerator]; (marker = [mEnum nextObject]); )
2361 {
2362 [self drawSystemMarker:marker atX:x andY:y andZ:z withAlpha:alpha andScale:scale];
2363 }
2364}

References GuiDisplayGen::drawSystemMarker:atX:andY:andZ:withAlpha:andScale:.

Referenced by drawStarChart:x:y:z:alpha:.

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this category was generated from the following file: