|
29 | 29 | #include "sprite_nodes/CCSprite.h" |
30 | 30 | #include "script_support/CCScriptSupport.h" |
31 | 31 |
|
| 32 | +#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))) |
| 33 | +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" |
| 34 | +#elif _MSC_VER >= 1400 //vs 2005 or higher |
| 35 | +#pragma warning (push) |
| 36 | +#pragma warning (disable: 4996) |
| 37 | +#endif |
| 38 | + |
32 | 39 | NS_CC_BEGIN |
33 | 40 | // |
34 | 41 | // InstantAction |
@@ -473,5 +480,137 @@ CallFuncN * CallFuncN::clone() const |
473 | 480 | return a; |
474 | 481 | } |
475 | 482 |
|
| 483 | +// |
| 484 | +// CallFuncND |
| 485 | +// |
| 486 | + |
| 487 | +__CCCallFuncND * __CCCallFuncND::create(Object* selectorTarget, SEL_CallFuncND selector, void* d) |
| 488 | +{ |
| 489 | + __CCCallFuncND* pRet = new __CCCallFuncND(); |
| 490 | + |
| 491 | + if (pRet && pRet->initWithTarget(selectorTarget, selector, d)) { |
| 492 | + pRet->autorelease(); |
| 493 | + return pRet; |
| 494 | + } |
| 495 | + |
| 496 | + CC_SAFE_DELETE(pRet); |
| 497 | + return NULL; |
| 498 | +} |
| 499 | + |
| 500 | +bool __CCCallFuncND::initWithTarget(Object* selectorTarget, SEL_CallFuncND selector, void* d) |
| 501 | +{ |
| 502 | + if (CallFunc::initWithTarget(selectorTarget)) |
| 503 | + { |
| 504 | + _data = d; |
| 505 | + _callFuncND = selector; |
| 506 | + return true; |
| 507 | + } |
| 508 | + |
| 509 | + return false; |
| 510 | +} |
| 511 | + |
| 512 | +void __CCCallFuncND::execute() |
| 513 | +{ |
| 514 | + if (_callFuncND) |
| 515 | + { |
| 516 | + (_selectorTarget->*_callFuncND)(_target, _data); |
| 517 | + } |
| 518 | +} |
| 519 | + |
| 520 | +__CCCallFuncND * __CCCallFuncND::clone() const |
| 521 | +{ |
| 522 | + // no copy constructor |
| 523 | + auto a = new __CCCallFuncND(); |
| 524 | + |
| 525 | + if( _selectorTarget) |
| 526 | + { |
| 527 | + a->initWithTarget(_selectorTarget, _callFuncND, _data); |
| 528 | + } |
| 529 | + |
| 530 | + a->autorelease(); |
| 531 | + return a; |
| 532 | +} |
| 533 | + |
| 534 | +// |
| 535 | +// CallFuncO |
| 536 | +// |
| 537 | +__CCCallFuncO::__CCCallFuncO() : |
| 538 | +_object(NULL) |
| 539 | +{ |
| 540 | +} |
| 541 | + |
| 542 | +__CCCallFuncO::~__CCCallFuncO() |
| 543 | +{ |
| 544 | + CC_SAFE_RELEASE(_object); |
| 545 | +} |
| 546 | + |
| 547 | +void __CCCallFuncO::execute() |
| 548 | +{ |
| 549 | + if (_callFuncO) { |
| 550 | + (_selectorTarget->*_callFuncO)(_object); |
| 551 | + } |
| 552 | +} |
| 553 | + |
| 554 | +__CCCallFuncO * __CCCallFuncO::create(Object* selectorTarget, SEL_CallFuncO selector, Object* object) |
| 555 | +{ |
| 556 | + __CCCallFuncO *pRet = new __CCCallFuncO(); |
| 557 | + |
| 558 | + if (pRet && pRet->initWithTarget(selectorTarget, selector, object)) { |
| 559 | + pRet->autorelease(); |
| 560 | + return pRet; |
| 561 | + } |
| 562 | + |
| 563 | + CC_SAFE_DELETE(pRet); |
| 564 | + return NULL; |
| 565 | +} |
| 566 | + |
| 567 | +bool __CCCallFuncO::initWithTarget(Object* selectorTarget, SEL_CallFuncO selector, Object* object) |
| 568 | +{ |
| 569 | + if (CallFunc::initWithTarget(selectorTarget)) |
| 570 | + { |
| 571 | + _object = object; |
| 572 | + CC_SAFE_RETAIN(_object); |
| 573 | + |
| 574 | + _callFuncO = selector; |
| 575 | + return true; |
| 576 | + } |
| 577 | + |
| 578 | + return false; |
| 579 | +} |
| 580 | + |
| 581 | +__CCCallFuncO * __CCCallFuncO::clone() const |
| 582 | +{ |
| 583 | + // no copy constructor |
| 584 | + auto a = new __CCCallFuncO(); |
| 585 | + |
| 586 | + if( _selectorTarget) |
| 587 | + { |
| 588 | + a->initWithTarget(_selectorTarget, _callFuncO, _object); |
| 589 | + } |
| 590 | + |
| 591 | + a->autorelease(); |
| 592 | + return a; |
| 593 | +} |
| 594 | + |
| 595 | +Object* __CCCallFuncO::getObject() const |
| 596 | +{ |
| 597 | + return _object; |
| 598 | +} |
| 599 | + |
| 600 | +void __CCCallFuncO::setObject(Object* obj) |
| 601 | +{ |
| 602 | + if (obj != _object) |
| 603 | + { |
| 604 | + CC_SAFE_RELEASE(_object); |
| 605 | + _object = obj; |
| 606 | + CC_SAFE_RETAIN(_object); |
| 607 | + } |
| 608 | +} |
476 | 609 |
|
477 | 610 | NS_CC_END |
| 611 | + |
| 612 | +#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))) |
| 613 | +#pragma GCC diagnostic warning "-Wdeprecated-declarations" |
| 614 | +#elif _MSC_VER >= 1400 //vs 2005 or higher |
| 615 | +#pragma warning (pop) |
| 616 | +#endif |
0 commit comments