// // cocos2d::extension::CCControlSwitch::ccTouchEnded from 0x18000d1a0 to 0x18000d2e1 (321 bytes) // // 4 xrefs: // > @ 0x180026660 // > @ 0x180026668 // > @ 0x18002fdf8 // > @ 0x180049de0 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // // Alternative name is '?ccTouchCancelled@CCControlSwitch@extension@cocos2d@@UEAAXPEAVCCTouch@3@PEAVCCEvent@3@@Z' void __fastcall cocos2d::extension::CCControlSwitch::ccTouchEnded( cocos2d::extension::CCControlSwitch *this, struct cocos2d::CCTouch *a2, struct cocos2d::CCEvent *a3) { char *v4; // rbx __int64 v5; // rax void (__fastcall ***v6)(_QWORD, void *); // rcx float *v7; // rax float *v8; // rcx float v9; // xmm3_4 float v10; // xmm2_4 char v11; // cl float *v12; // rax struct cocos2d::CCAction *v13; // rax float v14; // [rsp+30h] [rbp+8h] BYREF char v15; // [rsp+48h] [rbp+20h] BYREF cocos2d::CCTouch::getLocation(a2); v4 = (char *)this - 320; v5 = cocos2d::CCNode::convertToNodeSpace((char *)this - 320, &v15, &v14); cocos2d::CCPoint::operator=(&v14, v5); v6 = (void (__fastcall ***)(_QWORD, void *))(*(_QWORD *)(*((_QWORD *)this + 19) + 656LL) + 320LL); (**v6)(v6, &unk_1800234B8); if ( *((_BYTE *)this + 164) ) { v7 = (float *)(*(__int64 (__fastcall **)(_QWORD))(**((_QWORD **)this + 19) + 304LL))(*((_QWORD *)this + 19)); v8 = *((float **)v4 + 59); LOBYTE(v7) = (float)(*v7 * 0.5) <= v14; v4[485] = (char)v7; if ( (_BYTE)v7 ) v9 = v8[153]; else v9 = v8[154]; v10 = v8[152]; } else { v11 = *((_BYTE *)this + 165); v4[485] = v11 == 0; v12 = *((float **)v4 + 59); if ( v11 ) v9 = v12[154]; else v9 = v12[153]; v10 = v12[152]; } v13 = cocos2d::CCActionTween::create(0.2, "sliderXPosition", v10, v9); cocos2d::CCNode::runAction(*((cocos2d::CCNode **)v4 + 59), v13); (*(void (__fastcall **)(char *, __int64))(*(_QWORD *)v4 + 1072LL))((char *)this - 320, 256); }