diff --git a/src/Core/Entities/PlayerEntityContracts.m b/src/Core/Entities/PlayerEntityContracts.m index 82394c11..1403a373 100644 --- a/src/Core/Entities/PlayerEntityContracts.m +++ b/src/Core/Entities/PlayerEntityContracts.m @@ -1153,8 +1153,13 @@ for (unsigned i=0;i 0) { [gui setColor:scrollColor forRow:MANIFEST_SCREEN_ROW_BACK]; @@ -1295,21 +1300,21 @@ for (unsigned i=0;i 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]; diff --git a/src/Core/Entities/PlayerEntityControls.m b/src/Core/Entities/PlayerEntityControls.m index 2097bfb3..f2abf334 100644 --- a/src/Core/Entities/PlayerEntityControls.m +++ b/src/Core/Entities/PlayerEntityControls.m @@ -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]; diff --git a/src/Core/GuiDisplayGen.h b/src/Core/GuiDisplayGen.h index 9d3ff25c..abb4aa52 100644 --- a/src/Core/GuiDisplayGen.h +++ b/src/Core/GuiDisplayGen.h @@ -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; diff --git a/src/Core/GuiDisplayGen.m b/src/Core/GuiDisplayGen.m index 05ebcde5..481e6ebb 100644 --- a/src/Core/GuiDisplayGen.m +++ b/src/Core/GuiDisplayGen.m @@ -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; + } }