33#include < Geode/modify/CCKeyboardDispatcher.hpp>
44#include " psapi.h"
55
6- class $modify(MyCCKeyboardDispatcher, CCKeyboardDispatcher) {
7-
8- bool dispatchKeyboardMSG (enumKeyCodes key, bool down, bool arr) {
9-
10- if (PlayLayer* playLayer = PlayLayer::get ()){
11- if (key == KEY_F3 && down && !arr){
12- GameManager* gm = GameManager::get ();
13- if (CCNode* debugText = playLayer->getChildByID (" debug-text" )){
14- bool isVisible = debugText->isVisible ();
15- debugText->setVisible (!isVisible);
16- gm->setGameVariable (" 0109" , !isVisible);
17- }
18- }
19- }
20-
21- return CCKeyboardDispatcher::dispatchKeyboardMSG (key, down, arr);
22- }
23- };
24-
256class $modify(MyPlayLayer, PlayLayer){
267
278 struct Fields {
@@ -36,6 +17,7 @@ class $modify(MyPlayLayer, PlayLayer){
3617 int fpsVal = 0 ;
3718 int currentFps = 0 ;
3819 int totalMemory = 0 ;
20+ CCLabelBMFont* debugText;
3921 };
4022
4123
@@ -105,52 +87,51 @@ class $modify(MyPlayLayer, PlayLayer){
10587
10688 m_fields->rightDebugNode ->setLayout (layout1);
10789
90+ m_fields->leftDebugNode ->setZOrder (99 );
91+ m_fields->rightDebugNode ->setZOrder (99 );
92+
10893 addChild (m_fields->leftDebugNode );
10994 addChild (m_fields->rightDebugNode );
11095
11196 schedule (schedule_selector (MyPlayLayer::updateDebugLabels));
11297 setFPS (0 );
113-
11498 schedule (schedule_selector (MyPlayLayer::setFPS), 1 );
11599
116- if (CCLabelBMFont* debugText = typeinfo_cast<CCLabelBMFont*>(getChildByID (" debug-text" ))) {
117- if (strcmp (debugText->getString (), " Ignore Damage" ) == 0 ){ // hacky fix for wrong node IDs
118- if (CCNode* node = getChildByID (" percentage-label" )){
119- debugText = typeinfo_cast<CCLabelBMFont*>(node);
120- }
121- else if (CCNode* node = getChildByID (" time-label" )){
122- debugText = typeinfo_cast<CCLabelBMFont*>(node);
123- }
124- }
125- debugText->setOpacity (0 );
126- }
127-
128100 return true ;
129101 }
130102
131103 void updateDebugLabels (float dt){
132- m_fields->leftDebugNode ->removeAllChildren ();
133- m_fields->rightDebugNode ->removeAllChildren ();
134104
135- if (CCLabelBMFont* debugText = typeinfo_cast<CCLabelBMFont*>(getChildByID (" debug-text" ))) {
136- if (strcmp (debugText->getString (), " Ignore Damage" ) == 0 ){ // hacky fix for wrong node IDs
137- if (CCNode* node = getChildByID (" percentage-label" )){
138- debugText = typeinfo_cast<CCLabelBMFont*>(node);
139- }
140- else if (CCNode* node = getChildByID (" time-label" )){
141- debugText = typeinfo_cast<CCLabelBMFont*>(node);
105+ if (!m_fields->debugText ){
106+ if (CCLabelBMFont* debugText = typeinfo_cast<CCLabelBMFont*>(getChildByID (" debug-text" ))) {
107+ m_fields->debugText = debugText;
108+
109+ if (strcmp (debugText->getString (), " Ignore Damage" ) == 0 ) { // hacky fix for wrong node IDs
110+ if (CCNode* node = getChildByID (" percentage-label" )){
111+ m_fields->debugText = typeinfo_cast<CCLabelBMFont*>(node);
112+ }
113+ else if (CCNode* node = getChildByID (" time-label" )){
114+ m_fields->debugText = typeinfo_cast<CCLabelBMFont*>(node);
115+ }
142116 }
117+
118+ m_fields->debugText ->setOpacity (0 );
143119 }
120+ }
144121
145- if (!debugText->isVisible ()) return ;
122+ m_fields->leftDebugNode ->removeAllChildren ();
123+ m_fields->rightDebugNode ->removeAllChildren ();
146124
147- debugText->setOpacity (0 );
148- m_fields->leftDebugNode ->setZOrder (debugText->getZOrder ());
149- m_fields->leftDebugNode ->setVisible (debugText->isVisible ());
125+ if (m_fields->debugText ) {
126+
127+ if (!m_fields->debugText ->isVisible ()) return ;
128+
129+ m_fields->debugText ->setOpacity (0 );
130+ m_fields->leftDebugNode ->setVisible (m_fields->debugText ->isVisible ());
150131
151132 m_fields->currentFps = std::ceil (1 /dt);
152133
153- std::vector<std::string> lines = Utils::splitString (debugText->getString (), " \n " );
134+ std::vector<std::string> lines = Utils::splitString (m_fields-> debugText ->getString (), " \n " );
154135
155136 std::vector<std::pair<std::string, std::string>> values;
156137
@@ -309,4 +290,23 @@ class $modify(MyPlayLayer, PlayLayer){
309290
310291 return " " ;
311292 }
293+ };
294+
295+ class $modify(MyCCKeyboardDispatcher, CCKeyboardDispatcher) {
296+
297+ bool dispatchKeyboardMSG (enumKeyCodes key, bool down, bool arr) {
298+
299+ if (MyPlayLayer* playLayer = static_cast <MyPlayLayer*>(PlayLayer::get ())){
300+ if (key == KEY_F3 && down && !arr){
301+ GameManager* gm = GameManager::get ();
302+ if (playLayer->m_fields ->debugText ){
303+ bool isVisible = playLayer->m_fields ->debugText ->isVisible ();
304+ playLayer->m_fields ->debugText ->setVisible (!isVisible);
305+ gm->setGameVariable (" 0109" , !isVisible);
306+ }
307+ }
308+ }
309+
310+ return CCKeyboardDispatcher::dispatchKeyboardMSG (key, down, arr);
311+ }
312312};
0 commit comments