Removing cocos2d and properly adding it back in later.
authorchsieh <chester.developer@hotmail.com>
Mon, 18 Apr 2011 00:31:47 +0000 (17:31 -0700)
committerchsieh <chester.developer@hotmail.com>
Mon, 18 Apr 2011 00:31:47 +0000 (17:31 -0700)
166 files changed:
Classes/cocos2d/CCAction.h [deleted file]
Classes/cocos2d/CCAction.m [deleted file]
Classes/cocos2d/CCActionCamera.h [deleted file]
Classes/cocos2d/CCActionCamera.m [deleted file]
Classes/cocos2d/CCActionEase.h [deleted file]
Classes/cocos2d/CCActionEase.m [deleted file]
Classes/cocos2d/CCActionGrid.h [deleted file]
Classes/cocos2d/CCActionGrid.m [deleted file]
Classes/cocos2d/CCActionGrid3D.h [deleted file]
Classes/cocos2d/CCActionGrid3D.m [deleted file]
Classes/cocos2d/CCActionInstant.h [deleted file]
Classes/cocos2d/CCActionInstant.m [deleted file]
Classes/cocos2d/CCActionInterval.h [deleted file]
Classes/cocos2d/CCActionInterval.m [deleted file]
Classes/cocos2d/CCActionManager.h [deleted file]
Classes/cocos2d/CCActionManager.m [deleted file]
Classes/cocos2d/CCActionPageTurn3D.h [deleted file]
Classes/cocos2d/CCActionPageTurn3D.m [deleted file]
Classes/cocos2d/CCActionProgressTimer.h [deleted file]
Classes/cocos2d/CCActionProgressTimer.m [deleted file]
Classes/cocos2d/CCActionTiledGrid.h [deleted file]
Classes/cocos2d/CCActionTiledGrid.m [deleted file]
Classes/cocos2d/CCActionTween.h [deleted file]
Classes/cocos2d/CCActionTween.m [deleted file]
Classes/cocos2d/CCAnimation.h [deleted file]
Classes/cocos2d/CCAnimation.m [deleted file]
Classes/cocos2d/CCAnimationCache.h [deleted file]
Classes/cocos2d/CCAnimationCache.m [deleted file]
Classes/cocos2d/CCAtlasNode.h [deleted file]
Classes/cocos2d/CCAtlasNode.m [deleted file]
Classes/cocos2d/CCBlockSupport.h [deleted file]
Classes/cocos2d/CCBlockSupport.m [deleted file]
Classes/cocos2d/CCCamera.h [deleted file]
Classes/cocos2d/CCCamera.m [deleted file]
Classes/cocos2d/CCCompatibility.h [deleted file]
Classes/cocos2d/CCCompatibility.m [deleted file]
Classes/cocos2d/CCConfiguration.h [deleted file]
Classes/cocos2d/CCConfiguration.m [deleted file]
Classes/cocos2d/CCDirector.h [deleted file]
Classes/cocos2d/CCDirector.m [deleted file]
Classes/cocos2d/CCDrawingPrimitives.h [deleted file]
Classes/cocos2d/CCDrawingPrimitives.m [deleted file]
Classes/cocos2d/CCGrabber.h [deleted file]
Classes/cocos2d/CCGrabber.m [deleted file]
Classes/cocos2d/CCGrid.h [deleted file]
Classes/cocos2d/CCGrid.m [deleted file]
Classes/cocos2d/CCLabelAtlas.h [deleted file]
Classes/cocos2d/CCLabelAtlas.m [deleted file]
Classes/cocos2d/CCLabelBMFont.h [deleted file]
Classes/cocos2d/CCLabelBMFont.m [deleted file]
Classes/cocos2d/CCLabelTTF.h [deleted file]
Classes/cocos2d/CCLabelTTF.m [deleted file]
Classes/cocos2d/CCLayer.h [deleted file]
Classes/cocos2d/CCLayer.m [deleted file]
Classes/cocos2d/CCMenu.h [deleted file]
Classes/cocos2d/CCMenu.m [deleted file]
Classes/cocos2d/CCMenuItem.h [deleted file]
Classes/cocos2d/CCMenuItem.m [deleted file]
Classes/cocos2d/CCMotionStreak.h [deleted file]
Classes/cocos2d/CCMotionStreak.m [deleted file]
Classes/cocos2d/CCNode.h [deleted file]
Classes/cocos2d/CCNode.m [deleted file]
Classes/cocos2d/CCParallaxNode.h [deleted file]
Classes/cocos2d/CCParallaxNode.m [deleted file]
Classes/cocos2d/CCParticleExamples.h [deleted file]
Classes/cocos2d/CCParticleExamples.m [deleted file]
Classes/cocos2d/CCParticleSystem.h [deleted file]
Classes/cocos2d/CCParticleSystem.m [deleted file]
Classes/cocos2d/CCParticleSystemPoint.h [deleted file]
Classes/cocos2d/CCParticleSystemPoint.m [deleted file]
Classes/cocos2d/CCParticleSystemQuad.h [deleted file]
Classes/cocos2d/CCParticleSystemQuad.m [deleted file]
Classes/cocos2d/CCProgressTimer.h [deleted file]
Classes/cocos2d/CCProgressTimer.m [deleted file]
Classes/cocos2d/CCProtocols.h [deleted file]
Classes/cocos2d/CCRenderTexture.h [deleted file]
Classes/cocos2d/CCRenderTexture.m [deleted file]
Classes/cocos2d/CCRibbon.h [deleted file]
Classes/cocos2d/CCRibbon.m [deleted file]
Classes/cocos2d/CCScene.h [deleted file]
Classes/cocos2d/CCScene.m [deleted file]
Classes/cocos2d/CCScheduler.h [deleted file]
Classes/cocos2d/CCScheduler.m [deleted file]
Classes/cocos2d/CCSprite.h [deleted file]
Classes/cocos2d/CCSprite.m [deleted file]
Classes/cocos2d/CCSpriteBatchNode.h [deleted file]
Classes/cocos2d/CCSpriteBatchNode.m [deleted file]
Classes/cocos2d/CCSpriteFrame.h [deleted file]
Classes/cocos2d/CCSpriteFrame.m [deleted file]
Classes/cocos2d/CCSpriteFrameCache.h [deleted file]
Classes/cocos2d/CCSpriteFrameCache.m [deleted file]
Classes/cocos2d/CCSpriteSheet.h [deleted file]
Classes/cocos2d/CCSpriteSheet.m [deleted file]
Classes/cocos2d/CCTMXLayer.h [deleted file]
Classes/cocos2d/CCTMXLayer.m [deleted file]
Classes/cocos2d/CCTMXObjectGroup.h [deleted file]
Classes/cocos2d/CCTMXObjectGroup.m [deleted file]
Classes/cocos2d/CCTMXTiledMap.h [deleted file]
Classes/cocos2d/CCTMXTiledMap.m [deleted file]
Classes/cocos2d/CCTMXXMLParser.h [deleted file]
Classes/cocos2d/CCTMXXMLParser.m [deleted file]
Classes/cocos2d/CCTexture2D.h [deleted file]
Classes/cocos2d/CCTexture2D.m [deleted file]
Classes/cocos2d/CCTextureAtlas.h [deleted file]
Classes/cocos2d/CCTextureAtlas.m [deleted file]
Classes/cocos2d/CCTextureCache.h [deleted file]
Classes/cocos2d/CCTextureCache.m [deleted file]
Classes/cocos2d/CCTexturePVR.h [deleted file]
Classes/cocos2d/CCTexturePVR.m [deleted file]
Classes/cocos2d/CCTileMapAtlas.h [deleted file]
Classes/cocos2d/CCTileMapAtlas.m [deleted file]
Classes/cocos2d/CCTransition.h [deleted file]
Classes/cocos2d/CCTransition.m [deleted file]
Classes/cocos2d/CCTransitionPageTurn.h [deleted file]
Classes/cocos2d/CCTransitionPageTurn.m [deleted file]
Classes/cocos2d/CCTransitionRadial.h [deleted file]
Classes/cocos2d/CCTransitionRadial.m [deleted file]
Classes/cocos2d/Platforms/CCGL.h [deleted file]
Classes/cocos2d/Platforms/CCNS.h [deleted file]
Classes/cocos2d/Platforms/Mac/CCDirectorMac.h [deleted file]
Classes/cocos2d/Platforms/Mac/CCDirectorMac.m [deleted file]
Classes/cocos2d/Platforms/Mac/CCEventDispatcher.h [deleted file]
Classes/cocos2d/Platforms/Mac/CCEventDispatcher.m [deleted file]
Classes/cocos2d/Platforms/Mac/MacGLView.h [deleted file]
Classes/cocos2d/Platforms/Mac/MacGLView.m [deleted file]
Classes/cocos2d/Platforms/iOS/CCDirectorIOS.h [deleted file]
Classes/cocos2d/Platforms/iOS/CCDirectorIOS.m [deleted file]
Classes/cocos2d/Platforms/iOS/CCTouchDelegateProtocol.h [deleted file]
Classes/cocos2d/Platforms/iOS/CCTouchDispatcher.h [deleted file]
Classes/cocos2d/Platforms/iOS/CCTouchDispatcher.m [deleted file]
Classes/cocos2d/Platforms/iOS/CCTouchHandler.h [deleted file]
Classes/cocos2d/Platforms/iOS/CCTouchHandler.m [deleted file]
Classes/cocos2d/Platforms/iOS/EAGLView.h [deleted file]
Classes/cocos2d/Platforms/iOS/EAGLView.m [deleted file]
Classes/cocos2d/Platforms/iOS/ES1Renderer.h [deleted file]
Classes/cocos2d/Platforms/iOS/ES1Renderer.m [deleted file]
Classes/cocos2d/Platforms/iOS/ESRenderer.h [deleted file]
Classes/cocos2d/Platforms/iOS/glu.c [deleted file]
Classes/cocos2d/Platforms/iOS/glu.h [deleted file]
Classes/cocos2d/Support/CCArray.h [deleted file]
Classes/cocos2d/Support/CCArray.m [deleted file]
Classes/cocos2d/Support/CCFileUtils.h [deleted file]
Classes/cocos2d/Support/CCFileUtils.m [deleted file]
Classes/cocos2d/Support/CCProfiling.h [deleted file]
Classes/cocos2d/Support/CCProfiling.m [deleted file]
Classes/cocos2d/Support/CGPointExtension.h [deleted file]
Classes/cocos2d/Support/CGPointExtension.m [deleted file]
Classes/cocos2d/Support/OpenGL_Internal.h [deleted file]
Classes/cocos2d/Support/TGAlib.h [deleted file]
Classes/cocos2d/Support/TGAlib.m [deleted file]
Classes/cocos2d/Support/TransformUtils.h [deleted file]
Classes/cocos2d/Support/TransformUtils.m [deleted file]
Classes/cocos2d/Support/ZipUtils.h [deleted file]
Classes/cocos2d/Support/ZipUtils.m [deleted file]
Classes/cocos2d/Support/base64.c [deleted file]
Classes/cocos2d/Support/base64.h [deleted file]
Classes/cocos2d/Support/ccCArray.h [deleted file]
Classes/cocos2d/Support/ccUtils.c [deleted file]
Classes/cocos2d/Support/ccUtils.h [deleted file]
Classes/cocos2d/Support/uthash.h [deleted file]
Classes/cocos2d/Support/utlist.h [deleted file]
Classes/cocos2d/ccConfig.h [deleted file]
Classes/cocos2d/ccMacros.h [deleted file]
Classes/cocos2d/ccTypes.h [deleted file]
Classes/cocos2d/cocos2d.h [deleted file]
Classes/cocos2d/cocos2d.m [deleted file]

diff --git a/Classes/cocos2d/CCAction.h b/Classes/cocos2d/CCAction.h
deleted file mode 100644 (file)
index 327a251..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#include <sys/time.h>
-#import <Foundation/Foundation.h>
-
-#import "ccTypes.h"
-
-enum {
-       //! Default tag
-       kCCActionTagInvalid = -1,
-};
-
-/** Base class for CCAction objects.
- */
-@interface CCAction : NSObject <NSCopying>
-{
-       id                      originalTarget_;
-       id                      target_;
-       NSInteger       tag_;
-}
-
-/** The "target". The action will modify the target properties.
- The target will be set with the 'startWithTarget' method.
- When the 'stop' method is called, target will be set to nil.
- The target is 'assigned', it is not 'retained'.
- */
-@property (nonatomic,readonly,assign) id target;
-
-/** The original target, since target can be nil.
- Is the target that were used to run the action. Unless you are doing something complex, like ActionManager, you should NOT call this method.
- @since v0.8.2
-*/
-@property (nonatomic,readonly,assign) id originalTarget;
-
-
-/** The action tag. An identifier of the action */
-@property (nonatomic,readwrite,assign) NSInteger tag;
-
-/** Allocates and initializes the action */
-+(id) action;
-
-/** Initializes the action */
--(id) init;
-
--(id) copyWithZone: (NSZone*) zone;
-
-//! return YES if the action has finished
--(BOOL) isDone;
-//! called before the action start. It will also set the target.
--(void) startWithTarget:(id)target;
-//! called after the action has finished. It will set the 'target' to nil.
-//! IMPORTANT: You should never call "[action stop]" manually. Instead, use: "[target stopAction:action];"
--(void) stop;
-//! called every frame with it's delta time. DON'T override unless you know what you are doing.
--(void) step: (ccTime) dt;
-//! called once per frame. time a value between 0 and 1
-//! For example: 
-//! * 0 means that the action just started
-//! * 0.5 means that the action is in the middle
-//! * 1 means that the action is over
--(void) update: (ccTime) time;
-
-@end
-
-/** Base class actions that do have a finite time duration.
- Possible actions:
-   - An action with a duration of 0 seconds
-   - An action with a duration of 35.5 seconds
- Infitite time actions are valid
- */
-@interface CCFiniteTimeAction : CCAction <NSCopying>
-{
-       //! duration in seconds
-       ccTime duration_;
-}
-//! duration in seconds of the action
-@property (nonatomic,readwrite) ccTime duration;
-
-/** returns a reversed action */
-- (CCFiniteTimeAction*) reverse;
-@end
-
-
-@class CCActionInterval;
-/** Repeats an action for ever.
- To repeat the an action for a limited number of times use the Repeat action.
- @warning This action can't be Sequenceable because it is not an IntervalAction
- */
-@interface CCRepeatForever : CCAction <NSCopying>
-{
-       CCActionInterval *other;
-}
-/** creates the action */
-+(id) actionWithAction: (CCActionInterval*) action;
-/** initializes the action */
--(id) initWithAction: (CCActionInterval*) action;
-@end
-
-/** Changes the speed of an action, making it take longer (speed>1)
- or less (speed<1) time.
- Useful to simulate 'slow motion' or 'fast forward' effect.
- @warning This action can't be Sequenceable because it is not an IntervalAction
- */
-@interface CCSpeed : CCAction <NSCopying>
-{
-       CCActionInterval        *other;
-       float speed;
-}
-/** alter the speed of the inner function in runtime */
-@property (nonatomic,readwrite) float speed;
-/** creates the action */
-+(id) actionWithAction: (CCActionInterval*) action speed:(float)rate;
-/** initializes the action */
--(id) initWithAction: (CCActionInterval*) action speed:(float)rate;
-@end
-
-@class CCNode;
-/** CCFollow is an action that "follows" a node.
- Eg:
-       [layer runAction: [CCFollow actionWithTarget:hero]];
- Instead of using CCCamera as a "follower", use this action instead.
- @since v0.99.2
- */
-@interface CCFollow : CCAction <NSCopying>
-{
-       /* node to follow */
-       CCNode  *followedNode_;
-       
-       /* whether camera should be limited to certain area */
-       BOOL boundarySet;
-       
-       /* if screensize is bigger than the boundary - update not needed */
-       BOOL boundaryFullyCovered;
-       
-       /* fast access to the screen dimensions */
-       CGPoint halfScreenSize;
-       CGPoint fullScreenSize;
-       
-       /* world boundaries */
-       float leftBoundary;
-       float rightBoundary;
-       float topBoundary;
-       float bottomBoundary;
-}
-
-/** alter behavior - turn on/off boundary */
-@property (nonatomic,readwrite) BOOL boundarySet;
-
-/** creates the action with no boundary set */
-+(id) actionWithTarget:(CCNode *)followedNode;
-
-/** creates the action with a set boundary */
-+(id) actionWithTarget:(CCNode *)followedNode worldBoundary:(CGRect)rect;
-
-/** initializes the action */
--(id) initWithTarget:(CCNode *)followedNode;
-
-/** initializes the action with a set boundary */
--(id) initWithTarget:(CCNode *)followedNode worldBoundary:(CGRect)rect;
-
-@end
-
diff --git a/Classes/cocos2d/CCAction.m b/Classes/cocos2d/CCAction.m
deleted file mode 100644 (file)
index 8fc3b4c..0000000
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-
-#import <Availability.h>
-#import "CCDirector.h"
-#import "ccMacros.h"
-#import "CCAction.h"
-#import "CCActionInterval.h"
-#import "Support/CGPointExtension.h"
-
-//
-// Action Base Class
-//
-#pragma mark -
-#pragma mark Action
-@implementation CCAction
-
-@synthesize tag = tag_, target = target_, originalTarget = originalTarget_;
-
-+(id) action
-{
-       return [[[self alloc] init] autorelease];
-}
-
--(id) init
-{
-       if( (self=[super init]) ) {     
-               originalTarget_ = target_ = nil;
-               tag_ = kCCActionTagInvalid;
-       }
-       return self;
-}
-
--(void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-       [super dealloc];
-}
-
--(NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | Tag = %i>", [self class], self, tag_];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] init];
-       copy.tag = tag_;
-       return copy;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       originalTarget_ = target_ = aTarget;
-}
-
--(void) stop
-{
-       target_ = nil;
-}
-
--(BOOL) isDone
-{
-       return YES;
-}
-
--(void) step: (ccTime) dt
-{
-       NSLog(@"[Action step]. override me");
-}
-
--(void) update: (ccTime) time
-{
-       NSLog(@"[Action update]. override me");
-}
-@end
-
-//
-// FiniteTimeAction
-//
-#pragma mark -
-#pragma mark FiniteTimeAction
-@implementation CCFiniteTimeAction
-@synthesize duration = duration_;
-
-- (CCFiniteTimeAction*) reverse
-{
-       CCLOG(@"cocos2d: FiniteTimeAction#reverse: Implement me");
-       return nil;
-}
-@end
-
-
-//
-// RepeatForever
-//
-#pragma mark -
-#pragma mark RepeatForever
-@implementation CCRepeatForever
-+(id) actionWithAction: (CCActionInterval*) action
-{
-       return [[[self alloc] initWithAction: action] autorelease];
-}
-
--(id) initWithAction: (CCActionInterval*) action
-{
-       if( (self=[super init]) )       
-               other = [action retain];
-
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithAction:[[other copy] autorelease] ];
-    return copy;
-}
-
--(void) dealloc
-{
-       [other release];
-       [super dealloc];
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [other startWithTarget:target_];
-}
-
--(void) step:(ccTime) dt
-{
-       [other step: dt];
-       if( [other isDone] ) {
-               ccTime diff = dt + other.duration - other.elapsed;
-               [other startWithTarget:target_];
-               
-               // to prevent jerk. issue #390
-               [other step: diff];
-       }
-}
-
-
--(BOOL) isDone
-{
-       return NO;
-}
-
-- (CCActionInterval *) reverse
-{
-       return [CCRepeatForever actionWithAction:[other reverse]];
-}
-
-@end
-
-//
-// Speed
-//
-#pragma mark -
-#pragma mark Speed
-@implementation CCSpeed
-@synthesize speed;
-
-+(id) actionWithAction: (CCActionInterval*) action speed:(float)r
-{
-       return [[[self alloc] initWithAction: action speed:r] autorelease];
-}
-
--(id) initWithAction: (CCActionInterval*) action speed:(float)r
-{
-       if( (self=[super init]) ) {
-               other = [action retain];
-               speed = r;
-       }
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithAction:[[other copy] autorelease] speed:speed];
-    return copy;
-}
-
--(void) dealloc
-{
-       [other release];
-       [super dealloc];
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [other startWithTarget:target_];
-}
-
--(void) stop
-{
-       [other stop];
-       [super stop];
-}
-
--(void) step:(ccTime) dt
-{
-       [other step: dt * speed];
-}
-
--(BOOL) isDone
-{
-       return [other isDone];
-}
-
-- (CCActionInterval *) reverse
-{
-       return [CCSpeed actionWithAction:[other reverse] speed:speed];
-}
-@end
-
-//
-// Follow
-//
-#pragma mark -
-#pragma mark Follow
-@implementation CCFollow
-
-@synthesize boundarySet;
-
-+(id) actionWithTarget:(CCNode *) fNode
-{
-       return [[[self alloc] initWithTarget:fNode] autorelease];
-}
-
-+(id) actionWithTarget:(CCNode *) fNode worldBoundary:(CGRect)rect
-{
-       return [[[self alloc] initWithTarget:fNode worldBoundary:rect] autorelease];
-}
-
--(id) initWithTarget:(CCNode *)fNode
-{
-       if( (self=[super init]) ) {
-       
-               followedNode_ = [fNode retain];
-               boundarySet = FALSE;
-               boundaryFullyCovered = FALSE;
-               
-               CGSize s = [[CCDirector sharedDirector] winSize];
-               fullScreenSize = CGPointMake(s.width, s.height);
-               halfScreenSize = ccpMult(fullScreenSize, .5f);
-       }
-       
-       return self;
-}
-
--(id) initWithTarget:(CCNode *)fNode worldBoundary:(CGRect)rect
-{
-       if( (self=[super init]) ) {
-       
-               followedNode_ = [fNode retain];
-               boundarySet = TRUE;
-               boundaryFullyCovered = FALSE;
-               
-               CGSize winSize = [[CCDirector sharedDirector] winSize];
-               fullScreenSize = CGPointMake(winSize.width, winSize.height);
-               halfScreenSize = ccpMult(fullScreenSize, .5f);
-               
-               leftBoundary = -((rect.origin.x+rect.size.width) - fullScreenSize.x);
-               rightBoundary = -rect.origin.x ;
-               topBoundary = -rect.origin.y;
-               bottomBoundary = -((rect.origin.y+rect.size.height) - fullScreenSize.y);
-               
-               if(rightBoundary < leftBoundary)
-               {
-                       // screen width is larger than world's boundary width
-                       //set both in the middle of the world
-                       rightBoundary = leftBoundary = (leftBoundary + rightBoundary) / 2;
-               }
-               if(topBoundary < bottomBoundary)
-               {
-                       // screen width is larger than world's boundary width
-                       //set both in the middle of the world
-                       topBoundary = bottomBoundary = (topBoundary + bottomBoundary) / 2;
-               }
-               
-               if( (topBoundary == bottomBoundary) && (leftBoundary == rightBoundary) )
-                       boundaryFullyCovered = TRUE;
-       }
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] init];
-       copy.tag = tag_;
-       return copy;
-}
-
--(void) step:(ccTime) dt
-{
-#define CLAMP(x,y,z) MIN(MAX(x,y),z)
-       
-       if(boundarySet)
-       {
-               // whole map fits inside a single screen, no need to modify the position - unless map boundaries are increased
-               if(boundaryFullyCovered)
-                       return;
-               
-               CGPoint tempPos = ccpSub( halfScreenSize, followedNode_.position);
-               [target_ setPosition:ccp(CLAMP(tempPos.x,leftBoundary,rightBoundary), CLAMP(tempPos.y,bottomBoundary,topBoundary))];
-       }
-       else
-               [target_ setPosition:ccpSub( halfScreenSize, followedNode_.position )];
-       
-#undef CLAMP
-}
-
-
--(BOOL) isDone
-{
-       return !followedNode_.isRunning;
-}
-
--(void) stop
-{
-       target_ = nil;
-       [super stop];
-}
-
--(void) dealloc
-{
-       [followedNode_ release];
-       [super dealloc];
-}
-
-@end
-
-
diff --git a/Classes/cocos2d/CCActionCamera.h b/Classes/cocos2d/CCActionCamera.h
deleted file mode 100644 (file)
index 131c084..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "CCActionInterval.h"
-
-@class CCCamera;
-
-/** Base class for CCCamera actions
- */
-@interface CCActionCamera : CCActionInterval <NSCopying>
-{      
-       float centerXOrig_;
-       float centerYOrig_;
-       float centerZOrig_;
-       
-       float eyeXOrig_;
-       float eyeYOrig_;
-       float eyeZOrig_;
-       
-       float upXOrig_;
-       float upYOrig_;
-       float upZOrig_;
-}
-@end
-
-/** CCOrbitCamera action
- Orbits the camera around the center of the screen using spherical coordinates
- */
-@interface CCOrbitCamera : CCActionCamera <NSCopying>
-{
-       float radius_;
-       float deltaRadius_;
-       float angleZ_;
-       float deltaAngleZ_;
-       float angleX_;
-       float deltaAngleX_;
-       
-       float radZ_;
-       float radDeltaZ_;
-       float radX_;
-       float radDeltaX_;
-       
-}
-/** creates a CCOrbitCamera action with radius, delta-radius,  z, deltaZ, x, deltaX */
-+(id) actionWithDuration:(float) t radius:(float)r deltaRadius:(float) dr angleZ:(float)z deltaAngleZ:(float)dz angleX:(float)x deltaAngleX:(float)dx;
-/** initializes a CCOrbitCamera action with radius, delta-radius,  z, deltaZ, x, deltaX */
--(id) initWithDuration:(float) t radius:(float)r deltaRadius:(float) dr angleZ:(float)z deltaAngleZ:(float)dz angleX:(float)x deltaAngleX:(float)dx;
-/** positions the camera according to spherical coordinates */
--(void) sphericalRadius:(float*) r zenith:(float*) zenith azimuth:(float*) azimuth;
-@end
diff --git a/Classes/cocos2d/CCActionCamera.m b/Classes/cocos2d/CCActionCamera.m
deleted file mode 100644 (file)
index 5134c6f..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-
-#import "CCActionCamera.h"
-#import "CCNode.h"
-#import "CCCamera.h"
-#import "ccMacros.h"
-
-//
-// CameraAction
-//
-@implementation CCActionCamera
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       CCCamera *camera = [target_ camera];
-       [camera centerX:&centerXOrig_ centerY:&centerYOrig_ centerZ:&centerZOrig_];
-       [camera eyeX:&eyeXOrig_ eyeY:&eyeYOrig_ eyeZ:&eyeZOrig_];
-       [camera upX:&upXOrig_ upY:&upYOrig_ upZ: &upZOrig_];
-}
-
--(id) reverse
-{
-       return [CCReverseTime actionWithAction:self];
-}
-@end
-
-@implementation CCOrbitCamera
-+(id) actionWithDuration:(float)t radius:(float)r deltaRadius:(float) dr angleZ:(float)z deltaAngleZ:(float)dz angleX:(float)x deltaAngleX:(float)dx
-{
-       return [[[self alloc] initWithDuration:t radius:r deltaRadius:dr angleZ:z deltaAngleZ:dz angleX:x deltaAngleX:dx] autorelease];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       return [[[self class] allocWithZone: zone] initWithDuration:duration_ radius:radius_ deltaRadius:deltaRadius_ angleZ:angleZ_ deltaAngleZ:deltaAngleZ_ angleX:angleX_ deltaAngleX:deltaAngleX_];
-}
-
-
--(id) initWithDuration:(float)t radius:(float)r deltaRadius:(float) dr angleZ:(float)z deltaAngleZ:(float)dz angleX:(float)x deltaAngleX:(float)dx
-{
-       if((self=[super initWithDuration:t]) ) {
-       
-               radius_ = r;
-               deltaRadius_ = dr;
-               angleZ_ = z;
-               deltaAngleZ_ = dz;
-               angleX_ = x;
-               deltaAngleX_ = dx;
-
-               radDeltaZ_ = (CGFloat)CC_DEGREES_TO_RADIANS(dz);
-               radDeltaX_ = (CGFloat)CC_DEGREES_TO_RADIANS(dx);
-       }
-       
-       return self;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       float r, zenith, azimuth;
-       
-       [self sphericalRadius: &r zenith:&zenith azimuth:&azimuth];
-       
-#if 0 // isnan() is not supported on the simulator, and isnan() always returns false.
-       if( isnan(radius_) )
-               radius_ = r;
-       
-       if( isnan( angleZ_) )
-               angleZ_ = (CGFloat)CC_RADIANS_TO_DEGREES(zenith);
-       
-       if( isnan( angleX_ ) )
-               angleX_ = (CGFloat)CC_RADIANS_TO_DEGREES(azimuth);
-#endif
-
-       radZ_ = (CGFloat)CC_DEGREES_TO_RADIANS(angleZ_);
-       radX_ = (CGFloat)CC_DEGREES_TO_RADIANS(angleX_);
-}
-
--(void) update: (ccTime) dt
-{
-       float r = (radius_ + deltaRadius_ * dt) *[CCCamera getZEye];
-       float za = radZ_ + radDeltaZ_ * dt;
-       float xa = radX_ + radDeltaX_ * dt;
-
-       float i = sinf(za) * cosf(xa) * r + centerXOrig_;
-       float j = sinf(za) * sinf(xa) * r + centerYOrig_;
-       float k = cosf(za) * r + centerZOrig_;
-
-       [[target_ camera] setEyeX:i eyeY:j eyeZ:k];     
-}
-
--(void) sphericalRadius:(float*) newRadius zenith:(float*) zenith azimuth:(float*) azimuth
-{
-       float ex, ey, ez, cx, cy, cz, x, y, z;
-       float r; // radius
-       float s;
-       
-       CCCamera *camera = [target_ camera];
-       [camera eyeX:&ex eyeY:&ey eyeZ:&ez];
-       [camera centerX:&cx centerY:&cy centerZ:&cz];
-       
-       x = ex-cx;
-       y = ey-cy;
-       z = ez-cz;
-       
-       r = sqrtf( x*x + y*y + z*z);
-       s = sqrtf( x*x + y*y);
-       if(s==0.0f)
-               s = FLT_EPSILON;
-       if(r==0.0f)
-               r = FLT_EPSILON;
-
-       *zenith = acosf( z/r);
-       if( x < 0 )
-               *azimuth = (float)M_PI - asinf(y/s);
-       else
-               *azimuth = asinf(y/s);
-                                       
-       *newRadius = r / [CCCamera getZEye];                                    
-}
-@end
diff --git a/Classes/cocos2d/CCActionEase.h b/Classes/cocos2d/CCActionEase.h
deleted file mode 100644 (file)
index fced701..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2009 Jason Booth
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCActionInterval.h"
-
-/** Base class for Easing actions
- */
-@interface CCActionEase : CCActionInterval <NSCopying>
-{
-       CCActionInterval * other;
-}
-/** creates the action */
-+(id) actionWithAction: (CCActionInterval*) action;
-/** initializes the action */
--(id) initWithAction: (CCActionInterval*) action;
-@end
-
-/** Base class for Easing actions with rate parameters
- */
-@interface CCEaseRateAction :  CCActionEase <NSCopying>
-{
-       float   rate;
-}
-/** rate value for the actions */
-@property (nonatomic,readwrite,assign) float rate;
-/** Creates the action with the inner action and the rate parameter */
-+(id) actionWithAction: (CCActionInterval*) action rate:(float)rate;
-/** Initializes the action with the inner action and the rate parameter */
--(id) initWithAction: (CCActionInterval*) action rate:(float)rate;
-@end
-
-/** CCEaseIn action with a rate
- */
-@interface CCEaseIn : CCEaseRateAction <NSCopying> {} @end
-
-/** CCEaseOut action with a rate
- */
-@interface CCEaseOut : CCEaseRateAction <NSCopying> {} @end
-
-/** CCEaseInOut action with a rate
- */
-@interface CCEaseInOut : CCEaseRateAction <NSCopying> {} @end
-
-/** CCEase Exponential In
- */
-@interface CCEaseExponentialIn : CCActionEase <NSCopying> {} @end
-/** Ease Exponential Out
- */
-@interface CCEaseExponentialOut : CCActionEase <NSCopying> {} @end
-/** Ease Exponential InOut
- */
-@interface CCEaseExponentialInOut : CCActionEase <NSCopying> {} @end
-/** Ease Sine In
- */
-@interface CCEaseSineIn : CCActionEase <NSCopying> {} @end
-/** Ease Sine Out
- */
-@interface CCEaseSineOut : CCActionEase <NSCopying> {} @end
-/** Ease Sine InOut
- */
-@interface CCEaseSineInOut : CCActionEase <NSCopying> {} @end
-
-/** Ease Elastic abstract class
- @since v0.8.2
- */
-@interface CCEaseElastic : CCActionEase <NSCopying>
-{
-       float period_;
-}
-
-/** period of the wave in radians. default is 0.3 */
-@property (nonatomic,readwrite) float period;
-
-/** Creates the action with the inner action and the period in radians (default is 0.3) */
-+(id) actionWithAction: (CCActionInterval*) action period:(float)period;
-/** Initializes the action with the inner action and the period in radians (default is 0.3) */
--(id) initWithAction: (CCActionInterval*) action period:(float)period;
-@end
-
-/** Ease Elastic In action.
- @warning This action doesn't use a bijective fucntion. Actions like Sequence might have an unexpected result when used with this action.
- @since v0.8.2
- */
-@interface CCEaseElasticIn : CCEaseElastic <NSCopying> {} @end
-/** Ease Elastic Out action.
- @warning This action doesn't use a bijective fucntion. Actions like Sequence might have an unexpected result when used with this action.
- @since v0.8.2
- */
-@interface CCEaseElasticOut : CCEaseElastic <NSCopying> {} @end
-/** Ease Elastic InOut action.
- @warning This action doesn't use a bijective fucntion. Actions like Sequence might have an unexpected result when used with this action.
- @since v0.8.2
- */
-@interface CCEaseElasticInOut : CCEaseElastic <NSCopying> {} @end
-
-/** CCEaseBounce abstract class.
- @since v0.8.2
-*/
-@interface CCEaseBounce : CCActionEase <NSCopying> {} @end
-
-/** CCEaseBounceIn action.
- @warning This action doesn't use a bijective fucntion. Actions like Sequence might have an unexpected result when used with this action.
- @since v0.8.2
-*/
-@interface CCEaseBounceIn : CCEaseBounce <NSCopying> {} @end
-
-/** EaseBounceOut action.
- @warning This action doesn't use a bijective fucntion. Actions like Sequence might have an unexpected result when used with this action.
- @since v0.8.2
- */
-@interface CCEaseBounceOut : CCEaseBounce <NSCopying> {} @end
-
-/** CCEaseBounceInOut action.
- @warning This action doesn't use a bijective fucntion. Actions like Sequence might have an unexpected result when used with this action.
- @since v0.8.2
- */
-@interface CCEaseBounceInOut : CCEaseBounce <NSCopying> {} @end
-
-/** CCEaseBackIn action.
- @warning This action doesn't use a bijective fucntion. Actions like Sequence might have an unexpected result when used with this action.
- @since v0.8.2
- */
-@interface CCEaseBackIn : CCActionEase <NSCopying> {} @end
-
-/** CCEaseBackOut action.
- @warning This action doesn't use a bijective fucntion. Actions like Sequence might have an unexpected result when used with this action.
- @since v0.8.2
- */
-@interface CCEaseBackOut : CCActionEase <NSCopying> {} @end
-
-/** CCEaseBackInOut action.
- @warning This action doesn't use a bijective fucntion. Actions like Sequence might have an unexpected result when used with this action.
- @since v0.8.2
- */
-@interface CCEaseBackInOut : CCActionEase <NSCopying> {} @end
-
diff --git a/Classes/cocos2d/CCActionEase.m b/Classes/cocos2d/CCActionEase.m
deleted file mode 100644 (file)
index f28be11..0000000
+++ /dev/null
@@ -1,534 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2009 Jason Booth
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-/*
- * Elastic, Back and Bounce actions based on code from:
- * http://github.com/NikhilK/silverlightfx/
- *
- * by http://github.com/NikhilK
- */
-
-#import "CCActionEase.h"
-
-#ifndef M_PI_X_2
-#define M_PI_X_2 (float)M_PI * 2.0f
-#endif
-
-#pragma mark EaseAction
-
-//
-// EaseAction
-//
-@implementation CCActionEase
-
-+(id) actionWithAction: (CCActionInterval*) action
-{
-       return [[[self alloc] initWithAction: action] autorelease ];
-}
-
--(id) initWithAction: (CCActionInterval*) action
-{
-       NSAssert( action!=nil, @"Ease: arguments must be non-nil");
-  
-       if( (self=[super initWithDuration: action.duration]) )
-               other = [action retain];
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone:zone] initWithAction:[[other copy] autorelease]];
-       return copy;
-}
-
--(void) dealloc
-{
-       [other release];
-       [super dealloc];
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [other startWithTarget:target_];
-}
-
--(void) stop
-{
-       [other stop];
-       [super stop];
-}
-
--(void) update: (ccTime) t
-{
-       [other update: t];
-}
-
--(CCActionInterval*) reverse
-{
-       return [[self class] actionWithAction: [other reverse]];
-}
-@end
-
-
-#pragma mark -
-#pragma mark EaseRate
-
-//
-// EaseRateAction
-//
-@implementation CCEaseRateAction
-@synthesize rate;
-+(id) actionWithAction: (CCActionInterval*) action rate:(float)aRate
-{
-       return [[[self alloc] initWithAction: action rate:aRate] autorelease ];
-}
-
--(id) initWithAction: (CCActionInterval*) action rate:(float)aRate
-{
-       if( (self=[super initWithAction:action ]) )
-               self.rate = aRate;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone:zone] initWithAction:[[other copy] autorelease] rate:rate];
-       return copy;
-}
-
--(void) dealloc
-{
-       [super dealloc];
-}
-
--(CCActionInterval*) reverse
-{
-       return [[self class] actionWithAction: [other reverse] rate:1/rate];
-}
-@end
-
-//
-// EeseIn
-//
-@implementation CCEaseIn
--(void) update: (ccTime) t
-{
-       [other update: powf(t,rate)];
-}
-@end
-
-//
-// EaseOut
-//
-@implementation CCEaseOut
--(void) update: (ccTime) t
-{
-       [other update: powf(t,1/rate)];
-}
-@end
-
-//
-// EaseInOut
-//
-@implementation CCEaseInOut
--(void) update: (ccTime) t
-{      
-       int sign =1;
-       int r = (int) rate;
-       if (r % 2 == 0)
-               sign = -1;
-       t *= 2;
-       if (t < 1) 
-               [other update: 0.5f * powf (t, rate)];
-       else
-               [other update: sign*0.5f * (powf (t-2, rate) + sign*2)];        
-}
-
-// InOut and OutIn are symmetrical
--(CCActionInterval*) reverse
-{
-       return [[self class] actionWithAction: [other reverse] rate:rate];
-}
-
-@end
-
-#pragma mark -
-#pragma mark EaseExponential
-
-//
-// EaseExponentialIn
-//
-@implementation CCEaseExponentialIn
--(void) update: (ccTime) t
-{
-       [other update: (t==0) ? 0 : powf(2, 10 * (t/1 - 1)) - 1 * 0.001f];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseExponentialOut actionWithAction: [other reverse]];
-}
-@end
-
-//
-// EaseExponentialOut
-//
-@implementation CCEaseExponentialOut
--(void) update: (ccTime) t
-{
-       [other update: (t==1) ? 1 : (-powf(2, -10 * t/1) + 1)];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseExponentialIn actionWithAction: [other reverse]];
-}
-@end
-
-//
-// EaseExponentialInOut
-//
-@implementation CCEaseExponentialInOut
--(void) update: (ccTime) t
-{
-       t /= 0.5f;
-       if (t < 1)
-               t = 0.5f * powf(2, 10 * (t - 1));
-       else
-               t = 0.5f * (-powf(2, -10 * (t -1) ) + 2);
-       
-       [other update:t];
-}
-@end
-
-
-#pragma mark -
-#pragma mark EaseSin actions
-
-//
-// EaseSineIn
-//
-@implementation CCEaseSineIn
--(void) update: (ccTime) t
-{
-       [other update:-1*cosf(t * (float)M_PI_2) +1];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseSineOut actionWithAction: [other reverse]];
-}
-@end
-
-//
-// EaseSineOut
-//
-@implementation CCEaseSineOut
--(void) update: (ccTime) t
-{
-       [other update:sinf(t * (float)M_PI_2)];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseSineIn actionWithAction: [other reverse]];
-}
-@end
-
-//
-// EaseSineInOut
-//
-@implementation CCEaseSineInOut
--(void) update: (ccTime) t
-{
-       [other update:-0.5f*(cosf( (float)M_PI*t) - 1)];
-}
-@end
-
-#pragma mark -
-#pragma mark EaseElastic actions
-
-//
-// EaseElastic
-//
-@implementation CCEaseElastic
-
-@synthesize period = period_;
-
-+(id) actionWithAction: (CCActionInterval*) action
-{
-       return [[[self alloc] initWithAction:action period:0.3f] autorelease];
-}
-
-+(id) actionWithAction: (CCActionInterval*) action period:(float)period
-{
-       return [[[self alloc] initWithAction:action period:period] autorelease];
-}
-
--(id) initWithAction: (CCActionInterval*) action
-{
-       return [self initWithAction:action period:0.3f];
-}
-
--(id) initWithAction: (CCActionInterval*) action period:(float)period
-{
-       if( (self=[super initWithAction:action]) )
-               period_ = period;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone:zone] initWithAction:[[other copy] autorelease] period:period_];
-       return copy;
-}
-
--(CCActionInterval*) reverse
-{
-       NSAssert(NO,@"Override me");
-       return nil;
-}
-
-@end
-
-//
-// EaseElasticIn
-//
-
-@implementation CCEaseElasticIn
--(void) update: (ccTime) t
-{      
-       ccTime newT = 0;
-       if (t == 0 || t == 1)
-               newT = t;
-               
-       else {
-               float s = period_ / 4;
-               t = t - 1;
-               newT = -powf(2, 10 * t) * sinf( (t-s) *M_PI_X_2 / period_);
-       }
-       [other update:newT];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseElasticOut actionWithAction: [other reverse] period:period_];
-}
-
-@end
-
-//
-// EaseElasticOut
-//
-@implementation CCEaseElasticOut
-
--(void) update: (ccTime) t
-{      
-       ccTime newT = 0;
-       if (t == 0 || t == 1) {
-               newT = t;
-               
-       } else {
-               float s = period_ / 4;
-               newT = powf(2, -10 * t) * sinf( (t-s) *M_PI_X_2 / period_) + 1;
-       }
-       [other update:newT];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseElasticIn actionWithAction: [other reverse] period:period_];
-}
-
-@end
-
-//
-// EaseElasticInOut
-//
-@implementation CCEaseElasticInOut
--(void) update: (ccTime) t
-{
-       ccTime newT = 0;
-       
-       if( t == 0 || t == 1 )
-               newT = t;
-       else {
-               t = t * 2;
-               if(! period_ )
-                       period_ = 0.3f * 1.5f;
-               ccTime s = period_ / 4;
-               
-               t = t -1;
-               if( t < 0 )
-                       newT = -0.5f * powf(2, 10 * t) * sinf((t - s) * M_PI_X_2 / period_);
-               else
-                       newT = powf(2, -10 * t) * sinf((t - s) * M_PI_X_2 / period_) * 0.5f + 1;
-       }
-       [other update:newT];    
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseElasticInOut actionWithAction: [other reverse] period:period_];
-}
-
-@end
-
-#pragma mark -
-#pragma mark EaseBounce actions
-
-//
-// EaseBounce
-//
-@implementation CCEaseBounce
--(ccTime) bounceTime:(ccTime) t
-{
-       if (t < 1 / 2.75) {
-               return 7.5625f * t * t;
-       }
-       else if (t < 2 / 2.75) {
-               t -= 1.5f / 2.75f;
-               return 7.5625f * t * t + 0.75f;
-       }
-       else if (t < 2.5 / 2.75) {
-               t -= 2.25f / 2.75f;
-               return 7.5625f * t * t + 0.9375f;
-       }
-
-       t -= 2.625f / 2.75f;
-       return 7.5625f * t * t + 0.984375f;
-}
-@end
-
-//
-// EaseBounceIn
-//
-
-@implementation CCEaseBounceIn
-
--(void) update: (ccTime) t
-{
-       ccTime newT = 1 - [self bounceTime:1-t];        
-       [other update:newT];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseBounceOut actionWithAction: [other reverse]];
-}
-
-@end
-
-@implementation CCEaseBounceOut
-
--(void) update: (ccTime) t
-{
-       ccTime newT = [self bounceTime:t];      
-       [other update:newT];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseBounceIn actionWithAction: [other reverse]];
-}
-
-@end
-
-@implementation CCEaseBounceInOut
-
--(void) update: (ccTime) t
-{
-       ccTime newT = 0;
-       if (t < 0.5) {
-               t = t * 2;
-               newT = (1 - [self bounceTime:1-t] ) * 0.5f;
-       } else
-               newT = [self bounceTime:t * 2 - 1] * 0.5f + 0.5f;
-       
-       [other update:newT];
-}
-@end
-
-#pragma mark -
-#pragma mark Ease Back actions
-
-//
-// EaseBackIn
-//
-@implementation CCEaseBackIn
-
--(void) update: (ccTime) t
-{
-       ccTime overshoot = 1.70158f;
-       [other update: t * t * ((overshoot + 1) * t - overshoot)];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseBackOut actionWithAction: [other reverse]];
-}
-@end
-
-//
-// EaseBackOut
-//
-@implementation CCEaseBackOut
--(void) update: (ccTime) t
-{
-       ccTime overshoot = 1.70158f;
-       
-       t = t - 1;
-       [other update: t * t * ((overshoot + 1) * t + overshoot) + 1];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCEaseBackIn actionWithAction: [other reverse]];
-}
-@end
-
-//
-// EaseBackInOut
-//
-@implementation CCEaseBackInOut
-
--(void) update: (ccTime) t
-{
-       ccTime overshoot = 1.70158f * 1.525f;
-       
-       t = t * 2;
-       if (t < 1)
-               [other update: (t * t * ((overshoot + 1) * t - overshoot)) / 2];
-       else {
-               t = t - 2;
-               [other update: (t * t * ((overshoot + 1) * t + overshoot)) / 2 + 1];
-       }
-}
-@end
diff --git a/Classes/cocos2d/CCActionGrid.h b/Classes/cocos2d/CCActionGrid.h
deleted file mode 100644 (file)
index 13b6bc7..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 On-Core
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCActionInterval.h"
-#import "CCActionInstant.h"
-#import "CCGrid.h"
-
-@class CCGridBase;
-
-/** Base class for Grid actions */
-@interface CCGridAction : CCActionInterval
-{
-       ccGridSize gridSize_;
-}
-
-/** size of the grid */
-@property (nonatomic,readwrite) ccGridSize gridSize;
-
-/** creates the action with size and duration */
-+(id) actionWithSize:(ccGridSize)size duration:(ccTime)d;
-/** initializes the action with size and duration */
--(id) initWithSize:(ccGridSize)gridSize duration:(ccTime)d;
-/** returns the grid */
--(CCGridBase *)grid;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** Base class for CCGrid3D actions.
- Grid3D actions can modify a non-tiled grid.
- */
-@interface CCGrid3DAction : CCGridAction
-{
-}
-
-/** returns the vertex than belongs to certain position in the grid */
--(ccVertex3F)vertex:(ccGridSize)pos;
-/** returns the non-transformed vertex than belongs to certain position in the grid */
--(ccVertex3F)originalVertex:(ccGridSize)pos;
-/** sets a new vertex to a certain position of the grid */
--(void)setVertex:(ccGridSize)pos vertex:(ccVertex3F)vertex;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** Base class for CCTiledGrid3D actions */
-@interface CCTiledGrid3DAction : CCGridAction
-{
-}
-
-/** returns the tile that belongs to a certain position of the grid */
--(ccQuad3)tile:(ccGridSize)pos;
-/** returns the non-transformed tile that belongs to a certain position of the grid */
--(ccQuad3)originalTile:(ccGridSize)pos;
-/** sets a new tile to a certain position of the grid */
--(void)setTile:(ccGridSize)pos coords:(ccQuad3)coords;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCAccelDeccelAmplitude action */
-@interface CCAccelDeccelAmplitude : CCActionInterval
-{
-       float                   rate;
-       CCActionInterval *other;
-}
-
-/** amplitude rate */
-@property (nonatomic,readwrite) float rate;
-
-/** creates the action with an inner action that has the amplitude property, and a duration time */
-+(id)actionWithAction:(CCAction*)action duration:(ccTime)d;
-/** initializes the action with an inner action that has the amplitude property, and a duration time */
--(id)initWithAction:(CCAction*)action duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCAccelAmplitude action */
-@interface CCAccelAmplitude : CCActionInterval
-{
-       float                   rate;
-       CCActionInterval *other;
-}
-
-/** amplitude rate */
-@property (nonatomic,readwrite) float rate;
-
-/** creates the action with an inner action that has the amplitude property, and a duration time */
-+(id)actionWithAction:(CCAction*)action duration:(ccTime)d;
-/** initializes the action with an inner action that has the amplitude property, and a duration time */
--(id)initWithAction:(CCAction*)action duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCDeccelAmplitude action */
-@interface CCDeccelAmplitude : CCActionInterval
-{
-       float                   rate;
-       CCActionInterval *other;
-}
-
-/** amplitude rate */
-@property (nonatomic,readwrite) float rate;
-
-/** creates the action with an inner action that has the amplitude property, and a duration time */
-+(id)actionWithAction:(CCAction*)action duration:(ccTime)d;
-/** initializes the action with an inner action that has the amplitude property, and a duration time */
--(id)initWithAction:(CCAction*)action duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCStopGrid action.
- Don't call this action if another grid action is active.
- Call if you want to remove the the grid effect. Example:
- [Sequence actions:[Lens ...], [StopGrid action], nil];
- */
-@interface CCStopGrid : CCActionInstant
-{
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCReuseGrid action */
-@interface CCReuseGrid : CCActionInstant
-{
-       int t;
-}
-/** creates an action with the number of times that the current grid will be reused */
-+(id) actionWithTimes: (int) times;
-/** initializes an action with the number of times that the current grid will be reused */
--(id) initWithTimes: (int) times;
-@end
diff --git a/Classes/cocos2d/CCActionGrid.m b/Classes/cocos2d/CCActionGrid.m
deleted file mode 100644 (file)
index b2d8f98..0000000
+++ /dev/null
@@ -1,386 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 On-Core
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCActionGrid.h"
-#import "CCDirector.h"
-
-#pragma mark -
-#pragma mark GridAction
-
-@implementation CCGridAction
-
-@synthesize gridSize = gridSize_;
-
-+(id) actionWithSize:(ccGridSize)size duration:(ccTime)d
-{
-       return [[[self alloc] initWithSize:size duration:d ] autorelease];
-}
-
--(id) initWithSize:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithDuration:d]) )
-       {
-               gridSize_ = gSize;
-       }
-       
-       return self;
-}
-
--(void)startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-
-       CCGridBase *newgrid = [self grid];
-       
-       CCNode *t = (CCNode*) target_;
-       CCGridBase *targetGrid = [t grid];
-       
-       if ( targetGrid && targetGrid.reuseGrid > 0 )
-       {
-               if ( targetGrid.active && targetGrid.gridSize.x == gridSize_.x && targetGrid.gridSize.y == gridSize_.y && [targetGrid isKindOfClass:[newgrid class]] )
-                       [targetGrid reuse];
-               else
-                       [NSException raise:@"GridBase" format:@"Cannot reuse grid"];
-       }
-       else
-       {
-               if ( targetGrid && targetGrid.active )
-                       targetGrid.active = NO;
-               
-               t.grid = newgrid;
-               t.grid.active = YES;
-       }       
-}
-
--(CCGridBase *)grid
-{
-       [NSException raise:@"GridBase" format:@"Abstract class needs implementation"];
-       return nil;
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCReverseTime actionWithAction:self];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithSize:gridSize_ duration:duration_];
-       return copy;
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark Grid3DAction
-
-@implementation CCGrid3DAction
-
--(CCGridBase *)grid
-{
-       return [CCGrid3D gridWithSize:gridSize_];
-}
-
--(ccVertex3F)vertex:(ccGridSize)pos
-{
-       CCGrid3D *g = (CCGrid3D *)[target_ grid];
-       return [g vertex:pos];
-}
-
--(ccVertex3F)originalVertex:(ccGridSize)pos
-{
-       CCGrid3D *g = (CCGrid3D *)[target_ grid];
-       return [g originalVertex:pos];
-}
-
--(void)setVertex:(ccGridSize)pos vertex:(ccVertex3F)vertex
-{
-       CCGrid3D *g = (CCGrid3D *)[target_ grid];
-       return [g setVertex:pos vertex:vertex];
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark TiledGrid3DAction
-
-@implementation CCTiledGrid3DAction
-
--(CCGridBase *)grid
-{
-       return [CCTiledGrid3D gridWithSize:gridSize_];
-}
-
--(ccQuad3)tile:(ccGridSize)pos
-{
-       CCTiledGrid3D *g = (CCTiledGrid3D *)[target_ grid];
-       return [g tile:pos];
-}
-
--(ccQuad3)originalTile:(ccGridSize)pos
-{
-       CCTiledGrid3D *g = (CCTiledGrid3D *)[target_ grid];
-       return [g originalTile:pos];
-}
-
--(void)setTile:(ccGridSize)pos coords:(ccQuad3)coords
-{
-       CCTiledGrid3D *g = (CCTiledGrid3D *)[target_ grid];
-       [g setTile:pos coords:coords];
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-@interface CCActionInterval (Amplitude)
--(void)setAmplitudeRate:(CGFloat)amp;
--(CGFloat)getAmplitudeRate;
-@end
-
-@implementation CCActionInterval (Amplitude)
--(void)setAmplitudeRate:(CGFloat)amp
-{
-       [NSException raise:@"IntervalAction (Amplitude)" format:@"Abstract class needs implementation"];
-}
-
--(CGFloat)getAmplitudeRate
-{
-       [NSException raise:@"IntervalAction (Amplitude)" format:@"Abstract class needs implementation"];
-       return 0;
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark AccelDeccelAmplitude
-
-@implementation CCAccelDeccelAmplitude
-
-@synthesize rate;
-
-+(id)actionWithAction:(CCAction*)action duration:(ccTime)d
-{
-       return [[[self alloc] initWithAction:action duration:d ] autorelease];
-}
-
--(id)initWithAction:(CCAction *)action duration:(ccTime)d
-{
-       if ( (self = [super initWithDuration:d]) )
-       {
-               rate = 1.0f;
-               other = [action retain];
-       }
-       
-       return self;
-}
-
--(void)dealloc
-{
-       [other release];
-       [super dealloc];
-}
-
--(void)startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [other startWithTarget:target_];
-}
-
--(void) update: (ccTime) time
-{
-       float f = time*2;
-       
-       if (f > 1)
-       {
-               f -= 1;
-               f = 1 - f;
-       }
-       
-       [other setAmplitudeRate:powf(f, rate)];
-       [other update:time];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCAccelDeccelAmplitude actionWithAction:[other reverse] duration:duration_];
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark AccelAmplitude
-
-@implementation CCAccelAmplitude
-
-@synthesize rate;
-
-+(id)actionWithAction:(CCAction*)action duration:(ccTime)d
-{
-       return [[[self alloc] initWithAction:action duration:d ] autorelease];
-}
-
--(id)initWithAction:(CCAction *)action duration:(ccTime)d
-{
-       if ( (self = [super initWithDuration:d]) )
-       {
-               rate = 1.0f;
-               other = [action retain];
-       }
-       
-       return self;
-}
-
--(void)dealloc
-{
-       [other release];
-       [super dealloc];
-}
-
--(void)startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [other startWithTarget:target_];
-}
-
--(void) update: (ccTime) time
-{
-       [other setAmplitudeRate:powf(time, rate)];
-       [other update:time];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCAccelAmplitude actionWithAction:[other reverse] duration:self.duration];
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark DeccelAmplitude
-
-@implementation CCDeccelAmplitude
-
-@synthesize rate;
-
-+(id)actionWithAction:(CCAction*)action duration:(ccTime)d
-{
-       return [[[self alloc] initWithAction:action duration:d ] autorelease];
-}
-
--(id)initWithAction:(CCAction *)action duration:(ccTime)d
-{
-       if ( (self = [super initWithDuration:d]) )
-       {
-               rate = 1.0f;
-               other = [action retain];
-       }
-       
-       return self;
-}
-
--(void)dealloc
-{
-       [other release];
-       [super dealloc];
-}
-
--(void)startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [other startWithTarget:target_];
-}
-
--(void) update: (ccTime) time
-{
-       [other setAmplitudeRate:powf((1-time), rate)];
-       [other update:time];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCDeccelAmplitude actionWithAction:[other reverse] duration:self.duration];
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark StopGrid
-
-@implementation CCStopGrid
-
--(void)startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-
-       if ( [[self target] grid] && [[[self target] grid] active] ) {
-               [[[self target] grid] setActive: NO];
-               
-//             [[self target] setGrid: nil];
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark ReuseGrid
-
-@implementation CCReuseGrid
-
-+(id)actionWithTimes:(int)times
-{
-       return [[[self alloc] initWithTimes:times ] autorelease];
-}
-
--(id)initWithTimes:(int)times
-{
-       if ( (self = [super init]) )
-               t = times;
-       
-       return self;
-}
-
--(void)startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-
-       CCNode *myTarget = (CCNode*) [self target];
-       if ( myTarget.grid && myTarget.grid.active )
-               myTarget.grid.reuseGrid += t;
-}
-
-@end
diff --git a/Classes/cocos2d/CCActionGrid3D.h b/Classes/cocos2d/CCActionGrid3D.h
deleted file mode 100644 (file)
index a8003f4..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 On-Core
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCActionGrid.h"
-
-/** CCWaves3D action */
-@interface CCWaves3D : CCGrid3DAction
-{
-       int waves;
-       float amplitude;
-       float amplitudeRate;
-}
-
-/** amplitude of the wave */
-@property (nonatomic,readwrite) float amplitude;
-/** amplitude rate of the wave */
-@property (nonatomic,readwrite) float amplitudeRate;
-
-+(id)actionWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
--(id)initWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCFlipX3D action */
-@interface CCFlipX3D : CCGrid3DAction
-{
-}
-
-/** creates the action with duration */
-+(id) actionWithDuration:(ccTime)d;
-/** initizlies the action with duration */
--(id) initWithDuration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCFlipY3D action */
-@interface CCFlipY3D : CCFlipX3D
-{
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCLens3D action */
-@interface CCLens3D : CCGrid3DAction
-{
-       CGPoint position_;
-       CGPoint positionInPixels_;
-       float   radius_;
-       float   lensEffect_;
-       BOOL    dirty_;
-}
-
-/** lens effect. Defaults to 0.7 - 0 means no effect, 1 is very strong effect */
-@property (nonatomic,readwrite) float lensEffect;
-/** lens center position in Points */
-@property (nonatomic,readwrite) CGPoint position;
-
-/** creates the action with center position in Points, radius, a grid size and duration */
-+(id)actionWithPosition:(CGPoint)pos radius:(float)r grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with center position in Points, radius, a grid size and duration */
--(id)initWithPosition:(CGPoint)pos radius:(float)r grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCRipple3D action */
-@interface CCRipple3D : CCGrid3DAction
-{
-       CGPoint position_;
-       CGPoint positionInPixels_;
-       float   radius_;
-       int             waves_;
-       float   amplitude_;
-       float   amplitudeRate_;
-}
-
-/** center position in Points */
-@property (nonatomic,readwrite) CGPoint position;
-/** amplitude */
-@property (nonatomic,readwrite) float amplitude;
-/** amplitude rate */
-@property (nonatomic,readwrite) float amplitudeRate;
-
-/** creates the action with a position in points, radius, number of waves, amplitude, a grid size and duration */
-+(id)actionWithPosition:(CGPoint)pos radius:(float)r waves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with a position in points, radius, number of waves, amplitude, a grid size and duration */
--(id)initWithPosition:(CGPoint)pos radius:(float)r waves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCShaky3D action */
-@interface CCShaky3D : CCGrid3DAction
-{
-       int randrange;
-       BOOL    shakeZ;
-}
-
-/** creates the action with a range, shake Z vertices, a grid and duration */
-+(id)actionWithRange:(int)range shakeZ:(BOOL)shakeZ grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with a range, shake Z vertices, a grid and duration */
--(id)initWithRange:(int)range shakeZ:(BOOL)shakeZ grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCLiquid action */
-@interface CCLiquid : CCGrid3DAction
-{
-       int waves;
-       float amplitude;
-       float amplitudeRate;
-       
-}
-
-/** amplitude */
-@property (nonatomic,readwrite) float amplitude;
-/** amplitude rate */
-@property (nonatomic,readwrite) float amplitudeRate;
-
-/** creates the action with amplitude, a grid and duration */
-+(id)actionWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with amplitude, a grid and duration */
--(id)initWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCWaves action */
-@interface CCWaves : CCGrid3DAction
-{
-       int             waves;
-       float   amplitude;
-       float   amplitudeRate;
-       BOOL    vertical;
-       BOOL    horizontal;
-}
-
-/** amplitude */
-@property (nonatomic,readwrite) float amplitude;
-/** amplitude rate */
-@property (nonatomic,readwrite) float amplitudeRate;
-
-/** initializes the action with amplitude, horizontal sin, vertical sin, a grid and duration */
-+(id)actionWithWaves:(int)wav amplitude:(float)amp horizontal:(BOOL)h vertical:(BOOL)v grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** creates the action with amplitude, horizontal sin, vertical sin, a grid and duration */
--(id)initWithWaves:(int)wav amplitude:(float)amp horizontal:(BOOL)h vertical:(BOOL)v grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCTwirl action */
-@interface CCTwirl : CCGrid3DAction
-{
-       CGPoint position_;
-       CGPoint positionInPixels_;
-       int             twirls_;
-       float   amplitude_;
-       float   amplitudeRate_;
-}
-
-/** twirl center */
-@property (nonatomic,readwrite) CGPoint position;
-/** amplitude */
-@property (nonatomic,readwrite) float amplitude;
-/** amplitude rate */
-@property (nonatomic,readwrite) float amplitudeRate;
-
-/** creates the action with center position, number of twirls, amplitude, a grid size and duration */
-+(id)actionWithPosition:(CGPoint)pos twirls:(int)t amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with center position, number of twirls, amplitude, a grid size and duration */
--(id)initWithPosition:(CGPoint)pos twirls:(int)t amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
diff --git a/Classes/cocos2d/CCActionGrid3D.m b/Classes/cocos2d/CCActionGrid3D.m
deleted file mode 100644 (file)
index 1d4a783..0000000
+++ /dev/null
@@ -1,659 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 On-Core
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCActionGrid3D.h"
-#import "ccMacros.h"
-#import "Support/CGPointExtension.h"
-
-#pragma mark -
-#pragma mark Waves3D
-
-@implementation CCWaves3D
-
-@synthesize amplitude;
-@synthesize amplitudeRate;
-
-+(id)actionWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithWaves:wav amplitude:amp grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               waves = wav;
-               amplitude = amp;
-               amplitudeRate = 1.0f;
-       }
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithWaves:waves amplitude:amplitude grid:gridSize_ duration:duration_];
-       return copy;
-}
-
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       for( i = 0; i < (gridSize_.x+1); i++ )
-       {
-               for( j = 0; j < (gridSize_.y+1); j++ )
-               {
-                       ccVertex3F      v = [self originalVertex:ccg(i,j)];
-                       v.z += (sinf((CGFloat)M_PI*time*waves*2 + (v.y+v.x) * .01f) * amplitude * amplitudeRate);
-                       [self setVertex:ccg(i,j) vertex:v];
-               }
-       }
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark FlipX3D
-
-@implementation CCFlipX3D
-
-+(id) actionWithDuration:(ccTime)d
-{
-       return [[[self alloc] initWithSize:ccg(1,1) duration:d] autorelease];
-}
-
--(id) initWithDuration:(ccTime)d
-{
-       return [super initWithSize:ccg(1,1) duration:d];
-}
-
--(id)initWithSize:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( gSize.x != 1 || gSize.y != 1 )
-       {
-               [NSException raise:@"FlipX3D" format:@"Grid size must be (1,1)"];
-       }
-       
-       return [super initWithSize:gSize duration:d];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithSize:gridSize_ duration:duration_];
-       return copy;
-}
-
-
--(void)update:(ccTime)time
-{
-       CGFloat angle = (CGFloat)M_PI * time; // 180 degrees
-       CGFloat mz = sinf( angle );
-       angle = angle / 2.0f;     // x calculates degrees from 0 to 90
-       CGFloat mx = cosf( angle );
-       
-       ccVertex3F      v0, v1, v, diff;
-       
-       v0 = [self originalVertex:ccg(1,1)];
-       v1 = [self originalVertex:ccg(0,0)];
-       
-       CGFloat x0 = v0.x;
-       CGFloat x1 = v1.x;
-       CGFloat x;
-       ccGridSize      a, b, c, d;
-       
-       if ( x0 > x1 )
-       {
-               // Normal Grid
-               a = ccg(0,0);
-               b = ccg(0,1);
-               c = ccg(1,0);
-               d = ccg(1,1);
-               x = x0;
-       }
-       else
-       {
-               // Reversed Grid
-               c = ccg(0,0);
-               d = ccg(0,1);
-               a = ccg(1,0);
-               b = ccg(1,1);
-               x = x1;
-       }
-       
-       diff.x = ( x - x * mx );
-       diff.z = fabsf( floorf( (x * mz) / 4.0f ) );
-       
-// bottom-left
-       v = [self originalVertex:a];
-       v.x = diff.x;
-       v.z += diff.z;
-       [self setVertex:a vertex:v];
-       
-// upper-left
-       v = [self originalVertex:b];
-       v.x = diff.x;
-       v.z += diff.z;
-       [self setVertex:b vertex:v];
-       
-// bottom-right
-       v = [self originalVertex:c];
-       v.x -= diff.x;
-       v.z -= diff.z;
-       [self setVertex:c vertex:v];
-       
-// upper-right
-       v = [self originalVertex:d];
-       v.x -= diff.x;
-       v.z -= diff.z;
-       [self setVertex:d vertex:v];
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark FlipY3D
-
-@implementation CCFlipY3D
-
--(void)update:(ccTime)time
-{
-       CGFloat angle = (CGFloat)M_PI * time; // 180 degrees
-       CGFloat mz = sinf( angle );
-       angle = angle / 2.0f;     // x calculates degrees from 0 to 90
-       CGFloat my = cosf( angle );
-       
-       ccVertex3F      v0, v1, v, diff;
-       
-       v0 = [self originalVertex:ccg(1,1)];
-       v1 = [self originalVertex:ccg(0,0)];
-       
-       CGFloat y0 = v0.y;
-       CGFloat y1 = v1.y;
-       CGFloat y;
-       ccGridSize      a, b, c, d;
-       
-       if ( y0 > y1 )
-       {
-               // Normal Grid
-               a = ccg(0,0);
-               b = ccg(0,1);
-               c = ccg(1,0);
-               d = ccg(1,1);
-               y = y0;
-       }
-       else
-       {
-               // Reversed Grid
-               b = ccg(0,0);
-               a = ccg(0,1);
-               d = ccg(1,0);
-               c = ccg(1,1);
-               y = y1;
-       }
-       
-       diff.y = y - y * my;
-       diff.z = fabsf( floorf( (y * mz) / 4.0f ) );
-       
-       // bottom-left
-       v = [self originalVertex:a];
-       v.y = diff.y;
-       v.z += diff.z;
-       [self setVertex:a vertex:v];
-       
-       // upper-left
-       v = [self originalVertex:b];
-       v.y -= diff.y;
-       v.z -= diff.z;
-       [self setVertex:b vertex:v];
-       
-       // bottom-right
-       v = [self originalVertex:c];
-       v.y = diff.y;
-       v.z += diff.z;
-       [self setVertex:c vertex:v];
-       
-       // upper-right
-       v = [self originalVertex:d];
-       v.y -= diff.y;
-       v.z -= diff.z;
-       [self setVertex:d vertex:v];
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark Lens3D
-
-@implementation CCLens3D
-
-@synthesize lensEffect=lensEffect_;
-
-+(id)actionWithPosition:(CGPoint)pos radius:(float)r grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithPosition:pos radius:r grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithPosition:(CGPoint)pos radius:(float)r grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               position_ = ccp(-1,-1);
-               self.position = pos;
-               radius_ = r;
-               lensEffect_ = 0.7f;
-               dirty_ = YES;
-       }
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithPosition:position_ radius:radius_ grid:gridSize_ duration:duration_];
-       return copy;
-}
-
--(void) setPosition:(CGPoint)pos
-{
-       if( ! CGPointEqualToPoint(pos, position_) ) {
-               position_ = pos;
-               positionInPixels_.x = pos.x * CC_CONTENT_SCALE_FACTOR();
-               positionInPixels_.y = pos.y * CC_CONTENT_SCALE_FACTOR();
-               
-               dirty_ = YES;
-       }
-}
-
--(CGPoint) position
-{
-       return position_;
-}
-       
--(void)update:(ccTime)time
-{
-       if ( dirty_ )
-       {
-               int i, j;
-               
-               for( i = 0; i < gridSize_.x+1; i++ )
-               {
-                       for( j = 0; j < gridSize_.y+1; j++ )
-                       {
-                               ccVertex3F      v = [self originalVertex:ccg(i,j)];
-                               CGPoint vect = ccpSub(positionInPixels_, ccp(v.x,v.y));
-                               CGFloat r = ccpLength(vect);
-                               
-                               if ( r < radius_ )
-                               {
-                                       r = radius_ - r;
-                                       CGFloat pre_log = r / radius_;
-                                       if ( pre_log == 0 ) pre_log = 0.001f;
-                                       float l = logf(pre_log) * lensEffect_;
-                                       float new_r = expf( l ) * radius_;
-                                       
-                                       if ( ccpLength(vect) > 0 )
-                                       {
-                                               vect = ccpNormalize(vect);
-                                               CGPoint new_vect = ccpMult(vect, new_r);
-                                               v.z += ccpLength(new_vect) * lensEffect_;
-                                       }
-                               }
-                               
-                               [self setVertex:ccg(i,j) vertex:v];
-                       }
-               }
-               
-               dirty_ = NO;
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark Ripple3D
-
-@implementation CCRipple3D
-
-@synthesize amplitude = amplitude_;
-@synthesize amplitudeRate = amplitudeRate_;
-
-+(id)actionWithPosition:(CGPoint)pos radius:(float)r waves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithPosition:pos radius:r waves:wav amplitude:amp grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithPosition:(CGPoint)pos radius:(float)r waves:(int)wav amplitude:(float)amp grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               self.position = pos;
-               radius_ = r;
-               waves_ = wav;
-               amplitude_ = amp;
-               amplitudeRate_ = 1.0f;
-       }
-       
-       return self;
-}
-
--(CGPoint) position
-{
-       return position_;
-}
-
--(void) setPosition:(CGPoint)pos
-{
-       position_ = pos;
-       positionInPixels_.x = pos.x * CC_CONTENT_SCALE_FACTOR();
-       positionInPixels_.y = pos.y * CC_CONTENT_SCALE_FACTOR();
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithPosition:position_ radius:radius_ waves:waves_ amplitude:amplitude_ grid:gridSize_ duration:duration_];
-       return copy;
-}
-
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       for( i = 0; i < (gridSize_.x+1); i++ )
-       {
-               for( j = 0; j < (gridSize_.y+1); j++ )
-               {
-                       ccVertex3F      v = [self originalVertex:ccg(i,j)];
-                       CGPoint vect = ccpSub(positionInPixels_, ccp(v.x,v.y));
-                       CGFloat r = ccpLength(vect);
-                       
-                       if ( r < radius_ )
-                       {
-                               r = radius_ - r;
-                               CGFloat rate = powf( r / radius_, 2);
-                               v.z += (sinf( time*(CGFloat)M_PI*waves_*2 + r * 0.1f) * amplitude_ * amplitudeRate_ * rate );
-                       }
-                       
-                       [self setVertex:ccg(i,j) vertex:v];
-               }
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark Shaky3D
-
-@implementation CCShaky3D
-
-+(id)actionWithRange:(int)range shakeZ:(BOOL)sz grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithRange:range shakeZ:sz grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithRange:(int)range shakeZ:(BOOL)sz grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               randrange = range;
-               shakeZ = sz;
-       }
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithRange:randrange shakeZ:shakeZ grid:gridSize_ duration:duration_];
-       return copy;
-}
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       for( i = 0; i < (gridSize_.x+1); i++ )
-       {
-               for( j = 0; j < (gridSize_.y+1); j++ )
-               {
-                       ccVertex3F      v = [self originalVertex:ccg(i,j)];
-                       v.x += ( rand() % (randrange*2) ) - randrange;
-                       v.y += ( rand() % (randrange*2) ) - randrange;
-                       if( shakeZ )
-                               v.z += ( rand() % (randrange*2) ) - randrange;
-                       
-                       [self setVertex:ccg(i,j) vertex:v];
-               }
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark Liquid
-
-@implementation CCLiquid
-
-@synthesize amplitude;
-@synthesize amplitudeRate;
-
-+(id)actionWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithWaves:wav amplitude:amp grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               waves = wav;
-               amplitude = amp;
-               amplitudeRate = 1.0f;
-       }
-       
-       return self;
-}
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       for( i = 1; i < gridSize_.x; i++ )
-       {
-               for( j = 1; j < gridSize_.y; j++ )
-               {
-                       ccVertex3F      v = [self originalVertex:ccg(i,j)];
-                       v.x = (v.x + (sinf(time*(CGFloat)M_PI*waves*2 + v.x * .01f) * amplitude * amplitudeRate));
-                       v.y = (v.y + (sinf(time*(CGFloat)M_PI*waves*2 + v.y * .01f) * amplitude * amplitudeRate));
-                       [self setVertex:ccg(i,j) vertex:v];
-               }
-       }
-}      
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithWaves:waves amplitude:amplitude grid:gridSize_ duration:duration_];
-       return copy;
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark Waves
-
-@implementation CCWaves
-
-@synthesize amplitude;
-@synthesize amplitudeRate;
-
-+(id)actionWithWaves:(int)wav amplitude:(float)amp horizontal:(BOOL)h vertical:(BOOL)v grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithWaves:wav amplitude:amp horizontal:h vertical:v grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithWaves:(int)wav amplitude:(float)amp horizontal:(BOOL)h vertical:(BOOL)v grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               waves = wav;
-               amplitude = amp;
-               amplitudeRate = 1.0f;
-               horizontal = h;
-               vertical = v;
-       }
-       
-       return self;
-}
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       for( i = 0; i < (gridSize_.x+1); i++ )
-       {
-               for( j = 0; j < (gridSize_.y+1); j++ )
-               {
-                       ccVertex3F      v = [self originalVertex:ccg(i,j)];
-                       
-                       if ( vertical )
-                               v.x = (v.x + (sinf(time*(CGFloat)M_PI*waves*2 + v.y * .01f) * amplitude * amplitudeRate));
-                       
-                       if ( horizontal )
-                               v.y = (v.y + (sinf(time*(CGFloat)M_PI*waves*2 + v.x * .01f) * amplitude * amplitudeRate));
-                                       
-                       [self setVertex:ccg(i,j) vertex:v];
-               }
-       }
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithWaves:waves amplitude:amplitude horizontal:horizontal vertical:vertical grid:gridSize_ duration:duration_];
-       return copy;
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark Twirl
-
-@implementation CCTwirl
-
-@synthesize amplitude = amplitude_;
-@synthesize amplitudeRate = amplitudeRate_;
-
-+(id)actionWithPosition:(CGPoint)pos twirls:(int)t amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithPosition:pos twirls:t amplitude:amp grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithPosition:(CGPoint)pos twirls:(int)t amplitude:(float)amp grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               self.position = pos;
-               twirls_ = t;
-               amplitude_ = amp;
-               amplitudeRate_ = 1.0f;
-       }
-       
-       return self;
-}
-
--(void) setPosition:(CGPoint)pos
-{
-       position_ = pos;
-       positionInPixels_.x = pos.x * CC_CONTENT_SCALE_FACTOR();
-       positionInPixels_.y = pos.y * CC_CONTENT_SCALE_FACTOR();
-}
-
--(CGPoint) position
-{
-       return position_;
-}
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       CGPoint c = positionInPixels_;
-       
-       for( i = 0; i < (gridSize_.x+1); i++ )
-       {
-               for( j = 0; j < (gridSize_.y+1); j++ )
-               {
-                       ccVertex3F v = [self originalVertex:ccg(i,j)];
-                       
-                       CGPoint avg = ccp(i-(gridSize_.x/2.0f), j-(gridSize_.y/2.0f));
-                       CGFloat r = ccpLength( avg );
-                       
-                       CGFloat amp = 0.1f * amplitude_ * amplitudeRate_;
-                       CGFloat a = r * cosf( (CGFloat)M_PI/2.0f + time * (CGFloat)M_PI * twirls_ * 2 ) * amp;
-                       
-                       float cosA = cosf(a);
-                       float sinA = sinf(a);
-                       
-                       CGPoint d = {
-                               sinA * (v.y-c.y) + cosA * (v.x-c.x),
-                               cosA * (v.y-c.y) - sinA * (v.x-c.x)
-                       };
-                       
-                       v.x = c.x + d.x;
-                       v.y = c.y + d.y;
-                       
-                       [self setVertex:ccg(i,j) vertex:v];
-               }
-       }
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithPosition:position_
-                                                                                                                                         twirls:twirls_
-                                                                                                                                  amplitude:amplitude_
-                                                                                                                                               grid:gridSize_
-                                                                                                                                       duration:duration_];
-       return copy;
-}
-
-
-@end
diff --git a/Classes/cocos2d/CCActionInstant.h b/Classes/cocos2d/CCActionInstant.h
deleted file mode 100644 (file)
index 40eb15f..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCAction.h"
-
-/** Instant actions are immediate actions. They don't have a duration like
- the CCIntervalAction actions.
-*/ 
-@interface CCActionInstant : CCFiniteTimeAction <NSCopying>
-{
-}
-@end
-
-/** Show the node
- */
- @interface CCShow : CCActionInstant
-{
-}
-@end
-
-/** Hide the node
- */
-@interface CCHide : CCActionInstant
-{
-}
-@end
-
-/** Toggles the visibility of a node
- */
-@interface CCToggleVisibility : CCActionInstant
-{
-}
-@end
-
-/** Flips the sprite horizontally
- @since v0.99.0
- */
-@interface CCFlipX : CCActionInstant
-{
-       BOOL    flipX;
-}
-+(id) actionWithFlipX:(BOOL)x;
--(id) initWithFlipX:(BOOL)x;
-@end
-
-/** Flips the sprite vertically
- @since v0.99.0
- */
-@interface CCFlipY : CCActionInstant
-{
-       BOOL    flipY;
-}
-+(id) actionWithFlipY:(BOOL)y;
--(id) initWithFlipY:(BOOL)y;
-@end
-
-/** Places the node in a certain position
- */
-@interface CCPlace : CCActionInstant <NSCopying>
-{
-       CGPoint position;
-}
-/** creates a Place action with a position */
-+(id) actionWithPosition: (CGPoint) pos;
-/** Initializes a Place action with a position */
--(id) initWithPosition: (CGPoint) pos;
-@end
-
-/** Calls a 'callback'
- */
-@interface CCCallFunc : CCActionInstant <NSCopying>
-{
-       id targetCallback_;
-       SEL selector_;
-}
-/** creates the action with the callback */
-+(id) actionWithTarget: (id) t selector:(SEL) s;
-/** initializes the action with the callback */
--(id) initWithTarget: (id) t selector:(SEL) s;
-/** exeuctes the callback */
--(void) execute;
-@end
-
-/** Calls a 'callback' with the node as the first argument.
- N means Node
- */
-@interface CCCallFuncN : CCCallFunc
-{
-}
-@end
-
-typedef void (*CC_CALLBACK_ND)(id, SEL, id, void *);
-/** Calls a 'callback' with the node as the first argument and the 2nd argument is data.
- * ND means: Node and Data. Data is void *, so it could be anything.
- */
-@interface CCCallFuncND : CCCallFuncN
-{
-       void                    *data_;
-       CC_CALLBACK_ND  callbackMethod_;
-}
-
-/** Invocation object that has the target#selector and the parameters */
-@property (nonatomic,readwrite) CC_CALLBACK_ND callbackMethod;
-
-/** creates the action with the callback and the data to pass as an argument */
-+(id) actionWithTarget: (id) t selector:(SEL) s data:(void*)d;
-/** initializes the action with the callback and the data to pass as an argument */
--(id) initWithTarget:(id) t selector:(SEL) s data:(void*) d;
-@end
-
-/** Calls a 'callback' with an object as the first argument.
- O means Object.
- @since v0.99.5
- */
-@interface CCCallFuncO : CCCallFunc
-{
-       id      object_;
-}
-/** creates the action with the callback and the object to pass as an argument */
-+(id) actionWithTarget: (id) t selector:(SEL) s object:(id)object;
-/** initializes the action with the callback and the object to pass as an argument */
--(id) initWithTarget:(id) t selector:(SEL) s object:(id)object;
-
-@end
-
-#pragma mark Blocks Support
-
-#if NS_BLOCKS_AVAILABLE
-
-/** Executes a callback using a block.
- */
-@interface CCCallBlock : CCActionInstant<NSCopying>
-{
-       void (^block_)();
-}
-
-/** creates the action with the specified block, to be used as a callback.
- The block will be "copied".
- */
-+(id) actionWithBlock:(void(^)())block;
-
-/** initialized the action with the specified block, to be used as a callback.
- The block will be "copied".
- */
--(id) initWithBlock:(void(^)())block;
-
-/** executes the callback */
--(void) execute;
-@end
-
-@class CCNode;
-
-/** Executes a callback using a block with a single CCNode parameter.
- */
-@interface CCCallBlockN : CCActionInstant<NSCopying>
-{
-       void (^block_)(CCNode *);
-}
-
-/** creates the action with the specified block, to be used as a callback.
- The block will be "copied".
- */
-+(id) actionWithBlock:(void(^)(CCNode *node))block;
-
-/** initialized the action with the specified block, to be used as a callback.
- The block will be "copied".
- */
--(id) initWithBlock:(void(^)(CCNode *node))block;
-
-/** executes the callback */
--(void) execute;
-@end
-
-#endif
diff --git a/Classes/cocos2d/CCActionInstant.m b/Classes/cocos2d/CCActionInstant.m
deleted file mode 100644 (file)
index 2b9072c..0000000
+++ /dev/null
@@ -1,472 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCBlockSupport.h"
-#import "CCActionInstant.h"
-#import "CCNode.h"
-#import "CCSprite.h"
-
-
-//
-// InstantAction
-//
-#pragma mark CCActionInstant
-
-@implementation CCActionInstant
-
--(id) init
-{
-       if( (self=[super init]) )       
-               duration_ = 0;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCActionInstant *copy = [[[self class] allocWithZone: zone] init];
-       return copy;
-}
-
-- (BOOL) isDone
-{
-       return YES;
-}
-
--(void) step: (ccTime) dt
-{
-       [self update: 1];
-}
-
--(void) update: (ccTime) t
-{
-       // ignore
-}
-
--(CCFiniteTimeAction*) reverse
-{
-       return [[self copy] autorelease];
-}
-@end
-
-//
-// Show
-//
-#pragma mark CCShow
-
-@implementation CCShow
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       ((CCNode *)target_).visible = YES;
-}
-
--(CCFiniteTimeAction*) reverse
-{
-       return [CCHide action];
-}
-@end
-
-//
-// Hide
-//
-#pragma mark CCHide
-
-@implementation CCHide
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       ((CCNode *)target_).visible = NO;
-}
-
--(CCFiniteTimeAction*) reverse
-{
-       return [CCShow action];
-}
-@end
-
-//
-// ToggleVisibility
-//
-#pragma mark CCToggleVisibility
-
-@implementation CCToggleVisibility
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       ((CCNode *)target_).visible = !((CCNode *)target_).visible;
-}
-@end
-
-//
-// FlipX
-//
-#pragma mark CCFlipX
-
-@implementation CCFlipX
-+(id) actionWithFlipX:(BOOL)x
-{
-       return [[[self alloc] initWithFlipX:x] autorelease];
-}
-
--(id) initWithFlipX:(BOOL)x
-{
-       if(( self=[super init]))
-               flipX = x;
-       
-       return self;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [(CCSprite*)aTarget setFlipX:flipX];
-}
-
--(CCFiniteTimeAction*) reverse
-{
-       return [CCFlipX actionWithFlipX:!flipX];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCActionInstant *copy = [[[self class] allocWithZone: zone] initWithFlipX:flipX];
-       return copy;
-}
-@end
-
-//
-// FlipY
-//
-#pragma mark CCFlipY
-
-@implementation CCFlipY
-+(id) actionWithFlipY:(BOOL)y
-{
-       return [[[self alloc] initWithFlipY:y] autorelease];
-}
-
--(id) initWithFlipY:(BOOL)y
-{
-       if(( self=[super init]))
-               flipY = y;
-       
-       return self;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [(CCSprite*)aTarget setFlipY:flipY];
-}
-
--(CCFiniteTimeAction*) reverse
-{
-       return [CCFlipY actionWithFlipY:!flipY];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCActionInstant *copy = [[[self class] allocWithZone: zone] initWithFlipY:flipY];
-       return copy;
-}
-@end
-
-
-//
-// Place
-//
-#pragma mark CCPlace
-
-@implementation CCPlace
-+(id) actionWithPosition: (CGPoint) pos
-{
-       return [[[self alloc]initWithPosition:pos]autorelease];
-}
-
--(id) initWithPosition: (CGPoint) pos
-{
-       if( (self=[super init]) )
-               position = pos;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCActionInstant *copy = [[[self class] allocWithZone: zone] initWithPosition: position];
-       return copy;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       ((CCNode *)target_).position = position;
-}
-
-@end
-
-//
-// CallFunc
-//
-#pragma mark CCCallFunc
-
-@implementation CCCallFunc
-+(id) actionWithTarget: (id) t selector:(SEL) s
-{
-       return [[[self alloc] initWithTarget: t selector: s] autorelease];
-}
-
--(id) initWithTarget: (id) t selector:(SEL) s
-{
-       if( (self=[super init]) ) {
-               targetCallback_ = [t retain];
-               selector_ = s;
-       }
-       return self;
-}
-
--(NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | Tag = %i | target = %@ | selector = %@>",
-                       [self class],
-                       self,
-                       tag_,
-                       [targetCallback_ class],
-                       NSStringFromSelector(selector_)
-                       ];
-}
-
--(void) dealloc
-{
-       [targetCallback_ release];
-       [super dealloc];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCActionInstant *copy = [[[self class] allocWithZone: zone] initWithTarget:targetCallback_ selector:selector_];
-       return copy;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [self execute];
-}
-
--(void) execute
-{
-       [targetCallback_ performSelector:selector_];
-}
-@end
-
-//
-// CallFuncN
-//
-#pragma mark CCCallFuncN
-
-@implementation CCCallFuncN
-
--(void) execute
-{
-       [targetCallback_ performSelector:selector_ withObject:target_];
-}
-@end
-
-//
-// CallFuncND
-//
-#pragma mark CCCallFuncND
-
-@implementation CCCallFuncND
-
-@synthesize callbackMethod = callbackMethod_;
-
-+(id) actionWithTarget:(id)t selector:(SEL)s data:(void*)d
-{
-       return [[[self alloc] initWithTarget:t selector:s data:d] autorelease];
-}
-
--(id) initWithTarget:(id)t selector:(SEL)s data:(void*)d
-{
-       if( (self=[super initWithTarget:t selector:s]) ) {
-               data_ = d;
-
-#if COCOS2D_DEBUG
-               NSMethodSignature * sig = [t methodSignatureForSelector:s]; // added
-               NSAssert(sig !=0 , @"Signature not found for selector - does it have the following form? -(void)name:(id)sender data:(void*)data");
-#endif
-               callbackMethod_ = (CC_CALLBACK_ND) [t methodForSelector:s];
-       }
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCActionInstant *copy = [[[self class] allocWithZone: zone] initWithTarget:targetCallback_ selector:selector_ data:data_];
-       return copy;
-}
-
--(void) dealloc
-{
-       // nothing to dealloc really. Everything is dealloc on super (CCCallFuncN)
-       [super dealloc];
-}
-
--(void) execute
-{
-       callbackMethod_(targetCallback_,selector_,target_, data_);
-}
-@end
-
-@implementation CCCallFuncO
-
-+(id) actionWithTarget: (id) t selector:(SEL) s object:(id)object
-{
-       return [[[self alloc] initWithTarget:t selector:s object:object] autorelease];
-}
-
--(id) initWithTarget:(id) t selector:(SEL) s object:(id)object
-{
-       if( (self=[super initWithTarget:t selector:s] ) )
-               object_ = [object retain];
-       
-       return self;
-}
-
-- (void) dealloc
-{
-       [object_ release];
-       [super dealloc];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCActionInstant *copy = [[[self class] allocWithZone: zone] initWithTarget:targetCallback_ selector:selector_ object:object_];
-       return copy;
-}
-
-
--(void) execute
-{
-       [targetCallback_ performSelector:selector_ withObject:object_];
-}
-
-@end
-
-
-#pragma mark -
-#pragma mark Blocks
-
-#if NS_BLOCKS_AVAILABLE
-
-#pragma mark CCCallBlock
-
-@implementation CCCallBlock
-
-+(id) actionWithBlock:(void(^)())block
-{
-       return [[[self alloc] initWithBlock:block] autorelease];
-}
-
--(id) initWithBlock:(void(^)())block
-{
-       if ((self = [super init]))
-               block_ = [block copy];
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCActionInstant *copy = [[[self class] allocWithZone: zone] initWithBlock:block_];
-       return copy;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [self execute];
-}
-
--(void) execute
-{
-       block_();
-}
-
--(void) dealloc
-{
-       [block_ release];
-       [super dealloc];
-}
-
-@end
-
-#pragma mark CCCallBlockN
-
-@implementation CCCallBlockN
-
-+(id) actionWithBlock:(void(^)(CCNode *node))block
-{
-       return [[[self alloc] initWithBlock:block] autorelease];
-}
-
--(id) initWithBlock:(void(^)(CCNode *node))block
-{
-       if ((self = [super init]))
-               block_ = [block copy];
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCActionInstant *copy = [[[self class] allocWithZone: zone] initWithBlock:block_];
-       return copy;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [self execute];
-}
-
--(void) execute
-{
-       block_(target_);
-}
-
--(void) dealloc
-{
-       [block_ release];
-       [super dealloc];
-}
-
-@end
-
-
-#endif // NS_BLOCKS_AVAILABLE
diff --git a/Classes/cocos2d/CCActionInterval.h b/Classes/cocos2d/CCActionInterval.h
deleted file mode 100644 (file)
index 035bd50..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCNode.h"
-#import "CCAction.h"
-#import "CCProtocols.h"
-
-#include <sys/time.h>
-
-/** An interval action is an action that takes place within a certain period of time.
-It has an start time, and a finish time. The finish time is the parameter
-duration plus the start time.
-
-These CCActionInterval actions have some interesting properties, like:
- - They can run normally (default)
- - They can run reversed with the reverse method
- - They can run with the time altered with the Accelerate, AccelDeccel and Speed actions.
-
-For example, you can simulate a Ping Pong effect running the action normally and
-then running it again in Reverse mode.
-
-Example:
-       CCAction * pingPongAction = [CCSequence actions: action, [action reverse], nil];
-*/
-@interface CCActionInterval: CCFiniteTimeAction <NSCopying>
-{
-       ccTime  elapsed_;
-       BOOL    firstTick_;
-}
-
-/** how many seconds had elapsed since the actions started to run. */
-@property (nonatomic,readonly) ccTime elapsed;
-
-/** creates the action */
-+(id) actionWithDuration: (ccTime) d;
-/** initializes the action */
--(id) initWithDuration: (ccTime) d;
-/** returns YES if the action has finished */
--(BOOL) isDone;
-/** returns a reversed action */
-- (CCActionInterval*) reverse;
-@end
-
-/** Runs actions sequentially, one after another
- */
-@interface CCSequence : CCActionInterval <NSCopying>
-{
-       CCFiniteTimeAction *actions[2];
-       ccTime split;
-       int last;
-}
-/** helper contructor to create an array of sequenceable actions */
-+(id) actions: (CCFiniteTimeAction*) action1, ... NS_REQUIRES_NIL_TERMINATION;
-/** creates the action */
-+(id) actionOne:(CCFiniteTimeAction*)actionOne two:(CCFiniteTimeAction*)actionTwo;
-/** initializes the action */
--(id) initOne:(CCFiniteTimeAction*)actionOne two:(CCFiniteTimeAction*)actionTwo;
-@end
-
-
-/** Repeats an action a number of times.
- * To repeat an action forever use the CCRepeatForever action.
- */
-@interface CCRepeat : CCActionInterval <NSCopying>
-{
-       unsigned int times_;
-       unsigned int total_;
-       CCFiniteTimeAction *other_;
-}
-/** creates a CCRepeat action. Times is an unsigned integer between 1 and pow(2,30) */
-+(id) actionWithAction:(CCFiniteTimeAction*)action times: (unsigned int)times;
-/** initializes a CCRepeat action. Times is an unsigned integer between 1 and pow(2,30) */
--(id) initWithAction:(CCFiniteTimeAction*)action times: (unsigned int)times;
-@end
-
-/** Spawn a new action immediately
- */
-@interface CCSpawn : CCActionInterval <NSCopying>
-{
-       CCFiniteTimeAction *one;
-       CCFiniteTimeAction *two;
-}
-/** helper constructor to create an array of spawned actions */
-+(id) actions: (CCFiniteTimeAction*) action1, ... NS_REQUIRES_NIL_TERMINATION;
-/** creates the Spawn action */
-+(id) actionOne: (CCFiniteTimeAction*) one two:(CCFiniteTimeAction*) two;
-/** initializes the Spawn action with the 2 actions to spawn */
--(id) initOne: (CCFiniteTimeAction*) one two:(CCFiniteTimeAction*) two;
-@end
-
-/**  Rotates a CCNode object to a certain angle by modifying it's
- rotation attribute.
- The direction will be decided by the shortest angle.
-*/ 
-@interface CCRotateTo : CCActionInterval <NSCopying>
-{
-       float dstAngle;
-       float startAngle;
-       float diffAngle;
-}
-/** creates the action */
-+(id) actionWithDuration:(ccTime)duration angle:(float)angle;
-/** initializes the action */
--(id) initWithDuration:(ccTime)duration angle:(float)angle;
-@end
-
-/** Rotates a CCNode object clockwise a number of degrees by modiying it's rotation attribute.
-*/
-@interface CCRotateBy : CCActionInterval <NSCopying>
-{
-       float angle;
-       float startAngle;
-}
-/** creates the action */
-+(id) actionWithDuration:(ccTime)duration angle:(float)deltaAngle;
-/** initializes the action */
--(id) initWithDuration:(ccTime)duration angle:(float)deltaAngle;
-@end
-
-/** Moves a CCNode object to the position x,y. x and y are absolute coordinates by modifying it's position attribute.
-*/
-@interface CCMoveTo : CCActionInterval <NSCopying>
-{
-       CGPoint endPosition;
-       CGPoint startPosition;
-       CGPoint delta;
-}
-/** creates the action */
-+(id) actionWithDuration:(ccTime)duration position:(CGPoint)position;
-/** initializes the action */
--(id) initWithDuration:(ccTime)duration position:(CGPoint)position;
-@end
-
-/**  Moves a CCNode object x,y pixels by modifying it's position attribute.
- x and y are relative to the position of the object.
- Duration is is seconds.
-*/ 
-@interface CCMoveBy : CCMoveTo <NSCopying>
-{
-}
-/** creates the action */
-+(id) actionWithDuration: (ccTime)duration position:(CGPoint)deltaPosition;
-/** initializes the action */
--(id) initWithDuration: (ccTime)duration position:(CGPoint)deltaPosition;
-@end
-
-/** Moves a CCNode object simulating a parabolic jump movement by modifying it's position attribute.
-*/
- @interface CCJumpBy : CCActionInterval <NSCopying>
-{
-       CGPoint startPosition;
-       CGPoint delta;
-       ccTime height;
-       int jumps;
-}
-/** creates the action */
-+(id) actionWithDuration: (ccTime)duration position:(CGPoint)position height:(ccTime)height jumps:(int)jumps;
-/** initializes the action */
--(id) initWithDuration: (ccTime)duration position:(CGPoint)position height:(ccTime)height jumps:(int)jumps;
-@end
-
-/** Moves a CCNode object to a parabolic position simulating a jump movement by modifying it's position attribute.
-*/ 
- @interface CCJumpTo : CCJumpBy <NSCopying>
-{
-}
-@end
-
-/** bezier configuration structure
- */
-typedef struct _ccBezierConfig {
-       //! end position of the bezier
-       CGPoint endPosition;
-       //! Bezier control point 1
-       CGPoint controlPoint_1;
-       //! Bezier control point 2
-       CGPoint controlPoint_2;
-} ccBezierConfig;
-
-/** An action that moves the target with a cubic Bezier curve by a certain distance.
- */
-@interface CCBezierBy : CCActionInterval <NSCopying>
-{
-       ccBezierConfig config;
-       CGPoint startPosition;
-}
-
-/** creates the action with a duration and a bezier configuration */
-+(id) actionWithDuration: (ccTime) t bezier:(ccBezierConfig) c;
-
-/** initializes the action with a duration and a bezier configuration */
--(id) initWithDuration: (ccTime) t bezier:(ccBezierConfig) c;
-@end
-
-/** An action that moves the target with a cubic Bezier curve to a destination point.
- @since v0.8.2
- */
-@interface CCBezierTo : CCBezierBy
-{
-}
-@end
-
-/** Scales a CCNode object to a zoom factor by modifying it's scale attribute.
- @warning This action doesn't support "reverse"
- */
-@interface CCScaleTo : CCActionInterval <NSCopying>
-{
-       float scaleX;
-       float scaleY;
-       float startScaleX;
-       float startScaleY;
-       float endScaleX;
-       float endScaleY;
-       float deltaX;
-       float deltaY;
-}
-/** creates the action with the same scale factor for X and Y */
-+(id) actionWithDuration: (ccTime)duration scale:(float) s;
-/** initializes the action with the same scale factor for X and Y */
--(id) initWithDuration: (ccTime)duration scale:(float) s;
-/** creates the action with and X factor and a Y factor */
-+(id) actionWithDuration: (ccTime)duration scaleX:(float) sx scaleY:(float)sy;
-/** initializes the action with and X factor and a Y factor */
--(id) initWithDuration: (ccTime)duration scaleX:(float) sx scaleY:(float)sy;
-@end
-
-/** Scales a CCNode object a zoom factor by modifying it's scale attribute.
-*/
-@interface CCScaleBy : CCScaleTo <NSCopying>
-{
-}
-@end
-
-/** Blinks a CCNode object by modifying it's visible attribute
-*/
-@interface CCBlink : CCActionInterval <NSCopying>
-{
-       int times;
-}
-/** creates the action */
-+(id) actionWithDuration: (ccTime)duration blinks:(unsigned int)blinks;
-/** initilizes the action */
--(id) initWithDuration: (ccTime)duration blinks:(unsigned int)blinks;
-@end
-
-/** Fades In an object that implements the CCRGBAProtocol protocol. It modifies the opacity from 0 to 255.
- The "reverse" of this action is FadeOut
- */
-@interface CCFadeIn : CCActionInterval <NSCopying>
-{
-}
-@end
-
-/** Fades Out an object that implements the CCRGBAProtocol protocol. It modifies the opacity from 255 to 0.
- The "reverse" of this action is FadeIn
-*/
-@interface CCFadeOut : CCActionInterval <NSCopying>
-{
-}
-@end
-
-/** Fades an object that implements the CCRGBAProtocol protocol. It modifies the opacity from the current value to a custom one.
- @warning This action doesn't support "reverse"
- */
-@interface CCFadeTo : CCActionInterval <NSCopying>
-{
-       GLubyte toOpacity;
-       GLubyte fromOpacity;
-}
-/** creates an action with duration and opactiy */
-+(id) actionWithDuration:(ccTime)duration opacity:(GLubyte)opactiy;
-/** initializes the action with duration and opacity */
--(id) initWithDuration:(ccTime)duration opacity:(GLubyte)opacity;
-@end
-
-/** Tints a CCNode that implements the CCNodeRGB protocol from current tint to a custom one.
- @warning This action doesn't support "reverse"
- @since v0.7.2
-*/
-@interface CCTintTo : CCActionInterval <NSCopying>
-{
-       ccColor3B to;
-       ccColor3B from;
-}
-/** creates an action with duration and color */
-+(id) actionWithDuration:(ccTime)duration red:(GLubyte)red green:(GLubyte)green blue:(GLubyte)blue;
-/** initializes the action with duration and color */
--(id) initWithDuration:(ccTime)duration red:(GLubyte)red green:(GLubyte)green blue:(GLubyte)blue;
-@end
-
-/** Tints a CCNode that implements the CCNodeRGB protocol from current tint to a custom one.
- @since v0.7.2
- */
-@interface CCTintBy : CCActionInterval <NSCopying>
-{
-       GLshort deltaR, deltaG, deltaB;
-       GLshort fromR, fromG, fromB;
-}
-/** creates an action with duration and color */
-+(id) actionWithDuration:(ccTime)duration red:(GLshort)deltaRed green:(GLshort)deltaGreen blue:(GLshort)deltaBlue;
-/** initializes the action with duration and color */
--(id) initWithDuration:(ccTime)duration red:(GLshort)deltaRed green:(GLshort)deltaGreen blue:(GLshort)deltaBlue;
-@end
-
-/** Delays the action a certain amount of seconds
-*/
-@interface CCDelayTime : CCActionInterval <NSCopying>
-{
-}
-@end
-
-/** Executes an action in reverse order, from time=duration to time=0
- @warning Use this action carefully. This action is not
- sequenceable. Use it as the default "reversed" method
- of your own actions, but using it outside the "reversed"
- scope is not recommended.
-*/
-@interface CCReverseTime : CCActionInterval <NSCopying>
-{
-       CCFiniteTimeAction * other;
-}
-/** creates the action */
-+(id) actionWithAction: (CCFiniteTimeAction*) action;
-/** initializes the action */
--(id) initWithAction: (CCFiniteTimeAction*) action;
-@end
-
-
-@class CCAnimation;
-@class CCTexture2D;
-/** Animates a sprite given the name of an Animation */
-@interface CCAnimate : CCActionInterval <NSCopying>
-{
-       CCAnimation *animation_;
-       id origFrame;
-       BOOL restoreOriginalFrame;
-}
-/** animation used for the animage */
-@property (readwrite,nonatomic,retain) CCAnimation * animation;
-
-/** creates the action with an Animation and will restore the original frame when the animation is over */
-+(id) actionWithAnimation:(CCAnimation*) a;
-/** initializes the action with an Animation and will restore the original frame when the animtion is over */
--(id) initWithAnimation:(CCAnimation*) a;
-/** creates the action with an Animation */
-+(id) actionWithAnimation:(CCAnimation*) a restoreOriginalFrame:(BOOL)b;
-/** initializes the action with an Animation */
--(id) initWithAnimation:(CCAnimation*) a restoreOriginalFrame:(BOOL)b;
-/** creates an action with a duration, animation and depending of the restoreOriginalFrame, it will restore the original frame or not.
- The 'delay' parameter of the animation will be overrided by the duration parameter.
- @since v0.99.0
- */
-+(id) actionWithDuration:(ccTime)duration animation:(CCAnimation*)animation restoreOriginalFrame:(BOOL)b;
-/** initializes an action with a duration, animation and depending of the restoreOriginalFrame, it will restore the original frame or not.
- The 'delay' parameter of the animation will be overrided by the duration parameter.
- @since v0.99.0
- */
--(id) initWithDuration:(ccTime)duration animation:(CCAnimation*)animation restoreOriginalFrame:(BOOL)b;
-@end
\ No newline at end of file
diff --git a/Classes/cocos2d/CCActionInterval.m b/Classes/cocos2d/CCActionInterval.m
deleted file mode 100644 (file)
index 148bb0a..0000000
+++ /dev/null
@@ -1,1213 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-
-#import "CCActionInterval.h"
-#import "CCSprite.h"
-#import "CCSpriteFrame.h"
-#import "CCAnimation.h"
-#import "CCNode.h"
-#import "Support/CGPointExtension.h"
-
-//
-// IntervalAction
-//
-#pragma mark -
-#pragma mark IntervalAction
-@implementation CCActionInterval
-
-@synthesize elapsed = elapsed_;
-
--(id) init
-{
-       NSAssert(NO, @"IntervalActionInit: Init not supported. Use InitWithDuration");
-       [self release];
-       return nil;
-}
-
-+(id) actionWithDuration: (ccTime) d
-{
-       return [[[self alloc] initWithDuration:d ] autorelease];
-}
-
--(id) initWithDuration: (ccTime) d
-{
-       if( (self=[super init]) ) {
-               duration_ = d;
-               
-               // prevent division by 0
-               // This comparison could be in step:, but it might decrease the performance
-               // by 3% in heavy based action games.
-               if( duration_ == 0 )
-                       duration_ = FLT_EPSILON;
-               elapsed_ = 0;
-               firstTick_ = YES;
-       }
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration: [self duration] ];
-       return copy;
-}
-
-- (BOOL) isDone
-{
-       return (elapsed_ >= duration_);
-}
-
--(void) step: (ccTime) dt
-{
-       if( firstTick_ ) {
-               firstTick_ = NO;
-               elapsed_ = 0;
-       } else
-               elapsed_ += dt;
-
-       [self update: MIN(1, elapsed_/duration_)];
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       elapsed_ = 0.0f;
-       firstTick_ = YES;
-}
-
-- (CCActionInterval*) reverse
-{
-       NSAssert(NO, @"CCIntervalAction: reverse not implemented.");
-       return nil;
-}
-@end
-
-//
-// Sequence
-//
-#pragma mark -
-#pragma mark Sequence
-@implementation CCSequence
-+(id) actionOne: (CCFiniteTimeAction*) one two: (CCFiniteTimeAction*) two
-{      
-       return [[[self alloc] initOne:one two:two ] autorelease];
-}
-
-+(id) actions: (CCFiniteTimeAction*) action1, ...
-{
-       va_list params;
-       va_start(params,action1);
-       
-       CCFiniteTimeAction *now;
-       CCFiniteTimeAction *prev = action1;
-       
-       while( action1 ) {
-               now = va_arg(params,CCFiniteTimeAction*);
-               if ( now )
-                       prev = [self actionOne: prev two: now];
-               else
-                       break;
-       }
-       va_end(params);
-       return prev;
-}
-
--(id) initOne: (CCFiniteTimeAction*) one_ two: (CCFiniteTimeAction*) two_
-{
-       NSAssert( one_!=nil, @"Sequence: argument one must be non-nil");
-       NSAssert( two_!=nil, @"Sequence: argument two must be non-nil");
-
-       CCFiniteTimeAction *one = one_;
-       CCFiniteTimeAction *two = two_;
-               
-       ccTime d = [one duration] + [two duration];
-       [super initWithDuration: d];
-       
-       actions[0] = [one retain];
-       actions[1] = [two retain];
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone:zone] initOne:[[actions[0] copy] autorelease] two:[[actions[1] copy] autorelease] ];
-       return copy;
-}
-
--(void) dealloc
-{
-       [actions[0] release];
-       [actions[1] release];
-       [super dealloc];
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];        
-       split = [actions[0] duration] / duration_;
-       last = -1;
-}
-
--(void) stop
-{
-       [actions[0] stop];
-       [actions[1] stop];
-       [super stop];
-}
-
--(void) update: (ccTime) t
-{
-       int found = 0;
-       ccTime new_t = 0.0f;
-       
-       if( t >= split ) {
-               found = 1;
-               if ( split == 1 )
-                       new_t = 1;
-               else
-                       new_t = (t-split) / (1 - split );
-       } else {
-               found = 0;
-               if( split != 0 )
-                       new_t = t / split;
-               else
-                       new_t = 1;
-       }
-       
-       if (last == -1 && found==1)     {
-               [actions[0] startWithTarget:target_];
-               [actions[0] update:1.0f];
-               [actions[0] stop];
-       }
-
-       if (last != found ) {
-               if( last != -1 ) {
-                       [actions[last] update: 1.0f];
-                       [actions[last] stop];
-               }
-               [actions[found] startWithTarget:target_];
-       }
-       [actions[found] update: new_t];
-       last = found;
-}
-
-- (CCActionInterval *) reverse
-{
-       return [[self class] actionOne: [actions[1] reverse] two: [actions[0] reverse ] ];
-}
-@end
-
-//
-// Repeat
-//
-#pragma mark -
-#pragma mark CCRepeat
-@implementation CCRepeat
-+(id) actionWithAction:(CCFiniteTimeAction*)action times:(unsigned int)times
-{
-       return [[[self alloc] initWithAction:action times:times] autorelease];
-}
-
--(id) initWithAction:(CCFiniteTimeAction*)action times:(unsigned int)times
-{
-       ccTime d = [action duration] * times;
-
-       if( (self=[super initWithDuration: d ]) ) {
-               times_ = times;
-               other_ = [action retain];
-
-               total_ = 0;
-       }
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone:zone] initWithAction:[[other_ copy] autorelease] times:times_];
-       return copy;
-}
-
--(void) dealloc
-{
-       [other_ release];
-       [super dealloc];
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       total_ = 0;
-       [super startWithTarget:aTarget];
-       [other_ startWithTarget:aTarget];
-}
-
--(void) stop
-{    
-    [other_ stop];
-       [super stop];
-}
-
-
-// issue #80. Instead of hooking step:, hook update: since it can be called by any 
-// container action like Repeat, Sequence, AccelDeccel, etc..
--(void) update:(ccTime) dt
-{
-       ccTime t = dt * times_;
-       if( t > total_+1 ) {
-               [other_ update:1.0f];
-               total_++;
-               [other_ stop];
-               [other_ startWithTarget:target_];
-               
-               // repeat is over ?
-               if( total_== times_ )
-                       // so, set it in the original position
-                       [other_ update:0];
-               else {
-                       // no ? start next repeat with the right update
-                       // to prevent jerk (issue #390)
-                       [other_ update: t-total_];
-               }
-
-       } else {
-               
-               float r = fmodf(t, 1.0f);
-               
-               // fix last repeat position
-               // else it could be 0.
-               if( dt== 1.0f) {
-                       r = 1.0f;
-                       total_++; // this is the added line
-               }
-               [other_ update: MIN(r,1)];
-       }
-}
-
--(BOOL) isDone
-{
-       return ( total_ == times_ );
-}
-
-- (CCActionInterval *) reverse
-{
-       return [[self class] actionWithAction:[other_ reverse] times:times_];
-}
-@end
-
-//
-// Spawn
-//
-#pragma mark -
-#pragma mark Spawn
-
-@implementation CCSpawn
-+(id) actions: (CCFiniteTimeAction*) action1, ...
-{
-       va_list params;
-       va_start(params,action1);
-       
-       CCFiniteTimeAction *now;
-       CCFiniteTimeAction *prev = action1;
-       
-       while( action1 ) {
-               now = va_arg(params,CCFiniteTimeAction*);
-               if ( now )
-                       prev = [self actionOne: prev two: now];
-               else
-                       break;
-       }
-       va_end(params);
-       return prev;
-}
-
-+(id) actionOne: (CCFiniteTimeAction*) one two: (CCFiniteTimeAction*) two
-{      
-       return [[[self alloc] initOne:one two:two ] autorelease];
-}
-
--(id) initOne: (CCFiniteTimeAction*) one_ two: (CCFiniteTimeAction*) two_
-{
-       NSAssert( one_!=nil, @"Spawn: argument one must be non-nil");
-       NSAssert( two_!=nil, @"Spawn: argument two must be non-nil");
-
-       ccTime d1 = [one_ duration];
-       ccTime d2 = [two_ duration];    
-       
-       [super initWithDuration: fmaxf(d1,d2)];
-
-       one = one_;
-       two = two_;
-
-       if( d1 > d2 )
-               two = [CCSequence actionOne: two_ two:[CCDelayTime actionWithDuration: (d1-d2)] ];
-       else if( d1 < d2)
-               one = [CCSequence actionOne: one_ two: [CCDelayTime actionWithDuration: (d2-d1)] ];
-       
-       [one retain];
-       [two retain];
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initOne: [[one copy] autorelease] two: [[two copy] autorelease] ];
-       return copy;
-}
-
--(void) dealloc
-{
-       [one release];
-       [two release];
-       [super dealloc];
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [one startWithTarget:target_];
-       [two startWithTarget:target_];
-}
-
--(void) stop
-{
-       [one stop];
-       [two stop];
-       [super stop];
-}
-
--(void) update: (ccTime) t
-{
-       [one update:t];
-       [two update:t];
-}
-
-- (CCActionInterval *) reverse
-{
-       return [[self class] actionOne: [one reverse] two: [two reverse ] ];
-}
-@end
-
-//
-// RotateTo
-//
-#pragma mark -
-#pragma mark RotateTo
-
-@implementation CCRotateTo
-+(id) actionWithDuration: (ccTime) t angle:(float) a
-{      
-       return [[[self alloc] initWithDuration:t angle:a ] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t angle:(float) a
-{
-       if( (self=[super initWithDuration: t]) )
-               dstAngle = a;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration:[self duration] angle: dstAngle];
-       return copy;
-}
-
--(void) startWithTarget:(CCNode *)aTarget
-{
-       [super startWithTarget:aTarget];
-       
-       startAngle = [target_ rotation];
-       if (startAngle > 0)
-               startAngle = fmodf(startAngle, 360.0f);
-       else
-               startAngle = fmodf(startAngle, -360.0f);
-       
-       diffAngle = dstAngle - startAngle;
-       if (diffAngle > 180)
-               diffAngle -= 360;
-       if (diffAngle < -180)
-               diffAngle += 360;
-}
--(void) update: (ccTime) t
-{
-       [target_ setRotation: startAngle + diffAngle * t];
-}
-@end
-
-
-//
-// RotateBy
-//
-#pragma mark -
-#pragma mark RotateBy
-
-@implementation CCRotateBy
-+(id) actionWithDuration: (ccTime) t angle:(float) a
-{      
-       return [[[self alloc] initWithDuration:t angle:a ] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t angle:(float) a
-{
-       if( (self=[super initWithDuration: t]) )
-               angle = a;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration: [self duration] angle: angle];
-       return copy;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       startAngle = [target_ rotation];
-}
-
--(void) update: (ccTime) t
-{      
-       // XXX: shall I add % 360
-       [target_ setRotation: (startAngle + angle * t )];
-}
-
--(CCActionInterval*) reverse
-{
-       return [[self class] actionWithDuration:duration_ angle:-angle];
-}
-
-@end
-
-//
-// MoveTo
-//
-#pragma mark -
-#pragma mark MoveTo
-
-@implementation CCMoveTo
-+(id) actionWithDuration: (ccTime) t position: (CGPoint) p
-{      
-       return [[[self alloc] initWithDuration:t position:p ] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t position: (CGPoint) p
-{
-       if( (self=[super initWithDuration: t]) )
-               endPosition = p;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration: [self duration] position: endPosition];
-       return copy;
-}
-
--(void) startWithTarget:(CCNode *)aTarget
-{
-       [super startWithTarget:aTarget];
-       startPosition = [(CCNode*)target_ position];
-       delta = ccpSub( endPosition, startPosition );
-}
-
--(void) update: (ccTime) t
-{      
-       [target_ setPosition: ccp( (startPosition.x + delta.x * t ), (startPosition.y + delta.y * t ) )];
-}
-@end
-
-//
-// MoveBy
-//
-#pragma mark -
-#pragma mark MoveBy
-
-@implementation CCMoveBy
-+(id) actionWithDuration: (ccTime) t position: (CGPoint) p
-{      
-       return [[[self alloc] initWithDuration:t position:p ] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t position: (CGPoint) p
-{
-       if( (self=[super initWithDuration: t]) )
-               delta = p;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration: [self duration] position: delta];
-       return copy;
-}
-
--(void) startWithTarget:(CCNode *)aTarget
-{
-       CGPoint dTmp = delta;
-       [super startWithTarget:aTarget];
-       delta = dTmp;
-}
-
--(CCActionInterval*) reverse
-{
-       return [[self class] actionWithDuration:duration_ position:ccp( -delta.x, -delta.y)];
-}
-@end
-
-//
-// JumpBy
-//
-#pragma mark -
-#pragma mark JumpBy
-
-@implementation CCJumpBy
-+(id) actionWithDuration: (ccTime) t position: (CGPoint) pos height: (ccTime) h jumps:(int)j
-{
-       return [[[self alloc] initWithDuration: t position: pos height: h jumps:j] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t position: (CGPoint) pos height: (ccTime) h jumps:(int)j
-{
-       if( (self=[super initWithDuration:t]) ) {
-               delta = pos;
-               height = h;
-               jumps = j;
-       }
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration: [self duration] position: delta height:height jumps:jumps];
-       return copy;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       startPosition = [(CCNode*)target_ position];
-}
-
--(void) update: (ccTime) t
-{
-       // Sin jump. Less realistic
-//     ccTime y = height * fabsf( sinf(t * (CGFloat)M_PI * jumps ) );
-//     y += delta.y * t;
-//     ccTime x = delta.x * t;
-//     [target setPosition: ccp( startPosition.x + x, startPosition.y + y )];  
-       
-       // parabolic jump (since v0.8.2)
-       ccTime frac = fmodf( t * jumps, 1.0f );
-       ccTime y = height * 4 * frac * (1 - frac);
-       y += delta.y * t;
-       ccTime x = delta.x * t;
-       [target_ setPosition: ccp( startPosition.x + x, startPosition.y + y )];
-       
-}
-
--(CCActionInterval*) reverse
-{
-       return [[self class] actionWithDuration:duration_ position: ccp(-delta.x,-delta.y) height: height jumps:jumps];
-}
-@end
-
-//
-// JumpTo
-//
-#pragma mark -
-#pragma mark JumpTo
-
-@implementation CCJumpTo
--(void) startWithTarget:(CCNode *)aTarget
-{
-       [super startWithTarget:aTarget];
-       delta = ccp( delta.x - startPosition.x, delta.y - startPosition.y );
-}
-@end
-
-
-#pragma mark -
-#pragma mark BezierBy
-
-// Bezier cubic formula:
-//     ((1 - t) + t)3 = 1 
-// Expands to… 
-//   (1 - t)3 + 3t(1-t)2 + 3t2(1 - t) + t3 = 1 
-static inline float bezierat( float a, float b, float c, float d, ccTime t )
-{
-       return (powf(1-t,3) * a + 
-                       3*t*(powf(1-t,2))*b + 
-                       3*powf(t,2)*(1-t)*c +
-                       powf(t,3)*d );
-}
-
-//
-// BezierBy
-//
-@implementation CCBezierBy
-+(id) actionWithDuration: (ccTime) t bezier:(ccBezierConfig) c
-{      
-       return [[[self alloc] initWithDuration:t bezier:c ] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t bezier:(ccBezierConfig) c
-{
-       if( (self=[super initWithDuration: t]) ) {
-               config = c;
-       }
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration: [self duration] bezier: config];
-    return copy;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       startPosition = [(CCNode*)target_ position];
-}
-
--(void) update: (ccTime) t
-{
-       float xa = 0;
-       float xb = config.controlPoint_1.x;
-       float xc = config.controlPoint_2.x;
-       float xd = config.endPosition.x;
-       
-       float ya = 0;
-       float yb = config.controlPoint_1.y;
-       float yc = config.controlPoint_2.y;
-       float yd = config.endPosition.y;
-       
-       float x = bezierat(xa, xb, xc, xd, t);
-       float y = bezierat(ya, yb, yc, yd, t);
-       [target_ setPosition:  ccpAdd( startPosition, ccp(x,y))];
-}
-
-- (CCActionInterval*) reverse
-{
-       ccBezierConfig r;
-
-       r.endPosition    = ccpNeg(config.endPosition);
-       r.controlPoint_1 = ccpAdd(config.controlPoint_2, ccpNeg(config.endPosition));
-       r.controlPoint_2 = ccpAdd(config.controlPoint_1, ccpNeg(config.endPosition));
-       
-       CCBezierBy *action = [[self class] actionWithDuration:[self duration] bezier:r];
-       return action;
-}
-@end
-
-//
-// BezierTo
-//
-#pragma mark -
-#pragma mark BezierTo
-@implementation CCBezierTo
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       config.controlPoint_1 = ccpSub(config.controlPoint_1, startPosition);
-       config.controlPoint_2 = ccpSub(config.controlPoint_2, startPosition);
-       config.endPosition = ccpSub(config.endPosition, startPosition);
-}
-@end
-
-
-//
-// ScaleTo
-//
-#pragma mark -
-#pragma mark ScaleTo
-@implementation CCScaleTo
-+(id) actionWithDuration: (ccTime) t scale:(float) s
-{
-       return [[[self alloc] initWithDuration: t scale:s] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t scale:(float) s
-{
-       if( (self=[super initWithDuration: t]) ) {
-               endScaleX = s;
-               endScaleY = s;
-       }
-       return self;
-}
-
-+(id) actionWithDuration: (ccTime) t scaleX:(float)sx scaleY:(float)sy 
-{
-       return [[[self alloc] initWithDuration: t scaleX:sx scaleY:sy] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t scaleX:(float)sx scaleY:(float)sy
-{
-       if( (self=[super initWithDuration: t]) ) {      
-               endScaleX = sx;
-               endScaleY = sy;
-       }
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration: [self duration] scaleX:endScaleX scaleY:endScaleY];
-       return copy;
-}
-
--(void) startWithTarget:(CCNode *)aTarget
-{
-       [super startWithTarget:aTarget];
-       startScaleX = [target_ scaleX];
-       startScaleY = [target_ scaleY];
-       deltaX = endScaleX - startScaleX;
-       deltaY = endScaleY - startScaleY;
-}
-
--(void) update: (ccTime) t
-{
-       [target_ setScaleX: (startScaleX + deltaX * t ) ];
-       [target_ setScaleY: (startScaleY + deltaY * t ) ];
-}
-@end
-
-//
-// ScaleBy
-//
-#pragma mark -
-#pragma mark ScaleBy
-@implementation CCScaleBy
--(void) startWithTarget:(CCNode *)aTarget
-{
-       [super startWithTarget:aTarget];
-       deltaX = startScaleX * endScaleX - startScaleX;
-       deltaY = startScaleY * endScaleY - startScaleY;
-}
-
--(CCActionInterval*) reverse
-{
-       return [[self class] actionWithDuration:duration_ scaleX: 1/endScaleX scaleY:1/endScaleY];
-}
-@end
-
-//
-// Blink
-//
-#pragma mark -
-#pragma mark Blink
-@implementation CCBlink
-+(id) actionWithDuration: (ccTime) t blinks: (unsigned int) b
-{
-       return [[[ self alloc] initWithDuration: t blinks: b] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t blinks: (unsigned int) b
-{
-       if( (self=[super initWithDuration: t] ) )
-               times = b;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration: [self duration] blinks: times];
-       return copy;
-}
-
--(void) update: (ccTime) t
-{
-       if( ! [self isDone] ) {
-               ccTime slice = 1.0f / times;
-               ccTime m = fmodf(t, slice);
-               [target_ setVisible: (m > slice/2) ? YES : NO];
-       }
-}
-
--(CCActionInterval*) reverse
-{
-       // return 'self'
-       return [[self class] actionWithDuration:duration_ blinks: times];
-}
-@end
-
-//
-// FadeIn
-//
-#pragma mark -
-#pragma mark FadeIn
-@implementation CCFadeIn
--(void) update: (ccTime) t
-{
-       [(id<CCRGBAProtocol>) target_ setOpacity: 255 *t];
-}
-
--(CCActionInterval*) reverse
-{
-       return [CCFadeOut actionWithDuration:duration_];
-}
-@end
-
-//
-// FadeOut
-//
-#pragma mark -
-#pragma mark FadeOut
-@implementation CCFadeOut
--(void) update: (ccTime) t
-{
-       [(id<CCRGBAProtocol>) target_ setOpacity: 255 *(1-t)];
-}
-
--(CCActionInterval*) reverse
-{
-       return [CCFadeIn actionWithDuration:duration_];
-}
-@end
-
-//
-// FadeTo
-//
-#pragma mark -
-#pragma mark FadeTo
-@implementation CCFadeTo
-+(id) actionWithDuration: (ccTime) t opacity: (GLubyte) o
-{
-       return [[[ self alloc] initWithDuration: t opacity: o] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t opacity: (GLubyte) o
-{
-       if( (self=[super initWithDuration: t] ) )
-               toOpacity = o;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration: [self duration] opacity: toOpacity];
-       return copy;
-}
-
--(void) startWithTarget:(CCNode *)aTarget
-{
-       [super startWithTarget:aTarget];
-       fromOpacity = [(id<CCRGBAProtocol>)target_ opacity];
-}
-
--(void) update: (ccTime) t
-{
-       [(id<CCRGBAProtocol>)target_ setOpacity: fromOpacity + ( toOpacity - fromOpacity ) * t];
-}
-@end
-
-//
-// TintTo
-//
-#pragma mark -
-#pragma mark TintTo
-@implementation CCTintTo
-+(id) actionWithDuration:(ccTime)t red:(GLubyte)r green:(GLubyte)g blue:(GLubyte)b
-{
-       return [[(CCTintTo*)[ self alloc] initWithDuration:t red:r green:g blue:b] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t red:(GLubyte)r green:(GLubyte)g blue:(GLubyte)b
-{
-       if( (self=[super initWithDuration: t] ) )
-               to = ccc3(r,g,b);
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [(CCTintTo*)[[self class] allocWithZone: zone] initWithDuration: [self duration] red:to.r green:to.g blue:to.b];
-       return copy;
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       
-       id<CCRGBAProtocol> tn = (id<CCRGBAProtocol>) target_;
-       from = [tn color];
-}
-
--(void) update: (ccTime) t
-{
-       id<CCRGBAProtocol> tn = (id<CCRGBAProtocol>) target_;
-       [tn setColor:ccc3(from.r + (to.r - from.r) * t, from.g + (to.g - from.g) * t, from.b + (to.b - from.b) * t)];
-}
-@end
-
-//
-// TintBy
-//
-#pragma mark -
-#pragma mark TintBy
-@implementation CCTintBy
-+(id) actionWithDuration:(ccTime)t red:(GLshort)r green:(GLshort)g blue:(GLshort)b
-{
-       return [[(CCTintBy*)[ self alloc] initWithDuration:t red:r green:g blue:b] autorelease];
-}
-
--(id) initWithDuration:(ccTime)t red:(GLshort)r green:(GLshort)g blue:(GLshort)b
-{
-       if( (self=[super initWithDuration: t] ) ) {
-               deltaR = r;
-               deltaG = g;
-               deltaB = b;
-       }
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       return[(CCTintBy*)[[self class] allocWithZone: zone] initWithDuration: [self duration] red:deltaR green:deltaG blue:deltaB];
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       
-       id<CCRGBAProtocol> tn = (id<CCRGBAProtocol>) target_;
-       ccColor3B color = [tn color];
-       fromR = color.r;
-       fromG = color.g;
-       fromB = color.b;
-}
-
--(void) update: (ccTime) t
-{
-       id<CCRGBAProtocol> tn = (id<CCRGBAProtocol>) target_;
-       [tn setColor:ccc3( fromR + deltaR * t, fromG + deltaG * t, fromB + deltaB * t)];
-}
-
-- (CCActionInterval*) reverse
-{
-       return [CCTintBy actionWithDuration:duration_ red:-deltaR green:-deltaG blue:-deltaB];
-}
-@end
-
-//
-// DelayTime
-//
-#pragma mark -
-#pragma mark DelayTime
-@implementation CCDelayTime
--(void) update: (ccTime) t
-{
-       return;
-}
-
--(id)reverse
-{
-       return [[self class] actionWithDuration:duration_];
-}
-@end
-
-//
-// ReverseTime
-//
-#pragma mark -
-#pragma mark ReverseTime
-@implementation CCReverseTime
-+(id) actionWithAction: (CCFiniteTimeAction*) action
-{
-       // casting to prevent warnings
-       CCReverseTime *a = [super alloc];
-       return [[a initWithAction:action] autorelease];
-}
-
--(id) initWithAction: (CCFiniteTimeAction*) action
-{
-       if( (self=[super initWithDuration: [action duration]]) )
-               other = [action retain];
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       return [[[self class] allocWithZone: zone] initWithAction:[[other copy] autorelease] ];
-}
-
--(void) dealloc
-{
-       [other release];
-       [super dealloc];
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       [other startWithTarget:target_];
-}
-
--(void) stop
-{
-       [other stop];
-       [super stop];
-}
-
--(void) update:(ccTime)t
-{
-       [other update:1-t];
-}
-
--(CCActionInterval*) reverse
-{
-       return [[other copy] autorelease];
-}
-@end
-
-//
-// Animate
-//
-
-#pragma mark -
-#pragma mark Animate
-@implementation CCAnimate
-
-@synthesize animation = animation_;
-
-+(id) actionWithAnimation: (CCAnimation*)anim
-{
-       return [[[self alloc] initWithAnimation:anim restoreOriginalFrame:YES] autorelease];
-}
-
-+(id) actionWithAnimation: (CCAnimation*)anim restoreOriginalFrame:(BOOL)b
-{
-       return [[[self alloc] initWithAnimation:anim restoreOriginalFrame:b] autorelease];
-}
-
-+(id) actionWithDuration:(ccTime)duration animation: (CCAnimation*)anim restoreOriginalFrame:(BOOL)b
-{
-       return [[[self alloc] initWithDuration:duration animation:anim restoreOriginalFrame:b] autorelease];
-}
-
--(id) initWithAnimation: (CCAnimation*)anim
-{
-       NSAssert( anim!=nil, @"Animate: argument Animation must be non-nil");
-       return [self initWithAnimation:anim restoreOriginalFrame:YES];
-}
-
--(id) initWithAnimation: (CCAnimation*)anim restoreOriginalFrame:(BOOL) b
-{
-       NSAssert( anim!=nil, @"Animate: argument Animation must be non-nil");
-
-       if( (self=[super initWithDuration: [[anim frames] count] * [anim delay]]) ) {
-
-               restoreOriginalFrame = b;
-               self.animation = anim;
-               origFrame = nil;
-       }
-       return self;
-}
-
--(id) initWithDuration:(ccTime)aDuration animation: (CCAnimation*)anim restoreOriginalFrame:(BOOL) b
-{
-       NSAssert( anim!=nil, @"Animate: argument Animation must be non-nil");
-       
-       if( (self=[super initWithDuration:aDuration] ) ) {
-               
-               restoreOriginalFrame = b;
-               self.animation = anim;
-               origFrame = nil;
-       }
-       return self;
-}
-
-
--(id) copyWithZone: (NSZone*) zone
-{
-       return [[[self class] allocWithZone: zone] initWithDuration:duration_ animation:animation_ restoreOriginalFrame:restoreOriginalFrame];
-}
-
--(void) dealloc
-{
-       [animation_ release];
-       [origFrame release];
-       [super dealloc];
-}
-
--(void) startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       CCSprite *sprite = target_;
-
-       [origFrame release];
-
-       if( restoreOriginalFrame )
-               origFrame = [[sprite displayedFrame] retain];
-}
-
--(void) stop
-{
-       if( restoreOriginalFrame ) {
-               CCSprite *sprite = target_;
-               [sprite setDisplayFrame:origFrame];
-       }
-       
-       [super stop];
-}
-
--(void) update: (ccTime) t
-{
-       NSArray *frames = [animation_ frames];
-       NSUInteger numberOfFrames = [frames count];
-       
-       NSUInteger idx = t * numberOfFrames;
-
-       if( idx >= numberOfFrames )
-               idx = numberOfFrames -1;
-       
-       CCSprite *sprite = target_;
-       if (! [sprite isFrameDisplayed: [frames objectAtIndex: idx]] )
-               [sprite setDisplayFrame: [frames objectAtIndex:idx]];
-}
-
-- (CCActionInterval *) reverse
-{
-       NSArray *oldArray = [animation_ frames];
-       NSMutableArray *newArray = [NSMutableArray arrayWithCapacity:[oldArray count]];
-    NSEnumerator *enumerator = [oldArray reverseObjectEnumerator];
-    for (id element in enumerator)
-        [newArray addObject:[[element copy] autorelease]];
-       
-       CCAnimation *newAnim = [CCAnimation animationWithFrames:newArray delay:animation_.delay];
-       return [[self class] actionWithDuration:duration_ animation:newAnim restoreOriginalFrame:restoreOriginalFrame];
-}
-
-@end
diff --git a/Classes/cocos2d/CCActionManager.h b/Classes/cocos2d/CCActionManager.h
deleted file mode 100644 (file)
index 476390b..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * Copyright (c) 2009 Valentin Milea
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCAction.h"
-#import "Support/ccCArray.h"
-#import "Support/uthash.h"
-
-typedef struct _hashElement
-{
-       struct ccArray  *actions;
-       id                              target;
-       unsigned int    actionIndex;
-       CCAction                *currentAction;
-       BOOL                    currentActionSalvaged;
-       BOOL                    paused; 
-       UT_hash_handle  hh;
-} tHashElement;
-
-
-/** CCActionManager is a singleton that manages all the actions.
- Normally you won't need to use this singleton directly. 99% of the cases you will use the CCNode interface,
- which uses this singleton.
- But there are some cases where you might need to use this singleton.
- Examples:
-       - When you want to run an action where the target is different from a CCNode. 
-       - When you want to pause / resume the actions
- @since v0.8
- */
-@interface CCActionManager : NSObject
-{
-       tHashElement    *targets;
-       tHashElement    *currentTarget;
-       BOOL                    currentTargetSalvaged;
-}
-
-/** returns a shared instance of the CCActionManager */
-+ (CCActionManager *)sharedManager;
-
-/** purges the shared action manager. It releases the retained instance.
- @since v0.99.0
- */
-+(void)purgeSharedManager;
-
-// actions
-
-/** Adds an action with a target.
- If the target is already present, then the action will be added to the existing target.
- If the target is not present, a new instance of this target will be created either paused or paused, and the action will be added to the newly created target.
- When the target is paused, the queued actions won't be 'ticked'.
- */
--(void) addAction: (CCAction*) action target:(id)target paused:(BOOL)paused;
-/** Removes all actions from all the targers.
- */
--(void) removeAllActions;
-
-/** Removes all actions from a certain target.
- All the actions that belongs to the target will be removed.
- */
--(void) removeAllActionsFromTarget:(id)target;
-/** Removes an action given an action reference.
- */
--(void) removeAction: (CCAction*) action;
-/** Removes an action given its tag and the target */
--(void) removeActionByTag:(int)tag target:(id)target;
-/** Gets an action given its tag an a target
- @return the Action the with the given tag
- */
--(CCAction*) getActionByTag:(int) tag target:(id)target;
-/** Returns the numbers of actions that are running in a certain target
- * Composable actions are counted as 1 action. Example:
- *    If you are running 1 Sequence of 7 actions, it will return 1.
- *    If you are running 7 Sequences of 2 actions, it will return 7.
- */
--(int) numberOfRunningActionsInTarget:(id)target;
-
-/** Pauses the target: all running actions and newly added actions will be paused.
- */
--(void) pauseTarget:(id)target;
-/** Resumes the target. All queued actions will be resumed.
- */
--(void) resumeTarget:(id)target;
-
-/** Resumes the target. All queued actions will be resumed.
- @deprecated Use resumeTarget: instead. Will be removed in v1.0.
- */
--(void) resumeAllActionsForTarget:(id)target DEPRECATED_ATTRIBUTE;
-/** Pauses the target: all running actions and newly added actions will be paused.
- */
--(void) pauseAllActionsForTarget:(id)target DEPRECATED_ATTRIBUTE;
-
-
-@end
-
diff --git a/Classes/cocos2d/CCActionManager.m b/Classes/cocos2d/CCActionManager.m
deleted file mode 100644 (file)
index 9a6376f..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * Copyright (c) 2009 Valentin Milea
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCActionManager.h"
-#import "CCScheduler.h"
-#import "ccMacros.h"
-
-
-//
-// singleton stuff
-//
-static CCActionManager *sharedManager_ = nil;
-
-@interface CCActionManager (Private)
--(void) removeActionAtIndex:(NSUInteger)index hashElement:(tHashElement*)element;
--(void) deleteHashElement:(tHashElement*)element;
--(void) actionAllocWithHashElement:(tHashElement*)element;
-@end
-
-
-@implementation CCActionManager
-
-#pragma mark ActionManager - init
-+ (CCActionManager *)sharedManager
-{
-       if (!sharedManager_)
-               sharedManager_ = [[self alloc] init];
-               
-       return sharedManager_;
-}
-
-+(id)alloc
-{
-       NSAssert(sharedManager_ == nil, @"Attempted to allocate a second instance of a singleton.");
-       return [super alloc];
-}
-
-+(void)purgeSharedManager
-{
-       [[CCScheduler sharedScheduler] unscheduleUpdateForTarget:self];
-       [sharedManager_ release];
-       sharedManager_ = nil;
-}
-
--(id) init
-{
-       if ((self=[super init]) ) {
-               [[CCScheduler sharedScheduler] scheduleUpdateForTarget:self priority:0 paused:NO];
-               targets = NULL;
-       }
-       
-       return self;
-}
-
-- (void) dealloc
-{
-       CCLOGINFO( @"cocos2d: deallocing %@", self);
-       
-       [self removeAllActions];
-
-       sharedManager_ = nil;
-
-       [super dealloc];
-}
-
-#pragma mark ActionManager - Private
-
--(void) deleteHashElement:(tHashElement*)element
-{
-       ccArrayFree(element->actions);
-       HASH_DEL(targets, element);
-//     CCLOG(@"cocos2d: ---- buckets: %d/%d - %@", targets->entries, targets->size, element->target);
-       [element->target release];
-       free(element);
-}
-
--(void) actionAllocWithHashElement:(tHashElement*)element
-{
-       // 4 actions per Node by default
-       if( element->actions == nil )
-               element->actions = ccArrayNew(4);
-       else if( element->actions->num == element->actions->max )
-               ccArrayDoubleCapacity(element->actions);        
-}
-
--(void) removeActionAtIndex:(NSUInteger)index hashElement:(tHashElement*)element
-{      
-       id action = element->actions->arr[index];
-
-       if( action == element->currentAction && !element->currentActionSalvaged ) {
-               [element->currentAction retain];
-               element->currentActionSalvaged = YES;
-       }
-       
-       ccArrayRemoveObjectAtIndex(element->actions, index);
-
-       // update actionIndex in case we are in tick:, looping over the actions
-       if( element->actionIndex >= index )
-               element->actionIndex--;
-       
-       if( element->actions->num == 0 ) {
-               if( currentTarget == element )
-                       currentTargetSalvaged = YES;
-               else
-                       [self deleteHashElement: element];
-       }
-}
-
-#pragma mark ActionManager - Pause / Resume
-
-// XXX DEPRECATED. REMOVE IN 1.0
--(void) pauseAllActionsForTarget:(id)target
-{
-       [self pauseTarget:target];
-}
-
--(void) pauseTarget:(id)target
-{
-       tHashElement *element = NULL;
-       HASH_FIND_INT(targets, &target, element);
-       if( element )
-               element->paused = YES;
-//     else
-//             CCLOG(@"cocos2d: pauseAllActions: Target not found");
-}
-
-// XXX DEPRECATED. REMOVE IN 1.0
--(void) resumeAllActionsForTarget:(id)target
-{
-       [self resumeTarget:target];
-}
-
--(void) resumeTarget:(id)target
-{
-       tHashElement *element = NULL;
-       HASH_FIND_INT(targets, &target, element);
-       if( element )
-               element->paused = NO;
-//     else
-//             CCLOG(@"cocos2d: resumeAllActions: Target not found");
-}
-
-#pragma mark ActionManager - run
-
--(void) addAction:(CCAction*)action target:(id)target paused:(BOOL)paused
-{
-       NSAssert( action != nil, @"Argument action must be non-nil");
-       NSAssert( target != nil, @"Argument target must be non-nil");   
-       
-       tHashElement *element = NULL;
-       HASH_FIND_INT(targets, &target, element);
-       if( ! element ) {
-               element = calloc( sizeof( *element ), 1 );
-               element->paused = paused;
-               element->target = [target retain];
-               HASH_ADD_INT(targets, target, element);
-//             CCLOG(@"cocos2d: ---- buckets: %d/%d - %@", targets->entries, targets->size, element->target);
-
-       }
-       
-       [self actionAllocWithHashElement:element];
-
-       NSAssert( !ccArrayContainsObject(element->actions, action), @"runAction: Action already running");      
-       ccArrayAppendObject(element->actions, action);
-       
-       [action startWithTarget:target];
-}
-
-#pragma mark ActionManager - remove
-
--(void) removeAllActions
-{
-       for(tHashElement *element=targets; element != NULL; ) { 
-               id target = element->target;
-               element = element->hh.next;
-               [self removeAllActionsFromTarget:target];
-       }
-}
--(void) removeAllActionsFromTarget:(id)target
-{
-       // explicit nil handling
-       if( target == nil )
-               return;
-       
-       tHashElement *element = NULL;
-       HASH_FIND_INT(targets, &target, element);
-       if( element ) {
-               if( ccArrayContainsObject(element->actions, element->currentAction) && !element->currentActionSalvaged ) {
-                       [element->currentAction retain];
-                       element->currentActionSalvaged = YES;
-               }
-               ccArrayRemoveAllObjects(element->actions);
-               if( currentTarget == element )
-                       currentTargetSalvaged = YES;
-               else
-                       [self deleteHashElement:element];
-       }
-//     else {
-//             CCLOG(@"cocos2d: removeAllActionsFromTarget: Target not found");
-//     }
-}
-
--(void) removeAction: (CCAction*) action
-{
-       // explicit nil handling
-       if (action == nil)
-               return;
-       
-       tHashElement *element = NULL;
-       id target = [action originalTarget];
-       HASH_FIND_INT(targets, &target, element );
-       if( element ) {
-               NSUInteger i = ccArrayGetIndexOfObject(element->actions, action);
-               if( i != NSNotFound )
-                       [self removeActionAtIndex:i hashElement:element];
-       }
-//     else {
-//             CCLOG(@"cocos2d: removeAction: Target not found");
-//     }
-}
-
--(void) removeActionByTag:(int) aTag target:(id)target
-{
-       NSAssert( aTag != kCCActionTagInvalid, @"Invalid tag");
-       NSAssert( target != nil, @"Target should be ! nil");
-       
-       tHashElement *element = NULL;
-       HASH_FIND_INT(targets, &target, element);
-       
-       if( element ) {
-               NSUInteger limit = element->actions->num;
-               for( NSUInteger i = 0; i < limit; i++) {
-                       CCAction *a = element->actions->arr[i];
-                       
-                       if( a.tag == aTag && [a originalTarget]==target)
-                               return [self removeActionAtIndex:i hashElement:element];
-               }
-//             CCLOG(@"cocos2d: removeActionByTag: Action not found!");
-       }
-//     else {
-//             CCLOG(@"cocos2d: removeActionByTag: Target not found!");
-//     }
-}
-
-#pragma mark ActionManager - get
-
--(CCAction*) getActionByTag:(int)aTag target:(id)target
-{
-       NSAssert( aTag != kCCActionTagInvalid, @"Invalid tag");
-
-       tHashElement *element = NULL;
-       HASH_FIND_INT(targets, &target, element);
-
-       if( element ) {
-               if( element->actions != nil ) {
-                       NSUInteger limit = element->actions->num;
-                       for( NSUInteger i = 0; i < limit; i++) {
-                               CCAction *a = element->actions->arr[i];
-                       
-                               if( a.tag == aTag )
-                                       return a; 
-                       }
-               }
-//             CCLOG(@"cocos2d: getActionByTag: Action not found");
-       }
-//     else {
-//             CCLOG(@"cocos2d: getActionByTag: Target not found");
-//     }
-       return nil;
-}
-
--(int) numberOfRunningActionsInTarget:(id) target
-{
-       tHashElement *element = NULL;
-       HASH_FIND_INT(targets, &target, element);
-       if( element )
-               return element->actions ? element->actions->num : 0;
-
-//     CCLOG(@"cocos2d: numberOfRunningActionsInTarget: Target not found");
-       return 0;
-}
-
-#pragma mark ActionManager - main loop
-
--(void) update: (ccTime) dt
-{
-       for(tHashElement *elt = targets; elt != NULL; ) {       
-
-               currentTarget = elt;
-               currentTargetSalvaged = NO;
-               
-               if( ! currentTarget->paused ) {
-                       
-                       // The 'actions' ccArray may change while inside this loop.
-                       for( currentTarget->actionIndex = 0; currentTarget->actionIndex < currentTarget->actions->num; currentTarget->actionIndex++) {
-                               currentTarget->currentAction = currentTarget->actions->arr[currentTarget->actionIndex];
-                               currentTarget->currentActionSalvaged = NO;
-                               
-                               [currentTarget->currentAction step: dt];
-
-                               if( currentTarget->currentActionSalvaged ) {
-                                       // The currentAction told the node to remove it. To prevent the action from
-                                       // accidentally deallocating itself before finishing its step, we retained
-                                       // it. Now that step is done, it's safe to release it.
-                                       [currentTarget->currentAction release];
-
-                               } else if( [currentTarget->currentAction isDone] ) {
-                                       [currentTarget->currentAction stop];
-                                       
-                                       CCAction *a = currentTarget->currentAction;
-                                       // Make currentAction nil to prevent removeAction from salvaging it.
-                                       currentTarget->currentAction = nil;
-                                       [self removeAction:a];
-                               }
-                               
-                               currentTarget->currentAction = nil;
-                       }
-               }
-
-               // elt, at this moment, is still valid
-               // so it is safe to ask this here (issue #490)
-               elt = elt->hh.next;
-       
-               // only delete currentTarget if no actions were scheduled during the cycle (issue #481)
-               if( currentTargetSalvaged && currentTarget->actions->num == 0 )
-                       [self deleteHashElement:currentTarget];
-       }
-       
-       // issue #635
-       currentTarget = nil;
-}
-@end
diff --git a/Classes/cocos2d/CCActionPageTurn3D.h b/Classes/cocos2d/CCActionPageTurn3D.h
deleted file mode 100644 (file)
index 39eb31d..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 Sindesso Pty Ltd http://www.sindesso.com/
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCActionGrid3D.h"
-
-/**
- * This action simulates a page turn from the bottom right hand corner of the screen
- * It's not much use by itself but is used by the PageTurnTransition.
- *
- * Based on an original paper by L Hong et al.
- * http://www.parc.com/publication/1638/turning-pages-of-3d-electronic-books.html
- * 
- * @since v0.8.2
- */
-@interface CCPageTurn3D : CCGrid3DAction
-{
-}
-
-@end
diff --git a/Classes/cocos2d/CCActionPageTurn3D.m b/Classes/cocos2d/CCActionPageTurn3D.m
deleted file mode 100644 (file)
index ee59500..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 Sindesso Pty Ltd http://www.sindesso.com/
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "CCActionPageTurn3D.h"
-
-@implementation CCPageTurn3D
-
-/*
- * Update each tick
- * Time is the percentage of the way through the duration
- */
--(void)update:(ccTime)time
-{
-       float tt = MAX( 0, time - 0.25f );
-       float deltaAy = ( tt * tt * 500);
-       float ay = -100 - deltaAy;
-       
-       float deltaTheta = - (float) M_PI_2 * sqrtf( time) ;
-       float theta = /*0.01f*/ + (float) M_PI_2 +deltaTheta;
-       
-       float sinTheta = sinf(theta);
-       float cosTheta = cosf(theta);
-       
-       for( int i = 0; i <=gridSize_.x; i++ )
-       {
-               for( int j = 0; j <= gridSize_.y; j++ )
-               {
-                       // Get original vertex
-                       ccVertex3F      p = [self originalVertex:ccg(i,j)];
-                       
-                       float R = sqrtf(p.x*p.x + (p.y - ay) * (p.y - ay));
-                       float r = R * sinTheta;
-                       float alpha = asinf( p.x / R );
-                       float beta = alpha / sinTheta;
-                       float cosBeta = cosf( beta );
-                       
-                       // If beta > PI then we've wrapped around the cone
-                       // Reduce the radius to stop these points interfering with others
-                       if( beta <= M_PI)
-                               p.x = ( r * sinf(beta));
-                       else
-                       {
-                               // Force X = 0 to stop wrapped
-                               // points
-                               p.x = 0;
-                       }
-                       
-                       p.y = ( R + ay - ( r*(1 - cosBeta)*sinTheta));
-                       
-                       // We scale z here to avoid the animation being
-                       // too much bigger than the screen due to perspectve transform
-                       p.z = (r * ( 1 - cosBeta ) * cosTheta) / 7; // "100" didn't work for
-                               
-                       // Stop z coord from dropping beneath underlying page in a transition
-                       // issue #751                           
-                       if( p.z<0.5f )
-                               p.z = 0.5f;
-                       
-                       // Set new coords
-                       [self setVertex:ccg(i,j) vertex:p];
-               }
-       }
-}
-@end
diff --git a/Classes/cocos2d/CCActionProgressTimer.h b/Classes/cocos2d/CCActionProgressTimer.h
deleted file mode 100644 (file)
index 500631b..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (C) 2010 Lam Pham
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import <Foundation/Foundation.h>
-#import "CCProgressTimer.h"
-#import "CCActionInterval.h"
-
-/**
- Progress to percentage
-@since v0.99.1
-*/
-@interface CCProgressTo : CCActionInterval <NSCopying>
-{
-       float to_;
-       float from_;
-}
-/** Creates and initializes with a duration and a percent */
-+(id) actionWithDuration:(ccTime)duration percent:(float)percent;
-/** Initializes with a duration and a percent */
--(id) initWithDuration:(ccTime)duration percent:(float)percent;
-@end
-
-/**
- Progress from a percentage to another percentage
- @since v0.99.1
- */
-@interface CCProgressFromTo : CCActionInterval <NSCopying>
-{
-       float to_;
-       float from_;
-}
-/** Creates and initializes the action with a duration, a "from" percentage and a "to" percentage */
-+(id) actionWithDuration:(ccTime)duration from:(float)fromPercentage to:(float) toPercentage;
-/** Initializes the action with a duration, a "from" percentage and a "to" percentage */
--(id) initWithDuration:(ccTime)duration from:(float)fromPercentage to:(float) toPercentage;
-@end
diff --git a/Classes/cocos2d/CCActionProgressTimer.m b/Classes/cocos2d/CCActionProgressTimer.m
deleted file mode 100644 (file)
index c242570..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (C) 2010 Lam Pham
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCActionProgressTimer.h"
-
-#define kProgressTimerCast CCProgressTimer*
-
-@implementation CCProgressTo
-+(id) actionWithDuration: (ccTime) t percent: (float) v
-{
-       return [[[ self alloc] initWithDuration: t percent: v] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t percent: (float) v
-{
-       if( (self=[super initWithDuration: t] ) )
-               to_ = v;
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration:duration_ percent:to_];
-       return copy;
-}
-
--(void) startWithTarget:(id) aTarget;
-{
-       [super startWithTarget:aTarget];
-       from_ = [(kProgressTimerCast)target_ percentage];
-       
-       // XXX: Is this correct ?
-       // Adding it to support CCRepeat
-       if( from_ == 100)
-               from_ = 0;
-}
-
--(void) update: (ccTime) t
-{
-       [(kProgressTimerCast)target_ setPercentage: from_ + ( to_ - from_ ) * t];
-}
-@end
-
-@implementation CCProgressFromTo
-+(id) actionWithDuration: (ccTime) t from:(float)fromPercentage to:(float) toPercentage
-{
-       return [[[self alloc] initWithDuration: t from: fromPercentage to: toPercentage] autorelease];
-}
-
--(id) initWithDuration: (ccTime) t from:(float)fromPercentage to:(float) toPercentage
-{
-       if( (self=[super initWithDuration: t] ) ){
-               to_ = toPercentage;
-               from_ = fromPercentage;
-       }
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCAction *copy = [[[self class] allocWithZone: zone] initWithDuration:duration_ from:from_ to:to_];
-       return copy;
-}
-
-- (CCActionInterval *) reverse
-{
-       return [[self class] actionWithDuration:duration_ from:to_ to:from_];
-}
-
--(void) startWithTarget:(id) aTarget;
-{
-       [super startWithTarget:aTarget];
-}
-
--(void) update: (ccTime) t
-{
-       [(kProgressTimerCast)target_ setPercentage: from_ + ( to_ - from_ ) * t];
-}
-@end
diff --git a/Classes/cocos2d/CCActionTiledGrid.h b/Classes/cocos2d/CCActionTiledGrid.h
deleted file mode 100644 (file)
index 5d88b16..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 On-Core
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "CCActionGrid.h"
-
-/** CCShakyTiles3D action */
-@interface CCShakyTiles3D : CCTiledGrid3DAction
-{
-       int             randrange;
-       BOOL    shakeZ;
-}
-
-/** creates the action with a range, whether or not to shake Z vertices, a grid size, and duration */
-+(id)actionWithRange:(int)range shakeZ:(BOOL)shakeZ grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with a range, whether or not to shake Z vertices, a grid size, and duration */
--(id)initWithRange:(int)range shakeZ:(BOOL)shakeZ grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCShatteredTiles3D action */
-@interface CCShatteredTiles3D : CCTiledGrid3DAction
-{
-       int             randrange;
-       BOOL    once;
-       BOOL    shatterZ;
-}
-
-/** creates the action with a range, whether of not to shatter Z vertices, a grid size and duration */
-+(id)actionWithRange:(int)range shatterZ:(BOOL)shatterZ grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with a range, whether or not to shatter Z vertices, a grid size and duration */
--(id)initWithRange:(int)range shatterZ:(BOOL)shatterZ grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCShuffleTiles action
- Shuffle the tiles in random order
- */
-@interface CCShuffleTiles : CCTiledGrid3DAction
-{
-       int     seed;
-       int tilesCount;
-       int *tilesOrder;
-       void *tiles;
-}
-
-/** creates the action with a random seed, the grid size and the duration */
-+(id)actionWithSeed:(int)s grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with a random seed, the grid size and the duration */
--(id)initWithSeed:(int)s grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCFadeOutTRTiles action
- Fades out the tiles in a Top-Right direction
- */
-@interface CCFadeOutTRTiles : CCTiledGrid3DAction
-{
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCFadeOutBLTiles action.
- Fades out the tiles in a Bottom-Left direction
- */
-@interface CCFadeOutBLTiles : CCFadeOutTRTiles
-{
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCFadeOutUpTiles action.
- Fades out the tiles in upwards direction
- */
-@interface CCFadeOutUpTiles : CCFadeOutTRTiles
-{
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCFadeOutDownTiles action.
- Fades out the tiles in downwards direction
- */
-@interface CCFadeOutDownTiles : CCFadeOutUpTiles
-{
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCTurnOffTiles action.
- Turn off the files in random order
- */
-@interface CCTurnOffTiles : CCTiledGrid3DAction
-{
-       int     seed;
-       int tilesCount;
-       int *tilesOrder;
-}
-
-/** creates the action with a random seed, the grid size and the duration */
-+(id)actionWithSeed:(int)s grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with a random seed, the grid size and the duration */
--(id)initWithSeed:(int)s grid:(ccGridSize)gridSize duration:(ccTime)d;
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCWavesTiles3D action. */
-@interface CCWavesTiles3D : CCTiledGrid3DAction
-{
-       int waves;
-       float amplitude;
-       float amplitudeRate;
-}
-
-/** waves amplitude */
-@property (nonatomic,readwrite) float amplitude;
-/** waves amplitude rate */
-@property (nonatomic,readwrite) float amplitudeRate;
-
-/** creates the action with a number of waves, the waves amplitude, the grid size and the duration */
-+(id)actionWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with a number of waves, the waves amplitude, the grid size and the duration */
--(id)initWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCJumpTiles3D action.
- A sin function is executed to move the tiles across the Z axis
- */
-@interface CCJumpTiles3D : CCTiledGrid3DAction
-{
-       int jumps;
-       float amplitude;
-       float amplitudeRate;
-}
-
-/** amplitude of the sin*/
-@property (nonatomic,readwrite) float amplitude;
-/** amplitude rate */
-@property (nonatomic,readwrite) float amplitudeRate;
-
-/** creates the action with the number of jumps, the sin amplitude, the grid size and the duration */
-+(id)actionWithJumps:(int)j amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-/** initializes the action with the number of jumps, the sin amplitude, the grid size and the duration */
--(id)initWithJumps:(int)j amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCSplitRows action */
-@interface CCSplitRows : CCTiledGrid3DAction
-{
-       int             rows;
-       CGSize  winSize;
-}
-/** creates the action with the number of rows to split and the duration */
-+(id)actionWithRows:(int)rows duration:(ccTime)duration;
-/** initializes the action with the number of rows to split and the duration */
--(id)initWithRows:(int)rows duration:(ccTime)duration;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/** CCSplitCols action */
-@interface CCSplitCols : CCTiledGrid3DAction
-{
-       int             cols;
-       CGSize  winSize;
-}
-/** creates the action with the number of columns to split and the duration */
-+(id)actionWithCols:(int)cols duration:(ccTime)duration;
-/** initializes the action with the number of columns to split and the duration */
--(id)initWithCols:(int)cols duration:(ccTime)duration;
-
-@end
diff --git a/Classes/cocos2d/CCActionTiledGrid.m b/Classes/cocos2d/CCActionTiledGrid.m
deleted file mode 100644 (file)
index 4513866..0000000
+++ /dev/null
@@ -1,768 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 On-Core
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCActionTiledGrid.h"
-#import "CCDirector.h"
-#import "ccMacros.h"
-#import "Support/CGPointExtension.h"
-
-typedef struct
-{
-       CGPoint position;
-       CGPoint startPosition;
-       ccGridSize      delta;
-} Tile;
-
-#pragma mark -
-#pragma mark ShakyTiles3D
-
-@implementation CCShakyTiles3D
-
-+(id)actionWithRange:(int)range shakeZ:(BOOL)shakeZ grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithRange:range shakeZ:shakeZ grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithRange:(int)range shakeZ:(BOOL)sz grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               randrange = range;
-               shakeZ = sz;
-       }
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithRange:randrange shakeZ:shakeZ grid:gridSize_ duration:duration_];
-       return copy;
-}
-
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       for( i = 0; i < gridSize_.x; i++ )
-       {
-               for( j = 0; j < gridSize_.y; j++ )
-               {
-                       ccQuad3 coords = [self originalTile:ccg(i,j)];
-
-                       // X
-                       coords.bl.x += ( rand() % (randrange*2) ) - randrange;
-                       coords.br.x += ( rand() % (randrange*2) ) - randrange;
-                       coords.tl.x += ( rand() % (randrange*2) ) - randrange;
-                       coords.tr.x += ( rand() % (randrange*2) ) - randrange;
-
-                       // Y
-                       coords.bl.y += ( rand() % (randrange*2) ) - randrange;
-                       coords.br.y += ( rand() % (randrange*2) ) - randrange;
-                       coords.tl.y += ( rand() % (randrange*2) ) - randrange;
-                       coords.tr.y += ( rand() % (randrange*2) ) - randrange;
-
-                       if( shakeZ ) {
-                               coords.bl.z += ( rand() % (randrange*2) ) - randrange;
-                               coords.br.z += ( rand() % (randrange*2) ) - randrange;
-                               coords.tl.z += ( rand() % (randrange*2) ) - randrange;
-                               coords.tr.z += ( rand() % (randrange*2) ) - randrange;
-                       }
-                                               
-                       [self setTile:ccg(i,j) coords:coords];
-               }
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCShatteredTiles3D
-
-@implementation CCShatteredTiles3D
-
-+(id)actionWithRange:(int)range shatterZ:(BOOL)sz grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithRange:range shatterZ:sz grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithRange:(int)range shatterZ:(BOOL)sz grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               once = NO;
-               randrange = range;
-               shatterZ = sz;
-       }
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithRange:randrange shatterZ:shatterZ grid:gridSize_ duration:duration_];
-       return copy;
-}
-
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       if ( once == NO )
-       {
-               for( i = 0; i < gridSize_.x; i++ )
-               {
-                       for( j = 0; j < gridSize_.y; j++ )
-                       {
-                               ccQuad3 coords = [self originalTile:ccg(i,j)];
-                               
-                               // X
-                               coords.bl.x += ( rand() % (randrange*2) ) - randrange;
-                               coords.br.x += ( rand() % (randrange*2) ) - randrange;
-                               coords.tl.x += ( rand() % (randrange*2) ) - randrange;
-                               coords.tr.x += ( rand() % (randrange*2) ) - randrange;
-                               
-                               // Y
-                               coords.bl.y += ( rand() % (randrange*2) ) - randrange;
-                               coords.br.y += ( rand() % (randrange*2) ) - randrange;
-                               coords.tl.y += ( rand() % (randrange*2) ) - randrange;
-                               coords.tr.y += ( rand() % (randrange*2) ) - randrange;
-
-                               if( shatterZ ) {
-                                       coords.bl.z += ( rand() % (randrange*2) ) - randrange;
-                                       coords.br.z += ( rand() % (randrange*2) ) - randrange;                          
-                                       coords.tl.z += ( rand() % (randrange*2) ) - randrange;
-                                       coords.tr.z += ( rand() % (randrange*2) ) - randrange;
-                               }
-                               
-                               [self setTile:ccg(i,j) coords:coords];
-                       }
-               }
-               
-               once = YES;
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCShuffleTiles
-
-@implementation CCShuffleTiles
-
-+(id)actionWithSeed:(int)s grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithSeed:s grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithSeed:(int)s grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               seed = s;
-               tilesOrder = nil;
-               tiles = nil;
-       }
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithSeed:seed grid:gridSize_ duration:duration_];
-       return copy;
-}
-
-
--(void)dealloc
-{
-       if ( tilesOrder ) free(tilesOrder);
-       if ( tiles ) free(tiles);
-       [super dealloc];
-}
-
--(void)shuffle:(int*)array count:(int)len
-{
-       int i;
-       for( i = len - 1; i >= 0; i-- )
-       {
-               int j = rand() % (i+1);
-               int v = array[i];
-               array[i] = array[j];
-               array[j] = v;
-       }
-}
-
--(ccGridSize)getDelta:(ccGridSize)pos
-{
-       CGPoint pos2;
-       
-       int idx = pos.x * gridSize_.y + pos.y;
-       
-       pos2.x = tilesOrder[idx] / (int)gridSize_.y;
-       pos2.y = tilesOrder[idx] % (int)gridSize_.y;
-       
-       return ccg(pos2.x - pos.x, pos2.y - pos.y);
-}
-
--(void)placeTile:(ccGridSize)pos tile:(Tile)t
-{
-       ccQuad3 coords = [self originalTile:pos];
-       
-       CGPoint step = [[target_ grid] step];
-       coords.bl.x += (int)(t.position.x * step.x);
-       coords.bl.y += (int)(t.position.y * step.y);
-
-       coords.br.x += (int)(t.position.x * step.x);
-       coords.br.y += (int)(t.position.y * step.y);
-
-       coords.tl.x += (int)(t.position.x * step.x);
-       coords.tl.y += (int)(t.position.y * step.y);
-
-       coords.tr.x += (int)(t.position.x * step.x);
-       coords.tr.y += (int)(t.position.y * step.y);
-
-       [self setTile:pos coords:coords];
-}
-
--(void)startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       
-       if ( seed != -1 )
-               srand(seed);
-       
-       tilesCount = gridSize_.x * gridSize_.y;
-       tilesOrder = (int*)malloc(tilesCount*sizeof(int));
-       int i, j;
-       
-       for( i = 0; i < tilesCount; i++ )
-               tilesOrder[i] = i;
-       
-       [self shuffle:tilesOrder count:tilesCount];
-       
-       tiles = malloc(tilesCount*sizeof(Tile));
-       Tile *tileArray = (Tile*)tiles;
-       
-       for( i = 0; i < gridSize_.x; i++ )
-       {
-               for( j = 0; j < gridSize_.y; j++ )
-               {
-                       tileArray->position = ccp(i,j);
-                       tileArray->startPosition = ccp(i,j);
-                       tileArray->delta = [self getDelta:ccg(i,j)];
-                       tileArray++;
-               }
-       }
-}
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       Tile *tileArray = (Tile*)tiles;
-       
-       for( i = 0; i < gridSize_.x; i++ )
-       {
-               for( j = 0; j < gridSize_.y; j++ )
-               {
-                       tileArray->position = ccpMult( ccp(tileArray->delta.x, tileArray->delta.y), time);
-                       [self placeTile:ccg(i,j) tile:*tileArray];
-                       tileArray++;
-               }
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCFadeOutTRTiles
-
-@implementation CCFadeOutTRTiles
-
--(float)testFunc:(ccGridSize)pos time:(ccTime)time
-{
-       CGPoint n = ccpMult( ccp(gridSize_.x,gridSize_.y), time);
-       if ( (n.x+n.y) == 0.0f )
-               return 1.0f;
-       
-       return powf( (pos.x+pos.y) / (n.x+n.y), 6 );
-}
-
--(void)turnOnTile:(ccGridSize)pos
-{
-       [self setTile:pos coords:[self originalTile:pos]];
-}
-
--(void)turnOffTile:(ccGridSize)pos
-{
-       ccQuad3 coords; 
-       bzero(&coords, sizeof(ccQuad3));
-       [self setTile:pos coords:coords];
-}
-
--(void)transformTile:(ccGridSize)pos distance:(float)distance
-{
-       ccQuad3 coords = [self originalTile:pos];
-       CGPoint step = [[target_ grid] step];
-       
-       coords.bl.x += (step.x / 2) * (1.0f - distance);
-       coords.bl.y += (step.y / 2) * (1.0f - distance);
-
-       coords.br.x -= (step.x / 2) * (1.0f - distance);
-       coords.br.y += (step.y / 2) * (1.0f - distance);
-
-       coords.tl.x += (step.x / 2) * (1.0f - distance);
-       coords.tl.y -= (step.y / 2) * (1.0f - distance);
-
-       coords.tr.x -= (step.x / 2) * (1.0f - distance);
-       coords.tr.y -= (step.y / 2) * (1.0f - distance);
-
-       [self setTile:pos coords:coords];
-}
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       for( i = 0; i < gridSize_.x; i++ )
-       {
-               for( j = 0; j < gridSize_.y; j++ )
-               {
-                       float distance = [self testFunc:ccg(i,j) time:time];
-                       if ( distance == 0 )
-                               [self turnOffTile:ccg(i,j)];
-                       else if ( distance < 1 )
-                               [self transformTile:ccg(i,j) distance:distance];
-                       else
-                               [self turnOnTile:ccg(i,j)];
-               }
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCFadeOutBLTiles
-
-@implementation CCFadeOutBLTiles
-
--(float)testFunc:(ccGridSize)pos time:(ccTime)time
-{
-       CGPoint n = ccpMult(ccp(gridSize_.x, gridSize_.y), (1.0f-time));
-       if ( (pos.x+pos.y) == 0 )
-               return 1.0f;
-       
-       return powf( (n.x+n.y) / (pos.x+pos.y), 6 );
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCFadeOutUpTiles
-
-@implementation CCFadeOutUpTiles
-
--(float)testFunc:(ccGridSize)pos time:(ccTime)time
-{
-       CGPoint n = ccpMult(ccp(gridSize_.x, gridSize_.y), time);
-       if ( n.y == 0 )
-               return 1.0f;
-       
-       return powf( pos.y / n.y, 6 );
-}
-
--(void)transformTile:(ccGridSize)pos distance:(float)distance
-{
-       ccQuad3 coords = [self originalTile:pos];
-       CGPoint step = [[target_ grid] step];
-       
-       coords.bl.y += (step.y / 2) * (1.0f - distance);
-       coords.br.y += (step.y / 2) * (1.0f - distance);
-       coords.tl.y -= (step.y / 2) * (1.0f - distance);
-       coords.tr.y -= (step.y / 2) * (1.0f - distance);
-       
-       [self setTile:pos coords:coords];
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCFadeOutDownTiles
-
-@implementation CCFadeOutDownTiles
-
--(float)testFunc:(ccGridSize)pos time:(ccTime)time
-{
-       CGPoint n = ccpMult(ccp(gridSize_.x,gridSize_.y), (1.0f - time));
-       if ( pos.y == 0 )
-               return 1.0f;
-       
-       return powf( n.y / pos.y, 6 );
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark TurnOffTiles
-
-@implementation CCTurnOffTiles
-
-+(id)actionWithSeed:(int)s grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithSeed:s grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithSeed:(int)s grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               seed = s;
-               tilesOrder = nil;
-       }
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithSeed:seed grid:gridSize_ duration:duration_];
-       return copy;
-}
-
--(void)dealloc
-{
-       if ( tilesOrder ) free(tilesOrder);
-       [super dealloc];
-}
-
--(void)shuffle:(int*)array count:(int)len
-{
-       int i;
-       for( i = len - 1; i >= 0; i-- )
-       {
-               int j = rand() % (i+1);
-               int v = array[i];
-               array[i] = array[j];
-               array[j] = v;
-       }
-}
-
--(void)turnOnTile:(ccGridSize)pos
-{
-       [self setTile:pos coords:[self originalTile:pos]];
-}
-
--(void)turnOffTile:(ccGridSize)pos
-{
-       ccQuad3 coords;
-       
-       bzero(&coords, sizeof(ccQuad3));
-       [self setTile:pos coords:coords];
-}
-
--(void)startWithTarget:(id)aTarget
-{
-       int i;
-       
-       [super startWithTarget:aTarget];
-       
-       if ( seed != -1 )
-               srand(seed);
-       
-       tilesCount = gridSize_.x * gridSize_.y;
-       tilesOrder = (int*)malloc(tilesCount*sizeof(int));
-
-       for( i = 0; i < tilesCount; i++ )
-               tilesOrder[i] = i;
-       
-       [self shuffle:tilesOrder count:tilesCount];
-}
-
--(void)update:(ccTime)time
-{
-       int i, l, t;
-       
-       l = (int)(time * (float)tilesCount);
-       
-       for( i = 0; i < tilesCount; i++ )
-       {
-               t = tilesOrder[i];
-               ccGridSize tilePos = ccg( t / gridSize_.y, t % gridSize_.y );
-               
-               if ( i < l )
-                       [self turnOffTile:tilePos];
-               else
-                       [self turnOnTile:tilePos];
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCWavesTiles3D
-
-@implementation CCWavesTiles3D
-
-@synthesize amplitude;
-@synthesize amplitudeRate;
-
-+(id)actionWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithWaves:wav amplitude:amp grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithWaves:(int)wav amplitude:(float)amp grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               waves = wav;
-               amplitude = amp;
-               amplitudeRate = 1.0f;
-       }
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithWaves:waves amplitude:amplitude grid:gridSize_ duration:duration_];
-       return copy;
-}
-
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       for( i = 0; i < gridSize_.x; i++ )
-       {
-               for( j = 0; j < gridSize_.y; j++ )
-               {
-                       ccQuad3 coords = [self originalTile:ccg(i,j)];
-                       
-                       coords.bl.z = (sinf(time*(CGFloat)M_PI*waves*2 + (coords.bl.y+coords.bl.x) * .01f) * amplitude * amplitudeRate );
-                       coords.br.z     = coords.bl.z;
-                       coords.tl.z = coords.bl.z;
-                       coords.tr.z = coords.bl.z;
-                       
-                       [self setTile:ccg(i,j) coords:coords];
-               }
-       }
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCJumpTiles3D
-
-@implementation CCJumpTiles3D
-
-@synthesize amplitude;
-@synthesize amplitudeRate;
-
-+(id)actionWithJumps:(int)j amplitude:(float)amp grid:(ccGridSize)gridSize duration:(ccTime)d
-{
-       return [[[self alloc] initWithJumps:j amplitude:amp grid:gridSize duration:d] autorelease];
-}
-
--(id)initWithJumps:(int)j amplitude:(float)amp grid:(ccGridSize)gSize duration:(ccTime)d
-{
-       if ( (self = [super initWithSize:gSize duration:d]) )
-       {
-               jumps = j;
-               amplitude = amp;
-               amplitudeRate = 1.0f;
-       }
-       
-       return self;
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithJumps:jumps amplitude:amplitude grid:gridSize_ duration:duration_];
-       return copy;
-}
-
-
--(void)update:(ccTime)time
-{
-       int i, j;
-       
-       float sinz =  (sinf((CGFloat)M_PI*time*jumps*2) * amplitude * amplitudeRate );
-       float sinz2 = (sinf((CGFloat)M_PI*(time*jumps*2 + 1)) * amplitude * amplitudeRate );
-       
-       for( i = 0; i < gridSize_.x; i++ )
-       {
-               for( j = 0; j < gridSize_.y; j++ )
-               {
-                       ccQuad3 coords = [self originalTile:ccg(i,j)];
-                       
-                       if ( ((i+j) % 2) == 0 )
-                       {
-                               coords.bl.z += sinz;
-                               coords.br.z += sinz;
-                               coords.tl.z += sinz;
-                               coords.tr.z += sinz;
-                       }
-                       else
-                       {
-                               coords.bl.z += sinz2;
-                               coords.br.z += sinz2;
-                               coords.tl.z += sinz2;
-                               coords.tr.z += sinz2;
-                       }
-                       
-                       [self setTile:ccg(i,j) coords:coords];
-               }
-       }
-}
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark SplitRows
-
-@implementation CCSplitRows
-
-+(id)actionWithRows:(int)r duration:(ccTime)d
-{
-       return [[[self alloc] initWithRows:r duration:d] autorelease];
-}
-
--(id)initWithRows:(int)r duration:(ccTime)d
-{
-       rows = r;
-       return [super initWithSize:ccg(1,r) duration:d];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithRows:rows duration:duration_];
-       return copy;
-}
-
--(void)startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       winSize = [[CCDirector sharedDirector] winSizeInPixels];
-}
-
--(void)update:(ccTime)time
-{
-       int j;
-       
-       for( j = 0; j < gridSize_.y; j++ )
-       {
-               ccQuad3 coords = [self originalTile:ccg(0,j)];
-               float   direction = 1;
-               
-               if ( (j % 2 ) == 0 )
-                       direction = -1;
-               
-               coords.bl.x += direction * winSize.width * time;
-               coords.br.x += direction * winSize.width * time;
-               coords.tl.x += direction * winSize.width * time;
-               coords.tr.x += direction * winSize.width * time;
-               
-               [self setTile:ccg(0,j) coords:coords];
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCSplitCols
-
-@implementation CCSplitCols
-
-+(id)actionWithCols:(int)c duration:(ccTime)d
-{
-       return [[[self alloc] initWithCols:c duration:d] autorelease];
-}
-
--(id)initWithCols:(int)c duration:(ccTime)d
-{
-       cols = c;
-       return [super initWithSize:ccg(c,1) duration:d];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCGridAction *copy = [[[self class] allocWithZone:zone] initWithCols:cols duration:duration_];
-       return copy;
-}
-
--(void)startWithTarget:(id)aTarget
-{
-       [super startWithTarget:aTarget];
-       winSize = [[CCDirector sharedDirector] winSizeInPixels];
-}
-
--(void)update:(ccTime)time
-{
-       int i;
-       
-       for( i = 0; i < gridSize_.x; i++ )
-       {
-               ccQuad3 coords = [self originalTile:ccg(i,0)];
-               float   direction = 1;
-               
-               if ( (i % 2 ) == 0 )
-                       direction = -1;
-               
-               coords.bl.y += direction * winSize.height * time;
-               coords.br.y += direction * winSize.height * time;
-               coords.tl.y += direction * winSize.height * time;
-               coords.tr.y += direction * winSize.height * time;
-               
-               [self setTile:ccg(i,0) coords:coords];
-       }
-}
-
-@end
diff --git a/Classes/cocos2d/CCActionTween.h b/Classes/cocos2d/CCActionTween.h
deleted file mode 100644 (file)
index 69fdea5..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright 2009 lhunath (Maarten Billemont)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import <Foundation/Foundation.h>
-#import "CCActionInterval.h"
-
-/** CCActionTween
- CCActionTween is an action that lets you update any property of an object.
- For example, if you want to modify the "width" property of a target from 200 to 300 in 2 senconds, then:
-       id modifyWidth = [CCActionTween actionWithDuration:2 key:@"width" from:200 to:300];
-       [target runAction:modifyWidth];
-
- Another example: CCScaleTo action could be rewriten using CCPropertyAction:
-       // scaleA and scaleB are equivalents
-       id scaleA = [CCScaleTo actionWithDuration:2 scale:3];
-       id scaleB = [CCActionTween actionWithDuration:2 key:@"scale" from:1 to:3];
-
- @since v0.99.2
- */
-@interface CCActionTween : CCActionInterval
-{
-       NSString                *key_;
-    
-       float                   from_, to_;
-       float                   delta_;
-}
-
-/** creates an initializes the action with the property name (key), and the from and to parameters. */
-+ (id)actionWithDuration:(ccTime)aDuration key:(NSString *)key from:(float)from to:(float)to;
-
-/** initializes the action with the property name (key), and the from and to parameters. */
-- (id)initWithDuration:(ccTime)aDuration key:(NSString *)key from:(float)from to:(float)to;
-    
-@end
diff --git a/Classes/cocos2d/CCActionTween.m b/Classes/cocos2d/CCActionTween.m
deleted file mode 100644 (file)
index 95ae572..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright 2009 lhunath (Maarten Billemont)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "CCActionTween.h"
-
-
-@implementation CCActionTween
-
-+ (id)actionWithDuration:(ccTime)aDuration key:(NSString *)aKey from:(float)aFrom to:(float)aTo {
-
-       return [[[[self class] alloc] initWithDuration:aDuration key:aKey from:aFrom to:aTo] autorelease];
-}
-
-- (id)initWithDuration:(ccTime)aDuration key:(NSString *)key from:(float)from to:(float)to {
-    
-       if ((self = [super initWithDuration:aDuration])) {
-    
-               key_    = [key copy];
-               to_             = to;
-               from_   = from;
-
-       }
-    
-       return self;
-}
-
-- (void) dealloc
-{
-       [key_ release];
-       [super dealloc];
-}
-
-- (void)startWithTarget:aTarget
-{
-       [super startWithTarget:aTarget];
-       delta_ = to_ - from_;
-}
-
-- (void) update:(ccTime) dt
-{    
-       [target_ setValue:[NSNumber numberWithFloat:to_  - delta_ * (1 - dt)] forKey:key_];
-}
-
-- (CCActionInterval *) reverse
-{
-       return [[self class] actionWithDuration:duration_ key:key_ from:to_ to:from_];
-}
-
-
-@end
diff --git a/Classes/cocos2d/CCAnimation.h b/Classes/cocos2d/CCAnimation.h
deleted file mode 100644 (file)
index 86c089c..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import <Foundation/Foundation.h>
-
-@class CCSpriteFrame;
-@class CCTexture2D;
-
-/** A CCAnimation object is used to perform animations on the CCSprite objects.
- The CCAnimation object contains CCSpriteFrame objects, and a possible delay between the frames.
- You can animate a CCAnimation object by using the CCAnimate action. Example:
-  [sprite runAction:[CCAnimate actionWithAnimation:animation]];
- */
-@interface CCAnimation : NSObject
-{
-       NSString                        *name_;
-       float                           delay_;
-       NSMutableArray          *frames_;
-}
-
-/** name of the animation */
-@property (nonatomic,readwrite,retain) NSString *name;
-/** delay between frames in seconds. */
-@property (nonatomic,readwrite,assign) float delay;
-/** array of frames */
-@property (nonatomic,readwrite,retain) NSMutableArray *frames;
-
-/** Creates an animation
- @since v0.99.5
- */
-+(id) animation;
-
-/** Creates an animation with frames.
- @since v0.99.5
- */
-+(id) animationWithFrames:(NSArray*)frames;
-
-/* Creates an animation with frames and a delay between frames.
- @since v0.99.5
- */
-+(id) animationWithFrames:(NSArray*)frames delay:(float)delay;
-
-/** Creates a CCAnimation with a name
- @since v0.99.3
- @deprecated Will be removed in 1.0.1. Use "animation" instead.
- */
-+(id) animationWithName:(NSString*)name DEPRECATED_ATTRIBUTE;
-
-/** Creates a CCAnimation with a name and frames
- @since v0.99.3
- @deprecated Will be removed in 1.0.1. Use "animationWithFrames" instead.
- */
-+(id) animationWithName:(NSString*)name frames:(NSArray*)frames DEPRECATED_ATTRIBUTE;
-
-/** Creates a CCAnimation with a name and delay between frames. */
-+(id) animationWithName:(NSString*)name delay:(float)delay DEPRECATED_ATTRIBUTE;
-
-/** Creates a CCAnimation with a name, delay and an array of CCSpriteFrames. */
-+(id) animationWithName:(NSString*)name delay:(float)delay frames:(NSArray*)frames DEPRECATED_ATTRIBUTE;
-
-
-/** Initializes a CCAnimation with frames.
- @since v0.99.5
-*/
--(id) initWithFrames:(NSArray*)frames;
-
-/** Initializes a CCAnimation with frames and a delay between frames
- @since v0.99.5
- */
--(id) initWithFrames:(NSArray *)frames delay:(float)delay;
-
-/** Initializes a CCAnimation with a name
- @since v0.99.3
- @deprecated Will be removed in 1.0.1. Use "init" instead.
- */
--(id) initWithName:(NSString*)name DEPRECATED_ATTRIBUTE;
-
-/** Initializes a CCAnimation with a name and frames
- @since v0.99.3
- @deprecated Will be removed in 1.0.1. Use "initWithFrames" instead.
- */
--(id) initWithName:(NSString*)name frames:(NSArray*)frames DEPRECATED_ATTRIBUTE;
-
-/** Initializes a CCAnimation with a name and delay between frames.
- @deprecated Will be removed in 1.0.1. Use "initWithFrames:nil delay:delay" instead.
-*/
--(id) initWithName:(NSString*)name delay:(float)delay DEPRECATED_ATTRIBUTE;
-
-/** Initializes a CCAnimation with a name, delay and an array of CCSpriteFrames.
- @deprecated Will be removed in 1.0.1. Use "initWithFrames:frames delay:delay" instead.
-*/
--(id) initWithName:(NSString*)name delay:(float)delay frames:(NSArray*)frames DEPRECATED_ATTRIBUTE;
-
-/** Adds a frame to a CCAnimation. */
--(void) addFrame:(CCSpriteFrame*)frame;
-
-/** Adds a frame with an image filename. Internally it will create a CCSpriteFrame and it will add it.
- Added to facilitate the migration from v0.8 to v0.9.
- */
--(void) addFrameWithFilename:(NSString*)filename;
-
-/** Adds a frame with a texture and a rect. Internally it will create a CCSpriteFrame and it will add it.
- Added to facilitate the migration from v0.8 to v0.9.
- */
--(void) addFrameWithTexture:(CCTexture2D*)texture rect:(CGRect)rect;
-
-@end
diff --git a/Classes/cocos2d/CCAnimation.m b/Classes/cocos2d/CCAnimation.m
deleted file mode 100644 (file)
index bb8480c..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "ccMacros.h"
-#import "CCAnimation.h"
-#import "CCSpriteFrame.h"
-#import "CCTexture2D.h"
-#import "CCTextureCache.h"
-
-@implementation CCAnimation
-@synthesize name = name_, delay = delay_, frames = frames_;
-
-+(id) animation
-{
-       return [[[self alloc] init] autorelease];
-}
-
-+(id) animationWithFrames:(NSArray*)frames
-{
-       return [[[self alloc] initWithFrames:frames] autorelease];
-}
-
-+(id) animationWithFrames:(NSArray*)frames delay:(float)delay
-{
-       return [[[self alloc] initWithFrames:frames delay:delay] autorelease];
-}
-
-+(id) animationWithName:(NSString*)name
-{
-       return [[[self alloc] initWithName:name] autorelease];
-}
-
-+(id) animationWithName:(NSString*)name frames:(NSArray*)frames
-{
-       return [[[self alloc] initWithName:name frames:frames] autorelease];
-}
-
-+(id) animationWithName:(NSString*)aname delay:(float)d frames:(NSArray*)array
-{
-       return [[[self alloc] initWithName:aname delay:d frames:array] autorelease];
-}
-
-+(id) animationWithName:(NSString*)aname delay:(float)d
-{
-       return [[[self alloc] initWithName:aname delay:d] autorelease];
-}
-
--(id) init
-{
-       return [self initWithFrames:nil delay:0];
-}
-
--(id) initWithFrames:(NSArray*)frames
-{
-       return [self initWithFrames:frames delay:0];
-}
-
--(id) initWithFrames:(NSArray*)array delay:(float)delay
-{
-       if( (self=[super init]) ) {
-               
-               delay_ = delay;
-               self.frames = [NSMutableArray arrayWithArray:array];
-       }
-       return self;
-}
-
--(id) initWithName:(NSString*)name
-{
-       return [self initWithName:name delay:0 frames:nil];
-}
-
--(id) initWithName:(NSString*)name frames:(NSArray*)frames
-{
-       return [self initWithName:name delay:0 frames:frames];
-}
-
--(id) initWithName:(NSString*)t delay:(float)d
-{
-       return [self initWithName:t delay:d frames:nil];
-}
-
--(id) initWithName:(NSString*)name delay:(float)delay frames:(NSArray*)array
-{
-       if( (self=[super init]) ) {
-               
-               delay_ = delay;
-               self.name = name;
-               self.frames = [NSMutableArray arrayWithArray:array];
-       }
-       return self;
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | frames=%d, delay:%f>", [self class], self,
-                       [frames_ count],
-                       delay_
-                       ];
-}
-
--(void) dealloc
-{
-       CCLOGINFO( @"cocos2d: deallocing %@",self);
-       [name_ release];
-       [frames_ release];
-       [super dealloc];
-}
-
--(void) addFrame:(CCSpriteFrame*)frame
-{
-       [frames_ addObject:frame];
-}
-
--(void) addFrameWithFilename:(NSString*)filename
-{
-       CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addImage:filename];
-       CGRect rect = CGRectZero;
-       rect.size = texture.contentSize;
-       CCSpriteFrame *frame = [CCSpriteFrame frameWithTexture:texture rect:rect];
-       [frames_ addObject:frame];
-}
-
--(void) addFrameWithTexture:(CCTexture2D*)texture rect:(CGRect)rect
-{
-       CCSpriteFrame *frame = [CCSpriteFrame frameWithTexture:texture rect:rect];
-       [frames_ addObject:frame];
-}
-
-@end
diff --git a/Classes/cocos2d/CCAnimationCache.h b/Classes/cocos2d/CCAnimationCache.h
deleted file mode 100644 (file)
index 3a9b8ae..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import <Foundation/Foundation.h>
-
-@class CCAnimation;
-
-/** Singleton that manages the Animations.
- It saves in a cache the animations. You should use this class if you want to save your animations in a cache.
-
- Before v0.99.5, the recommend way was to save them on the CCSprite. Since v0.99.5, you should use this class instead.
- @since v0.99.5
- */
-@interface CCAnimationCache : NSObject
-{
-       NSMutableDictionary *animations_;
-}
-
-/** Retruns ths shared instance of the Animation cache */
-+ (CCAnimationCache *) sharedAnimationCache;
-
-/** Purges the cache. It releases all the CCAnimation objects and the shared instance.
- */
-+(void)purgeSharedAnimationCache;
-
-/** Adds a CCAnimation with a name.
- */
--(void) addAnimation:(CCAnimation*)animation name:(NSString*)name;
-
-/** Deletes a CCAnimation from the cache.
- */
--(void) removeAnimationByName:(NSString*)name;
-
-/** Returns a CCAnimation that was previously added.
- If the name is not found it will return nil.
- You should retain the returned copy if you are going to use it.
- */
--(CCAnimation*) animationByName:(NSString*)name;
-
-@end
diff --git a/Classes/cocos2d/CCAnimationCache.m b/Classes/cocos2d/CCAnimationCache.m
deleted file mode 100644 (file)
index 003bc63..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "ccMacros.h"
-#import "CCAnimationCache.h"
-#import "CCAnimation.h"
-#import "CCSprite.h"
-
-
-@implementation CCAnimationCache
-
-#pragma mark CCAnimationCache - Alloc, Init & Dealloc
-
-static CCAnimationCache *sharedAnimationCache_=nil;
-
-+ (CCAnimationCache *)sharedAnimationCache
-{
-       if (!sharedAnimationCache_)
-               sharedAnimationCache_ = [[CCAnimationCache alloc] init];
-               
-       return sharedAnimationCache_;
-}
-
-+(id)alloc
-{
-       NSAssert(sharedAnimationCache_ == nil, @"Attempted to allocate a second instance of a singleton.");
-       return [super alloc];
-}
-
-+(void)purgeSharedAnimationCache
-{
-       [sharedAnimationCache_ release];
-       sharedAnimationCache_ = nil;
-}
-
--(id) init
-{
-       if( (self=[super init]) ) {
-               animations_ = [[NSMutableDictionary alloc] initWithCapacity: 20];
-       }
-       
-       return self;
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | num of animations =  %i>", [self class], self, [animations_ count]];
-}
-
--(void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-       
-       [animations_ release];
-       [super dealloc];
-}
-
-#pragma mark CCAnimationCache - load/get/del
-
--(void) addAnimation:(CCAnimation*)animation name:(NSString*)name
-{
-       [animations_ setObject:animation forKey:name];
-}
-
--(void) removeAnimationByName:(NSString*)name
-{
-       if( ! name )
-               return;
-       
-       [animations_ removeObjectForKey:name];
-}
-
--(CCAnimation*) animationByName:(NSString*)name
-{
-       return [animations_ objectForKey:name];
-}
-
-@end
diff --git a/Classes/cocos2d/CCAtlasNode.h b/Classes/cocos2d/CCAtlasNode.h
deleted file mode 100644 (file)
index 145586f..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
-#import "CCTextureAtlas.h"
-#import "CCNode.h"
-#import "CCProtocols.h"
-
-/** CCAtlasNode is a subclass of CCNode that implements the CCRGBAProtocol and
- CCTextureProtocol protocol
- It knows how to render a TextureAtlas object.
- If you are going to render a TextureAtlas consider subclassing CCAtlasNode (or a subclass of CCAtlasNode)
- All features from CCNode are valid, plus the following features:
- - opacity and RGB colors
- */
-@interface CCAtlasNode : CCNode <CCRGBAProtocol, CCTextureProtocol>
-{
-       // texture atlas
-       CCTextureAtlas  *textureAtlas_;
-
-       // chars per row
-       int                             itemsPerRow_;
-       // chars per column
-       int                             itemsPerColumn_;
-               
-       // width of each char
-       int                             itemWidth_;
-       // height of each char
-       int                             itemHeight_;
-
-       // blend function
-       ccBlendFunc             blendFunc_;
-
-       // texture RGBA. 
-       GLubyte         opacity_;
-       ccColor3B       color_;
-       ccColor3B       colorUnmodified_;
-       BOOL opacityModifyRGB_;
-}
-
-/** conforms to CCTextureProtocol protocol */
-@property (nonatomic,readwrite,retain) CCTextureAtlas *textureAtlas;
-
-/** conforms to CCTextureProtocol protocol */
-@property (nonatomic,readwrite) ccBlendFunc blendFunc;
-
-/** conforms to CCRGBAProtocol protocol */
-@property (nonatomic,readwrite) GLubyte opacity;
-/** conforms to CCRGBAProtocol protocol */
-@property (nonatomic,readwrite) ccColor3B color;
-
-
-/** creates a CCAtlasNode  with an Atlas file the width and height of each item measured in points and the quantity of items to render*/
-+(id) atlasWithTileFile:(NSString*)tile tileWidth:(int)w tileHeight:(int)h itemsToRender: (int) c;
-
-/** initializes an CCAtlasNode  with an Atlas file the width and height of each item measured in points and the quantity of items to render*/
--(id) initWithTileFile:(NSString*)tile tileWidth:(int)w tileHeight:(int)h itemsToRender: (int) c;
-
-/** updates the Atlas (indexed vertex array).
- * Shall be overriden in subclasses
- */
--(void) updateAtlasValues;
-@end
diff --git a/Classes/cocos2d/CCAtlasNode.m b/Classes/cocos2d/CCAtlasNode.m
deleted file mode 100644 (file)
index 840fead..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
-#import "CCAtlasNode.h"
-#import "ccMacros.h"
-
-
-@interface CCAtlasNode ()
--(void) calculateMaxItems;
--(void) updateBlendFunc;
--(void) updateOpacityModifyRGB;
-@end
-
-@implementation CCAtlasNode
-
-@synthesize textureAtlas = textureAtlas_;
-@synthesize blendFunc = blendFunc_;
-
-#pragma mark CCAtlasNode - Creation & Init
-+(id) atlasWithTileFile:(NSString*)tile tileWidth:(int)w tileHeight:(int)h itemsToRender: (int) c
-{
-       return [[[self alloc] initWithTileFile:tile tileWidth:w tileHeight:h itemsToRender:c] autorelease];
-}
-
--(id) initWithTileFile:(NSString*)tile tileWidth:(int)w tileHeight:(int)h itemsToRender: (int) c
-{
-       if( (self=[super init]) ) {
-       
-               itemWidth_ = w * CC_CONTENT_SCALE_FACTOR();
-               itemHeight_ = h * CC_CONTENT_SCALE_FACTOR();
-
-               opacity_ = 255;
-               color_ = colorUnmodified_ = ccWHITE;
-               opacityModifyRGB_ = YES;
-               
-               blendFunc_.src = CC_BLEND_SRC;
-               blendFunc_.dst = CC_BLEND_DST;
-               
-               // double retain to avoid the autorelease pool
-               // also, using: self.textureAtlas supports re-initialization without leaking
-               self.textureAtlas = [[CCTextureAtlas alloc] initWithFile:tile capacity:c];
-               [textureAtlas_ release];
-               
-               if( ! textureAtlas_ ) {
-                       CCLOG(@"cocos2d: Could not initialize CCAtlasNode. Invalid Texture");
-                       [self release];
-                       return nil;
-               }
-               
-               [self updateBlendFunc];
-               [self updateOpacityModifyRGB];
-               
-               [self calculateMaxItems];
-               
-       }
-       return self;
-}
-
--(void) dealloc
-{
-       [textureAtlas_ release];
-       
-       [super dealloc];
-}
-
-#pragma mark CCAtlasNode - Atlas generation
-
--(void) calculateMaxItems
-{
-       CGSize s = [[textureAtlas_ texture] contentSizeInPixels];
-       itemsPerColumn_ = s.height / itemHeight_;
-       itemsPerRow_ = s.width / itemWidth_;
-}
-
--(void) updateAtlasValues
-{
-       [NSException raise:@"CCAtlasNode:Abstract" format:@"updateAtlasValue not overriden"];
-}
-
-#pragma mark CCAtlasNode - draw
-- (void) draw
-{
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Unneeded states: GL_COLOR_ARRAY
-       glDisableClientState(GL_COLOR_ARRAY);
-
-       glColor4ub( color_.r, color_.g, color_.b, opacity_);
-
-       BOOL newBlend = blendFunc_.src != CC_BLEND_SRC || blendFunc_.dst != CC_BLEND_DST;
-       if( newBlend )
-               glBlendFunc( blendFunc_.src, blendFunc_.dst );
-               
-       [textureAtlas_ drawQuads];
-               
-       if( newBlend )
-               glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);
-       
-       // is this chepear than saving/restoring color state ?
-       // XXX: There is no need to restore the color to (255,255,255,255). Objects should use the color
-       // XXX: that they need
-//     glColor4ub( 255, 255, 255, 255);
-
-       // restore default GL state
-       glEnableClientState(GL_COLOR_ARRAY);
-
-}
-
-#pragma mark CCAtlasNode - RGBA protocol
-
-- (ccColor3B) color
-{
-       if(opacityModifyRGB_)
-               return colorUnmodified_;
-       
-       return color_;
-}
-
--(void) setColor:(ccColor3B)color3
-{
-       color_ = colorUnmodified_ = color3;
-       
-       if( opacityModifyRGB_ ){
-               color_.r = color3.r * opacity_/255;
-               color_.g = color3.g * opacity_/255;
-               color_.b = color3.b * opacity_/255;
-       }       
-}
-
--(GLubyte) opacity
-{
-       return opacity_;
-}
-
--(void) setOpacity:(GLubyte) anOpacity
-{
-       opacity_                        = anOpacity;
-       
-       // special opacity for premultiplied textures
-       if( opacityModifyRGB_ )
-               [self setColor: colorUnmodified_];      
-}
-
--(void) setOpacityModifyRGB:(BOOL)modify
-{
-       ccColor3B oldColor      = self.color;
-       opacityModifyRGB_       = modify;
-       self.color                      = oldColor;
-}
-
--(BOOL) doesOpacityModifyRGB
-{
-       return opacityModifyRGB_;
-}
-
--(void) updateOpacityModifyRGB
-{
-       opacityModifyRGB_ = [textureAtlas_.texture hasPremultipliedAlpha];
-}
-
-#pragma mark CCAtlasNode - CocosNodeTexture protocol
-
--(void) updateBlendFunc
-{
-       if( ! [textureAtlas_.texture hasPremultipliedAlpha] ) {
-               blendFunc_.src = GL_SRC_ALPHA;
-               blendFunc_.dst = GL_ONE_MINUS_SRC_ALPHA;
-       }
-}
-
--(void) setTexture:(CCTexture2D*)texture
-{
-       textureAtlas_.texture = texture;
-       [self updateBlendFunc];
-       [self updateOpacityModifyRGB];
-}
-
--(CCTexture2D*) texture
-{
-       return textureAtlas_.texture;
-}
-
-@end
diff --git a/Classes/cocos2d/CCBlockSupport.h b/Classes/cocos2d/CCBlockSupport.h
deleted file mode 100644 (file)
index 339d5aa..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2010 Stuart Carnie
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import <Foundation/Foundation.h>
-
-/** @file
- cocos2d blocks support
- */
-
-// To comply with Apple Objective C runtime (this is defined in NSObjCRuntime.h)
-#if !defined(NS_BLOCKS_AVAILABLE)
-       #if __BLOCKS__
-               #define NS_BLOCKS_AVAILABLE 1
-       #else
-               #define NS_BLOCKS_AVAILABLE 0
-       #endif
-#endif
-
-#if NS_BLOCKS_AVAILABLE
-
-@interface NSObject(CCBlocksAdditions)
-
-- (void)ccCallbackBlock;
-- (void)ccCallbackBlockWithSender:(id)sender;
-
-@end
-
-#endif // NS_BLOCKS_AVAILABLE
diff --git a/Classes/cocos2d/CCBlockSupport.m b/Classes/cocos2d/CCBlockSupport.m
deleted file mode 100644 (file)
index 9ac99b3..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2010 Stuart Carnie
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCBlockSupport.h"
-
-#if NS_BLOCKS_AVAILABLE
-
-@implementation NSObject(CCBlocksAdditions)
-
-- (void)ccCallbackBlock {
-       void (^block)(void) = (id)self;
-       block();
-}
-
-- (void)ccCallbackBlockWithSender:(id)sender {
-       void (^block)(id) = (id)self;
-       block(sender);
-}
-
-
-@end
-
-#endif
diff --git a/Classes/cocos2d/CCCamera.h b/Classes/cocos2d/CCCamera.h
deleted file mode 100644 (file)
index 387c854..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
-
-#import "CCNode.h"
-
-/** 
-    A CCCamera is used in every CCNode.
-    Useful to look at the object from different views.
-    The OpenGL gluLookAt() function is used to locate the
-    camera.
-
-    If the object is transformed by any of the scale, rotation or
-    position attributes, then they will override the camera.
-       IMPORTANT: Either your use the camera or the rotation/scale/position properties. You can't use both.
-    World coordinates won't work if you use the camera.
-
-    Limitations:
-     - Some nodes, like CCParallaxNode, CCParticle uses world node coordinates, and they won't work properly if you move them (or any of their ancestors)
-       using the camera.
-     
-     - It doesn't work on batched nodes like CCSprite objects when they are parented to a CCSpriteBatchNode object.
-        - It is recommended to use it ONLY if you are going to create 3D effects. For 2D effecs, use the action CCFollow or position/scale/rotate.
-*/
-
-@interface CCCamera : NSObject
-{
-    float eyeX_;
-    float eyeY_;
-    float eyeZ_;
-
-    float centerX_;
-    float centerY_;
-    float centerZ_;
-
-    float upX_;
-    float upY_;
-    float upZ_;
-       
-       BOOL dirty_;
-}
-
-/** whether of not the camera is dirty */
-@property (nonatomic,readwrite) BOOL dirty;
-
-/** returns the Z eye */
-+(float) getZEye;
-
-/** sets the camera in the defaul position */
--(void) restore;
-/** Sets the camera using gluLookAt using its eye, center and up_vector */
--(void) locate;
-/** sets the eye values in points */
--(void) setEyeX: (float)x eyeY:(float)y eyeZ:(float)z;
-/** sets the center values in points */
--(void) setCenterX: (float)x centerY:(float)y centerZ:(float)z;
-/** sets the up values */
--(void) setUpX: (float)x upY:(float)y upZ:(float)z;
-
-/** get the eye vector values in points */
--(void) eyeX:(float*)x eyeY:(float*)y eyeZ:(float*)z;
-/** get the center vector values in points */
--(void) centerX:(float*)x centerY:(float*)y centerZ:(float*)z;
-/** get the up vector values */
--(void) upX:(float*)x upY:(float*)y upZ:(float*)z;
-
-
-@end
diff --git a/Classes/cocos2d/CCCamera.m b/Classes/cocos2d/CCCamera.m
deleted file mode 100644 (file)
index 3841ab3..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
-#import "Platforms/CCGL.h"
-#import "CCCamera.h"
-#import "ccMacros.h"
-#import "CCDrawingPrimitives.h"
-
-@implementation CCCamera
-
-@synthesize dirty = dirty_;
-
--(id) init
-{
-       if( (self=[super init]) )
-               [self restore];
-       
-       return self;
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | center = (%.2f,%.2f,%.2f)>", [self class], self, centerX_, centerY_, centerZ_];
-}
-
-
-- (void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-       [super dealloc];
-}
-
--(void) restore
-{
-       eyeX_ = eyeY_ = 0;
-       eyeZ_ = [CCCamera getZEye];
-       
-       centerX_ = centerY_ = centerZ_ = 0;
-       
-       upX_ = 0.0f;
-       upY_ = 1.0f;
-       upZ_ = 0.0f;
-       
-       dirty_ = NO;
-}
-
--(void) locate
-{
-       if( dirty_ )
-               gluLookAt( eyeX_, eyeY_, eyeZ_,
-                               centerX_, centerY_, centerZ_,
-                               upX_, upY_, upZ_
-                               );
-}
-
-+(float) getZEye
-{
-       return FLT_EPSILON;
-//     CGSize s = [[CCDirector sharedDirector] displaySize];
-//     return ( s.height / 1.1566f );
-}
-
--(void) setEyeX: (float)x eyeY:(float)y eyeZ:(float)z
-{
-       eyeX_ = x * CC_CONTENT_SCALE_FACTOR();
-       eyeY_ = y * CC_CONTENT_SCALE_FACTOR();
-       eyeZ_ = z * CC_CONTENT_SCALE_FACTOR();
-       dirty_ = YES;   
-}
-
--(void) setCenterX: (float)x centerY:(float)y centerZ:(float)z
-{
-       centerX_ = x * CC_CONTENT_SCALE_FACTOR();
-       centerY_ = y * CC_CONTENT_SCALE_FACTOR();
-       centerZ_ = z * CC_CONTENT_SCALE_FACTOR();
-       dirty_ = YES;
-}
-
--(void) setUpX: (float)x upY:(float)y upZ:(float)z
-{
-       upX_ = x;
-       upY_ = y;
-       upZ_ = z;
-       dirty_ = YES;
-}
-
--(void) eyeX: (float*)x eyeY:(float*)y eyeZ:(float*)z
-{
-       *x = eyeX_ / CC_CONTENT_SCALE_FACTOR();
-       *y = eyeY_ / CC_CONTENT_SCALE_FACTOR();
-       *z = eyeZ_ / CC_CONTENT_SCALE_FACTOR();
-}
-
--(void) centerX: (float*)x centerY:(float*)y centerZ:(float*)z
-{
-       *x = centerX_ / CC_CONTENT_SCALE_FACTOR();
-       *y = centerY_ / CC_CONTENT_SCALE_FACTOR();
-       *z = centerZ_ / CC_CONTENT_SCALE_FACTOR();
-}
-
--(void) upX: (float*)x upY:(float*)y upZ:(float*)z
-{
-       *x = upX_;
-       *y = upY_;
-       *z = upZ_;
-}
-
-@end
diff --git a/Classes/cocos2d/CCCompatibility.h b/Classes/cocos2d/CCCompatibility.h
deleted file mode 100644 (file)
index b1b578e..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-// AUTOMATICALLY GENERATED. DO NOT EDIT
-
-
-#import <Foundation/Foundation.h>
-#import "cocos2d.h"
-
-#if CC_COMPATIBILITY_WITH_0_8
-
-DEPRECATED_ATTRIBUTE @interface AccelAmplitude : CCAccelAmplitude {} @end
-DEPRECATED_ATTRIBUTE @interface AccelDeccelAmplitude : CCAccelDeccelAmplitude {} @end
-DEPRECATED_ATTRIBUTE @interface Action : CCAction {} @end
-DEPRECATED_ATTRIBUTE @interface ActionManager : CCActionManager {} @end
-DEPRECATED_ATTRIBUTE @interface Animate : CCAnimate {} @end
-DEPRECATED_ATTRIBUTE @interface Animation : CCAnimation {} @end
-DEPRECATED_ATTRIBUTE @interface AtlasAnimation : CCAnimation {} @end
-DEPRECATED_ATTRIBUTE @interface AtlasNode : CCAtlasNode {} @end
-DEPRECATED_ATTRIBUTE @interface AtlasSprite : CCSprite {} @end
-DEPRECATED_ATTRIBUTE @interface AtlasSpriteFrame : CCSpriteFrame {} @end
-DEPRECATED_ATTRIBUTE @interface AtlasSpriteManager : CCSpriteSheet {} @end
-DEPRECATED_ATTRIBUTE @interface BezierBy : CCBezierBy {} @end
-DEPRECATED_ATTRIBUTE @interface BezierTo : CCBezierTo {} @end
-DEPRECATED_ATTRIBUTE @interface BitmapFontAtlas : CCBitmapFontAtlas {} @end
-DEPRECATED_ATTRIBUTE @interface BitmapFontConfiguration : CCBitmapFontConfiguration {} @end
-DEPRECATED_ATTRIBUTE @interface Blink : CCBlink {} @end
-DEPRECATED_ATTRIBUTE @interface CallFunc : CCCallFunc {} @end
-DEPRECATED_ATTRIBUTE @interface CallFuncN : CCCallFuncN {} @end
-DEPRECATED_ATTRIBUTE @interface CallFuncND : CCCallFuncND {} @end
-DEPRECATED_ATTRIBUTE @interface Camera : CCCamera {} @end
-DEPRECATED_ATTRIBUTE @interface CameraAction : CCCameraAction {} @end
-DEPRECATED_ATTRIBUTE @interface CocosNode : CCNode {} @end
-DEPRECATED_ATTRIBUTE @interface ColorLayer : CCColorLayer {} @end
-DEPRECATED_ATTRIBUTE @interface DeccelAmplitude : CCDeccelAmplitude {} @end
-DEPRECATED_ATTRIBUTE @interface DelayTime : CCDelayTime {} @end
-DEPRECATED_ATTRIBUTE @interface Director : CCDirector {} @end
-DEPRECATED_ATTRIBUTE @interface DisplayLinkDirector : CCDisplayLinkDirector {} @end
-DEPRECATED_ATTRIBUTE @interface EaseAction : CCEaseAction {} @end
-DEPRECATED_ATTRIBUTE @interface EaseBackIn : CCEaseBackIn {} @end
-DEPRECATED_ATTRIBUTE @interface EaseBackInOut : CCEaseBackInOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseBackOut : CCEaseBackOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseBounce : CCEaseBounce {} @end
-DEPRECATED_ATTRIBUTE @interface EaseBounceIn : CCEaseBounceIn {} @end
-DEPRECATED_ATTRIBUTE @interface EaseBounceInOut : CCEaseBounceInOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseBounceOut : CCEaseBounceOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseElastic : CCEaseElastic {} @end
-DEPRECATED_ATTRIBUTE @interface EaseElasticIn : CCEaseElasticIn {} @end
-DEPRECATED_ATTRIBUTE @interface EaseElasticInOut : CCEaseElasticInOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseElasticOut : CCEaseElasticOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseExponentialIn : CCEaseExponentialIn {} @end
-DEPRECATED_ATTRIBUTE @interface EaseExponentialInOut : CCEaseExponentialInOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseExponentialOut : CCEaseExponentialOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseIn : CCEaseIn {} @end
-DEPRECATED_ATTRIBUTE @interface EaseInOut : CCEaseInOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseOut : CCEaseOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseRateAction : CCEaseRateAction {} @end
-DEPRECATED_ATTRIBUTE @interface EaseSineIn : CCEaseSineIn {} @end
-DEPRECATED_ATTRIBUTE @interface EaseSineInOut : CCEaseSineInOut {} @end
-DEPRECATED_ATTRIBUTE @interface EaseSineOut : CCEaseSineOut {} @end
-DEPRECATED_ATTRIBUTE @interface FadeBLTransition : CCTransitionFadeBL {} @end
-DEPRECATED_ATTRIBUTE @interface FadeDownTransition : CCTransitionFadeDown {} @end
-DEPRECATED_ATTRIBUTE @interface FadeIn : CCFadeIn {} @end
-DEPRECATED_ATTRIBUTE @interface FadeOut : CCFadeOut {} @end
-DEPRECATED_ATTRIBUTE @interface FadeOutBLTiles : CCFadeOutBLTiles {} @end
-DEPRECATED_ATTRIBUTE @interface FadeOutDownTiles : CCFadeOutDownTiles {} @end
-DEPRECATED_ATTRIBUTE @interface FadeOutTRTiles : CCFadeOutTRTiles {} @end
-DEPRECATED_ATTRIBUTE @interface FadeOutUpTiles : CCFadeOutUpTiles {} @end
-DEPRECATED_ATTRIBUTE @interface FadeTRTransition : CCTransitionFadeTR {} @end
-DEPRECATED_ATTRIBUTE @interface FadeTo : CCFadeTo {} @end
-DEPRECATED_ATTRIBUTE @interface FadeTransition : CCTransitionFade {} @end
-DEPRECATED_ATTRIBUTE @interface FadeUpTransition : CCTransitionFadeUp {} @end
-DEPRECATED_ATTRIBUTE @interface FastDirector : CCFastDirector {} @end
-DEPRECATED_ATTRIBUTE @interface FiniteTimeAction : CCFiniteTimeAction {} @end
-DEPRECATED_ATTRIBUTE @interface FlipAngularTransition : CCTransitionFlipAngular {} @end
-DEPRECATED_ATTRIBUTE @interface FlipX3D : CCFlipX3D {} @end
-DEPRECATED_ATTRIBUTE @interface FlipXTransition : CCTransitionFlipX {} @end
-DEPRECATED_ATTRIBUTE @interface FlipY3D : CCFlipY3D {} @end
-DEPRECATED_ATTRIBUTE @interface FlipYTransition : CCTransitionFlipY {} @end
-DEPRECATED_ATTRIBUTE @interface Grabber : CCGrabber {} @end
-DEPRECATED_ATTRIBUTE @interface Grid3D : CCGrid3D {} @end
-DEPRECATED_ATTRIBUTE @interface Grid3DAction : CCGrid3DAction {} @end
-DEPRECATED_ATTRIBUTE @interface GridAction : CCGridAction {} @end
-DEPRECATED_ATTRIBUTE @interface GridBase : CCGridBase {} @end
-DEPRECATED_ATTRIBUTE @interface Hide : CCHide {} @end
-DEPRECATED_ATTRIBUTE @interface InstantAction : CCInstantAction {} @end
-DEPRECATED_ATTRIBUTE @interface IntervalAction : CCIntervalAction {} @end
-DEPRECATED_ATTRIBUTE @interface JumpBy : CCJumpBy {} @end
-DEPRECATED_ATTRIBUTE @interface JumpTiles3D : CCJumpTiles3D {} @end
-DEPRECATED_ATTRIBUTE @interface JumpTo : CCJumpTo {} @end
-DEPRECATED_ATTRIBUTE @interface JumpZoomTransition : CCTransitionJumpZoom {} @end
-DEPRECATED_ATTRIBUTE @interface Label : CCLabel {} @end
-DEPRECATED_ATTRIBUTE @interface LabelAtlas : CCLabelAtlas {} @end
-DEPRECATED_ATTRIBUTE @interface Layer : CCLayer {} @end
-DEPRECATED_ATTRIBUTE @interface Lens3D : CCLens3D {} @end
-DEPRECATED_ATTRIBUTE @interface Liquid : CCLiquid {} @end
-DEPRECATED_ATTRIBUTE @interface Menu : CCMenu {} @end
-DEPRECATED_ATTRIBUTE @interface MenuItem : CCMenuItem {} @end
-DEPRECATED_ATTRIBUTE @interface MenuItemAtlasFont : CCMenuItemAtlasFont {} @end
-DEPRECATED_ATTRIBUTE @interface MenuItemFont : CCMenuItemFont {} @end
-DEPRECATED_ATTRIBUTE @interface MenuItemImage : CCMenuItemImage {} @end
-DEPRECATED_ATTRIBUTE @interface MenuItemLabel : CCMenuItemLabel {} @end
-DEPRECATED_ATTRIBUTE @interface MenuItemSprite : CCMenuItemSprite {} @end
-DEPRECATED_ATTRIBUTE @interface MenuItemToggle : CCMenuItemToggle {} @end
-DEPRECATED_ATTRIBUTE @interface MotionStreak : CCMotionStreak {} @end
-DEPRECATED_ATTRIBUTE @interface MoveBy : CCMoveBy {} @end
-DEPRECATED_ATTRIBUTE @interface MoveInBTransition : CCTransitionMoveInB {} @end
-DEPRECATED_ATTRIBUTE @interface MoveInLTransition : CCTransitionMoveInL {} @end
-DEPRECATED_ATTRIBUTE @interface MoveInRTransition : CCTransitionMoveInR {} @end
-DEPRECATED_ATTRIBUTE @interface MoveInTTransition : CCTransitionMoveInT {} @end
-DEPRECATED_ATTRIBUTE @interface MoveTo : CCMoveTo {} @end
-DEPRECATED_ATTRIBUTE @interface MultiplexLayer : CCMultiplexLayer {} @end
-DEPRECATED_ATTRIBUTE @interface OrbitCamera : CCOrbitCamera {} @end
-DEPRECATED_ATTRIBUTE @interface OrientedTransitionScene : CCTransitionSceneOriented {} @end
-DEPRECATED_ATTRIBUTE @interface PVRTexture : CCPVRTexture {} @end
-DEPRECATED_ATTRIBUTE @interface PageTurn3D : CCPageTurn3D {} @end
-DEPRECATED_ATTRIBUTE @interface PageTurnTransition : CCPageTurnTransition {} @end
-DEPRECATED_ATTRIBUTE @interface ParallaxNode : CCParallaxNode {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleExplosion : CCParticleExplosion {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleFire : CCParticleFire {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleFireworks : CCParticleFireworks {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleFlower : CCParticleFlower {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleGalaxy : CCParticleGalaxy {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleMeteor : CCParticleMeteor {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleRain : CCParticleRain {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleSmoke : CCParticleSmoke {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleSnow : CCParticleSnow {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleSpiral : CCParticleSpiral {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleSun : CCParticleSun {} @end
-DEPRECATED_ATTRIBUTE @interface ParticleSystem : CCParticleSystem {} @end
-DEPRECATED_ATTRIBUTE @interface Place : CCPlace {} @end
-DEPRECATED_ATTRIBUTE @interface PointParticleSystem : CCPointParticleSystem {} @end
-DEPRECATED_ATTRIBUTE @interface QuadParticleSystem : CCQuadParticleSystem {} @end
-DEPRECATED_ATTRIBUTE @interface RenderTexture : CCRenderTexture {} @end
-DEPRECATED_ATTRIBUTE @interface Repeat : CCRepeat {} @end
-DEPRECATED_ATTRIBUTE @interface RepeatForever : CCRepeatForever {} @end
-DEPRECATED_ATTRIBUTE @interface ReuseGrid : CCReuseGrid {} @end
-DEPRECATED_ATTRIBUTE @interface ReverseTime : CCReverseTime {} @end
-DEPRECATED_ATTRIBUTE @interface Ribbon : CCRibbon {} @end
-DEPRECATED_ATTRIBUTE @interface RibbonSegment : CCRibbonSegment {} @end
-DEPRECATED_ATTRIBUTE @interface Ripple3D : CCRipple3D {} @end
-DEPRECATED_ATTRIBUTE @interface RotateBy : CCRotateBy {} @end
-DEPRECATED_ATTRIBUTE @interface RotateTo : CCRotateTo {} @end
-DEPRECATED_ATTRIBUTE @interface RotoZoomTransition : CCTransitionRotoZoom {} @end
-DEPRECATED_ATTRIBUTE @interface ScaleBy : CCScaleBy {} @end
-DEPRECATED_ATTRIBUTE @interface ScaleTo : CCScaleTo {} @end
-DEPRECATED_ATTRIBUTE @interface Scene : CCScene {} @end
-DEPRECATED_ATTRIBUTE @interface Scheduler : CCScheduler {} @end
-DEPRECATED_ATTRIBUTE @interface Sequence : CCSequence {} @end
-DEPRECATED_ATTRIBUTE @interface Shaky3D : CCShaky3D {} @end
-DEPRECATED_ATTRIBUTE @interface ShakyTiles3D : CCShakyTiles3D {} @end
-DEPRECATED_ATTRIBUTE @interface ShatteredTiles3D : CCShatteredTiles3D {} @end
-DEPRECATED_ATTRIBUTE @interface Show : CCShow {} @end
-DEPRECATED_ATTRIBUTE @interface ShrinkGrowTransition : CCTransitionShrinkGrow {} @end
-DEPRECATED_ATTRIBUTE @interface ShuffleTiles : CCShuffleTiles {} @end
-DEPRECATED_ATTRIBUTE @interface SlideInBTransition : CCTransitionSlideInB {} @end
-DEPRECATED_ATTRIBUTE @interface SlideInLTransition : CCTransitionSlideInL {} @end
-DEPRECATED_ATTRIBUTE @interface SlideInRTransition : CCTransitionSlideInR {} @end
-DEPRECATED_ATTRIBUTE @interface SlideInTTransition : CCTransitionSlideInT {} @end
-DEPRECATED_ATTRIBUTE @interface Spawn : CCSpawn {} @end
-DEPRECATED_ATTRIBUTE @interface Speed : CCSpeed {} @end
-DEPRECATED_ATTRIBUTE @interface SplitCols : CCSplitCols {} @end
-DEPRECATED_ATTRIBUTE @interface SplitColsTransition : CCTransitionSplitCols {} @end
-DEPRECATED_ATTRIBUTE @interface SplitRows : CCSplitRows {} @end
-DEPRECATED_ATTRIBUTE @interface SplitRowsTransition : CCTransitionSplitRows {} @end
-DEPRECATED_ATTRIBUTE @interface Sprite : CCSprite {} @end
-DEPRECATED_ATTRIBUTE @interface StandardTouchHandler : CCStandardTouchHandler {} @end
-DEPRECATED_ATTRIBUTE @interface StopGrid : CCStopGrid {} @end
-DEPRECATED_ATTRIBUTE @interface TMXLayer : CCTMXLayer {} @end
-DEPRECATED_ATTRIBUTE @interface TMXLayerInfo : CCTMXLayerInfo {} @end
-DEPRECATED_ATTRIBUTE @interface TMXMapInfo : CCTMXMapInfo {} @end
-DEPRECATED_ATTRIBUTE @interface TMXTiledMap : CCTMXTiledMap {} @end
-DEPRECATED_ATTRIBUTE @interface TMXTilesetInfo : CCTMXTilesetInfo {} @end
-DEPRECATED_ATTRIBUTE @interface TargetedTouchHandler : CCTargetedTouchHandler {} @end
-DEPRECATED_ATTRIBUTE @interface Texture2D : CCTexture2D {} @end
-DEPRECATED_ATTRIBUTE @interface TextureAtlas : CCTextureAtlas {} @end
-DEPRECATED_ATTRIBUTE @interface TextureMgr : CCTextureCache {} @end
-DEPRECATED_ATTRIBUTE @interface TextureNode : CCSprite {} @end
-DEPRECATED_ATTRIBUTE @interface ThreadedFastDirector : CCThreadedFastDirector {} @end
-DEPRECATED_ATTRIBUTE @interface TileMapAtlas : CCTileMapAtlas {} @end
-DEPRECATED_ATTRIBUTE @interface TiledGrid3D : CCTiledGrid3D {} @end
-DEPRECATED_ATTRIBUTE @interface TiledGrid3DAction : CCTiledGrid3DAction {} @end
-DEPRECATED_ATTRIBUTE @interface Timer : CCTimer {} @end
-DEPRECATED_ATTRIBUTE @interface TimerDirector : CCTimerDirector {} @end
-DEPRECATED_ATTRIBUTE @interface TintBy : CCTintBy {} @end
-DEPRECATED_ATTRIBUTE @interface TintTo : CCTintTo {} @end
-DEPRECATED_ATTRIBUTE @interface ToggleVisibility : CCToggleVisibility {} @end
-DEPRECATED_ATTRIBUTE @interface TouchDispatcher : CCTouchDispatcher {} @end
-DEPRECATED_ATTRIBUTE @interface TouchHandler : CCTouchHandler {} @end
-DEPRECATED_ATTRIBUTE @interface TransitionScene : CCTransitionScene {} @end
-DEPRECATED_ATTRIBUTE @interface TurnOffTiles : CCTurnOffTiles {} @end
-DEPRECATED_ATTRIBUTE @interface TurnOffTilesTransition : CCTransitionTurnOffTiles {} @end
-DEPRECATED_ATTRIBUTE @interface Twirl : CCTwirl {} @end
-DEPRECATED_ATTRIBUTE @interface Waves : CCWaves {} @end
-DEPRECATED_ATTRIBUTE @interface Waves3D : CCWaves3D {} @end
-DEPRECATED_ATTRIBUTE @interface WavesTiles3D : CCWavesTiles3D {} @end
-DEPRECATED_ATTRIBUTE @interface ZoomFlipAngularTransition : CCTransitionZoomFlipAngular {} @end
-DEPRECATED_ATTRIBUTE @interface ZoomFlipXTransition : CCTransitionZoomFlipX {} @end
-DEPRECATED_ATTRIBUTE @interface ZoomFlipYTransition : CCTransitionZoomFlipY {} @end
-
-#endif // CC_COMPATIBILITY_WITH_0_8
diff --git a/Classes/cocos2d/CCCompatibility.m b/Classes/cocos2d/CCCompatibility.m
deleted file mode 100644 (file)
index 93d0e53..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-// AUTOMATICALLY GENERATED. DO NOT EDIT
-
-#include "CCCompatibility.h"
-#if CC_COMPATIBILITY_WITH_0_8
-@implementation AccelAmplitude
-@end
-
-@implementation AccelDeccelAmplitude
-@end
-
-@implementation Action
-@end
-
-@implementation ActionManager
-@end
-
-@implementation Animate
-@end
-
-@implementation Animation
-@end
-
-@implementation AtlasAnimation
-@end
-
-@implementation AtlasNode
-@end
-
-@implementation AtlasSprite
-@end
-
-@implementation AtlasSpriteFrame
-@end
-
-@implementation AtlasSpriteManager
-@end
-
-@implementation BezierBy
-@end
-
-@implementation BezierTo
-@end
-
-@implementation BitmapFontAtlas
-@end
-
-@implementation BitmapFontConfiguration
-@end
-
-@implementation Blink
-@end
-
-@implementation CallFunc
-@end
-
-@implementation CallFuncN
-@end
-
-@implementation CallFuncND
-@end
-
-@implementation Camera
-@end
-
-@implementation CameraAction
-@end
-
-@implementation CocosNode
-@end
-
-@implementation ColorLayer
-@end
-
-@implementation DeccelAmplitude
-@end
-
-@implementation DelayTime
-@end
-
-@implementation Director
-@end
-
-@implementation DisplayLinkDirector
-@end
-
-@implementation EaseAction
-@end
-
-@implementation EaseBackIn
-@end
-
-@implementation EaseBackInOut
-@end
-
-@implementation EaseBackOut
-@end
-
-@implementation EaseBounce
-@end
-
-@implementation EaseBounceIn
-@end
-
-@implementation EaseBounceInOut
-@end
-
-@implementation EaseBounceOut
-@end
-
-@implementation EaseElastic
-@end
-
-@implementation EaseElasticIn
-@end
-
-@implementation EaseElasticInOut
-@end
-
-@implementation EaseElasticOut
-@end
-
-@implementation EaseExponentialIn
-@end
-
-@implementation EaseExponentialInOut
-@end
-
-@implementation EaseExponentialOut
-@end
-
-@implementation EaseIn
-@end
-
-@implementation EaseInOut
-@end
-
-@implementation EaseOut
-@end
-
-@implementation EaseRateAction
-@end
-
-@implementation EaseSineIn
-@end
-
-@implementation EaseSineInOut
-@end
-
-@implementation EaseSineOut
-@end
-
-@implementation FadeBLTransition
-@end
-
-@implementation FadeDownTransition
-@end
-
-@implementation FadeIn
-@end
-
-@implementation FadeOut
-@end
-
-@implementation FadeOutBLTiles
-@end
-
-@implementation FadeOutDownTiles
-@end
-
-@implementation FadeOutTRTiles
-@end
-
-@implementation FadeOutUpTiles
-@end
-
-@implementation FadeTRTransition
-@end
-
-@implementation FadeTo
-@end
-
-@implementation FadeTransition
-@end
-
-@implementation FadeUpTransition
-@end
-
-@implementation FastDirector
-@end
-
-@implementation FiniteTimeAction
-@end
-
-@implementation FlipAngularTransition
-@end
-
-@implementation FlipX3D
-@end
-
-@implementation FlipXTransition
-@end
-
-@implementation FlipY3D
-@end
-
-@implementation FlipYTransition
-@end
-
-@implementation Grabber
-@end
-
-@implementation Grid3D
-@end
-
-@implementation Grid3DAction
-@end
-
-@implementation GridAction
-@end
-
-@implementation GridBase
-@end
-
-@implementation Hide
-@end
-
-@implementation InstantAction
-@end
-
-@implementation IntervalAction
-@end
-
-@implementation JumpBy
-@end
-
-@implementation JumpTiles3D
-@end
-
-@implementation JumpTo
-@end
-
-@implementation JumpZoomTransition
-@end
-
-@implementation Label
-@end
-
-@implementation LabelAtlas
-@end
-
-@implementation Layer
-@end
-
-@implementation Lens3D
-@end
-
-@implementation Liquid
-@end
-
-@implementation Menu
-@end
-
-@implementation MenuItem
-@end
-
-@implementation MenuItemAtlasFont
-@end
-
-@implementation MenuItemFont
-@end
-
-@implementation MenuItemImage
-@end
-
-@implementation MenuItemLabel
-@end
-
-@implementation MenuItemSprite
-@end
-
-@implementation MenuItemToggle
-@end
-
-@implementation MotionStreak
-@end
-
-@implementation MoveBy
-@end
-
-@implementation MoveInBTransition
-@end
-
-@implementation MoveInLTransition
-@end
-
-@implementation MoveInRTransition
-@end
-
-@implementation MoveInTTransition
-@end
-
-@implementation MoveTo
-@end
-
-@implementation MultiplexLayer
-@end
-
-@implementation OrbitCamera
-@end
-
-@implementation OrientedTransitionScene
-@end
-
-@implementation PVRTexture
-@end
-
-@implementation PageTurn3D
-@end
-
-@implementation PageTurnTransition
-@end
-
-@implementation ParallaxNode
-@end
-
-@implementation ParticleExplosion
-@end
-
-@implementation ParticleFire
-@end
-
-@implementation ParticleFireworks
-@end
-
-@implementation ParticleFlower
-@end
-
-@implementation ParticleGalaxy
-@end
-
-@implementation ParticleMeteor
-@end
-
-@implementation ParticleRain
-@end
-
-@implementation ParticleSmoke
-@end
-
-@implementation ParticleSnow
-@end
-
-@implementation ParticleSpiral
-@end
-
-@implementation ParticleSun
-@end
-
-@implementation ParticleSystem
-@end
-
-@implementation Place
-@end
-
-@implementation PointParticleSystem
-@end
-
-@implementation QuadParticleSystem
-@end
-
-@implementation RenderTexture
-@end
-
-@implementation Repeat
-@end
-
-@implementation RepeatForever
-@end
-
-@implementation ReuseGrid
-@end
-
-@implementation ReverseTime
-@end
-
-@implementation Ribbon
-@end
-
-@implementation RibbonSegment
-@end
-
-@implementation Ripple3D
-@end
-
-@implementation RotateBy
-@end
-
-@implementation RotateTo
-@end
-
-@implementation RotoZoomTransition
-@end
-
-@implementation ScaleBy
-@end
-
-@implementation ScaleTo
-@end
-
-@implementation Scene
-@end
-
-@implementation Scheduler
-@end
-
-@implementation Sequence
-@end
-
-@implementation Shaky3D
-@end
-
-@implementation ShakyTiles3D
-@end
-
-@implementation ShatteredTiles3D
-@end
-
-@implementation Show
-@end
-
-@implementation ShrinkGrowTransition
-@end
-
-@implementation ShuffleTiles
-@end
-
-@implementation SlideInBTransition
-@end
-
-@implementation SlideInLTransition
-@end
-
-@implementation SlideInRTransition
-@end
-
-@implementation SlideInTTransition
-@end
-
-@implementation Spawn
-@end
-
-@implementation Speed
-@end
-
-@implementation SplitCols
-@end
-
-@implementation SplitColsTransition
-@end
-
-@implementation SplitRows
-@end
-
-@implementation SplitRowsTransition
-@end
-
-@implementation Sprite
-@end
-
-@implementation StandardTouchHandler
-@end
-
-@implementation StopGrid
-@end
-
-@implementation TMXLayer
-@end
-
-@implementation TMXLayerInfo
-@end
-
-@implementation TMXMapInfo
-@end
-
-@implementation TMXTiledMap
-@end
-
-@implementation TMXTilesetInfo
-@end
-
-@implementation TargetedTouchHandler
-@end
-
-@implementation Texture2D
-@end
-
-@implementation TextureAtlas
-@end
-
-@implementation TextureMgr
-@end
-
-@implementation TextureNode
-@end
-
-@implementation ThreadedFastDirector
-@end
-
-@implementation TileMapAtlas
-@end
-
-@implementation TiledGrid3D
-@end
-
-@implementation TiledGrid3DAction
-@end
-
-@implementation Timer
-@end
-
-@implementation TimerDirector
-@end
-
-@implementation TintBy
-@end
-
-@implementation TintTo
-@end
-
-@implementation ToggleVisibility
-@end
-
-@implementation TouchDispatcher
-@end
-
-@implementation TouchHandler
-@end
-
-@implementation TransitionScene
-@end
-
-@implementation TurnOffTiles
-@end
-
-@implementation TurnOffTilesTransition
-@end
-
-@implementation Twirl
-@end
-
-@implementation Waves
-@end
-
-@implementation Waves3D
-@end
-
-@implementation WavesTiles3D
-@end
-
-@implementation ZoomFlipAngularTransition
-@end
-
-@implementation ZoomFlipXTransition
-@end
-
-@implementation ZoomFlipYTransition
-@end
-
-
-#endif // CC_COMPATIBILITY_WITH_0_8
diff --git a/Classes/cocos2d/CCConfiguration.h b/Classes/cocos2d/CCConfiguration.h
deleted file mode 100644 (file)
index 11bd120..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#import <Foundation/Foundation.h>
-
-#import "Platforms/CCGL.h"
-
-/** OS version definitions. Includes both iOS and Mac OS versions
- */
-enum {
-       kCCiOSVersion_3_0   = 0x03000000,
-       kCCiOSVersion_3_1   = 0x03010000,
-       kCCiOSVersion_3_1_1 = 0x03010100,
-       kCCiOSVersion_3_1_2 = 0x03010200,
-       kCCiOSVersion_3_1_3 = 0x03010300,
-       kCCiOSVersion_3_2   = 0x03020000,
-       kCCiOSVersion_3_2_1 = 0x03020100,
-       kCCiOSVersion_4_0   = 0x04000000,
-       kCCiOSVersion_4_0_1 = 0x04000100,
-       kCCiOSVersion_4_1   = 0x04010000,
-
-       kCCMacVersion_10_5  = 0x0a050000,
-       kCCMacVersion_10_6  = 0x0a060000,
-       kCCMacVersion_10_7  = 0x0a070000,
-};
-
-/**
- CCConfiguration contains some openGL variables
- @since v0.99.0
- */
-@interface CCConfiguration : NSObject {
-
-       GLint                   maxTextureSize_;
-       GLint                   maxModelviewStackDepth_;
-       BOOL                    supportsPVRTC_;
-       BOOL                    supportsNPOT_;
-       BOOL                    supportsBGRA8888_;
-       BOOL                    supportsDiscardFramebuffer_;
-       unsigned int    OSVersion_;
-       GLint                   maxSamplesAllowed_;
-}
-
-/** OpenGL Max texture size. */
-@property (nonatomic, readonly) GLint maxTextureSize;
-
-/** OpenGL Max Modelview Stack Depth. */
-@property (nonatomic, readonly) GLint maxModelviewStackDepth;
-
-/** Whether or not the GPU supports NPOT (Non Power Of Two) textures.
- NPOT textures have the following limitations:
- - They can't have mipmaps
- - They only accept GL_CLAMP_TO_EDGE in GL_TEXTURE_WRAP_{S,T}
- @since v0.99.2
- */
-@property (nonatomic, readonly) BOOL supportsNPOT;
-
-/** Whether or not PVR Texture Compressed is supported */
-@property (nonatomic, readonly) BOOL supportsPVRTC;
-
-/** Whether or not BGRA8888 textures are supported.
- @since v0.99.2
- */
-@property (nonatomic, readonly) BOOL supportsBGRA8888;
-
-/** Whether or not glDiscardFramebufferEXT is supported
- @since v0.99.2
- */
-@property (nonatomic, readonly) BOOL supportsDiscardFramebuffer;
-
-/** returns the OS version.
-       - On iOS devices it returns the firmware version.
-       - On Mac returns the OS version
- @since v0.99.5
- */
-@property (nonatomic, readonly) unsigned int OSVersion;
-
-/** returns a shared instance of the CCConfiguration */
-+(CCConfiguration *) sharedConfiguration;
-
-/** returns whether or not an OpenGL is supported */
-- (BOOL) checkForGLExtension:(NSString *)searchName;
-
-
-
-@end
diff --git a/Classes/cocos2d/CCConfiguration.m b/Classes/cocos2d/CCConfiguration.m
deleted file mode 100644 (file)
index e70bed1..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#import <Availability.h>
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import <UIKit/UIKit.h>                // Needed for UIDevice
-#endif
-
-#import "Platforms/CCGL.h"
-#import "CCBlockSupport.h"
-#import "CCConfiguration.h"
-#import "ccMacros.h"
-#import "ccConfig.h"
-#import "Support/OpenGL_Internal.h"
-
-@implementation CCConfiguration
-
-@synthesize maxTextureSize = maxTextureSize_;
-@synthesize supportsPVRTC = supportsPVRTC_;
-@synthesize maxModelviewStackDepth = maxModelviewStackDepth_;
-@synthesize supportsNPOT = supportsNPOT_;
-@synthesize supportsBGRA8888 = supportsBGRA8888_;
-@synthesize supportsDiscardFramebuffer = supportsDiscardFramebuffer_;
-@synthesize OSVersion = OSVersion_;
-
-//
-// singleton stuff
-//
-static CCConfiguration *_sharedConfiguration = nil;
-
-static char * glExtensions;
-
-+ (CCConfiguration *)sharedConfiguration
-{
-       if (!_sharedConfiguration)
-               _sharedConfiguration = [[self alloc] init];
-
-       return _sharedConfiguration;
-}
-
-+(id)alloc
-{
-       NSAssert(_sharedConfiguration == nil, @"Attempted to allocate a second instance of a singleton.");
-       return [super alloc];
-}
-
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-- (NSString*)getMacVersion
-{
-    SInt32 versionMajor, versionMinor, versionBugFix;
-       Gestalt(gestaltSystemVersionMajor, &versionMajor);
-       Gestalt(gestaltSystemVersionMinor, &versionMinor);
-       Gestalt(gestaltSystemVersionBugFix, &versionBugFix);
-       
-       return [NSString stringWithFormat:@"%d.%d.%d", versionMajor, versionMinor, versionBugFix];
-}
-#endif // __MAC_OS_X_VERSION_MAX_ALLOWED
-
--(id) init
-{
-       if( (self=[super init])) {
-               
-               // Obtain iOS version
-               OSVersion_ = 0;
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-               NSString *OSVer = [[UIDevice currentDevice] systemVersion];
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-               NSString *OSVer = [self getMacVersion];
-#endif
-               NSArray *arr = [OSVer componentsSeparatedByString:@"."];                
-               int idx=0x01000000;
-               for( NSString *str in arr ) {
-                       int value = [str intValue];
-                       OSVersion_ += value * idx;
-                       idx = idx >> 8;
-               }
-               CCLOG(@"cocos2d: OS version: %@ (0x%08x)", OSVer, OSVersion_);
-               
-               CCLOG(@"cocos2d: GL_VENDOR:   %s", glGetString(GL_VENDOR) );
-               CCLOG(@"cocos2d: GL_RENDERER: %s", glGetString ( GL_RENDERER   ) );
-               CCLOG(@"cocos2d: GL_VERSION:  %s", glGetString ( GL_VERSION    ) );
-               
-               glExtensions = (char*) glGetString(GL_EXTENSIONS);
-               
-               glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTextureSize_);
-               glGetIntegerv(GL_MAX_MODELVIEW_STACK_DEPTH, &maxModelviewStackDepth_);
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-               if( OSVersion_ >= kCCiOSVersion_4_0 )
-                       glGetIntegerv(GL_MAX_SAMPLES_APPLE, &maxSamplesAllowed_);
-               else
-                       maxSamplesAllowed_ = 0;
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-               glGetIntegerv(GL_MAX_SAMPLES, &maxSamplesAllowed_);
-#endif
-               
-               supportsPVRTC_ = [self checkForGLExtension:@"GL_IMG_texture_compression_pvrtc"];
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-               supportsNPOT_ = [self checkForGLExtension:@"GL_APPLE_texture_2D_limited_npot"];
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-               supportsNPOT_ = [self checkForGLExtension:@"GL_ARB_texture_non_power_of_two"];
-#endif
-               // It seems that somewhere between firmware iOS 3.0 and 4.2 Apple renamed
-               // GL_IMG_... to GL_APPLE.... So we should check both names
-               
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-               BOOL bgra8a = [self checkForGLExtension:@"GL_IMG_texture_format_BGRA8888"];
-               BOOL bgra8b = [self checkForGLExtension:@"GL_APPLE_texture_format_BGRA8888"];
-               supportsBGRA8888_ = bgra8a | bgra8b;
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-               supportsBGRA8888_ = [self checkForGLExtension:@"GL_EXT_bgra"];
-#endif
-               
-               supportsDiscardFramebuffer_ = [self checkForGLExtension:@"GL_EXT_discard_framebuffer"];
-
-               CCLOG(@"cocos2d: GL_MAX_TEXTURE_SIZE: %d", maxTextureSize_);
-               CCLOG(@"cocos2d: GL_MAX_MODELVIEW_STACK_DEPTH: %d",maxModelviewStackDepth_);
-               CCLOG(@"cocos2d: GL_MAX_SAMPLES: %d", maxSamplesAllowed_);
-               CCLOG(@"cocos2d: GL supports PVRTC: %s", (supportsPVRTC_ ? "YES" : "NO") );
-               CCLOG(@"cocos2d: GL supports BGRA8888 textures: %s", (supportsBGRA8888_ ? "YES" : "NO") );
-               CCLOG(@"cocos2d: GL supports NPOT textures: %s", (supportsNPOT_ ? "YES" : "NO") );
-               CCLOG(@"cocos2d: GL supports discard_framebuffer: %s", (supportsDiscardFramebuffer_ ? "YES" : "NO") );
-               CCLOG(@"cocos2d: compiled with NPOT support: %s",
-#if CC_TEXTURE_NPOT_SUPPORT
-                               "YES"
-#else
-                               "NO"
-#endif
-                         );
-               CCLOG(@"cocos2d: compiled with VBO support in TextureAtlas : %s",
-#if CC_USES_VBO
-                         "YES"
-#else
-                         "NO"
-#endif
-                         );
-
-               CCLOG(@"cocos2d: compiled with Affine Matrix transformation in CCNode : %s",
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-                         "YES"
-#else
-                         "NO"
-#endif
-                         );
-               
-               CCLOG(@"cocos2d: compiled with Profiling Support: %s",
-#if CC_ENABLE_PROFILERS
-
-                         "YES - *** Disable it when you finish profiling ***"
-#else
-                         "NO"
-#endif
-                         );
-               
-               CHECK_GL_ERROR();
-       }
-       
-       return self;
-}
-
-- (BOOL) checkForGLExtension:(NSString *)searchName
-{
-       // For best results, extensionsNames should be stored in your renderer so that it does not
-       // need to be recreated on each invocation.
-    NSString *extensionsString = [NSString stringWithCString:glExtensions encoding: NSASCIIStringEncoding];
-    NSArray *extensionsNames = [extensionsString componentsSeparatedByString:@" "];
-    return [extensionsNames containsObject: searchName];
-}
-@end
diff --git a/Classes/cocos2d/CCDirector.h b/Classes/cocos2d/CCDirector.h
deleted file mode 100644 (file)
index fd36364..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
-#import "ccConfig.h"
-#import "ccTypes.h"
-
-// OpenGL related
-#import "Platforms/CCGL.h"
-#import "CCProtocols.h"
-
-/** @typedef ccDirectorProjection
- Possible OpenGL projections used by director
- */
-typedef enum {
-       /// sets a 2D projection (orthogonal projection).
-       kCCDirectorProjection2D,
-       
-       /// sets a 3D projection with a fovy=60, znear=0.5f and zfar=1500.
-       kCCDirectorProjection3D,
-       
-       /// it calls "updateProjection" on the projection delegate.
-       kCCDirectorProjectionCustom,
-       
-       /// Detault projection is 3D projection
-       kCCDirectorProjectionDefault = kCCDirectorProjection3D,
-       
-       // backward compatibility stuff
-       CCDirectorProjection2D = kCCDirectorProjection2D,
-       CCDirectorProjection3D = kCCDirectorProjection3D,
-       CCDirectorProjectionCustom = kCCDirectorProjectionCustom,
-
-} ccDirectorProjection;
-
-
-@class CCLabelAtlas;
-@class CCScene;
-
-/**Class that creates and handle the main Window and manages how
-and when to execute the Scenes.
- The CCDirector is also resposible for:
-  - initializing the OpenGL ES context
-  - setting the OpenGL pixel format (default on is RGB565)
-  - setting the OpenGL buffer depth (default one is 0-bit)
-  - setting the projection (default one is 3D)
-  - setting the orientation (default one is Protrait)
- Since the CCDirector is a singleton, the standard way to use it is by calling:
-  - [[CCDirector sharedDirector] methodName];
- The CCDirector also sets the default OpenGL context:
-  - GL_TEXTURE_2D is enabled
-  - GL_VERTEX_ARRAY is enabled
-  - GL_COLOR_ARRAY is enabled
-  - GL_TEXTURE_COORD_ARRAY is enabled
-*/
-@interface CCDirector : NSObject
-{
-       CC_GLVIEW       *openGLView_;
-
-       // internal timer
-       NSTimeInterval animationInterval_;
-       NSTimeInterval oldAnimationInterval_;   
-       
-       /* display FPS ? */
-       BOOL displayFPS_;
-
-       NSUInteger frames_;
-       ccTime accumDt_;
-       ccTime frameRate_;
-#if    CC_DIRECTOR_FAST_FPS
-       CCLabelAtlas *FPSLabel_;
-#endif
-       
-       /* is the running scene paused */
-       BOOL isPaused_;
-       
-       /* The running scene */
-       CCScene *runningScene_;
-       
-       /* This object will be visited after the scene. Useful to hook a notification node */
-       id notificationNode_;
-       
-       /* will be the next 'runningScene' in the next frame
-        nextScene is a weak reference. */
-       CCScene *nextScene_;
-       
-       /* If YES, then "old" scene will receive the cleanup message */
-       BOOL    sendCleanupToScene_;
-
-       /* scheduled scenes */
-       NSMutableArray *scenesStack_;
-       
-       /* last time the main loop was updated */
-       struct timeval lastUpdate_;
-       /* delta time since last tick to main loop */
-       ccTime dt;
-       /* whether or not the next delta time will be zero */
-       BOOL nextDeltaTimeZero_;
-       
-       /* projection used */
-       ccDirectorProjection projection_;
-       
-       /* Projection protocol delegate */
-       id<CCProjectionProtocol>        projectionDelegate_;
-
-       /* window size in points */
-       CGSize  winSizeInPoints_;
-       
-       /* window size in pixels */
-       CGSize  winSizeInPixels_;
-
-       /* the cocos2d running thread */
-       NSThread        *runningThread_;
-
-       // profiler
-#if CC_ENABLE_PROFILERS
-       ccTime accumDtForProfiler_;
-#endif
-}
-
-/** returns the cocos2d thread.
- If you want to run any cocos2d task, run it in this thread.
- On iOS usually it is the main thread.
- @since v0.99.5
- */
-@property (readonly, nonatomic ) NSThread *runningThread;
-/** The current running Scene. Director can only run one Scene at the time */
-@property (nonatomic,readonly) CCScene* runningScene;
-/** The FPS value */
-@property (nonatomic,readwrite, assign) NSTimeInterval animationInterval;
-/** Whether or not to display the FPS on the bottom-left corner */
-@property (nonatomic,readwrite, assign) BOOL displayFPS;
-/** The OpenGLView, where everything is rendered */
-@property (nonatomic,readwrite,retain) CC_GLVIEW *openGLView;
-/** whether or not the next delta time will be zero */
-@property (nonatomic,readwrite,assign) BOOL nextDeltaTimeZero;
-/** Whether or not the Director is paused */
-@property (nonatomic,readonly) BOOL isPaused;
-/** Sets an OpenGL projection
- @since v0.8.2
- */
-@property (nonatomic,readwrite) ccDirectorProjection projection;
-
-/** Whether or not the replaced scene will receive the cleanup message.
- If the new scene is pushed, then the old scene won't receive the "cleanup" message.
- If the new scene replaces the old one, the it will receive the "cleanup" message.
- @since v0.99.0
- */
-@property (nonatomic, readonly) BOOL sendCleanupToScene;
-
-/** This object will be visited after the main scene is visited.
- This object MUST implement the "visit" selector.
- Useful to hook a notification object, like CCNotifications (http://github.com/manucorporat/CCNotifications)
- @since v0.99.5
- */
-@property (nonatomic, readwrite, retain) id    notificationNode;
-
-/** This object will be called when the OpenGL projection is udpated and only when the kCCDirectorProjectionCustom projection is used.
- @since v0.99.5
- */
-@property (nonatomic, readwrite, retain) id<CCProjectionProtocol> projectionDelegate;
-
-/** returns a shared instance of the director */
-+(CCDirector *)sharedDirector;
-
-
-
-// Window size
-
-/** returns the size of the OpenGL view in points.
- It takes into account any possible rotation (device orientation) of the window
- */
-- (CGSize) winSize;
-
-/** returns the size of the OpenGL view in pixels.
- It takes into account any possible rotation (device orientation) of the window.
- On Mac winSize and winSizeInPixels return the same value.
- */
-- (CGSize) winSizeInPixels;
-/** returns the display size of the OpenGL view in pixels.
- It doesn't take into account any possible rotation of the window.
- */
--(CGSize) displaySizeInPixels;
-/** changes the projection size */
--(void) reshapeProjection:(CGSize)newWindowSize;
-
-/** converts a UIKit coordinate to an OpenGL coordinate
- Useful to convert (multi) touchs coordinates to the current layout (portrait or landscape)
- */
--(CGPoint) convertToGL: (CGPoint) p;
-/** converts an OpenGL coordinate to a UIKit coordinate
- Useful to convert node points to window points for calls such as glScissor
- */
--(CGPoint) convertToUI:(CGPoint)p;
-
-/// XXX: missing description
--(float) getZEye;
-
-// Scene Management
-
-/**Enters the Director's main loop with the given Scene. 
- * Call it to run only your FIRST scene.
- * Don't call it if there is already a running scene.
- */
-- (void) runWithScene:(CCScene*) scene;
-
-/**Suspends the execution of the running scene, pushing it on the stack of suspended scenes.
- * The new scene will be executed.
- * Try to avoid big stacks of pushed scenes to reduce memory allocation. 
- * ONLY call it if there is a running scene.
- */
-- (void) pushScene:(CCScene*) scene;
-
-/**Pops out a scene from the queue.
- * This scene will replace the running one.
- * The running scene will be deleted. If there are no more scenes in the stack the execution is terminated.
- * ONLY call it if there is a running scene.
- */
-- (void) popScene;
-
-/** Replaces the running scene with a new one. The running scene is terminated.
- * ONLY call it if there is a running scene.
- */
--(void) replaceScene: (CCScene*) scene;
-
-/** Ends the execution, releases the running scene.
- It doesn't remove the OpenGL view from its parent. You have to do it manually.
- */
--(void) end;
-
-/** Pauses the running scene.
- The running scene will be _drawed_ but all scheduled timers will be paused
- While paused, the draw rate will be 4 FPS to reduce CPU consuption
- */
--(void) pause;
-
-/** Resumes the paused scene
- The scheduled timers will be activated again.
- The "delta time" will be 0 (as if the game wasn't paused)
- */
--(void) resume;
-
-/** Stops the animation. Nothing will be drawn. The main loop won't be triggered anymore.
- If you wan't to pause your animation call [pause] instead.
- */
--(void) stopAnimation;
-
-/** The main loop is triggered again.
- Call this function only if [stopAnimation] was called earlier
- @warning Dont' call this function to start the main loop. To run the main loop call runWithScene
- */
--(void) startAnimation;
-
-/** Draw the scene.
- This method is called every frame. Don't call it manually.
- */
--(void) drawScene;
-
-// Memory Helper
-
-/** Removes all the cocos2d data that was cached automatically.
- It will purge the CCTextureCache, CCBitmapFont cache.
- IMPORTANT: The CCSpriteFrameCache won't be purged. If you want to purge it, you have to purge it manually.
- @since v0.99.3
- */
--(void) purgeCachedData; 
-
-// OpenGL Helper
-
-/** sets the OpenGL default values */
--(void) setGLDefaultValues;
-
-/** enables/disables OpenGL alpha blending */
-- (void) setAlphaBlending: (BOOL) on;
-/** enables/disables OpenGL depth test */
-- (void) setDepthTest: (BOOL) on;
-
-// Profiler
--(void) showProfilers;
-
-@end
diff --git a/Classes/cocos2d/CCDirector.m b/Classes/cocos2d/CCDirector.m
deleted file mode 100644 (file)
index 35425fe..0000000
+++ /dev/null
@@ -1,557 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
-/* Idea of decoupling Window from Director taken from OC3D project: http://code.google.com/p/oc3d/
- */
-
-#import <unistd.h>
-#import <Availability.h>
-
-// cocos2d imports
-#import "CCDirector.h"
-#import "CCScheduler.h"
-#import "CCActionManager.h"
-#import "CCTextureCache.h"
-#import "CCAnimationCache.h"
-#import "CCLabelAtlas.h"
-#import "ccMacros.h"
-#import "CCTransition.h"
-#import "CCScene.h"
-#import "CCSpriteFrameCache.h"
-#import "CCTexture2D.h"
-#import "CCLabelBMFont.h"
-#import "CCLayer.h"
-
-// support imports
-#import "Platforms/CCGL.h"
-#import "Platforms/CCNS.h"
-
-#import "Support/OpenGL_Internal.h"
-#import "Support/CGPointExtension.h"
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import "Platforms/iOS/CCDirectorIOS.h"
-#define CC_DIRECTOR_DEFAULT CCDirectorTimer
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-#import "Platforms/Mac/CCDirectorMac.h"
-#define CC_DIRECTOR_DEFAULT CCDirectorDisplayLink
-#endif
-
-#import "Support/CCProfiling.h"
-
-#define kDefaultFPS            60.0    // 60 frames per second
-
-extern NSString * cocos2dVersion(void);
-
-
-@interface CCDirector (Private)
--(void) setNextScene;
-// shows the FPS in the screen
--(void) showFPS;
-// calculates delta time since last time it was called
--(void) calculateDeltaTime;
-@end
-
-@implementation CCDirector
-
-@synthesize animationInterval = animationInterval_;
-@synthesize runningScene = runningScene_;
-@synthesize displayFPS = displayFPS_;
-@synthesize nextDeltaTimeZero = nextDeltaTimeZero_;
-@synthesize isPaused = isPaused_;
-@synthesize sendCleanupToScene = sendCleanupToScene_;
-@synthesize runningThread = runningThread_;
-@synthesize notificationNode = notificationNode_;
-@synthesize projectionDelegate = projectionDelegate_;
-//
-// singleton stuff
-//
-static CCDirector *_sharedDirector = nil;
-
-+ (CCDirector *)sharedDirector
-{
-       if (!_sharedDirector) {
-
-               //
-               // Default Director is TimerDirector
-               // 
-               if( [ [CCDirector class] isEqual:[self class]] )
-                       _sharedDirector = [[CC_DIRECTOR_DEFAULT alloc] init];
-               else
-                       _sharedDirector = [[self alloc] init];
-       }
-               
-       return _sharedDirector;
-}
-
-+(id)alloc
-{
-       NSAssert(_sharedDirector == nil, @"Attempted to allocate a second instance of a singleton.");
-       return [super alloc];
-}
-
-- (id) init
-{  
-       CCLOG(@"cocos2d: %@", cocos2dVersion() );
-
-       if( (self=[super init]) ) {
-
-               CCLOG(@"cocos2d: Using Director Type:%@", [self class]);
-               
-               // scenes
-               runningScene_ = nil;
-               nextScene_ = nil;
-               
-               notificationNode_ = nil;
-               
-               oldAnimationInterval_ = animationInterval_ = 1.0 / kDefaultFPS;
-               scenesStack_ = [[NSMutableArray alloc] initWithCapacity:10];
-               
-               // Set default projection (3D)
-               projection_ = kCCDirectorProjectionDefault;
-
-               // projection delegate if "Custom" projection is used
-               projectionDelegate_ = nil;
-
-               // FPS
-               displayFPS_ = NO;
-               frames_ = 0;
-               
-               // paused ?
-               isPaused_ = NO;
-               
-               // running thread
-               runningThread_ = nil;
-               
-               winSizeInPixels_ = winSizeInPoints_ = CGSizeZero;
-       }
-
-       return self;
-}
-
-- (void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-
-#if CC_DIRECTOR_FAST_FPS
-       [FPSLabel_ release];
-#endif
-       [runningScene_ release];
-       [notificationNode_ release];
-       [scenesStack_ release];
-       
-       [projectionDelegate_ release];
-       
-       _sharedDirector = nil;
-       
-       [super dealloc];
-}
-
--(void) setGLDefaultValues
-{
-       // This method SHOULD be called only after openGLView_ was initialized
-       NSAssert( openGLView_, @"openGLView_ must be initialized");
-
-       [self setAlphaBlending: YES];
-       [self setDepthTest: YES];
-       [self setProjection: projection_];
-       
-       // set other opengl default values
-       glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
-       
-#if CC_DIRECTOR_FAST_FPS
-    if (!FPSLabel_) {
-               CCTexture2DPixelFormat currentFormat = [CCTexture2D defaultAlphaPixelFormat];
-               [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA4444];
-               FPSLabel_ = [[CCLabelAtlas labelWithString:@"00.0" charMapFile:@"fps_images.png" itemWidth:16 itemHeight:24 startCharMap:'.'] retain];
-               [CCTexture2D setDefaultAlphaPixelFormat:currentFormat];         
-       }
-#endif // CC_DIRECTOR_FAST_FPS
-}
-
-//
-// Draw the Scene
-//
-- (void) drawScene
-{ 
-       // Override me
-}
-
--(void) calculateDeltaTime
-{
-       struct timeval now;
-       
-       if( gettimeofday( &now, NULL) != 0 ) {
-               CCLOG(@"cocos2d: error in gettimeofday");
-               dt = 0;
-               return;
-       }
-       
-       // new delta time
-       if( nextDeltaTimeZero_ ) {
-               dt = 0;
-               nextDeltaTimeZero_ = NO;
-       } else {
-               dt = (now.tv_sec - lastUpdate_.tv_sec) + (now.tv_usec - lastUpdate_.tv_usec) / 1000000.0f;
-               dt = MAX(0,dt);
-       }
-       
-       lastUpdate_ = now;      
-}
-
-#pragma mark Director - Memory Helper
-
--(void) purgeCachedData
-{
-       [CCLabelBMFont purgeCachedData];        
-       [CCTextureCache purgeSharedTextureCache];       
-}
-
-#pragma mark Director - Scene OpenGL Helper
-
--(ccDirectorProjection) projection
-{
-       return projection_;
-}
-
--(float) getZEye
-{
-       return ( winSizeInPixels_.height / 1.1566f );
-}
-
--(void) setProjection:(ccDirectorProjection)projection
-{
-       CCLOG(@"cocos2d: override me");
-}
-
-- (void) setAlphaBlending: (BOOL) on
-{
-       if (on) {
-               glEnable(GL_BLEND);
-               glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);
-               
-       } else
-               glDisable(GL_BLEND);
-}
-
-- (void) setDepthTest: (BOOL) on
-{
-       if (on) {
-               ccglClearDepth(1.0f);
-               glEnable(GL_DEPTH_TEST);
-               glDepthFunc(GL_LEQUAL);
-               glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
-       } else
-               glDisable( GL_DEPTH_TEST );
-}
-
-#pragma mark Director Integration with a UIKit view
-
--(CC_GLVIEW*) openGLView
-{
-       return openGLView_;
-}
-
--(void) setOpenGLView:(CC_GLVIEW *)view
-{
-       NSAssert( view, @"OpenGLView must be non-nil");
-
-       if( view != openGLView_ ) {
-               [openGLView_ release];
-               openGLView_ = [view retain];
-               
-               // set size
-               winSizeInPixels_ = winSizeInPoints_ = CCNSSizeToCGSize( [view bounds].size );
-
-               [self setGLDefaultValues];
-       }
-}
-
-#pragma mark Director Scene Landscape
-
--(CGPoint)convertToGL:(CGPoint)uiPoint
-{
-       CCLOG(@"CCDirector#convertToGL: OVERRIDE ME.");
-       return CGPointZero;
-}
-
--(CGPoint)convertToUI:(CGPoint)glPoint
-{
-       CCLOG(@"CCDirector#convertToUI: OVERRIDE ME.");
-       return CGPointZero;
-}
-
--(CGSize)winSize
-{
-       return winSizeInPoints_;
-}
-
--(CGSize)winSizeInPixels
-{
-       return winSizeInPixels_;
-}
-
--(CGSize)displaySizeInPixels
-{
-       return winSizeInPixels_;
-}
-
--(void) reshapeProjection:(CGSize)newWindowSize
-{
-       winSizeInPixels_ = winSizeInPoints_ = newWindowSize;
-       [self setProjection:projection_];
-}
-
-#pragma mark Director Scene Management
-
-- (void)runWithScene:(CCScene*) scene
-{
-       NSAssert( scene != nil, @"Argument must be non-nil");
-       NSAssert( runningScene_ == nil, @"You can't run an scene if another Scene is running. Use replaceScene or pushScene instead");
-       
-       [self pushScene:scene];
-       [self startAnimation];  
-}
-
--(void) replaceScene: (CCScene*) scene
-{
-       NSAssert( scene != nil, @"Argument must be non-nil");
-
-       NSUInteger index = [scenesStack_ count];
-       
-       sendCleanupToScene_ = YES;
-       [scenesStack_ replaceObjectAtIndex:index-1 withObject:scene];
-       nextScene_ = scene;     // nextScene_ is a weak ref
-}
-
-- (void) pushScene: (CCScene*) scene
-{
-       NSAssert( scene != nil, @"Argument must be non-nil");
-
-       sendCleanupToScene_ = NO;
-
-       [scenesStack_ addObject: scene];
-       nextScene_ = scene;     // nextScene_ is a weak ref
-}
-
--(void) popScene
-{      
-       NSAssert( runningScene_ != nil, @"A running Scene is needed");
-
-       [scenesStack_ removeLastObject];
-       NSUInteger c = [scenesStack_ count];
-       
-       if( c == 0 )
-               [self end];
-       else {
-               sendCleanupToScene_ = YES;
-               nextScene_ = [scenesStack_ objectAtIndex:c-1];
-       }
-}
-
--(void) end
-{
-       [runningScene_ onExit];
-       [runningScene_ cleanup];
-       [runningScene_ release];
-
-       runningScene_ = nil;
-       nextScene_ = nil;
-       
-       // remove all objects, but don't release it.
-       // runWithScene might be executed after 'end'.
-       [scenesStack_ removeAllObjects];
-       
-       [self stopAnimation];
-       
-#if CC_DIRECTOR_FAST_FPS
-       [FPSLabel_ release];
-       FPSLabel_ = nil;
-#endif 
-
-       [projectionDelegate_ release];
-       projectionDelegate_ = nil;
-       
-       // Purge bitmap cache
-       [CCLabelBMFont purgeCachedData];
-
-       // Purge all managers
-       [CCAnimationCache purgeSharedAnimationCache];
-       [CCSpriteFrameCache purgeSharedSpriteFrameCache];
-       [CCScheduler purgeSharedScheduler];
-       [CCActionManager purgeSharedManager];
-       [CCTextureCache purgeSharedTextureCache];
-       
-       
-       // OpenGL view
-       
-       // Since the director doesn't attach the openglview to the window
-       // it shouldn't remove it from the window too.
-//     [openGLView_ removeFromSuperview];
-
-       [openGLView_ release];
-       openGLView_ = nil;      
-}
-
--(void) setNextScene
-{
-       Class transClass = [CCTransitionScene class];
-       BOOL runningIsTransition = [runningScene_ isKindOfClass:transClass];
-       BOOL newIsTransition = [nextScene_ isKindOfClass:transClass];
-
-       // If it is not a transition, call onExit/cleanup
-       if( ! newIsTransition ) {
-               [runningScene_ onExit];
-
-               // issue #709. the root node (scene) should receive the cleanup message too
-               // otherwise it might be leaked.
-               if( sendCleanupToScene_)
-                       [runningScene_ cleanup];
-       }
-
-       [runningScene_ release];
-       
-       runningScene_ = [nextScene_ retain];
-       nextScene_ = nil;
-
-       if( ! runningIsTransition ) {
-               [runningScene_ onEnter];
-               [runningScene_ onEnterTransitionDidFinish];
-       }
-}
-
--(void) pause
-{
-       if( isPaused_ )
-               return;
-
-       oldAnimationInterval_ = animationInterval_;
-       
-       // when paused, don't consume CPU
-       [self setAnimationInterval:1/4.0];
-       isPaused_ = YES;
-}
-
--(void) resume
-{
-       if( ! isPaused_ )
-               return;
-       
-       [self setAnimationInterval: oldAnimationInterval_];
-
-       if( gettimeofday( &lastUpdate_, NULL) != 0 ) {
-               CCLOG(@"cocos2d: Director: Error in gettimeofday");
-       }
-       
-       isPaused_ = NO;
-       dt = 0;
-}
-
-- (void)startAnimation
-{
-       CCLOG(@"cocos2d: Director#startAnimation. Override me");
-}
-
-- (void)stopAnimation
-{
-       CCLOG(@"cocos2d: Director#stopAnimation. Override me");
-}
-
-- (void)setAnimationInterval:(NSTimeInterval)interval
-{
-       CCLOG(@"cocos2d: Director#setAnimationInterval. Override me");
-}
-
-#if CC_DIRECTOR_FAST_FPS
-
-// display the FPS using a LabelAtlas
-// updates the FPS every frame
--(void) showFPS
-{
-       frames_++;
-       accumDt_ += dt;
-       
-       if ( accumDt_ > CC_DIRECTOR_FPS_INTERVAL)  {
-               frameRate_ = frames_/accumDt_;
-               frames_ = 0;
-               accumDt_ = 0;
-
-//             sprintf(format,"%.1f",frameRate);
-//             [FPSLabel setCString:format];
-
-               NSString *str = [[NSString alloc] initWithFormat:@"%.1f", frameRate_];
-               [FPSLabel_ setString:str];
-               [str release];
-       }
-               
-       [FPSLabel_ draw];
-}
-#else
-// display the FPS using a manually generated Texture (very slow)
-// updates the FPS 3 times per second aprox.
--(void) showFPS
-{
-       frames_++;
-       accumDt_ += dt;
-       
-       if ( accumDt_ > CC_DIRECTOR_FPS_INTERVAL)  {
-               frameRate_ = frames_/accumDt_;
-               frames_ = 0;
-               accumDt_ = 0;
-       }
-       
-       NSString *str = [NSString stringWithFormat:@"%.2f",frameRate_];
-       CCTexture2D *texture = [[CCTexture2D alloc] initWithString:str dimensions:CGSizeMake(100,30) alignment:UITextAlignmentLeft fontName:@"Arial" fontSize:24];
-
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Unneeded states: GL_COLOR_ARRAY
-       glDisableClientState(GL_COLOR_ARRAY);
-       
-       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-       
-       glColor4ub(224,224,244,200);
-       [texture drawAtPoint: ccp(5,2)];
-       [texture release];
-       
-       glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);
-       
-       // restore default GL state
-       glEnableClientState(GL_COLOR_ARRAY);
-}
-#endif
-
-- (void) showProfilers {
-#if CC_ENABLE_PROFILERS
-       accumDtForProfiler_ += dt;
-       if (accumDtForProfiler_ > 1.0f) {
-               accumDtForProfiler_ = 0;
-               [[CCProfiler sharedProfiler] displayTimers];
-       }
-#endif // CC_ENABLE_PROFILERS
-}
-
-@end
-
diff --git a/Classes/cocos2d/CCDrawingPrimitives.h b/Classes/cocos2d/CCDrawingPrimitives.h
deleted file mode 100644 (file)
index 1dbd9a5..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
-#ifndef __CC_DRAWING_PRIMITIVES_H
-#define __CC_DRAWING_PRIMITIVES_H
-
-#import <Availability.h>
-#import <Foundation/Foundation.h>
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import <CoreGraphics/CGGeometry.h>    // for CGPoint
-#endif
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif 
-       
-/**
- @file
- Drawing OpenGL ES primitives.
-  - ccDrawPoint
-  - ccDrawLine
-  - ccDrawPoly
-  - ccDrawCircle
-  - ccDrawQuadBezier
-  - ccDrawCubicBezier
-
- You can change the color, width and other property by calling the
-   glColor4ub(), glLineWitdh(), glPointSize().
- @warning These functions draws the Line, Point, Polygon, immediately. They aren't batched. If you are going to make a game that depends on these primitives, I suggest creating a batch.
- */
-       
-
-/** draws a point given x and y coordinate measured in points. */
-void ccDrawPoint( CGPoint point );
-
-/** draws an array of points.
- @since v0.7.2
- */
-void ccDrawPoints( const CGPoint *points, NSUInteger numberOfPoints );
-
-/** draws a line given the origin and destination point measured in points. */
-void ccDrawLine( CGPoint origin, CGPoint destination );
-
-/** draws a poligon given a pointer to CGPoint coordiantes and the number of vertices measured in points.
- The polygon can be closed or open
- */
-void ccDrawPoly( const CGPoint *vertices, NSUInteger numOfVertices, BOOL closePolygon );
-
-/** draws a circle given the center, radius and number of segments measured in points */
-void ccDrawCircle( CGPoint center, float radius, float angle, NSUInteger segments, BOOL drawLineToCenter);
-
-/** draws a quad bezier path measured in points.
- @since v0.8
- */
-void ccDrawQuadBezier(CGPoint origin, CGPoint control, CGPoint destination, NSUInteger segments);
-
-/** draws a cubic bezier path measured in points.
- @since v0.8
- */
-void ccDrawCubicBezier(CGPoint origin, CGPoint control1, CGPoint control2, CGPoint destination, NSUInteger segments);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif //  __CC_DRAWING_PRIMITIVES_H
diff --git a/Classes/cocos2d/CCDrawingPrimitives.m b/Classes/cocos2d/CCDrawingPrimitives.m
deleted file mode 100644 (file)
index 1e26a6f..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#import <math.h>
-#import <stdlib.h>
-#import <string.h>
-
-#import "CCDrawingPrimitives.h"
-#import "ccTypes.h"
-#import "ccMacros.h"
-#import "Platforms/CCGL.h"
-
-void ccDrawPoint( CGPoint point )
-{
-       ccVertex2F p = (ccVertex2F) {point.x * CC_CONTENT_SCALE_FACTOR(), point.y * CC_CONTENT_SCALE_FACTOR() };
-       
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_VERTEX_ARRAY, 
-       // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY       
-       glDisable(GL_TEXTURE_2D);
-       glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-       glDisableClientState(GL_COLOR_ARRAY);
-       
-       glVertexPointer(2, GL_FLOAT, 0, &p);    
-       glDrawArrays(GL_POINTS, 0, 1);
-
-       // restore default state
-       glEnableClientState(GL_COLOR_ARRAY);
-       glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-       glEnable(GL_TEXTURE_2D);        
-}
-
-void ccDrawPoints( const CGPoint *points, NSUInteger numberOfPoints )
-{
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_VERTEX_ARRAY, 
-       // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY       
-       glDisable(GL_TEXTURE_2D);
-       glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-       glDisableClientState(GL_COLOR_ARRAY);
-
-       ccVertex2F newPoints[numberOfPoints];
-
-       // iPhone and 32-bit machines optimization
-       if( sizeof(CGPoint) == sizeof(ccVertex2F) ) {
-
-               // points ?
-               if( CC_CONTENT_SCALE_FACTOR() != 1 ) {
-                       for( NSUInteger i=0; i<numberOfPoints;i++)
-                               newPoints[i] =  (ccVertex2F){ points[i].x * CC_CONTENT_SCALE_FACTOR(), points[i].y * CC_CONTENT_SCALE_FACTOR() };
-
-                       glVertexPointer(2, GL_FLOAT, 0, newPoints);
-
-               } else
-                       glVertexPointer(2, GL_FLOAT, 0, points);
-               
-               glDrawArrays(GL_POINTS, 0, numberOfPoints);
-               
-       } else {
-               
-               // Mac on 64-bit
-               for( NSUInteger i=0; i<numberOfPoints;i++)
-                       newPoints[i] = (ccVertex2F) { points[i].x, points[i].y };
-                       
-               glVertexPointer(2, GL_FLOAT, 0, newPoints);
-               glDrawArrays(GL_POINTS, 0, numberOfPoints);
-
-       }
-
-       
-       // restore default state
-       glEnableClientState(GL_COLOR_ARRAY);
-       glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-       glEnable(GL_TEXTURE_2D);        
-}
-
-
-void ccDrawLine( CGPoint origin, CGPoint destination )
-{
-       ccVertex2F vertices[2] = {
-               {origin.x * CC_CONTENT_SCALE_FACTOR(), origin.y * CC_CONTENT_SCALE_FACTOR() },
-               {destination.x * CC_CONTENT_SCALE_FACTOR(), destination.y * CC_CONTENT_SCALE_FACTOR() }
-       };
-
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_VERTEX_ARRAY, 
-       // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY       
-       glDisable(GL_TEXTURE_2D);
-       glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-       glDisableClientState(GL_COLOR_ARRAY);
-       
-       glVertexPointer(2, GL_FLOAT, 0, vertices);      
-       glDrawArrays(GL_LINES, 0, 2);
-       
-       // restore default state
-       glEnableClientState(GL_COLOR_ARRAY);
-       glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-       glEnable(GL_TEXTURE_2D);                
-}
-
-
-void ccDrawPoly( const CGPoint *poli, NSUInteger numberOfPoints, BOOL closePolygon )
-{
-       ccVertex2F newPoint[numberOfPoints];
-
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_VERTEX_ARRAY, 
-       // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY       
-       glDisable(GL_TEXTURE_2D);
-       glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-       glDisableClientState(GL_COLOR_ARRAY);
-
-       
-       // iPhone and 32-bit machines
-       if( sizeof(CGPoint) == sizeof(ccVertex2F) ) {
-
-               // convert to pixels ?
-               if( CC_CONTENT_SCALE_FACTOR() != 1 ) {
-                       memcpy( newPoint, poli, numberOfPoints * sizeof(ccVertex2F) );
-                       for( NSUInteger i=0; i<numberOfPoints;i++)
-                               newPoint[i] = (ccVertex2F) { poli[i].x * CC_CONTENT_SCALE_FACTOR(), poli[i].y * CC_CONTENT_SCALE_FACTOR() };
-
-                       glVertexPointer(2, GL_FLOAT, 0, newPoint);
-
-               } else
-                       glVertexPointer(2, GL_FLOAT, 0, poli);
-
-               
-       } else {
-               // 64-bit machines (Mac)
-               
-               for( NSUInteger i=0; i<numberOfPoints;i++)
-                       newPoint[i] = (ccVertex2F) { poli[i].x, poli[i].y };
-
-               glVertexPointer(2, GL_FLOAT, 0, newPoint );
-
-       }
-               
-       if( closePolygon )
-               glDrawArrays(GL_LINE_LOOP, 0, numberOfPoints);
-       else
-               glDrawArrays(GL_LINE_STRIP, 0, numberOfPoints);
-       
-       // restore default state
-       glEnableClientState(GL_COLOR_ARRAY);
-       glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-       glEnable(GL_TEXTURE_2D);        
-}
-
-void ccDrawCircle( CGPoint center, float r, float a, NSUInteger segs, BOOL drawLineToCenter)
-{
-       int additionalSegment = 1;
-       if (drawLineToCenter)
-               additionalSegment++;
-
-       const float coef = 2.0f * (float)M_PI/segs;
-       
-       GLfloat *vertices = calloc( sizeof(GLfloat)*2*(segs+2), 1);
-       if( ! vertices )
-               return;
-
-       for(NSUInteger i=0;i<=segs;i++)
-       {
-               float rads = i*coef;
-               GLfloat j = r * cosf(rads + a) + center.x;
-               GLfloat k = r * sinf(rads + a) + center.y;
-               
-               vertices[i*2] = j * CC_CONTENT_SCALE_FACTOR();
-               vertices[i*2+1] =k * CC_CONTENT_SCALE_FACTOR();
-       }
-       vertices[(segs+1)*2] = center.x * CC_CONTENT_SCALE_FACTOR();
-       vertices[(segs+1)*2+1] = center.y * CC_CONTENT_SCALE_FACTOR();
-       
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_VERTEX_ARRAY, 
-       // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY       
-       glDisable(GL_TEXTURE_2D);
-       glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-       glDisableClientState(GL_COLOR_ARRAY);
-       
-       glVertexPointer(2, GL_FLOAT, 0, vertices);      
-       glDrawArrays(GL_LINE_STRIP, 0, segs+additionalSegment);
-       
-       // restore default state
-       glEnableClientState(GL_COLOR_ARRAY);
-       glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-       glEnable(GL_TEXTURE_2D);        
-       
-       free( vertices );
-}
-
-void ccDrawQuadBezier(CGPoint origin, CGPoint control, CGPoint destination, NSUInteger segments)
-{
-       ccVertex2F vertices[segments + 1];
-       
-       float t = 0.0f;
-       for(NSUInteger i = 0; i < segments; i++)
-       {
-               GLfloat x = powf(1 - t, 2) * origin.x + 2.0f * (1 - t) * t * control.x + t * t * destination.x;
-               GLfloat y = powf(1 - t, 2) * origin.y + 2.0f * (1 - t) * t * control.y + t * t * destination.y;
-               vertices[i] = (ccVertex2F) {x * CC_CONTENT_SCALE_FACTOR(), y * CC_CONTENT_SCALE_FACTOR() };
-               t += 1.0f / segments;
-       }
-       vertices[segments] = (ccVertex2F) {destination.x * CC_CONTENT_SCALE_FACTOR(), destination.y * CC_CONTENT_SCALE_FACTOR() };
-       
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_VERTEX_ARRAY, 
-       // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY       
-       glDisable(GL_TEXTURE_2D);
-       glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-       glDisableClientState(GL_COLOR_ARRAY);
-       
-       glVertexPointer(2, GL_FLOAT, 0, vertices);      
-       glDrawArrays(GL_LINE_STRIP, 0, segments + 1);
-       
-       // restore default state
-       glEnableClientState(GL_COLOR_ARRAY);
-       glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-       glEnable(GL_TEXTURE_2D);        
-}
-
-void ccDrawCubicBezier(CGPoint origin, CGPoint control1, CGPoint control2, CGPoint destination, NSUInteger segments)
-{
-       ccVertex2F vertices[segments + 1];
-       
-       float t = 0;
-       for(NSUInteger i = 0; i < segments; i++)
-       {
-               GLfloat x = powf(1 - t, 3) * origin.x + 3.0f * powf(1 - t, 2) * t * control1.x + 3.0f * (1 - t) * t * t * control2.x + t * t * t * destination.x;
-               GLfloat y = powf(1 - t, 3) * origin.y + 3.0f * powf(1 - t, 2) * t * control1.y + 3.0f * (1 - t) * t * t * control2.y + t * t * t * destination.y;
-               vertices[i] = (ccVertex2F) {x * CC_CONTENT_SCALE_FACTOR(), y * CC_CONTENT_SCALE_FACTOR() };
-               t += 1.0f / segments;
-       }
-       vertices[segments] = (ccVertex2F) {destination.x * CC_CONTENT_SCALE_FACTOR(), destination.y * CC_CONTENT_SCALE_FACTOR() };
-       
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_VERTEX_ARRAY, 
-       // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY       
-       glDisable(GL_TEXTURE_2D);
-       glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-       glDisableClientState(GL_COLOR_ARRAY);
-       
-       glVertexPointer(2, GL_FLOAT, 0, vertices);      
-       glDrawArrays(GL_LINE_STRIP, 0, segments + 1);
-       
-       // restore default state
-       glEnableClientState(GL_COLOR_ARRAY);
-       glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-       glEnable(GL_TEXTURE_2D);        
-}
diff --git a/Classes/cocos2d/CCGrabber.h b/Classes/cocos2d/CCGrabber.h
deleted file mode 100644 (file)
index f1ce6cb..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 On-Core
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "Platforms/CCGL.h"
-#import <Foundation/Foundation.h>
-
-@class CCTexture2D;
-
-/** FBO class that grabs the the contents of the screen */
-@interface CCGrabber : NSObject
-{
-       GLuint  fbo;
-       GLint   oldFBO;
-}
-
--(void)grab:(CCTexture2D*)texture;
--(void)beforeRender:(CCTexture2D*)texture;
--(void)afterRender:(CCTexture2D*)texture;
-
-@end
diff --git a/Classes/cocos2d/CCGrabber.m b/Classes/cocos2d/CCGrabber.m
deleted file mode 100644 (file)
index a259091..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 On-Core
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "Platforms/CCGL.h"
-#import "CCGrabber.h"
-#import "ccMacros.h"
-#import "CCTexture2D.h"
-#import "Support/OpenGL_Internal.h"
-
-@implementation CCGrabber
-
--(id) init
-{
-       if(( self = [super init] )) {
-               // generate FBO
-               ccglGenFramebuffers(1, &fbo);           
-       }
-       return self;
-}
-
--(void)grab:(CCTexture2D*)texture
-{
-       glGetIntegerv(CC_GL_FRAMEBUFFER_BINDING, &oldFBO);
-       
-       // bind
-       ccglBindFramebuffer(CC_GL_FRAMEBUFFER, fbo);
-
-       // associate texture with FBO
-       ccglFramebufferTexture2D(CC_GL_FRAMEBUFFER, CC_GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture.name, 0);
-       
-       // check if it worked (probably worth doing :) )
-       GLuint status = ccglCheckFramebufferStatus(CC_GL_FRAMEBUFFER);
-       if (status != CC_GL_FRAMEBUFFER_COMPLETE)
-               [NSException raise:@"Frame Grabber" format:@"Could not attach texture to framebuffer"];
-       
-       ccglBindFramebuffer(CC_GL_FRAMEBUFFER, oldFBO);
-}
-
--(void)beforeRender:(CCTexture2D*)texture
-{
-       glGetIntegerv(CC_GL_FRAMEBUFFER_BINDING, &oldFBO);
-       ccglBindFramebuffer(CC_GL_FRAMEBUFFER, fbo);
-
-       // BUG XXX: doesn't work with RGB565.
-
-
-       glClearColor(0,0,0,0);
-       
-       // BUG #631: To fix #631, uncomment the lines with #631
-       // Warning: But it CCGrabber won't work with 2 effects at the same time
-//     glClearColor(0.0f,0.0f,0.0f,1.0f);      // #631
-       
-       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);     
-       
-//     glColorMask(TRUE, TRUE, TRUE, FALSE);   // #631
-
-}
-
--(void)afterRender:(CCTexture2D*)texture
-{
-       ccglBindFramebuffer(CC_GL_FRAMEBUFFER, oldFBO);
-//     glColorMask(TRUE, TRUE, TRUE, TRUE);    // #631
-}
-
-- (void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-       ccglDeleteFramebuffers(1, &fbo);
-       [super dealloc];
-}
-
-@end
diff --git a/Classes/cocos2d/CCGrid.h b/Classes/cocos2d/CCGrid.h
deleted file mode 100644 (file)
index e5e77e8..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 On-Core
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import <Foundation/Foundation.h>
-
-#import "CCNode.h"
-#import "CCCamera.h"
-#import "ccTypes.h"
-
-@class CCTexture2D;
-@class CCGrabber;
-
-/** Base class for other
- */
-@interface CCGridBase : NSObject
-{
-       BOOL            active_;
-       int                     reuseGrid_;
-       ccGridSize      gridSize_;
-       CCTexture2D *texture_;
-       CGPoint         step_;
-       CCGrabber       *grabber_;
-       BOOL            isTextureFlipped_;
-}
-
-/** wheter or not the grid is active */
-@property (nonatomic,readwrite) BOOL active;
-/** number of times that the grid will be reused */
-@property (nonatomic,readwrite) int reuseGrid;
-/** size of the grid */
-@property (nonatomic,readonly) ccGridSize gridSize;
-/** pixels between the grids */
-@property (nonatomic,readwrite) CGPoint step;
-/** texture used */
-@property (nonatomic, retain) CCTexture2D *texture;
-/** grabber used */
-@property (nonatomic, retain) CCGrabber *grabber;
-/** is texture flipped */
-@property (nonatomic, readwrite) BOOL isTextureFlipped;
-
-+(id) gridWithSize:(ccGridSize)gridSize texture:(CCTexture2D*)texture flippedTexture:(BOOL)flipped;
-+(id) gridWithSize:(ccGridSize)gridSize;
-
--(id) initWithSize:(ccGridSize)gridSize texture:(CCTexture2D*)texture flippedTexture:(BOOL)flipped;
--(id)initWithSize:(ccGridSize)gridSize;
--(void)beforeDraw;
--(void)afterDraw:(CCNode*)target;
--(void)blit;
--(void)reuse;
-
--(void)calculateVertexPoints;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/**
- CCGrid3D is a 3D grid implementation. Each vertex has 3 dimensions: x,y,z
- */
-@interface CCGrid3D : CCGridBase
-{
-       GLvoid          *texCoordinates;
-       GLvoid          *vertices;
-       GLvoid          *originalVertices;
-       GLushort        *indices;
-}
-
-/** returns the vertex at a given position */
--(ccVertex3F)vertex:(ccGridSize)pos;
-/** returns the original (non-transformed) vertex at a given position */
--(ccVertex3F)originalVertex:(ccGridSize)pos;
-/** sets a new vertex at a given position */
--(void)setVertex:(ccGridSize)pos vertex:(ccVertex3F)vertex;
-
-@end
-
-////////////////////////////////////////////////////////////
-
-/**
- CCTiledGrid3D is a 3D grid implementation. It differs from Grid3D in that
- the tiles can be separated from the grid.
-*/
-@interface CCTiledGrid3D : CCGridBase
-{
-       GLvoid          *texCoordinates;
-       GLvoid          *vertices;
-       GLvoid          *originalVertices;
-       GLushort        *indices;
-}
-
-/** returns the tile at the given position */
--(ccQuad3)tile:(ccGridSize)pos;
-/** returns the original tile (untransformed) at the given position */
--(ccQuad3)originalTile:(ccGridSize)pos;
-/** sets a new tile */
--(void)setTile:(ccGridSize)pos coords:(ccQuad3)coords;
-
-@end
diff --git a/Classes/cocos2d/CCGrid.m b/Classes/cocos2d/CCGrid.m
deleted file mode 100644 (file)
index b63fbb8..0000000
+++ /dev/null
@@ -1,571 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 On-Core
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import <Availability.h>
-
-#import "ccMacros.h"
-#import "CCGrid.h"
-#import "CCTexture2D.h"
-#import "CCDirector.h"
-#import "CCGrabber.h"
-
-#import "Platforms/CCGL.h"
-#import "Support/CGPointExtension.h"
-#import "Support/ccUtils.h"
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import "Platforms/iOS/CCDirectorIOS.h"
-#endif // __IPHONE_OS_VERSION_MAX_ALLOWED
-
-#pragma mark -
-#pragma mark CCGridBase
-
-@implementation CCGridBase
-
-@synthesize reuseGrid = reuseGrid_;
-@synthesize texture = texture_;
-@synthesize grabber = grabber_;
-@synthesize gridSize = gridSize_;
-@synthesize step = step_;
-
-+(id) gridWithSize:(ccGridSize)gridSize texture:(CCTexture2D*)texture flippedTexture:(BOOL)flipped
-{
-       return [[[self alloc] initWithSize:gridSize texture:texture flippedTexture:flipped] autorelease];
-}
-
-+(id) gridWithSize:(ccGridSize)gridSize
-{
-       return [[(CCGridBase*)[self alloc] initWithSize:gridSize] autorelease];
-}
-
--(id) initWithSize:(ccGridSize)gridSize texture:(CCTexture2D*)texture flippedTexture:(BOOL)flipped
-{
-       if( (self=[super init]) ) {
-               
-               active_ = NO;
-               reuseGrid_ = 0;
-               gridSize_ = gridSize;
-
-               self.texture = texture;
-               isTextureFlipped_ = flipped;
-               
-               CGSize texSize = [texture_ contentSizeInPixels];
-               step_.x = texSize.width / gridSize_.x;
-               step_.y = texSize.height / gridSize_.y;
-               
-               grabber_ = [[CCGrabber alloc] init];
-               [grabber_ grab:texture_];
-               
-               [self calculateVertexPoints];
-       }
-       return self;
-}
-
--(id)initWithSize:(ccGridSize)gSize
-{
-       CCDirector *director = [CCDirector sharedDirector];
-       CGSize s = [director winSizeInPixels];
-       
-       unsigned int POTWide = ccNextPOT(s.width);
-       unsigned int POTHigh = ccNextPOT(s.height);
-       
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-       EAGLView *glview = [[CCDirector sharedDirector] openGLView];
-       NSString *pixelFormat = [glview pixelFormat];
-
-       CCTexture2DPixelFormat format = [pixelFormat isEqualToString: kEAGLColorFormatRGB565] ? kCCTexture2DPixelFormat_RGB565 : kCCTexture2DPixelFormat_RGBA8888;
-#else
-       CCTexture2DPixelFormat format = kCCTexture2DPixelFormat_RGBA8888;
-#endif
-       
-       void *data = calloc((int)(POTWide * POTHigh * 4), 1);
-       if( ! data ) {
-               CCLOG(@"cocos2d: CCGrid: not enough memory");
-               [self release];
-               return nil;
-       }
-       
-       CCTexture2D *texture = [[CCTexture2D alloc] initWithData:data pixelFormat:format pixelsWide:POTWide pixelsHigh:POTHigh contentSize:s];
-       free( data );
-
-       if( ! texture ) {
-               CCLOG(@"cocos2d: CCGrid: error creating texture");
-               [self release];
-               return nil;
-       }
-       
-       self = [self initWithSize:gSize texture:texture flippedTexture:NO];
-       
-       [texture release];
-       
-       return self;
-}
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | Dimensions = %ix%i>", [self class], self, gridSize_.x, gridSize_.y];
-}
-
-- (void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-
-       [self setActive: NO];
-
-       [texture_ release];
-       [grabber_ release];
-       [super dealloc];
-}
-
-// properties
--(BOOL) active
-{
-       return active_;
-}
-
--(void) setActive:(BOOL)active
-{
-       active_ = active;
-       if( ! active ) {
-               CCDirector *director = [CCDirector sharedDirector];
-               ccDirectorProjection proj = [director projection];
-               [director setProjection:proj];
-       }
-}
-
--(BOOL) isTextureFlipped
-{
-       return isTextureFlipped_;
-}
-
--(void) setIsTextureFlipped:(BOOL)flipped
-{
-       if( isTextureFlipped_ != flipped ) {
-               isTextureFlipped_ = flipped;
-               [self calculateVertexPoints];
-       }
-}
-
-// This routine can be merged with Director
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
--(void)applyLandscape
-{
-       CCDirector *director = [CCDirector sharedDirector];
-       
-       CGSize winSize = [director displaySizeInPixels];
-       float w = winSize.width / 2;
-       float h = winSize.height / 2;
-
-       ccDeviceOrientation orientation  = [director deviceOrientation];
-
-       switch (orientation) {
-               case CCDeviceOrientationLandscapeLeft:
-                       glTranslatef(w,h,0);
-                       glRotatef(-90,0,0,1);
-                       glTranslatef(-h,-w,0);
-                       break;
-               case CCDeviceOrientationLandscapeRight:
-                       glTranslatef(w,h,0);
-                       glRotatef(90,0,0,1);
-                       glTranslatef(-h,-w,0);
-                       break;
-               case CCDeviceOrientationPortraitUpsideDown:
-                       glTranslatef(w,h,0);
-                       glRotatef(180,0,0,1);
-                       glTranslatef(-w,-h,0);
-                       break;
-               default:
-                       break;
-       }
-}
-#endif
-
--(void)set2DProjection
-{
-       CGSize  winSize = [[CCDirector sharedDirector] winSizeInPixels];
-       
-       glLoadIdentity();
-       glViewport(0, 0, winSize.width, winSize.height);
-       glMatrixMode(GL_PROJECTION);
-       glLoadIdentity();
-       ccglOrtho(0, winSize.width, 0, winSize.height, -1024, 1024);
-       glMatrixMode(GL_MODELVIEW);
-}
-
-// This routine can be merged with Director
--(void)set3DProjection
-{
-       CCDirector *director = [CCDirector sharedDirector];
-       
-       CGSize  winSize = [director displaySizeInPixels];
-       
-       glViewport(0, 0, winSize.width, winSize.height);
-       glMatrixMode(GL_PROJECTION);
-       glLoadIdentity();
-       gluPerspective(60, (GLfloat)winSize.width/winSize.height, 0.5f, 1500.0f);
-       
-       glMatrixMode(GL_MODELVIEW);     
-       glLoadIdentity();
-       gluLookAt( winSize.width/2, winSize.height/2, [director getZEye],
-                         winSize.width/2, winSize.height/2, 0,
-                         0.0f, 1.0f, 0.0f
-                         );
-}
-
--(void)beforeDraw
-{
-       [self set2DProjection];
-       [grabber_ beforeRender:texture_];
-}
-
--(void)afterDraw:(CCNode *)target
-{
-       [grabber_ afterRender:texture_];
-       
-       [self set3DProjection];
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-       [self applyLandscape];
-#endif
-
-       if( target.camera.dirty ) {
-
-               CGPoint offset = [target anchorPointInPixels];
-
-               //
-               // XXX: Camera should be applied in the AnchorPoint
-               //
-               ccglTranslate(offset.x, offset.y, 0);
-               [target.camera locate];
-               ccglTranslate(-offset.x, -offset.y, 0);
-       }
-               
-       glBindTexture(GL_TEXTURE_2D, texture_.name);
-
-       [self blit];
-}
-
--(void)blit
-{
-       [NSException raise:@"GridBase" format:@"Abstract class needs implementation"];
-}
-
--(void)reuse
-{
-       [NSException raise:@"GridBase" format:@"Abstract class needs implementation"];
-}
-
--(void)calculateVertexPoints
-{
-       [NSException raise:@"GridBase" format:@"Abstract class needs implementation"];
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCGrid3D
-@implementation CCGrid3D
-
--(void)dealloc
-{
-       free(texCoordinates);
-       free(vertices);
-       free(indices);
-       free(originalVertices);
-       [super dealloc];
-}
-
--(void)blit
-{
-       int n = gridSize_.x * gridSize_.y;
-       
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Unneeded states: GL_COLOR_ARRAY
-       glDisableClientState(GL_COLOR_ARRAY);   
-       
-       glVertexPointer(3, GL_FLOAT, 0, vertices);
-       glTexCoordPointer(2, GL_FLOAT, 0, texCoordinates);
-       glDrawElements(GL_TRIANGLES, n*6, GL_UNSIGNED_SHORT, indices);
-       
-       // restore GL default state
-       glEnableClientState(GL_COLOR_ARRAY);
-}
-
--(void)calculateVertexPoints
-{
-       float width = (float)texture_.pixelsWide;
-       float height = (float)texture_.pixelsHigh;
-       float imageH = texture_.contentSizeInPixels.height;
-       
-       int x, y, i;
-       
-       vertices = malloc((gridSize_.x+1)*(gridSize_.y+1)*sizeof(ccVertex3F));
-       originalVertices = malloc((gridSize_.x+1)*(gridSize_.y+1)*sizeof(ccVertex3F));
-       texCoordinates = malloc((gridSize_.x+1)*(gridSize_.y+1)*sizeof(CGPoint));
-       indices = malloc(gridSize_.x*gridSize_.y*sizeof(GLushort)*6);
-       
-       float *vertArray = (float*)vertices;
-       float *texArray = (float*)texCoordinates;
-       GLushort *idxArray = (GLushort *)indices;
-       
-       for( x = 0; x < gridSize_.x; x++ )
-       {
-               for( y = 0; y < gridSize_.y; y++ )
-               {
-                       int idx = (y * gridSize_.x) + x;
-                       
-                       float x1 = x * step_.x;
-                       float x2 = x1 + step_.x;
-                       float y1 = y * step_.y;
-                       float y2 = y1 + step_.y;
-                       
-                       GLushort a = x * (gridSize_.y+1) + y;
-                       GLushort b = (x+1) * (gridSize_.y+1) + y;
-                       GLushort c = (x+1) * (gridSize_.y+1) + (y+1);
-                       GLushort d = x * (gridSize_.y+1) + (y+1);
-                       
-                       GLushort        tempidx[6] = { a, b, d, b, c, d };
-                       
-                       memcpy(&idxArray[6*idx], tempidx, 6*sizeof(GLushort));
-                       
-                       int l1[4] = { a*3, b*3, c*3, d*3 };
-                       ccVertex3F      e = {x1,y1,0};
-                       ccVertex3F      f = {x2,y1,0};
-                       ccVertex3F      g = {x2,y2,0};
-                       ccVertex3F      h = {x1,y2,0};
-                       
-                       ccVertex3F l2[4] = { e, f, g, h };
-                       
-                       int tex1[4] = { a*2, b*2, c*2, d*2 };
-                       CGPoint tex2[4] = { ccp(x1, y1), ccp(x2, y1), ccp(x2, y2), ccp(x1, y2) };
-                       
-                       for( i = 0; i < 4; i++ )
-                       {
-                               vertArray[ l1[i] ] = l2[i].x;
-                               vertArray[ l1[i] + 1 ] = l2[i].y;
-                               vertArray[ l1[i] + 2 ] = l2[i].z;
-                               
-                               texArray[ tex1[i] ] = tex2[i].x / width;
-                               if( isTextureFlipped_ )
-                                       texArray[ tex1[i] + 1 ] = (imageH - tex2[i].y) / height;
-                               else
-                                       texArray[ tex1[i] + 1 ] = tex2[i].y / height;
-                       }
-               }
-       }
-       
-       memcpy(originalVertices, vertices, (gridSize_.x+1)*(gridSize_.y+1)*sizeof(ccVertex3F));
-}
-
--(ccVertex3F)vertex:(ccGridSize)pos
-{
-       int     index = (pos.x * (gridSize_.y+1) + pos.y) * 3;
-       float *vertArray = (float *)vertices;
-       
-       ccVertex3F      vert = { vertArray[index], vertArray[index+1], vertArray[index+2] };
-       
-       return vert;
-}
-
--(ccVertex3F)originalVertex:(ccGridSize)pos
-{
-       int     index = (pos.x * (gridSize_.y+1) + pos.y) * 3;
-       float *vertArray = (float *)originalVertices;
-       
-       ccVertex3F      vert = { vertArray[index], vertArray[index+1], vertArray[index+2] };
-       
-       return vert;
-}
-
--(void)setVertex:(ccGridSize)pos vertex:(ccVertex3F)vertex
-{
-       int     index = (pos.x * (gridSize_.y+1) + pos.y) * 3;
-       float *vertArray = (float *)vertices;
-       vertArray[index] = vertex.x;
-       vertArray[index+1] = vertex.y;
-       vertArray[index+2] = vertex.z;
-}
-
--(void)reuse
-{
-       if ( reuseGrid_ > 0 )
-       {
-               memcpy(originalVertices, vertices, (gridSize_.x+1)*(gridSize_.y+1)*sizeof(ccVertex3F));
-               reuseGrid_--;
-       }
-}
-
-@end
-
-////////////////////////////////////////////////////////////
-
-#pragma mark -
-#pragma mark CCTiledGrid3D
-
-@implementation CCTiledGrid3D
-
--(void)dealloc
-{
-       free(texCoordinates);
-       free(vertices);
-       free(indices);
-       free(originalVertices);
-       [super dealloc];
-}
-
--(void)blit
-{
-       int n = gridSize_.x * gridSize_.y;
-       
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Unneeded states: GL_COLOR_ARRAY
-       glDisableClientState(GL_COLOR_ARRAY);   
-       
-       glVertexPointer(3, GL_FLOAT, 0, vertices);
-       glTexCoordPointer(2, GL_FLOAT, 0, texCoordinates);
-       glDrawElements(GL_TRIANGLES, n*6, GL_UNSIGNED_SHORT, indices);
-
-       // restore default GL state
-       glEnableClientState(GL_COLOR_ARRAY);
-}
-
--(void)calculateVertexPoints
-{
-       float width = (float)texture_.pixelsWide;
-       float height = (float)texture_.pixelsHigh;
-       float imageH = texture_.contentSizeInPixels.height;
-       
-       int numQuads = gridSize_.x * gridSize_.y;
-       
-       vertices = malloc(numQuads*12*sizeof(GLfloat));
-       originalVertices = malloc(numQuads*12*sizeof(GLfloat));
-       texCoordinates = malloc(numQuads*8*sizeof(GLfloat));
-       indices = malloc(numQuads*6*sizeof(GLushort));
-       
-       float *vertArray = (float*)vertices;
-       float *texArray = (float*)texCoordinates;
-       GLushort *idxArray = (GLushort *)indices;
-       
-       int x, y;
-       
-       for( x = 0; x < gridSize_.x; x++ )
-       {
-               for( y = 0; y < gridSize_.y; y++ )
-               {
-                       float x1 = x * step_.x;
-                       float x2 = x1 + step_.x;
-                       float y1 = y * step_.y;
-                       float y2 = y1 + step_.y;
-                       
-                       *vertArray++ = x1;
-                       *vertArray++ = y1;
-                       *vertArray++ = 0;
-                       *vertArray++ = x2;
-                       *vertArray++ = y1;
-                       *vertArray++ = 0;
-                       *vertArray++ = x1;
-                       *vertArray++ = y2;
-                       *vertArray++ = 0;
-                       *vertArray++ = x2;
-                       *vertArray++ = y2;
-                       *vertArray++ = 0;
-                       
-                       float newY1 = y1;
-                       float newY2 = y2;
-                       
-                       if( isTextureFlipped_ ) {
-                               newY1 = imageH - y1;
-                               newY2 = imageH - y2;
-                       }
-
-                       *texArray++ = x1 / width;
-                       *texArray++ = newY1 / height;
-                       *texArray++ = x2 / width;
-                       *texArray++ = newY1 / height;
-                       *texArray++ = x1 / width;
-                       *texArray++ = newY2 / height;
-                       *texArray++ = x2 / width;
-                       *texArray++ = newY2 / height;
-               }
-       }
-       
-       for( x = 0; x < numQuads; x++)
-       {
-               idxArray[x*6+0] = x*4+0;
-               idxArray[x*6+1] = x*4+1;
-               idxArray[x*6+2] = x*4+2;
-               
-               idxArray[x*6+3] = x*4+1;
-               idxArray[x*6+4] = x*4+2;
-               idxArray[x*6+5] = x*4+3;
-       }
-       
-       memcpy(originalVertices, vertices, numQuads*12*sizeof(GLfloat));
-}
-
--(void)setTile:(ccGridSize)pos coords:(ccQuad3)coords
-{
-       int idx = (gridSize_.y * pos.x + pos.y) * 4 * 3;
-       float *vertArray = (float*)vertices;
-       memcpy(&vertArray[idx], &coords, sizeof(ccQuad3));
-}
-
--(ccQuad3)originalTile:(ccGridSize)pos
-{
-       int idx = (gridSize_.y * pos.x + pos.y) * 4 * 3;
-       float *vertArray = (float*)originalVertices;
-       
-       ccQuad3 ret;
-       memcpy(&ret, &vertArray[idx], sizeof(ccQuad3));
-       
-       return ret;
-}
-
--(ccQuad3)tile:(ccGridSize)pos
-{
-       int idx = (gridSize_.y * pos.x + pos.y) * 4 * 3;
-       float *vertArray = (float*)vertices;
-       
-       ccQuad3 ret;
-       memcpy(&ret, &vertArray[idx], sizeof(ccQuad3));
-       
-       return ret;
-}
-
--(void)reuse
-{
-       if ( reuseGrid_ > 0 )
-       {
-               int numQuads = gridSize_.x * gridSize_.y;
-               
-               memcpy(originalVertices, vertices, numQuads*12*sizeof(GLfloat));
-               reuseGrid_--;
-       }
-}
-
-@end
diff --git a/Classes/cocos2d/CCLabelAtlas.h b/Classes/cocos2d/CCLabelAtlas.h
deleted file mode 100644 (file)
index d30fb38..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCAtlasNode.h"
-#import "CCTextureAtlas.h"
-
-/** CCLabelAtlas is a subclass of CCAtlasNode.
- It can be as a replacement of CCLabel since it is MUCH faster.
- CCLabelAtlas versus CCLabel:
- - CCLabelAtlas is MUCH faster than CCLabel
- - CCLabelAtlas "characters" have a fixed height and width
- - CCLabelAtlas "characters" can be anything you want since they are taken from an image file
- A more flexible class is CCBitmapFontAtlas. It supports variable width characters and it also has a nice editor.
- */
-@interface CCLabelAtlas : CCAtlasNode  <CCLabelProtocol>
-{              
-       // string to render
-       NSString                *string_;
-       
-       // the first char in the charmap
-       char                    mapStartChar;
-}
-
-
-/** creates the CCLabelAtlas with a string, a char map file(the atlas), the width and height of each element in points and the starting char of the atlas */
-+(id) labelWithString:(NSString*) string charMapFile: (NSString*) charmapfile itemWidth:(int)w itemHeight:(int)h startCharMap:(char)c;
-
-/** creates the CCLabelAtlas with a string, a char map file(the atlas), the width and height of each element in points and the starting char of the atlas.
- @deprecated Will be removed in 1.0.1. Use "labelWithString:" instead
- */
-+(id) labelAtlasWithString:(NSString*) string charMapFile: (NSString*) charmapfile itemWidth:(int)w itemHeight:(int)h startCharMap:(char)c DEPRECATED_ATTRIBUTE;
-
-/** initializes the CCLabelAtlas with a string, a char map file(the atlas), the width and height in points of each element and the starting char of the atlas */
--(id) initWithString:(NSString*) string charMapFile: (NSString*) charmapfile itemWidth:(int)w itemHeight:(int)h startCharMap:(char)c;
-@end
diff --git a/Classes/cocos2d/CCLabelAtlas.m b/Classes/cocos2d/CCLabelAtlas.m
deleted file mode 100644 (file)
index 98ba04e..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "ccConfig.h"
-#import "ccMacros.h"
-#import "CCDrawingPrimitives.h"
-#import "CCLabelAtlas.h"
-#import "Support/CGPointExtension.h"
-
-
-
-@implementation CCLabelAtlas
-
-#pragma mark CCLabelAtlas - Creation & Init
-+(id) labelWithString:(NSString*)string charMapFile:(NSString*)charmapfile itemWidth:(int)w itemHeight:(int)h startCharMap:(char)c
-{
-       return [[[self alloc] initWithString:string charMapFile:charmapfile itemWidth:w itemHeight:h startCharMap:c] autorelease];
-}
-
-// XXX DEPRECATED. Remove it in 1.0.1
-+(id) labelAtlasWithString:(NSString*) string charMapFile: (NSString*) charmapfile itemWidth:(int)w itemHeight:(int)h startCharMap:(char)c
-{
-       return [self labelWithString:string charMapFile:charmapfile itemWidth:w itemHeight:h startCharMap:c];
-}
-
-
--(id) initWithString:(NSString*) theString charMapFile: (NSString*) charmapfile itemWidth:(int)w itemHeight:(int)h startCharMap:(char)c
-{
-
-       if ((self=[super initWithTileFile:charmapfile tileWidth:w tileHeight:h itemsToRender:[theString length] ]) ) {
-
-               mapStartChar = c;               
-               [self setString: theString];
-       }
-
-       return self;
-}
-
--(void) dealloc
-{
-       [string_ release];
-
-       [super dealloc];
-}
-
-#pragma mark CCLabelAtlas - Atlas generation
-
--(void) updateAtlasValues
-{
-       int n = [string_ length];
-       
-       ccV3F_C4B_T2F_Quad quad;
-
-       const char *s = [string_ UTF8String];
-
-       CCTexture2D *texture = [textureAtlas_ texture];
-       float textureWide = [texture pixelsWide];
-       float textureHigh = [texture pixelsHigh];
-
-       for( NSUInteger i=0; i<n; i++) {
-               unsigned char a = s[i] - mapStartChar;
-               float row = (a % itemsPerRow_);
-               float col = (a / itemsPerRow_);
-               
-#if CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL
-               // Issue #938. Don't use texStepX & texStepY
-               float left              = (2*row*itemWidth_+1)/(2*textureWide);
-               float right             = left+(itemWidth_*2-2)/(2*textureWide);
-               float top               = (2*col*itemHeight_+1)/(2*textureHigh);
-               float bottom    = top+(itemHeight_*2-2)/(2*textureHigh);
-#else
-               float left              = row*itemWidth_/textureWide;
-               float right             = left+itemWidth_/textureWide;
-               float top               = col*itemHeight_/textureHigh;
-               float bottom    = top+itemHeight_/textureHigh;
-#endif // ! CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL
-               
-               quad.tl.texCoords.u = left;
-               quad.tl.texCoords.v = top;
-               quad.tr.texCoords.u = right;
-               quad.tr.texCoords.v = top;
-               quad.bl.texCoords.u = left;
-               quad.bl.texCoords.v = bottom;
-               quad.br.texCoords.u = right;
-               quad.br.texCoords.v = bottom;
-               
-               quad.bl.vertices.x = (int) (i * itemWidth_);
-               quad.bl.vertices.y = 0;
-               quad.bl.vertices.z = 0.0f;
-               quad.br.vertices.x = (int)(i * itemWidth_ + itemWidth_);
-               quad.br.vertices.y = 0;
-               quad.br.vertices.z = 0.0f;
-               quad.tl.vertices.x = (int)(i * itemWidth_);
-               quad.tl.vertices.y = (int)(itemHeight_);
-               quad.tl.vertices.z = 0.0f;
-               quad.tr.vertices.x = (int)(i * itemWidth_ + itemWidth_);
-               quad.tr.vertices.y = (int)(itemHeight_);
-               quad.tr.vertices.z = 0.0f;
-               
-               [textureAtlas_ updateQuad:&quad atIndex:i];
-       }
-}
-
-#pragma mark CCLabelAtlas - CCLabelProtocol
-
-- (void) setString:(NSString*) newString
-{
-       if( newString.length > textureAtlas_.totalQuads )
-               [textureAtlas_ resizeCapacity: newString.length];
-
-       [string_ release];
-       string_ = [newString copy];
-       [self updateAtlasValues];
-
-       CGSize s;
-       s.width = [string_ length] * itemWidth_;
-       s.height = itemHeight_;
-       [self setContentSizeInPixels:s];
-}
-
--(NSString*) string
-{
-       return string_;
-}
-
-#pragma mark CCLabelAtlas - draw
-
-// XXX: overriding draw from AtlasNode
-- (void) draw
-{
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Unneeded states: GL_COLOR_ARRAY
-       glDisableClientState(GL_COLOR_ARRAY);
-
-       glColor4ub( color_.r, color_.g, color_.b, opacity_);
-       
-       BOOL newBlend = blendFunc_.src != CC_BLEND_SRC || blendFunc_.dst != CC_BLEND_DST;
-       if( newBlend )
-               glBlendFunc( blendFunc_.src, blendFunc_.dst );
-       
-       [textureAtlas_ drawNumberOfQuads: string_.length];
-       
-       if( newBlend )
-               glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);
-       
-       // is this chepear than saving/restoring color state ?
-       // XXX: There is no need to restore the color to (255,255,255,255). Objects should use the color
-       // XXX: that they need
-//     glColor4ub( 255, 255, 255, 255);
-
-       // Restore Default GL state. Enable GL_COLOR_ARRAY
-       glEnableClientState(GL_COLOR_ARRAY);
-       
-       
-#if CC_LABELATLAS_DEBUG_DRAW
-       CGSize s = [self contentSize];
-       CGPoint vertices[4]={
-               ccp(0,0),ccp(s.width,0),
-               ccp(s.width,s.height),ccp(0,s.height),
-       };
-       ccDrawPoly(vertices, 4, YES);
-#endif // CC_LABELATLAS_DEBUG_DRAW
-
-}
-@end
diff --git a/Classes/cocos2d/CCLabelBMFont.h b/Classes/cocos2d/CCLabelBMFont.h
deleted file mode 100644 (file)
index 38b32dc..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * Portions of this code are based and inspired on:
- *   http://www.71squared.co.uk/2009/04/iphone-game-programming-tutorial-4-bitmap-font-class
- *   by Michael Daley
- * Use any of these editors to generate bitmap font atlas:
- *   http://www.n4te.com/hiero/hiero.jnlp
- *   http://slick.cokeandcode.com/demos/hiero.jnlp
- *   http://www.angelcode.com/products/bmfont/
- *
- */
-
-#import "CCSpriteBatchNode.h"
-#import "Support/uthash.h"
-
-struct _KerningHashElement;
-
-/** @struct ccBMFontDef
- BMFont definition
- */
-typedef struct _BMFontDef {
-       //! ID of the character
-       unsigned int charID;
-       //! origin and size of the font
-       CGRect rect;
-       //! The X amount the image should be offset when drawing the image (in pixels)
-       int xOffset;
-       //! The Y amount the image should be offset when drawing the image (in pixels)
-       int yOffset;
-       //! The amount to move the current position after drawing the character (in pixels)
-       int xAdvance;
-} ccBMFontDef;
-
-/** @struct ccBMFontPadding
- BMFont padding
- @since v0.8.2
- */
-typedef struct _BMFontPadding {
-       /// padding left
-       int     left;
-       /// padding top
-       int top;
-       /// padding right
-       int right;
-       /// padding bottom
-       int bottom;
-} ccBMFontPadding;
-
-enum {
-       // how many characters are supported
-       kCCBMFontMaxChars = 2048, //256,
-};
-
-/** CCBMFontConfiguration has parsed configuration of the the .fnt file
- @since v0.8
- */
-@interface CCBMFontConfiguration : NSObject
-{
-// XXX: Creating a public interface so that the bitmapFontArray[] is accesible
-@public
-       // The characters building up the font
-       ccBMFontDef     BMFontArray_[kCCBMFontMaxChars];
-       
-       // FNTConfig: Common Height
-       NSUInteger              commonHeight_;
-       
-       // Padding
-       ccBMFontPadding padding_;
-       
-       // atlas name
-       NSString                *atlasName_;
-
-       // values for kerning
-       struct _KerningHashElement      *kerningDictionary_;
-}
-
-/** allocates a CCBMFontConfiguration with a FNT file */
-+(id) configurationWithFNTFile:(NSString*)FNTfile;
-/** initializes a CCBMFontConfiguration with a FNT file */
--(id) initWithFNTfile:(NSString*)FNTfile;
-@end
-
-
-/** CCLabelBMFont is a subclass of CCSpriteBatchNode
-  
- Features:
- - Treats each character like a CCSprite. This means that each individual character can be:
-   - rotated
-   - scaled
-   - translated
-   - tinted
-   - chage the opacity
- - It can be used as part of a menu item.
- - anchorPoint can be used to align the "label"
- - Supports AngelCode text format
- Limitations:
-  - All inner characters are using an anchorPoint of (0.5f, 0.5f) and it is not recommend to change it
-    because it might affect the rendering
- CCLabelBMFont implements the protocol CCLabelProtocol, like CCLabel and CCLabelAtlas.
- CCLabelBMFont has the flexibility of CCLabel, the speed of CCLabelAtlas and all the features of CCSprite.
- If in doubt, use CCLabelBMFont instead of CCLabelAtlas / CCLabel.
- Supported editors:
-  - http://www.n4te.com/hiero/hiero.jnlp
-  - http://slick.cokeandcode.com/demos/hiero.jnlp
-  - http://www.angelcode.com/products/bmfont/
- @since v0.8
- */
-
-@interface CCLabelBMFont : CCSpriteBatchNode <CCLabelProtocol, CCRGBAProtocol>
-{
-       // string to render
-       NSString                *string_;
-       
-       CCBMFontConfiguration   *configuration_;
-
-       // texture RGBA
-       GLubyte         opacity_;
-       ccColor3B       color_;
-       BOOL opacityModifyRGB_;
-}
-
-/** Purges the cached data.
- Removes from memory the cached configurations and the atlas name dictionary.
- @since v0.99.3
- */
-+(void) purgeCachedData;
-
-/** conforms to CCRGBAProtocol protocol */
-@property (nonatomic,readwrite) GLubyte opacity;
-/** conforms to CCRGBAProtocol protocol */
-@property (nonatomic,readwrite) ccColor3B color;
-
-
-/** creates a BMFont label with an initial string and the FNT file */
-+(id) labelWithString:(NSString*)string fntFile:(NSString*)fntFile;
-
-/** creates a BMFont label with an initial string and the FNT file
- @deprecated Will be removed in 1.0.1. Use "labelWithString" instead.
- */
-+(id) bitmapFontAtlasWithString:(NSString*)string fntFile:(NSString*)fntFile DEPRECATED_ATTRIBUTE;
-
-/** init a BMFont label with an initial string and the FNT file */
--(id) initWithString:(NSString*)string fntFile:(NSString*)fntFile;
-
-/** updates the font chars based on the string to render */
--(void) createFontChars;
-@end
-
-/** Free function that parses a FNT file a place it on the cache
-*/
-CCBMFontConfiguration * FNTConfigLoadFile( NSString *file );
-/** Purges the FNT config cache
- */
-void FNTConfigRemoveCache( void );
-
-
-
-/** CCBitmapFontAtlas
- @deprecated Use CCLabelBMFont instead. Will be removed 1.0.1
- */
-DEPRECATED_ATTRIBUTE @interface CCBitmapFontAtlas : CCLabelBMFont
-@end
-
diff --git a/Classes/cocos2d/CCLabelBMFont.m b/Classes/cocos2d/CCLabelBMFont.m
deleted file mode 100644 (file)
index 67e168e..0000000
+++ /dev/null
@@ -1,669 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * Portions of this code are based and inspired on:
- *   http://www.71squared.co.uk/2009/04/iphone-game-programming-tutorial-4-bitmap-font-class
- *   by Michael Daley
- *
- *
- * Use any of these editors to generate bitmap font atlas:
- *   http://www.n4te.com/hiero/hiero.jnlp
- *   http://slick.cokeandcode.com/demos/hiero.jnlp
- *   http://www.angelcode.com/products/bmfont/
- */
-
-#import "ccConfig.h"
-#import "CCLabelBMFont.h"
-#import "CCSprite.h"
-#import "CCDrawingPrimitives.h"
-#import "CCConfiguration.h"
-#import "Support/CCFileUtils.h"
-#import "Support/CGPointExtension.h"
-#import "Support/uthash.h"
-
-#pragma mark -
-#pragma mark FNTConfig Cache - free functions
-
-NSMutableDictionary *configurations = nil;
-CCBMFontConfiguration* FNTConfigLoadFile( NSString *fntFile)
-{
-       CCBMFontConfiguration *ret = nil;
-       
-       if( configurations == nil )
-               configurations = [[NSMutableDictionary dictionaryWithCapacity:3] retain];
-       
-       ret = [configurations objectForKey:fntFile];
-       if( ret == nil ) {
-               ret = [CCBMFontConfiguration configurationWithFNTFile:fntFile];
-               [configurations setObject:ret forKey:fntFile];
-       }
-       
-       return ret;
-}
-
-void FNTConfigRemoveCache( void )
-{
-       [configurations removeAllObjects];
-}
-
-#pragma mark - Hash Element
-
-// Equal function for targetSet.
-typedef struct _KerningHashElement
-{      
-       int                             key;            // key for the hash. 16-bit for 1st element, 16-bit for 2nd element
-       int                             amount;
-       UT_hash_handle  hh;
-} tKerningHashElement;
-
-#pragma mark -
-#pragma mark BitmapFontConfiguration
-
-
-@interface CCBMFontConfiguration (Private)
--(void) parseConfigFile:(NSString*)controlFile;
--(void) parseCharacterDefinition:(NSString*)line charDef:(ccBMFontDef*)characterDefinition;
--(void) parseInfoArguments:(NSString*)line;
--(void) parseCommonArguments:(NSString*)line;
--(void) parseImageFileName:(NSString*)line fntFile:(NSString*)fntFile;
--(void) parseKerningCapacity:(NSString*)line;
--(void) parseKerningEntry:(NSString*)line;
--(void) purgeKerningDictionary;
-@end
-
-@implementation CCBMFontConfiguration
-
-+(id) configurationWithFNTFile:(NSString*)FNTfile
-{
-       return [[[self alloc] initWithFNTfile:FNTfile] autorelease];
-}
-
--(id) initWithFNTfile:(NSString*)fntFile
-{
-       if((self=[super init])) {
-               
-               kerningDictionary_ = NULL;
-
-               [self parseConfigFile:fntFile];
-       }
-       return self;
-}
-
-- (void) dealloc
-{
-       CCLOGINFO( @"cocos2d: deallocing %@", self);
-       [self purgeKerningDictionary];
-       [atlasName_ release];
-       [super dealloc];
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | Kernings:%d | Image = %@>", [self class], self,
-                       HASH_COUNT(kerningDictionary_),
-                       atlasName_];
-}
-
-
--(void) purgeKerningDictionary
-{
-       tKerningHashElement *current;
-       
-       while(kerningDictionary_) {
-               current = kerningDictionary_; 
-               HASH_DEL(kerningDictionary_,current);
-               free(current);
-       }
-}
-
-- (void)parseConfigFile:(NSString*)fntFile
-{      
-       NSString *fullpath = [CCFileUtils fullPathFromRelativePath:fntFile];
-       NSString *contents = [NSString stringWithContentsOfFile:fullpath encoding:NSUTF8StringEncoding error:nil];
-       
-       
-       // Move all lines in the string, which are denoted by \n, into an array
-       NSArray *lines = [[NSArray alloc] initWithArray:[contents componentsSeparatedByString:@"\n"]];
-       
-       // Create an enumerator which we can use to move through the lines read from the control file
-       NSEnumerator *nse = [lines objectEnumerator];
-       
-       // Create a holder for each line we are going to work with
-       NSString *line;
-       
-       // Loop through all the lines in the lines array processing each one
-       while( (line = [nse nextObject]) ) {
-               // parse spacing / padding
-               if([line hasPrefix:@"info face"]) {
-                       // XXX: info parsing is incomplete
-                       // Not needed for the Hiero editors, but needed for the AngelCode editor
-//                     [self parseInfoArguments:line];
-               }
-               // Check to see if the start of the line is something we are interested in
-               else if([line hasPrefix:@"common lineHeight"]) {
-                       [self parseCommonArguments:line];
-               }
-               else if([line hasPrefix:@"page id"]) {
-                       [self parseImageFileName:line fntFile:fntFile];
-               }
-               else if([line hasPrefix:@"chars c"]) {
-                       // Ignore this line
-               }
-               else if([line hasPrefix:@"char"]) {
-                       // Parse the current line and create a new CharDef
-                       ccBMFontDef characterDefinition;
-                       [self parseCharacterDefinition:line charDef:&characterDefinition];
-
-                       // Add the CharDef returned to the charArray
-                       BMFontArray_[ characterDefinition.charID ] = characterDefinition;
-               }
-               else if([line hasPrefix:@"kernings count"]) {
-                       [self parseKerningCapacity:line];
-               }
-               else if([line hasPrefix:@"kerning first"]) {
-                       [self parseKerningEntry:line];
-               }
-       }
-       // Finished with lines so release it
-       [lines release];
-}
-
--(void) parseImageFileName:(NSString*)line fntFile:(NSString*)fntFile
-{
-       NSString *propertyValue = nil;
-
-       // Break the values for this line up using =
-       NSArray *values = [line componentsSeparatedByString:@"="];
-       
-       // Get the enumerator for the array of components which has been created
-       NSEnumerator *nse = [values objectEnumerator];
-       
-       // We need to move past the first entry in the array before we start assigning values
-       [nse nextObject];
-       
-       // page ID. Sanity check
-       propertyValue = [nse nextObject];
-       NSAssert( [propertyValue intValue] == 0, @"XXX: BitmapFontAtlas only supports 1 page");
-       
-       // file 
-       propertyValue = [nse nextObject];
-       NSArray *array = [propertyValue componentsSeparatedByString:@"\""];
-       propertyValue = [array objectAtIndex:1];
-       NSAssert(propertyValue,@"BitmapFontAtlas file could not be found");
-       
-       // Supports subdirectories
-       NSString *dir = [fntFile stringByDeletingLastPathComponent];
-       atlasName_ = [dir stringByAppendingPathComponent:propertyValue];
-
-       [atlasName_ retain];
-}
-
--(void) parseInfoArguments:(NSString*)line
-{
-       //
-       // possible lines to parse:
-       // info face="Script" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,4,3,2 spacing=0,0 outline=0
-       // info face="Cracked" size=36 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
-       //
-       NSArray *values = [line componentsSeparatedByString:@"="];
-       NSEnumerator *nse = [values objectEnumerator];  
-       NSString *propertyValue = nil;
-       
-       // We need to move past the first entry in the array before we start assigning values
-       [nse nextObject];
-       
-       // face (ignore)
-       [nse nextObject];
-       
-       // size (ignore)
-       [nse nextObject];
-
-       // bold (ignore)
-       [nse nextObject];
-
-       // italic (ignore)
-       [nse nextObject];
-       
-       // charset (ignore)
-       [nse nextObject];
-
-       // unicode (ignore)
-       [nse nextObject];
-
-       // strechH (ignore)
-       [nse nextObject];
-
-       // smooth (ignore)
-       [nse nextObject];
-       
-       // aa (ignore)
-       [nse nextObject];
-       
-       // padding (ignore)
-       propertyValue = [nse nextObject];
-       {
-               
-               NSArray *paddingValues = [propertyValue componentsSeparatedByString:@","];
-               NSEnumerator *paddingEnum = [paddingValues objectEnumerator];
-               // padding top
-               propertyValue = [paddingEnum nextObject];
-               padding_.top = [propertyValue intValue];
-               
-               // padding right
-               propertyValue = [paddingEnum nextObject];
-               padding_.right = [propertyValue intValue];
-
-               // padding bottom
-               propertyValue = [paddingEnum nextObject];
-               padding_.bottom = [propertyValue intValue];
-               
-               // padding left
-               propertyValue = [paddingEnum nextObject];
-               padding_.left = [propertyValue intValue];
-               
-               CCLOG(@"cocos2d: padding: %d,%d,%d,%d", padding_.left, padding_.top, padding_.right, padding_.bottom);
-       }
-
-       // spacing (ignore)
-       [nse nextObject];       
-}
-
--(void) parseCommonArguments:(NSString*)line
-{
-       //
-       // line to parse:
-       // common lineHeight=104 base=26 scaleW=1024 scaleH=512 pages=1 packed=0
-       //
-       NSArray *values = [line componentsSeparatedByString:@"="];
-       NSEnumerator *nse = [values objectEnumerator];  
-       NSString *propertyValue = nil;
-       
-       // We need to move past the first entry in the array before we start assigning values
-       [nse nextObject];
-       
-       // Character ID
-       propertyValue = [nse nextObject];
-       commonHeight_ = [propertyValue intValue];
-       
-       // base (ignore)
-       [nse nextObject];
-       
-       
-       // scaleW. sanity check
-       propertyValue = [nse nextObject];       
-       NSAssert( [propertyValue intValue] <= [[CCConfiguration sharedConfiguration] maxTextureSize], @"CCLabelBMFont: page can't be larger than supported");
-       
-       // scaleH. sanity check
-       propertyValue = [nse nextObject];
-       NSAssert( [propertyValue intValue] <= [[CCConfiguration sharedConfiguration] maxTextureSize], @"CCLabelBMFont: page can't be larger than supported");
-       
-       // pages. sanity check
-       propertyValue = [nse nextObject];
-       NSAssert( [propertyValue intValue] == 1, @"CCBitfontAtlas: only supports 1 page");
-       
-       // packed (ignore) What does this mean ??
-}
-- (void)parseCharacterDefinition:(NSString*)line charDef:(ccBMFontDef*)characterDefinition
-{      
-       // Break the values for this line up using =
-       NSArray *values = [line componentsSeparatedByString:@"="];
-       NSEnumerator *nse = [values objectEnumerator];  
-       NSString *propertyValue;
-       
-       // We need to move past the first entry in the array before we start assigning values
-       [nse nextObject];
-       
-       // Character ID
-       propertyValue = [nse nextObject];
-       propertyValue = [propertyValue substringToIndex: [propertyValue rangeOfString: @" "].location];
-       characterDefinition->charID = [propertyValue intValue];
-       NSAssert(characterDefinition->charID < kCCBMFontMaxChars, @"BitmpaFontAtlas: CharID bigger than supported");
-
-       // Character x
-       propertyValue = [nse nextObject];
-       characterDefinition->rect.origin.x = [propertyValue intValue];
-       // Character y
-       propertyValue = [nse nextObject];
-       characterDefinition->rect.origin.y = [propertyValue intValue];
-       // Character width
-       propertyValue = [nse nextObject];
-       characterDefinition->rect.size.width = [propertyValue intValue];
-       // Character height
-       propertyValue = [nse nextObject];
-       characterDefinition->rect.size.height = [propertyValue intValue];
-       // Character xoffset
-       propertyValue = [nse nextObject];
-       characterDefinition->xOffset = [propertyValue intValue];
-       // Character yoffset
-       propertyValue = [nse nextObject];
-       characterDefinition->yOffset = [propertyValue intValue];
-       // Character xadvance
-       propertyValue = [nse nextObject];
-       characterDefinition->xAdvance = [propertyValue intValue];
-}
-
--(void) parseKerningCapacity:(NSString*) line
-{
-       // When using uthash there is not need to parse the capacity.
-
-//     NSAssert(!kerningDictionary, @"dictionary already initialized");
-//     
-//     // Break the values for this line up using =
-//     NSArray *values = [line componentsSeparatedByString:@"="];
-//     NSEnumerator *nse = [values objectEnumerator];  
-//     NSString *propertyValue;
-//     
-//     // We need to move past the first entry in the array before we start assigning values
-//     [nse nextObject];
-//     
-//     // count
-//     propertyValue = [nse nextObject];
-//     int capacity = [propertyValue intValue];
-//     
-//     if( capacity != -1 )
-//             kerningDictionary = ccHashSetNew(capacity, targetSetEql);
-}
-
--(void) parseKerningEntry:(NSString*) line
-{
-       NSArray *values = [line componentsSeparatedByString:@"="];
-       NSEnumerator *nse = [values objectEnumerator];  
-       NSString *propertyValue;
-       
-       // We need to move past the first entry in the array before we start assigning values
-       [nse nextObject];
-       
-       // first
-       propertyValue = [nse nextObject];
-       int first = [propertyValue intValue];
-       
-       // second
-       propertyValue = [nse nextObject];
-       int second = [propertyValue intValue];
-       
-       // second
-       propertyValue = [nse nextObject];
-       int amount = [propertyValue intValue];
-
-       tKerningHashElement *element = calloc( sizeof( *element ), 1 );
-       element->amount = amount;
-       element->key = (first<<16) | (second&0xffff);
-       HASH_ADD_INT(kerningDictionary_,key, element);
-}
-
-@end
-
-#pragma mark -
-#pragma mark CCLabelBMFont
-
-@interface CCLabelBMFont (Private)
--(NSString*) atlasNameFromFntFile:(NSString*)fntFile;
-
--(int) kerningAmountForFirst:(unichar)first second:(unichar)second;
-
-@end
-
-@implementation CCLabelBMFont
-
-@synthesize opacity = opacity_, color = color_;
-
-#pragma mark BitmapFontAtlas - Purge Cache
-+(void) purgeCachedData
-{
-       FNTConfigRemoveCache();
-}
-
-#pragma mark BitmapFontAtlas - Creation & Init
-
-+(id) labelWithString:(NSString *)string fntFile:(NSString *)fntFile
-{
-       return [[[self alloc] initWithString:string fntFile:fntFile] autorelease];
-}
-
-// XXX - deprecated - Will be removed in 1.0.1
-+(id) bitmapFontAtlasWithString:(NSString*)string fntFile:(NSString*)fntFile
-{
-       return [self labelWithString:string fntFile:fntFile];
-}
-
--(id) initWithString:(NSString*)theString fntFile:(NSString*)fntFile
-{      
-       
-       [configuration_ release]; // allow re-init
-
-       configuration_ = FNTConfigLoadFile(fntFile);
-       [configuration_ retain];
-
-       NSAssert( configuration_, @"Error creating config for BitmapFontAtlas");
-
-       
-       if ((self=[super initWithFile:configuration_->atlasName_ capacity:[theString length]])) {
-
-               opacity_ = 255;
-               color_ = ccWHITE;
-
-               contentSize_ = CGSizeZero;
-               
-               opacityModifyRGB_ = [[textureAtlas_ texture] hasPremultipliedAlpha];
-
-               anchorPoint_ = ccp(0.5f, 0.5f);
-
-               [self setString:theString];
-       }
-
-       return self;
-}
-
--(void) dealloc
-{
-       [string_ release];
-       [configuration_ release];
-       [super dealloc];
-}
-
-#pragma mark BitmapFontAtlas - Atlas generation
-
--(int) kerningAmountForFirst:(unichar)first second:(unichar)second
-{
-       int ret = 0;
-       unsigned int key = (first<<16) | (second & 0xffff);
-       
-       if( configuration_->kerningDictionary_ ) {
-               tKerningHashElement *element = NULL;
-               HASH_FIND_INT(configuration_->kerningDictionary_, &key, element);               
-               if(element)
-                       ret = element->amount;
-       }
-               
-       return ret;
-}
-
--(void) createFontChars
-{
-       int nextFontPositionX = 0;
-       int nextFontPositionY = 0;
-       unichar prev = -1;
-       int kerningAmount = 0;
-       
-       CGSize tmpSize = CGSizeZero;
-
-       int longestLine = 0;
-       int totalHeight = 0;
-       
-       int quantityOfLines = 1;
-
-       NSUInteger stringLen = [string_ length];
-       if( ! stringLen )
-               return;
-
-       // quantity of lines NEEDS to be calculated before parsing the lines,
-       // since the Y position needs to be calcualted before hand
-       for(NSUInteger i=0; i < stringLen-1;i++) {
-               unichar c = [string_ characterAtIndex:i];
-               if( c=='\n')
-                       quantityOfLines++;
-       }
-       
-       totalHeight = configuration_->commonHeight_ * quantityOfLines;
-       nextFontPositionY = -(configuration_->commonHeight_ - configuration_->commonHeight_*quantityOfLines);
-       
-       for(NSUInteger i=0; i<stringLen; i++) {
-               unichar c = [string_ characterAtIndex:i];
-               NSAssert( c < kCCBMFontMaxChars, @"BitmapFontAtlas: character outside bounds");
-               
-               if (c == '\n') {
-                       nextFontPositionX = 0;
-                       nextFontPositionY -= configuration_->commonHeight_;
-                       continue;
-               }
-
-               kerningAmount = [self kerningAmountForFirst:prev second:c];
-               
-               ccBMFontDef fontDef = configuration_->BMFontArray_[c];
-               
-               CGRect rect = fontDef.rect;
-               
-               CCSprite *fontChar;
-               
-               fontChar = (CCSprite*) [self getChildByTag:i];
-               if( ! fontChar ) {
-                       fontChar = [[CCSprite alloc] initWithBatchNode:self rectInPixels:rect];
-                       [self addChild:fontChar z:0 tag:i];
-                       [fontChar release];
-               }
-               else {
-                       // reusing fonts
-                       [fontChar setTextureRectInPixels:rect rotated:NO untrimmedSize:rect.size];
-                       
-                       // restore to default in case they were modified
-                       fontChar.visible = YES;
-                       fontChar.opacity = 255;
-               }
-               
-               float yOffset = configuration_->commonHeight_ - fontDef.yOffset;
-               fontChar.positionInPixels = ccp( (float)nextFontPositionX + fontDef.xOffset + fontDef.rect.size.width*0.5f + kerningAmount,
-                                                               (float)nextFontPositionY + yOffset - rect.size.height*0.5f );
-
-               // update kerning
-               nextFontPositionX += configuration_->BMFontArray_[c].xAdvance + kerningAmount;
-               prev = c;
-
-               // Apply label properties
-               [fontChar setOpacityModifyRGB:opacityModifyRGB_];
-               // Color MUST be set before opacity, since opacity might change color if OpacityModifyRGB is on
-               [fontChar setColor:color_];
-
-               // only apply opacity if it is different than 255 )
-               // to prevent modifying the color too (issue #610)
-               if( opacity_ != 255 )
-                       [fontChar setOpacity: opacity_];
-
-               if (longestLine < nextFontPositionX)
-                       longestLine = nextFontPositionX;
-       }
-
-       tmpSize.width = longestLine;
-       tmpSize.height = totalHeight;
-
-       [self setContentSizeInPixels:tmpSize];
-}
-
-#pragma mark BitmapFontAtlas - CCLabelProtocol protocol
-- (void) setString:(NSString*) newString
-{      
-       [string_ release];
-       string_ = [newString copy];
-
-       CCNode *child;
-       CCARRAY_FOREACH(children_, child)
-               child.visible = NO;
-
-       [self createFontChars];
-}
-
--(NSString*) string
-{
-       return string_;
-}
-
--(void) setCString:(char*)label
-{
-       [self setString:[NSString stringWithUTF8String:label]];
-}
-
-#pragma mark BitmapFontAtlas - CCRGBAProtocol protocol
-
--(void) setColor:(ccColor3B)color
-{
-       color_ = color;
-       
-       CCSprite *child;
-       CCARRAY_FOREACH(children_, child)
-               [child setColor:color_];
-}
-
--(void) setOpacity:(GLubyte)opacity
-{
-       opacity_ = opacity;
-
-       id<CCRGBAProtocol> child;
-       CCARRAY_FOREACH(children_, child)
-               [child setOpacity:opacity_];
-}
--(void) setOpacityModifyRGB:(BOOL)modify
-{
-       opacityModifyRGB_ = modify;
-       
-       id<CCRGBAProtocol> child;
-       CCARRAY_FOREACH(children_, child)
-               [child setOpacityModifyRGB:modify];
-}
-
--(BOOL) doesOpacityModifyRGB
-{
-       return opacityModifyRGB_;
-}
-
-#pragma mark BitmapFontAtlas - AnchorPoint
--(void) setAnchorPoint:(CGPoint)point
-{
-       if( ! CGPointEqualToPoint(point, anchorPoint_) ) {
-               [super setAnchorPoint:point];
-               [self createFontChars];
-       }
-}
-
-#pragma mark BitmapFontAtlas - Debug draw
-#if CC_BITMAPFONTATLAS_DEBUG_DRAW
--(void) draw
-{
-       [super draw];
-       CGSize s = [self contentSize];
-       CGPoint vertices[4]={
-               ccp(0,0),ccp(s.width,0),
-               ccp(s.width,s.height),ccp(0,s.height),
-       };
-       ccDrawPoly(vertices, 4, YES);
-}
-#endif // CC_BITMAPFONTATLAS_DEBUG_DRAW
-@end
diff --git a/Classes/cocos2d/CCLabelTTF.h b/Classes/cocos2d/CCLabelTTF.h
deleted file mode 100644 (file)
index 66cdda7..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCTexture2D.h"
-#import "CCSprite.h"
-#import "Platforms/CCNS.h"
-
-
-/** CCLabel is a subclass of CCTextureNode that knows how to render text labels
- *
- * All features from CCTextureNode are valid in CCLabel
- *
- * CCLabel objects are slow. Consider using CCLabelAtlas or CCBitmapFontAtlas instead.
- */
-
-@interface CCLabelTTF : CCSprite <CCLabelProtocol>
-{
-       CGSize dimensions_;
-       CCTextAlignment alignment_;
-       NSString * fontName_;
-       CGFloat fontSize_;
-       NSString        *string_;
-}
-
-/** creates a CCLabel from a fontname, alignment, dimension in points and font size in points*/
-+ (id) labelWithString:(NSString*)string dimensions:(CGSize)dimensions alignment:(CCTextAlignment)alignment fontName:(NSString*)name fontSize:(CGFloat)size;
-/** creates a CCLabel from a fontname and font size in points*/
-+ (id) labelWithString:(NSString*)string fontName:(NSString*)name fontSize:(CGFloat)size;
-/** initializes the CCLabel with a font name, alignment, dimension in points and font size in points */
-- (id) initWithString:(NSString*)string dimensions:(CGSize)dimensions alignment:(CCTextAlignment)alignment fontName:(NSString*)name fontSize:(CGFloat)size;
-/** initializes the CCLabel with a font name and font size in points */
-- (id) initWithString:(NSString*)string  fontName:(NSString*)name fontSize:(CGFloat)size;
-
-/** changes the string to render
- * @warning Changing the string is as expensive as creating a new CCLabel. To obtain better performance use CCLabelAtlas
- */
-- (void) setString:(NSString*)str;
-
-@end
diff --git a/Classes/cocos2d/CCLabelTTF.m b/Classes/cocos2d/CCLabelTTF.m
deleted file mode 100644 (file)
index 5760a20..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import <Availability.h>
-
-#import "CCLabelTTF.h"
-#import "Support/CGPointExtension.h"
-#import "ccMacros.h"
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import "Platforms/iOS/CCDirectorIOS.h"
-#endif
-
-@implementation CCLabelTTF
-
-- (id) init
-{
-       NSAssert(NO, @"CCLabelTTF: Init not supported. Use initWithString");
-       [self release];
-       return nil;
-}
-
-+ (id) labelWithString:(NSString*)string dimensions:(CGSize)dimensions alignment:(CCTextAlignment)alignment fontName:(NSString*)name fontSize:(CGFloat)size
-{
-       return [[[self alloc] initWithString: string dimensions:dimensions alignment:alignment fontName:name fontSize:size]autorelease];
-}
-
-+ (id) labelWithString:(NSString*)string fontName:(NSString*)name fontSize:(CGFloat)size
-{
-       return [[[self alloc] initWithString: string fontName:name fontSize:size]autorelease];
-}
-
-
-- (id) initWithString:(NSString*)str dimensions:(CGSize)dimensions alignment:(CCTextAlignment)alignment fontName:(NSString*)name fontSize:(CGFloat)size
-{
-       if( (self=[super init]) ) {
-
-               dimensions_ = CGSizeMake( dimensions.width * CC_CONTENT_SCALE_FACTOR(), dimensions.height * CC_CONTENT_SCALE_FACTOR() );
-               alignment_ = alignment;
-               fontName_ = [name retain];
-               fontSize_ = size * CC_CONTENT_SCALE_FACTOR();
-               
-               [self setString:str];
-       }
-       return self;
-}
-
-- (id) initWithString:(NSString*)str fontName:(NSString*)name fontSize:(CGFloat)size
-{
-       if( (self=[super init]) ) {
-               
-               dimensions_ = CGSizeZero;
-               fontName_ = [name retain];
-               fontSize_ = size * CC_CONTENT_SCALE_FACTOR();
-               
-               [self setString:str];
-       }
-       return self;
-}
-
-- (void) setString:(NSString*)str
-{
-       [string_ release];
-       string_ = [str copy];
-
-       CCTexture2D *tex;
-       if( CGSizeEqualToSize( dimensions_, CGSizeZero ) )
-               tex = [[CCTexture2D alloc] initWithString:str
-                                                                                fontName:fontName_
-                                                                                fontSize:fontSize_];
-       else
-               tex = [[CCTexture2D alloc] initWithString:str
-                                                                          dimensions:dimensions_
-                                                                               alignment:alignment_
-                                                                                fontName:fontName_
-                                                                                fontSize:fontSize_];
-
-       [self setTexture:tex];
-       [tex release];
-
-       CGRect rect = CGRectZero;
-       rect.size = [texture_ contentSize];
-       [self setTextureRect: rect];
-}
-
--(NSString*) string
-{
-       return string_;
-}
-
-- (void) dealloc
-{
-       [string_ release];
-       [fontName_ release];
-       [super dealloc];
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | FontName = %@, FontSize = %.1f>", [self class], self, fontName_, fontSize_];
-}
-@end
diff --git a/Classes/cocos2d/CCLayer.h b/Classes/cocos2d/CCLayer.h
deleted file mode 100644 (file)
index 9c02f37..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-
-#import <Availability.h>
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import <UIKit/UIKit.h>                                        // Needed for UIAccelerometerDelegate
-#import "Platforms/iOS/CCTouchDelegateProtocol.h"              // Touches only supported on iOS
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-#import "Platforms/Mac/CCEventDispatcher.h"
-#endif
-
-#import "CCProtocols.h"
-#import "CCNode.h"
-
-//
-// CCLayer
-//
-/** CCLayer is a subclass of CCNode that implements the TouchEventsDelegate protocol.
- All features from CCNode are valid, plus the following new features:
- - It can receive iPhone Touches
- - It can receive Accelerometer input
-*/
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-@interface CCLayer : CCNode <UIAccelerometerDelegate, CCStandardTouchDelegate, CCTargetedTouchDelegate>
-{
-       BOOL isTouchEnabled_;
-       BOOL isAccelerometerEnabled_;
-}
-/** If isTouchEnabled, this method is called onEnter. Override it to change the
- way CCLayer receives touch events.
- ( Default: [[TouchDispatcher sharedDispatcher] addStandardDelegate:self priority:0] )
- Example:
-     -(void) registerWithTouchDispatcher
-     {
-        [[TouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:INT_MIN+1 swallowsTouches:YES];
-     }
- Valid only on iOS. Not valid on Mac.
- @since v0.8.0
- */
--(void) registerWithTouchDispatcher;
-
-/** whether or not it will receive Touch events.
- You can enable / disable touch events with this property.
- Only the touches of this node will be affected. This "method" is not propagated to it's children.
- Valid only on iOS. Not valid on Mac.
-
- @since v0.8.1
- */
-@property(nonatomic,assign) BOOL isTouchEnabled;
-/** whether or not it will receive Accelerometer events
- You can enable / disable accelerometer events with this property.
- Valid only on iOS. Not valid on Mac.
-
- @since v0.8.1
- */
-@property(nonatomic,assign) BOOL isAccelerometerEnabled;
-
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-
-
-@interface CCLayer : CCNode <CCKeyboardEventDelegate, CCMouseEventDelegate>
-{
-       BOOL    isMouseEnabled_;
-       BOOL    isKeyboardEnabled_;
-}
-
-/** whether or not it will receive mouse events.
- Valind only Mac. Not valid on iOS
- */
-@property (nonatomic, readwrite) BOOL isMouseEnabled;
-
-/** whether or not it will receive keyboard events.
- Valind only Mac. Not valid on iOS
- */
-@property (nonatomic, readwrite) BOOL isKeyboardEnabled;
-
-/** priority of the mouse event delegate.
- Default 0.
- Override this method to set another priority.
- Valind only Mac. Not valid on iOS 
- */
--(NSInteger) mouseDelegatePriority;
-
-/** priority of the keyboard event delegate.
- Default 0.
- Override this method to set another priority.
- Valind only Mac. Not valid on iOS 
- */
--(NSInteger) keyboardDelegatePriority;
-
-#endif // mac
-
-
-@end
-
-//
-// CCLayerColor
-//
-/** CCLayerColor is a subclass of CCLayer that implements the CCRGBAProtocol protocol.
- All features from CCLayer are valid, plus the following new features:
- - opacity
- - RGB colors
- */
-@interface CCLayerColor : CCLayer <CCRGBAProtocol, CCBlendProtocol>
-{
-       GLubyte         opacity_;
-       ccColor3B       color_; 
-       GLfloat squareVertices[4 * 2];
-       GLubyte squareColors[4 * 4];
-       
-       ccBlendFunc     blendFunc_;
-}
-
-/** creates a CCLayer with color, width and height in Points*/
-+ (id) layerWithColor: (ccColor4B)color width:(GLfloat)w height:(GLfloat)h;
-/** creates a CCLayer with color. Width and height are the window size. */
-+ (id) layerWithColor: (ccColor4B)color;
-
-/** initializes a CCLayer with color, width and height in Points */
-- (id) initWithColor:(ccColor4B)color width:(GLfloat)w height:(GLfloat)h;
-/** initializes a CCLayer with color. Width and height are the window size. */
-- (id) initWithColor:(ccColor4B)color;
-
-/** change width in Points */
--(void) changeWidth: (GLfloat)w;
-/** change height in Points */
--(void) changeHeight: (GLfloat)h;
-/** change width and height in Points
- @since v0.8
- */
--(void) changeWidth:(GLfloat)w height:(GLfloat)h;
-
-/** Opacity: conforms to CCRGBAProtocol protocol */
-@property (nonatomic,readonly) GLubyte opacity;
-/** Opacity: conforms to CCRGBAProtocol protocol */
-@property (nonatomic,readonly) ccColor3B color;
-/** BlendFunction. Conforms to CCBlendProtocol protocol */
-@property (nonatomic,readwrite) ccBlendFunc blendFunc;
-@end
-
-/** CCColorLayer
- It is the same as CCLayerColor.
- @deprecated Use CCLayerColor instead. This class will be removed in v1.0.1
- */
-DEPRECATED_ATTRIBUTE @interface CCColorLayer : CCLayerColor
-@end
-
-
-//
-// CCLayerGradient
-//
-/** CCLayerGradient is a subclass of CCLayerColor that draws gradients across
-the background.
-
- All features from CCLayerColor are valid, plus the following new features:
- - direction
- - final color
- Color is interpolated between the startColor and endColor along the given
- vector (starting at the origin, ending at the terminus).  If no vector is
- supplied, it defaults to (0, -1) -- a fade from top to bottom.
- Given the nature of
- the interpolation, you will not see either the start or end color for
- non-cardinal vectors; a smooth gradient implying both end points will be still
- be drawn, however.
- @since v0.99.5
- */
-@interface CCLayerGradient : CCLayerColor
-{
-       ccColor3B endColor_;
-       GLubyte startOpacity_;
-       GLubyte endOpacity_;
-       CGPoint vector_;
-}
-
-/** Creates a full-screen CCLayer with a gradient between start and end. */
-+ (id) layerWithColor: (ccColor4B) start fadingTo: (ccColor4B) end;
-/** Creates a full-screen CCLayer with a gradient between start and end in the direction of v. */
-+ (id) layerWithColor: (ccColor4B) start fadingTo: (ccColor4B) end alongVector: (CGPoint) v;
-
-/** Initializes the CCLayer with a gradient between start and end. */
-- (id) initWithColor: (ccColor4B) start fadingTo: (ccColor4B) end;
-/** Initializes the CCLayer with a gradient between start and end in the direction of v. */
-- (id) initWithColor: (ccColor4B) start fadingTo: (ccColor4B) end alongVector: (CGPoint) v;
-
-/** The starting color. */
-- (ccColor3B) startColor;
-- (void) setStartColor:(ccColor3B)colors;
-
-/** The ending color. */
-@property (nonatomic, readwrite) ccColor3B endColor;
-/** The starting opacity. */
-@property (nonatomic, readwrite) GLubyte startOpacity;
-/** The ending color. */
-@property (nonatomic, readwrite) GLubyte endOpacity;
-/** The vector along which to fade color. */
-@property (nonatomic, readwrite) CGPoint vector;
-
-@end
-
-/** CCMultipleLayer is a CCLayer with the ability to multiplex it's children.
- Features:
-   - It supports one or more children
-   - Only one children will be active a time
- */
-@interface CCMultiplexLayer : CCLayer
-{
-       unsigned int enabledLayer;
-       NSMutableArray *layers;
-}
-
-/** creates a CCMultiplexLayer with one or more layers using a variable argument list. */
-+(id) layerWithLayers: (CCLayer*) layer, ... NS_REQUIRES_NIL_TERMINATION;
-/** initializes a MultiplexLayer with one or more layers using a variable argument list. */
--(id) initWithLayers: (CCLayer*) layer vaList:(va_list) params;
-/** switches to a certain layer indexed by n. 
- The current (old) layer will be removed from it's parent with 'cleanup:YES'.
- */
--(void) switchTo: (unsigned int) n;
-/** release the current layer and switches to another layer indexed by n.
- The current (old) layer will be removed from it's parent with 'cleanup:YES'.
- */
--(void) switchToAndReleaseMe: (unsigned int) n;
-@end
diff --git a/Classes/cocos2d/CCLayer.m b/Classes/cocos2d/CCLayer.m
deleted file mode 100644 (file)
index 6604bb8..0000000
+++ /dev/null
@@ -1,562 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import <stdarg.h>
-
-#import "Platforms/CCGL.h"
-
-#import "CCLayer.h"
-#import "CCDirector.h"
-#import "ccMacros.h"
-#import "Support/CGPointExtension.h"
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import "Platforms/iOS/CCTouchDispatcher.h"
-#import "Platforms/iOS/CCDirectorIOS.h"
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-#import "Platforms/Mac/CCEventDispatcher.h"
-#endif
-
-#pragma mark -
-#pragma mark Layer
-
-@implementation CCLayer
-
-#pragma mark Layer - Init
--(id) init
-{
-       if( (self=[super init]) ) {
-       
-               CGSize s = [[CCDirector sharedDirector] winSize];
-               anchorPoint_ = ccp(0.5f, 0.5f);
-               [self setContentSize:s];
-               self.isRelativeAnchorPoint = NO;
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-               isTouchEnabled_ = NO;
-               isAccelerometerEnabled_ = NO;
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-               isMouseEnabled_ = NO;
-               isKeyboardEnabled_ = NO;
-#endif
-       }
-       
-       return self;
-}
-
-#pragma mark Layer - Touch and Accelerometer related
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
--(void) registerWithTouchDispatcher
-{
-       [[CCTouchDispatcher sharedDispatcher] addStandardDelegate:self priority:0];
-}
-
--(BOOL) isAccelerometerEnabled
-{
-       return isAccelerometerEnabled_;
-}
-
--(void) setIsAccelerometerEnabled:(BOOL)enabled
-{
-       if( enabled != isAccelerometerEnabled_ ) {
-               isAccelerometerEnabled_ = enabled;
-               if( isRunning_ ) {
-                       if( enabled )
-                               [[UIAccelerometer sharedAccelerometer] setDelegate:self];
-                       else
-                               [[UIAccelerometer sharedAccelerometer] setDelegate:nil];
-               }
-       }
-}
-
--(BOOL) isTouchEnabled
-{
-       return isTouchEnabled_;
-}
-
--(void) setIsTouchEnabled:(BOOL)enabled
-{
-       if( isTouchEnabled_ != enabled ) {
-               isTouchEnabled_ = enabled;
-               if( isRunning_ ) {
-                       if( enabled )
-                               [self registerWithTouchDispatcher];
-                       else
-                               [[CCTouchDispatcher sharedDispatcher] removeDelegate:self];
-               }
-       }
-}
-
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-
-#pragma mark CCLayer - Mouse & Keyboard events
-
--(NSInteger) mouseDelegatePriority
-{
-       return 0;
-}
-
--(BOOL) isMouseEnabled
-{
-       return isMouseEnabled_;
-}
-
--(void) setIsMouseEnabled:(BOOL)enabled
-{
-       if( isMouseEnabled_ != enabled ) {
-               isMouseEnabled_ = enabled;
-               
-               if( isRunning_ ) {
-                       if( enabled )
-                               [[CCEventDispatcher sharedDispatcher] addMouseDelegate:self priority:[self mouseDelegatePriority]];
-                       else
-                               [[CCEventDispatcher sharedDispatcher] removeMouseDelegate:self];
-               }
-       }
-}
-
--(NSInteger) keyboardDelegatePriority
-{
-       return 0;
-}
-
--(BOOL) isKeyboardEnabled
-{
-       return isKeyboardEnabled_;
-}
-
--(void) setIsKeyboardEnabled:(BOOL)enabled
-{
-       if( isKeyboardEnabled_ != enabled ) {
-               isKeyboardEnabled_ = enabled;
-               
-               if( isRunning_ ) {
-                       if( enabled )
-                               [[CCEventDispatcher sharedDispatcher] addKeyboardDelegate:self priority:[self keyboardDelegatePriority] ];
-                       else
-                               [[CCEventDispatcher sharedDispatcher] removeKeyboardDelegate:self];
-               }
-       }
-}
-
-
-#endif // Mac
-
-
-#pragma mark Layer - Callbacks
--(void) onEnter
-{
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-       // register 'parent' nodes first
-       // since events are propagated in reverse order
-       if (isTouchEnabled_)
-               [self registerWithTouchDispatcher];
-
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-       if( isMouseEnabled_ )
-               [[CCEventDispatcher sharedDispatcher] addMouseDelegate:self priority:[self mouseDelegatePriority]];
-       
-       if( isKeyboardEnabled_)
-               [[CCEventDispatcher sharedDispatcher] addKeyboardDelegate:self priority:[self keyboardDelegatePriority]];
-#endif
-       
-       // then iterate over all the children
-       [super onEnter];
-}
-
-// issue #624.
-// Can't register mouse, touches here because of #issue #1018, and #1021
--(void) onEnterTransitionDidFinish
-{
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-       if( isAccelerometerEnabled_ )
-               [[UIAccelerometer sharedAccelerometer] setDelegate:self];
-#endif
-       
-       [super onEnterTransitionDidFinish];
-}
-
-
--(void) onExit
-{
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-       if( isTouchEnabled_ )
-               [[CCTouchDispatcher sharedDispatcher] removeDelegate:self];
-       
-       if( isAccelerometerEnabled_ )
-               [[UIAccelerometer sharedAccelerometer] setDelegate:nil];
-
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-       if( isMouseEnabled_ )
-               [[CCEventDispatcher sharedDispatcher] removeMouseDelegate:self];
-       
-       if( isKeyboardEnabled_ )
-               [[CCEventDispatcher sharedDispatcher] removeKeyboardDelegate:self];
-#endif
-       
-       [super onExit];
-}
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
--(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
-{
-       NSAssert(NO, @"Layer#ccTouchBegan override me");
-       return YES;
-}
-#endif
-@end
-
-#pragma mark -
-#pragma mark LayerColor
-
-@interface CCLayerColor (Private)
--(void) updateColor;
-@end
-
-@implementation CCLayerColor
-
-// Opacity and RGB color protocol
-@synthesize opacity = opacity_, color = color_;
-@synthesize blendFunc = blendFunc_;
-
-
-+ (id) layerWithColor:(ccColor4B)color width:(GLfloat)w  height:(GLfloat) h
-{
-       return [[[self alloc] initWithColor:color width:w height:h] autorelease];
-}
-
-+ (id) layerWithColor:(ccColor4B)color
-{
-       return [[(CCLayerColor*)[self alloc] initWithColor:color] autorelease];
-}
-
-- (id) initWithColor:(ccColor4B)color width:(GLfloat)w  height:(GLfloat) h
-{
-       if( (self=[super init]) ) {
-               
-               // default blend function
-               blendFunc_ = (ccBlendFunc) { CC_BLEND_SRC, CC_BLEND_DST };
-
-               color_.r = color.r;
-               color_.g = color.g;
-               color_.b = color.b;
-               opacity_ = color.a;
-               
-               for (NSUInteger i = 0; i<sizeof(squareVertices) / sizeof( squareVertices[0]); i++ )
-                       squareVertices[i] = 0.0f;
-                               
-               [self updateColor];
-               [self setContentSize:CGSizeMake(w, h) ];
-       }
-       return self;
-}
-
-- (id) initWithColor:(ccColor4B)color
-{
-       CGSize s = [[CCDirector sharedDirector] winSize];
-       return [self initWithColor:color width:s.width height:s.height];
-}
-
-// override contentSize
--(void) setContentSize: (CGSize) size
-{
-       squareVertices[2] = size.width * CC_CONTENT_SCALE_FACTOR();
-       squareVertices[5] = size.height * CC_CONTENT_SCALE_FACTOR();
-       squareVertices[6] = size.width * CC_CONTENT_SCALE_FACTOR();
-       squareVertices[7] = size.height * CC_CONTENT_SCALE_FACTOR();
-       
-       [super setContentSize:size];
-}
-
-- (void) changeWidth: (GLfloat) w height:(GLfloat) h
-{
-       [self setContentSize:CGSizeMake(w, h)];
-}
-
--(void) changeWidth: (GLfloat) w
-{
-       [self setContentSize:CGSizeMake(w, contentSize_.height)];
-}
-
--(void) changeHeight: (GLfloat) h
-{
-       [self setContentSize:CGSizeMake(contentSize_.width, h)];
-}
-
-- (void) updateColor
-{
-       for( NSUInteger i = 0; i < 4; i++ )
-       {
-               squareColors[i*4]       = color_.r;
-               squareColors[i*4+1] = color_.g;
-               squareColors[i*4+2] = color_.b;
-               squareColors[i*4+3] = opacity_;
-       }
-}
-
-- (void)draw
-{              
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_VERTEX_ARRAY, GL_COLOR_ARRAY
-       // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY
-       glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-       glDisable(GL_TEXTURE_2D);
-
-       glVertexPointer(2, GL_FLOAT, 0, squareVertices);
-       glColorPointer(4, GL_UNSIGNED_BYTE, 0, squareColors);
-       
-       
-       BOOL newBlend = blendFunc_.src != CC_BLEND_SRC || blendFunc_.dst != CC_BLEND_DST;
-       if( newBlend )
-               glBlendFunc( blendFunc_.src, blendFunc_.dst );
-       
-       else if( opacity_ != 255 ) {
-               newBlend = YES;
-               glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-       }
-       
-       glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
-       
-       if( newBlend )
-               glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);
-       
-       // restore default GL state
-       glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-       glEnable(GL_TEXTURE_2D);
-}
-
-#pragma mark Protocols
-// Color Protocol
-
--(void) setColor:(ccColor3B)color
-{
-       color_ = color;
-       [self updateColor];
-}
-
--(void) setOpacity: (GLubyte) o
-{
-       opacity_ = o;
-       [self updateColor];
-}
-@end
-
-// XXX Deprecated
-@implementation CCColorLayer
-@end
-
-
-#pragma mark -
-#pragma mark LayerGradient
-
-@implementation CCLayerGradient
-
-@synthesize startOpacity = startOpacity_;
-@synthesize endColor = endColor_, endOpacity = endOpacity_;
-@synthesize vector = vector_;
-
-+ (id) layerWithColor: (ccColor4B) start fadingTo: (ccColor4B) end
-{
-    return [[[self alloc] initWithColor:start fadingTo:end] autorelease];
-}
-
-+ (id) layerWithColor: (ccColor4B) start fadingTo: (ccColor4B) end alongVector: (CGPoint) v
-{
-    return [[[self alloc] initWithColor:start fadingTo:end alongVector:v] autorelease];
-}
-
-- (id) initWithColor: (ccColor4B) start fadingTo: (ccColor4B) end
-{
-    return [self initWithColor:start fadingTo:end alongVector:ccp(0, -1)];
-}
-
-- (id) initWithColor: (ccColor4B) start fadingTo: (ccColor4B) end alongVector: (CGPoint) v
-{
-       endColor_.r = end.r;
-       endColor_.g = end.g;
-       endColor_.b = end.b;
-       
-       endOpacity_             = end.a;
-       startOpacity_   = start.a;
-       vector_ = v;
-
-       start.a = 255;
-    return [self initWithColor:start];
-}
-
-- (void) updateColor
-{
-    [super updateColor];
-
-       float h = sqrtf(vector_.x*vector_.x + vector_.y*vector_.y);
-    if (h == 0)
-               return;
-
-    double c = sqrt(2);
-    CGPoint u = ccp(vector_.x / h, vector_.y / h);
-
-       float opacityf = (float)opacity_/255.0f;
-       
-    ccColor4B S = {
-               color_.r,
-               color_.g,
-               color_.b,
-               startOpacity_*opacityf
-       };
-
-    ccColor4B E = {
-               endColor_.r,
-               endColor_.g,
-               endColor_.b,
-               endOpacity_*opacityf
-       };
-
-    // (-1, -1)
-       squareColors[0]  = E.r + (S.r - E.r) * ((c + u.x + u.y) / (2.0f * c));
-       squareColors[1]  = E.g + (S.g - E.g) * ((c + u.x + u.y) / (2.0f * c));
-       squareColors[2]  = E.b + (S.b - E.b) * ((c + u.x + u.y) / (2.0f * c));
-       squareColors[3]  = E.a + (S.a - E.a) * ((c + u.x + u.y) / (2.0f * c));
-    // (1, -1)
-       squareColors[4]  = E.r + (S.r - E.r) * ((c - u.x + u.y) / (2.0f * c));
-       squareColors[5]  = E.g + (S.g - E.g) * ((c - u.x + u.y) / (2.0f * c));
-       squareColors[6]  = E.b + (S.b - E.b) * ((c - u.x + u.y) / (2.0f * c));
-       squareColors[7]  = E.a + (S.a - E.a) * ((c - u.x + u.y) / (2.0f * c));
-       // (-1, 1)
-       squareColors[8]  = E.r + (S.r - E.r) * ((c + u.x - u.y) / (2.0f * c));
-       squareColors[9]  = E.g + (S.g - E.g) * ((c + u.x - u.y) / (2.0f * c));
-       squareColors[10] = E.b + (S.b - E.b) * ((c + u.x - u.y) / (2.0f * c));
-       squareColors[11] = E.a + (S.a - E.a) * ((c + u.x - u.y) / (2.0f * c));
-       // (1, 1)
-       squareColors[12] = E.r + (S.r - E.r) * ((c - u.x - u.y) / (2.0f * c));
-       squareColors[13] = E.g + (S.g - E.g) * ((c - u.x - u.y) / (2.0f * c));
-       squareColors[14] = E.b + (S.b - E.b) * ((c - u.x - u.y) / (2.0f * c));
-       squareColors[15] = E.a + (S.a - E.a) * ((c - u.x - u.y) / (2.0f * c));
-}
-
--(ccColor3B) startColor
-{
-       return color_;
-}
-
--(void) setStartColor:(ccColor3B)colors
-{
-       [self setColor:colors];
-}
-
--(void) setEndColor:(ccColor3B)colors
-{
-    endColor_ = colors;
-    [self updateColor];
-}
-
--(void) setStartOpacity: (GLubyte) o
-{
-       startOpacity_ = o;
-    [self updateColor];
-}
-
--(void) setEndOpacity: (GLubyte) o
-{
-    endOpacity_ = o;
-    [self updateColor];
-}
-
--(void) setVector: (CGPoint) v
-{
-    vector_ = v;
-    [self updateColor];
-}
-
-@end
-
-#pragma mark -
-#pragma mark MultiplexLayer
-
-@implementation CCMultiplexLayer
-+(id) layerWithLayers: (CCLayer*) layer, ... 
-{
-       va_list args;
-       va_start(args,layer);
-       
-       id s = [[[self alloc] initWithLayers: layer vaList:args] autorelease];
-       
-       va_end(args);
-       return s;
-}
-
--(id) initWithLayers: (CCLayer*) layer vaList:(va_list) params
-{
-       if( (self=[super init]) ) {
-       
-               layers = [[NSMutableArray arrayWithCapacity:5] retain];
-               
-               [layers addObject: layer];
-               
-               CCLayer *l = va_arg(params,CCLayer*);
-               while( l ) {
-                       [layers addObject: l];
-                       l = va_arg(params,CCLayer*);
-               }
-               
-               enabledLayer = 0;
-               [self addChild: [layers objectAtIndex: enabledLayer]];  
-       }
-       
-       return self;
-}
-
--(void) dealloc
-{
-       [layers release];
-       [super dealloc];
-}
-
--(void) switchTo: (unsigned int) n
-{
-       NSAssert( n < [layers count], @"Invalid index in MultiplexLayer switchTo message" );
-               
-       [self removeChild: [layers objectAtIndex:enabledLayer] cleanup:YES];
-       
-       enabledLayer = n;
-       
-       [self addChild: [layers objectAtIndex:n]];              
-}
-
--(void) switchToAndReleaseMe: (unsigned int) n
-{
-       NSAssert( n < [layers count], @"Invalid index in MultiplexLayer switchTo message" );
-       
-       [self removeChild: [layers objectAtIndex:enabledLayer] cleanup:YES];
-       
-       [layers replaceObjectAtIndex:enabledLayer withObject:[NSNull null]];
-       
-       enabledLayer = n;
-       
-       [self addChild: [layers objectAtIndex:n]];              
-}
-
-@end
diff --git a/Classes/cocos2d/CCMenu.h b/Classes/cocos2d/CCMenu.h
deleted file mode 100644 (file)
index d38e4c7..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCMenuItem.h"
-#import "CCLayer.h"
-
-typedef enum  {
-       kCCMenuStateWaiting,
-       kCCMenuStateTrackingTouch
-} tCCMenuState;
-
-enum {
-       //* priority used by the menu
-       kCCMenuTouchPriority = -128,
-};
-
-/** A CCMenu
- * 
- * Features and Limitation:
- *  - You can add MenuItem objects in runtime using addChild:
- *  - But the only accecpted children are MenuItem objects
- */
-@interface CCMenu : CCLayer <CCRGBAProtocol>
-{
-       tCCMenuState state_;
-       CCMenuItem      *selectedItem_;
-       GLubyte         opacity_;
-       ccColor3B       color_;
-}
-
-/** creates a CCMenu with it's items */
-+ (id) menuWithItems: (CCMenuItem*) item, ... NS_REQUIRES_NIL_TERMINATION;
-
-/** initializes a CCMenu with it's items */
-- (id) initWithItems: (CCMenuItem*) item vaList: (va_list) args;
-
-/** align items vertically */
--(void) alignItemsVertically;
-/** align items vertically with padding
- @since v0.7.2
- */
--(void) alignItemsVerticallyWithPadding:(float) padding;
-
-/** align items horizontally */
--(void) alignItemsHorizontally;
-/** align items horizontally with padding
- @since v0.7.2
- */
--(void) alignItemsHorizontallyWithPadding: (float) padding;
-
-
-/** align items in rows of columns */
--(void) alignItemsInColumns: (NSNumber *) columns, ... NS_REQUIRES_NIL_TERMINATION;
--(void) alignItemsInColumns: (NSNumber *) columns vaList: (va_list) args;
-
-/** align items in columns of rows */
--(void) alignItemsInRows: (NSNumber *) rows, ... NS_REQUIRES_NIL_TERMINATION;
--(void) alignItemsInRows: (NSNumber *) rows vaList: (va_list) args;
-
-
-/** conforms to CCRGBAProtocol protocol */
-@property (nonatomic,readonly) GLubyte opacity;
-/** conforms to CCRGBAProtocol protocol */
-@property (nonatomic,readonly) ccColor3B color;
-
-@end
diff --git a/Classes/cocos2d/CCMenu.m b/Classes/cocos2d/CCMenu.m
deleted file mode 100644 (file)
index 59e0218..0000000
+++ /dev/null
@@ -1,516 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-
-#import "CCMenu.h"
-#import "CCDirector.h"
-#import "Support/CGPointExtension.h"
-#import "ccMacros.h"
-
-#import <Availability.h>
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import "Platforms/iOS/CCDirectorIOS.h"
-#import "Platforms/iOS/CCTouchDispatcher.h"
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-#import "Platforms/Mac/MacGLView.h"
-#import "Platforms/Mac/CCDirectorMac.h"
-#endif
-
-enum {
-       kDefaultPadding =  5,
-};
-
-@implementation CCMenu
-
-@synthesize opacity = opacity_, color = color_;
-
-- (id) init
-{
-       NSAssert(NO, @"CCMenu: Init not supported.");
-       [self release];
-       return nil;     
-}
-
-+(id) menuWithItems: (CCMenuItem*) item, ...
-{
-       va_list args;
-       va_start(args,item);
-       
-       id s = [[[self alloc] initWithItems: item vaList:args] autorelease];
-       
-       va_end(args);
-       return s;
-}
-
--(id) initWithItems: (CCMenuItem*) item vaList: (va_list) args
-{
-       if( (self=[super init]) ) {
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-               self.isTouchEnabled = YES;
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-               self.isMouseEnabled = YES;
-#endif
-               
-               // menu in the center of the screen
-               CGSize s = [[CCDirector sharedDirector] winSize];
-               
-               self.isRelativeAnchorPoint = NO;
-               anchorPoint_ = ccp(0.5f, 0.5f);
-               [self setContentSize:s];
-               
-               // XXX: in v0.7, winSize should return the visible size
-               // XXX: so the bar calculation should be done there
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-               CGRect r = [[UIApplication sharedApplication] statusBarFrame];
-               ccDeviceOrientation orientation = [[CCDirector sharedDirector] deviceOrientation];
-               if( orientation == CCDeviceOrientationLandscapeLeft || orientation == CCDeviceOrientationLandscapeRight )
-                       s.height -= r.size.width;
-               else
-                       s.height -= r.size.height;
-#endif
-               self.position = ccp(s.width/2, s.height/2);
-
-               int z=0;
-               
-               if (item) {
-                       [self addChild: item z:z];
-                       CCMenuItem *i = va_arg(args, CCMenuItem*);
-                       while(i) {
-                               z++;
-                               [self addChild: i z:z];
-                               i = va_arg(args, CCMenuItem*);
-                       }
-               }
-       //      [self alignItemsVertically];
-               
-               selectedItem_ = nil;
-               state_ = kCCMenuStateWaiting;
-       }
-       
-       return self;
-}
-
--(void) dealloc
-{
-       [super dealloc];
-}
-
-/*
- * override add:
- */
--(void) addChild:(CCMenuItem*)child z:(int)z tag:(int) aTag
-{
-       NSAssert( [child isKindOfClass:[CCMenuItem class]], @"Menu only supports MenuItem objects as children");
-       [super addChild:child z:z tag:aTag];
-}
-
-- (void) onExit
-{
-       if(state_ == kCCMenuStateTrackingTouch)
-       {
-               [selectedItem_ unselected];             
-               state_ = kCCMenuStateWaiting;
-               selectedItem_ = nil;
-       }
-       [super onExit];
-}
-       
-#pragma mark Menu - Touches
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
--(void) registerWithTouchDispatcher
-{
-       [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:kCCMenuTouchPriority swallowsTouches:YES];
-}
-
--(CCMenuItem *) itemForTouch: (UITouch *) touch
-{
-       CGPoint touchLocation = [touch locationInView: [touch view]];
-       touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation];
-       
-       CCMenuItem* item;
-       CCARRAY_FOREACH(children_, item){
-               // ignore invisible and disabled items: issue #779, #866
-               if ( [item visible] && [item isEnabled] ) {
-                       
-                       CGPoint local = [item convertToNodeSpace:touchLocation];
-                       CGRect r = [item rect];
-                       r.origin = CGPointZero;
-                       
-                       if( CGRectContainsPoint( r, local ) )
-                               return item;
-               }
-       }
-       return nil;
-}
-
--(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
-{
-       if( state_ != kCCMenuStateWaiting || !visible_ )
-               return NO;
-       
-       selectedItem_ = [self itemForTouch:touch];
-       [selectedItem_ selected];
-       
-       if( selectedItem_ ) {
-               state_ = kCCMenuStateTrackingTouch;
-               return YES;
-       }
-       return NO;
-}
-
--(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
-{
-       NSAssert(state_ == kCCMenuStateTrackingTouch, @"[Menu ccTouchEnded] -- invalid state");
-       
-       [selectedItem_ unselected];
-       [selectedItem_ activate];
-       
-       state_ = kCCMenuStateWaiting;
-}
-
--(void) ccTouchCancelled:(UITouch *)touch withEvent:(UIEvent *)event
-{
-       NSAssert(state_ == kCCMenuStateTrackingTouch, @"[Menu ccTouchCancelled] -- invalid state");
-       
-       [selectedItem_ unselected];
-       
-       state_ = kCCMenuStateWaiting;
-}
-
--(void) ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
-{
-       NSAssert(state_ == kCCMenuStateTrackingTouch, @"[Menu ccTouchMoved] -- invalid state");
-       
-       CCMenuItem *currentItem = [self itemForTouch:touch];
-       
-       if (currentItem != selectedItem_) {
-               [selectedItem_ unselected];
-               selectedItem_ = currentItem;
-               [selectedItem_ selected];
-       }
-}
-
-#pragma mark Menu - Mouse
-
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-
--(NSInteger) mouseDelegatePriority
-{
-       return NSIntegerMin+1;
-}
-
--(CCMenuItem *) itemForMouseEvent: (NSEvent *) event
-{
-       CGPoint location = [(CCDirectorMac*)[CCDirector sharedDirector] convertEventToGL:event];
-       
-       CCMenuItem* item;
-       CCARRAY_FOREACH(children_, item){
-               // ignore invisible and disabled items: issue #779, #866
-               if ( [item visible] && [item isEnabled] ) {
-                       
-                       CGPoint local = [item convertToNodeSpace:location];
-                       
-                       CGRect r = [item rect];
-                       r.origin = CGPointZero;
-                       
-                       if( CGRectContainsPoint( r, local ) )
-                               return item;
-               }
-       }
-       return nil;
-}
-
--(BOOL) ccMouseUp:(NSEvent *)event
-{      
-       if( selectedItem_ ) {
-               [selectedItem_ unselected];
-               [selectedItem_ activate];
-               
-               state_ = kCCMenuStateWaiting;
-
-               return YES;
-       }
-       
-       return NO;
-}
-
--(BOOL) ccMouseDown:(NSEvent *)event
-{
-       if( ! visible_ )
-               return NO;
-       
-       selectedItem_ = [self itemForMouseEvent:event];
-       [selectedItem_ selected];
-
-       if( selectedItem_ ) {
-               state_ = kCCMenuStateTrackingTouch;
-               return YES;
-       }
-
-       return NO;      
-}
-
--(BOOL) ccMouseDragged:(NSEvent *)event
-{
-       CCMenuItem *currentItem = [self itemForMouseEvent:event];
-       
-       if (currentItem != selectedItem_) {
-               [selectedItem_ unselected];
-               selectedItem_ = currentItem;
-               [selectedItem_ selected];
-       }
-       
-       // swallows event ?
-       if( currentItem && state_ == kCCMenuStateTrackingTouch )
-               return YES;
-       return NO;
-}
-
-#endif // Mac Mouse support
-
-#pragma mark Menu - Alignment
--(void) alignItemsVertically
-{
-       return [self alignItemsVerticallyWithPadding:kDefaultPadding];
-}
--(void) alignItemsVerticallyWithPadding:(float)padding
-{
-       float height = -padding;
-       
-       CCMenuItem *item;
-       CCARRAY_FOREACH(children_, item)
-           height += item.contentSize.height * item.scaleY + padding;
-
-       float y = height / 2.0f;
-       
-       CCARRAY_FOREACH(children_, item) {
-               CGSize itemSize = item.contentSize;
-           [item setPosition:ccp(0, y - itemSize.height * item.scaleY / 2.0f)];
-           y -= itemSize.height * item.scaleY + padding;
-       }
-}
-
--(void) alignItemsHorizontally
-{
-       return [self alignItemsHorizontallyWithPadding:kDefaultPadding];
-}
-
--(void) alignItemsHorizontallyWithPadding:(float)padding
-{
-       
-       float width = -padding;
-       CCMenuItem *item;
-       CCARRAY_FOREACH(children_, item)
-           width += item.contentSize.width * item.scaleX + padding;
-
-       float x = -width / 2.0f;
-       
-       CCARRAY_FOREACH(children_, item){
-               CGSize itemSize = item.contentSize;
-               [item setPosition:ccp(x + itemSize.width * item.scaleX / 2.0f, 0)];
-               x += itemSize.width * item.scaleX + padding;
-       }
-}
-
--(void) alignItemsInColumns: (NSNumber *) columns, ...
-{
-       va_list args;
-       va_start(args, columns);
-       
-       [self alignItemsInColumns:columns vaList:args];
-       
-       va_end(args);
-}
-
--(void) alignItemsInColumns: (NSNumber *) columns vaList: (va_list) args
-{
-       NSMutableArray *rows = [[NSMutableArray alloc] initWithObjects:columns, nil];
-       columns = va_arg(args, NSNumber*);
-       while(columns) {
-        [rows addObject:columns];
-               columns = va_arg(args, NSNumber*);
-       }
-    
-       int height = -5;
-    NSUInteger row = 0, rowHeight = 0, columnsOccupied = 0, rowColumns;
-       CCMenuItem *item;
-       CCARRAY_FOREACH(children_, item){
-               NSAssert( row < [rows count], @"Too many menu items for the amount of rows/columns.");
-        
-               rowColumns = [(NSNumber *) [rows objectAtIndex:row] unsignedIntegerValue];
-               NSAssert( rowColumns, @"Can't have zero columns on a row");
-        
-               rowHeight = fmaxf(rowHeight, item.contentSize.height);
-               ++columnsOccupied;
-        
-               if(columnsOccupied >= rowColumns) {
-                       height += rowHeight + 5;
-
-                       columnsOccupied = 0;
-                       rowHeight = 0;
-                       ++row;
-               }
-       }
-       NSAssert( !columnsOccupied, @"Too many rows/columns for available menu items." );
-
-       CGSize winSize = [[CCDirector sharedDirector] winSize];
-    
-       row = 0; rowHeight = 0; rowColumns = 0;
-       float w, x, y = height / 2;
-       CCARRAY_FOREACH(children_, item) {
-               if(rowColumns == 0) {
-                       rowColumns = [(NSNumber *) [rows objectAtIndex:row] unsignedIntegerValue];
-                       w = winSize.width / (1 + rowColumns);
-                       x = w;
-               }
-
-               CGSize itemSize = item.contentSize;
-               rowHeight = fmaxf(rowHeight, itemSize.height);
-               [item setPosition:ccp(x - winSize.width / 2,
-                                                         y - itemSize.height / 2)];
-            
-               x += w + 10;
-               ++columnsOccupied;
-               
-               if(columnsOccupied >= rowColumns) {
-                       y -= rowHeight + 5;
-                       
-                       columnsOccupied = 0;
-                       rowColumns = 0;
-                       rowHeight = 0;
-                       ++row;
-               }
-       }
-
-       [rows release];
-}
-
--(void) alignItemsInRows: (NSNumber *) rows, ...
-{
-       va_list args;
-       va_start(args, rows);
-       
-       [self alignItemsInRows:rows vaList:args];
-       
-       va_end(args);
-}
-
--(void) alignItemsInRows: (NSNumber *) rows vaList: (va_list) args
-{
-       NSMutableArray *columns = [[NSMutableArray alloc] initWithObjects:rows, nil];
-       rows = va_arg(args, NSNumber*);
-       while(rows) {
-               [columns addObject:rows];
-               rows = va_arg(args, NSNumber*);
-       }
-
-       NSMutableArray *columnWidths = [[NSMutableArray alloc] init];
-       NSMutableArray *columnHeights = [[NSMutableArray alloc] init];
-       
-       int width = -10, columnHeight = -5;
-       NSUInteger column = 0, columnWidth = 0, rowsOccupied = 0, columnRows;
-       CCMenuItem *item;
-       CCARRAY_FOREACH(children_, item){
-               NSAssert( column < [columns count], @"Too many menu items for the amount of rows/columns.");
-               
-               columnRows = [(NSNumber *) [columns objectAtIndex:column] unsignedIntegerValue];
-               NSAssert( columnRows, @"Can't have zero rows on a column");
-               
-               CGSize itemSize = item.contentSize;
-               columnWidth = fmaxf(columnWidth, itemSize.width);
-               columnHeight += itemSize.height + 5;
-               ++rowsOccupied;
-               
-               if(rowsOccupied >= columnRows) {
-                       [columnWidths addObject:[NSNumber numberWithUnsignedInteger:columnWidth]];
-                       [columnHeights addObject:[NSNumber numberWithUnsignedInteger:columnHeight]];
-                       width += columnWidth + 10;
-                       
-                       rowsOccupied = 0;
-                       columnWidth = 0;
-                       columnHeight = -5;
-                       ++column;
-               }
-       }
-       NSAssert( !rowsOccupied, @"Too many rows/columns for available menu items.");
-       
-       CGSize winSize = [[CCDirector sharedDirector] winSize];
-       
-       column = 0; columnWidth = 0; columnRows = 0;
-       float x = -width / 2, y;
-       
-       CCARRAY_FOREACH(children_, item){
-               if(columnRows == 0) {
-                       columnRows = [(NSNumber *) [columns objectAtIndex:column] unsignedIntegerValue];
-                       y = ([(NSNumber *) [columnHeights objectAtIndex:column] intValue] + winSize.height) / 2;
-               }
-               
-               CGSize itemSize = item.contentSize;
-               columnWidth = fmaxf(columnWidth, itemSize.width);
-               [item setPosition:ccp(x + [(NSNumber *) [columnWidths objectAtIndex:column] unsignedIntegerValue] / 2,
-                                                         y - winSize.height / 2)];
-               
-               y -= itemSize.height + 10;
-               ++rowsOccupied;
-               
-               if(rowsOccupied >= columnRows) {
-                       x += columnWidth + 5;
-                       
-                       rowsOccupied = 0;
-                       columnRows = 0;
-                       columnWidth = 0;
-                       ++column;
-               }
-       }
-       
-       [columns release];
-       [columnWidths release];
-       [columnHeights release];
-}
-
-#pragma mark Menu - Opacity Protocol
-
-/** Override synthesized setOpacity to recurse items */
-- (void) setOpacity:(GLubyte)newOpacity
-{
-       opacity_ = newOpacity;
-       
-       id<CCRGBAProtocol> item;
-       CCARRAY_FOREACH(children_, item)
-               [item setOpacity:opacity_];
-}
-
--(void) setColor:(ccColor3B)color
-{
-       color_ = color;
-       
-       id<CCRGBAProtocol> item;
-       CCARRAY_FOREACH(children_, item)
-               [item setColor:color_];
-}
-@end
diff --git a/Classes/cocos2d/CCMenuItem.h b/Classes/cocos2d/CCMenuItem.h
deleted file mode 100644 (file)
index ca07b5e..0000000
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "CCBlockSupport.h"
-
-#import "CCNode.h"
-#import "CCProtocols.h"
-
-@class CCSprite;
-
-#define kItemSize 32
-
-/** CCMenuItem base class
- *
- *  Subclass CCMenuItem (or any subclass) to create your custom CCMenuItem objects.
- */
-@interface CCMenuItem : CCNode
-{
-       NSInvocation *invocation;
-#if NS_BLOCKS_AVAILABLE
-       // used for menu items using a block
-       void (^block_)(id sender);
-#endif
-       
-       BOOL isEnabled_;
-       BOOL isSelected_;
-}
-
-/** returns whether or not the item is selected
-@since v0.8.2
-*/
-@property (nonatomic,readonly) BOOL isSelected;
-
-/** Creates a CCMenuItem with a target/selector */
-+(id) itemWithTarget:(id)target selector:(SEL)selector;
-
-/** Initializes a CCMenuItem with a target/selector */
--(id) initWithTarget:(id)target selector:(SEL)selector;
-
-#if NS_BLOCKS_AVAILABLE
-/** Creates a CCMenuItem with the specified block.
- The block will be "copied".
- */
-+(id) itemWithBlock:(void(^)(id sender))block;
-
-/** Initializes a CCMenuItem with the specified block.
- The block will be "copied".
-*/
--(id) initWithBlock:(void(^)(id sender))block;
-#endif
-
-/** Returns the outside box in points */
--(CGRect) rect;
-
-/** Activate the item */
--(void) activate;
-
-/** The item was selected (not activated), similar to "mouse-over" */
--(void) selected;
-
-/** The item was unselected */
--(void) unselected;
-
-/** Enable or disabled the CCMenuItem */
--(void) setIsEnabled:(BOOL)enabled;
-/** Returns whether or not the CCMenuItem is enabled */
--(BOOL) isEnabled;
-@end
-
-/** An abstract class for "label" CCMenuItemLabel items 
- Any CCNode that supports the CCLabelProtocol protocol can be added.
- Supported nodes:
-   - CCLabelBMFont
-   - CCLabelAtlas
-   - CCLabelTTF
- */
-@interface CCMenuItemLabel : CCMenuItem  <CCRGBAProtocol>
-{
-       CCNode<CCLabelProtocol, CCRGBAProtocol> *label_;
-       ccColor3B       colorBackup;
-       ccColor3B       disabledColor_;
-       float           originalScale_;
-}
-
-/** the color that will be used to disable the item */
-@property (nonatomic,readwrite) ccColor3B disabledColor;
-
-/** Label that is rendered. It can be any CCNode that implements the CCLabelProtocol */
-@property (nonatomic,readwrite,assign) CCNode<CCLabelProtocol, CCRGBAProtocol>* label;
-
-/** creates a CCMenuItemLabel with a Label, target and selector */
-+(id) itemWithLabel:(CCNode<CCLabelProtocol,CCRGBAProtocol>*)label target:(id)target selector:(SEL)selector;
-
-/** initializes a CCMenuItemLabel with a Label, target and selector */
--(id) initWithLabel:(CCNode<CCLabelProtocol,CCRGBAProtocol>*)label target:(id)target selector:(SEL)selector;
-
-#if NS_BLOCKS_AVAILABLE
-/** creates a CCMenuItemLabel with a Label and a block to execute.
- The block will be "copied".
- */
-+(id) itemWithLabel:(CCNode<CCLabelProtocol,CCRGBAProtocol>*)label block:(void(^)(id sender))block;
-
-/** initializes a CCMenuItemLabel with a Label and a block to execute.
- The block will be "copied".
- */
--(id) initWithLabel:(CCNode<CCLabelProtocol,CCRGBAProtocol>*)label block:(void(^)(id sender))block;
-#endif
-
-/** sets a new string to the inner label */
--(void) setString:(NSString*)label;
-
-/** Enable or disabled the CCMenuItemFont
- @warning setIsEnabled changes the RGB color of the font
- */
--(void) setIsEnabled: (BOOL)enabled;
-@end
-
-/** A CCMenuItemAtlasFont
- Helper class that creates a MenuItemLabel class with a LabelAtlas
- */
-@interface CCMenuItemAtlasFont : CCMenuItemLabel
-{
-}
-
-/** creates a menu item from a string and atlas with a target/selector */
-+(id) itemFromString: (NSString*) value charMapFile:(NSString*) charMapFile itemWidth:(int)itemWidth itemHeight:(int)itemHeight startCharMap:(char)startCharMap;
-
-/** creates a menu item from a string and atlas. Use it with MenuItemToggle */
-+(id) itemFromString: (NSString*) value charMapFile:(NSString*) charMapFile itemWidth:(int)itemWidth itemHeight:(int)itemHeight startCharMap:(char)startCharMap target:(id) rec selector:(SEL) cb;
-
-/** initializes a menu item from a string and atlas with a target/selector */
--(id) initFromString: (NSString*) value charMapFile:(NSString*) charMapFile itemWidth:(int)itemWidth itemHeight:(int)itemHeight startCharMap:(char)startCharMap target:(id) rec selector:(SEL) cb;
-
-#if NS_BLOCKS_AVAILABLE
-/** creates a menu item from a string and atlas. Use it with MenuItemToggle.
- The block will be "copied".
- */
-+(id) itemFromString: (NSString*) value charMapFile:(NSString*) charMapFile itemWidth:(int)itemWidth itemHeight:(int)itemHeight startCharMap:(char)startCharMap block:(void(^)(id sender))block;
-
-/** initializes a menu item from a string and atlas with a  block.
- The block will be "copied".
- */
--(id) initFromString: (NSString*) value charMapFile:(NSString*) charMapFile itemWidth:(int)itemWidth itemHeight:(int)itemHeight startCharMap:(char)startCharMap block:(void(^)(id sender))block;
-#endif
-
-@end
-
-/** A CCMenuItemFont
- Helper class that creates a CCMenuItemLabel class with a Label
- */
-@interface CCMenuItemFont : CCMenuItemLabel
-{
-}
-/** set font size */
-+(void) setFontSize: (int) s;
-
-/** get font size */
-+(int) fontSize;
-
-/** set the font name */
-+(void) setFontName: (NSString*) n;
-
-/** get the font name */
-+(NSString*) fontName;
-
-/** creates a menu item from a string without target/selector. To be used with CCMenuItemToggle */
-+(id) itemFromString: (NSString*) value;
-
-/** creates a menu item from a string with a target/selector */
-+(id) itemFromString: (NSString*) value target:(id) r selector:(SEL) s;
-
-/** initializes a menu item from a string with a target/selector */
--(id) initFromString: (NSString*) value target:(id) r selector:(SEL) s;
-
-#if NS_BLOCKS_AVAILABLE
-/** creates a menu item from a string with the specified block.
- The block will be "copied".
- */
-+(id) itemFromString: (NSString*) value block:(void(^)(id sender))block;
-
-/** initializes a menu item from a string with the specified block.
- The block will be "copied".
- */
--(id) initFromString: (NSString*) value block:(void(^)(id sender))block;
-#endif
-@end
-
-/** CCMenuItemSprite accepts CCNode<CCRGBAProtocol> objects as items.
- The images has 3 different states:
- - unselected image
- - selected image
- - disabled image
- @since v0.8.0
- */
-@interface CCMenuItemSprite : CCMenuItem <CCRGBAProtocol>
-{
-       CCNode<CCRGBAProtocol> *normalImage_, *selectedImage_, *disabledImage_;
-}
-
-// weak references
-
-/** the image used when the item is not selected */
-@property (nonatomic,readwrite,assign) CCNode<CCRGBAProtocol> *normalImage;
-/** the image used when the item is selected */
-@property (nonatomic,readwrite,assign) CCNode<CCRGBAProtocol> *selectedImage;
-/** the image used when the item is disabled */
-@property (nonatomic,readwrite,assign) CCNode<CCRGBAProtocol> *disabledImage;
-
-/** creates a menu item with a normal and selected image*/
-+(id) itemFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite;
-/** creates a menu item with a normal and selected image with target/selector */
-+(id) itemFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite target:(id)target selector:(SEL)selector;
-/** creates a menu item with a normal,selected  and disabled image with target/selector */
-+(id) itemFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite disabledSprite:(CCNode<CCRGBAProtocol>*)disabledSprite target:(id)target selector:(SEL)selector;
-/** initializes a menu item with a normal, selected  and disabled image with target/selector */
--(id) initFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite disabledSprite:(CCNode<CCRGBAProtocol>*)disabledSprite target:(id)target selector:(SEL)selector;
-
-#if NS_BLOCKS_AVAILABLE
-/** creates a menu item with a normal and selected image with a block.
- The block will be "copied".
- */
-+(id) itemFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite block:(void(^)(id sender))block;
-/** creates a menu item with a normal,selected  and disabled image with a block.
- The block will be "copied".
- */
-+(id) itemFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite disabledSprite:(CCNode<CCRGBAProtocol>*)disabledSprite block:(void(^)(id sender))block;
-/** initializes a menu item with a normal, selected  and disabled image with a block.
- The block will be "copied".
- */
--(id) initFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite disabledSprite:(CCNode<CCRGBAProtocol>*)disabledSprite block:(void(^)(id sender))block;
-#endif
-
-@end
-
-/** CCMenuItemImage accepts images as items.
- The images has 3 different states:
- - unselected image
- - selected image
- - disabled image
- For best results try that all images are of the same size
- */
-@interface CCMenuItemImage : CCMenuItemSprite
-{
-}
-
-/** creates a menu item with a normal and selected image*/
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2;
-/** creates a menu item with a normal and selected image with target/selector */
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2 target:(id) r selector:(SEL) s;
-/** creates a menu item with a normal,selected  and disabled image with target/selector */
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2 disabledImage:(NSString*) value3 target:(id) r selector:(SEL) s;
-/** initializes a menu item with a normal, selected  and disabled image with target/selector */
--(id) initFromNormalImage: (NSString*) value selectedImage:(NSString*)value2 disabledImage:(NSString*) value3 target:(id) r selector:(SEL) s;
-#if NS_BLOCKS_AVAILABLE
-/** creates a menu item with a normal and selected image with a block.
- The block will be "copied".
- */
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2 block:(void(^)(id sender))block;
-/** creates a menu item with a normal,selected  and disabled image with a block.
- The block will be "copied".
-*/
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2 disabledImage:(NSString*) value3 block:(void(^)(id sender))block;
-/** initializes a menu item with a normal, selected  and disabled image with a block.
- The block will be "copied".
-*/
--(id) initFromNormalImage: (NSString*) value selectedImage:(NSString*)value2 disabledImage:(NSString*) value3 block:(void(^)(id sender))block;
-#endif
-@end
-
-
-
-/** A CCMenuItemToggle
- A simple container class that "toggles" it's inner items
- The inner itmes can be any MenuItem
- */
-@interface CCMenuItemToggle : CCMenuItem <CCRGBAProtocol>
-{
-       NSUInteger selectedIndex_;
-       NSMutableArray* subItems_;
-       GLubyte         opacity_;
-       ccColor3B       color_;
-}
-
-/** conforms with CCRGBAProtocol protocol */
-@property (nonatomic,readonly) GLubyte opacity;
-/** conforms with CCRGBAProtocol protocol */
-@property (nonatomic,readonly) ccColor3B color;
-
-/** returns the selected item */
-@property (nonatomic,readwrite) NSUInteger selectedIndex;
-/** NSMutableArray that contains the subitems. You can add/remove items in runtime, and you can replace the array with a new one.
- @since v0.7.2
- */
-@property (nonatomic,readwrite,retain) NSMutableArray *subItems;
-
-/** creates a menu item from a list of items with a target/selector */
-+(id) itemWithTarget:(id)t selector:(SEL)s items:(CCMenuItem*) item, ... NS_REQUIRES_NIL_TERMINATION;
-
-/** initializes a menu item from a list of items with a target selector */
--(id) initWithTarget:(id)t selector:(SEL)s items:(CCMenuItem*) item vaList:(va_list) args;
-
-#if NS_BLOCKS_AVAILABLE
-/** creates a menu item from a list of items and executes the given block when the item is selected.
- The block will be "copied".
- */
-+(id) itemWithBlock:(void(^)(id sender))block items:(CCMenuItem*)item, ... NS_REQUIRES_NIL_TERMINATION;
-
-/** initializes a menu item from a list of items with a block.
- The block will be "copied".
- */
--(id) initWithBlock:(void (^)(id))block items:(CCMenuItem*)item vaList:(va_list)args;
-#endif
-
-/** return the selected item */
--(CCMenuItem*) selectedItem;
-@end
-
diff --git a/Classes/cocos2d/CCMenuItem.m b/Classes/cocos2d/CCMenuItem.m
deleted file mode 100644 (file)
index 304702e..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "CCMenuItem.h"
-#import "CCLabelTTF.h"
-#import "CCLabelAtlas.h"
-#import "CCActionInterval.h"
-#import "CCSprite.h"
-#import "Support/CGPointExtension.h"
-
-static int _fontSize = kItemSize;
-static NSString *_fontName = @"Marker Felt";
-static BOOL _fontNameRelease = NO;
-
-enum {
-       kCurrentItem = 0xc0c05001,
-};
-
-enum {
-       kZoomActionTag = 0xc0c05002,
-};
-
-
-
-#pragma mark -
-#pragma mark CCMenuItem
-
-@implementation CCMenuItem
-
-@synthesize isSelected=isSelected_;
--(id) init
-{
-       NSAssert(NO, @"MenuItemInit: Init not supported.");
-       [self release];
-       return nil;
-}
-
-+(id) itemWithTarget:(id) r selector:(SEL) s
-{
-       return [[[self alloc] initWithTarget:r selector:s] autorelease];
-}
-
--(id) initWithTarget:(id) rec selector:(SEL) cb
-{
-       if((self=[super init]) ) {
-       
-               anchorPoint_ = ccp(0.5f, 0.5f);
-               NSMethodSignature * sig = nil;
-               
-               if( rec && cb ) {
-                       sig = [rec methodSignatureForSelector:cb];
-                       
-                       invocation = nil;
-                       invocation = [NSInvocation invocationWithMethodSignature:sig];
-                       [invocation setTarget:rec];
-                       [invocation setSelector:cb];
-#if NS_BLOCKS_AVAILABLE
-                       if ([sig numberOfArguments] == 3) 
-#endif
-                       [invocation setArgument:&self atIndex:2];
-                       
-                       [invocation retain];
-               }
-               
-               isEnabled_ = YES;
-               isSelected_ = NO;
-       }
-       
-       return self;
-}
-
-#if NS_BLOCKS_AVAILABLE
-
-+(id) itemWithBlock:(void(^)(id sender))block {
-       return [[[self alloc] initWithBlock:block] autorelease];
-}
-
--(id) initWithBlock:(void(^)(id sender))block {
-       block_ = [block copy];
-       return [self initWithTarget:block_ selector:@selector(ccCallbackBlockWithSender:)];
-}
-
-#endif // NS_BLOCKS_AVAILABLE
-
--(void) dealloc
-{
-       [invocation release];
-
-#if NS_BLOCKS_AVAILABLE
-       [block_ release];
-#endif
-       
-       [super dealloc];
-}
-
--(void) selected
-{
-       isSelected_ = YES;
-}
-
--(void) unselected
-{
-       isSelected_ = NO;
-}
-
--(void) activate
-{
-       if(isEnabled_)
-        [invocation invoke];
-}
-
--(void) setIsEnabled: (BOOL)enabled
-{
-    isEnabled_ = enabled;
-}
-
--(BOOL) isEnabled
-{
-    return isEnabled_;
-}
-
--(CGRect) rect
-{
-       return CGRectMake( position_.x - contentSize_.width*anchorPoint_.x,
-                                         position_.y - contentSize_.height*anchorPoint_.y,
-                                         contentSize_.width, contentSize_.height);     
-}
-
-@end
-
-
-#pragma mark -
-#pragma mark CCMenuItemLabel
-
-@implementation CCMenuItemLabel
-
-@synthesize disabledColor = disabledColor_;
-
-+(id) itemWithLabel:(CCNode<CCLabelProtocol,CCRGBAProtocol>*)label target:(id)target selector:(SEL)selector
-{
-       return [[[self alloc] initWithLabel:label target:target selector:selector] autorelease];
-}
-
--(id) initWithLabel:(CCNode<CCLabelProtocol,CCRGBAProtocol>*)label target:(id)target selector:(SEL)selector
-{
-       if( (self=[super initWithTarget:target selector:selector]) ) {
-               originalScale_ = 1;
-               colorBackup = ccWHITE;
-               disabledColor_ = ccc3( 126,126,126);
-               self.label = label;
-               
-       }
-       return self;
-}
-
-#if NS_BLOCKS_AVAILABLE
-
-+(id) itemWithLabel:(CCNode<CCLabelProtocol,CCRGBAProtocol>*)label block:(void(^)(id sender))block {
-       return [[[self alloc] initWithLabel:label block:block] autorelease];
-}
-
--(id) initWithLabel:(CCNode<CCLabelProtocol,CCRGBAProtocol>*)label block:(void(^)(id sender))block {
-       block_ = [block copy];
-       return [self initWithLabel:label target:block_ selector:@selector(ccCallbackBlockWithSender:)];
-}
-
-#endif // NS_BLOCKS_AVAILABLE
-
--(CCNode<CCLabelProtocol, CCRGBAProtocol>*) label
-{
-       return label_;
-}
--(void) setLabel:(CCNode<CCLabelProtocol, CCRGBAProtocol>*) label
-{
-       if( label != label_ ) {
-               [self removeChild:label_ cleanup:YES];
-               [self addChild:label];
-               
-               label_ = label;
-               label_.anchorPoint = ccp(0,0);
-
-               [self setContentSize:[label_ contentSize]];
-       }
-}
-
--(void) setString:(NSString *)string
-{
-       [label_ setString:string];
-       [self setContentSize: [label_ contentSize]];
-}
-
--(void) activate {
-       if(isEnabled_) {
-               [self stopAllActions];
-        
-               self.scale = originalScale_;
-        
-               [super activate];
-       }
-}
-
--(void) selected
-{
-       // subclass to change the default action
-       if(isEnabled_) {        
-               [super selected];
-               [self stopActionByTag:kZoomActionTag];
-               originalScale_ = self.scale;
-               CCAction *zoomAction = [CCScaleTo actionWithDuration:0.1f scale:originalScale_ * 1.2f];
-               zoomAction.tag = kZoomActionTag;
-               [self runAction:zoomAction];
-       }
-}
-
--(void) unselected
-{
-       // subclass to change the default action
-       if(isEnabled_) {
-               [super unselected];
-               [self stopActionByTag:kZoomActionTag];
-               CCAction *zoomAction = [CCScaleTo actionWithDuration:0.1f scale:originalScale_];
-               zoomAction.tag = kZoomActionTag;
-               [self runAction:zoomAction];
-       }
-}
-
--(void) setIsEnabled: (BOOL)enabled
-{
-       if( isEnabled_ != enabled ) {
-               if(enabled == NO) {
-                       colorBackup = [label_ color];
-                       [label_ setColor: disabledColor_];
-               }
-               else
-                       [label_ setColor:colorBackup];
-       }
-    
-       [super setIsEnabled:enabled];
-}
-
-- (void) setOpacity: (GLubyte)opacity
-{
-    [label_ setOpacity:opacity];
-}
--(GLubyte) opacity
-{
-       return [label_ opacity];
-}
--(void) setColor:(ccColor3B)color
-{
-       [label_ setColor:color];
-}
--(ccColor3B) color
-{
-       return [label_ color];
-}
-@end
-
-#pragma mark  -
-#pragma mark CCMenuItemAtlasFont
-
-@implementation CCMenuItemAtlasFont
-
-+(id) itemFromString: (NSString*) value charMapFile:(NSString*) charMapFile itemWidth:(int)itemWidth itemHeight:(int)itemHeight startCharMap:(char)startCharMap
-{
-       return [CCMenuItemAtlasFont itemFromString:value charMapFile:charMapFile itemWidth:itemWidth itemHeight:itemHeight startCharMap:startCharMap target:nil selector:nil];
-}
-
-+(id) itemFromString: (NSString*) value charMapFile:(NSString*) charMapFile itemWidth:(int)itemWidth itemHeight:(int)itemHeight startCharMap:(char)startCharMap target:(id) rec selector:(SEL) cb
-{
-       return [[[self alloc] initFromString:value charMapFile:charMapFile itemWidth:itemWidth itemHeight:itemHeight startCharMap:startCharMap target:rec selector:cb] autorelease];
-}
-
--(id) initFromString: (NSString*) value charMapFile:(NSString*) charMapFile itemWidth:(int)itemWidth itemHeight:(int)itemHeight startCharMap:(char)startCharMap target:(id) rec selector:(SEL) cb
-{
-       NSAssert( [value length] != 0, @"value length must be greater than 0");
-       
-       CCLabelAtlas *label = [[CCLabelAtlas alloc] initWithString:value charMapFile:charMapFile itemWidth:itemWidth itemHeight:itemHeight startCharMap:startCharMap];
-       [label autorelease];
-
-       if((self=[super initWithLabel:label target:rec selector:cb]) ) {
-               // do something ?
-       }
-       
-       return self;
-}
-
-#if NS_BLOCKS_AVAILABLE
-+(id) itemFromString:(NSString*)value charMapFile:(NSString*)charMapFile itemWidth:(int)itemWidth itemHeight:(int)itemHeight startCharMap:(char)startCharMap block:(void(^)(id sender))block {
-       return [[[self alloc] initFromString:value charMapFile:charMapFile itemWidth:itemWidth itemHeight:itemHeight startCharMap:startCharMap block:block] autorelease];
-}
-
--(id) initFromString:(NSString*)value charMapFile:(NSString*)charMapFile itemWidth:(int)itemWidth itemHeight:(int)itemHeight startCharMap:(char)startCharMap block:(void(^)(id sender))block {
-       block_ = [block copy];
-       return [self initFromString:value charMapFile:charMapFile itemWidth:itemWidth itemHeight:itemHeight startCharMap:startCharMap target:block_ selector:@selector(ccCallbackBlockWithSender:)];
-}
-#endif // NS_BLOCKS_AVAILABLE
-
--(void) dealloc
-{
-       [super dealloc];
-}
-@end
-
-
-#pragma mark -
-#pragma mark CCMenuItemFont
-
-@implementation CCMenuItemFont
-
-+(void) setFontSize: (int) s
-{
-       _fontSize = s;
-}
-
-+(int) fontSize
-{
-       return _fontSize;
-}
-
-+(void) setFontName: (NSString*) n
-{
-       if( _fontNameRelease )
-               [_fontName release];
-       
-       _fontName = [n retain];
-       _fontNameRelease = YES;
-}
-
-+(NSString*) fontName
-{
-       return _fontName;
-}
-
-+(id) itemFromString: (NSString*) value target:(id) r selector:(SEL) s
-{
-       return [[[self alloc] initFromString: value target:r selector:s] autorelease];
-}
-
-+(id) itemFromString: (NSString*) value
-{
-       return [[[self alloc] initFromString: value target:nil selector:nil] autorelease];
-}
-
--(id) initFromString: (NSString*) value target:(id) rec selector:(SEL) cb
-{
-       NSAssert( [value length] != 0, @"Value length must be greater than 0");
-       
-       CCLabelTTF *label = [CCLabelTTF labelWithString:value fontName:_fontName fontSize:_fontSize];
-
-       if((self=[super initWithLabel:label target:rec selector:cb]) ) {
-               // do something ?
-       }
-       
-       return self;
-}
-
-#if NS_BLOCKS_AVAILABLE
-+(id) itemFromString: (NSString*) value block:(void(^)(id sender))block {
-       return [[[self alloc] initFromString:value block:block] autorelease];
-}
-
--(id) initFromString: (NSString*) value block:(void(^)(id sender))block {
-       block_ = [block copy];
-       return [self initFromString:value target:block_ selector:@selector(ccCallbackBlockWithSender:)];
-}
-#endif // NS_BLOCKS_AVAILABLE
-
-@end
-
-#pragma mark -
-#pragma mark CCMenuItemSprite
-@implementation CCMenuItemSprite
-
-@synthesize normalImage=normalImage_, selectedImage=selectedImage_, disabledImage=disabledImage_;
-
-+(id) itemFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite
-{
-       return [self itemFromNormalSprite:normalSprite selectedSprite:selectedSprite disabledSprite:nil target:nil selector:nil];
-}
-+(id) itemFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite target:(id)target selector:(SEL)selector
-{
-       return [self itemFromNormalSprite:normalSprite selectedSprite:selectedSprite disabledSprite:nil target:target selector:selector];
-}
-+(id) itemFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite disabledSprite:(CCNode<CCRGBAProtocol>*)disabledSprite target:(id)target selector:(SEL)selector
-{
-       return [[[self alloc] initFromNormalSprite:normalSprite selectedSprite:selectedSprite disabledSprite:disabledSprite target:target selector:selector] autorelease];
-}
--(id) initFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite disabledSprite:(CCNode<CCRGBAProtocol>*)disabledSprite target:(id)target selector:(SEL)selector
-{
-       if( (self=[super initWithTarget:target selector:selector]) ) {
-               
-               self.normalImage = normalSprite;
-               self.selectedImage = selectedSprite;
-               self.disabledImage = disabledSprite;
-               
-               [self setContentSize: [normalImage_ contentSize]];
-       }
-       return self;    
-}
-
-#if NS_BLOCKS_AVAILABLE
-+(id) itemFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite block:(void(^)(id sender))block {
-       return [self itemFromNormalSprite:normalSprite selectedSprite:selectedSprite disabledSprite:nil block:block];
-}
-
-+(id) itemFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite disabledSprite:(CCNode<CCRGBAProtocol>*)disabledSprite block:(void(^)(id sender))block {
-       return [[[self alloc] initFromNormalSprite:normalSprite selectedSprite:selectedSprite disabledSprite:disabledSprite block:block] autorelease];
-}
-
--(id) initFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSprite selectedSprite:(CCNode<CCRGBAProtocol>*)selectedSprite disabledSprite:(CCNode<CCRGBAProtocol>*)disabledSprite block:(void(^)(id sender))block {
-       block_ = [block copy];
-       return [self initFromNormalSprite:normalSprite selectedSprite:selectedSprite disabledSprite:disabledSprite target:block_ selector:@selector(ccCallbackBlockWithSender:)];
-}
-#endif // NS_BLOCKS_AVAILABLE
-
-
--(void) setNormalImage:(CCNode <CCRGBAProtocol>*)image
-{
-       if( image != normalImage_ ) {
-               image.anchorPoint = ccp(0,0);
-               image.visible = YES;
-               
-               [self removeChild:normalImage_ cleanup:YES];
-               [self addChild:image];
-               
-               normalImage_ = image;
-       }
-}
-
--(void) setSelectedImage:(CCNode <CCRGBAProtocol>*)image
-{
-       if( image != selectedImage_ ) {
-               image.anchorPoint = ccp(0,0);
-               image.visible = NO;
-               
-               [self removeChild:selectedImage_ cleanup:YES];
-               [self addChild:image];
-               
-               selectedImage_ = image;
-       }
-}
-
--(void) setDisabledImage:(CCNode <CCRGBAProtocol>*)image
-{
-       if( image != disabledImage_ ) {
-               image.anchorPoint = ccp(0,0);
-               image.visible = NO;
-               
-               [self removeChild:disabledImage_ cleanup:YES];
-               [self addChild:image];
-               
-               disabledImage_ = image;
-       }
-}
-
-#pragma mark CCMenuItemImage - CCRGBAProtocol protocol
-- (void) setOpacity: (GLubyte)opacity
-{
-       [normalImage_ setOpacity:opacity];
-       [selectedImage_ setOpacity:opacity];
-       [disabledImage_ setOpacity:opacity];
-}
-
--(void) setColor:(ccColor3B)color
-{
-       [normalImage_ setColor:color];
-       [selectedImage_ setColor:color];
-       [disabledImage_ setColor:color];        
-}
-
--(GLubyte) opacity
-{
-       return [normalImage_ opacity];
-}
-
--(ccColor3B) color
-{
-       return [normalImage_ color];
-}
-
--(void) selected
-{
-       [super selected];
-
-       if( selectedImage_ ) {
-               [normalImage_ setVisible:NO];
-               [selectedImage_ setVisible:YES];
-               [disabledImage_ setVisible:NO];
-               
-       } else { // there is not selected image
-       
-               [normalImage_ setVisible:YES];
-               [selectedImage_ setVisible:NO];
-               [disabledImage_ setVisible:NO];         
-       }
-}
-
--(void) unselected
-{
-       [super unselected];
-       [normalImage_ setVisible:YES];
-       [selectedImage_ setVisible:NO];
-       [disabledImage_ setVisible:NO];
-}
-
--(void) setIsEnabled:(BOOL)enabled
-{
-       [super setIsEnabled:enabled];
-
-       if( enabled ) {
-               [normalImage_ setVisible:YES];
-               [selectedImage_ setVisible:NO];
-               [disabledImage_ setVisible:NO];
-
-       } else {
-               if( disabledImage_ ) {
-                       [normalImage_ setVisible:NO];
-                       [selectedImage_ setVisible:NO];
-                       [disabledImage_ setVisible:YES];                
-               } else {
-                       [normalImage_ setVisible:YES];
-                       [selectedImage_ setVisible:NO];
-                       [disabledImage_ setVisible:NO];
-               }
-       }
-}
-
-@end
-
-#pragma mark -
-#pragma mark CCMenuItemImage
-
-@implementation CCMenuItemImage
-
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2
-{
-       return [self itemFromNormalImage:value selectedImage:value2 disabledImage: nil target:nil selector:nil];
-}
-
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2 target:(id) t selector:(SEL) s
-{
-       return [self itemFromNormalImage:value selectedImage:value2 disabledImage: nil target:t selector:s];
-}
-
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2 disabledImage: (NSString*) value3
-{
-       return [[[self alloc] initFromNormalImage:value selectedImage:value2 disabledImage:value3 target:nil selector:nil] autorelease];
-}
-
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2 disabledImage: (NSString*) value3 target:(id) t selector:(SEL) s
-{
-       return [[[self alloc] initFromNormalImage:value selectedImage:value2 disabledImage:value3 target:t selector:s] autorelease];
-}
-
--(id) initFromNormalImage: (NSString*) normalI selectedImage:(NSString*)selectedI disabledImage: (NSString*) disabledI target:(id)t selector:(SEL)sel
-{
-       CCNode<CCRGBAProtocol> *normalImage = [CCSprite spriteWithFile:normalI];
-       CCNode<CCRGBAProtocol> *selectedImage = nil;
-       CCNode<CCRGBAProtocol> *disabledImage = nil;
-
-       if( selectedI )
-               selectedImage = [CCSprite spriteWithFile:selectedI]; 
-       if(disabledI)
-               disabledImage = [CCSprite spriteWithFile:disabledI];
-
-       return [self initFromNormalSprite:normalImage selectedSprite:selectedImage disabledSprite:disabledImage target:t selector:sel];
-}
-
-#if NS_BLOCKS_AVAILABLE
-
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2 block:(void(^)(id sender))block {
-       return [self itemFromNormalImage:value selectedImage:value2 disabledImage:nil block:block];
-}
-
-+(id) itemFromNormalImage: (NSString*)value selectedImage:(NSString*) value2 disabledImage:(NSString*) value3 block:(void(^)(id sender))block {
-       return [[[self alloc] initFromNormalImage:value selectedImage:value2 disabledImage:value3 block:block] autorelease];
-}
-
--(id) initFromNormalImage: (NSString*) value selectedImage:(NSString*)value2 disabledImage:(NSString*) value3 block:(void(^)(id sender))block {
-       block_ = [block copy];
-       return [self initFromNormalImage:value selectedImage:value2 disabledImage:value3 target:block_ selector:@selector(ccCallbackBlockWithSender:)];
-}
-
-#endif // NS_BLOCKS_AVAILABLE
-
-@end
-
-#pragma mark -
-#pragma mark CCMenuItemToggle
-
-//
-// MenuItemToggle
-//
-@implementation CCMenuItemToggle
-
-@synthesize subItems = subItems_;
-@synthesize opacity = opacity_, color = color_;
-
-+(id) itemWithTarget: (id)t selector: (SEL)sel items: (CCMenuItem*) item, ...
-{
-       va_list args;
-       va_start(args, item);
-       
-       id s = [[[self alloc] initWithTarget: t selector:sel items: item vaList:args] autorelease];
-       
-       va_end(args);
-       return s;
-}
-
--(id) initWithTarget: (id)t selector: (SEL)sel items:(CCMenuItem*) item vaList: (va_list) args
-{
-       if( (self=[super initWithTarget:t selector:sel]) ) {
-       
-               self.subItems = [NSMutableArray arrayWithCapacity:2];
-               
-               int z = 0;
-               CCMenuItem *i = item;
-               while(i) {
-                       z++;
-                       [subItems_ addObject:i];
-                       i = va_arg(args, CCMenuItem*);
-               }
-
-               selectedIndex_ = NSUIntegerMax;
-               [self setSelectedIndex:0];
-       }
-       
-       return self;
-}
-
-#if NS_BLOCKS_AVAILABLE
-                                                                 
-+(id) itemWithBlock:(void(^)(id sender))block items:(CCMenuItem*)item, ... {
-       va_list args;
-       va_start(args, item);
-       
-       id s = [[[self alloc] initWithBlock:block items:item vaList:args] autorelease];
-       
-       va_end(args);
-       return s;
-}
-
--(id) initWithBlock:(void (^)(id))block items:(CCMenuItem*)item vaList:(va_list)args {
-       block_ = [block copy];
-       return [self initWithTarget:block_ selector:@selector(ccCallbackBlockWithSender:) items:item vaList:args];
-}
-
-#endif // NS_BLOCKS_AVAILABLE
-
--(void) dealloc
-{
-       [subItems_ release];
-       [super dealloc];
-}
-
--(void)setSelectedIndex:(NSUInteger)index
-{
-       if( index != selectedIndex_ ) {
-               selectedIndex_=index;
-               [self removeChildByTag:kCurrentItem cleanup:NO];
-               
-               CCMenuItem *item = [subItems_ objectAtIndex:selectedIndex_];
-               [self addChild:item z:0 tag:kCurrentItem];
-               
-               CGSize s = [item contentSize];
-               [self setContentSize: s];
-               item.position = ccp( s.width/2, s.height/2 );
-       }
-}
-
--(NSUInteger) selectedIndex
-{
-       return selectedIndex_;
-}
-
-
--(void) selected
-{
-       [super selected];
-       [[subItems_ objectAtIndex:selectedIndex_] selected];
-}
-
--(void) unselected
-{
-       [super unselected];
-       [[subItems_ objectAtIndex:selectedIndex_] unselected];
-}
-
--(void) activate
-{
-       // update index
-       if( isEnabled_ ) {
-               NSUInteger newIndex = (selectedIndex_ + 1) % [subItems_ count];
-               [self setSelectedIndex:newIndex];
-
-       }
-
-       [super activate];
-}
-
--(void) setIsEnabled: (BOOL)enabled
-{
-       [super setIsEnabled:enabled];
-       for(CCMenuItem* item in subItems_)
-               [item setIsEnabled:enabled];
-}
-
--(CCMenuItem*) selectedItem
-{
-       return [subItems_ objectAtIndex:selectedIndex_];
-}
-
-#pragma mark CCMenuItemToggle - CCRGBAProtocol protocol
-
-- (void) setOpacity: (GLubyte)opacity
-{
-       opacity_ = opacity;
-       for(CCMenuItem<CCRGBAProtocol>* item in subItems_)
-               [item setOpacity:opacity];
-}
-
-- (void) setColor:(ccColor3B)color
-{
-       color_ = color;
-       for(CCMenuItem<CCRGBAProtocol>* item in subItems_)
-               [item setColor:color];
-}
-
-@end
diff --git a/Classes/cocos2d/CCMotionStreak.h b/Classes/cocos2d/CCMotionStreak.h
deleted file mode 100644 (file)
index e017124..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008, 2009 Jason Booth
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import <Foundation/Foundation.h>
-#import "CCNode.h"
-#import "CCRibbon.h"
-
-/**
- * CCMotionStreak manages a Ribbon based on it's motion in absolute space.
- * You construct it with a fadeTime, minimum segment size, texture path, texture
- * length and color. The fadeTime controls how long it takes each vertex in
- * the streak to fade out, the minimum segment size it how many pixels the
- * streak will move before adding a new ribbon segement, and the texture
- * length is the how many pixels the texture is stretched across. The texture
- * is vertically aligned along the streak segemnts. 
- *
- * Limitations:
- *   CCMotionStreak, by default, will use the GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA blending function.
- *   This blending function might not be the correct one for certain textures.
- *   But you can change it by using:
- *     [obj setBlendFunc: (ccBlendfunc) {new_src_blend_func, new_dst_blend_func}];
- *
- * @since v0.8.1
- */
-@interface CCMotionStreak : CCNode <CCTextureProtocol>
-{
-       CCRibbon*       ribbon_;
-       float           segThreshold_;
-       float           width_;
-       CGPoint lastLocation_;
-}
-
-/** Ribbon used by MotionStreak (weak reference) */
-@property (nonatomic,readonly) CCRibbon *ribbon;
-
-/** creates the a MotionStreak. The image will be loaded using the TextureMgr. */
-+(id)streakWithFade:(float)fade minSeg:(float)seg image:(NSString*)path width:(float)width length:(float)length color:(ccColor4B)color;
-
-/** initializes a MotionStreak. The file will be loaded using the TextureMgr. */
--(id)initWithFade:(float)fade minSeg:(float)seg image:(NSString*)path width:(float)width length:(float)length color:(ccColor4B)color;
-
-/** polling function */
--(void)update:(ccTime)delta;
-
-@end
diff --git a/Classes/cocos2d/CCMotionStreak.m b/Classes/cocos2d/CCMotionStreak.m
deleted file mode 100644 (file)
index 698cc59..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008, 2009 Jason Booth
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *
- *********************************************************
- *
- * Motion Streak manages a Ribbon based on it's motion in absolute space.
- * You construct it with a fadeTime, minimum segment size, texture path, texture
- * length and color. The fadeTime controls how long it takes each vertex in
- * the streak to fade out, the minimum segment size it how many pixels the
- * streak will move before adding a new ribbon segement, and the texture
- * length is the how many pixels the texture is stretched across. The texture
- * is vertically aligned along the streak segemnts. 
- */
-
-#import "CCMotionStreak.h"
-#import "Support/CGPointExtension.h"
-
-@implementation CCMotionStreak
-
-@synthesize ribbon = ribbon_;
-
-+(id)streakWithFade:(float)fade minSeg:(float)seg image:(NSString*)path width:(float)width length:(float)length color:(ccColor4B)color
-{
-       return [[[self alloc] initWithFade:(float)fade minSeg:seg image:path width:width length:length color:color] autorelease];
-}
-
--(id)initWithFade:(float)fade minSeg:(float)seg image:(NSString*)path width:(float)width length:(float)length color:(ccColor4B)color
-{
-       if( (self=[super init])) {
-               segThreshold_ = seg;
-               width_ = width;
-               lastLocation_ = CGPointZero;
-               ribbon_ = [CCRibbon ribbonWithWidth:width_ image:path length:length color:color fade:fade];
-               [self addChild:ribbon_];
-
-               // update ribbon position
-               [self scheduleUpdate];
-       }
-       return self;
-}
-
--(void)update:(ccTime)delta
-{
-       CGPoint location = [self convertToWorldSpace:CGPointZero];
-       [ribbon_ setPosition:ccp(-1*location.x, -1*location.y)];
-       float len = ccpLength(ccpSub(lastLocation_, location));
-       if (len > segThreshold_)
-       {
-               [ribbon_ addPointAt:location width:width_];
-               lastLocation_ = location;
-       }
-       [ribbon_ update:delta];
-}
-
-
--(void)dealloc
-{
-       [super dealloc];
-}
-
-#pragma mark MotionStreak - CocosNodeTexture protocol
-
--(void) setTexture:(CCTexture2D*) texture
-{
-       [ribbon_ setTexture: texture];
-}
-
--(CCTexture2D*) texture
-{
-       return [ribbon_ texture];
-}
-
--(ccBlendFunc) blendFunc
-{
-       return [ribbon_ blendFunc];
-}
-
--(void) setBlendFunc:(ccBlendFunc)blendFunc
-{
-       [ribbon_ setBlendFunc:blendFunc];
-}
-
-@end
diff --git a/Classes/cocos2d/CCNode.h b/Classes/cocos2d/CCNode.h
deleted file mode 100644 (file)
index d6faaf5..0000000
+++ /dev/null
@@ -1,510 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * Copyright (c) 2009 Valentin Milea
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#import <Availability.h>
-
-#import "Platforms/CCGL.h"
-#import "CCAction.h"
-#import "ccTypes.h"
-#import "CCTexture2D.h"
-#import "CCProtocols.h"
-#import "ccConfig.h"
-#import "Support/CCArray.h"
-
-enum {
-       kCCNodeTagInvalid = -1,
-};
-
-@class CCCamera;
-@class CCGridBase;
-
-/** CCNode is the main element. Anything thats gets drawn or contains things that get drawn is a CCNode.
- The most popular CCNodes are: CCScene, CCLayer, CCSprite, CCMenu.
- The main features of a CCNode are:
- - They can contain other CCNode nodes (addChild, getChildByTag, removeChild, etc)
- - They can schedule periodic callback (schedule, unschedule, etc)
- - They can execute actions (runAction, stopAction, etc)
- Some CCNode nodes provide extra functionality for them or their children.
- Subclassing a CCNode usually means (one/all) of:
- - overriding init to initialize resources and schedule callbacks
- - create callbacks to handle the advancement of time
- - overriding draw to render the node
- Features of CCNode:
- - position
- - scale (x, y)
- - rotation (in degrees, clockwise)
- - CCCamera (an interface to gluLookAt )
- - CCGridBase (to do mesh transformations)
- - anchor point
- - size
- - visible
- - z-order
- - openGL z position
- Default values:
-  - rotation: 0
-  - position: (x=0,y=0)
-  - scale: (x=1,y=1)
-  - contentSize: (x=0,y=0)
-  - anchorPoint: (x=0,y=0)
- Limitations:
- - A CCNode is a "void" object. It doesn't have a texture
- Order in transformations with grid disabled
- -# The node will be translated (position)
- -# The node will be rotated (rotation)
- -# The node will be scaled (scale)
- -# The node will be moved according to the camera values (camera)
- Order in transformations with grid enabled
- -# The node will be translated (position)
- -# The node will be rotated (rotation)
- -# The node will be scaled (scale)
- -# The grid will capture the screen
- -# The node will be moved according to the camera values (camera)
- -# The grid will render the captured screen
- Camera:
- - Each node has a camera. By default it points to the center of the CCNode.
- */ 
-@interface CCNode : NSObject
-{      
-       // rotation angle
-       float rotation_;        
-       
-       // scaling factors
-       float scaleX_, scaleY_;
-       
-       // position of the node
-       CGPoint position_;
-       CGPoint positionInPixels_;
-
-       // is visible
-       BOOL visible_;
-       
-       // anchor point in pixels
-       CGPoint anchorPointInPixels_;   
-       // anchor point normalized
-       CGPoint anchorPoint_;   
-       // If YES the transformtions will be relative to (-transform.x, -transform.y).
-       // Sprites, Labels and any other "small" object uses it.
-       // Scenes, Layers and other "whole screen" object don't use it.
-       BOOL isRelativeAnchorPoint_;
-       
-       // untransformed size of the node
-       CGSize  contentSize_;
-       CGSize  contentSizeInPixels_;
-       
-       // transform
-       CGAffineTransform transform_, inverse_;
-#if    CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-       GLfloat transformGL_[16];
-#endif
-
-       // openGL real Z vertex
-       float vertexZ_;
-       
-       // a Camera
-       CCCamera *camera_;
-       
-       // a Grid
-       CCGridBase *grid_;
-       
-       // z-order value
-       NSInteger zOrder_;
-       
-       // array of children
-       CCArray *children_;
-       
-       // weakref to parent
-       CCNode *parent_;
-       
-       // a tag. any number you want to assign to the node
-       NSInteger tag_;
-    
-       // user data field
-       void *userData_;
-
-       // Is running
-       BOOL isRunning_;
-
-       // To reduce memory, place BOOLs that are not properties here:
-       BOOL isTransformDirty_:1;
-       BOOL isInverseDirty_:1;
-#if    CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-       BOOL isTransformGLDirty_:1;
-#endif
-}
-
-/** The z order of the node relative to it's "brothers": children of the same parent */
-@property(nonatomic,readonly) NSInteger zOrder;
-/** The real openGL Z vertex.
- Differences between openGL Z vertex and cocos2d Z order:
-   - OpenGL Z modifies the Z vertex, and not the Z order in the relation between parent-children
-   - OpenGL Z might require to set 2D projection
-   - cocos2d Z order works OK if all the nodes uses the same openGL Z vertex. eg: vertexZ = 0
- @warning: Use it at your own risk since it might break the cocos2d parent-children z order
- @since v0.8
- */
-@property (nonatomic,readwrite) float vertexZ;
-/** The rotation (angle) of the node in degrees. 0 is the default rotation angle. Positive values rotate node CW. */
-@property(nonatomic,readwrite,assign) float rotation;
-/** The scale factor of the node. 1.0 is the default scale factor. It modifies the X and Y scale at the same time. */
-@property(nonatomic,readwrite,assign) float scale;
-/** The scale factor of the node. 1.0 is the default scale factor. It only modifies the X scale factor. */
-@property(nonatomic,readwrite,assign) float scaleX;
-/** The scale factor of the node. 1.0 is the default scale factor. It only modifies the Y scale factor. */
-@property(nonatomic,readwrite,assign) float scaleY;
-/** Position (x,y) of the node in points. (0,0) is the left-bottom corner. */
-@property(nonatomic,readwrite,assign) CGPoint position;
-/** Position (x,y) of the node in points. (0,0) is the left-bottom corner. */
-@property(nonatomic,readwrite,assign) CGPoint positionInPixels;
-/** A CCCamera object that lets you move the node using a gluLookAt
-*/
-@property(nonatomic,readonly) CCCamera* camera;
-/** Array of children */
-@property(nonatomic,readonly) CCArray *children;
-/** A CCGrid object that is used when applying effects */
-@property(nonatomic,readwrite,retain) CCGridBase* grid;
-/** Whether of not the node is visible. Default is YES */
-@property(nonatomic,readwrite,assign) BOOL visible;
-/** anchorPoint is the point around which all transformations and positioning manipulations take place.
- It's like a pin in the node where it is "attached" to its parent.
- The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner.
- But you can use values higher than (1,1) and lower than (0,0) too.
- The default anchorPoint is (0,0). It starts in the bottom-left corner. CCSprite and other subclasses have a different default anchorPoint.
- @since v0.8
- */
-@property(nonatomic,readwrite) CGPoint anchorPoint;
-/** The anchorPoint in absolute pixels.
- Since v0.8 you can only read it. If you wish to modify it, use anchorPoint instead
- */
-@property(nonatomic,readonly) CGPoint anchorPointInPixels;
-
-/** The untransformed size of the node in Points
- The contentSize remains the same no matter the node is scaled or rotated.
- All nodes has a size. Layer and Scene has the same size of the screen.
- @since v0.8
- */
-@property (nonatomic,readwrite) CGSize contentSize;
-
-/** The untransformed size of the node in Pixels
- The contentSize remains the same no matter the node is scaled or rotated.
- All nodes has a size. Layer and Scene has the same size of the screen.
- @since v0.8
- */
-@property (nonatomic,readwrite) CGSize contentSizeInPixels;
-
-/** whether or not the node is running */
-@property(nonatomic,readonly) BOOL isRunning;
-/** A weak reference to the parent */
-@property(nonatomic,readwrite,assign) CCNode* parent;
-/** If YES the transformtions will be relative to it's anchor point.
- * Sprites, Labels and any other sizeble object use it have it enabled by default.
- * Scenes, Layers and other "whole screen" object don't use it, have it disabled by default.
- */
-@property(nonatomic,readwrite,assign) BOOL isRelativeAnchorPoint;
-/** A tag used to identify the node easily */
-@property(nonatomic,readwrite,assign) NSInteger tag;
-/** A custom user data pointer */
-@property(nonatomic,readwrite,assign) void *userData;
-
-// initializators
-/** allocates and initializes a node.
- The node will be created as "autorelease".
- */
-+(id) node;
-/** initializes the node */
--(id) init;
-
-
-// scene managment
-
-/** callback that is called every time the CCNode enters the 'stage'.
- If the CCNode enters the 'stage' with a transition, this callback is called when the transition starts.
- During onEnter you can't a "sister/brother" node.
- */
--(void) onEnter;
-/** callback that is called when the CCNode enters in the 'stage'.
- If the CCNode enters the 'stage' with a transition, this callback is called when the transition finishes.
- @since v0.8
- */
--(void) onEnterTransitionDidFinish;
-/** callback that is called every time the CCNode leaves the 'stage'.
- If the CCNode leaves the 'stage' with a transition, this callback is called when the transition finishes.
- During onExit you can't a "sister/brother" node.
- */
--(void) onExit;
-
-
-// composition: ADD
-
-/** Adds a child to the container with z-order as 0.
- If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.
- @since v0.7.1
- */
--(void) addChild: (CCNode*)node;
-
-/** Adds a child to the container with a z-order.
- If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.
- @since v0.7.1
- */
--(void) addChild: (CCNode*)node z:(int)z;
-
-/** Adds a child to the container with z order and tag.
- If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.
- @since v0.7.1
- */
--(void) addChild: (CCNode*)node z:(int)z tag:(int)tag;
-
-// composition: REMOVE
-
-/** Remove itself from its parent node. If cleanup is YES, then also remove all actions and callbacks.
- If the node orphan, then nothing happens.
- @since v0.99.3
- */
--(void) removeFromParentAndCleanup:(BOOL)cleanup;
-
-/** Removes a child from the container. It will also cleanup all running actions depending on the cleanup parameter.
- @since v0.7.1
- */
--(void) removeChild: (CCNode*)node cleanup:(BOOL)cleanup;
-
-/** Removes a child from the container by tag value. It will also cleanup all running actions depending on the cleanup parameter
- @since v0.7.1
- */
--(void) removeChildByTag:(int) tag cleanup:(BOOL)cleanup;
-
-/** Removes all children from the container and do a cleanup all running actions depending on the cleanup parameter.
- @since v0.7.1
- */
--(void) removeAllChildrenWithCleanup:(BOOL)cleanup;
-
-// composition: GET
-/** Gets a child from the container given its tag
- @return returns a CCNode object
- @since v0.7.1
- */
--(CCNode*) getChildByTag:(int) tag;
-
-/** Reorders a child according to a new z value.
- * The child MUST be already added.
- */
--(void) reorderChild:(CCNode*)child z:(int)zOrder;
-
-/** Stops all running actions and schedulers
- @since v0.8
- */
--(void) cleanup;
-
-// draw
-
-/** Override this method to draw your own node.
- The following GL states will be enabled by default:
-       - glEnableClientState(GL_VERTEX_ARRAY);
-       - glEnableClientState(GL_COLOR_ARRAY);
-       - glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-       - glEnable(GL_TEXTURE_2D);
-   AND YOU SHOULD NOT DISABLE THEM AFTER DRAWING YOUR NODE
- But if you enable any other GL state, you should disable it after drawing your node.
- */
--(void) draw;
-/** recursive method that visit its children and draw them */
--(void) visit;
-
-// transformations
-
-/** performs OpenGL view-matrix transformation based on position, scale, rotation and other attributes. */
--(void) transform;
-
-/** performs OpenGL view-matrix transformation of it's ancestors.
- Generally the ancestors are already transformed, but in certain cases (eg: attaching a FBO)
- it's necessary to transform the ancestors again.
- @since v0.7.2
- */
--(void) transformAncestors;
-
-/** returns a "local" axis aligned bounding box of the node in points.
- The returned box is relative only to its parent.
- The returned box is in Points.
- @since v0.8.2
- */
-- (CGRect) boundingBox;
-
-/** returns a "local" axis aligned bounding box of the node in pixels.
- The returned box is relative only to its parent.
- The returned box is in Points.
- @since v0.99.5
- */
-- (CGRect) boundingBoxInPixels;
-
-
-// actions
-
-/** Executes an action, and returns the action that is executed.
- The node becomes the action's target.
- @warning Starting from v0.8 actions don't retain their target anymore.
- @since v0.7.1
- @return An Action pointer
- */
--(CCAction*) runAction: (CCAction*) action;
-/** Removes all actions from the running action list */
--(void) stopAllActions;
-/** Removes an action from the running action list */
--(void) stopAction: (CCAction*) action;
-/** Removes an action from the running action list given its tag
- @since v0.7.1
-*/
--(void) stopActionByTag:(int) tag;
-/** Gets an action from the running action list given its tag
- @since v0.7.1
- @return the Action the with the given tag
- */
--(CCAction*) getActionByTag:(int) tag;
-/** Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays). 
- * Composable actions are counted as 1 action. Example:
- *    If you are running 1 Sequence of 7 actions, it will return 1.
- *    If you are running 7 Sequences of 2 actions, it will return 7.
- */
--(int) numberOfRunningActions;
-
-// timers
-
-/** check whether a selector is scheduled. */
-//-(BOOL) isScheduled: (SEL) selector;
-
-/** schedules the "update" method. It will use the order number 0. This method will be called every frame.
- Scheduled methods with a lower order value will be called before the ones that have a higher order value.
- Only one "udpate" method could be scheduled per node.
- @since v0.99.3
- */
--(void) scheduleUpdate;
-
-/** schedules the "update" selector with a custom priority. This selector will be called every frame.
- Scheduled selectors with a lower priority will be called before the ones that have a higher value.
- Only one "udpate" selector could be scheduled per node (You can't have 2 'update' selectors).
-
- @since v0.99.3
- */
--(void) scheduleUpdateWithPriority:(int)priority;
-
-/* unschedules the "update" method.
- @since v0.99.3
- */
--(void) unscheduleUpdate;
-
-
-/** schedules a selector.
- The scheduled selector will be ticked every frame
- */
--(void) schedule: (SEL) s;
-/** schedules a custom selector with an interval time in seconds.
- If time is 0 it will be ticked every frame.
- If time is 0, it is recommended to use 'scheduleUpdate' instead.
- If the selector is already scheduled, then the interval parameter will be updated without scheduling it again.
- */
--(void) schedule: (SEL) s interval:(ccTime)seconds;
-/** unschedules a custom selector.*/
--(void) unschedule: (SEL) s;
-
-/** unschedule all scheduled selectors: custom selectors, and the 'update' selector.
- Actions are not affected by this method.
-@since v0.99.3
- */
--(void) unscheduleAllSelectors;
-
-/** resumes all scheduled selectors and actions.
- Called internally by onEnter
- */
--(void) resumeSchedulerAndActions;
-/** pauses all scheduled selectors and actions.
- Called internally by onExit
- */
--(void) pauseSchedulerAndActions;
-
-
-// transformation methods
-
-/** Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
- The matrix is in Pixels.
- @since v0.7.1
- */
-- (CGAffineTransform)nodeToParentTransform;
-/** Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates.
- The matrix is in Pixels.
- @since v0.7.1
- */
-- (CGAffineTransform)parentToNodeTransform;
-/** Retrusn the world affine transform matrix. The matrix is in Pixels.
- @since v0.7.1
- */
-- (CGAffineTransform)nodeToWorldTransform;
-/** Returns the inverse world affine transform matrix. The matrix is in Pixels.
- @since v0.7.1
- */
-- (CGAffineTransform)worldToNodeTransform;
-/** Converts a Point to node (local) space coordinates. The result is in Points.
- @since v0.7.1
- */
-- (CGPoint)convertToNodeSpace:(CGPoint)worldPoint;
-/** Converts a Point to world space coordinates. The result is in Points.
- @since v0.7.1
- */
-- (CGPoint)convertToWorldSpace:(CGPoint)nodePoint;
-/** Converts a Point to node (local) space coordinates. The result is in Points.
- treating the returned/received node point as anchor relative.
- @since v0.7.1
- */
-- (CGPoint)convertToNodeSpaceAR:(CGPoint)worldPoint;
-/** Converts a local Point to world space coordinates.The result is in Points.
- treating the returned/received node point as anchor relative.
- @since v0.7.1
- */
-- (CGPoint)convertToWorldSpaceAR:(CGPoint)nodePoint;
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-/** Converts a UITouch to node (local) space coordinates. The result is in Points.
- @since v0.7.1
- */
-- (CGPoint)convertTouchToNodeSpace:(UITouch *)touch;
-/** Converts a UITouch to node (local) space coordinates. The result is in Points.
- This method is AR (Anchor Relative)..
- @since v0.7.1
- */
-- (CGPoint)convertTouchToNodeSpaceAR:(UITouch *)touch;
-#endif // __IPHONE_OS_VERSION_MAX_ALLOWED
-@end
diff --git a/Classes/cocos2d/CCNode.m b/Classes/cocos2d/CCNode.m
deleted file mode 100644 (file)
index 5392905..0000000
+++ /dev/null
@@ -1,883 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * Copyright (c) 2009 Valentin Milea
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#import "CCNode.h"
-#import "CCGrid.h"
-#import "CCDirector.h"
-#import "CCActionManager.h"
-#import "CCCamera.h"
-#import "CCScheduler.h"
-#import "ccConfig.h"
-#import "ccMacros.h"
-#import "Support/CGPointExtension.h"
-#import "Support/ccCArray.h"
-#import "Support/TransformUtils.h"
-#import "ccMacros.h"
-
-#import <Availability.h>
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import "Platforms/iOS/CCDirectorIOS.h"
-#endif
-
-
-#if CC_COCOSNODE_RENDER_SUBPIXEL
-#define RENDER_IN_SUBPIXEL
-#else
-#define RENDER_IN_SUBPIXEL (NSInteger)
-#endif
-
-@interface CCNode ()
-// lazy allocs
--(void) childrenAlloc;
-// helper that reorder a child
--(void) insertChild:(CCNode*)child z:(int)z;
-// used internally to alter the zOrder variable. DON'T call this method manually
--(void) _setZOrder:(int) z;
--(void) detachChild:(CCNode *)child cleanup:(BOOL)doCleanup;
-@end
-
-@implementation CCNode
-
-@synthesize children = children_;
-@synthesize visible = visible_;
-@synthesize parent = parent_;
-@synthesize grid = grid_;
-@synthesize zOrder = zOrder_;
-@synthesize tag = tag_;
-@synthesize vertexZ = vertexZ_;
-@synthesize isRunning = isRunning_;
-@synthesize userData = userData_;
-
-#pragma mark CCNode - Transform related properties
-
-@synthesize rotation = rotation_, scaleX = scaleX_, scaleY = scaleY_;
-@synthesize position = position_, positionInPixels = positionInPixels_;
-@synthesize anchorPoint = anchorPoint_, anchorPointInPixels = anchorPointInPixels_;
-@synthesize contentSize = contentSize_, contentSizeInPixels = contentSizeInPixels_;
-@synthesize isRelativeAnchorPoint = isRelativeAnchorPoint_;
-
-// getters synthesized, setters explicit
--(void) setRotation: (float)newRotation
-{
-       rotation_ = newRotation;
-       isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-       isTransformGLDirty_ = YES;
-#endif
-}
-
--(void) setScaleX: (float)newScaleX
-{
-       scaleX_ = newScaleX;
-       isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-       isTransformGLDirty_ = YES;
-#endif 
-}
-
--(void) setScaleY: (float)newScaleY
-{
-       scaleY_ = newScaleY;
-       isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-       isTransformGLDirty_ = YES;
-#endif 
-}
-
--(void) setPosition: (CGPoint)newPosition
-{
-       position_ = newPosition;
-       if( CC_CONTENT_SCALE_FACTOR() == 1 )
-               positionInPixels_ = position_;
-       else
-               positionInPixels_ = ccpMult( newPosition,  CC_CONTENT_SCALE_FACTOR() );
-       
-       isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-       isTransformGLDirty_ = YES;
-#endif 
-}
-
--(void) setPositionInPixels:(CGPoint)newPosition
-{
-       positionInPixels_ = newPosition;
-
-       if( CC_CONTENT_SCALE_FACTOR() == 1 )
-               position_ = positionInPixels_;
-       else
-               position_ = ccpMult( newPosition, 1/CC_CONTENT_SCALE_FACTOR() );
-       
-       isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-       isTransformGLDirty_ = YES;
-#endif 
-}
-
--(void) setIsRelativeAnchorPoint: (BOOL)newValue
-{
-       isRelativeAnchorPoint_ = newValue;
-       isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-       isTransformGLDirty_ = YES;
-#endif 
-}
-
--(void) setAnchorPoint:(CGPoint)point
-{
-       if( ! CGPointEqualToPoint(point, anchorPoint_) ) {
-               anchorPoint_ = point;
-               anchorPointInPixels_ = ccp( contentSizeInPixels_.width * anchorPoint_.x, contentSizeInPixels_.height * anchorPoint_.y );
-               isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-               isTransformGLDirty_ = YES;
-#endif         
-       }
-}
-
--(void) setContentSize:(CGSize)size
-{
-       if( ! CGSizeEqualToSize(size, contentSize_) ) {
-               contentSize_ = size;
-               
-               if( CC_CONTENT_SCALE_FACTOR() == 1 )
-                       contentSizeInPixels_ = contentSize_;
-               else
-                       contentSizeInPixels_ = CGSizeMake( size.width * CC_CONTENT_SCALE_FACTOR(), size.height * CC_CONTENT_SCALE_FACTOR() );
-               
-               anchorPointInPixels_ = ccp( contentSizeInPixels_.width * anchorPoint_.x, contentSizeInPixels_.height * anchorPoint_.y );
-               isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-               isTransformGLDirty_ = YES;
-#endif         
-       }
-}
-
--(void) setContentSizeInPixels:(CGSize)size
-{
-       if( ! CGSizeEqualToSize(size, contentSizeInPixels_) ) {
-               contentSizeInPixels_ = size;
-
-               if( CC_CONTENT_SCALE_FACTOR() == 1 )
-                       contentSize_ = contentSizeInPixels_;
-               else
-                       contentSize_ = CGSizeMake( size.width / CC_CONTENT_SCALE_FACTOR(), size.height / CC_CONTENT_SCALE_FACTOR() );
-               
-               anchorPointInPixels_ = ccp( contentSizeInPixels_.width * anchorPoint_.x, contentSizeInPixels_.height * anchorPoint_.y );
-               isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-               isTransformGLDirty_ = YES;
-#endif         
-       }
-}
-
-- (CGRect) boundingBox
-{
-       CGRect ret = [self boundingBoxInPixels];
-       return CC_RECT_PIXELS_TO_POINTS( ret );
-}
-
-- (CGRect) boundingBoxInPixels
-{
-       CGRect rect = CGRectMake(0, 0, contentSizeInPixels_.width, contentSizeInPixels_.height);
-       return CGRectApplyAffineTransform(rect, [self nodeToParentTransform]);
-}
-
--(void) setVertexZ:(float)vertexZ
-{
-       vertexZ_ = vertexZ * CC_CONTENT_SCALE_FACTOR();
-}
-
--(float) scale
-{
-       NSAssert( scaleX_ == scaleY_, @"CCNode#scale. ScaleX != ScaleY. Don't know which one to return");
-       return scaleX_;
-}
-
--(void) setScale:(float) s
-{
-       scaleX_ = scaleY_ = s;
-       isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-       isTransformGLDirty_ = YES;
-#endif 
-}
-
-#pragma mark CCNode - Init & cleanup
-
-+(id) node
-{
-       return [[[self alloc] init] autorelease];
-}
-
--(id) init
-{
-       if ((self=[super init]) ) {
-               
-               isRunning_ = NO;
-               
-               rotation_ = 0.0f;
-               scaleX_ = scaleY_ = 1.0f;
-               positionInPixels_ = position_ = CGPointZero;
-               anchorPointInPixels_ = anchorPoint_ = CGPointZero;
-               contentSizeInPixels_ = contentSize_ = CGSizeZero;
-               
-               
-               // "whole screen" objects. like Scenes and Layers, should set isRelativeAnchorPoint to NO
-               isRelativeAnchorPoint_ = YES; 
-               
-               isTransformDirty_ = isInverseDirty_ = YES;
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-               isTransformGLDirty_ = YES;
-#endif
-               
-               vertexZ_ = 0;
-               
-               grid_ = nil;
-               
-               visible_ = YES;
-               
-               tag_ = kCCNodeTagInvalid;
-               
-               zOrder_ = 0;
-               
-               // lazy alloc
-               camera_ = nil;
-               
-               // children (lazy allocs)
-               children_ = nil;
-               
-               // userData is always inited as nil
-               userData_ = nil;
-
-               //initialize parent to nil
-               parent_ = nil;
-       }
-       
-       return self;
-}
-
-- (void)cleanup
-{
-       // actions
-       [self stopAllActions];
-       [self unscheduleAllSelectors];
-       
-       // timers
-       [children_ makeObjectsPerformSelector:@selector(cleanup)];
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | Tag = %i>", [self class], self, tag_];
-}
-
-- (void) dealloc
-{
-       CCLOGINFO( @"cocos2d: deallocing %@", self);
-       
-       // attributes
-       [camera_ release];
-       
-       [grid_ release];
-       
-       // children
-       CCNode *child;
-       CCARRAY_FOREACH(children_, child)
-               child.parent = nil;
-       
-       [children_ release];
-       
-       [super dealloc];
-}
-
-#pragma mark CCNode Composition
-
--(void) childrenAlloc
-{
-       children_ = [[CCArray alloc] initWithCapacity:4];
-}
-
-// camera: lazy alloc
--(CCCamera*) camera
-{
-       if( ! camera_ ) {
-               camera_ = [[CCCamera alloc] init];
-               
-               // by default, center camera at the Sprite's anchor point
-               //              [camera_ setCenterX:anchorPointInPixels_.x centerY:anchorPointInPixels_.y centerZ:0];
-               //              [camera_ setEyeX:anchorPointInPixels_.x eyeY:anchorPointInPixels_.y eyeZ:1];
-               
-               //              [camera_ setCenterX:0 centerY:0 centerZ:0];
-               //              [camera_ setEyeX:0 eyeY:0 eyeZ:1];
-               
-       }
-       
-       return camera_;
-}
-
--(CCNode*) getChildByTag:(int) aTag
-{
-       NSAssert( aTag != kCCNodeTagInvalid, @"Invalid tag");
-       
-       CCNode *node;
-       CCARRAY_FOREACH(children_, node){
-               if( node.tag == aTag )
-                       return node;
-       }
-       // not found
-       return nil;
-}
-
-/* "add" logic MUST only be on this method
- * If a class want's to extend the 'addChild' behaviour it only needs
- * to override this method
- */
--(void) addChild: (CCNode*) child z:(int)z tag:(int) aTag
-{      
-       NSAssert( child != nil, @"Argument must be non-nil");
-       NSAssert( child.parent == nil, @"child already added. It can't be added again");
-       
-       if( ! children_ )
-               [self childrenAlloc];
-       
-       [self insertChild:child z:z];
-       
-       child.tag = aTag;
-       
-       [child setParent: self];
-       
-       if( isRunning_ ) {
-               [child onEnter];
-               [child onEnterTransitionDidFinish];
-       }
-}
-
--(void) addChild: (CCNode*) child z:(int)z
-{
-       NSAssert( child != nil, @"Argument must be non-nil");
-       [self addChild:child z:z tag:child.tag];
-}
-
--(void) addChild: (CCNode*) child
-{
-       NSAssert( child != nil, @"Argument must be non-nil");
-       [self addChild:child z:child.zOrder tag:child.tag];
-}
-
--(void) removeFromParentAndCleanup:(BOOL)cleanup
-{
-       [parent_ removeChild:self cleanup:cleanup];
-}
-
-/* "remove" logic MUST only be on this method
- * If a class want's to extend the 'removeChild' behavior it only needs
- * to override this method
- */
--(void) removeChild: (CCNode*)child cleanup:(BOOL)cleanup
-{
-       // explicit nil handling
-       if (child == nil)
-               return;
-       
-       if ( [children_ containsObject:child] )
-               [self detachChild:child cleanup:cleanup];
-}
-
--(void) removeChildByTag:(int)aTag cleanup:(BOOL)cleanup
-{
-       NSAssert( aTag != kCCNodeTagInvalid, @"Invalid tag");
-       
-       CCNode *child = [self getChildByTag:aTag];
-       
-       if (child == nil)
-               CCLOG(@"cocos2d: removeChildByTag: child not found!");
-       else
-               [self removeChild:child cleanup:cleanup];
-}
-
--(void) removeAllChildrenWithCleanup:(BOOL)cleanup
-{
-       // not using detachChild improves speed here
-       CCNode *c;
-       CCARRAY_FOREACH(children_, c)
-       {
-               // IMPORTANT:
-               //  -1st do onExit
-               //  -2nd cleanup
-               if (isRunning_)
-                       [c onExit];
-               
-               if (cleanup)
-                       [c cleanup];
-               
-               // set parent nil at the end (issue #476)
-               [c setParent:nil];
-       }
-       
-       [children_ removeAllObjects];
-}
-
--(void) detachChild:(CCNode *)child cleanup:(BOOL)doCleanup
-{
-       // IMPORTANT:
-       //  -1st do onExit
-       //  -2nd cleanup
-       if (isRunning_)
-               [child onExit];
-       
-       // If you don't do cleanup, the child's actions will not get removed and the
-       // its scheduledSelectors_ dict will not get released!
-       if (doCleanup)
-               [child cleanup];
-       
-       // set parent nil at the end (issue #476)
-       [child setParent:nil];
-       
-       [children_ removeObject:child];
-}
-
-// used internally to alter the zOrder variable. DON'T call this method manually
--(void) _setZOrder:(int) z
-{
-       zOrder_ = z;
-}
-
-// helper used by reorderChild & add
--(void) insertChild:(CCNode*)child z:(int)z
-{
-       NSUInteger index=0;
-       CCNode *a = [children_ lastObject];
-       
-       // quick comparison to improve performance
-       if (!a || a.zOrder <= z)
-               [children_ addObject:child];
-       
-       else
-       {
-               CCARRAY_FOREACH(children_, a) {
-                       if ( a.zOrder > z ) {
-                               [children_ insertObject:child atIndex:index];
-                               break;
-                       }
-                       index++;
-               }
-       }
-       
-       [child _setZOrder:z];
-}
-
--(void) reorderChild:(CCNode*) child z:(int)z
-{
-       NSAssert( child != nil, @"Child must be non-nil");
-       
-       [child retain];
-       [children_ removeObject:child];
-       
-       [self insertChild:child z:z];
-       
-       [child release];
-}
-
-#pragma mark CCNode Draw
-
--(void) draw
-{
-       // override me
-       // Only use this function to draw your staff.
-       // DON'T draw your stuff outside this method
-}
-
--(void) visit
-{
-       // quick return if not visible
-       if (!visible_)
-               return;
-       
-       glPushMatrix();
-       
-       if ( grid_ && grid_.active) {
-               [grid_ beforeDraw];
-               [self transformAncestors];
-       }
-
-       [self transform];
-       
-       if(children_) {
-               ccArray *arrayData = children_->data;
-               NSUInteger i = 0;
-               
-               // draw children zOrder < 0
-               for( ; i < arrayData->num; i++ ) {
-                       CCNode *child = arrayData->arr[i];
-                       if ( [child zOrder] < 0 )
-                               [child visit];
-                       else
-                               break;
-               }
-               
-               // self draw
-               [self draw];
-               
-               // draw children zOrder >= 0
-               for( ; i < arrayData->num; i++ ) {
-                       CCNode *child =  arrayData->arr[i];
-                       [child visit];
-               }
-
-       } else
-               [self draw];
-       
-       if ( grid_ && grid_.active)
-               [grid_ afterDraw:self];
-       
-       glPopMatrix();
-}
-
-#pragma mark CCNode - Transformations
-
--(void) transformAncestors
-{
-       if( parent_ ) {
-               [parent_ transformAncestors];
-               [parent_ transform];
-       }
-}
-
--(void) transform
-{      
-       // transformations
-       
-#if CC_NODE_TRANSFORM_USING_AFFINE_MATRIX
-       // BEGIN alternative -- using cached transform
-       //
-       if( isTransformGLDirty_ ) {
-               CGAffineTransform t = [self nodeToParentTransform];
-               CGAffineToGL(&t, transformGL_);
-               isTransformGLDirty_ = NO;
-       }
-       
-       glMultMatrixf(transformGL_);
-       if( vertexZ_ )
-               glTranslatef(0, 0, vertexZ_);
-       
-       // XXX: Expensive calls. Camera should be integrated into the cached affine matrix
-       if ( camera_ && !(grid_ && grid_.active) )
-       {
-               BOOL translate = (anchorPointInPixels_.x != 0.0f || anchorPointInPixels_.y != 0.0f);
-               
-               if( translate )
-                       ccglTranslate(RENDER_IN_SUBPIXEL(anchorPointInPixels_.x), RENDER_IN_SUBPIXEL(anchorPointInPixels_.y), 0);
-               
-               [camera_ locate];
-               
-               if( translate )
-                       ccglTranslate(RENDER_IN_SUBPIXEL(-anchorPointInPixels_.x), RENDER_IN_SUBPIXEL(-anchorPointInPixels_.y), 0);
-       }
-       
-       
-       // END alternative
-       
-#else
-       // BEGIN original implementation
-       // 
-       // translate
-       if ( isRelativeAnchorPoint_ && (anchorPointInPixels_.x != 0 || anchorPointInPixels_.y != 0 ) )
-               glTranslatef( RENDER_IN_SUBPIXEL(-anchorPointInPixels_.x), RENDER_IN_SUBPIXEL(-anchorPointInPixels_.y), 0);
-       
-       if (anchorPointInPixels_.x != 0 || anchorPointInPixels_.y != 0)
-               glTranslatef( RENDER_IN_SUBPIXEL(positionInPixels_.x + anchorPointInPixels_.x), RENDER_IN_SUBPIXEL(positionInPixels_.y + anchorPointInPixels_.y), vertexZ_);
-       else if ( positionInPixels_.x !=0 || positionInPixels_.y !=0 || vertexZ_ != 0)
-               glTranslatef( RENDER_IN_SUBPIXEL(positionInPixels_.x), RENDER_IN_SUBPIXEL(positionInPixels_.y), vertexZ_ );
-       
-       // rotate
-       if (rotation_ != 0.0f )
-               glRotatef( -rotation_, 0.0f, 0.0f, 1.0f );
-       
-       // scale
-       if (scaleX_ != 1.0f || scaleY_ != 1.0f)
-               glScalef( scaleX_, scaleY_, 1.0f );
-       
-       if ( camera_ && !(grid_ && grid_.active) )
-               [camera_ locate];
-       
-       // restore and re-position point
-       if (anchorPointInPixels_.x != 0.0f || anchorPointInPixels_.y != 0.0f)
-               glTranslatef(RENDER_IN_SUBPIXEL(-anchorPointInPixels_.x), RENDER_IN_SUBPIXEL(-anchorPointInPixels_.y), 0);
-       
-       //
-       // END original implementation
-#endif
-       
-}
-
-#pragma mark CCNode SceneManagement
-
--(void) onEnter
-{
-       [children_ makeObjectsPerformSelector:@selector(onEnter)];      
-       [self resumeSchedulerAndActions];
-       
-       isRunning_ = YES;
-}
-
--(void) onEnterTransitionDidFinish
-{
-       [children_ makeObjectsPerformSelector:@selector(onEnterTransitionDidFinish)];
-}
-
--(void) onExit
-{
-       [self pauseSchedulerAndActions];
-       isRunning_ = NO;        
-       
-       [children_ makeObjectsPerformSelector:@selector(onExit)];
-}
-
-#pragma mark CCNode Actions
-
--(CCAction*) runAction:(CCAction*) action
-{
-       NSAssert( action != nil, @"Argument must be non-nil");
-       
-       [[CCActionManager sharedManager] addAction:action target:self paused:!isRunning_];
-       return action;
-}
-
--(void) stopAllActions
-{
-       [[CCActionManager sharedManager] removeAllActionsFromTarget:self];
-}
-
--(void) stopAction: (CCAction*) action
-{
-       [[CCActionManager sharedManager] removeAction:action];
-}
-
--(void) stopActionByTag:(int)aTag
-{
-       NSAssert( aTag != kCCActionTagInvalid, @"Invalid tag");
-       [[CCActionManager sharedManager] removeActionByTag:aTag target:self];
-}
-
--(CCAction*) getActionByTag:(int) aTag
-{
-       NSAssert( aTag != kCCActionTagInvalid, @"Invalid tag");
-       return [[CCActionManager sharedManager] getActionByTag:aTag target:self];
-}
-
--(int) numberOfRunningActions
-{
-       return [[CCActionManager sharedManager] numberOfRunningActionsInTarget:self];
-}
-
-#pragma mark CCNode - Scheduler
-
--(void) scheduleUpdate
-{
-       [self scheduleUpdateWithPriority:0];
-}
-
--(void) scheduleUpdateWithPriority:(int)priority
-{
-       [[CCScheduler sharedScheduler] scheduleUpdateForTarget:self priority:priority paused:!isRunning_];
-}
-
--(void) unscheduleUpdate
-{
-       [[CCScheduler sharedScheduler] unscheduleUpdateForTarget:self];
-}
-
--(void) schedule:(SEL)selector
-{
-       [self schedule:selector interval:0];
-}
-
--(void) schedule:(SEL)selector interval:(ccTime)interval
-{
-       NSAssert( selector != nil, @"Argument must be non-nil");
-       NSAssert( interval >=0, @"Arguemnt must be positive");
-       
-       [[CCScheduler sharedScheduler] scheduleSelector:selector forTarget:self interval:interval paused:!isRunning_];
-}
-
--(void) unschedule:(SEL)selector
-{
-       // explicit nil handling
-       if (selector == nil)
-               return;
-       
-       [[CCScheduler sharedScheduler] unscheduleSelector:selector forTarget:self];
-}
-
--(void) unscheduleAllSelectors
-{
-       [[CCScheduler sharedScheduler] unscheduleAllSelectorsForTarget:self];
-}
-- (void) resumeSchedulerAndActions
-{
-       [[CCScheduler sharedScheduler] resumeTarget:self];
-       [[CCActionManager sharedManager] resumeTarget:self];
-}
-
-- (void) pauseSchedulerAndActions
-{
-       [[CCScheduler sharedScheduler] pauseTarget:self];
-       [[CCActionManager sharedManager] pauseTarget:self];
-}
-
-#pragma mark CCNode Transform
-
-- (CGAffineTransform)nodeToParentTransform
-{
-       if ( isTransformDirty_ ) {
-               
-               transform_ = CGAffineTransformIdentity;
-               
-               if ( !isRelativeAnchorPoint_ && !CGPointEqualToPoint(anchorPointInPixels_, CGPointZero) )
-                       transform_ = CGAffineTransformTranslate(transform_, anchorPointInPixels_.x, anchorPointInPixels_.y);
-               
-               if( ! CGPointEqualToPoint(positionInPixels_, CGPointZero) )
-                       transform_ = CGAffineTransformTranslate(transform_, positionInPixels_.x, positionInPixels_.y);
-               
-               if( rotation_ != 0 )
-                       transform_ = CGAffineTransformRotate(transform_, -CC_DEGREES_TO_RADIANS(rotation_));
-               
-               if( ! (scaleX_ == 1 && scaleY_ == 1) ) 
-                       transform_ = CGAffineTransformScale(transform_, scaleX_, scaleY_);
-               
-               if( ! CGPointEqualToPoint(anchorPointInPixels_, CGPointZero) )
-                       transform_ = CGAffineTransformTranslate(transform_, -anchorPointInPixels_.x, -anchorPointInPixels_.y);
-               
-               isTransformDirty_ = NO;
-       }
-       
-       return transform_;
-}
-
-- (CGAffineTransform)parentToNodeTransform
-{
-       if ( isInverseDirty_ ) {
-               inverse_ = CGAffineTransformInvert([self nodeToParentTransform]);
-               isInverseDirty_ = NO;
-       }
-       
-       return inverse_;
-}
-
-- (CGAffineTransform)nodeToWorldTransform
-{
-       CGAffineTransform t = [self nodeToParentTransform];
-       
-       for (CCNode *p = parent_; p != nil; p = p.parent)
-               t = CGAffineTransformConcat(t, [p nodeToParentTransform]);
-       
-       return t;
-}
-
-- (CGAffineTransform)worldToNodeTransform
-{
-       return CGAffineTransformInvert([self nodeToWorldTransform]);
-}
-
-- (CGPoint)convertToNodeSpace:(CGPoint)worldPoint
-{
-       CGPoint ret;
-       if( CC_CONTENT_SCALE_FACTOR() == 1 )
-               ret = CGPointApplyAffineTransform(worldPoint, [self worldToNodeTransform]);
-       else {
-               ret = ccpMult( worldPoint, CC_CONTENT_SCALE_FACTOR() );
-               ret = CGPointApplyAffineTransform(ret, [self worldToNodeTransform]);
-               ret = ccpMult( ret, 1/CC_CONTENT_SCALE_FACTOR() );
-       }
-       
-       return ret;
-}
-
-- (CGPoint)convertToWorldSpace:(CGPoint)nodePoint
-{
-       CGPoint ret;
-       if( CC_CONTENT_SCALE_FACTOR() == 1 )
-               ret = CGPointApplyAffineTransform(nodePoint, [self nodeToWorldTransform]);
-       else {
-               ret = ccpMult( nodePoint, CC_CONTENT_SCALE_FACTOR() );
-               ret = CGPointApplyAffineTransform(ret, [self nodeToWorldTransform]);
-               ret = ccpMult( ret, 1/CC_CONTENT_SCALE_FACTOR() );
-       }
-       
-       return ret;
-}
-
-- (CGPoint)convertToNodeSpaceAR:(CGPoint)worldPoint
-{
-       CGPoint nodePoint = [self convertToNodeSpace:worldPoint];
-       CGPoint anchorInPoints;
-       if( CC_CONTENT_SCALE_FACTOR() == 1 )
-               anchorInPoints = anchorPointInPixels_;
-       else
-               anchorInPoints = ccpMult( anchorPointInPixels_, 1/CC_CONTENT_SCALE_FACTOR() );
-          
-       return ccpSub(nodePoint, anchorInPoints);
-}
-
-- (CGPoint)convertToWorldSpaceAR:(CGPoint)nodePoint
-{
-       CGPoint anchorInPoints;
-       if( CC_CONTENT_SCALE_FACTOR() == 1 )
-               anchorInPoints = anchorPointInPixels_;
-       else
-               anchorInPoints = ccpMult( anchorPointInPixels_, 1/CC_CONTENT_SCALE_FACTOR() );
-       
-       nodePoint = ccpAdd(nodePoint, anchorInPoints);
-       return [self convertToWorldSpace:nodePoint];
-}
-
-- (CGPoint)convertToWindowSpace:(CGPoint)nodePoint
-{
-    CGPoint worldPoint = [self convertToWorldSpace:nodePoint];
-       return [[CCDirector sharedDirector] convertToUI:worldPoint];
-}
-
-// convenience methods which take a UITouch instead of CGPoint
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-
-- (CGPoint)convertTouchToNodeSpace:(UITouch *)touch
-{
-       CGPoint point = [touch locationInView: [touch view]];
-       point = [[CCDirector sharedDirector] convertToGL: point];
-       return [self convertToNodeSpace:point];
-}
-
-- (CGPoint)convertTouchToNodeSpaceAR:(UITouch *)touch
-{
-       CGPoint point = [touch locationInView: [touch view]];
-       point = [[CCDirector sharedDirector] convertToGL: point];
-       return [self convertToNodeSpaceAR:point];
-}
-
-#endif // __IPHONE_OS_VERSION_MAX_ALLOWED
-
-
-@end
diff --git a/Classes/cocos2d/CCParallaxNode.h b/Classes/cocos2d/CCParallaxNode.h
deleted file mode 100644 (file)
index c41b304..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "CCNode.h"
-#import "Support/ccCArray.h"
-
-/** CCParallaxNode: A node that simulates a parallax scroller
- The children will be moved faster / slower than the parent according the the parallax ratio.
- */
-@interface CCParallaxNode : CCNode
-{
-       ccArray                         *parallaxArray_;
-       CGPoint                         lastPosition;
-}
-
-/** array that holds the offset / ratio of the children */
-@property (nonatomic,readwrite) ccArray * parallaxArray;
-
-/** Adds a child to the container with a z-order, a parallax ratio and a position offset
- It returns self, so you can chain several addChilds.
- @since v0.8
- */
--(void) addChild: (CCNode*)node z:(int)z parallaxRatio:(CGPoint)c positionOffset:(CGPoint)positionOffset;
-
-@end
diff --git a/Classes/cocos2d/CCParallaxNode.m b/Classes/cocos2d/CCParallaxNode.m
deleted file mode 100644 (file)
index 20f573c..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "CCParallaxNode.h"
-#import "Support/CGPointExtension.h"
-#import "Support/ccCArray.h"
-
-@interface CGPointObject : NSObject
-{
-       CGPoint ratio_;
-       CGPoint offset_;
-       CCNode *child_; // weak ref
-}
-@property (readwrite) CGPoint ratio;
-@property (readwrite) CGPoint offset;
-@property (readwrite,assign) CCNode *child;
-+(id) pointWithCGPoint:(CGPoint)point offset:(CGPoint)offset;
--(id) initWithCGPoint:(CGPoint)point offset:(CGPoint)offset;
-@end
-@implementation CGPointObject
-@synthesize ratio = ratio_;
-@synthesize offset = offset_;
-@synthesize child=child_;
-
-+(id) pointWithCGPoint:(CGPoint)ratio offset:(CGPoint)offset
-{
-       return [[[self alloc] initWithCGPoint:ratio offset:offset] autorelease];
-}
--(id) initWithCGPoint:(CGPoint)ratio offset:(CGPoint)offset
-{
-       if( (self=[super init])) {
-               ratio_ = ratio;
-               offset_ = offset;
-       }
-       return self;
-}
-@end
-
-@implementation CCParallaxNode
-
-@synthesize parallaxArray = parallaxArray_;
-
--(id) init
-{
-       if( (self=[super init]) ) {
-               parallaxArray_ = ccArrayNew(5);         
-               lastPosition = CGPointMake(-100,-100);
-       }
-       return self;
-}
-
-- (void) dealloc
-{
-       if( parallaxArray_ ) {
-               ccArrayFree(parallaxArray_);
-               parallaxArray_ = nil;
-       }
-       [super dealloc];
-}
-
--(void) addChild:(CCNode*)child z:(int)z tag:(int)tag
-{
-       NSAssert(NO,@"ParallaxNode: use addChild:z:parallaxRatio:positionOffset instead");
-}
-
--(void) addChild: (CCNode*) child z:(int)z parallaxRatio:(CGPoint)ratio positionOffset:(CGPoint)offset
-{
-       NSAssert( child != nil, @"Argument must be non-nil");
-       CGPointObject *obj = [CGPointObject pointWithCGPoint:ratio offset:offset];
-       obj.child = child;
-       ccArrayAppendObjectWithResize(parallaxArray_, obj);
-       
-       CGPoint pos = self.position;
-       pos.x = pos.x * ratio.x + offset.x;
-       pos.y = pos.y * ratio.y + offset.y;
-       child.position = pos;
-       
-       [super addChild: child z:z tag:child.tag];
-}
-
--(void) removeChild:(CCNode*)node cleanup:(BOOL)cleanup
-{
-       for( unsigned int i=0;i < parallaxArray_->num;i++) {
-               CGPointObject *point = parallaxArray_->arr[i];
-               if( [point.child isEqual:node] ) {
-                       ccArrayRemoveObjectAtIndex(parallaxArray_, i);
-                       break;
-               }
-       }
-       [super removeChild:node cleanup:cleanup];
-}
-
--(void) removeAllChildrenWithCleanup:(BOOL)cleanup
-{
-       ccArrayRemoveAllObjects(parallaxArray_);
-       [super removeAllChildrenWithCleanup:cleanup];
-}
-
--(CGPoint) absolutePosition_
-{
-       CGPoint ret = position_;
-       
-       CCNode *cn = self;
-       
-       while (cn.parent != nil) {
-               cn = cn.parent;
-               ret = ccpAdd( ret,  cn.position );
-       }
-       
-       return ret;
-}
-
-/*
- The positions are updated at visit because:
-   - using a timer is not guaranteed that it will called after all the positions were updated
-   - overriding "draw" will only precise if the children have a z > 0
-*/
--(void) visit
-{
-//     CGPoint pos = position_;
-//     CGPoint pos = [self convertToWorldSpace:CGPointZero];
-       CGPoint pos = [self absolutePosition_];
-       if( ! CGPointEqualToPoint(pos, lastPosition) ) {
-               
-               for(unsigned int i=0; i < parallaxArray_->num; i++ ) {
-
-                       CGPointObject *point = parallaxArray_->arr[i];
-                       float x = -pos.x + pos.x * point.ratio.x + point.offset.x;
-                       float y = -pos.y + pos.y * point.ratio.y + point.offset.y;                      
-                       point.child.position = ccp(x,y);
-               }
-               
-               lastPosition = pos;
-       }
-       
-       [super visit];
-}
-@end
diff --git a/Classes/cocos2d/CCParticleExamples.h b/Classes/cocos2d/CCParticleExamples.h
deleted file mode 100644 (file)
index b28fca9..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import <Availability.h>
-
-#import "CCParticleSystemPoint.h"
-#import "CCParticleSystemQuad.h"
-
-// build each architecture with the optimal particle system
-
-// ARMv7, Mac or Simulator use "Quad" particle
-#if defined(__ARM_NEON__) || defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || TARGET_IPHONE_SIMULATOR
-       #define ARCH_OPTIMAL_PARTICLE_SYSTEM CCParticleSystemQuad
-
-// ARMv6 use "Point" particle
-#elif __arm__
-       #define ARCH_OPTIMAL_PARTICLE_SYSTEM CCParticleSystemPoint
-#else
-       #error(unknown architecture)
-#endif
-
-
-//! A fire particle system
-@interface CCParticleFire: ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
-
-//! A fireworks particle system
-@interface CCParticleFireworks : ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
-
-//! A sun particle system
-@interface CCParticleSun : ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
-
-//! A galaxy particle system
-@interface CCParticleGalaxy : ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
-
-//! A flower particle system
-@interface CCParticleFlower : ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
-
-//! A meteor particle system
-@interface CCParticleMeteor : ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
-
-//! An spiral particle system
-@interface CCParticleSpiral : ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
-
-//! An explosion particle system
-@interface CCParticleExplosion : ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
-
-//! An smoke particle system
-@interface CCParticleSmoke : ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
-
-//! An snow particle system
-@interface CCParticleSnow : ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
-
-//! A rain particle system
-@interface CCParticleRain : ARCH_OPTIMAL_PARTICLE_SYSTEM
-{
-}
-@end
diff --git a/Classes/cocos2d/CCParticleExamples.m b/Classes/cocos2d/CCParticleExamples.m
deleted file mode 100644 (file)
index c3b8f8f..0000000
+++ /dev/null
@@ -1,925 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-// cocos2d
-#import "CCParticleExamples.h"
-#import "CCTextureCache.h"
-#import "CCDirector.h"
-#import "Support/CGPointExtension.h"
-
-//
-// ParticleFireworks
-//
-@implementation CCParticleFireworks
--(id) init
-{
-       return [self initWithTotalParticles:1500];
-}
-
--(id) initWithTotalParticles:(int)p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-               // duration
-               duration = kCCParticleDurationInfinity;
-
-               // Gravity Mode
-               self.emitterMode = kCCParticleModeGravity;
-
-               // Gravity Mode: gravity
-               self.gravity = ccp(0,-90);
-               
-               // Gravity Mode:  radial
-               self.radialAccel = 0;
-               self.radialAccelVar = 0;
-
-               //  Gravity Mode: speed of particles
-               self.speed = 180;
-               self.speedVar = 50;
-               
-               // emitter position
-               CGSize winSize = [[CCDirector sharedDirector] winSize];
-               self.position = ccp(winSize.width/2, winSize.height/2);
-               
-               // angle
-               angle = 90;
-               angleVar = 20;
-                               
-               // life of particles
-               life = 3.5f;
-               lifeVar = 1;
-                       
-               // emits per frame
-               emissionRate = totalParticles/life;
-               
-               // color of particles
-               startColor.r = 0.5f;
-               startColor.g = 0.5f;
-               startColor.b = 0.5f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.5f;
-               startColorVar.g = 0.5f;
-               startColorVar.b = 0.5f;
-               startColorVar.a = 0.1f;
-               endColor.r = 0.1f;
-               endColor.g = 0.1f;
-               endColor.b = 0.1f;
-               endColor.a = 0.2f;
-               endColorVar.r = 0.1f;
-               endColorVar.g = 0.1f;
-               endColorVar.b = 0.1f;
-               endColorVar.a = 0.2f;
-               
-               // size, in pixels
-               startSize = 8.0f;
-               startSizeVar = 2.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-
-               // additive
-               self.blendAdditive = NO;
-       }
-       
-       return self;
-}
-@end
-
-//
-// ParticleFire
-//
-@implementation CCParticleFire
--(id) init
-{
-       return [self initWithTotalParticles:250];
-}
-
--(id) initWithTotalParticles:(int) p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-
-               // duration
-               duration = kCCParticleDurationInfinity;
-
-               // Gravity Mode
-               self.emitterMode = kCCParticleModeGravity;
-
-               // Gravity Mode: gravity
-               self.gravity = ccp(0,0);
-               
-               // Gravity Mode: radial acceleration
-               self.radialAccel = 0;
-               self.radialAccelVar = 0;
-               
-               // Gravity Mode: speed of particles
-               self.speed = 60;
-               self.speedVar = 20;             
-               
-               // starting angle
-               angle = 90;
-               angleVar = 10;
-               
-               // emitter position
-               CGSize winSize = [[CCDirector sharedDirector] winSize];
-               self.position = ccp(winSize.width/2, 60);
-               posVar = ccp(40, 20);
-               
-               // life of particles
-               life = 3;
-               lifeVar = 0.25f;
-               
-                       
-               // size, in pixels
-               startSize = 54.0f;
-               startSizeVar = 10.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-
-               // emits per frame
-               emissionRate = totalParticles/life;
-               
-               // color of particles
-               startColor.r = 0.76f;
-               startColor.g = 0.25f;
-               startColor.b = 0.12f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.0f;
-               startColorVar.g = 0.0f;
-               startColorVar.b = 0.0f;
-               startColorVar.a = 0.0f;
-               endColor.r = 0.0f;
-               endColor.g = 0.0f;
-               endColor.b = 0.0f;
-               endColor.a = 1.0f;
-               endColorVar.r = 0.0f;
-               endColorVar.g = 0.0f;
-               endColorVar.b = 0.0f;
-               endColorVar.a = 0.0f;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-               
-               // additive
-               self.blendAdditive = YES;
-       }
-               
-       return self;
-}
-@end
-
-//
-// ParticleSun
-//
-@implementation CCParticleSun
--(id) init
-{
-       return [self initWithTotalParticles:350];
-}
-
--(id) initWithTotalParticles:(int) p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-
-               // additive
-               self.blendAdditive = YES;
-                       
-               // duration
-               duration = kCCParticleDurationInfinity;
-               
-               // Gravity Mode
-               self.emitterMode = kCCParticleModeGravity;
-               
-               // Gravity Mode: gravity
-               self.gravity = ccp(0,0);
-               
-               // Gravity mode: radial acceleration
-               self.radialAccel = 0;
-               self.radialAccelVar = 0;
-               
-               // Gravity mode: speed of particles
-               self.speed = 20;
-               self.speedVar = 5;
-                               
-               
-               // angle
-               angle = 90;
-               angleVar = 360;
-               
-               // emitter position
-               CGSize winSize = [[CCDirector sharedDirector] winSize];
-               self.position = ccp(winSize.width/2, winSize.height/2);
-               posVar = CGPointZero;
-               
-               // life of particles
-               life = 1;
-               lifeVar = 0.5f;
-               
-               // size, in pixels
-               startSize = 30.0f;
-               startSizeVar = 10.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-
-               // emits per seconds
-               emissionRate = totalParticles/life;
-               
-               // color of particles
-               startColor.r = 0.76f;
-               startColor.g = 0.25f;
-               startColor.b = 0.12f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.0f;
-               startColorVar.g = 0.0f;
-               startColorVar.b = 0.0f;
-               startColorVar.a = 0.0f;
-               endColor.r = 0.0f;
-               endColor.g = 0.0f;
-               endColor.b = 0.0f;
-               endColor.a = 1.0f;
-               endColorVar.r = 0.0f;
-               endColorVar.g = 0.0f;
-               endColorVar.b = 0.0f;
-               endColorVar.a = 0.0f;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-       }
-               
-       return self;
-}
-@end
-
-//
-// ParticleGalaxy
-//
-@implementation CCParticleGalaxy
--(id) init
-{
-       return [self initWithTotalParticles:200];
-}
-
--(id) initWithTotalParticles:(int)p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-
-               // duration
-               duration = kCCParticleDurationInfinity;
-
-               // Gravity Mode
-               self.emitterMode = kCCParticleModeGravity;
-
-               // Gravity Mode: gravity
-               self.gravity = ccp(0,0);
-               
-               // Gravity Mode: speed of particles
-               self.speed = 60;
-               self.speedVar = 10;
-                       
-               // Gravity Mode: radial
-               self.radialAccel = -80;
-               self.radialAccelVar = 0;
-               
-               // Gravity Mode: tagential
-               self.tangentialAccel = 80;
-               self.tangentialAccelVar = 0;
-               
-               // angle
-               angle = 90;
-               angleVar = 360;
-               
-               // emitter position
-               CGSize winSize = [[CCDirector sharedDirector] winSize];
-               self.position = ccp(winSize.width/2, winSize.height/2);
-               posVar = CGPointZero;
-               
-               // life of particles
-               life = 4;
-               lifeVar = 1;
-               
-               // size, in pixels
-               startSize = 37.0f;
-               startSizeVar = 10.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-               
-               // emits per second
-               emissionRate = totalParticles/life;
-               
-               // color of particles
-               startColor.r = 0.12f;
-               startColor.g = 0.25f;
-               startColor.b = 0.76f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.0f;
-               startColorVar.g = 0.0f;
-               startColorVar.b = 0.0f;
-               startColorVar.a = 0.0f;
-               endColor.r = 0.0f;
-               endColor.g = 0.0f;
-               endColor.b = 0.0f;
-               endColor.a = 1.0f;
-               endColorVar.r = 0.0f;
-               endColorVar.g = 0.0f;
-               endColorVar.b = 0.0f;
-               endColorVar.a = 0.0f;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-
-               // additive
-               self.blendAdditive = YES;
-       }
-       
-       return self;
-}
-@end
-
-//
-// ParticleFlower
-//
-@implementation CCParticleFlower
--(id) init
-{
-       return [self initWithTotalParticles:250];
-}
-
--(id) initWithTotalParticles:(int) p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-       
-               // duration
-               duration = kCCParticleDurationInfinity;
-
-               // Gravity Mode
-               self.emitterMode = kCCParticleModeGravity;
-
-               // Gravity Mode: gravity
-               self.gravity = ccp(0,0);
-               
-               // Gravity Mode: speed of particles
-               self.speed = 80;
-               self.speedVar = 10;
-               
-               // Gravity Mode: radial
-               self.radialAccel = -60;
-               self.radialAccelVar = 0;
-               
-               // Gravity Mode: tagential
-               self.tangentialAccel = 15;
-               self.tangentialAccelVar = 0;
-
-               // angle
-               angle = 90;
-               angleVar = 360;
-               
-               // emitter position
-               CGSize winSize = [[CCDirector sharedDirector] winSize];
-               self.position = ccp(winSize.width/2, winSize.height/2);
-               posVar = CGPointZero;
-               
-               // life of particles
-               life = 4;
-               lifeVar = 1;
-               
-               // size, in pixels
-               startSize = 30.0f;
-               startSizeVar = 10.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-
-               // emits per second
-               emissionRate = totalParticles/life;
-               
-               // color of particles
-               startColor.r = 0.50f;
-               startColor.g = 0.50f;
-               startColor.b = 0.50f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.5f;
-               startColorVar.g = 0.5f;
-               startColorVar.b = 0.5f;
-               startColorVar.a = 0.5f;
-               endColor.r = 0.0f;
-               endColor.g = 0.0f;
-               endColor.b = 0.0f;
-               endColor.a = 1.0f;
-               endColorVar.r = 0.0f;
-               endColorVar.g = 0.0f;
-               endColorVar.b = 0.0f;
-               endColorVar.a = 0.0f;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-
-               // additive
-               self.blendAdditive = YES;
-       }
-               
-       return self;
-}
-@end
-
-//
-// ParticleMeteor
-//
-@implementation CCParticleMeteor
--(id) init
-{
-       return [self initWithTotalParticles:150];
-}
-
--(id) initWithTotalParticles:(int) p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-
-               // duration
-               duration = kCCParticleDurationInfinity;
-               
-               // Gravity Mode
-               self.emitterMode = kCCParticleModeGravity;
-
-               // Gravity Mode: gravity
-               self.gravity = ccp(-200,200);
-
-               // Gravity Mode: speed of particles
-               self.speed = 15;
-               self.speedVar = 5;
-               
-               // Gravity Mode: radial
-               self.radialAccel = 0;
-               self.radialAccelVar = 0;
-               
-               // Gravity Mode: tagential
-               self.tangentialAccel = 0;
-               self.tangentialAccelVar = 0;
-               
-               // angle
-               angle = 90;
-               angleVar = 360;
-               
-               // emitter position
-               CGSize winSize = [[CCDirector sharedDirector] winSize];
-               self.position = ccp(winSize.width/2, winSize.height/2);
-               posVar = CGPointZero;
-               
-               // life of particles
-               life = 2;
-               lifeVar = 1;
-               
-               // size, in pixels
-               startSize = 60.0f;
-               startSizeVar = 10.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-
-               // emits per second
-               emissionRate = totalParticles/life;
-               
-               // color of particles
-               startColor.r = 0.2f;
-               startColor.g = 0.4f;
-               startColor.b = 0.7f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.0f;
-               startColorVar.g = 0.0f;
-               startColorVar.b = 0.2f;
-               startColorVar.a = 0.1f;
-               endColor.r = 0.0f;
-               endColor.g = 0.0f;
-               endColor.b = 0.0f;
-               endColor.a = 1.0f;
-               endColorVar.r = 0.0f;
-               endColorVar.g = 0.0f;
-               endColorVar.b = 0.0f;
-               endColorVar.a = 0.0f;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-               
-               // additive
-               self.blendAdditive = YES;
-       }
-       
-       return self;
-}
-@end
-
-//
-// ParticleSpiral
-//
-@implementation CCParticleSpiral
--(id) init
-{
-       return [self initWithTotalParticles:500];
-}
-
--(id) initWithTotalParticles:(int) p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-       
-               // duration
-               duration = kCCParticleDurationInfinity;
-
-               // Gravity Mode
-               self.emitterMode = kCCParticleModeGravity;
-               
-               // Gravity Mode: gravity
-               self.gravity = ccp(0,0);
-               
-               // Gravity Mode: speed of particles
-               self.speed = 150;
-               self.speedVar = 0;
-               
-               // Gravity Mode: radial
-               self.radialAccel = -380;
-               self.radialAccelVar = 0;
-               
-               // Gravity Mode: tagential
-               self.tangentialAccel = 45;
-               self.tangentialAccelVar = 0;
-               
-               // angle
-               angle = 90;
-               angleVar = 0;
-               
-               // emitter position
-               CGSize winSize = [[CCDirector sharedDirector] winSize];
-               self.position = ccp(winSize.width/2, winSize.height/2);
-               posVar = CGPointZero;
-               
-               // life of particles
-               life = 12;
-               lifeVar = 0;
-               
-               // size, in pixels
-               startSize = 20.0f;
-               startSizeVar = 0.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-
-               // emits per second
-               emissionRate = totalParticles/life;
-               
-               // color of particles
-               startColor.r = 0.5f;
-               startColor.g = 0.5f;
-               startColor.b = 0.5f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.5f;
-               startColorVar.g = 0.5f;
-               startColorVar.b = 0.5f;
-               startColorVar.a = 0.0f;
-               endColor.r = 0.5f;
-               endColor.g = 0.5f;
-               endColor.b = 0.5f;
-               endColor.a = 1.0f;
-               endColorVar.r = 0.5f;
-               endColorVar.g = 0.5f;
-               endColorVar.b = 0.5f;
-               endColorVar.a = 0.0f;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-
-               // additive
-               self.blendAdditive = NO;
-       }
-       
-       return self;
-}
-@end
-
-//
-// ParticleExplosion
-//
-@implementation CCParticleExplosion
--(id) init
-{
-       return [self initWithTotalParticles:700];
-}
-
--(id) initWithTotalParticles:(int)p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-       
-               // duration
-               duration = 0.1f;
-               
-               self.emitterMode = kCCParticleModeGravity;
-
-               // Gravity Mode: gravity
-               self.gravity = ccp(0,0);
-               
-               // Gravity Mode: speed of particles
-               self.speed = 70;
-               self.speedVar = 40;
-               
-               // Gravity Mode: radial
-               self.radialAccel = 0;
-               self.radialAccelVar = 0;
-               
-               // Gravity Mode: tagential
-               self.tangentialAccel = 0;
-               self.tangentialAccelVar = 0;
-               
-               // angle
-               angle = 90;
-               angleVar = 360;
-                               
-               // emitter position
-               CGSize winSize = [[CCDirector sharedDirector] winSize];
-               self.position = ccp(winSize.width/2, winSize.height/2);
-               posVar = CGPointZero;
-               
-               // life of particles
-               life = 5.0f;
-               lifeVar = 2;
-               
-               // size, in pixels
-               startSize = 15.0f;
-               startSizeVar = 10.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-
-               // emits per second
-               emissionRate = totalParticles/duration;
-               
-               // color of particles
-               startColor.r = 0.7f;
-               startColor.g = 0.1f;
-               startColor.b = 0.2f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.5f;
-               startColorVar.g = 0.5f;
-               startColorVar.b = 0.5f;
-               startColorVar.a = 0.0f;
-               endColor.r = 0.5f;
-               endColor.g = 0.5f;
-               endColor.b = 0.5f;
-               endColor.a = 0.0f;
-               endColorVar.r = 0.5f;
-               endColorVar.g = 0.5f;
-               endColorVar.b = 0.5f;
-               endColorVar.a = 0.0f;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-
-               // additive
-               self.blendAdditive = NO;
-       }
-       
-       return self;
-}
-@end
-
-//
-// ParticleSmoke
-//
-@implementation CCParticleSmoke
--(id) init
-{
-       return [self initWithTotalParticles:200];
-}
-
--(id) initWithTotalParticles:(int) p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-       
-               // duration
-               duration = kCCParticleDurationInfinity;
-               
-               // Emitter mode: Gravity Mode
-               self.emitterMode = kCCParticleModeGravity;
-               
-               // Gravity Mode: gravity
-               self.gravity = ccp(0,0);
-
-               // Gravity Mode: radial acceleration
-               self.radialAccel = 0;
-               self.radialAccelVar = 0;
-               
-               // Gravity Mode: speed of particles
-               self.speed = 25;
-               self.speedVar = 10;
-               
-               // angle
-               angle = 90;
-               angleVar = 5;
-               
-               // emitter position
-               CGSize winSize = [[CCDirector sharedDirector] winSize];
-               self.position = ccp(winSize.width/2, 0);
-               posVar = ccp(20, 0);
-               
-               // life of particles
-               life = 4;
-               lifeVar = 1;
-               
-               // size, in pixels
-               startSize = 60.0f;
-               startSizeVar = 10.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-
-               // emits per frame
-               emissionRate = totalParticles/life;
-               
-               // color of particles
-               startColor.r = 0.8f;
-               startColor.g = 0.8f;
-               startColor.b = 0.8f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.02f;
-               startColorVar.g = 0.02f;
-               startColorVar.b = 0.02f;
-               startColorVar.a = 0.0f;
-               endColor.r = 0.0f;
-               endColor.g = 0.0f;
-               endColor.b = 0.0f;
-               endColor.a = 1.0f;
-               endColorVar.r = 0.0f;
-               endColorVar.g = 0.0f;
-               endColorVar.b = 0.0f;
-               endColorVar.a = 0.0f;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-               
-               // additive
-               self.blendAdditive = NO;
-       }
-       
-       return self;
-}
-@end
-
-@implementation CCParticleSnow
--(id) init
-{
-       return [self initWithTotalParticles:700];
-}
-
--(id) initWithTotalParticles:(int)p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-       
-               // duration
-               duration = kCCParticleDurationInfinity;
-               
-               // set gravity mode.
-               self.emitterMode = kCCParticleModeGravity;
-
-               // Gravity Mode: gravity
-               self.gravity = ccp(0,-1);
-               
-               // Gravity Mode: speed of particles
-               self.speed = 5;
-               self.speedVar = 1;
-               
-               // Gravity Mode: radial
-               self.radialAccel = 0;
-               self.radialAccelVar = 1;
-               
-               // Gravity mode: tagential
-               self.tangentialAccel = 0;
-               self.tangentialAccelVar = 1;
-               
-               // emitter position
-               self.position = (CGPoint) {
-                       [[CCDirector sharedDirector] winSize].width / 2,
-                       [[CCDirector sharedDirector] winSize].height + 10
-               };
-               posVar = ccp( [[CCDirector sharedDirector] winSize].width / 2, 0 );
-               
-               // angle
-               angle = -90;
-               angleVar = 5;
-
-               // life of particles
-               life = 45;
-               lifeVar = 15;
-               
-               // size, in pixels
-               startSize = 10.0f;
-               startSizeVar = 5.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-
-               // emits per second
-               emissionRate = 10;
-               
-               // color of particles
-               startColor.r = 1.0f;
-               startColor.g = 1.0f;
-               startColor.b = 1.0f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.0f;
-               startColorVar.g = 0.0f;
-               startColorVar.b = 0.0f;
-               startColorVar.a = 0.0f;
-               endColor.r = 1.0f;
-               endColor.g = 1.0f;
-               endColor.b = 1.0f;
-               endColor.a = 0.0f;
-               endColorVar.r = 0.0f;
-               endColorVar.g = 0.0f;
-               endColorVar.b = 0.0f;
-               endColorVar.a = 0.0f;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-               
-               // additive
-               self.blendAdditive = NO;
-       }
-               
-       return self;
-}
-@end
-
-@implementation CCParticleRain
--(id) init
-{
-       return [self initWithTotalParticles:1000];
-}
-
--(id) initWithTotalParticles:(int)p
-{
-       if( (self=[super initWithTotalParticles:p]) ) {
-       
-               // duration
-               duration = kCCParticleDurationInfinity;
-               
-               self.emitterMode = kCCParticleModeGravity;
-
-               // Gravity Mode: gravity
-               self.gravity = ccp(10,-10);
-               
-               // Gravity Mode: radial
-               self.radialAccel = 0;
-               self.radialAccelVar = 1;
-               
-               // Gravity Mode: tagential
-               self.tangentialAccel = 0;
-               self.tangentialAccelVar = 1;
-
-               // Gravity Mode: speed of particles
-               self.speed = 130;
-               self.speedVar = 30;
-               
-               // angle
-               angle = -90;
-               angleVar = 5;
-               
-               
-               // emitter position
-               self.position = (CGPoint) {
-                       [[CCDirector sharedDirector] winSize].width / 2,
-                       [[CCDirector sharedDirector] winSize].height
-               };
-               posVar = ccp( [[CCDirector sharedDirector] winSize].width / 2, 0 );
-               
-               // life of particles
-               life = 4.5f;
-               lifeVar = 0;
-               
-               // size, in pixels
-               startSize = 4.0f;
-               startSizeVar = 2.0f;
-               endSize = kCCParticleStartSizeEqualToEndSize;
-
-               // emits per second
-               emissionRate = 20;
-               
-               // color of particles
-               startColor.r = 0.7f;
-               startColor.g = 0.8f;
-               startColor.b = 1.0f;
-               startColor.a = 1.0f;
-               startColorVar.r = 0.0f;
-               startColorVar.g = 0.0f;
-               startColorVar.b = 0.0f;
-               startColorVar.a = 0.0f;
-               endColor.r = 0.7f;
-               endColor.g = 0.8f;
-               endColor.b = 1.0f;
-               endColor.a = 0.5f;
-               endColorVar.r = 0.0f;
-               endColorVar.g = 0.0f;
-               endColorVar.b = 0.0f;
-               endColorVar.a = 0.0f;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage: @"fire.png"];
-               
-               // additive
-               self.blendAdditive = NO;
-       }
-       
-       return self;
-}
-@end
diff --git a/Classes/cocos2d/CCParticleSystem.h b/Classes/cocos2d/CCParticleSystem.h
deleted file mode 100644 (file)
index e87961d..0000000
+++ /dev/null
@@ -1,444 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCProtocols.h"
-#import "CCNode.h"
-#import "ccTypes.h"
-#import "ccConfig.h"
-
-#if CC_ENABLE_PROFILERS
-@class CCProfilingTimer;
-#endif
-
-//* @enum
-enum {
-       /** The Particle emitter lives forever */
-       kCCParticleDurationInfinity = -1,
-
-       /** The starting size of the particle is equal to the ending size */
-       kCCParticleStartSizeEqualToEndSize = -1,
-       
-       /** The starting radius of the particle is equal to the ending radius */
-       kCCParticleStartRadiusEqualToEndRadius = -1,
-
-       // backward compatible
-       kParticleStartSizeEqualToEndSize = kCCParticleStartSizeEqualToEndSize,
-       kParticleDurationInfinity = kCCParticleDurationInfinity,
-};
-
-//* @enum
-enum {
-       /** Gravity mode (A mode) */
-       kCCParticleModeGravity,
-       
-       /** Radius mode (B mode) */
-       kCCParticleModeRadius,  
-};
-
-
-/** @typedef tCCPositionType
- possible types of particle positions
- */
-typedef enum {
-       /** Living particles are attached to the world and are unaffected by emitter repositioning. */
-       kCCPositionTypeFree,
-
-       /** Living particles are attached to the world but will follow the emitter repositioning.
-        Use case: Attach an emitter to an sprite, and you want that the emitter follows the sprite.
-        */
-       kCCPositionTypeRelative,
-       
-       /** Living particles are attached to the emitter and are translated along with it. */
-       kCCPositionTypeGrouped,
-}tCCPositionType;
-
-// backward compatible
-enum {
-       kPositionTypeFree = kCCPositionTypeFree,
-       kPositionTypeGrouped = kCCPositionTypeGrouped,
-}; 
-
-/** @struct tCCParticle
- Structure that contains the values of each particle
- */
-typedef struct sCCParticle {
-       CGPoint         pos;
-       CGPoint         startPos;
-
-       ccColor4F       color;
-       ccColor4F       deltaColor;
-
-       float           size;
-       float           deltaSize;
-
-       float           rotation;
-       float           deltaRotation;
-
-       ccTime          timeToLive;
-
-       union {
-               // Mode A: gravity, direction, radial accel, tangential accel
-               struct {
-                       CGPoint         dir;
-                       float           radialAccel;
-                       float           tangentialAccel;
-               } A;
-       
-               // Mode B: radius mode
-               struct {
-                       float           angle;
-                       float           degreesPerSecond;
-                       float           radius;
-                       float           deltaRadius;
-               } B;
-       } mode;
-
-}tCCParticle;
-
-typedef void (*CC_UPDATE_PARTICLE_IMP)(id, SEL, tCCParticle*, CGPoint);
-
-@class CCTexture2D;
-
-/** Particle System base class
- Attributes of a Particle System:
-       - emmision rate of the particles
-       - Gravity Mode (Mode A):
-               - gravity
-               - direction
-               - speed +-  variance
-               - tangential acceleration +- variance
-               - radial acceleration +- variance
-       - Radius Mode (Mode B):
-               - startRadius +- variance
-               - endRadius +- variance
-               - rotate +- variance
-       - Properties common to all modes:
-               - life +- life variance
-               - start spin +- variance
-               - end spin +- variance
-               - start size +- variance
-               - end size +- variance
-               - start color +- variance
-               - end color +- variance
-               - life +- variance
-               - blending function
-       - texture
-
- cocos2d also supports particles generated by Particle Designer (http://particledesigner.71squared.com/).
- 'Radius Mode' in Particle Designer uses a fixed emit rate of 30 hz. Since that can't be guarateed in cocos2d,
- cocos2d uses a another approach, but the results are almost identical. 
- cocos2d supports all the variables used by Particle Designer plus a bit more:
-       - spinning particles (supported when using CCParticleSystemQuad)
-       - tangential acceleration (Gravity mode)
-       - radial acceleration (Gravity mode)
-       - radius direction (Radius mode) (Particle Designer supports outwards to inwards direction only)
- It is possible to customize any of the above mentioned properties in runtime. Example:
- @code
-       emitter.radialAccel = 15;
-       emitter.startSpin = 0;
- @endcode
- */
-@interface CCParticleSystem : CCNode <CCTextureProtocol>
-{      
-       // is the particle system active ?
-       BOOL active;
-       // duration in seconds of the system. -1 is infinity
-       float duration;
-       // time elapsed since the start of the system (in seconds)
-       float elapsed;
-       
-       // position is from "superclass" CocosNode
-       CGPoint sourcePosition;
-       // Position variance
-       CGPoint posVar;
-       
-       // The angle (direction) of the particles measured in degrees
-       float angle;
-       // Angle variance measured in degrees;
-       float angleVar;
-       
-       // Different modes
-       
-       NSInteger emitterMode_;
-       union {
-               // Mode A:Gravity + Tangential Accel + Radial Accel
-               struct {
-                       // gravity of the particles
-                       CGPoint gravity;
-
-                       // The speed the particles will have.
-                       float speed;
-                       // The speed variance
-                       float speedVar;
-
-                       // Tangential acceleration
-                       float tangentialAccel;
-                       // Tangential acceleration variance
-                       float tangentialAccelVar;
-
-                       // Radial acceleration
-                       float radialAccel;
-                       // Radial acceleration variance
-                       float radialAccelVar;
-                       } A;
-
-               // Mode B: circular movement (gravity, radial accel and tangential accel don't are not used in this mode)
-               struct {
-       
-                       // The starting radius of the particles
-                       float startRadius;
-                       // The starting radius variance of the particles
-                       float startRadiusVar;
-                       // The ending radius of the particles
-                       float endRadius;
-                       // The ending radius variance of the particles
-                       float endRadiusVar;                     
-                       // Number of degress to rotate a particle around the source pos per second
-                       float rotatePerSecond;
-                       // Variance in degrees for rotatePerSecond
-                       float rotatePerSecondVar;
-               } B;
-       } mode;
-       
-       // start ize of the particles
-       float startSize;
-       // start Size variance
-       float startSizeVar;
-       // End size of the particle
-       float endSize;
-       // end size of variance
-       float endSizeVar;
-       
-       // How many seconds will the particle live
-       float life;
-       // Life variance
-       float lifeVar;
-       
-       // Start color of the particles
-       ccColor4F startColor;
-       // Start color variance
-       ccColor4F startColorVar;
-       // End color of the particles
-       ccColor4F endColor;
-       // End color variance
-       ccColor4F endColorVar;
-       
-       // start angle of the particles
-       float startSpin;
-       // start angle variance
-       float startSpinVar;
-       // End angle of the particle
-       float endSpin;
-       // end angle ariance
-       float endSpinVar;
-       
-       
-       // Array of particles
-       tCCParticle *particles;
-       // Maximum particles
-       NSUInteger totalParticles;
-       // Count of active particles
-       NSUInteger particleCount;
-       
-       // color modulate
-//     BOOL colorModulate;
-       
-       // How many particles can be emitted per second
-       float emissionRate;
-       float emitCounter;
-       
-       // Texture of the particles
-       CCTexture2D *texture_;
-       // blend function
-       ccBlendFunc     blendFunc_;
-
-       // movment type: free or grouped
-       tCCPositionType positionType_;
-
-       // Whether or not the node will be auto-removed when there are not particles
-       BOOL    autoRemoveOnFinish_;
-
-       //  particle idx
-       NSUInteger particleIdx;
-       
-       // Optimization
-       CC_UPDATE_PARTICLE_IMP  updateParticleImp;
-       SEL                                             updateParticleSel;
-       
-// profiling
-#if CC_ENABLE_PROFILERS
-       CCProfilingTimer* _profilingTimer;
-#endif
-}
-
-/** Is the emitter active */
-@property (nonatomic,readonly) BOOL active;
-/** Quantity of particles that are being simulated at the moment */
-@property (nonatomic,readonly) NSUInteger      particleCount;
-/** How many seconds the emitter wil run. -1 means 'forever' */
-@property (nonatomic,readwrite,assign) float duration;
-/** sourcePosition of the emitter */
-@property (nonatomic,readwrite,assign) CGPoint sourcePosition;
-/** Position variance of the emitter */
-@property (nonatomic,readwrite,assign) CGPoint posVar;
-/** life, and life variation of each particle */
-@property (nonatomic,readwrite,assign) float life;
-/** life variance of each particle */
-@property (nonatomic,readwrite,assign) float lifeVar;
-/** angle and angle variation of each particle */
-@property (nonatomic,readwrite,assign) float angle;
-/** angle variance of each particle */
-@property (nonatomic,readwrite,assign) float angleVar;
-
-/** Gravity value. Only available in 'Gravity' mode. */
-@property (nonatomic,readwrite,assign) CGPoint gravity;
-/** speed of each particle. Only available in 'Gravity' mode.  */
-@property (nonatomic,readwrite,assign) float speed;
-/** speed variance of each particle. Only available in 'Gravity' mode. */
-@property (nonatomic,readwrite,assign) float speedVar;
-/** tangential acceleration of each particle. Only available in 'Gravity' mode. */
-@property (nonatomic,readwrite,assign) float tangentialAccel;
-/** tangential acceleration variance of each particle. Only available in 'Gravity' mode. */
-@property (nonatomic,readwrite,assign) float tangentialAccelVar;
-/** radial acceleration of each particle. Only available in 'Gravity' mode. */
-@property (nonatomic,readwrite,assign) float radialAccel;
-/** radial acceleration variance of each particle. Only available in 'Gravity' mode. */
-@property (nonatomic,readwrite,assign) float radialAccelVar;
-
-/** The starting radius of the particles. Only available in 'Radius' mode. */
-@property (nonatomic,readwrite,assign) float startRadius;
-/** The starting radius variance of the particles. Only available in 'Radius' mode. */
-@property (nonatomic,readwrite,assign) float startRadiusVar;
-/** The ending radius of the particles. Only available in 'Radius' mode. */
-@property (nonatomic,readwrite,assign) float endRadius;
-/** The ending radius variance of the particles. Only available in 'Radius' mode. */
-@property (nonatomic,readwrite,assign) float endRadiusVar;                     
-/** Number of degress to rotate a particle around the source pos per second. Only available in 'Radius' mode. */
-@property (nonatomic,readwrite,assign) float rotatePerSecond;
-/** Variance in degrees for rotatePerSecond. Only available in 'Radius' mode. */
-@property (nonatomic,readwrite,assign) float rotatePerSecondVar;
-
-/** start size in pixels of each particle */
-@property (nonatomic,readwrite,assign) float startSize;
-/** size variance in pixels of each particle */
-@property (nonatomic,readwrite,assign) float startSizeVar;
-/** end size in pixels of each particle */
-@property (nonatomic,readwrite,assign) float endSize;
-/** end size variance in pixels of each particle */
-@property (nonatomic,readwrite,assign) float endSizeVar;
-/** start color of each particle */
-@property (nonatomic,readwrite,assign) ccColor4F startColor;
-/** start color variance of each particle */
-@property (nonatomic,readwrite,assign) ccColor4F startColorVar;
-/** end color and end color variation of each particle */
-@property (nonatomic,readwrite,assign) ccColor4F endColor;
-/** end color variance of each particle */
-@property (nonatomic,readwrite,assign) ccColor4F endColorVar;
-//* initial angle of each particle
-@property (nonatomic,readwrite,assign) float startSpin;
-//* initial angle of each particle
-@property (nonatomic,readwrite,assign) float startSpinVar;
-//* initial angle of each particle
-@property (nonatomic,readwrite,assign) float endSpin;
-//* initial angle of each particle
-@property (nonatomic,readwrite,assign) float endSpinVar;
-/** emission rate of the particles */
-@property (nonatomic,readwrite,assign) float emissionRate;
-/** maximum particles of the system */
-@property (nonatomic,readwrite,assign) NSUInteger totalParticles;
-/** conforms to CocosNodeTexture protocol */
-@property (nonatomic,readwrite, retain) CCTexture2D * texture;
-/** conforms to CocosNodeTexture protocol */
-@property (nonatomic,readwrite) ccBlendFunc blendFunc;
-/** whether or not the particles are using blend additive.
- If enabled, the following blending function will be used.
- @code
-       source blend function = GL_SRC_ALPHA;
-       dest blend function = GL_ONE;
- @endcode
- */
-@property (nonatomic,readwrite) BOOL blendAdditive;
-/** particles movement type: Free or Grouped
- @since v0.8
- */
-@property (nonatomic,readwrite) tCCPositionType positionType;
-/** whether or not the node will be auto-removed when it has no particles left.
- By default it is NO.
- @since v0.8
- */
-@property (nonatomic,readwrite) BOOL autoRemoveOnFinish;
-/** Switch between different kind of emitter modes:
-   - kCCParticleModeGravity: uses gravity, speed, radial and tangential acceleration
-   - kCCParticleModeRadius: uses radius movement + rotation
- */
-@property (nonatomic,readwrite) NSInteger emitterMode;
-
-/** creates an initializes a CCParticleSystem from a plist file.
- This plist files can be creted manually or with Particle Designer:
-       http://particledesigner.71squared.com/
- @since v0.99.3
- */
-+(id) particleWithFile:(NSString*)plistFile;
-
-/** initializes a CCParticleSystem from a plist file.
- This plist files can be creted manually or with Particle Designer:
-       http://particledesigner.71squared.com/
- @since v0.99.3
- */
--(id) initWithFile:(NSString*) plistFile;
-
-/** initializes a CCQuadParticleSystem from a NSDictionary.
- @since v0.99.3
- */
--(id) initWithDictionary:(NSDictionary*)dictionary;
-
-//! Initializes a system with a fixed number of particles
--(id) initWithTotalParticles:(int) numberOfParticles;
-//! Add a particle to the emitter
--(BOOL) addParticle;
-//! Initializes a particle
--(void) initParticle: (tCCParticle*) particle;
-//! stop emitting particles. Running particles will continue to run until they die
--(void) stopSystem;
-//! Kill all living particles.
--(void) resetSystem;
-//! whether or not the system is full
--(BOOL) isFull;
-
-//! should be overriden by subclasses
--(void) updateQuadWithParticle:(tCCParticle*)particle newPosition:(CGPoint)pos;
-//! should be overriden by subclasses
--(void) postStep;
-
-//! called in every loop.
--(void) update: (ccTime) dt;
-
-@end
-
diff --git a/Classes/cocos2d/CCParticleSystem.m b/Classes/cocos2d/CCParticleSystem.m
deleted file mode 100644 (file)
index 1ee46da..0000000
+++ /dev/null
@@ -1,795 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-// ideas taken from:
-//      . The ocean spray in your face [Jeff Lander]
-//             http://www.double.co.nz/dust/col0798.pdf
-//      . Building an Advanced Particle System [John van der Burg]
-//             http://www.gamasutra.com/features/20000623/vanderburg_01.htm
-//   . LOVE game engine
-//             http://love2d.org/
-//
-//
-// Radius mode support, from 71 squared
-//             http://particledesigner.71squared.com/
-//
-// IMPORTANT: Particle Designer is supported by cocos2d, but
-// 'Radius Mode' in Particle Designer uses a fixed emit rate of 30 hz. Since that can't be guarateed in cocos2d,
-//  cocos2d uses a another approach, but the results are almost identical. 
-//
-
-// opengl
-#import "Platforms/CCGL.h"
-
-// cocos2d
-#import "ccConfig.h"
-#if CC_ENABLE_PROFILERS
-#import "Support/CCProfiling.h"
-#endif
-#import "CCParticleSystem.h"
-#import "CCTextureCache.h"
-#import "ccMacros.h"
-
-// support
-#import "Support/OpenGL_Internal.h"
-#import "Support/CGPointExtension.h"
-#import "Support/base64.h"
-#import "Support/ZipUtils.h"
-#import "Support/CCFileUtils.h"
-
-@implementation CCParticleSystem
-@synthesize active, duration;
-@synthesize sourcePosition, posVar;
-@synthesize particleCount;
-@synthesize life, lifeVar;
-@synthesize angle, angleVar;
-@synthesize startColor, startColorVar, endColor, endColorVar;
-@synthesize startSpin, startSpinVar, endSpin, endSpinVar;
-@synthesize emissionRate;
-@synthesize totalParticles;
-@synthesize startSize, startSizeVar;
-@synthesize endSize, endSizeVar;
-@synthesize blendFunc = blendFunc_;
-@synthesize positionType = positionType_;
-@synthesize autoRemoveOnFinish = autoRemoveOnFinish_;
-@synthesize emitterMode = emitterMode_;
-
-
-+(id) particleWithFile:(NSString*) plistFile
-{
-       return [[[self alloc] initWithFile:plistFile] autorelease];
-}
-
--(id) init {
-       NSAssert(NO, @"CCParticleSystem: Init not supported.");
-       [self release];
-       return nil;     
-}
-
--(id) initWithFile:(NSString *)plistFile
-{
-       NSString *path = [CCFileUtils fullPathFromRelativePath:plistFile];
-       NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
-       
-       NSAssert( dict != nil, @"Particles: file not found");
-       return [self initWithDictionary:dict];
-}
-
--(id) initWithDictionary:(NSDictionary *)dictionary
-{
-       NSUInteger maxParticles = [[dictionary valueForKey:@"maxParticles"] intValue];
-       // self, not super
-       if ((self=[self initWithTotalParticles:maxParticles] ) ) {
-               
-               // angle
-               angle = [[dictionary valueForKey:@"angle"] floatValue];
-               angleVar = [[dictionary valueForKey:@"angleVariance"] floatValue];
-               
-               // duration
-               duration = [[dictionary valueForKey:@"duration"] floatValue];
-               
-               // blend function 
-               blendFunc_.src = [[dictionary valueForKey:@"blendFuncSource"] intValue];
-               blendFunc_.dst = [[dictionary valueForKey:@"blendFuncDestination"] intValue];
-               
-               // color
-               float r,g,b,a;
-               
-               r = [[dictionary valueForKey:@"startColorRed"] floatValue];
-               g = [[dictionary valueForKey:@"startColorGreen"] floatValue];
-               b = [[dictionary valueForKey:@"startColorBlue"] floatValue];
-               a = [[dictionary valueForKey:@"startColorAlpha"] floatValue];
-               startColor = (ccColor4F) {r,g,b,a};
-               
-               r = [[dictionary valueForKey:@"startColorVarianceRed"] floatValue];
-               g = [[dictionary valueForKey:@"startColorVarianceGreen"] floatValue];
-               b = [[dictionary valueForKey:@"startColorVarianceBlue"] floatValue];
-               a = [[dictionary valueForKey:@"startColorVarianceAlpha"] floatValue];
-               startColorVar = (ccColor4F) {r,g,b,a};
-               
-               r = [[dictionary valueForKey:@"finishColorRed"] floatValue];
-               g = [[dictionary valueForKey:@"finishColorGreen"] floatValue];
-               b = [[dictionary valueForKey:@"finishColorBlue"] floatValue];
-               a = [[dictionary valueForKey:@"finishColorAlpha"] floatValue];
-               endColor = (ccColor4F) {r,g,b,a};
-               
-               r = [[dictionary valueForKey:@"finishColorVarianceRed"] floatValue];
-               g = [[dictionary valueForKey:@"finishColorVarianceGreen"] floatValue];
-               b = [[dictionary valueForKey:@"finishColorVarianceBlue"] floatValue];
-               a = [[dictionary valueForKey:@"finishColorVarianceAlpha"] floatValue];
-               endColorVar = (ccColor4F) {r,g,b,a};
-               
-               // particle size
-               startSize = [[dictionary valueForKey:@"startParticleSize"] floatValue];
-               startSizeVar = [[dictionary valueForKey:@"startParticleSizeVariance"] floatValue];
-               endSize = [[dictionary valueForKey:@"finishParticleSize"] floatValue];
-               endSizeVar = [[dictionary valueForKey:@"finishParticleSizeVariance"] floatValue];
-               
-               
-               // position
-               float x = [[dictionary valueForKey:@"sourcePositionx"] floatValue];
-               float y = [[dictionary valueForKey:@"sourcePositiony"] floatValue];
-               self.position = ccp(x,y);
-               posVar.x = [[dictionary valueForKey:@"sourcePositionVariancex"] floatValue];
-               posVar.y = [[dictionary valueForKey:@"sourcePositionVariancey"] floatValue];
-                               
-               
-               emitterMode_ = [[dictionary valueForKey:@"emitterType"] intValue];
-
-               // Mode A: Gravity + tangential accel + radial accel
-               if( emitterMode_ == kCCParticleModeGravity ) {
-                       // gravity
-                       mode.A.gravity.x = [[dictionary valueForKey:@"gravityx"] floatValue];
-                       mode.A.gravity.y = [[dictionary valueForKey:@"gravityy"] floatValue];
-                       
-                       //
-                       // speed
-                       mode.A.speed = [[dictionary valueForKey:@"speed"] floatValue];
-                       mode.A.speedVar = [[dictionary valueForKey:@"speedVariance"] floatValue];
-                       
-                       // radial acceleration                  
-                       NSString *tmp = [dictionary valueForKey:@"radialAcceleration"];
-                       mode.A.radialAccel = tmp ? [tmp floatValue] : 0;
-                       
-                       tmp = [dictionary valueForKey:@"radialAccelVariance"];
-                       mode.A.radialAccelVar = tmp ? [tmp floatValue] : 0;
-                                               
-                       // tangential acceleration
-                       tmp = [dictionary valueForKey:@"tangentialAcceleration"];
-                       mode.A.tangentialAccel = tmp ? [tmp floatValue] : 0;
-                       
-                       tmp = [dictionary valueForKey:@"tangentialAccelVariance"];
-                       mode.A.tangentialAccelVar = tmp ? [tmp floatValue] : 0;
-               }
-               
-               
-               // or Mode B: radius movement
-               else if( emitterMode_ == kCCParticleModeRadius ) {
-                       float maxRadius = [[dictionary valueForKey:@"maxRadius"] floatValue];
-                       float maxRadiusVar = [[dictionary valueForKey:@"maxRadiusVariance"] floatValue];
-                       float minRadius = [[dictionary valueForKey:@"minRadius"] floatValue];
-                       
-                       mode.B.startRadius = maxRadius;
-                       mode.B.startRadiusVar = maxRadiusVar;
-                       mode.B.endRadius = minRadius;
-                       mode.B.endRadiusVar = 0;
-                       mode.B.rotatePerSecond = [[dictionary valueForKey:@"rotatePerSecond"] floatValue];
-                       mode.B.rotatePerSecondVar = [[dictionary valueForKey:@"rotatePerSecondVariance"] floatValue];
-
-               } else {
-                       NSAssert( NO, @"Invalid emitterType in config file");
-               }
-               
-               // life span
-               life = [[dictionary valueForKey:@"particleLifespan"] floatValue];
-               lifeVar = [[dictionary valueForKey:@"particleLifespanVariance"] floatValue];                            
-               
-               // emission Rate
-               emissionRate = totalParticles/life;
-
-               // texture              
-               // Try to get the texture from the cache
-               NSString *textureName = [dictionary valueForKey:@"textureFileName"];
-
-               self.texture = [[CCTextureCache sharedTextureCache] addImage:textureName];
-
-               NSString *textureData = [dictionary valueForKey:@"textureImageData"];
-
-               if ( ! texture_ && textureData) {
-                       
-                       // if it fails, try to get it from the base64-gzipped data                      
-                       unsigned char *buffer = NULL;
-                       NSUInteger len = base64Decode((unsigned char*)[textureData UTF8String], [textureData length], &buffer);
-                       NSAssert( buffer != NULL, @"CCParticleSystem: error decoding textureImageData");
-                               
-                       unsigned char *deflated = NULL;
-                       NSUInteger deflatedLen = ccInflateMemory(buffer, len, &deflated);
-                       free( buffer );
-                               
-                       NSAssert( deflated != NULL, @"CCParticleSystem: error ungzipping textureImageData");
-                       NSData *data = [[NSData alloc] initWithBytes:deflated length:deflatedLen];
-                       
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-                       UIImage *image = [[UIImage alloc] initWithData:data];
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-                       NSBitmapImageRep *image = [[NSBitmapImageRep alloc] initWithData:data];
-#endif
-                       
-                       free(deflated); deflated = NULL;
-
-                       self.texture = [[CCTextureCache sharedTextureCache] addCGImage:[image CGImage] forKey:textureName];
-                       [data release];
-                       [image release];
-               }
-               
-               NSAssert( [self texture] != NULL, @"CCParticleSystem: error loading the texture");
-               
-       }
-       
-       return self;
-}
-
--(id) initWithTotalParticles:(int) numberOfParticles
-{
-       if( (self=[super init]) ) {
-
-               totalParticles = numberOfParticles;
-               
-               particles = calloc( totalParticles, sizeof(tCCParticle) );
-
-               if( ! particles ) {
-                       NSLog(@"Particle system: not enough memory");
-                       [self release];
-                       return nil;
-               }
-               
-               // default, active
-               active = YES;
-               
-               // default blend function
-               blendFunc_ = (ccBlendFunc) { CC_BLEND_SRC, CC_BLEND_DST };
-               
-               // default movement type;
-               positionType_ = kCCPositionTypeFree;
-               
-               // by default be in mode A:
-               emitterMode_ = kCCParticleModeGravity;
-                               
-               // default: modulate
-               // XXX: not used
-       //      colorModulate = YES;
-               
-               autoRemoveOnFinish_ = NO;
-
-               // profiling
-#if CC_ENABLE_PROFILERS
-               _profilingTimer = [[CCProfiler timerWithName:@"particle system" andInstance:self] retain];
-#endif
-               
-               // Optimization: compile udpateParticle method
-               updateParticleSel = @selector(updateQuadWithParticle:newPosition:);
-               updateParticleImp = (CC_UPDATE_PARTICLE_IMP) [self methodForSelector:updateParticleSel];
-
-               // udpate after action in run!
-               [self scheduleUpdateWithPriority:1];
-               
-       }
-
-       return self;
-}
-
--(void) dealloc
-{
-       free( particles );
-
-       [texture_ release];
-       // profiling
-#if CC_ENABLE_PROFILERS
-       [CCProfiler releaseTimer:_profilingTimer];
-#endif
-       
-       [super dealloc];
-}
-
--(BOOL) addParticle
-{
-       if( [self isFull] )
-               return NO;
-       
-       tCCParticle * particle = &particles[ particleCount ];
-               
-       [self initParticle: particle];          
-       particleCount++;
-                               
-       return YES;
-}
-
--(void) initParticle: (tCCParticle*) particle
-{
-
-       // timeToLive
-       // no negative life. prevent division by 0
-       particle->timeToLive = MAX(0, life + lifeVar * CCRANDOM_MINUS1_1() );
-
-       // position
-       particle->pos.x = sourcePosition.x + posVar.x * CCRANDOM_MINUS1_1();
-       particle->pos.x *= CC_CONTENT_SCALE_FACTOR();
-       particle->pos.y = sourcePosition.y + posVar.y * CCRANDOM_MINUS1_1();
-       particle->pos.y *= CC_CONTENT_SCALE_FACTOR();
-       
-       // Color
-       ccColor4F start;
-       start.r = MIN(1, MAX(0, startColor.r + startColorVar.r * CCRANDOM_MINUS1_1() ) );
-       start.g = MIN(1, MAX(0, startColor.g + startColorVar.g * CCRANDOM_MINUS1_1() ) );
-       start.b = MIN(1, MAX(0, startColor.b + startColorVar.b * CCRANDOM_MINUS1_1() ) );
-       start.a = MIN(1, MAX(0, startColor.a + startColorVar.a * CCRANDOM_MINUS1_1() ) );
-       
-       ccColor4F end;
-       end.r = MIN(1, MAX(0, endColor.r + endColorVar.r * CCRANDOM_MINUS1_1() ) );
-       end.g = MIN(1, MAX(0, endColor.g + endColorVar.g * CCRANDOM_MINUS1_1() ) );
-       end.b = MIN(1, MAX(0, endColor.b + endColorVar.b * CCRANDOM_MINUS1_1() ) );
-       end.a = MIN(1, MAX(0, endColor.a + endColorVar.a * CCRANDOM_MINUS1_1() ) );
-       
-       particle->color = start;
-       particle->deltaColor.r = (end.r - start.r) / particle->timeToLive;
-       particle->deltaColor.g = (end.g - start.g) / particle->timeToLive;
-       particle->deltaColor.b = (end.b - start.b) / particle->timeToLive;
-       particle->deltaColor.a = (end.a - start.a) / particle->timeToLive;
-       
-       // size
-       float startS = MAX(0, startSize + startSizeVar * CCRANDOM_MINUS1_1() ); // no negative size
-       startS *= CC_CONTENT_SCALE_FACTOR();
-       
-       particle->size = startS;
-       if( endSize == kCCParticleStartSizeEqualToEndSize )
-               particle->deltaSize = 0;
-       else {
-               float endS = endSize + endSizeVar * CCRANDOM_MINUS1_1();
-               endS = MAX(0, endS);
-               endS *= CC_CONTENT_SCALE_FACTOR();
-               particle->deltaSize = (endS - startS) / particle->timeToLive;
-       }
-       
-       // rotation
-       float startA = startSpin + startSpinVar * CCRANDOM_MINUS1_1();
-       float endA = endSpin + endSpinVar * CCRANDOM_MINUS1_1();
-       particle->rotation = startA;
-       particle->deltaRotation = (endA - startA) / particle->timeToLive;
-       
-       // position
-       if( positionType_ == kCCPositionTypeFree ) {
-               CGPoint p = [self convertToWorldSpace:CGPointZero];
-               particle->startPos = ccpMult( p, CC_CONTENT_SCALE_FACTOR() );
-       }
-       else if( positionType_ == kCCPositionTypeRelative ) {
-               particle->startPos = ccpMult( position_, CC_CONTENT_SCALE_FACTOR() );
-       }
-       
-       // direction
-       float a = CC_DEGREES_TO_RADIANS( angle + angleVar * CCRANDOM_MINUS1_1() );      
-       
-       // Mode Gravity: A
-       if( emitterMode_ == kCCParticleModeGravity ) {
-
-               CGPoint v = {cosf( a ), sinf( a )};
-               float s = mode.A.speed + mode.A.speedVar * CCRANDOM_MINUS1_1();
-               s *= CC_CONTENT_SCALE_FACTOR();
-               
-               // direction
-               particle->mode.A.dir = ccpMult( v, s );
-               
-               // radial accel
-               particle->mode.A.radialAccel = mode.A.radialAccel + mode.A.radialAccelVar * CCRANDOM_MINUS1_1();
-               particle->mode.A.radialAccel *= CC_CONTENT_SCALE_FACTOR();
-               
-               // tangential accel
-               particle->mode.A.tangentialAccel = mode.A.tangentialAccel + mode.A.tangentialAccelVar * CCRANDOM_MINUS1_1();
-               particle->mode.A.tangentialAccel *= CC_CONTENT_SCALE_FACTOR();
-
-       }
-       
-       // Mode Radius: B
-       else {
-               // Set the default diameter of the particle from the source position
-               float startRadius = mode.B.startRadius + mode.B.startRadiusVar * CCRANDOM_MINUS1_1();
-               float endRadius = mode.B.endRadius + mode.B.endRadiusVar * CCRANDOM_MINUS1_1();
-
-               startRadius *= CC_CONTENT_SCALE_FACTOR();
-               endRadius *= CC_CONTENT_SCALE_FACTOR();
-               
-               particle->mode.B.radius = startRadius;
-
-               if( mode.B.endRadius == kCCParticleStartRadiusEqualToEndRadius )
-                       particle->mode.B.deltaRadius = 0;
-               else
-                       particle->mode.B.deltaRadius = (endRadius - startRadius) / particle->timeToLive;
-       
-               particle->mode.B.angle = a;
-               particle->mode.B.degreesPerSecond = CC_DEGREES_TO_RADIANS(mode.B.rotatePerSecond + mode.B.rotatePerSecondVar * CCRANDOM_MINUS1_1());
-       }       
-}
-
--(void) stopSystem
-{
-       active = NO;
-       elapsed = duration;
-       emitCounter = 0;
-}
-
--(void) resetSystem
-{
-       active = YES;
-       elapsed = 0;
-       for(particleIdx = 0; particleIdx < particleCount; ++particleIdx) {
-               tCCParticle *p = &particles[particleIdx];
-               p->timeToLive = 0;
-       }
-}
-
--(BOOL) isFull
-{
-       return (particleCount == totalParticles);
-}
-
-#pragma mark ParticleSystem - MainLoop
--(void) update: (ccTime) dt
-{
-       if( active && emissionRate ) {
-               float rate = 1.0f / emissionRate;
-               emitCounter += dt;
-               while( particleCount < totalParticles && emitCounter > rate ) {
-                       [self addParticle];
-                       emitCounter -= rate;
-               }
-               
-               elapsed += dt;
-               if(duration != -1 && duration < elapsed)
-                       [self stopSystem];
-       }
-       
-       particleIdx = 0;
-       
-       
-#if CC_ENABLE_PROFILERS
-       CCProfilingBeginTimingBlock(_profilingTimer);
-#endif
-       
-       
-       CGPoint currentPosition = CGPointZero;
-       if( positionType_ == kCCPositionTypeFree ) {
-               currentPosition = [self convertToWorldSpace:CGPointZero];
-               currentPosition.x *= CC_CONTENT_SCALE_FACTOR();
-               currentPosition.y *= CC_CONTENT_SCALE_FACTOR();
-       }
-       else if( positionType_ == kCCPositionTypeRelative ) {
-               currentPosition = position_;
-               currentPosition.x *= CC_CONTENT_SCALE_FACTOR();
-               currentPosition.y *= CC_CONTENT_SCALE_FACTOR();
-       }
-       
-       while( particleIdx < particleCount )
-       {
-               tCCParticle *p = &particles[particleIdx];
-               
-               // life
-               p->timeToLive -= dt;
-
-               if( p->timeToLive > 0 ) {
-                       
-                       // Mode A: gravity, direction, tangential accel & radial accel
-                       if( emitterMode_ == kCCParticleModeGravity ) {
-                               CGPoint tmp, radial, tangential;
-                               
-                               radial = CGPointZero;
-                               // radial acceleration
-                               if(p->pos.x || p->pos.y)
-                                       radial = ccpNormalize(p->pos);
-                               
-                               tangential = radial;
-                               radial = ccpMult(radial, p->mode.A.radialAccel);
-                               
-                               // tangential acceleration
-                               float newy = tangential.x;
-                               tangential.x = -tangential.y;
-                               tangential.y = newy;
-                               tangential = ccpMult(tangential, p->mode.A.tangentialAccel);
-                               
-                               // (gravity + radial + tangential) * dt
-                               tmp = ccpAdd( ccpAdd( radial, tangential), mode.A.gravity);
-                               tmp = ccpMult( tmp, dt);
-                               p->mode.A.dir = ccpAdd( p->mode.A.dir, tmp);
-                               tmp = ccpMult(p->mode.A.dir, dt);
-                               p->pos = ccpAdd( p->pos, tmp );
-                       }
-                       
-                       // Mode B: radius movement
-                       else {                          
-                               // Update the angle and radius of the particle.
-                               p->mode.B.angle += p->mode.B.degreesPerSecond * dt;
-                               p->mode.B.radius += p->mode.B.deltaRadius * dt;
-                               
-                               p->pos.x = - cosf(p->mode.B.angle) * p->mode.B.radius;
-                               p->pos.y = - sinf(p->mode.B.angle) * p->mode.B.radius;
-                       }
-                       
-                       // color
-                       p->color.r += (p->deltaColor.r * dt);
-                       p->color.g += (p->deltaColor.g * dt);
-                       p->color.b += (p->deltaColor.b * dt);
-                       p->color.a += (p->deltaColor.a * dt);
-                       
-                       // size
-                       p->size += (p->deltaSize * dt);
-                       p->size = MAX( 0, p->size );
-                       
-                       // angle
-                       p->rotation += (p->deltaRotation * dt);
-                                               
-                       //
-                       // update values in quad
-                       //
-                       
-                       CGPoint newPos;
-                       
-                       if( positionType_ == kCCPositionTypeFree || positionType_ == kCCPositionTypeRelative ) {
-                               CGPoint diff = ccpSub( currentPosition, p->startPos );
-                               newPos = ccpSub(p->pos, diff);
-                               
-                       } else
-                               newPos = p->pos;
-
-                       
-                       updateParticleImp(self, updateParticleSel, p, newPos);
-                       
-                       // update particle counter
-                       particleIdx++;
-                       
-               } else {
-                       // life < 0
-                       if( particleIdx != particleCount-1 )
-                               particles[particleIdx] = particles[particleCount-1];
-                       particleCount--;
-                       
-                       if( particleCount == 0 && autoRemoveOnFinish_ ) {
-                               [self unscheduleUpdate];
-                               [parent_ removeChild:self cleanup:YES];
-                               return;
-                       }
-               }
-       }
-       
-#if CC_ENABLE_PROFILERS
-       CCProfilingEndTimingBlock(_profilingTimer);
-#endif
-       
-#ifdef CC_USES_VBO
-       [self postStep];
-#endif
-}
-
--(void) updateQuadWithParticle:(tCCParticle*)particle newPosition:(CGPoint)pos;
-{
-       // should be overriden
-}
-
--(void) postStep
-{
-       // should be overriden
-}
-
-#pragma mark ParticleSystem - CCTexture protocol
-
--(void) setTexture:(CCTexture2D*) texture
-{
-       [texture_ release];
-       texture_ = [texture retain];
-
-       // If the new texture has No premultiplied alpha, AND the blendFunc hasn't been changed, then update it
-       if( texture_ && ! [texture hasPremultipliedAlpha] &&            
-          ( blendFunc_.src == CC_BLEND_SRC && blendFunc_.dst == CC_BLEND_DST ) ) {
-       
-               blendFunc_.src = GL_SRC_ALPHA;
-               blendFunc_.dst = GL_ONE_MINUS_SRC_ALPHA;
-       }
-}
-
--(CCTexture2D*) texture
-{
-       return texture_;
-}
-
-#pragma mark ParticleSystem - Additive Blending
--(void) setBlendAdditive:(BOOL)additive
-{
-       if( additive ) {
-               blendFunc_.src = GL_SRC_ALPHA;
-               blendFunc_.dst = GL_ONE;
-
-       } else {
-               
-               if( texture_ && ! [texture_ hasPremultipliedAlpha] ) {
-                       blendFunc_.src = GL_SRC_ALPHA;
-                       blendFunc_.dst = GL_ONE_MINUS_SRC_ALPHA;
-               } else {
-                       blendFunc_.src = CC_BLEND_SRC;
-                       blendFunc_.dst = CC_BLEND_DST;
-               }
-       }
-}
-
--(BOOL) blendAdditive
-{
-       return( blendFunc_.src == GL_SRC_ALPHA && blendFunc_.dst == GL_ONE);
-}
-
-#pragma mark ParticleSystem - Properties of Gravity Mode 
--(void) setTangentialAccel:(float)t
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       mode.A.tangentialAccel = t;
-}
--(float) tangentialAccel
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       return mode.A.tangentialAccel;
-}
-
--(void) setTangentialAccelVar:(float)t
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       mode.A.tangentialAccelVar = t;
-}
--(float) tangentialAccelVar
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       return mode.A.tangentialAccelVar;
-}
-
--(void) setRadialAccel:(float)t
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       mode.A.radialAccel = t;
-}
--(float) radialAccel
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       return mode.A.radialAccel;
-}
-
--(void) setRadialAccelVar:(float)t
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       mode.A.radialAccelVar = t;
-}
--(float) radialAccelVar
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       return mode.A.radialAccelVar;
-}
-
--(void) setGravity:(CGPoint)g
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       mode.A.gravity = g;
-}
--(CGPoint) gravity
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       return mode.A.gravity;
-}
-
--(void) setSpeed:(float)speed
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       mode.A.speed = speed;
-}
--(float) speed
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       return mode.A.speed;
-}
-
--(void) setSpeedVar:(float)speedVar
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       mode.A.speedVar = speedVar;
-}
--(float) speedVar
-{
-       NSAssert( emitterMode_ == kCCParticleModeGravity, @"Particle Mode should be Gravity");
-       return mode.A.speedVar;
-}
-
-#pragma mark ParticleSystem - Properties of Radius Mode
-
--(void) setStartRadius:(float)startRadius
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       mode.B.startRadius = startRadius;
-}
--(float) startRadius
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       return mode.B.startRadius;
-}
-
--(void) setStartRadiusVar:(float)startRadiusVar
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       mode.B.startRadiusVar = startRadiusVar;
-}
--(float) startRadiusVar
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       return mode.B.startRadiusVar;
-}
-
--(void) setEndRadius:(float)endRadius
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       mode.B.endRadius = endRadius;
-}
--(float) endRadius
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       return mode.B.endRadius;
-}
-
--(void) setEndRadiusVar:(float)endRadiusVar
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       mode.B.endRadiusVar = endRadiusVar;
-}
--(float) endRadiusVar
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       return mode.B.endRadiusVar;
-}
-
--(void) setRotatePerSecond:(float)degrees
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       mode.B.rotatePerSecond = degrees;
-}
--(float) rotatePerSecond
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       return mode.B.rotatePerSecond;
-}
-
--(void) setRotatePerSecondVar:(float)degrees
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       mode.B.rotatePerSecondVar = degrees;
-}
--(float) rotatePerSecondVar
-{
-       NSAssert( emitterMode_ == kCCParticleModeRadius, @"Particle Mode should be Radius");
-       return mode.B.rotatePerSecondVar;
-}
-@end
-
-
diff --git a/Classes/cocos2d/CCParticleSystemPoint.h b/Classes/cocos2d/CCParticleSystemPoint.h
deleted file mode 100644 (file)
index 029ad41..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import <Availability.h>
-#import "CCParticleSystem.h"
-
-#define CC_MAX_PARTICLE_SIZE 64
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-
-/** CCParticleSystemPoint is a subclass of CCParticleSystem
- Attributes of a Particle System:
- * All the attributes of Particle System
-
- Features:
-  * consumes small memory: uses 1 vertex (x,y) per particle, no need to assign tex coordinates
-  * size can't be bigger than 64
-  * the system can't be scaled since the particles are rendered using GL_POINT_SPRITE
- Limitations:
-  * On 3rd gen iPhone devices and iPads, this node performs MUCH slower than CCParticleSystemQuad.
- */
-@interface CCParticleSystemPoint : CCParticleSystem
-{      
-       // Array of (x,y,size) 
-       ccPointSprite *vertices;
-       // vertices buffer id
-#if CC_USES_VBO
-       GLuint  verticesID;
-#endif
-}
-@end
-
-#elif __MAC_OS_X_VERSION_MAX_ALLOWED
-
-#import "CCParticleSystemQuad.h"
-
-@interface CCParticleSystemPoint : CCParticleSystemQuad
-@end
-
-#endif
diff --git a/Classes/cocos2d/CCParticleSystemPoint.m b/Classes/cocos2d/CCParticleSystemPoint.m
deleted file mode 100644 (file)
index f789f04..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import <Availability.h>
-#import "CCParticleSystemPoint.h"
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-
-// opengl
-#import "Platforms/CCGL.h"
-
-// cocos2d
-#import "CCTextureCache.h"
-#import "ccMacros.h"
-
-// support
-#import "Support/OpenGL_Internal.h"
-#import "Support/CGPointExtension.h"
-
-@implementation CCParticleSystemPoint
-
--(id) initWithTotalParticles:(int) numberOfParticles
-{
-       if( (self=[super initWithTotalParticles:numberOfParticles]) ) {
-
-               vertices = malloc( sizeof(ccPointSprite) * totalParticles );
-
-               if( ! vertices ) {
-                       NSLog(@"cocos2d: Particle system: not enough memory");
-                       [self release];
-                       return nil;
-               }
-
-#if CC_USES_VBO
-               glGenBuffers(1, &verticesID);
-               
-               // initial binding
-               glBindBuffer(GL_ARRAY_BUFFER, verticesID);
-               glBufferData(GL_ARRAY_BUFFER, sizeof(ccPointSprite)*totalParticles, vertices, GL_DYNAMIC_DRAW);
-               glBindBuffer(GL_ARRAY_BUFFER, 0);
-#endif
-       }
-
-       return self;
-}
-
--(void) dealloc
-{
-       free(vertices);
-#if CC_USES_VBO
-       glDeleteBuffers(1, &verticesID);
-#endif
-       
-       [super dealloc];
-}
-
--(void) updateQuadWithParticle:(tCCParticle*)p newPosition:(CGPoint)newPos
-{      
-       // place vertices and colos in array
-       vertices[particleIdx].pos = (ccVertex2F) {newPos.x, newPos.y};
-       vertices[particleIdx].size = p->size;
-       vertices[particleIdx].colors = p->color;
-}
-
--(void) postStep
-{
-#if CC_USES_VBO
-       glBindBuffer(GL_ARRAY_BUFFER, verticesID);
-       glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(ccPointSprite)*particleCount, vertices);
-       glBindBuffer(GL_ARRAY_BUFFER, 0);
-#endif
-}
-
--(void) draw
-{
-    if (particleIdx==0)
-        return;
-       
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY
-       // Unneeded states: GL_TEXTURE_COORD_ARRAY
-       glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-       
-       glBindTexture(GL_TEXTURE_2D, texture_.name);
-       
-       glEnable(GL_POINT_SPRITE_OES);
-       glTexEnvi( GL_POINT_SPRITE_OES, GL_COORD_REPLACE_OES, GL_TRUE );
-       
-#define kPointSize sizeof(vertices[0])
-
-#if CC_USES_VBO
-       glBindBuffer(GL_ARRAY_BUFFER, verticesID);
-
-       glVertexPointer(2,GL_FLOAT, kPointSize, 0);
-
-       glColorPointer(4, GL_FLOAT, kPointSize, (GLvoid*) offsetof(ccPointSprite, colors) );
-
-       glEnableClientState(GL_POINT_SIZE_ARRAY_OES);
-       glPointSizePointerOES(GL_FLOAT, kPointSize, (GLvoid*) offsetof(ccPointSprite, size) );
-#else // Uses Vertex Array List
-       int offset = (int)vertices;
-       glVertexPointer(2,GL_FLOAT, kPointSize, (GLvoid*) offset);
-       
-       int diff = offsetof(ccPointSprite, colors);
-       glColorPointer(4, GL_FLOAT, kPointSize, (GLvoid*) (offset+diff));
-       
-       glEnableClientState(GL_POINT_SIZE_ARRAY_OES);
-       diff = offsetof(ccPointSprite, size);
-       glPointSizePointerOES(GL_FLOAT, kPointSize, (GLvoid*) (offset+diff));
-#endif
-
-       BOOL newBlend = blendFunc_.src != CC_BLEND_SRC || blendFunc_.dst != CC_BLEND_DST;
-       if( newBlend )
-               glBlendFunc( blendFunc_.src, blendFunc_.dst );
-
-
-       glDrawArrays(GL_POINTS, 0, particleIdx);
-       
-       // restore blend state
-       if( newBlend )
-               glBlendFunc( CC_BLEND_SRC, CC_BLEND_DST);
-
-       
-#if CC_USES_VBO
-       // unbind VBO buffer
-       glBindBuffer(GL_ARRAY_BUFFER, 0);
-#endif
-       
-       glDisableClientState(GL_POINT_SIZE_ARRAY_OES);
-       glDisable(GL_POINT_SPRITE_OES);
-
-       // restore GL default state
-       glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-}
-
-#pragma mark Non supported properties
-
-//
-// SPIN IS NOT SUPPORTED
-//
--(void) setStartSpin:(float)a
-{
-       NSAssert(a == 0, @"PointParticleSystem doesn't support spinning");
-       [super setStartSpin:a];
-}
--(void) setStartSpinVar:(float)a
-{
-       NSAssert(a == 0, @"PointParticleSystem doesn't support spinning");
-       [super setStartSpin:a];
-}
--(void) setEndSpin:(float)a
-{
-       NSAssert(a == 0, @"PointParticleSystem doesn't support spinning");
-       [super setStartSpin:a];
-}
--(void) setEndSpinVar:(float)a
-{
-       NSAssert(a == 0, @"PointParticleSystem doesn't support spinning");
-       [super setStartSpin:a];
-}
-
-//
-// SIZE > 64 IS NOT SUPPORTED
-//
--(void) setStartSize:(float)size
-{
-       NSAssert(size >= 0 && size <= CC_MAX_PARTICLE_SIZE, @"PointParticleSystem only supports 0 <= size <= 64");
-       [super setStartSize:size];
-}
-
--(void) setEndSize:(float)size
-{
-       NSAssert( (size == kCCParticleStartSizeEqualToEndSize) ||
-                        ( size >= 0 && size <= CC_MAX_PARTICLE_SIZE), @"PointParticleSystem only supports 0 <= size <= 64");
-       [super setEndSize:size];
-}
-@end
-
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-@implementation CCParticleSystemPoint
-@end
-
-#endif // __MAC_OS_X_VERSION_MAX_ALLOWED
-
-
diff --git a/Classes/cocos2d/CCParticleSystemQuad.h b/Classes/cocos2d/CCParticleSystemQuad.h
deleted file mode 100644 (file)
index eea9edd..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * Copyright (c) 2009 Leonardo Kasperavičius
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCParticleSystem.h"
-#import "ccConfig.h"
-
-@class CCSpriteFrame;
-
-/** CCParticleSystemQuad is a subclass of CCParticleSystem
-
- It includes all the features of ParticleSystem.
- Special features and Limitations:     
-  - Particle size can be any float number.
-  - The system can be scaled
-  - The particles can be rotated
-  - On 1st and 2nd gen iPhones: It is only a bit slower that CCParticleSystemPoint
-  - On 3rd gen iPhone and iPads: It is MUCH faster than CCParticleSystemPoint
-  - It consumes more RAM and more GPU memory than CCParticleSystemPoint
-  - It supports subrects
- @since v0.8
- */
-@interface CCParticleSystemQuad : CCParticleSystem
-{
-       ccV2F_C4F_T2F_Quad      *quads_;                // quads to be rendered
-       GLushort                        *indices_;              // indices
-#if CC_USES_VBO
-       GLuint                          quadsID_;               // VBO id
-#endif
-}
-
-/** initialices the indices for the vertices */
--(void) initIndices;
-
-/** initilizes the texture with a rectangle measured Points */
--(void) initTexCoordsWithRect:(CGRect)rect;
-
-/** Sets a new CCSpriteFrame as particle.
- WARNING: this method is experimental. Use setTexture:withRect instead.
- @since v0.99.4
- */
--(void)setDisplayFrame:(CCSpriteFrame*)spriteFrame;
-
-/** Sets a new texture with a rect. The rect is in Points.
- @since v0.99.4
- */
--(void) setTexture:(CCTexture2D *)texture withRect:(CGRect)rect;
-
-@end
-
diff --git a/Classes/cocos2d/CCParticleSystemQuad.m b/Classes/cocos2d/CCParticleSystemQuad.m
deleted file mode 100644 (file)
index 219f2cc..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * Copyright (c) 2009 Leonardo Kasperavičius
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-// opengl
-#import "Platforms/CCGL.h"
-
-// cocos2d
-#import "ccConfig.h"
-#import "CCParticleSystemQuad.h"
-#import "CCTextureCache.h"
-#import "ccMacros.h"
-#import "CCSpriteFrame.h"
-
-// support
-#import "Support/OpenGL_Internal.h"
-#import "Support/CGPointExtension.h"
-
-@implementation CCParticleSystemQuad
-
-
-// overriding the init method
--(id) initWithTotalParticles:(int) numberOfParticles
-{
-       // base initialization
-       if( (self=[super initWithTotalParticles:numberOfParticles]) ) {
-       
-               // allocating data space
-               quads_ = calloc( sizeof(quads_[0]) * totalParticles, 1 );
-               indices_ = calloc( sizeof(indices_[0]) * totalParticles * 6, 1 );
-               
-               if( !quads_ || !indices_) {
-                       NSLog(@"cocos2d: Particle system: not enough memory");
-                       if( quads_ )
-                               free( quads_ );
-                       if(indices_)
-                               free(indices_);
-                       
-                       [self release];
-                       return nil;
-               }
-               
-               // initialize only once the texCoords and the indices
-               [self initTexCoordsWithRect:CGRectMake(0, 0, [texture_ pixelsWide], [texture_ pixelsHigh])];
-               [self initIndices];
-
-#if CC_USES_VBO
-               // create the VBO buffer
-               glGenBuffers(1, &quadsID_);
-               
-               // initial binding
-               glBindBuffer(GL_ARRAY_BUFFER, quadsID_);
-               glBufferData(GL_ARRAY_BUFFER, sizeof(quads_[0])*totalParticles, quads_,GL_DYNAMIC_DRAW);        
-               glBindBuffer(GL_ARRAY_BUFFER, 0);
-#endif
-       }
-               
-       return self;
-}
-
--(void) dealloc
-{
-       free(quads_);
-       free(indices_);
-#if CC_USES_VBO
-       glDeleteBuffers(1, &quadsID_);
-#endif
-       
-       [super dealloc];
-}
-
-// rect is in Points coordinates.
--(void) initTexCoordsWithRect:(CGRect)pointRect
-{
-       // convert to Tex coords
-       
-       CGRect rect = CGRectMake(
-                                                        pointRect.origin.x * CC_CONTENT_SCALE_FACTOR(),
-                                                        pointRect.origin.y * CC_CONTENT_SCALE_FACTOR(),
-                                                        pointRect.size.width * CC_CONTENT_SCALE_FACTOR(),
-                                                        pointRect.size.height * CC_CONTENT_SCALE_FACTOR() );
-
-       GLfloat wide = [texture_ pixelsWide];
-       GLfloat high = [texture_ pixelsHigh];
-
-#if CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL
-       GLfloat left = (rect.origin.x*2+1) / (wide*2);
-       GLfloat bottom = (rect.origin.y*2+1) / (high*2);
-       GLfloat right = left + (rect.size.width*2-2) / (wide*2);
-       GLfloat top = bottom + (rect.size.height*2-2) / (high*2);
-#else
-       GLfloat left = rect.origin.x / wide;
-       GLfloat bottom = rect.origin.y / high;
-       GLfloat right = left + rect.size.width / wide;
-       GLfloat top = bottom + rect.size.height / high;
-#endif // ! CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL
-       
-       // Important. Texture in cocos2d are inverted, so the Y component should be inverted
-       CC_SWAP( top, bottom);
-       
-       for(NSUInteger i=0; i<totalParticles; i++) {
-               // bottom-left vertex:
-               quads_[i].bl.texCoords.u = left;
-               quads_[i].bl.texCoords.v = bottom;
-               // bottom-right vertex:
-               quads_[i].br.texCoords.u = right;
-               quads_[i].br.texCoords.v = bottom;
-               // top-left vertex:
-               quads_[i].tl.texCoords.u = left;
-               quads_[i].tl.texCoords.v = top;
-               // top-right vertex:
-               quads_[i].tr.texCoords.u = right;
-               quads_[i].tr.texCoords.v = top;
-       }
-}
-
--(void) setTexture:(CCTexture2D *)texture withRect:(CGRect)rect
-{
-       // Only update the texture if is different from the current one
-       if( [texture name] != [texture_ name] )
-               [super setTexture:texture];
-       
-       [self initTexCoordsWithRect:rect];
-}
-
--(void) setTexture:(CCTexture2D *)texture
-{
-       [self setTexture:texture withRect:CGRectMake(0,0, 
-                                                                                                [texture pixelsWide] / CC_CONTENT_SCALE_FACTOR(), 
-                                                                                                [texture pixelsHigh] / CC_CONTENT_SCALE_FACTOR() )];
-}
-
--(void) setDisplayFrame:(CCSpriteFrame *)spriteFrame
-{
-
-       NSAssert( CGPointEqualToPoint( spriteFrame.offsetInPixels , CGPointZero ), @"QuadParticle only supports SpriteFrames with no offsets");
-
-       // update texture before updating texture rect
-       if ( spriteFrame.texture.name != texture_.name )
-               [self setTexture: spriteFrame.texture]; 
-}
-
--(void) initIndices
-{
-       for( NSUInteger i=0;i< totalParticles;i++) {
-               const int i6 = i*6;
-               const int i4 = i*4;
-               indices_[i6+0] = (GLushort) i4+0;
-               indices_[i6+1] = (GLushort) i4+1;
-               indices_[i6+2] = (GLushort) i4+2;
-               
-               indices_[i6+5] = (GLushort) i4+1;
-               indices_[i6+4] = (GLushort) i4+2;
-               indices_[i6+3] = (GLushort) i4+3;
-       }
-}
-
--(void) updateQuadWithParticle:(tCCParticle*)p newPosition:(CGPoint)newPos
-{
-       // colors
-       ccV2F_C4F_T2F_Quad *quad = &(quads_[particleIdx]);
-       quad->bl.colors = p->color;
-       quad->br.colors = p->color;
-       quad->tl.colors = p->color;
-       quad->tr.colors = p->color;
-       
-       // vertices
-       GLfloat size_2 = p->size/2;
-       if( p->rotation ) {
-               GLfloat x1 = -size_2;
-               GLfloat y1 = -size_2;
-               
-               GLfloat x2 = size_2;
-               GLfloat y2 = size_2;
-               GLfloat x = newPos.x;
-               GLfloat y = newPos.y;
-               
-               GLfloat r = (GLfloat)-CC_DEGREES_TO_RADIANS(p->rotation);
-               GLfloat cr = cosf(r);
-               GLfloat sr = sinf(r);
-               GLfloat ax = x1 * cr - y1 * sr + x;
-               GLfloat ay = x1 * sr + y1 * cr + y;
-               GLfloat bx = x2 * cr - y1 * sr + x;
-               GLfloat by = x2 * sr + y1 * cr + y;
-               GLfloat cx = x2 * cr - y2 * sr + x;
-               GLfloat cy = x2 * sr + y2 * cr + y;
-               GLfloat dx = x1 * cr - y2 * sr + x;
-               GLfloat dy = x1 * sr + y2 * cr + y;
-               
-               // bottom-left
-               quad->bl.vertices.x = ax;
-               quad->bl.vertices.y = ay;
-               
-               // bottom-right vertex:
-               quad->br.vertices.x = bx;
-               quad->br.vertices.y = by;
-               
-               // top-left vertex:
-               quad->tl.vertices.x = dx;
-               quad->tl.vertices.y = dy;
-               
-               // top-right vertex:
-               quad->tr.vertices.x = cx;
-               quad->tr.vertices.y = cy;
-       } else {
-               // bottom-left vertex:
-               quad->bl.vertices.x = newPos.x - size_2;
-               quad->bl.vertices.y = newPos.y - size_2;
-               
-               // bottom-right vertex:
-               quad->br.vertices.x = newPos.x + size_2;
-               quad->br.vertices.y = newPos.y - size_2;
-               
-               // top-left vertex:
-               quad->tl.vertices.x = newPos.x - size_2;
-               quad->tl.vertices.y = newPos.y + size_2;
-               
-               // top-right vertex:
-               quad->tr.vertices.x = newPos.x + size_2;
-               quad->tr.vertices.y = newPos.y + size_2;                                
-       }
-}
-
--(void) postStep
-{
-#if CC_USES_VBO
-       glBindBuffer(GL_ARRAY_BUFFER, quadsID_);
-       glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(quads_[0])*particleCount, quads_);
-       glBindBuffer(GL_ARRAY_BUFFER, 0);
-#endif
-}
-
-// overriding draw method
--(void) draw
-{      
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Unneeded states: -
-
-       glBindTexture(GL_TEXTURE_2D, [texture_ name]);
-
-#define kQuadSize sizeof(quads_[0].bl)
-
-#if CC_USES_VBO
-       glBindBuffer(GL_ARRAY_BUFFER, quadsID_);
-
-       glVertexPointer(2,GL_FLOAT, kQuadSize, 0);
-
-       glColorPointer(4, GL_FLOAT, kQuadSize, (GLvoid*) offsetof(ccV2F_C4F_T2F,colors) );
-       
-       glTexCoordPointer(2, GL_FLOAT, kQuadSize, (GLvoid*) offsetof(ccV2F_C4F_T2F,texCoords) );
-#else // vertex array list
-
-       NSUInteger offset = (NSUInteger) quads_;
-
-       // vertex
-       NSUInteger diff = offsetof( ccV2F_C4F_T2F, vertices);
-       glVertexPointer(2,GL_FLOAT, kQuadSize, (GLvoid*) (offset+diff) );
-       
-       // color
-       diff = offsetof( ccV2F_C4F_T2F, colors);
-       glColorPointer(4, GL_FLOAT, kQuadSize, (GLvoid*)(offset + diff));
-       
-       // tex coords
-       diff = offsetof( ccV2F_C4F_T2F, texCoords);
-       glTexCoordPointer(2, GL_FLOAT, kQuadSize, (GLvoid*)(offset + diff));            
-
-#endif // ! CC_USES_VBO
-       
-       BOOL newBlend = blendFunc_.src != CC_BLEND_SRC || blendFunc_.dst != CC_BLEND_DST;
-       if( newBlend )
-               glBlendFunc( blendFunc_.src, blendFunc_.dst );
-       
-       NSAssert( particleIdx == particleCount, @"Abnormal error in particle quad");
-       glDrawElements(GL_TRIANGLES, particleIdx*6, GL_UNSIGNED_SHORT, indices_);
-       
-       // restore blend state
-       if( newBlend )
-               glBlendFunc( CC_BLEND_SRC, CC_BLEND_DST );
-
-#if CC_USES_VBO
-       glBindBuffer(GL_ARRAY_BUFFER, 0);
-#endif
-
-       // restore GL default state
-       // -
-}
-
-@end
-
-
diff --git a/Classes/cocos2d/CCProgressTimer.h b/Classes/cocos2d/CCProgressTimer.h
deleted file mode 100644 (file)
index 6661a6f..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2010 Lam Pham
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import <Foundation/Foundation.h>
-#import "CCSprite.h"
-
-/** Types of progress
- @since v0.99.1
- */
-typedef enum {
-       /// Radial Counter-Clockwise 
-       kCCProgressTimerTypeRadialCCW,
-       /// Radial ClockWise
-       kCCProgressTimerTypeRadialCW,
-       /// Horizontal Left-Right
-       kCCProgressTimerTypeHorizontalBarLR,
-       /// Horizontal Right-Left
-       kCCProgressTimerTypeHorizontalBarRL,
-       /// Vertical Bottom-top
-       kCCProgressTimerTypeVerticalBarBT,
-       /// Vertical Top-Bottom
-       kCCProgressTimerTypeVerticalBarTB,
-} CCProgressTimerType;
-
-/**
- CCProgresstimer is a subclass of CCNode.
- It renders the inner sprite according to the percentage.
- The progress can be Radial, Horizontal or vertical.
- @since v0.99.1
- */
-@interface CCProgressTimer : CCNode
-{
-       CCProgressTimerType     type_;
-       float                           percentage_;
-       CCSprite                        *sprite_;
-       
-       int                                     vertexDataCount_;
-       ccV2F_C4F_T2F           *vertexData_;
-}
-
-/**    Change the percentage to change progress. */
-@property (nonatomic, readwrite) CCProgressTimerType type;
-
-/** Percentages are from 0 to 100 */
-@property (nonatomic, readwrite) float percentage;
-
-/** The image to show the progress percentage */
-@property (nonatomic, readwrite, retain) CCSprite *sprite;
-
-
-/** Creates a progress timer with an image filename as the shape the timer goes through */
-+ (id) progressWithFile:(NSString*) filename;
-/** Initializes  a progress timer with an image filename as the shape the timer goes through */
-- (id) initWithFile:(NSString*) filename;
-
-/** Creates a progress timer with the texture as the shape the timer goes through */
-+ (id) progressWithTexture:(CCTexture2D*) texture;
-/** Creates a progress timer with the texture as the shape the timer goes through */
-- (id) initWithTexture:(CCTexture2D*) texture;
-
-@end
diff --git a/Classes/cocos2d/CCProgressTimer.m b/Classes/cocos2d/CCProgressTimer.m
deleted file mode 100644 (file)
index 20c66c6..0000000
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2010 Lam Pham
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import "CCProgressTimer.h"
-
-#import "ccMacros.h"
-#import "CCTextureCache.h"
-#import "Support/CGPointExtension.h"
-
-
-
-#define kProgressTextureCoordsCount 4
-//  kProgressTextureCoords holds points {0,0} {0,1} {1,1} {1,0} we can represent it as bits
-const char kProgressTextureCoords = 0x1e;
-
-@interface CCProgressTimer (Internal)
-
--(void)updateProgress;
--(void)updateBar;
--(void)updateRadial;
--(void)updateColor;
--(CGPoint)boundaryTexCoord:(char)index;
-@end
-
-
-@implementation CCProgressTimer
-@synthesize percentage = percentage_;
-@synthesize sprite = sprite_;
-@synthesize type = type_;
-
-+(id)progressWithFile:(NSString*) filename
-{
-       return [[[self alloc]initWithFile:filename] autorelease];
-}
--(id)initWithFile:(NSString*) filename
-{
-       return [self initWithTexture:[[CCTextureCache sharedTextureCache] addImage: filename]];
-}
-
-+(id)progressWithTexture:(CCTexture2D*) texture
-{
-       return [[[self alloc]initWithTexture:texture] autorelease];
-}
--(id)initWithTexture:(CCTexture2D*) texture
-{
-       if(( self = [super init] )){
-               self.sprite = [CCSprite spriteWithTexture:texture];
-               percentage_ = 0.f;
-               vertexData_ = NULL;
-               vertexDataCount_ = 0;
-               self.anchorPoint = ccp(.5f,.5f);
-               self.contentSize = sprite_.contentSize;
-               self.type = kCCProgressTimerTypeRadialCCW;
-       }
-       return self;
-}
--(void)dealloc
-{
-       if(vertexData_)
-               free(vertexData_);
-       
-       [sprite_ release];
-       [super dealloc];
-}
-
--(void)setPercentage:(float) percentage
-{
-       if(percentage_ != percentage){
-               if(percentage_ < 0.f)
-                       percentage_ = 0.f;
-               else if(percentage > 100.0f)
-                       percentage_  = 100.f;
-               else
-                       percentage_ = percentage;
-               
-               [self updateProgress];
-       }
-}
--(void)setSprite:(CCSprite *)newSprite
-{
-       if(sprite_ != newSprite){
-               [sprite_ release]; 
-               sprite_ = [newSprite retain];
-               
-               //      Everytime we set a new sprite, we free the current vertex data
-               if(vertexData_){
-                       free(vertexData_);
-                       vertexData_ = NULL;
-                       vertexDataCount_ = 0;
-               }
-       }
-}
--(void)setType:(CCProgressTimerType)newType
-{
-       if (newType != type_) {
-               
-               //      release all previous information
-               if(vertexData_){
-                       free(vertexData_);
-                       vertexData_ = NULL;
-                       vertexDataCount_ = 0;
-               }
-               type_ = newType;
-       }
-}
-@end
-
-@implementation CCProgressTimer(Internal)
-
-///
-//     @returns the vertex position from the texture coordinate
-///
--(ccVertex2F)vertexFromTexCoord:(CGPoint) texCoord
-{
-       CGPoint tmp;
-       ccVertex2F ret;
-       if (sprite_.texture) {
-               CCTexture2D *texture = [sprite_ texture];
-               CGSize texSize = [texture contentSizeInPixels];
-               tmp = ccp(texSize.width * texCoord.x/texture.maxS,
-                                  texSize.height * (1 - (texCoord.y/texture.maxT)));
-       } else
-               tmp = CGPointZero;
-       
-       ret.x = tmp.x;
-       ret.y = tmp.y;
-       return ret;
-}
--(void)updateColor {
-       ccColor4F color = ccc4FFromccc3B(sprite_.color);
-       if([sprite_.texture hasPremultipliedAlpha]){
-               float op = sprite_.opacity/255.f;
-               color.r *= op;
-               color.g *= op;
-               color.b *= op;
-               color.a = op;
-       } else
-               color.a = sprite_.opacity/255.f;
-       
-       if(vertexData_){
-               for (int i=0; i < vertexDataCount_; ++i) {
-                       vertexData_[i].colors = color;
-               }
-       }
-}
-
--(void)updateProgress
-{
-       switch (type_) {
-               case kCCProgressTimerTypeRadialCW:
-               case kCCProgressTimerTypeRadialCCW:
-                       [self updateRadial];
-                       break;
-               case kCCProgressTimerTypeHorizontalBarLR:
-               case kCCProgressTimerTypeHorizontalBarRL:
-               case kCCProgressTimerTypeVerticalBarBT:
-               case kCCProgressTimerTypeVerticalBarTB:
-                       [self updateBar];
-                       break;
-               default:
-                       break;
-       }
-}
-
-///
-//     Update does the work of mapping the texture onto the triangles
-//     It now doesn't occur the cost of free/alloc data every update cycle.
-//     It also only changes the percentage point but no other points if they have not
-//     been modified.
-//     
-//     It now deals with flipped texture. If you run into this problem, just use the
-//     sprite property and enable the methods flipX, flipY.
-///
--(void)updateRadial
-{              
-       //      Texture Max is the actual max coordinates to deal with non-power of 2 textures
-       CGPoint tMax = ccp(sprite_.texture.maxS,sprite_.texture.maxT);
-       
-       //      Grab the midpoint
-       CGPoint midpoint = ccpCompMult(self.anchorPoint, tMax);
-       
-       float alpha = percentage_ / 100.f;
-       
-       //      Otherwise we can get the angle from the alpha
-       float angle = 2.f*((float)M_PI) * ( type_ == kCCProgressTimerTypeRadialCW? alpha : 1.f - alpha);
-       
-       //      We find the vector to do a hit detection based on the percentage
-       //      We know the first vector is the one @ 12 o'clock (top,mid) so we rotate 
-       //      from that by the progress angle around the midpoint pivot
-       CGPoint topMid = ccp(midpoint.x, 0.f);
-       CGPoint percentagePt = ccpRotateByAngle(topMid, midpoint, angle);
-       
-       
-       int index = 0;
-       CGPoint hit = CGPointZero;
-       
-       if (alpha == 0.f) {
-               //      More efficient since we don't always need to check intersection
-               //      If the alpha is zero then the hit point is top mid and the index is 0.
-               hit = topMid;
-               index = 0;
-       } else if (alpha == 1.f) {
-               //      More efficient since we don't always need to check intersection
-               //      If the alpha is one then the hit point is top mid and the index is 4.
-               hit = topMid;
-               index = 4;
-       } else {
-               //      We run a for loop checking the edges of the texture to find the
-               //      intersection point
-               //      We loop through five points since the top is split in half
-               
-               float min_t = FLT_MAX;
-               
-               for (int i = 0; i <= kProgressTextureCoordsCount; ++i) {
-                       int pIndex = (i + (kProgressTextureCoordsCount - 1))%kProgressTextureCoordsCount;
-                       
-                       CGPoint edgePtA = ccpCompMult([self boundaryTexCoord:i % kProgressTextureCoordsCount],tMax);
-                       CGPoint edgePtB = ccpCompMult([self boundaryTexCoord:pIndex],tMax);
-                       
-                       //      Remember that the top edge is split in half for the 12 o'clock position
-                       //      Let's deal with that here by finding the correct endpoints
-                       if(i == 0){
-                               edgePtB = ccpLerp(edgePtA,edgePtB,.5f);
-                       } else if(i == 4){
-                               edgePtA = ccpLerp(edgePtA,edgePtB,.5f);
-                       }
-                       
-                       //      s and t are returned by ccpLineIntersect
-                       float s = 0, t = 0;
-                       if(ccpLineIntersect(edgePtA, edgePtB, midpoint, percentagePt, &s, &t))
-                       {
-                               
-                               //      Since our hit test is on rays we have to deal with the top edge
-                               //      being in split in half so we have to test as a segment
-                               if ((i == 0 || i == 4)) {
-                                       //      s represents the point between edgePtA--edgePtB
-                                       if (!(0.f <= s && s <= 1.f)) {
-                                               continue;
-                                       }
-                               }
-                               //      As long as our t isn't negative we are at least finding a 
-                               //      correct hitpoint from midpoint to percentagePt.
-                               if (t >= 0.f) {
-                                       //      Because the percentage line and all the texture edges are
-                                       //      rays we should only account for the shortest intersection
-                                       if (t < min_t) {
-                                               min_t = t;
-                                               index = i;
-                                       }
-                               }
-                       }
-               }
-               
-               //      Now that we have the minimum magnitude we can use that to find our intersection
-               hit = ccpAdd(midpoint, ccpMult(ccpSub(percentagePt, midpoint),min_t));
-               
-       }
-       
-       
-       //      The size of the vertex data is the index from the hitpoint
-       //      the 3 is for the midpoint, 12 o'clock point and hitpoint position.
-       
-       BOOL sameIndexCount = YES;
-       if(vertexDataCount_ != index + 3){
-               sameIndexCount = NO;
-               if(vertexData_){
-                       free(vertexData_);
-                       vertexData_ = NULL;
-                       vertexDataCount_ = 0;
-               }
-       }
-       
-       
-       if(!vertexData_) {
-               vertexDataCount_ = index + 3;
-               vertexData_ = malloc(vertexDataCount_ * sizeof(ccV2F_C4F_T2F));
-               NSAssert( vertexData_, @"CCProgressTimer. Not enough memory");
-               
-               [self updateColor];
-       }
-       
-       if (!sameIndexCount) {
-               
-               //      First we populate the array with the midpoint, then all 
-               //      vertices/texcoords/colors of the 12 'o clock start and edges and the hitpoint
-               vertexData_[0].texCoords = (ccTex2F){midpoint.x, midpoint.y};
-               vertexData_[0].vertices = [self vertexFromTexCoord:midpoint];
-               
-               vertexData_[1].texCoords = (ccTex2F){midpoint.x, 0.f};
-               vertexData_[1].vertices = [self vertexFromTexCoord:ccp(midpoint.x, 0.f)];
-               
-               for(int i = 0; i < index; ++i){
-                       CGPoint texCoords = ccpCompMult([self boundaryTexCoord:i], tMax);
-                       
-                       vertexData_[i+2].texCoords = (ccTex2F){texCoords.x, texCoords.y};
-                       vertexData_[i+2].vertices = [self vertexFromTexCoord:texCoords];
-               }
-               
-               //      Flip the texture coordinates if set
-               if (sprite_.flipY || sprite_.flipX) {
-                       for(int i = 0; i < vertexDataCount_ - 1; ++i){
-                               if (sprite_.flipX) {
-                                       vertexData_[i].texCoords.u = tMax.x - vertexData_[i].texCoords.u;
-                               }
-                               if(sprite_.flipY){
-                                       vertexData_[i].texCoords.v = tMax.y - vertexData_[i].texCoords.v;
-                               }
-                       }
-               }
-       }
-       
-       //      hitpoint will go last
-       vertexData_[vertexDataCount_ - 1].texCoords = (ccTex2F){hit.x, hit.y};
-       vertexData_[vertexDataCount_ - 1].vertices = [self vertexFromTexCoord:hit];
-       
-       if (sprite_.flipY || sprite_.flipX) {
-               if (sprite_.flipX) {
-                       vertexData_[vertexDataCount_ - 1].texCoords.u = tMax.x - vertexData_[vertexDataCount_ - 1].texCoords.u;
-               }
-               if(sprite_.flipY){
-                       vertexData_[vertexDataCount_ - 1].texCoords.v = tMax.y - vertexData_[vertexDataCount_ - 1].texCoords.v;
-               }
-       }
-}
-
-///
-//     Update does the work of mapping the texture onto the triangles for the bar
-//     It now doesn't occur the cost of free/alloc data every update cycle.
-//     It also only changes the percentage point but no other points if they have not
-//     been modified.
-//     
-//     It now deals with flipped texture. If you run into this problem, just use the
-//     sprite property and enable the methods flipX, flipY.
-///
--(void)updateBar
-{      
-       
-       float alpha = percentage_ / 100.f;
-       
-       CGPoint tMax = ccp(sprite_.texture.maxS,sprite_.texture.maxT);
-       
-       unsigned char vIndexes[2] = {0,0};
-       
-       //      We know vertex data is always equal to the 4 corners
-       //      If we don't have vertex data then we create it here and populate
-       //      the side of the bar vertices that won't ever change.
-       if (!vertexData_) {
-               vertexDataCount_ = kProgressTextureCoordsCount;
-               vertexData_ = malloc(vertexDataCount_ * sizeof(ccV2F_C4F_T2F));
-               NSAssert( vertexData_, @"CCProgressTimer. Not enough memory");
-               
-               if(type_ == kCCProgressTimerTypeHorizontalBarLR){
-                       vertexData_[vIndexes[0] = 0].texCoords = (ccTex2F){0,0};
-                       vertexData_[vIndexes[1] = 1].texCoords = (ccTex2F){0, tMax.y};
-               }else if (type_ == kCCProgressTimerTypeHorizontalBarRL) {
-                       vertexData_[vIndexes[0] = 2].texCoords = (ccTex2F){tMax.x, tMax.y};
-                       vertexData_[vIndexes[1] = 3].texCoords = (ccTex2F){tMax.x, 0.f};
-               }else if (type_ == kCCProgressTimerTypeVerticalBarBT) {
-                       vertexData_[vIndexes[0] = 1].texCoords = (ccTex2F){0, tMax.y};
-                       vertexData_[vIndexes[1] = 3].texCoords = (ccTex2F){tMax.x, tMax.y};
-               }else if (type_ == kCCProgressTimerTypeVerticalBarTB) {
-                       vertexData_[vIndexes[0] = 0].texCoords = (ccTex2F){0, 0};
-                       vertexData_[vIndexes[1] = 2].texCoords = (ccTex2F){tMax.x, 0};
-               }
-               
-               unsigned char index = vIndexes[0];
-               vertexData_[index].vertices = [self vertexFromTexCoord:ccp(vertexData_[index].texCoords.u, vertexData_[index].texCoords.v)];
-               
-               index = vIndexes[1];
-               vertexData_[index].vertices = [self vertexFromTexCoord:ccp(vertexData_[index].texCoords.u, vertexData_[index].texCoords.v)];
-               
-               if (sprite_.flipY || sprite_.flipX) {
-                       if (sprite_.flipX) {
-                               unsigned char index = vIndexes[0];
-                               vertexData_[index].texCoords.u = tMax.x - vertexData_[index].texCoords.u;
-                               index = vIndexes[1];
-                               vertexData_[index].texCoords.u = tMax.x - vertexData_[index].texCoords.u;
-                       }
-                       if(sprite_.flipY){
-                               unsigned char index = vIndexes[0];
-                               vertexData_[index].texCoords.v = tMax.y - vertexData_[index].texCoords.v;
-                               index = vIndexes[1];
-                               vertexData_[index].texCoords.v = tMax.y - vertexData_[index].texCoords.v;
-                       }
-               }
-               
-               [self updateColor];
-       }
-       
-       if(type_ == kCCProgressTimerTypeHorizontalBarLR){
-               vertexData_[vIndexes[0] = 3].texCoords = (ccTex2F){tMax.x*alpha, tMax.y};
-               vertexData_[vIndexes[1] = 2].texCoords = (ccTex2F){tMax.x*alpha, 0};
-       }else if (type_ == kCCProgressTimerTypeHorizontalBarRL) {
-               vertexData_[vIndexes[0] = 1].texCoords = (ccTex2F){tMax.x*(1.f - alpha), 0};
-               vertexData_[vIndexes[1] = 0].texCoords = (ccTex2F){tMax.x*(1.f - alpha), tMax.y};
-       }else if (type_ == kCCProgressTimerTypeVerticalBarBT) {
-               vertexData_[vIndexes[0] = 0].texCoords = (ccTex2F){0, tMax.y*(1.f - alpha)};
-               vertexData_[vIndexes[1] = 2].texCoords = (ccTex2F){tMax.x, tMax.y*(1.f - alpha)};
-       }else if (type_ == kCCProgressTimerTypeVerticalBarTB) {
-               vertexData_[vIndexes[0] = 1].texCoords = (ccTex2F){0, tMax.y*alpha};
-               vertexData_[vIndexes[1] = 3].texCoords = (ccTex2F){tMax.x, tMax.y*alpha};
-       }
-       
-       unsigned char index = vIndexes[0];
-       vertexData_[index].vertices = [self vertexFromTexCoord:ccp(vertexData_[index].texCoords.u, vertexData_[index].texCoords.v)];
-       index = vIndexes[1];
-       vertexData_[index].vertices = [self vertexFromTexCoord:ccp(vertexData_[index].texCoords.u, vertexData_[index].texCoords.v)];
-       
-       if (sprite_.flipY || sprite_.flipX) {
-               if (sprite_.flipX) {
-                       unsigned char index = vIndexes[0];
-                       vertexData_[index].texCoords.u = tMax.x - vertexData_[index].texCoords.u;
-                       index = vIndexes[1];
-                       vertexData_[index].texCoords.u = tMax.x - vertexData_[index].texCoords.u;
-               }
-               if(sprite_.flipY){
-                       unsigned char index = vIndexes[0];
-                       vertexData_[index].texCoords.v = tMax.y - vertexData_[index].texCoords.v;
-                       index = vIndexes[1];
-                       vertexData_[index].texCoords.v = tMax.y - vertexData_[index].texCoords.v;
-               }
-       }
-       
-}
-
--(CGPoint)boundaryTexCoord:(char)index
-{
-       if (index < kProgressTextureCoordsCount) {
-               switch (type_) {
-                       case kCCProgressTimerTypeRadialCW:
-                               return ccp((kProgressTextureCoords>>((index<<1)+1))&1,(kProgressTextureCoords>>(index<<1))&1);
-                       case kCCProgressTimerTypeRadialCCW:
-                               return ccp((kProgressTextureCoords>>(7-(index<<1)))&1,(kProgressTextureCoords>>(7-((index<<1)+1)))&1);
-                       default:
-                               break;
-               }
-       }
-       return CGPointZero;
-}
-
--(void)draw
-{
-       if(!vertexData_)return;
-       if(!sprite_)return;
-       ccBlendFunc blendFunc = sprite_.blendFunc;
-       BOOL newBlend = blendFunc.src != CC_BLEND_SRC || blendFunc.dst != CC_BLEND_DST;
-       if( newBlend )
-               glBlendFunc( blendFunc.src, blendFunc.dst );
-       
-       ///     ========================================================================
-       //      Replaced [texture_ drawAtPoint:CGPointZero] with my own vertexData
-       //      Everything above me and below me is copied from CCTextureNode's draw
-       glBindTexture(GL_TEXTURE_2D, sprite_.texture.name);
-       glVertexPointer(2, GL_FLOAT, sizeof(ccV2F_C4F_T2F), &vertexData_[0].vertices);
-       glTexCoordPointer(2, GL_FLOAT, sizeof(ccV2F_C4F_T2F), &vertexData_[0].texCoords);
-       glColorPointer(4, GL_FLOAT, sizeof(ccV2F_C4F_T2F), &vertexData_[0].colors);
-       if(type_ == kCCProgressTimerTypeRadialCCW || type_ == kCCProgressTimerTypeRadialCW){
-               glDrawArrays(GL_TRIANGLE_FAN, 0, vertexDataCount_);
-       } else if (type_ == kCCProgressTimerTypeHorizontalBarLR ||
-                          type_ == kCCProgressTimerTypeHorizontalBarRL ||
-                          type_ == kCCProgressTimerTypeVerticalBarBT ||
-                          type_ == kCCProgressTimerTypeVerticalBarTB) {
-               glDrawArrays(GL_TRIANGLE_STRIP, 0, vertexDataCount_);
-       }
-       //glDrawElements(GL_TRIANGLES, indicesCount_, GL_UNSIGNED_BYTE, indices_);
-       ///     ========================================================================
-       
-       if( newBlend )
-               glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);
-}
-
-@end
diff --git a/Classes/cocos2d/CCProtocols.h b/Classes/cocos2d/CCProtocols.h
deleted file mode 100644 (file)
index f40c1ab..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
-#import "ccTypes.h"
-#import "CCTexture2D.h"
-
-#pragma mark -
-#pragma mark CCRGBAProtocol
-
-/// CC RGBA protocol
-@protocol CCRGBAProtocol <NSObject>
-/** sets Color
- @since v0.8
- */
--(void) setColor:(ccColor3B)color;
-/** returns the color
- @since v0.8
- */
--(ccColor3B) color;
-
-/// returns the opacity
--(GLubyte) opacity;
-/** sets the opacity.
- @warning If the the texture has premultiplied alpha then, the R, G and B channels will be modifed.
- Values goes from 0 to 255, where 255 means fully opaque.
- */
--(void) setOpacity: (GLubyte) opacity;
-@optional
-/** sets the premultipliedAlphaOpacity property.
- If set to NO then opacity will be applied as: glColor(R,G,B,opacity);
- If set to YES then oapcity will be applied as: glColor(opacity, opacity, opacity, opacity );
- Textures with premultiplied alpha will have this property by default on YES. Otherwise the default value is NO
- @since v0.8
- */
--(void) setOpacityModifyRGB:(BOOL)boolean;
-/** returns whether or not the opacity will be applied using glColor(R,G,B,opacity) or glColor(opacity, opacity, opacity, opacity);
- @since v0.8
- */
- -(BOOL) doesOpacityModifyRGB;
-@end
-
-#pragma mark -
-#pragma mark CCBlendProtocol
-/**
- You can specify the blending fuction.
- @since v0.99.0
- */
-@protocol CCBlendProtocol <NSObject>
-/** set the source blending function for the texture */
--(void) setBlendFunc:(ccBlendFunc)blendFunc;
-/** returns the blending function used for the texture */
--(ccBlendFunc) blendFunc;
-@end
-
-
-#pragma mark -
-#pragma mark CCTextureProtocol
-
-/** CCNode objects that uses a Texture2D to render the images.
- The texture can have a blending function.
- If the texture has alpha premultiplied the default blending function is:
-    src=GL_ONE dst= GL_ONE_MINUS_SRC_ALPHA
- else
-       src=GL_SRC_ALPHA dst= GL_ONE_MINUS_SRC_ALPHA
- But you can change the blending funtion at any time.
- @since v0.8.0
- */
-@protocol CCTextureProtocol <CCBlendProtocol>
-/** returns the used texture */
--(CCTexture2D*) texture;
-/** sets a new texture. it will be retained */
--(void) setTexture:(CCTexture2D*)texture;
-@end
-
-#pragma mark -
-#pragma mark CCLabelProtocol
-/** Common interface for Labels */
-@protocol CCLabelProtocol <NSObject>
-/** sets a new label using an NSString.
- The string will be copied.
- */
--(void) setString:(NSString*)label;
-/** returns the string that is rendered */
--(NSString*) string;
-@optional
-/** sets a new label using a CString.
- It is faster than setString since it doesn't require to alloc/retain/release an NString object.
- @since v0.99.0
- */
--(void) setCString:(char*)label;
-@end
-
-
-#pragma mark -
-#pragma mark CCProjectionProtocol
-/** OpenGL projection protocol */
-@protocol CCProjectionProtocol <NSObject>
-/** Called by CCDirector when the porjection is updated, and "custom" projection is used
- @since v0.99.5
- */
--(void) updateProjection;
-@end
\ No newline at end of file
diff --git a/Classes/cocos2d/CCRenderTexture.h b/Classes/cocos2d/CCRenderTexture.h
deleted file mode 100755 (executable)
index 10500f4..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 Jason Booth
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import <Foundation/Foundation.h>
-#import "CCNode.h"
-#import "CCSprite.h"
-#import "Support/OpenGL_Internal.h"
-
-#import <Availability.h>
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import <UIKit/UIKit.h>
-#endif // iPHone
-
-enum  
-{
-       kCCImageFormatJPG = 0,
-       kCCImageFormatPNG = 1,
-       kCCImageFormatRawData =2
-};
-
-
-/**
- CCRenderTexture is a generic rendering target. To render things into it,
- simply construct a render target, call begin on it, call visit on any cocos
- scenes or objects to render them, and call end. For convienience, render texture
- adds a sprite as it's display child with the results, so you can simply add
- the render texture to your scene and treat it like any other CocosNode.
- There are also functions for saving the render texture to disk in PNG or JPG format.
- @since v0.8.1
- */
-@interface CCRenderTexture : CCNode 
-{
-       GLuint                          fbo_;
-       GLint                           oldFBO_;
-       CCTexture2D*            texture_;
-       CCSprite*                       sprite_;
-       
-       GLenum                          pixelFormat_;
-       GLfloat                         clearColor_[4];
-
-}
-
-/** The CCSprite being used.
- The sprite, by default, will use the following blending function: GL_ONE, GL_ONE_MINUS_SRC_ALPHA.
- The blending function can be changed in runtime by calling:
-       - [[renderTexture sprite] setBlendFunc:(ccBlendFunc){GL_ONE, GL_ONE_MINUS_SRC_ALPHA}];
-*/
-@property (nonatomic,readwrite, assign) CCSprite* sprite;
-
-/** creates a RenderTexture object with width and height in Points and a pixel format, only RGB and RGBA formats are valid */
-+(id)renderTextureWithWidth:(int)w height:(int)h pixelFormat:(CCTexture2DPixelFormat) format;
-
-/** creates a RenderTexture object with width and height in Points, pixel format is RGBA8888 */
-+(id)renderTextureWithWidth:(int)w height:(int)h;
-
-/** initializes a RenderTexture object with width and height in Points and a pixel format, only RGB and RGBA formats are valid */
--(id)initWithWidth:(int)w height:(int)h pixelFormat:(CCTexture2DPixelFormat) format;
-
-/** starts grabbing */
--(void)begin;
-
-/** starts rendering to the texture while clearing the texture first.
- This is more efficient then calling -clear first and then -begin */
--(void)beginWithClear:(float)r g:(float)g b:(float)b a:(float)a;
-
-/** ends grabbing */
--(void)end;
-
-/** clears the texture with a color */
--(void)clear:(float)r g:(float)g b:(float)b a:(float)a;
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-
-/** saves the texture into a file */
--(BOOL)saveBuffer:(NSString*)name;
-/** saves the texture into a file. The format can be JPG or PNG */
--(BOOL)saveBuffer:(NSString*)name format:(int)format;
-/* get buffer as UIImage, can only save a render buffer which has a RGBA8888 pixel format */
--(NSData*)getUIImageAsDataFromBuffer:(int) format;
-
-#endif // __IPHONE_OS_VERSION_MAX_ALLOWED
-
-@end
-
-
diff --git a/Classes/cocos2d/CCRenderTexture.m b/Classes/cocos2d/CCRenderTexture.m
deleted file mode 100755 (executable)
index 42e5f7b..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009 Jason Booth
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import <Availability.h>
-#import "CCRenderTexture.h"
-#import "CCDirector.h"
-#import "ccMacros.h"
-#import "Support/ccUtils.h"
-
-@interface CCRenderTexture (private)
-
-- (void) saveGLstate;
-- (void) restoreGLstate;
-@end
-
-@implementation CCRenderTexture
-
-@synthesize sprite=sprite_;
-
-// issue #994 
-+(id)renderTextureWithWidth:(int)w height:(int)h pixelFormat:(CCTexture2DPixelFormat) format
-{
-       return [[[self alloc] initWithWidth:w height:h pixelFormat:format] autorelease];
-}
-
-+(id)renderTextureWithWidth:(int)w height:(int)h
-{
-       return [[[self alloc] initWithWidth:w height:h pixelFormat:kCCTexture2DPixelFormat_RGBA8888] autorelease];      
-}
-
--(id)initWithWidth:(int)w height:(int)h 
-{
-       return [self initWithWidth:w height:h pixelFormat:kCCTexture2DPixelFormat_RGBA8888];
-}
-
--(id)initWithWidth:(int)w height:(int)h pixelFormat:(CCTexture2DPixelFormat) format
-{
-       if ((self = [super init]))
-       {
-               NSAssert(format != kCCTexture2DPixelFormat_A8,@"only RGB and RGBA formats are valid for a render texture");
-               
-               w *= CC_CONTENT_SCALE_FACTOR();
-               h *= CC_CONTENT_SCALE_FACTOR();
-
-               glGetIntegerv(CC_GL_FRAMEBUFFER_BINDING, &oldFBO_);
-               
-               // textures must be power of two
-               NSUInteger powW = ccNextPOT(w);
-               NSUInteger powH = ccNextPOT(h);
-               
-               void *data = malloc((int)(powW * powH * 4));
-               memset(data, 0, (int)(powW * powH * 4));
-               pixelFormat_=format; 
-               
-               texture_ = [[CCTexture2D alloc] initWithData:data pixelFormat:pixelFormat_ pixelsWide:powW pixelsHigh:powH contentSize:CGSizeMake(w, h)];
-               free( data );
-    
-               // generate FBO
-               ccglGenFramebuffers(1, &fbo_);
-               ccglBindFramebuffer(CC_GL_FRAMEBUFFER, fbo_);
-    
-               // associate texture with FBO
-               ccglFramebufferTexture2D(CC_GL_FRAMEBUFFER, CC_GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture_.name, 0);
-    
-               // check if it worked (probably worth doing :) )
-               GLuint status = ccglCheckFramebufferStatus(CC_GL_FRAMEBUFFER);
-               if (status != CC_GL_FRAMEBUFFER_COMPLETE)
-               {
-                       [NSException raise:@"Render Texture" format:@"Could not attach texture to framebuffer"];
-               }
-               [texture_ setAliasTexParameters];
-               
-               sprite_ = [CCSprite spriteWithTexture:texture_];
-               
-               [texture_ release];
-               [sprite_ setScaleY:-1];
-               [self addChild:sprite_];
-
-               // issue #937
-               [sprite_ setBlendFunc:(ccBlendFunc){GL_ONE, GL_ONE_MINUS_SRC_ALPHA}];
-
-               ccglBindFramebuffer(CC_GL_FRAMEBUFFER, oldFBO_);
-       }
-       return self;
-}
-
--(void)dealloc
-{
-//     [self removeAllChildrenWithCleanup:YES];
-       ccglDeleteFramebuffers(1, &fbo_);
-       [super dealloc];
-}
-
-
--(void)begin
-{
-       // issue #878 save opengl state
-       [self saveGLstate];
-
-       CC_DISABLE_DEFAULT_GL_STATES();
-       // Save the current matrix
-       glPushMatrix();
-       
-       CGSize texSize = [texture_ contentSizeInPixels];
-
-       // Calculate the adjustment ratios based on the old and new projections
-       CGSize size = [[CCDirector sharedDirector] displaySizeInPixels];
-       float widthRatio = size.width / texSize.width;
-       float heightRatio = size.height / texSize.height;
-
-       // Adjust the orthographic propjection and viewport
-       ccglOrtho((float)-1.0 / widthRatio,  (float)1.0 / widthRatio, (float)-1.0 / heightRatio, (float)1.0 / heightRatio, -1,1);
-       glViewport(0, 0, texSize.width, texSize.height);
-
-       glGetIntegerv(CC_GL_FRAMEBUFFER_BINDING, &oldFBO_);
-       ccglBindFramebuffer(CC_GL_FRAMEBUFFER, fbo_);//Will direct drawing to the frame buffer created above
-       
-       CC_ENABLE_DEFAULT_GL_STATES();  
-}
-
--(void)beginWithClear:(float)r g:(float)g b:(float)b a:(float)a
-{
-       // issue #878 save opengl state
-       [self saveGLstate];
-       
-       CC_DISABLE_DEFAULT_GL_STATES();
-       // Save the current matrix
-       glPushMatrix();
-       
-       CGSize texSize = [texture_ contentSizeInPixels];
-       
-       // Calculate the adjustment ratios based on the old and new projections
-       CGSize size = [[CCDirector sharedDirector] displaySizeInPixels];
-       float widthRatio = size.width / texSize.width;
-       float heightRatio = size.height / texSize.height;
-       
-       // Adjust the orthographic propjection and viewport
-       ccglOrtho((float)-1.0 / widthRatio,  (float)1.0 / widthRatio, (float)-1.0 / heightRatio, (float)1.0 / heightRatio, -1,1);
-       glViewport(0, 0, texSize.width, texSize.height);
-       
-       glGetIntegerv(CC_GL_FRAMEBUFFER_BINDING, &oldFBO_);
-       ccglBindFramebuffer(CC_GL_FRAMEBUFFER, fbo_);//Will direct drawing to the frame buffer created above
-       
-       glClearColor(r, g, b, a);
-       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-       
-       CC_ENABLE_DEFAULT_GL_STATES();
-}
-
--(void)end
-{
-       ccglBindFramebuffer(CC_GL_FRAMEBUFFER, oldFBO_);
-       // Restore the original matrix and viewport
-       glPopMatrix();
-       CGSize size = [[CCDirector sharedDirector] displaySizeInPixels];
-       glViewport(0, 0, size.width, size.height);
-       [self restoreGLstate];
-
-}
-
--(void)clear:(float)r g:(float)g b:(float)b a:(float)a
-{
-       [self begin];
-       glClearColor(r, g, b, a);
-       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
-       [self end];
-}
-
--(void) saveGLstate
-{
-       glGetFloatv(GL_COLOR_CLEAR_VALUE,clearColor_); 
-}
-
-- (void) restoreGLstate
-{
-       glClearColor(clearColor_[0], clearColor_[1], clearColor_[2], clearColor_[3]);
-}
-
-#pragma mark RenderTexture - Save Image
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
--(BOOL)saveBuffer:(NSString*)name
-{
-       return [self saveBuffer:name format:kCCImageFormatJPG];
-}
-
--(BOOL)saveBuffer:(NSString*)fileName format:(int)format
-{
-       NSArray *paths                                  = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
-       NSString *documentsDirectory    = [paths objectAtIndex:0];
-       NSString *fullPath                              = [documentsDirectory stringByAppendingPathComponent:fileName];
-       
-       NSData *data = [self getUIImageAsDataFromBuffer:format];
-       
-       return [data writeToFile:fullPath atomically:YES];
-}
-
-
--(NSData*)getUIImageAsDataFromBuffer:(int) format
-{
-       NSAssert(pixelFormat_ == kCCTexture2DPixelFormat_RGBA8888,@"only RGBA8888 can be saved as image");
-       
-       CGSize s = [texture_ contentSizeInPixels];
-       int tx = s.width;
-       int ty = s.height;
-       
-       int bitsPerComponent=8;                 
-       int bitsPerPixel=32;                            
-       
-       int bytesPerRow                                 = (bitsPerPixel/8) * tx;
-       NSInteger myDataLength                  = bytesPerRow * ty;
-       
-       GLubyte *buffer = malloc(sizeof(GLubyte)*myDataLength);
-       GLubyte *pixels = malloc(sizeof(GLubyte)*myDataLength);
-       
-       if( ! (buffer && pixels) ) {
-               CCLOG(@"cocos2d: CCRenderTexture#getUIImageFromBuffer: not enough memory");
-               free(buffer);
-               free(pixels);
-               return nil;
-       }
-       
-       [self begin];
-       glReadPixels(0,0,tx,ty,GL_RGBA,GL_UNSIGNED_BYTE, buffer);
-       [self end];
-       
-       int x,y;
-       
-       for(y = 0; y <ty; y++) {
-               for(x = 0; x <tx * 4; x++) {
-                       pixels[((ty - 1 - y) * tx * 4 + x)] = buffer[(y * 4 * tx + x)];
-               }
-       }
-       
-       NSData* data;
-       
-       if (format == kCCImageFormatRawData)
-       {
-               free(buffer);
-               //data frees buffer when it is deallocated
-               data = [NSData dataWithBytesNoCopy:pixels length:myDataLength];
-               
-       } else {
-               
-               /*
-                CGImageCreate(size_t width, size_t height,
-                size_t bitsPerComponent, size_t bitsPerPixel, size_t bytesPerRow,
-                CGColorSpaceRef space, CGBitmapInfo bitmapInfo, CGDataProviderRef provider,
-                const CGFloat decode[], bool shouldInterpolate,
-                CGColorRenderingIntent intent)
-                */
-               // make data provider with data.
-               CGBitmapInfo bitmapInfo = kCGImageAlphaPremultipliedLast | kCGBitmapByteOrderDefault;
-               CGDataProviderRef provider              = CGDataProviderCreateWithData(NULL, pixels, myDataLength, NULL);
-               CGColorSpaceRef colorSpaceRef   = CGColorSpaceCreateDeviceRGB();
-               CGImageRef iref                                 = CGImageCreate(tx, ty,
-                                                                                                               bitsPerComponent, bitsPerPixel, bytesPerRow,
-                                                                                                               colorSpaceRef, bitmapInfo, provider,
-                                                                                                               NULL, false,
-                                                                                                               kCGRenderingIntentDefault);
-               
-               UIImage* image                                  = [[UIImage alloc] initWithCGImage:iref];
-               
-               CGImageRelease(iref);   
-               CGColorSpaceRelease(colorSpaceRef);
-               CGDataProviderRelease(provider);
-               
-               
-               
-               if (format == kCCImageFormatPNG)
-                       data = UIImagePNGRepresentation(image);
-               else
-                       data = UIImageJPEGRepresentation(image, 1.0f);
-               
-               [image release];
-               
-               free(pixels);
-               free(buffer);
-       }
-       
-       return data;
-}
-
-#endif // __IPHONE_OS_VERSION_MAX_ALLOWED
-@end
diff --git a/Classes/cocos2d/CCRibbon.h b/Classes/cocos2d/CCRibbon.h
deleted file mode 100644 (file)
index 53898e6..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008, 2009 Jason Booth
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCNode.h"
-#import "CCTexture2D.h"
-#import "CCProtocols.h"
-#import "Platforms/CCGL.h"
-
-/**
- * A CCRibbon is a dynamically generated list of polygons drawn as a single or series
- * of triangle strips. The primary use of CCRibbon is as the drawing class of Motion Streak,
- * but it is quite useful on it's own. When manually drawing a ribbon, you can call addPointAt
- * and pass in the parameters for the next location in the ribbon. The system will automatically
- * generate new polygons, texture them accourding to your texture width, etc, etc.
- *
- * CCRibbon data is stored in a CCRibbonSegment class. This class statically allocates enough verticies and
- * texture coordinates for 50 locations (100 verts or 48 triangles). The ribbon class will allocate
- * new segments when they are needed, and reuse old ones if available. The idea is to avoid constantly
- * allocating new memory and prefer a more static method. However, since there is no way to determine
- * the maximum size of some ribbons (motion streaks), a truely static allocation is not possible.
- *
- * @since v0.8.1
- */
-@interface CCRibbon : CCNode <CCTextureProtocol>
-{
-       NSMutableArray* segments_;
-       NSMutableArray* deletedSegments_;
-
-       CGPoint                 lastPoint1_;
-       CGPoint                 lastPoint2_;
-       CGPoint                 lastLocation_;
-       int                                     vertCount_;
-       float                           texVPos_;
-       float                           curTime_;
-       float                           fadeTime_;
-       float                           delta_;
-       float                           lastWidth_;
-       float                           lastSign_;
-       BOOL                            pastFirstPoint_;
-
-       // Texture used
-       CCTexture2D*            texture_;
-
-       // texture length
-       float                   textureLength_;
-
-       // RGBA protocol
-       ccColor4B color_;
-
-       // blend func
-       ccBlendFunc             blendFunc_;
-}
-
-/** Texture used by the ribbon. Conforms to CCTextureProtocol protocol */
-@property (nonatomic,readwrite,retain) CCTexture2D* texture;
-
-/** Texture lengths in pixels */
-@property (nonatomic,readwrite) float textureLength;
-
-/** GL blendind function */
-@property (nonatomic,readwrite,assign) ccBlendFunc blendFunc;
-
-/** color used by the Ribbon (RGBA) */
-@property (nonatomic,readwrite) ccColor4B color;
-
-/** creates the ribbon */
-+(id)ribbonWithWidth:(float)w image:(NSString*)path length:(float)l color:(ccColor4B)color fade:(float)fade;
-/** init the ribbon */
--(id)initWithWidth:(float)w image:(NSString*)path length:(float)l color:(ccColor4B)color fade:(float)fade;
-/** add a point to the ribbon */
--(void)addPointAt:(CGPoint)location width:(float)w;
-/** polling function */
--(void)update:(ccTime)delta;
-/** determine side of line */
--(float)sideOfLine:(CGPoint)p l1:(CGPoint)l1 l2:(CGPoint)l2;
-
-@end
-
-/** object to hold ribbon segment data */
-@interface CCRibbonSegment : NSObject
-{
-@public
-       GLfloat verts[50*6];
-       GLfloat coords[50*4];
-       GLubyte colors[50*8];
-       float           creationTime[50];
-       BOOL            finished;
-       uint            end;
-       uint            begin;
-}
--(id)init;
--(void)reset;
--(void)draw:(float)curTime fadeTime:(float)fadeTime color:(ccColor4B)color;
-@end
diff --git a/Classes/cocos2d/CCRibbon.m b/Classes/cocos2d/CCRibbon.m
deleted file mode 100644 (file)
index 9555455..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008, 2009 Jason Booth
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-/*
- * A ribbon is a dynamically generated list of polygons drawn as a single or series
- * of triangle strips. The primary use of Ribbon is as the drawing class of Motion Streak,
- * but it is quite useful on it's own. When manually drawing a ribbon, you can call addPointAt
- * and pass in the parameters for the next location in the ribbon. The system will automatically
- * generate new polygons, texture them accourding to your texture width, etc, etc.
- *
- * Ribbon data is stored in a RibbonSegment class. This class statically allocates enough verticies and
- * texture coordinates for 50 locations (100 verts or 48 triangles). The ribbon class will allocate
- * new segments when they are needed, and reuse old ones if available. The idea is to avoid constantly
- * allocating new memory and prefer a more static method. However, since there is no way to determine
- * the maximum size of some ribbons (motion streaks), a truely static allocation is not possible.
- *
- */
-
-
-#import "CCRibbon.h"
-#import "CCTextureCache.h"
-#import "Support/CGPointExtension.h"
-#import "ccMacros.h"
-
-//
-// Ribbon
-//
-@implementation CCRibbon
-@synthesize blendFunc=blendFunc_;
-@synthesize color=color_;
-@synthesize textureLength = textureLength_;
-
-+(id)ribbonWithWidth:(float)w image:(NSString*)path length:(float)l color:(ccColor4B)color fade:(float)fade
-{
-       self = [[[self alloc] initWithWidth:w image:path length:l color:color fade:fade] autorelease];
-       return self;
-}
-
--(id)initWithWidth:(float)w image:(NSString*)path length:(float)l color:(ccColor4B)color fade:(float)fade
-{
-       self = [super init];
-       if (self)
-       {
-               
-               segments_ = [[NSMutableArray alloc] init];
-               deletedSegments_ = [[NSMutableArray alloc] init];
-
-               /* 1 initial segment */
-               CCRibbonSegment* seg = [[CCRibbonSegment alloc] init];
-               [segments_ addObject:seg];
-               [seg release];
-               
-               textureLength_ = l;
-               
-               color_ = color;
-               fadeTime_ = fade;
-               lastLocation_ = CGPointZero;
-               lastWidth_ = w/2;
-               texVPos_ = 0.0f;
-               
-               curTime_ = 0;
-               pastFirstPoint_ = NO;
-               
-               /* XXX:
-                Ribbon, by default uses this blend function, which might not be correct
-                if you are using premultiplied alpha images,
-                but 99% you might want to use this blending function regarding of the texture
-                */
-               blendFunc_.src = GL_SRC_ALPHA;
-               blendFunc_.dst = GL_ONE_MINUS_SRC_ALPHA;
-               
-               self.texture = [[CCTextureCache sharedTextureCache] addImage:path];
-
-               /* default texture parameter */
-               ccTexParams params = { GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT };
-               [texture_ setTexParameters:&params];
-       }
-       return self;
-}
-
--(void)dealloc
-{
-       [segments_ release];
-       [deletedSegments_ release];
-       [texture_ release];
-       [super dealloc];
-}
-
-// rotates a point around 0, 0
--(CGPoint)rotatePoint:(CGPoint)vec rotation:(float)a
-{
-       float xtemp = (vec.x * cosf(a)) - (vec.y * sinf(a));
-       vec.y = (vec.x * sinf(a)) + (vec.y * cosf(a));
-       vec.x = xtemp;
-       return vec;
-}
-
--(void)update:(ccTime)delta
-{
-       curTime_+= delta;
-       delta_ = delta;
-}
-
--(float)sideOfLine:(CGPoint)p l1:(CGPoint)l1 l2:(CGPoint)l2
-{
-       CGPoint vp = ccpPerp(ccpSub(l1, l2));
-       CGPoint vx = ccpSub(p, l1);
-       return ccpDot(vx, vp);
-}
-
-// adds a new segment to the ribbon
--(void)addPointAt:(CGPoint)location width:(float)w
-{
-       location.x *= CC_CONTENT_SCALE_FACTOR();
-       location.y *= CC_CONTENT_SCALE_FACTOR();
-
-       w = w*0.5f;
-       // if this is the first point added, cache it and return
-       if (!pastFirstPoint_)
-       {
-               lastWidth_ = w;
-               lastLocation_ = location;
-               pastFirstPoint_ = YES;
-               return;
-       }
-
-       CGPoint sub = ccpSub(lastLocation_, location);
-       float r = ccpToAngle(sub) + (float)M_PI_2;
-       CGPoint p1 = ccpAdd([self rotatePoint:ccp(-w, 0) rotation:r], location);
-       CGPoint p2 = ccpAdd([self rotatePoint:ccp(w, 0) rotation:r], location);
-       float len = sqrtf(powf(lastLocation_.x - location.x, 2) + powf(lastLocation_.y - location.y, 2));
-       float tend = texVPos_ + len/textureLength_;
-       CCRibbonSegment* seg;
-       // grab last segment
-       seg = [segments_ lastObject];
-       // lets kill old segments
-       for (CCRibbonSegment* seg2 in segments_)
-       {
-               if (seg2 != seg && seg2->finished)
-               {
-                       [deletedSegments_ addObject:seg2];
-               }
-       }
-       [segments_ removeObjectsInArray:deletedSegments_];
-       // is the segment full?
-       if (seg->end >= 50)
-               [segments_ removeObjectsInArray:deletedSegments_];
-       // grab last segment and append to it if it's not full
-       seg = [segments_ lastObject];
-       // is the segment full?
-       if (seg->end >= 50)
-       {
-               CCRibbonSegment* newSeg;
-               // grab it from the cache if we can
-               if ([deletedSegments_ count] > 0)
-               {
-                       newSeg = [deletedSegments_ objectAtIndex:0];
-                       [newSeg retain];                                                        // will be released later
-                       [deletedSegments_ removeObject:newSeg];
-                       [newSeg reset];
-               }
-               else
-               {
-                       newSeg = [[CCRibbonSegment alloc] init]; // will be released later
-               }
-               
-               newSeg->creationTime[0] = seg->creationTime[seg->end - 1];
-               int v = (seg->end-1)*6;
-               int c = (seg->end-1)*4; 
-               newSeg->verts[0] = seg->verts[v];
-               newSeg->verts[1] = seg->verts[v+1];
-               newSeg->verts[2] = seg->verts[v+2];
-               newSeg->verts[3] = seg->verts[v+3];
-               newSeg->verts[4] = seg->verts[v+4];
-               newSeg->verts[5] = seg->verts[v+5];
-               
-               newSeg->coords[0] = seg->coords[c];
-               newSeg->coords[1] = seg->coords[c+1];
-               newSeg->coords[2] = seg->coords[c+2];
-               newSeg->coords[3] = seg->coords[c+3];     
-               newSeg->end++;
-               seg = newSeg;
-               [segments_ addObject:seg];
-               [newSeg release];        // it was retained before
-               
-       }  
-       if (seg->end == 0)
-       {
-               // first edge has to get rotation from the first real polygon
-               CGPoint lp1 = ccpAdd([self rotatePoint:ccp(-lastWidth_, 0) rotation:r], lastLocation_);
-               CGPoint lp2 = ccpAdd([self rotatePoint:ccp(+lastWidth_, 0) rotation:r], lastLocation_);
-               seg->creationTime[0] = curTime_ - delta_;
-               seg->verts[0] = lp1.x;
-               seg->verts[1] = lp1.y;
-               seg->verts[2] = 0.0f;
-               seg->verts[3] = lp2.x;
-               seg->verts[4] = lp2.y;
-               seg->verts[5] = 0.0f;
-               seg->coords[0] = 0.0f;
-               seg->coords[1] = texVPos_;
-               seg->coords[2] = 1.0f;
-               seg->coords[3] = texVPos_;
-               seg->end++;
-       }
-
-       int v = seg->end*6;
-       int c = seg->end*4;
-       // add new vertex
-       seg->creationTime[seg->end] = curTime_;
-       seg->verts[v] = p1.x;
-       seg->verts[v+1] = p1.y;
-       seg->verts[v+2] = 0.0f;
-       seg->verts[v+3] = p2.x;
-       seg->verts[v+4] = p2.y;
-       seg->verts[v+5] = 0.0f;
-
-
-       seg->coords[c] = 0.0f;
-       seg->coords[c+1] = tend;
-       seg->coords[c+2] = 1.0f;
-       seg->coords[c+3] = tend;
-
-       texVPos_ = tend;
-       lastLocation_ = location;
-       lastPoint1_ = p1;
-       lastPoint2_ = p2;
-       lastWidth_ = w;
-       seg->end++;
-}
-
--(void) draw
-{
-       if ([segments_ count] > 0)
-       {
-               // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-               // Needed states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_TEXTURE_COORD_ARRAY
-               // Unneeded states: GL_COLOR_ARRAY
-               glDisableClientState(GL_COLOR_ARRAY);
-               
-               glBindTexture(GL_TEXTURE_2D, [texture_ name]);
-
-               BOOL newBlend = blendFunc_.src != CC_BLEND_SRC || blendFunc_.dst != CC_BLEND_DST;
-               if( newBlend )
-                       glBlendFunc( blendFunc_.src, blendFunc_.dst );
-
-               for (CCRibbonSegment* seg in segments_)
-                       [seg draw:curTime_ fadeTime:fadeTime_ color:color_];
-
-               if( newBlend )
-                       glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);
-               
-               // restore default GL state
-               glEnableClientState( GL_COLOR_ARRAY );
-       }
-}
-
-#pragma mark Ribbon - CocosNodeTexture protocol
--(void) setTexture:(CCTexture2D*) texture
-{
-       [texture_ release];
-       texture_ = [texture retain];
-       [self setContentSizeInPixels: texture.contentSizeInPixels];
-       /* XXX Don't update blending function in Ribbons */
-}
-
--(CCTexture2D*) texture
-{
-       return texture_;
-}
-
-@end
-
-
-#pragma mark -
-#pragma mark RibbonSegment
-
-@implementation CCRibbonSegment
-
--(id)init
-{
-       self = [super init];
-       if (self)
-       {
-               [self reset];
-       }
-       return self;
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | end = %i, begin = %i>", [self class], self, end, begin];
-}
-
-- (void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-       [super dealloc];
-}
-
--(void)reset
-{
-       end = 0;
-       begin = 0;
-       finished = NO;
-}
-
--(void)draw:(float)curTime fadeTime:(float)fadeTime color:(ccColor4B)color
-{
-       GLubyte r = color.r;
-       GLubyte g = color.g;
-       GLubyte b = color.b;
-       GLubyte a = color.a;
-
-       if (begin < 50)
-       {
-               // the motion streak class will call update and cause time to change, thus, if curTime_ != 0
-               // we have to generate alpha for the ribbon each frame.
-               if (curTime == 0)
-               {
-                       // no alpha over time, so just set the color
-                       glColor4ub(r,g,b,a);
-               }
-               else
-               {
-                       // generate alpha/color for each point
-                       glEnableClientState(GL_COLOR_ARRAY);
-                       uint i = begin;
-                       for (; i < end; ++i)
-                       {
-                               int idx = i*8;
-                               colors[idx] = r;
-                               colors[idx+1] = g;
-                               colors[idx+2] = b;
-                               colors[idx+4] = r;
-                               colors[idx+5] = g;
-                               colors[idx+6] = b;
-                               float alive = ((curTime - creationTime[i]) / fadeTime);
-                               if (alive > 1)
-                               {
-                                       begin++;
-                                       colors[idx+3] = 0;
-                                       colors[idx+7] = 0;
-                               }
-                               else
-                               {
-                                       colors[idx+3] = (GLubyte)(255.f - (alive * 255.f));
-                                       colors[idx+7] = colors[idx+3];
-                               }
-                       }
-                       glColorPointer(4, GL_UNSIGNED_BYTE, 0, &colors[begin*8]);
-               }
-               glVertexPointer(3, GL_FLOAT, 0, &verts[begin*6]);
-               glTexCoordPointer(2, GL_FLOAT, 0, &coords[begin*4]);
-               glDrawArrays(GL_TRIANGLE_STRIP, 0, (end - begin) * 2);
-       }
-       else
-               finished = YES;
-}
-@end
-
diff --git a/Classes/cocos2d/CCScene.h b/Classes/cocos2d/CCScene.h
deleted file mode 100644 (file)
index eedc985..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCNode.h"
-
-/** CCScene is a subclass of CCNode that is used only as an abstract concept.
- CCScene an CCNode are almost identical with the difference that CCScene has it's
- anchor point (by default) at the center of the screen.
-
- For the moment CCScene has no other logic than that, but in future releases it might have
- additional logic.
-
- It is a good practice to use and CCScene as the parent of all your nodes.
-*/
-@interface CCScene : CCNode
-{
-}
-@end
diff --git a/Classes/cocos2d/CCScene.m b/Classes/cocos2d/CCScene.m
deleted file mode 100644 (file)
index e1716bb..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCScene.h"
-#import "Support/CGPointExtension.h"
-#import "CCDirector.h"
-
-
-@implementation CCScene
--(id) init
-{
-       if( (self=[super init]) ) {
-               CGSize s = [[CCDirector sharedDirector] winSize];
-               self.isRelativeAnchorPoint = NO;
-               anchorPoint_ = ccp(0.5f, 0.5f);
-               [self setContentSize:s];        
-       }
-       
-       return self;
-}
-@end
diff --git a/Classes/cocos2d/CCScheduler.h b/Classes/cocos2d/CCScheduler.h
deleted file mode 100644 (file)
index 94e381f..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
-
-#import "Support/uthash.h"
-#import "ccTypes.h"
-
-typedef void (*TICK_IMP)(id, SEL, ccTime);
-
-//
-// CCTimer
-//
-/** Light weight timer */
-@interface CCTimer : NSObject
-{
-       id target;
-       TICK_IMP impMethod;
-       
-       ccTime elapsed;
-
-@public                                        // optimization
-       ccTime interval;
-       SEL selector;
-}
-
-/** interval in seconds */
-@property (nonatomic,readwrite,assign) ccTime interval;
-
-/** Allocates a timer with a target and a selector.
-*/
-+(id) timerWithTarget:(id) t selector:(SEL)s;
-
-/** Allocates a timer with a target, a selector and an interval in seconds.
-*/
-+(id) timerWithTarget:(id) t selector:(SEL)s interval:(ccTime)seconds;
-
-/** Initializes a timer with a target and a selector.
-*/
- -(id) initWithTarget:(id) t selector:(SEL)s;
-
-/** Initializes a timer with a target, a selector and an interval in seconds.
-*/
--(id) initWithTarget:(id) t selector:(SEL)s interval:(ccTime)seconds;
-
-
-/** triggers the timer */
--(void) update: (ccTime) dt;
-@end
-
-
-
-//
-// CCScheduler
-//
-/** Scheduler is responsible of triggering the scheduled callbacks.
- You should not use NSTimer. Instead use this class.
- There are 2 different types of callbacks (selectors):
-
-       - update selector: the 'update' selector will be called every frame. You can customize the priority.
-       - custom selector: A custom selector will be called every frame, or with a custom interval of time
- The 'custom selectors' should be avoided when possible. It is faster, and consumes less memory to use the 'update selector'.
-
-*/
-
-struct _listEntry;
-struct _hashSelectorEntry;
-struct _hashUpdateEntry;
-
-@interface CCScheduler : NSObject
-{      
-       ccTime                          timeScale_;
-       
-       //
-       // "updates with priority" stuff
-       //
-       struct _listEntry                       *updatesNeg;    // list of priority < 0
-       struct _listEntry                       *updates0;              // list priority == 0
-       struct _listEntry                       *updatesPos;    // list priority > 0
-       struct _hashUpdateEntry         *hashForUpdates;        // hash used to fetch quickly the list entries for pause,delete,etc.
-               
-       // Used for "selectors with interval"
-       struct _hashSelectorEntry       *hashForSelectors;
-       struct _hashSelectorEntry       *currentTarget;
-       BOOL                                            currentTargetSalvaged;
-       
-       // Optimization
-       TICK_IMP                        impMethod;
-       SEL                                     updateSelector;
-}
-
-/** Modifies the time of all scheduled callbacks.
- You can use this property to create a 'slow motion' or 'fast fordward' effect.
- Default is 1.0. To create a 'slow motion' effect, use values below 1.0.
- To create a 'fast fordward' effect, use values higher than 1.0.
- @since v0.8
- @warning It will affect EVERY scheduled selector / action.
- */
-@property (nonatomic,readwrite) ccTime timeScale;
-
-/** returns a shared instance of the Scheduler */
-+(CCScheduler *)sharedScheduler;
-
-/** purges the shared scheduler. It releases the retained instance.
- @since v0.99.0
- */
-+(void)purgeSharedScheduler;
-
-/** 'tick' the scheduler.
- You should NEVER call this method, unless you know what you are doing.
- */
--(void) tick:(ccTime)dt;
-
-/** The scheduled method will be called every 'interval' seconds.
- If paused is YES, then it won't be called until it is resumed.
- If 'interval' is 0, it will be called every frame, but if so, it recommened to use 'scheduleUpdateForTarget:' instead.
- If the selector is already scheduled, then only the interval parameter will be updated without re-scheduling it again.
-
- @since v0.99.3
- */
--(void) scheduleSelector:(SEL)selector forTarget:(id)target interval:(ccTime)interval paused:(BOOL)paused;
-
-/** Schedules the 'update' selector for a given target with a given priority.
- The 'update' selector will be called every frame.
- The lower the priority, the earlier it is called.
- @since v0.99.3
- */
--(void) scheduleUpdateForTarget:(id)target priority:(int)priority paused:(BOOL)paused;
-
-/** Unshedules a selector for a given target.
- If you want to unschedule the "update", use unscheudleUpdateForTarget.
- @since v0.99.3
- */
--(void) unscheduleSelector:(SEL)selector forTarget:(id)target;
-
-/** Unschedules the update selector for a given target
- @since v0.99.3
- */
--(void) unscheduleUpdateForTarget:(id)target;
-
-/** Unschedules all selectors for a given target.
- This also includes the "update" selector.
- @since v0.99.3
- */
--(void) unscheduleAllSelectorsForTarget:(id)target;
-
-/** Unschedules all selectors from all targets.
- You should NEVER call this method, unless you know what you are doing.
-
- @since v0.99.3
- */
--(void) unscheduleAllSelectors;
-
-/** Pauses the target.
- All scheduled selectors/update for a given target won't be 'ticked' until the target is resumed.
- If the target is not present, nothing happens.
- @since v0.99.3
- */
--(void) pauseTarget:(id)target;
-
-/** Resumes the target.
- The 'target' will be unpaused, so all schedule selectors/update will be 'ticked' again.
- If the target is not present, nothing happens.
- @since v0.99.3
- */
--(void) resumeTarget:(id)target;
-
-
-/** schedules a Timer.
- It will be fired in every frame.
- @deprecated Use scheduleSelector:forTarget:interval:paused instead. Will be removed in 1.0
- */
--(void) scheduleTimer: (CCTimer*) timer DEPRECATED_ATTRIBUTE;
-
-/** unschedules an already scheduled Timer
- @deprecated Use unscheduleSelector:forTarget. Will be removed in v1.0
- */
--(void) unscheduleTimer: (CCTimer*) timer DEPRECATED_ATTRIBUTE;
-
-/** unschedule all timers.
- You should NEVER call this method, unless you know what you are doing.
- @deprecated Use scheduleAllSelectors instead. Will be removed in 1.0
- @since v0.8
- */
--(void) unscheduleAllTimers DEPRECATED_ATTRIBUTE;
-@end
diff --git a/Classes/cocos2d/CCScheduler.m b/Classes/cocos2d/CCScheduler.m
deleted file mode 100644 (file)
index 8111ffb..0000000
+++ /dev/null
@@ -1,597 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
-// cocos2d imports
-#import "CCScheduler.h"
-#import "ccMacros.h"
-#import "Support/uthash.h"
-#import "Support/utlist.h"
-#import "Support/ccCArray.h"
-
-//
-// Data structures
-//
-#pragma mark -
-#pragma mark Data Structures
-
-// A list double-linked list used for "updates with priority"
-typedef struct _listEntry
-{
-       struct  _listEntry *prev, *next;
-       TICK_IMP impMethod;
-       id              target;                         // not retained (retained by hashUpdateEntry)
-       int             priority;
-       BOOL    paused;
-       
-} tListEntry;
-
-typedef struct _hashUpdateEntry
-{
-       tListEntry              **list;         // Which list does it belong to ?
-       tListEntry              *entry;         // entry in the list
-       id                              target;         // hash key (retained)
-       UT_hash_handle  hh;
-} tHashUpdateEntry;
-
-// Hash Element used for "selectors with interval"
-typedef struct _hashSelectorEntry
-{
-       struct ccArray  *timers;
-       id                              target;         // hash key (retained)
-       unsigned int    timerIndex;
-       CCTimer                 *currentTimer;
-       BOOL                    currentTimerSalvaged;
-       BOOL                    paused;
-       UT_hash_handle  hh;
-} tHashSelectorEntry;
-
-
-
-//
-// CCTimer
-//
-#pragma mark -
-#pragma mark - CCTimer
-
-@implementation CCTimer
-
-@synthesize interval;
-
--(id) init
-{
-       NSAssert(NO, @"CCTimer: Init not supported.");
-       [self release];
-       return nil;
-}
-
-+(id) timerWithTarget:(id)t selector:(SEL)s
-{
-       return [[[self alloc] initWithTarget:t selector:s] autorelease];
-}
-
-+(id) timerWithTarget:(id)t selector:(SEL)s interval:(ccTime) i
-{
-       return [[[self alloc] initWithTarget:t selector:s interval:i] autorelease];
-}
-
--(id) initWithTarget:(id)t selector:(SEL)s
-{
-       return [self initWithTarget:t selector:s interval:0];
-}
-
--(id) initWithTarget:(id)t selector:(SEL)s interval:(ccTime) seconds
-{
-       if( (self=[super init]) ) {
-#if COCOS2D_DEBUG
-               NSMethodSignature *sig = [t methodSignatureForSelector:s];
-               NSAssert(sig !=0 , @"Signature not found for selector - does it have the following form? -(void) name: (ccTime) dt");
-#endif
-               
-               // target is not retained. It is retained in the hash structure
-               target = t;
-               selector = s;
-               impMethod = (TICK_IMP) [t methodForSelector:s];
-               elapsed = -1;
-               interval = seconds;
-       }
-       return self;
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | target:%@ selector:(%@)>", [self class], self, [target class], NSStringFromSelector(selector)];
-}
-
--(void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-       [super dealloc];
-}
-
--(void) update: (ccTime) dt
-{
-       if( elapsed == - 1)
-               elapsed = 0;
-       else
-               elapsed += dt;
-       if( elapsed >= interval ) {
-               impMethod(target, selector, elapsed);
-               elapsed = 0;
-       }
-}
-@end
-
-//
-// CCScheduler
-//
-#pragma mark -
-#pragma mark - CCScheduler
-
-@interface CCScheduler (Private)
--(void) removeHashElement:(tHashSelectorEntry*)element;
-@end
-
-@implementation CCScheduler
-
-static CCScheduler *sharedScheduler;
-
-@synthesize timeScale = timeScale_;
-
-+ (CCScheduler *)sharedScheduler
-{
-       if (!sharedScheduler)
-               sharedScheduler = [[CCScheduler alloc] init];
-
-       return sharedScheduler;
-}
-
-+(id)alloc
-{
-       NSAssert(sharedScheduler == nil, @"Attempted to allocate a second instance of a singleton.");
-       return [super alloc];
-}
-
-+(void)purgeSharedScheduler
-{
-       [sharedScheduler release];
-       sharedScheduler = nil;
-}
-
-- (id) init
-{
-       if( (self=[super init]) ) {             
-               timeScale_ = 1.0f;
-
-               // used to trigger CCTimer#update
-               updateSelector = @selector(update:);
-               impMethod = (TICK_IMP) [CCTimer instanceMethodForSelector:updateSelector];
-
-               // updates with priority
-               updates0 = NULL;
-               updatesNeg = NULL;
-               updatesPos = NULL;
-               hashForUpdates = NULL;
-               
-               // selectors with interval
-               currentTarget = nil;
-               currentTargetSalvaged = NO;
-               hashForSelectors = nil;
-       }
-
-       return self;
-}
-
-- (void) dealloc
-{
-       CCLOG(@"cocos2d: deallocing %@", self);
-
-       [self unscheduleAllSelectors];
-
-       sharedScheduler = nil;
-
-       [super dealloc];
-}
-
-
-#pragma mark CCScheduler - Custom Selectors
-
--(void) removeHashElement:(tHashSelectorEntry*)element
-{
-       ccArrayFree(element->timers);
-       [element->target release];
-       HASH_DEL(hashForSelectors, element);
-       free(element);
-}
-
--(void) scheduleTimer: (CCTimer*) t
-{
-       NSAssert(NO, @"Not implemented. Use scheduleSelector:forTarget:");
-}
-
--(void) unscheduleTimer: (CCTimer*) t
-{
-       NSAssert(NO, @"Not implemented. Use unscheduleSelector:forTarget:");
-}
-
--(void) unscheduleAllTimers
-{
-       NSAssert(NO, @"Not implemented. Use unscheduleAllSelectors");
-}
-
--(void) scheduleSelector:(SEL)selector forTarget:(id)target interval:(ccTime)interval paused:(BOOL)paused
-{
-       NSAssert( selector != nil, @"Argument selector must be non-nil");
-       NSAssert( target != nil, @"Argument target must be non-nil");   
-       
-       tHashSelectorEntry *element = NULL;
-       HASH_FIND_INT(hashForSelectors, &target, element);
-       
-       if( ! element ) {
-               element = calloc( sizeof( *element ), 1 );
-               element->target = [target retain];
-               HASH_ADD_INT( hashForSelectors, target, element );
-       
-               // Is this the 1st element ? Then set the pause level to all the selectors of this target
-               element->paused = paused;
-       
-       } else
-               NSAssert( element->paused == paused, @"CCScheduler. Trying to schedule a selector with a pause value different than the target");
-       
-       
-       if( element->timers == nil )
-               element->timers = ccArrayNew(10);
-       else
-       {
-               for( unsigned int i=0; i< element->timers->num; i++ ) {
-                       CCTimer *timer = element->timers->arr[i];
-                       if( selector == timer->selector ) {
-                               CCLOG(@"CCScheduler#scheduleSelector. Selector already scheduled. Updating interval from: %.2f to %.2f", timer->interval, interval);
-                               timer->interval = interval;
-                               return;
-                       }
-               }
-               ccArrayEnsureExtraCapacity(element->timers, 1);
-       }
-       
-       CCTimer *timer = [[CCTimer alloc] initWithTarget:target selector:selector interval:interval];
-       ccArrayAppendObject(element->timers, timer);
-       [timer release];
-}
-
--(void) unscheduleSelector:(SEL)selector forTarget:(id)target
-{
-       // explicity handle nil arguments when removing an object
-       if( target==nil && selector==NULL)
-               return;
-       
-       NSAssert( target != nil, @"Target MUST not be nil");
-       NSAssert( selector != NULL, @"Selector MUST not be NULL");
-       
-       tHashSelectorEntry *element = NULL;
-       HASH_FIND_INT(hashForSelectors, &target, element);
-       
-       if( element ) {
-               
-               for( unsigned int i=0; i< element->timers->num; i++ ) {
-                       CCTimer *timer = element->timers->arr[i];
-                       
-                       
-                       if( selector == timer->selector ) {
-                               
-                               if( timer == element->currentTimer && !element->currentTimerSalvaged ) {
-                                       [element->currentTimer retain];
-                                       element->currentTimerSalvaged = YES;
-                               }
-
-                               ccArrayRemoveObjectAtIndex(element->timers, i );
-                               
-                               // update timerIndex in case we are in tick:, looping over the actions
-                               if( element->timerIndex >= i )
-                                       element->timerIndex--;
-
-                               if( element->timers->num == 0 ) {
-                                       if( currentTarget == element )
-                                               currentTargetSalvaged = YES;
-                                       else
-                                               [self removeHashElement: element];
-                               }
-                               return;
-                       }
-               }
-       }
-       
-       // Not Found
-//     NSLog(@"CCScheduler#unscheduleSelector:forTarget: selector not found: %@", selString);
-
-}
-
-#pragma mark CCScheduler - Update Specific
-
--(void) priorityIn:(tListEntry**)list target:(id)target priority:(int)priority paused:(BOOL)paused
-{
-       tListEntry *listElement = malloc( sizeof(*listElement) );
-
-       listElement->target = target;
-       listElement->priority = priority;
-       listElement->paused = paused;
-       listElement->impMethod = (TICK_IMP) [target methodForSelector:updateSelector];
-       listElement->next = listElement->prev = NULL;
-       
-       
-       // empty list ?
-       if( ! *list ) {
-               DL_APPEND( *list, listElement );
-       
-       } else {
-               BOOL added = NO;                
-       
-               for( tListEntry *elem = *list; elem ; elem = elem->next ) {
-                       if( priority < elem->priority ) {
-                               
-                               if( elem == *list )
-                                       DL_PREPEND(*list, listElement);
-                               else {
-                                       listElement->next = elem;
-                                       listElement->prev = elem->prev;
-
-                                       elem->prev->next = listElement;
-                                       elem->prev = listElement;
-                               }
-                               
-                               added = YES;
-                               break;
-                       }
-               }
-               
-               // Not added? priority has the higher value. Append it.
-               if( !added )
-                       DL_APPEND(*list, listElement);
-       }
-       
-       // update hash entry for quicker access
-       tHashUpdateEntry *hashElement = calloc( sizeof(*hashElement), 1 );
-       hashElement->target = [target retain];
-       hashElement->list = list;
-       hashElement->entry = listElement;
-       HASH_ADD_INT(hashForUpdates, target, hashElement );
-}
-
--(void) appendIn:(tListEntry**)list target:(id)target paused:(BOOL)paused
-{
-       tListEntry *listElement = malloc( sizeof( * listElement ) );
-       
-       listElement->target = target;
-       listElement->paused = paused;
-       listElement->impMethod = (TICK_IMP) [target methodForSelector:updateSelector];
-       
-       DL_APPEND(*list, listElement);
-
-       
-       // update hash entry for quicker access
-       tHashUpdateEntry *hashElement = calloc( sizeof(*hashElement), 1 );
-       hashElement->target = [target retain];
-       hashElement->list = list;
-       hashElement->entry = listElement;
-       HASH_ADD_INT(hashForUpdates, target, hashElement );     
-}
-
--(void) scheduleUpdateForTarget:(id)target priority:(int)priority paused:(BOOL)paused
-{
-#if COCOS2D_DEBUG >= 1
-       tHashUpdateEntry * hashElement = NULL;
-       HASH_FIND_INT(hashForUpdates, &target, hashElement);
-       NSAssert( hashElement == NULL, @"CCScheduler: You can't re-schedule an 'update' selector'. Unschedule it first");
-#endif 
-               
-       // most of the updates are going to be 0, that's way there
-       // is an special list for updates with priority 0
-       if( priority == 0 )
-               [self appendIn:&updates0 target:target paused:paused];
-
-       else if( priority < 0 )
-               [self priorityIn:&updatesNeg target:target priority:priority paused:paused];
-
-       else // priority > 0
-               [self priorityIn:&updatesPos target:target priority:priority paused:paused];
-}
-
--(void) unscheduleUpdateForTarget:(id)target
-{
-       if( target == nil )
-               return;
-       
-       tHashUpdateEntry * element = NULL;
-       HASH_FIND_INT(hashForUpdates, &target, element);
-       if( element ) {
-       
-               // list entry
-               DL_DELETE( *element->list, element->entry );
-               free( element->entry );
-       
-               // hash entry
-               [element->target release];
-               HASH_DEL( hashForUpdates, element);
-               free(element);
-       }
-}
-
-#pragma mark CCScheduler - Common for Update selector & Custom Selectors
-
--(void) unscheduleAllSelectors
-{
-       // Custom Selectors
-       for(tHashSelectorEntry *element=hashForSelectors; element != NULL; ) {  
-               id target = element->target;
-               element=element->hh.next;
-               [self unscheduleAllSelectorsForTarget:target];
-       }
-
-       // Updates selectors
-       tListEntry *entry, *tmp;
-       DL_FOREACH_SAFE( updates0, entry, tmp ) {
-               [self unscheduleUpdateForTarget:entry->target];
-       }
-       DL_FOREACH_SAFE( updatesNeg, entry, tmp ) {
-               [self unscheduleUpdateForTarget:entry->target];
-       }
-       DL_FOREACH_SAFE( updatesPos, entry, tmp ) {
-               [self unscheduleUpdateForTarget:entry->target];
-       }
-       
-}
-
--(void) unscheduleAllSelectorsForTarget:(id)target
-{
-       // explicit nil handling
-       if( target == nil )
-               return;
-       
-       // Custom Selectors
-       tHashSelectorEntry *element = NULL;
-       HASH_FIND_INT(hashForSelectors, &target, element);
-       
-       if( element ) {
-               if( ccArrayContainsObject(element->timers, element->currentTimer) && !element->currentTimerSalvaged ) {
-                       [element->currentTimer retain];
-                       element->currentTimerSalvaged = YES;
-               }
-               ccArrayRemoveAllObjects(element->timers);
-               if( currentTarget == element )
-                       currentTargetSalvaged = YES;
-               else
-                       [self removeHashElement:element];
-       }
-       
-       // Update Selector
-       [self unscheduleUpdateForTarget:target];
-}
-
--(void) resumeTarget:(id)target
-{
-       NSAssert( target != nil, @"target must be non nil" );
-       
-       // Custom Selectors
-       tHashSelectorEntry *element = NULL;
-       HASH_FIND_INT(hashForSelectors, &target, element);
-       if( element )
-               element->paused = NO;
-       
-       // Update selector
-       tHashUpdateEntry * elementUpdate = NULL;
-       HASH_FIND_INT(hashForUpdates, &target, elementUpdate);
-       if( elementUpdate ) {
-               NSAssert( elementUpdate->entry != NULL, @"resumeTarget: unknown error");
-               elementUpdate->entry->paused = NO;
-       }       
-}
-
--(void) pauseTarget:(id)target
-{
-       NSAssert( target != nil, @"target must be non nil" );
-       
-       // Custom selectors
-       tHashSelectorEntry *element = NULL;
-       HASH_FIND_INT(hashForSelectors, &target, element);
-       if( element )
-               element->paused = YES;
-       
-       // Update selector
-       tHashUpdateEntry * elementUpdate = NULL;
-       HASH_FIND_INT(hashForUpdates, &target, elementUpdate);
-       if( elementUpdate ) {
-               NSAssert( elementUpdate->entry != NULL, @"pauseTarget: unknown error");
-               elementUpdate->entry->paused = YES;
-       }
-       
-}
-
-#pragma mark CCScheduler - Main Loop
-
--(void) tick: (ccTime) dt
-{
-       if( timeScale_ != 1.0f )
-               dt *= timeScale_;
-       
-       // Iterate all over the Updates selectors
-       tListEntry *entry, *tmp;
-
-       // updates with priority < 0
-       DL_FOREACH_SAFE( updatesNeg, entry, tmp ) {
-               if( ! entry->paused )
-                       entry->impMethod( entry->target, updateSelector, dt );
-       }
-
-       // updates with priority == 0
-       DL_FOREACH_SAFE( updates0, entry, tmp ) {
-               if( ! entry->paused )
-                       entry->impMethod( entry->target, updateSelector, dt );
-       }
-       
-       // updates with priority > 0
-       DL_FOREACH_SAFE( updatesPos, entry, tmp ) {
-               if( ! entry->paused )
-                       entry->impMethod( entry->target, updateSelector, dt );
-       }
-       
-       // Iterate all over the  custome selectors
-       for(tHashSelectorEntry *elt=hashForSelectors; elt != NULL; ) {  
-               
-               currentTarget = elt;
-               currentTargetSalvaged = NO;
-
-               if( ! currentTarget->paused ) {
-                       
-                       // The 'timers' ccArray may change while inside this loop.
-                       for( elt->timerIndex = 0; elt->timerIndex < elt->timers->num; elt->timerIndex++) {
-                               elt->currentTimer = elt->timers->arr[elt->timerIndex];
-                               elt->currentTimerSalvaged = NO;
-
-                               impMethod( elt->currentTimer, updateSelector, dt);
-                               
-                               if( elt->currentTimerSalvaged ) {
-                                       // The currentTimer told the remove itself. To prevent the timer from
-                                       // accidentally deallocating itself before finishing its step, we retained
-                                       // it. Now that step is done, it's safe to release it.
-                                       [elt->currentTimer release];
-                               }
-                               
-                               elt->currentTimer = nil;
-                       }                       
-               }
-               
-               // elt, at this moment, is still valid
-               // so it is safe to ask this here (issue #490)
-               elt = elt->hh.next;
-               
-               // only delete currentTarget if no actions were scheduled during the cycle (issue #481)
-               if( currentTargetSalvaged && currentTarget->timers->num == 0 )
-                       [self removeHashElement:currentTarget];         
-       }
-       
-       currentTarget = nil;
-}
-
-@end
-
diff --git a/Classes/cocos2d/CCSprite.h b/Classes/cocos2d/CCSprite.h
deleted file mode 100644 (file)
index 8b35176..0000000
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCNode.h"
-#import "CCProtocols.h"
-#import "CCTextureAtlas.h"
-
-@class CCSpriteBatchNode;
-@class CCSpriteSheet;
-@class CCSpriteSheetInternalOnly;
-@class CCSpriteFrame;
-@class CCAnimation;
-
-#pragma mark CCSprite
-
-enum {
-       /// CCSprite invalid index on the CCSpriteBatchode
-       CCSpriteIndexNotInitialized = 0xffffffff,
-};
-
-/**
- Whether or not an CCSprite will rotate, scale or translate with it's parent.
- Useful in health bars, when you want that the health bar translates with it's parent but you don't
- want it to rotate with its parent.
- @since v0.99.0
- */
-typedef enum {
-       //! Translate with it's parent
-       CC_HONOR_PARENT_TRANSFORM_TRANSLATE =  1 << 0,
-       //! Rotate with it's parent
-       CC_HONOR_PARENT_TRANSFORM_ROTATE        =  1 << 1,
-       //! Scale with it's parent
-       CC_HONOR_PARENT_TRANSFORM_SCALE         =  1 << 2,
-
-       //! All possible transformation enabled. Default value.
-       CC_HONOR_PARENT_TRANSFORM_ALL           =  CC_HONOR_PARENT_TRANSFORM_TRANSLATE | CC_HONOR_PARENT_TRANSFORM_ROTATE | CC_HONOR_PARENT_TRANSFORM_SCALE,
-
-} ccHonorParentTransform;
-
-/** CCSprite is a 2d image ( http://en.wikipedia.org/wiki/Sprite_(computer_graphics) )
- *
- * CCSprite can be created with an image, or with a sub-rectangle of an image.
- *
- * If the parent or any of its ancestors is a CCSpriteBatchNode then the following features/limitations are valid
- *     - Features when the parent is a CCBatchNode:
- *             - MUCH faster rendering, specially if the CCSpriteBatchNode has many children. All the children will be drawn in a single batch.
- *
- *     - Limitations
- *             - Camera is not supported yet (eg: CCOrbitCamera action doesn't work)
- *             - GridBase actions are not supported (eg: CCLens, CCRipple, CCTwirl)
- *             - The Alias/Antialias property belongs to CCSpriteBatchNode, so you can't individually set the aliased property.
- *             - The Blending function property belongs to CCSpriteBatchNode, so you can't individually set the blending function property.
- *             - Parallax scroller is not supported, but can be simulated with a "proxy" sprite.
- *
- *  If the parent is an standard CCNode, then CCSprite behaves like any other CCNode:
- *    - It supports blending functions
- *    - It supports aliasing / antialiasing
- *    - But the rendering will be slower: 1 draw per children.
- *
- * The default anchorPoint in CCSprite is (0.5, 0.5).
- */
-@interface CCSprite : CCNode <CCRGBAProtocol, CCTextureProtocol>
-{
-       
-       //
-       // Data used when the sprite is rendered using a CCSpriteBatchNode
-       //
-       CCTextureAtlas                  *textureAtlas_;                 // Sprite Sheet texture atlas (weak reference)
-       NSUInteger                              atlasIndex_;                    // Absolute (real) Index on the batch node
-       CCSpriteBatchNode               *batchNode_;                    // Used batch node (weak reference)
-       ccHonorParentTransform  honorParentTransform_;  // whether or not to transform according to its parent transformations
-       BOOL                                    dirty_;                                 // Sprite needs to be updated
-       BOOL                                    recursiveDirty_;                // Subchildren needs to be updated
-       BOOL                                    hasChildren_;                   // optimization to check if it contain children
-       
-       //
-       // Data used when the sprite is self-rendered
-       //
-       ccBlendFunc                             blendFunc_;                             // Needed for the texture protocol
-       CCTexture2D                             *texture_;                              // Texture used to render the sprite
-
-       //
-       // Shared data
-       //
-
-       // whether or not it's parent is a CCSpriteBatchNode
-       BOOL    usesBatchNode_;
-
-       // texture
-       CGRect  rect_;
-       CGRect  rectInPixels_;
-       BOOL    rectRotated_;
-       
-       // Offset Position (used by Zwoptex)
-       CGPoint offsetPositionInPixels_;
-       CGPoint unflippedOffsetPositionFromCenter_;
-
-       // vertex coords, texture coords and color info
-       ccV3F_C4B_T2F_Quad quad_;
-       
-       // opacity and RGB protocol
-       GLubyte         opacity_;
-       ccColor3B       color_;
-       ccColor3B       colorUnmodified_;
-       BOOL            opacityModifyRGB_;
-       
-       // image is flipped
-       BOOL    flipX_;
-       BOOL    flipY_;
-       
-       
-       // Animations that belong to the sprite
-       NSMutableDictionary *animations_;
-
-@public
-       // used internally.
-       void (*updateMethod)(id, SEL);
-}
-
-/** whether or not the Sprite needs to be updated in the Atlas */
-@property (nonatomic,readwrite) BOOL dirty;
-/** the quad (tex coords, vertex coords and color) information */
-@property (nonatomic,readonly) ccV3F_C4B_T2F_Quad quad;
-/** The index used on the TextureATlas. Don't modify this value unless you know what you are doing */
-@property (nonatomic,readwrite) NSUInteger atlasIndex;
-/** returns the rect of the CCSprite in points */
-@property (nonatomic,readonly) CGRect textureRect;
-/** returns whether or not the texture rectangle is rotated */
-@property (nonatomic,readonly) BOOL textureRectRotated;
-/** whether or not the sprite is flipped horizontally. 
- It only flips the texture of the sprite, and not the texture of the sprite's children.
- Also, flipping the texture doesn't alter the anchorPoint.
- If you want to flip the anchorPoint too, and/or to flip the children too use:
-       sprite.scaleX *= -1;
- */
-@property (nonatomic,readwrite) BOOL flipX;
-/** whether or not the sprite is flipped vertically.
- It only flips the texture of the sprite, and not the texture of the sprite's children.
- Also, flipping the texture doesn't alter the anchorPoint.
- If you want to flip the anchorPoint too, and/or to flip the children too use:
-       sprite.scaleY *= -1;
- */
-@property (nonatomic,readwrite) BOOL flipY;
-/** opacity: conforms to CCRGBAProtocol protocol */
-@property (nonatomic,readwrite) GLubyte opacity;
-/** RGB colors: conforms to CCRGBAProtocol protocol */
-@property (nonatomic,readwrite) ccColor3B color;
-/** whether or not the Sprite is rendered using a CCSpriteBatchNode */
-@property (nonatomic,readwrite) BOOL usesBatchNode;
-/** weak reference of the CCTextureAtlas used when the sprite is rendered using a CCSpriteBatchNode */
-@property (nonatomic,readwrite,assign) CCTextureAtlas *textureAtlas;
-/** weak reference to the CCSpriteBatchNode that renders the CCSprite */
-@property (nonatomic,readwrite,assign) CCSpriteBatchNode *batchNode;
-/** whether or not to transform according to its parent transfomrations.
- Useful for health bars. eg: Don't rotate the health bar, even if the parent rotates.
- IMPORTANT: Only valid if it is rendered using an CCSpriteBatchNode.
- @since v0.99.0
- */
-@property (nonatomic,readwrite) ccHonorParentTransform honorParentTransform;
-/** offset position in pixels of the sprite in points. Calculated automatically by editors like Zwoptex.
- @since v0.99.0
- */
-@property (nonatomic,readonly) CGPoint offsetPositionInPixels;
-/** conforms to CCTextureProtocol protocol */
-@property (nonatomic,readwrite) ccBlendFunc blendFunc;
-
-#pragma mark CCSprite - Initializers
-
-/** Creates an sprite with a texture.
- The rect used will be the size of the texture.
- The offset will be (0,0).
- */
-+(id) spriteWithTexture:(CCTexture2D*)texture;
-
-/** Creates an sprite with a texture and a rect.
- The offset will be (0,0).
- */
-+(id) spriteWithTexture:(CCTexture2D*)texture rect:(CGRect)rect;
-
-/** Creates an sprite with an sprite frame.
- */
-+(id) spriteWithSpriteFrame:(CCSpriteFrame*)spriteFrame;
-
-/** Creates an sprite with an sprite frame name.
- An CCSpriteFrame will be fetched from the CCSpriteFrameCache by name.
- If the CCSpriteFrame doesn't exist it will raise an exception.
- @since v0.9
- */
-+(id) spriteWithSpriteFrameName:(NSString*)spriteFrameName;
-
-/** Creates an sprite with an image filename.
- The rect used will be the size of the image.
- The offset will be (0,0).
- */
-+(id) spriteWithFile:(NSString*)filename;
-
-/** Creates an sprite with an image filename and a rect.
- The offset will be (0,0).
- */
-+(id) spriteWithFile:(NSString*)filename rect:(CGRect)rect;
-
-/** Creates an sprite with a CGImageRef.
- @deprecated Use spriteWithCGImage:key: instead. Will be removed in v1.0 final
- */
-+(id) spriteWithCGImage: (CGImageRef)image DEPRECATED_ATTRIBUTE;
-
-/** Creates an sprite with a CGImageRef and a key.
- The key is used by the CCTextureCache to know if a texture was already created with this CGImage.
- For example, a valid key is: @"sprite_frame_01".
- If key is nil, then a new texture will be created each time by the CCTextureCache. 
- @since v0.99.0
- */
-+(id) spriteWithCGImage: (CGImageRef)image key:(NSString*)key;
-
-
-/** Creates an sprite with an CCBatchNode and a rect
- */
-+(id) spriteWithBatchNode:(CCSpriteBatchNode*)batchNode rect:(CGRect)rect;
-
-+(id) spriteWithSpriteSheet:(CCSpriteSheetInternalOnly*)spritesheet rect:(CGRect)rect DEPRECATED_ATTRIBUTE;
-
-
-/** Initializes an sprite with a texture.
- The rect used will be the size of the texture.
- The offset will be (0,0).
- */
--(id) initWithTexture:(CCTexture2D*)texture;
-
-/** Initializes an sprite with a texture and a rect in points.
- The offset will be (0,0).
- */
--(id) initWithTexture:(CCTexture2D*)texture rect:(CGRect)rect;
-
-/** Initializes an sprite with an sprite frame.
- */
--(id) initWithSpriteFrame:(CCSpriteFrame*)spriteFrame;
-
-/** Initializes an sprite with an sprite frame name.
- An CCSpriteFrame will be fetched from the CCSpriteFrameCache by name.
- If the CCSpriteFrame doesn't exist it will raise an exception.
- @since v0.9
- */
--(id) initWithSpriteFrameName:(NSString*)spriteFrameName;
-
-/** Initializes an sprite with an image filename.
- The rect used will be the size of the image.
- The offset will be (0,0).
- */
--(id) initWithFile:(NSString*)filename;
-
-/** Initializes an sprite with an image filename, and a rect.
- The offset will be (0,0).
- */
--(id) initWithFile:(NSString*)filename rect:(CGRect)rect;
-
-/** Initializes an sprite with a CGImageRef
- @deprecated Use spriteWithCGImage:key: instead. Will be removed in v1.0 final
- */
--(id) initWithCGImage: (CGImageRef)image DEPRECATED_ATTRIBUTE;
-
-/** Initializes an sprite with a CGImageRef and a key
- The key is used by the CCTextureCache to know if a texture was already created with this CGImage.
- For example, a valid key is: @"sprite_frame_01".
- If key is nil, then a new texture will be created each time by the CCTextureCache. 
- @since v0.99.0
- */
--(id) initWithCGImage:(CGImageRef)image key:(NSString*)key;
-
-/** Initializes an sprite with an CCSpriteSheet and a rect in points
- */
--(id) initWithBatchNode:(CCSpriteBatchNode*)batchNode rect:(CGRect)rect;
--(id) initWithSpriteSheet:(CCSpriteSheetInternalOnly*)spritesheet rect:(CGRect)rect DEPRECATED_ATTRIBUTE;
-
-/** Initializes an sprite with an CCSpriteSheet and a rect in pixels
- @since v0.99.5
- */
--(id) initWithBatchNode:(CCSpriteBatchNode*)batchNode rectInPixels:(CGRect)rect;
-
-
-
-#pragma mark CCSprite - BatchNode methods
-
-/** updates the quad according the the rotation, position, scale values.
- */
--(void)updateTransform;
-
-/** updates the texture rect of the CCSprite in points.
- */
--(void) setTextureRect:(CGRect) rect;
-/** updates the texture rect, rectRotated and untrimmed size of the CCSprite in pixels
- */
--(void) setTextureRectInPixels:(CGRect)rect rotated:(BOOL)rotated untrimmedSize:(CGSize)size;
-
-/** tell the sprite to use self-render.
- @since v0.99.0
- */
--(void) useSelfRender;
-
-/** tell the sprite to use sprite batch node
- @since v0.99.0
- */
--(void) useBatchNode:(CCSpriteBatchNode*)batchNode;
--(void) useSpriteSheetRender:(CCSpriteSheetInternalOnly*)spriteSheet DEPRECATED_ATTRIBUTE;
-
-
-#pragma mark CCSprite - Frames
-
-/** sets a new display frame to the CCSprite. */
--(void) setDisplayFrame:(CCSpriteFrame*)newFrame;
-
-/** returns whether or not a CCSpriteFrame is being displayed */
--(BOOL) isFrameDisplayed:(CCSpriteFrame*)frame;
-
-/** returns the current displayed frame. */
--(CCSpriteFrame*) displayedFrame;
-
-#pragma mark CCSprite - Animation
-
-/** changes the display frame based on an animation and an index.
- @deprecated Will be removed in 1.0.1. Use setDisplayFrameWithAnimationName:index instead
- */
--(void) setDisplayFrame: (NSString*) animationName index:(int) frameIndex DEPRECATED_ATTRIBUTE;
-
-/** changes the display frame with animation name and index.
- The animation name will be get from the CCAnimationCache
- @since v0.99.5
- */
--(void) setDisplayFrameWithAnimationName:(NSString*)animationName index:(int) frameIndex;
-
-/** returns an Animation given it's name.
- @deprecated Use CCAnimationCache instead. Will be removed in 1.0.1
- */
--(CCAnimation*)animationByName: (NSString*) animationName DEPRECATED_ATTRIBUTE;
-
-/** adds an Animation to the Sprite.
- @deprecated Use CCAnimationCache instead. Will be removed in 1.0.1
- */
--(void) addAnimation: (CCAnimation*) animation DEPRECATED_ATTRIBUTE;
-
-@end
diff --git a/Classes/cocos2d/CCSprite.m b/Classes/cocos2d/CCSprite.m
deleted file mode 100644 (file)
index 7875782..0000000
+++ /dev/null
@@ -1,1004 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import <Availability.h>
-
-#import "ccConfig.h"
-#import "CCSpriteBatchNode.h"
-#import "CCSpriteSheet.h"
-#import "CCSprite.h"
-#import "CCSpriteFrame.h"
-#import "CCSpriteFrameCache.h"
-#import "CCAnimation.h"
-#import "CCAnimationCache.h"
-#import "CCTextureCache.h"
-#import "Support/CGPointExtension.h"
-#import "CCDrawingPrimitives.h"
-
-#pragma mark -
-#pragma mark CCSprite
-
-#if CC_SPRITEBATCHNODE_RENDER_SUBPIXEL
-#define RENDER_IN_SUBPIXEL
-#else
-#define RENDER_IN_SUBPIXEL(__A__) ( (int)(__A__))
-#endif
-
-// XXX: Optmization
-struct transformValues_ {
-       CGPoint pos;            // position x and y
-       CGPoint scale;          // scale x and y
-       float   rotation;
-       CGPoint ap;                     // anchor point in pixels
-       BOOL    visible;
-};
-
-@interface CCSprite (Private)
--(void)updateTextureCoords:(CGRect)rect;
--(void)updateBlendFunc;
--(void) initAnimationDictionary;
--(void) getTransformValues:(struct transformValues_*)tv;       // optimization
-@end
-
-@implementation CCSprite
-
-@synthesize dirty = dirty_;
-@synthesize quad = quad_;
-@synthesize atlasIndex = atlasIndex_;
-@synthesize textureRect = rect_;
-@synthesize textureRectRotated = rectRotated_;
-@synthesize blendFunc = blendFunc_;
-@synthesize usesBatchNode = usesBatchNode_;
-@synthesize textureAtlas = textureAtlas_;
-@synthesize batchNode = batchNode_;
-@synthesize honorParentTransform = honorParentTransform_;
-@synthesize offsetPositionInPixels = offsetPositionInPixels_;
-
-
-+(id)spriteWithTexture:(CCTexture2D*)texture
-{
-       return [[[self alloc] initWithTexture:texture] autorelease];
-}
-
-+(id)spriteWithTexture:(CCTexture2D*)texture rect:(CGRect)rect
-{
-       return [[[self alloc] initWithTexture:texture rect:rect] autorelease];
-}
-
-+(id)spriteWithFile:(NSString*)filename
-{
-       return [[[self alloc] initWithFile:filename] autorelease];
-}
-
-+(id)spriteWithFile:(NSString*)filename rect:(CGRect)rect
-{
-       return [[[self alloc] initWithFile:filename rect:rect] autorelease];
-}
-
-+(id)spriteWithSpriteFrame:(CCSpriteFrame*)spriteFrame
-{
-       return [[[self alloc] initWithSpriteFrame:spriteFrame] autorelease];
-}
-
-+(id)spriteWithSpriteFrameName:(NSString*)spriteFrameName
-{
-       CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:spriteFrameName];
-       return [self spriteWithSpriteFrame:frame];
-}
-
-// XXX: deprecated
-+(id)spriteWithCGImage:(CGImageRef)image
-{
-       return [[[self alloc] initWithCGImage:image] autorelease];
-}
-
-+(id)spriteWithCGImage:(CGImageRef)image key:(NSString*)key
-{
-       return [[[self alloc] initWithCGImage:image key:key] autorelease];
-}
-
-+(id) spriteWithBatchNode:(CCSpriteBatchNode*)batchNode rect:(CGRect)rect
-{
-       return [[[self alloc] initWithBatchNode:batchNode rect:rect] autorelease];
-}
-+(id) spriteWithSpriteSheet:(CCSpriteSheetInternalOnly*)spritesheet rect:(CGRect)rect // XXX DEPRECATED
-{
-       return [self spriteWithBatchNode:spritesheet rect:rect];
-}
-
--(id) init
-{
-       if( (self=[super init]) ) {
-               dirty_ = recursiveDirty_ = NO;
-               
-               // by default use "Self Render".
-               // if the sprite is added to an SpriteSheet, then it will automatically switch to "SpriteSheet Render"
-               [self useSelfRender];
-               
-               opacityModifyRGB_                       = YES;
-               opacity_                                        = 255;
-               color_ = colorUnmodified_       = ccWHITE;
-               
-               blendFunc_.src = CC_BLEND_SRC;
-               blendFunc_.dst = CC_BLEND_DST;
-               
-               // update texture (calls updateBlendFunc)
-               [self setTexture:nil];
-               
-               // clean the Quad
-               bzero(&quad_, sizeof(quad_));
-               
-               flipY_ = flipX_ = NO;
-               
-               // lazy alloc
-               animations_ = nil;
-               
-               // default transform anchor: center
-               anchorPoint_ =  ccp(0.5f, 0.5f);
-               
-               // zwoptex default values
-               offsetPositionInPixels_ = CGPointZero;
-               
-               honorParentTransform_ = CC_HONOR_PARENT_TRANSFORM_ALL;
-               hasChildren_ = NO;
-               
-               // Atlas: Color
-               ccColor4B tmpColor = {255,255,255,255};
-               quad_.bl.colors = tmpColor;
-               quad_.br.colors = tmpColor;
-               quad_.tl.colors = tmpColor;
-               quad_.tr.colors = tmpColor;     
-               
-               // Atlas: Vertex
-               
-               // updated in "useSelfRender"
-               
-               // Atlas: TexCoords
-               [self setTextureRectInPixels:CGRectZero rotated:NO untrimmedSize:CGSizeZero];
-               
-               // updateMethod selector
-               updateMethod = (__typeof__(updateMethod))[self methodForSelector:@selector(updateTransform)];
-       }
-       
-       return self;
-}
-
--(id) initWithTexture:(CCTexture2D*)texture rect:(CGRect)rect
-{
-       NSAssert(texture!=nil, @"Invalid texture for sprite");
-       // IMPORTANT: [self init] and not [super init];
-       if( (self = [self init]) )
-       {
-               [self setTexture:texture];
-               [self setTextureRect:rect];
-       }
-       return self;
-}
-
--(id) initWithTexture:(CCTexture2D*)texture
-{
-       NSAssert(texture!=nil, @"Invalid texture for sprite");
-
-       CGRect rect = CGRectZero;
-       rect.size = texture.contentSize;
-       return [self initWithTexture:texture rect:rect];
-}
-
--(id) initWithFile:(NSString*)filename
-{
-       NSAssert(filename!=nil, @"Invalid filename for sprite");
-
-       CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addImage: filename];
-       if( texture ) {
-               CGRect rect = CGRectZero;
-               rect.size = texture.contentSize;
-               return [self initWithTexture:texture rect:rect];
-       }
-
-       [self release];
-       return nil;
-}
-
--(id) initWithFile:(NSString*)filename rect:(CGRect)rect
-{
-       NSAssert(filename!=nil, @"Invalid filename for sprite");
-
-       CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addImage: filename];
-       if( texture )
-               return [self initWithTexture:texture rect:rect];
-
-       [self release];
-       return nil;
-}
-
-- (id) initWithSpriteFrame:(CCSpriteFrame*)spriteFrame
-{
-       NSAssert(spriteFrame!=nil, @"Invalid spriteFrame for sprite");
-
-       id ret = [self initWithTexture:spriteFrame.texture rect:spriteFrame.rect];
-       [self setDisplayFrame:spriteFrame];
-       return ret;
-}
-
--(id)initWithSpriteFrameName:(NSString*)spriteFrameName
-{
-       NSAssert(spriteFrameName!=nil, @"Invalid spriteFrameName for sprite");
-
-       CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:spriteFrameName];
-       return [self initWithSpriteFrame:frame];
-}
-
-// XXX: deprecated
-- (id) initWithCGImage: (CGImageRef)image
-{
-       NSAssert(image!=nil, @"Invalid CGImageRef for sprite");
-
-       // XXX: possible bug. See issue #349. New API should be added
-       NSString *key = [NSString stringWithFormat:@"%08X",(unsigned long)image];
-       CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addCGImage:image forKey:key];
-       
-       CGRect rect = CGRectZero;
-       rect.size = texture.contentSize;
-       
-       return [self initWithTexture:texture rect:rect];
-}
-
-- (id) initWithCGImage:(CGImageRef)image key:(NSString*)key
-{
-       NSAssert(image!=nil, @"Invalid CGImageRef for sprite");
-       
-       // XXX: possible bug. See issue #349. New API should be added
-       CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addCGImage:image forKey:key];
-       
-       CGRect rect = CGRectZero;
-       rect.size = texture.contentSize;
-       
-       return [self initWithTexture:texture rect:rect];
-}
-
--(id) initWithBatchNode:(CCSpriteBatchNode*)batchNode rect:(CGRect)rect
-{
-       id ret = [self initWithTexture:batchNode.texture rect:rect];
-       [self useBatchNode:batchNode];
-       
-       return ret;
-}
-
--(id) initWithBatchNode:(CCSpriteBatchNode*)batchNode rectInPixels:(CGRect)rect
-{
-       id ret = [self initWithTexture:batchNode.texture];
-       [self setTextureRectInPixels:rect rotated:NO untrimmedSize:rect.size];
-       [self useBatchNode:batchNode];
-       
-       return ret;
-}
-
--(id) initWithSpriteSheet:(CCSpriteSheetInternalOnly*)spritesheet rect:(CGRect)rect // XXX DEPRECATED
-{
-       return [self initWithBatchNode:spritesheet rect:rect];
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | Rect = (%.2f,%.2f,%.2f,%.2f) | tag = %i | atlasIndex = %i>", [self class], self,
-                       rect_.origin.x, rect_.origin.y, rect_.size.width, rect_.size.height,
-                       tag_,
-                       atlasIndex_
-       ];
-}
-
-- (void) dealloc
-{
-       [texture_ release];
-       [animations_ release];
-       [super dealloc];
-}
-
--(void) useSelfRender
-{
-       atlasIndex_ = CCSpriteIndexNotInitialized;
-       usesBatchNode_ = NO;
-       textureAtlas_ = nil;
-       batchNode_ = nil;
-       dirty_ = recursiveDirty_ = NO;
-       
-       float x1 = 0 + offsetPositionInPixels_.x;
-       float y1 = 0 + offsetPositionInPixels_.y;
-       float x2 = x1 + rectInPixels_.size.width;
-       float y2 = y1 + rectInPixels_.size.height;
-       quad_.bl.vertices = (ccVertex3F) { x1, y1, 0 };
-       quad_.br.vertices = (ccVertex3F) { x2, y1, 0 };
-       quad_.tl.vertices = (ccVertex3F) { x1, y2, 0 };
-       quad_.tr.vertices = (ccVertex3F) { x2, y2, 0 };         
-}
-
--(void) useBatchNode:(CCSpriteBatchNode*)batchNode
-{
-       usesBatchNode_ = YES;
-       textureAtlas_ = [batchNode textureAtlas]; // weak ref
-       batchNode_ = batchNode; // weak ref
-}
--(void) useSpriteSheetRender:(CCSpriteSheetInternalOnly*)spriteSheet // XXX DEPRECATED
-{
-       [self useBatchNode:spriteSheet];
-}
-
--(void) initAnimationDictionary
-{
-       animations_ = [[NSMutableDictionary alloc] initWithCapacity:2];
-}
-
--(void)setTextureRect:(CGRect)rect
-{
-       CGRect rectInPixels = CC_RECT_POINTS_TO_PIXELS( rect );
-       [self setTextureRectInPixels:rectInPixels rotated:NO untrimmedSize:rectInPixels.size];
-}
-
--(void)setTextureRectInPixels:(CGRect)rect rotated:(BOOL)rotated untrimmedSize:(CGSize)untrimmedSize
-{
-       rectInPixels_ = rect;
-       rect_ = CC_RECT_PIXELS_TO_POINTS( rect );
-       rectRotated_ = rotated;
-
-       [self setContentSizeInPixels:untrimmedSize];
-       [self updateTextureCoords:rectInPixels_];
-
-       CGPoint relativeOffsetInPixels = unflippedOffsetPositionFromCenter_;
-       
-       // issue #732
-       if( flipX_ )
-               relativeOffsetInPixels.x = -relativeOffsetInPixels.x;
-       if( flipY_ )
-               relativeOffsetInPixels.y = -relativeOffsetInPixels.y;
-       
-       offsetPositionInPixels_.x = relativeOffsetInPixels.x + (contentSizeInPixels_.width - rectInPixels_.size.width) / 2;
-       offsetPositionInPixels_.y = relativeOffsetInPixels.y + (contentSizeInPixels_.height - rectInPixels_.size.height) / 2;
-       
-       
-       // rendering using SpriteSheet
-       if( usesBatchNode_ ) {
-               // update dirty_, don't update recursiveDirty_
-               dirty_ = YES;
-       }
-
-       // self rendering
-       else
-       {
-               // Atlas: Vertex
-               float x1 = 0 + offsetPositionInPixels_.x;
-               float y1 = 0 + offsetPositionInPixels_.y;
-               float x2 = x1 + rectInPixels_.size.width;
-               float y2 = y1 + rectInPixels_.size.height;
-               
-               // Don't update Z.
-               quad_.bl.vertices = (ccVertex3F) { x1, y1, 0 };
-               quad_.br.vertices = (ccVertex3F) { x2, y1, 0 };
-               quad_.tl.vertices = (ccVertex3F) { x1, y2, 0 };
-               quad_.tr.vertices = (ccVertex3F) { x2, y2, 0 }; 
-       }                       
-}
-
--(void)updateTextureCoords:(CGRect)rect
-{
-       CCTexture2D *tex        = (usesBatchNode_)?[textureAtlas_ texture]:texture_;
-       if(!tex)
-               return;
-       
-       float atlasWidth = (float)tex.pixelsWide;
-       float atlasHeight = (float)tex.pixelsHigh;
-       
-       float left,right,top,bottom;
-       
-       if(rectRotated_){
-#if CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL
-               left    = (2*rect.origin.x+1)/(2*atlasWidth);
-               right   = left+(rect.size.height*2-2)/(2*atlasWidth);
-               top             = (2*rect.origin.y+1)/(2*atlasHeight);
-               bottom  = top+(rect.size.width*2-2)/(2*atlasHeight);
-#else
-               left    = rect.origin.x/atlasWidth;
-               right   = left+(rect.size.height/atlasWidth);
-               top             = rect.origin.y/atlasHeight;
-               bottom  = top+(rect.size.width/atlasHeight);
-#endif // ! CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL
-               
-               if( flipX_)
-                       CC_SWAP(top,bottom);
-               if( flipY_)
-                       CC_SWAP(left,right);
-               
-               quad_.bl.texCoords.u = left;
-               quad_.bl.texCoords.v = top;
-               quad_.br.texCoords.u = left;
-               quad_.br.texCoords.v = bottom;
-               quad_.tl.texCoords.u = right;
-               quad_.tl.texCoords.v = top;
-               quad_.tr.texCoords.u = right;
-               quad_.tr.texCoords.v = bottom;
-       } else {
-#if CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL
-               left    = (2*rect.origin.x+1)/(2*atlasWidth);
-               right   = left + (rect.size.width*2-2)/(2*atlasWidth);
-               top             = (2*rect.origin.y+1)/(2*atlasHeight);
-               bottom  = top + (rect.size.height*2-2)/(2*atlasHeight);
-#else
-               left    = rect.origin.x/atlasWidth;
-               right   = left + rect.size.width/atlasWidth;
-               top             = rect.origin.y/atlasHeight;
-               bottom  = top + rect.size.height/atlasHeight;
-#endif // ! CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL
-               
-               if( flipX_)
-                       CC_SWAP(left,right);
-               if( flipY_)
-                       CC_SWAP(top,bottom);
-               
-               quad_.bl.texCoords.u = left;
-               quad_.bl.texCoords.v = bottom;
-               quad_.br.texCoords.u = right;
-               quad_.br.texCoords.v = bottom;
-               quad_.tl.texCoords.u = left;
-               quad_.tl.texCoords.v = top;
-               quad_.tr.texCoords.u = right;
-               quad_.tr.texCoords.v = top;
-       }
-}
-
--(void)updateTransform
-{
-       NSAssert( usesBatchNode_, @"updateTransform is only valid when CCSprite is being renderd using an CCSpriteBatchNode");
-
-       // optimization. Quick return if not dirty
-       if( ! dirty_ )
-               return;
-       
-       CGAffineTransform matrix;
-       
-       // Optimization: if it is not visible, then do nothing
-       if( ! visible_ ) {
-               quad_.br.vertices = quad_.tl.vertices = quad_.tr.vertices = quad_.bl.vertices = (ccVertex3F){0,0,0};
-               [textureAtlas_ updateQuad:&quad_ atIndex:atlasIndex_];
-               dirty_ = recursiveDirty_ = NO;
-               return ;
-       }
-       
-
-       // Optimization: If parent is batchnode, or parent is nil
-       // build Affine transform manually
-       if( ! parent_ || parent_ == batchNode_ ) {
-               
-               float radians = -CC_DEGREES_TO_RADIANS(rotation_);
-               float c = cosf(radians);
-               float s = sinf(radians);
-               
-               matrix = CGAffineTransformMake( c * scaleX_,  s * scaleX_,
-                                                                          -s * scaleY_, c * scaleY_,
-                                                                          positionInPixels_.x, positionInPixels_.y);
-               matrix = CGAffineTransformTranslate(matrix, -anchorPointInPixels_.x, -anchorPointInPixels_.y);          
-
-               
-       }  else {       // parent_ != batchNode_ 
-
-               // else do affine transformation according to the HonorParentTransform
-
-               matrix = CGAffineTransformIdentity;
-               ccHonorParentTransform prevHonor = CC_HONOR_PARENT_TRANSFORM_ALL;
-               
-               for (CCNode *p = self ; p && p != batchNode_ ; p = p.parent) {
-                       
-                       // Might happen. Issue #1053
-                       NSAssert( [p isKindOfClass:[CCSprite class]], @"CCSprite should be a CCSprite subclass. Probably you initialized an sprite with a batchnode, but you didn't add it to the batch node." );
-
-                       struct transformValues_ tv;
-                       [(CCSprite*)p getTransformValues: &tv];
-                       
-                       // If any of the parents are not visible, then don't draw this node
-                       if( ! tv.visible ) {
-                               quad_.br.vertices = quad_.tl.vertices = quad_.tr.vertices = quad_.bl.vertices = (ccVertex3F){0,0,0};
-                               [textureAtlas_ updateQuad:&quad_ atIndex:atlasIndex_];
-                               dirty_ = recursiveDirty_ = NO;
-                               return;
-                       }
-                       CGAffineTransform newMatrix = CGAffineTransformIdentity;
-                       
-                       // 2nd: Translate, Rotate, Scale
-                       if( prevHonor & CC_HONOR_PARENT_TRANSFORM_TRANSLATE )
-                               newMatrix = CGAffineTransformTranslate(newMatrix, tv.pos.x, tv.pos.y);
-                       if( prevHonor & CC_HONOR_PARENT_TRANSFORM_ROTATE )
-                               newMatrix = CGAffineTransformRotate(newMatrix, -CC_DEGREES_TO_RADIANS(tv.rotation));
-                       if( prevHonor & CC_HONOR_PARENT_TRANSFORM_SCALE ) {
-                               newMatrix = CGAffineTransformScale(newMatrix, tv.scale.x, tv.scale.y);
-                       }
-                       
-                       // 3rd: Translate anchor point
-                       newMatrix = CGAffineTransformTranslate(newMatrix, -tv.ap.x, -tv.ap.y);
-
-                       // 4th: Matrix multiplication
-                       matrix = CGAffineTransformConcat( matrix, newMatrix);
-                       
-                       prevHonor = [(CCSprite*)p honorParentTransform];
-               }               
-       }
-       
-       
-       //
-       // calculate the Quad based on the Affine Matrix
-       //      
-
-       CGSize size = rectInPixels_.size;
-
-       float x1 = offsetPositionInPixels_.x;
-       float y1 = offsetPositionInPixels_.y;
-       
-       float x2 = x1 + size.width;
-       float y2 = y1 + size.height;
-       float x = matrix.tx;
-       float y = matrix.ty;
-       
-       float cr = matrix.a;
-       float sr = matrix.b;
-       float cr2 = matrix.d;
-       float sr2 = -matrix.c;
-       float ax = x1 * cr - y1 * sr2 + x;
-       float ay = x1 * sr + y1 * cr2 + y;
-       
-       float bx = x2 * cr - y1 * sr2 + x;
-       float by = x2 * sr + y1 * cr2 + y;
-       
-       float cx = x2 * cr - y2 * sr2 + x;
-       float cy = x2 * sr + y2 * cr2 + y;
-       
-       float dx = x1 * cr - y2 * sr2 + x;
-       float dy = x1 * sr + y2 * cr2 + y;
-       
-       quad_.bl.vertices = (ccVertex3F) { RENDER_IN_SUBPIXEL(ax), RENDER_IN_SUBPIXEL(ay), vertexZ_ };
-       quad_.br.vertices = (ccVertex3F) { RENDER_IN_SUBPIXEL(bx), RENDER_IN_SUBPIXEL(by), vertexZ_ };
-       quad_.tl.vertices = (ccVertex3F) { RENDER_IN_SUBPIXEL(dx), RENDER_IN_SUBPIXEL(dy), vertexZ_ };
-       quad_.tr.vertices = (ccVertex3F) { RENDER_IN_SUBPIXEL(cx), RENDER_IN_SUBPIXEL(cy), vertexZ_ };
-               
-       [textureAtlas_ updateQuad:&quad_ atIndex:atlasIndex_];
-       dirty_ = recursiveDirty_ = NO;
-}
-
-// XXX: Optimization: instead of calling 5 times the parent sprite to obtain: position, scale.x, scale.y, anchorpoint and rotation,
-// this fuction return the 5 values in 1 single call
--(void) getTransformValues:(struct transformValues_*) tv
-{
-       tv->pos                 = positionInPixels_;
-       tv->scale.x             = scaleX_;
-       tv->scale.y             = scaleY_;
-       tv->rotation    = rotation_;
-       tv->ap                  = anchorPointInPixels_;
-       tv->visible             = visible_;
-}
-
-#pragma mark CCSprite - draw
-
--(void) draw
-{
-       NSAssert(!usesBatchNode_, @"If CCSprite is being rendered by CCSpriteBatchNode, CCSprite#draw SHOULD NOT be called");
-
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Unneeded states: -
-
-       BOOL newBlend = blendFunc_.src != CC_BLEND_SRC || blendFunc_.dst != CC_BLEND_DST;
-       if( newBlend )
-               glBlendFunc( blendFunc_.src, blendFunc_.dst );
-
-#define kQuadSize sizeof(quad_.bl)
-       glBindTexture(GL_TEXTURE_2D, [texture_ name]);
-       
-       long offset = (long)&quad_;
-       
-       // vertex
-       NSInteger diff = offsetof( ccV3F_C4B_T2F, vertices);
-       glVertexPointer(3, GL_FLOAT, kQuadSize, (void*) (offset + diff) );
-       
-       // color
-       diff = offsetof( ccV3F_C4B_T2F, colors);
-       glColorPointer(4, GL_UNSIGNED_BYTE, kQuadSize, (void*)(offset + diff));
-       
-       // tex coords
-       diff = offsetof( ccV3F_C4B_T2F, texCoords);
-       glTexCoordPointer(2, GL_FLOAT, kQuadSize, (void*)(offset + diff));
-       
-       glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
-       
-       if( newBlend )
-               glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);
-       
-#if CC_SPRITE_DEBUG_DRAW
-       CGSize s = [self contentSize];
-       CGPoint vertices[4]={
-               ccp(0,0),ccp(s.width,0),
-               ccp(s.width,s.height),ccp(0,s.height),
-       };
-       ccDrawPoly(vertices, 4, YES);
-#endif // CC_TEXTURENODE_DEBUG_DRAW
-       
-}
-
-#pragma mark CCSprite - CCNode overrides
-
--(void) addChild:(CCSprite*)child z:(int)z tag:(int) aTag
-{
-       NSAssert( child != nil, @"Argument must be non-nil");
-       
-       [super addChild:child z:z tag:aTag];
-       
-       if( usesBatchNode_ ) {
-               NSAssert( [child isKindOfClass:[CCSprite class]], @"CCSprite only supports CCSprites as children when using CCSpriteBatchNode");
-               NSAssert( child.texture.name == textureAtlas_.texture.name, @"CCSprite is not using the same texture id");
-               
-               NSUInteger index = [batchNode_ atlasIndexForChild:child atZ:z];
-               [batchNode_ insertChild:child inAtlasAtIndex:index];
-       }
-       
-       hasChildren_ = YES;
-}
-
--(void) reorderChild:(CCSprite*)child z:(int)z
-{
-       NSAssert( child != nil, @"Child must be non-nil");
-       NSAssert( [children_ containsObject:child], @"Child doesn't belong to Sprite" );
-
-       if( z == child.zOrder )
-               return;
-
-       if( usesBatchNode_ ) {
-               // XXX: Instead of removing/adding, it is more efficient to reorder manually
-               [child retain];
-               [self removeChild:child cleanup:NO];
-               [self addChild:child z:z];
-               [child release];
-       }
-
-       else
-               [super reorderChild:child z:z];
-}
-
--(void)removeChild: (CCSprite *)sprite cleanup:(BOOL)doCleanup
-{
-       if( usesBatchNode_ )
-               [batchNode_ removeSpriteFromAtlas:sprite];
-
-       [super removeChild:sprite cleanup:doCleanup];
-       
-       hasChildren_ = ( [children_ count] > 0 );
-}
-
--(void)removeAllChildrenWithCleanup:(BOOL)doCleanup
-{
-       if( usesBatchNode_ ) {
-               CCSprite *child;
-               CCARRAY_FOREACH(children_, child)
-                       [batchNode_ removeSpriteFromAtlas:child];
-       }
-       
-       [super removeAllChildrenWithCleanup:doCleanup];
-       
-       hasChildren_ = NO;
-}
-
-//
-// CCNode property overloads
-// used only when parent is CCSpriteBatchNode
-//
-#pragma mark CCSprite - property overloads
-
-
--(void) setDirtyRecursively:(BOOL)b
-{
-       dirty_ = recursiveDirty_ = b;
-       // recursively set dirty
-       if( hasChildren_ ) {
-               CCSprite *child;
-               CCARRAY_FOREACH(children_, child)
-                       [child setDirtyRecursively:YES];
-       }
-}
-
-// XXX HACK: optimization
-#define SET_DIRTY_RECURSIVELY() {                                                                      \
-                                       if( usesBatchNode_ && ! recursiveDirty_ ) {     \
-                                               dirty_ = recursiveDirty_ = YES;                         \
-                                               if( hasChildren_)                                                       \
-                                                       [self setDirtyRecursively:YES];                 \
-                                               }                                                                                       \
-                                       }
-
--(void)setPosition:(CGPoint)pos
-{
-       [super setPosition:pos];
-       SET_DIRTY_RECURSIVELY();
-}
-
--(void)setPositionInPixels:(CGPoint)pos
-{
-       [super setPositionInPixels:pos];
-       SET_DIRTY_RECURSIVELY();
-}
-
--(void)setRotation:(float)rot
-{
-       [super setRotation:rot];
-       SET_DIRTY_RECURSIVELY();
-}
-
--(void)setScaleX:(float) sx
-{
-       [super setScaleX:sx];
-       SET_DIRTY_RECURSIVELY();
-}
-
--(void)setScaleY:(float) sy
-{
-       [super setScaleY:sy];
-       SET_DIRTY_RECURSIVELY();
-}
-
--(void)setScale:(float) s
-{
-       [super setScale:s];
-       SET_DIRTY_RECURSIVELY();
-}
-
--(void) setVertexZ:(float)z
-{
-       [super setVertexZ:z];
-       SET_DIRTY_RECURSIVELY();
-}
-
--(void)setAnchorPoint:(CGPoint)anchor
-{
-       [super setAnchorPoint:anchor];
-       SET_DIRTY_RECURSIVELY();
-}
-
--(void)setIsRelativeAnchorPoint:(BOOL)relative
-{
-       NSAssert( ! usesBatchNode_, @"relativeTransformAnchor is invalid in CCSprite");
-       [super setIsRelativeAnchorPoint:relative];
-}
-
--(void)setVisible:(BOOL)v
-{
-       [super setVisible:v];
-       SET_DIRTY_RECURSIVELY();
-}
-
--(void)setFlipX:(BOOL)b
-{
-       if( flipX_ != b ) {
-               flipX_ = b;
-               [self setTextureRectInPixels:rectInPixels_ rotated:rectRotated_ untrimmedSize:rectInPixels_.size];
-       }
-}
--(BOOL) flipX
-{
-       return flipX_;
-}
-
--(void) setFlipY:(BOOL)b
-{
-       if( flipY_ != b ) {
-               flipY_ = b;     
-               [self setTextureRectInPixels:rectInPixels_ rotated:rectRotated_ untrimmedSize:rectInPixels_.size];
-       }       
-}
--(BOOL) flipY
-{
-       return flipY_;
-}
-
-//
-// RGBA protocol
-//
-#pragma mark CCSprite - RGBA protocol
--(void) updateColor
-{
-       ccColor4B color4 = {color_.r, color_.g, color_.b, opacity_ };
-       
-       quad_.bl.colors = color4;
-       quad_.br.colors = color4;
-       quad_.tl.colors = color4;
-       quad_.tr.colors = color4;
-       
-       // renders using Sprite Manager
-       if( usesBatchNode_ ) {
-               if( atlasIndex_ != CCSpriteIndexNotInitialized)
-                       [textureAtlas_ updateQuad:&quad_ atIndex:atlasIndex_];
-               else
-                       // no need to set it recursively
-                       // update dirty_, don't update recursiveDirty_
-                       dirty_ = YES;
-       }
-       // self render
-       // do nothing
-}
-
--(GLubyte) opacity
-{
-       return opacity_;
-}
-
--(void) setOpacity:(GLubyte) anOpacity
-{
-       opacity_                        = anOpacity;
-
-       // special opacity for premultiplied textures
-       if( opacityModifyRGB_ )
-               [self setColor: colorUnmodified_];
-       
-       [self updateColor];
-}
-
-- (ccColor3B) color
-{
-       if(opacityModifyRGB_)
-               return colorUnmodified_;
-       
-       return color_;
-}
-
--(void) setColor:(ccColor3B)color3
-{
-       color_ = colorUnmodified_ = color3;
-       
-       if( opacityModifyRGB_ ){
-               color_.r = color3.r * opacity_/255;
-               color_.g = color3.g * opacity_/255;
-               color_.b = color3.b * opacity_/255;
-       }
-       
-       [self updateColor];
-}
-
--(void) setOpacityModifyRGB:(BOOL)modify
-{
-       ccColor3B oldColor      = self.color;
-       opacityModifyRGB_       = modify;
-       self.color                      = oldColor;
-}
-
--(BOOL) doesOpacityModifyRGB
-{
-       return opacityModifyRGB_;
-}
-
-//
-// Frames
-//
-#pragma mark CCSprite - Frames
-
--(void) setDisplayFrame:(CCSpriteFrame*)frame
-{
-       unflippedOffsetPositionFromCenter_ = frame.offsetInPixels;
-
-       CCTexture2D *newTexture = [frame texture];
-       // update texture before updating texture rect
-       if ( newTexture.name != texture_.name )
-               [self setTexture: newTexture];
-       
-       // update rect
-       rectRotated_ = frame.rotated;
-       [self setTextureRectInPixels:frame.rectInPixels rotated:frame.rotated untrimmedSize:frame.originalSizeInPixels];
-}
-
-// XXX deprecated
--(void) setDisplayFrame: (NSString*) animationName index:(int) frameIndex
-{
-       if( ! animations_ )
-               [self initAnimationDictionary];
-       
-       CCAnimation *a = [animations_ objectForKey: animationName];
-       CCSpriteFrame *frame = [[a frames] objectAtIndex:frameIndex];
-       
-       NSAssert( frame, @"CCSprite#setDisplayFrame. Invalid frame");
-       
-       [self setDisplayFrame:frame];
-}
-
--(void) setDisplayFrameWithAnimationName: (NSString*) animationName index:(int) frameIndex
-{
-       NSAssert( animationName, @"CCSprite#setDisplayFrameWithAnimationName. animationName must not be nil");
-       
-       CCAnimation *a = [[CCAnimationCache sharedAnimationCache] animationByName:animationName];
-       
-       NSAssert( a, @"CCSprite#setDisplayFrameWithAnimationName: Frame not found");
-       
-       CCSpriteFrame *frame = [[a frames] objectAtIndex:frameIndex];
-       
-       NSAssert( frame, @"CCSprite#setDisplayFrame. Invalid frame");
-       
-       [self setDisplayFrame:frame];
-}
-
-
--(BOOL) isFrameDisplayed:(CCSpriteFrame*)frame 
-{
-       CGRect r = [frame rect];
-       return ( CGRectEqualToRect(r, rect_) &&
-                       frame.texture.name == self.texture.name );
-}
-
--(CCSpriteFrame*) displayedFrame
-{
-       return [CCSpriteFrame frameWithTexture:self.texture rect:rect_];
-}
-
--(void) addAnimation: (CCAnimation*) anim
-{
-       // lazy alloc
-       if( ! animations_ )
-               [self initAnimationDictionary];
-       
-       [animations_ setObject:anim forKey:[anim name]];
-}
-
--(CCAnimation*)animationByName: (NSString*) animationName
-{
-       NSAssert( animationName != nil, @"animationName parameter must be non nil");
-    return [animations_ objectForKey:animationName];
-}
-
-#pragma mark CCSprite - CocosNodeTexture protocol
-
--(void) updateBlendFunc
-{
-       NSAssert( ! usesBatchNode_, @"CCSprite: updateBlendFunc doesn't work when the sprite is rendered using a CCSpriteBatchNode");
-
-       // it's possible to have an untextured sprite
-       if( !texture_ || ! [texture_ hasPremultipliedAlpha] ) {
-               blendFunc_.src = GL_SRC_ALPHA;
-               blendFunc_.dst = GL_ONE_MINUS_SRC_ALPHA;
-               [self setOpacityModifyRGB:NO];
-       } else {
-               blendFunc_.src = CC_BLEND_SRC;
-               blendFunc_.dst = CC_BLEND_DST;
-               [self setOpacityModifyRGB:YES];
-       }
-}
-
--(void) setTexture:(CCTexture2D*)texture
-{
-       NSAssert( ! usesBatchNode_, @"CCSprite: setTexture doesn't work when the sprite is rendered using a CCSpriteBatchNode");
-       
-       // accept texture==nil as argument
-       NSAssert( !texture || [texture isKindOfClass:[CCTexture2D class]], @"setTexture expects a CCTexture2D. Invalid argument");
-
-       [texture_ release];
-       texture_ = [texture retain];
-       
-       [self updateBlendFunc];
-}
-
--(CCTexture2D*) texture
-{
-       return texture_;
-}
-
-@end
diff --git a/Classes/cocos2d/CCSpriteBatchNode.h b/Classes/cocos2d/CCSpriteBatchNode.h
deleted file mode 100644 (file)
index 61111c2..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * Copyright (C) 2009 Matt Oswald
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCNode.h"
-#import "CCProtocols.h"
-#import "CCTextureAtlas.h"
-#import "ccMacros.h"
-
-#pragma mark CCSpriteBatchNode
-
-@class CCSprite;
-
-/** CCSpriteBatchNode is like a batch node: if it contains children, it will draw them in 1 single OpenGL call
- * (often known as "batch draw").
- *
- * A CCSpriteBatchNode can reference one and only one texture (one image file, one texture atlas).
- * Only the CCSprites that are contained in that texture can be added to the CCSpriteBatchNode.
- * All CCSprites added to a CCSpriteBatchNode are drawn in one OpenGL ES draw call.
- * If the CCSprites are not added to a CCSpriteBatchNode then an OpenGL ES draw call will be needed for each one, which is less efficient.
- *
- *
- * Limitations:
- *  - The only object that is accepted as child (or grandchild, grand-grandchild, etc...) is CCSprite or any subclass of CCSprite. eg: particles, labels and layer can't be added to a CCSpriteBatchNode.
- *  - Either all its children are Aliased or Antialiased. It can't be a mix. This is because "alias" is a property of the texture, and all the sprites share the same texture.
- * 
- * @since v0.7.1
- */
-@interface CCSpriteBatchNode : CCNode <CCTextureProtocol>
-{
-       CCTextureAtlas  *textureAtlas_;
-       ccBlendFunc             blendFunc_;
-
-       // all descendants: chlidren, gran children, etc...
-       CCArray *descendants_;
-}
-
-/** returns the TextureAtlas that is used */
-@property (nonatomic,readwrite,retain) CCTextureAtlas * textureAtlas;
-
-/** conforms to CCTextureProtocol protocol */
-@property (nonatomic,readwrite) ccBlendFunc blendFunc;
-
-/** descendants (children, gran children, etc) */
-@property (nonatomic,readonly) CCArray *descendants;
-
-/** creates a CCSpriteBatchNode with a texture2d and a default capacity of 29 children.
- The capacity will be increased in 33% in runtime if it run out of space.
- */
-+(id)batchNodeWithTexture:(CCTexture2D *)tex;
-+(id)spriteSheetWithTexture:(CCTexture2D *)tex DEPRECATED_ATTRIBUTE;
-
-/** creates a CCSpriteBatchNode with a texture2d and capacity of children.
- The capacity will be increased in 33% in runtime if it run out of space.
- */
-+(id)batchNodeWithTexture:(CCTexture2D *)tex capacity:(NSUInteger)capacity;
-+(id)spriteSheetWithTexture:(CCTexture2D *)tex capacity:(NSUInteger)capacity DEPRECATED_ATTRIBUTE;
-
-/** creates a CCSpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) with a default capacity of 29 children.
- The capacity will be increased in 33% in runtime if it run out of space.
- The file will be loaded using the TextureMgr.
- */
-+(id)batchNodeWithFile:(NSString*) fileImage;
-+(id)spriteSheetWithFile:(NSString*) fileImage DEPRECATED_ATTRIBUTE;
-
-/** creates a CCSpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) and capacity of children.
- The capacity will be increased in 33% in runtime if it run out of space.
- The file will be loaded using the TextureMgr.
-*/
-+(id)batchNodeWithFile:(NSString*)fileImage capacity:(NSUInteger)capacity;
-+(id)spriteSheetWithFile:(NSString*)fileImage capacity:(NSUInteger)capacity DEPRECATED_ATTRIBUTE;
-
-/** initializes a CCSpriteBatchNode with a texture2d and capacity of children.
- The capacity will be increased in 33% in runtime if it run out of space.
- */
--(id)initWithTexture:(CCTexture2D *)tex capacity:(NSUInteger)capacity;
-/** initializes a CCSpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) and a capacity of children.
- The capacity will be increased in 33% in runtime if it run out of space.
- The file will be loaded using the TextureMgr.
- */
--(id)initWithFile:(NSString*)fileImage capacity:(NSUInteger)capacity;
-
--(void) increaseAtlasCapacity;
-
-/** creates an sprite with a rect in the CCSpriteBatchNode.
- It's the same as:
-   - create an standard CCSsprite
-   - set the usingSpriteSheet = YES
-   - set the textureAtlas to the same texture Atlas as the CCSpriteBatchNode
- @deprecated Use [CCSprite spriteWithBatchNode:rect:] instead;
- */
--(CCSprite*) createSpriteWithRect:(CGRect)rect DEPRECATED_ATTRIBUTE;
-
-/** initializes a previously created sprite with a rect. This sprite will have the same texture as the CCSpriteBatchNode.
- It's the same as:
- - initialize an standard CCSsprite
- - set the usingBatchNode = YES
- - set the textureAtlas to the same texture Atlas as the CCSpriteBatchNode
- @since v0.99.0
- @deprecated Use [CCSprite initWithBatchNode:rect:] instead;
-*/ 
--(void) initSprite:(CCSprite*)sprite rect:(CGRect)rect DEPRECATED_ATTRIBUTE;
-
-/** removes a child given a certain index. It will also cleanup the running actions depending on the cleanup parameter.
- @warning Removing a child from a CCSpriteBatchNode is very slow
- */
--(void)removeChildAtIndex:(NSUInteger)index cleanup:(BOOL)doCleanup;
-
-/** removes a child given a reference. It will also cleanup the running actions depending on the cleanup parameter.
- @warning Removing a child from a CCSpriteBatchNode is very slow
- */
--(void)removeChild: (CCSprite *)sprite cleanup:(BOOL)doCleanup;
-
--(void) insertChild:(CCSprite*)child inAtlasAtIndex:(NSUInteger)index;
--(void) removeSpriteFromAtlas:(CCSprite*)sprite;
-
--(NSUInteger) rebuildIndexInOrder:(CCSprite*)parent atlasIndex:(NSUInteger)index;
--(NSUInteger) atlasIndexForChild:(CCSprite*)sprite atZ:(int)z;
-
-@end
diff --git a/Classes/cocos2d/CCSpriteBatchNode.m b/Classes/cocos2d/CCSpriteBatchNode.m
deleted file mode 100644 (file)
index 28fb082..0000000
+++ /dev/null
@@ -1,499 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * Copyright (C) 2009 Matt Oswald
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "ccConfig.h"
-#import "CCSprite.h"
-#import "CCSpriteBatchNode.h"
-#import "CCGrid.h"
-#import "CCDrawingPrimitives.h"
-#import "CCTextureCache.h"
-#import "Support/CGPointExtension.h"
-
-const NSUInteger defaultCapacity = 29;
-
-#pragma mark -
-#pragma mark CCSpriteBatchNode
-
-static         SEL selUpdate = NULL;
-
-@interface CCSpriteBatchNode (private)
--(void) updateBlendFunc;
-@end
-
-@implementation CCSpriteBatchNode
-
-@synthesize textureAtlas = textureAtlas_;
-@synthesize blendFunc = blendFunc_;
-@synthesize descendants = descendants_;
-
-
-+(void) initialize
-{
-       if ( self == [CCSpriteBatchNode class] ) {
-               selUpdate = @selector(updateTransform);
-       }
-}
-/*
- * creation with CCTexture2D
- */
-+(id)batchNodeWithTexture:(CCTexture2D *)tex
-{
-       return [[[self alloc] initWithTexture:tex capacity:defaultCapacity] autorelease];
-}
-+(id)spriteSheetWithTexture:(CCTexture2D *)tex // XXX DEPRECATED
-{
-       return [self batchNodeWithTexture:tex];
-}
-
-+(id)batchNodeWithTexture:(CCTexture2D *)tex capacity:(NSUInteger)capacity
-{
-       return [[[self alloc] initWithTexture:tex capacity:capacity] autorelease];
-}
-+(id)spriteSheetWithTexture:(CCTexture2D *)tex capacity:(NSUInteger)capacity // XXX DEPRECATED
-{
-       return [self batchNodeWithTexture:tex capacity:capacity];
-}
-
-/*
- * creation with File Image
- */
-+(id)batchNodeWithFile:(NSString*)fileImage capacity:(NSUInteger)capacity
-{
-       return [[[self alloc] initWithFile:fileImage capacity:capacity] autorelease];
-}
-+(id)spriteSheetWithFile:(NSString*)fileImage capacity:(NSUInteger)capacity // XXX DEPRECATED
-{
-       return [self batchNodeWithFile:fileImage capacity:capacity];
-}
-
-+(id)batchNodeWithFile:(NSString*) imageFile
-{
-       return [[[self alloc] initWithFile:imageFile capacity:defaultCapacity] autorelease];
-}
-+(id)spriteSheetWithFile:(NSString*) imageFile // XXX DEPRECATED
-{
-       return [self batchNodeWithFile:imageFile];
-}
-
-
-/*
- * init with CCTexture2D
- */
--(id)initWithTexture:(CCTexture2D *)tex capacity:(NSUInteger)capacity
-{
-       if( (self=[super init])) {
-               
-               blendFunc_.src = CC_BLEND_SRC;
-               blendFunc_.dst = CC_BLEND_DST;
-               textureAtlas_ = [[CCTextureAtlas alloc] initWithTexture:tex capacity:capacity];
-               
-               [self updateBlendFunc];
-               
-               // no lazy alloc in this node
-               children_ = [[CCArray alloc] initWithCapacity:capacity];
-               descendants_ = [[CCArray alloc] initWithCapacity:capacity];
-       }
-       
-       return self;
-}
-
-/*
- * init with FileImage
- */
--(id)initWithFile:(NSString *)fileImage capacity:(NSUInteger)capacity
-{
-       CCTexture2D *tex = [[CCTextureCache sharedTextureCache] addImage:fileImage];
-       return [self initWithTexture:tex capacity:capacity];
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | Tag = %i>", [self class], self, tag_ ];
-}
-
--(void)dealloc
-{      
-       [textureAtlas_ release];
-       [descendants_ release];
-       
-       [super dealloc];
-}
-
-#pragma mark CCSpriteBatchNode - composition
-
-// override visit.
-// Don't call visit on it's children
--(void) visit
-{
-       
-       // CAREFUL:
-       // This visit is almost identical to CocosNode#visit
-       // with the exception that it doesn't call visit on it's children
-       //
-       // The alternative is to have a void CCSprite#visit, but
-       // although this is less mantainable, is faster
-       //
-       if (!visible_)
-               return;
-       
-       glPushMatrix();
-       
-       if ( grid_ && grid_.active) {
-               [grid_ beforeDraw];
-               [self transformAncestors];
-       }
-       
-       [self transform];
-       
-       [self draw];
-       
-       if ( grid_ && grid_.active)
-               [grid_ afterDraw:self];
-       
-       glPopMatrix();
-}
-
-// XXX deprecated
--(CCSprite*) createSpriteWithRect:(CGRect)rect
-{
-       CCSprite *sprite = [CCSprite spriteWithTexture:textureAtlas_.texture rect:rect];
-       [sprite useBatchNode:self];
-       
-       return sprite;
-}
-
-// XXX deprecated
--(void) initSprite:(CCSprite*)sprite rect:(CGRect)rect
-{
-       [sprite initWithTexture:textureAtlas_.texture rect:rect];
-       [sprite useBatchNode:self];
-}
-
-// override addChild:
--(void) addChild:(CCSprite*)child z:(int)z tag:(int) aTag
-{
-       NSAssert( child != nil, @"Argument must be non-nil");
-       NSAssert( [child isKindOfClass:[CCSprite class]], @"CCSpriteBatchNode only supports CCSprites as children");
-       NSAssert( child.texture.name == textureAtlas_.texture.name, @"CCSprite is not using the same texture id");
-       
-       [super addChild:child z:z tag:aTag];
-       
-       NSUInteger index = [self atlasIndexForChild:child atZ:z];
-       [self insertChild:child inAtlasAtIndex:index];  
-}
-
-// override reorderChild
--(void) reorderChild:(CCSprite*)child z:(int)z
-{
-       NSAssert( child != nil, @"Child must be non-nil");
-       NSAssert( [children_ containsObject:child], @"Child doesn't belong to Sprite" );
-       
-       if( z == child.zOrder )
-               return;
-       
-       // XXX: Instead of removing/adding, it is more efficient to reorder manually
-       [child retain];
-       [self removeChild:child cleanup:NO];
-       [self addChild:child z:z];
-       [child release];
-}
-
-// override removeChild:
--(void)removeChild: (CCSprite *)sprite cleanup:(BOOL)doCleanup
-{
-       // explicit nil handling
-       if (sprite == nil)
-               return;
-       
-       NSAssert([children_ containsObject:sprite], @"CCSpriteBatchNode doesn't contain the sprite. Can't remove it");
-       
-       // cleanup before removing
-       [self removeSpriteFromAtlas:sprite];
-       
-       [super removeChild:sprite cleanup:doCleanup];
-}
-
--(void)removeChildAtIndex:(NSUInteger)index cleanup:(BOOL)doCleanup
-{
-       [self removeChild:(CCSprite *)[children_ objectAtIndex:index] cleanup:doCleanup];
-}
-
--(void)removeAllChildrenWithCleanup:(BOOL)doCleanup
-{
-       // Invalidate atlas index. issue #569
-       [children_ makeObjectsPerformSelector:@selector(useSelfRender)];
-       
-       [super removeAllChildrenWithCleanup:doCleanup];
-       
-       [descendants_ removeAllObjects];
-       [textureAtlas_ removeAllQuads];
-}
-
-#pragma mark CCSpriteBatchNode - draw
--(void) draw
-{
-       // Optimization: Fast Dispatch  
-       if( textureAtlas_.totalQuads == 0 )
-               return; 
-       
-       CCSprite *child;
-       ccArray *array = descendants_->data;
-       
-       NSUInteger i = array->num;
-       id *arr = array->arr;
-
-       if( i > 0 ) {
-               
-               while (i-- > 0) {
-                       child = *arr++;
-                       
-                       // fast dispatch
-                       child->updateMethod(child, selUpdate);
-                       
-#if CC_SPRITEBATCHNODE_DEBUG_DRAW
-                       //Issue #528
-                       CGRect rect = [child boundingBox];
-                       CGPoint vertices[4]={
-                               ccp(rect.origin.x,rect.origin.y),
-                               ccp(rect.origin.x+rect.size.width,rect.origin.y),
-                               ccp(rect.origin.x+rect.size.width,rect.origin.y+rect.size.height),
-                               ccp(rect.origin.x,rect.origin.y+rect.size.height),
-                       };
-                       ccDrawPoly(vertices, 4, YES);
-#endif // CC_SPRITEBATCHNODE_DEBUG_DRAW
-               }
-       }
-       
-       // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Needed states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
-       // Unneeded states: -
-       
-       BOOL newBlend = blendFunc_.src != CC_BLEND_SRC || blendFunc_.dst != CC_BLEND_DST;
-       if( newBlend )
-               glBlendFunc( blendFunc_.src, blendFunc_.dst );
-       
-       [textureAtlas_ drawQuads];
-       if( newBlend )
-               glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST);
-}
-
-#pragma mark CCSpriteBatchNode - private
--(void) increaseAtlasCapacity
-{
-       // if we're going beyond the current TextureAtlas's capacity,
-       // all the previously initialized sprites will need to redo their texture coords
-       // this is likely computationally expensive
-       NSUInteger quantity = (textureAtlas_.capacity + 1) * 4 / 3;
-       
-       CCLOG(@"cocos2d: CCSpriteBatchNode: resizing TextureAtlas capacity from [%u] to [%u].",
-                 (unsigned int)textureAtlas_.capacity,
-                 (unsigned int)quantity);
-       
-       
-       if( ! [textureAtlas_ resizeCapacity:quantity] ) {
-               // serious problems
-               CCLOG(@"cocos2d: WARNING: Not enough memory to resize the atlas");
-               NSAssert(NO,@"XXX: SpriteSheet#increaseAtlasCapacity SHALL handle this assert");
-       }       
-}
-
-
-#pragma mark CCSpriteBatchNode - Atlas Index Stuff
-
--(NSUInteger) rebuildIndexInOrder:(CCSprite*)node atlasIndex:(NSUInteger)index
-{
-       CCSprite *sprite;
-       CCARRAY_FOREACH(node.children, sprite){
-               if( sprite.zOrder < 0 )
-                       index = [self rebuildIndexInOrder:sprite atlasIndex:index];
-       }
-       
-       // ignore self (batch node)
-       if( ! [node isEqual:self]) {
-               node.atlasIndex = index;
-               index++;
-       }
-       
-       CCARRAY_FOREACH(node.children, sprite){
-               if( sprite.zOrder >= 0 )
-                       index = [self rebuildIndexInOrder:sprite atlasIndex:index];
-       }
-       
-       return index;
-}
-
--(NSUInteger) highestAtlasIndexInChild:(CCSprite*)sprite
-{
-       CCArray *array = [sprite children];
-       NSUInteger count = [array count];
-       if( count == 0 )
-               return sprite.atlasIndex;
-       else
-               return [self highestAtlasIndexInChild:[array lastObject]];
-}
-
--(NSUInteger) lowestAtlasIndexInChild:(CCSprite*)sprite
-{
-       CCArray *array = [sprite children];
-       NSUInteger count = [array count];
-       if( count == 0 )
-               return sprite.atlasIndex;
-       else
-               return [self lowestAtlasIndexInChild:[array objectAtIndex:0] ];
-}
-
-
--(NSUInteger)atlasIndexForChild:(CCSprite*)sprite atZ:(int)z
-{
-       CCArray *brothers = [[sprite parent] children];
-       NSUInteger childIndex = [brothers indexOfObject:sprite];
-       
-       // ignore parent Z if parent is batchnode
-       BOOL ignoreParent = ( sprite.parent == self );
-       CCSprite *previous = nil;
-       if( childIndex > 0 )
-               previous = [brothers objectAtIndex:childIndex-1];
-       
-       // first child of the sprite sheet
-       if( ignoreParent ) {
-               if( childIndex == 0 )
-                       return 0;
-               // else
-               return [self highestAtlasIndexInChild: previous] + 1;
-       }
-       
-       // parent is a CCSprite, so, it must be taken into account
-       
-       // first child of an CCSprite ?
-       if( childIndex == 0 )
-       {
-               CCSprite *p = (CCSprite*) sprite.parent;
-               
-               // less than parent and brothers
-               if( z < 0 )
-                       return p.atlasIndex;
-               else
-                       return p.atlasIndex+1;
-               
-       } else {
-               // previous & sprite belong to the same branch
-               if( ( previous.zOrder < 0 && z < 0 )|| (previous.zOrder >= 0 && z >= 0) )
-                       return [self highestAtlasIndexInChild:previous] + 1;
-               
-               // else (previous < 0 and sprite >= 0 )
-               CCSprite *p = (CCSprite*) sprite.parent;
-               return p.atlasIndex + 1;
-       }
-       
-       NSAssert( NO, @"Should not happen. Error calculating Z on Batch Node");
-       return 0;
-}
-
-#pragma mark CCSpriteBatchNode - add / remove / reorder helper methods
-// add child helper
--(void) insertChild:(CCSprite*)sprite inAtlasAtIndex:(NSUInteger)index
-{
-       [sprite useBatchNode:self];
-       [sprite setAtlasIndex:index];
-       [sprite setDirty: YES];
-       
-       if(textureAtlas_.totalQuads == textureAtlas_.capacity)
-               [self increaseAtlasCapacity];
-       
-       ccV3F_C4B_T2F_Quad quad = [sprite quad];
-       [textureAtlas_ insertQuad:&quad atIndex:index];
-       
-       ccArray *descendantsData = descendants_->data;
-       
-       ccArrayInsertObjectAtIndex(descendantsData, sprite, index);
-       
-       // update indices
-       NSUInteger i = index+1;
-       CCSprite *child;
-       for(; i<descendantsData->num; i++){
-               child = descendantsData->arr[i];
-               child.atlasIndex = child.atlasIndex + 1;
-       }
-       
-       // add children recursively
-       CCARRAY_FOREACH(sprite.children, child){
-               NSUInteger index = [self atlasIndexForChild:child atZ: child.zOrder];
-               [self insertChild:child inAtlasAtIndex:index];
-       }
-}
-
-// remove child helper
--(void) removeSpriteFromAtlas:(CCSprite*)sprite
-{
-       // remove from TextureAtlas
-       [textureAtlas_ removeQuadAtIndex:sprite.atlasIndex];
-       
-       // Cleanup sprite. It might be reused (issue #569)
-       [sprite useSelfRender];
-       
-       ccArray *descendantsData = descendants_->data;
-       NSUInteger index = ccArrayGetIndexOfObject(descendantsData, sprite);
-       if( index != NSNotFound ) {
-               ccArrayRemoveObjectAtIndex(descendantsData, index);
-               
-               // update all sprites beyond this one
-               NSUInteger count = descendantsData->num;
-               
-               for(; index < count; index++)
-               {
-                       CCSprite *s = descendantsData->arr[index];
-                       s.atlasIndex = s.atlasIndex - 1;
-               }
-       }
-       
-       // remove children recursively
-       CCSprite *child;
-       CCARRAY_FOREACH(sprite.children, child)
-               [self removeSpriteFromAtlas:child];
-}
-
-#pragma mark CCSpriteBatchNode - CocosNodeTexture protocol
-
--(void) updateBlendFunc
-{
-       if( ! [textureAtlas_.texture hasPremultipliedAlpha] ) {
-               blendFunc_.src = GL_SRC_ALPHA;
-               blendFunc_.dst = GL_ONE_MINUS_SRC_ALPHA;
-       }
-}
-
--(void) setTexture:(CCTexture2D*)texture
-{
-       textureAtlas_.texture = texture;
-       [self updateBlendFunc];
-}
-
--(CCTexture2D*) texture
-{
-       return textureAtlas_.texture;
-}
-@end
diff --git a/Classes/cocos2d/CCSpriteFrame.h b/Classes/cocos2d/CCSpriteFrame.h
deleted file mode 100644 (file)
index ce8c1cf..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#import <Foundation/Foundation.h>
-#import "CCNode.h"
-#import "CCProtocols.h"
-
-/** A CCSpriteFrame has:
-       - texture: A CCTexture2D that will be used by the CCSprite
-       - rectangle: A rectangle of the texture
-
-
- You can modify the frame of a CCSprite by doing:
-       CCSpriteFrame *frame = [CCSpriteFrame frameWithTexture:texture rect:rect offset:offset];
-       [sprite setDisplayFrame:frame];
- */
-@interface CCSpriteFrame : NSObject <NSCopying>
-{
-       CGRect                  rect_;
-       CGRect                  rectInPixels_;
-       BOOL                    rotated_;
-       CGPoint                 offsetInPixels_;
-       CGSize                  originalSizeInPixels_;
-       CCTexture2D             *texture_;
-}
-/** rect of the frame in points */
-@property (nonatomic,readwrite) CGRect rect;
-
-/** rect of the frame in pixels */
-@property (nonatomic,readwrite) CGRect rectInPixels;
-
-/** whether or not the rect of the frame is rotated ( x = x+width, y = y+height, width = height, height = width ) */
-@property (nonatomic,readwrite) BOOL rotated;
-
-/** offset of the frame in pixels */
-@property (nonatomic,readwrite) CGPoint offsetInPixels;
-
-/** original size of the trimmed image in pixels */
-@property (nonatomic,readwrite) CGSize originalSizeInPixels;
-
-/** texture of the frame */
-@property (nonatomic, retain, readwrite) CCTexture2D *texture;
-
-/** Create a CCSpriteFrame with a texture, rect in points.
- It is assumed that the frame was not trimmed.
- */
-+(id) frameWithTexture:(CCTexture2D*)texture rect:(CGRect)rect;
-
-/** Create a CCSpriteFrame with a texture, rect, rotated, offset and originalSize in pixels.
- The originalSize is the size in points of the frame before being trimmed.
- */
-+(id) frameWithTexture:(CCTexture2D*)texture rectInPixels:(CGRect)rect rotated:(BOOL)rotated offset:(CGPoint)offset originalSize:(CGSize)originalSize;
-
-
-/** Initializes a CCSpriteFrame with a texture, rect in points;
- It is assumed that the frame was not trimmed.
- */
--(id) initWithTexture:(CCTexture2D*)texture rect:(CGRect)rect;
-
-/** Initializes a CCSpriteFrame with a texture, rect, rotated, offset and originalSize in pixels.
- The originalSize is the size in points of the frame before being trimmed.
- */
--(id) initWithTexture:(CCTexture2D*)texture rectInPixels:(CGRect)rect rotated:(BOOL)rotated offset:(CGPoint)offset originalSize:(CGSize)originalSize;
-
-@end
-
diff --git a/Classes/cocos2d/CCSpriteFrame.m b/Classes/cocos2d/CCSpriteFrame.m
deleted file mode 100644 (file)
index 952d9aa..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCTextureCache.h"
-#import "CCSpriteFrame.h"
-#import "ccMacros.h"
-
-@implementation CCSpriteFrame
-@synthesize rect = rect_, rectInPixels=rectInPixels_;
-@synthesize rotated = rotated_, offsetInPixels = offsetInPixels_, texture = texture_;
-@synthesize originalSizeInPixels=originalSizeInPixels_;
-
-+(id) frameWithTexture:(CCTexture2D*)texture rect:(CGRect)rect
-{
-       return [[[self alloc] initWithTexture:texture rect:rect] autorelease];
-}
-
-+(id) frameWithTexture:(CCTexture2D*)texture rectInPixels:(CGRect)rect rotated:(BOOL)rotated offset:(CGPoint)offset originalSize:(CGSize)originalSize
-{
-       return [[[self alloc] initWithTexture:texture rectInPixels:rect rotated:rotated offset:offset originalSize:originalSize] autorelease];
-}
-
--(id) initWithTexture:(CCTexture2D*)texture rect:(CGRect)rect
-{
-       CGRect rectInPixels = CC_RECT_POINTS_TO_PIXELS( rect );
-       return [self initWithTexture:texture rectInPixels:rectInPixels rotated:NO offset:CGPointZero originalSize:rectInPixels.size];
-}
-
--(id) initWithTexture:(CCTexture2D*)texture rectInPixels:(CGRect)rect rotated:(BOOL)rotated offset:(CGPoint)offset originalSize:(CGSize)originalSize
-{
-       if( (self=[super init]) ) {
-               self.texture = texture;
-               rectInPixels_ = rect;
-               rect_ = CC_RECT_PIXELS_TO_POINTS( rect );
-               rotated_ = rotated;
-               offsetInPixels_ = offset;
-               originalSizeInPixels_ = originalSize;
-       }
-       return self;    
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | TextureName=%d, Rect = (%.2f,%.2f,%.2f,%.2f)>", [self class], self,
-                       texture_.name,
-                       rect_.origin.x,
-                       rect_.origin.y,
-                       rect_.size.width,
-                       rect_.size.height];
-}
-
-- (void) dealloc
-{
-       CCLOGINFO( @"cocos2d: deallocing %@",self);
-       [texture_ release];
-       [super dealloc];
-}
-
--(id) copyWithZone: (NSZone*) zone
-{
-       CCSpriteFrame *copy = [[[self class] allocWithZone: zone] initWithTexture:texture_ rectInPixels:rectInPixels_ rotated:rotated_ offset:offsetInPixels_ originalSize:originalSizeInPixels_];
-       return copy;
-}
-@end
diff --git a/Classes/cocos2d/CCSpriteFrameCache.h b/Classes/cocos2d/CCSpriteFrameCache.h
deleted file mode 100644 (file)
index b50a6a0..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * Copyright (c) 2009 Jason Booth
- * Copyright (c) 2009 Robert J Payne
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-/*
- * To create sprite frames and texture atlas, use this tool:
- * http://zwoptex.zwopple.com/
- */
-
-#import <Foundation/Foundation.h>
-
-#import "CCSpriteFrame.h"
-#import "CCTexture2D.h"
-
-@class CCSprite;
-
-/** Singleton that handles the loading of the sprite frames.
- It saves in a cache the sprite frames.
- @since v0.9
- */
-@interface CCSpriteFrameCache : NSObject
-{
-       NSMutableDictionary *spriteFrames_;
-       NSMutableDictionary *spriteFramesAliases_;
-}
-
-/** Retruns ths shared instance of the Sprite Frame cache */
-+ (CCSpriteFrameCache *) sharedSpriteFrameCache;
-
-/** Purges the cache. It releases all the Sprite Frames and the retained instance.
- */
-+(void)purgeSharedSpriteFrameCache;
-
-
-/** Adds multiple Sprite Frames with a dictionary. The texture will be associated with the created sprite frames.
- */
--(void) addSpriteFramesWithDictionary:(NSDictionary*)dictionary texture:(CCTexture2D*)texture;
-
-/** Adds multiple Sprite Frames from a plist file.
- * A texture will be loaded automatically. The texture name will composed by replacing the .plist suffix with .png
- * If you want to use another texture, you should use the addSpriteFramesWithFile:texture method.
- */
--(void) addSpriteFramesWithFile:(NSString*)plist;
-
-/** Adds multiple Sprite Frames from a plist file. The texture will be associated with the created sprite frames.
- */
--(void) addSpriteFramesWithFile:(NSString*)plist texture:(CCTexture2D*)texture;
-
-/** Adds multiple Sprite Frames from a plist file. The texture will be associated with the created sprite frames.
- @since v0.99.5
- */
--(void) addSpriteFramesWithFile:(NSString*)plist textureFile:(NSString*)textureFileName;
-
-/** Adds an sprite frame with a given name.
- If the name already exists, then the contents of the old name will be replaced with the new one.
- */
--(void) addSpriteFrame:(CCSpriteFrame*)frame name:(NSString*)frameName;
-
-
-/** Purges the dictionary of loaded sprite frames.
- * Call this method if you receive the "Memory Warning".
- * In the short term: it will free some resources preventing your app from being killed.
- * In the medium term: it will allocate more resources.
- * In the long term: it will be the same.
- */
--(void) removeSpriteFrames;
-
-/** Removes unused sprite frames.
- * Sprite Frames that have a retain count of 1 will be deleted.
- * It is convinient to call this method after when starting a new Scene.
- */
--(void) removeUnusedSpriteFrames;
-
-/** Deletes an sprite frame from the sprite frame cache.
- */
--(void) removeSpriteFrameByName:(NSString*)name;
-
-/** Removes multiple Sprite Frames from a plist file.
-* Sprite Frames stored in this file will be removed.
-* It is convinient to call this method when a specific texture needs to be removed.
-* @since v0.99.5
-*/
-- (void) removeSpriteFramesFromFile:(NSString*) plist;
-
-/** Removes multiple Sprite Frames from NSDictionary.
- * @since v0.99.5
- */
-- (void) removeSpriteFramesFromDictionary:(NSDictionary*) dictionary;
-
-/** Removes all Sprite Frames associated with the specified textures.
- * It is convinient to call this method when a specific texture needs to be removed.
- * @since v0.995.
- */
-- (void) removeSpriteFramesFromTexture:(CCTexture2D*) texture;
-
-/** Returns an Sprite Frame that was previously added.
- If the name is not found it will return nil.
- You should retain the returned copy if you are going to use it.
- */
--(CCSpriteFrame*) spriteFrameByName:(NSString*)name;
-
-/** Creates an sprite with the name of an sprite frame.
- The created sprite will contain the texture, rect and offset of the sprite frame.
- It returns an autorelease object.
- @deprecated use [CCSprite spriteWithSpriteFrameName:name]. This method will be removed on final v0.9
- */
--(CCSprite*) createSpriteWithFrameName:(NSString*)name DEPRECATED_ATTRIBUTE;
-
-@end
diff --git a/Classes/cocos2d/CCSpriteFrameCache.m b/Classes/cocos2d/CCSpriteFrameCache.m
deleted file mode 100644 (file)
index 514ab97..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2008-2010 Ricardo Quesada
- * Copyright (c) 2009 Jason Booth
- * Copyright (c) 2009 Robert J Payne
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-/*
- * To create sprite frames and texture atlas, use this tool:
- * http://zwoptex.zwopple.com/
- */
-
-#import "Platforms/CCNS.h"
-#import "ccMacros.h"
-#import "CCTextureCache.h"
-#import "CCSpriteFrameCache.h"
-#import "CCSpriteFrame.h"
-#import "CCSprite.h"
-#import "Support/CCFileUtils.h"
-
-
-@implementation CCSpriteFrameCache
-
-#pragma mark CCSpriteFrameCache - Alloc, Init & Dealloc
-
-static CCSpriteFrameCache *sharedSpriteFrameCache_=nil;
-
-+ (CCSpriteFrameCache *)sharedSpriteFrameCache
-{
-       if (!sharedSpriteFrameCache_)
-               sharedSpriteFrameCache_ = [[CCSpriteFrameCache alloc] init];
-               
-       return sharedSpriteFrameCache_;
-}
-
-+(id)alloc
-{
-       NSAssert(sharedSpriteFrameCache_ == nil, @"Attempted to allocate a second instance of a singleton.");
-       return [super alloc];
-}
-
-+(void)purgeSharedSpriteFrameCache
-{
-       [sharedSpriteFrameCache_ release];
-       sharedSpriteFrameCache_ = nil;
-}
-
--(id) init
-{
-       if( (self=[super init]) ) {
-               spriteFrames_ = [[NSMutableDictionary alloc] initWithCapacity: 100];
-               spriteFramesAliases_ = [[NSMutableDictionary alloc] initWithCapacity:10];
-       }
-       
-       return self;
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | num of sprite frames =  %i>", [self class], self, [spriteFrames_ count]];
-}
-
--(void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-       
-       [spriteFrames_ release];
-       [spriteFramesAliases_ release];
-       [super dealloc];
-}
-
-#pragma mark CCSpriteFrameCache - loading sprite frames
-
--(void) addSpriteFramesWithDictionary:(NSDictionary*)dictionary texture:(CCTexture2D*)texture
-{
-       /*
-        Supported Zwoptex Formats:
-        ZWTCoordinatesFormatOptionXMLLegacy = 0, // Flash Version
-        ZWTCoordinatesFormatOptionXML1_0 = 1, // Desktop Version 0.0 - 0.4b
-        ZWTCoordinatesFormatOptionXML1_1 = 2, // Desktop Version 1.0.0 - 1.0.1
-        ZWTCoordinatesFormatOptionXML1_2 = 3, // Desktop Version 1.0.2+
-       */
-       NSDictionary *metadataDict = [dictionary objectForKey:@"metadata"];
-       NSDictionary *framesDict = [dictionary objectForKey:@"frames"];
-
-       int format = 0;
-       
-       // get the format
-       if(metadataDict != nil)
-               format = [[metadataDict objectForKey:@"format"] intValue];
-       
-       // check the format
-       NSAssert( format >= 0 && format <= 3, @"cocos2d: WARNING: format is not supported for CCSpriteFrameCache addSpriteFramesWithDictionary:texture:");
-       
-       
-       // add real frames
-       for(NSString *frameDictKey in framesDict) {
-               NSDictionary *frameDict = [framesDict objectForKey:frameDictKey];
-               CCSpriteFrame *spriteFrame;
-               if(format == 0) {
-                       float x = [[frameDict objectForKey:@"x"] floatValue];
-                       float y = [[frameDict objectForKey:@"y"] floatValue];
-                       float w = [[frameDict objectForKey:@"width"] floatValue];
-                       float h = [[frameDict objectForKey:@"height"] floatValue];
-                       float ox = [[frameDict objectForKey:@"offsetX"] floatValue];
-                       float oy = [[frameDict objectForKey:@"offsetY"] floatValue];
-                       int ow = [[frameDict objectForKey:@"originalWidth"] intValue];
-                       int oh = [[frameDict objectForKey:@"originalHeight"] intValue];
-                       // check ow/oh
-                       if(!ow || !oh)
-                               CCLOG(@"cocos2d: WARNING: originalWidth/Height not found on the CCSpriteFrame. AnchorPoint won't work as expected. Regenerate the .plist");
-                       
-                       // abs ow/oh
-                       ow = abs(ow);
-                       oh = abs(oh);
-                       // create frame
-                       
-                       spriteFrame = [[CCSpriteFrame alloc] initWithTexture:texture
-                                                                                                       rectInPixels:CGRectMake(x, y, w, h)
-                                                                                                                rotated:NO
-                                                                                                                 offset:CGPointMake(ox, oy)
-                                                                                                       originalSize:CGSizeMake(ow, oh)];
-               } else if(format == 1 || format == 2) {
-                       CGRect frame = CCRectFromString([frameDict objectForKey:@"frame"]);
-                       BOOL rotated = NO;
-                       
-                       // rotation
-                       if(format == 2)
-                               rotated = [[frameDict objectForKey:@"rotated"] boolValue];
-                       
-                       CGPoint offset = CCPointFromString([frameDict objectForKey:@"offset"]);
-                       CGSize sourceSize = CCSizeFromString([frameDict objectForKey:@"sourceSize"]);
-                       
-                       // create frame
-                       spriteFrame = [[CCSpriteFrame alloc] initWithTexture:texture
-                                                                                                       rectInPixels:frame
-                                                                                                                rotated:rotated
-                                                                                                                 offset:offset
-                                                                                                       originalSize:sourceSize];
-               } else if(format == 3) {
-                       // get values
-                       CGSize spriteSize = CCSizeFromString([frameDict objectForKey:@"spriteSize"]);
-                       CGPoint spriteOffset = CCPointFromString([frameDict objectForKey:@"spriteOffset"]);
-                       CGSize spriteSourceSize = CCSizeFromString([frameDict objectForKey:@"spriteSourceSize"]);
-                       CGRect textureRect = CCRectFromString([frameDict objectForKey:@"textureRect"]);
-                       BOOL textureRotated = [[frameDict objectForKey:@"textureRotated"] boolValue];
-                       
-                       // get aliases
-                       NSArray *aliases = [frameDict objectForKey:@"aliases"];
-                       for(NSString *alias in aliases) {
-                               if( [spriteFramesAliases_ objectForKey:alias] )
-                                       CCLOG(@"cocos2d: WARNING: an alias with name %@ already exists",alias);
-                               
-                               [spriteFramesAliases_ setObject:frameDictKey forKey:alias];
-                       }
-                       
-                       // create frame
-                       spriteFrame = [[CCSpriteFrame alloc] initWithTexture:texture 
-                                                                                                       rectInPixels:CGRectMake(textureRect.origin.x, textureRect.origin.y, spriteSize.width, spriteSize.height) 
-                                                                                                                rotated:textureRotated 
-                                                                                                                 offset:spriteOffset 
-                                                                                                       originalSize:spriteSourceSize];
-               }
-
-               // add sprite frame
-               [spriteFrames_ setObject:spriteFrame forKey:frameDictKey];
-               [spriteFrame release];
-       }
-}
-
--(void) addSpriteFramesWithFile:(NSString*)plist texture:(CCTexture2D*)texture
-{
-       NSString *path = [CCFileUtils fullPathFromRelativePath:plist];
-       NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
-
-       return [self addSpriteFramesWithDictionary:dict texture:texture];
-}
-
--(void) addSpriteFramesWithFile:(NSString*)plist textureFile:(NSString*)textureFileName
-{
-       NSAssert( textureFileName, @"Invalid texture file name");
-       CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addImage:textureFileName];
-       
-       if( texture )
-               [self addSpriteFramesWithFile:plist texture:texture];
-       else
-               CCLOG(@"cocos2d: CCSpriteFrameCache: couldn't load texture file. File not found: %@", textureFileName);
-}
-
--(void) addSpriteFramesWithFile:(NSString*)plist
-{
-    NSString *path = [CCFileUtils fullPathFromRelativePath:plist];
-    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
-       
-    NSString *texturePath = nil;
-    NSDictionary *metadataDict = [dict objectForKey:@"metadata"];
-    if( metadataDict )
-        // try to read  texture file name from meta data
-        texturePath = [metadataDict objectForKey:@"textureFileName"];
-       
-       
-    if( texturePath )
-    {
-        // build texture path relative to plist file
-        NSString *textureBase = [plist stringByDeletingLastPathComponent];
-        texturePath = [textureBase stringByAppendingPathComponent:texturePath];
-    } else {
-        // build texture path by replacing file extension
-        texturePath = [plist stringByDeletingPathExtension];
-        texturePath = [texturePath stringByAppendingPathExtension:@"png"];
-               
-               CCLOG(@"cocos2d: CCSpriteFrameCache: Trying to use file '%@' as texture", texturePath); 
-    }
-       
-    CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addImage:texturePath];
-       
-       if( texture )
-               [self addSpriteFramesWithDictionary:dict texture:texture];
-       
-       else
-               CCLOG(@"cocos2d: CCSpriteFrameCache: Couldn't load texture");
-}
-
--(void) addSpriteFrame:(CCSpriteFrame*)frame name:(NSString*)frameName
-{
-       [spriteFrames_ setObject:frame forKey:frameName];
-}
-
-#pragma mark CCSpriteFrameCache - removing
-
--(void) removeSpriteFrames
-{
-       [spriteFrames_ removeAllObjects];
-       [spriteFramesAliases_ removeAllObjects];
-}
-
--(void) removeUnusedSpriteFrames
-{
-       NSArray *keys = [spriteFrames_ allKeys];
-       for( id key in keys ) {
-               id value = [spriteFrames_ objectForKey:key];            
-               if( [value retainCount] == 1 ) {
-                       CCLOG(@"cocos2d: CCSpriteFrameCache: removing unused frame: %@", key);
-                       [spriteFrames_ removeObjectForKey:key];
-               }
-       }       
-}
-
--(void) removeSpriteFrameByName:(NSString*)name
-{
-       // explicit nil handling
-       if( ! name )
-               return;
-       
-       // Is this an alias ?
-       NSString *key = [spriteFramesAliases_ objectForKey:name];
-       
-       if( key ) {
-               [spriteFrames_ removeObjectForKey:key];
-               [spriteFramesAliases_ removeObjectForKey:name];
-
-       } else
-               [spriteFrames_ removeObjectForKey:name];
-}
-
-- (void) removeSpriteFramesFromFile:(NSString*) plist
-{
-       NSString *path = [CCFileUtils fullPathFromRelativePath:plist];
-       NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
-       
-       [self removeSpriteFramesFromDictionary:dict];
-}
-
-- (void) removeSpriteFramesFromDictionary:(NSDictionary*) dictionary
-{
-       NSDictionary *framesDict = [dictionary objectForKey:@"frames"];
-       NSMutableArray *keysToRemove=[NSMutableArray array];
-       
-       for(NSString *frameDictKey in framesDict)
-       {
-               if ([spriteFrames_ objectForKey:frameDictKey]!=nil)
-                       [keysToRemove addObject:frameDictKey];
-       }
-       [spriteFrames_ removeObjectsForKeys:keysToRemove];
-}
-
-- (void) removeSpriteFramesFromTexture:(CCTexture2D*) texture
-{
-       NSMutableArray *keysToRemove=[NSMutableArray array];
-       
-       for (NSString *spriteFrameKey in spriteFrames_)
-       {
-               if ([[spriteFrames_ valueForKey:spriteFrameKey] texture] == texture) 
-                       [keysToRemove addObject:spriteFrameKey];
-               
-       }
-       [spriteFrames_ removeObjectsForKeys:keysToRemove];
-}
-
-#pragma mark CCSpriteFrameCache - getting
-
--(CCSpriteFrame*) spriteFrameByName:(NSString*)name
-{
-       CCSpriteFrame *frame = [spriteFrames_ objectForKey:name];
-       if( ! frame ) {
-               // try alias dictionary
-               NSString *key = [spriteFramesAliases_ objectForKey:name];
-               frame = [spriteFrames_ objectForKey:key];
-               
-               if( ! frame )
-                       CCLOG(@"cocos2d: CCSpriteFrameCache: Frame '%@' not found", name);
-       }
-       
-       return frame;
-}
-
-#pragma mark CCSpriteFrameCache - sprite creation
-
--(CCSprite*) createSpriteWithFrameName:(NSString*)name
-{
-       CCSpriteFrame *frame = [spriteFrames_ objectForKey:name];
-       return [CCSprite spriteWithSpriteFrame:frame];
-}
-@end
diff --git a/Classes/cocos2d/CCSpriteSheet.h b/Classes/cocos2d/CCSpriteSheet.h
deleted file mode 100644 (file)
index c55f534..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * Copyright (C) 2009 Matt Oswald
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCSpriteBatchNode.h"
-
-#pragma mark CCSpriteSheet
-
-
-/* Added only to prevent GCC compile warnings
- Will be removed in v1.1
- */
-@interface CCSpriteSheetInternalOnly : CCSpriteBatchNode
-{
-}
-@end
-
-/** CCSpriteSheet is like a batch node: if it contains children, it will draw them in 1 single OpenGL call
- * (often known as "batch draw").
- *
- * A CCSpriteSheet can reference one and only one texture (one image file, one texture atlas).
- * Only the CCSprites that are contained in that texture can be added to the CCSpriteSheet.
- * All CCSprites added to a CCSpriteSheet are drawn in one OpenGL ES draw call.
- * If the CCSprites are not added to a CCSpriteSheet then an OpenGL ES draw call will be needed for each one, which is less efficient.
- *
- *
- * Limitations:
- *  - The only object that is accepted as child (or grandchild, grand-grandchild, etc...) is CCSprite or any subclass of CCSprite. eg: particles, labels and layer can't be added to a CCSpriteSheet.
- *  - Either all its children are Aliased or Antialiased. It can't be a mix. This is because "alias" is a property of the texture, and all the sprites share the same texture.
- * 
- * @since v0.7.1
- *
- * @deprecated Use CCSpriteBatchNode instead. This class will be removed in v1.1
- */
-DEPRECATED_ATTRIBUTE @interface CCSpriteSheet : CCSpriteSheetInternalOnly
-{
-}
-@end
diff --git a/Classes/cocos2d/CCSpriteSheet.m b/Classes/cocos2d/CCSpriteSheet.m
deleted file mode 100644 (file)
index fccc143..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * Copyright (C) 2009 Matt Oswald
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-
-#import "CCSpriteSheet.h"
-
-#pragma mark -
-#pragma mark CCSpriteSheet
-
-@implementation CCSpriteSheetInternalOnly
-@end
-
-@implementation CCSpriteSheet
-@end
diff --git a/Classes/cocos2d/CCTMXLayer.h b/Classes/cocos2d/CCTMXLayer.h
deleted file mode 100644 (file)
index b7dc2ab..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *
- * TMX Tiled Map support:
- * http://www.mapeditor.org
- *
- */
-
-
-#import "CCAtlasNode.h"
-#import "CCSpriteBatchNode.h"
-
-
-@class CCTMXMapInfo;
-@class CCTMXLayerInfo;
-@class CCTMXTilesetInfo;
-
-/** CCTMXLayer represents the TMX layer.
- It is a subclass of CCSpriteSheet. By default the tiles are rendered using a CCTextureAtlas.
- If you mofify a tile on runtime, then, that tile will become a CCSprite, otherwise no CCSprite objects are created.
- The benefits of using CCSprite objects as tiles are:
- - tiles (CCSprite) can be rotated/scaled/moved with a nice API
- If the layer contains a property named "cc_vertexz" with an integer (in can be positive or negative),
- then all the tiles belonging to the layer will use that value as their OpenGL vertex Z for depth.
-
- On the other hand, if the "cc_vertexz" property has the "automatic" value, then the tiles will use an automatic vertex Z value.
- Also before drawing the tiles, GL_ALPHA_TEST will be enabled, and disabled after drawing them. The used alpha func will be:
-
-    glAlphaFunc( GL_GREATER, value )
- "value" by default is 0, but you can change it from Tiled by adding the "cc_alpha_func" property to the layer.
- The value 0 should work for most cases, but if you have tiles that are semi-transparent, then you might want to use a differnt
- value, like 0.5.
- For further information, please see the programming guide:
-       http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:tiled_maps
- @since v0.8.1
- */
-@interface CCTMXLayer : CCSpriteBatchNode
-{
-       CCTMXTilesetInfo        *tileset_;
-       NSString                        *layerName_;
-       CGSize                          layerSize_;
-       CGSize                          mapTileSize_;
-       unsigned int            *tiles_;
-       int                                     layerOrientation_;
-       NSMutableArray          *properties_;
-       
-       unsigned char           opacity_; // TMX Layer supports opacity
-       
-       unsigned int            minGID_;
-       unsigned int            maxGID_;
-       
-       // Only used when vertexZ is used
-       int                                     vertexZvalue_;
-       BOOL                            useAutomaticVertexZ_;
-       float                           alphaFuncValue_;
-       
-       // used for optimization
-       CCSprite                *reusedTile_;
-       ccCArray                *atlasIndexArray_;
-       
-       
-}
-/** name of the layer */
-@property (nonatomic,readwrite,retain) NSString *layerName;
-/** size of the layer in tiles */
-@property (nonatomic,readwrite) CGSize layerSize;
-/** size of the map's tile (could be differnt from the tile's size) */
-@property (nonatomic,readwrite) CGSize mapTileSize;
-/** pointer to the map of tiles */
-@property (nonatomic,readwrite) unsigned int *tiles;
-/** Tilset information for the layer */
-@property (nonatomic,readwrite,retain) CCTMXTilesetInfo *tileset;
-/** Layer orientation, which is the same as the map orientation */
-@property (nonatomic,readwrite) int layerOrientation;
-/** properties from the layer. They can be added using Tiled */
-@property (nonatomic,readwrite,retain) NSMutableArray *properties;
-
-/** creates a CCTMXLayer with an tileset info, a layer info and a map info */
-+(id) layerWithTilesetInfo:(CCTMXTilesetInfo*)tilesetInfo layerInfo:(CCTMXLayerInfo*)layerInfo mapInfo:(CCTMXMapInfo*)mapInfo;
-/** initializes a CCTMXLayer with a tileset info, a layer info and a map info */
--(id) initWithTilesetInfo:(CCTMXTilesetInfo*)tilesetInfo layerInfo:(CCTMXLayerInfo*)layerInfo mapInfo:(CCTMXMapInfo*)mapInfo;
-
-/** dealloc the map that contains the tile position from memory.
- Unless you want to know at runtime the tiles positions, you can safely call this method.
- If you are going to call [layer tileGIDAt:] then, don't release the map
- */
--(void) releaseMap;
-
-/** returns the tile (CCSprite) at a given a tile coordinate.
- The returned CCSprite will be already added to the CCTMXLayer. Don't add it again.
- The CCSprite can be treated like any other CCSprite: rotated, scaled, translated, opacity, color, etc.
- You can remove either by calling:
-       - [layer removeChild:sprite cleanup:cleanup];
-       - or [layer removeTileAt:ccp(x,y)];
- */
--(CCSprite*) tileAt:(CGPoint)tileCoordinate;
-
-/** returns the tile gid at a given tile coordinate.
- if it returns 0, it means that the tile is empty.
- This method requires the the tile map has not been previously released (eg. don't call [layer releaseMap])
- */
--(unsigned int) tileGIDAt:(CGPoint)tileCoordinate;
-
-/** sets the tile gid (gid = tile global id) at a given tile coordinate.
- The Tile GID can be obtained by using the method "tileGIDAt" or by using the TMX editor -> Tileset Mgr +1.
- If a tile is already placed at that position, then it will be removed.
- */
--(void) setTileGID:(unsigned int)gid at:(CGPoint)tileCoordinate;
-
-/** removes a tile at given tile coordinate */
--(void) removeTileAt:(CGPoint)tileCoordinate;
-
-/** returns the position in pixels of a given tile coordinate */
--(CGPoint) positionAt:(CGPoint)tileCoordinate;
-
-/** return the value for the specific property name */
--(id) propertyNamed:(NSString *)propertyName;
-
-/** Creates the tiles */
--(void) setupTiles;
-
-/** CCTMXLayer doesn't support adding a CCSprite manually.
- @warning addchild:z:tag: is not supported on CCTMXLayer. Instead of setTileGID:at:/tileAt:
- */
--(void) addChild: (CCNode*)node z:(int)z tag:(int)tag;
-@end
diff --git a/Classes/cocos2d/CCTMXLayer.m b/Classes/cocos2d/CCTMXLayer.m
deleted file mode 100644 (file)
index 887af20..0000000
+++ /dev/null
@@ -1,668 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *
- * TMX Tiled Map support:
- * http://www.mapeditor.org
- *
- */
-
-#import "CCTMXLayer.h"
-#import "CCTMXTiledMap.h"
-#import "CCTMXXMLParser.h"
-#import "CCSprite.h"
-#import "CCSpriteBatchNode.h"
-#import "CCTextureCache.h"
-#import "Support/CGPointExtension.h"
-
-#pragma mark -
-#pragma mark CCSpriteBatchNode Extension
-
-/* IMPORTANT XXX IMPORTNAT:
- * These 2 methods can't be part of CCTMXLayer since they call [super add...], and CCSpriteSheet#add SHALL not be called
- */
-@implementation CCSpriteBatchNode (TMXTiledMapExtension)
-
-/* Adds a quad into the texture atlas but it won't be added into the children array.
- This method should be called only when you are dealing with very big AtlasSrite and when most of the CCSprite won't be updated.
- For example: a tile map (CCTMXMap) or a label with lots of characgers (BitmapFontAtlas)
- */
--(void) addQuadFromSprite:(CCSprite*)sprite quadIndex:(unsigned int)index
-{
-       NSAssert( sprite != nil, @"Argument must be non-nil");
-       NSAssert( [sprite isKindOfClass:[CCSprite class]], @"CCSpriteSheet only supports CCSprites as children");
-       
-       
-       while(index >= textureAtlas_.capacity || textureAtlas_.capacity == textureAtlas_.totalQuads )
-               [self increaseAtlasCapacity];
-
-       //
-       // update the quad directly. Don't add the sprite to the scene graph
-       //
-
-       [sprite useBatchNode:self];
-       [sprite setAtlasIndex:index];
-
-       ccV3F_C4B_T2F_Quad quad = [sprite quad];
-       [textureAtlas_ insertQuad:&quad atIndex:index];
-       
-       // XXX: updateTransform will update the textureAtlas too using updateQuad.
-       // XXX: so, it should be AFTER the insertQuad
-       [sprite setDirty:YES];
-       [sprite updateTransform];
-}
-
-/* This is the opposite of "addQuadFromSprite.
- It add the sprite to the children and descendants array, but it doesn't update add it to the texture atlas
- */
--(id) addSpriteWithoutQuad:(CCSprite*)child z:(unsigned int)z tag:(int)aTag
-{
-       NSAssert( child != nil, @"Argument must be non-nil");
-       NSAssert( [child isKindOfClass:[CCSprite class]], @"CCSpriteSheet only supports CCSprites as children");
-       
-       // quad index is Z
-       [child setAtlasIndex:z];
-       
-       // XXX: optimize with a binary search
-       int i=0;
-       for( CCSprite *c in descendants_ ) {
-               if( c.atlasIndex >= z )
-                       break;
-               i++;
-       }
-       [descendants_ insertObject:child atIndex:i];
-       
-       
-       // IMPORTANT: Call super, and not self. Avoid adding it to the texture atlas array
-       [super addChild:child z:z tag:aTag];
-       return self;    
-}
-@end
-
-
-#pragma mark -
-#pragma mark CCTMXLayer
-
-@interface CCTMXLayer (Private)
--(CGPoint) positionForIsoAt:(CGPoint)pos;
--(CGPoint) positionForOrthoAt:(CGPoint)pos;
--(CGPoint) positionForHexAt:(CGPoint)pos;
-
--(CGPoint) calculateLayerOffset:(CGPoint)offset;
-
-/* optimization methos */
--(CCSprite*) appendTileForGID:(unsigned int)gid at:(CGPoint)pos;
--(CCSprite*) insertTileForGID:(unsigned int)gid at:(CGPoint)pos;
--(CCSprite*) updateTileForGID:(unsigned int)gid at:(CGPoint)pos;
-
-/* The layer recognizes some special properties, like cc_vertez */
--(void) parseInternalProperties;
-
--(int) vertexZForPos:(CGPoint)pos;
-
-// adding quad from sprite
--(void)addQuadFromSprite:(CCSprite*)sprite quadIndex:(unsigned int)index;
-
-// adds an sprite without the quad
--(id)addSpriteWithoutQuad:(CCSprite*)child z:(int)z tag:(int)aTag;
-
-// index
--(NSUInteger) atlasIndexForExistantZ:(NSUInteger)z;
--(NSUInteger) atlasIndexForNewZ:(NSUInteger)z;
-@end
-
-@implementation CCTMXLayer
-@synthesize layerSize = layerSize_, layerName = layerName_, tiles = tiles_;
-@synthesize tileset = tileset_;
-@synthesize layerOrientation = layerOrientation_;
-@synthesize mapTileSize = mapTileSize_;
-@synthesize properties = properties_;
-
-#pragma mark CCTMXLayer - init & alloc & dealloc
-
-+(id) layerWithTilesetInfo:(CCTMXTilesetInfo*)tilesetInfo layerInfo:(CCTMXLayerInfo*)layerInfo mapInfo:(CCTMXMapInfo*)mapInfo
-{
-       return [[[self alloc] initWithTilesetInfo:tilesetInfo layerInfo:layerInfo mapInfo:mapInfo] autorelease];
-}
-
--(id) initWithTilesetInfo:(CCTMXTilesetInfo*)tilesetInfo layerInfo:(CCTMXLayerInfo*)layerInfo mapInfo:(CCTMXMapInfo*)mapInfo
-{      
-       // XXX: is 35% a good estimate ?
-       CGSize size = layerInfo.layerSize;
-       float totalNumberOfTiles = size.width * size.height;
-       float capacity = totalNumberOfTiles * 0.35f + 1; // 35 percent is occupied ?
-       
-       CCTexture2D *tex = nil;
-       if( tilesetInfo )
-               tex = [[CCTextureCache sharedTextureCache] addImage:tilesetInfo.sourceImage];
-       
-       if((self = [super initWithTexture:tex capacity:capacity])) {            
-
-               // layerInfo
-               self.layerName = layerInfo.name;
-               layerSize_ = layerInfo.layerSize;
-               tiles_ = layerInfo.tiles;
-               minGID_ = layerInfo.minGID;
-               maxGID_ = layerInfo.maxGID;
-               opacity_ = layerInfo.opacity;
-               self.properties = [NSMutableDictionary dictionaryWithDictionary:layerInfo.properties];
-
-               // tilesetInfo
-               self.tileset = tilesetInfo;
-               
-               // mapInfo
-               mapTileSize_ = mapInfo.tileSize;
-               layerOrientation_ = mapInfo.orientation;
-               
-               // offset (after layer orientation is set);
-               CGPoint offset = [self calculateLayerOffset:layerInfo.offset];
-               [self setPositionInPixels:offset];
-               
-               atlasIndexArray_ = ccCArrayNew(totalNumberOfTiles);
-               
-               [self setContentSizeInPixels: CGSizeMake( layerSize_.width * mapTileSize_.width, layerSize_.height * mapTileSize_.height )];
-               
-               useAutomaticVertexZ_= NO;
-               vertexZvalue_ = 0;
-               alphaFuncValue_ = 0;
-
-       }
-       return self;
-}
-
-- (void) dealloc
-{
-       [layerName_ release];
-       [tileset_ release];
-       [reusedTile_ release];
-       [properties_ release];
-       
-       if( atlasIndexArray_ ) {
-               ccCArrayFree(atlasIndexArray_);
-               atlasIndexArray_ = NULL;
-       }
-       
-       if( tiles_ ) {
-               free(tiles_);
-               tiles_ = NULL;
-       }
-       
-       [super dealloc];
-}
-
--(void) releaseMap
-{
-       if( tiles_) {
-               free( tiles_);
-               tiles_ = NULL;
-       }
-       
-       if( atlasIndexArray_ ) {
-               ccCArrayFree(atlasIndexArray_);
-               atlasIndexArray_ = NULL;
-       }
-}
-
-#pragma mark CCTMXLayer - setup Tiles
-
--(void) setupTiles
-{      
-       // Optimization: quick hack that sets the image size on the tileset
-       tileset_.imageSize = [textureAtlas_.texture contentSizeInPixels];
-       
-       // By default all the tiles are aliased
-       // pros:
-       //  - easier to render
-       // cons:
-       //  - difficult to scale / rotate / etc.
-       [textureAtlas_.texture setAliasTexParameters];
-       
-       CFByteOrder o = CFByteOrderGetCurrent();
-               
-       // Parse cocos2d properties
-       [self parseInternalProperties];
-       
-       for( unsigned int y=0; y < layerSize_.height; y++ ) {
-               for( unsigned int x=0; x < layerSize_.width; x++ ) {
-                       
-                       unsigned int pos = x + layerSize_.width * y;
-                       unsigned int gid = tiles_[ pos ];
-                       
-                       // gid are stored in little endian.
-                       // if host is big endian, then swap
-                       if( o == CFByteOrderBigEndian )
-                               gid = CFSwapInt32( gid );
-                       
-                       // XXX: gid == 0 --> empty tile
-                       if( gid != 0 ) {
-                               [self appendTileForGID:gid at:ccp(x,y)];
-                               
-                               // Optimization: update min and max GID rendered by the layer
-                               minGID_ = MIN(gid, minGID_);
-                               maxGID_ = MAX(gid, maxGID_);
-                       }
-               }
-       }
-       
-       NSAssert( maxGID_ >= tileset_.firstGid &&
-                        minGID_ >= tileset_.firstGid, @"TMX: Only 1 tilset per layer is supported");   
-}
-
-#pragma mark CCTMXLayer - Properties
-
--(id) propertyNamed:(NSString *)propertyName 
-{
-       return [properties_ valueForKey:propertyName];
-}
-
--(void) parseInternalProperties
-{
-       // if cc_vertex=automatic, then tiles will be rendered using vertexz
-
-       NSString *vertexz = [self propertyNamed:@"cc_vertexz"];
-       if( vertexz ) {
-               if( [vertexz isEqualToString:@"automatic"] )
-                       useAutomaticVertexZ_ = YES;
-               else
-                       vertexZvalue_ = [vertexz intValue];
-       }
-       
-       NSString *alphaFuncVal = [self propertyNamed:@"cc_alpha_func"];
-       alphaFuncValue_ = [alphaFuncVal floatValue];
-}
-
-#pragma mark CCTMXLayer - obtaining tiles/gids
-
--(CCSprite*) tileAt:(CGPoint)pos
-{
-       NSAssert( pos.x < layerSize_.width && pos.y < layerSize_.height && pos.x >=0 && pos.y >=0, @"TMXLayer: invalid position");
-       NSAssert( tiles_ && atlasIndexArray_, @"TMXLayer: the tiles map has been released");
-       
-       CCSprite *tile = nil;
-       unsigned int gid = [self tileGIDAt:pos];
-       
-       // if GID == 0, then no tile is present
-       if( gid ) {
-               int z = pos.x + pos.y * layerSize_.width;
-               tile = (CCSprite*) [self getChildByTag:z];
-               
-               // tile not created yet. create it
-               if( ! tile ) {
-                       CGRect rect = [tileset_ rectForGID:gid];                        
-                       tile = [[CCSprite alloc] initWithBatchNode:self rectInPixels:rect];
-                       [tile setPositionInPixels: [self positionAt:pos]];
-                       [tile setVertexZ: [self vertexZForPos:pos]];
-                       tile.anchorPoint = CGPointZero;
-                       [tile setOpacity:opacity_];
-                       
-                       unsigned int indexForZ = [self atlasIndexForExistantZ:z];
-                       [self addSpriteWithoutQuad:tile z:indexForZ tag:z];
-                       [tile release];
-               }
-       }
-       return tile;
-}
-
--(unsigned int) tileGIDAt:(CGPoint)pos
-{
-       NSAssert( pos.x < layerSize_.width && pos.y < layerSize_.height && pos.x >=0 && pos.y >=0, @"TMXLayer: invalid position");
-       NSAssert( tiles_ && atlasIndexArray_, @"TMXLayer: the tiles map has been released");
-       
-       int idx = pos.x + pos.y * layerSize_.width;
-       return tiles_[ idx ];
-}
-
-#pragma mark CCTMXLayer - adding helper methods
-
--(CCSprite*) insertTileForGID:(unsigned int)gid at:(CGPoint)pos
-{
-       CGRect rect = [tileset_ rectForGID:gid];
-       
-       NSInteger z = pos.x + pos.y * layerSize_.width;
-       
-       if( ! reusedTile_ )
-               reusedTile_ = [[CCSprite alloc] initWithBatchNode:self rectInPixels:rect];
-       else
-               [reusedTile_ initWithBatchNode:self rectInPixels:rect];
-       
-       [reusedTile_ setPositionInPixels: [self positionAt:pos]];
-       [reusedTile_ setVertexZ: [self vertexZForPos:pos]];
-       reusedTile_.anchorPoint = CGPointZero;
-       [reusedTile_ setOpacity:opacity_];
-       
-       // get atlas index
-       NSUInteger indexForZ = [self atlasIndexForNewZ:z];
-       
-       // Optimization: add the quad without adding a child
-       [self addQuadFromSprite:reusedTile_ quadIndex:indexForZ];
-       
-       // insert it into the local atlasindex array
-       ccCArrayInsertValueAtIndex(atlasIndexArray_, (void*)z, indexForZ);
-       
-       // update possible children
-       CCSprite *sprite;
-       CCARRAY_FOREACH(children_, sprite) {
-               unsigned int ai = [sprite atlasIndex];
-               if( ai >= indexForZ)
-                       [sprite setAtlasIndex: ai+1];
-       }
-       
-       tiles_[z] = gid;
-       
-       return reusedTile_;
-}
-
--(CCSprite*) updateTileForGID:(unsigned int)gid at:(CGPoint)pos
-{
-       CGRect rect = [tileset_ rectForGID:gid];
-       
-       int z = pos.x + pos.y * layerSize_.width;
-       
-       if( ! reusedTile_ )
-               reusedTile_ = [[CCSprite alloc] initWithBatchNode:self rectInPixels:rect];
-       else
-               [reusedTile_ initWithBatchNode:self rectInPixels:rect];
-       
-       [reusedTile_ setPositionInPixels: [self positionAt:pos]];
-       [reusedTile_ setVertexZ: [self vertexZForPos:pos]];
-       reusedTile_.anchorPoint = CGPointZero;
-       [reusedTile_ setOpacity:opacity_];
-       
-       // get atlas index
-       unsigned int indexForZ = [self atlasIndexForExistantZ:z];
-
-       [reusedTile_ setAtlasIndex:indexForZ];
-       [reusedTile_ setDirty:YES];
-       [reusedTile_ updateTransform];
-       tiles_[z] = gid;
-       
-       return reusedTile_;
-}
-
-
-// used only when parsing the map. useless after the map was parsed
-// since lot's of assumptions are no longer true
--(CCSprite*) appendTileForGID:(unsigned int)gid at:(CGPoint)pos
-{
-       CGRect rect = [tileset_ rectForGID:gid];
-       
-       NSInteger z = pos.x + pos.y * layerSize_.width;
-       
-       if( ! reusedTile_ )
-               reusedTile_ = [[CCSprite alloc] initWithBatchNode:self rectInPixels:rect];
-       else
-               [reusedTile_ initWithBatchNode:self rectInPixels:rect];
-       
-       [reusedTile_ setPositionInPixels: [self positionAt:pos]];
-       [reusedTile_ setVertexZ: [self vertexZForPos:pos]];
-       reusedTile_.anchorPoint = CGPointZero;
-       [reusedTile_ setOpacity:opacity_];
-       
-       // optimization:
-       // The difference between appendTileForGID and insertTileforGID is that append is faster, since
-       // it appends the tile at the end of the texture atlas
-       NSUInteger indexForZ = atlasIndexArray_->num;
-
-
-       // don't add it using the "standard" way.
-       [self addQuadFromSprite:reusedTile_ quadIndex:indexForZ];
-       
-       
-       // append should be after addQuadFromSprite since it modifies the quantity values
-       ccCArrayInsertValueAtIndex(atlasIndexArray_, (void*)z, indexForZ);
-       
-       return reusedTile_;
-}
-
-#pragma mark CCTMXLayer - atlasIndex and Z
-
-int compareInts (const void * a, const void * b)
-{
-       return ( *(int*)a - *(int*)b );
-}
-
--(NSUInteger) atlasIndexForExistantZ:(NSUInteger)z
-{
-       NSInteger key = z;
-       NSInteger *item = bsearch((void*)&key, (void*)&atlasIndexArray_->arr[0], atlasIndexArray_->num, sizeof(void*), compareInts);
-       
-       NSAssert( item, @"TMX atlas index not found. Shall not happen");
-
-       NSUInteger index = ((NSInteger)item - (NSInteger)atlasIndexArray_->arr) / sizeof(void*);
-       return index;
-}
-
--(NSUInteger)atlasIndexForNewZ:(NSUInteger)z
-{
-       // XXX: This can be improved with a sort of binary search
-       NSUInteger i = 0;
-       for(i = 0; i< atlasIndexArray_->num; i++) {
-               NSUInteger val = (NSUInteger) atlasIndexArray_->arr[i];
-               if( z < val )
-                       break;
-       }       
-       return i;
-}
-
-#pragma mark CCTMXLayer - adding / remove tiles
-
--(void) setTileGID:(unsigned int)gid at:(CGPoint)pos
-{
-       NSAssert( pos.x < layerSize_.width && pos.y < layerSize_.height && pos.x >=0 && pos.y >=0, @"TMXLayer: invalid position");
-       NSAssert( tiles_ && atlasIndexArray_, @"TMXLayer: the tiles map has been released");
-       NSAssert( gid == 0 || gid >= tileset_.firstGid, @"TMXLayer: invalid gid" );
-
-       unsigned int currentGID = [self tileGIDAt:pos];
-       
-       if( currentGID != gid ) {
-               
-               // setting gid=0 is equal to remove the tile
-               if( gid == 0 )
-                       [self removeTileAt:pos];
-
-               // empty tile. create a new one
-               else if( currentGID == 0 )
-                       [self insertTileForGID:gid at:pos];
-
-               // modifying an existing tile with a non-empty tile
-               else {
-
-                       unsigned int z = pos.x + pos.y * layerSize_.width;
-                       id sprite = [self getChildByTag:z];
-                       if( sprite ) {
-                               CGRect rect = [tileset_ rectForGID:gid];
-                               [sprite setTextureRectInPixels:rect rotated:NO untrimmedSize:rect.size];
-                               tiles_[z] = gid;
-                       } else
-                               [self updateTileForGID:gid at:pos];
-               }
-       }
-}
-
--(void) addChild: (CCNode*)node z:(int)z tag:(int)tag
-{
-       NSAssert(NO, @"addChild: is not supported on CCTMXLayer. Instead use setTileGID:at:/tileAt:");
-}
-
--(void) removeChild:(CCSprite*)sprite cleanup:(BOOL)cleanup
-{
-       // allows removing nil objects
-       if( ! sprite )
-               return;
-
-       NSAssert( [children_ containsObject:sprite], @"Tile does not belong to TMXLayer");
-       
-       unsigned int atlasIndex = [sprite atlasIndex];
-       NSUInteger zz = (NSUInteger) atlasIndexArray_->arr[atlasIndex];
-       tiles_[zz] = 0;
-       ccCArrayRemoveValueAtIndex(atlasIndexArray_, atlasIndex);
-       [super removeChild:sprite cleanup:cleanup];
-}
-
--(void) removeTileAt:(CGPoint)pos
-{
-       NSAssert( pos.x < layerSize_.width && pos.y < layerSize_.height && pos.x >=0 && pos.y >=0, @"TMXLayer: invalid position");
-       NSAssert( tiles_ && atlasIndexArray_, @"TMXLayer: the tiles map has been released");
-
-       unsigned int gid = [self tileGIDAt:pos];
-       
-       if( gid ) {
-               
-               unsigned int z = pos.x + pos.y * layerSize_.width;
-               unsigned atlasIndex = [self atlasIndexForExistantZ:z];
-               
-               // remove tile from GID map
-               tiles_[z] = 0;
-
-               // remove tile from atlas position array
-               ccCArrayRemoveValueAtIndex(atlasIndexArray_, atlasIndex);
-               
-               // remove it from sprites and/or texture atlas
-               id sprite = [self getChildByTag:z];
-               if( sprite )
-                       [super removeChild:sprite cleanup:YES];
-               else {
-                       [textureAtlas_ removeQuadAtIndex:atlasIndex];
-
-                       // update possible children
-                       CCSprite *sprite;
-                       CCARRAY_FOREACH(children_, sprite) {
-                               unsigned int ai = [sprite atlasIndex];
-                               if( ai >= atlasIndex) {
-                                       [sprite setAtlasIndex: ai-1];
-                               }
-                       }
-               }
-       }
-}
-
-#pragma mark CCTMXLayer - obtaining positions, offset
-
--(CGPoint) calculateLayerOffset:(CGPoint)pos
-{
-       CGPoint ret = CGPointZero;
-       switch( layerOrientation_ ) {
-               case CCTMXOrientationOrtho:
-                       ret = ccp( pos.x * mapTileSize_.width, -pos.y *mapTileSize_.height);
-                       break;
-               case CCTMXOrientationIso:
-                       ret = ccp( (mapTileSize_.width /2) * (pos.x - pos.y),
-                                         (mapTileSize_.height /2 ) * (-pos.x - pos.y) );
-                       break;
-               case CCTMXOrientationHex:
-                       NSAssert(CGPointEqualToPoint(pos, CGPointZero), @"offset for hexagonal map not implemented yet");
-                       break;
-       }
-       return ret;     
-}
-
--(CGPoint) positionAt:(CGPoint)pos
-{
-       CGPoint ret = CGPointZero;
-       switch( layerOrientation_ ) {
-               case CCTMXOrientationOrtho:
-                       ret = [self positionForOrthoAt:pos];
-                       break;
-               case CCTMXOrientationIso:
-                       ret = [self positionForIsoAt:pos];
-                       break;
-               case CCTMXOrientationHex:
-                       ret = [self positionForHexAt:pos];
-                       break;
-       }
-       return ret;
-}
-
--(CGPoint) positionForOrthoAt:(CGPoint)pos
-{
-       CGPoint xy = {
-               pos.x * mapTileSize_.width,
-               (layerSize_.height - pos.y - 1) * mapTileSize_.height,
-       };
-       return xy;
-}
-
--(CGPoint) positionForIsoAt:(CGPoint)pos
-{
-       CGPoint xy = {
-               mapTileSize_.width /2 * ( layerSize_.width + pos.x - pos.y - 1),
-               mapTileSize_.height /2 * (( layerSize_.height * 2 - pos.x - pos.y) - 2),
-       };
-       return xy;
-}
-
--(CGPoint) positionForHexAt:(CGPoint)pos
-{
-       float diffY = 0;
-       if( (int)pos.x % 2 == 1 )
-               diffY = -mapTileSize_.height/2 ;
-       
-       CGPoint xy = {
-               pos.x * mapTileSize_.width*3/4,
-               (layerSize_.height - pos.y - 1) * mapTileSize_.height + diffY
-       };
-       return xy;
-}
-
--(int) vertexZForPos:(CGPoint)pos
-{
-       int ret = 0;
-       unsigned int maxVal = 0;
-       if( useAutomaticVertexZ_ ) {
-               switch( layerOrientation_ ) {
-                       case CCTMXOrientationIso:
-                               maxVal = layerSize_.width + layerSize_.height;
-                               ret = -(maxVal - (pos.x + pos.y));
-                               break;
-                       case CCTMXOrientationOrtho:
-                               ret = -(layerSize_.height-pos.y);
-                               break;
-                       case CCTMXOrientationHex:
-                               NSAssert(NO,@"TMX Hexa zOrder not supported");
-                               break;
-                       default:
-                               NSAssert(NO,@"TMX invalid value");
-                               break;
-               }
-       } else
-               ret = vertexZvalue_;
-       
-       return ret;
-}
-
-#pragma mark CCTMXLayer - draw
-
--(void) draw
-{
-       if( useAutomaticVertexZ_ ) {
-               glEnable(GL_ALPHA_TEST);
-               glAlphaFunc(GL_GREATER, alphaFuncValue_);
-       }
-       
-       [super draw];
-       
-       if( useAutomaticVertexZ_ )
-               glDisable(GL_ALPHA_TEST);
-}
-@end
-
diff --git a/Classes/cocos2d/CCTMXObjectGroup.h b/Classes/cocos2d/CCTMXObjectGroup.h
deleted file mode 100644 (file)
index f2a3f2c..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2010 Ricardo Quesada
- * Copyright (c) 2010 Neophit
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *
- * TMX Tiled Map support:
- * http://www.mapeditor.org
- *
- */
-
-#import "CCSpriteSheet.h"
-
-
-@class CCTMXObjectGroup;
-
-
-/** CCTMXObjectGroup represents the TMX object group.
-@since v0.99.0
-*/
-@interface CCTMXObjectGroup : NSObject
-{
-       NSString                        *groupName_;
-       CGPoint                         positionOffset_;
-       NSMutableArray          *objects_;
-       NSMutableDictionary     *properties_;
-}
-
-/** name of the group */
-@property (nonatomic,readwrite,retain) NSString *groupName;
-/** offset position of child objects */
-@property (nonatomic,readwrite,assign) CGPoint positionOffset;
-/** array of the objects */
-@property (nonatomic,readwrite,retain) NSMutableArray *objects;
-/** list of properties stored in a dictionary */
-@property (nonatomic,readwrite,retain) NSMutableDictionary *properties;
-
-/** return the value for the specific property name */
--(id) propertyNamed:(NSString *)propertyName;
-
-/** return the dictionary for the specific object name.
- It will return the 1st object found on the array for the given name.
- */
--(NSMutableDictionary*) objectNamed:(NSString *)objectName;
-
-@end
diff --git a/Classes/cocos2d/CCTMXObjectGroup.m b/Classes/cocos2d/CCTMXObjectGroup.m
deleted file mode 100644 (file)
index c0c0537..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2010 Ricardo Quesada
- * Copyright (c) 2010 Neophit
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *
- * TMX Tiled Map support:
- * http://www.mapeditor.org
- *
- */
-
-#import "CCTMXObjectGroup.h"
-#import "CCTMXXMLParser.h"
-#import "Support/CGPointExtension.h"
-
-
-#pragma mark -
-#pragma mark TMXObjectGroup
-
-@implementation CCTMXObjectGroup
-
-@synthesize groupName = groupName_;
-@synthesize objects = objects_;
-@synthesize positionOffset = positionOffset_;
-@synthesize properties = properties_;
-
--(id) init
-{
-       if (( self=[super init] )) {
-               self.groupName = nil;
-               self.positionOffset = CGPointZero;
-               self.objects = [NSMutableArray arrayWithCapacity:10];
-               self.properties = [NSMutableDictionary dictionaryWithCapacity:5];
-       }
-       return self;
-}
-
--(void) dealloc
-{
-       CCLOGINFO( @"cocos2d: deallocing %@", self );
-               
-       [groupName_ release];
-       [objects_ release];
-       [properties_ release];
-       [super dealloc];
-}
-
--(NSMutableDictionary*) objectNamed:(NSString *)objectName
-{
-       for( id object in objects_ ) {
-               if( [[object valueForKey:@"name"] isEqual:objectName] )
-                       return object;
-               }
-
-       // object not found
-       return nil;
-}
-
--(id) propertyNamed:(NSString *)propertyName 
-{
-       return [properties_ valueForKey:propertyName];
-}
-
-@end
diff --git a/Classes/cocos2d/CCTMXTiledMap.h b/Classes/cocos2d/CCTMXTiledMap.h
deleted file mode 100644 (file)
index 3ae0153..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *
- * TMX Tiled Map support:
- * http://www.mapeditor.org
- *
- */
-
-#import "CCSpriteSheet.h"
-
-
-@class CCTMXLayer;
-@class CCTMXObjectGroup;
-
-/** Possible oritentations of the TMX map */
-enum
-{
-       /** Orthogonal orientation */
-       CCTMXOrientationOrtho,
-       
-       /** Hexagonal orientation */
-       CCTMXOrientationHex,
-       
-       /** Isometric orientation */
-       CCTMXOrientationIso,
-};
-
-/** CCTMXTiledMap knows how to parse and render a TMX map.
- It adds support for the TMX tiled map format used by http://www.mapeditor.org
- It supports isometric, hexagonal and orthogonal tiles.
- It also supports object groups, objects, and properties.
-
- Features:
- - Each tile will be treated as an CCSprite
- - The sprites are created on demand. They will be created only when you call "[layer tileAt:]"
- - Each tile can be rotated / moved / scaled / tinted / "opacitied", since each tile is a CCSprite
- - Tiles can be added/removed in runtime
- - The z-order of the tiles can be modified in runtime
- - Each tile has an anchorPoint of (0,0)
- - The anchorPoint of the TMXTileMap is (0,0)
- - The TMX layers will be added as a child
- - The TMX layers will be aliased by default
- - The tileset image will be loaded using the CCTextureCache
- - Each tile will have a unique tag
- - Each tile will have a unique z value. top-left: z=1, bottom-right: z=max z
- - Each object group will be treated as an NSMutableArray
- - Object class which will contain all the properties in a dictionary
- - Properties can be assigned to the Map, Layer, Object Group, and Object
- Limitations:
- - It only supports one tileset per layer.
- - Embeded images are not supported
- - It only supports the XML format (the JSON format is not supported)
- Technical description:
-   Each layer is created using an CCTMXLayer (subclass of CCSpriteSheet). If you have 5 layers, then 5 CCTMXLayer will be created,
-   unless the layer visibility is off. In that case, the layer won't be created at all.
-   You can obtain the layers (CCTMXLayer objects) at runtime by:
-  - [map getChildByTag: tag_number];  // 0=1st layer, 1=2nd layer, 2=3rd layer, etc...
-  - [map layerNamed: name_of_the_layer];
-
-   Each object group is created using a CCTMXObjectGroup which is a subclass of NSMutableArray.
-   You can obtain the object groups at runtime by:
-   - [map objectGroupNamed: name_of_the_object_group];
-  
-   Each object is a CCTMXObject.
-
-   Each property is stored as a key-value pair in an NSMutableDictionary.
-   You can obtain the properties at runtime by:
-               [map propertyNamed: name_of_the_property];
-               [layer propertyNamed: name_of_the_property];
-               [objectGroup propertyNamed: name_of_the_property];
-               [object propertyNamed: name_of_the_property];
-
- @since v0.8.1
- */
-@interface CCTMXTiledMap : CCNode
-{
-       CGSize                          mapSize_;
-       CGSize                          tileSize_;
-       int                                     mapOrientation_;
-       NSMutableArray          *objectGroups_;
-       NSMutableDictionary     *properties_;
-       NSMutableDictionary     *tileProperties_;
-}
-
-/** the map's size property measured in tiles */
-@property (nonatomic,readonly) CGSize mapSize;
-/** the tiles's size property measured in pixels */
-@property (nonatomic,readonly) CGSize tileSize;
-/** map orientation */
-@property (nonatomic,readonly) int mapOrientation;
-/** object groups */
-@property (nonatomic,readwrite,retain) NSMutableArray *objectGroups;
-/** properties */
-@property (nonatomic,readwrite,retain) NSMutableDictionary *properties;
-
-/** creates a TMX Tiled Map with a TMX file.*/
-+(id) tiledMapWithTMXFile:(NSString*)tmxFile;
-
-/** initializes a TMX Tiled Map with a TMX file */
--(id) initWithTMXFile:(NSString*)tmxFile;
-
-/** return the TMXLayer for the specific layer */
--(CCTMXLayer*) layerNamed:(NSString *)layerName;
-
-/** return the TMXObjectGroup for the secific group */
--(CCTMXObjectGroup*) objectGroupNamed:(NSString *)groupName;
-
-/** return the TMXObjectGroup for the secific group
- @deprecated Use map#objectGroupNamed instead
- */
--(CCTMXObjectGroup*) groupNamed:(NSString *)groupName DEPRECATED_ATTRIBUTE;
-
-/** return the value for the specific property name */
--(id) propertyNamed:(NSString *)propertyName;
-
-/** return properties dictionary for tile GID */
--(NSDictionary*)propertiesForGID:(unsigned int)GID;
-@end
-
diff --git a/Classes/cocos2d/CCTMXTiledMap.m b/Classes/cocos2d/CCTMXTiledMap.m
deleted file mode 100644 (file)
index 70838a2..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *
- * TMX Tiled Map support:
- * http://www.mapeditor.org
- *
- */
-
-#import "CCTMXTiledMap.h"
-#import "CCTMXXMLParser.h"
-#import "CCTMXLayer.h"
-#import "CCTMXObjectGroup.h"
-#import "CCSprite.h"
-#import "CCSpriteSheet.h"
-#import "CCTextureCache.h"
-#import "Support/CGPointExtension.h"
-
-
-#pragma mark -
-#pragma mark CCTMXTiledMap
-
-@interface CCTMXTiledMap (Private)
--(id) parseLayer:(CCTMXLayerInfo*)layer map:(CCTMXMapInfo*)mapInfo;
--(CCTMXTilesetInfo*) tilesetForLayer:(CCTMXLayerInfo*)layerInfo map:(CCTMXMapInfo*)mapInfo;
-@end
-
-@implementation CCTMXTiledMap
-@synthesize mapSize = mapSize_;
-@synthesize tileSize = tileSize_;
-@synthesize mapOrientation = mapOrientation_;
-@synthesize objectGroups = objectGroups_;
-@synthesize properties = properties_;
-
-+(id) tiledMapWithTMXFile:(NSString*)tmxFile
-{
-       return [[[self alloc] initWithTMXFile:tmxFile] autorelease];
-}
-
--(id) initWithTMXFile:(NSString*)tmxFile
-{
-       NSAssert(tmxFile != nil, @"TMXTiledMap: tmx file should not bi nil");
-
-       if ((self=[super init])) {
-               
-               [self setContentSize:CGSizeZero];
-
-               CCTMXMapInfo *mapInfo = [CCTMXMapInfo formatWithTMXFile:tmxFile];
-               
-               NSAssert( [mapInfo.tilesets count] != 0, @"TMXTiledMap: Map not found. Please check the filename.");
-               
-               mapSize_ = mapInfo.mapSize;
-               tileSize_ = mapInfo.tileSize;
-               mapOrientation_ = mapInfo.orientation;
-               objectGroups_ = [mapInfo.objectGroups retain];
-               properties_ = [mapInfo.properties retain];
-               tileProperties_ = [mapInfo.tileProperties retain];
-                               
-               int idx=0;
-
-               for( CCTMXLayerInfo *layerInfo in mapInfo.layers ) {
-                       
-                       if( layerInfo.visible ) {
-                               CCNode *child = [self parseLayer:layerInfo map:mapInfo];
-                               [self addChild:child z:idx tag:idx];
-                               
-                               // update content size with the max size
-                               CGSize childSize = [child contentSize];
-                               CGSize currentSize = [self contentSize];
-                               currentSize.width = MAX( currentSize.width, childSize.width );
-                               currentSize.height = MAX( currentSize.height, childSize.height );
-                               [self setContentSize:currentSize];
-       
-                               idx++;
-                       }                       
-               }               
-       }
-
-       return self;
-}
-
--(void) dealloc
-{
-       [objectGroups_ release];
-       [properties_ release];
-       [tileProperties_ release];
-       [super dealloc];
-}
-
-// private
--(id) parseLayer:(CCTMXLayerInfo*)layerInfo map:(CCTMXMapInfo*)mapInfo
-{
-       CCTMXTilesetInfo *tileset = [self tilesetForLayer:layerInfo map:mapInfo];
-       CCTMXLayer *layer = [CCTMXLayer layerWithTilesetInfo:tileset layerInfo:layerInfo mapInfo:mapInfo];
-
-       // tell the layerinfo to release the ownership of the tiles map.
-       layerInfo.ownTiles = NO;
-
-       [layer setupTiles];
-       
-       return layer;
-}
-
--(CCTMXTilesetInfo*) tilesetForLayer:(CCTMXLayerInfo*)layerInfo map:(CCTMXMapInfo*)mapInfo
-{
-       CCTMXTilesetInfo *tileset = nil;
-       CFByteOrder o = CFByteOrderGetCurrent();
-       
-       CGSize size = layerInfo.layerSize;
-
-       id iter = [mapInfo.tilesets reverseObjectEnumerator];
-       for( CCTMXTilesetInfo* tileset in iter) {
-               for( unsigned int y = 0; y < size.height; y++ ) {
-                       for( unsigned int x = 0; x < size.width; x++ ) {
-                               
-                               unsigned int pos = x + size.width * y;
-                               unsigned int gid = layerInfo.tiles[ pos ];
-                               
-                               // gid are stored in little endian.
-                               // if host is big endian, then swap
-                               if( o == CFByteOrderBigEndian )
-                                       gid = CFSwapInt32( gid );
-                               
-                               // XXX: gid == 0 --> empty tile
-                               if( gid != 0 ) {
-                                       
-                                       // Optimization: quick return
-                                       // if the layer is invalid (more than 1 tileset per layer) an assert will be thrown later
-                                       if( gid >= tileset.firstGid )
-                                               return tileset;
-                               }
-                       }
-               }               
-       }
-       
-       // If all the tiles are 0, return empty tileset
-       CCLOG(@"cocos2d: Warning: TMX Layer '%@' has no tiles", layerInfo.name);
-       return tileset;
-}
-
-
-// public
-
--(CCTMXLayer*) layerNamed:(NSString *)layerName 
-{
-       CCTMXLayer *layer;
-       CCARRAY_FOREACH(children_, layer) {
-               if([layer isKindOfClass:[CCTMXLayer class]])
-                       if([layer.layerName isEqual:layerName])
-                               return layer;
-       }
-       
-       // layer not found
-       return nil;
-}
-
--(CCTMXObjectGroup*) objectGroupNamed:(NSString *)groupName 
-{
-       for( CCTMXObjectGroup *objectGroup in objectGroups_ ) {
-               if( [objectGroup.groupName isEqual:groupName] )
-                       return objectGroup;
-       }
-       
-       // objectGroup not found
-       return nil;
-}
-
-// XXX deprecated
--(CCTMXObjectGroup*) groupNamed:(NSString *)groupName 
-{
-       return [self objectGroupNamed:groupName];
-}
-
--(id) propertyNamed:(NSString *)propertyName 
-{
-       return [properties_ valueForKey:propertyName];
-}
--(NSDictionary*)propertiesForGID:(unsigned int)GID{
-       return [tileProperties_ objectForKey:[NSNumber numberWithInt:GID]];
-}
-@end
-
diff --git a/Classes/cocos2d/CCTMXXMLParser.h b/Classes/cocos2d/CCTMXXMLParser.h
deleted file mode 100644 (file)
index 5c25a73..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *
- * TMX Tiled Map support:
- * http://www.mapeditor.org
- *
- */
-
-/*
- * Internal TMX parser
- *
- * IMPORTANT: These classed should not be documented using doxygen strings
- * since the user should not use them.
- *
- */
-
-#import <Availability.h>
-#import <Foundation/Foundation.h>
-
-enum {
-       TMXLayerAttribNone = 1 << 0,
-       TMXLayerAttribBase64 = 1 << 1,
-       TMXLayerAttribGzip = 1 << 2,
-};
-
-enum {
-       TMXPropertyNone,
-       TMXPropertyMap,
-       TMXPropertyLayer,
-       TMXPropertyObjectGroup,
-       TMXPropertyObject,
-       TMXPropertyTile
-};
-
-/* CCTMXLayerInfo contains the information about the layers like:
- - Layer name
- - Layer size
- - Layer opacity at creation time (it can be modified at runtime)
- - Whether the layer is visible (if it's not visible, then the CocosNode won't be created)
- This information is obtained from the TMX file.
- */
-@interface CCTMXLayerInfo : NSObject
-{
-       NSString                        *name_;
-       CGSize                          layerSize_;
-       unsigned int            *tiles_;
-       BOOL                            visible_;
-       unsigned char           opacity_;
-       BOOL                            ownTiles_;
-       unsigned int            minGID_;
-       unsigned int            maxGID_;
-       NSMutableDictionary     *properties_;
-       CGPoint                         offset_;
-}
-
-@property (nonatomic,readwrite,retain) NSString *name;
-@property (nonatomic,readwrite)                        CGSize layerSize;
-@property (nonatomic,readwrite)                        unsigned int *tiles;
-@property (nonatomic,readwrite)                        BOOL visible;
-@property (nonatomic,readwrite)                        unsigned char opacity;
-@property (nonatomic,readwrite)                        BOOL ownTiles;
-@property (nonatomic,readwrite)                        unsigned int minGID;
-@property (nonatomic,readwrite)                        unsigned int maxGID;
-@property (nonatomic,readwrite,retain) NSMutableDictionary *properties;
-@property (nonatomic,readwrite)                        CGPoint offset;
-@end
-
-/* CCTMXTilesetInfo contains the information about the tilesets like:
- - Tileset name
- - Tilset spacing
- - Tileset margin
- - size of the tiles
- - Image used for the tiles
- - Image size
- This information is obtained from the TMX file. 
- */
-@interface CCTMXTilesetInfo : NSObject
-{
-       NSString                *name_;
-       unsigned int    firstGid_;
-       CGSize                  tileSize_;
-       unsigned int    spacing_;
-       unsigned int    margin_;
-       
-       // filename containing the tiles (should be spritesheet / texture atlas)
-       NSString        *sourceImage_;
-       
-       // size in pixels of the image
-       CGSize          imageSize_;
-}
-@property (nonatomic,readwrite,retain) NSString *name;
-@property (nonatomic,readwrite,assign) unsigned int firstGid;
-@property (nonatomic,readwrite,assign) CGSize tileSize;
-@property (nonatomic,readwrite,assign) unsigned int spacing;
-@property (nonatomic,readwrite,assign) unsigned int margin;
-@property (nonatomic,readwrite,retain) NSString *sourceImage;
-@property (nonatomic,readwrite,assign) CGSize imageSize;
-
--(CGRect) rectForGID:(unsigned int)gid;
-@end
-
-/* CCTMXMapInfo contains the information about the map like:
- - Map orientation (hexagonal, isometric or orthogonal)
- - Tile size
- - Map size
- And it also contains:
- - Layers (an array of TMXLayerInfo objects)
- - Tilesets (an array of TMXTilesetInfo objects)
- - ObjectGroups (an array of TMXObjectGroupInfo objects)
- This information is obtained from the TMX file.
- */
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#if defined(__IPHONE_4_0)
-@interface CCTMXMapInfo : NSObject <NSXMLParserDelegate>
-#else
-@interface CCTMXMapInfo : NSObject
-#endif
-
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-@interface CCTMXMapInfo : NSObject <NSXMLParserDelegate>
-#endif
-{      
-       NSMutableString *currentString;
-    BOOL                               storingCharacters;      
-       int                                     layerAttribs;
-       int                                     parentElement;
-       unsigned int            parentGID_;
-
-       
-       // tmx filename
-       NSString *filename_;
-
-       // map orientation
-       int     orientation_;   
-       
-       // map width & height
-       CGSize  mapSize_;
-       
-       // tiles width & height
-       CGSize  tileSize_;
-       
-       // Layers
-       NSMutableArray *layers_;
-       
-       // tilesets
-       NSMutableArray *tilesets_;
-               
-       // ObjectGroups
-       NSMutableArray *objectGroups_;
-       
-       // properties
-       NSMutableDictionary *properties_;
-       
-       // tile properties
-       NSMutableDictionary *tileProperties_;
-}
-
-@property (nonatomic,readwrite,assign) int orientation;
-@property (nonatomic,readwrite,assign) CGSize mapSize;
-@property (nonatomic,readwrite,assign) CGSize tileSize;
-@property (nonatomic,readwrite,retain) NSMutableArray *layers;
-@property (nonatomic,readwrite,retain) NSMutableArray *tilesets;
-@property (nonatomic,readwrite,retain) NSString *filename;
-@property (nonatomic,readwrite,retain) NSMutableArray *objectGroups;
-@property (nonatomic,readwrite,retain) NSMutableDictionary *properties;
-@property (nonatomic,readwrite,retain) NSMutableDictionary *tileProperties;
-
-/** creates a TMX Format with a tmx file */
-+(id) formatWithTMXFile:(NSString*)tmxFile;
-/** initializes a TMX format witha  tmx file */
--(id) initWithTMXFile:(NSString*)tmxFile;
-@end
-
diff --git a/Classes/cocos2d/CCTMXXMLParser.m b/Classes/cocos2d/CCTMXXMLParser.m
deleted file mode 100644 (file)
index 550f537..0000000
+++ /dev/null
@@ -1,444 +0,0 @@
-/*
- * cocos2d for iPhone: http://www.cocos2d-iphone.org
- *
- * Copyright (c) 2009-2010 Ricardo Quesada
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *
- * TMX Tiled Map support:
- * http://www.mapeditor.org
- *
- */
-
-
-#import <Foundation/Foundation.h>
-#include <zlib.h>
-
-#import "ccMacros.h"
-#import "Support/CGPointExtension.h"
-#import "CCTMXXMLParser.h"
-#import "CCTMXTiledMap.h"
-#import "CCTMXObjectGroup.h"
-#import "Support/base64.h"
-#import "Support/ZipUtils.h"
-#import "Support/CCFileUtils.h"
-
-#pragma mark -
-#pragma mark TMXLayerInfo
-
-
-@implementation CCTMXLayerInfo
-
-@synthesize name = name_, layerSize = layerSize_, tiles = tiles_, visible = visible_, opacity = opacity_, ownTiles = ownTiles_, minGID = minGID_, maxGID = maxGID_, properties = properties_;
-@synthesize offset = offset_;
--(id) init
-{
-       if( (self=[super init])) {
-               ownTiles_ = YES;
-               minGID_ = 100000;
-               maxGID_ = 0;
-               self.name = nil;
-               tiles_ = NULL;
-               offset_ = CGPointZero;
-               self.properties = [NSMutableDictionary dictionaryWithCapacity:5];
-       }
-       return self;
-}
-- (void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@",self);
-       
-       [name_ release];
-       [properties_ release];
-
-       if( ownTiles_ && tiles_ ) {
-               free( tiles_ );
-               tiles_ = NULL;
-       }
-       [super dealloc];
-}
-
-@end
-
-#pragma mark -
-#pragma mark TMXTilesetInfo
-@implementation CCTMXTilesetInfo
-
-@synthesize name = name_, firstGid = firstGid_, tileSize = tileSize_, spacing = spacing_, margin = margin_, sourceImage = sourceImage_, imageSize = imageSize_;
-
-- (void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-       [sourceImage_ release];
-       [name_ release];
-       [super dealloc];
-}
-
--(CGRect) rectForGID:(unsigned int)gid
-{
-       CGRect rect;
-       rect.size = tileSize_;
-       
-       gid = gid - firstGid_;
-       
-       int max_x = (imageSize_.width - margin_*2 + spacing_) / (tileSize_.width + spacing_);
-       //      int max_y = (imageSize.height - margin*2 + spacing) / (tileSize.height + spacing);
-       
-       rect.origin.x = (gid % max_x) * (tileSize_.width + spacing_) + margin_;
-       rect.origin.y = (gid / max_x) * (tileSize_.height + spacing_) + margin_;
-       
-       return rect;
-}
-@end
-
-#pragma mark -
-#pragma mark CCTMXMapInfo
-
-@interface CCTMXMapInfo (Private)
-/* initalises parsing of an XML file, either a tmx (Map) file or tsx (Tileset) file */
--(void) parseXMLFile:(NSString *)xmlFilename;
-@end
-
-
-@implementation CCTMXMapInfo
-
-@synthesize orientation = orientation_, mapSize = mapSize_, layers = layers_, tilesets = tilesets_, tileSize = tileSize_, filename = filename_, objectGroups = objectGroups_, properties = properties_;
-@synthesize tileProperties = tileProperties_;
-
-+(id) formatWithTMXFile:(NSString*)tmxFile
-{
-       return [[[self alloc] initWithTMXFile:tmxFile] autorelease];
-}
-
--(id) initWithTMXFile:(NSString*)tmxFile
-{
-       if( (self=[super init])) {
-               
-               self.tilesets = [NSMutableArray arrayWithCapacity:4];
-               self.layers = [NSMutableArray arrayWithCapacity:4];
-               self.filename = tmxFile;
-               self.objectGroups = [NSMutableArray arrayWithCapacity:4];
-               self.properties = [NSMutableDictionary dictionaryWithCapacity:5];
-               self.tileProperties = [NSMutableDictionary dictionaryWithCapacity:5];
-       
-               // tmp vars
-               currentString = [[NSMutableString alloc] initWithCapacity:1024];
-               storingCharacters = NO;
-               layerAttribs = TMXLayerAttribNone;
-               parentElement = TMXPropertyNone;
-               
-               [self parseXMLFile:filename_];          
-       }
-       return self;
-}
-- (void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-       [tilesets_ release];
-       [layers_ release];
-       [filename_ release];
-       [currentString release];
-       [objectGroups_ release];
-       [properties_ release];
-       [tileProperties_ release];
-       [super dealloc];
-}
-
-- (void) parseXMLFile:(NSString *)xmlFilename
-{
-       NSURL *url = [NSURL fileURLWithPath:[CCFileUtils fullPathFromRelativePath:xmlFilename] ];
-       NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
-
-       // we'll do the parsing
-       [parser setDelegate:self];
-       [parser setShouldProcessNamespaces:NO];
-       [parser setShouldReportNamespacePrefixes:NO];
-       [parser setShouldResolveExternalEntities:NO];
-       [parser parse];
-
-       NSAssert1( ! [parser parserError], @"Error parsing file: %@.", xmlFilename );
-
-       [parser release];
-}
-
-// the XML parser calls here with all the elements
--(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
-{      
-       if([elementName isEqualToString:@"map"]) {
-               NSString *version = [attributeDict valueForKey:@"version"];
-               if( ! [version isEqualToString:@"1.0"] )
-                       CCLOG(@"cocos2d: TMXFormat: Unsupported TMX version: %@", version);
-               NSString *orientationStr = [attributeDict valueForKey:@"orientation"];
-               if( [orientationStr isEqualToString:@"orthogonal"])
-                       orientation_ = CCTMXOrientationOrtho;
-               else if ( [orientationStr isEqualToString:@"isometric"])
-                       orientation_ = CCTMXOrientationIso;
-               else if( [orientationStr isEqualToString:@"hexagonal"])
-                       orientation_ = CCTMXOrientationHex;
-               else
-                       CCLOG(@"cocos2d: TMXFomat: Unsupported orientation: %@", orientation_);
-
-               mapSize_.width = [[attributeDict valueForKey:@"width"] intValue];
-               mapSize_.height = [[attributeDict valueForKey:@"height"] intValue];
-               tileSize_.width = [[attributeDict valueForKey:@"tilewidth"] intValue];
-               tileSize_.height = [[attributeDict valueForKey:@"tileheight"] intValue];
-
-               // The parent element is now "map"
-               parentElement = TMXPropertyMap;
-       } else if([elementName isEqualToString:@"tileset"]) {
-               
-               // If this is an external tileset then start parsing that
-               NSString *externalTilesetFilename = [attributeDict valueForKey:@"source"];
-               if (externalTilesetFilename) {
-                               // Tileset file will be relative to the map file. So we need to convert it to an absolute path
-                               NSString *dir = [filename_ stringByDeletingLastPathComponent];  // Directory of map file
-                               externalTilesetFilename = [dir stringByAppendingPathComponent:externalTilesetFilename]; // Append path to tileset file
-                               
-                               [self parseXMLFile:externalTilesetFilename];
-               } else {
-                               
-                       CCTMXTilesetInfo *tileset = [CCTMXTilesetInfo new];
-                       tileset.name = [attributeDict valueForKey:@"name"];
-                       tileset.firstGid = [[attributeDict valueForKey:@"firstgid"] intValue];
-                       tileset.spacing = [[attributeDict valueForKey:@"spacing"] intValue];
-                       tileset.margin = [[attributeDict valueForKey:@"margin"] intValue];
-                       CGSize s;
-                       s.width = [[attributeDict valueForKey:@"tilewidth"] intValue];
-                       s.height = [[attributeDict valueForKey:@"tileheight"] intValue];
-                       tileset.tileSize = s;
-                       
-                       [tilesets_ addObject:tileset];
-                       [tileset release];
-               }
-
-       }else if([elementName isEqualToString:@"tile"]){
-               CCTMXTilesetInfo* info = [tilesets_ lastObject];
-               NSMutableDictionary* dict = [NSMutableDictionary dictionaryWithCapacity:3];
-               parentGID_ =  [info firstGid] + [[attributeDict valueForKey:@"id"] intValue];
-               [tileProperties_ setObject:dict forKey:[NSNumber numberWithInt:parentGID_]];
-               
-               parentElement = TMXPropertyTile;
-               
-       }else if([elementName isEqualToString:@"layer"]) {
-               CCTMXLayerInfo *layer = [CCTMXLayerInfo new];
-               layer.name = [attributeDict valueForKey:@"name"];
-               
-               CGSize s;
-               s.width = [[attributeDict valueForKey:@"width"] intValue];
-               s.height = [[attributeDict valueForKey:@"height"] intValue];
-               layer.layerSize = s;
-               
-               layer.visible = ![[attributeDict valueForKey:@"visible"] isEqualToString:@"0"];
-               
-               if( [attributeDict valueForKey:@"opacity"] )
-                       layer.opacity = 255 * [[attributeDict valueForKey:@"opacity"] floatValue];
-               else
-                       layer.opacity = 255;
-               
-               int x = [[attributeDict valueForKey:@"x"] intValue];
-               int y = [[attributeDict valueForKey:@"y"] intValue];
-               layer.offset = ccp(x,y);
-               
-               [layers_ addObject:layer];
-               [layer release];
-               
-               // The parent element is now "layer"
-               parentElement = TMXPropertyLayer;
-       
-       } else if([elementName isEqualToString:@"objectgroup"]) {
-               
-               CCTMXObjectGroup *objectGroup = [[CCTMXObjectGroup alloc] init];
-               objectGroup.groupName = [attributeDict valueForKey:@"name"];
-               CGPoint positionOffset;
-               positionOffset.x = [[attributeDict valueForKey:@"x"] intValue] * tileSize_.width;
-               positionOffset.y = [[attributeDict valueForKey:@"y"] intValue] * tileSize_.height;
-               objectGroup.positionOffset = positionOffset;
-               
-               [objectGroups_ addObject:objectGroup];
-               [objectGroup release];
-               
-               // The parent element is now "objectgroup"
-               parentElement = TMXPropertyObjectGroup;
-                       
-       } else if([elementName isEqualToString:@"image"]) {
-
-               CCTMXTilesetInfo *tileset = [tilesets_ lastObject];
-               
-               // build full path
-               NSString *imagename = [attributeDict valueForKey:@"source"];            
-               NSString *path = [filename_ stringByDeletingLastPathComponent];         
-               tileset.sourceImage = [path stringByAppendingPathComponent:imagename];
-
-       } else if([elementName isEqualToString:@"data"]) {
-               NSString *encoding = [attributeDict valueForKey:@"encoding"];
-               NSString *compression = [attributeDict valueForKey:@"compression"];
-               
-               if( [encoding isEqualToString:@"base64"] ) {
-                       layerAttribs |= TMXLayerAttribBase64;
-                       storingCharacters = YES;
-                       
-                       if( [compression isEqualToString:@"gzip"] )
-                               layerAttribs |= TMXLayerAttribGzip;
-                       
-                       NSAssert( !compression || [compression isEqualToString:@"gzip"], @"TMX: unsupported compression method" );
-               }
-               
-               NSAssert( layerAttribs != TMXLayerAttribNone, @"TMX tile map: Only base64 and/or gzip maps are supported" );
-               
-       } else if([elementName isEqualToString:@"object"]) {
-       
-               CCTMXObjectGroup *objectGroup = [objectGroups_ lastObject];
-               
-               // The value for "type" was blank or not a valid class name
-               // Create an instance of TMXObjectInfo to store the object and its properties
-               NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:5];
-               
-               // Set the name of the object to the value for "name"
-               [dict setValue:[attributeDict valueForKey:@"name"] forKey:@"name"];
-               
-               // Assign all the attributes as key/name pairs in the properties dictionary
-               [dict setValue:[attributeDict valueForKey:@"type"] forKey:@"type"];
-               int x = [[attributeDict valueForKey:@"x"] intValue] + objectGroup.positionOffset.x;
-               [dict setValue:[NSNumber numberWithInt:x] forKey:@"x"];
-               int y = [[attributeDict valueForKey:@"y"] intValue] + objectGroup.positionOffset.y;
-               // Correct y position. (Tiled uses Flipped, cocos2d uses Standard)
-               y = (mapSize_.height * tileSize_.height) - y - [[attributeDict valueForKey:@"height"] intValue];
-               [dict setValue:[NSNumber numberWithInt:y] forKey:@"y"];
-               [dict setValue:[attributeDict valueForKey:@"width"] forKey:@"width"];
-               [dict setValue:[attributeDict valueForKey:@"height"] forKey:@"height"];
-               
-               // Add the object to the objectGroup
-               [[objectGroup objects] addObject:dict];
-               [dict release];
-               
-               // The parent element is now "object"
-               parentElement = TMXPropertyObject;
-               
-       } else if([elementName isEqualToString:@"property"]) {
-       
-               if ( parentElement == TMXPropertyNone ) {
-               
-                       CCLOG( @"TMX tile map: Parent element is unsupported. Cannot add property named '%@' with value '%@'",
-                       [attributeDict valueForKey:@"name"], [attributeDict valueForKey:@"value"] );
-                       
-               } else if ( parentElement == TMXPropertyMap ) {
-               
-                       // The parent element is the map
-                       [properties_ setValue:[attributeDict valueForKey:@"value"] forKey:[attributeDict valueForKey:@"name"]];
-                       
-               } else if ( parentElement == TMXPropertyLayer ) {
-               
-                       // The parent element is the last layer
-                       CCTMXLayerInfo *layer = [layers_ lastObject];
-                       // Add the property to the layer
-                       [[layer properties] setValue:[attributeDict valueForKey:@"value"] forKey:[attributeDict valueForKey:@"name"]];
-                       
-               } else if ( parentElement == TMXPropertyObjectGroup ) {
-                       
-                       // The parent element is the last object group
-                       CCTMXObjectGroup *objectGroup = [objectGroups_ lastObject];
-                       [[objectGroup properties] setValue:[attributeDict valueForKey:@"value"] forKey:[attributeDict valueForKey:@"name"]];
-                       
-               } else if ( parentElement == TMXPropertyObject ) {
-                       
-                       // The parent element is the last object
-                       CCTMXObjectGroup *objectGroup = [objectGroups_ lastObject];
-                       NSMutableDictionary *dict = [[objectGroup objects] lastObject];
-                       
-                       NSString *propertyName = [attributeDict valueForKey:@"name"];
-                       NSString *propertyValue = [attributeDict valueForKey:@"value"];
-
-                       [dict setValue:propertyValue forKey:propertyName];
-               } else if ( parentElement == TMXPropertyTile ) {
-                       
-                       NSMutableDictionary* dict = [tileProperties_ objectForKey:[NSNumber numberWithInt:parentGID_]];
-                       NSString *propertyName = [attributeDict valueForKey:@"name"];
-                       NSString *propertyValue = [attributeDict valueForKey:@"value"];
-                       [dict setObject:propertyValue forKey:propertyName];
-                       
-               }
-       }
-}
-
-- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
-{
-       int len = 0;
-
-       if([elementName isEqualToString:@"data"] && layerAttribs&TMXLayerAttribBase64) {
-               storingCharacters = NO;
-               
-               CCTMXLayerInfo *layer = [layers_ lastObject];
-               
-               unsigned char *buffer;
-               len = base64Decode((unsigned char*)[currentString UTF8String], [currentString length], &buffer);
-               if( ! buffer ) {
-                       CCLOG(@"cocos2d: TiledMap: decode data error");
-                       return;
-               }
-               
-               if( layerAttribs & TMXLayerAttribGzip ) {
-                       unsigned char *deflated;
-                       ccInflateMemory(buffer, len, &deflated);
-                       free( buffer );
-                       
-                       if( ! deflated ) {
-                               CCLOG(@"cocos2d: TiledMap: inflate data error");
-                               return;
-                       }
-                       
-                       layer.tiles = (unsigned int*) deflated;
-               } else
-                       layer.tiles = (unsigned int*) buffer;
-               
-               [currentString setString:@""];
-                       
-       } else if ([elementName isEqualToString:@"map"]) {
-               // The map element has ended
-               parentElement = TMXPropertyNone;
-               
-       }       else if ([elementName isEqualToString:@"layer"]) {
-               // The layer element has ended
-               parentElement = TMXPropertyNone;
-               
-       } else if ([elementName isEqualToString:@"objectgroup"]) {
-               // The objectgroup element has ended
-               parentElement = TMXPropertyNone;
-               
-       } else if ([elementName isEqualToString:@"object"]) {
-               // The object element has ended
-               parentElement = TMXPropertyNone;
-       }
-}
-
-- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
-{
-    if (storingCharacters)
-               [currentString appendString:string];
-}
-
-
-//
-// the level did not load, file not found, etc.
-//
--(void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError{
-       CCLOG(@"cocos2d: Error on XML Parse: %@", [parseError localizedDescription] );
-}
-
-@end
diff --git a/Classes/cocos2d/CCTexture2D.h b/Classes/cocos2d/CCTexture2D.h
deleted file mode 100644 (file)
index 7f606f5..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
-
-===== IMPORTANT =====
-
-This is sample code demonstrating API, technology or techniques in development.
-Although this sample code has been reviewed for technical accuracy, it is not
-final. Apple is supplying this information to help you plan for the adoption of
-the technologies and programming interfaces described herein. This information
-is subject to change, and software implemented based on this sample code should
-be tested with final operating system software and final documentation. Newer
-versions of this sample code may be provided with future seeds of the API or
-technology. For information about updates to this and other developer
-documentation, view the New & Updated sidebars in subsequent documentation
-seeds.
-
-=====================
-
-File: Texture2D.h
-Abstract: Creates OpenGL 2D textures from images or text.
-
-Version: 1.6
-
-Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple Inc.
-("Apple") in consideration of your agreement to the following terms, and your
-use, installation, modification or redistribution of this Apple software
-constitutes acceptance of these terms.  If you do not agree with these terms,
-please do not use, install, modify or redistribute this Apple software.
-
-In consideration of your agreement to abide by the following terms, and subject
-to these terms, Apple grants you a personal, non-exclusive license, under
-Apple's copyrights in this original Apple software (the "Apple Software"), to
-use, reproduce, modify and redistribute the Apple Software, with or without
-modifications, in source and/or binary forms; provided that if you redistribute
-the Apple Software in its entirety and without modifications, you must retain
-this notice and the following text and disclaimers in all such redistributions
-of the Apple Software.
-Neither the name, trademarks, service marks or logos of Apple Inc. may be used
-to endorse or promote products derived from the Apple Software without specific
-prior written permission from Apple.  Except as expressly stated in this notice,
-no other rights or licenses, express or implied, are granted by Apple herein,
-including but not limited to any patent rights that may be infringed by your
-derivative works or by other works in which the Apple Software may be
-incorporated.
-
-The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO
-WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
-WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
-COMBINATION WITH YOUR PRODUCTS.
-
-IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR
-DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF
-CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF
-APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Copyright (C) 2008 Apple Inc. All Rights Reserved.
-
-*/
-
-#import <Availability.h>
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-#import <UIKit/UIKit.h>                        // for UIImage
-#endif
-
-#import <Foundation/Foundation.h> //   for NSObject
-
-#import "Platforms/CCGL.h" // OpenGL stuff
-#import "Platforms/CCNS.h" // Next-Step stuff
-
-//CONSTANTS:
-
-/** @typedef CCTexture2DPixelFormat
- Possible texture pixel formats
- */
-typedef enum {
-       kCCTexture2DPixelFormat_Automatic = 0,
-       //! 32-bit texture: RGBA8888
-       kCCTexture2DPixelFormat_RGBA8888,
-       //! 16-bit texture without Alpha channel
-       kCCTexture2DPixelFormat_RGB565,
-       //! 8-bit textures used as masks
-       kCCTexture2DPixelFormat_A8,
-       //! 16-bit textures: RGBA4444
-       kCCTexture2DPixelFormat_RGBA4444,
-       //! 16-bit textures: RGB5A1
-       kCCTexture2DPixelFormat_RGB5A1, 
-
-       //! Default texture format: RGBA8888
-       kCCTexture2DPixelFormat_Default = kCCTexture2DPixelFormat_RGBA8888,
-
-       // backward compatibility stuff
-       kTexture2DPixelFormat_Automatic = kCCTexture2DPixelFormat_Automatic,
-       kTexture2DPixelFormat_RGBA8888 = kCCTexture2DPixelFormat_RGBA8888,
-       kTexture2DPixelFormat_RGB565 = kCCTexture2DPixelFormat_RGB565,
-       kTexture2DPixelFormat_A8 = kCCTexture2DPixelFormat_A8,
-       kTexture2DPixelFormat_RGBA4444 = kCCTexture2DPixelFormat_RGBA4444,
-       kTexture2DPixelFormat_RGB5A1 = kCCTexture2DPixelFormat_RGB5A1,
-       kTexture2DPixelFormat_Default = kCCTexture2DPixelFormat_Default
-       
-} CCTexture2DPixelFormat;
-
-//CLASS INTERFACES:
-
-/** CCTexture2D class.
- * This class allows to easily create OpenGL 2D textures from images, text or raw data.
- * The created CCTexture2D object will always have power-of-two dimensions. 
- * Depending on how you create the CCTexture2D object, the actual image area of the texture might be smaller than the texture dimensions i.e. "contentSize" != (pixelsWide, pixelsHigh) and (maxS, maxT) != (1.0, 1.0).
- * Be aware that the content of the generated textures will be upside-down!
- */
-@interface CCTexture2D : NSObject
-{
-       GLuint                                          name_;
-       CGSize                                          size_;
-       NSUInteger                                      width_,
-                                                               height_;
-       CCTexture2DPixelFormat          format_;
-       GLfloat                                         maxS_,
-                                                               maxT_;
-       BOOL                                            hasPremultipliedAlpha_;
-}
-/** Intializes with a texture2d with data */
-- (id) initWithData:(const void*)data pixelFormat:(CCTexture2DPixelFormat)pixelFormat pixelsWide:(NSUInteger)width pixelsHigh:(NSUInteger)height contentSize:(CGSize)size;
-
-/** These functions are needed to create mutable textures */
-- (void) releaseData:(void*)data;
-- (void*) keepData:(void*)data length:(NSUInteger)length;
-
-/** pixel format of the texture */
-@property(nonatomic,readonly) CCTexture2DPixelFormat pixelFormat;
-/** width in pixels */
-@property(nonatomic,readonly) NSUInteger pixelsWide;
-/** hight in pixels */
-@property(nonatomic,readonly) NSUInteger pixelsHigh;
-
-/** texture name */
-@property(nonatomic,readonly) GLuint name;
-
-/** returns content size of the texture in pixels */
-@property(nonatomic,readonly, nonatomic) CGSize contentSizeInPixels;
-
-/** texture max S */
-@property(nonatomic,readwrite) GLfloat maxS;
-/** texture max T */
-@property(nonatomic,readwrite) GLfloat maxT;
-/** whether or not the texture has their Alpha premultiplied */
-@property(nonatomic,readonly) BOOL hasPremultipliedAlpha;
-
-/** returns the content size of the texture in points */
--(CGSize) contentSize;
-@end
-
-/**
-Drawing extensions to make it easy to draw basic quads using a CCTexture2D object.
-These functions require GL_TEXTURE_2D and both GL_VERTEX_ARRAY and GL_TEXTURE_COORD_ARRAY client states to be enabled.
-*/
-@interface CCTexture2D (Drawing)
-/** draws a texture at a given point */
-- (void) drawAtPoint:(CGPoint)point;
-/** draws a texture inside a rect */
-- (void) drawInRect:(CGRect)rect;
-@end
-
-/**
-Extensions to make it easy to create a CCTexture2D object from an image file.
-Note that RGBA type textures will have their alpha premultiplied - use the blending mode (GL_ONE, GL_ONE_MINUS_SRC_ALPHA).
-*/
-@interface CCTexture2D (Image)
-/** Initializes a texture from a UIImage object */
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-- (id) initWithImage:(UIImage *)uiImage;
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-- (id) initWithImage:(CGImageRef)cgImage;
-#endif
-@end
-
-/**
-Extensions to make it easy to create a CCTexture2D object from a string of text.
-Note that the generated textures are of type A8 - use the blending mode (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA).
-*/
-@interface CCTexture2D (Text)
-/** Initializes a texture from a string with dimensions, alignment, font name and font size */
-- (id) initWithString:(NSString*)string dimensions:(CGSize)dimensions alignment:(CCTextAlignment)alignment fontName:(NSString*)name fontSize:(CGFloat)size;
-/** Initializes a texture from a string with font name and font size */
-- (id) initWithString:(NSString*)string fontName:(NSString*)name fontSize:(CGFloat)size;
-@end
-
-
-/**
- Extensions to make it easy to create a CCTexture2D object from a PVRTC file
- Note that the generated textures don't have their alpha premultiplied - use the blending mode (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA).
- */
-@interface CCTexture2D (PVRSupport)
-/** Initializes a texture from a PVR Texture Compressed (PVRTC) buffer
- *
- * IMPORTANT: This method is only defined on iOS. It is not supported on the Mac version.
- */
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
--(id) initWithPVRTCData: (const void*)data level:(int)level bpp:(int)bpp hasAlpha:(BOOL)hasAlpha length:(int)length;
-#endif // __IPHONE_OS_VERSION_MAX_ALLOWED
-/** Initializes a texture from a PVR file.
- Supported PVR formats:
- - BGRA 8888
- - RGBA 8888
- - RGBA 4444
- - RGBA 5551
- - RBG 565
- - A 8
- - I 8
- - AI 8
- - PVRTC 2BPP
- - PVRTC 4BPP
- By default PVR images are treated as if they alpha channel is NOT premultiplied. You can override this behavior with this class method:
- - PVRImagesHavePremultipliedAlpha:(BOOL)haveAlphaPremultiplied;
- IMPORTANT: This method is only defined on iOS. It is not supported on the Mac version.
- */
--(id) initWithPVRFile: (NSString*) file;
-
-/** treats (or not) PVR files as if they have alpha premultiplied.
- Since it is impossible to know at runtime if the PVR images have the alpha channel premultiplied, it is
- possible load them as if they have (or not) the alpha channel premultiplied.
- By default it is disabled.
- @since v0.99.5
- */
-+(void) PVRImagesHavePremultipliedAlpha:(BOOL)haveAlphaPremultiplied;
-@end
-
-/**
- Extension to set the Min / Mag filter
- */
-typedef struct _ccTexParams {
-       GLuint  minFilter;
-       GLuint  magFilter;
-       GLuint  wrapS;
-       GLuint  wrapT;
-} ccTexParams;
-
-@interface CCTexture2D (GLFilter)
-/** sets the min filter, mag filter, wrap s and wrap t texture parameters.
- If the texture size is NPOT (non power of 2), then in can only use GL_CLAMP_TO_EDGE in GL_TEXTURE_WRAP_{S,T}.
- @since v0.8
- */
--(void) setTexParameters: (ccTexParams*) texParams;
-
-/** sets antialias texture parameters:
-  - GL_TEXTURE_MIN_FILTER = GL_LINEAR
-  - GL_TEXTURE_MAG_FILTER = GL_LINEAR
-
- @since v0.8
- */
-- (void) setAntiAliasTexParameters;
-
-/** sets alias texture parameters:
-  - GL_TEXTURE_MIN_FILTER = GL_NEAREST
-  - GL_TEXTURE_MAG_FILTER = GL_NEAREST
- @since v0.8
- */
-- (void) setAliasTexParameters;
-
-
-/** Generates mipmap images for the texture.
- It only works if the texture size is POT (power of 2).
- @since v0.99.0
- */
--(void) generateMipmap;
-
-
-@end
-
-@interface CCTexture2D (PixelFormat)
-/** sets the default pixel format for UIImages that contains alpha channel.
- If the UIImage contains alpha channel, then the options are:
-       - generate 32-bit textures: kCCTexture2DPixelFormat_RGBA8888 (default one)
-       - generate 16-bit textures: kCCTexture2DPixelFormat_RGBA4444
-       - generate 16-bit textures: kCCTexture2DPixelFormat_RGB5A1
-       - generate 16-bit textures: kCCTexture2DPixelFormat_RGB565
-       - generate 8-bit textures: kCCTexture2DPixelFormat_A8 (only use it if you use just 1 color)
-
- How does it work ?
-   - If the image is an RGBA (with Alpha) then the default pixel format will be used (it can be a 8-bit, 16-bit or 32-bit texture)
-   - If the image is an RGB (without Alpha) then an RGB565 texture will be used (16-bit texture)
- This parameter is not valid for PVR images.
- @since v0.8
- */
-+(void) setDefaultAlphaPixelFormat:(CCTexture2DPixelFormat)format;
-
-/** returns the alpha pixel format
- @since v0.8
- */
-+(CCTexture2DPixelFormat) defaultAlphaPixelFormat;
-@end
-
-
-
-
-
diff --git a/Classes/cocos2d/CCTexture2D.m b/Classes/cocos2d/CCTexture2D.m
deleted file mode 100644 (file)
index 4fe1568..0000000
+++ /dev/null
@@ -1,754 +0,0 @@
-/*
-
-===== IMPORTANT =====
-
-This is sample code demonstrating API, technology or techniques in development.
-Although this sample code has been reviewed for technical accuracy, it is not
-final. Apple is supplying this information to help you plan for the adoption of
-the technologies and programming interfaces described herein. This information
-is subject to change, and software implemented based on this sample code should
-be tested with final operating system software and final documentation. Newer
-versions of this sample code may be provided with future seeds of the API or
-technology. For information about updates to this and other developer
-documentation, view the New & Updated sidebars in subsequent documentationd
-seeds.
-
-=====================
-
-File: Texture2D.m
-Abstract: Creates OpenGL 2D textures from images or text.
-
-Version: 1.6
-
-Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple Inc.
-("Apple") in consideration of your agreement to the following terms, and your
-use, installation, modification or redistribution of this Apple software
-constitutes acceptance of these terms.  If you do not agree with these terms,
-please do not use, install, modify or redistribute this Apple software.
-
-In consideration of your agreement to abide by the following terms, and subject
-to these terms, Apple grants you a personal, non-exclusive license, under
-Apple's copyrights in this original Apple software (the "Apple Software"), to
-use, reproduce, modify and redistribute the Apple Software, with or without
-modifications, in source and/or binary forms; provided that if you redistribute
-the Apple Software in its entirety and without modifications, you must retain
-this notice and the following text and disclaimers in all such redistributions
-of the Apple Software.
-Neither the name, trademarks, service marks or logos of Apple Inc. may be used
-to endorse or promote products derived from the Apple Software without specific
-prior written permission from Apple.  Except as expressly stated in this notice,
-no other rights or licenses, express or implied, are granted by Apple herein,
-including but not limited to any patent rights that may be infringed by your
-derivative works or by other works in which the Apple Software may be
-incorporated.
-
-The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO
-WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
-WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
-COMBINATION WITH YOUR PRODUCTS.
-
-IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR
-DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF
-CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF
-APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Copyright (C) 2008 Apple Inc. All Rights Reserved.
-
-*/
-
-/*
- * Support for RGBA_4_4_4_4 and RGBA_5_5_5_1 was copied from:
- * https://devforums.apple.com/message/37855#37855 by a1studmuffin
- */
-
-
-#import <Availability.h>
-
-#import "Platforms/CCGL.h"
-#import "Platforms/CCNS.h"
-
-
-#import "CCTexture2D.h"
-#import "ccConfig.h"
-#import "ccMacros.h"
-#import "CCConfiguration.h"
-#import "Support/ccUtils.h"
-#import "CCTexturePVR.h"
-
-#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && CC_FONT_LABEL_SUPPORT
-// FontLabel support
-#import "FontManager.h"
-#import "FontLabelStringDrawing.h"
-#endif// CC_FONT_LABEL_SUPPORT
-
-
-// For Labels use 32-bit textures on iPhone 3GS / iPads since A8 textures are very slow
-#if defined(__ARM_NEON__) && CC_USE_RGBA32_LABELS_ON_NEON_ARCH
-#define USE_TEXT_WITH_A8_TEXTURES 0
-
-#else
-#define USE_TEXT_WITH_A8_TEXTURES 1
-#endif
-
-//CLASS IMPLEMENTATIONS:
-
-
-// If the image has alpha, you can create RGBA8 (32-bit) or RGBA4 (16-bit) or RGB5A1 (16-bit)
-// Default is: RGBA8888 (32-bit textures)
-static CCTexture2DPixelFormat defaultAlphaPixelFormat_ = kCCTexture2DPixelFormat_Default;
-
-#pragma mark -
-#pragma mark CCTexture2D - Main
-
-@implementation CCTexture2D
-
-@synthesize contentSizeInPixels = size_, pixelFormat = format_, pixelsWide = width_, pixelsHigh = height_, name = name_, maxS = maxS_, maxT = maxT_;
-@synthesize hasPremultipliedAlpha = hasPremultipliedAlpha_;
-
-- (id) initWithData:(const void*)data pixelFormat:(CCTexture2DPixelFormat)pixelFormat pixelsWide:(NSUInteger)width pixelsHigh:(NSUInteger)height contentSize:(CGSize)size
-{
-       if((self = [super init])) {
-               glGenTextures(1, &name_);
-               glBindTexture(GL_TEXTURE_2D, name_);
-
-               [self setAntiAliasTexParameters];
-               
-               // Specify OpenGL texture image
-               
-               switch(pixelFormat)
-               {
-                       case kCCTexture2DPixelFormat_RGBA8888:
-                               glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
-                               break;
-                       case kCCTexture2DPixelFormat_RGBA4444:
-                               glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, data);
-                               break;
-                       case kCCTexture2DPixelFormat_RGB5A1:
-                               glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, data);
-                               break;
-                       case kCCTexture2DPixelFormat_RGB565:
-                               glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, data);
-                               break;
-                       case kCCTexture2DPixelFormat_A8:
-                               glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, width, height, 0, GL_ALPHA, GL_UNSIGNED_BYTE, data);
-                               break;
-                       default:
-                               [NSException raise:NSInternalInconsistencyException format:@""];
-                               
-               }
-
-               size_ = size;
-               width_ = width;
-               height_ = height;
-               format_ = pixelFormat;
-               maxS_ = size.width / (float)width;
-               maxT_ = size.height / (float)height;
-
-               hasPremultipliedAlpha_ = NO;
-       }                                       
-       return self;
-}
-
-- (void) releaseData:(void*)data
-{
-       //Free data
-       free(data);
-}
-
-- (void*) keepData:(void*)data length:(NSUInteger)length
-{
-       //The texture data mustn't be saved becuase it isn't a mutable texture.
-       return data;
-}
-
-- (void) dealloc
-{
-       CCLOGINFO(@"cocos2d: deallocing %@", self);
-       if(name_)
-               glDeleteTextures(1, &name_);
-       
-       [super dealloc];
-}
-
-- (NSString*) description
-{
-       return [NSString stringWithFormat:@"<%@ = %08X | Name = %i | Dimensions = %ix%i | Coordinates = (%.2f, %.2f)>", [self class], self, name_, width_, height_, maxS_, maxT_];
-}
-
--(CGSize) contentSize
-{
-       CGSize ret;
-       ret.width = size_.width / CC_CONTENT_SCALE_FACTOR();
-       ret.height = size_.height / CC_CONTENT_SCALE_FACTOR();
-       
-       return ret;
-}
-@end
-
-#pragma mark -
-#pragma mark CCTexture2D - Image
-
-@implementation CCTexture2D (Image)
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-- (id) initWithImage:(UIImage *)uiImage
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-- (id) initWithImage:(CGImageRef)CGImage
-#endif
-{
-       NSUInteger                              POTWide, POTHigh;
-       CGContextRef                    context = nil;
-       void*                                   data = nil;;
-       CGColorSpaceRef                 colorSpace;
-       void*                                   tempData;
-       unsigned int*                   inPixel32;
-       unsigned short*                 outPixel16;
-       BOOL                                    hasAlpha;
-       CGImageAlphaInfo                info;
-       CGSize                                  imageSize;
-       CCTexture2DPixelFormat  pixelFormat;
-       
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-       CGImageRef      CGImage = uiImage.CGImage;
-#endif
-       
-       if(CGImage == NULL) {
-               CCLOG(@"cocos2d: CCTexture2D. Can't create Texture. UIImage is nil");
-               [self release];
-               return nil;
-       }
-       
-       CCConfiguration *conf = [CCConfiguration sharedConfiguration];
-
-#if CC_TEXTURE_NPOT_SUPPORT
-       if( [conf supportsNPOT] ) {
-               POTWide = CGImageGetWidth(CGImage);
-               POTHigh = CGImageGetHeight(CGImage);
-
-       } else 
-#endif
-       {
-               POTWide = ccNextPOT(CGImageGetWidth(CGImage));
-               POTHigh = ccNextPOT(CGImageGetHeight(CGImage));
-       }
-               
-       NSUInteger maxTextureSize = [conf maxTextureSize];
-       if( POTHigh > maxTextureSize || POTWide > maxTextureSize ) {
-               CCLOG(@"cocos2d: WARNING: Image (%d x %d) is bigger than the supported %d x %d",
-                         (unsigned int)POTWide, (unsigned int)POTHigh,
-                         (unsigned int)maxTextureSize, (unsigned int)maxTextureSize);
-               [self release];
-               return nil;
-       }
-       
-       info = CGImageGetAlphaInfo(CGImage);
-       hasAlpha = ((info == kCGImageAlphaPremultipliedLast) || (info == kCGImageAlphaPremultipliedFirst) || (info == kCGImageAlphaLast) || (info == kCGImageAlphaFirst) ? YES : NO);
-       
-       size_t bpp = CGImageGetBitsPerComponent(CGImage);
-       colorSpace = CGImageGetColorSpace(CGImage);
-
-       if(colorSpace) {
-               if(hasAlpha || bpp >= 8)
-                       pixelFormat = defaultAlphaPixelFormat_;
-               else {
-                       CCLOG(@"cocos2d: CCTexture2D: Using RGB565 texture since image has no alpha");
-                       pixelFormat = kCCTexture2DPixelFormat_RGB565;
-               }
-       } else {
-               // NOTE: No colorspace means a mask image
-               CCLOG(@"cocos2d: CCTexture2D: Using A8 texture since image is a mask");
-               pixelFormat = kCCTexture2DPixelFormat_A8;
-       }
-       
-       imageSize = CGSizeMake(CGImageGetWidth(CGImage), CGImageGetHeight(CGImage));
-
-       // Create the bitmap graphics context
-       
-       switch(pixelFormat) {          
-               case kCCTexture2DPixelFormat_RGBA8888:
-               case kCCTexture2DPixelFormat_RGBA4444:
-               case kCCTexture2DPixelFormat_RGB5A1:
-                       colorSpace = CGColorSpaceCreateDeviceRGB();
-                       data = malloc(POTHigh * POTWide * 4);
-                       info = hasAlpha ? kCGImageAlphaPremultipliedLast : kCGImageAlphaNoneSkipLast; 
-//                     info = kCGImageAlphaPremultipliedLast;  // issue #886. This patch breaks BMP images.
-                       context = CGBitmapContextCreate(data, POTWide, POTHigh, 8, 4 * POTWide, colorSpace, info | kCGBitmapByteOrder32Big);                            
-                       CGColorSpaceRelease(colorSpace);
-                       break;
-
-               case kCCTexture2DPixelFormat_RGB565:
-                       colorSpace = CGColorSpaceCreateDeviceRGB();
-                       data = malloc(POTHigh * POTWide * 4);
-                       info = kCGImageAlphaNoneSkipLast;
-                       context = CGBitmapContextCreate(data, POTWide, POTHigh, 8, 4 * POTWide, colorSpace, info | kCGBitmapByteOrder32Big);
-                       CGColorSpaceRelease(colorSpace);
-                       break;
-               case kCCTexture2DPixelFormat_A8:
-                       data = malloc(POTHigh * POTWide);
-                       info = kCGImageAlphaOnly; 
-                       context = CGBitmapContextCreate(data, POTWide, POTHigh, 8, POTWide, NULL, info);
-                       break;                    
-               default:
-                       [NSException raise:NSInternalInconsistencyException format:@"Invalid pixel format"];
-       }
-       
-       
-       CGContextClearRect(context, CGRectMake(0, 0, POTWide, POTHigh));
-       CGContextTranslateCTM(context, 0, POTHigh - imageSize.height);
-       CGContextDrawImage(context, CGRectMake(0, 0, CGImageGetWidth(CGImage), CGImageGetHeight(CGImage)), CGImage);
-       
-       // Repack the pixel data into the right format
-       
-       if(pixelFormat == kCCTexture2DPixelFormat_RGB565) {
-               //Convert "RRRRRRRRRGGGGGGGGBBBBBBBBAAAAAAAA" to "RRRRRGGGGGGBBBBB"
-               tempData = malloc(POTHigh * POTWide * 2);
-               inPixel32 = (unsigned int*)data;
-               outPixel16 = (unsigned short*)tempData;
-               for(unsigned int i = 0; i < POTWide * POTHigh; ++i, ++inPixel32)
-                       *outPixel16++ = ((((*inPixel32 >> 0) & 0xFF) >> 3) << 11) | ((((*inPixel32 >> 8) & 0xFF) >> 2) << 5) | ((((*inPixel32 >> 16) & 0xFF) >> 3) << 0);
-               free(data);
-               data = tempData;
-               
-       }
-       else if (pixelFormat == kCCTexture2DPixelFormat_RGBA4444) {
-               //Convert "RRRRRRRRRGGGGGGGGBBBBBBBBAAAAAAAA" to "RRRRGGGGBBBBAAAA"
-               tempData = malloc(POTHigh * POTWide * 2);
-               inPixel32 = (unsigned int*)data;
-               outPixel16 = (unsigned short*)tempData;
-               for(unsigned int i = 0; i < POTWide * POTHigh; ++i, ++inPixel32)
-                       *outPixel16++ = 
-                       ((((*inPixel32 >> 0) & 0xFF) >> 4) << 12) | // R
-                       ((((*inPixel32 >> 8) & 0xFF) >> 4) << 8) | // G
-                       ((((*inPixel32 >> 16) & 0xFF) >> 4) << 4) | // B
-                       ((((*inPixel32 >> 24) & 0xFF) >> 4) << 0); // A
-               
-               
-               free(data);
-               data = tempData;
-               
-       }
-       else if (pixelFormat == kCCTexture2DPixelFormat_RGB5A1) {
-               //Convert "RRRRRRRRRGGGGGGGGBBBBBBBBAAAAAAAA" to "RRRRRGGGGGBBBBBA"
-               tempData = malloc(POTHigh * POTWide * 2);
-               inPixel32 = (unsigned int*)data;
-               outPixel16 = (unsigned short*)tempData;
-               for(unsigned int i = 0; i < POTWide * POTHigh; ++i, ++inPixel32)
-                       *outPixel16++ = 
-                       ((((*inPixel32 >> 0) & 0xFF) >> 3) << 11) | // R
-                       ((((*inPixel32 >> 8) & 0xFF) >> 3) << 6) | // G
-                       ((((*inPixel32 >> 16) & 0xFF) >> 3) << 1) | // B
-                       ((((*inPixel32 >> 24) & 0xFF) >> 7) << 0); // A
-               
-               
-               free(data);
-               data = tempData;
-       }
-       self = [self initWithData:data pixelFormat:pixelFormat pixelsWide:POTWide pixelsHigh:POTHigh contentSize:imageSize];
-       
-       // should be after calling super init
-       hasPremultipliedAlpha_ = (info == kCGImageAlphaPremultipliedLast || info == kCGImageAlphaPremultipliedFirst);
-       
-       CGContextRelease(context);
-       [self releaseData:data];
-       
-       return self;
-}
-@end
-
-#pragma mark -
-#pragma mark CCTexture2D - Text
-
-@implementation CCTexture2D (Text)
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-
-- (id) initWithString:(NSString*)string dimensions:(CGSize)dimensions alignment:(CCTextAlignment)alignment font:(id)uifont
-{
-       NSAssert( uifont, @"Invalid font");
-       
-       NSUInteger POTWide = ccNextPOT(dimensions.width);
-       NSUInteger POTHigh = ccNextPOT(dimensions.height);
-       unsigned char*                  data;
-       
-       CGContextRef                    context;
-       CGColorSpaceRef                 colorSpace;
-       
-#if USE_TEXT_WITH_A8_TEXTURES
-       colorSpace = CGColorSpaceCreateDeviceGray();
-       data = calloc(POTHigh, POTWide);
-       context = CGBitmapContextCreate(data, POTWide, POTHigh, 8, POTWide, colorSpace, kCGImageAlphaNone);
-#else
-       colorSpace = CGColorSpaceCreateDeviceRGB();
-       data = calloc(POTHigh, POTWide * 4);
-       context = CGBitmapContextCreate(data, POTWide, POTHigh, 8, 4 * POTWide, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);                          
-#endif
-
-       CGColorSpaceRelease(colorSpace);
-       
-       if( ! context ) {
-               free(data);
-               [self release];
-               return nil;
-       }
-       
-       CGContextSetGrayFillColor(context, 1.0f, 1.0f);
-       CGContextTranslateCTM(context, 0.0f, POTHigh);
-       CGContextScaleCTM(context, 1.0f, -1.0f); //NOTE: NSString draws in UIKit referential i.e. renders upside-down compared to CGBitmapContext referential
-       
-       UIGraphicsPushContext(context);
-
-       // normal fonts
-       if( [uifont isKindOfClass:[UIFont class] ] )
-               [string drawInRect:CGRectMake(0, 0, dimensions.width, dimensions.height) withFont:uifont lineBreakMode:UILineBreakModeWordWrap alignment:alignment];
-       
-#if CC_FONT_LABEL_SUPPORT
-       else // ZFont class 
-               [string drawInRect:CGRectMake(0, 0, dimensions.width, dimensions.height) withZFont:uifont lineBreakMode:UILineBreakModeWordWrap alignment:alignment];
-#endif
-       
-       UIGraphicsPopContext();
-       
-#if USE_TEXT_WITH_A8_TEXTURES
-       self = [self initWithData:data pixelFormat:kCCTexture2DPixelFormat_A8 pixelsWide:POTWide pixelsHigh:POTHigh contentSize:dimensions];
-#else
-       self = [self initWithData:data pixelFormat:kCCTexture2DPixelFormat_RGBA8888 pixelsWide:POTWide pixelsHigh:POTHigh contentSize:dimensions];
-#endif
-       CGContextRelease(context);
-       [self releaseData:data];
-                       
-       return self;
-}
-                                
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-
-- (id) initWithString:(NSString*)string dimensions:(CGSize)dimensions alignment:(CCTextAlignment)alignment attributedString:(NSAttributedString*)stringWithAttributes
-{                              
-       NSAssert( stringWithAttributes, @"Invalid stringWithAttributes");
-
-       NSUInteger POTWide = ccNextPOT(dimensions.width);
-       NSUInteger POTHigh = ccNextPOT(dimensions.height);
-       unsigned char*                  data;
-       
-       NSSize realDimensions = [stringWithAttributes size];
-
-       //Alignment
-       float xPadding = 0;
-       
-       // Mac crashes if the width or height is 0
-       if( realDimensions.width > 0 && realDimensions.height > 0 ) {
-               switch (alignment) {
-                       case CCTextAlignmentLeft: xPadding = 0; break;
-                       case CCTextAlignmentCenter: xPadding = (dimensions.width-realDimensions.width)/2.0f; break;
-                       case CCTextAlignmentRight: xPadding = dimensions.width-realDimensions.width; break;
-                       default: break;
-               }
-               
-               //Disable antialias
-               [[NSGraphicsContext currentContext] setShouldAntialias:NO];     
-               
-               NSImage *image = [[NSImage alloc] initWithSize:NSMakeSize(POTWide, POTHigh)];
-               [image lockFocus];      
-               
-               [stringWithAttributes drawAtPoint:NSMakePoint(xPadding, POTHigh-dimensions.height)]; // draw at offset position 
-               
-               NSBitmapImageRep *bitmap = [[NSBitmapImageRep alloc] initWithFocusedViewRect:NSMakeRect (0.0f, 0.0f, POTWide, POTHigh)];
-               [image unlockFocus];
-               
-               data = (unsigned char*) [bitmap bitmapData];  //Use the same buffer to improve the performance.
-               
-               NSUInteger textureSize = POTWide*POTHigh;
-               for(int i = 0; i<textureSize; i++) //Convert RGBA8888 to A8
-                       data[i] = data[i*4+3];
-               
-               data = [self keepData:data length:textureSize];
-               self = [self initWithData:data pixelFormat:kCCTexture2DPixelFormat_A8 pixelsWide:POTWide pixelsHigh:POTHigh contentSize:dimensions];
-               
-               [bitmap release];
-               [image release]; 
-                       
-       } else {
-               [self release];
-               return nil;
-       }
-       
-       return self;
-}
-#endif // __MAC_OS_X_VERSION_MAX_ALLOWED
-
-- (id) initWithString:(NSString*)string fontName:(NSString*)name fontSize:(CGFloat)size
-{
-    CGSize dim;
-
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-       id font;
-       font = [UIFont fontWithName:name size:size];
-       if( font )
-               dim = [string sizeWithFont:font];
-
-#if CC_FONT_LABEL_SUPPORT
-       if( ! font ){
-               font = [[FontManager sharedManager] zFontWithName:name pointSize:size];
-               if (font)
-                       dim = [string sizeWithZFont:font];
-       }
-#endif // CC_FONT_LABEL_SUPPORT
-       
-       if( ! font ) {
-               CCLOG(@"cocos2d: Unable to load font %@", name);
-               [self release];
-               return nil;
-       }
-       
-       return [self initWithString:string dimensions:dim alignment:CCTextAlignmentCenter font:font];
-       
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-       {
-
-               NSAttributedString *stringWithAttributes =
-               [[[NSAttributedString alloc] initWithString:string
-                                                                                attributes:[NSDictionary dictionaryWithObject:[[NSFontManager sharedFontManager]
-                                                                                                                                                                               fontWithFamily:name
-                                                                                                                                                                               traits:NSUnboldFontMask | NSUnitalicFontMask
-                                                                                                                                                                               weight:0
-                                                                                                                                                                               size:size]
-                                                                                                                                                               forKey:NSFontAttributeName]
-                 ]
-                autorelease];
-       
-               dim = NSSizeToCGSize( [stringWithAttributes size] );
-                               
-               return [self initWithString:string dimensions:dim alignment:CCTextAlignmentCenter attributedString:stringWithAttributes];
-       }
-#endif // __MAC_OS_X_VERSION_MAX_ALLOWED
-    
-}
-
-- (id) initWithString:(NSString*)string dimensions:(CGSize)dimensions alignment:(CCTextAlignment)alignment fontName:(NSString*)name fontSize:(CGFloat)size
-{
-#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
-       id                                              uifont = nil;
-
-       uifont = [UIFont fontWithName:name size:size];
-
-#if CC_FONT_LABEL_SUPPORT
-       if( ! uifont )
-               uifont = [[FontManager sharedManager] zFontWithName:name pointSize:size];
-#endif // CC_FONT_LABEL_SUPPORT
-       if( ! uifont ) {
-               CCLOG(@"cocos2d: Texture2d: Invalid Font: %@. Verify the .ttf name", name);
-               [self release];
-               return nil;
-       }
-       
-       return [self initWithString:string dimensions:dimensions alignment:alignment font:uifont];
-       
-#elif defined(__MAC_OS_X_VERSION_MAX_ALLOWED)
-       
-       //String with attributes
-       NSAttributedString *stringWithAttributes =
-       [[[NSAttributedString alloc] initWithString:string
-                                                                        attributes:[NSDictionary dictionaryWithObject:[[NSFontManager sharedFontManager]
-                                                                                                                                                                       fontWithFamily:name
-                                                                                                                                                                       traits:NSUnboldFontMask | NSUnitalicFontMask
- &nbs