Explorar o código

[cocos2d-objc] Removed runtime

Mario Zechner hai 1 ano
pai
achega
63f45dcb14
Modificáronse 66 ficheiros con 0 adicións e 12405 borrados
  1. 0 5
      spine-cocos2d-objc/CMakeLists.txt
  2. 0 26
      spine-cocos2d-objc/LICENSE
  3. 0 53
      spine-cocos2d-objc/README.md
  4. 0 7
      spine-cocos2d-objc/Resources-ios/AppDelegate.h
  5. 0 36
      spine-cocos2d-objc/Resources-ios/AppDelegate.m
  6. BIN=BIN
      spine-cocos2d-objc/Resources-ios/[email protected]
  7. BIN=BIN
      spine-cocos2d-objc/Resources-ios/Default-Landscape~ipad.png
  8. BIN=BIN
      spine-cocos2d-objc/Resources-ios/Default.png
  9. BIN=BIN
      spine-cocos2d-objc/Resources-ios/[email protected]
  10. BIN=BIN
      spine-cocos2d-objc/Resources-ios/Icon-72.png
  11. BIN=BIN
      spine-cocos2d-objc/Resources-ios/Icon-Small-50.png
  12. BIN=BIN
      spine-cocos2d-objc/Resources-ios/Icon-Small.png
  13. BIN=BIN
      spine-cocos2d-objc/Resources-ios/[email protected]
  14. BIN=BIN
      spine-cocos2d-objc/Resources-ios/Icon.png
  15. BIN=BIN
      spine-cocos2d-objc/Resources-ios/[email protected]
  16. 0 60
      spine-cocos2d-objc/Resources-ios/Info.plist
  17. 0 11
      spine-cocos2d-objc/Resources-ios/Prefix.pch
  18. BIN=BIN
      spine-cocos2d-objc/Resources-ios/iTunesArtwork
  19. 0 9
      spine-cocos2d-objc/Resources-ios/main.m
  20. 0 14
      spine-cocos2d-objc/Resources-mac/AppDelegate.h
  21. 0 36
      spine-cocos2d-objc/Resources-mac/AppDelegate.m
  22. 0 2
      spine-cocos2d-objc/Resources-mac/English.lproj/InfoPlist.strings
  23. 0 896
      spine-cocos2d-objc/Resources-mac/English.lproj/MainMenu.xib
  24. 0 32
      spine-cocos2d-objc/Resources-mac/Info.plist
  25. 0 4
      spine-cocos2d-objc/Resources-mac/Prefix.pch
  26. BIN=BIN
      spine-cocos2d-objc/Resources-mac/icon.icns
  27. 0 8
      spine-cocos2d-objc/Resources-mac/main.m
  28. 0 259
      spine-cocos2d-objc/Resources/coin-pro.json
  29. 0 18
      spine-cocos2d-objc/Resources/coin.atlas
  30. BIN=BIN
      spine-cocos2d-objc/Resources/coin.png
  31. 0 1232
      spine-cocos2d-objc/Resources/goblins-pro.json
  32. 0 101
      spine-cocos2d-objc/Resources/goblins.atlas
  33. BIN=BIN
      spine-cocos2d-objc/Resources/goblins.png
  34. 0 716
      spine-cocos2d-objc/Resources/raptor-pro.json
  35. 0 93
      spine-cocos2d-objc/Resources/raptor.atlas
  36. BIN=BIN
      spine-cocos2d-objc/Resources/raptor.png
  37. 0 557
      spine-cocos2d-objc/Resources/spineboy-pro.json
  38. 0 94
      spine-cocos2d-objc/Resources/spineboy.atlas
  39. BIN=BIN
      spine-cocos2d-objc/Resources/spineboy.png
  40. 0 5047
      spine-cocos2d-objc/Resources/tank-pro.json
  41. 0 63
      spine-cocos2d-objc/Resources/tank.atlas
  42. BIN=BIN
      spine-cocos2d-objc/Resources/tank.png
  43. 0 39
      spine-cocos2d-objc/example/CoinExample.h
  44. 0 73
      spine-cocos2d-objc/example/CoinExample.m
  45. 0 39
      spine-cocos2d-objc/example/GoblinsExample.h
  46. 0 70
      spine-cocos2d-objc/example/GoblinsExample.m
  47. 0 40
      spine-cocos2d-objc/example/IKExample.h
  48. 0 117
      spine-cocos2d-objc/example/IKExample.m
  49. 0 39
      spine-cocos2d-objc/example/RaptorExample.h
  50. 0 69
      spine-cocos2d-objc/example/RaptorExample.m
  51. 0 39
      spine-cocos2d-objc/example/SpineboyExample.h
  52. 0 98
      spine-cocos2d-objc/example/SpineboyExample.m
  53. 0 39
      spine-cocos2d-objc/example/TankExample.h
  54. 0 69
      spine-cocos2d-objc/example/TankExample.m
  55. 0 791
      spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.pbxproj
  56. 0 7
      spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  57. 0 30
      spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.xcworkspace/xcshareddata/spine-cocos2d-iphone-ios.xcscmblueprint
  58. 0 30
      spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.xcworkspace/xcshareddata/spine-cocos2d-objc.xcscmblueprint
  59. 0 287
      spine-cocos2d-objc/src/spine/GLUtils.c
  60. 0 103
      spine-cocos2d-objc/src/spine/GLUtils.h
  61. 0 98
      spine-cocos2d-objc/src/spine/SkeletonAnimation.h
  62. 0 286
      spine-cocos2d-objc/src/spine/SkeletonAnimation.m
  63. 0 93
      spine-cocos2d-objc/src/spine/SkeletonRenderer.h
  64. 0 490
      spine-cocos2d-objc/src/spine/SkeletonRenderer.m
  65. 0 33
      spine-cocos2d-objc/src/spine/spine-cocos2d-objc.h
  66. 0 47
      spine-cocos2d-objc/src/spine/spine-cocos2d-objc.m

+ 0 - 5
spine-cocos2d-objc/CMakeLists.txt

@@ -1,5 +0,0 @@
-set(COCOS2D_DIR "${CMAKE_CURRENT_LIST_DIR}")
-if (NOT EXISTS ${COCOS2D_DIR}/cocos2d)
-	execute_process(COMMAND git clone --recursive https://github.com/cocos2d/cocos2d-objc cocos2d
-					WORKING_DIRECTORY ${COCOS2D_DIR}) 
-endif()

+ 0 - 26
spine-cocos2d-objc/LICENSE

@@ -1,26 +0,0 @@
-Spine Runtimes License Agreement
-Last updated May 1, 2019. Replaces all prior versions.
-
-Copyright (c) 2013-2019, Esoteric Software LLC
-
-Integration of the Spine Runtimes into software or otherwise creating
-derivative works of the Spine Runtimes is permitted under the terms and
-conditions of Section 2 of the Spine Editor License Agreement:
-http://esotericsoftware.com/spine-editor-license
-
-Otherwise, it is permitted to integrate the Spine Runtimes into software
-or otherwise create derivative works of the Spine Runtimes (collectively,
-"Products"), provided that each user of the Products must obtain their own
-Spine Editor license and redistribution of the Products in any form must
-include this license and copyright notice.
-
-THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY EXPRESS
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
-NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS
-INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 0 - 53
spine-cocos2d-objc/README.md

@@ -1,53 +0,0 @@
-# spine-cocos2d-objc
-
-The spine-cocos2d-objc runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using the latest [cocos2d-objc](http://cocos2d-objc.org/). spine-cocos2d-objc is based on [spine-c](../spine-c).
-
-## Licensing
-
-You are welcome to evaluate the Spine Runtimes and the examples we provide in this repository free of charge.
-
-You can integrate the Spine Runtimes into your software free of charge, but users of your software must have their own [Spine license](https://esotericsoftware.com/spine-purchase). Please make your users aware of this requirement! This option is often chosen by those making development tools, such as an SDK, game toolkit, or software library.
-
-In order to distribute your software containing the Spine Runtimes to others that don't have a Spine license, you need a [Spine license](https://esotericsoftware.com/spine-purchase) at the time of integration. Then you can distribute your software containing the Spine Runtimes however you like, provided others don't modify it or use it to create new software. If others want to do that, they'll need their own Spine license.
-
-For the official legal terms governing the Spine Runtimes, please read the [Spine Runtimes License Agreement](http://esotericsoftware.com/spine-runtimes-license) and Section 2 of the [Spine Editor License Agreement](http://esotericsoftware.com/spine-editor-license#s2).
-
-## Spine version
-
-spine-cocos2d-objc works with data exported from Spine 3.9.x.
-
-spine-cocos2d-objc supports all Spine features.
-
-spine-cocos2d-objc does not yet support loading the binary format.
-
-## Usage
-
-1. Create a new cocos2d-obj project. See the [cocos2d-objc documentation](http://cocos2d-objc.org/started/) or have a look at the example in this repository.
-2. Download the Spine Runtimes source using git (`git clone https://github.com/esotericsoftware/spine-runtimes`) or download it as a zip via the download button above.
-3. Add the sources from `spine-c/spine-c/src/spine` and `spine-cocos2d-objc/src/spine` to your project
-4. Add the folders `spine-c/spine-c/include` and `spine-cocos2d-objc/src` to your header search path. Note that includes are specified as `#inclue <spine/file.h>`, so the `spine` directory cannot be omitted when copying the source files.
-5. If your project uses ARC, you have to exclude the `.m` files in `spine-cocos2d-objc/src` from ARC. See https://stackoverflow.com/questions/6646052/how-can-i-disable-arc-for-a-single-file-in-a-project for more information.
-
-See the [Spine Runtimes documentation](http://esotericsoftware.com/spine-documentation#runtimesTitle) on how to use the APIs or check out the Spine cocos2d-objc example.
-
-## Examples
-
-The Spine cocos2d-objc example works on iOS simulators and devices.
-
-## Notes
-* To enable two color tinting, set `SkeletonRenderer.twoColorTint = true`. Note that skeletons rendered with this feature will not batch with other skeletons.
-
-### iOS
-1. Install [Xcode](https://developer.apple.com/xcode/)
-2. Install [Homebrew](http://brew.sh/)
-3. Open a terminal and install CMake via `brew install cmake`
-3. Download the Spine Runtimes repository using git (`git clone https://github.com/esotericsoftware/spine-runtimes`) or download it as a zip via the download button above.
-4. Open a terminal, and `cd` into the `spine-runtimes/spine-cocos2d-objc` folder
-5. Type `mkdir build && cd build && cmake ..`, this will download the cocos2d-objc dependency
-6. Open the Xcode project in `spine-runtimes/spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/`
-7. In the file `spine-runtimes/spine-cocos2d-objc/cocos2d/cocos2d/CCRendererBasicTypes.m`, change line 56 from `-(id)objectForKey:(id<NSCopying>)options` to `-(id)objectForKey:(id)options`. This will allow building cocos2d-objc with the latest Xcode version.
-7. In Xcode, click the `Run` button or type `CMD+R` to run the example on the simulator
-
-## Links
-
-[podspec](https://github.com/ldomaradzki/spine-runtimes/blob/master/Spine-Cocos2d-iPhone.podspec) (maintained externally)

+ 0 - 7
spine-cocos2d-objc/Resources-ios/AppDelegate.h

@@ -1,7 +0,0 @@
-
-#import <UIKit/UIKit.h>
-#import "cocos2d.h"
-
-// Added only for iOS 6 support
-@interface AppController : CCAppDelegate
-@end

+ 0 - 36
spine-cocos2d-objc/Resources-ios/AppDelegate.m

@@ -1,36 +0,0 @@
-
-#import "cocos2d.h"
-#import "AppDelegate.h"
-#import "IKExample.h"
-
-@implementation AppController
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    CCFileUtils* sharedFileUtils = [CCFileUtils sharedFileUtils];
-    
-    sharedFileUtils.searchPath =
-    [NSArray arrayWithObjects:
-     [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Images"],
-     [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Fonts"],
-     [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Resources-shared"],
-     [[NSBundle mainBundle] resourcePath],
-     nil];
-    
-    [self setupCocos2dWithOptions:@{
-            CCSetupDepthFormat: @GL_DEPTH24_STENCIL8,
-//          CCSetupTabletScale2X: @YES,
-//			CCSetupScreenMode: CCScreenModeFixed,
-//			CCSetupScreenOrientation: CCScreenOrientationPortrait,
-  			CCSetupShowDebugStats: @YES,
-		}];
-    
-    [[CCDirector sharedDirector] runWithScene:[IKExample scene]];
-    
-    return YES;
-}
-
-//- (CCScene*) startScene {
-//    return [SpineboyExample scene];
-//}
-
-@end

BIN=BIN
spine-cocos2d-objc/Resources-ios/[email protected]


BIN=BIN
spine-cocos2d-objc/Resources-ios/Default-Landscape~ipad.png


BIN=BIN
spine-cocos2d-objc/Resources-ios/Default.png


BIN=BIN
spine-cocos2d-objc/Resources-ios/[email protected]


BIN=BIN
spine-cocos2d-objc/Resources-ios/Icon-72.png


BIN=BIN
spine-cocos2d-objc/Resources-ios/Icon-Small-50.png


BIN=BIN
spine-cocos2d-objc/Resources-ios/Icon-Small.png


BIN=BIN
spine-cocos2d-objc/Resources-ios/[email protected]


BIN=BIN
spine-cocos2d-objc/Resources-ios/Icon.png


BIN=BIN
spine-cocos2d-objc/Resources-ios/[email protected]


+ 0 - 60
spine-cocos2d-objc/Resources-ios/Info.plist

@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleDisplayName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIconFile</key>
-	<string></string>
-	<key>CFBundleIconFiles</key>
-	<array>
-		<string>Icon.png</string>
-		<string>[email protected]</string>
-		<string>Icon-72.png</string>
-		<string>Icon-Small-50.png</string>
-		<string>Icon-Small.png</string>
-		<string>[email protected]</string>
-	</array>
-	<key>CFBundleIdentifier</key>
-	<string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>LSRequiresIPhoneOS</key>
-	<true/>
-	<key>UIPrerenderedIcon</key>
-	<true/>
-	<key>UIStatusBarHidden</key>
-	<true/>
-	<key>UIRequiredDeviceCapabilities</key>
-	<dict>
-		<key>accelerometer</key>
-		<true/>
-		<key>opengles-2</key>
-		<true/>
-	</dict>
-	<key>UISupportedInterfaceOrientations</key>
-	<array>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>UISupportedInterfaceOrientations~ipad</key>
-	<array>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-</dict>
-</plist>

+ 0 - 11
spine-cocos2d-objc/Resources-ios/Prefix.pch

@@ -1,11 +0,0 @@
-
-#import <Availability.h>
-
-#ifndef __IPHONE_3_0
-#warning "This project uses features only available in iPhone SDK 3.0 and later."
-#endif
-
-#ifdef __OBJC__
-#import <UIKit/UIKit.h>
-#import <Foundation/Foundation.h>
-#endif

BIN=BIN
spine-cocos2d-objc/Resources-ios/iTunesArtwork


+ 0 - 9
spine-cocos2d-objc/Resources-ios/main.m

@@ -1,9 +0,0 @@
-
-#import <UIKit/UIKit.h>
-
-int main(int argc, char *argv[]) {   
-    @autoreleasepool {
-        int retVal = UIApplicationMain(argc, argv, nil, @"AppController");
-        return retVal;
-    }
-}

+ 0 - 14
spine-cocos2d-objc/Resources-mac/AppDelegate.h

@@ -1,14 +0,0 @@
-
-#import "cocos2d.h"
-
-@interface spine_cocos2d_iphoneAppDelegate : NSObject <NSApplicationDelegate> {
-	NSWindow *window_;
-	CCGLView *glView_;
-}
-
-@property IBOutlet NSWindow *window;
-@property IBOutlet CCGLView *glView;
-
-- (IBAction)toggleFullScreen:(id)sender;
-
-@end

+ 0 - 36
spine-cocos2d-objc/Resources-mac/AppDelegate.m

@@ -1,36 +0,0 @@
-
-#import "AppDelegate.h"
-#import "SpineboyExample.h"
-
-@implementation spine_cocos2d_iphoneAppDelegate
-@synthesize window=window_, glView=glView_;
-
-- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
-	CCDirectorMac *director = (CCDirectorMac*)[CCDirector sharedDirector];
-
-	[director setDisplayStats:YES];
-	[director setView:glView_];
-	[director setResizeMode:kCCDirectorResize_AutoScale];
-
-	[window_ setAcceptsMouseMovedEvents:NO];
-	[window_ center];
-
-	[director runWithScene:[SpineboyExample scene]];
-}
-
-- (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) theApplication {
-	return YES;
-}
-
-- (void)dealloc {
-	[[CCDirector sharedDirector] end];
-}
-
-#pragma mark AppDelegate - IBActions
-
-- (IBAction)toggleFullScreen: (id)sender {
-	CCDirectorMac *director = (CCDirectorMac*) [CCDirector sharedDirector];
-	[director setFullScreen:![director isFullScreen]];
-}
-
-@end

+ 0 - 2
spine-cocos2d-objc/Resources-mac/English.lproj/InfoPlist.strings

@@ -1,2 +0,0 @@
-/* Localized versions of Info.plist keys */
-

+ 0 - 896
spine-cocos2d-objc/Resources-mac/English.lproj/MainMenu.xib

@@ -1,896 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
-	<data>
-		<int key="IBDocument.SystemTarget">1060</int>
-		<string key="IBDocument.SystemVersion">10K549</string>
-		<string key="IBDocument.InterfaceBuilderVersion">1938</string>
-		<string key="IBDocument.AppKitVersion">1038.36</string>
-		<string key="IBDocument.HIToolboxVersion">461.00</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
-			<string key="NS.object.0">1938</string>
-		</object>
-		<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<string>NSOpenGLView</string>
-			<string>NSWindowTemplate</string>
-			<string>NSView</string>
-			<string>NSMenu</string>
-			<string>NSMenuItem</string>
-			<string>NSCustomObject</string>
-		</object>
-		<object class="NSArray" key="IBDocument.PluginDependencies">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.Metadata">
-			<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
-			<integer value="1" key="NS.object.0"/>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSCustomObject" id="1021">
-				<string key="NSClassName">NSApplication</string>
-			</object>
-			<object class="NSCustomObject" id="1014">
-				<string key="NSClassName">FirstResponder</string>
-			</object>
-			<object class="NSCustomObject" id="1050">
-				<string key="NSClassName">NSApplication</string>
-			</object>
-			<object class="NSMenu" id="649796088">
-				<string key="NSTitle">AMainMenu</string>
-				<object class="NSMutableArray" key="NSMenuItems">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="NSMenuItem" id="694149608">
-						<reference key="NSMenu" ref="649796088"/>
-						<string key="NSTitle">spine-cocos2d-iphone</string>
-						<string key="NSKeyEquiv"/>
-						<int key="NSKeyEquivModMask">1048576</int>
-						<int key="NSMnemonicLoc">2147483647</int>
-						<object class="NSCustomResource" key="NSOnImage" id="35465992">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">NSMenuCheckmark</string>
-						</object>
-						<object class="NSCustomResource" key="NSMixedImage" id="502551668">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">NSMenuMixedState</string>
-						</object>
-						<string key="NSAction">submenuAction:</string>
-						<object class="NSMenu" key="NSSubmenu" id="110575045">
-							<string key="NSTitle">spine-cocos2d-iphone</string>
-							<object class="NSMutableArray" key="NSMenuItems">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMenuItem" id="238522557">
-									<reference key="NSMenu" ref="110575045"/>
-									<string key="NSTitle">About spine-cocos2d-iphone</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="304266470">
-									<reference key="NSMenu" ref="110575045"/>
-									<bool key="NSIsDisabled">YES</bool>
-									<bool key="NSIsSeparator">YES</bool>
-									<string key="NSTitle"/>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="609285721">
-									<reference key="NSMenu" ref="110575045"/>
-									<string key="NSTitle">Preferences…</string>
-									<string key="NSKeyEquiv">,</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="481834944">
-									<reference key="NSMenu" ref="110575045"/>
-									<bool key="NSIsDisabled">YES</bool>
-									<bool key="NSIsSeparator">YES</bool>
-									<string key="NSTitle"/>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="1046388886">
-									<reference key="NSMenu" ref="110575045"/>
-									<string key="NSTitle">Services</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-									<string key="NSAction">submenuAction:</string>
-									<object class="NSMenu" key="NSSubmenu" id="752062318">
-										<string key="NSTitle">Services</string>
-										<object class="NSMutableArray" key="NSMenuItems">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-										</object>
-										<string key="NSName">_NSServicesMenu</string>
-									</object>
-								</object>
-								<object class="NSMenuItem" id="646227648">
-									<reference key="NSMenu" ref="110575045"/>
-									<bool key="NSIsDisabled">YES</bool>
-									<bool key="NSIsSeparator">YES</bool>
-									<string key="NSTitle"/>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="755159360">
-									<reference key="NSMenu" ref="110575045"/>
-									<string key="NSTitle">Hide spine-cocos2d-iphone</string>
-									<string key="NSKeyEquiv">h</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="342932134">
-									<reference key="NSMenu" ref="110575045"/>
-									<string key="NSTitle">Hide Others</string>
-									<string key="NSKeyEquiv">h</string>
-									<int key="NSKeyEquivModMask">1572864</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="908899353">
-									<reference key="NSMenu" ref="110575045"/>
-									<string key="NSTitle">Show All</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="1056857174">
-									<reference key="NSMenu" ref="110575045"/>
-									<bool key="NSIsDisabled">YES</bool>
-									<bool key="NSIsSeparator">YES</bool>
-									<string key="NSTitle"/>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="632727374">
-									<reference key="NSMenu" ref="110575045"/>
-									<string key="NSTitle">Quit spine-cocos2d-iphone</string>
-									<string key="NSKeyEquiv">q</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-							</object>
-							<string key="NSName">_NSAppleMenu</string>
-						</object>
-					</object>
-					<object class="NSMenuItem" id="586577488">
-						<reference key="NSMenu" ref="649796088"/>
-						<string key="NSTitle">View</string>
-						<string key="NSKeyEquiv"/>
-						<int key="NSKeyEquivModMask">1048576</int>
-						<int key="NSMnemonicLoc">2147483647</int>
-						<reference key="NSOnImage" ref="35465992"/>
-						<reference key="NSMixedImage" ref="502551668"/>
-						<string key="NSAction">submenuAction:</string>
-						<object class="NSMenu" key="NSSubmenu" id="466310130">
-							<string key="NSTitle">View</string>
-							<object class="NSMutableArray" key="NSMenuItems">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMenuItem" id="593943139">
-									<reference key="NSMenu" ref="466310130"/>
-									<string key="NSTitle">Toggle Full Screen</string>
-									<string key="NSKeyEquiv">f</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-							</object>
-						</object>
-					</object>
-					<object class="NSMenuItem" id="713487014">
-						<reference key="NSMenu" ref="649796088"/>
-						<string key="NSTitle">Window</string>
-						<string key="NSKeyEquiv"/>
-						<int key="NSKeyEquivModMask">1048576</int>
-						<int key="NSMnemonicLoc">2147483647</int>
-						<reference key="NSOnImage" ref="35465992"/>
-						<reference key="NSMixedImage" ref="502551668"/>
-						<string key="NSAction">submenuAction:</string>
-						<object class="NSMenu" key="NSSubmenu" id="835318025">
-							<string key="NSTitle">Window</string>
-							<object class="NSMutableArray" key="NSMenuItems">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMenuItem" id="1011231497">
-									<reference key="NSMenu" ref="835318025"/>
-									<string key="NSTitle">Minimize</string>
-									<string key="NSKeyEquiv">m</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="575023229">
-									<reference key="NSMenu" ref="835318025"/>
-									<string key="NSTitle">Zoom</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="299356726">
-									<reference key="NSMenu" ref="835318025"/>
-									<bool key="NSIsDisabled">YES</bool>
-									<bool key="NSIsSeparator">YES</bool>
-									<string key="NSTitle"/>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-								<object class="NSMenuItem" id="625202149">
-									<reference key="NSMenu" ref="835318025"/>
-									<string key="NSTitle">Bring All to Front</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-							</object>
-							<string key="NSName">_NSWindowsMenu</string>
-						</object>
-					</object>
-					<object class="NSMenuItem" id="448692316">
-						<reference key="NSMenu" ref="649796088"/>
-						<string key="NSTitle">Help</string>
-						<string key="NSKeyEquiv"/>
-						<int key="NSMnemonicLoc">2147483647</int>
-						<reference key="NSOnImage" ref="35465992"/>
-						<reference key="NSMixedImage" ref="502551668"/>
-						<string key="NSAction">submenuAction:</string>
-						<object class="NSMenu" key="NSSubmenu" id="992780483">
-							<string key="NSTitle">Help</string>
-							<object class="NSMutableArray" key="NSMenuItems">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMenuItem" id="105068016">
-									<reference key="NSMenu" ref="992780483"/>
-									<string key="NSTitle">spine-cocos2d-iphone Help</string>
-									<string key="NSKeyEquiv">?</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="35465992"/>
-									<reference key="NSMixedImage" ref="502551668"/>
-								</object>
-							</object>
-							<string key="NSName">_NSHelpMenu</string>
-						</object>
-					</object>
-				</object>
-				<string key="NSName">_NSMainMenu</string>
-			</object>
-			<object class="NSWindowTemplate" id="972006081">
-				<int key="NSWindowStyleMask">15</int>
-				<int key="NSWindowBacking">2</int>
-				<string key="NSWindowRect">{{335, 435}, {580, 416}}</string>
-				<int key="NSWTFlags">1685585920</int>
-				<string key="NSWindowTitle">spine-cocos2d-iphone</string>
-				<string key="NSWindowClass">NSWindow</string>
-				<nil key="NSViewClass"/>
-				<object class="NSView" key="NSWindowView" id="439893737">
-					<reference key="NSNextResponder"/>
-					<int key="NSvFlags">256</int>
-					<object class="NSMutableArray" key="NSSubviews">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSOpenGLView" id="335206536">
-							<reference key="NSNextResponder" ref="439893737"/>
-							<int key="NSvFlags">1298</int>
-							<object class="NSPSMatrix" key="NSDrawMatrix"/>
-							<string key="NSFrame">{{0, 20}, {580, 396}}</string>
-							<reference key="NSSuperview" ref="439893737"/>
-							<reference key="NSWindow"/>
-							<reference key="NSNextKeyView"/>
-							<int key="NSViewLayerContentsRedrawPolicy">2</int>
-							<object class="NSOpenGLPixelFormat" key="NSPixelFormat">
-								<object class="NSMutableData" key="NSPixelAttributes">
-									<bytes key="NS.bytes">AAAABQAAAGAAAAAIAAAADwAAAAsAAAAIAAAAAA</bytes>
-								</object>
-							</object>
-						</object>
-					</object>
-					<string key="NSFrameSize">{580, 416}</string>
-					<reference key="NSSuperview"/>
-					<reference key="NSWindow"/>
-					<reference key="NSNextKeyView" ref="335206536"/>
-				</object>
-				<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
-				<string key="NSMaxSize">{1e+13, 1e+13}</string>
-			</object>
-			<object class="NSCustomObject" id="976324537">
-				<string key="NSClassName">spine_cocos2d_iphoneAppDelegate</string>
-			</object>
-			<object class="NSCustomObject" id="755631768">
-				<string key="NSClassName">NSFontManager</string>
-			</object>
-			<object class="NSMenuItem" id="313989180">
-				<string key="NSTitle">Item</string>
-				<string key="NSKeyEquiv"/>
-				<int key="NSMnemonicLoc">2147483647</int>
-				<reference key="NSOnImage" ref="35465992"/>
-				<reference key="NSMixedImage" ref="502551668"/>
-			</object>
-		</object>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<object class="NSMutableArray" key="connectionRecords">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">terminate:</string>
-						<reference key="source" ref="1050"/>
-						<reference key="destination" ref="632727374"/>
-					</object>
-					<int key="connectionID">449</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">orderFrontStandardAboutPanel:</string>
-						<reference key="source" ref="1021"/>
-						<reference key="destination" ref="238522557"/>
-					</object>
-					<int key="connectionID">142</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">delegate</string>
-						<reference key="source" ref="1021"/>
-						<reference key="destination" ref="976324537"/>
-					</object>
-					<int key="connectionID">495</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">performMiniaturize:</string>
-						<reference key="source" ref="1014"/>
-						<reference key="destination" ref="1011231497"/>
-					</object>
-					<int key="connectionID">37</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">arrangeInFront:</string>
-						<reference key="source" ref="1014"/>
-						<reference key="destination" ref="625202149"/>
-					</object>
-					<int key="connectionID">39</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">performZoom:</string>
-						<reference key="source" ref="1014"/>
-						<reference key="destination" ref="575023229"/>
-					</object>
-					<int key="connectionID">240</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">hide:</string>
-						<reference key="source" ref="1014"/>
-						<reference key="destination" ref="755159360"/>
-					</object>
-					<int key="connectionID">367</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">hideOtherApplications:</string>
-						<reference key="source" ref="1014"/>
-						<reference key="destination" ref="342932134"/>
-					</object>
-					<int key="connectionID">368</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">unhideAllApplications:</string>
-						<reference key="source" ref="1014"/>
-						<reference key="destination" ref="908899353"/>
-					</object>
-					<int key="connectionID">370</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">showHelp:</string>
-						<reference key="source" ref="1014"/>
-						<reference key="destination" ref="105068016"/>
-					</object>
-					<int key="connectionID">493</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">window</string>
-						<reference key="source" ref="976324537"/>
-						<reference key="destination" ref="972006081"/>
-					</object>
-					<int key="connectionID">536</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">glView</string>
-						<reference key="source" ref="976324537"/>
-						<reference key="destination" ref="335206536"/>
-					</object>
-					<int key="connectionID">537</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">toggleFullScreen:</string>
-						<reference key="source" ref="976324537"/>
-						<reference key="destination" ref="593943139"/>
-					</object>
-					<int key="connectionID">541</int>
-				</object>
-			</object>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<object class="NSArray" key="orderedObjects">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<object class="NSArray" key="object" id="0">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-						</object>
-						<reference key="children" ref="1048"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="1021"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="1014"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">First Responder</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-3</int>
-						<reference key="object" ref="1050"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">Application</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">29</int>
-						<reference key="object" ref="649796088"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="713487014"/>
-							<reference ref="694149608"/>
-							<reference ref="586577488"/>
-							<reference ref="448692316"/>
-						</object>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">19</int>
-						<reference key="object" ref="713487014"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="835318025"/>
-						</object>
-						<reference key="parent" ref="649796088"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">56</int>
-						<reference key="object" ref="694149608"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="110575045"/>
-						</object>
-						<reference key="parent" ref="649796088"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">57</int>
-						<reference key="object" ref="110575045"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="238522557"/>
-							<reference ref="755159360"/>
-							<reference ref="908899353"/>
-							<reference ref="632727374"/>
-							<reference ref="646227648"/>
-							<reference ref="609285721"/>
-							<reference ref="481834944"/>
-							<reference ref="304266470"/>
-							<reference ref="1046388886"/>
-							<reference ref="1056857174"/>
-							<reference ref="342932134"/>
-						</object>
-						<reference key="parent" ref="694149608"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">58</int>
-						<reference key="object" ref="238522557"/>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">134</int>
-						<reference key="object" ref="755159360"/>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">150</int>
-						<reference key="object" ref="908899353"/>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">136</int>
-						<reference key="object" ref="632727374"/>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">144</int>
-						<reference key="object" ref="646227648"/>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">129</int>
-						<reference key="object" ref="609285721"/>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">143</int>
-						<reference key="object" ref="481834944"/>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">236</int>
-						<reference key="object" ref="304266470"/>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">131</int>
-						<reference key="object" ref="1046388886"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="752062318"/>
-						</object>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">149</int>
-						<reference key="object" ref="1056857174"/>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">145</int>
-						<reference key="object" ref="342932134"/>
-						<reference key="parent" ref="110575045"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">130</int>
-						<reference key="object" ref="752062318"/>
-						<reference key="parent" ref="1046388886"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">24</int>
-						<reference key="object" ref="835318025"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="299356726"/>
-							<reference ref="625202149"/>
-							<reference ref="575023229"/>
-							<reference ref="1011231497"/>
-						</object>
-						<reference key="parent" ref="713487014"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">92</int>
-						<reference key="object" ref="299356726"/>
-						<reference key="parent" ref="835318025"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">5</int>
-						<reference key="object" ref="625202149"/>
-						<reference key="parent" ref="835318025"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">239</int>
-						<reference key="object" ref="575023229"/>
-						<reference key="parent" ref="835318025"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">23</int>
-						<reference key="object" ref="1011231497"/>
-						<reference key="parent" ref="835318025"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">295</int>
-						<reference key="object" ref="586577488"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="466310130"/>
-						</object>
-						<reference key="parent" ref="649796088"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">296</int>
-						<reference key="object" ref="466310130"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="593943139"/>
-						</object>
-						<reference key="parent" ref="586577488"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">371</int>
-						<reference key="object" ref="972006081"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="439893737"/>
-						</object>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">372</int>
-						<reference key="object" ref="439893737"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="335206536"/>
-						</object>
-						<reference key="parent" ref="972006081"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">420</int>
-						<reference key="object" ref="755631768"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">490</int>
-						<reference key="object" ref="448692316"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="992780483"/>
-						</object>
-						<reference key="parent" ref="649796088"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">491</int>
-						<reference key="object" ref="992780483"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="105068016"/>
-						</object>
-						<reference key="parent" ref="448692316"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">492</int>
-						<reference key="object" ref="105068016"/>
-						<reference key="parent" ref="992780483"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">494</int>
-						<reference key="object" ref="976324537"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">533</int>
-						<reference key="object" ref="335206536"/>
-						<reference key="parent" ref="439893737"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">538</int>
-						<reference key="object" ref="313989180"/>
-						<reference key="parent" ref="0"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">540</int>
-						<reference key="object" ref="593943139"/>
-						<reference key="parent" ref="466310130"/>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="flattenedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="NSArray" key="dict.sortedKeys">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>-1.IBPluginDependency</string>
-					<string>-2.IBPluginDependency</string>
-					<string>-3.IBPluginDependency</string>
-					<string>129.IBPluginDependency</string>
-					<string>130.IBPluginDependency</string>
-					<string>131.IBPluginDependency</string>
-					<string>134.IBPluginDependency</string>
-					<string>136.IBPluginDependency</string>
-					<string>143.IBPluginDependency</string>
-					<string>144.IBPluginDependency</string>
-					<string>145.IBPluginDependency</string>
-					<string>149.IBPluginDependency</string>
-					<string>150.IBPluginDependency</string>
-					<string>19.IBPluginDependency</string>
-					<string>23.IBPluginDependency</string>
-					<string>236.IBPluginDependency</string>
-					<string>239.IBPluginDependency</string>
-					<string>24.IBPluginDependency</string>
-					<string>29.IBPluginDependency</string>
-					<string>295.IBPluginDependency</string>
-					<string>296.IBPluginDependency</string>
-					<string>371.IBPluginDependency</string>
-					<string>371.IBWindowTemplateEditedContentRect</string>
-					<string>371.NSWindowTemplate.visibleAtLaunch</string>
-					<string>372.IBPluginDependency</string>
-					<string>420.IBPluginDependency</string>
-					<string>490.IBPluginDependency</string>
-					<string>491.IBPluginDependency</string>
-					<string>492.IBPluginDependency</string>
-					<string>494.IBPluginDependency</string>
-					<string>5.IBPluginDependency</string>
-					<string>533.CustomClassName</string>
-					<string>533.IBPluginDependency</string>
-					<string>538.IBPluginDependency</string>
-					<string>540.IBPluginDependency</string>
-					<string>56.IBPluginDependency</string>
-					<string>57.IBPluginDependency</string>
-					<string>58.IBPluginDependency</string>
-					<string>92.IBPluginDependency</string>
-				</object>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>{{395, 107}, {580, 416}}</string>
-					<integer value="1"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>CCGLView</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="unlocalizedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<reference key="dict.values" ref="0"/>
-			</object>
-			<nil key="activeLocalization"/>
-			<object class="NSMutableDictionary" key="localizations">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<reference key="dict.values" ref="0"/>
-			</object>
-			<nil key="sourceID"/>
-			<int key="maxID">541</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes">
-			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">MacGLView</string>
-					<string key="superclassName">NSOpenGLView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/MacGLView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">spine_cocos2d_iphoneAppDelegate</string>
-					<string key="superclassName">NSObject</string>
-					<object class="NSMutableDictionary" key="actions">
-						<string key="NS.key.0">toggleFullScreen:</string>
-						<string key="NS.object.0">id</string>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<string key="NS.key.0">toggleFullScreen:</string>
-						<object class="IBActionInfo" key="NS.object.0">
-							<string key="name">toggleFullScreen:</string>
-							<string key="candidateClassName">id</string>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="outlets">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>glView</string>
-							<string>window</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>MacGLView</string>
-							<string>NSWindow</string>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>glView</string>
-							<string>window</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<object class="IBToOneOutletInfo">
-								<string key="name">glView</string>
-								<string key="candidateClassName">MacGLView</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">window</string>
-								<string key="candidateClassName">NSWindow</string>
-							</object>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">./Classes/spine_cocos2d_iphoneAppDelegate.h</string>
-					</object>
-				</object>
-			</object>
-		</object>
-		<int key="IBDocument.localizationMode">0</int>
-		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
-			<integer value="3000" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<string>NSMenuCheckmark</string>
-				<string>NSMenuMixedState</string>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<string>{9, 8}</string>
-				<string>{7, 2}</string>
-			</object>
-		</object>
-	</data>
-</archive>

+ 0 - 32
spine-cocos2d-objc/Resources-mac/Info.plist

@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIconFile</key>
-	<string>icon</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-	<key>LSMinimumSystemVersion</key>
-	<string>${MACOSX_DEPLOYMENT_TARGET}</string>
-	<key>NSMainNibFile</key>
-	<string>MainMenu</string>
-	<key>NSPrincipalClass</key>
-	<string>NSApplication</string>
-</dict>
-</plist>

+ 0 - 4
spine-cocos2d-objc/Resources-mac/Prefix.pch

@@ -1,4 +0,0 @@
-
-#ifdef __OBJC__
-    #import <Cocoa/Cocoa.h>
-#endif

BIN=BIN
spine-cocos2d-objc/Resources-mac/icon.icns


+ 0 - 8
spine-cocos2d-objc/Resources-mac/main.m

@@ -1,8 +0,0 @@
-
-#import <Cocoa/Cocoa.h>
-#import "cocos2d.h"
-
-int main(int argc, char *argv[]) {
-	[CCGLView load_];
-    return NSApplicationMain(argc,  (const char **) argv);
-}

+ 0 - 259
spine-cocos2d-objc/Resources/coin-pro.json

@@ -1,259 +0,0 @@
-{
-"skeleton": {
-	"hash": "fKr+fe4rKEk",
-	"spine": "4.2.64-beta",
-	"x": -152.5,
-	"y": -151,
-	"width": 305,
-	"height": 302,
-	"images": "./images/",
-	"audio": ""
-},
-"bones": [
-	{ "name": "root" },
-	{ "name": "coin-front", "parent": "root" },
-	{ "name": "clipping", "parent": "coin-front" },
-	{ "name": "coin-sides", "parent": "root" },
-	{ "name": "coin-side-round", "parent": "coin-sides" },
-	{ "name": "coin-side-straight", "parent": "coin-sides" },
-	{ "name": "shine", "parent": "root", "x": 243.14 }
-],
-"slots": [
-	{ "name": "coin-side", "bone": "coin-side-straight", "color": "ffdb2fff", "attachment": "coin-side-straight" },
-	{ "name": "coin-side-round", "bone": "coin-side-round", "color": "ffdb2fff", "attachment": "coin-side-round" },
-	{ "name": "coin-front-texture", "bone": "coin-front", "color": "868686ff", "attachment": "coin-front-logo" },
-	{ "name": "coin-front-shine", "bone": "coin-front", "color": "888888ff", "dark": "000000", "attachment": "coin-front-shine-logo", "blend": "additive" },
-	{ "name": "clipping", "bone": "clipping", "attachment": "clipping" },
-	{ "name": "shine", "bone": "shine", "color": "ffffff60", "attachment": "shine", "blend": "additive" }
-],
-"skins": [
-	{
-		"name": "default",
-		"attachments": {
-			"clipping": {
-				"clipping": {
-					"type": "clipping",
-					"end": "clipping",
-					"vertexCount": 39,
-					"vertices": [ 0.1, 140.26, -26.4, 138.14, -50.51, 131.25, -75.42, 119.06, -98.21, 101.04, -115.44, 82.22, -127.63, 62.08, -136.11, 39.03, -140.08, 19.68, -141.41, -0.19, -140.08, -22.98, -134.78, -45.5, -125.24, -66.44, -113.32, -84.19, -98.21, -101.95, -80.46, -116.52, -61.38, -127.39, -38.92, -134.81, -18.22, -139.27, -0.14, -140.58, 24.23, -138.48, 45.45, -132.46, 67.98, -122.5, 86.58, -110.19, 102.56, -95.25, 115.4, -78.75, 125.36, -61.72, 134, -42.33, 138.46, -22.15, 139.24, -0.15, 138.46, 20.29, 133.48, 39.94, 127.19, 58.54, 117.5, 76.1, 104.4, 92.86, 88.42, 108.32, 69.03, 121.42, 50.43, 130.85, 26.32, 137.4 ],
-					"color": "ce3a3aff"
-				}
-			},
-			"coin-front-shine": {
-				"coin-front-shine-logo": { "width": 282, "height": 282 },
-				"coin-front-shine-spineboy": { "width": 282, "height": 282 }
-			},
-			"coin-front-texture": {
-				"coin-front-logo": { "width": 305, "height": 302 },
-				"coin-front-spineboy": { "width": 305, "height": 302 }
-			},
-			"coin-side": {
-				"coin-side-straight": { "x": 0.5, "width": 17, "height": 282 }
-			},
-			"coin-side-round": {
-				"coin-side-round": { "x": -69.43, "width": 144, "height": 282 }
-			},
-			"shine": {
-				"shine": { "y": 0.5, "scaleX": 1.6004, "scaleY": 1.6004, "width": 72, "height": 245 }
-			}
-		}
-	}
-],
-"animations": {
-	"animation": {
-		"slots": {
-			"coin-front-shine": {
-				"rgba2": [
-					{ "light": "7d7d7dff", "dark": "000000" },
-					{ "time": 0.2667, "light": "000000ff", "dark": "7e7e7e" },
-					{ "time": 0.664, "light": "000000ff", "dark": "000000" },
-					{ "time": 1.0333, "light": "7f7f7fff", "dark": "000000" },
-					{ "time": 1.3333, "light": "404040ff", "dark": "000000" },
-					{ "time": 1.6, "light": "000000ff", "dark": "7e7e7e" },
-					{ "time": 2.0022, "light": "000000ff", "dark": "000000" },
-					{ "time": 2.4, "light": "7f7f7fff", "dark": "000000" },
-					{ "time": 2.6667, "light": "7d7d7dff", "dark": "000000" }
-				],
-				"attachment": [
-					{ "time": 0.6667, "name": "coin-front-shine-spineboy" },
-					{ "time": 2, "name": "coin-front-shine-logo" }
-				]
-			},
-			"coin-front-texture": {
-				"rgba": [
-					{ "color": "858585ff" },
-					{ "time": 0.4, "color": "ffffffff" },
-					{
-						"time": 0.6696,
-						"color": "858585ff",
-						"curve": [ 0.725, 0.59, 0.892, 1, 0.725, 0.59, 0.892, 1, 0.725, 0.59, 0.892, 1, 0.725, 1, 0.892, 1 ]
-					},
-					{ "time": 0.9667, "color": "ffffffff" },
-					{ "time": 1.3318, "color": "858585ff", "curve": "stepped" },
-					{ "time": 1.3333, "color": "858585ff" },
-					{ "time": 1.7333, "color": "ffffffff" },
-					{ "time": 1.9982, "color": "858585ff", "curve": "stepped" },
-					{ "time": 2.0022, "color": "858585ff" },
-					{ "time": 2.3, "color": "ffffffff" },
-					{ "time": 2.6667, "color": "858585ff" }
-				],
-				"attachment": [
-					{ "time": 0.6667, "name": "coin-front-spineboy" },
-					{ "time": 2, "name": "coin-front-logo" }
-				]
-			}
-		},
-		"bones": {
-			"coin-front": {
-				"translate": [
-					{},
-					{ "time": 0.664, "x": 8.3, "curve": "stepped" },
-					{
-						"time": 0.6696,
-						"x": -8.3,
-						"curve": [ 0.794, -7.08, 1.167, 0, 0.794, 0, 1.167, 0 ]
-					},
-					{ "time": 1.3333 },
-					{ "time": 1.9982, "x": 8.3, "curve": "stepped" },
-					{ "time": 2.0022, "x": -8.3 },
-					{ "time": 2.6667 }
-				],
-				"scale": [
-					{
-						"curve": [ 0.164, 1, 0.484, 0.091, 0.164, 1, 0.484, 1 ]
-					},
-					{ "time": 0.664, "x": 0, "curve": "stepped" },
-					{
-						"time": 0.6696,
-						"x": 0.003,
-						"curve": [ 0.786, 0.153, 1.167, 1, 0.786, 1, 1.167, 1 ]
-					},
-					{
-						"time": 1.3333,
-						"curve": [ 1.442, 0.992, 1.858, 0.098, 1.442, 1, 1.858, 1 ]
-					},
-					{ "time": 1.9982, "x": 0.003, "curve": "stepped" },
-					{
-						"time": 2.0022,
-						"x": 0.003,
-						"curve": [ 2.123, 0.151, 2.501, 1, 2.123, 1, 2.501, 1 ]
-					},
-					{ "time": 2.6667 }
-				]
-			},
-			"coin-side-round": {
-				"translate": [
-					{},
-					{ "time": 0.664, "x": -6.75, "curve": "stepped" },
-					{
-						"time": 0.6696,
-						"x": 7.03,
-						"curve": [ 0.794, 5.99, 1.167, 0, 0.794, 0, 1.167, 0 ]
-					},
-					{ "time": 1.3333 },
-					{ "time": 1.9982, "x": -6.75, "curve": "stepped" },
-					{ "time": 2.0022, "x": 7.03 },
-					{ "time": 2.6667 }
-				],
-				"scale": [
-					{
-						"curve": [ 0.085, 1, 0.207, 0.789, 0.085, 1, 0.207, 1 ]
-					},
-					{
-						"time": 0.3333,
-						"x": 0.555,
-						"curve": [ 0.449, 0.347, 0.567, 0.122, 0.449, 1, 0.567, 1 ]
-					},
-					{ "time": 0.664, "x": 0.014, "curve": "stepped" },
-					{
-						"time": 0.6696,
-						"x": -0.028,
-						"curve": [ 0.723, -0.126, 0.865, -0.367, 0.723, 1, 0.865, 1 ]
-					},
-					{
-						"time": 1,
-						"x": -0.609,
-						"curve": [ 1.053, -0.778, 1.29, -0.997, 1.053, 1, 1.29, 1 ]
-					},
-					{ "time": 1.3318, "x": -1, "curve": "stepped" },
-					{
-						"time": 1.3333,
-						"curve": [ 1.384, 0.997, 1.439, 0.94, 1.384, 1, 1.439, 1 ]
-					},
-					{
-						"time": 1.5,
-						"x": 0.852,
-						"curve": [ 1.564, 0.748, 1.703, 0.509, 1.564, 1, 1.703, 1 ]
-					},
-					{
-						"time": 1.8,
-						"x": 0.315,
-						"curve": [ 1.873, 0.13, 1.987, 0.015, 1.873, 1, 1.987, 1 ]
-					},
-					{ "time": 1.9982, "x": 0.014, "curve": "stepped" },
-					{
-						"time": 2.0022,
-						"x": -0.028,
-						"curve": [ 2.039, -0.072, 2.123, -0.239, 2.039, 1, 2.123, 1 ]
-					},
-					{
-						"time": 2.2018,
-						"x": -0.365,
-						"curve": [ 2.269, -0.513, 2.337, -0.635, 2.269, 1, 2.337, 1 ]
-					},
-					{
-						"time": 2.4,
-						"x": -0.731,
-						"curve": [ 2.503, -0.871, 2.596, -0.961, 2.503, 1, 2.596, 1 ]
-					},
-					{
-						"time": 2.6592,
-						"x": -1,
-						"curve": [ 2.661, -1, 2.665, 1, 2.661, 1, 2.665, 1 ]
-					},
-					{ "time": 2.6667 }
-				]
-			},
-			"shine": {
-				"translate": [
-					{
-						"curve": [ 0.167, 0, 0.5, -473.39, 0.167, 0, 0.5, 0 ]
-					},
-					{
-						"time": 0.6667,
-						"x": -473.39,
-						"curve": [ 0.833, -473.39, 1.167, -33.16, 0.833, 0, 1.167, 0 ]
-					},
-					{
-						"time": 1.3333,
-						"x": -33.16,
-						"curve": [ 1.5, -33.16, 1.833, -473.39, 1.5, 0, 1.833, 0 ]
-					},
-					{
-						"time": 2,
-						"x": -473.39,
-						"curve": [ 2.167, -473.39, 2.5, 0, 2.167, 0, 2.5, 0 ]
-					},
-					{ "time": 2.6667 }
-				]
-			}
-		},
-		"drawOrder": [
-			{
-				"time": 0.6667,
-				"offsets": [
-					{ "slot": "coin-side", "offset": 2 }
-				]
-			},
-			{ "time": 0.6696 },
-			{
-				"time": 1.9982,
-				"offsets": [
-					{ "slot": "coin-side", "offset": 2 }
-				]
-			},
-			{ "time": 2.0022 }
-		]
-	}
-}
-}

+ 0 - 18
spine-cocos2d-objc/Resources/coin.atlas

@@ -1,18 +0,0 @@
-coin.png
-	size: 1024, 1024
-	filter: Linear, Linear
-coin-front-logo
-	bounds: 2, 609, 305, 302
-coin-front-shine-logo
-	bounds: 309, 629, 282, 282
-coin-front-shine-spineboy
-	bounds: 2, 21, 282, 282
-coin-front-spineboy
-	bounds: 2, 305, 305, 302
-coin-side-round
-	bounds: 309, 345, 144, 282
-coin-side-straight
-	bounds: 2, 2, 17, 282
-	rotate: 90
-shine
-	bounds: 593, 666, 72, 245

BIN=BIN
spine-cocos2d-objc/Resources/coin.png


+ 0 - 1232
spine-cocos2d-objc/Resources/goblins-pro.json

@@ -1,1232 +0,0 @@
-{
-"skeleton": {
-	"hash": "r8iwnU9Tvmc",
-	"spine": "4.2.64-beta",
-	"x": -134.12,
-	"y": -3.28,
-	"width": 266.94,
-	"height": 349.61,
-	"images": "./images/",
-	"audio": ""
-},
-"bones": [
-	{ "name": "root" },
-	{ "name": "hip", "parent": "root", "x": 0.65, "y": 114.41, "color": "ffcf00ff" },
-	{
-		"name": "torso",
-		"parent": "hip",
-		"length": 85.83,
-		"rotation": 93.93,
-		"x": -6.42,
-		"y": 1.98,
-		"color": "ffcf00ff"
-	},
-	{
-		"name": "neck",
-		"parent": "torso",
-		"length": 18.38,
-		"rotation": -1.52,
-		"x": 81.68,
-		"y": -6.35,
-		"color": "ffcf00ff"
-	},
-	{
-		"name": "head",
-		"parent": "neck",
-		"length": 68.29,
-		"rotation": -13.92,
-		"x": 20.94,
-		"y": 11.59,
-		"color": "ffcf00ff"
-	},
-	{
-		"name": "left-shoulder",
-		"parent": "torso",
-		"length": 35.43,
-		"rotation": -156.96,
-		"x": 74.05,
-		"y": -20.39,
-		"color": "ff0000ff"
-	},
-	{
-		"name": "left-arm",
-		"parent": "left-shoulder",
-		"length": 35.62,
-		"rotation": 28.17,
-		"x": 37.86,
-		"y": -2.35,
-		"color": "ff0000ff"
-	},
-	{
-		"name": "left-upper-leg",
-		"parent": "hip",
-		"length": 50.4,
-		"rotation": -89.1,
-		"x": 14.45,
-		"y": 2.81,
-		"color": "ff0000ff"
-	},
-	{
-		"name": "left-lower-leg",
-		"parent": "left-upper-leg",
-		"length": 49.9,
-		"rotation": -16.66,
-		"x": 56.34,
-		"y": 0.99,
-		"color": "ff0000ff"
-	},
-	{
-		"name": "left-foot",
-		"parent": "left-lower-leg",
-		"length": 46.5,
-		"rotation": 102.43,
-		"x": 58.94,
-		"y": -7.61,
-		"color": "ff0000ff"
-	},
-	{
-		"name": "left-hand",
-		"parent": "left-arm",
-		"length": 11.52,
-		"rotation": 2.7,
-		"x": 35.62,
-		"y": 0.08,
-		"color": "ff0000ff"
-	},
-	{ "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.58, "color": "ffcf00ff" },
-	{
-		"name": "right-shoulder",
-		"parent": "torso",
-		"length": 37.25,
-		"rotation": 133.89,
-		"x": 76.02,
-		"y": 18.15,
-		"color": "62ff00ff"
-	},
-	{
-		"name": "right-arm",
-		"parent": "right-shoulder",
-		"length": 36.75,
-		"rotation": 36.33,
-		"x": 37.61,
-		"y": 0.31,
-		"color": "62ff00ff"
-	},
-	{
-		"name": "right-upper-leg",
-		"parent": "hip",
-		"length": 42.46,
-		"rotation": -97.5,
-		"x": -20.08,
-		"y": -6.84,
-		"color": "62ff00ff"
-	},
-	{
-		"name": "right-lower-leg",
-		"parent": "right-upper-leg",
-		"length": 58.53,
-		"rotation": -14.34,
-		"x": 43,
-		"y": -0.62,
-		"color": "62ff00ff"
-	},
-	{
-		"name": "right-foot",
-		"parent": "right-lower-leg",
-		"length": 45.46,
-		"rotation": 110.31,
-		"x": 64.89,
-		"y": 0.04,
-		"color": "62ff00ff"
-	},
-	{
-		"name": "right-hand",
-		"parent": "right-arm",
-		"length": 15.32,
-		"rotation": 2.36,
-		"x": 36.9,
-		"y": 0.35,
-		"color": "62ff00ff"
-	},
-	{
-		"name": "spear1",
-		"parent": "left-hand",
-		"length": 65.07,
-		"rotation": 102.43,
-		"x": 0.48,
-		"y": 17.03,
-		"color": "ffcf00ff"
-	},
-	{
-		"name": "spear2",
-		"parent": "spear1",
-		"length": 61.42,
-		"rotation": 0.9,
-		"x": 65.06,
-		"y": 0.04,
-		"color": "ffcf00ff"
-	},
-	{
-		"name": "spear3",
-		"parent": "spear2",
-		"length": 76.8,
-		"rotation": -0.9,
-		"x": 61.89,
-		"y": 0.57,
-		"color": "ffcf00ff"
-	}
-],
-"slots": [
-	{ "name": "left-shoulder", "bone": "left-shoulder", "attachment": "left-shoulder" },
-	{ "name": "left-arm", "bone": "left-arm", "attachment": "left-arm" },
-	{ "name": "left-hand-item", "bone": "left-hand", "attachment": "spear" },
-	{ "name": "left-hand", "bone": "left-hand", "attachment": "left-hand" },
-	{ "name": "left-foot", "bone": "left-foot", "attachment": "left-foot" },
-	{ "name": "left-lower-leg", "bone": "left-lower-leg", "attachment": "left-lower-leg" },
-	{ "name": "left-upper-leg", "bone": "left-upper-leg", "attachment": "left-upper-leg" },
-	{ "name": "neck", "bone": "neck", "attachment": "neck" },
-	{ "name": "torso", "bone": "torso", "attachment": "torso" },
-	{ "name": "pelvis", "bone": "pelvis", "attachment": "pelvis" },
-	{ "name": "right-foot", "bone": "right-foot", "attachment": "right-foot" },
-	{ "name": "right-lower-leg", "bone": "right-lower-leg", "attachment": "right-lower-leg" },
-	{ "name": "undie-straps", "bone": "pelvis", "attachment": "undie-straps" },
-	{ "name": "undies", "bone": "pelvis", "attachment": "undies" },
-	{ "name": "right-upper-leg", "bone": "right-upper-leg", "attachment": "right-upper-leg" },
-	{ "name": "head", "bone": "head", "attachment": "head" },
-	{ "name": "eyes", "bone": "head" },
-	{ "name": "right-shoulder", "bone": "right-shoulder", "attachment": "right-shoulder" },
-	{ "name": "right-arm", "bone": "right-arm", "attachment": "right-arm" },
-	{ "name": "right-hand-thumb", "bone": "right-hand", "attachment": "right-hand-thumb" },
-	{ "name": "right-hand-item", "bone": "right-hand", "attachment": "dagger" },
-	{ "name": "right-hand", "bone": "right-hand", "attachment": "right-hand" },
-	{ "name": "right-hand-item2", "bone": "right-hand", "attachment": "shield" }
-],
-"skins": [
-	{
-		"name": "default",
-		"attachments": {
-			"left-hand-item": {
-				"dagger": { "x": 7.88, "y": -23.46, "rotation": 10.48, "width": 26, "height": 108 },
-				"spear": {
-					"type": "mesh",
-					"uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54328, 0.2259, 0.38362, 0.20891, 0.21605, 0.20043, 0.13243, 0, 0.1152, 0.4527, 0, 0.58399, 0 ],
-					"triangles": [ 4, 7, 3, 6, 7, 4, 5, 6, 4, 10, 11, 12, 1, 13, 0, 12, 13, 1, 10, 12, 1, 9, 10, 1, 2, 9, 1, 8, 9, 2, 3, 8, 2, 7, 8, 3 ],
-					"vertices": [ 1, 20, 38.54, -10.89, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.59, 0.5116, 20, -0.31, -6.16, 0.4884, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.07, 0.49728, 1, 10, 4.57, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.43, -141.1, 1, 1, 10, -6.49, 22.41, 1, 2, 18, 65.48, 6.65, 0.50272, 19, 0.53, 6.6, 0.49728, 2, 19, 62.19, 6.67, 0.5116, 20, 0.2, 6.1, 0.4884, 1, 20, 30.97, 6.62, 1, 1, 20, 37.26, 11.09, 1, 1, 20, 79.75, 1.6, 1, 1, 20, 79.78, -1.29, 1 ],
-					"hull": 14,
-					"edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ],
-					"width": 22,
-					"height": 368
-				}
-			},
-			"right-hand-item": {
-				"dagger": {
-					"type": "mesh",
-					"uvs": [ 0.78092, 0.38453, 1, 0.38406, 1, 0.44882, 0.73954, 0.4687, 0.74642, 0.81344, 0.34023, 1, 0.15434, 1, 0.11304, 0.78858, 0.23007, 0.47368, 0, 0.45047, 0, 0.38622, 0.22368, 0.38573, 0.24384, 0, 1, 0 ],
-					"triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ],
-					"vertices": [ 15.49, -12.83, 21.14, -13.57, 20.16, -20.5, 13.16, -21.68, 8.13, -58.57, -5.14, -77.04, -9.92, -76.37, -7.8, -53.61, -0.03, -20.36, -5.61, -17.04, -4.64, -10.17, 1.13, -10.93, 7.47, 30.24, 26.93, 27.5 ],
-					"hull": 14,
-					"edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ],
-					"width": 26,
-					"height": 108
-				}
-			},
-			"right-hand-item2": {
-				"shield": { "rotation": 93.5, "width": 70, "height": 72 }
-			}
-		}
-	},
-	{
-		"name": "goblin",
-		"attachments": {
-			"eyes": {
-				"eyes-closed": { "name": "goblin/eyes-closed", "x": 29.19, "y": -24.9, "rotation": -88.93, "width": 34, "height": 12 }
-			},
-			"head": {
-				"head": {
-					"name": "goblin/head",
-					"type": "mesh",
-					"uvs": [ 0, 0.60495, 0.14172, 0.51451, 0.24218, 0.55229, 0.32668, 0.67807, 0.37969, 0.79352, 0.53505, 0.93015, 0.86057, 1, 0.94071, 0.94169, 0.92099, 0.69924, 0.9888, 0.65498, 0.99003, 0.51643, 0.89633, 0.43562, 0.94487, 0.41917, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80755, 0.16045, 0.66699, 0.01998, 0.4734, 0.01806, 0.29215, 0.19893, 0.25393, 0.31824, 0.09117, 0.32401, 0, 0.44331, 0.43271, 0.69154, 0.46601, 0.47795, 0.35997, 0.31246, 0.73474, 0.68594, 0.72216, 0.57426, 0.8818, 0.5583, 0.80268, 0.51016 ],
-					"triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ],
-					"vertices": [ 14.56, 50.42, 23.12, 35.48, 17.47, 26.36, 11.58, 16.87, 3.75, 11.71, -5.9, -3.92, -11.83, -37.24, -8.32, -45.64, 7.75, -44.24, 10.4, -51.34, 19.53, -51.83, 25.21, -43.16, 26.13, -47.43, 27.36, -53.16, 34.84, -53.46, 35.97, -47.34, 37.11, -41.09, 43.75, -33.98, 53.59, -19.88, 54.51, 0.04, 43.32, 19.17, 35.61, 23.41, 35.89, 40.18, 28.4, 49.87, 10.26, 5.99, 24.21, 2, 35.55, 12.48, 9.39, -25.11, 16.8, -24.31, 17.21, -40.66, 20.69, -33.02 ],
-					"hull": 24,
-					"edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ],
-					"width": 103,
-					"height": 66
-				}
-			},
-			"left-arm": {
-				"left-arm": {
-					"name": "goblin/left-arm",
-					"type": "mesh",
-					"uvs": [ 0.68993, 0.29284, 1, 0.46364, 1, 0.74644, 0.8409, 1, 0.66344, 1, 0.33766, 0.64284, 0, 0.44124, 0, 0, 0.34296, 0 ],
-					"triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ],
-					"vertices": [ 18.6, 8.81, 32.2, 10.32, 38.02, 1.63, 38.08, -9.63, 32.32, -13.5, 14.37, -9.62, -0.76, -10.78, -9.85, 2.78, 1.29, 10.25 ],
-					"hull": 9,
-					"edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ],
-					"width": 37,
-					"height": 35
-				}
-			},
-			"left-foot": {
-				"left-foot": {
-					"name": "goblin/left-foot",
-					"type": "mesh",
-					"uvs": [ 0.15734, 0.31874, 0.08195, 0.78503, 0.15884, 0.99367, 0.41633, 0.96805, 0.68823, 0.97637, 1, 0.96388, 0.99386, 0.73501, 0.85295, 0.51863, 0.61479, 0.31056, 0.46992, 0, 0.48033, 0.75604, 0.75995, 0.77706 ],
-					"triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ],
-					"vertices": [ 2.28, 13.07, -1.77, -1.64, 3.6, -7.81, 20.26, -6.04, 37.92, -5.28, 58.13, -3.71, 57.32, 3.35, 47.78, 9.51, 31.95, 15.05, 21.99, 24.12, 24.03, 0.76, 42.21, 1.16 ],
-					"hull": 10,
-					"edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ],
-					"width": 65,
-					"height": 31
-				}
-			},
-			"left-hand": {
-				"left-hand": {
-					"name": "goblin/left-hand",
-					"type": "mesh",
-					"uvs": [ 0.51801, 0.12578, 1, 0.16286, 0.99789, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42793, 0.17601, 0, 0.43568, 0 ],
-					"triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ],
-					"vertices": [ -3.11, 15.43, 10.84, 22.27, 15.5, 14.56, 18.36, -8.96, 9.48, -14.33, -4.59, -14.3, -11.64, -2.64, -14.89, 13.68, -7.76, 18 ],
-					"hull": 9,
-					"edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ],
-					"width": 36,
-					"height": 41
-				}
-			},
-			"left-lower-leg": {
-				"left-lower-leg": {
-					"name": "goblin/left-lower-leg",
-					"type": "mesh",
-					"uvs": [ 0.95509, 0.2075, 0.81927, 0.65214, 0.94754, 0.77308, 0.67842, 0.97347, 0.46464, 1, 0.26845, 1, 0.04964, 0.90707, 0.21061, 0.60115, 0.07479, 0.40195, 0.18545, 0, 0.28858, 0 ],
-					"triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ],
-					"vertices": [ -0.2, 6.82, 30.97, 10.96, 37.97, 17.34, 53.88, 12.6, 57.59, 6.32, 59.35, 0.09, 55.05, -8.63, 33, -9.34, 20.8, -17.44, -7.28, -21.57, -8.2, -18.29 ],
-					"hull": 11,
-					"edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ],
-					"width": 33,
-					"height": 70
-				}
-			},
-			"left-shoulder": {
-				"left-shoulder": {
-					"name": "goblin/left-shoulder",
-					"type": "mesh",
-					"uvs": [ 0.7377, 0.40692, 1, 0.75238, 1, 1, 0.62046, 1, 0.26184, 0.56602, 0, 0.29783, 0, 0, 0.44115, 0 ],
-					"triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ],
-					"vertices": [ 15.18, 5.74, 32.17, 5.33, 41.79, 0.22, 36.63, -9.5, 14.89, -9.73, 0.9, -10.9, -10.67, -4.75, -4.67, 6.55 ],
-					"hull": 8,
-					"edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ],
-					"width": 29,
-					"height": 44
-				}
-			},
-			"left-upper-leg": {
-				"left-upper-leg": {
-					"name": "goblin/left-upper-leg",
-					"type": "mesh",
-					"uvs": [ 1, 0.12168, 1, 0.54873, 0.91067, 0.78907, 0.76568, 1, 0.30871, 0.95791, 0, 0.68777, 0, 0.21901, 0.51962, 0, 0.87552, 0 ],
-					"triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ],
-					"vertices": [ 2.34, 13.07, 33.51, 12.57, 51, 9.34, 66.32, 4.31, 63.01, -10.71, 43.13, -20.59, 8.91, -20.04, -6.8, -2.64, -6.61, 9.1 ],
-					"hull": 9,
-					"edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ],
-					"width": 33,
-					"height": 73
-				}
-			},
-			"neck": {
-				"neck": {
-					"name": "goblin/neck",
-					"type": "mesh",
-					"uvs": [ 0.81968, 0.27365, 0.92101, 0.82048, 0.47135, 1, 0.15679, 0.93541, 0, 0.7556, 0.19268, 0.51834, 0.15468, 0.35707, 0, 0.2199, 0.13568, 0, 0.68879, 0, 0.70146, 0.53873 ],
-					"triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ],
-					"vertices": [ 18.63, -11.66, -3.98, -13.86, -10.29, 2.77, -6.92, 13.9, 0.8, 19.06, 10.06, 11.51, 16.75, 12.45, 22.72, 17.65, 31.4, 12.2, 30.12, -7.68, 8.05, -6.71 ],
-					"hull": 10,
-					"edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ],
-					"width": 36,
-					"height": 41
-				}
-			},
-			"pelvis": {
-				"pelvis": {
-					"name": "goblin/pelvis",
-					"type": "mesh",
-					"uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ],
-					"triangles": [ 1, 2, 3, 1, 3, 0 ],
-					"vertices": [ 25.38, -20.73, -36.62, -20.73, -36.62, 22.27, 25.38, 22.27 ],
-					"hull": 4,
-					"edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ],
-					"width": 62,
-					"height": 43
-				}
-			},
-			"right-arm": {
-				"right-arm": {
-					"name": "goblin/right-arm",
-					"type": "mesh",
-					"uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24385, 1, 0, 0.86559, 0.20823, 0.1092, 0.50903, 0, 0.85342, 0 ],
-					"triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ],
-					"vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.9, 41.82, -5.03, 35.54, -11.13, -2.54, -9.2, -8.5, -2.72, -9.1, 5.18 ],
-					"hull": 8,
-					"edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ],
-					"width": 23,
-					"height": 50
-				}
-			},
-			"right-foot": {
-				"right-foot": {
-					"name": "goblin/right-foot",
-					"type": "mesh",
-					"uvs": [ 0.40851, 0.00471, 0.59088, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97533, 0.89392, 0.90386, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65985, 0, 0.46578, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71258, 0.71501, 0.74681 ],
-					"triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ],
-					"vertices": [ 17.36, 26, 29.14, 15.44, 39.89, 10.81, 48.15, 7.25, 53.84, -2.38, 49.43, -6, 34.85, -6.39, 16.84, -6.87, -2.4, -7.38, -7.59, -3.87, -7.79, 3.7, -7.96, 10.1, -2.57, 22.36, 10.84, 25.98, 22.15, 2.76, 37.32, 2.03 ],
-					"hull": 14,
-					"edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ],
-					"width": 63,
-					"height": 33
-				}
-			},
-			"right-hand": {
-				"right-hand": {
-					"name": "goblin/right-hand",
-					"type": "mesh",
-					"uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89824, 0.82005, 0.8259, 0.74286, 0.84224, 0.49994, 0.96357, 0.34102, 0.66024, 0 ],
-					"triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ],
-					"vertices": [ -10.83, -9.45, 5.95, -15.35, 18.88, -14.9, 24.01, -7.5, 25.69, 5.16, 25.32, 16.08, 18.61, 17.44, 15.85, 14.74, 6.84, 15.02, 0.82, 19.19, -11.42, 7.84 ],
-					"hull": 11,
-					"edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ],
-					"width": 36,
-					"height": 37
-				}
-			},
-			"right-hand-thumb": {
-				"right-hand-thumb": {
-					"name": "goblin/right-hand",
-					"type": "mesh",
-					"uvs": [ 0.88538, 0.22263, 0.76168, 0.3594, 0.75089, 0.78308, 0.95326, 0.84981, 1, 0.60303 ],
-					"triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ],
-					"vertices": [ -2.82, 15.98, 2.4, 11.72, 18.08, 11.91, 20.28, 19.28, 11.09, 20.62 ],
-					"hull": 5,
-					"edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ],
-					"width": 36,
-					"height": 37
-				}
-			},
-			"right-lower-leg": {
-				"right-lower-leg": {
-					"name": "goblin/right-lower-leg",
-					"type": "mesh",
-					"uvs": [ 1, 0.27261, 0.81312, 0.52593, 0.79587, 0.71796, 0.95544, 0.80989, 0.85194, 0.95493, 0.47242, 1, 0.14034, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30326, 0.60611, 0 ],
-					"triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ],
-					"vertices": [ 6.27, 8.46, 23.32, 8.05, 37.1, 12.9, 41.45, 20.83, 53.07, 21.47, 61.33, 10.06, 65.78, -1.04, 59, -9.19, 43.02, -9.82, 16.33, -20.01, -12.8, -9.26 ],
-					"hull": 11,
-					"edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ],
-					"width": 36,
-					"height": 76
-				}
-			},
-			"right-shoulder": {
-				"right-shoulder": {
-					"name": "goblin/right-shoulder",
-					"type": "mesh",
-					"uvs": [ 0.62008, 0.03709, 0.92131, 0.09049, 1, 0.3832, 0.72049, 0.69371, 0.31657, 1, 0, 1, 0, 0.75106, 0.28234, 0.49989 ],
-					"triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ],
-					"vertices": [ -3.17, -11.05, -9, -0.58, -1.01, 10.34, 16.69, 11.17, 37.41, 8.2, 45.46, -1.16, 36.96, -8.46, 21.21, -7.48 ],
-					"hull": 8,
-					"edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ],
-					"width": 39,
-					"height": 45
-				}
-			},
-			"right-upper-leg": {
-				"right-upper-leg": {
-					"name": "goblin/right-upper-leg",
-					"type": "mesh",
-					"uvs": [ 0.27019, 0, 0.11619, 0.18177, 0, 0.70688, 0, 0.89577, 0.26669, 1, 0.48719, 1, 0.67619, 0.83533, 1, 0.5161, 1, 0.25544, 0.74619, 0.0571 ],
-					"triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ],
-					"vertices": [ -9.86, -10.37, 2.18, -14.07, 35.49, -13.67, 47.29, -12.11, 52.62, -2.27, 51.64, 5.17, 40.51, 10.18, 19.14, 18.47, 2.85, 16.33, -8.41, 6.14 ],
-					"hull": 10,
-					"edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ],
-					"width": 34,
-					"height": 63
-				}
-			},
-			"torso": {
-				"torso": {
-					"name": "goblin/torso",
-					"type": "mesh",
-					"uvs": [ 0, 0.33288, 0.15946, 0.46489, 0.15762, 0.60314, 0.15502, 0.79806, 0.32808, 0.93479, 0.68751, 1, 0.80732, 1, 1, 0.77763, 1, 0.66148, 1, 0.56704, 0.93208, 0.4771, 0.86944, 0.39417, 0.83838, 0.22601, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78735, 0.8625, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38317, 0.77692, 0.73447, 0.66479, 0.51012 ],
-					"triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ],
-					"vertices": [ 56.93, 27.95, 43.37, 18.24, 30.16, 19.5, 11.53, 21.29, -2.55, 10.69, -10.89, -13.12, -11.59, -21.24, 8.55, -36.13, 19.66, -37.09, 28.69, -37.86, 37.69, -34.01, 45.99, -30.45, 56.4, -29.07, 84.79, -20.92, 87.9, 15.15, 81.89, 25.8, 1.67, -21.02, 10.04, 2.19, 25.23, -18.25, 29.99, 0.01, 48.54, -8.4, 13.98, -21.37, 35.91, -15.6 ],
-					"hull": 16,
-					"edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ],
-					"width": 68,
-					"height": 96
-				}
-			},
-			"undie-straps": {
-				"undie-straps": {
-					"name": "goblin/undie-straps",
-					"type": "mesh",
-					"uvs": [ 0.36098, 0.4496, 0.66298, 0.60591, 1, 0.19486, 1, 0.57118, 0.75898, 1, 0.38698, 1, 0, 0.26433, 0, 0, 0.12498, 0 ],
-					"triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ],
-					"vertices": [ -10.56, 12.88, 6.54, 9.91, 25.62, 17.72, 25.62, 10.57, 11.97, 2.42, -9.09, 2.42, -31, 16.4, -31, 21.42, -23.93, 21.42 ],
-					"hull": 9,
-					"edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ],
-					"width": 55,
-					"height": 19
-				}
-			},
-			"undies": {
-				"undies": {
-					"name": "goblin/undies",
-					"type": "mesh",
-					"uvs": [ 0, 0.3203, 0.14893, 0.59457, 0.22438, 1, 0.3591, 1, 0.50999, 1, 0.7956, 0.58454, 0.98421, 0.28016, 1, 0.00588, 0.46957, 0.17647, 0, 0.03933, 0.48843, 0.59123, 0.48115, 0.431 ],
-					"triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ],
-					"vertices": [ -13.22, 5.57, -8, -2.48, -5.49, -14.28, -0.64, -14.36, 4.79, -14.46, 15.28, -2.59, 22.22, 6.12, 22.93, 14.06, 3.75, 9.45, -13.08, 13.72, 4.22, -2.59, 4.04, 2.06 ],
-					"hull": 10,
-					"edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ],
-					"width": 36,
-					"height": 29
-				}
-			}
-		}
-	},
-	{
-		"name": "goblingirl",
-		"attachments": {
-			"eyes": {
-				"eyes-closed": { "name": "goblingirl/eyes-closed", "x": 28, "y": -25.55, "rotation": -87.05, "width": 37, "height": 21 }
-			},
-			"head": {
-				"head": { "name": "goblingirl/head", "x": 27.72, "y": -4.32, "rotation": -85.58, "width": 103, "height": 81 }
-			},
-			"left-arm": {
-				"left-arm": { "name": "goblingirl/left-arm", "x": 19.64, "y": -2.43, "rotation": 33.05, "width": 37, "height": 35 }
-			},
-			"left-foot": {
-				"left-foot": { "name": "goblingirl/left-foot", "type": "linkedmesh", "skin": "goblin", "parent": "left-foot", "width": 65, "height": 31 }
-			},
-			"left-hand": {
-				"left-hand": {
-					"name": "goblingirl/left-hand",
-					"x": 4.34,
-					"y": 2.39,
-					"scaleX": 0.8965,
-					"scaleY": 0.8965,
-					"rotation": 30.35,
-					"width": 35,
-					"height": 40
-				}
-			},
-			"left-lower-leg": {
-				"left-lower-leg": { "name": "goblingirl/left-lower-leg", "x": 25.02, "y": -0.61, "rotation": 105.76, "width": 33, "height": 70 }
-			},
-			"left-shoulder": {
-				"left-shoulder": { "name": "goblingirl/left-shoulder", "x": 19.81, "y": -0.43, "rotation": 61.22, "width": 28, "height": 46 }
-			},
-			"left-upper-leg": {
-				"left-upper-leg": { "name": "goblingirl/left-upper-leg", "x": 30.22, "y": -2.95, "rotation": 89.1, "width": 33, "height": 70 }
-			},
-			"neck": {
-				"neck": { "name": "goblingirl/neck", "x": 6.16, "y": -3.15, "rotation": -98.86, "width": 35, "height": 41 }
-			},
-			"pelvis": {
-				"pelvis": { "name": "goblingirl/pelvis", "x": -3.88, "y": 3.19, "width": 62, "height": 43 }
-			},
-			"right-arm": {
-				"right-arm": { "name": "goblingirl/right-arm", "x": 16.85, "y": -0.66, "rotation": 93.53, "width": 28, "height": 50 }
-			},
-			"right-foot": {
-				"right-foot": { "name": "goblingirl/right-foot", "type": "linkedmesh", "skin": "goblin", "parent": "right-foot", "width": 63, "height": 33 }
-			},
-			"right-hand": {
-				"right-hand": { "name": "goblingirl/right-hand", "x": 7.22, "y": 3.44, "rotation": 91.17, "width": 36, "height": 37 }
-			},
-			"right-hand-thumb": {
-				"right-hand-thumb": { "name": "goblingirl/right-hand", "x": 7.22, "y": 3.44, "rotation": 91.17, "width": 36, "height": 37 }
-			},
-			"right-lower-leg": {
-				"right-lower-leg": { "name": "goblingirl/right-lower-leg", "x": 26.15, "y": -3.28, "rotation": 111.84, "width": 36, "height": 76 }
-			},
-			"right-shoulder": {
-				"right-shoulder": { "name": "goblingirl/right-shoulder", "x": 14.46, "y": 0.46, "rotation": 129.85, "width": 39, "height": 45 }
-			},
-			"right-upper-leg": {
-				"right-upper-leg": { "name": "goblingirl/right-upper-leg", "x": 19.7, "y": 2.13, "rotation": 97.5, "width": 34, "height": 63 }
-			},
-			"torso": {
-				"torso": { "name": "goblingirl/torso", "x": 36.28, "y": -5.14, "rotation": -95.75, "width": 68, "height": 96 }
-			},
-			"undie-straps": {
-				"undie-straps": { "name": "goblingirl/undie-straps", "x": -1.52, "y": 14.19, "width": 55, "height": 19 }
-			},
-			"undies": {
-				"undies": { "name": "goblingirl/undies", "x": 5.4, "y": 1.71, "width": 36, "height": 29 }
-			}
-		}
-	}
-],
-"animations": {
-	"walk": {
-		"slots": {
-			"eyes": {
-				"attachment": [
-					{ "time": 0.7, "name": "eyes-closed" },
-					{ "time": 0.8 }
-				]
-			}
-		},
-		"bones": {
-			"left-upper-leg": {
-				"rotate": [
-					{ "value": -26.56 },
-					{ "time": 0.1333, "value": -8.79 },
-					{ "time": 0.2333, "value": 9.51 },
-					{ "time": 0.3667, "value": 30.74 },
-					{ "time": 0.5, "value": 25.34 },
-					{ "time": 0.6333, "value": 26.12 },
-					{ "time": 0.7333, "value": 7.45 },
-					{ "time": 0.8667, "value": -21.19 },
-					{ "time": 1, "value": -26.56 }
-				],
-				"translate": [
-					{ "x": -1.32, "y": 1.71 },
-					{ "time": 0.3667, "x": -0.06, "y": 2.43 },
-					{ "time": 1, "x": -1.32, "y": 1.71 }
-				]
-			},
-			"right-upper-leg": {
-				"rotate": [
-					{ "value": 42.45 },
-					{
-						"time": 0.1333,
-						"value": 49.86,
-						"curve": [ 0.175, 49.86, 0.204, 22.69 ]
-					},
-					{ "time": 0.2333, "value": 22.51 },
-					{ "time": 0.5, "value": -16.94 },
-					{ "time": 0.6333, "value": 1.9 },
-					{
-						"time": 0.7333,
-						"value": 34.87,
-						"curve": [ 0.795, 37.71, 0.867, 58.69 ]
-					},
-					{
-						"time": 0.8667,
-						"value": 58.69,
-						"curve": [ 0.933, 58.35, 1, 42.45 ]
-					},
-					{ "time": 1, "value": 42.45 }
-				],
-				"translate": [
-					{ "x": 6.24 },
-					{ "time": 0.2333, "x": 2.14, "y": 2.4 },
-					{ "time": 0.5, "x": 2.44, "y": 4.8 },
-					{ "time": 1, "x": 6.24 }
-				]
-			},
-			"left-lower-leg": {
-				"rotate": [
-					{ "value": -18.05 },
-					{ "time": 0.1333, "value": -63.51 },
-					{ "time": 0.2333, "value": -83.02 },
-					{ "time": 0.5, "value": 5.12 },
-					{ "time": 0.6333, "value": -28.3 },
-					{ "time": 0.7333, "value": -27.52 },
-					{ "time": 0.8667, "value": 3.53 },
-					{ "time": 1, "value": -18.05 }
-				],
-				"translate": [
-					{},
-					{ "time": 0.2333, "x": 2.56, "y": -0.47 },
-					{ "time": 0.5 }
-				]
-			},
-			"left-foot": {
-				"rotate": [
-					{ "value": -14.57 },
-					{ "time": 0.1333, "value": -10.42 },
-					{ "time": 0.2333, "value": -5.01 },
-					{ "time": 0.3, "value": 6.67 },
-					{ "time": 0.3667, "value": 3.87 },
-					{ "time": 0.5, "value": -3.88 },
-					{ "time": 0.6333, "value": 2.78 },
-					{ "time": 0.7333, "value": -12 },
-					{ "time": 0.8667, "value": -12.45 },
-					{ "time": 1, "value": -14.57 }
-				]
-			},
-			"right-shoulder": {
-				"rotate": [
-					{
-						"value": 5.29,
-						"curve": [ 0.167, 5.29, 0.475, 6.65 ]
-					},
-					{ "time": 0.6333, "value": 6.65 },
-					{ "time": 1, "value": 5.29 }
-				]
-			},
-			"right-arm": {
-				"rotate": [
-					{
-						"value": -4.03,
-						"curve": [ 0.169, -3.91, 0.51, 19.66 ]
-					},
-					{
-						"time": 0.6333,
-						"value": 19.79,
-						"curve": [ 0.746, 19.75, 0.922, -3.91 ]
-					},
-					{ "time": 1, "value": -4.03 }
-				]
-			},
-			"right-hand": {
-				"rotate": [
-					{ "value": 8.99 },
-					{ "time": 0.6333, "value": 0.51 },
-					{ "time": 1, "value": 8.99 }
-				]
-			},
-			"left-shoulder": {
-				"rotate": [
-					{
-						"value": 6.26,
-						"curve": [ 0.17, 6.26, 0.342, -11.79 ]
-					},
-					{
-						"time": 0.5,
-						"value": -11.79,
-						"curve": [ 0.641, -11.79, 0.843, 6.16 ]
-					},
-					{ "time": 1, "value": 6.26 }
-				],
-				"translate": [
-					{ "x": 1.15, "y": 0.24 }
-				]
-			},
-			"left-hand": {
-				"rotate": [
-					{
-						"value": -21.24,
-						"curve": [ 0.148, -21.24, 0.378, -27.21 ]
-					},
-					{
-						"time": 0.5,
-						"value": -27.28,
-						"curve": [ 0.621, -27.28, 0.875, -21.4 ]
-					},
-					{ "time": 1, "value": -21.24 }
-				]
-			},
-			"left-arm": {
-				"rotate": [
-					{
-						"value": 28.38,
-						"curve": [ 0.17, 28.38, 0.342, 60.09 ]
-					},
-					{
-						"time": 0.5,
-						"value": 60.09,
-						"curve": [ 0.641, 60.09, 0.843, 28.54 ]
-					},
-					{ "time": 1, "value": 28.38 }
-				]
-			},
-			"torso": {
-				"rotate": [
-					{ "value": -10.28 },
-					{
-						"time": 0.1333,
-						"value": -15.39,
-						"curve": [ 0.261, -15.36, 0.324, -9.78 ]
-					},
-					{
-						"time": 0.3667,
-						"value": -9.78,
-						"curve": [ 0.521, -10.8, 0.545, -15.72 ]
-					},
-					{
-						"time": 0.6333,
-						"value": -15.75,
-						"curve": [ 0.688, -15.66, 0.819, -7.07 ]
-					},
-					{
-						"time": 0.8667,
-						"value": -7.07,
-						"curve": [ 0.895, -7.07, 0.975, -10.25 ]
-					},
-					{ "time": 1, "value": -10.28 }
-				]
-			},
-			"right-foot": {
-				"rotate": [
-					{ "value": -5.25 },
-					{ "time": 0.2333, "value": -17.77 },
-					{ "time": 0.3667, "value": -20.1 },
-					{ "time": 0.5, "value": -19.74 },
-					{ "time": 0.7333, "value": -11.69 },
-					{ "time": 0.8, "value": 4.47 },
-					{ "time": 0.8667, "value": 0.46 },
-					{ "time": 1, "value": -5.25 }
-				]
-			},
-			"right-lower-leg": {
-				"rotate": [
-					{
-						"value": -3.39,
-						"curve": [ 0.042, -4.01, 0.099, -42.81 ]
-					},
-					{
-						"time": 0.1333,
-						"value": -43.22,
-						"curve": [ 0.175, -43.22, 0.204, -26.09 ]
-					},
-					{ "time": 0.2333, "value": -25.98 },
-					{ "time": 0.5, "value": -19.53 },
-					{ "time": 0.6333, "value": -64.8 },
-					{
-						"time": 0.7333,
-						"value": -89.54,
-						"curve": [ 0.882, -74, 1, -3.39 ]
-					},
-					{ "time": 1, "value": -3.39 }
-				],
-				"translate": [
-					{ "time": 0.5 },
-					{ "time": 0.6333, "x": 2.19, "y": 0.21 },
-					{ "time": 1 }
-				]
-			},
-			"hip": {
-				"translate": [
-					{ "y": -8.4 },
-					{
-						"time": 0.1333,
-						"y": -9.35,
-						"curve": [ 0.166, 0, 0.201, 0, 0.166, -8.91, 0.201, -1.14 ]
-					},
-					{
-						"time": 0.2333,
-						"y": -0.59,
-						"curve": [ 0.277, 0, 0.319, 0, 0.277, -1.92, 0.319, -2.96 ]
-					},
-					{ "time": 0.3667, "y": -3.97 },
-					{ "time": 0.5, "y": -8.4 },
-					{
-						"time": 0.6333,
-						"y": -10.01,
-						"curve": [ 0.669, 0, 0.698, 0, 0.669, -7.79, 0.698, -6.49 ]
-					},
-					{
-						"time": 0.7333,
-						"y": -5.3,
-						"curve": [ 0.756, 0, 0.778, 0, 0.756, -4.27, 0.778, -3.35 ]
-					},
-					{
-						"time": 0.8,
-						"y": -2.5,
-						"curve": [ 0.821, 0, 0.843, 0, 0.821, -3.02, 0.843, -3.5 ]
-					},
-					{ "time": 0.8667, "y": -3.97 },
-					{ "time": 1, "y": -8.4 }
-				]
-			},
-			"neck": {
-				"rotate": [
-					{ "value": 3.6 },
-					{ "time": 0.1333, "value": 17.5 },
-					{ "time": 0.2333, "value": 6.11 },
-					{ "time": 0.3667, "value": 3.46 },
-					{ "time": 0.5, "value": 5.18 },
-					{ "time": 0.6333, "value": 18.36 },
-					{ "time": 0.7333, "value": 6.09 },
-					{ "time": 0.8667, "value": 2.29 },
-					{ "time": 1, "value": 3.6 }
-				]
-			},
-			"head": {
-				"rotate": [
-					{
-						"value": 3.6,
-						"curve": [ 0, 3.6, 0.094, -0.89 ]
-					},
-					{ "time": 0.1333, "value": -0.21 },
-					{ "time": 0.2333, "value": 6.11 },
-					{ "time": 0.3667, "value": 3.46 },
-					{
-						"time": 0.5,
-						"value": 5.18,
-						"curve": [ 0.5, 5.18, 0.617, -1.4 ]
-					},
-					{ "time": 0.6667, "value": 1.11 },
-					{ "time": 0.7333, "value": 6.09 },
-					{ "time": 0.8667, "value": 2.29 },
-					{ "time": 1, "value": 3.6 }
-				]
-			},
-			"pelvis": {
-				"rotate": [
-					{ "value": -1.34 }
-				],
-				"translate": [
-					{ "x": 0.39, "y": -0.78 }
-				]
-			},
-			"spear1": {
-				"rotate": [
-					{ "value": 1.85 },
-					{ "time": 0.2, "value": -5.39 },
-					{ "time": 0.5, "value": 2.95 },
-					{ "time": 0.7333, "value": -3.67 },
-					{ "time": 1, "value": 1.85 }
-				]
-			},
-			"spear2": {
-				"rotate": [
-					{ "value": 1.85 },
-					{ "time": 0.2, "value": -5.39 },
-					{ "time": 0.5, "value": 2.95 },
-					{ "time": 0.7333, "value": -3.67 },
-					{ "time": 1, "value": 1.85 }
-				]
-			},
-			"spear3": {
-				"rotate": [
-					{ "value": 3.64 },
-					{ "time": 0.2, "value": -3.6 },
-					{ "time": 0.5, "value": 4.74 },
-					{ "time": 0.7333, "value": -1.88 },
-					{ "time": 1, "value": 3.64 }
-				]
-			}
-		},
-		"attachments": {
-			"default": {
-				"right-hand-item": {
-					"dagger": {
-						"deform": [
-							{
-								"offset": 26,
-								"vertices": [ 2.34755, 0.1447 ],
-								"curve": [ 0.125, 0, 0.375, 1 ]
-							},
-							{
-								"time": 0.5,
-								"offset": 8,
-								"vertices": [ -1.19415, 4.31532, 0.07279, 6.41351, 1.66048, 6.18883, 1.75233, 3.59555 ],
-								"curve": [ 0.625, 0, 0.875, 1 ]
-							},
-							{
-								"time": 1,
-								"offset": 26,
-								"vertices": [ 2.34755, 0.1447 ]
-							}
-						]
-					}
-				}
-			},
-			"goblin": {
-				"head": {
-					"head": {
-						"deform": [
-							{
-								"curve": [ 0.127, 0, 0.15, 1 ]
-							},
-							{
-								"time": 0.2,
-								"vertices": [ -10.97827, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08534, 0.08392, -1.08534, 0.08392, -1.08534, 0.08392, 0, 0, -2.22325, 2.66465, -4.83295, 2.70085, -5.70553, -0.51941, -3.15962, -1.61502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64742, 0.81612, -11.82286, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08534, 0.08392 ],
-								"curve": [ 0.242, 0, 0.325, 1 ]
-							},
-							{
-								"time": 0.3667,
-								"vertices": [ 10.69276, 4.05949, 3.66373, 1.85427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.47305, 0.09018, 1.47305, 0.09018, 1.47305, 0.09018, 0, 0, 2.69653, -0.22738, 3.77135, 0.11418, 3.6893, 1.55352, 2.49595, 1.65501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.45881, -3.9113, 9.19594, -1.66854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.47305, 0.09018 ],
-								"curve": [ 0.574, 0, 0.617, 1 ]
-							},
-							{
-								"time": 0.7,
-								"vertices": [ -10.97827, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.17551, -0.17183, -1.17551, -0.17183, -1.17551, -0.17183, 0, 0, -2.22325, 2.66465, -4.83295, 2.70085, -5.70553, -0.51941, -3.15962, -1.61502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64742, 0.81612, -11.82286, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.17551, -0.17183 ],
-								"curve": [ 0.742, 0, 0.825, 1 ]
-							},
-							{
-								"time": 0.8667,
-								"vertices": [ 10.69276, 4.05949, 3.66373, 1.85427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.38687, 0.08446, 0.38687, 0.08446, 0.38687, 0.08446, 0, 0, 2.69653, -0.22738, 3.77135, 0.11418, 3.6893, 1.55352, 2.49595, 1.65501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.45881, -3.9113, 9.19594, -1.66854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.38687, 0.08446 ],
-								"curve": [ 0.9, 0, 0.967, 1 ]
-							},
-							{ "time": 1 }
-						]
-					}
-				},
-				"left-foot": {
-					"left-foot": {
-						"deform": [
-							{
-								"offset": 8,
-								"vertices": [ 3.69298, 2.37573, -7.16969, 18.79733, -12.78162, 14.7778, -12.75776, 6.50514, -3.13476, 1.98906, -0.44402, 0.36629, 0, 0, -3.80085, 2.98474 ]
-							},
-							{ "time": 0.1333 },
-							{
-								"time": 0.2333,
-								"offset": 8,
-								"vertices": [ -3.96073, -2.34594, -5.80446, -12.47629, -2.2313, -12.99038, 2.02942, -9.1036, 0, 0, 0, 0, 0, 0, -1.35254, -5.2883 ]
-							},
-							{
-								"time": 0.3667,
-								"offset": 8,
-								"vertices": [ 0.66505, 0.33548, 0.33902, 2.69014, -0.48171, 2.54524, -1.13593, 1.38562, 0, 0, 0, 0, 0, 0, -0.11908, 0.79273 ]
-							},
-							{ "time": 0.5, "curve": "stepped" },
-							{ "time": 0.6333 },
-							{
-								"time": 0.7333,
-								"offset": 8,
-								"vertices": [ -2.97738, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72607, 6.30799, 0, 0, -1.48902, 4.88944, -7.06773, 10.70102 ]
-							},
-							{
-								"time": 0.8333,
-								"offset": 6,
-								"vertices": [ 1.05319, 1.56362, -2.52723, 7.9974, -5.52031, 17.14137, -8.93317, 15.79635, -10.73748, 10.22056, -4.23801, 5.36992, 0, 0, 0, 0, -5.83148, 8.55532 ]
-							},
-							{
-								"time": 1,
-								"offset": 8,
-								"vertices": [ 3.69298, 2.37573, -7.16969, 18.79733, -12.78162, 14.7778, -12.75776, 6.50514, -3.13476, 1.98906, -0.44402, 0.36629, 0, 0, -3.80085, 2.98474 ]
-							}
-						]
-					}
-				},
-				"pelvis": {
-					"pelvis": {
-						"deform": [
-							{},
-							{
-								"time": 0.1333,
-								"offset": 6,
-								"vertices": [ -0.6899, -4.13284 ]
-							},
-							{
-								"time": 0.3333,
-								"offset": 6,
-								"vertices": [ -1.04945, -3.10477 ]
-							},
-							{
-								"time": 0.7,
-								"offset": 6,
-								"vertices": [ -1.4245, -6.30617 ]
-							},
-							{
-								"time": 0.8667,
-								"offset": 6,
-								"vertices": [ -1.13542, -1.79036 ]
-							},
-							{ "time": 1 }
-						]
-					}
-				},
-				"right-foot": {
-					"right-foot": {
-						"deform": [
-							{},
-							{
-								"time": 0.1333,
-								"offset": 2,
-								"vertices": [ -2.81259, 2.63115, -2.35238, 3.89441, -1.99921, 4.8639, -0.93273, 5.57982, -0.48886, 5.09855, -0.34813, 3.42912, -0.17446, 1.36899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.31305, 1.91372, -1.32986, 3.65703 ]
-							},
-							{
-								"time": 0.2333,
-								"offset": 2,
-								"vertices": [ -6.39088, 6.41246, -7.74575, 8.27192, -7.02471, 11.35894, -4.03471, 13.93454, -2.50399, 12.62963, -1.46125, 7.58915, -0.17446, 1.36899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.84766, 2.61216, -4.53956, 7.92358 ]
-							},
-							{
-								"time": 0.3,
-								"offset": 2,
-								"vertices": [ -8.27185, 6.68822, -9.29764, 10.13797, -8.62231, 14.7134, -4.5863, 18.81939, -2.20304, 17.10709, -0.07795, 9.9046, 2.54452, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94625, 2.38008, -4.59399, 10.01888 ]
-							},
-							{
-								"time": 0.3667,
-								"offset": 2,
-								"vertices": [ -10.47684, 9.44176, -13.36883, 12.40983, -14.32569, 16.94392, -9.24463, 23.55674, -5.51712, 21.51378, -1.19582, 11.53193, 2.54452, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.14848, 2.29389, -6.63419, 11.37127 ]
-							},
-							{
-								"time": 0.5,
-								"offset": 2,
-								"vertices": [ -5.42474, 4.36854, -10.59004, 7.04468, -11.64251, 11.55845, -6.19665, 20.12806, -1.45498, 18.05411, 4.8662, 6.41679, 2.81463, 0.27601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.96412, 4.9483 ]
-							},
-							{ "time": 0.6333 },
-							{
-								"time": 0.7333,
-								"offset": 4,
-								"vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08368, -7.15892, -11.63194, -5.6792, -4.83545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06164, -6.93844 ]
-							},
-							{
-								"time": 0.8,
-								"offset": 4,
-								"vertices": [ 0.65731, -3.4205, -0.43953, -6.2724, -2.99255, -7.04184, -3.57946, -5.81597, -2.8396, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79688, -1.28021, 0, 0, 0, 0, -1.03082, -3.46922 ]
-							},
-							{ "time": 0.8667 }
-						]
-					}
-				},
-				"right-hand": {
-					"right-hand": {
-						"deform": [
-							{
-								"offset": 4,
-								"vertices": [ -1.48417, 0.34736, 0, 0, 1.31152, 0.08085, 1.60296, 0.09882, 0.13673, 0.15471, 0, 0, 0, 0, -0.72862, -0.0449 ]
-							},
-							{ "time": 0.5 },
-							{
-								"time": 1,
-								"offset": 4,
-								"vertices": [ -1.48417, 0.34736, 0, 0, 1.31152, 0.08085, 1.60296, 0.09882, 0.13673, 0.15471, 0, 0, 0, 0, -0.72862, -0.0449 ]
-							}
-						]
-					}
-				},
-				"right-lower-leg": {
-					"right-lower-leg": {
-						"deform": [
-							{},
-							{
-								"time": 0.6,
-								"offset": 6,
-								"vertices": [ 1.80396, -1.56553 ]
-							},
-							{ "time": 1 }
-						]
-					}
-				},
-				"right-upper-leg": {
-					"right-upper-leg": {
-						"deform": [
-							{
-								"vertices": [ -6.03857, -1.46325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.34685, -1.93102, -1.86047, -5.05266, -2.5014, -3.09985 ]
-							},
-							{ "time": 0.3333 },
-							{
-								"time": 0.8667,
-								"offset": 14,
-								"vertices": [ 0.13425, -2.35378, -1.33318, -5.99573, -1.35862, -4.43324 ]
-							},
-							{
-								"time": 1,
-								"vertices": [ -6.03857, -1.46325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.34685, -1.93102, -1.86047, -5.05266, -2.5014, -3.09985 ]
-							}
-						]
-					}
-				},
-				"torso": {
-					"torso": {
-						"deform": [
-							{
-								"offset": 2,
-								"vertices": [ 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, -1.24131, 2.62652, -2.47492, 0.71183, -0.26363, -0.5308, 0.24821, 2.86673, 0.24821, 2.86673, 0, 0, 0, 0, 0, 0, 0, 0, 1.34461, 0.25215, 0.24821, 2.86673, 0.82507, 1.61798, 0.24821, 2.86673, 0, 0, -1.86431, -0.4326, 0.24821, 2.86673 ]
-							},
-							{
-								"time": 0.1333,
-								"offset": 2,
-								"vertices": [ 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 1.66908, 3.51187, -0.62355, 2.47979, 1.1045, 3.49684, -1.09009, 6.08429, 0.35589, 4.10914, 0, 0, 0, 0, 0, 0, 0, 0, 3.01291, 0.15693, 0.35589, 4.10914, -1.11398, 3.7954, 0.35589, 4.10914, 0, 0, -2.96167, 0.55563, -2.20741, 4.40587 ]
-							},
-							{
-								"time": 0.3,
-								"offset": 2,
-								"vertices": [ 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 6.32601, 0.19387, 7.84315, 1.94837, 7.08587, 3.64119, 4.52343, 4.46961, 0.2884, 3.32948, 0, 0, 0, 0, 0, 0, 0, 0, 4.36416, -1.83876, 0.2884, 3.32948, 4.2925, 3.60194, 0.2884, 3.32948, 0, 0, 3.72601, -0.19338, 0.2884, 3.32948 ]
-							},
-							{
-								"time": 0.5,
-								"offset": 2,
-								"vertices": [ 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 2.57273, 2.74457, 2.88831, 3.04797, 3.48442, 3.04655, 1.80035, 4.609, 0.3133, 3.61659, 0, 0, 0, 0, 0, 0, 0, 0, 3.53782, -0.82203, 0.3133, 3.61659, 1.80022, 3.63246, 0.3133, 3.61659, 0, 0, 0.62718, 0.33564, -1.22467, 3.79463 ]
-							},
-							{
-								"time": 0.6333,
-								"offset": 2,
-								"vertices": [ 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 1.19401, 3.60798, -0.53546, 3.49565, 1.1926, 4.5127, -1.002, 7.10015, 0.44398, 5.125, 0, 0, 0, 0, 0, 0, 0, 0, 3.101, 1.17278, 0.44398, 5.125, -1.02589, 4.81126, 0.44398, 5.125, 0, 0, -2.87358, 1.57149, -2.11931, 5.42173 ]
-							},
-							{
-								"time": 0.8667,
-								"offset": 2,
-								"vertices": [ 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.92587, 2.24385, 0.68874, 1.29945, 3.55433, 3.00604, 2.71494, 5.89962, 0.30385, 3.50647, 0, 0, 0, 0, 0, 0, 0, 0, 1.96775, 0.40548, 0.30385, 3.50647, 2.6104, 2.3545, 0.30385, 3.50647, 0, 0, 0.22709, -0.12851, -0.62826, 3.61437 ]
-							},
-							{
-								"time": 1,
-								"offset": 2,
-								"vertices": [ 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, -1.1615, 3.54805, -2.39511, 1.63336, -0.18382, 0.39073, 0.32802, 3.78826, 0.32802, 3.78826, 0, 0, 0, 0, 0, 0, 0, 0, 1.42442, 1.17368, 0.32802, 3.78826, 0.90488, 2.53951, 0.32802, 3.78826, 0, 0, -1.7845, 0.48894, 0.32802, 3.78826 ]
-							}
-						]
-					}
-				},
-				"undie-straps": {
-					"undie-straps": {
-						"deform": [
-							{
-								"offset": 2,
-								"vertices": [ -1.77697, 0.5476, -0.96145, -1.03793, -0.39148, -0.24072, -1.77697, 0.5476 ]
-							},
-							{
-								"time": 0.1333,
-								"offset": 2,
-								"vertices": [ -2.25684, -1.03177, -1.49719, -4.23862, -0.7447, -2.84907, -1.90072, 0.54478 ]
-							},
-							{
-								"time": 0.3333,
-								"offset": 2,
-								"vertices": [ -2.37974, -0.05432, -0.49433, 0.19437, -0.90861, 1.16519, -1.60956, 2.70799, 0.96186, 0.80615 ]
-							},
-							{
-								"time": 0.7,
-								"offset": 2,
-								"vertices": [ -0.91715, -2.76567, -0.62215, -3.63489, -0.84941, -2.26772, -2.56077, 0.52971 ]
-							},
-							{
-								"time": 0.8667,
-								"offset": 2,
-								"vertices": [ -2.56077, 0.52971, -1.58065, 0.32031, -1.3847, 0.32476, -2.56077, 0.52971 ]
-							},
-							{
-								"time": 1,
-								"offset": 2,
-								"vertices": [ -1.77697, 0.5476, -0.80128, 0.53413, -0.80128, 0.53413, -1.77697, 0.5476 ]
-							}
-						]
-					}
-				},
-				"undies": {
-					"undies": {
-						"deform": [
-							{
-								"vertices": [ 0.43099, 0.722, 10.60295, -0.117, 2.29599, 0, 2.29599, 0, 2.29599, 0, 0.58799, 0.244, -2.40018, -0.65335, -2.2782, -0.77534, 2.29599, 0, 0.58799, -0.488, 4.98698, -0.117, 6.50797, -0.23399 ]
-							},
-							{
-								"time": 0.1333,
-								"vertices": [ 0.72659, 0.4332, 7.20417, -0.1638, 1.37759, 0, 1.37759, 0, 1.37759, 0, 1.25279, 0.0464, -0.99862, -2.95085, -1.37543, -3.07404, 1.37759, 0, 0.35279, -0.2928, 2.99219, -0.0702, 3.90478, -0.1404 ]
-							},
-							{
-								"time": 0.3333,
-								"vertices": [ 1.16999, 0, 2.10599, -0.23401, 0, 0, 0, 0, 0, 0, 2.24999, -0.24999, -0.4344, 0.60551, -1.55939, 0.48051 ]
-							},
-							{
-								"time": 0.5333,
-								"vertices": [ 1.16999, 0, -0.234, -0.936, -2.92499, 0.351, 0, 0, 0, 0, 0.5, -0.24999, -0.64079, -2.07915, -0.64079, -2.07915 ]
-							},
-							{
-								"time": 0.7,
-								"vertices": [ 1.86271, -0.11514, 4.66327, -0.091, -1.76428, 0.21171, 0, 0, -0.56833, 0.32833, -1.13833, -1.15111, -2.19996, -3.47068, -1.29719, -3.47068, 0, 0, 0, 0, 1.58785, -0.04643, 2.65942, 0.16715 ]
-							},
-							{
-								"time": 0.8333,
-								"vertices": [ 2.41688, -0.20726, 8.58108, 0.585, -0.83571, 0.10029, 0, 0, -1.02299, 0.59099, -2.449, -1.872, -1.625, 0, 0, 0, 0, 0, 0, 0, 2.85813, -0.08357, 4.78695, 0.30086 ]
-							},
-							{
-								"time": 0.8667,
-								"vertices": [ 2.0197, -0.02141, 8.98546, 0.4446, -0.20937, 0.08023, 0.4592, 0, -0.3592, 0.47279, -1.8416, -1.4488, -0.79153, 1.26421, 0.53286, 1.23981, 0.4592, 0, 0.1176, -0.0976, 3.2839, -0.09025, 5.13116, 0.19389 ]
-							},
-							{
-								"time": 1,
-								"vertices": [ 0.43099, 0.722, 10.60295, -0.117, 2.29599, 0, 2.29599, 0, 2.29599, 0, 0.58799, 0.244, -2.40018, -0.65335, -2.2782, -0.77534, 2.29599, 0, 0.58799, -0.488, 4.98698, -0.117, 6.50797, -0.23399 ]
-							}
-						]
-					}
-				}
-			}
-		}
-	}
-}
-}

+ 0 - 101
spine-cocos2d-objc/Resources/goblins.atlas

@@ -1,101 +0,0 @@
-goblins.png
-	size: 1024, 128
-	filter: Linear, Linear
-dagger
-	bounds: 372, 100, 26, 108
-	rotate: 90
-goblin/eyes-closed
-	bounds: 2, 7, 34, 12
-goblin/head
-	bounds: 107, 36, 103, 66
-goblin/left-arm
-	bounds: 901, 56, 37, 35
-goblin/left-foot
-	bounds: 929, 95, 65, 31
-goblin/left-hand
-	bounds: 452, 2, 36, 41
-goblin/left-lower-leg
-	bounds: 713, 93, 33, 70
-	rotate: 90
-goblin/left-shoulder
-	bounds: 610, 44, 29, 44
-goblin/left-upper-leg
-	bounds: 638, 93, 33, 73
-	rotate: 90
-goblin/neck
-	bounds: 490, 2, 36, 41
-goblin/pelvis
-	bounds: 482, 45, 62, 43
-goblin/right-arm
-	bounds: 690, 2, 23, 50
-	rotate: 90
-goblin/right-foot
-	bounds: 771, 58, 63, 33
-goblin/right-hand
-	bounds: 940, 56, 36, 37
-goblin/right-lower-leg
-	bounds: 482, 90, 36, 76
-	rotate: 90
-goblin/right-shoulder
-	bounds: 602, 3, 39, 45
-	rotate: 90
-goblin/right-upper-leg
-	bounds: 641, 57, 34, 63
-	rotate: 90
-goblin/torso
-	bounds: 212, 34, 68, 96
-	rotate: 90
-goblin/undie-straps
-	bounds: 380, 5, 55, 19
-goblin/undies
-	bounds: 174, 5, 36, 29
-goblingirl/eyes-closed
-	bounds: 269, 11, 37, 21
-goblingirl/head
-	bounds: 2, 21, 103, 81
-goblingirl/left-arm
-	bounds: 978, 56, 37, 35
-	rotate: 90
-goblingirl/left-foot
-	bounds: 107, 3, 65, 31
-goblingirl/left-hand
-	bounds: 565, 2, 35, 40
-goblingirl/left-lower-leg
-	bounds: 785, 93, 33, 70
-	rotate: 90
-goblingirl/left-shoulder
-	bounds: 690, 27, 28, 46
-	rotate: 90
-goblingirl/left-upper-leg
-	bounds: 857, 93, 33, 70
-	rotate: 90
-goblingirl/neck
-	bounds: 528, 2, 35, 41
-goblingirl/pelvis
-	bounds: 546, 45, 62, 43
-goblingirl/right-arm
-	bounds: 452, 48, 28, 50
-goblingirl/right-foot
-	bounds: 836, 58, 63, 33
-goblingirl/right-hand
-	bounds: 771, 20, 36, 37
-	rotate: 90
-goblingirl/right-lower-leg
-	bounds: 560, 90, 36, 76
-	rotate: 90
-goblingirl/right-shoulder
-	bounds: 649, 10, 39, 45
-goblingirl/right-upper-leg
-	bounds: 706, 57, 34, 63
-	rotate: 90
-goblingirl/torso
-	bounds: 310, 2, 68, 96
-goblingirl/undie-straps
-	bounds: 212, 13, 55, 19
-goblingirl/undies
-	bounds: 810, 27, 36, 29
-shield
-	bounds: 380, 26, 70, 72
-spear
-	bounds: 2, 104, 22, 368
-	rotate: 90

BIN=BIN
spine-cocos2d-objc/Resources/goblins.png


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 716
spine-cocos2d-objc/Resources/raptor-pro.json


+ 0 - 93
spine-cocos2d-objc/Resources/raptor.atlas

@@ -1,93 +0,0 @@
-raptor.png
-	size: 1024, 512
-	filter: Linear, Linear
-	scale: 0.5
-back-arm
-	bounds: 895, 295, 46, 25
-back-bracer
-	bounds: 992, 216, 39, 28
-	rotate: 90
-back-hand
-	bounds: 594, 58, 36, 34
-back-knee
-	bounds: 729, 86, 49, 67
-	rotate: 90
-back-thigh
-	bounds: 379, 2, 39, 24
-eyes-open
-	bounds: 902, 194, 47, 45
-	rotate: 90
-front-arm
-	bounds: 945, 306, 48, 26
-front-bracer
-	bounds: 949, 197, 41, 29
-front-hand
-	bounds: 949, 266, 41, 38
-front-open-hand
-	bounds: 875, 148, 43, 44
-front-thigh
-	bounds: 793, 171, 57, 29
-	rotate: 90
-gun
-	bounds: 379, 28, 107, 103
-	rotate: 90
-gun-nohand
-	bounds: 487, 87, 105, 102
-head
-	bounds: 807, 361, 136, 149
-lower-leg
-	bounds: 827, 195, 73, 98
-mouth-grind
-	bounds: 920, 145, 47, 30
-	rotate: 90
-mouth-smile
-	bounds: 992, 257, 47, 30
-	rotate: 90
-neck
-	bounds: 359, 114, 18, 21
-raptor-back-arm
-	bounds: 653, 142, 82, 86
-raptor-body
-	bounds: 2, 277, 632, 233
-raptor-front-arm
-	bounds: 484, 4, 81, 102
-	rotate: 90
-raptor-front-leg
-	bounds: 2, 18, 191, 257
-raptor-hindleg-back
-	bounds: 636, 295, 169, 215
-raptor-horn
-	bounds: 195, 22, 182, 80
-raptor-horn-back
-	bounds: 945, 334, 176, 77
-	rotate: 90
-raptor-jaw
-	bounds: 359, 137, 126, 138
-raptor-jaw-tooth
-	bounds: 895, 322, 37, 48
-	rotate: 90
-raptor-mouth-inside
-	bounds: 949, 228, 36, 41
-	rotate: 90
-raptor-saddle-strap-back
-	bounds: 653, 86, 54, 74
-	rotate: 90
-raptor-saddle-strap-front
-	bounds: 594, 94, 57, 95
-raptor-saddle-w-shadow
-	bounds: 195, 104, 162, 171
-raptor-tail-shadow
-	bounds: 636, 230, 189, 63
-raptor-tongue
-	bounds: 807, 295, 86, 64
-stirrup-back
-	bounds: 952, 151, 44, 35
-	rotate: 90
-stirrup-front
-	bounds: 902, 243, 45, 50
-stirrup-strap
-	bounds: 824, 147, 49, 46
-torso
-	bounds: 737, 137, 54, 91
-visor
-	bounds: 487, 191, 131, 84

BIN=BIN
spine-cocos2d-objc/Resources/raptor.png


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 557
spine-cocos2d-objc/Resources/spineboy-pro.json


+ 0 - 94
spine-cocos2d-objc/Resources/spineboy.atlas

@@ -1,94 +0,0 @@
-spineboy.png
-	size: 1024, 256
-	filter: Linear, Linear
-	scale: 0.5
-crosshair
-	bounds: 352, 7, 45, 45
-eye-indifferent
-	bounds: 862, 105, 47, 45
-eye-surprised
-	bounds: 505, 79, 47, 45
-front-bracer
-	bounds: 826, 66, 29, 40
-front-fist-closed
-	bounds: 786, 65, 38, 41
-front-fist-open
-	bounds: 710, 51, 43, 44
-	rotate: 90
-front-foot
-	bounds: 210, 6, 63, 35
-front-shin
-	bounds: 665, 128, 41, 92
-	rotate: 90
-front-thigh
-	bounds: 2, 2, 23, 56
-	rotate: 90
-front-upper-arm
-	bounds: 250, 205, 23, 49
-goggles
-	bounds: 665, 171, 131, 83
-gun
-	bounds: 798, 152, 105, 102
-head
-	bounds: 2, 27, 136, 149
-hoverboard-board
-	bounds: 2, 178, 246, 76
-hoverboard-thruster
-	bounds: 722, 96, 30, 32
-	rotate: 90
-hoverglow-small
-	bounds: 275, 81, 137, 38
-mouth-grind
-	bounds: 614, 97, 47, 30
-mouth-oooo
-	bounds: 612, 65, 47, 30
-mouth-smile
-	bounds: 661, 64, 47, 30
-muzzle-glow
-	bounds: 382, 54, 25, 25
-muzzle-ring
-	bounds: 275, 54, 25, 105
-	rotate: 90
-muzzle01
-	bounds: 911, 95, 67, 40
-	rotate: 90
-muzzle02
-	bounds: 792, 108, 68, 42
-muzzle03
-	bounds: 956, 171, 83, 53
-	rotate: 90
-muzzle04
-	bounds: 275, 7, 75, 45
-muzzle05
-	bounds: 140, 3, 68, 38
-neck
-	bounds: 250, 182, 18, 21
-portal-bg
-	bounds: 140, 43, 133, 133
-portal-flare1
-	bounds: 554, 65, 56, 30
-portal-flare2
-	bounds: 759, 112, 57, 31
-	rotate: 90
-portal-flare3
-	bounds: 554, 97, 58, 30
-portal-shade
-	bounds: 275, 121, 133, 133
-portal-streaks1
-	bounds: 410, 126, 126, 128
-portal-streaks2
-	bounds: 538, 129, 125, 125
-rear-bracer
-	bounds: 857, 67, 28, 36
-rear-foot
-	bounds: 663, 96, 57, 30
-rear-shin
-	bounds: 414, 86, 38, 89
-	rotate: 90
-rear-thigh
-	bounds: 756, 63, 28, 47
-rear-upper-arm
-	bounds: 60, 5, 20, 44
-	rotate: 90
-torso
-	bounds: 905, 164, 49, 90

BIN=BIN
spine-cocos2d-objc/Resources/spineboy.png


+ 0 - 5047
spine-cocos2d-objc/Resources/tank-pro.json

@@ -1,5047 +0,0 @@
-{
-"skeleton": {
-	"hash": "nW5DL2uoEfA",
-	"spine": "4.2.64-beta",
-	"x": -5852.65,
-	"y": -348.5,
-	"width": 7202.61,
-	"height": 1298.88,
-	"images": "./images/",
-	"audio": ""
-},
-"bones": [
-	{ "name": "root" },
-	{ "name": "tank-root", "parent": "root", "y": 146.79 },
-	{ "name": "tank-treads", "parent": "tank-root", "y": 48.35 },
-	{ "name": "tank-body", "parent": "tank-treads", "y": 10 },
-	{ "name": "guntower", "parent": "tank-body", "x": -21.72, "y": 245.48 },
-	{ "name": "antenna-root", "parent": "guntower", "x": 164.61, "y": 202.53 },
-	{ "name": "antenna1", "parent": "antenna-root", "length": 40, "rotation": 90, "y": 40, "color": "ffee00ff" },
-	{ "name": "antenna2", "parent": "antenna1", "length": 42, "x": 42, "color": "ffee00ff" },
-	{ "name": "antenna3", "parent": "antenna2", "length": 42, "x": 42, "color": "ffee00ff" },
-	{ "name": "antenna4", "parent": "antenna3", "length": 42, "x": 42, "color": "ffee00ff" },
-	{ "name": "antenna5", "parent": "antenna4", "length": 42, "x": 42, "color": "ffee00ff" },
-	{ "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" },
-	{ "name": "cannon-connector", "parent": "guntower", "x": -235.05, "y": 96.07 },
-	{ "name": "cannon-target", "parent": "tank-root", "x": -2276.67, "y": 400.17, "color": "0096ffff", "icon": "arrows" },
-	{ "name": "cannon", "parent": "cannon-connector", "length": 946.68, "rotation": 180, "color": "ff4000ff" },
-	{
-		"name": "machinegun-mount",
-		"parent": "guntower",
-		"length": 90.98,
-		"rotation": 90,
-		"x": -123.73,
-		"y": 218.33,
-		"color": "15ff00ff"
-	},
-	{ "name": "machinegun-target", "parent": "tank-root", "x": -2272.76, "y": 607.77, "color": "0096ffff", "icon": "ik" },
-	{
-		"name": "machinegun",
-		"parent": "machinegun-mount",
-		"length": 208.95,
-		"rotation": 90,
-		"x": 91.52,
-		"y": -1.03,
-		"color": "15ff00ff"
-	},
-	{ "name": "machinegun-tip", "parent": "machinegun", "x": 210.43, "y": -12.21 },
-	{ "name": "rock", "parent": "root", "x": -1925.2, "y": 33.17 },
-	{
-		"name": "smoke-root",
-		"parent": "tank-root",
-		"x": -1200.38,
-		"y": 405.76,
-		"scaleX": -6.5,
-		"scaleY": 6.5,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{ "name": "smoke-glow", "parent": "smoke-root", "x": 62.92, "y": -0.71, "color": "ff4000ff", "icon": "particles" },
-	{
-		"name": "smoke1",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke10",
-		"parent": "smoke-root",
-		"rotation": -103.52,
-		"x": 25.45,
-		"y": 2.48,
-		"scaleX": 3.9011,
-		"scaleY": 2.8523,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke11",
-		"parent": "smoke-root",
-		"rotation": -103.52,
-		"x": 25.45,
-		"y": 2.48,
-		"scaleX": 3.9011,
-		"scaleY": 2.8523,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke12",
-		"parent": "smoke-root",
-		"rotation": -103.52,
-		"x": 25.45,
-		"y": 2.48,
-		"scaleX": 3.9011,
-		"scaleY": 2.8523,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke13",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke14",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke15",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke16",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke17",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke18",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke2",
-		"parent": "smoke-root",
-		"rotation": -84.14,
-		"x": 45.06,
-		"y": 29.7,
-		"scaleX": 3.3345,
-		"scaleY": 3.3345,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke20",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke21",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke22",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke23",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke24",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke25",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke26",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke27",
-		"parent": "smoke-root",
-		"rotation": -179.99,
-		"x": 14.75,
-		"y": -1.55,
-		"scaleX": 1.6484,
-		"scaleY": 1.6484,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke3",
-		"parent": "smoke-root",
-		"rotation": -87.91,
-		"x": 55.15,
-		"y": -17.5,
-		"scaleX": 3.0415,
-		"scaleY": 4.157,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke4",
-		"parent": "smoke-root",
-		"rotation": -87.91,
-		"x": 69.25,
-		"y": 8.01,
-		"scaleX": 2.1808,
-		"scaleY": 2.9807,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke5",
-		"parent": "smoke-root",
-		"rotation": -87.91,
-		"x": 80.63,
-		"y": 59.88,
-		"scaleX": 4.5119,
-		"scaleY": 2.9725,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke6",
-		"parent": "smoke-root",
-		"rotation": -87.91,
-		"x": 96.19,
-		"y": 25.65,
-		"scaleX": 3.7912,
-		"scaleY": 3.0552,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke7",
-		"parent": "smoke-root",
-		"rotation": 153.68,
-		"x": 85.65,
-		"y": -50.47,
-		"scaleX": 4.8523,
-		"scaleY": 3.6528,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke8",
-		"parent": "smoke-root",
-		"rotation": 67.58,
-		"x": 47.85,
-		"y": -42.55,
-		"scaleX": 4.0006,
-		"scaleY": 3.4796,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{
-		"name": "smoke9",
-		"parent": "smoke-root",
-		"rotation": 150.05,
-		"x": 104.02,
-		"y": -8.73,
-		"scaleX": 4.2074,
-		"scaleY": 3.0762,
-		"color": "ff4000ff",
-		"icon": "particles"
-	},
-	{ "name": "tank-glow", "parent": "tank-root", "x": -247.72, "y": 404.37, "scaleX": 1.0582, "scaleY": 0.6785 },
-	{
-		"name": "tread",
-		"parent": "tank-root",
-		"length": 82,
-		"rotation": 180,
-		"x": -22.9,
-		"y": 213.86,
-		"scaleX": 0.9933,
-		"color": "e64344ff"
-	},
-	{ "name": "wheel-mid-center", "parent": "tank-root", "y": -66.21 },
-	{ "name": "tread-collider1", "parent": "wheel-mid-center", "x": -329.58, "y": -85.44, "color": "ff00fbff" },
-	{ "name": "tread-collider2", "parent": "wheel-mid-center", "x": -165.95, "y": -85.44, "color": "ff00fbff" },
-	{ "name": "tread-collider3", "parent": "wheel-mid-center", "y": -85.44, "color": "ff00fbff" },
-	{ "name": "tread-collider4", "parent": "wheel-mid-center", "x": 163.56, "y": -85.44, "color": "ff00fbff" },
-	{ "name": "tread-collider5", "parent": "wheel-mid-center", "x": 329.12, "y": -85.44, "color": "ff00fbff" },
-	{ "name": "tread-gravity1", "parent": "tank-root", "rotation": 180, "x": -175.35, "y": 149.31, "color": "ff00fbff" },
-	{ "name": "tread-gravity2", "parent": "tank-root", "rotation": 180, "x": 177.89, "y": 144.78, "color": "ff00fbff" },
-	{
-		"name": "tread10",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 48.85,
-		"x": 662.9,
-		"y": -120.35,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread11",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 97.99,
-		"x": 651.5,
-		"y": -39.69,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread12",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 113.79,
-		"x": 618.43,
-		"y": 34.83,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread13",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 122.96,
-		"x": 573.82,
-		"y": 103.18,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread14",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 142.01,
-		"x": 509.19,
-		"y": 153.3,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread15",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 157.84,
-		"x": 433.25,
-		"y": 184.02,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread16",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 157.37,
-		"x": 357.56,
-		"y": 215.37,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread17",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 157.29,
-		"x": 281.92,
-		"y": 246.8,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread18",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 157.19,
-		"x": 206.33,
-		"y": 278.38,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread19",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 157.14,
-		"x": 130.77,
-		"y": 310.02,
-		"color": "e64344ff"
-	},
-	{ "name": "tread2", "parent": "tread", "length": 82, "x": 82, "color": "e64344ff" },
-	{
-		"name": "tread20",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 157.34,
-		"x": 55.1,
-		"y": 341.41,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread21",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 158.11,
-		"x": -20.99,
-		"y": 371.77,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread22",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 157.99,
-		"x": -97.02,
-		"y": 402.28,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread23",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 157.59,
-		"x": -172.83,
-		"y": 433.33,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread24",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 156.86,
-		"x": -248.23,
-		"y": 465.34,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread25",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 177.94,
-		"x": -330.17,
-		"y": 468.27,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread26",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -169.55,
-		"x": -410.81,
-		"y": 453.5,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread27",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -163.86,
-		"x": -489.58,
-		"y": 430.86,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread28",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -139.13,
-		"x": -551.59,
-		"y": 377.57,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread29",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -89.04,
-		"x": -550.21,
-		"y": 296.14,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread3",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -8.91,
-		"x": 163.01,
-		"y": -12.61,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread30",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -38.99,
-		"x": -486.48,
-		"y": 244.89,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread31",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -20.04,
-		"x": -409.45,
-		"y": 216.98,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread32",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -46.24,
-		"x": -352.74,
-		"y": 158.15,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread33",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -27.95,
-		"x": -280.3,
-		"y": 119.98,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread34",
-		"parent": "tread",
-		"length": 82,
-		"rotation": 10.46,
-		"x": -199.66,
-		"y": 134.77,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread35",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -17.9,
-		"x": -121.63,
-		"y": 109.73,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread36",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -36.82,
-		"x": -55.99,
-		"y": 60.92,
-		"color": "fbff00ff"
-	},
-	{
-		"name": "tread4",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -29.27,
-		"x": 234.55,
-		"y": -52.43,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread5",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -45.26,
-		"x": 292.26,
-		"y": -110.28,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread6",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -15.29,
-		"x": 371.36,
-		"y": -131.76,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread7",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -5.49,
-		"x": 452.98,
-		"y": -139.55,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread8",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -24.99,
-		"x": 527.31,
-		"y": -173.95,
-		"color": "e64344ff"
-	},
-	{
-		"name": "tread9",
-		"parent": "tread",
-		"length": 82,
-		"rotation": -5.44,
-		"x": 608.94,
-		"y": -181.68,
-		"color": "e64344ff"
-	},
-	{ "name": "wheel-big-root1", "parent": "tank-treads", "x": -549.6, "y": 14.4, "color": "abe323ff" },
-	{ "name": "wheel-big-root2", "parent": "tank-treads", "x": 547.34, "y": 14.4 },
-	{ "name": "wheel-big1", "parent": "wheel-big-root1", "x": -0.02, "color": "abe323ff" },
-	{ "name": "wheel-big2", "parent": "wheel-big-root2" },
-	{ "name": "wheel-mid-root1", "parent": "wheel-mid-center", "x": -410.57, "color": "abe323ff" },
-	{ "name": "wheel-mid-root2", "parent": "wheel-mid-center", "x": -246.95 },
-	{ "name": "wheel-mid-root3", "parent": "wheel-mid-center", "x": -82.73 },
-	{ "name": "wheel-mid-root4", "parent": "wheel-mid-center", "x": 80.89 },
-	{ "name": "wheel-mid-root5", "parent": "wheel-mid-center", "x": 244.51 },
-	{ "name": "wheel-mid-root6", "parent": "wheel-mid-center", "x": 408.74 },
-	{ "name": "wheel-mid1", "parent": "wheel-mid-root1", "color": "abe323ff" },
-	{ "name": "wheel-mid2", "parent": "wheel-mid-root2" },
-	{ "name": "wheel-mid3", "parent": "wheel-mid-root3" },
-	{ "name": "wheel-mid4", "parent": "wheel-mid-root4" },
-	{ "name": "wheel-mid5", "parent": "wheel-mid-root5" },
-	{ "name": "wheel-mid6", "parent": "wheel-mid-root6" },
-	{ "name": "wheel-small-root1", "parent": "tank-treads", "x": -337.39, "y": 109.43 },
-	{ "name": "wheel-small-root2", "parent": "tank-treads", "x": 0.09, "y": 109.43 },
-	{ "name": "wheel-small-root3", "parent": "tank-treads", "x": 334.69, "y": 109.43 },
-	{ "name": "wheel-small1", "parent": "wheel-small-root1", "color": "abe323ff" },
-	{ "name": "wheel-small2", "parent": "wheel-small-root2" },
-	{ "name": "wheel-small3", "parent": "wheel-small-root3" }
-],
-"slots": [
-	{ "name": "rock", "bone": "rock", "attachment": "rock" },
-	{ "name": "ground", "bone": "root", "attachment": "ground" },
-	{ "name": "ground2", "bone": "root", "attachment": "ground" },
-	{ "name": "ground3", "bone": "root", "attachment": "ground" },
-	{ "name": "ground4", "bone": "root", "attachment": "ground" },
-	{ "name": "ground5", "bone": "root", "attachment": "ground" },
-	{ "name": "ground6", "bone": "root", "attachment": "ground" },
-	{ "name": "ground7", "bone": "root", "attachment": "ground" },
-	{ "name": "tank-body-shadow", "bone": "tank-body", "color": "ffffffb9", "attachment": "tank-bottom-shadow" },
-	{ "name": "bottom", "bone": "tank-body", "attachment": "tank-bottom" },
-	{ "name": "tread-inside1", "bone": "tread", "attachment": "tread-inside" },
-	{ "name": "tread-inside53", "bone": "tread27", "attachment": "tread-inside" },
-	{ "name": "tread-inside27", "bone": "tread14", "attachment": "tread-inside" },
-	{ "name": "tread-inside3", "bone": "tread2", "attachment": "tread-inside" },
-	{ "name": "tread-inside55", "bone": "tread28", "attachment": "tread-inside" },
-	{ "name": "tread-inside29", "bone": "tread15", "attachment": "tread-inside" },
-	{ "name": "tread-inside5", "bone": "tread3", "attachment": "tread-inside" },
-	{ "name": "tread-inside57", "bone": "tread29", "attachment": "tread-inside" },
-	{ "name": "tread-inside31", "bone": "tread16", "attachment": "tread-inside" },
-	{ "name": "tread-inside7", "bone": "tread4", "attachment": "tread-inside" },
-	{ "name": "tread-inside59", "bone": "tread30", "attachment": "tread-inside" },
-	{ "name": "tread-inside33", "bone": "tread17", "attachment": "tread-inside" },
-	{ "name": "tread-inside9", "bone": "tread5", "attachment": "tread-inside" },
-	{ "name": "tread-inside61", "bone": "tread31", "attachment": "tread-inside" },
-	{ "name": "tread-inside35", "bone": "tread18", "attachment": "tread-inside" },
-	{ "name": "tread-inside11", "bone": "tread6", "attachment": "tread-inside" },
-	{ "name": "tread-inside63", "bone": "tread32", "attachment": "tread-inside" },
-	{ "name": "tread-inside37", "bone": "tread19", "attachment": "tread-inside" },
-	{ "name": "tread-inside13", "bone": "tread7", "attachment": "tread-inside" },
-	{ "name": "tread-inside65", "bone": "tread33", "attachment": "tread-inside" },
-	{ "name": "tread-inside39", "bone": "tread20", "attachment": "tread-inside" },
-	{ "name": "tread-inside15", "bone": "tread8", "attachment": "tread-inside" },
-	{ "name": "tread-inside67", "bone": "tread34", "attachment": "tread-inside" },
-	{ "name": "tread-inside69", "bone": "tread35", "attachment": "tread-inside" },
-	{ "name": "tread-inside71", "bone": "tread36", "attachment": "tread-inside" },
-	{ "name": "tread-inside41", "bone": "tread21", "attachment": "tread-inside" },
-	{ "name": "tread-inside17", "bone": "tread9", "attachment": "tread-inside" },
-	{ "name": "tread-inside43", "bone": "tread22", "attachment": "tread-inside" },
-	{ "name": "tread-inside19", "bone": "tread10", "attachment": "tread-inside" },
-	{ "name": "tread-inside45", "bone": "tread23", "attachment": "tread-inside" },
-	{ "name": "tread-inside21", "bone": "tread11", "attachment": "tread-inside" },
-	{ "name": "tread-inside47", "bone": "tread24", "attachment": "tread-inside" },
-	{ "name": "tread-inside23", "bone": "tread12", "attachment": "tread-inside" },
-	{ "name": "tread-inside49", "bone": "tread25", "attachment": "tread-inside" },
-	{ "name": "tread-inside25", "bone": "tread13", "attachment": "tread-inside" },
-	{ "name": "tread-inside51", "bone": "tread26", "attachment": "tread-inside" },
-	{ "name": "tread-inside2", "bone": "tread", "attachment": "tread-inside" },
-	{ "name": "tread-inside54", "bone": "tread27", "attachment": "tread-inside" },
-	{ "name": "tread-inside28", "bone": "tread14", "attachment": "tread-inside" },
-	{ "name": "tread-inside4", "bone": "tread2", "attachment": "tread-inside" },
-	{ "name": "tread-inside56", "bone": "tread28", "attachment": "tread-inside" },
-	{ "name": "tread-inside30", "bone": "tread15", "attachment": "tread-inside" },
-	{ "name": "tread-inside6", "bone": "tread3", "attachment": "tread-inside" },
-	{ "name": "tread-inside58", "bone": "tread29", "attachment": "tread-inside" },
-	{ "name": "tread-inside32", "bone": "tread16", "attachment": "tread-inside" },
-	{ "name": "tread-inside8", "bone": "tread4", "attachment": "tread-inside" },
-	{ "name": "tread-inside60", "bone": "tread30", "attachment": "tread-inside" },
-	{ "name": "tread-inside34", "bone": "tread17", "attachment": "tread-inside" },
-	{ "name": "tread-inside10", "bone": "tread5", "attachment": "tread-inside" },
-	{ "name": "tread-inside62", "bone": "tread31", "attachment": "tread-inside" },
-	{ "name": "tread-inside36", "bone": "tread18", "attachment": "tread-inside" },
-	{ "name": "tread-inside12", "bone": "tread6", "attachment": "tread-inside" },
-	{ "name": "tread-inside64", "bone": "tread32", "attachment": "tread-inside" },
-	{ "name": "tread-inside38", "bone": "tread19", "attachment": "tread-inside" },
-	{ "name": "tread-inside14", "bone": "tread7", "attachment": "tread-inside" },
-	{ "name": "tread-inside66", "bone": "tread33", "attachment": "tread-inside" },
-	{ "name": "tread-inside40", "bone": "tread20", "attachment": "tread-inside" },
-	{ "name": "tread-inside16", "bone": "tread8", "attachment": "tread-inside" },
-	{ "name": "tread-inside68", "bone": "tread34", "attachment": "tread-inside" },
-	{ "name": "tread-inside70", "bone": "tread35", "attachment": "tread-inside" },
-	{ "name": "tread-inside72", "bone": "tread36", "attachment": "tread-inside" },
-	{ "name": "tread-inside42", "bone": "tread21", "attachment": "tread-inside" },
-	{ "name": "tread-inside18", "bone": "tread9", "attachment": "tread-inside" },
-	{ "name": "tread-inside44", "bone": "tread22", "attachment": "tread-inside" },
-	{ "name": "tread-inside20", "bone": "tread10", "attachment": "tread-inside" },
-	{ "name": "tread-inside46", "bone": "tread23", "attachment": "tread-inside" },
-	{ "name": "tread-inside22", "bone": "tread11", "attachment": "tread-inside" },
-	{ "name": "tread-inside48", "bone": "tread24", "attachment": "tread-inside" },
-	{ "name": "tread-inside24", "bone": "tread12", "attachment": "tread-inside" },
-	{ "name": "tread-inside50", "bone": "tread25", "attachment": "tread-inside" },
-	{ "name": "tread-inside26", "bone": "tread13", "attachment": "tread-inside" },
-	{ "name": "tread-inside52", "bone": "tread26", "attachment": "tread-inside" },
-	{ "name": "wheel-big", "bone": "wheel-big1", "color": "dbdbdbff", "attachment": "wheel-big" },
-	{ "name": "wheel-big2", "bone": "wheel-big2", "color": "dbdbdbff", "attachment": "wheel-big" },
-	{ "name": "wheel-mid", "bone": "wheel-mid1", "attachment": "wheel-mid" },
-	{ "name": "wheel-mid2", "bone": "wheel-mid2", "attachment": "wheel-mid" },
-	{ "name": "wheel-mid3", "bone": "wheel-mid3", "attachment": "wheel-mid" },
-	{ "name": "wheel-mid4", "bone": "wheel-mid4", "attachment": "wheel-mid" },
-	{ "name": "wheel-mid5", "bone": "wheel-mid5", "attachment": "wheel-mid" },
-	{ "name": "wheel-mid6", "bone": "wheel-mid6", "attachment": "wheel-mid" },
-	{ "name": "wheel-small", "bone": "wheel-small1", "attachment": "wheel-small" },
-	{ "name": "wheel-small2", "bone": "wheel-small2", "attachment": "wheel-small" },
-	{ "name": "wheel-small3", "bone": "wheel-small3", "attachment": "wheel-small" },
-	{ "name": "wheel-mid-overlay", "bone": "wheel-mid-root1", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" },
-	{ "name": "wheel-mid-overlay2", "bone": "wheel-mid-root2", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" },
-	{ "name": "wheel-mid-overlay3", "bone": "wheel-mid-root3", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" },
-	{ "name": "wheel-mid-overlay4", "bone": "wheel-mid-root4", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" },
-	{ "name": "wheel-mid-overlay5", "bone": "wheel-mid-root5", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" },
-	{ "name": "wheel-mid-overlay6", "bone": "wheel-mid-root6", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" },
-	{ "name": "wheel-big-overlay1", "bone": "wheel-big-root1", "color": "ffffffe9", "attachment": "wheel-big-overlay", "blend": "multiply" },
-	{ "name": "wheel-big-overlay2", "bone": "wheel-big-root2", "color": "ffffffe9", "attachment": "wheel-big-overlay", "blend": "multiply" },
-	{ "name": "treads-path", "bone": "tank-root", "attachment": "treads-path" },
-	{ "name": "tread", "bone": "tread", "attachment": "tread" },
-	{ "name": "tread27", "bone": "tread27", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread14", "bone": "tread14", "attachment": "tread" },
-	{ "name": "tread2", "bone": "tread2", "attachment": "tread" },
-	{ "name": "tread28", "bone": "tread28", "attachment": "tread" },
-	{ "name": "tread15", "bone": "tread15", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread3", "bone": "tread3", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread29", "bone": "tread29", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread16", "bone": "tread16", "attachment": "tread" },
-	{ "name": "tread4", "bone": "tread4", "attachment": "tread" },
-	{ "name": "tread30", "bone": "tread30", "attachment": "tread" },
-	{ "name": "tread17", "bone": "tread17", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread5", "bone": "tread5", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread31", "bone": "tread31", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread18", "bone": "tread18", "attachment": "tread" },
-	{ "name": "tread6", "bone": "tread6", "attachment": "tread" },
-	{ "name": "tread32", "bone": "tread32", "attachment": "tread" },
-	{ "name": "tread19", "bone": "tread19", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread7", "bone": "tread7", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread33", "bone": "tread33", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread20", "bone": "tread20", "attachment": "tread" },
-	{ "name": "tread8", "bone": "tread8", "attachment": "tread" },
-	{ "name": "tread34", "bone": "tread34", "attachment": "tread" },
-	{ "name": "tread35", "bone": "tread35", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread36", "bone": "tread36", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread21", "bone": "tread21", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread9", "bone": "tread9", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread22", "bone": "tread22", "attachment": "tread" },
-	{ "name": "tread10", "bone": "tread10", "attachment": "tread" },
-	{ "name": "tread23", "bone": "tread23", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread11", "bone": "tread11", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread24", "bone": "tread24", "attachment": "tread" },
-	{ "name": "tread12", "bone": "tread12", "attachment": "tread" },
-	{ "name": "tread25", "bone": "tread25", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread13", "bone": "tread13", "color": "adc9b8ff", "attachment": "tread" },
-	{ "name": "tread26", "bone": "tread26", "attachment": "tread" },
-	{ "name": "machinegun", "bone": "machinegun", "attachment": "machinegun" },
-	{ "name": "machinegun-mount", "bone": "machinegun-mount", "attachment": "machinegun-mount" },
-	{ "name": "tank-top", "bone": "tank-body", "attachment": "tank-top" },
-	{ "name": "guntower", "bone": "guntower", "attachment": "guntower" },
-	{ "name": "cannon", "bone": "cannon", "attachment": "cannon" },
-	{ "name": "cannon-connector", "bone": "cannon-connector", "attachment": "cannon-connector" },
-	{ "name": "antenna", "bone": "antenna-root", "attachment": "antenna" },
-	{ "name": "smoke-puff1-bg", "bone": "smoke1", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg13", "bone": "smoke13", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg14", "bone": "smoke14", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg15", "bone": "smoke15", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg16", "bone": "smoke16", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg17", "bone": "smoke17", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg18", "bone": "smoke18", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg20", "bone": "smoke20", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg21", "bone": "smoke21", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg22", "bone": "smoke22", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg23", "bone": "smoke23", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg24", "bone": "smoke24", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg25", "bone": "smoke25", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg26", "bone": "smoke26", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg27", "bone": "smoke27", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg2", "bone": "smoke2", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg5", "bone": "smoke5", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg6", "bone": "smoke6", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg7", "bone": "smoke7", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg10", "bone": "smoke10", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg11", "bone": "smoke11", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg12", "bone": "smoke12", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg8", "bone": "smoke8", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg9", "bone": "smoke9", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg4", "bone": "smoke4", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-bg3", "bone": "smoke3", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg", "bone": "smoke1", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg13", "bone": "smoke13", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg14", "bone": "smoke14", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg15", "bone": "smoke15", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg16", "bone": "smoke16", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg17", "bone": "smoke17", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg18", "bone": "smoke18", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg20", "bone": "smoke20", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg21", "bone": "smoke21", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg22", "bone": "smoke22", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg23", "bone": "smoke23", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg24", "bone": "smoke24", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg25", "bone": "smoke25", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg26", "bone": "smoke26", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg27", "bone": "smoke27", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg2", "bone": "smoke2", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg5", "bone": "smoke5", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg6", "bone": "smoke6", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg7", "bone": "smoke7", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg10", "bone": "smoke10", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg11", "bone": "smoke11", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg12", "bone": "smoke12", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg8", "bone": "smoke8", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg9", "bone": "smoke9", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg4", "bone": "smoke4", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-puff1-fg3", "bone": "smoke3", "color": "ecececff", "dark": "000000" },
-	{ "name": "smoke-glow", "bone": "smoke-glow", "blend": "additive" },
-	{ "name": "clipping", "bone": "tank-body", "attachment": "clipping" },
-	{ "name": "tank-glow", "bone": "tank-glow", "color": "fcdc6da7", "blend": "additive" }
-],
-"ik": [
-	{
-		"name": "cannon-ik",
-		"bones": [ "cannon" ],
-		"target": "cannon-target"
-	},
-	{
-		"name": "machinegun-ik",
-		"order": 1,
-		"bones": [ "machinegun" ],
-		"target": "machinegun-target",
-		"mix": 0
-	}
-],
-"transform": [
-	{
-		"name": "wheel-big-transform",
-		"order": 8,
-		"bones": [ "wheel-big2" ],
-		"target": "wheel-big1",
-		"rotation": 65.6,
-		"mixX": 0,
-		"mixScaleX": 0,
-		"mixShearY": 0
-	},
-	{
-		"name": "wheel-mid1-transform",
-		"order": 3,
-		"bones": [ "wheel-mid2", "wheel-mid4" ],
-		"target": "wheel-mid1",
-		"rotation": 93,
-		"mixX": 0,
-		"mixScaleX": 0,
-		"mixShearY": 0
-	},
-	{
-		"name": "wheel-mid2-transform",
-		"order": 4,
-		"bones": [ "wheel-mid3", "wheel-mid5" ],
-		"target": "wheel-mid1",
-		"rotation": -89,
-		"mixX": 0,
-		"mixScaleX": 0,
-		"mixShearY": 0
-	},
-	{
-		"name": "wheel-mid3-transform",
-		"order": 5,
-		"bones": [ "wheel-mid6" ],
-		"target": "wheel-mid1",
-		"rotation": -152.6,
-		"mixX": 0,
-		"mixScaleX": 0,
-		"mixShearY": 0
-	},
-	{
-		"name": "wheel-small1-transform",
-		"order": 6,
-		"bones": [ "wheel-small2" ],
-		"target": "wheel-small1",
-		"rotation": 87,
-		"mixX": 0,
-		"mixScaleX": 0,
-		"mixShearY": 0
-	},
-	{
-		"name": "wheel-small2-transform",
-		"order": 7,
-		"bones": [ "wheel-small3" ],
-		"target": "wheel-small1",
-		"rotation": 54.9,
-		"mixX": 0,
-		"mixScaleX": 0,
-		"mixShearY": 0
-	}
-],
-"path": [
-	{
-		"name": "treads-path",
-		"order": 2,
-		"bones": [ "tread", "tread2", "tread3", "tread4", "tread5", "tread6", "tread7", "tread8", "tread9", "tread10", "tread11", "tread12", "tread13", "tread14", "tread15", "tread16", "tread17", "tread18", "tread19", "tread20", "tread21", "tread22", "tread23", "tread24", "tread25", "tread26", "tread27", "tread28", "tread29", "tread30", "tread31", "tread32", "tread33", "tread34", "tread35", "tread36" ],
-		"target": "treads-path",
-		"rotateMode": "chain"
-	}
-],
-"skins": [
-	{
-		"name": "default",
-		"attachments": {
-			"antenna": {
-				"antenna": {
-					"type": "mesh",
-					"uvs": [ 0.64286, 0.07876, 0.65354, 0.1535, 0.66325, 0.22138, 0.67367, 0.29433, 0.68383, 0.36543, 0.6936, 0.43374, 0.70311, 0.5003, 0.71311, 0.57031, 0.72327, 0.64139, 0.73406, 0.71689, 0.74441, 0.7893, 0.75614, 0.87141, 0.76905, 0.94311, 1, 0.94311, 1, 1, 0, 1, 0, 0.94311, 0.20106, 0.94311, 0.20106, 0.87094, 0.21461, 0.78847, 0.22651, 0.71607, 0.23886, 0.64099, 0.25036, 0.57105, 0.26206, 0.49983, 0.27306, 0.43291, 0.2843, 0.36454, 0.29593, 0.29382, 0.308, 0.22038, 0.319, 0.15345, 0.33142, 0.07796, 0.34423, 0, 0.63161, 0 ],
-					"triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ],
-					"vertices": [ 2, 10, 65.38, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 2, 10, 42.73, -3.38, 0.66667, 11, 0.73, -3.38, 0.33333, 2, 9, 64.17, -3.59, 0.33333, 10, 22.17, -3.59, 0.66667, 2, 9, 42.06, -3.82, 0.66667, 10, 0.06, -3.82, 0.33333, 2, 8, 62.52, -4.04, 0.33333, 9, 20.52, -4.04, 0.66667, 2, 8, 41.82, -4.26, 0.66667, 9, -0.18, -4.26, 0.33333, 2, 7, 63.65, -4.47, 0.33333, 8, 21.65, -4.47, 0.66667, 2, 7, 42.44, -4.69, 0.66667, 8, 0.44, -4.69, 0.33333, 2, 6, 62.9, -4.91, 0.33333, 7, 20.9, -4.91, 0.66667, 2, 6, 40.03, -5.15, 0.66667, 7, -1.97, -5.15, 0.33333, 2, 5, 5.38, 58.09, 0.4, 6, 18.09, -5.38, 0.6, 1, 5, 5.64, 33.21, 1, 1, 5, 5.92, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 11, -5.76, 1, 1, 5, -11, -5.76, 1, 1, 5, -11, 11.48, 1, 1, 5, -6.58, 11.48, 1, 1, 5, -6.58, 33.35, 1, 2, 5, -6.28, 58.34, 0.4, 6, 18.34, 6.28, 0.6, 2, 6, 40.27, 6.02, 0.66667, 7, -1.73, 6.02, 0.33333, 2, 6, 63.03, 5.75, 0.33333, 7, 21.03, 5.75, 0.66667, 2, 7, 42.22, 5.49, 0.66667, 8, 0.22, 5.49, 0.33333, 2, 7, 63.8, 5.23, 0.33333, 8, 21.8, 5.23, 0.66667, 2, 8, 42.07, 4.99, 0.66667, 9, 0.07, 4.99, 0.33333, 2, 8, 62.79, 4.75, 0.33333, 9, 20.79, 4.75, 0.66667, 2, 9, 42.22, 4.49, 0.66667, 10, 0.22, 4.49, 0.33333, 2, 9, 64.47, 4.22, 0.33333, 10, 22.47, 4.22, 0.66667, 2, 10, 42.75, 3.98, 0.66667, 11, 0.75, 3.98, 0.33333, 2, 10, 65.62, 3.71, 0.3125, 11, 23.62, 3.71, 0.6875, 1, 11, 47.24, 3.43, 1, 1, 11, 47.24, -2.9, 1 ],
-					"hull": 32,
-					"edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ],
-					"width": 22,
-					"height": 303
-				}
-			},
-			"bottom": {
-				"tank-bottom": { "x": -16.67, "y": 9.89, "width": 1285, "height": 276 }
-			},
-			"cannon": {
-				"cannon": { "x": 481.95, "y": -0.03, "rotation": 180, "width": 931, "height": 58 }
-			},
-			"cannon-connector": {
-				"cannon-connector": {
-					"type": "mesh",
-					"uvs": [ 1, 0.03237, 1, 0.10603, 0.90988, 0.32859, 0.81975, 0.55116, 0.72963, 0.77373, 0.6395, 0.9963, 0.42157, 0.9963, 0.20364, 0.9963, 0, 0.85434, 0, 0.69902, 0.02268, 0.52884, 0, 0.31444, 0.21602, 0.12998, 0.43368, 0, 0.63547, 0.0037, 0.48408, 0.77059, 0.31496, 0.52497, 0.64133, 0.19648, 0.21516, 0.76766, 0.58346, 0.56471, 0.68444, 0.40146, 0.46758, 0.36649, 0.28935, 0.34604 ],
-					"triangles": [ 7, 18, 6, 6, 18, 15, 7, 8, 18, 8, 9, 18, 18, 16, 15, 15, 16, 19, 9, 10, 18, 18, 10, 16, 16, 21, 19, 19, 21, 20, 10, 22, 16, 10, 11, 22, 16, 22, 21, 21, 17, 20, 21, 12, 13, 17, 13, 14, 17, 21, 13, 11, 12, 22, 21, 22, 12, 6, 15, 5, 5, 15, 4, 15, 19, 4, 4, 19, 3, 19, 20, 3, 3, 20, 2, 20, 17, 2, 2, 17, 1, 17, 14, 1, 14, 0, 1 ],
-					"vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.14, 1, 1, 12, 25.82, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.05, 1, 2, 12, -28.87, -61.05, 0.33333, 14, 28.87, 61.03, 0.66667, 1, 14, 53.28, 61.02, 1, 1, 14, 76.09, 41.84, 1, 1, 14, 71.17, 21.63, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.38, -29.12, 1, 1, 14, 50.67, -56.14, 1, 2, 12, -28.43, 74.38, 0.41, 14, 28.43, -74.4, 0.59, 2, 12, -4.92, 72.95, 0.52, 14, 4.92, -72.95, 0.48, 2, 12, -21.87, -30.58, 0.49, 14, 21.87, 30.57, 0.51, 1, 14, 40.81, -2.6, 1, 2, 12, -4.26, 46.93, 0.49, 14, 4.26, -46.93, 0.51, 1, 14, 51.99, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.78, 0.51, 2, 12, 0.57, 19.25, 0.49, 14, -0.57, -19.25, 0.51, 1, 14, 23.72, -23.99, 1, 1, 14, 43.68, -26.76, 1 ],
-					"hull": 15,
-					"edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ],
-					"width": 112,
-					"height": 135
-				}
-			},
-			"clipping": {
-				"clipping": {
-					"type": "clipping",
-					"end": "tank-glow",
-					"vertexCount": 32,
-					"vertices": [ 1, 3, 165.84, 455.67, 1, 1, 3, 114.21, 493.01, 1, 1, 3, -38.53, 492.23, 1, 1, 3, -193.4, 464.18, 1, 2, 3, -280.85, 415.48, 0.752, 14, 24.09, -73.93, 0.248, 1, 14, 70.34, -27.32, 1, 1, 14, 412.56, -22.02, 1, 1, 14, 412.82, -29.21, 1, 1, 14, 539.26, -29.34, 1, 1, 14, 539.52, -17.09, 1, 1, 14, 894.02, -16.8, 1, 1, 14, 902.99, -28.89, 1, 1, 14, 942.06, -28.58, 1, 1, 14, 948.14, -16.64, 1, 1, 14, 947.9, 14.29, 1, 1, 14, 539.3, 14.55, 1, 1, 14, 539, 29.22, 1, 1, 14, 412.51, 29.88, 1, 1, 14, 412.51, 21.73, 1, 1, 14, 74.24, 27.28, 1, 1, 3, -296.64, 281.2, 1, 1, 3, -316.06, 225.71, 1, 1, 3, -521.69, 190.74, 1, 1, 3, -610.03, 141.02, 1, 1, 3, -671.84, 87.13, 1, 1, 3, -652.23, -11.24, 1, 1, 3, -618.53, -71.36, 1, 1, 3, -478.77, -114.21, 1, 1, 3, -274.11, -116.26, 1, 1, 3, 1.38, -45.75, 1, 1, 3, 189.67, 148.78, 1, 1, 3, 215.75, 276.59, 1 ],
-					"color": "ce3a3aff"
-				}
-			},
-			"ground": {
-				"ground": { "x": 837.96, "y": -172, "width": 1024, "height": 353 }
-			},
-			"ground2": {
-				"ground": { "x": -179.89, "y": -172, "width": 1024, "height": 353 }
-			},
-			"ground3": {
-				"ground": { "x": -1213.48, "y": -172, "scaleX": 1.035, "width": 1024, "height": 353 }
-			},
-			"ground4": {
-				"ground": { "x": -2268.51, "y": -172, "scaleX": 1.04, "width": 1024, "height": 353 }
-			},
-			"ground5": {
-				"ground": { "x": -3306.54, "y": -172, "width": 1024, "height": 353 }
-			},
-			"ground6": {
-				"ground": { "x": -4322.71, "y": -172, "width": 1024, "height": 353 }
-			},
-			"ground7": {
-				"ground": { "x": -5340.65, "y": -172, "width": 1024, "height": 353 }
-			},
-			"guntower": {
-				"guntower": { "x": 77.22, "y": 122.59, "width": 730, "height": 289 }
-			},
-			"machinegun": {
-				"machinegun": { "x": 44.85, "y": -5.72, "rotation": -180, "width": 331, "height": 57 }
-			},
-			"machinegun-mount": {
-				"machinegun-mount": { "x": 47.42, "y": -1.54, "rotation": -90, "width": 72, "height": 96 }
-			},
-			"rock": {
-				"rock": { "x": 25.24, "y": 27.35, "width": 580, "height": 127 }
-			},
-			"smoke-glow": {
-				"smoke-glow": {
-					"type": "mesh",
-					"uvs": [ 1, 0.24906, 1, 0.51991, 1, 0.73165, 0.70776, 1, 0.49012, 1, 0.24373, 1, 0, 0.71158, 0, 0.50308, 0, 0.26235, 0.28107, 0, 0.47435, 0, 0.73345, 0, 0.48858, 0.51759 ],
-					"triangles": [ 12, 7, 8, 12, 10, 11, 12, 11, 0, 9, 10, 12, 12, 8, 9, 12, 0, 1, 6, 7, 12, 12, 1, 2, 5, 6, 12, 3, 4, 12, 5, 12, 4, 2, 3, 12 ],
-					"vertices": [ 49.99, 25.1, 50, -1.98, 50.01, -23.15, 20.79, -50, -0.98, -50, -25.62, -50.01, -50, -21.17, -50, -0.32, -50.01, 23.75, -21.9, 50, -2.58, 50, 23.33, 50.01, -1.14, -1.76 ],
-					"hull": 12,
-					"edges": [ 2, 24, 24, 14, 20, 24, 24, 8, 2, 0, 20, 22, 0, 22, 18, 20, 14, 16, 18, 16, 12, 14, 8, 10, 12, 10, 6, 8, 2, 4, 6, 4 ],
-					"width": 100,
-					"height": 100
-				}
-			},
-			"smoke-puff1-bg": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg2": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg3": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg4": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg5": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg6": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg7": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg8": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg9": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg10": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg11": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg12": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg13": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg14": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg15": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg16": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg17": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg18": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg20": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg21": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg22": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg23": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg24": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg25": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg26": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-bg27": {
-				"smoke-puff01-bg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				}
-			},
-			"smoke-puff1-fg": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg2": {
-				"smoke-puff01-fg": {
-					"x": -1.01,
-					"y": -0.07,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.82,
-					"y": -0.39,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.82,
-					"y": -0.39,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.82,
-					"y": -0.39,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg3": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.02,
-					"y": -0.25,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1145,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.03,
-					"y": -0.43,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg4": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.63,
-					"y": -0.09,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.63,
-					"y": -0.09,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.63,
-					"y": -0.09,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg5": {
-				"smoke-puff01-fg": {
-					"x": -1.21,
-					"y": -0.08,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.89,
-					"y": -0.04,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.89,
-					"y": -0.04,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.89,
-					"y": -0.04,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg6": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.48,
-					"y": -0.07,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.48,
-					"y": -0.07,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.48,
-					"y": -0.07,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg7": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -0.7,
-					"y": -0.36,
-					"scaleX": 0.1216,
-					"scaleY": 0.1214,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -0.56,
-					"y": -0.15,
-					"scaleX": 0.1224,
-					"scaleY": 0.1224,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -0.56,
-					"y": -0.15,
-					"scaleX": 0.1224,
-					"scaleY": 0.1224,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg8": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -0.65,
-					"y": 0.01,
-					"scaleX": 0.1226,
-					"scaleY": 0.1226,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -0.75,
-					"y": -0.15,
-					"scaleX": 0.1211,
-					"scaleY": 0.1211,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -0.75,
-					"y": -0.15,
-					"scaleX": 0.1211,
-					"scaleY": 0.1211,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg9": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.99,
-					"y": -0.09,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.99,
-					"y": -0.09,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -0.95,
-					"y": -0.48,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg10": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.27,
-					"y": -0.37,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.27,
-					"y": -0.37,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.27,
-					"y": -0.37,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg11": {
-				"smoke-puff04-fg": {
-					"x": -1.27,
-					"y": -0.37,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg12": {
-				"smoke-puff04-fg": {
-					"x": -1.27,
-					"y": -0.37,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg13": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg14": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg15": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg16": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg17": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg18": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg20": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg21": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg22": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg23": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg24": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg25": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg26": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"smoke-puff1-fg27": {
-				"smoke-puff01-fg": {
-					"x": -0.5,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 175,
-					"height": 118
-				},
-				"smoke-puff02-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff03-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 184,
-					"height": 123
-				},
-				"smoke-puff04-fg": {
-					"x": -1.38,
-					"y": -0.12,
-					"scaleX": 0.1106,
-					"scaleY": 0.1106,
-					"rotation": 88.58,
-					"width": 155,
-					"height": 96
-				}
-			},
-			"tank-body-shadow": {
-				"tank-bottom-shadow": { "x": -11.44, "y": -42.89, "width": 1291, "height": 341 }
-			},
-			"tank-glow": {
-				"smoke-glow": {
-					"type": "mesh",
-					"uvs": [ 1, 1, 0, 1, 1, 0 ],
-					"triangles": [ 1, 2, 0 ],
-					"vertices": [ 469.64, -738.08, -1660.32, -738.08, 469.64, 1391.88 ],
-					"hull": 3,
-					"edges": [ 0, 2, 0, 4, 2, 4 ],
-					"width": 100,
-					"height": 100
-				}
-			},
-			"tank-top": {
-				"tank-top": { "x": 6.8, "y": 168.71, "width": 1407, "height": 222 }
-			},
-			"tread": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread-inside1": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside2": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside3": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside4": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside5": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside6": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside7": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside8": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside9": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside10": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside11": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside12": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside13": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside14": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside15": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside16": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside17": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside18": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside19": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside20": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside21": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside22": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside23": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside24": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside25": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside26": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside27": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside28": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside29": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside30": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside31": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside32": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside33": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside34": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside35": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside36": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside37": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside38": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside39": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside40": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside41": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside42": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside43": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside44": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside45": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside46": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside47": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside48": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside49": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside50": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside51": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside52": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside53": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside54": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside55": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside56": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside57": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside58": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside59": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside60": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside61": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside62": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside63": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside64": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside65": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside66": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside67": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside68": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside69": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside70": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside71": {
-				"tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread-inside72": {
-				"tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 }
-			},
-			"tread2": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread3": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread4": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread5": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread6": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread7": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread8": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread9": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread10": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread11": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread12": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread13": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread14": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread15": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread16": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread17": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread18": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread19": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread20": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread21": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread22": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread23": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread24": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread25": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread26": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread27": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread28": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread29": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread30": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread31": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread32": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread33": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread34": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread35": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"tread36": {
-				"tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 }
-			},
-			"treads-path": {
-				"treads-path": {
-					"type": "path",
-					"closed": true,
-					"lengths": [ 185.21, 354.53, 478.3, 608.52, 786, 1058.49, 1138.97, 1223.96, 1303.87, 1388.23, 1471.11, 1551.64, 1633.55, 1713.27, 1799.89, 1882.28, 2164.2, 2326.85, 2444.07, 2584.91, 2754.15, 2940.62 ],
-					"vertexCount": 66,
-					"vertices": [ 1, 110, 11.23, 41.87, 1, 1, 110, 0.79, 41.95, 1, 1, 110, -34.72, 42.24, 1, 1, 56, -104.22, 0.41, 1, 1, 56, 0.07, 0.55, 1, 1, 56, 68.8, 0.65, 1, 1, 109, 20.5, 43.47, 1, 1, 109, 1.14, 40.82, 1, 1, 109, -27.38, 36.85, 1, 1, 93, 147.07, 105.01, 1, 1, 93, 96.21, 96.63, 1, 1, 93, 43.87, 87.72, 1, 1, 93, 16.18, 103.35, 1, 1, 93, -33.67, 94.21, 1, 1, 93, -99.36, 81.25, 1, 1, 93, -122.05, -1.7, 1, 1, 93, -83.58, -47.93, 1, 1, 93, -33.53, -109.37, 1, 1, 97, -83.57, -66.1, 1, 1, 97, -2.17, -67.9, 1, 2, 97, 56.68, -41.49, 0.68, 51, -24.31, -41.49, 0.32, 1, 51, -26.59, 16.7, 1, 1, 51, -2.69, 16.7, 1, 1, 51, 13.52, 16.7, 1, 2, 98, -52.42, -46.51, 0.744, 51, 30.21, -46.52, 0.256, 1, 98, -0.32, -68.92, 1, 2, 98, 52.09, -44.73, 0.712, 52, -28.91, -44.73, 0.288, 1, 52, -22.81, 16.24, 1, 1, 52, -1.42, 16.24, 1, 1, 52, 20.48, 16.24, 1, 2, 99, -47.21, -47.46, 0.744, 52, 36.01, -47.46, 0.256, 1, 99, -0.29, -69.66, 1, 2, 99, 45.24, -47.26, 0.736, 53, -37.49, -47.26, 0.264, 1, 53, -23.76, 15.28, 1, 1, 53, -0.14, 15.28, 1, 1, 53, 24.45, 15.28, 1, 2, 100, -47.37, -48.7, 0.744, 53, 33.53, -48.7, 0.256, 1, 100, -0.5, -70.4, 1, 2, 100, 49.09, -48.34, 0.744, 54, -33.58, -48.34, 0.256, 1, 54, -20.89, 15.84, 1, 1, 54, -1.26, 15.84, 1, 1, 54, 15.78, 15.84, 1, 2, 101, -52.5, -48.21, 0.76, 54, 28.45, -48.22, 0.24, 1, 101, -2.5, -68.92, 1, 2, 101, 55.72, -47.82, 0.752, 55, -28.88, -47.83, 0.248, 1, 55, -21.64, 16.7, 1, 1, 55, -0.48, 16.7, 1, 1, 55, 20.74, 16.7, 1, 2, 102, -53.65, -48.9, 0.76, 55, 25.97, -48.9, 0.24, 1, 102, 2.28, -69.66, 1, 1, 102, 44.95, -69.74, 1, 1, 94, 76.03, -85.61, 1, 1, 94, 93.58, -42.24, 1, 1, 94, 118.67, 19.75, 1, 1, 94, 78.59, 76.62, 1, 1, 94, 37.27, 95.07, 1, 1, 94, 31.45, 97.67, 1, 1, 94, -15.16, 87.48, 1, 1, 94, -79.8, 92.52, 1, 1, 94, -119.06, 95.58, 1, 1, 111, 47.07, 42.29, 1, 1, 111, 0.25, 42.75, 1, 1, 111, -29.64, 43.29, 1, 1, 57, -86.65, 1.35, 1, 1, 57, 0.49, 0.26, 1, 1, 57, 92.42, -0.9, 1 ],
-					"color": "ff8819ff"
-				}
-			},
-			"wheel-big": {
-				"wheel-big": { "width": 191, "height": 191 }
-			},
-			"wheel-big-overlay1": {
-				"wheel-big-overlay": { "width": 186, "height": 186 }
-			},
-			"wheel-big-overlay2": {
-				"wheel-big-overlay": { "width": 186, "height": 186 }
-			},
-			"wheel-big2": {
-				"wheel-big": { "width": 191, "height": 191 }
-			},
-			"wheel-mid": {
-				"wheel-mid": { "width": 136, "height": 136 }
-			},
-			"wheel-mid-overlay": {
-				"wheel-mid-overlay": { "width": 136, "height": 136 }
-			},
-			"wheel-mid-overlay2": {
-				"wheel-mid-overlay": { "width": 136, "height": 136 }
-			},
-			"wheel-mid-overlay3": {
-				"wheel-mid-overlay": { "width": 136, "height": 136 }
-			},
-			"wheel-mid-overlay4": {
-				"wheel-mid-overlay": { "width": 136, "height": 136 }
-			},
-			"wheel-mid-overlay5": {
-				"wheel-mid-overlay": { "width": 136, "height": 136 }
-			},
-			"wheel-mid-overlay6": {
-				"wheel-mid-overlay": { "width": 136, "height": 136 }
-			},
-			"wheel-mid2": {
-				"wheel-mid": { "width": 136, "height": 136 }
-			},
-			"wheel-mid3": {
-				"wheel-mid": { "width": 136, "height": 136 }
-			},
-			"wheel-mid4": {
-				"wheel-mid": { "width": 136, "height": 136 }
-			},
-			"wheel-mid5": {
-				"wheel-mid": { "width": 136, "height": 136 }
-			},
-			"wheel-mid6": {
-				"wheel-mid": { "width": 136, "height": 136 }
-			},
-			"wheel-small": {
-				"wheel-small": { "width": 71, "height": 71 }
-			},
-			"wheel-small2": {
-				"wheel-small": { "width": 71, "height": 71 }
-			},
-			"wheel-small3": {
-				"wheel-small": { "width": 71, "height": 71 }
-			}
-		}
-	}
-],
-"animations": {
-	"drive": {
-		"bones": {
-			"tank-root": {
-				"rotate": [
-					{ "time": 2 },
-					{ "time": 2.0667, "value": 1.99 },
-					{ "time": 2.5, "value": -15.63 },
-					{
-						"time": 2.6667,
-						"value": -10.37,
-						"curve": [ 2.718, -10.37, 2.78, -8.34 ]
-					},
-					{
-						"time": 2.8333,
-						"value": -6.13,
-						"curve": [ 2.909, -2.8, 2.974, 0.8 ]
-					},
-					{ "time": 3, "value": 1.84 },
-					{ "time": 3.0667, "value": 5.32 },
-					{ "time": 3.1667, "value": 10.99 },
-					{ "time": 3.2333, "value": 9.73 },
-					{
-						"time": 3.4333,
-						"value": -4.52,
-						"curve": [ 3.474, -3.99, 3.608, 0.01 ]
-					},
-					{ "time": 3.6667, "value": 0.01 }
-				],
-				"translate": [
-					{
-						"curve": [ 1.019, 0, 1.608, -582.83, 1.019, 0, 1.608, 0 ]
-					},
-					{ "time": 2, "x": -1209.75 },
-					{ "time": 2.3333, "x": -1652.84, "y": 26.05 },
-					{ "time": 2.5, "x": -1877.69, "y": 71.5 },
-					{ "time": 2.6667, "x": -2053.37, "y": 100.44 },
-					{ "time": 2.8333, "x": -2183.86, "y": 97.42 },
-					{ "time": 3, "x": -2312.32, "y": 74.12 },
-					{ "time": 3.0667, "x": -2340.68, "y": 45.94 },
-					{ "time": 3.1333, "x": -2403.04, "y": 17.04 },
-					{ "time": 3.1667, "x": -2439.84, "y": 5.45 },
-					{ "time": 3.2333, "x": -2523.34, "y": -3.31 },
-					{ "time": 3.4333, "x": -2728.27, "y": -12.73 },
-					{
-						"time": 3.5,
-						"x": -2795.65,
-						"y": -6.14,
-						"curve": [ 3.538, -2829.89, 3.583, -2878.59, 3.538, -4.93, 3.583, -3.21 ]
-					},
-					{
-						"time": 3.6333,
-						"x": -2938.53,
-						"y": -1.09,
-						"curve": [ 3.89, -3218.84, 4.404, -3972.02, 3.89, -0.79, 4.404, 0 ]
-					},
-					{ "time": 4.8333, "x": -3972.02 },
-					{ "time": 5, "x": -3991.31 },
-					{ "time": 5.3667, "x": -3973.94 }
-				]
-			},
-			"tread-collider1": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.0667, "y": 9.99 },
-					{ "time": 2.1667, "y": 37.69 },
-					{ "time": 2.3333, "y": 53.45 },
-					{ "time": 2.5, "y": 30.97 },
-					{ "time": 2.6667, "y": -2.89 },
-					{ "time": 2.8333, "y": -0.71 },
-					{ "time": 3.0667, "y": -13.64 },
-					{ "time": 3.1667, "y": 59.3 },
-					{ "time": 3.2333, "y": 48.2 },
-					{ "time": 3.4333, "y": -11.27 },
-					{ "time": 3.6333, "y": 4.15 }
-				]
-			},
-			"tread-collider2": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.0667, "y": -2.83 },
-					{ "time": 2.1667, "y": -17.44 },
-					{ "time": 2.3333, "y": 46.07 },
-					{ "time": 2.5, "y": 19.45 },
-					{ "time": 2.6667, "y": 13.46 },
-					{ "time": 2.8333, "y": -1.92, "curve": "stepped" },
-					{ "time": 2.9667, "y": -1.92 },
-					{ "time": 3, "y": -13.17 },
-					{ "time": 3.0667, "y": -23.25 },
-					{ "time": 3.1667, "y": 28.13 },
-					{ "time": 3.2333, "y": 25.63 },
-					{ "time": 3.4333, "y": -1.52 },
-					{ "time": 3.6333, "y": 1.15 }
-				]
-			},
-			"tread-collider3": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.0667, "y": -7.76 },
-					{ "time": 2.1667, "y": -16.61 },
-					{ "time": 2.5, "y": 29.05 },
-					{ "time": 2.6667, "y": 30.12 },
-					{ "time": 2.8333, "y": 5.3 },
-					{ "time": 3, "y": -0.38 },
-					{ "time": 3.1667, "y": 2.6 },
-					{ "time": 3.4333, "y": 15.41 },
-					{ "time": 3.6333, "y": 1.44 }
-				]
-			},
-			"tread-collider4": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.1667, "y": -6.72 },
-					{ "time": 2.3333, "y": -0.92 },
-					{ "time": 2.5, "y": 18.37 },
-					{ "time": 2.6667, "y": 38.77 },
-					{ "time": 2.8333, "y": 30.6 },
-					{ "time": 3.1667, "y": 12.61 },
-					{ "time": 3.2333, "y": -16 },
-					{ "time": 3.4333, "y": 25.62 },
-					{ "time": 3.6333, "y": -0.68 }
-				]
-			},
-			"tread-collider5": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.1667, "y": 3.35 },
-					{ "time": 2.3333, "y": 22.17 },
-					{ "time": 2.6667, "y": 13.35 },
-					{ "time": 2.8333, "y": 39 },
-					{ "time": 3, "y": 39.88 },
-					{ "time": 3.1667, "y": 26.57 },
-					{ "time": 3.2333, "y": -10.15 },
-					{ "time": 3.4333, "y": 35.98 },
-					{ "time": 3.6333, "y": -1.36 }
-				]
-			},
-			"wheel-mid-root6": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.1667, "y": 5.61 },
-					{ "time": 2.3333, "y": 27.21 },
-					{ "time": 2.5, "y": 30.28 },
-					{ "time": 2.6667, "y": -2.81 },
-					{ "time": 2.8333, "y": 19.59 },
-					{ "time": 3, "y": 29.11 },
-					{ "time": 3.1667, "y": 32.55 },
-					{ "time": 3.2333, "y": 3.55 },
-					{ "time": 3.4333, "y": 40.54 },
-					{ "time": 3.6333 }
-				]
-			},
-			"wheel-mid-root5": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.1667, "y": -7.46 },
-					{ "time": 2.3333, "y": 9.53 },
-					{ "time": 2.6667, "y": 36.78 },
-					{ "time": 2.8333, "y": 46.11 },
-					{ "time": 3.1667, "y": 7.55 },
-					{ "time": 3.2333, "y": -16.28 },
-					{ "time": 3.4333, "y": 26.21 },
-					{ "time": 3.6333 }
-				]
-			},
-			"wheel-mid-root4": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.1667, "y": -13.98 },
-					{ "time": 2.3333, "y": -8.26 },
-					{ "time": 2.5, "y": 24.27 },
-					{ "time": 2.6667, "y": 34.42 },
-					{ "time": 2.8333, "y": 8.88 },
-					{ "time": 3.1667, "y": 10.32 },
-					{ "time": 3.2333, "y": -7.63 },
-					{ "time": 3.4333, "y": 19.69 },
-					{ "time": 3.6333 }
-				]
-			},
-			"wheel-mid-root3": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.1667, "y": -21.14 },
-					{ "time": 2.3333, "y": 22.83 },
-					{ "time": 2.5, "y": 23.34 },
-					{ "time": 2.6667, "y": 18.07 },
-					{ "time": 2.8333, "y": 1.2 },
-					{ "time": 3.0667, "y": -13.36 },
-					{ "time": 3.1667, "y": 15.48 },
-					{ "time": 3.2333, "y": 13.34 },
-					{ "time": 3.4333, "y": 6.4 },
-					{ "time": 3.6333 }
-				]
-			},
-			"wheel-mid-root2": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.0667, "y": -4.39 },
-					{ "time": 2.1667, "y": 3.13 },
-					{ "time": 2.3333, "y": 53.56 },
-					{ "time": 2.5, "y": 16.65 },
-					{ "time": 2.6667, "y": 8.39 },
-					{ "time": 3.0667, "y": -19.16 },
-					{ "time": 3.1667, "y": 43.25 },
-					{ "time": 3.2333, "y": 39.04 },
-					{ "time": 3.4333, "y": -8.61 },
-					{ "time": 3.6333 }
-				]
-			},
-			"wheel-mid-root1": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.0333, "y": 22.64 },
-					{ "time": 2.0667, "y": 53.65 },
-					{ "time": 2.1667, "y": 71.18 },
-					{ "time": 2.5, "y": 46.83 },
-					{ "time": 2.6667, "y": 8.38 },
-					{ "time": 3.0667, "y": -10.03 },
-					{ "time": 3.1667, "y": 72.71 },
-					{ "time": 3.2333, "y": 64.74 },
-					{ "time": 3.4333, "y": -17.65 },
-					{ "time": 3.6333 }
-				]
-			},
-			"tank-body": {
-				"rotate": [
-					{
-						"curve": [ 0.208, 0, 0.625, -4.39 ]
-					},
-					{ "time": 0.8333, "value": -4.39 },
-					{ "time": 2 },
-					{ "time": 2.1667, "value": -1.34 },
-					{ "time": 2.3333, "value": -6.23 },
-					{ "time": 2.5, "value": -5.45 },
-					{ "time": 2.9667, "value": -5.07 },
-					{ "time": 3.0667, "value": -2.39 },
-					{ "time": 3.1667, "value": -0.98 },
-					{ "time": 3.2333, "value": -1.1 },
-					{
-						"time": 3.4,
-						"value": 0.43,
-						"curve": [ 3.433, 0.43, 3.483, -1.56 ]
-					},
-					{
-						"time": 3.5333,
-						"value": -3.55,
-						"curve": [ 3.675, -3.47, 3.754, 1.49 ]
-					},
-					{ "time": 3.8333, "value": 1.93 },
-					{ "time": 4, "value": 0.48 },
-					{
-						"time": 4.3333,
-						"curve": [ 4.476, 0.59, 4.833, 3.8 ]
-					},
-					{
-						"time": 5,
-						"value": 3.8,
-						"curve": [ 5.286, 3.8, 5.35, -2.17 ]
-					},
-					{ "time": 5.4667, "value": -2.17 },
-					{ "time": 5.6, "value": -0.61 }
-				]
-			},
-			"wheel-big-root1": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.0667, "y": 20.07 },
-					{ "time": 2.3333, "y": 67.24 },
-					{ "time": 2.6667, "y": 21.04 },
-					{ "time": 3, "y": 10.28 },
-					{ "time": 3.1, "y": 11.28 },
-					{ "time": 3.1667, "y": 29.43 },
-					{ "time": 3.2333, "y": 35.31 },
-					{ "time": 3.4333, "y": 18.38 },
-					{ "time": 3.5 }
-				]
-			},
-			"tank-treads": {
-				"rotate": [
-					{},
-					{ "time": 0.8333, "value": -2.4 },
-					{ "time": 2 },
-					{ "time": 2.0667, "value": 1.72 },
-					{ "time": 2.4333, "value": -0.37 },
-					{ "time": 2.8 },
-					{ "time": 3, "value": -1.41 },
-					{ "time": 3.1667, "value": 0.54 },
-					{
-						"time": 3.2667,
-						"value": 2.22,
-						"curve": [ 3.348, 2.22, 3.392, -1.31 ]
-					},
-					{ "time": 3.4333, "value": -1.31 },
-					{ "time": 3.7333, "value": -1.14 },
-					{
-						"time": 4.3333,
-						"curve": [ 4.476, 0.35, 4.833, 2.24 ]
-					},
-					{
-						"time": 5,
-						"value": 2.24,
-						"curve": [ 5.286, 2.24, 5.35, 0 ]
-					},
-					{ "time": 5.4667 }
-				]
-			},
-			"cannon-target": {
-				"translate": [
-					{},
-					{ "time": 0.8333, "y": 121.95 },
-					{ "time": 2, "y": 45.73 }
-				]
-			},
-			"wheel-big-root2": {
-				"translate": [
-					{ "time": 3.4333, "y": 13.01 }
-				]
-			},
-			"wheel-big1": {
-				"rotate": [
-					{
-						"curve": [ 0.51, 0, 0.804, 57.81 ]
-					},
-					{ "time": 1, "value": 120 },
-					{ "time": 1.2667, "value": 240 },
-					{ "time": 1.5333, "value": 360 },
-					{ "time": 1.7667, "value": 480 },
-					{ "time": 2.0333, "value": 600 },
-					{ "time": 2.2, "value": 720 },
-					{ "time": 2.4, "value": 840 },
-					{ "time": 2.5667, "value": 960 },
-					{ "time": 2.7333, "value": 1080 },
-					{ "time": 2.9333, "value": 1200 },
-					{ "time": 3.1333, "value": 1320 },
-					{ "time": 3.3333, "value": 1440 },
-					{ "time": 3.5, "value": 1560 },
-					{ "time": 3.6667, "value": 1680 },
-					{ "time": 3.8667, "value": 1800 },
-					{ "time": 4.0667, "value": 1920 },
-					{ "time": 4.2667, "value": 2040 },
-					{
-						"time": 4.5,
-						"value": 2160,
-						"curve": [ 4.563, 2194.34, 4.695, 2225.3 ]
-					},
-					{ "time": 4.8333, "value": 2247.67 }
-				]
-			},
-			"wheel-mid1": {
-				"rotate": [
-					{
-						"curve": [ 0.459, 0, 0.724, 57.81 ]
-					},
-					{ "time": 0.9, "value": 120 },
-					{ "time": 1.1667, "value": 240 },
-					{ "time": 1.4333, "value": 360 },
-					{ "time": 1.6333, "value": 480 },
-					{ "time": 1.8333, "value": 600 },
-					{ "time": 2, "value": 720 },
-					{ "time": 2.1333, "value": 840 },
-					{ "time": 2.2667, "value": 960 },
-					{ "time": 2.4, "value": 1080 },
-					{ "time": 2.5333, "value": 1200 },
-					{ "time": 2.6667, "value": 1320 },
-					{ "time": 2.8333, "value": 1440 },
-					{ "time": 2.9667, "value": 1560 },
-					{ "time": 3.1, "value": 1680 },
-					{ "time": 3.2333, "value": 1800 },
-					{ "time": 3.3667, "value": 1920 },
-					{ "time": 3.5, "value": 2040 },
-					{ "time": 3.6333, "value": 2160 },
-					{ "time": 3.7667, "value": 2280 },
-					{ "time": 3.9, "value": 2400 },
-					{ "time": 4.0333, "value": 2520 },
-					{ "time": 4.1667, "value": 2640 },
-					{ "time": 4.3, "value": 2760 },
-					{
-						"time": 4.4667,
-						"value": 2880,
-						"curve": [ 4.538, 2949.2, 4.742, 3000 ]
-					},
-					{ "time": 4.8333, "value": 3000 }
-				]
-			},
-			"wheel-small1": {
-				"rotate": [
-					{
-						"curve": [ 0.34, 0, 0.536, 57.81 ]
-					},
-					{ "time": 0.6667, "value": 120 },
-					{ "time": 0.8667, "value": 240 },
-					{ "time": 1.0333, "value": 360 },
-					{ "time": 1.1667, "value": 480 },
-					{ "time": 1.3, "value": 600 },
-					{ "time": 1.4333, "value": 720 },
-					{ "time": 1.5333, "value": 840 },
-					{ "time": 1.6333, "value": 960 },
-					{ "time": 1.7333, "value": 1080 },
-					{ "time": 1.8333, "value": 1200 },
-					{ "time": 1.9333, "value": 1320 },
-					{ "time": 2.0333, "value": 1440 },
-					{ "time": 2.1333, "value": 1560 },
-					{ "time": 2.2333, "value": 1680 },
-					{ "time": 2.3333, "value": 1800 },
-					{ "time": 2.4333, "value": 1920 },
-					{ "time": 2.5333, "value": 2040 },
-					{ "time": 2.6333, "value": 2160 },
-					{ "time": 2.7333, "value": 2280 },
-					{ "time": 2.8333, "value": 2400 },
-					{ "time": 2.9333, "value": 2520 },
-					{ "time": 3.0333, "value": 2640 },
-					{ "time": 3.1333, "value": 2760 },
-					{ "time": 3.2333, "value": 2880 },
-					{ "time": 3.3333, "value": 3000 },
-					{ "time": 3.4333, "value": 3120 },
-					{ "time": 3.5333, "value": 3240 },
-					{ "time": 3.6333, "value": 3360 },
-					{ "time": 3.7333, "value": 3480 },
-					{ "time": 3.8333, "value": 3600 },
-					{ "time": 3.9333, "value": 3720 },
-					{ "time": 4.0333, "value": 3840 },
-					{ "time": 4.1333, "value": 3960 },
-					{ "time": 4.2333, "value": 4080 },
-					{ "time": 4.3333, "value": 4200 },
-					{ "time": 4.4333, "value": 4320 },
-					{ "time": 4.6667, "value": 4440 },
-					{ "time": 4.9, "value": 4490 }
-				]
-			},
-			"wheel-small-root1": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.1333, "y": 12.37 },
-					{ "time": 2.4667, "y": 32.37 },
-					{ "time": 2.7333, "y": -5.27 },
-					{ "time": 2.9667, "y": 14.31 },
-					{ "time": 3.1667, "y": 19.54 },
-					{ "time": 3.4667, "y": 7.5 },
-					{ "time": 4.3667, "y": -2.4 }
-				]
-			},
-			"wheel-small-root2": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.9, "y": 5.26 },
-					{ "time": 3.1667, "y": 10.67 },
-					{ "time": 3.4667, "y": -4.71 }
-				]
-			},
-			"wheel-small-root3": {
-				"translate": [
-					{ "time": 2 },
-					{ "time": 2.4667, "y": -10.56 },
-					{ "time": 2.9, "y": -16.08 },
-					{ "time": 3.1667, "y": 10.12 },
-					{ "time": 3.4667, "y": 4.1 },
-					{ "time": 4.3667, "y": -0.03 }
-				]
-			},
-			"antenna1": {
-				"rotate": [
-					{},
-					{
-						"time": 0.3333,
-						"value": 1.05,
-						"curve": [ 0.731, 1.05, 1.008, -4.55 ]
-					},
-					{
-						"time": 1.2333,
-						"value": -4.55,
-						"curve": [ 1.35, -4.55, 1.583, 0.53 ]
-					},
-					{ "time": 1.7, "value": 0.53 },
-					{ "time": 2, "value": -2.13 },
-					{ "time": 2.2, "value": 4.71 },
-					{ "time": 2.3667, "value": -7.26 },
-					{ "time": 2.5667, "value": 2.26 },
-					{ "time": 2.7333, "value": -3.39 },
-					{ "time": 3.0667, "value": -5.53 },
-					{ "time": 3.2333, "value": 7.78 },
-					{ "time": 3.4667, "value": -5.99 },
-					{ "time": 3.7, "value": 3.11 },
-					{ "time": 3.9, "value": -3.05 },
-					{ "time": 4.1, "value": 0.31 },
-					{ "time": 4.3, "value": -3.06 },
-					{ "time": 4.5333, "value": 0.36 },
-					{
-						"time": 4.8667,
-						"value": 4.94,
-						"curve": [ 4.925, 4.94, 5.042, -2.38 ]
-					},
-					{ "time": 5.1, "value": -2.38 },
-					{ "time": 5.2667, "value": 3.65 },
-					{ "time": 5.4, "value": -3.04 },
-					{ "time": 5.5, "value": 1.49 },
-					{ "time": 5.6, "value": -1.86 },
-					{ "time": 5.7, "value": 0.42 }
-				]
-			},
-			"antenna2": {
-				"rotate": [
-					{},
-					{
-						"time": 0.3333,
-						"value": 1.05,
-						"curve": [ 0.731, 1.05, 1.008, -4.55 ]
-					},
-					{
-						"time": 1.2333,
-						"value": -4.55,
-						"curve": [ 1.35, -4.55, 1.583, 0.53 ]
-					},
-					{ "time": 1.7, "value": 0.53 },
-					{ "time": 2, "value": -2.13 },
-					{ "time": 2.2, "value": 4.71 },
-					{ "time": 2.3667, "value": -7.26 },
-					{ "time": 2.5667, "value": 2.26 },
-					{ "time": 2.7333, "value": -3.39 },
-					{ "time": 3.0667, "value": -5.53 },
-					{ "time": 3.2333, "value": 7.78 },
-					{ "time": 3.4667, "value": -5.99 },
-					{ "time": 3.7, "value": 3.11 },
-					{ "time": 3.9, "value": -3.05 },
-					{ "time": 4.1, "value": 0.31 },
-					{ "time": 4.3, "value": -3.06 },
-					{ "time": 4.5333, "value": 0.36 },
-					{
-						"time": 4.8667,
-						"value": 4.94,
-						"curve": [ 4.925, 4.94, 5.042, -2.38 ]
-					},
-					{ "time": 5.1, "value": -2.38 },
-					{ "time": 5.2667, "value": 3.65 },
-					{ "time": 5.4, "value": -3.04 },
-					{ "time": 5.5, "value": 1.49 },
-					{ "time": 5.6, "value": -1.86 },
-					{ "time": 5.7, "value": 0.42 }
-				]
-			},
-			"antenna3": {
-				"rotate": [
-					{},
-					{
-						"time": 0.3333,
-						"value": 1.05,
-						"curve": [ 0.731, 1.05, 1.008, -4.55 ]
-					},
-					{
-						"time": 1.2333,
-						"value": -4.55,
-						"curve": [ 1.35, -4.55, 1.583, 0.53 ]
-					},
-					{ "time": 1.7, "value": 0.53 },
-					{ "time": 2, "value": -2.13 },
-					{ "time": 2.2, "value": 4.71 },
-					{ "time": 2.3667, "value": -7.26 },
-					{ "time": 2.5667, "value": 2.26 },
-					{ "time": 2.7333, "value": -3.39 },
-					{ "time": 3.0667, "value": -5.53 },
-					{ "time": 3.2333, "value": 7.78 },
-					{ "time": 3.4667, "value": -5.99 },
-					{ "time": 3.7, "value": 3.11 },
-					{ "time": 3.9, "value": -3.05 },
-					{ "time": 4.1, "value": 0.31 },
-					{ "time": 4.3, "value": -3.06 },
-					{ "time": 4.5333, "value": 0.36 },
-					{
-						"time": 4.8667,
-						"value": 4.94,
-						"curve": [ 4.925, 4.94, 5.042, -2.38 ]
-					},
-					{ "time": 5.1, "value": -2.38 },
-					{ "time": 5.2667, "value": 3.65 },
-					{ "time": 5.4, "value": -3.04 },
-					{ "time": 5.5, "value": 1.49 },
-					{ "time": 5.6, "value": -1.86 },
-					{ "time": 5.7, "value": 0.42 }
-				]
-			},
-			"antenna4": {
-				"rotate": [
-					{},
-					{
-						"time": 0.3333,
-						"value": 1.05,
-						"curve": [ 0.731, 1.05, 1.008, -4.55 ]
-					},
-					{
-						"time": 1.2333,
-						"value": -4.55,
-						"curve": [ 1.35, -4.55, 1.583, 0.53 ]
-					},
-					{ "time": 1.7, "value": 0.53 },
-					{ "time": 2, "value": -2.13 },
-					{ "time": 2.2, "value": 4.71 },
-					{ "time": 2.3667, "value": -7.26 },
-					{ "time": 2.5667, "value": 2.26 },
-					{ "time": 2.7333, "value": -3.39 },
-					{ "time": 3.0667, "value": -5.53 },
-					{ "time": 3.2333, "value": 7.78 },
-					{ "time": 3.4667, "value": -5.99 },
-					{ "time": 3.7, "value": 3.11 },
-					{ "time": 3.9, "value": -3.05 },
-					{ "time": 4.1, "value": 0.31 },
-					{ "time": 4.3, "value": -3.06 },
-					{ "time": 4.5333, "value": 0.36 },
-					{
-						"time": 4.8667,
-						"value": 4.94,
-						"curve": [ 4.925, 4.94, 5.042, -2.38 ]
-					},
-					{ "time": 5.1, "value": -2.38 },
-					{ "time": 5.2667, "value": 3.65 },
-					{ "time": 5.4, "value": -3.04 },
-					{ "time": 5.5, "value": 1.49 },
-					{ "time": 5.6, "value": -1.86 },
-					{ "time": 5.7, "value": 0.42 }
-				]
-			},
-			"antenna5": {
-				"rotate": [
-					{},
-					{
-						"time": 0.3333,
-						"value": 1.05,
-						"curve": [ 0.731, 1.05, 1.008, -4.55 ]
-					},
-					{
-						"time": 1.2333,
-						"value": -4.55,
-						"curve": [ 1.35, -4.55, 1.583, 0.53 ]
-					},
-					{ "time": 1.7, "value": 0.53 },
-					{ "time": 2, "value": -2.13 },
-					{ "time": 2.2, "value": 4.71 },
-					{ "time": 2.3667, "value": -7.26 },
-					{ "time": 2.5667, "value": 2.26 },
-					{ "time": 2.7333, "value": -3.39 },
-					{ "time": 3.0667, "value": -5.53 },
-					{ "time": 3.2333, "value": 7.78 },
-					{ "time": 3.4667, "value": -5.99 },
-					{ "time": 3.7, "value": 3.11 },
-					{ "time": 3.9, "value": -3.05 },
-					{ "time": 4.1, "value": 0.31 },
-					{ "time": 4.3, "value": -3.06 },
-					{ "time": 4.5333, "value": 0.36 },
-					{
-						"time": 4.8667,
-						"value": 4.94,
-						"curve": [ 4.925, 4.94, 5.042, -2.38 ]
-					},
-					{ "time": 5.1, "value": -2.38 },
-					{ "time": 5.2667, "value": 3.65 },
-					{ "time": 5.4, "value": -3.04 },
-					{ "time": 5.5, "value": 1.49 },
-					{ "time": 5.6, "value": -1.86 },
-					{ "time": 5.7, "value": 0.42 }
-				]
-			},
-			"antenna6": {
-				"rotate": [
-					{},
-					{
-						"time": 0.3333,
-						"value": 1.05,
-						"curve": [ 0.731, 1.05, 1.008, -4.55 ]
-					},
-					{
-						"time": 1.2333,
-						"value": -4.55,
-						"curve": [ 1.35, -4.55, 1.583, 0.53 ]
-					},
-					{ "time": 1.7, "value": 0.53 },
-					{ "time": 2, "value": -2.13 },
-					{ "time": 2.2, "value": 4.71 },
-					{ "time": 2.3667, "value": -7.26 },
-					{ "time": 2.5667, "value": 2.26 },
-					{ "time": 2.7333, "value": -3.39 },
-					{ "time": 3.0667, "value": -5.53 },
-					{ "time": 3.2333, "value": 7.78 },
-					{ "time": 3.4667, "value": -5.99 },
-					{ "time": 3.7, "value": 3.11 },
-					{ "time": 3.9, "value": -3.05 },
-					{ "time": 4.1, "value": 0.31 },
-					{ "time": 4.3, "value": -3.06 },
-					{ "time": 4.5333, "value": 0.36 },
-					{
-						"time": 4.8667,
-						"value": 4.94,
-						"curve": [ 4.925, 4.94, 5.042, -2.38 ]
-					},
-					{ "time": 5.1, "value": -2.38 },
-					{ "time": 5.2667, "value": 3.65 },
-					{ "time": 5.4, "value": -3.04 },
-					{ "time": 5.5, "value": 1.49 },
-					{ "time": 5.6, "value": -1.86 },
-					{ "time": 5.7, "value": 0.42 }
-				]
-			},
-			"machinegun": {
-				"rotate": [
-					{ "value": 8.07, "curve": "stepped" },
-					{ "time": 2.0667, "value": 8.07 },
-					{ "time": 2.1667, "value": 3.11 },
-					{ "time": 2.5667, "value": -10.99, "curve": "stepped" },
-					{ "time": 3.1333, "value": -10.99 },
-					{ "time": 3.2667, "value": 18.18 },
-					{ "time": 3.4333, "value": 2.75, "curve": "stepped" },
-					{ "time": 4.7, "value": 2.75 },
-					{ "time": 4.9, "value": 8.07 }
-				]
-			}
-		},
-		"path": {
-			"treads-path": {
-				"position": [
-					{
-						"curve": [ 0.984, 0, 1.588, 0.1788 ]
-					},
-					{
-						"time": 2,
-						"value": 0.385,
-						"curve": [ 2.023, 0.3916, 2.045, 0.3983 ]
-					},
-					{ "time": 2.0667, "value": 0.405 },
-					{ "time": 2.3333, "value": 0.555 },
-					{ "time": 2.5, "value": 0.605 },
-					{ "time": 2.6667, "value": 0.685 },
-					{ "time": 2.8333, "value": 0.745 },
-					{ "time": 3, "value": 0.785 },
-					{ "time": 3.0667, "value": 0.8 },
-					{ "time": 3.1333, "value": 0.825 },
-					{ "time": 3.1667, "value": 0.835 },
-					{ "time": 3.2333, "value": 0.87 },
-					{
-						"time": 3.5,
-						"value": 0.98,
-						"curve": [ 3.726, 1.0474, 4.335, 1.4 ]
-					},
-					{ "time": 4.8333, "value": 1.4 }
-				]
-			}
-		}
-	},
-	"shoot": {
-		"slots": {
-			"rock": {
-				"attachment": [
-					{}
-				]
-			},
-			"smoke-glow": {
-				"rgba": [
-					{ "time": 0.1333, "color": "ffffffff" },
-					{ "time": 0.1667, "color": "ffbc8af4" },
-					{ "time": 0.2, "color": "fc8e8e90" },
-					{ "time": 0.2667, "color": "fa3e3e1e" }
-				],
-				"attachment": [
-					{ "time": 0.0667, "name": "smoke-glow" },
-					{ "time": 0.3 }
-				]
-			},
-			"smoke-puff1-bg": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 1.0333, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.0667, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg2": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg3": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg4": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.9, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg5": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.9, "light": "ffd50c00", "dark": "604a3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg6": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.7, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg7": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg8": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4333, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.9333, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg9": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.5333, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg10": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.5333, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.8333, "light": "ffd50c00", "dark": "604a3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg11": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.7667, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.3333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg12": {
-				"rgba2": [
-					{ "time": 0.3333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.8667, "light": "ffd50c00", "dark": "604a3f" }
-				],
-				"attachment": [
-					{ "time": 0.3667, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg13": {
-				"rgba2": [
-					{ "time": 0.3667, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 1, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.3667, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg14": {
-				"rgba2": [
-					{ "time": 0.4333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 1.0667, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.4333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg15": {
-				"rgba2": [
-					{ "time": 0.4, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.4, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg16": {
-				"rgba2": [
-					{ "time": 0.4, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.7, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.4, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg17": {
-				"rgba2": [
-					{ "time": 0.2333, "light": "ffd50cff", "dark": "534035" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.6667, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.2333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg18": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.5, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.8, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.2333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg20": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.8, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.3333, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg21": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.7, "light": "ffd50c00", "dark": "604b3f" }
-				]
-			},
-			"smoke-puff1-bg22": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.7, "light": "ffd50c00", "dark": "604b3f" }
-				]
-			},
-			"smoke-puff1-bg23": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.5, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.7667, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.3, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg24": {
-				"rgba2": [
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.7, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.3, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg25": {
-				"rgba2": [
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 1, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.3667, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg26": {
-				"rgba2": [
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.9333, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.3667, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-bg27": {
-				"rgba2": [
-					{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
-					{ "time": 0.7333, "light": "ffd50c00", "dark": "604b3f" }
-				],
-				"attachment": [
-					{ "time": 0.3667, "name": "smoke-puff01-bg" }
-				]
-			},
-			"smoke-puff1-fg": {
-				"rgba2": [
-					{ "time": 0.0667, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1333, "light": "fde252ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.6, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 1.0333, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.0667, "name": "smoke-puff01-fg" },
-					{ "time": 0.1667, "name": "smoke-puff02-fg" },
-					{ "time": 0.2, "name": "smoke-puff03-fg" },
-					{ "time": 0.2333, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg2": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-fg" },
-					{ "time": 0.1667, "name": "smoke-puff02-fg" },
-					{ "time": 0.2, "name": "smoke-puff03-fg" },
-					{ "time": 0.2333, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg3": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffe457ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-fg" },
-					{ "time": 0.1667, "name": "smoke-puff02-fg" },
-					{ "time": 0.2, "name": "smoke-puff03-fg" },
-					{ "time": 0.2667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg4": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "fae781ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.6, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.9, "light": "ac8c7500", "dark": "604a3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-fg" },
-					{ "time": 0.1667, "name": "smoke-puff02-fg" },
-					{ "time": 0.2, "name": "smoke-puff03-fg" },
-					{ "time": 0.2667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg5": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.6, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.9, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-fg" },
-					{ "time": 0.1667, "name": "smoke-puff02-fg" },
-					{ "time": 0.2, "name": "smoke-puff03-fg" },
-					{ "time": 0.2667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg6": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.7, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-fg" },
-					{ "time": 0.1667, "name": "smoke-puff02-fg" },
-					{ "time": 0.2, "name": "smoke-puff03-fg" },
-					{ "time": 0.2667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg7": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.8333, "light": "ac8c7500", "dark": "604a3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-fg" },
-					{ "time": 0.1667, "name": "smoke-puff02-fg" },
-					{ "time": 0.2, "name": "smoke-puff03-fg" },
-					{ "time": 0.2333, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg8": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4333, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.9333, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-fg" },
-					{ "time": 0.1667, "name": "smoke-puff02-fg" },
-					{ "time": 0.2, "name": "smoke-puff03-fg" },
-					{ "time": 0.2333, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg9": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.5333, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-fg" },
-					{ "time": 0.1667, "name": "smoke-puff02-fg" },
-					{ "time": 0.2, "name": "smoke-puff03-fg" },
-					{ "time": 0.2333, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg10": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "fce35dff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.5333, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.8333, "light": "ac8c7500", "dark": "604a3f" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "smoke-puff01-fg" },
-					{ "time": 0.1667, "name": "smoke-puff02-fg" },
-					{ "time": 0.2, "name": "smoke-puff03-fg" },
-					{ "time": 0.2667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg11": {
-				"rgba2": [
-					{ "time": 0.3333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.7667, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.3333, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg12": {
-				"rgba2": [
-					{ "time": 0.3667, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.6, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.8667, "light": "ac8c7500", "dark": "604a3f" }
-				],
-				"attachment": [
-					{ "time": 0.3667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg13": {
-				"rgba2": [
-					{ "time": 0.3667, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 1, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.3667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg14": {
-				"rgba2": [
-					{ "time": 0.4333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.6, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 1.0667, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.4333, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg15": {
-				"rgba2": [
-					{ "time": 0.4, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.4, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg16": {
-				"rgba2": [
-					{ "time": 0.4, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.7, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.4, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg17": {
-				"rgba2": [
-					{ "time": 0.2333, "light": "e3c05eff", "dark": "ab7e59" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.6667, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.2333, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg18": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.5, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.7667, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.2333, "name": "smoke-puff03-fg" },
-					{ "time": 0.2667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg20": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.8, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.3333, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg21": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.7, "light": "ab764c00", "dark": "ac8d75" }
-				]
-			},
-			"smoke-puff1-fg22": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.7, "light": "ab764c00", "dark": "ac8d75" }
-				]
-			},
-			"smoke-puff1-fg23": {
-				"rgba2": [
-					{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
-					{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
-					{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.5, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.7667, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.3, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg24": {
-				"rgba2": [
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.7, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.3, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg25": {
-				"rgba2": [
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 1, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.3667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg26": {
-				"rgba2": [
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.6, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.9333, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.3667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"smoke-puff1-fg27": {
-				"rgba2": [
-					{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
-					{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
-					{ "time": 0.7333, "light": "ab764c00", "dark": "ac8d75" }
-				],
-				"attachment": [
-					{ "time": 0.3667, "name": "smoke-puff04-fg" }
-				]
-			},
-			"tank-glow": {
-				"rgba": [
-					{ "time": 0.0667, "color": "fc994d84" },
-					{
-						"time": 0.1333,
-						"color": "f5b16bc8",
-						"curve": [ 0.221, 0.96, 0.252, 0.98, 0.221, 0.69, 0.252, 0.62, 0.221, 0.42, 0.252, 0.33, 0.221, 0.78, 0.252, 0.32 ]
-					},
-					{ "time": 0.2667, "color": "fc994c30" }
-				],
-				"attachment": [
-					{ "time": 0.0667, "name": "smoke-glow" },
-					{ "time": 0.2667 }
-				]
-			}
-		},
-		"bones": {
-			"cannon": {
-				"translate": [
-					{ "time": 0.0667 },
-					{ "time": 0.1667, "x": 34.77, "y": 0.9 },
-					{ "time": 0.2667, "x": 1.3 }
-				]
-			},
-			"tank-body": {
-				"rotate": [
-					{ "time": 0.0667 },
-					{
-						"time": 0.1667,
-						"value": -4.29,
-						"curve": [ 0.2, -4.29, 0.267, 2.37 ]
-					},
-					{
-						"time": 0.3,
-						"value": 2.37,
-						"curve": [ 0.333, 2.37, 0.4, 0 ]
-					},
-					{ "time": 0.4333 }
-				],
-				"translate": [
-					{ "time": 0.0667 },
-					{
-						"time": 0.1667,
-						"x": 31.04,
-						"y": 1.67,
-						"curve": [ 0.2, 31.04, 0.267, -12.05, 0.2, 1.67, 0.267, -0.23 ]
-					},
-					{ "time": 0.3, "x": -12.05, "y": -0.23 },
-					{ "time": 0.3667 }
-				]
-			},
-			"tank-treads": {
-				"rotate": [
-					{ "time": 0.0667 },
-					{ "time": 0.1667, "value": -3.08 },
-					{ "time": 0.3, "value": -0.42 }
-				]
-			},
-			"smoke1": {
-				"rotate": [
-					{ "time": 0.0667 },
-					{ "time": 0.1333, "value": 2.88 },
-					{ "time": 0.1667, "value": 2.34 },
-					{ "time": 0.2, "value": 124.36 },
-					{ "time": 0.2667, "value": 142.26 },
-					{ "time": 0.3333, "value": 86.78 },
-					{ "time": 0.4667, "value": 128.79 },
-					{ "time": 0.6333, "value": 146.22 },
-					{ "time": 1.0333, "value": 210.7 }
-				],
-				"translate": [
-					{ "time": 0.0667, "x": -9.69, "y": 1.05 },
-					{ "time": 0.1333, "x": 7.53, "y": 1.21 },
-					{ "time": 0.1667, "x": 3.26, "y": 4.07 },
-					{ "time": 0.2, "x": 29.64, "y": -17.46 },
-					{ "time": 0.2667, "x": 86.97, "y": 17.83 },
-					{ "time": 0.3333, "x": 193.74, "y": -38.98 },
-					{ "time": 0.4, "x": 341.67, "y": -39.52 },
-					{ "time": 0.6333, "x": 393.24, "y": -4.01 },
-					{ "time": 1.0333, "x": 410.76, "y": 6.35 }
-				],
-				"scale": [
-					{ "time": 0.0667 },
-					{ "time": 0.1333, "x": 3.171, "y": 0.756 },
-					{ "time": 0.1667, "x": 3.488, "y": 1.279 },
-					{ "time": 0.2, "x": 5.151, "y": 2.369 },
-					{ "time": 0.2667, "x": 4.735, "y": 3.622 },
-					{ "time": 0.3, "x": 4.735, "y": 4.019 },
-					{ "time": 0.3333, "x": 4.613, "y": 3.339 },
-					{ "time": 0.3667, "x": 4.918, "y": 3.561 },
-					{ "time": 0.4, "x": 4.6, "y": 4.263 },
-					{ "time": 0.6333, "x": 4.449, "y": 2.62 },
-					{ "time": 1.0333, "x": 3.09, "y": 1.447 }
-				]
-			},
-			"smoke2": {
-				"rotate": [
-					{ "time": 0.1667, "value": 31.55 },
-					{ "time": 0.3, "value": -22.63 },
-					{ "time": 0.4667, "value": 142.89 },
-					{ "time": 0.6, "value": 253.78 },
-					{ "time": 0.8333, "value": 299.28 }
-				],
-				"translate": [
-					{ "time": 0.1667, "x": 17.26, "y": 4.86 },
-					{ "time": 0.2333, "x": 141.22, "y": 27.27 },
-					{ "time": 0.3, "x": 178.86, "y": 56.63 },
-					{ "time": 0.3667, "x": 200.46, "y": 71.05 },
-					{ "time": 0.4333, "x": 213.12, "y": 78.39 },
-					{ "time": 0.6333, "x": 221.44, "y": 73.1 },
-					{ "time": 0.8333, "x": 223.32, "y": 73.74 }
-				],
-				"scale": [
-					{ "time": 0.1667, "x": 1.34, "y": 1.34 },
-					{ "time": 0.2333, "x": 2.81, "y": 1.317 },
-					{ "time": 0.3, "x": 2.932, "y": 1.374 },
-					{ "time": 0.4667, "x": 1.247, "y": 0.639 },
-					{ "time": 0.8333, "x": 0.778, "y": 0.515 }
-				]
-			},
-			"smoke3": {
-				"rotate": [
-					{ "time": 0.1667, "value": -5.54 },
-					{ "time": 0.2333, "value": 0.2 },
-					{ "time": 0.3333, "value": 20.27 },
-					{ "time": 0.4, "value": 31.36 },
-					{ "time": 0.4667, "value": 68.52 },
-					{ "time": 0.5333, "value": 99.74 },
-					{ "time": 0.6333, "value": 145.8 },
-					{ "time": 0.8333, "value": 193.28 }
-				],
-				"translate": [
-					{ "time": 0.1333, "x": 1.17, "y": 8.53 },
-					{ "time": 0.1667, "x": 37.53, "y": 4.84 },
-					{ "time": 0.2, "x": 67.99, "y": 9.85 },
-					{ "time": 0.2333, "x": 134.14, "y": -13.5 },
-					{ "time": 0.2667, "x": 181.31, "y": -19.93 },
-					{ "time": 0.3, "x": 238.28, "y": -8.82 },
-					{ "time": 0.3333, "x": 268.51, "y": -25.75 },
-					{ "time": 0.3667, "x": 359.06, "y": -28.49 },
-					{ "time": 0.4, "x": 432.96, "y": -24.11 },
-					{ "time": 0.4667, "x": 452.16, "y": -16.73 },
-					{ "time": 0.6333, "x": 456.28, "y": -0.41 },
-					{ "time": 0.8333, "x": 454.14, "y": 16.41 }
-				],
-				"scale": [
-					{ "time": 0.1333, "x": 2.258, "y": 1.366 },
-					{ "time": 0.1667, "x": 2.656, "y": 1.47 },
-					{ "time": 0.2, "x": 3.202, "y": 1.772 },
-					{ "time": 0.2333, "x": 3.202, "y": 1.93 },
-					{ "time": 0.2667, "x": 3.124, "y": 1.896 },
-					{ "time": 0.3, "x": 3.593, "y": 1.896 },
-					{ "time": 0.3333, "x": 2.363, "y": 1.247 },
-					{ "time": 0.3667, "x": 1.845, "y": 0.973 },
-					{ "time": 0.4, "x": 1.754, "y": 0.926 },
-					{ "time": 0.4333, "x": 1.448, "y": 0.695 },
-					{ "time": 0.4667, "x": 1.441, "y": 0.688 },
-					{ "time": 0.5333, "x": 0.865, "y": 0.456 },
-					{ "time": 0.7, "x": 0.86, "y": 0.454 },
-					{ "time": 0.8333, "x": 0.211, "y": 0.111 }
-				]
-			},
-			"smoke4": {
-				"rotate": [
-					{ "time": 0.1667, "value": -20.35 },
-					{ "time": 0.2333, "value": 18.5 },
-					{ "time": 0.3, "value": 57.77 },
-					{ "time": 0.4, "value": 105.85 },
-					{ "time": 0.6, "value": 161.28 },
-					{ "time": 0.9, "value": 208.43 }
-				],
-				"translate": [
-					{ "time": 0.1667, "x": 35.95, "y": 25.54 },
-					{ "time": 0.2333, "x": 34.17, "y": 1.87 },
-					{ "time": 0.3, "x": 136.7, "y": 21.5 },
-					{ "time": 0.4, "x": 138.61, "y": 34.8 },
-					{ "time": 0.6, "x": 160.38, "y": 37.13 },
-					{ "time": 0.9, "x": 196.41, "y": 30.36 }
-				],
-				"scale": [
-					{ "time": 0.1667, "x": 2.751, "y": 1.754 },
-					{ "time": 0.2333, "x": 3.486, "y": 2.224 },
-					{ "time": 0.2667, "x": 3.486, "y": 2.586 },
-					{ "time": 0.3, "x": 3.847, "y": 2.109 },
-					{ "time": 0.4, "x": 1.96, "y": 1.074 },
-					{ "time": 0.9, "x": 0.825, "y": 0.452 }
-				]
-			},
-			"smoke5": {
-				"rotate": [
-					{ "time": 0.2, "value": 23.09 },
-					{ "time": 0.2667, "value": 12.24 },
-					{ "time": 0.3333, "value": 36.92 },
-					{ "time": 0.4333, "value": -37.33 },
-					{ "time": 0.5333, "value": -0.66 },
-					{ "time": 0.9, "value": 64.02 }
-				],
-				"translate": [
-					{ "time": 0.1333 },
-					{ "time": 0.2333, "x": 123.76, "y": 19.44 },
-					{ "time": 0.3, "x": 239.08, "y": -49.72 },
-					{ "time": 0.3667, "x": 280.23, "y": -51.46 },
-					{ "time": 0.7, "x": 340.62, "y": -20.09 },
-					{ "time": 0.9, "x": 349.18, "y": -5.25 }
-				],
-				"scale": [
-					{ "time": 0.1333 },
-					{ "time": 0.1667, "x": 1.718, "y": 1.718 },
-					{ "time": 0.2, "x": 2.109, "y": 2.109 },
-					{ "time": 0.2333, "x": 1.781, "y": 2.183 },
-					{ "time": 0.2667, "x": 2.148, "y": 2.633 },
-					{ "time": 0.3333, "x": 2.234, "y": 2.738 },
-					{ "time": 0.3667, "x": 1.366, "y": 2.148 },
-					{ "time": 0.4, "x": 0.97, "y": 1.524 },
-					{ "time": 0.4333, "x": 1.078, "y": 1.157 },
-					{ "time": 0.4667, "x": 1.126, "y": 1.005 },
-					{ "time": 0.7, "x": 1.241, "y": 1.301 },
-					{ "time": 0.9, "x": 0.709, "y": 0.893 }
-				]
-			},
-			"smoke6": {
-				"rotate": [
-					{ "time": 0.1667, "value": -37.43 },
-					{ "time": 0.2333, "value": -18.36 },
-					{ "time": 0.3333, "value": 28.58 },
-					{ "time": 0.4, "value": 150.54 },
-					{ "time": 0.7, "value": 301.59 }
-				],
-				"translate": [
-					{ "time": 0.1333 },
-					{ "time": 0.2, "x": 68.04, "y": 16.15 },
-					{ "time": 0.2667, "x": 214.52, "y": 13.25 },
-					{ "time": 0.3333, "x": 285.4, "y": 17.95 },
-					{ "time": 0.4, "x": 202.91, "y": 101.43 },
-					{ "time": 0.4667, "x": 189.25, "y": 116.39 },
-					{ "time": 0.7, "x": 182.77, "y": 137.4 }
-				],
-				"scale": [
-					{ "time": 0.1333 },
-					{ "time": 0.1667, "x": 1.152, "y": 1.288 },
-					{ "time": 0.2, "x": 1.939, "y": 2.168 },
-					{ "time": 0.2333, "x": 2.278, "y": 2.223 },
-					{ "time": 0.2667, "x": 2.023, "y": 1.974 },
-					{ "time": 0.3, "x": 2.644, "y": 1.974 },
-					{ "time": 0.4, "x": 1.539, "y": 1.425 },
-					{ "time": 0.4667, "x": 1.14, "y": 0.939 },
-					{ "time": 0.7, "x": 0.215, "y": 0.161 }
-				]
-			},
-			"smoke7": {
-				"rotate": [
-					{ "time": 0.1667, "value": -243.11 },
-					{ "time": 0.4, "value": -182.02 },
-					{ "time": 0.8333, "value": -83.02 }
-				],
-				"translate": [
-					{ "time": 0.1333, "x": 3.19, "y": -6.53 },
-					{ "time": 0.1667, "x": 44.54, "y": 1.12 },
-					{ "time": 0.2, "x": 65.84, "y": 6.02 },
-					{ "time": 0.2333, "x": 173.84, "y": 97.51 },
-					{ "time": 0.4, "x": 167.39, "y": 74.58 },
-					{ "time": 0.8333, "x": 227.77, "y": 84.64 }
-				],
-				"scale": [
-					{ "time": 0.1333, "x": 0.878, "y": 0.878 },
-					{ "time": 0.1667, "x": 1.235, "y": 1.235 },
-					{ "time": 0.2, "x": 1.461, "y": 1.461 },
-					{ "time": 0.2333, "x": 1.114, "y": 1.114 },
-					{ "time": 0.3333, "x": 1.067, "y": 1.067 },
-					{ "time": 0.4667, "x": 0.81, "y": 0.753 },
-					{ "time": 0.8333, "x": 0.52, "y": 0.484 }
-				]
-			},
-			"smoke8": {
-				"rotate": [
-					{ "time": 0.1667, "value": -156.52 },
-					{ "time": 0.2667, "value": -154.05 },
-					{ "time": 0.3333, "value": -108.35 },
-					{ "time": 0.6, "value": -93.14 },
-					{ "time": 0.9333, "value": -70.89 }
-				],
-				"translate": [
-					{ "time": 0.1667, "x": 20.72, "y": 0.25 },
-					{ "time": 0.2333, "x": 46.1, "y": -10.06 },
-					{ "time": 0.3, "x": 149.77, "y": 0.92 },
-					{ "time": 0.3667, "x": 241.21, "y": 49.01 },
-					{ "time": 0.5333, "x": 276, "y": 58.76 },
-					{ "time": 0.7, "x": 292.02, "y": 65.91 },
-					{ "time": 0.9333, "x": 308.7, "y": 69.51 }
-				],
-				"scale": [
-					{ "time": 0.1333, "y": 1.174 },
-					{ "time": 0.1667, "x": 1.813, "y": 1.438 },
-					{ "time": 0.2, "x": 1.813, "y": 1.878 },
-					{ "time": 0.2333, "x": 1.211, "y": 1.878 },
-					{ "time": 0.2667, "x": 1.584, "y": 1.596 },
-					{ "time": 0.3, "x": 1.958, "y": 1.878 },
-					{ "time": 0.4667, "x": 1.139, "y": 0.958 },
-					{ "time": 0.9333, "x": 0.839, "y": 0.591 }
-				]
-			},
-			"smoke9": {
-				"rotate": [
-					{ "time": 0.1333, "value": -44.34 },
-					{ "time": 0.1667, "value": 14.73 },
-					{ "time": 0.2333, "value": 116.07 },
-					{ "time": 0.2667, "value": 118.29 },
-					{ "time": 0.3333, "value": 148.13 },
-					{ "time": 0.3667, "value": 172.74 },
-					{ "time": 0.4, "value": 235.69 },
-					{ "time": 0.4333, "value": 283.36 },
-					{ "time": 0.7667, "value": 358.76 }
-				],
-				"translate": [
-					{ "time": 0.1333, "x": -3.49, "y": 0.04 },
-					{ "time": 0.2, "x": 87.4, "y": -7.97 },
-					{ "time": 0.2667, "x": 233.69, "y": -33.86 },
-					{ "time": 0.3333, "x": 296.44, "y": -30.87 },
-					{ "time": 0.4, "x": 390.8, "y": 4 },
-					{ "time": 0.4667, "x": 391.42, "y": 13.17 },
-					{ "time": 0.6333, "x": 413.3, "y": 36.13 },
-					{ "time": 0.7667, "x": 408.59, "y": 40.75 }
-				],
-				"scale": [
-					{ "time": 0.1333, "x": 1.289, "y": 1.501 },
-					{ "time": 0.2, "x": 1.751, "y": 2.039 },
-					{ "time": 0.2667, "x": 2.064, "y": 2.347 },
-					{ "time": 0.3333, "x": 1.822, "y": 2.072 },
-					{ "time": 0.4, "x": 1.296, "y": 1.045 },
-					{ "time": 0.4667, "x": 1.872, "y": 1.526 },
-					{ "time": 0.6333, "x": 1.181, "y": 1.037 },
-					{ "time": 0.7667, "x": 0.716, "y": 0.615 }
-				]
-			},
-			"smoke10": {
-				"rotate": [
-					{ "time": 0.1333, "value": 12.16 },
-					{ "time": 0.2, "value": 49.19 },
-					{ "time": 0.2667, "value": 33.17 },
-					{ "time": 0.3333, "value": 42.23 },
-					{ "time": 0.4, "value": 11.69 },
-					{ "time": 0.4667, "value": 41.83 },
-					{ "time": 0.5333, "value": 54.86 },
-					{ "time": 0.6333, "value": 75.25 },
-					{ "time": 0.8333, "value": 126.4 }
-				],
-				"translate": [
-					{ "time": 0.1333, "x": 7.74, "y": 10.25 },
-					{ "time": 0.2, "x": 42.9, "y": 72.89 },
-					{ "time": 0.2667, "x": 221.58, "y": 82.27 },
-					{ "time": 0.3333, "x": 297.31, "y": 85.39 },
-					{ "time": 0.4, "x": 322.91, "y": 81.04 },
-					{ "time": 0.4667, "x": 346.62, "y": 76.68 },
-					{ "time": 0.6667, "x": 377.46, "y": 81.85 },
-					{ "time": 0.8333, "x": 402.18, "y": 101.03 }
-				],
-				"scale": [
-					{ "time": 0.1333, "x": 0.537, "y": 1.062 },
-					{ "time": 0.1667, "x": 1.042, "y": 0.841 },
-					{ "time": 0.2, "x": 1.937, "y": 1.563 },
-					{ "time": 0.2333, "x": 1.937, "y": 2.176 },
-					{ "time": 0.2667, "x": 2.254, "y": 2.532 },
-					{ "time": 0.3, "x": 2.24, "y": 2.516 },
-					{ "time": 0.5333, "x": 1.731, "y": 1.882 },
-					{ "time": 0.8333, "x": 0.855, "y": 0.867 }
-				]
-			},
-			"smoke-glow": {
-				"translate": [
-					{ "time": 0.0667, "x": -57.08, "y": 0.01 },
-					{ "time": 0.1, "x": -49.68, "y": -1.46 },
-					{ "time": 0.1333, "x": 6.3, "y": -2.92 },
-					{ "time": 0.1667, "x": 31.57, "y": 0.44 },
-					{ "time": 0.2, "x": 34.04, "y": 0.27 },
-					{ "time": 0.2333, "x": 109.29, "y": 1.02 },
-					{ "time": 0.4, "x": 119.89, "y": 1.01 },
-					{ "time": 0.4333, "x": 135.2, "y": 1.03 },
-					{ "time": 0.4667, "x": 152.86, "y": 1.06 },
-					{ "time": 0.5333, "x": 164.64, "y": 1.07 },
-					{ "time": 0.6, "x": 179.94, "y": 1.09 },
-					{ "time": 0.6333, "x": 190.54, "y": 1.1 }
-				],
-				"scale": [
-					{ "time": 0.0667, "x": 0.233, "y": 0.233 },
-					{ "time": 0.1, "x": 0.42, "y": 0.288 },
-					{ "time": 0.1333, "x": 1.669, "y": 1.072 },
-					{ "time": 0.1667, "x": 1.669, "y": 1.785, "curve": "stepped" },
-					{ "time": 0.2, "x": 1.669, "y": 1.785 },
-					{ "time": 0.2333, "x": 2.544, "y": 1.785 },
-					{ "time": 0.4333, "x": 3.48, "y": 2.22 },
-					{ "time": 0.4667, "x": 4.337, "y": 2.655 }
-				]
-			},
-			"smoke11": {
-				"rotate": [
-					{ "time": 0.4, "value": 47.07 },
-					{ "time": 0.4333, "value": 109.71 },
-					{ "time": 0.4667, "value": 164.62 },
-					{ "time": 0.8333, "value": 276.93 }
-				],
-				"translate": [
-					{ "time": 0.3333, "x": 280.31, "y": 126.85 },
-					{ "time": 0.4, "x": 296.27, "y": 125.62 },
-					{ "time": 0.4667, "x": 312.45, "y": 131.57 },
-					{ "time": 0.6667, "x": 310.5, "y": 149.67 },
-					{ "time": 0.8333, "x": 307.08, "y": 153.94 }
-				],
-				"scale": [
-					{ "time": 0.3333, "x": 1.491, "y": 1.491 },
-					{ "time": 0.4667, "x": 1.144, "y": 0.948 },
-					{ "time": 0.5667, "x": 0.491, "y": 0.491 },
-					{ "time": 0.8333, "x": 0.985, "y": 0.91 }
-				]
-			},
-			"smoke12": {
-				"rotate": [
-					{ "time": 0.3667, "value": -37.96 },
-					{ "time": 0.4333, "value": 28.55 },
-					{ "time": 0.5333, "value": 108.53 },
-					{ "time": 0.8667, "value": 191.85 }
-				],
-				"translate": [
-					{ "time": 0.3667, "x": 390.22, "y": -1.06 },
-					{ "time": 0.4333, "x": 411.78, "y": 26.39 },
-					{ "time": 0.5333, "x": 428.12, "y": 56.28 },
-					{ "time": 0.8667, "x": 444.34, "y": 68.06 }
-				],
-				"scale": [
-					{ "time": 0.3667, "x": 2.006, "y": 1.821 },
-					{ "time": 0.5333, "x": 1.719, "y": 1.293 },
-					{ "time": 0.7333, "x": 1.562, "y": 1.304 },
-					{ "time": 0.8667, "x": 0.727, "y": 0.637 }
-				]
-			},
-			"smoke13": {
-				"rotate": [
-					{ "time": 0.3667, "value": 305.8 },
-					{ "time": 0.4, "value": 478.49 },
-					{ "time": 0.4333, "value": 537.45 },
-					{ "time": 0.4667, "value": 573.84 },
-					{ "time": 0.5333, "value": 596.4 },
-					{ "time": 0.7, "value": 622.3 },
-					{ "time": 1, "value": 657.95 }
-				],
-				"translate": [
-					{ "time": 0.3667, "x": 331.84, "y": -25.82 },
-					{ "time": 0.4, "x": 417.88, "y": -42.62 },
-					{ "time": 0.4667, "x": 451.61, "y": -42.21 },
-					{ "time": 0.5333, "x": 453.81, "y": -37.03 },
-					{ "time": 0.6, "x": 451.86, "y": -31.89 },
-					{ "time": 0.7, "x": 453.37, "y": -27.28 },
-					{ "time": 1, "x": 454.04, "y": -17.89 }
-				],
-				"scale": [
-					{ "time": 0.3667, "x": 4.509, "y": 3.114 },
-					{ "time": 0.4, "x": 3.673, "y": 2.537 },
-					{ "time": 0.4333, "x": 4.201, "y": 2.638 },
-					{ "time": 0.4667, "x": 4.27, "y": 2.399 },
-					{ "time": 0.6, "x": 2.798, "y": 1.932 },
-					{ "time": 0.8333, "x": 2.316, "y": 1.599 },
-					{ "time": 1, "x": 1.081, "y": 0.746 }
-				]
-			},
-			"smoke14": {
-				"rotate": [
-					{ "time": 0.4333, "value": 271.03 },
-					{ "time": 0.7, "value": 299.97 },
-					{ "time": 1.0667, "value": 331.16 }
-				],
-				"translate": [
-					{ "time": 0.4333, "x": 371.68, "y": -29.8 },
-					{ "time": 0.7667, "x": 400.59, "y": -44.36 },
-					{ "time": 1.0667, "x": 432.26, "y": -44.79 }
-				],
-				"scale": [
-					{ "time": 0.4333, "x": 4.011, "y": 3.366 },
-					{ "time": 0.7667, "x": 2.071, "y": 1.624 },
-					{ "time": 1.0667, "x": 1.798, "y": 1.111 }
-				]
-			},
-			"smoke15": {
-				"rotate": [
-					{ "time": 0.4, "value": 111.75 },
-					{ "time": 0.4667, "value": 171.93 },
-					{ "time": 0.6, "value": 256.95 },
-					{ "time": 0.8333, "value": 299.15 }
-				],
-				"translate": [
-					{ "time": 0.4, "x": 266.71, "y": -53.04 },
-					{ "time": 0.4333, "x": 290.84, "y": -51.43 },
-					{ "time": 0.5333, "x": 305.65, "y": -44.32 },
-					{ "time": 0.6667, "x": 318.96, "y": -38.95 },
-					{ "time": 0.8333, "x": 342.65, "y": -27.33 }
-				],
-				"scale": [
-					{ "time": 0.4, "x": 2.749, "y": 2.095 },
-					{ "time": 0.4333, "x": 3.302, "y": 2.289 },
-					{ "time": 0.4667, "x": 2.591, "y": 1.895 },
-					{ "time": 0.5333, "x": 1.777, "y": 1.354 },
-					{ "time": 0.7, "x": 1.932, "y": 1.267 },
-					{ "time": 0.8333, "x": 1.002, "y": 1.546 }
-				]
-			},
-			"smoke16": {
-				"rotate": [
-					{ "time": 0.4, "value": 89.78 },
-					{ "time": 0.4667, "value": 137.83 },
-					{ "time": 0.5333, "value": 193.49 },
-					{ "time": 0.6, "value": 235.26 },
-					{ "time": 0.6333, "value": 286.8 }
-				],
-				"translate": [
-					{ "time": 0.4, "x": 217.23, "y": -21.45 },
-					{ "time": 0.4667, "x": 249.95, "y": -13.73 },
-					{ "time": 0.5333, "x": 264.96, "y": -9.87 },
-					{ "time": 0.6, "x": 278.95, "y": 6.37 },
-					{ "time": 0.6333, "x": 245.65, "y": 11.77 }
-				],
-				"scale": [
-					{ "time": 0.4, "x": 2.265, "y": 1.859 },
-					{ "time": 0.4333, "x": 2.621, "y": 1.955 },
-					{ "time": 0.4667, "x": 1.953, "y": 1.538 },
-					{ "time": 0.6, "x": 1.005, "y": 0.825 },
-					{ "time": 0.6333, "x": 0.387, "y": 0.318 }
-				]
-			},
-			"smoke17": {
-				"rotate": [
-					{ "time": 0.2333, "value": 99.02 },
-					{ "time": 0.3, "value": 58.06 },
-					{ "time": 0.3333, "value": 34.05 },
-					{ "time": 0.3667, "value": -17.34 },
-					{ "time": 0.6667, "value": -62.36 }
-				],
-				"translate": [
-					{ "time": 0.2333, "x": 18.91, "y": -62.91 },
-					{ "time": 0.3, "x": 2.43, "y": -61.54 },
-					{ "time": 0.3333, "x": 1.89, "y": -36.55 },
-					{ "time": 0.3667, "x": 6.97, "y": -29.52 },
-					{ "time": 0.4333, "x": 10.78, "y": -20.55 },
-					{ "time": 0.6667, "x": 18.65, "y": -13.19 }
-				],
-				"scale": [
-					{ "time": 0.2333, "x": 1.915, "y": 1.915 },
-					{ "time": 0.3, "x": 1.509, "y": 1.509 },
-					{ "time": 0.3333, "x": 1.01, "y": 1.01 },
-					{ "time": 0.3667, "x": 0.715, "y": 0.715 },
-					{ "time": 0.4333, "x": 0.949, "y": 0.721 },
-					{ "time": 0.5667, "x": 0.785, "y": 0.74 }
-				]
-			},
-			"smoke18": {
-				"rotate": [
-					{ "time": 0.2333, "value": 141.75 },
-					{ "time": 0.2667, "value": 134.51 },
-					{ "time": 0.3333, "value": 249.12 },
-					{ "time": 0.5, "value": 363.82 },
-					{ "time": 0.7333, "value": 450.54 }
-				],
-				"translate": [
-					{ "time": 0.2333, "x": 60.81, "y": 56.17 },
-					{ "time": 0.2667, "x": 68.74, "y": 69.4 },
-					{ "time": 0.3333, "x": 76.85, "y": 69.07 },
-					{ "time": 0.5, "x": 101.49, "y": 89.87 },
-					{ "time": 0.7333, "x": 118.58, "y": 101.16 }
-				],
-				"scale": [
-					{ "time": 0.2333, "x": 2.288, "y": 2.288 },
-					{ "time": 0.2667, "x": 2.288, "y": 1.628 },
-					{ "time": 0.3, "x": 1.524, "y": 1.308 },
-					{ "time": 0.5, "x": 1.757, "y": 1.385 },
-					{ "time": 0.5333, "x": 2.08, "y": 1.51 },
-					{ "time": 0.7333, "x": 1.405, "y": 0.896 }
-				]
-			},
-			"smoke20": {
-				"rotate": [
-					{ "time": 0.3333, "value": 95.16 },
-					{ "time": 0.3667, "value": 130.42 },
-					{ "time": 0.4, "value": 170.7 },
-					{ "time": 0.4333, "value": 266.75 },
-					{ "time": 0.4667, "value": 299.82 },
-					{ "time": 0.5333, "value": 326.88 },
-					{ "time": 0.6, "value": 350.8 },
-					{ "time": 0.9, "value": 403.14 }
-				],
-				"translate": [
-					{ "time": 0.3333, "x": 124.61, "y": -46.55 },
-					{ "time": 0.5333, "x": 173.8, "y": -36.62 },
-					{ "time": 0.7, "x": 186.5, "y": -35.41 },
-					{ "time": 0.9, "x": 188.56, "y": -37.75 }
-				],
-				"scale": [
-					{ "time": 0.3333, "x": 3.346, "y": 2.654 },
-					{ "time": 0.3667, "x": 2.661, "y": 2.111 },
-					{ "time": 0.4333, "x": 2.751, "y": 1.984 },
-					{ "time": 0.4667, "x": 3.059, "y": 2.21 },
-					{ "time": 0.5333, "x": 2.159, "y": 1.712 },
-					{ "time": 0.7, "x": 1.601, "y": 1.27 },
-					{ "time": 0.9, "x": 1.679, "y": 0.856 }
-				]
-			},
-			"smoke23": {
-				"rotate": [
-					{ "time": 0.3, "value": 115.12 },
-					{ "time": 0.3667, "value": 79.01 },
-					{ "time": 0.7667, "value": 6.96 }
-				],
-				"translate": [
-					{ "time": 0.3, "x": 75.15, "y": -50.92 },
-					{ "time": 0.3667, "x": 59.33, "y": -53.52 },
-					{ "time": 0.7667, "x": 39.68, "y": -48.64 }
-				],
-				"scale": [
-					{ "time": 0.3, "x": 3.331, "y": 2.096 },
-					{ "time": 0.4333, "x": 2.4, "y": 2.006 },
-					{ "time": 0.5, "x": 2.555, "y": 2.094 },
-					{ "time": 0.7667, "x": 1.35, "y": 1.241 }
-				]
-			},
-			"antenna1": {
-				"rotate": [
-					{ "time": 0.0667 },
-					{ "time": 0.2, "value": 11.78 },
-					{ "time": 0.3, "value": -9.52 },
-					{ "time": 0.4, "value": 8.07 },
-					{ "time": 0.5, "value": -4.45 },
-					{ "time": 0.6, "value": 1.54 },
-					{ "time": 0.7, "value": -0.34 }
-				]
-			},
-			"antenna2": {
-				"rotate": [
-					{ "time": 0.0667 },
-					{ "time": 0.2, "value": 11.78 },
-					{ "time": 0.3, "value": -9.52 },
-					{ "time": 0.4, "value": 8.07 },
-					{ "time": 0.5, "value": -4.45 },
-					{ "time": 0.6, "value": 1.54 },
-					{ "time": 0.7, "value": -0.34 }
-				]
-			},
-			"antenna3": {
-				"rotate": [
-					{ "time": 0.0667 },
-					{ "time": 0.2, "value": 11.78 },
-					{ "time": 0.3, "value": -9.52 },
-					{ "time": 0.4, "value": 8.07 },
-					{ "time": 0.5, "value": -4.45 },
-					{ "time": 0.6, "value": 1.54 },
-					{ "time": 0.7, "value": -0.34 }
-				]
-			},
-			"antenna4": {
-				"rotate": [
-					{ "time": 0.0667 },
-					{ "time": 0.2, "value": 11.78 },
-					{ "time": 0.3, "value": -9.52 },
-					{ "time": 0.4, "value": 8.07 },
-					{ "time": 0.5, "value": -4.45 },
-					{ "time": 0.6, "value": 1.54 },
-					{ "time": 0.7, "value": -0.34 }
-				]
-			},
-			"antenna5": {
-				"rotate": [
-					{ "time": 0.0667 },
-					{ "time": 0.2, "value": 11.78 },
-					{ "time": 0.3, "value": -9.52 },
-					{ "time": 0.4, "value": 8.07 },
-					{ "time": 0.5, "value": -4.45 },
-					{ "time": 0.6, "value": 1.54 },
-					{ "time": 0.7, "value": -0.34 }
-				]
-			},
-			"antenna6": {
-				"rotate": [
-					{ "time": 0.0667 },
-					{ "time": 0.2, "value": 11.78 },
-					{ "time": 0.3, "value": -9.52 },
-					{ "time": 0.4, "value": 8.07 },
-					{ "time": 0.5, "value": -4.45 },
-					{ "time": 0.6, "value": 1.54 },
-					{ "time": 0.7, "value": -0.34 }
-				]
-			},
-			"smoke24": {
-				"rotate": [
-					{ "time": 0.3, "value": 71.32 },
-					{ "time": 0.3667, "value": 112.39 },
-					{ "time": 0.4667, "value": 159.56 },
-					{ "time": 0.7, "value": 224.21 }
-				],
-				"translate": [
-					{ "time": 0.3, "x": 90.72, "y": -18.79 },
-					{ "time": 0.3667, "x": 149.69, "y": -7.78 },
-					{ "time": 0.4667, "x": 176.26, "y": 12.31 },
-					{ "time": 0.7, "x": 184.07, "y": 31.75 }
-				],
-				"scale": [
-					{ "time": 0.3, "x": 2.906, "y": 2.311 },
-					{ "time": 0.4333, "x": 3.567, "y": 2.58 },
-					{ "time": 0.4667, "x": 3.157, "y": 2.41 },
-					{ "time": 0.7, "x": 1.705, "y": 1.356 }
-				]
-			},
-			"smoke25": {
-				"rotate": [
-					{ "time": 0.3667, "value": 91.25 },
-					{ "time": 0.4333, "value": 117.56 },
-					{ "time": 0.6333, "value": 150.9 },
-					{ "time": 1, "value": 189.47 }
-				],
-				"translate": [
-					{ "time": 0.3667, "x": 187.21, "y": -51.18 },
-					{ "time": 0.5333, "x": 245.48, "y": -46.28 },
-					{ "time": 0.6667, "x": 277.36, "y": -43.12 },
-					{ "time": 1, "x": 313.27, "y": -38.14 }
-				],
-				"scale": [
-					{ "time": 0.3667, "x": 3.606, "y": 2.657 },
-					{ "time": 0.4333, "x": 4.166, "y": 2.792 },
-					{ "time": 0.5333, "x": 3.09, "y": 2.091 },
-					{ "time": 1, "x": 3.062, "y": 1.801 }
-				]
-			},
-			"smoke26": {
-				"rotate": [
-					{ "time": 0.3667, "value": 10.64 },
-					{ "time": 0.4, "value": 60.85 },
-					{ "time": 0.4667, "value": 89.45 },
-					{ "time": 0.7, "value": 125.01 },
-					{ "time": 0.9333, "value": 155.24 }
-				],
-				"translate": [
-					{ "time": 0.3667, "x": 442.07, "y": -13.19 },
-					{ "time": 0.4, "x": 453.7, "y": 0.81 },
-					{ "time": 0.4667, "x": 443.57, "y": -6.95 },
-					{ "time": 0.7, "x": 460.97, "y": 15.79 },
-					{ "time": 0.9333, "x": 465.22, "y": 20.92 }
-				],
-				"scale": [
-					{ "time": 0.3667, "x": 2.726, "y": 2.726 },
-					{ "time": 0.4333, "x": 3.729, "y": 2.822 },
-					{ "time": 0.4667, "x": 3.398, "y": 2.441 },
-					{ "time": 0.7, "x": 4.324, "y": 3.159 },
-					{ "time": 0.9, "x": 1.977, "y": 1.48 }
-				]
-			},
-			"smoke27": {
-				"rotate": [
-					{ "time": 0.3667, "value": 24.75 },
-					{ "time": 0.4333, "value": -5.43 },
-					{ "time": 0.5333, "value": -39.76 },
-					{ "time": 0.8333, "value": -56.25 }
-				],
-				"translate": [
-					{ "time": 0.3667, "x": 92.98, "y": -49.06 },
-					{ "time": 0.5333, "x": 129.81, "y": -33.09 },
-					{ "time": 0.8333, "x": 143.68, "y": -25.27 }
-				],
-				"scale": [
-					{ "time": 0.3667, "x": 3.633, "y": 2.223 },
-					{ "time": 0.4333, "x": 2.745, "y": 2.283 },
-					{ "time": 0.4667, "x": 2.962, "y": 2.122 },
-					{ "time": 0.5333, "x": 2.007, "y": 1.266 }
-				]
-			},
-			"cannon-target": {
-				"translate": [
-					{ "time": 0.1333 },
-					{
-						"time": 0.2,
-						"y": 128.38,
-						"curve": [ 0.4, 0, 0.8, 0, 0.4, 128.38, 0.8, 0 ]
-					},
-					{ "time": 1 }
-				],
-				"scale": [
-					{ "time": 0.4333, "x": 0.632, "y": 1.244 },
-					{ "time": 0.4667, "x": 0.477, "y": 1.487 }
-				]
-			},
-			"machinegun-target": {
-				"scale": [
-					{ "time": 0.4333, "x": 0.632, "y": 1.244 },
-					{ "time": 0.4667, "x": 0.477, "y": 1.487 }
-				]
-			},
-			"machinegun": {
-				"rotate": [
-					{ "value": 8.07, "curve": "stepped" },
-					{ "time": 0.0667, "value": 8.07 },
-					{
-						"time": 0.2333,
-						"value": -18.67,
-						"curve": [ 0.894, -18.44, 0.832, 7.5 ]
-					},
-					{ "time": 0.9, "value": 8.07 }
-				]
-			},
-			"tank-root": {
-				"translate": [
-					{ "time": 0.0667 },
-					{
-						"time": 0.1667,
-						"x": 46.59,
-						"curve": [ 0.192, 46.59, 0.242, 0, 0.192, 0, 0.242, 0 ]
-					},
-					{ "time": 0.2667 }
-				]
-			},
-			"tank-glow": {
-				"translate": [
-					{
-						"time": 0.1333,
-						"x": 198.14,
-						"curve": [ 0.199, 190.76, 0.222, -255.89, 0.199, 0, 0.222, 0 ]
-					},
-					{ "time": 0.2333, "x": -390 }
-				],
-				"scale": [
-					{ "time": 0.0667 },
-					{
-						"time": 0.1333,
-						"x": 1.185,
-						"y": 0.945,
-						"curve": [ 0.199, 1.182, 0.222, 1.048, 0.199, 0.939, 0.222, 0.579 ]
-					},
-					{ "time": 0.2333, "x": 1.008, "y": 0.471 }
-				]
-			}
-		},
-		"attachments": {
-			"default": {
-				"clipping": {
-					"clipping": {
-						"deform": [
-							{
-								"time": 0.0667,
-								"offset": 54,
-								"vertices": [ 4.59198, -4.59192 ]
-							},
-							{
-								"time": 0.1333,
-								"offset": 8,
-								"vertices": [ -8.97369, -1.88211, 9.11177, 1.02258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14.73321, -45.16878, -30.31448, -84.4631, -32.24969, -108.78421, 70.26825, -36.90201 ]
-							},
-							{
-								"time": 0.1667,
-								"offset": 8,
-								"vertices": [ -11.32373, -1.65065, 11.42179, 0.53259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15.36503, -69.18713, -4.45626, -121.90839, 5.46554, -115.23274, 71.78526, -33.85687 ]
-							},
-							{
-								"time": 0.2,
-								"offset": 8,
-								"vertices": [ -8.70522, 1.02196, 8.65102, -1.4101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.59198, -4.59192 ]
-							},
-							{
-								"time": 0.2333,
-								"offset": 8,
-								"vertices": [ -5.23146, 0.85796, 5.23882, -0.81519 ]
-							},
-							{
-								"time": 0.2667,
-								"offset": 54,
-								"vertices": [ 4.59198, -4.59192 ]
-							}
-						]
-					}
-				},
-				"smoke-glow": {
-					"smoke-glow": {
-						"deform": [
-							{
-								"time": 0.1333,
-								"vertices": [ -14.17073, 19.14352, 0, 0, -10.97961, -15.09065, -5.79558, -24.82121, 0.68117, -17.78759, -1.1179, -5.4463, 0, 0, 0, 0, 17.52957, 6.89397, -0.33841, -2.21582, 5.51004, 18.88118, -6.80153, 20.91101 ]
-							},
-							{
-								"time": 0.1667,
-								"vertices": [ -4.34264, 39.78125, 5.6649, -2.42686, -8.39346, -22.52338, -2.66431, 5.08595, -19.28093, 3.98568, -11.21397, 10.2879, 4.56749, 4.1329, -19.50706, -2.28786, 11.35747, 4.55941, 9.04341, -11.72194, 2.15381, 5.14344, -12.82158, 16.08209, -23.19814, 1.81836 ]
-							},
-							{
-								"time": 0.2,
-								"vertices": [ -3.95581, 36.12203, 37.20779, -0.87419, 21.29579, -15.76854, -2.02438, 6.16526, -5.92201, 4.19709, -1.39027, 9.92793, 7.70584, -0.7169, -6.69733, -2.62048, 17.91826, 7.77333, -12.2858, 3.25454, -12.75876, 3.71516, 9.67891, 15.48546 ]
-							},
-							{
-								"time": 0.2333,
-								"vertices": [ -11.9371, 26.01078, 2.91821, -0.27533, 7.69899, -17.45375, -2.02438, 6.16526, -5.92201, 4.19709, -1.39027, 9.92793, 7.70584, -0.7169, -6.69733, -2.62048, 17.91826, 7.77333, -4.30551, -6.01406, -12.75876, 3.71516, -5.10017, 17.59191 ]
-							},
-							{
-								"time": 0.2667,
-								"vertices": [ 0.5959, 23.58176, 20.74303, 0.93943, 7.69899, -17.45375, -2.02438, 6.16526, -5.92201, 4.19709, -1.39027, 9.92793, 20.51733, 2.52203, 13.35544, 2.64274, 24.32408, -1.94308, 8.50604, -20.99353, 13.14276, 5.73959, 6.31876, 19.2114, 16.98909, 0.80981 ]
-							}
-						]
-					}
-				}
-			}
-		},
-		"drawOrder": [
-			{
-				"time": 0.3,
-				"offsets": [
-					{ "slot": "smoke-puff1-bg2", "offset": 24 },
-					{ "slot": "smoke-puff1-bg8", "offset": 19 },
-					{ "slot": "smoke-puff1-bg9", "offset": 22 },
-					{ "slot": "smoke-puff1-bg3", "offset": 17 },
-					{ "slot": "smoke-puff1-fg17", "offset": 13 },
-					{ "slot": "smoke-puff1-fg2", "offset": 2 },
-					{ "slot": "smoke-puff1-fg5", "offset": 8 },
-					{ "slot": "smoke-puff1-fg6", "offset": 4 },
-					{ "slot": "smoke-puff1-fg7", "offset": -4 },
-					{ "slot": "smoke-puff1-fg4", "offset": -4 }
-				]
-			},
-			{
-				"time": 0.3333,
-				"offsets": [
-					{ "slot": "smoke-puff1-bg2", "offset": 8 },
-					{ "slot": "smoke-puff1-bg8", "offset": 5 },
-					{ "slot": "smoke-puff1-bg9", "offset": 3 },
-					{ "slot": "smoke-puff1-fg", "offset": 24 },
-					{ "slot": "smoke-puff1-fg5", "offset": -14 },
-					{ "slot": "smoke-puff1-fg6", "offset": -21 },
-					{ "slot": "smoke-puff1-fg7", "offset": -19 },
-					{ "slot": "smoke-puff1-fg10", "offset": -21 }
-				]
-			},
-			{
-				"time": 0.3667,
-				"offsets": [
-					{ "slot": "smoke-puff1-bg2", "offset": 7 },
-					{ "slot": "smoke-puff1-bg9", "offset": 4 },
-					{ "slot": "smoke-puff1-fg", "offset": 24 },
-					{ "slot": "smoke-puff1-fg2", "offset": 5 },
-					{ "slot": "smoke-puff1-fg6", "offset": -22 },
-					{ "slot": "smoke-puff1-fg7", "offset": -18 },
-					{ "slot": "smoke-puff1-fg10", "offset": -20 }
-				]
-			},
-			{
-				"time": 0.4,
-				"offsets": [
-					{ "slot": "smoke-puff1-bg2", "offset": 5 },
-					{ "slot": "smoke-puff1-bg4", "offset": 0 },
-					{ "slot": "smoke-puff1-fg", "offset": 24 },
-					{ "slot": "smoke-puff1-fg2", "offset": 5 },
-					{ "slot": "smoke-puff1-fg6", "offset": -21 },
-					{ "slot": "smoke-puff1-fg7", "offset": -18 },
-					{ "slot": "smoke-puff1-fg10", "offset": -22 }
-				]
-			},
-			{
-				"time": 0.4333,
-				"offsets": [
-					{ "slot": "smoke-puff1-bg2", "offset": 4 },
-					{ "slot": "smoke-puff1-bg9", "offset": 4 },
-					{ "slot": "smoke-puff1-fg", "offset": 24 },
-					{ "slot": "smoke-puff1-fg2", "offset": 5 },
-					{ "slot": "smoke-puff1-fg6", "offset": -17 },
-					{ "slot": "smoke-puff1-fg7", "offset": -19 },
-					{ "slot": "smoke-puff1-fg10", "offset": -23 }
-				]
-			},
-			{
-				"time": 0.5333,
-				"offsets": [
-					{ "slot": "smoke-puff1-bg2", "offset": 9 },
-					{ "slot": "smoke-puff1-bg12", "offset": 0 },
-					{ "slot": "smoke-puff1-fg", "offset": 24 },
-					{ "slot": "smoke-puff1-fg2", "offset": 6 },
-					{ "slot": "smoke-puff1-fg6", "offset": -20 },
-					{ "slot": "smoke-puff1-fg7", "offset": -19 },
-					{ "slot": "smoke-puff1-fg10", "offset": -23 },
-					{ "slot": "smoke-puff1-fg4", "offset": -5 }
-				]
-			}
-		]
-	}
-}
-}

+ 0 - 63
spine-cocos2d-objc/Resources/tank.atlas

@@ -1,63 +0,0 @@
-tank.png
-	size: 1024, 1024
-	filter: Linear, Linear
-	scale: 0.5
-antenna
-	bounds: 650, 857, 11, 152
-	rotate: 90
-cannon
-	bounds: 434, 376, 466, 29
-	rotate: 90
-cannon-connector
-	bounds: 349, 241, 56, 68
-	rotate: 90
-ground
-	bounds: 255, 330, 512, 177
-	rotate: 90
-guntower
-	bounds: 650, 870, 365, 145
-machinegun
-	bounds: 255, 299, 166, 29
-machinegun-mount
-	bounds: 2, 2, 36, 48
-	rotate: 90
-rock
-	bounds: 465, 552, 290, 64
-	rotate: 90
-smoke-glow
-	bounds: 531, 563, 50, 50
-smoke-puff01-bg
-	bounds: 465, 458, 92, 62
-	rotate: 90
-smoke-puff01-fg
-	bounds: 115, 138, 88, 59
-smoke-puff02-fg
-	bounds: 255, 235, 92, 62
-smoke-puff03-fg
-	bounds: 531, 685, 92, 62
-smoke-puff04-fg
-	bounds: 465, 378, 78, 48
-	rotate: 90
-tank-bottom
-	bounds: 115, 199, 643, 138
-	rotate: 90
-tank-bottom-shadow
-	bounds: 2, 844, 646, 171
-tank-top
-	bounds: 2, 138, 704, 111
-	rotate: 90
-tread
-	bounds: 626, 794, 48, 15
-	rotate: 90
-tread-inside
-	bounds: 434, 360, 13, 14
-wheel-big
-	bounds: 2, 40, 96, 96
-wheel-big-overlay
-	bounds: 531, 749, 93, 93
-wheel-mid
-	bounds: 531, 615, 68, 68
-wheel-mid-overlay
-	bounds: 100, 68, 68, 68
-wheel-small
-	bounds: 205, 161, 36, 36

BIN=BIN
spine-cocos2d-objc/Resources/tank.png


+ 0 - 39
spine-cocos2d-objc/example/CoinExample.h

@@ -1,39 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "cocos2d.h"
-#import <spine/spine-cocos2d-objc.h>
-
-@interface CoinExample : CCNode {
-	SkeletonAnimation* skeletonNode;
-}
-
-+ (CCScene*) scene;
-
-@end

+ 0 - 73
spine-cocos2d-objc/example/CoinExample.m

@@ -1,73 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "CoinExample.h"
-#import "IKExample.h"
-
-@implementation CoinExample
-
-+ (CCScene*) scene {
-	CCScene *scene = [CCScene node];
-	[scene addChild:[CoinExample node]];
-	return scene;
-}
-
--(id) init {
-	self = [super init];
-	if (!self) return nil;
-
-	skeletonNode = [SkeletonAnimation skeletonWithFile:@"coin-pro.json" atlasFile:@"coin.atlas" scale:0.5];
-
-    __weak SkeletonAnimation* node = skeletonNode;
-	skeletonNode.twoColorTint = false;
-	
-	[skeletonNode setAnimationForTrack:0 name:@"rotate" loop:YES];
-
-	CGSize windowSize = [[CCDirector sharedDirector] viewSize];
-	[skeletonNode setPosition:ccp(windowSize.width / 2, windowSize.height / 2 - 100)];
-	[self addChild:skeletonNode];
-
-	self.userInteractionEnabled = YES;
-    self.contentSize = windowSize;
-
-	return self;
-}
-
-#if ( TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR )
-- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
-	if (!skeletonNode.debugBones)
-		skeletonNode.debugBones = true;
-	else if (skeletonNode.timeScale == 1)
-		skeletonNode.timeScale = 0.3f;
-	else
-		[[CCDirector sharedDirector] replaceScene:[IKExample scene]];
-}
-#endif
-
-@end

+ 0 - 39
spine-cocos2d-objc/example/GoblinsExample.h

@@ -1,39 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "cocos2d.h"
-#import <spine/spine-cocos2d-objc.h>
-
-@interface GoblinsExample : CCNode {
-	SkeletonAnimation* skeletonNode;
-}
-
-+ (CCScene*) scene;
-
-@end

+ 0 - 70
spine-cocos2d-objc/example/GoblinsExample.m

@@ -1,70 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "GoblinsExample.h"
-#import "RaptorExample.h"
-
-@implementation GoblinsExample
-
-+ (CCScene*) scene {
-	CCScene *scene = [CCScene node];
-	[scene addChild:[GoblinsExample node]];
-	return scene;
-}
-
--(id) init {
-	self = [super init];
-	if (!self) return nil;
-
-	skeletonNode = [SkeletonAnimation skeletonWithFile:@"goblins-pro.json" atlasFile:@"goblins.atlas" scale:1];
-	[skeletonNode setSkin:@"goblin"];
-	[skeletonNode setAnimationForTrack:0 name:@"walk" loop:YES];
-
-	CGSize windowSize = [[CCDirector sharedDirector] viewSize];
-	[skeletonNode setPosition:ccp(windowSize.width / 2, 20)];
-	[self addChild:skeletonNode];
-
-	self.userInteractionEnabled = YES;
-    self.contentSize = windowSize;
-    
-	return self;
-}
-
-#if ( TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR )
-- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
-	if (!skeletonNode.debugBones)
-		skeletonNode.debugBones = true;
-	else if (skeletonNode.timeScale == 1)
-		skeletonNode.timeScale = 0.3f;
-	else
-		[[CCDirector sharedDirector] replaceScene:[RaptorExample scene]];
-}
-#endif
-
-@end

+ 0 - 40
spine-cocos2d-objc/example/IKExample.h

@@ -1,40 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "cocos2d.h"
-#import <spine/spine-cocos2d-objc.h>
-
-@interface IKExample : CCNode {
-	SkeletonAnimation* skeletonNode;
-	CGPoint position;
-}
-
-+ (CCScene*) scene;
-
-@end

+ 0 - 117
spine-cocos2d-objc/example/IKExample.m

@@ -1,117 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "IKExample.h"
-#import "SpineboyExample.h"
-
-// This example demonstrates how to set the position
-// of a bone based on the touch position, which in
-// turn will make an IK chain follow that bone
-// smoothly.
-@implementation IKExample
-
-+ (CCScene*) scene {
-	CCScene *scene = [CCScene node];
-	[scene addChild:[IKExample node]];
-	return scene;
-}
-
--(id) init {
-	self = [super init];
-	if (!self) return nil;
-
-	// Load the Spineboy skeleton and create a SkeletonAnimation node from it
-	// centered on the screen.
-
-	skeletonNode = [SkeletonAnimation skeletonWithFile:@"spineboy-pro.json" atlasFile:@"spineboy.atlas" scale:0.4];
-	CGSize windowSize = [[CCDirector sharedDirector] viewSize];
-	[skeletonNode setPosition:ccp(windowSize.width / 2, 20)];
-	[self addChild:skeletonNode];
-	self.userInteractionEnabled = YES;
-    self.contentSize = windowSize;
-	
-	// Queue the "walk" animation on the first track.
-	[skeletonNode setAnimationForTrack:0 name:@"walk" loop:YES];
-	
-	// Queue the "aim" animation on a higher track.
-	// It consists of a single frame that positions
-	// the back arm and gun such that they point at
-	// the "crosshair" bone. By setting this
-	// animation on a higher track, it overrides
-	// any changes to the back arm and gun made
-	// by the walk animation, allowing us to
-	// mix the two. The mouse position following
-	// is performed in the lambda below.
-	[skeletonNode setAnimationForTrack:1 name:@"aim" loop:YES];
-
-	// Position the "crosshair" bone at the mouse
-	// location.
-	//
-	// When setting the crosshair bone position
-	// to the mouse position, we need to translate
-	// from "skeleton space" to "local bone space".
-	// Note that the local bone space is calculated
-	// using the bone's parent worldToLocal() function!
-	//
-	// After updating the bone position based on the
-	// converted mouse location, we call updateWorldTransforms()
-	// again so the change of the IK target position is
-	// applied to the rest of the skeleton.
-	__weak IKExample* scene = self;
-	skeletonNode.postUpdateWorldTransformsListener = ^(SkeletonAnimation* node) {
-		if (scene != NULL) {
-			__strong IKExample* sceneStrong = scene;
-			spBone* crosshair = [node findBone:@"crosshair"]; // The bone should be cached
-			float localX = 0, localY = 0;
-			spBone_worldToLocal(crosshair->parent, sceneStrong->position.x, sceneStrong->position.y, &localX, &localY);
-			crosshair->x = localX;
-			crosshair->y = localY;
-			spBone_updateWorldTransform(crosshair);
-		}
-    };
-	return self;
-}
-
-#if ( TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR )
-- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
-	position = [skeletonNode convertToNodeSpace:touch.locationInWorld];
-	printf("%f %f\n", position.x, position.y);
-}
-
-- (void)touchMoved:(UITouch *)touch withEvent:(UIEvent *)event {
-	position = [skeletonNode convertToNodeSpace:touch.locationInWorld];
-	printf("%f %f\n", position.x, position.y);
-}
-
-- (void)touchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
-	[[CCDirector sharedDirector] replaceScene:[SpineboyExample scene]];
-}
-#endif
-
-@end

+ 0 - 39
spine-cocos2d-objc/example/RaptorExample.h

@@ -1,39 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "cocos2d.h"
-#import <spine/spine-cocos2d-objc.h>
-
-@interface RaptorExample : CCNode {
-	SkeletonAnimation* skeletonNode;
-}
-
-+ (CCScene*) scene;
-
-@end

+ 0 - 69
spine-cocos2d-objc/example/RaptorExample.m

@@ -1,69 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "RaptorExample.h"
-#import "TankExample.h"
-
-@implementation RaptorExample
-
-+ (CCScene*) scene {
-    CCScene *scene = [CCScene node];
-    [scene addChild:[RaptorExample node]];
-    return scene;
-}
-
--(id) init {
-    self = [super init];
-    if (!self) return nil;
-    
-    skeletonNode = [SkeletonAnimation skeletonWithFile:@"raptor-pro.json" atlasFile:@"raptor.atlas" scale:0.3f];
-    [skeletonNode setAnimationForTrack:0 name:@"walk" loop:YES];	
-    
-    CGSize windowSize = [[CCDirector sharedDirector] viewSize];
-    [skeletonNode setPosition:ccp(windowSize.width / 2, 20)];
-    [self addChild:skeletonNode];
-    
-    self.userInteractionEnabled = YES;
-    self.contentSize = windowSize;
-    
-    return self;
-}
-
-#if ( TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR )
-- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
-    if (!skeletonNode.debugBones)
-        skeletonNode.debugBones = true;
-    else if (skeletonNode.timeScale == 1)
-        skeletonNode.timeScale = 0.3f;
-    else
-        [[CCDirector sharedDirector] replaceScene:[TankExample scene]];
-}
-#endif
-
-@end

+ 0 - 39
spine-cocos2d-objc/example/SpineboyExample.h

@@ -1,39 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "cocos2d.h"
-#import <spine/spine-cocos2d-objc.h>
-
-@interface SpineboyExample : CCNode {
-	SkeletonAnimation* skeletonNode;
-}
-
-+ (CCScene*) scene;
-
-@end

+ 0 - 98
spine-cocos2d-objc/example/SpineboyExample.m

@@ -1,98 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "SpineboyExample.h"
-#import "GoblinsExample.h"
-
-@implementation SpineboyExample
-
-+ (CCScene*) scene {
-	CCScene *scene = [CCScene node];
-	[scene addChild:[SpineboyExample node]];	
-	return scene;
-}
-
--(id) init {
-	self = [super init];
-	if (!self) return nil;
-
-	skeletonNode = [SkeletonAnimation skeletonWithFile:@"spineboy-pro.json" atlasFile:@"spineboy.atlas" scale:0.4];
-	[skeletonNode setMixFrom:@"walk" to:@"jump" duration:0.2f];
-	[skeletonNode setMixFrom:@"jump" to:@"run" duration:0.2f];
-
-    __weak SkeletonAnimation* node = skeletonNode;
-	skeletonNode.twoColorTint = true;
-	skeletonNode.startListener = ^(spTrackEntry* entry) {
-		const char* animationName = entry->animation->name;
-		NSLog(@"%d start: %s", entry->trackIndex, animationName);
-	};
-    skeletonNode.interruptListener = ^(spTrackEntry* entry) {
-        NSLog(@"%d interrupt", entry->trackIndex);
-    };
-	skeletonNode.endListener = ^(spTrackEntry* entry) {
-		NSLog(@"%d end", entry->trackIndex);
-	};
-    skeletonNode.disposeListener = ^(spTrackEntry* entry) {
-        NSLog(@"%d dispose", entry->trackIndex);
-    };
-	skeletonNode.completeListener = ^(spTrackEntry* entry) {
-		NSLog(@"%d complete", entry->trackIndex);
-	};
-	skeletonNode.eventListener = ^(spTrackEntry* entry, spEvent* event) {
-		NSLog(@"%d event: %s, %d, %f, %s", entry->trackIndex, event->data->name, event->intValue, event->floatValue, event->stringValue);
-	};
-
-	[skeletonNode setAnimationForTrack:0 name:@"walk" loop:YES];
-	[skeletonNode addAnimationForTrack:0 name:@"jump" loop:NO afterDelay:2];
-	[skeletonNode addAnimationForTrack:0 name:@"run" loop:YES afterDelay:0];
-
-	// [skeletonNode setAnimationForTrack:1 name:@"test" loop:YES];
-
-	CGSize windowSize = [[CCDirector sharedDirector] viewSize];
-	[skeletonNode setPosition:ccp(windowSize.width / 2, 20)];
-	[self addChild:skeletonNode];
-
-	self.userInteractionEnabled = YES;
-    self.contentSize = windowSize;
-
-	return self;
-}
-
-#if ( TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR )
-- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
-	if (!skeletonNode.debugBones)
-		skeletonNode.debugBones = true;
-	else if (skeletonNode.timeScale == 1)
-		skeletonNode.timeScale = 0.3f;
-	else
-		[[CCDirector sharedDirector] replaceScene:[GoblinsExample scene]];
-}
-#endif
-
-@end

+ 0 - 39
spine-cocos2d-objc/example/TankExample.h

@@ -1,39 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "cocos2d.h"
-#import <spine/spine-cocos2d-objc.h>
-
-@interface TankExample : CCNode {
-	SkeletonAnimation* skeletonNode;
-}
-
-+ (CCScene*) scene;
-
-@end

+ 0 - 69
spine-cocos2d-objc/example/TankExample.m

@@ -1,69 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import "TankExample.h"
-#import "CoinExample.h"
-
-@implementation TankExample
-
-+ (CCScene*) scene {
-    CCScene *scene = [CCScene node];
-    [scene addChild:[TankExample node]];
-    return scene;
-}
-
--(id) init {
-    self = [super init];
-    if (!self) return nil;
-    
-    skeletonNode = [SkeletonAnimation skeletonWithFile:@"tank-pro.json" atlasFile:@"tank.atlas" scale:0.2f];
-    [skeletonNode setAnimationForTrack:0 name:@"drive" loop:YES];
-    
-    CGSize windowSize = [[CCDirector sharedDirector] viewSize];
-    [skeletonNode setPosition:ccp(windowSize.width / 2, 20)];
-    [self addChild:skeletonNode];
-    
-    self.userInteractionEnabled = YES;
-    self.contentSize = windowSize;
-    
-    return self;
-}
-
-#if ( TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR )
-- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
-    if (!skeletonNode.debugBones)
-        skeletonNode.debugBones = true;
-    else if (skeletonNode.timeScale == 1)
-        skeletonNode.timeScale = 0.3f;
-    else
-        [[CCDirector sharedDirector] replaceScene:[CoinExample scene]];
-}
-#endif
-
-@end

+ 0 - 791
spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.pbxproj

@@ -1,791 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		43C3282F170B0C19004A9460 /* spine-cocos2d-objc.m in Sources */ = {isa = PBXBuildFile; fileRef = 43C3282D170B0C19004A9460 /* spine-cocos2d-objc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
-		43C3286E170B0DA6004A9460 /* spineboy.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 43C3286A170B0DA6004A9460 /* spineboy.atlas */; };
-		43C3286F170B0DA6004A9460 /* spineboy.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C3286B170B0DA6004A9460 /* spineboy.png */; };
-		43C3287D170B0DBE004A9460 /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 43C32871170B0DBE004A9460 /* [email protected] */; };
-		43C3287E170B0DBE004A9460 /* Default-Landscape~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32872170B0DBE004A9460 /* Default-Landscape~ipad.png */; };
-		43C3287F170B0DBE004A9460 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32873170B0DBE004A9460 /* Default.png */; };
-		43C32880170B0DBE004A9460 /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 43C32874170B0DBE004A9460 /* [email protected] */; };
-		43C32881170B0DBE004A9460 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32875170B0DBE004A9460 /* Icon-72.png */; };
-		43C32882170B0DBE004A9460 /* Icon-Small-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32876170B0DBE004A9460 /* Icon-Small-50.png */; };
-		43C32883170B0DBE004A9460 /* Icon-Small.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32877170B0DBE004A9460 /* Icon-Small.png */; };
-		43C32884170B0DBE004A9460 /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 43C32878170B0DBE004A9460 /* [email protected] */; };
-		43C32885170B0DBE004A9460 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32879170B0DBE004A9460 /* Icon.png */; };
-		43C32886170B0DBE004A9460 /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 43C3287A170B0DBE004A9460 /* [email protected] */; };
-		43C32888170B0DBE004A9460 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = 43C3287C170B0DBE004A9460 /* iTunesArtwork */; };
-		43C32A06170B0F93004A9460 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 43C32A05170B0F93004A9460 /* main.m */; };
-		43C32A09170B10FF004A9460 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 43C32A08170B10FF004A9460 /* AppDelegate.m */; };
-		43CA50391CAF6BCE005ABFFC /* libcocos2d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 431D321E1C73FF8A002061D6 /* libcocos2d.a */; };
-		43F701101927FBC700CA4038 /* goblins-pro.json in Resources */ = {isa = PBXBuildFile; fileRef = 43F7010D1927FBC700CA4038 /* goblins-pro.json */; };
-		43F7FF881927F94800CA4038 /* SkeletonAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF841927F94800CA4038 /* SkeletonAnimation.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
-		43F7FF891927F94800CA4038 /* SkeletonRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF861927F94800CA4038 /* SkeletonRenderer.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
-		43F7FF8E1927F96700CA4038 /* GoblinsExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF8B1927F96700CA4038 /* GoblinsExample.m */; };
-		43F7FF8F1927F96700CA4038 /* SpineboyExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF8D1927F96700CA4038 /* SpineboyExample.m */; };
-		652107961895250000B1FF07 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 652107951895250000B1FF07 /* CoreText.framework */; };
-		765A2EF61D7D7A08003FB779 /* goblins.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 765A2EF41D7D7A08003FB779 /* goblins.atlas */; };
-		765A2EF71D7D7A08003FB779 /* goblins.png in Resources */ = {isa = PBXBuildFile; fileRef = 765A2EF51D7D7A08003FB779 /* goblins.png */; };
-		766ECCEF27EDFC110074EA8B /* Sequence.c in Sources */ = {isa = PBXBuildFile; fileRef = 766ECCEA27EDFC110074EA8B /* Sequence.c */; };
-		76BF7E071E66ED9C00485998 /* GLUtils.c in Sources */ = {isa = PBXBuildFile; fileRef = 76BF7E051E66ED9C00485998 /* GLUtils.c */; };
-		76C893BC23672757009D8DC8 /* IKExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 76C893B623672757009D8DC8 /* IKExample.m */; };
-		76C893BF236728A4009D8DC8 /* spineboy-pro.json in Resources */ = {isa = PBXBuildFile; fileRef = 76C893BE236728A4009D8DC8 /* spineboy-pro.json */; };
-		76EE4E461EB36DE6000254F4 /* Array.c in Sources */ = {isa = PBXBuildFile; fileRef = 76EE4E421EB36DE6000254F4 /* Array.c */; };
-		76EE4E471EB36DE6000254F4 /* ClippingAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 76EE4E431EB36DE6000254F4 /* ClippingAttachment.c */; };
-		76EE4E481EB36DE6000254F4 /* SkeletonClipping.c in Sources */ = {isa = PBXBuildFile; fileRef = 76EE4E441EB36DE6000254F4 /* SkeletonClipping.c */; };
-		76EE4E491EB36DE6000254F4 /* Triangulator.c in Sources */ = {isa = PBXBuildFile; fileRef = 76EE4E451EB36DE6000254F4 /* Triangulator.c */; };
-		76EE4E511EB36E53000254F4 /* coin.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 76EE4E4E1EB36E53000254F4 /* coin.atlas */; };
-		76EE4E521EB36E53000254F4 /* coin-pro.json in Resources */ = {isa = PBXBuildFile; fileRef = 76EE4E4F1EB36E53000254F4 /* coin-pro.json */; };
-		76EE4E531EB36E53000254F4 /* coin.png in Resources */ = {isa = PBXBuildFile; fileRef = 76EE4E501EB36E53000254F4 /* coin.png */; };
-		76EE4E561EB36E94000254F4 /* CoinExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 76EE4E551EB36E94000254F4 /* CoinExample.m */; };
-		76F28D161DEC810300CDE54D /* Animation.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CF41DEC810200CDE54D /* Animation.c */; };
-		76F28D171DEC810300CDE54D /* AnimationState.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CF51DEC810300CDE54D /* AnimationState.c */; };
-		76F28D181DEC810300CDE54D /* AnimationStateData.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CF61DEC810300CDE54D /* AnimationStateData.c */; };
-		76F28D191DEC810300CDE54D /* Atlas.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CF71DEC810300CDE54D /* Atlas.c */; };
-		76F28D1A1DEC810300CDE54D /* AtlasAttachmentLoader.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CF81DEC810300CDE54D /* AtlasAttachmentLoader.c */; };
-		76F28D1B1DEC810300CDE54D /* Attachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CF91DEC810300CDE54D /* Attachment.c */; };
-		76F28D1C1DEC810300CDE54D /* AttachmentLoader.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CFA1DEC810300CDE54D /* AttachmentLoader.c */; };
-		76F28D1D1DEC810300CDE54D /* Bone.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CFB1DEC810300CDE54D /* Bone.c */; };
-		76F28D1E1DEC810300CDE54D /* BoneData.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CFC1DEC810300CDE54D /* BoneData.c */; };
-		76F28D1F1DEC810300CDE54D /* BoundingBoxAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CFD1DEC810300CDE54D /* BoundingBoxAttachment.c */; };
-		76F28D201DEC810300CDE54D /* Event.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CFE1DEC810300CDE54D /* Event.c */; };
-		76F28D211DEC810300CDE54D /* EventData.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28CFF1DEC810300CDE54D /* EventData.c */; };
-		76F28D221DEC810300CDE54D /* extension.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D001DEC810300CDE54D /* extension.c */; };
-		76F28D231DEC810300CDE54D /* IkConstraint.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D011DEC810300CDE54D /* IkConstraint.c */; };
-		76F28D241DEC810300CDE54D /* IkConstraintData.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D021DEC810300CDE54D /* IkConstraintData.c */; };
-		76F28D251DEC810300CDE54D /* Json.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D031DEC810300CDE54D /* Json.c */; };
-		76F28D261DEC810300CDE54D /* MeshAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D061DEC810300CDE54D /* MeshAttachment.c */; };
-		76F28D271DEC810300CDE54D /* PathAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D071DEC810300CDE54D /* PathAttachment.c */; };
-		76F28D281DEC810300CDE54D /* PathConstraint.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D081DEC810300CDE54D /* PathConstraint.c */; };
-		76F28D291DEC810300CDE54D /* PathConstraintData.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D091DEC810300CDE54D /* PathConstraintData.c */; };
-		76F28D2A1DEC810300CDE54D /* RegionAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D0A1DEC810300CDE54D /* RegionAttachment.c */; };
-		76F28D2B1DEC810300CDE54D /* Skeleton.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D0B1DEC810300CDE54D /* Skeleton.c */; };
-		76F28D2C1DEC810300CDE54D /* SkeletonBinary.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D0C1DEC810300CDE54D /* SkeletonBinary.c */; };
-		76F28D2D1DEC810300CDE54D /* SkeletonBounds.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D0D1DEC810300CDE54D /* SkeletonBounds.c */; };
-		76F28D2E1DEC810300CDE54D /* SkeletonData.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D0E1DEC810300CDE54D /* SkeletonData.c */; };
-		76F28D2F1DEC810300CDE54D /* SkeletonJson.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D0F1DEC810300CDE54D /* SkeletonJson.c */; };
-		76F28D301DEC810300CDE54D /* Skin.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D101DEC810300CDE54D /* Skin.c */; };
-		76F28D311DEC810300CDE54D /* Slot.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D111DEC810300CDE54D /* Slot.c */; };
-		76F28D321DEC810300CDE54D /* SlotData.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D121DEC810300CDE54D /* SlotData.c */; };
-		76F28D331DEC810300CDE54D /* TransformConstraint.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D131DEC810300CDE54D /* TransformConstraint.c */; };
-		76F28D341DEC810300CDE54D /* TransformConstraintData.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D141DEC810300CDE54D /* TransformConstraintData.c */; };
-		76F28D351DEC810300CDE54D /* VertexAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 76F28D151DEC810300CDE54D /* VertexAttachment.c */; };
-		76F5BDA21D2BDE1C005917E5 /* raptor.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 76F5BD9C1D2BDE1C005917E5 /* raptor.atlas */; };
-		76F5BDA31D2BDE1C005917E5 /* raptor-pro.json in Resources */ = {isa = PBXBuildFile; fileRef = 76F5BD9D1D2BDE1C005917E5 /* raptor-pro.json */; };
-		76F5BDA41D2BDE1C005917E5 /* raptor.png in Resources */ = {isa = PBXBuildFile; fileRef = 76F5BD9E1D2BDE1C005917E5 /* raptor.png */; };
-		76F5BDA51D2BDE1C005917E5 /* tank.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 76F5BD9F1D2BDE1C005917E5 /* tank.atlas */; };
-		76F5BDA61D2BDE1C005917E5 /* tank-pro.json in Resources */ = {isa = PBXBuildFile; fileRef = 76F5BDA01D2BDE1C005917E5 /* tank-pro.json */; };
-		76F5BDA71D2BDE1C005917E5 /* tank.png in Resources */ = {isa = PBXBuildFile; fileRef = 76F5BDA11D2BDE1C005917E5 /* tank.png */; };
-		76F5BDAA1D2BDE67005917E5 /* RaptorExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 76F5BDA91D2BDE67005917E5 /* RaptorExample.m */; };
-		76F5BDAD1D2BDFA2005917E5 /* TankExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 76F5BDAC1D2BDFA2005917E5 /* TankExample.m */; };
-		76FAC1961E3FA15E001CCC8C /* Color.c in Sources */ = {isa = PBXBuildFile; fileRef = 76FAC1941E3FA15E001CCC8C /* Color.c */; };
-		76FAC1971E3FA15E001CCC8C /* PointAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 76FAC1951E3FA15E001CCC8C /* PointAttachment.c */; };
-		83F1A0EF1986955A001F6B44 /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83F1A0EE1986955A001F6B44 /* GLKit.framework */; };
-		9A5D2499170A94DA0030D4DD /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D2498170A94DA0030D4DD /* QuartzCore.framework */; };
-		9A5D249B170A94DA0030D4DD /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D249A170A94DA0030D4DD /* OpenGLES.framework */; };
-		9A5D249D170A94DA0030D4DD /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D249C170A94DA0030D4DD /* OpenAL.framework */; };
-		9A5D249F170A94DA0030D4DD /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D249E170A94DA0030D4DD /* AudioToolbox.framework */; };
-		9A5D24A1170A94DA0030D4DD /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D24A0170A94DA0030D4DD /* AVFoundation.framework */; };
-		9A5D24A3170A94DA0030D4DD /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D24A2170A94DA0030D4DD /* UIKit.framework */; };
-		9A5D24A5170A94DA0030D4DD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D24A4170A94DA0030D4DD /* Foundation.framework */; };
-		9A5D24A7170A94DA0030D4DD /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D24A6170A94DA0030D4DD /* CoreGraphics.framework */; };
-		9A5D24A9170A94DA0030D4DD /* GameKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A5D24A8170A94DA0030D4DD /* GameKit.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
-		431D321D1C73FF8A002061D6 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = A28E1F04192926A200D16B23 /* cocos2d.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = 5018F24D0DFDEAC400C013A5;
-			remoteInfo = "cocos2d-ios";
-		};
-		431D32211C73FF8A002061D6 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = A28E1F04192926A200D16B23 /* cocos2d.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = 7A4037A819E37038007B6E8F;
-			remoteInfo = "cocos2d-mac";
-		};
-		431D32231C73FF8A002061D6 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = A28E1F04192926A200D16B23 /* cocos2d.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B7E7DE341A76DB7D004234B7;
-			remoteInfo = cocos2dMacFramework;
-		};
-		43CA50371CAF6BCE005ABFFC /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = A28E1F04192926A200D16B23 /* cocos2d.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = 08F4AB671C6E98A1004DAAF7;
-			remoteInfo = "cocos2d-tvos";
-		};
-		43CA503A1CAF6E78005ABFFC /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = A28E1F04192926A200D16B23 /* cocos2d.xcodeproj */;
-			proxyType = 1;
-			remoteGlobalIDString = 5018F24C0DFDEAC400C013A5;
-			remoteInfo = "cocos2d-ios";
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
-		43C3282D170B0C19004A9460 /* spine-cocos2d-objc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "spine-cocos2d-objc.m"; path = "src/spine/spine-cocos2d-objc.m"; sourceTree = "<group>"; };
-		43C3282E170B0C19004A9460 /* spine-cocos2d-objc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "spine-cocos2d-objc.h"; path = "src/spine/spine-cocos2d-objc.h"; sourceTree = "<group>"; };
-		43C3286A170B0DA6004A9460 /* spineboy.atlas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = spineboy.atlas; path = Resources/spineboy.atlas; sourceTree = "<group>"; };
-		43C3286B170B0DA6004A9460 /* spineboy.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = spineboy.png; path = Resources/spineboy.png; sourceTree = "<group>"; };
-		43C32871170B0DBE004A9460 /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "[email protected]"; path = "Resources-ios/[email protected]"; sourceTree = "<group>"; };
-		43C32872170B0DBE004A9460 /* Default-Landscape~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Landscape~ipad.png"; path = "Resources-ios/Default-Landscape~ipad.png"; sourceTree = "<group>"; };
-		43C32873170B0DBE004A9460 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = "Resources-ios/Default.png"; sourceTree = "<group>"; };
-		43C32874170B0DBE004A9460 /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "[email protected]"; path = "Resources-ios/[email protected]"; sourceTree = "<group>"; };
-		43C32875170B0DBE004A9460 /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72.png"; path = "Resources-ios/Icon-72.png"; sourceTree = "<group>"; };
-		43C32876170B0DBE004A9460 /* Icon-Small-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small-50.png"; path = "Resources-ios/Icon-Small-50.png"; sourceTree = "<group>"; };
-		43C32877170B0DBE004A9460 /* Icon-Small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small.png"; path = "Resources-ios/Icon-Small.png"; sourceTree = "<group>"; };
-		43C32878170B0DBE004A9460 /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "[email protected]"; path = "Resources-ios/[email protected]"; sourceTree = "<group>"; };
-		43C32879170B0DBE004A9460 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = "Resources-ios/Icon.png"; sourceTree = "<group>"; };
-		43C3287A170B0DBE004A9460 /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "[email protected]"; path = "Resources-ios/[email protected]"; sourceTree = "<group>"; };
-		43C3287B170B0DBE004A9460 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Resources-ios/Info.plist"; sourceTree = "<group>"; };
-		43C3287C170B0DBE004A9460 /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; name = iTunesArtwork; path = "Resources-ios/iTunesArtwork"; sourceTree = "<group>"; };
-		43C32889170B0E9F004A9460 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = "Resources-ios/Prefix.pch"; sourceTree = "<group>"; };
-		43C32A05170B0F93004A9460 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = "Resources-ios/main.m"; sourceTree = "<group>"; };
-		43C32A07170B10FF004A9460 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = "Resources-ios/AppDelegate.h"; sourceTree = "<group>"; };
-		43C32A08170B10FF004A9460 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = "Resources-ios/AppDelegate.m"; sourceTree = "<group>"; };
-		43F7010D1927FBC700CA4038 /* goblins-pro.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "goblins-pro.json"; path = "Resources/goblins-pro.json"; sourceTree = "<group>"; };
-		43F7FF831927F94800CA4038 /* SkeletonAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonAnimation.h; path = src/spine/SkeletonAnimation.h; sourceTree = "<group>"; };
-		43F7FF841927F94800CA4038 /* SkeletonAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SkeletonAnimation.m; path = src/spine/SkeletonAnimation.m; sourceTree = "<group>"; };
-		43F7FF851927F94800CA4038 /* SkeletonRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonRenderer.h; path = src/spine/SkeletonRenderer.h; sourceTree = "<group>"; };
-		43F7FF861927F94800CA4038 /* SkeletonRenderer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SkeletonRenderer.m; path = src/spine/SkeletonRenderer.m; sourceTree = "<group>"; };
-		43F7FF8A1927F96700CA4038 /* GoblinsExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GoblinsExample.h; path = example/GoblinsExample.h; sourceTree = "<group>"; };
-		43F7FF8B1927F96700CA4038 /* GoblinsExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GoblinsExample.m; path = example/GoblinsExample.m; sourceTree = "<group>"; };
-		43F7FF8C1927F96700CA4038 /* SpineboyExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SpineboyExample.h; path = example/SpineboyExample.h; sourceTree = "<group>"; };
-		43F7FF8D1927F96700CA4038 /* SpineboyExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SpineboyExample.m; path = example/SpineboyExample.m; sourceTree = "<group>"; };
-		652107951895250000B1FF07 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
-		765A2EF41D7D7A08003FB779 /* goblins.atlas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = goblins.atlas; path = Resources/goblins.atlas; sourceTree = "<group>"; };
-		765A2EF51D7D7A08003FB779 /* goblins.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = goblins.png; path = Resources/goblins.png; sourceTree = "<group>"; };
-		766ECCEA27EDFC110074EA8B /* Sequence.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sequence.c; path = "../spine-c/spine-c/src/spine/Sequence.c"; sourceTree = "<group>"; };
-		76BF7E051E66ED9C00485998 /* GLUtils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = GLUtils.c; path = src/spine/GLUtils.c; sourceTree = "<group>"; };
-		76BF7E061E66ED9C00485998 /* GLUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GLUtils.h; path = src/spine/GLUtils.h; sourceTree = "<group>"; };
-		76C893B623672757009D8DC8 /* IKExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IKExample.m; path = example/IKExample.m; sourceTree = "<group>"; };
-		76C893BB23672757009D8DC8 /* IKExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IKExample.h; path = example/IKExample.h; sourceTree = "<group>"; };
-		76C893BE236728A4009D8DC8 /* spineboy-pro.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "spineboy-pro.json"; path = "Resources/spineboy-pro.json"; sourceTree = "<group>"; };
-		76EE4E421EB36DE6000254F4 /* Array.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Array.c; path = "../spine-c/spine-c/src/spine/Array.c"; sourceTree = "<group>"; };
-		76EE4E431EB36DE6000254F4 /* ClippingAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ClippingAttachment.c; path = "../spine-c/spine-c/src/spine/ClippingAttachment.c"; sourceTree = "<group>"; };
-		76EE4E441EB36DE6000254F4 /* SkeletonClipping.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonClipping.c; path = "../spine-c/spine-c/src/spine/SkeletonClipping.c"; sourceTree = "<group>"; };
-		76EE4E451EB36DE6000254F4 /* Triangulator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Triangulator.c; path = "../spine-c/spine-c/src/spine/Triangulator.c"; sourceTree = "<group>"; };
-		76EE4E4E1EB36E53000254F4 /* coin.atlas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = coin.atlas; path = Resources/coin.atlas; sourceTree = "<group>"; };
-		76EE4E4F1EB36E53000254F4 /* coin-pro.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "coin-pro.json"; path = "Resources/coin-pro.json"; sourceTree = "<group>"; };
-		76EE4E501EB36E53000254F4 /* coin.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = coin.png; path = Resources/coin.png; sourceTree = "<group>"; };
-		76EE4E541EB36E94000254F4 /* CoinExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CoinExample.h; path = example/CoinExample.h; sourceTree = "<group>"; };
-		76EE4E551EB36E94000254F4 /* CoinExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CoinExample.m; path = example/CoinExample.m; sourceTree = "<group>"; };
-		76F28CF41DEC810200CDE54D /* Animation.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Animation.c; path = "../spine-c/spine-c/src/spine/Animation.c"; sourceTree = "<group>"; };
-		76F28CF51DEC810300CDE54D /* AnimationState.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AnimationState.c; path = "../spine-c/spine-c/src/spine/AnimationState.c"; sourceTree = "<group>"; };
-		76F28CF61DEC810300CDE54D /* AnimationStateData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AnimationStateData.c; path = "../spine-c/spine-c/src/spine/AnimationStateData.c"; sourceTree = "<group>"; };
-		76F28CF71DEC810300CDE54D /* Atlas.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Atlas.c; path = "../spine-c/spine-c/src/spine/Atlas.c"; sourceTree = "<group>"; };
-		76F28CF81DEC810300CDE54D /* AtlasAttachmentLoader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AtlasAttachmentLoader.c; path = "../spine-c/spine-c/src/spine/AtlasAttachmentLoader.c"; sourceTree = "<group>"; };
-		76F28CF91DEC810300CDE54D /* Attachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Attachment.c; path = "../spine-c/spine-c/src/spine/Attachment.c"; sourceTree = "<group>"; };
-		76F28CFA1DEC810300CDE54D /* AttachmentLoader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AttachmentLoader.c; path = "../spine-c/spine-c/src/spine/AttachmentLoader.c"; sourceTree = "<group>"; };
-		76F28CFB1DEC810300CDE54D /* Bone.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Bone.c; path = "../spine-c/spine-c/src/spine/Bone.c"; sourceTree = "<group>"; };
-		76F28CFC1DEC810300CDE54D /* BoneData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = BoneData.c; path = "../spine-c/spine-c/src/spine/BoneData.c"; sourceTree = "<group>"; };
-		76F28CFD1DEC810300CDE54D /* BoundingBoxAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = BoundingBoxAttachment.c; path = "../spine-c/spine-c/src/spine/BoundingBoxAttachment.c"; sourceTree = "<group>"; };
-		76F28CFE1DEC810300CDE54D /* Event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Event.c; path = "../spine-c/spine-c/src/spine/Event.c"; sourceTree = "<group>"; };
-		76F28CFF1DEC810300CDE54D /* EventData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = EventData.c; path = "../spine-c/spine-c/src/spine/EventData.c"; sourceTree = "<group>"; };
-		76F28D001DEC810300CDE54D /* extension.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = extension.c; path = "../spine-c/spine-c/src/spine/extension.c"; sourceTree = "<group>"; };
-		76F28D011DEC810300CDE54D /* IkConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IkConstraint.c; path = "../spine-c/spine-c/src/spine/IkConstraint.c"; sourceTree = "<group>"; };
-		76F28D021DEC810300CDE54D /* IkConstraintData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IkConstraintData.c; path = "../spine-c/spine-c/src/spine/IkConstraintData.c"; sourceTree = "<group>"; };
-		76F28D031DEC810300CDE54D /* Json.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Json.c; path = "../spine-c/spine-c/src/spine/Json.c"; sourceTree = "<group>"; };
-		76F28D041DEC810300CDE54D /* Json.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Json.h; path = "../spine-c/spine-c/src/spine/Json.h"; sourceTree = "<group>"; };
-		76F28D061DEC810300CDE54D /* MeshAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = MeshAttachment.c; path = "../spine-c/spine-c/src/spine/MeshAttachment.c"; sourceTree = "<group>"; };
-		76F28D071DEC810300CDE54D /* PathAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = PathAttachment.c; path = "../spine-c/spine-c/src/spine/PathAttachment.c"; sourceTree = "<group>"; };
-		76F28D081DEC810300CDE54D /* PathConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = PathConstraint.c; path = "../spine-c/spine-c/src/spine/PathConstraint.c"; sourceTree = "<group>"; };
-		76F28D091DEC810300CDE54D /* PathConstraintData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = PathConstraintData.c; path = "../spine-c/spine-c/src/spine/PathConstraintData.c"; sourceTree = "<group>"; };
-		76F28D0A1DEC810300CDE54D /* RegionAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = RegionAttachment.c; path = "../spine-c/spine-c/src/spine/RegionAttachment.c"; sourceTree = "<group>"; };
-		76F28D0B1DEC810300CDE54D /* Skeleton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Skeleton.c; path = "../spine-c/spine-c/src/spine/Skeleton.c"; sourceTree = "<group>"; };
-		76F28D0C1DEC810300CDE54D /* SkeletonBinary.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonBinary.c; path = "../spine-c/spine-c/src/spine/SkeletonBinary.c"; sourceTree = "<group>"; };
-		76F28D0D1DEC810300CDE54D /* SkeletonBounds.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonBounds.c; path = "../spine-c/spine-c/src/spine/SkeletonBounds.c"; sourceTree = "<group>"; };
-		76F28D0E1DEC810300CDE54D /* SkeletonData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonData.c; path = "../spine-c/spine-c/src/spine/SkeletonData.c"; sourceTree = "<group>"; };
-		76F28D0F1DEC810300CDE54D /* SkeletonJson.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonJson.c; path = "../spine-c/spine-c/src/spine/SkeletonJson.c"; sourceTree = "<group>"; };
-		76F28D101DEC810300CDE54D /* Skin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Skin.c; path = "../spine-c/spine-c/src/spine/Skin.c"; sourceTree = "<group>"; };
-		76F28D111DEC810300CDE54D /* Slot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Slot.c; path = "../spine-c/spine-c/src/spine/Slot.c"; sourceTree = "<group>"; };
-		76F28D121DEC810300CDE54D /* SlotData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SlotData.c; path = "../spine-c/spine-c/src/spine/SlotData.c"; sourceTree = "<group>"; };
-		76F28D131DEC810300CDE54D /* TransformConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TransformConstraint.c; path = "../spine-c/spine-c/src/spine/TransformConstraint.c"; sourceTree = "<group>"; };
-		76F28D141DEC810300CDE54D /* TransformConstraintData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TransformConstraintData.c; path = "../spine-c/spine-c/src/spine/TransformConstraintData.c"; sourceTree = "<group>"; };
-		76F28D151DEC810300CDE54D /* VertexAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = VertexAttachment.c; path = "../spine-c/spine-c/src/spine/VertexAttachment.c"; sourceTree = "<group>"; };
-		76F5BD9C1D2BDE1C005917E5 /* raptor.atlas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = raptor.atlas; path = Resources/raptor.atlas; sourceTree = "<group>"; };
-		76F5BD9D1D2BDE1C005917E5 /* raptor-pro.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "raptor-pro.json"; path = "Resources/raptor-pro.json"; sourceTree = "<group>"; };
-		76F5BD9E1D2BDE1C005917E5 /* raptor.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = raptor.png; path = Resources/raptor.png; sourceTree = "<group>"; };
-		76F5BD9F1D2BDE1C005917E5 /* tank.atlas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = tank.atlas; path = Resources/tank.atlas; sourceTree = "<group>"; };
-		76F5BDA01D2BDE1C005917E5 /* tank-pro.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "tank-pro.json"; path = "Resources/tank-pro.json"; sourceTree = "<group>"; };
-		76F5BDA11D2BDE1C005917E5 /* tank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = tank.png; path = Resources/tank.png; sourceTree = "<group>"; };
-		76F5BDA81D2BDE67005917E5 /* RaptorExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RaptorExample.h; path = example/RaptorExample.h; sourceTree = "<group>"; };
-		76F5BDA91D2BDE67005917E5 /* RaptorExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RaptorExample.m; path = example/RaptorExample.m; sourceTree = "<group>"; };
-		76F5BDAB1D2BDFA2005917E5 /* TankExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TankExample.h; path = example/TankExample.h; sourceTree = "<group>"; };
-		76F5BDAC1D2BDFA2005917E5 /* TankExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TankExample.m; path = example/TankExample.m; sourceTree = "<group>"; };
-		76FAC1941E3FA15E001CCC8C /* Color.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Color.c; path = "../spine-c/spine-c/src/spine/Color.c"; sourceTree = "<group>"; };
-		76FAC1951E3FA15E001CCC8C /* PointAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = PointAttachment.c; path = "../spine-c/spine-c/src/spine/PointAttachment.c"; sourceTree = "<group>"; };
-		83F1A0EE1986955A001F6B44 /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; };
-		9A5D2495170A94DA0030D4DD /* SpineExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SpineExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		9A5D2498170A94DA0030D4DD /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
-		9A5D249A170A94DA0030D4DD /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
-		9A5D249C170A94DA0030D4DD /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
-		9A5D249E170A94DA0030D4DD /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
-		9A5D24A0170A94DA0030D4DD /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
-		9A5D24A2170A94DA0030D4DD /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
-		9A5D24A4170A94DA0030D4DD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
-		9A5D24A6170A94DA0030D4DD /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
-		9A5D24A8170A94DA0030D4DD /* GameKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameKit.framework; path = System/Library/Frameworks/GameKit.framework; sourceTree = SDKROOT; };
-		A28E1F04192926A200D16B23 /* cocos2d.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = cocos2d.xcodeproj; path = cocos2d/cocos2d.xcodeproj; sourceTree = SOURCE_ROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		9A5D2492170A94DA0030D4DD /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				43CA50391CAF6BCE005ABFFC /* libcocos2d.a in Frameworks */,
-				83F1A0EF1986955A001F6B44 /* GLKit.framework in Frameworks */,
-				652107961895250000B1FF07 /* CoreText.framework in Frameworks */,
-				9A5D2499170A94DA0030D4DD /* QuartzCore.framework in Frameworks */,
-				9A5D249B170A94DA0030D4DD /* OpenGLES.framework in Frameworks */,
-				9A5D249D170A94DA0030D4DD /* OpenAL.framework in Frameworks */,
-				9A5D249F170A94DA0030D4DD /* AudioToolbox.framework in Frameworks */,
-				9A5D24A1170A94DA0030D4DD /* AVFoundation.framework in Frameworks */,
-				9A5D24A3170A94DA0030D4DD /* UIKit.framework in Frameworks */,
-				9A5D24A5170A94DA0030D4DD /* Foundation.framework in Frameworks */,
-				9A5D24A7170A94DA0030D4DD /* CoreGraphics.framework in Frameworks */,
-				9A5D24A9170A94DA0030D4DD /* GameKit.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		431D32161C73FF8A002061D6 /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				431D321E1C73FF8A002061D6 /* libcocos2d.a */,
-				431D32221C73FF8A002061D6 /* libcocos2d-mac.a */,
-				431D32241C73FF8A002061D6 /* cocos2dMacFramework.framework */,
-				43CA50381CAF6BCE005ABFFC /* libcocos2d-tvos.a */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		43C32821170B0BBC004A9460 /* Classes */ = {
-			isa = PBXGroup;
-			children = (
-				43C32822170B0BC2004A9460 /* spine-c */,
-				43C32823170B0BC7004A9460 /* spine-cocos2d-objc */,
-				43F7FF8C1927F96700CA4038 /* SpineboyExample.h */,
-				43F7FF8D1927F96700CA4038 /* SpineboyExample.m */,
-				76C893BB23672757009D8DC8 /* IKExample.h */,
-				76C893B623672757009D8DC8 /* IKExample.m */,
-				43F7FF8A1927F96700CA4038 /* GoblinsExample.h */,
-				43F7FF8B1927F96700CA4038 /* GoblinsExample.m */,
-				76F5BDA81D2BDE67005917E5 /* RaptorExample.h */,
-				76F5BDA91D2BDE67005917E5 /* RaptorExample.m */,
-				76F5BDAB1D2BDFA2005917E5 /* TankExample.h */,
-				76F5BDAC1D2BDFA2005917E5 /* TankExample.m */,
-				76EE4E541EB36E94000254F4 /* CoinExample.h */,
-				76EE4E551EB36E94000254F4 /* CoinExample.m */,
-				43C32A07170B10FF004A9460 /* AppDelegate.h */,
-				43C32A08170B10FF004A9460 /* AppDelegate.m */,
-				43C32A05170B0F93004A9460 /* main.m */,
-				43C32889170B0E9F004A9460 /* Prefix.pch */,
-			);
-			name = Classes;
-			sourceTree = "<group>";
-		};
-		43C32822170B0BC2004A9460 /* spine-c */ = {
-			isa = PBXGroup;
-			children = (
-				766ECCEA27EDFC110074EA8B /* Sequence.c */,
-				76EE4E421EB36DE6000254F4 /* Array.c */,
-				76EE4E431EB36DE6000254F4 /* ClippingAttachment.c */,
-				76EE4E441EB36DE6000254F4 /* SkeletonClipping.c */,
-				76EE4E451EB36DE6000254F4 /* Triangulator.c */,
-				76FAC1941E3FA15E001CCC8C /* Color.c */,
-				76FAC1951E3FA15E001CCC8C /* PointAttachment.c */,
-				76F28CF41DEC810200CDE54D /* Animation.c */,
-				76F28CF51DEC810300CDE54D /* AnimationState.c */,
-				76F28CF61DEC810300CDE54D /* AnimationStateData.c */,
-				76F28CF71DEC810300CDE54D /* Atlas.c */,
-				76F28CF81DEC810300CDE54D /* AtlasAttachmentLoader.c */,
-				76F28CF91DEC810300CDE54D /* Attachment.c */,
-				76F28CFA1DEC810300CDE54D /* AttachmentLoader.c */,
-				76F28CFB1DEC810300CDE54D /* Bone.c */,
-				76F28CFC1DEC810300CDE54D /* BoneData.c */,
-				76F28CFD1DEC810300CDE54D /* BoundingBoxAttachment.c */,
-				76F28CFE1DEC810300CDE54D /* Event.c */,
-				76F28CFF1DEC810300CDE54D /* EventData.c */,
-				76F28D001DEC810300CDE54D /* extension.c */,
-				76F28D011DEC810300CDE54D /* IkConstraint.c */,
-				76F28D021DEC810300CDE54D /* IkConstraintData.c */,
-				76F28D031DEC810300CDE54D /* Json.c */,
-				76F28D041DEC810300CDE54D /* Json.h */,
-				76F28D061DEC810300CDE54D /* MeshAttachment.c */,
-				76F28D071DEC810300CDE54D /* PathAttachment.c */,
-				76F28D081DEC810300CDE54D /* PathConstraint.c */,
-				76F28D091DEC810300CDE54D /* PathConstraintData.c */,
-				76F28D0A1DEC810300CDE54D /* RegionAttachment.c */,
-				76F28D0B1DEC810300CDE54D /* Skeleton.c */,
-				76F28D0C1DEC810300CDE54D /* SkeletonBinary.c */,
-				76F28D0D1DEC810300CDE54D /* SkeletonBounds.c */,
-				76F28D0E1DEC810300CDE54D /* SkeletonData.c */,
-				76F28D0F1DEC810300CDE54D /* SkeletonJson.c */,
-				76F28D101DEC810300CDE54D /* Skin.c */,
-				76F28D111DEC810300CDE54D /* Slot.c */,
-				76F28D121DEC810300CDE54D /* SlotData.c */,
-				76F28D131DEC810300CDE54D /* TransformConstraint.c */,
-				76F28D141DEC810300CDE54D /* TransformConstraintData.c */,
-				76F28D151DEC810300CDE54D /* VertexAttachment.c */,
-			);
-			name = "spine-c";
-			sourceTree = "<group>";
-		};
-		43C32823170B0BC7004A9460 /* spine-cocos2d-objc */ = {
-			isa = PBXGroup;
-			children = (
-				43F7FF831927F94800CA4038 /* SkeletonAnimation.h */,
-				43F7FF841927F94800CA4038 /* SkeletonAnimation.m */,
-				43F7FF851927F94800CA4038 /* SkeletonRenderer.h */,
-				43F7FF861927F94800CA4038 /* SkeletonRenderer.m */,
-				43C3282E170B0C19004A9460 /* spine-cocos2d-objc.h */,
-				43C3282D170B0C19004A9460 /* spine-cocos2d-objc.m */,
-				76BF7E051E66ED9C00485998 /* GLUtils.c */,
-				76BF7E061E66ED9C00485998 /* GLUtils.h */,
-			);
-			name = "spine-cocos2d-objc";
-			sourceTree = "<group>";
-		};
-		43C32867170B0C7F004A9460 /* Resources */ = {
-			isa = PBXGroup;
-			children = (
-				76C893BE236728A4009D8DC8 /* spineboy-pro.json */,
-				76EE4E4E1EB36E53000254F4 /* coin.atlas */,
-				76EE4E4F1EB36E53000254F4 /* coin-pro.json */,
-				76EE4E501EB36E53000254F4 /* coin.png */,
-				765A2EF41D7D7A08003FB779 /* goblins.atlas */,
-				765A2EF51D7D7A08003FB779 /* goblins.png */,
-				76F5BD9C1D2BDE1C005917E5 /* raptor.atlas */,
-				76F5BD9D1D2BDE1C005917E5 /* raptor-pro.json */,
-				76F5BD9E1D2BDE1C005917E5 /* raptor.png */,
-				76F5BD9F1D2BDE1C005917E5 /* tank.atlas */,
-				76F5BDA01D2BDE1C005917E5 /* tank-pro.json */,
-				76F5BDA11D2BDE1C005917E5 /* tank.png */,
-				43F7010D1927FBC700CA4038 /* goblins-pro.json */,
-				43C3286A170B0DA6004A9460 /* spineboy.atlas */,
-				43C3286B170B0DA6004A9460 /* spineboy.png */,
-			);
-			name = Resources;
-			sourceTree = "<group>";
-		};
-		43C32870170B0DAD004A9460 /* Resources-ios */ = {
-			isa = PBXGroup;
-			children = (
-				43C32871170B0DBE004A9460 /* [email protected] */,
-				43C32872170B0DBE004A9460 /* Default-Landscape~ipad.png */,
-				43C32873170B0DBE004A9460 /* Default.png */,
-				43C32874170B0DBE004A9460 /* [email protected] */,
-				43C32875170B0DBE004A9460 /* Icon-72.png */,
-				43C32876170B0DBE004A9460 /* Icon-Small-50.png */,
-				43C32877170B0DBE004A9460 /* Icon-Small.png */,
-				43C32878170B0DBE004A9460 /* [email protected] */,
-				43C32879170B0DBE004A9460 /* Icon.png */,
-				43C3287A170B0DBE004A9460 /* [email protected] */,
-				43C3287B170B0DBE004A9460 /* Info.plist */,
-				43C3287C170B0DBE004A9460 /* iTunesArtwork */,
-			);
-			name = "Resources-ios";
-			sourceTree = "<group>";
-		};
-		9A5D248C170A94DA0030D4DD = {
-			isa = PBXGroup;
-			children = (
-				43C32821170B0BBC004A9460 /* Classes */,
-				43C32867170B0C7F004A9460 /* Resources */,
-				43C32870170B0DAD004A9460 /* Resources-ios */,
-				9A5D24C3170A94DA0030D4DD /* cocos2d */,
-				9A5D2497170A94DA0030D4DD /* Frameworks */,
-				9A5D2496170A94DA0030D4DD /* Products */,
-			);
-			sourceTree = "<group>";
-		};
-		9A5D2496170A94DA0030D4DD /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				9A5D2495170A94DA0030D4DD /* SpineExample.app */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		9A5D2497170A94DA0030D4DD /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				83F1A0EE1986955A001F6B44 /* GLKit.framework */,
-				652107951895250000B1FF07 /* CoreText.framework */,
-				9A5D2498170A94DA0030D4DD /* QuartzCore.framework */,
-				9A5D249A170A94DA0030D4DD /* OpenGLES.framework */,
-				9A5D249C170A94DA0030D4DD /* OpenAL.framework */,
-				9A5D249E170A94DA0030D4DD /* AudioToolbox.framework */,
-				9A5D24A0170A94DA0030D4DD /* AVFoundation.framework */,
-				9A5D24A2170A94DA0030D4DD /* UIKit.framework */,
-				9A5D24A4170A94DA0030D4DD /* Foundation.framework */,
-				9A5D24A6170A94DA0030D4DD /* CoreGraphics.framework */,
-				9A5D24A8170A94DA0030D4DD /* GameKit.framework */,
-			);
-			name = Frameworks;
-			sourceTree = "<group>";
-		};
-		9A5D24C3170A94DA0030D4DD /* cocos2d */ = {
-			isa = PBXGroup;
-			children = (
-				A28E1F04192926A200D16B23 /* cocos2d.xcodeproj */,
-			);
-			name = cocos2d;
-			path = Spine;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		9A5D2494170A94DA0030D4DD /* SpineExample */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 9A5D2643170A94DC0030D4DD /* Build configuration list for PBXNativeTarget "SpineExample" */;
-			buildPhases = (
-				9A5D2491170A94DA0030D4DD /* Sources */,
-				9A5D2492170A94DA0030D4DD /* Frameworks */,
-				9A5D2493170A94DA0030D4DD /* Resources */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				43CA503B1CAF6E78005ABFFC /* PBXTargetDependency */,
-			);
-			name = SpineExample;
-			productName = "spine-cocos2d-objc";
-			productReference = 9A5D2495170A94DA0030D4DD /* SpineExample.app */;
-			productType = "com.apple.product-type.application";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		9A5D248D170A94DA0030D4DD /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0510;
-				ORGANIZATIONNAME = "Craig Hinrichs";
-			};
-			buildConfigurationList = 9A5D2490170A94DA0030D4DD /* Build configuration list for PBXProject "spine-cocos2d-objc" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 0;
-			knownRegions = (
-				English,
-				en,
-			);
-			mainGroup = 9A5D248C170A94DA0030D4DD;
-			productRefGroup = 9A5D2496170A94DA0030D4DD /* Products */;
-			projectDirPath = "";
-			projectReferences = (
-				{
-					ProductGroup = 431D32161C73FF8A002061D6 /* Products */;
-					ProjectRef = A28E1F04192926A200D16B23 /* cocos2d.xcodeproj */;
-				},
-			);
-			projectRoot = "";
-			targets = (
-				9A5D2494170A94DA0030D4DD /* SpineExample */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
-		431D321E1C73FF8A002061D6 /* libcocos2d.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = libcocos2d.a;
-			remoteRef = 431D321D1C73FF8A002061D6 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		431D32221C73FF8A002061D6 /* libcocos2d-mac.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = "libcocos2d-mac.a";
-			remoteRef = 431D32211C73FF8A002061D6 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		431D32241C73FF8A002061D6 /* cocos2dMacFramework.framework */ = {
-			isa = PBXReferenceProxy;
-			fileType = wrapper.framework;
-			path = cocos2dMacFramework.framework;
-			remoteRef = 431D32231C73FF8A002061D6 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		43CA50381CAF6BCE005ABFFC /* libcocos2d-tvos.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = "libcocos2d-tvos.a";
-			remoteRef = 43CA50371CAF6BCE005ABFFC /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
-		9A5D2493170A94DA0030D4DD /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				765A2EF61D7D7A08003FB779 /* goblins.atlas in Resources */,
-				76F5BDA51D2BDE1C005917E5 /* tank.atlas in Resources */,
-				43C3286E170B0DA6004A9460 /* spineboy.atlas in Resources */,
-				43C3286F170B0DA6004A9460 /* spineboy.png in Resources */,
-				43C3287D170B0DBE004A9460 /* [email protected] in Resources */,
-				76EE4E521EB36E53000254F4 /* coin-pro.json in Resources */,
-				43C3287E170B0DBE004A9460 /* Default-Landscape~ipad.png in Resources */,
-				43C3287F170B0DBE004A9460 /* Default.png in Resources */,
-				76F5BDA31D2BDE1C005917E5 /* raptor-pro.json in Resources */,
-				76EE4E531EB36E53000254F4 /* coin.png in Resources */,
-				43C32880170B0DBE004A9460 /* [email protected] in Resources */,
-				765A2EF71D7D7A08003FB779 /* goblins.png in Resources */,
-				43C32881170B0DBE004A9460 /* Icon-72.png in Resources */,
-				76F5BDA41D2BDE1C005917E5 /* raptor.png in Resources */,
-				43C32882170B0DBE004A9460 /* Icon-Small-50.png in Resources */,
-				76EE4E511EB36E53000254F4 /* coin.atlas in Resources */,
-				76F5BDA21D2BDE1C005917E5 /* raptor.atlas in Resources */,
-				43C32883170B0DBE004A9460 /* Icon-Small.png in Resources */,
-				76C893BF236728A4009D8DC8 /* spineboy-pro.json in Resources */,
-				43C32884170B0DBE004A9460 /* [email protected] in Resources */,
-				43C32885170B0DBE004A9460 /* Icon.png in Resources */,
-				76F5BDA71D2BDE1C005917E5 /* tank.png in Resources */,
-				43C32886170B0DBE004A9460 /* [email protected] in Resources */,
-				76F5BDA61D2BDE1C005917E5 /* tank-pro.json in Resources */,
-				43C32888170B0DBE004A9460 /* iTunesArtwork in Resources */,
-				43F701101927FBC700CA4038 /* goblins-pro.json in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		9A5D2491170A94DA0030D4DD /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				766ECCEF27EDFC110074EA8B /* Sequence.c in Sources */,
-				76F28D191DEC810300CDE54D /* Atlas.c in Sources */,
-				76F28D1D1DEC810300CDE54D /* Bone.c in Sources */,
-				76F28D201DEC810300CDE54D /* Event.c in Sources */,
-				76F28D321DEC810300CDE54D /* SlotData.c in Sources */,
-				76F28D291DEC810300CDE54D /* PathConstraintData.c in Sources */,
-				76F28D2E1DEC810300CDE54D /* SkeletonData.c in Sources */,
-				76F28D2D1DEC810300CDE54D /* SkeletonBounds.c in Sources */,
-				76F28D161DEC810300CDE54D /* Animation.c in Sources */,
-				76F5BDAA1D2BDE67005917E5 /* RaptorExample.m in Sources */,
-				76F28D301DEC810300CDE54D /* Skin.c in Sources */,
-				76F28D251DEC810300CDE54D /* Json.c in Sources */,
-				76EE4E491EB36DE6000254F4 /* Triangulator.c in Sources */,
-				76F28D1C1DEC810300CDE54D /* AttachmentLoader.c in Sources */,
-				76EE4E461EB36DE6000254F4 /* Array.c in Sources */,
-				76F28D241DEC810300CDE54D /* IkConstraintData.c in Sources */,
-				76F28D1E1DEC810300CDE54D /* BoneData.c in Sources */,
-				76F28D2A1DEC810300CDE54D /* RegionAttachment.c in Sources */,
-				76EE4E471EB36DE6000254F4 /* ClippingAttachment.c in Sources */,
-				76F28D2C1DEC810300CDE54D /* SkeletonBinary.c in Sources */,
-				76F5BDAD1D2BDFA2005917E5 /* TankExample.m in Sources */,
-				76F28D171DEC810300CDE54D /* AnimationState.c in Sources */,
-				76F28D221DEC810300CDE54D /* extension.c in Sources */,
-				76F28D231DEC810300CDE54D /* IkConstraint.c in Sources */,
-				76BF7E071E66ED9C00485998 /* GLUtils.c in Sources */,
-				76EE4E481EB36DE6000254F4 /* SkeletonClipping.c in Sources */,
-				43C3282F170B0C19004A9460 /* spine-cocos2d-objc.m in Sources */,
-				76F28D1F1DEC810300CDE54D /* BoundingBoxAttachment.c in Sources */,
-				76F28D281DEC810300CDE54D /* PathConstraint.c in Sources */,
-				76F28D2F1DEC810300CDE54D /* SkeletonJson.c in Sources */,
-				76F28D311DEC810300CDE54D /* Slot.c in Sources */,
-				43C32A06170B0F93004A9460 /* main.m in Sources */,
-				76F28D351DEC810300CDE54D /* VertexAttachment.c in Sources */,
-				76C893BC23672757009D8DC8 /* IKExample.m in Sources */,
-				76FAC1961E3FA15E001CCC8C /* Color.c in Sources */,
-				76F28D331DEC810300CDE54D /* TransformConstraint.c in Sources */,
-				43C32A09170B10FF004A9460 /* AppDelegate.m in Sources */,
-				76FAC1971E3FA15E001CCC8C /* PointAttachment.c in Sources */,
-				43F7FF881927F94800CA4038 /* SkeletonAnimation.m in Sources */,
-				76F28D271DEC810300CDE54D /* PathAttachment.c in Sources */,
-				76F28D2B1DEC810300CDE54D /* Skeleton.c in Sources */,
-				76F28D1B1DEC810300CDE54D /* Attachment.c in Sources */,
-				76F28D261DEC810300CDE54D /* MeshAttachment.c in Sources */,
-				76F28D1A1DEC810300CDE54D /* AtlasAttachmentLoader.c in Sources */,
-				76EE4E561EB36E94000254F4 /* CoinExample.m in Sources */,
-				76F28D211DEC810300CDE54D /* EventData.c in Sources */,
-				76F28D181DEC810300CDE54D /* AnimationStateData.c in Sources */,
-				43F7FF891927F94800CA4038 /* SkeletonRenderer.m in Sources */,
-				76F28D341DEC810300CDE54D /* TransformConstraintData.c in Sources */,
-				43F7FF8E1927F96700CA4038 /* GoblinsExample.m in Sources */,
-				43F7FF8F1927F96700CA4038 /* SpineboyExample.m in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
-		43CA503B1CAF6E78005ABFFC /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			name = "cocos2d-ios";
-			targetProxy = 43CA503A1CAF6E78005ABFFC /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
-		9A5D2641170A94DC0030D4DD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_OBJCPP_ARC_ABI = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					DEBUG,
-					"COCOS2D_DEBUG=1",
-				);
-				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
-				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 5.0;
-				ONLY_ACTIVE_ARCH = YES;
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Debug;
-		};
-		9A5D2642170A94DC0030D4DD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_OBJCPP_ARC_ABI = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					NDEBUG,
-					"NS_BLOCK_ASSERTIONS=1",
-				);
-				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 5.0;
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Release;
-		};
-		9A5D2644170A94DC0030D4DD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "Resources-ios/Prefix.pch";
-				HEADER_SEARCH_PATHS = (
-					"\"src\"",
-					"\"../spine-c/spine-c/include\"",
-					"\"cocos2d/cocos2d\"/**",
-					"\"cocos2d/external/kazmath/include\"",
-					"\"cocos2d/external/ObjectAL\"/**",
-				);
-				INFOPLIST_FILE = "Resources-ios/Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				LIBRARY_SEARCH_PATHS = "$(inherited)";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = (
-					"-lz",
-					"-lsqlite3",
-					"-ObjC",
-				);
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				WRAPPER_EXTENSION = app;
-			};
-			name = Debug;
-		};
-		9A5D2645170A94DC0030D4DD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				COPY_PHASE_STRIP = YES;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "Resources-ios/Prefix.pch";
-				HEADER_SEARCH_PATHS = (
-					"\"src\"",
-					"\"../spine-c/spine-c/include\"",
-					"\"cocos2d/cocos2d\"/**",
-					"\"cocos2d/external/kazmath/include\"",
-					"\"cocos2d/external/ObjectAL\"/**",
-				);
-				INFOPLIST_FILE = "Resources-ios/Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				LIBRARY_SEARCH_PATHS = "$(inherited)";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = (
-					"-lz",
-					"-lsqlite3",
-					"-ObjC",
-				);
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				VALIDATE_PRODUCT = YES;
-				WRAPPER_EXTENSION = app;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		9A5D2490170A94DA0030D4DD /* Build configuration list for PBXProject "spine-cocos2d-objc" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				9A5D2641170A94DC0030D4DD /* Debug */,
-				9A5D2642170A94DC0030D4DD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		9A5D2643170A94DC0030D4DD /* Build configuration list for PBXNativeTarget "SpineExample" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				9A5D2644170A94DC0030D4DD /* Debug */,
-				9A5D2645170A94DC0030D4DD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 9A5D248D170A94DA0030D4DD /* Project object */;
-}

+ 0 - 7
spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.xcworkspace/contents.xcworkspacedata

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
-   version = "1.0">
-   <FileRef
-      location = "self:spine-cocos2d-objc.xcodeproj">
-   </FileRef>
-</Workspace>

+ 0 - 30
spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.xcworkspace/xcshareddata/spine-cocos2d-iphone-ios.xcscmblueprint

@@ -1,30 +0,0 @@
-{
-  "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "2D892964804FC420554A2636A248A5D6BBA5CC59",
-  "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {
-
-  },
-  "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : {
-    "5D7004AFA0F8477414D2D2070527EE503A955943" : 0,
-    "2D892964804FC420554A2636A248A5D6BBA5CC59" : 0
-  },
-  "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "6AF501EA-FB25-4406-800C-FDCAC3FA6B92",
-  "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : {
-    "5D7004AFA0F8477414D2D2070527EE503A955943" : "spine-runtimes\/spine-cocos2d-objc\/cocos2d\/",
-    "2D892964804FC420554A2636A248A5D6BBA5CC59" : "spine-runtimes\/"
-  },
-  "DVTSourceControlWorkspaceBlueprintNameKey" : "spine-cocos2d-objc",
-  "DVTSourceControlWorkspaceBlueprintVersion" : 204,
-  "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "spine-cocos2d-objc\/spine-cocos2d-objc.xcodeproj",
-  "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [
-    {
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/EsotericSoftware\/spine-runtimes\/",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "2D892964804FC420554A2636A248A5D6BBA5CC59"
-    },
-    {
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/cocos2d\/cocos2d-objc",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "5D7004AFA0F8477414D2D2070527EE503A955943"
-    }
-  ]
-}

+ 0 - 30
spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.xcworkspace/xcshareddata/spine-cocos2d-objc.xcscmblueprint

@@ -1,30 +0,0 @@
-{
-  "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "2D892964804FC420554A2636A248A5D6BBA5CC59",
-  "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {
-
-  },
-  "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : {
-    "5D7004AFA0F8477414D2D2070527EE503A955943" : 0,
-    "2D892964804FC420554A2636A248A5D6BBA5CC59" : 0
-  },
-  "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "AB3D4EBB-FFCB-4477-BA6B-7501B348FBB0",
-  "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : {
-    "5D7004AFA0F8477414D2D2070527EE503A955943" : "spine-runtimes\/spine-cocos2d-objc\/cocos2d\/",
-    "2D892964804FC420554A2636A248A5D6BBA5CC59" : "spine-runtimes\/"
-  },
-  "DVTSourceControlWorkspaceBlueprintNameKey" : "spine-cocos2d-objc",
-  "DVTSourceControlWorkspaceBlueprintVersion" : 204,
-  "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "spine-cocos2d-objc\/spine-cocos2d-objc.xcodeproj",
-  "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [
-    {
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/EsotericSoftware\/spine-runtimes\/",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "2D892964804FC420554A2636A248A5D6BBA5CC59"
-    },
-    {
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/cocos2d\/cocos2d-objc",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
-      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "5D7004AFA0F8477414D2D2070527EE503A955943"
-    }
-  ]
-}

+ 0 - 287
spine-cocos2d-objc/src/spine/GLUtils.c

@@ -1,287 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#include "GLUtils.h"
-
-#include <stddef.h>
-
-#include <spine/extension.h>
-
-#include <TargetConditionals.h>
-#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
-#include <OpenGLES/ES2/gl.h>
-#include <OpenGLES/ES2/glext.h>
-#else
-#include <OpenGL/gl.h>
-#include <OpenGL/glu.h>
-#endif
-
-#include <stdio.h>
-
-#define STRINGIFY(A) #A
-#define MAX_VERTICES 64000
-#define MAX_INDICES 64000
-
-const char* TWO_COLOR_TINT_VERTEX_SHADER = STRINGIFY(
-attribute vec4 a_position;
-attribute vec4 a_color;
-attribute vec4 a_color2;
-attribute vec2 a_texCoords;
-
-\n#ifdef GL_ES\n
-varying lowp vec4 v_light;
-varying lowp vec4 v_dark;
-varying mediump vec2 v_texCoord;
-\n#else\n
-varying vec4 v_light;
-varying vec4 v_dark;
-varying vec2 v_texCoord;
-\n#endif\n
-
-void main() {
-	v_light = a_color;
-	v_dark = a_color2;
-	v_texCoord = a_texCoords;
-	gl_Position = a_position;
-}
-);
-
-const char* TWO_COLOR_TINT_FRAGMENT_SHADER = STRINGIFY(
-\n#ifdef GL_ES\n
-precision lowp float;
-\n#endif\n
-
-uniform sampler2D texture;
-
-varying vec4 v_light;
-varying vec4 v_dark;
-varying vec2 v_texCoord;
-
-void main() {
-	vec4 texColor = texture2D(texture, v_texCoord);
-	float alpha = texColor.a * v_light.a;
-	gl_FragColor.a = alpha;
-	gl_FragColor.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;
-}
-);
-
-spMesh* spMesh_create(uint32_t numVertices, uint32_t numIndices) {
-	spMesh* mesh = MALLOC(spMesh, 1);
-	mesh->vertices = MALLOC(spVertex, numVertices);
-	mesh->indices = MALLOC(unsigned short, numIndices);
-	mesh->numVertices = numVertices;
-	mesh->numIndices = numIndices;
-	mesh->numAllocatedVertices = 0;
-	mesh->numAllocatedIndices = 0;
-	return mesh;
-}
-
-void spMesh_allocatePart(spMesh* mesh, spMeshPart* part, uint32_t numVertices, uint32_t numIndices, uint32_t textureHandle, uint32_t srcBlend, uint32_t dstBlend) {
-	if (mesh->numVertices < mesh->numAllocatedVertices + numVertices) {
-		mesh->numVertices = mesh->numAllocatedVertices + numVertices;
-		mesh->vertices = REALLOC(mesh->vertices, spVertex, mesh->numVertices);
-	}
-	if (mesh->numIndices < mesh->numAllocatedIndices + numIndices) {
-		mesh->numIndices = mesh->numAllocatedIndices + numIndices;
-		mesh->indices = REALLOC(mesh->indices, unsigned short, mesh->numIndices);
-	}
-
-	part->mesh = mesh;
-	part->startVertex = mesh->numAllocatedVertices;
-	part->numIndices = numIndices;
-	part->startIndex = mesh->numAllocatedIndices;
-	part->numVertices = numVertices;
-	part->textureHandle = textureHandle;
-	part->srcBlend = srcBlend;
-	part->dstBlend = dstBlend;
-
-	mesh->numAllocatedVertices += numVertices;
-	mesh->numAllocatedIndices += numIndices;
-}
-
-void spMesh_clearParts(spMesh* mesh) {
-	mesh->numAllocatedIndices = 0;
-	mesh->numAllocatedVertices = 0;
-}
-
-void spMesh_dispose(spMesh* mesh) {
-	FREE(mesh->vertices);
-	FREE(mesh->indices);
-	FREE(mesh);
-}
-
-GLuint compileShader(GLenum shaderType, const char* shaderSource) {
-	GLuint shader = glCreateShader(shaderType);
-	glShaderSource(shader, 1, &shaderSource, 0);
-	glCompileShader(shader);
-	GLint status;
-	glGetShaderiv(shader, GL_COMPILE_STATUS, &status);
-	if (!status) {
-		GLsizei length;
-		glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length);
-		if (length < 1) {
-			printf("Unknown error while compiling shader\n");
-			exit(-1);
-		} else {
-			char* log = MALLOC(char, length);
-			glGetShaderInfoLog(shader, length, 0, log);
-			printf("Error compiling shader: %s\n", log);
-			exit(-1);
-		}
-	}
-	return shader;
-}
-
-spShader* spShader_create(const char* vertexShaderSource, const char* fragmentShaderSource) {
-	GLuint vertexShader = compileShader(GL_VERTEX_SHADER, vertexShaderSource);
-	GLuint fragmentShader = compileShader(GL_FRAGMENT_SHADER, fragmentShaderSource);
-
-	GLuint program = glCreateProgram();
-	glAttachShader(program, vertexShader);
-	glAttachShader(program, fragmentShader);
-	glLinkProgram(program);
-
-	GLint status;
-	glGetProgramiv(program, GL_LINK_STATUS, &status);
-	if (!status) {
-		printf("Unknown error while linking program\n");
-		exit(-1);
-	}
-
-	spShader* shader = MALLOC(spShader, 1);
-	shader->program = program;
-	shader->vertexShader = vertexShader;
-	shader->fragmentShader = fragmentShader;
-	return shader;
-}
-
-void spShader_dispose(spShader* shader) {
-	glDeleteProgram(shader->program);
-	glDeleteShader(shader->vertexShader);
-	glDeleteShader(shader->fragmentShader);
-	FREE(shader);
-}
-
-spTwoColorBatcher* spTwoColorBatcher_create() {
-	spTwoColorBatcher* batcher = MALLOC(spTwoColorBatcher, 1);
-
-	batcher->shader = spShader_create(TWO_COLOR_TINT_VERTEX_SHADER, TWO_COLOR_TINT_FRAGMENT_SHADER);
-	batcher->positionAttributeLocation = glGetAttribLocation(batcher->shader->program, "a_position");
-	batcher->colorAttributeLocation = glGetAttribLocation(batcher->shader->program, "a_color");
-	batcher->color2AttributeLocation = glGetAttribLocation(batcher->shader->program, "a_color2");
-	batcher->texCoordsAttributeLocation = glGetAttribLocation(batcher->shader->program, "a_texCoords");
-	batcher->textureUniformLocation = glGetUniformLocation(batcher->shader->program, "texture");
-
-	glGenBuffers(1, &batcher->vertexBufferHandle);
-	glGenBuffers(1, &batcher->indexBufferHandle);
-	batcher->verticesBuffer = MALLOC(spVertex, MAX_VERTICES);
-	batcher->indicesBuffer = MALLOC(unsigned short, MAX_INDICES);
-	batcher->numIndices = 0;
-	batcher->numVertices = 0;
-	batcher->lastTextureHandle = -1;
-	batcher->lastSrcBlend = -1;
-	batcher->lastDstBlend = -1;
-	return batcher;
-}
-
-void spTwoColorBatcher_add(spTwoColorBatcher* batcher, spMeshPart mesh) {
-	if (batcher->numVertices + mesh.numVertices > MAX_VERTICES || batcher->numIndices + mesh.numIndices > MAX_INDICES) {
-		spTwoColorBatcher_flush(batcher);
-	}
-
-	if (batcher->lastTextureHandle != mesh.textureHandle || batcher->lastSrcBlend != mesh.srcBlend || batcher->lastDstBlend != mesh.dstBlend) {
-		spTwoColorBatcher_flush(batcher);
-	}
-
-	spVertex* vertices = &batcher->verticesBuffer[batcher->numVertices];
-	unsigned short* indices = &batcher->indicesBuffer[batcher->numIndices];
-
-	memcpy(vertices, &mesh.mesh->vertices[mesh.startVertex], mesh.numVertices * sizeof(spVertex));
-	unsigned short offset = (unsigned short)batcher->numVertices;
-	for (int i = 0, j = mesh.startIndex, n = mesh.numIndices; i < n; i++, j++) {
-		indices[i] = mesh.mesh->indices[j] + offset;
-	}
-
-	batcher->numIndices += mesh.numIndices;
-	batcher->numVertices += mesh.numVertices;
-	batcher->lastSrcBlend = mesh.srcBlend;
-	batcher->lastDstBlend = mesh.dstBlend;
-	batcher->lastTextureHandle = mesh.textureHandle;
-}
-
-void spTwoColorBatcher_flush(spTwoColorBatcher* batcher) {
-	if (batcher->numVertices == 0 || batcher->numIndices == 0)
-		return;
-
-	glUseProgram(batcher->shader->program);
-
-	glActiveTexture(GL_TEXTURE0);
-	glBindTexture(GL_TEXTURE_2D, batcher->lastTextureHandle);
-	glUniform1i(batcher->textureUniformLocation, 0);
-
-	glBlendFunc(batcher->lastSrcBlend, batcher->lastDstBlend);
-
-	glBindBuffer(GL_ARRAY_BUFFER, batcher->vertexBufferHandle);
-	glBufferData(GL_ARRAY_BUFFER, sizeof(spVertex) * batcher->numVertices , batcher->verticesBuffer, GL_DYNAMIC_DRAW);
-
-	glEnableVertexAttribArray(batcher->positionAttributeLocation);
-	glEnableVertexAttribArray(batcher->colorAttributeLocation);
-	glEnableVertexAttribArray(batcher->color2AttributeLocation);
-	glEnableVertexAttribArray(batcher->texCoordsAttributeLocation);
-
-	glVertexAttribPointer(batcher->positionAttributeLocation, 4, GL_FLOAT, GL_FALSE, sizeof(spVertex), (GLvoid*)offsetof(spVertex, x));
-	glVertexAttribPointer(batcher->colorAttributeLocation, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(spVertex), (GLvoid*)offsetof(spVertex, color));
-	glVertexAttribPointer(batcher->color2AttributeLocation, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(spVertex), (GLvoid*)offsetof(spVertex, color2));
-	glVertexAttribPointer(batcher->texCoordsAttributeLocation, 2, GL_FLOAT, GL_FALSE, sizeof(spVertex), (GLvoid*)offsetof(spVertex, u));
-
-	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, batcher->indexBufferHandle);
-	glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned short) * batcher->numIndices, batcher->indicesBuffer, GL_STATIC_DRAW);
-
-	glDrawElements(GL_TRIANGLES, (GLsizei)batcher->numIndices, GL_UNSIGNED_SHORT, 0);
-
-	glBindBuffer(GL_ARRAY_BUFFER, 0);
-	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
-
-	glUseProgram(0);
-	glBindTexture(GL_TEXTURE_2D, 0);
-
-	batcher->numIndices = 0;
-	batcher->numVertices = 0;
-	batcher->lastSrcBlend = -1;
-	batcher->lastDstBlend = -1;
-	batcher->lastTextureHandle = -1;
-}
-
-void spDisposeTwoColorBatcher(spTwoColorBatcher* batcher) {
-	spShader_dispose(batcher->shader);
-	glDeleteBuffers(1, &batcher->vertexBufferHandle);
-	FREE(batcher->verticesBuffer);
-	glDeleteBuffers(1, &batcher->indexBufferHandle);
-	FREE(batcher->indicesBuffer);
-}

+ 0 - 103
spine-cocos2d-objc/src/spine/GLUtils.h

@@ -1,103 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#ifndef GLUtils_h
-#define GLUtils_h
-
-#include <stdint.h>
-
-typedef struct spVertex {
-	float x, y, z, w;
-	uint32_t color;
-	uint32_t color2;
-	float u, v;
-} spVertex;
-
-typedef struct spMesh {
-	spVertex* vertices;
-	uint32_t numVertices;
-	uint32_t numAllocatedVertices;
-	unsigned short* indices;
-	uint32_t numIndices;
-	uint32_t numAllocatedIndices;
-} spMesh;
-
-typedef struct spMeshPart {
-	spMesh* mesh;
-	uint32_t startVertex;
-	uint32_t numVertices;
-	uint32_t startIndex;
-	uint32_t numIndices;
-	uint32_t textureHandle;
-	uint32_t srcBlend;
-	uint32_t dstBlend;
-} spMeshPart;
-
-spMesh* spMesh_create(uint32_t numVertices, uint32_t numIndices);
-void spMesh_allocatePart(spMesh* mesh, spMeshPart* part, uint32_t numVertices, uint32_t numIndices, uint32_t textureHandle, uint32_t srcBlend, uint32_t dstBlend);
-void spMesh_clearParts(spMesh* mesh);
-void spMesh_dispose(spMesh* mesh);
-
-typedef struct spShader {
-	uint32_t program;
-	uint32_t vertexShader;
-	uint32_t fragmentShader;
-} spShader;
-
-spShader* spShader_create(const char* vertexShaderSource, const char* fragmentShaderSource);
-void spShader_dispose(spShader* shader);
-
-typedef struct spTwoColorBatcher {
-	spShader* shader;
-
-	uint32_t vertexBufferHandle;
-	spVertex* verticesBuffer;
-	uint32_t numVertices;
-
-	uint32_t indexBufferHandle;
-	unsigned short* indicesBuffer;
-	uint32_t numIndices;
-
-	int32_t positionAttributeLocation;
-	int32_t colorAttributeLocation;
-	int32_t color2AttributeLocation;
-	int32_t texCoordsAttributeLocation;
-	int32_t textureUniformLocation;
-
-	uint32_t lastTextureHandle;
-	uint32_t lastSrcBlend;
-	uint32_t lastDstBlend;
-} spTwoColorBatcher;
-
-spTwoColorBatcher* spTwoColorBatcher_create();
-void spTwoColorBatcher_add(spTwoColorBatcher* batcher, spMeshPart meshPart);
-void spTwoColorBatcher_flush(spTwoColorBatcher* batcher);
-void spDisposeTwoColorBatcher(spTwoColorBatcher* batcher);
-
-#endif /* GLUtils_h */

+ 0 - 98
spine-cocos2d-objc/src/spine/SkeletonAnimation.h

@@ -1,98 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import <spine/spine.h>
-#import <spine/SkeletonRenderer.h>
-#import "cocos2d.h"
-
-@class SkeletonAnimation;
-
-typedef void(^spStartListener)(spTrackEntry* entry);
-typedef void(^spInterruptListener)(spTrackEntry* entry);
-typedef void(^spEndListener)(spTrackEntry* entry);
-typedef void(^spDisposeListener)(spTrackEntry* entry);
-typedef void(^spCompleteListener)(spTrackEntry* entry);
-typedef void(^spEventListener)(spTrackEntry* entry, spEvent* event);
-typedef void(^spUpdateWorldTransformsListener)(SkeletonAnimation* node);
-
-/** Draws an animated skeleton, providing an AnimationState for applying one or more animations and queuing animations to be
- * played later. */
-@interface SkeletonAnimation : SkeletonRenderer {
-	spAnimationState* _state;
-	bool _ownsAnimationStateData;
-	float _timeScale;
-
-	spStartListener _startListener;
-	spInterruptListener _interruptListener;
-	spEndListener _endListener;
-	spDisposeListener _disposeListener;
-	spCompleteListener _completeListener;
-	spEventListener _eventListener;
-    bool _updatedOnce;
-}
-
-+ (id) skeletonWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData;
-+ (id) skeletonWithFile:(NSString*)skeletonDataFile atlas:(spAtlas*)atlas scale:(float)scale;
-+ (id) skeletonWithFile:(NSString*)skeletonDataFile atlasFile:(NSString*)atlasFile scale:(float)scale;
-
-- (id) initWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData;
-- (id) initWithFile:(NSString*)skeletonDataFile atlas:(spAtlas*)atlas scale:(float)scale;
-- (id) initWithFile:(NSString*)skeletonDataFile atlasFile:(NSString*)atlasFile scale:(float)scale;
-
-- (void) setAnimationStateData:(spAnimationStateData*)stateData;
-- (void) setMixFrom:(NSString*)fromAnimation to:(NSString*)toAnimation duration:(float)duration;
-
-- (spTrackEntry*) setAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop;
-- (spTrackEntry*) addAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop afterDelay:(float)delay;
-- (spTrackEntry*) getCurrentForTrack:(int)trackIndex;
-- (void) clearTracks;
-- (void) clearTrack:(int)trackIndex;
-
-- (void) setListenerForEntry:(spTrackEntry*)entry onStart:(spStartListener)listener;
-- (void) setListenerForEntry:(spTrackEntry*)entry onInterrupt:(spInterruptListener)listener;
-- (void) setListenerForEntry:(spTrackEntry*)entry onEnd:(spEndListener)listener;
-- (void) setListenerForEntry:(spTrackEntry*)entry onDispose:(spDisposeListener)listener;
-- (void) setListenerForEntry:(spTrackEntry*)entry onComplete:(spCompleteListener)listener;
-- (void) setListenerForEntry:(spTrackEntry*)entry onEvent:(spEventListener)listener;
-
-- (void) onAnimationStateEvent:(spTrackEntry*)entry type:(spEventType)type event:(spEvent*)event;
-- (void) onTrackEntryEvent:(spTrackEntry*)entry type:(spEventType)type event:(spEvent*)event;
-
-@property (nonatomic, readonly) spAnimationState* state;
-@property (nonatomic) float timeScale;
-@property (nonatomic, copy) spStartListener startListener;
-@property (nonatomic, copy) spInterruptListener interruptListener;
-@property (nonatomic, copy) spEndListener endListener;
-@property (nonatomic, copy) spDisposeListener disposeListener;
-@property (nonatomic, copy) spCompleteListener completeListener;
-@property (nonatomic, copy) spEventListener eventListener;
-@property (nonatomic, copy) spUpdateWorldTransformsListener preUpdateWorldTransformsListener;
-@property (nonatomic, copy) spUpdateWorldTransformsListener postUpdateWorldTransformsListener;
-
-@end

+ 0 - 286
spine-cocos2d-objc/src/spine/SkeletonAnimation.m

@@ -1,286 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import <spine/SkeletonAnimation.h>
-#import <spine/spine-cocos2d-objc.h>
-#import <spine/extension.h>
-
-typedef struct _TrackEntryListeners {
-	spStartListener startListener;
-	spInterruptListener interruptListener;
-	spEndListener endListener;
-	spDisposeListener disposeListener;
-	spCompleteListener completeListener;
-	spEventListener eventListener;
-} _TrackEntryListeners;
-
-static void animationCallback (spAnimationState* state, spEventType type, spTrackEntry* entry, spEvent* event) {
-	[(SkeletonAnimation*)state->rendererObject onAnimationStateEvent:entry type:type event:event];
-}
-
-void trackEntryCallback (spAnimationState* state, spEventType type, spTrackEntry* entry, spEvent* event) {
-	[(SkeletonAnimation*)state->rendererObject onTrackEntryEvent:entry type:type event:event];
-	if (type == SP_ANIMATION_DISPOSE) {
-		if (entry->rendererObject) {
-			_TrackEntryListeners* listeners = (_TrackEntryListeners*)entry->rendererObject;
-			[listeners->startListener release];
-			[listeners->endListener release];
-			[listeners->completeListener release];
-			[listeners->eventListener release];
-			FREE(listeners);
-		}
-	}
-}
-
-static _TrackEntryListeners* getListeners (spTrackEntry* entry) {
-	if (!entry->rendererObject) {
-		entry->rendererObject = NEW(_TrackEntryListeners);
-		entry->listener = trackEntryCallback;
-	}
-	return (_TrackEntryListeners*)entry->rendererObject;
-}
-
-//
-
-@interface SkeletonAnimation (Private)
-- (void) initialize;
-@end
-
-@implementation SkeletonAnimation
-
-@synthesize state = _state;
-@synthesize timeScale = _timeScale;
-@synthesize startListener = _startListener;
-@synthesize endListener = _endListener;
-@synthesize completeListener = _completeListener;
-@synthesize eventListener = _eventListener;
-@synthesize preUpdateWorldTransformsListener = _preUpdateWorldTransformsListener;
-@synthesize postUpdateWorldTransformsListener = _postUpdateWorldTransformsListener;
-
-+ (id) skeletonWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData {
-	return [[[self alloc] initWithData:skeletonData ownsSkeletonData:ownsSkeletonData] autorelease];
-}
-
-+ (id) skeletonWithFile:(NSString*)skeletonDataFile atlas:(spAtlas*)atlas scale:(float)scale {
-	return [[[self alloc] initWithFile:skeletonDataFile atlas:atlas scale:scale] autorelease];
-}
-
-+ (id) skeletonWithFile:(NSString*)skeletonDataFile atlasFile:(NSString*)atlasFile scale:(float)scale {
-	return [[[self alloc] initWithFile:skeletonDataFile atlasFile:atlasFile scale:scale] autorelease];
-}
-
-- (void) initialize {
-	_ownsAnimationStateData = true;
-	_timeScale = 1;
-
-	_state = spAnimationState_create(spAnimationStateData_create(_skeleton->data));
-	_state->rendererObject = self;
-	_state->listener = animationCallback;
-
-	_spAnimationState* stateInternal = (_spAnimationState*)_state;
-    _updatedOnce = false;
-}
-
-- (id) initWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData {
-	self = [super initWithData:skeletonData ownsSkeletonData:ownsSkeletonData];
-	if (!self) return nil;
-
-	[self initialize];
-
-	return self;
-}
-
-- (id) initWithFile:(NSString*)skeletonDataFile atlas:(spAtlas*)atlas scale:(float)scale {
-	self = [super initWithFile:skeletonDataFile atlas:atlas scale:scale];
-	if (!self) return nil;
-
-	[self initialize];
-
-	return self;
-}
-
-- (id) initWithFile:(NSString*)skeletonDataFile atlasFile:(NSString*)atlasFile scale:(float)scale {
-	self = [super initWithFile:skeletonDataFile atlasFile:atlasFile scale:scale];
-	if (!self) return nil;
-
-	[self initialize];
-
-	return self;
-}
-
-- (void) dealloc {
-	if (_ownsAnimationStateData) spAnimationStateData_dispose(_state->data);
-	spAnimationState_dispose(_state);
-
-	[_startListener release];
-	[_interruptListener release];
-	[_endListener release];
-	[_disposeListener release];
-	[_completeListener release];
-	[_eventListener release];
-	[_preUpdateWorldTransformsListener release];
-	[_postUpdateWorldTransformsListener release];
-
-	[super dealloc];
-}
-
-- (void) update:(CCTime)deltaTime {
-	deltaTime *= _timeScale;	
-	spAnimationState_update(_state, deltaTime);
-	spAnimationState_apply(_state, _skeleton);
-	if (_preUpdateWorldTransformsListener) _preUpdateWorldTransformsListener(self);
-	spSkeleton_updateWorldTransform(_skeleton);
-	if (_postUpdateWorldTransformsListener) _postUpdateWorldTransformsListener(self);
-    _updatedOnce = true;
-}
-
-- (void) setAnimationStateData:(spAnimationStateData*)stateData {
-	NSAssert(stateData, @"stateData cannot be null.");
-
-	if (_ownsAnimationStateData) spAnimationStateData_dispose(_state->data);
-	spAnimationState_dispose(_state);
-
-	_ownsAnimationStateData = false;
-	_state = spAnimationState_create(stateData);
-	_state->rendererObject = self;
-	_state->listener = animationCallback;
-}
-
-- (void) setMixFrom:(NSString*)fromAnimation to:(NSString*)toAnimation duration:(float)duration {
-	spAnimationStateData_setMixByName(_state->data, [fromAnimation UTF8String], [toAnimation UTF8String], duration);
-}
-
-- (spTrackEntry*) setAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop {
-	spAnimation* animation = spSkeletonData_findAnimation(_skeleton->data, [name UTF8String]);
-	if (!animation) {
-		CCLOG(@"Spine: Animation not found: %@", name);
-		return 0;
-	}
-	return spAnimationState_setAnimation(_state, trackIndex, animation, loop);
-}
-
-- (spTrackEntry*) addAnimationForTrack:(int)trackIndex name:(NSString*)name loop:(bool)loop afterDelay:(float)delay {
-	spAnimation* animation = spSkeletonData_findAnimation(_skeleton->data, [name UTF8String]);
-	if (!animation) {
-		CCLOG(@"Spine: Animation not found: %@", name);
-		return 0;
-	}
-	return spAnimationState_addAnimation(_state, trackIndex, animation, loop, delay);
-}
-
-- (spTrackEntry*) getCurrentForTrack:(int)trackIndex {
-	return spAnimationState_getCurrent(_state, trackIndex);
-}
-
-- (void) clearTracks {
-	spAnimationState_clearTracks(_state);
-}
-
-- (void) clearTrack:(int)trackIndex {
-	spAnimationState_clearTrack(_state, trackIndex);
-}
-
-- (void) onAnimationStateEvent:(spTrackEntry*)entry type:(spEventType)type event:(spEvent*)event {
-	switch (type) {
-	case SP_ANIMATION_START:
-		if (_startListener) _startListener(entry);
-		break;
-	case SP_ANIMATION_INTERRUPT:
-		if (_interruptListener) _interruptListener(entry);
-		break;
-	case SP_ANIMATION_END:
-		if (_endListener) _endListener(entry);
-		break;
-	case SP_ANIMATION_DISPOSE:
-		if (_disposeListener) _disposeListener(entry);
-		break;
-	case SP_ANIMATION_COMPLETE:
-		if (_completeListener) _completeListener(entry);
-		break;
-	case SP_ANIMATION_EVENT:
-		if (_eventListener) _eventListener(entry, event);
-		break;
-	}
-}
-
-- (void) onTrackEntryEvent:(spTrackEntry*)entry type:(spEventType)type event:(spEvent*)event {
-	if (!entry->rendererObject) return;
-	_TrackEntryListeners* listeners = (_TrackEntryListeners*)entry->rendererObject;
-	switch (type) {
-	case SP_ANIMATION_START:
-		if (listeners->startListener) listeners->startListener(entry);
-		break;
-	case SP_ANIMATION_INTERRUPT:
-		if (listeners->interruptListener) listeners->interruptListener(entry);
-		break;
-	case SP_ANIMATION_END:
-		if (listeners->endListener) listeners->endListener(entry);
-		break;
-	case SP_ANIMATION_DISPOSE:
-		if (listeners->disposeListener) listeners->disposeListener(entry);
-		break;
-	case SP_ANIMATION_COMPLETE:
-		if (listeners->completeListener) listeners->completeListener(entry);
-		break;
-	case SP_ANIMATION_EVENT:
-		if (listeners->eventListener) listeners->eventListener(entry, event);
-		break;
-	}
-}
-
-- (void) setListenerForEntry:(spTrackEntry*)entry onStart:(spStartListener)listener {
-	getListeners(entry)->startListener = [listener copy];
-}
-
-- (void) setListenerForEntry:(spTrackEntry*)entry onInterrupt:(spInterruptListener)listener {
-	getListeners(entry)->interruptListener = [listener copy];
-}
-
-- (void) setListenerForEntry:(spTrackEntry*)entry onEnd:(spEndListener)listener {
-	getListeners(entry)->endListener = [listener copy];
-}
-
-- (void) setListenerForEntry:(spTrackEntry*)entry onDispose:(spDisposeListener)listener {
-	getListeners(entry)->disposeListener = [listener copy];
-}
-
-- (void) setListenerForEntry:(spTrackEntry*)entry onComplete:(spCompleteListener)listener {
-	getListeners(entry)->completeListener = [listener copy];
-}
-
-- (void) setListenerForEntry:(spTrackEntry*)entry onEvent:(spEventListener)listener {
-	getListeners(entry)->eventListener = [listener copy];
-}
-
--(void)draw:(CCRenderer *)renderer transform:(const GLKMatrix4 *)transform {
-    if (!_updatedOnce) [self update:0];    
-    [super draw:renderer transform:transform];
-}
-
-@end

+ 0 - 93
spine-cocos2d-objc/src/spine/SkeletonRenderer.h

@@ -1,93 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import <spine/spine.h>
-#import "cocos2d.h"
-
-/** Draws a skeleton. */
-@interface SkeletonRenderer : CCNode<CCBlendProtocol> {
-	spSkeleton* _skeleton;
-	spBone* _rootBone;
-	bool _debugSlots;
-	bool _debugBones;
-	bool _premultipliedAlpha;
-	bool _twoColorTint;
-	bool _skipVisibilityCheck;
-	ccBlendFunc _blendFunc;
-	CCDrawNode* _drawNode;
-	bool _ownsSkeletonData;
-	spAtlas* _atlas;
-	float* _worldVertices;
-	CCBlendMode* screenMode;
-	spSkeletonClipping* _clipper;
-}
-
-+ (id) skeletonWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData;
-+ (id) skeletonWithFile:(NSString*)skeletonDataFile atlas:(spAtlas*)atlas scale:(float)scale;
-+ (id) skeletonWithFile:(NSString*)skeletonDataFile atlasFile:(NSString*)atlasFile scale:(float)scale;
-
-- (id) initWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData;
-- (id) initWithFile:(NSString*)skeletonDataFile atlas:(spAtlas*)atlas scale:(float)scale;
-- (id) initWithFile:(NSString*)skeletonDataFile atlasFile:(NSString*)atlasFile scale:(float)scale;
-
-- (CCTexture*) getTextureForRegion:(spRegionAttachment*)attachment;
-- (CCTexture*) getTextureForMesh:(spMeshAttachment*)attachment;
-
-// --- Convenience methods for common Skeleton_* functions.
-- (void) updateWorldTransform;
-
-- (void) setToSetupPose;
-- (void) setBonesToSetupPose;
-- (void) setSlotsToSetupPose;
-
-/* Returns 0 if the bone was not found. */
-- (spBone*) findBone:(NSString*)boneName;
-
-/* Returns 0 if the slot was not found. */
-- (spSlot*) findSlot:(NSString*)slotName;
-
-/* Sets the skin used to look up attachments not found in the SkeletonData defaultSkin. Attachments from the new skin are
- * attached if the corresponding attachment from the old skin was attached. If there was no old skin, each slot's setup mode
- * attachment is attached from the new skin. Returns false if the skin was not found.
- * @param skin May be 0.*/
-- (bool) setSkin:(NSString*)skinName;
-
-/* Returns 0 if the slot or attachment was not found. */
-- (spAttachment*) getAttachment:(NSString*)slotName attachmentName:(NSString*)attachmentName;
-/* Returns false if the slot or attachment was not found. */
-- (bool) setAttachment:(NSString*)slotName attachmentName:(NSString*)attachmentName;
-
-@property (nonatomic, readonly) spSkeleton* skeleton;
-@property (nonatomic) bool twoColorTint;
-@property (nonatomic) bool debugSlots;
-@property (nonatomic) bool debugBones;
-@property (nonatomic) bool skipVisibilityCheck;
-@property (nonatomic) spBone* rootBone;
-
-@end

+ 0 - 490
spine-cocos2d-objc/src/spine/SkeletonRenderer.m

@@ -1,490 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import <spine/SkeletonRenderer.h>
-#import <spine/spine-cocos2d-objc.h>
-#import <spine/extension.h>
-#import <spine/GLUtils.h>
-#import "CCDrawNode.h"
-
-static unsigned short quadTriangles[6] = {0, 1, 2, 2, 3, 0};
-static spTwoColorBatcher* batcher = 0;
-static spMesh* mesh = 0;
-static bool handlerQueued = false;
-
-@interface SkeletonRenderer (Private)
-- (void) initialize:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData;
-@end
-
-@implementation SkeletonRenderer
-
-@synthesize skeleton = _skeleton;
-@synthesize rootBone = _rootBone;
-@synthesize twoColorTint = _twoColorTint;
-@synthesize debugSlots = _debugSlots;
-@synthesize debugBones = _debugBones;
-
-+ (id) skeletonWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData {
-	return [[[self alloc] initWithData:skeletonData ownsSkeletonData:ownsSkeletonData] autorelease];
-}
-
-+ (id) skeletonWithFile:(NSString*)skeletonDataFile atlas:(spAtlas*)atlas scale:(float)scale {
-	return [[[self alloc] initWithFile:skeletonDataFile atlas:atlas scale:scale] autorelease];
-}
-
-+ (id) skeletonWithFile:(NSString*)skeletonDataFile atlasFile:(NSString*)atlasFile scale:(float)scale {
-	return [[[self alloc] initWithFile:skeletonDataFile atlasFile:atlasFile scale:scale] autorelease];
-}
-
-- (void) initialize:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData {
-	if (!batcher) {
-		batcher = spTwoColorBatcher_create();
-		mesh = spMesh_create(64000, 32000);
-	}
-
-	_ownsSkeletonData = ownsSkeletonData;
-
-	_worldVertices = MALLOC(float, 1000); // Max number of vertices per mesh.
-
-	_skeleton = spSkeleton_create(skeletonData);
-	_rootBone = _skeleton->bones[0];
-
-	_blendFunc.src = GL_ONE;
-	_blendFunc.dst = GL_ONE_MINUS_SRC_ALPHA;
-	_drawNode = [[CCDrawNode alloc] init];
-	[_drawNode setBlendMode: [CCBlendMode premultipliedAlphaMode]];
-	[self addChild:_drawNode];
-
-	[self setShader:[CCShader positionTextureColorShader]];
-
-	_premultipliedAlpha = true;
-	screenMode = [CCBlendMode blendModeWithOptions:@{
-		CCBlendFuncSrcColor: @(GL_ONE),
-		CCBlendFuncDstColor: @(GL_ONE_MINUS_SRC_COLOR)}
-	];
-
-	_clipper = spSkeletonClipping_create();
-}
-
-- (id) initWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData {
-	NSAssert(skeletonData, @"skeletonData cannot be null.");
-
-	self = [super init];
-	if (!self) return nil;
-
-	[self initialize:skeletonData ownsSkeletonData:ownsSkeletonData];
-
-	return self;
-}
-
-- (id) initWithFile:(NSString*)skeletonDataFile atlas:(spAtlas*)atlas scale:(float)scale {
-	self = [super init];
-	if (!self) return nil;
-
-	spSkeletonJson* json = spSkeletonJson_create(atlas);
-	json->scale = scale;
-	spSkeletonData* skeletonData = nil;
-
-	@synchronized(self.class) {
-		spSkeletonJson_readSkeletonDataFile(json, [skeletonDataFile UTF8String]);
-	}
-	NSAssert(skeletonData, ([NSString stringWithFormat:@"Error reading skeleton data file: %@\nError: %s", skeletonDataFile, json->error]));
-	spSkeletonJson_dispose(json);
-	if (!skeletonData) return 0;
-
-	[self initialize:skeletonData ownsSkeletonData:YES];
-
-	return self;
-}
-
-- (id) initWithFile:(NSString*)skeletonDataFile atlasFile:(NSString*)atlasFile scale:(float)scale {
-	self = [super init];
-	if (!self) return nil;
-
-	@synchronized(self.class) {
-		_atlas = spAtlas_createFromFile([atlasFile UTF8String], 0);
-	}
-	NSAssert(_atlas, ([NSString stringWithFormat:@"Error reading atlas file: %@", atlasFile]));
-	if (!_atlas) return 0;
-
-	spSkeletonJson* json = spSkeletonJson_create(_atlas);
-	json->scale = scale;
-	spSkeletonData* skeletonData;
-
-	@synchronized(self.class) {
-		skeletonData = spSkeletonJson_readSkeletonDataFile(json, [skeletonDataFile UTF8String]);
-	}
-	NSAssert(skeletonData, ([NSString stringWithFormat:@"Error reading skeleton data file: %@\nError: %s", skeletonDataFile, json->error]));
-	spSkeletonJson_dispose(json);
-	if (!skeletonData) return 0;
-
-	[self initialize:skeletonData ownsSkeletonData:YES];
-
-	return self;
-}
-
-- (void) dealloc {
-	if (_ownsSkeletonData) spSkeletonData_dispose(_skeleton->data);
-	if (_atlas) spAtlas_dispose(_atlas);
-	spSkeleton_dispose(_skeleton);
-	FREE(_worldVertices);
-	spSkeletonClipping_dispose(_clipper);
-	[super dealloc];
-}
-
--(void)draw:(CCRenderer *)renderer transform:(const GLKMatrix4 *)transform {
-	// FIXME we need to clear the mesh parts at the end of the frame
-	// there's no general event mechanism to get notified on end frame
-	// that doesn't need to be re-added every frame. This is a poor man
-	// notification system that may break if the block is called on a
-	// separate thread.
-	if (!handlerQueued) {
-		[[CCDirector sharedDirector] addFrameCompletionHandler: ^{
-			spMesh_clearParts(mesh);
-			handlerQueued = false;
-		}];
-		handlerQueued = true;
-	}
-
-	CCColor* nodeColor = self.color;
-	_skeleton->color.r = nodeColor.red;
-	_skeleton->color.g = nodeColor.green;
-	_skeleton->color.b = nodeColor.blue;
-	_skeleton->color.a = self.displayedOpacity;
-
-	int blendMode = -1;
-	uint32_t srcBlend = GL_SRC_ALPHA;
-	uint32_t dstBlend = GL_ONE_MINUS_SRC_ALPHA;
-	float* uvs = 0;
-	float* vertices = _worldVertices;
-	int verticesCount = 0;
-	unsigned short* triangles = 0;
-	int trianglesCount = 0;
-	float r = 0, g = 0, b = 0, a = 0;
-	float dr = 0, dg = 0, db = 0, da = _premultipliedAlpha ? 1 : 0;
-	for (int i = 0, n = _skeleton->slotsCount; i < n; i++) {
-		vertices = _worldVertices;
-		spSlot* slot = _skeleton->drawOrder[i];
-		if (!slot->attachment) continue;
-		if (!slot->bone->active) continue;
-		CCTexture *texture = 0;
-		switch (slot->attachment->type) {
-		case SP_ATTACHMENT_REGION: {
-			spRegionAttachment* attachment = (spRegionAttachment*)slot->attachment;
-			spRegionAttachment_computeWorldVertices(attachment, slot, vertices, 0, 2);
-			texture = [self getTextureForRegion:attachment];
-			uvs = attachment->uvs;
-			verticesCount = 8;
-			triangles = quadTriangles;
-			trianglesCount = 6;
-			r = attachment->color.r;
-			g = attachment->color.g;
-			b = attachment->color.b;
-			a = attachment->color.a;
-			break;
-		}
-		case SP_ATTACHMENT_MESH: {
-			spMeshAttachment* attachment = (spMeshAttachment*)slot->attachment;
-			spVertexAttachment_computeWorldVertices(SUPER(attachment), slot, 0, attachment->super.worldVerticesLength, vertices, 0, 2);
-			texture = [self getTextureForMesh:attachment];
-			uvs = attachment->uvs;
-			verticesCount = attachment->super.worldVerticesLength;
-			triangles = attachment->triangles;
-			trianglesCount = attachment->trianglesCount;
-			r = attachment->color.r;
-			g = attachment->color.g;
-			b = attachment->color.b;
-			a = attachment->color.a;
-			break;
-		}
-		case SP_ATTACHMENT_CLIPPING: {
-			spClippingAttachment* clip = (spClippingAttachment*)slot->attachment;
-			spSkeletonClipping_clipStart(_clipper, slot, clip);
-            continue;
-		}
-		default: ;
-		}
-
-		if (texture) {
-			if (slot->data->blendMode != blendMode) {
-				blendMode = slot->data->blendMode;
-				switch (slot->data->blendMode) {
-				case SP_BLEND_MODE_ADDITIVE:
-					[self setBlendMode:[CCBlendMode addMode]];
-					srcBlend = !_premultipliedAlpha ? GL_SRC_ALPHA : GL_ONE;
-					dstBlend = GL_ONE;
-					break;
-				case SP_BLEND_MODE_MULTIPLY:
-					[self setBlendMode:[CCBlendMode multiplyMode]];
-					srcBlend = GL_DST_COLOR;
-					dstBlend = GL_ONE_MINUS_SRC_ALPHA;
-					break;
-				case SP_BLEND_MODE_SCREEN:
-					[self setBlendMode:screenMode];
-					srcBlend = GL_ONE;
-					dstBlend = GL_ONE_MINUS_SRC_COLOR;
-					break;
-				default:
-					[self setBlendMode:_premultipliedAlpha ? [CCBlendMode premultipliedAlphaMode] : [CCBlendMode alphaMode]];
-					srcBlend = !_premultipliedAlpha ? GL_SRC_ALPHA : GL_ONE;
-					dstBlend = GL_ONE_MINUS_SRC_ALPHA;
-				}
-			}
-			if (_premultipliedAlpha) {
-				a *= _skeleton->color.a * slot->color.a;
-				r *= _skeleton->color.r * slot->color.r * a;
-				g *= _skeleton->color.g * slot->color.g * a;
-				b *= _skeleton->color.b * slot->color.b * a;
-			} else {
-				a *= _skeleton->color.a * slot->color.a;
-				r *= _skeleton->color.r * slot->color.r;
-				g *= _skeleton->color.g * slot->color.g;
-				b *= _skeleton->color.b * slot->color.b;
-			}
-			self.texture = texture;
-			bool isVisible = true;
-			if (!_skipVisibilityCheck) {
-				float minX = FLT_MAX, minY = FLT_MAX, maxX = FLT_MIN, maxY = FLT_MIN;
-				for (int i = 0; i < verticesCount * 2; i+=2) {
-					minX = MIN(vertices[i], minX);
-					maxX = MAX(vertices[i], maxX);
-					minY = MIN(vertices[i+1], minY);
-					maxY = MAX(vertices[i+1], maxY);
-				}
-				GLKVector2 center = GLKVector2Make(minX + (maxX - minX) / 2, minY + (maxY - minY) / 2);
-				GLKVector2 extents = GLKVector2Make((maxX - minX) / 2, (maxY - minY) / 2);
-				isVisible = CCRenderCheckVisbility(transform, center, extents);
-			}
-
-			if (isVisible) {
-
-				if (spSkeletonClipping_isClipping(_clipper)) {
-					spSkeletonClipping_clipTriangles(_clipper, vertices, verticesCount, triangles, trianglesCount, uvs, 2);
-					vertices = _clipper->clippedVertices->items;
-					verticesCount = _clipper->clippedVertices->size;
-					uvs = _clipper->clippedUVs->items;
-					triangles = _clipper->clippedTriangles->items;
-					trianglesCount = _clipper->clippedTriangles->size;
-				}
-
-				if (trianglesCount > 0) {
-					if (!self.twoColorTint) {
-						CCRenderBuffer buffer = [renderer enqueueTriangles:(trianglesCount / 3) andVertexes:verticesCount withState:self.renderState globalSortOrder:0];
-						for (int i = 0; i * 2 < verticesCount; ++i) {
-							CCVertex vertex;
-							vertex.position = GLKVector4Make(vertices[i * 2], vertices[i * 2 + 1], 0.0, 1.0);
-							vertex.color = GLKVector4Make(r, g, b, a);
-							vertex.texCoord1 = GLKVector2Make(uvs[i * 2], 1 - uvs[i * 2 + 1]);
-							CCRenderBufferSetVertex(buffer, i, CCVertexApplyTransform(vertex, transform));
-						}
-						for (int j = 0; j * 3 < trianglesCount; ++j) {
-							CCRenderBufferSetTriangle(buffer, j, triangles[j * 3], triangles[j * 3 + 1], triangles[j * 3 + 2]);
-						}
-					} else {
-						if (slot->darkColor) {
-							dr = slot->darkColor->r;
-							dg = slot->darkColor->g;
-							db = slot->darkColor->b;
-						} else {
-							dr = dg = db = 0;
-						}
-
-						spMeshPart meshPart;
-						spMesh_allocatePart(mesh, &meshPart, verticesCount / 2, trianglesCount, self.texture.name, srcBlend, dstBlend);
-
-						spVertex* verts = &meshPart.mesh->vertices[meshPart.startVertex];
-						unsigned short* indices = &meshPart.mesh->indices[meshPart.startIndex];
-						
-                        for (int i = 0; i * 2 < verticesCount; i++, verts++) {
-                            CCVertex vertex;
-                            vertex.position = GLKVector4Make(vertices[i * 2], vertices[i * 2 + 1], 0.0, 1.0);
-                            vertex = CCVertexApplyTransform(vertex, transform);
-                            verts->x = vertex.position.x;
-                            verts->y = vertex.position.y;
-                            verts->z = vertex.position.z;
-                            verts->w = vertex.position.w;
-                            verts->color = ((unsigned short)(r * 255))| ((unsigned short)(g * 255)) << 8 | ((unsigned short)(b * 255)) <<16 | ((unsigned short)(a * 255)) << 24;
-                            verts->color2 = ((unsigned short)(dr * 255)) | ((unsigned short)(dg * 255)) << 8 | ((unsigned short)(db * 255)) << 16 | ((unsigned short)(da * 255)) << 24;
-                            verts->u = uvs[i * 2];
-                            verts->v = 1 - uvs[i * 2 + 1];
-                        }
-
-						for (int j = 0; j < trianglesCount; j++, indices++) {
-							*indices = triangles[j];
-						}
-
-						[renderer enqueueBlock:^{
-							spTwoColorBatcher_add(batcher, meshPart);
-						} globalSortOrder:0 debugLabel: nil threadSafe: false];
-					}
-				}
-			}
-		}
-		spSkeletonClipping_clipEnd(_clipper, slot);
-	}
-	spSkeletonClipping_clipEnd2(_clipper);
-
-	if (self.twoColorTint) {
-		[renderer enqueueBlock:^{
-			spTwoColorBatcher_flush(batcher);
-		} globalSortOrder:0 debugLabel: nil threadSafe: false];
-	}
-
-	[_drawNode clear];
-	if (_debugSlots) {
-		// Slots.
-		CGPoint points[4];
-		for (int i = 0, n = _skeleton->slotsCount; i < n; i++) {
-			spSlot* slot = _skeleton->drawOrder[i];
-			if (!slot->bone->active) continue;
-			if (!slot->attachment || slot->attachment->type != SP_ATTACHMENT_REGION) continue;
-			spRegionAttachment* attachment = (spRegionAttachment*)slot->attachment;
-			spRegionAttachment_computeWorldVertices(attachment, slot->bone, _worldVertices, 0, 2);
-			points[0] = ccp(_worldVertices[0], _worldVertices[1]);
-			points[1] = ccp(_worldVertices[2], _worldVertices[3]);
-			points[2] = ccp(_worldVertices[4], _worldVertices[5]);
-			points[3] = ccp(_worldVertices[6], _worldVertices[7]);
-			[_drawNode drawPolyWithVerts:points count:4 fillColor:[CCColor clearColor] borderWidth:1 borderColor:[CCColor blueColor]];
-		}
-	}
-	if (_debugBones) {
-		// Bone lengths.
-		for (int i = 0, n = _skeleton->bonesCount; i < n; i++) {
-			spBone *bone = _skeleton->bones[i];
-			if (!bone->active) continue;
-			float x = bone->data->length * bone->a + bone->worldX;
-			float y = bone->data->length * bone->c + bone->worldY;
-			[_drawNode drawSegmentFrom:ccp(bone->worldX, bone->worldY) to: ccp(x, y)radius:2 color:[CCColor redColor]];
-		}
-
-		// Bone origins.
-		for (int i = 0, n = _skeleton->bonesCount; i < n; i++) {
-			spBone *bone = _skeleton->bones[i];
-			if (!bone->active) continue;
-			[_drawNode drawDot:ccp(bone->worldX, bone->worldY) radius:4 color:[CCColor greenColor]];
-			if (i == 0) [_drawNode drawDot:ccp(bone->worldX, bone->worldY) radius:4 color:[CCColor blueColor]];
-		}
-	}	
-}
-
-- (CCTexture*) getTextureForRegion:(spRegionAttachment*)attachment {
-	return (CCTexture*)((spAtlasRegion*)attachment->rendererObject)->page->rendererObject;
-}
-
-- (CCTexture*) getTextureForMesh:(spMeshAttachment*)attachment {
-	return (CCTexture*)((spAtlasRegion*)attachment->rendererObject)->page->rendererObject;
-}
-
-- (CGRect) boundingBox {
-	float minX = FLT_MAX, minY = FLT_MAX, maxX = FLT_MIN, maxY = FLT_MIN;
-	float scaleX = self.scaleX, scaleY = self.scaleY;
-	for (int i = 0; i < _skeleton->slotsCount; ++i) {
-		spSlot* slot = _skeleton->slots[i];
-		if (!slot->attachment) continue;
-		int verticesCount;
-		if (slot->attachment->type == SP_ATTACHMENT_REGION) {
-			spRegionAttachment* attachment = (spRegionAttachment*)slot->attachment;
-			spRegionAttachment_computeWorldVertices(attachment, slot->bone, _worldVertices, 0, 2);
-			verticesCount = 8;
-		} else if (slot->attachment->type == SP_ATTACHMENT_MESH) {
-			spMeshAttachment* mesh = (spMeshAttachment*)slot->attachment;
-			spVertexAttachment_computeWorldVertices(SUPER(mesh), slot, 0, mesh->super.worldVerticesLength, _worldVertices, 0, 2);
-
-			verticesCount = mesh->super.worldVerticesLength;
-		} else
-			continue;
-		for (int ii = 0; ii < verticesCount; ii += 2) {
-			float x = _worldVertices[ii] * scaleX, y = _worldVertices[ii + 1] * scaleY;
-			minX = fmin(minX, x);
-			minY = fmin(minY, y);
-			maxX = fmax(maxX, x);
-			maxY = fmax(maxY, y);
-		}
-	}
-	minX = self.position.x + minX;
-	minY = self.position.y + minY;
-	maxX = self.position.x + maxX;
-	maxY = self.position.y + maxY;
-	return CGRectMake(minX, minY, maxX - minX, maxY - minY);
-}
-
-// --- Convenience methods for Skeleton_* functions.
-
-- (void) updateWorldTransform {
-	spSkeleton_updateWorldTransform(_skeleton);
-}
-
-- (void) setToSetupPose {
-	spSkeleton_setToSetupPose(_skeleton);
-}
-- (void) setBonesToSetupPose {
-	spSkeleton_setBonesToSetupPose(_skeleton);
-}
-- (void) setSlotsToSetupPose {
-	spSkeleton_setSlotsToSetupPose(_skeleton);
-}
-
-- (spBone*) findBone:(NSString*)boneName {
-	return spSkeleton_findBone(_skeleton, [boneName UTF8String]);
-}
-
-- (spSlot*) findSlot:(NSString*)slotName {
-	return spSkeleton_findSlot(_skeleton, [slotName UTF8String]);
-}
-
-- (bool) setSkin:(NSString*)skinName {
-	return (bool)spSkeleton_setSkinByName(_skeleton, skinName ? [skinName UTF8String] : 0);
-}
-
-- (spAttachment*) getAttachment:(NSString*)slotName attachmentName:(NSString*)attachmentName {
-	return spSkeleton_getAttachmentForSlotName(_skeleton, [slotName UTF8String], [attachmentName UTF8String]);
-}
-- (bool) setAttachment:(NSString*)slotName attachmentName:(NSString*)attachmentName {
-	return (bool)spSkeleton_setAttachment(_skeleton, [slotName UTF8String], [attachmentName UTF8String]);
-}
-
-// --- CCBlendProtocol
-
-- (void) setBlendFunc:(ccBlendFunc)func {
-	self.blendFunc = func;
-}
-
-- (ccBlendFunc) blendFunc {
-	return _blendFunc;
-}
-
-- (void) setOpacityModifyRGB:(BOOL)value {
-	_premultipliedAlpha = value;
-}
-
-- (BOOL) doesOpacityModifyRGB {
-	return _premultipliedAlpha;
-}
-
-@end

+ 0 - 33
spine-cocos2d-objc/src/spine/spine-cocos2d-objc.h

@@ -1,33 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import <spine/spine.h>
-#import "cocos2d.h"
-#import <spine/SkeletonRenderer.h>
-#import <spine/SkeletonAnimation.h>

+ 0 - 47
spine-cocos2d-objc/src/spine/spine-cocos2d-objc.m

@@ -1,47 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated July 28, 2023. Replaces all prior versions.
- *
- * Copyright (c) 2013-2023, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software or
- * otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#import <spine/spine-cocos2d-objc.h>
-#import <spine/extension.h>
-
-void _spAtlasPage_createTexture (spAtlasPage* self, const char* path) {
-	CCTexture* texture = [[CCTexture textureWithFile:@(path)] retain];
-	self->rendererObject = texture;
-	CGSize size = texture.contentSizeInPixels;
-	self->width = size.width;
-	self->height = size.height;
-}
-
-void _spAtlasPage_disposeTexture (spAtlasPage* self) {
-	[(CCTexture*)self->rendererObject release];
-}
-
-char* _spUtil_readFile (const char* path, int* length) {
-	return _spReadFile([[[CCFileUtils sharedFileUtils] fullPathForFilename:@(path)] UTF8String], length);
-}

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio