this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #1120 from asiekierka/surf-paging

surf: add support for using left/right or page up/page down to scroll…

authored by

Vadim Grigoruk and committed by
GitHub
94786b3e 4ca9a2b7

+35 -18
+34 -18
src/surf.c
··· 286 286 { 287 287 const char* name = surf->menu.items[i].label; 288 288 289 - s32 ym = Height * i + y - surf->menu.pos*MENU_HEIGHT - surf->menu.anim + (MENU_HEIGHT - TIC_FONT_HEIGHT)/2; 289 + s32 ym = Height * i + y - surf->menu.pos*MENU_HEIGHT - (surf->menu.anim * surf->menu.anim_target) + (MENU_HEIGHT - TIC_FONT_HEIGHT)/2; 290 290 291 291 if (ym > (-(TIC_FONT_HEIGHT + 1)) && ym <= TIC80_HEIGHT) { 292 292 tic_api_print(tic, name, x + MAIN_OFFSET, ym + 1, tic_color_0, false, 1, false); ··· 686 686 687 687 } 688 688 689 - if(surf->menu.anim) 689 + if(surf->menu.anim > 0) 690 690 { 691 - if(surf->menu.anim < 0) surf->menu.anim--; 692 - if(surf->menu.anim > 0) surf->menu.anim++; 691 + surf->menu.anim++; 693 692 694 - if(surf->menu.anim <= -Frames) 693 + if(surf->menu.anim >= Frames) 695 694 { 695 + s32 old_pos = surf->menu.pos; 696 + 696 697 surf->menu.anim = 0; 697 - surf->menu.pos--; 698 + surf->menu.pos += surf->menu.anim_target; 698 699 699 700 if(surf->menu.pos < 0) 700 - surf->menu.pos = surf->menu.count-1; 701 - } 702 - 703 - if(surf->menu.anim >= Frames) 704 - { 705 - surf->menu.anim = 0; 706 - surf->menu.pos++; 707 - 708 - if(surf->menu.pos >= surf->menu.count) 701 + { 709 702 surf->menu.pos = 0; 703 + } 704 + else if(surf->menu.pos >= surf->menu.count) 705 + { 706 + if(old_pos == surf->menu.count - 1) 707 + surf->menu.pos = 0; 708 + else 709 + surf->menu.pos = surf->menu.count - 1; 710 + } 710 711 } 711 712 } 712 713 } ··· 727 728 728 729 if(tic_api_btnp(tic, Up, Hold, Period)) 729 730 { 730 - surf->menu.anim = -1; 731 + surf->menu.anim = 1; 732 + surf->menu.anim_target = -1; 731 733 732 734 playSystemSfx(2); 733 735 } 734 - 735 - if(tic_api_btnp(tic, Down, Hold, Period)) 736 + else if(tic_api_btnp(tic, Down, Hold, Period)) 736 737 { 737 738 surf->menu.anim = 1; 739 + surf->menu.anim_target = 1; 738 740 739 741 playSystemSfx(2); 742 + } 743 + else if( 744 + tic_api_btnp(tic, Left, Hold, Period) 745 + || tic_api_keyp(tic, tic_key_pageup, Hold, Period)) 746 + { 747 + surf->menu.anim = 1; 748 + surf->menu.anim_target = -5; 749 + } 750 + else if( 751 + tic_api_btnp(tic, Right, Hold, Period) 752 + || tic_api_keyp(tic, tic_key_pagedown, Hold, Period)) 753 + { 754 + surf->menu.anim = 1; 755 + surf->menu.anim_target = 5; 740 756 } 741 757 742 758 if(tic_api_btnp(tic, A, -1, -1))
+1
src/surf.h
··· 40 40 { 41 41 s32 pos; 42 42 s32 anim; 43 + s32 anim_target; 43 44 struct MenuItem* items; 44 45 s32 count; 45 46 } menu;