Fix bugs with manifest screen display when HUD is off
Also fix signedness issue which somehow none of our compilers spotted for years.master
parent
2f96aff016
commit
edfc01e272
|
@ -1153,8 +1153,13 @@ for (unsigned i=0;i<amount;i++)
|
|||
OOGUIRow cargoRow = 2;
|
||||
OOGUIRow missionsRow = 2;
|
||||
|
||||
OOGUIRow nextPageRow = MANIFEST_SCREEN_ROW_NEXT;
|
||||
// show extra lines if no HUD is displayed.
|
||||
if ([[self hud] isHidden]) max_rows += 7;
|
||||
if ([[self hud] isHidden] || [[self hud] allowBigGui])
|
||||
{
|
||||
max_rows += 7;
|
||||
nextPageRow += 7;
|
||||
}
|
||||
|
||||
NSUInteger mmRows = 0;
|
||||
id mmEntry = nil;
|
||||
|
@ -1286,7 +1291,7 @@ for (unsigned i=0;i<amount;i++)
|
|||
if (multi_page)
|
||||
{
|
||||
OOGUIRow r_start = MANIFEST_SCREEN_ROW_BACK;
|
||||
OOGUIRow r_end = MANIFEST_SCREEN_ROW_NEXT;
|
||||
OOGUIRow r_end = nextPageRow;
|
||||
if (page_offset > 0)
|
||||
{
|
||||
[gui setColor:scrollColor forRow:MANIFEST_SCREEN_ROW_BACK];
|
||||
|
@ -1295,21 +1300,21 @@ for (unsigned i=0;i<amount;i++)
|
|||
else
|
||||
{
|
||||
[gui setColor:noScrollColor forRow:MANIFEST_SCREEN_ROW_BACK];
|
||||
r_start = MANIFEST_SCREEN_ROW_NEXT;
|
||||
r_start = nextPageRow;
|
||||
}
|
||||
[gui setArray:[NSArray arrayWithObjects:DESC(@"gui-back"), @" <-- ",nil] forRow:MANIFEST_SCREEN_ROW_BACK];
|
||||
|
||||
if (total_rows > max_rows + page_offset)
|
||||
{
|
||||
[gui setColor:scrollColor forRow:MANIFEST_SCREEN_ROW_NEXT];
|
||||
[gui setKey:GUI_KEY_OK forRow:MANIFEST_SCREEN_ROW_NEXT];
|
||||
[gui setColor:scrollColor forRow:nextPageRow];
|
||||
[gui setKey:GUI_KEY_OK forRow:nextPageRow];
|
||||
}
|
||||
else
|
||||
{
|
||||
[gui setColor:noScrollColor forRow:MANIFEST_SCREEN_ROW_NEXT];
|
||||
[gui setColor:noScrollColor forRow:nextPageRow];
|
||||
r_end = MANIFEST_SCREEN_ROW_BACK;
|
||||
}
|
||||
[gui setArray:[NSArray arrayWithObjects:DESC(@"gui-more"), @" --> ",nil] forRow:MANIFEST_SCREEN_ROW_NEXT];
|
||||
[gui setArray:[NSArray arrayWithObjects:DESC(@"gui-more"), @" --> ",nil] forRow:nextPageRow];
|
||||
|
||||
[gui setSelectableRange:NSMakeRange(r_start,r_end+1-r_start)];
|
||||
[gui setSelectedRow:r_start];
|
||||
|
|
|
@ -2477,12 +2477,16 @@ static NSTimeInterval time_last_frame;
|
|||
}
|
||||
if ([gameView isDown:key_gui_arrow_right])
|
||||
{
|
||||
|
||||
OOGUIRow nextRow = MANIFEST_SCREEN_ROW_NEXT;
|
||||
if ([[self hud] isHidden] || [[self hud] allowBigGui])
|
||||
{
|
||||
nextRow += 7;
|
||||
}
|
||||
if ((!leftRightKeyPressed)||(script_time > timeLastKeyPress + KEY_REPEAT_INTERVAL))
|
||||
{
|
||||
if ([[gui keyForRow:MANIFEST_SCREEN_ROW_NEXT] isEqual:GUI_KEY_OK])
|
||||
if ([[gui keyForRow:nextRow] isEqual:GUI_KEY_OK])
|
||||
{
|
||||
[gui setSelectedRow:MANIFEST_SCREEN_ROW_NEXT];
|
||||
[gui setSelectedRow:nextRow];
|
||||
[self playMenuPageNext];
|
||||
[gui setStatusPage:+1];
|
||||
[self setGuiToManifestScreen];
|
||||
|
|
|
@ -356,7 +356,7 @@ typedef OOGUITabStop OOGUITabSettings[GUI_MAX_COLUMNS];
|
|||
|
||||
- (int) drawGUI:(GLfloat) alpha drawCursor:(BOOL) drawCursor;
|
||||
- (void) drawGUIBackground;
|
||||
- (void) setStatusPage:(NSUInteger) pageNum;
|
||||
- (void) setStatusPage:(NSInteger) pageNum;
|
||||
- (NSUInteger) statusPage;
|
||||
- (void) refreshStarChart;
|
||||
- (void) setStarChartTitle;
|
||||
|
|
|
@ -1138,12 +1138,16 @@ static OOTextureSprite *NewTextureSpriteWithDescriptor(NSDictionary *descriptor)
|
|||
}
|
||||
|
||||
|
||||
- (void) setStatusPage:(NSUInteger)pageNum
|
||||
- (void) setStatusPage:(NSInteger)pageNum
|
||||
{
|
||||
if (pageNum==0)
|
||||
if (pageNum==0 || (pageNum < 0 && -pageNum >= statusPage))
|
||||
{
|
||||
statusPage=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
statusPage += pageNum;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue