/* * 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
#ifndef TOOLS_UTIL_NAMING_H_
#define TOOLS_UTIL_NAMING_H_

#include <string>

namespace com::fourisland::lingo2_archipelago {

std::string GetLetterName(std::string key, bool level2);

}  // namespace com::fourisland::lingo2_archipelago

#endif /* TOOLS_UTIL_NAMING_H_ */