@@ -18,6 +18,12 @@ class $modify(MyCCMenuItemSpriteExtra, CCMenuItemSpriteExtra) {
1818 }
1919 CCMenuItemSpriteExtra::selected ();
2020 }
21+
22+ void activate () {
23+ log::debug (" {}" ,rect ().size );
24+ // log::debug("{}",m_fSizeMult);
25+ CCMenuItemSpriteExtra::activate ();
26+ }
2127};
2228
2329/*
@@ -49,20 +55,17 @@ class $modify(MyEditLevelLayer, EditLevelLayer) {
4955 bool init (GJGameLevel* p1){
5056 if (!EditLevelLayer::init (p1)) return false ;
5157 auto menu = static_cast <CCMenu*>(getChildByID (" level-actions-menu" ));
58+ auto ffff = static_cast <CCMenu*>(getChildByID (" level-edit-menu" ));
5259 if (!menu) {
5360 log::error (" failed to find level-actions-menu" );
5461 return true ;
5562 }
56- auto deleteBtn = static_cast <MyCCMenuItemSpriteExtra*>(menu->getChildByID (" delete-button" ));
57- if (!deleteBtn){
58- log::error (" failed to find delete-button" );
59- return true ;
60- }
63+
6164
6265
6366 auto frames = CCArray::create ();
6467 frames->retain ();
65- //
68+
6669 for (int i = ' A' ; i<=' T' ; i++) { // the most terrible code ever
6770 auto frameName = fmt::format (" HoldLoading{}.png" _spr, static_cast <char >(i));
6871 log::debug (" {}" ,frameName);
@@ -72,50 +75,60 @@ class $modify(MyEditLevelLayer, EditLevelLayer) {
7275 log::warn (" Failed to get the frame {}" , frameName);
7376 }
7477 frames->addObject (frame);
75-
7678 // m_fields->m_animation->addSpriteFrame(CCSpriteFrameCache::get()->spriteFrameByName(ahhh));
7779 }
78-
7980 auto animation = CCAnimation::createWithSpriteFrames (frames, 0 .1f );
8081
8182 // m_fields->m_animate = CCAnimate::create(m_fields->m_animation);
8283 m_fields->m_animation = animation;
8384 m_fields->m_frames =frames;
84- auto gif = CCAnimatedSprite::createWithSpriteFrame (static_cast <CCSpriteFrame*>(frames->objectAtIndex (5 )));
85- auto fs =animation->getDuration ();
86-
85+
86+ // auto fs =animation->getDuration();
8787
88- auto selectSprite = CircleButtonSprite::create (gif, CircleBaseColor::Green, CircleBaseSize::Medium);
89- // selectSprite->setTopRelativeScale(0.9);
9088
89+ MyEditLevelLayer::registerBtn (" help-button" , menu);
90+ MyEditLevelLayer::registerBtn (" delete-button" , menu);
91+ // MyEditLevelLayer::registerBtn("edit-button", ffff, CircleBaseSize::Large);
92+ MyEditLevelLayer::registerBtn (" play-button" , ffff, CircleBaseSize::Large);
93+
94+ return true ;
95+ }
9196
97+ void registerBtn (std::string_view id,CCMenu* menu) {
98+ registerBtn (id, menu, CircleBaseSize::Medium);
99+ }
92100
93- deleteBtn->setSelectedImage (selectSprite);
94- // m_fields->m_deleteCallback = deleteBtn->m_pfnSelector;
95- deleteBtn->setUserObject (new BtnParameters (deleteBtn->m_pfnSelector ));
101+ void registerBtn (std::string_view id, CCMenu* menu, CircleBaseSize size){
102+ auto gif = CCAnimatedSprite::createWithSpriteFrame (static_cast <CCSpriteFrame*>(m_fields->m_frames ->objectAtIndex (5 )));
103+ auto selectSprite = CircleButtonSprite::create (gif, CircleBaseColor::Green, size);
104+ auto button = static_cast <MyCCMenuItemSpriteExtra*>(menu->getChildByID (id));
105+ if (!button){
106+ log::error (" failed to find delete-button" );
107+ return ;
108+ }
109+ button->setSelectedImage (selectSprite);
110+ button->setUserObject (new BtnParameters (button->m_pfnSelector ));
96111
97-
98- deleteBtn->m_pfnSelector = menu_selector (MyEditLevelLayer::btnActivate);
99- (deleteBtn->m_fields )->m_selectCallback = menu_selector (MyEditLevelLayer::btnSelect);
100- return true ;
112+ button->m_pfnSelector = menu_selector (MyEditLevelLayer::btnActivate);
113+ (button->m_fields )->m_selectCallback = menu_selector (MyEditLevelLayer::btnSelect);
101114 }
102115
103116 void btnActivate (CCObject* sender) {
104- auto deleteBtn = static_cast <CCMenuItemSpriteExtra*>(sender);
105- auto params = typeinfo_cast<BtnParameters*>(deleteBtn ->getUserObject ());
117+ auto button = static_cast <CCMenuItemSpriteExtra*>(sender);
118+ auto params = typeinfo_cast<BtnParameters*>(button ->getUserObject ());
106119 if (params && params->m_timer .elapsed () > 500 ) {
107- ((deleteBtn ->m_pListener )->*(params->m_originalCallback ))(this );
120+ ((button ->m_pListener )->*(params->m_originalCallback ))(this );
108121 }
109122 }
110123
111124 void btnSelect (CCObject* sender){
112- auto deleteBtn = static_cast <CCMenuItemSpriteExtra*>(sender);
113- auto params = typeinfo_cast<BtnParameters*>(deleteBtn ->getUserObject ());
125+ auto button = static_cast <CCMenuItemSpriteExtra*>(sender);
126+ auto params = typeinfo_cast<BtnParameters*>(button ->getUserObject ());
114127 if (params){
115128 params->m_timer .reset ();;
116129 }
117130
118- CircleButtonSprite* sprite = typeinfo_cast<CircleButtonSprite*>(deleteBtn ->getSelectedImage ());
131+ CircleButtonSprite* sprite = typeinfo_cast<CircleButtonSprite*>(button ->getSelectedImage ());
119132 if (sprite) {
120133 auto animSprite = static_cast <CCAnimatedSprite*>(sprite->getTopNode ());
121134 if (animSprite) {
0 commit comments