@@ -6,12 +6,20 @@ class $modify(ProBoomScrollLayer, BoomScrollLayer) {
66
77 struct Fields {
88 std::unordered_map<CCSprite*, CCMenuItemSpriteExtra*> m_buttons;
9+
10+ int m_currentPage = 0 ;
911 };
1012
1113 void onDot (CCObject* sender) {
1214 int page = static_cast <CCNode*>(sender)->getTag ();
1315
14- LevelEditorLayer::get () || GameManager::get ()->getGameVariable (" 0168" )
16+ auto f = m_fields.self ();
17+
18+ if (page == f->m_currentPage ) return ;
19+
20+ instantMoveToPage (page + (page > f->m_currentPage ? -1 : 1 ));
21+
22+ LevelEditorLayer::get () || GameManager::get ()->getGameVariable (" 0168" )
1523 ? instantMoveToPage (page)
1624 : moveToPage (page);
1725 }
@@ -36,9 +44,13 @@ class $modify(ProBoomScrollLayer, BoomScrollLayer) {
3644
3745 auto f = m_fields.self ();
3846
47+ int page = 0 ;
48+
3949 for (CCSprite* dot : dots) {
4050 if (!f->m_buttons .contains (dot)) continue ;
4151
52+ page++;
53+
4254 dot->setVisible (false );
4355
4456 CCMenuItemSpriteExtra* btn = f->m_buttons .at (dot);
@@ -47,6 +59,9 @@ class $modify(ProBoomScrollLayer, BoomScrollLayer) {
4759 btn->setPosition (dot->getPosition ());
4860 spr->setScale (dot->getScale ());
4961 spr->setColor (dot->getColor ());
62+
63+ if (dot->getColor () == ccc3 (255 , 255 , 255 ))
64+ f->m_currentPage = page;
5065 }
5166 }
5267
0 commit comments