diff --git a/.gitignore b/.gitignore
index c9761c797..48c4c8354 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,29 +12,30 @@ target
*.user
.DS_Store
+.idea/
+build/
+
spine-c/Debug/*
spine-cpp/Debug/*
spine-sfml/Debug/*
spine-sfml/SFML
+spine-sfml/dependencies
spine-libgdx/spine-libgdx/bin/*
spine-libgdx/spine-libgdx-tests/bin/*
spine-libgdx/spine-skeletonviewer/bin/*
-spine-cocos2dx/2/cocos2dx/
-!spine-cocos2dx/2/cocos2dx/Place cocos2dx here.txt
-spine-cocos2dx/2/example/proj.win32/Debug
-spine-cocos2dx/3/cocos2dx/
-!spine-cocos2dx/3/cocos2dx/Place cocos2dx here.txt
-spine-cocos2dx/3/example/proj.win32/Debug
-xcuserdata
+spine-cocos2dx/dependencies
+spine-cocos2dx/example/cocos2dx.zip
+spine-cocos2dx/example/__MACOSX
+spine-cocos2dx/example/cocos2d
+spine-cocos2dx/example/proj.win32/spine-cocos2d-x.VC.opendb
+xcuserdata/
-spine-cocos2d-iphone/2/cocos2d/*
-!spine-cocos2d-iphone/2/cocos2d/Place cocos2d here.txt
-spine-cocos2d-iphone/3/cocos2d/*
-!spine-cocos2d-iphone/3/cocos2d/Place cocos2d here.txt
+spine-cocos2d-iphone/cocos2d/*
+spine-cocos2d-iphone/spine-cocos2d-iphone-ios.xcodeproj/project.xcworkspace/xcshareddata/
spine-csharp/bin
spine-csharp/obj
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000000000..cd2bf60f7
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 2.8.9)
+project(spine)
+
+set(CMAKE_INSTALL_PREFIX "./")
+set(CMAKE_VERBOSE_MAKEFILE ON)
+set(SPINE_SFML FALSE CACHE BOOL FALSE)
+set(SPINE_COCOS2D_OBJC FALSE CACHE BOOL FALSE)
+set(SPINE_COCOS2D_X FALSE CACHE BOOL FALSE)
+
+if((${SPINE_SFML}) OR (${CMAKE_CURRENT_BINARY_DIR} MATCHES "spine-sfml"))
+ add_subdirectory(spine-c)
+ add_subdirectory(spine-sfml)
+endif()
+
+if((${SPINE_COCOS2D_OBJC}) OR (${CMAKE_CURRENT_BINARY_DIR} MATCHES "spine-cocos2d-objc"))
+ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ add_subdirectory(spine-cocos2d-objc)
+ endif()
+endif()
+
+if((${SPINE_COCOS2D_X}) OR (${CMAKE_CURRENT_BINARY_DIR} MATCHES "spine-cocos2dx"))
+ add_subdirectory(spine-cocos2dx)
+endif()
\ No newline at end of file
diff --git a/spine-as3/README.md b/spine-as3/README.md
index 56af9c374..33b21559b 100644
--- a/spine-as3/README.md
+++ b/spine-as3/README.md
@@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version
-spine-as3 works with data exported from Spine 3.1.08. Updating spine-as3 to [v3.2](https://trello.com/c/k7KtGdPW/76-update-runtimes-to-support-v3-2-shearing) is in progress.
+spine-as3 works with data exported from Spine 3.1.08. Updating spine-as3 to [v3.2](https://github.com/EsotericSoftware/spine-runtimes/issues/586) and [v3.3](https://github.com/EsotericSoftware/spine-runtimes/issues/613) is in progress.
spine-as3 supports all Spine features, including meshes. If using the `spine.flash` classes for rendering, meshes are not supported.
diff --git a/spine-c/CMakeLists.txt b/spine-c/CMakeLists.txt
new file mode 100644
index 000000000..6c42403a8
--- /dev/null
+++ b/spine-c/CMakeLists.txt
@@ -0,0 +1,9 @@
+include_directories(include)
+file(GLOB INCLUDES "include/**/*.h")
+file(GLOB SOURCES "src/**/*.c" "src/**/*.cpp")
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=c89 -pedantic")
+add_library(spine-c STATIC ${SOURCES} ${INCLUDES})
+target_include_directories(spine-c PUBLIC include)
+install(TARGETS spine-c DESTINATION dist/lib)
+install(FILES ${INCLUDES} DESTINATION dist/include)
\ No newline at end of file
diff --git a/spine-c/Makefile b/spine-c/Makefile
deleted file mode 100644
index a277e035b..000000000
--- a/spine-c/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-LIBS = -lm
-CFLAGS = -Wall -I./include/
-
-SRC=$(wildcard src/spine/*.c)
-OBJ_FILES := $(addprefix obj/,$(notdir $(SRC:.c=.o)))
-STATIC_OBJ_FILES := $(addprefix obj/,$(notdir $(SRC:.c=-s.o)))
-DEBUG_OBJ_FILES := $(addprefix obj/,$(notdir $(SRC:.c=-d.o)))
-
-default:
- @echo
- @echo "- Options are (debug|release)-dynamic and release-static."
- @echo "- Ex: release-static"
- @echo
-
-release-dynamic: $(OBJ_FILES)
- @mkdir -p dist
- gcc -s -shared -Wl,-soname,libspine.so -o dist/libspine.so $(OBJ_FILES)
- @echo
- @echo - /dist/libspine.so
- @echo
-
-debug-dynamic: $(DEBUG_OBJ_FILES)
- @mkdir -p dist
- gcc -g3 -shared -Wl,-soname,libspine.so -o dist/libspine-d.so $(DEBUG_OBJ_FILES)
- @echo
- @echo - /dist/libspine-d.so
- @echo
-
-obj/%.o: src/spine/%.c
- @mkdir -p obj
- gcc -fPIC -c -o $@ $< $(CFLAGS) $(LIBS)
-
-obj/%-d.o: src/spine/%.c
- @mkdir -p obj
- gcc -fPIC -c -o $@ $< $(CFLAGS)
-
-release-static: $(STATIC_OBJ_FILES)
- @mkdir -p dist
- ar rcs dist/libspine-s.a $(STATIC_OBJ_FILES)
- @echo
- @echo - /dist/libspine-s.a
- @echo
-
-obj/%-s.o: src/spine/%.c
- @mkdir -p obj
- gcc -c -o $@ $< $(CFLAGS) $(LIBS)
-
-clean:
- rm -rf obj/*
- rm -rf dist/*
diff --git a/spine-c/README.md b/spine-c/README.md
index e27415eee..c1bcbfb1a 100644
--- a/spine-c/README.md
+++ b/spine-c/README.md
@@ -12,7 +12,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version
-spine-c works with data exported from Spine 3.1.08. Updating spine-c to [v3.2](https://trello.com/c/k7KtGdPW/76-update-runtimes-to-support-v3-2-shearing) is in progress.
+spine-c works with data exported from Spine version 3.2.01.
spine-c supports all Spine features.
diff --git a/spine-c/data/spineboy.json b/spine-c/data/spineboy.json
deleted file mode 100644
index 7b4497712..000000000
--- a/spine-c/data/spineboy.json
+++ /dev/null
@@ -1,2419 +0,0 @@
-{
-"bones": [
- { "name": "hip", "y": 247.47 },
- { "name": "front_thigh", "parent": "hip", "length": 74.8, "x": -17.45, "y": -11.64, "rotation": -95.51, "color": "00ff04ff" },
- { "name": "rear_thigh", "parent": "hip", "length": 85.71, "x": 8.91, "y": -5.62, "rotation": -72.54, "color": "ff000dff" },
- { "name": "torso", "parent": "hip", "length": 127.55, "x": -1.61, "y": 4.9, "rotation": 103.82, "color": "e0da19ff" },
- {
- "name": "front_shin",
- "parent": "front_thigh",
- "length": 128.76,
- "x": 78.69,
- "y": 1.6,
- "rotation": -2.21,
- "inheritScale": false,
- "color": "00ff04ff"
- },
- { "name": "front_upper_arm", "parent": "torso", "length": 69.45, "x": 103.75, "y": 19.32, "rotation": 168.37, "color": "00ff04ff" },
- { "name": "neck", "parent": "torso", "length": 25.45, "x": 127.49, "y": -0.3, "rotation": -31.53, "color": "e0da19ff" },
- { "name": "rear_shin", "parent": "rear_thigh", "length": 121.87, "x": 86.1, "y": -1.32, "rotation": -19.83, "color": "ff000dff" },
- { "name": "rear_upper_arm", "parent": "torso", "length": 51.93, "x": 92.35, "y": -19.22, "rotation": -169.55, "color": "ff000dff" },
- {
- "name": "front_bracer",
- "parent": "front_upper_arm",
- "length": 40.57,
- "x": 68.8,
- "y": -0.68,
- "rotation": 18.29,
- "color": "00ff04ff"
- },
- { "name": "front_foot", "parent": "front_shin", "length": 91.34, "x": 128.75, "y": -0.33, "rotation": 77.9, "color": "00ff04ff" },
- { "name": "head", "parent": "neck", "length": 263.57, "x": 27.66, "y": -0.25, "rotation": 23.18, "color": "e0da19ff" },
- { "name": "rear_bracer", "parent": "rear_upper_arm", "length": 34.55, "x": 51.35, "rotation": 23.15, "color": "ff000dff" },
- { "name": "rear_foot", "parent": "rear_shin", "length": 82.57, "x": 121.45, "y": -0.75, "rotation": 69.3, "color": "ff000dff" },
- { "name": "front_fist", "parent": "front_bracer", "length": 65.38, "x": 40.56, "y": 0.19, "rotation": 12.43, "color": "00ff04ff" },
- { "name": "gun", "parent": "rear_bracer", "length": 43.1, "x": 34.42, "y": -0.45, "rotation": 5.34, "color": "ff000dff" },
- { "name": "gunTip", "parent": "gun", "x": 201.04, "y": 52.13, "rotation": 6.83, "color": "ff000dff" }
-],
-"slots": [
- { "name": "rear_upper_arm", "bone": "rear_upper_arm", "attachment": "rear_upper_arm" },
- { "name": "rear_bracer", "bone": "rear_bracer", "attachment": "rear_bracer" },
- { "name": "gun", "bone": "gun", "attachment": "gun" },
- { "name": "rear_foot", "bone": "rear_foot", "attachment": "rear_foot" },
- { "name": "rear_thigh", "bone": "rear_thigh", "attachment": "rear_thigh" },
- { "name": "rear_shin", "bone": "rear_shin", "attachment": "rear_shin" },
- { "name": "neck", "bone": "neck", "attachment": "neck" },
- { "name": "torso", "bone": "torso", "attachment": "torso" },
- { "name": "front_upper_arm", "bone": "front_upper_arm", "attachment": "front_upper_arm" },
- { "name": "head", "bone": "head", "attachment": "head" },
- { "name": "eye", "bone": "head", "attachment": "eye_indifferent" },
- { "name": "front_thigh", "bone": "front_thigh", "attachment": "front_thigh" },
- { "name": "front_foot", "bone": "front_foot", "attachment": "front_foot" },
- { "name": "front_shin", "bone": "front_shin", "attachment": "front_shin" },
- { "name": "mouth", "bone": "head", "attachment": "mouth_smile" },
- { "name": "goggles", "bone": "head", "attachment": "goggles" },
- { "name": "front_bracer", "bone": "front_bracer", "attachment": "front_bracer" },
- { "name": "front_fist", "bone": "front_fist", "attachment": "front_fist_closed" },
- { "name": "muzzle", "bone": "gunTip", "additive": true },
- { "name": "head-bb", "bone": "head" }
-],
-"skins": {
- "default": {
- "eye": {
- "eye_indifferent": { "x": 85.72, "y": -28.18, "rotation": -70.63, "width": 93, "height": 89 },
- "eye_surprised": { "x": 85.72, "y": -28.18, "rotation": -70.63, "width": 93, "height": 89 }
- },
- "front_bracer": {
- "front_bracer": { "x": 12.03, "y": -1.67, "rotation": 79.59, "width": 58, "height": 80 }
- },
- "front_fist": {
- "front_fist_closed": { "x": 35.49, "y": 6, "rotation": 67.16, "width": 75, "height": 82 },
- "front_fist_open": { "x": 39.56, "y": 7.76, "rotation": 67.16, "width": 86, "height": 87 }
- },
- "front_foot": {
- "front_foot": { "x": 29.51, "y": 7.83, "rotation": 18.68, "width": 126, "height": 69 },
- "front_foot_bend1": { "x": 29.51, "y": 7.83, "rotation": 18.68, "width": 128, "height": 70 },
- "front_foot_bend2": { "x": 16.07, "y": 13.83, "rotation": 18.68, "width": 108, "height": 93 }
- },
- "front_shin": {
- "front_shin": { "x": 55.11, "y": -3.54, "rotation": 96.59, "width": 82, "height": 184 }
- },
- "front_thigh": {
- "front_thigh": { "x": 42.47, "y": 4.44, "rotation": 84.86, "width": 48, "height": 112 }
- },
- "front_upper_arm": {
- "front_upper_arm": { "x": 28.3, "y": 7.37, "rotation": 97.89, "width": 54, "height": 97 }
- },
- "goggles": {
- "goggles": { "x": 97.07, "y": 6.54, "rotation": -70.63, "width": 261, "height": 166 }
- },
- "gun": {
- "gun": { "x": 77.3, "y": 16.4, "rotation": 60.82, "width": 210, "height": 203 }
- },
- "head": {
- "head": { "x": 128.95, "y": 0.29, "rotation": -70.63, "width": 271, "height": 298 }
- },
- "head-bb": {
- "head": {
- "type": "boundingbox",
- "vertices": [ -19.143097, -70.30209, 40.80313, -118.074234, 257.77155, -115.61827, 285.16193, 57.18005, 120.77191, 164.95125, -5.067627, 76.94907 ]
- }
- },
- "mouth": {
- "mouth_grind": { "x": 23.68, "y": -32.23, "rotation": -70.63, "width": 93, "height": 59 },
- "mouth_oooo": { "x": 23.68, "y": -32.23, "rotation": -70.63, "width": 93, "height": 59 },
- "mouth_smile": { "x": 23.68, "y": -32.23, "rotation": -70.63, "width": 93, "height": 59 }
- },
- "muzzle": {
- "muzzle": { "x": 18.25, "y": 5.44, "rotation": 0.15, "width": 462, "height": 400 }
- },
- "neck": {
- "neck": { "x": 9.76, "y": -3.01, "rotation": -55.22, "width": 36, "height": 41 }
- },
- "rear_bracer": {
- "rear_bracer": { "x": 11.15, "y": -2.2, "rotation": 66.17, "width": 56, "height": 72 }
- },
- "rear_foot": {
- "rear_foot": { "x": 31.51, "y": 3.57, "rotation": 23.07, "width": 113, "height": 60 },
- "rear_foot_bend1": { "x": 34.39, "y": 4.8, "rotation": 23.07, "width": 117, "height": 66 },
- "rear_foot_bend2": { "x": 30.38, "y": 12.62, "rotation": 23.07, "width": 103, "height": 83 }
- },
- "rear_shin": {
- "rear_shin": { "x": 58.29, "y": -2.75, "rotation": 92.37, "width": 75, "height": 178 }
- },
- "rear_thigh": {
- "rear_thigh": { "x": 33.1, "y": -4.11, "rotation": 72.54, "width": 65, "height": 104 }
- },
- "rear_upper_arm": {
- "rear_upper_arm": { "x": 21.12, "y": 4.08, "rotation": 89.32, "width": 47, "height": 87 }
- },
- "torso": {
- "torso": { "x": 63.61, "y": 7.12, "rotation": -94.53, "width": 98, "height": 180 }
- }
- }
-},
-"events": {
- "footstep": {},
- "headAttach": { "int": 3, "float": 4 },
- "headBehind": { "int": 5, "float": 6, "string": "setup" },
- "headPop": { "int": 1, "float": 2 }
-},
-"animations": {
- "death": {
- "slots": {
- "eye": {
- "attachment": [
- { "time": 0, "name": "eye_surprised" },
- { "time": 0.4666, "name": "eye_indifferent" },
- { "time": 2.2333, "name": "eye_surprised" },
- { "time": 4.5333, "name": "eye_indifferent" }
- ]
- },
- "front_fist": {
- "attachment": [
- { "time": 0, "name": "front_fist_open" }
- ]
- },
- "mouth": {
- "attachment": [
- { "time": 0, "name": "mouth_oooo" },
- { "time": 2.2333, "name": "mouth_grind" },
- { "time": 4.5333, "name": "mouth_oooo" }
- ]
- }
- },
- "bones": {
- "head": {
- "rotate": [
- { "time": 0, "angle": -2.82 },
- { "time": 0.1333, "angle": -28.74 },
- { "time": 0.2333, "angle": 11.42 },
- { "time": 0.3333, "angle": -50.24 },
- { "time": 0.4, "angle": -72.66, "curve": "stepped" },
- { "time": 0.4333, "angle": -72.66 },
- { "time": 0.5, "angle": -20.24 },
- { "time": 0.5666, "angle": -85.28, "curve": "stepped" },
- { "time": 0.9333, "angle": -85.28, "curve": "stepped" },
- { "time": 2.2333, "angle": -85.28 },
- { "time": 2.5, "angle": -51.96, "curve": "stepped" },
- { "time": 4.5333, "angle": -51.96 },
- { "time": 4.6666, "angle": -85.28 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "neck": {
- "rotate": [
- { "time": 0, "angle": -2.82 },
- { "time": 0.1333, "angle": 12.35 },
- { "time": 0.2333, "angle": 29.89 },
- { "time": 0.3, "angle": 70.36 },
- { "time": 0.4, "angle": -10.22, "curve": "stepped" },
- { "time": 0.4333, "angle": -10.22 },
- { "time": 0.5, "angle": 2.92 },
- { "time": 0.5666, "angle": 47.94, "curve": "stepped" },
- { "time": 2.2333, "angle": 47.94 },
- { "time": 2.5, "angle": 18.5, "curve": "stepped" },
- { "time": 4.5333, "angle": 18.5 },
- { "time": 4.6666, "angle": 47.94 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "torso": {
- "rotate": [
- { "time": 0, "angle": -8.61 },
- { "time": 0.1333, "angle": 28.19 },
- { "time": 0.2666, "angle": -280.19 },
- { "time": 0.4, "angle": -237.22, "curve": "stepped" },
- { "time": 0.4333, "angle": -237.22 },
- { "time": 0.5, "angle": 76.03, "curve": "stepped" },
- { "time": 0.8, "angle": 76.03, "curve": "stepped" },
- { "time": 0.9333, "angle": 76.03, "curve": "stepped" },
- { "time": 2.2333, "angle": 76.03 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 2.2333, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_upper_arm": {
- "rotate": [
- { "time": 0, "angle": -38.85 },
- { "time": 0.1333, "angle": -299.58 },
- { "time": 0.2666, "angle": -244.74 },
- { "time": 0.4, "angle": -292.35 },
- { "time": 0.4333, "angle": -315.84 },
- { "time": 0.5, "angle": -347.94 },
- { "time": 0.7, "angle": -347.33, "curve": "stepped" },
- { "time": 2.2333, "angle": -347.33 },
- { "time": 2.7, "angle": -290.68 },
- { "time": 2.7666, "angle": -285.1 },
- { "time": 4.6666, "angle": -290.68 },
- { "time": 4.8, "angle": 8.61 },
- { "time": 4.8666, "angle": 10.94 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_upper_arm": {
- "rotate": [
- { "time": 0, "angle": -44.69 },
- { "time": 0.1333, "angle": 112.26 },
- { "time": 0.2666, "angle": 129.07 },
- { "time": 0.4, "angle": 134.94, "curve": "stepped" },
- { "time": 0.4333, "angle": 134.94 },
- { "time": 0.5666, "angle": 172.6, "curve": "stepped" },
- { "time": 0.9333, "angle": 172.6, "curve": "stepped" },
- { "time": 2.2333, "angle": 172.6 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_bracer": {
- "rotate": [
- { "time": 0, "angle": 21.88 },
- { "time": 0.1333, "angle": 11.48 },
- { "time": 0.2666, "angle": -18.81 },
- { "time": 0.4, "angle": -18.92 },
- { "time": 0.4333, "angle": -18.28 },
- { "time": 0.5, "angle": 60.61 },
- { "time": 0.7, "angle": -18.87, "curve": "stepped" },
- { "time": 2.2333, "angle": -18.87 },
- { "time": 2.7, "angle": -1.95, "curve": "stepped" },
- { "time": 4.6666, "angle": -1.95 },
- { "time": 4.8, "angle": 34.55 },
- { "time": 4.9333, "angle": -18.74 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_fist": {
- "rotate": [
- { "time": 0, "angle": -2.33 },
- { "time": 0.2666, "angle": 26.34 },
- { "time": 0.7, "angle": -6.07, "curve": "stepped" },
- { "time": 2.2333, "angle": -6.07 },
- { "time": 2.7, "angle": 5.72, "curve": "stepped" },
- { "time": 4.6666, "angle": 5.72 },
- { "time": 4.8666, "angle": -6.52 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_bracer": {
- "rotate": [
- { "time": 0, "angle": 10.36 },
- { "time": 0.1333, "angle": -23.12 },
- { "time": 0.2666, "angle": -23.11 },
- { "time": 0.4, "angle": -23.16, "curve": "stepped" },
- { "time": 0.4333, "angle": -23.16 },
- { "time": 0.5666, "angle": -23.2, "curve": "stepped" },
- { "time": 0.9333, "angle": -23.2, "curve": "stepped" },
- { "time": 2.2333, "angle": -23.2 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "gun": {
- "rotate": [
- { "time": 0, "angle": -2.78 },
- { "time": 0.1333, "angle": -24.58 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "hip": {
- "rotate": [
- { "time": 0, "angle": 0, "curve": "stepped" },
- { "time": 0.9333, "angle": 0, "curve": "stepped" },
- { "time": 2.2333, "angle": 0 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 },
- { "time": 0.2, "x": 50.34, "y": 151.73 },
- { "time": 0.4, "x": 5.16, "y": -119.64, "curve": "stepped" },
- { "time": 0.4333, "x": 5.16, "y": -119.64 },
- { "time": 0.5, "x": 50.34, "y": -205.18, "curve": "stepped" },
- { "time": 0.8, "x": 50.34, "y": -205.18, "curve": "stepped" },
- { "time": 0.9333, "x": 50.34, "y": -205.18, "curve": "stepped" },
- { "time": 2.2333, "x": 50.34, "y": -205.18 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_thigh": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.1333, "angle": 8.47 },
- { "time": 0.2666, "angle": 115.95 },
- { "time": 0.4, "angle": 180.66, "curve": "stepped" },
- { "time": 0.4333, "angle": 180.66 },
- { "time": 0.5, "angle": 155.22 },
- { "time": 0.6, "angle": 97.73 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_shin": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.1333, "angle": -27.37 },
- { "time": 0.2666, "angle": -35.1 },
- { "time": 0.4, "angle": -37.72, "curve": "stepped" },
- { "time": 0.4333, "angle": -37.72 },
- { "time": 0.5, "angle": -40.06 },
- { "time": 0.6, "angle": 2.76 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_thigh": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.1333, "angle": 70.45 },
- { "time": 0.2666, "angle": 155.34 },
- { "time": 0.4, "angle": 214.31, "curve": "stepped" },
- { "time": 0.4333, "angle": 214.31 },
- { "time": 0.5, "angle": 169.67 },
- { "time": 0.8, "angle": 83.27 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_shin": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.1333, "angle": 18.93 },
- { "time": 0.2666, "angle": -21.04 },
- { "time": 0.4, "angle": -29.93, "curve": "stepped" },
- { "time": 0.4333, "angle": -29.93 },
- { "time": 0.5, "angle": -16.79 },
- { "time": 0.8, "angle": 7.77 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_foot": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.1333, "angle": -11.62 },
- { "time": 0.4, "angle": -45.59, "curve": "stepped" },
- { "time": 0.4333, "angle": -45.59 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_foot": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.4, "angle": -48.75, "curve": "stepped" },
- { "time": 0.4333, "angle": -48.75 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "gunTip": {
- "rotate": [
- { "time": 0, "angle": 0 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- }
- }
- },
- "hit": {
- "slots": {
- "front_fist": {
- "attachment": [
- { "time": 0.1666, "name": "front_fist_open" }
- ]
- },
- "mouth": {
- "attachment": [
- { "time": 0, "name": "mouth_grind" },
- { "time": 0.3333, "name": "mouth_smile" }
- ]
- }
- },
- "bones": {
- "torso": {
- "rotate": [
- { "time": 0, "angle": 56.42 },
- { "time": 0.3333, "angle": 8.89 }
- ]
- },
- "neck": {
- "rotate": [
- { "time": 0, "angle": 35.38 },
- { "time": 0.2333, "angle": 24.94 }
- ]
- },
- "head": {
- "rotate": [
- { "time": 0, "angle": 10.21 },
- { "time": 0.3333, "angle": -41.3 }
- ]
- },
- "front_upper_arm": {
- "rotate": [
- {
- "time": 0,
- "angle": -310.92,
- "curve": [ 0.38, 0.53, 0.744, 1 ]
- },
- { "time": 0.3333, "angle": -112.59 }
- ],
- "translate": [
- { "time": 0, "x": 7.23, "y": -13.13 }
- ]
- },
- "front_bracer": {
- "rotate": [
- { "time": 0, "angle": 36.99 },
- { "time": 0.3333, "angle": -28.64 }
- ]
- },
- "front_fist": {
- "rotate": [
- { "time": 0, "angle": 13.59 },
- { "time": 0.3333, "angle": 7.55 }
- ]
- },
- "rear_upper_arm": {
- "rotate": [
- {
- "time": 0,
- "angle": 271.02,
- "curve": [ 0.342, 0.36, 0.68, 0.71 ]
- },
- { "time": 0.3333, "angle": -15.84 }
- ],
- "translate": [
- { "time": 0.3333, "x": -0.09, "y": -0.46 }
- ]
- },
- "rear_bracer": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.3333, "angle": 40.03 }
- ]
- },
- "gun": {
- "rotate": [
- { "time": 0, "angle": 14.98 },
- { "time": 0.3333, "angle": 39.75 }
- ]
- },
- "hip": {
- "translate": [
- { "time": 0, "x": -75.54, "y": -78.03 },
- { "time": 0.2333, "x": -36.48, "y": 12.42 },
- { "time": 0.3333, "x": -36.48, "y": -2.99 }
- ]
- },
- "front_thigh": {
- "rotate": [
- {
- "time": 0,
- "angle": 90.94,
- "curve": [ 0.227, 0.26, 0.432, 1 ]
- },
- { "time": 0.3333, "angle": 32.02 }
- ],
- "translate": [
- { "time": 0, "x": 7.21, "y": -4 }
- ]
- },
- "rear_thigh": {
- "rotate": [
- {
- "time": 0,
- "angle": 40.51,
- "curve": [ 0.295, 0.3, 0.59, 0.99 ]
- },
- { "time": 0.3333, "angle": 90.76 }
- ],
- "translate": [
- { "time": 0, "x": -1.96, "y": -0.32 }
- ]
- },
- "front_shin": {
- "rotate": [
- { "time": 0, "angle": -96.62 },
- { "time": 0.3333, "angle": -15.13 }
- ]
- },
- "rear_shin": {
- "rotate": [
- { "time": 0, "angle": 7.99 },
- { "time": 0.3333, "angle": -67.54 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_foot": {
- "rotate": [
- { "time": 0, "angle": 5.4 },
- { "time": 0.3333, "angle": -16.26 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_foot": {
- "rotate": [
- { "time": 0, "angle": 2.67 },
- { "time": 0.3333, "angle": -10.31 }
- ]
- }
- }
- },
- "idle": {
- "slots": {
- "front_fist": {
- "attachment": [
- { "time": 0, "name": "front_fist_open" },
- { "time": 1.6666, "name": "front_fist_open" }
- ]
- },
- "mouth": {
- "attachment": [
- { "time": 0, "name": "mouth_smile" },
- { "time": 1.6666, "name": "mouth_smile" }
- ]
- }
- },
- "bones": {
- "torso": {
- "rotate": [
- {
- "time": 0,
- "angle": -5.61,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- {
- "time": 0.8333,
- "angle": -9.65,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- { "time": 1.6666, "angle": -5.61 }
- ],
- "translate": [
- { "time": 0, "x": -6.49, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "front_upper_arm": {
- "rotate": [
- {
- "time": 0,
- "angle": -59.85,
- "curve": [ 0.492, 0, 0.75, 1 ]
- },
- {
- "time": 0.6666,
- "angle": -54.31,
- "curve": [ 0.324, 0.11, 0.75, 1 ]
- },
- { "time": 1.6666, "angle": -59.85 }
- ],
- "translate": [
- { "time": 0, "x": -7.12, "y": -8.23 },
- { "time": 0.6666, "x": -6.32, "y": -8.3 },
- { "time": 1.6666, "x": -7.12, "y": -8.23 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "rear_upper_arm": {
- "rotate": [
- {
- "time": 0,
- "angle": 62.41,
- "curve": [ 0.504, 0.02, 0.75, 1 ]
- },
- {
- "time": 0.7333,
- "angle": 43.83,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- { "time": 1.6666, "angle": 62.41 }
- ],
- "translate": [
- { "time": 0, "x": -1.83, "y": -16.78 },
- { "time": 0.6666, "x": 0.34, "y": -15.23 },
- { "time": 1.6666, "x": -1.83, "y": -16.78 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "neck": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.6666, "angle": 2.39 },
- { "time": 1.6666, "angle": 0 }
- ],
- "translate": [
- { "time": 0, "x": -1.88, "y": -4.76, "curve": "stepped" },
- { "time": 1.6666, "x": -1.88, "y": -4.76 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "front_thigh": {
- "rotate": [
- {
- "time": 0,
- "angle": 0.64,
- "curve": [ 0.235, 0, 0.558, 0.99 ]
- },
- {
- "time": 0.6666,
- "angle": -4.34,
- "curve": [ 0.594, 0, 0.653, 1 ]
- },
- { "time": 1.6666, "angle": 0.64 }
- ],
- "translate": [
- { "time": 0, "x": -13.39, "y": 6.69, "curve": "stepped" },
- { "time": 1.6666, "x": -13.39, "y": 6.69 }
- ],
- "scale": [
- {
- "time": 0,
- "x": 0.896,
- "y": 1,
- "curve": [ 0.235, 0, 0.558, 0.99 ]
- },
- {
- "time": 0.6666,
- "x": 0.825,
- "y": 1,
- "curve": [ 0.594, 0, 0.653, 1 ]
- },
- { "time": 1.6666, "x": 0.896, "y": 1 }
- ]
- },
- "front_shin": {
- "rotate": [
- { "time": 0, "angle": -19.28, "curve": "stepped" },
- { "time": 1.6666, "angle": -19.28 }
- ],
- "scale": [
- {
- "time": 0,
- "x": 1,
- "y": 1,
- "curve": [ 0.235, 0, 0.558, 0.99 ]
- },
- {
- "time": 0.6666,
- "x": 0.994,
- "y": 1,
- "curve": [ 0.594, 0, 0.653, 1 ]
- },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "rear_thigh": {
- "rotate": [
- {
- "time": 0,
- "angle": 30.5,
- "curve": [ 0.235, 0, 0.558, 0.99 ]
- },
- {
- "time": 0.6666,
- "angle": 40.15,
- "curve": [ 0.594, 0, 0.653, 1 ]
- },
- { "time": 1.6666, "angle": 30.5 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "rear_shin": {
- "rotate": [
- {
- "time": 0,
- "angle": -23.83,
- "curve": [ 0.235, 0, 0.558, 0.99 ]
- },
- {
- "time": 0.6666,
- "angle": -43.77,
- "curve": [ 0.594, 0, 0.653, 1 ]
- },
- { "time": 1.6666, "angle": -23.83 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "front_foot": {
- "rotate": [
- {
- "time": 0,
- "angle": 5.13,
- "curve": [ 0.235, 0, 0.558, 0.99 ]
- },
- {
- "time": 0.6666,
- "angle": 10.04,
- "curve": [ 0.594, 0, 0.653, 1 ]
- },
- { "time": 1.6666, "angle": 5.13 }
- ],
- "scale": [
- { "time": 0, "x": 0.755, "y": 1.309, "curve": "stepped" },
- { "time": 1.6666, "x": 0.755, "y": 1.309 }
- ]
- },
- "hip": {
- "translate": [
- {
- "time": 0,
- "x": -6.63,
- "y": -23.01,
- "curve": [ 0.235, 0, 0.558, 0.99 ]
- },
- {
- "time": 0.6666,
- "x": 6.27,
- "y": -35,
- "curve": [ 0.594, 0, 0.653, 1 ]
- },
- { "time": 1.6666, "x": -6.63, "y": -23.01 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "rear_foot": {
- "rotate": [
- {
- "time": 0,
- "angle": -7.34,
- "curve": [ 0.235, 0, 0.558, 0.99 ]
- },
- {
- "time": 0.6666,
- "angle": 3.85,
- "curve": [ 0.594, 0, 0.653, 1 ]
- },
- { "time": 1.6666, "angle": -7.34 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "rear_bracer": {
- "rotate": [
- {
- "time": 0,
- "angle": -17.16,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- {
- "time": 0.6666,
- "angle": 12.52,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- { "time": 1.6666, "angle": -17.16 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "head": {
- "rotate": [
- {
- "time": 0,
- "angle": -5.51,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- {
- "time": 0.6666,
- "angle": -3.12,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- { "time": 1.6666, "angle": -5.51 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "front_bracer": {
- "rotate": [
- {
- "time": 0,
- "angle": 45.46,
- "curve": [ 0.492, 0, 0.75, 1 ]
- },
- {
- "time": 0.6666,
- "angle": 41.33,
- "curve": [ 0.32, 0.1, 0.736, 0.91 ]
- },
- { "time": 1.6666, "angle": 45.46 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "gun": {
- "rotate": [
- {
- "time": 0,
- "angle": 0,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- {
- "time": 0.6666,
- "angle": -15.59,
- "curve": [ 0.732, 0, 0.769, 0.99 ]
- },
- { "time": 1.6666, "angle": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- },
- "front_fist": {
- "rotate": [
- {
- "time": 0,
- "angle": -6.84,
- "curve": [ 0.492, 0, 0.75, 1 ]
- },
- {
- "time": 0.6666,
- "angle": -14.63,
- "curve": [ 0.324, 0.11, 0.75, 1 ]
- },
- { "time": 1.6666, "angle": -6.84 }
- ],
- "scale": [
- {
- "time": 0,
- "x": 1,
- "y": 1,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- {
- "time": 0.6666,
- "x": 0.689,
- "y": 1.1,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- { "time": 1.6666, "x": 1, "y": 1 }
- ]
- }
- }
- },
- "jump": {
- "slots": {
- "front_fist": {
- "attachment": [
- { "time": 0, "name": "front_fist_open" },
- { "time": 0.2, "name": "front_fist_closed" },
- { "time": 0.6666, "name": "front_fist_open" }
- ]
- },
- "mouth": {
- "attachment": [
- { "time": 0, "name": "mouth_grind" }
- ]
- },
- "torso": {
- "attachment": [
- { "time": 0, "name": "torso" }
- ]
- }
- },
- "bones": {
- "front_thigh": {
- "rotate": [
- {
- "time": 0,
- "angle": 91.53,
- "curve": [ 0.278, 0.46, 0.763, 1 ]
- },
- {
- "time": 0.2,
- "angle": -35.83,
- "curve": [ 0.761, 0, 0.75, 1 ]
- },
- { "time": 0.4333, "angle": 127.74 },
- {
- "time": 0.7333,
- "angle": 48.18,
- "curve": [ 0.227, 0.26, 0.432, 1 ]
- },
- { "time": 0.8333, "angle": 25.35 },
- { "time": 0.9333, "angle": 45.37 },
- { "time": 1.0333, "angle": 38.12 },
- { "time": 1.1333, "angle": 25.35 },
- { "time": 1.3333, "angle": 91.53 }
- ],
- "translate": [
- { "time": 0, "x": -2.56, "y": 5.77 },
- { "time": 0.4333, "x": 8.3, "y": 7.98 },
- { "time": 0.7333, "x": 7.21, "y": -4 },
- { "time": 1.3333, "x": -2.56, "y": 5.77 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "torso": {
- "rotate": [
- { "time": 0, "angle": -42.63 },
- { "time": 0.2, "angle": -5.74 },
- { "time": 0.4333, "angle": -50.76 },
- { "time": 0.7333, "angle": 1.89 },
- { "time": 0.8333, "angle": 11.58 },
- { "time": 0.9666, "angle": -1.89 },
- { "time": 1.1333, "angle": 11.58 },
- { "time": 1.3333, "angle": -42.63 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_thigh": {
- "rotate": [
- { "time": 0, "angle": -26.32 },
- { "time": 0.2, "angle": 121.44 },
- { "time": 0.4333, "angle": 70.54 },
- {
- "time": 0.7333,
- "angle": 79.89,
- "curve": [ 0.295, 0.3, 0.59, 0.99 ]
- },
- { "time": 0.8333, "angle": 99.12 },
- { "time": 0.9333, "angle": 74.05 },
- { "time": 1.0333, "angle": 98.04 },
- { "time": 1.1333, "angle": 99.12 },
- { "time": 1.3333, "angle": -26.32 }
- ],
- "translate": [
- { "time": 0, "x": -0.56, "y": -0.32 },
- { "time": 0.4333, "x": -8.5, "y": 10.58 },
- { "time": 0.7333, "x": -1.96, "y": -0.32 },
- { "time": 1.3333, "x": -0.56, "y": -0.32 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_shin": {
- "rotate": [
- { "time": 0, "angle": -78.69 },
- { "time": 0.4333, "angle": -55.56 },
- { "time": 0.7333, "angle": -62.84 },
- { "time": 0.8333, "angle": -80.74 },
- { "time": 0.9333, "angle": -41.12 },
- { "time": 1.0333, "angle": -77.4 },
- { "time": 1.1333, "angle": -80.74 },
- { "time": 1.3333, "angle": -78.69 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.7333, "x": 1, "y": 1 }
- ]
- },
- "front_upper_arm": {
- "rotate": [
- { "time": 0, "angle": -22.61 },
- { "time": 0.2, "angle": -246.68 },
- {
- "time": 0.6,
- "angle": 11.28,
- "curve": [ 0.246, 0, 0.633, 0.53 ]
- },
- {
- "time": 0.7333,
- "angle": -57.45,
- "curve": [ 0.38, 0.53, 0.744, 1 ]
- },
- { "time": 0.8666, "angle": -112.59 },
- { "time": 0.9333, "angle": -102.17 },
- { "time": 1.0333, "angle": -108.61 },
- { "time": 1.1333, "angle": -112.59 },
- { "time": 1.3333, "angle": -22.61 }
- ],
- "translate": [
- { "time": 0, "x": 6.08, "y": 7.15 },
- { "time": 0.2, "x": 7.23, "y": -13.13, "curve": "stepped" },
- { "time": 0.7333, "x": 7.23, "y": -13.13 },
- { "time": 1.3333, "x": 6.08, "y": 7.15 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_bracer": {
- "rotate": [
- { "time": 0, "angle": 66.46 },
- { "time": 0.2, "angle": 42.39 },
- { "time": 0.4333, "angle": 26.06 },
- { "time": 0.7333, "angle": 13.28 },
- { "time": 0.8666, "angle": -28.64 },
- { "time": 0.9333, "angle": -22.31 },
- { "time": 1.0333, "angle": -35.39 },
- { "time": 1.1333, "angle": -28.64 },
- { "time": 1.3333, "angle": 66.46 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_fist": {
- "rotate": [
- { "time": 0, "angle": -28.43 },
- { "time": 0.4333, "angle": -45.6 },
- { "time": 0.7333, "angle": -53.66 },
- { "time": 0.8666, "angle": 7.55 },
- { "time": 0.9333, "angle": 31.15 },
- { "time": 1.0333, "angle": -32.58 },
- { "time": 1.1333, "angle": 7.55 },
- { "time": 1.3333, "angle": -28.43 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_upper_arm": {
- "rotate": [
- { "time": 0, "angle": 39.68 },
- { "time": 0.2, "angle": 276.57 },
- { "time": 0.3, "angle": 17.73 },
- { "time": 0.4333, "angle": 83.38 },
- {
- "time": 0.6,
- "angle": -4.71,
- "curve": [ 0.246, 0, 0.633, 0.53 ]
- },
- {
- "time": 0.7333,
- "angle": -69.63,
- "curve": [ 0.342, 0.36, 0.68, 0.71 ]
- },
- {
- "time": 0.7666,
- "angle": 321.47,
- "curve": [ 0.333, 0.33, 0.667, 0.66 ]
- },
- {
- "time": 0.8,
- "angle": 33.7,
- "curve": [ 0.358, 0.64, 0.693, 1 ]
- },
- { "time": 0.8666, "angle": 34.56 },
- { "time": 1.0333, "angle": 71.96 },
- { "time": 1.1333, "angle": 34.56 },
- { "time": 1.3333, "angle": 39.68 }
- ],
- "translate": [
- { "time": 0, "x": -3.1, "y": -4.86 },
- { "time": 0.2, "x": 23.33, "y": 49.07 },
- { "time": 0.4333, "x": 20.78, "y": 40.21 },
- { "time": 1.3333, "x": -3.1, "y": -4.86 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_bracer": {
- "rotate": [
- { "time": 0, "angle": 29.66 },
- { "time": 0.2, "angle": 45.06 },
- { "time": 0.4333, "angle": -4.34 },
- { "time": 0.7666, "angle": 61.68 },
- { "time": 0.8, "angle": 82.59 },
- { "time": 0.8666, "angle": 80.06 },
- { "time": 1.0333, "angle": 57.56 },
- { "time": 1.1333, "angle": 80.06 },
- { "time": 1.3333, "angle": 29.66 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "neck": {
- "rotate": [
- { "time": 0, "angle": 24.9 },
- { "time": 0.2, "angle": 16.31 },
- { "time": 0.4333, "angle": 7.44 },
- { "time": 0.7333, "angle": -20.35 },
- { "time": 0.8333, "angle": -0.69, "curve": "stepped" },
- { "time": 1.1333, "angle": -0.69 },
- { "time": 1.3333, "angle": 24.9 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "head": {
- "rotate": [
- { "time": 0, "angle": 24.92 },
- { "time": 0.2, "angle": 10.36 },
- { "time": 0.4333, "angle": 28.65 },
- { "time": 0.7333, "angle": -2.65 },
- { "time": 0.8333, "angle": -28.94, "curve": "stepped" },
- { "time": 1.1333, "angle": -28.94 },
- { "time": 1.3333, "angle": 24.92 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "hip": {
- "rotate": [
- { "time": 0, "angle": 0 }
- ],
- "translate": [
- {
- "time": 0,
- "x": -34.51,
- "y": -78.62,
- "curve": [ 0.232, 1, 0.75, 1 ]
- },
- {
- "time": 0.2,
- "x": -34.51,
- "y": 182.5,
- "curve": [ 0.232, 0.48, 0.598, 0.79 ]
- },
- {
- "time": 0.7666,
- "x": -34.51,
- "y": 596.22,
- "curve": [ 0.329, 0.17, 0.66, 0.21 ]
- },
- { "time": 1.1333, "x": -34.51, "y": 2.49 },
- { "time": 1.3333, "x": -34.51, "y": -78.62 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_shin": {
- "rotate": [
- {
- "time": 0,
- "angle": -90.62,
- "curve": [ 0.416, 0.54, 0.743, 1 ]
- },
- {
- "time": 0.2,
- "angle": -10.52,
- "curve": [ 0.644, 0, 0.75, 1 ]
- },
- { "time": 0.4333, "angle": -127.72 },
- { "time": 0.7333, "angle": -19.91 },
- { "time": 0.8333, "angle": -5.16 },
- { "time": 0.9333, "angle": -35.06 },
- { "time": 1.0333, "angle": -43.97 },
- { "time": 1.1333, "angle": -5.16 },
- { "time": 1.3333, "angle": -90.62 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "front_foot": {
- "rotate": [
- { "time": 0, "angle": -0.79 },
- { "time": 0.0333, "angle": 16.27 },
- { "time": 0.0666, "angle": 23.52 },
- { "time": 0.1, "angle": 21.02 },
- { "time": 0.1333, "angle": 10.92 },
- { "time": 0.2, "angle": -38.45 },
- { "time": 0.4333, "angle": 6.62 },
- { "time": 0.7333, "angle": -11.51 },
- { "time": 1.0333, "angle": -22.91 },
- { "time": 1.3333, "angle": -0.79 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "rear_foot": {
- "rotate": [
- { "time": 0, "angle": -12.77 },
- { "time": 0.2, "angle": 17.05 },
- { "time": 0.4333, "angle": 19.45 },
- { "time": 0.7333, "angle": 2.67 },
- { "time": 1.0333, "angle": -28.49 },
- { "time": 1.3333, "angle": -12.77 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- },
- "gun": {
- "rotate": [
- { "time": 0, "angle": 6.18 },
- { "time": 0.2, "angle": 30.81 },
- { "time": 0.4333, "angle": 13.25 },
- { "time": 0.7333, "angle": 14.98 },
- { "time": 0.7666, "angle": 25.64 },
- { "time": 0.8, "angle": 20.62 },
- { "time": 0.8666, "angle": 64.52 },
- { "time": 1.0333, "angle": 8.59 },
- { "time": 1.1333, "angle": 64.52 },
- { "time": 1.3333, "angle": 6.18 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 }
- ]
- }
- }
- },
- "run": {
- "slots": {
- "front_fist": {
- "attachment": [
- { "time": 0, "name": "front_fist_closed" }
- ]
- },
- "mouth": {
- "attachment": [
- { "time": 0, "name": "mouth_grind" }
- ]
- },
- "torso": {
- "attachment": [
- { "time": 0, "name": "torso" }
- ]
- }
- },
- "bones": {
- "front_thigh": {
- "rotate": [
- {
- "time": 0,
- "angle": 42.05,
- "curve": [ 0.195, 0.86, 0.75, 1 ]
- },
- { "time": 0.0666, "angle": 46.07 },
- { "time": 0.1333, "angle": -20.28 },
- { "time": 0.2, "angle": -27.23 },
- { "time": 0.2666, "angle": -47.16 },
- { "time": 0.3333, "angle": -39.79 },
- { "time": 0.4, "angle": -25.86 },
- { "time": 0.4666, "angle": 14.35 },
- { "time": 0.5333, "angle": 55.62 },
- { "time": 0.6, "angle": 69.65 },
- { "time": 0.6666, "angle": 86.4 },
- { "time": 0.7333, "angle": 65.87 },
- { "time": 0.8, "angle": 42.05 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 },
- { "time": 0.0333, "x": -5.79, "y": 11.15 },
- { "time": 0.0666, "x": -5.13, "y": 11.55 },
- { "time": 0.1333, "x": -7.7, "y": 8.98 },
- { "time": 0.5333, "x": -1.26, "y": 3.83 },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "torso": {
- "rotate": [
- { "time": 0, "angle": -39.7 },
- { "time": 0.2, "angle": -57.29 },
- { "time": 0.4, "angle": -39.7 },
- { "time": 0.6, "angle": -57.29 },
- { "time": 0.8, "angle": -39.7 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.4, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "rear_thigh": {
- "rotate": [
- { "time": 0, "angle": -56.59 },
- { "time": 0.0666, "angle": -21.57 },
- { "time": 0.1333, "angle": 27.95 },
- { "time": 0.2, "angle": 42.42 },
- { "time": 0.2666, "angle": 62.37 },
- { "time": 0.3333, "angle": 45.42 },
- { "time": 0.4, "angle": 15.67 },
- { "time": 0.4666, "angle": 28.22 },
- { "time": 0.5333, "angle": -38.62 },
- { "time": 0.6, "angle": -53.26 },
- { "time": 0.6666, "angle": -79.31 },
- { "time": 0.7333, "angle": -86.47 },
- { "time": 0.8, "angle": -56.59 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 },
- { "time": 0.4, "x": -6.76, "y": -3.86 },
- { "time": 0.4333, "x": -15.85, "y": 7.28 },
- { "time": 0.4666, "x": -13.04, "y": 4.04 },
- { "time": 0.5, "x": -10.24, "y": 7.11 },
- { "time": 0.5333, "x": -9.01, "y": -5.15 },
- { "time": 0.6666, "x": -23.18, "y": -2.57 },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "rear_shin": {
- "rotate": [
- { "time": 0, "angle": -74 },
- { "time": 0.0666, "angle": -83.38 },
- { "time": 0.1333, "angle": -106.69 },
- { "time": 0.2, "angle": -66.01 },
- { "time": 0.2666, "angle": -55.22 },
- { "time": 0.3333, "angle": -24.8 },
- {
- "time": 0.4,
- "angle": 18.44,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- { "time": 0.4666, "angle": -56.65 },
- {
- "time": 0.5333,
- "angle": -11.94,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- { "time": 0.6666, "angle": -41.26 },
- { "time": 0.7333, "angle": -43.6 },
- { "time": 0.8, "angle": -74 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "front_upper_arm": {
- "rotate": [
- { "time": 0, "angle": -89.36 },
- { "time": 0.0666, "angle": -95.67 },
- { "time": 0.1333, "angle": -22 },
- { "time": 0.2, "angle": -316.04 },
- { "time": 0.2666, "angle": -274.94 },
- { "time": 0.3333, "angle": -273.74 },
- { "time": 0.4, "angle": -272.09 },
- { "time": 0.4666, "angle": -264.89 },
- { "time": 0.5333, "angle": -320.09 },
- { "time": 0.6, "angle": -50.83 },
- { "time": 0.6666, "angle": -81.72 },
- { "time": 0.7333, "angle": -83.92 },
- { "time": 0.8, "angle": -89.36 }
- ],
- "translate": [
- { "time": 0, "x": 6.24, "y": 10.05 },
- { "time": 0.2666, "x": 4.95, "y": -13.13 },
- { "time": 0.6, "x": -2.43, "y": 1.94 },
- { "time": 0.8, "x": 6.24, "y": 10.05 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "front_bracer": {
- "rotate": [
- { "time": 0, "angle": 33.43 },
- { "time": 0.0666, "angle": 20.53 },
- { "time": 0.1333, "angle": 15.26 },
- { "time": 0.2, "angle": 19.28 },
- { "time": 0.2666, "angle": 22.62 },
- { "time": 0.3333, "angle": 37.29 },
- { "time": 0.4, "angle": 41.53 },
- { "time": 0.4666, "angle": 31.73 },
- { "time": 0.5333, "angle": 67.45 },
- { "time": 0.6666, "angle": 39.77 },
- { "time": 0.7333, "angle": 30.95 },
- { "time": 0.8, "angle": 33.43 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "front_fist": {
- "rotate": [
- { "time": 0, "angle": -19.75 },
- { "time": 0.0666, "angle": -37.11 },
- { "time": 0.1333, "angle": -50.79 },
- { "time": 0.2666, "angle": -12.69 },
- { "time": 0.3333, "angle": 3.01 },
- { "time": 0.4333, "angle": 12.05 },
- { "time": 0.5333, "angle": 13.25 },
- { "time": 0.8, "angle": -19.75 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "rear_upper_arm": {
- "rotate": [
- { "time": 0, "angle": 68.68 },
- { "time": 0.0666, "angle": 73.89 },
- { "time": 0.1333, "angle": -9.64 },
- { "time": 0.2, "angle": 284.27 },
- { "time": 0.2666, "angle": 283.29 },
- { "time": 0.3333, "angle": 278.28 },
- { "time": 0.4, "angle": 271.02 },
- { "time": 0.4666, "angle": 263.2 },
- { "time": 0.5333, "angle": 314.25 },
- { "time": 0.6, "angle": 16.83 },
- { "time": 0.6666, "angle": 70.35 },
- { "time": 0.7333, "angle": 73.53 },
- { "time": 0.8, "angle": 68.68 }
- ],
- "translate": [
- { "time": 0, "x": -2.57, "y": -8.89 },
- { "time": 0.1333, "x": -4.68, "y": 7.2 },
- { "time": 0.2, "x": 21.73, "y": 51.17 },
- { "time": 0.6, "x": 4.33, "y": 2.05 },
- { "time": 0.8, "x": -2.57, "y": -8.89 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "rear_bracer": {
- "rotate": [
- { "time": 0, "angle": 31.04 },
- { "time": 0.0666, "angle": 28.28 },
- { "time": 0.1333, "angle": 49.36 },
- { "time": 0.2, "angle": 59.37 },
- { "time": 0.2666, "angle": 8.56 },
- { "time": 0.3333, "angle": 9.38 },
- { "time": 0.4, "angle": 11.51 },
- { "time": 0.4666, "angle": 7.22 },
- { "time": 0.5333, "angle": -18.44 },
- { "time": 0.6, "angle": 11.44 },
- { "time": 0.6666, "angle": 9.99 },
- { "time": 0.7333, "angle": 8.28 },
- { "time": 0.8, "angle": 31.04 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "neck": {
- "rotate": [
- { "time": 0, "angle": 11.03 },
- { "time": 0.2, "angle": 13.58 },
- { "time": 0.4, "angle": 11.03 },
- { "time": 0.6, "angle": 13.58 },
- { "time": 0.8, "angle": 11.03 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.4, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "head": {
- "rotate": [
- { "time": 0, "angle": 11.03 },
- { "time": 0.1, "angle": 12.34 },
- { "time": 0.2, "angle": 25.55 },
- { "time": 0.4, "angle": 11.03 },
- { "time": 0.5, "angle": 12.34 },
- { "time": 0.6, "angle": 25.55 },
- { "time": 0.8, "angle": 11.03 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.4, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "hip": {
- "rotate": [
- { "time": 0, "angle": 0, "curve": "stepped" },
- { "time": 0.8, "angle": 0 }
- ],
- "translate": [
- { "time": 0, "x": -62.47, "y": -23.1 },
- {
- "time": 0.0666,
- "x": -62.47,
- "y": -38.51,
- "curve": [ 0.244, 0.04, 0.75, 1 ]
- },
- {
- "time": 0.2666,
- "x": -62.47,
- "y": 22.28,
- "curve": [ 0.17, 0.52, 0.75, 1 ]
- },
- { "time": 0.4, "x": -62.47, "y": -23.1 },
- { "time": 0.4333, "x": -62.47, "y": -24.59 },
- {
- "time": 0.4666,
- "x": -62.47,
- "y": -43.29,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- { "time": 0.6666, "x": -62.47, "y": 22.28 },
- { "time": 0.8, "x": -62.47, "y": -23.1 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "front_shin": {
- "rotate": [
- {
- "time": 0,
- "angle": 0,
- "curve": [ 0.481, 0.01, 0.75, 1 ]
- },
- { "time": 0.0666, "angle": -64.42 },
- {
- "time": 0.1333,
- "angle": -20.59,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- { "time": 0.2666, "angle": -62.51 },
- { "time": 0.3333, "angle": -79.74 },
- { "time": 0.4, "angle": -78.28 },
- {
- "time": 0.4666,
- "angle": -118.96,
- "curve": [ 0.93, 0, 0.952, 0.95 ]
- },
- { "time": 0.6, "angle": -88.95 },
- { "time": 0.6666, "angle": -79.09 },
- { "time": 0.7333, "angle": -47.77 },
- { "time": 0.8, "angle": 0 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "front_foot": {
- "rotate": [
- { "time": 0, "angle": 0 },
- {
- "time": 0.0333,
- "angle": -21.13,
- "curve": [ 0.121, 0.23, 0.75, 1 ]
- },
- { "time": 0.0666, "angle": 17.64 },
- { "time": 0.1, "angle": 29.92 },
- { "time": 0.1333, "angle": 16.44 },
- { "time": 0.2, "angle": -29.22 },
- { "time": 0.2666, "angle": -1.61 },
- { "time": 0.3333, "angle": -10.22 },
- { "time": 0.4666, "angle": -15.99 },
- { "time": 0.6, "angle": 9.03 },
- { "time": 0.7333, "angle": 17.32 },
- { "time": 0.8, "angle": 0 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "rear_foot": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.0666, "angle": -12.04 },
- { "time": 0.1333, "angle": -0.87 },
- { "time": 0.2, "angle": 25.81 },
- { "time": 0.2666, "angle": 4.71 },
- {
- "time": 0.4,
- "angle": 18.09,
- "curve": [ 0.281, 0.73, 0.75, 1 ]
- },
- { "time": 0.4333, "angle": -1.7 },
- { "time": 0.4666, "angle": 27.12 },
- { "time": 0.5, "angle": 38.83 },
- { "time": 0.5333, "angle": 30.76 },
- { "time": 0.5666, "angle": -20.49 },
- { "time": 0.6, "angle": -30.8 },
- { "time": 0.6666, "angle": -1.31 },
- { "time": 0.8, "angle": 0 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "gun": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.1333, "angle": 24.72 },
- { "time": 0.5, "angle": -11.87 },
- { "time": 0.8, "angle": 0 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- }
- },
- "events": [
- { "time": 0, "name": "footstep" },
- { "time": 0.4, "name": "footstep", "int": 1 }
- ]
- },
- "shoot": {
- "slots": {
- "front_fist": {
- "attachment": [
- { "time": 0.1333, "name": "front_fist_closed" },
- { "time": 0.4, "name": "front_fist_open" }
- ]
- },
- "mouth": {
- "attachment": [
- { "time": 0.1333, "name": "mouth_grind" }
- ]
- },
- "muzzle": {
- "attachment": [
- { "time": 0.1333, "name": "muzzle" },
- { "time": 0.2666, "name": null }
- ],
- "color": [
- {
- "time": 0.1333,
- "color": "ffffff00",
- "curve": [ 0.118, 0.99, 0.75, 1 ]
- },
- {
- "time": 0.1666,
- "color": "ffffffff",
- "curve": [ 0.821, 0, 0.909, 0.89 ]
- },
- { "time": 0.2666, "color": "ffffff00" }
- ]
- }
- },
- "bones": {
- "front_fist": {
- "scale": [
- { "time": 0.1333, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.4, "x": 1, "y": 1 }
- ]
- },
- "gunTip": {
- "translate": [
- { "time": 0.1333, "x": 0, "y": 0 },
- { "time": 0.2, "x": 20.93, "y": 1.57 }
- ],
- "scale": [
- { "time": 0.1333, "x": 1, "y": 1 },
- { "time": 0.2, "x": 1.247, "y": 1.516 }
- ]
- },
- "gun": {
- "rotate": [
- { "time": 0, "angle": 1.9 }
- ],
- "translate": [
- {
- "time": 0,
- "x": 7.95,
- "y": 5.84,
- "curve": [ 0, 0.3, 0.678, 1 ]
- },
- { "time": 0.3, "x": -9.3, "y": -1.41 },
- { "time": 0.4, "x": 0, "y": 0 }
- ]
- },
- "rear_bracer": {
- "rotate": [
- { "time": 0, "angle": -30.47 }
- ],
- "translate": [
- {
- "time": 0,
- "x": 0,
- "y": 0,
- "curve": [ 0, 0.3, 0.678, 1 ]
- },
- { "time": 0.3, "x": -5.99, "y": -3.71 },
- { "time": 0.4, "x": 0, "y": 0 }
- ]
- },
- "rear_upper_arm": {
- "rotate": [
- { "time": 0, "angle": 62.3 }
- ],
- "translate": [
- {
- "time": 0,
- "x": 0,
- "y": 0,
- "curve": [ 0, 0.3, 0.678, 1 ]
- },
- { "time": 0.3, "x": 2.81, "y": 11.41 },
- { "time": 0.4, "x": 0, "y": 0 }
- ]
- }
- }
- },
- "test": {
- "slots": {
- "front_foot": {
- "color": [
- { "time": 0.6666, "color": "ffffffff" },
- { "time": 1.3333, "color": "ff0700ff" }
- ]
- },
- "gun": {
- "color": [
- { "time": 0, "color": "ffffffff", "curve": "stepped" },
- { "time": 0.6666, "color": "ffffffff" },
- { "time": 1.3333, "color": "32ff00ff" }
- ]
- },
- "rear_foot": {
- "color": [
- { "time": 0.6666, "color": "ffffffff" },
- { "time": 1.3333, "color": "ff0700ff" }
- ]
- }
- },
- "bones": {
- "head": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.3333, "angle": -20.72 },
- { "time": 0.6666, "angle": -32.41 },
- { "time": 1, "angle": -5.3 },
- { "time": 1.3333, "angle": 24.96 },
- { "time": 1.6666, "angle": 15.61 },
- { "time": 2, "angle": 0 }
- ],
- "translate": [
- {
- "time": 0,
- "x": 0,
- "y": 0,
- "curve": [ 0.172, 0.37, 0.574, 0.73 ]
- },
- {
- "time": 0.1666,
- "x": 144.19,
- "y": -77.59,
- "curve": [ 0.372, 0.61, 0.765, 1 ]
- },
- {
- "time": 0.3333,
- "x": 217.61,
- "y": -192.63,
- "curve": [ 0.282, 0, 0.624, 0.31 ]
- },
- {
- "time": 0.5,
- "x": 181.21,
- "y": -365.66,
- "curve": [ 0.313, 0.21, 0.654, 0.54 ]
- },
- {
- "time": 0.6666,
- "x": 20.09,
- "y": -500.4,
- "curve": [ 0.147, 0.27, 0.75, 1 ]
- },
- { "time": 0.8333, "x": -194.24, "y": -341.84 },
- { "time": 1, "x": -307.93, "y": -114 },
- {
- "time": 1.1666,
- "x": -330.38,
- "y": 121.42,
- "curve": [ 0.25, 0, 0.764, 0.48 ]
- },
- {
- "time": 1.3333,
- "x": -240.42,
- "y": 335.66,
- "curve": [ 0.229, 0.37, 0.58, 0.73 ]
- },
- {
- "time": 1.5,
- "x": -56.12,
- "y": 288.06,
- "curve": [ 0.296, 0.6, 0.641, 1 ]
- },
- {
- "time": 1.6666,
- "x": 87.63,
- "y": 191.33,
- "curve": [ 0.238, 0, 0.626, 0.39 ]
- },
- {
- "time": 1.8333,
- "x": 60.62,
- "y": 95.14,
- "curve": [ 0.41, 0.26, 0.803, 0.62 ]
- },
- { "time": 2, "x": 0, "y": 0 }
- ]
- }
- },
- "draworder": [
- {
- "time": 0.6666,
- "offsets": [
- { "slot": "head", "offset": -9 },
- { "slot": "eye", "offset": -9 },
- { "slot": "mouth", "offset": -12 },
- { "slot": "goggles", "offset": -12 }
- ]
- },
- { "time": 1.3333 }
- ],
- "events": [
- { "time": 0, "name": "headPop", "int": 0, "float": 0, "string": "pop.wav" },
- { "time": 1, "name": "headBehind", "int": 7, "float": 8, "string": "animate" },
- { "time": 2, "name": "headAttach", "int": 0, "float": 0, "string": "attach.wav" }
- ]
- },
- "walk": {
- "slots": {
- "front_fist": {
- "attachment": [
- { "time": 0, "name": "front_fist_closed" }
- ]
- },
- "mouth": {
- "attachment": [
- { "time": 0, "name": "mouth_smile" }
- ]
- },
- "torso": {
- "attachment": [
- { "time": 0, "name": "torso" }
- ]
- }
- },
- "bones": {
- "front_thigh": {
- "rotate": [
- { "time": 0, "angle": 15.79 },
- { "time": 0.1, "angle": 27.39 },
- { "time": 0.2, "angle": -7.94 },
- { "time": 0.3, "angle": -16.94 },
- { "time": 0.4, "angle": -28.62 },
- { "time": 0.5, "angle": -19.3 },
- { "time": 0.6, "angle": -3.08 },
- { "time": 0.7, "angle": 29.51 },
- { "time": 0.8, "angle": 15.79 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 },
- { "time": 0.4, "x": -1.18, "y": 0.54 },
- { "time": 0.5, "x": 0.11, "y": 0.41 },
- { "time": 0.6, "x": 9.48, "y": 0.27 },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.4, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "front_shin": {
- "rotate": [
- { "time": 0, "angle": 5.12 },
- { "time": 0.1, "angle": -20.87 },
- { "time": 0.2, "angle": 13.37 },
- { "time": 0.3, "angle": 15.98 },
- { "time": 0.4, "angle": 5.94 },
- { "time": 0.5, "angle": -26.76 },
- { "time": 0.7, "angle": -55.44 },
- { "time": 0.8, "angle": 5.12 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "rear_thigh": {
- "rotate": [
- { "time": 0, "angle": -34.38 },
- { "time": 0.1, "angle": -30.32 },
- { "time": 0.2, "angle": -37.22 },
- { "time": 0.3, "angle": 20.73 },
- { "time": 0.4, "angle": 8.69 },
- { "time": 0.5, "angle": 12.16 },
- { "time": 0.6, "angle": -24.62 },
- { "time": 0.7, "angle": -27.26 },
- { "time": 0.8, "angle": -34.38 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0 },
- { "time": 0.4, "x": 4.08, "y": -9.53 },
- { "time": 0.5, "x": 0, "y": 0 },
- { "time": 0.7, "x": -21.14, "y": -9.6 },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "rear_shin": {
- "rotate": [
- { "time": 0, "angle": 14.26 },
- { "time": 0.1, "angle": -17.3 },
- { "time": 0.2, "angle": -12.67 },
- { "time": 0.3, "angle": -58.89 },
- { "time": 0.4, "angle": 15.95 },
- { "time": 0.5, "angle": -9 },
- { "time": 0.6, "angle": 26.06 },
- { "time": 0.7, "angle": 21.85 },
- { "time": 0.8, "angle": 14.26 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1 },
- { "time": 0.1, "x": 0.951, "y": 1 },
- { "time": 0.5, "x": 0.975, "y": 1 },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "rear_foot": {
- "rotate": [
- { "time": 0, "angle": 10.13 },
- { "time": 0.1, "angle": 12.27 },
- { "time": 0.2, "angle": -2.94 },
- { "time": 0.3, "angle": 6.29 },
- { "time": 0.4, "angle": 13.45 },
- { "time": 0.5, "angle": -3.57 },
- { "time": 0.6, "angle": -0.97 },
- { "time": 0.7, "angle": 2.97 },
- { "time": 0.8, "angle": 10.13 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "front_upper_arm": {
- "rotate": [
- { "time": 0, "angle": -23.74 },
- { "time": 0.4, "angle": -320.57 },
- { "time": 0.8, "angle": -23.74 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "rear_upper_arm": {
- "rotate": [
- { "time": 0, "angle": 11.62 },
- { "time": 0.1, "angle": 19.36 },
- { "time": 0.4, "angle": 345.26 },
- { "time": 0.5, "angle": 343.44 },
- { "time": 0.8, "angle": 11.62 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "torso": {
- "rotate": [
- { "time": 0, "angle": -12.11 },
- { "time": 0.1666, "angle": -17.16 },
- { "time": 0.4, "angle": -12.11 },
- { "time": 0.5666, "angle": -15.81 },
- { "time": 0.8, "angle": -12.11 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "neck": {
- "rotate": [
- { "time": 0, "angle": 1.41 },
- { "time": 0.2333, "angle": -3.04 },
- { "time": 0.4, "angle": 1.41 },
- { "time": 0.6333, "angle": -3.04 },
- { "time": 0.8, "angle": 1.41 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.4, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "head": {
- "rotate": [
- { "time": 0, "angle": 6.97 },
- { "time": 0.1666, "angle": 8.02 },
- { "time": 0.2666, "angle": 12.65 },
- { "time": 0.4, "angle": 6.97 },
- { "time": 0.5666, "angle": 8.02 },
- { "time": 0.6666, "angle": 12.65 },
- { "time": 0.8, "angle": 6.97 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.4, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "hip": {
- "rotate": [
- { "time": 0, "angle": 0, "curve": "stepped" },
- { "time": 0.8, "angle": 0 }
- ],
- "translate": [
- {
- "time": 0,
- "x": -23.93,
- "y": 3.22,
- "curve": [ 0.518, 0.03, 0.807, 0.61 ]
- },
- {
- "time": 0.1,
- "x": -23.93,
- "y": -9.24,
- "curve": [ 0.135, 0.33, 0.601, 0.99 ]
- },
- {
- "time": 0.2,
- "x": -23.93,
- "y": 4.35,
- "curve": [ 0.204, 0.68, 0.75, 1 ]
- },
- {
- "time": 0.3,
- "x": -23.93,
- "y": 2.38,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- {
- "time": 0.4,
- "x": -23.93,
- "y": -2.5,
- "curve": [ 0.692, 0.01, 0.75, 1 ]
- },
- {
- "time": 0.5,
- "x": -23.93,
- "y": -10.32,
- "curve": [ 0.235, 0.77, 0.75, 1 ]
- },
- {
- "time": 0.6,
- "x": -23.93,
- "y": 4.35,
- "curve": [ 0.287, 0.37, 0.718, 0.76 ]
- },
- {
- "time": 0.7,
- "x": -23.93,
- "y": 10.34,
- "curve": [ 0.615, 0, 0.75, 1 ]
- },
- { "time": 0.8, "x": -23.93, "y": 3.22 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "front_bracer": {
- "rotate": [
- { "time": 0, "angle": 0 },
- { "time": 0.4, "angle": 20.59 },
- { "time": 0.8, "angle": 0 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "front_foot": {
- "rotate": [
- { "time": 0, "angle": 12.49 },
- { "time": 0.1, "angle": -8.34 },
- { "time": 0.2, "angle": -6.17 },
- { "time": 0.3, "angle": -0.75 },
- { "time": 0.3333, "angle": 3.89 },
- { "time": 0.4, "angle": 10.22 },
- { "time": 0.5, "angle": 11.44 },
- { "time": 0.6, "angle": -0.33 },
- { "time": 0.7, "angle": 0.15 },
- { "time": 0.8, "angle": 12.49 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "rear_bracer": {
- "rotate": [
- { "time": 0, "angle": 3.58 },
- { "time": 0.1, "angle": 5.51 },
- { "time": 0.4, "angle": -22.77 },
- { "time": 0.5, "angle": -9.65 },
- { "time": 0.8, "angle": 3.58 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "front_fist": {
- "rotate": [
- { "time": 0, "angle": -15.22 },
- { "time": 0.1, "angle": -51.4 },
- { "time": 0.4, "angle": -39.4 },
- { "time": 0.5, "angle": 19.26 },
- { "time": 0.8, "angle": -15.22 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- },
- "gun": {
- "rotate": [
- {
- "time": 0,
- "angle": -24.06,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- {
- "time": 0.1,
- "angle": -10.94,
- "curve": [ 0.381, 0.54, 0.742, 1 ]
- },
- {
- "time": 0.4,
- "angle": 25.34,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- {
- "time": 0.6666,
- "angle": -27.47,
- "curve": [ 0.25, 0, 0.75, 1 ]
- },
- { "time": 0.8, "angle": -24.06 }
- ],
- "translate": [
- { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
- { "time": 0.8, "x": 0, "y": 0 }
- ],
- "scale": [
- { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
- { "time": 0.8, "x": 1, "y": 1 }
- ]
- }
- }
- }
-}
-}
\ No newline at end of file
diff --git a/spine-c/data/spineboy.png b/spine-c/data/spineboy.png
deleted file mode 100644
index b43262310..000000000
Binary files a/spine-c/data/spineboy.png and /dev/null differ
diff --git a/spine-c/include/spine/Animation.h b/spine-c/include/spine/Animation.h
index d596b0013..d70d8f423 100644
--- a/spine-c/include/spine/Animation.h
+++ b/spine-c/include/spine/Animation.h
@@ -89,12 +89,14 @@ typedef enum {
SP_TIMELINE_SCALE,
SP_TIMELINE_ROTATE,
SP_TIMELINE_TRANSLATE,
+ SP_TIMELINE_SHEAR,
SP_TIMELINE_COLOR,
SP_TIMELINE_ATTACHMENT,
SP_TIMELINE_EVENT,
SP_TIMELINE_DRAWORDER,
SP_TIMELINE_FFD,
- SP_TIMELINE_IKCONSTRAINT
+ SP_TIMELINE_IKCONSTRAINT,
+ SP_TIMELINE_TRANSFORMCONSTRAINT
} spTimelineType;
struct spTimeline {
@@ -219,6 +221,20 @@ typedef spScaleTimeline ScaleTimeline;
/**/
+typedef struct spBaseTimeline spShearTimeline;
+
+spShearTimeline* spShearTimeline_create (int framesCount);
+
+void spShearTimeline_setFrame (spShearTimeline* self, int frameIndex, float time, float x, float y);
+
+#ifdef SPINE_SHORT_NAMES
+typedef spShearTimeline ShearTimeline;
+#define ShearTimeline_create(...) spShearTimeline_create(__VA_ARGS__)
+#define ShearTimeline_setFrame(...) spShearTimeline_setFrame(__VA_ARGS__)
+#endif
+
+/**/
+
typedef struct spColorTimeline {
spCurveTimeline super;
int const framesCount;
@@ -387,7 +403,6 @@ typedef struct spIkConstraintTimeline {
spIkConstraintTimeline* spIkConstraintTimeline_create (int framesCount);
-/* @param attachmentName May be 0. */
void spIkConstraintTimeline_setFrame (spIkConstraintTimeline* self, int frameIndex, float time, float mix, int bendDirection);
#ifdef SPINE_SHORT_NAMES
@@ -398,6 +413,34 @@ typedef spIkConstraintTimeline IkConstraintTimeline;
/**/
+typedef struct spTransformConstraintTimeline {
+ spCurveTimeline super;
+ int const framesCount;
+ float* const frames; /* time, mix, bendDirection, ... */
+ int transformConstraintIndex;
+
+#ifdef __cplusplus
+ spTransformConstraintTimeline() :
+ super(),
+ framesCount(0),
+ frames(0),
+ transformConstraintIndex(0) {
+ }
+#endif
+} spTransformConstraintTimeline;
+
+spTransformConstraintTimeline* spTransformConstraintTimeline_create (int framesCount);
+
+void spTransformConstraintTimeline_setFrame (spTransformConstraintTimeline* self, int frameIndex, float time, float rotateMix, float translateMix, float scaleMix, float shearMix);
+
+#ifdef SPINE_SHORT_NAMES
+typedef spTransformConstraintTimeline TransformConstraintTimeline;
+#define TransformConstraintTimeline_create(...) spTransformConstraintTimeline_create(__VA_ARGS__)
+#define TransformConstraintTimeline_setFrame(...) spTransformConstraintTimeline_setFrame(__VA_ARGS__)
+#endif
+
+/**/
+
#ifdef __cplusplus
}
#endif
diff --git a/spine-c/include/spine/Bone.h b/spine-c/include/spine/Bone.h
index 160d9a642..1dbc9df0a 100644
--- a/spine-c/include/spine/Bone.h
+++ b/spine-c/include/spine/Bone.h
@@ -45,7 +45,7 @@ struct spBone {
spBoneData* const data;
struct spSkeleton* const skeleton;
spBone* const parent;
- float x, y, rotation, scaleX, scaleY;
+ float x, y, rotation, scaleX, scaleY, shearX, shearY;
float appliedRotation, appliedScaleX, appliedScaleY;
float const a, b, worldX;
@@ -77,7 +77,7 @@ void spBone_dispose (spBone* self);
void spBone_setToSetupPose (spBone* self);
void spBone_updateWorldTransform (spBone* self);
-void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rotation, float scaleX, float scaleY);
+void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rotation, float scaleX, float scaleY, float shearX, float shearY);
float spBone_getWorldRotationX (spBone* self);
float spBone_getWorldRotationY (spBone* self);
diff --git a/spine-c/include/spine/BoneData.h b/spine-c/include/spine/BoneData.h
index e0591380c..ddf0d157a 100644
--- a/spine-c/include/spine/BoneData.h
+++ b/spine-c/include/spine/BoneData.h
@@ -41,9 +41,7 @@ struct spBoneData {
const char* const name;
spBoneData* const parent;
float length;
- float x, y;
- float rotation;
- float scaleX, scaleY;
+ float x, y, rotation, scaleX, scaleY, shearX, shearY;
int/*bool*/inheritScale, inheritRotation;
#ifdef __cplusplus
diff --git a/spine-c/include/spine/TransformConstraint.h b/spine-c/include/spine/TransformConstraint.h
index c670a7823..c4be652b0 100644
--- a/spine-c/include/spine/TransformConstraint.h
+++ b/spine-c/include/spine/TransformConstraint.h
@@ -45,17 +45,24 @@ typedef struct spTransformConstraint {
spTransformConstraintData* const data;
spBone* bone;
spBone* target;
- float translateMix;
- float x, y;
+ float rotateMix, translateMix, scaleMix, shearMix;
+ float offsetRotation, offsetX, offsetY, offsetScaleX, offsetScaleY, offsetShearY;
#ifdef __cplusplus
spTransformConstraint() :
data(0),
bone(0),
target(0),
+ rotateMix(0),
translateMix(0),
- x(0),
- y(0) {
+ scaleMix(0),
+ shearMix(0),
+ offsetRotation(0),
+ offsetX(0),
+ offsetY(0),
+ offsetScaleX(0),
+ offsetScaleY(0),
+ offsetShearY(0) {
}
#endif
} spTransformConstraint;
diff --git a/spine-c/include/spine/TransformConstraintData.h b/spine-c/include/spine/TransformConstraintData.h
index 3fc02a045..bffb4fe80 100644
--- a/spine-c/include/spine/TransformConstraintData.h
+++ b/spine-c/include/spine/TransformConstraintData.h
@@ -43,17 +43,24 @@ typedef struct spTransformConstraintData {
spBoneData* bone;
spBoneData* target;
- float translateMix;
- float x, y;
+ float rotateMix, translateMix, scaleMix, shearMix;
+ float offsetRotation, offsetX, offsetY, offsetScaleX, offsetScaleY, offsetShearY;
#ifdef __cplusplus
spTransformConstraintData() :
name(0),
bone(0),
target(0),
+ rotateMix(0),
translateMix(0),
- x(0),
- y(0) {
+ scaleMix(0),
+ shearMix(0),
+ offsetRotation(0),
+ offsetX(0),
+ offsetY(0),
+ offsetScaleX(0),
+ offsetScaleY(0),
+ offsetShearY(0) {
}
#endif
} spTransformConstraintData;
diff --git a/spine-c/include/spine/extension.h b/spine-c/include/spine/extension.h
index af621f64d..63b416f02 100644
--- a/spine-c/include/spine/extension.h
+++ b/spine-c/include/spine/extension.h
@@ -58,9 +58,14 @@
#define MALLOC_STR(TO,FROM) strcpy(CONST_CAST(char*, TO) = (char*)MALLOC(char, strlen(FROM) + 1), FROM)
#define PI 3.1415926535897932385f
+#define PI2 (PI * 2)
#define DEG_RAD (PI / 180)
#define RAD_DEG (180 / PI)
+#define SIN_DEG(A) sinf((A) * DEG_RAD)
+#define COS_DEG(A) cosf((A) * DEG_RAD)
+#define ABS(A) ((A) < 0? -(A): (A))
+
#ifdef __STDC_VERSION__
#define FMOD(A,B) fmodf(A, B)
#define ATAN2(A,B) atan2f(A, B)
diff --git a/spine-c/spine-c.sln b/spine-c/spine-c.sln
deleted file mode 100644
index 346a6ba9c..000000000
--- a/spine-c/spine-c.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C++ Express 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spine-c", "spine-c.vcxproj", "{5D74934A-7512-45EE-8402-7B95D3642E85}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5D74934A-7512-45EE-8402-7B95D3642E85}.Debug|Win32.ActiveCfg = Debug|Win32
- {5D74934A-7512-45EE-8402-7B95D3642E85}.Debug|Win32.Build.0 = Debug|Win32
- {5D74934A-7512-45EE-8402-7B95D3642E85}.Release|Win32.ActiveCfg = Release|Win32
- {5D74934A-7512-45EE-8402-7B95D3642E85}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/spine-c/spine-c.vcxproj b/spine-c/spine-c.vcxproj
deleted file mode 100644
index 0ac111cba..000000000
--- a/spine-c/spine-c.vcxproj
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {5D74934A-7512-45EE-8402-7B95D3642E85}
- Win32Proj
- SpineC
-
-
-
- StaticLibrary
- true
- Unicode
- v110
-
-
- StaticLibrary
- false
- true
- Unicode
- v110
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Level3
- Disabled
- _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
- .\include;%(AdditionalIncludeDirectories)
-
-
- Windows
- true
-
-
-
-
- Level3
-
-
- MaxSpeed
- true
- true
- _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
- .\include
-
-
- Windows
- true
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/spine-c/spine-c.vcxproj.filters b/spine-c/spine-c.vcxproj.filters
deleted file mode 100644
index c62c2f897..000000000
--- a/spine-c/spine-c.vcxproj.filters
+++ /dev/null
@@ -1,195 +0,0 @@
-
-
-
-
- {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
- cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
-
-
- {93995380-89BD-4b04-88EB-625FBE52EBFB}
- h;hpp;hxx;hm;inl;inc;xsd
-
-
- {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
- rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
-
-
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
-
\ No newline at end of file
diff --git a/spine-c/src/spine/Animation.c b/spine-c/src/spine/Animation.c
index 5bbef426f..eb3add590 100644
--- a/spine-c/src/spine/Animation.c
+++ b/spine-c/src/spine/Animation.c
@@ -251,13 +251,13 @@ struct spBaseTimeline* _spBaseTimeline_create (int framesCount, spTimelineType t
/**/
-static const int ROTATE_PREV_FRAME_TIME = -2;
-static const int ROTATE_FRAME_VALUE = 1;
+static const int ROTATE_PREV_TIME = -2;
+static const int ROTATE_FRAME = 1;
void _spRotateTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents,
int* eventsCount, float alpha) {
spBone *bone;
- int frameIndex;
+ int frame;
float prevFrameValue, frameTime, percent, amount;
spRotateTimeline* self = SUB_CAST(spRotateTimeline, timeline);
@@ -267,7 +267,7 @@ void _spRotateTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton,
bone = skeleton->bones[self->boneIndex];
if (time >= self->frames[self->framesCount - 2]) { /* Time is after last frame. */
- float amount = bone->data->rotation + self->frames[self->framesCount - 1] - bone->rotation;
+ amount = bone->data->rotation + self->frames[self->framesCount - 1] - bone->rotation;
while (amount > 180)
amount -= 360;
while (amount < -180)
@@ -277,13 +277,13 @@ void _spRotateTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton,
}
/* Interpolate between the previous frame and the current frame. */
- frameIndex = binarySearch(self->frames, self->framesCount, time, 2);
- prevFrameValue = self->frames[frameIndex - 1];
- frameTime = self->frames[frameIndex];
- percent = 1 - (time - frameTime) / (self->frames[frameIndex + ROTATE_PREV_FRAME_TIME] - frameTime);
- percent = spCurveTimeline_getCurvePercent(SUPER(self), (frameIndex >> 1) - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
+ frame = binarySearch(self->frames, self->framesCount, time, 2);
+ prevFrameValue = self->frames[frame - 1];
+ frameTime = self->frames[frame];
+ percent = 1 - (time - frameTime) / (self->frames[frame + ROTATE_PREV_TIME] - frameTime);
+ percent = spCurveTimeline_getCurvePercent(SUPER(self), (frame >> 1) - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
- amount = self->frames[frameIndex + ROTATE_FRAME_VALUE] - prevFrameValue;
+ amount = self->frames[frame + ROTATE_FRAME] - prevFrameValue;
while (amount > 180)
amount -= 360;
while (amount < -180)
@@ -312,14 +312,14 @@ void spRotateTimeline_setFrame (spRotateTimeline* self, int frameIndex, float ti
/**/
-static const int TRANSLATE_PREV_FRAME_TIME = -3;
-static const int TRANSLATE_FRAME_X = 1;
-static const int TRANSLATE_FRAME_Y = 2;
+static const int TRANSLATE_PREV_TIME = -3;
+static const int TRANSLATE_X = 1;
+static const int TRANSLATE_Y = 2;
void _spTranslateTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time,
spEvent** firedEvents, int* eventsCount, float alpha) {
spBone *bone;
- int frameIndex;
+ int frame;
float prevFrameX, prevFrameY, frameTime, percent;
spTranslateTimeline* self = SUB_CAST(spTranslateTimeline, timeline);
@@ -335,16 +335,16 @@ void _spTranslateTimeline_apply (const spTimeline* timeline, spSkeleton* skeleto
}
/* Interpolate between the previous frame and the current frame. */
- frameIndex = binarySearch(self->frames, self->framesCount, time, 3);
- prevFrameX = self->frames[frameIndex - 2];
- prevFrameY = self->frames[frameIndex - 1];
- frameTime = self->frames[frameIndex];
- percent = 1 - (time - frameTime) / (self->frames[frameIndex + TRANSLATE_PREV_FRAME_TIME] - frameTime);
- percent = spCurveTimeline_getCurvePercent(SUPER(self), frameIndex / 3 - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
+ frame = binarySearch(self->frames, self->framesCount, time, 3);
+ prevFrameX = self->frames[frame - 2];
+ prevFrameY = self->frames[frame - 1];
+ frameTime = self->frames[frame];
+ percent = 1 - (time - frameTime) / (self->frames[frame + TRANSLATE_PREV_TIME] - frameTime);
+ percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / 3 - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
- bone->x += (bone->data->x + prevFrameX + (self->frames[frameIndex + TRANSLATE_FRAME_X] - prevFrameX) * percent - bone->x)
+ bone->x += (bone->data->x + prevFrameX + (self->frames[frame + TRANSLATE_X] - prevFrameX) * percent - bone->x)
* alpha;
- bone->y += (bone->data->y + prevFrameY + (self->frames[frameIndex + TRANSLATE_FRAME_Y] - prevFrameY) * percent - bone->y)
+ bone->y += (bone->data->y + prevFrameY + (self->frames[frame + TRANSLATE_Y] - prevFrameY) * percent - bone->y)
* alpha;
UNUSED(lastTime);
@@ -368,7 +368,7 @@ void spTranslateTimeline_setFrame (spTranslateTimeline* self, int frameIndex, fl
void _spScaleTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents,
int* eventsCount, float alpha) {
spBone *bone;
- int frameIndex;
+ int frame;
float prevFrameX, prevFrameY, frameTime, percent;
spScaleTimeline* self = SUB_CAST(spScaleTimeline, timeline);
@@ -383,16 +383,16 @@ void _spScaleTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, f
}
/* Interpolate between the previous frame and the current frame. */
- frameIndex = binarySearch(self->frames, self->framesCount, time, 3);
- prevFrameX = self->frames[frameIndex - 2];
- prevFrameY = self->frames[frameIndex - 1];
- frameTime = self->frames[frameIndex];
- percent = 1 - (time - frameTime) / (self->frames[frameIndex + TRANSLATE_PREV_FRAME_TIME] - frameTime);
- percent = spCurveTimeline_getCurvePercent(SUPER(self), frameIndex / 3 - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
+ frame = binarySearch(self->frames, self->framesCount, time, 3);
+ prevFrameX = self->frames[frame - 2];
+ prevFrameY = self->frames[frame - 1];
+ frameTime = self->frames[frame];
+ percent = 1 - (time - frameTime) / (self->frames[frame + TRANSLATE_PREV_TIME] - frameTime);
+ percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / 3 - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
- bone->scaleX += (bone->data->scaleX * (prevFrameX + (self->frames[frameIndex + TRANSLATE_FRAME_X] - prevFrameX) * percent)
+ bone->scaleX += (bone->data->scaleX * (prevFrameX + (self->frames[frame + TRANSLATE_X] - prevFrameX) * percent)
- bone->scaleX) * alpha;
- bone->scaleY += (bone->data->scaleY * (prevFrameY + (self->frames[frameIndex + TRANSLATE_FRAME_Y] - prevFrameY) * percent)
+ bone->scaleY += (bone->data->scaleY * (prevFrameY + (self->frames[frame + TRANSLATE_Y] - prevFrameY) * percent)
- bone->scaleY) * alpha;
UNUSED(lastTime);
@@ -410,24 +410,68 @@ void spScaleTimeline_setFrame (spScaleTimeline* self, int frameIndex, float time
/**/
-static const int COLOR_PREV_FRAME_TIME = -5;
-static const int COLOR_FRAME_R = 1;
-static const int COLOR_FRAME_G = 2;
-static const int COLOR_FRAME_B = 3;
-static const int COLOR_FRAME_A = 4;
+void _spShearTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents,
+ int* eventsCount, float alpha) {
+ spBone *bone;
+ int frame;
+ float prevFrameX, prevFrameY, frameTime, percent;
+
+ spShearTimeline* self = SUB_CAST(spShearTimeline, timeline);
+
+ if (time < self->frames[0]) return; /* Time is before first frame. */
+
+ bone = skeleton->bones[self->boneIndex];
+ if (time >= self->frames[self->framesCount - 3]) { /* Time is after last frame. */
+ bone->shearX += (bone->data->shearX * self->frames[self->framesCount - 2] - bone->shearX) * alpha;
+ bone->shearY += (bone->data->shearY * self->frames[self->framesCount - 1] - bone->shearY) * alpha;
+ return;
+ }
+
+ /* Interpolate between the previous frame and the current frame. */
+ frame = binarySearch(self->frames, self->framesCount, time, 3);
+ prevFrameX = self->frames[frame - 2];
+ prevFrameY = self->frames[frame - 1];
+ frameTime = self->frames[frame];
+ percent = 1 - (time - frameTime) / (self->frames[frame + TRANSLATE_PREV_TIME] - frameTime);
+ percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / 3 - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
+
+ bone->shearX += (bone->data->shearX + (prevFrameX + (self->frames[frame + TRANSLATE_X] - prevFrameX) * percent)
+ - bone->shearX) * alpha;
+ bone->shearY += (bone->data->shearY + (prevFrameY + (self->frames[frame + TRANSLATE_Y] - prevFrameY) * percent)
+ - bone->shearY) * alpha;
+
+ UNUSED(lastTime);
+ UNUSED(firedEvents);
+ UNUSED(eventsCount);
+}
+
+spShearTimeline* spShearTimeline_create (int framesCount) {
+ return (spShearTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_SHEAR, 3, _spShearTimeline_apply);
+}
+
+void spShearTimeline_setFrame (spShearTimeline* self, int frameIndex, float time, float x, float y) {
+ spTranslateTimeline_setFrame(self, frameIndex, time, x, y);
+}
+
+/**/
+
+static const int COLOR_PREV_TIME = -5;
+static const int COLOR_R = 1;
+static const int COLOR_G = 2;
+static const int COLOR_B = 3;
+static const int COLOR_A = 4;
void _spColorTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents,
int* eventsCount, float alpha) {
spSlot *slot;
- int frameIndex;
- float prevFrameR, prevFrameG, prevFrameB, prevFrameA, percent, frameTime;
+ int frame;
+ float percent, frameTime;
float r, g, b, a;
spColorTimeline* self = (spColorTimeline*)timeline;
if (time < self->frames[0]) return; /* Time is before first frame. */
- if (time >= self->frames[self->framesCount - 5]) {
- /* Time is after last frame. */
+ if (time >= self->frames[self->framesCount - 5]) { /* Time is after last frame */
int i = self->framesCount - 1;
r = self->frames[i - 3];
g = self->frames[i - 2];
@@ -435,19 +479,20 @@ void _spColorTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, f
a = self->frames[i];
} else {
/* Interpolate between the previous frame and the current frame. */
- frameIndex = binarySearch(self->frames, self->framesCount, time, 5);
- prevFrameR = self->frames[frameIndex - 4];
- prevFrameG = self->frames[frameIndex - 3];
- prevFrameB = self->frames[frameIndex - 2];
- prevFrameA = self->frames[frameIndex - 1];
- frameTime = self->frames[frameIndex];
- percent = 1 - (time - frameTime) / (self->frames[frameIndex + COLOR_PREV_FRAME_TIME] - frameTime);
- percent = spCurveTimeline_getCurvePercent(SUPER(self), frameIndex / 5 - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
+ frame = binarySearch(self->frames, self->framesCount, time, 5);
+ frameTime = self->frames[frame];
+ percent = 1 - (time - frameTime) / (self->frames[frame + COLOR_PREV_TIME] - frameTime);
+ percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / 5 - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
- r = prevFrameR + (self->frames[frameIndex + COLOR_FRAME_R] - prevFrameR) * percent;
- g = prevFrameG + (self->frames[frameIndex + COLOR_FRAME_G] - prevFrameG) * percent;
- b = prevFrameB + (self->frames[frameIndex + COLOR_FRAME_B] - prevFrameB) * percent;
- a = prevFrameA + (self->frames[frameIndex + COLOR_FRAME_A] - prevFrameA) * percent;
+ r = self->frames[frame - 4];
+ g = self->frames[frame - 3];
+ b = self->frames[frame - 2];
+ a = self->frames[frame - 1];
+
+ r += (self->frames[frame + COLOR_R] - r) * percent;
+ g += (self->frames[frame + COLOR_G] - g) * percent;
+ b += (self->frames[frame + COLOR_B] - b) * percent;
+ a += (self->frames[frame + COLOR_A] - a) * percent;
}
slot = skeleton->slots[self->slotIndex];
if (alpha < 1) {
@@ -484,7 +529,7 @@ void spColorTimeline_setFrame (spColorTimeline* self, int frameIndex, float time
void _spAttachmentTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time,
spEvent** firedEvents, int* eventsCount, float alpha) {
- int frameIndex;
+ int frame;
const char* attachmentName;
spAttachmentTimeline* self = (spAttachmentTimeline*)timeline;
@@ -494,11 +539,11 @@ void _spAttachmentTimeline_apply (const spTimeline* timeline, spSkeleton* skelet
} else if (lastTime > time) /**/
lastTime = -1;
- frameIndex = time >= self->frames[self->framesCount - 1] ?
+ frame = time >= self->frames[self->framesCount - 1] ?
self->framesCount - 1 : binarySearch1(self->frames, self->framesCount, time) - 1;
- if (self->frames[frameIndex] < lastTime) return;
+ if (self->frames[frame] < lastTime) return;
- attachmentName = self->attachmentNames[frameIndex];
+ attachmentName = self->attachmentNames[frame];
spSlot_setAttachment(skeleton->slots[self->slotIndex],
attachmentName ? spSkeleton_getAttachmentForSlotIndex(skeleton, self->slotIndex, attachmentName) : 0);
@@ -547,7 +592,7 @@ void spAttachmentTimeline_setFrame (spAttachmentTimeline* self, int frameIndex,
void _spEventTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents,
int* eventsCount, float alpha) {
spEventTimeline* self = (spEventTimeline*)timeline;
- int frameIndex;
+ int frame;
if (!firedEvents) return;
if (lastTime > time) { /* Fire events after last time for looped animations. */
@@ -558,18 +603,18 @@ void _spEventTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, f
if (time < self->frames[0]) return; /* Time is before first frame. */
if (lastTime < self->frames[0])
- frameIndex = 0;
+ frame = 0;
else {
- float frame;
- frameIndex = binarySearch1(self->frames, self->framesCount, lastTime);
- frame = self->frames[frameIndex];
- while (frameIndex > 0) { /* Fire multiple events with the same frame. */
- if (self->frames[frameIndex - 1] != frame) break;
- frameIndex--;
+ float frameTime;
+ frame = binarySearch1(self->frames, self->framesCount, lastTime);
+ frameTime = self->frames[frame];
+ while (frame > 0) { /* Fire multiple events with the same frame. */
+ if (self->frames[frame - 1] != frameTime) break;
+ frame--;
}
}
- for (; frameIndex < self->framesCount && time >= self->frames[frameIndex]; ++frameIndex) {
- firedEvents[*eventsCount] = self->events[frameIndex];
+ for (; frame < self->framesCount && time >= self->frames[frame]; ++frame) {
+ firedEvents[*eventsCount] = self->events[frame];
(*eventsCount)++;
}
}
@@ -610,18 +655,18 @@ void spEventTimeline_setFrame (spEventTimeline* self, int frameIndex, spEvent* e
void _spDrawOrderTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time,
spEvent** firedEvents, int* eventsCount, float alpha) {
int i;
- int frameIndex;
+ int frame;
const int* drawOrderToSetupIndex;
spDrawOrderTimeline* self = (spDrawOrderTimeline*)timeline;
if (time < self->frames[0]) return; /* Time is before first frame. */
if (time >= self->frames[self->framesCount - 1]) /* Time is after last frame. */
- frameIndex = self->framesCount - 1;
+ frame = self->framesCount - 1;
else
- frameIndex = binarySearch1(self->frames, self->framesCount, time) - 1;
+ frame = binarySearch1(self->frames, self->framesCount, time) - 1;
- drawOrderToSetupIndex = self->drawOrders[frameIndex];
+ drawOrderToSetupIndex = self->drawOrders[frame];
if (!drawOrderToSetupIndex)
memcpy(skeleton->drawOrder, skeleton->slots, self->slotsCount * sizeof(spSlot*));
else {
@@ -676,7 +721,7 @@ void spDrawOrderTimeline_setFrame (spDrawOrderTimeline* self, int frameIndex, fl
void _spFFDTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents,
int* eventsCount, float alpha) {
- int frameIndex, i, vertexCount;
+ int frame, i, vertexCount;
float percent, frameTime;
const float* prevVertices;
const float* nextVertices;
@@ -727,13 +772,13 @@ void _spFFDTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, flo
}
/* Interpolate between the previous frame and the current frame. */
- frameIndex = binarySearch1(self->frames, self->framesCount, time);
- frameTime = self->frames[frameIndex];
- percent = 1 - (time - frameTime) / (self->frames[frameIndex - 1] - frameTime);
- percent = spCurveTimeline_getCurvePercent(SUPER(self), frameIndex - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
+ frame = binarySearch1(self->frames, self->framesCount, time);
+ frameTime = self->frames[frame];
+ percent = 1 - (time - frameTime) / (self->frames[frame - 1] - frameTime);
+ percent = spCurveTimeline_getCurvePercent(SUPER(self), frame - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
- prevVertices = self->frameVertices[frameIndex - 1];
- nextVertices = self->frameVertices[frameIndex];
+ prevVertices = self->frameVertices[frame - 1];
+ nextVertices = self->frameVertices[frame];
if (alpha < 1) {
for (i = 0; i < vertexCount; ++i) {
@@ -790,38 +835,37 @@ void spFFDTimeline_setFrame (spFFDTimeline* self, int frameIndex, float time, fl
/**/
-static const int IKCONSTRAINT_PREV_FRAME_TIME = -3;
-static const int IKCONSTRAINT_PREV_FRAME_MIX = -2;
-static const int IKCONSTRAINT_PREV_FRAME_BEND_DIRECTION = -1;
-static const int IKCONSTRAINT_FRAME_MIX = 1;
+static const int IKCONSTRAINT_PREV_TIME = -3;
+static const int IKCONSTRAINT_PREV_MIX = -2;
+static const int IKCONSTRAINT_PREV_BEND_DIRECTION = -1;
+static const int IKCONSTRAINT_MIX = 1;
void _spIkConstraintTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time,
spEvent** firedEvents, int* eventsCount, float alpha) {
- int frameIndex;
- float prevFrameMix, frameTime, percent, mix;
- spIkConstraint* ikConstraint;
+ int frame;
+ float frameTime, percent, mix;
+ spIkConstraint* constraint;
spIkConstraintTimeline* self = (spIkConstraintTimeline*)timeline;
if (time < self->frames[0]) return; /* Time is before first frame. */
- ikConstraint = skeleton->ikConstraints[self->ikConstraintIndex];
+ constraint = skeleton->ikConstraints[self->ikConstraintIndex];
if (time >= self->frames[self->framesCount - 3]) { /* Time is after last frame. */
- ikConstraint->mix += (self->frames[self->framesCount - 2] - ikConstraint->mix) * alpha;
- ikConstraint->bendDirection = (int)self->frames[self->framesCount - 1];
+ constraint->mix += (self->frames[self->framesCount + IKCONSTRAINT_PREV_MIX] - constraint->mix) * alpha;
+ constraint->bendDirection = (int)self->frames[self->framesCount + IKCONSTRAINT_PREV_BEND_DIRECTION];
return;
}
/* Interpolate between the previous frame and the current frame. */
- frameIndex = binarySearch(self->frames, self->framesCount, time, 3);
- prevFrameMix = self->frames[frameIndex + IKCONSTRAINT_PREV_FRAME_MIX];
- frameTime = self->frames[frameIndex];
- percent = 1 - (time - frameTime) / (self->frames[frameIndex + IKCONSTRAINT_PREV_FRAME_TIME] - frameTime);
- percent = spCurveTimeline_getCurvePercent(SUPER(self), frameIndex / 3 - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
+ frame = binarySearch(self->frames, self->framesCount, time, 3);
+ frameTime = self->frames[frame];
+ percent = 1 - (time - frameTime) / (self->frames[frame + IKCONSTRAINT_PREV_TIME] - frameTime);
+ percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / 3 - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
- mix = prevFrameMix + (self->frames[frameIndex + IKCONSTRAINT_FRAME_MIX] - prevFrameMix) * percent;
- ikConstraint->mix += (mix - ikConstraint->mix) * alpha;
- ikConstraint->bendDirection = (int)self->frames[frameIndex + IKCONSTRAINT_PREV_FRAME_BEND_DIRECTION];
+ mix = self->frames[frame + IKCONSTRAINT_PREV_MIX];
+ constraint->mix += (mix + (self->frames[frame + IKCONSTRAINT_MIX] - mix) * percent - constraint->mix) * alpha;
+ constraint->bendDirection = (int)self->frames[frame + IKCONSTRAINT_PREV_BEND_DIRECTION];
UNUSED(lastTime);
UNUSED(firedEvents);
@@ -840,3 +884,66 @@ void spIkConstraintTimeline_setFrame (spIkConstraintTimeline* self, int frameInd
}
/**/
+static const int TRANSFORMCONSTRAINT_PREV_TIME = -5;
+static const int TRANSFORMCONSTRAINT_PREV_ROTATE_MIX = -4;
+static const int TRANSFORMCONSTRAINT_PREV_TRANSLATE_MIX = -3;
+static const int TRANSFORMCONSTRAINT_PREV_SCALE_MIX = -2;
+static const int TRANSFORMCONSTRAINT_PREV_SHEAR_MIX = -1;
+static const int TRANSFORMCONSTRAINT_ROTATE_MIX = 1;
+static const int TRANSFORMCONSTRAINT_TRANSLATE_MIX = 2;
+static const int TRANSFORMCONSTRAINT_SCALE_MIX = 3;
+static const int TRANSFORMCONSTRAINT_SHEAR_MIX = 4;
+
+void _spTransformConstraintTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time,
+ spEvent** firedEvents, int* eventsCount, float alpha) {
+ int frame;
+ float frameTime, percent, rotate, translate, scale, shear;
+ spTransformConstraint* constraint;
+ spTransformConstraintTimeline* self = (spTransformConstraintTimeline*)timeline;
+
+ if (time < self->frames[0]) return; /* Time is before first frame. */
+
+ constraint = skeleton->transformConstraints[self->transformConstraintIndex];
+
+ if (time >= self->frames[self->framesCount - 5]) { /* Time is after last frame. */
+ int len = self->framesCount;
+ constraint->rotateMix += (self->frames[len + TRANSFORMCONSTRAINT_PREV_ROTATE_MIX] - constraint->rotateMix) * alpha;
+ constraint->translateMix += (self->frames[len + TRANSFORMCONSTRAINT_PREV_TRANSLATE_MIX] - constraint->translateMix) * alpha;
+ constraint->scaleMix += (self->frames[len + TRANSFORMCONSTRAINT_PREV_SCALE_MIX] - constraint->scaleMix) * alpha;
+ constraint->shearMix += (self->frames[len + TRANSFORMCONSTRAINT_PREV_SHEAR_MIX] - constraint->shearMix) * alpha;
+ return;
+ }
+
+ /* Interpolate between the previous frame and the current frame. */
+ frame = binarySearch(self->frames, self->framesCount, time, 5);
+ frameTime = self->frames[frame];
+ percent = 1 - (time - frameTime) / (self->frames[frame + TRANSFORMCONSTRAINT_PREV_TIME] - frameTime);
+ percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / 5 - 1, percent < 0 ? 0 : (percent > 1 ? 1 : percent));
+
+ rotate = self->frames[frame + TRANSFORMCONSTRAINT_PREV_ROTATE_MIX];
+ translate = self->frames[frame + TRANSFORMCONSTRAINT_PREV_TRANSLATE_MIX];
+ scale = self->frames[frame + TRANSFORMCONSTRAINT_PREV_SCALE_MIX];
+ shear = self->frames[frame + TRANSFORMCONSTRAINT_PREV_SHEAR_MIX];
+ constraint->rotateMix += (rotate + (self->frames[frame + TRANSFORMCONSTRAINT_ROTATE_MIX] - rotate) * percent - constraint->rotateMix) * alpha;
+ constraint->translateMix += (translate + (self->frames[frame + TRANSFORMCONSTRAINT_TRANSLATE_MIX] - translate) * percent - constraint->translateMix)
+ * alpha;
+ constraint->scaleMix += (scale + (self->frames[frame + TRANSFORMCONSTRAINT_SCALE_MIX] - scale) * percent - constraint->scaleMix) * alpha;
+ constraint->shearMix += (shear + (self->frames[frame + TRANSFORMCONSTRAINT_SHEAR_MIX] - shear) * percent - constraint->shearMix) * alpha;
+
+ UNUSED(lastTime);
+ UNUSED(firedEvents);
+ UNUSED(eventsCount);
+}
+
+spTransformConstraintTimeline* spTransformConstraintTimeline_create (int framesCount) {
+ return (spTransformConstraintTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_TRANSFORMCONSTRAINT, 5, _spTransformConstraintTimeline_apply);
+}
+
+void spTransformConstraintTimeline_setFrame (spTransformConstraintTimeline* self, int frameIndex, float time, float rotateMix, float translateMix, float scaleMix, float shearMix) {
+ frameIndex *= 5;
+ self->frames[frameIndex] = time;
+ self->frames[frameIndex + 1] = rotateMix;
+ self->frames[frameIndex + 2] = translateMix;
+ self->frames[frameIndex + 3] = scaleMix;
+ self->frames[frameIndex + 4] = shearMix;
+}
diff --git a/spine-c/src/spine/Bone.c b/spine-c/src/spine/Bone.c
index 2432a20e2..d37a9ad35 100644
--- a/spine-c/src/spine/Bone.c
+++ b/spine-c/src/spine/Bone.c
@@ -31,7 +31,7 @@
#include
#include
-
+#include
static int yDown;
void spBone_setYDown (int value) {
@@ -56,14 +56,14 @@ void spBone_dispose (spBone* self) {
}
void spBone_updateWorldTransform (spBone* self) {
- spBone_updateWorldTransformWith(self, self->x, self->y, self->rotation, self->scaleX, self->scaleY);
+ spBone_updateWorldTransformWith(self, self->x, self->y, self->rotation, self->scaleX, self->scaleY, self->shearX, self->shearY);
}
-void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rotation, float scaleX, float scaleY) {
- float radians = rotation * DEG_RAD;
- float cosine = COS(radians);
- float sine = SIN(radians);
- float la = cosine * scaleX, lb = -sine * scaleY, lc = sine * scaleX, ld = cosine * scaleY;
+void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rotation, float scaleX, float scaleY, float shearX, float shearY) {
+ float cosine, sine;
+ float rotationY = rotation + 90 + shearY;
+ float la = COS_DEG(rotation + shearX) * scaleX, lb = COS_DEG(rotationY) * scaleY;
+ float lc = SIN_DEG(rotation + shearX) * scaleX, ld = SIN_DEG(rotationY) * scaleY;
float pa, pb, pc, pd, temp;
spBone* parent = self->parent;
@@ -115,8 +115,7 @@ void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rota
pc = 0;
pd = 1;
do {
- cosine = COS(parent->appliedRotation * DEG_RAD);
- sine = SIN(parent->appliedRotation * DEG_RAD);
+ cosine = COS_DEG(parent->appliedRotation); sine = SIN_DEG(parent->appliedRotation);
temp = pa * cosine + pb * sine;
pb = pa * -sine + pb * cosine;
pa = temp;
@@ -138,14 +137,10 @@ void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rota
pd = 1;
do {
float za, zb, zc, zd;
- float r = parent->rotation;
- float psx = parent->appliedScaleX, psy = parent->appliedScaleY;
- cosine = COS(r * DEG_RAD);
- sine = SIN(r * DEG_RAD);
- za = cosine * psx;
- zb = -sine * psy;
- zc = sine * psx;
- zd = cosine * psy;
+ float r = parent->appliedRotation;
+ float psx = parent->appliedScaleX; float psy = parent->appliedScaleY;
+ cosine = COS_DEG(r); sine = SIN_DEG(r);
+ za = cosine * psx; zb = -sine * psy; zc = sine * psx; zd = cosine * psy;
temp = pa * za + pb * zc;
pb = pa * zb + pb * zd;
pa = temp;
@@ -154,8 +149,8 @@ void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rota
pc = temp;
if (psx < 0) r = -r;
- cosine = COS(-r * DEG_RAD);
- sine = SIN(-r * DEG_RAD);
+ cosine = COS_DEG(-r);
+ sine = SIN_DEG(-r);
temp = pa * cosine + pb * sine;
pb = pa * -sine + pb * cosine;
pa = temp;
@@ -193,6 +188,8 @@ void spBone_setToSetupPose (spBone* self) {
self->rotation = self->data->rotation;
self->scaleX = self->data->scaleX;
self->scaleY = self->data->scaleY;
+ self->shearX = self->data->shearX;
+ self->shearY = self->data->shearY;
}
float spBone_getWorldRotationX (spBone* self) {
diff --git a/spine-c/src/spine/IkConstraint.c b/spine-c/src/spine/IkConstraint.c
index e4c61b1b8..5c533c9a0 100644
--- a/spine-c/src/spine/IkConstraint.c
+++ b/spine-c/src/spine/IkConstraint.c
@@ -34,181 +34,187 @@
#include
#include
-spIkConstraint* spIkConstraint_create (spIkConstraintData* data, const spSkeleton* skeleton) {
- int i;
+spIkConstraint *spIkConstraint_create(spIkConstraintData *data, const spSkeleton *skeleton) {
+ int i;
- spIkConstraint* self = NEW(spIkConstraint);
- CONST_CAST(spIkConstraintData*, self->data) = data;
- self->bendDirection = data->bendDirection;
- self->mix = data->mix;
+ spIkConstraint *self = NEW(spIkConstraint);
+ CONST_CAST(spIkConstraintData*, self->data) = data;
+ self->bendDirection = data->bendDirection;
+ self->mix = data->mix;
- self->bonesCount = self->data->bonesCount;
- self->bones = MALLOC(spBone*, self->bonesCount);
- for (i = 0; i < self->bonesCount; ++i)
- self->bones[i] = spSkeleton_findBone(skeleton, self->data->bones[i]->name);
- self->target = spSkeleton_findBone(skeleton, self->data->target->name);
+ self->bonesCount = self->data->bonesCount;
+ self->bones = MALLOC(spBone*, self->bonesCount);
+ for (i = 0; i < self->bonesCount; ++i)
+ self->bones[i] = spSkeleton_findBone(skeleton, self->data->bones[i]->name);
+ self->target = spSkeleton_findBone(skeleton, self->data->target->name);
- return self;
+ return self;
}
-void spIkConstraint_dispose (spIkConstraint* self) {
- FREE(self->bones);
- FREE(self);
+void spIkConstraint_dispose(spIkConstraint *self) {
+ FREE(self->bones);
+ FREE(self);
}
-void spIkConstraint_apply (spIkConstraint* self) {
- switch (self->bonesCount) {
- case 1:
- spIkConstraint_apply1(self->bones[0], self->target->worldX, self->target->worldY, self->mix);
- break;
- case 2:
- spIkConstraint_apply2(self->bones[0], self->bones[1], self->target->worldX, self->target->worldY, self->bendDirection,
- self->mix);
- break;
- }
+void spIkConstraint_apply(spIkConstraint *self) {
+ switch (self->bonesCount) {
+ case 1:
+ spIkConstraint_apply1(self->bones[0], self->target->worldX, self->target->worldY, self->mix);
+ break;
+ case 2:
+ spIkConstraint_apply2(self->bones[0], self->bones[1], self->target->worldX, self->target->worldY,
+ self->bendDirection,
+ self->mix);
+ break;
+ }
}
-void spIkConstraint_apply1 (spBone* bone, float targetX, float targetY, float alpha) {
- float parentRotation = !bone->parent ? 0 : spBone_getWorldRotationX(bone->parent);
- float rotation = bone->rotation;
- float rotationIK = ATAN2(targetY - bone->worldY, targetX - bone->worldX) * RAD_DEG - parentRotation;
- if ((bone->worldSignX != bone->worldSignY) != (bone->skeleton->flipX != (bone->skeleton->flipY != spBone_isYDown())))
- rotationIK = 360 - rotationIK;
- if (rotationIK > 180) rotationIK -= 360;
- else if (rotationIK < -180) rotationIK += 360;
- spBone_updateWorldTransformWith(bone, bone->x, bone->y, rotation + (rotationIK - rotation) * alpha, bone->appliedScaleX,
- bone->appliedScaleY);
+void spIkConstraint_apply1(spBone *bone, float targetX, float targetY, float alpha) {
+ spBone *pp = bone->parent;
+ float id = 1 / (pp->a * pp->d - pp->b * pp->c);
+ float x = targetX - pp->worldX, y = targetY - pp->worldY;
+ float tx = (x * pp->d - y * pp->b) * id - bone->x, ty = (y * pp->a - x * pp->c) * id - bone->y;
+ float rotationIK = ATAN2(ty, tx) * RAD_DEG - bone->shearX;
+ if (bone->scaleX < 0) rotationIK += 180;
+ if (rotationIK > 180)
+ rotationIK -= 360;
+ else if (rotationIK < -180) rotationIK += 360;
+ spBone_updateWorldTransformWith(bone, bone->x, bone->y, bone->rotation + (rotationIK - bone->rotation) * alpha,
+ bone->appliedScaleX,
+ bone->appliedScaleY, bone->shearX, bone->shearY);
}
-void spIkConstraint_apply2 (spBone* parent, spBone* child, float targetX, float targetY, int bendDir, float alpha) {
- float px = parent->x, py = parent->y, psx = parent->appliedScaleX, psy = parent->appliedScaleY;
- float cx = child->x, cy = child->y, csx = child->appliedScaleX, cwx = child->worldX, cwy = child->worldY;
- int o1, o2, s2, u;
- spBone* pp = parent->parent;
- float tx, ty, dx, dy, l1, l2, a1, a2, r;
- if (alpha == 0) return;
- if (psx < 0) {
- psx = -psx;
- o1 = 180;
- s2 = -1;
- } else {
- o1 = 0;
- s2 = 1;
- }
- if (psy < 0) {
- psy = -psy;
- s2 = -s2;
- }
- r = psx - psy;
- u = (r < 0 ? -r : r) <= 0.0001f;
- if (!u && cy != 0) {
- cwx = parent->a * cx + parent->worldX;
- cwy = parent->c * cx + parent->worldY;
- cy = 0;
- }
- if (csx < 0) {
- csx = -csx;
- o2 = 180;
- } else
- o2 = 0;
- if (!pp) {
- tx = targetX - px;
- ty = targetY - py;
- dx = cwx - px;
- dy = cwy - py;
- } else {
- float a = pp->a, b = pp->b, c = pp->c, d = pp->d, invDet = 1 / (a * d - b * c);
- float wx = pp->worldX, wy = pp->worldY, x = targetX - wx, y = targetY - wy;
- tx = (x * d - y * b) * invDet - px;
- ty = (y * a - x * c) * invDet - py;
- x = cwx - wx;
- y = cwy - wy;
- dx = (x * d - y * b) * invDet - px;
- dy = (y * a - x * c) * invDet - py;
- }
- l1 = SQRT(dx * dx + dy * dy);
- l2 = child->data->length * csx;
- if (u) {
- float cos, a, o;
- l2 *= psx;
- cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2);
- if (cos < -1) cos = -1;
- else if (cos > 1) cos = 1;
- a2 = ACOS(cos) * bendDir;
- a = l1 + l2 * cos;
- o = l2 * SIN(a2);
- a1 = ATAN2(ty * a - tx * o, tx * a + ty * o);
- } else {
- float a = psx * l2, b = psy * l2, ta = ATAN2(ty, tx);
- float aa = a * a, bb = b * b, ll = l1 * l1, dd = tx * tx + ty * ty;
- float c0 = bb * ll + aa * dd - aa * bb, c1 = -2 * bb * l1, c2 = bb - aa;
- float d = c1 * c1 - 4 * c2 * c0;
- float minAngle = 0, minDist = FLT_MAX, minX = 0, minY = 0;
- float maxAngle = 0, maxDist = 0, maxX = 0, maxY = 0;
- float x = l1 + a, dist = x * x, angle, y;
- if (d >= 0) {
- float q = SQRT(d), r0, r1, ar0, ar1;;
- if (c1 < 0) q = -q;
- q = -(c1 + q) / 2;
- r0 = q / c2;
- r1 = c0 / q;
- ar0 = r0 < 0 ? -r0 : r0;
- ar1 = r1 < 0 ? -r1 : r1;
- r = ar0 < ar1 ? r0 : r1;
- if (r * r <= dd) {
- float y1 = SQRT(dd - r * r) * bendDir;
- a1 = ta - ATAN2(y1, r);
- a2 = ATAN2(y1 / psy, (r - l1) / psx);
- goto outer;
- }
- }
- if (dist > maxDist) {
- maxAngle = 0;
- maxDist = dist;
- maxX = x;
- }
- x = l1 - a;
- dist = x * x;
- if (dist < minDist) {
- minAngle = PI;
- minDist = dist;
- minX = x;
- }
- angle = ACOS(-a * l1 / (aa - bb));
- x = a * COS(angle) + l1;
- y = b * SIN(angle);
- dist = x * x + y * y;
- if (dist < minDist) {
- minAngle = angle;
- minDist = dist;
- minX = x;
- minY = y;
- }
- if (dist > maxDist) {
- maxAngle = angle;
- maxDist = dist;
- maxX = x;
- maxY = y;
- }
- if (dd <= (minDist + maxDist) / 2) {
- a1 = ta - ATAN2(minY * bendDir, minX);
- a2 = minAngle * bendDir;
- } else {
- a1 = ta - ATAN2(maxY * bendDir, maxX);
- a2 = maxAngle * bendDir;
- }
- }
- outer: {
- float os = ATAN2(cy, cx) * s2;
- a1 = (a1 - os) * RAD_DEG + o1;
- a2 = (a2 + os) * RAD_DEG * s2 + o2;
- if (a1 > 180) a1 -= 360;
- else if (a1 < -180) a1 += 360;
- if (a2 > 180) a2 -= 360;
- else if (a2 < -180) a2 += 360;
- r = parent->rotation;
- spBone_updateWorldTransformWith(parent, px, py, r + (a1 - r) * alpha, parent->appliedScaleX, parent->appliedScaleY);
- r = child->rotation;
- spBone_updateWorldTransformWith(child, cx, cy, r + (a2 - r) * alpha, child->appliedScaleX, child->appliedScaleY);
- }
+void spIkConstraint_apply2(spBone *parent, spBone *child, float targetX, float targetY, int bendDir, float alpha) {
+ float px = parent->x, py = parent->y, psx = parent->appliedScaleX, psy = parent->appliedScaleY;
+ int os1, os2, s2;
+ float cx, cy, csx;
+ int u;
+ spBone *pp;
+ float ppa, ppb, ppc, ppd, id;
+ float x, y;
+ float tx, ty;
+ float dx, dy;
+ float l1, l2, a1, a2;
+ float os;
+ float rotation;
+
+ if (alpha == 0) return;
+ if (psx < 0) {
+ psx = -psx;
+ os1 = 180;
+ s2 = -1;
+ } else {
+ os1 = 0;
+ s2 = 1;
+ }
+ if (psy < 0) {
+ psy = -psy;
+ s2 = -s2;
+ }
+ cx = child->x; cy = child->y; csx = child->appliedScaleX;
+ u = ABS(psx - psy) <= 0.0001f;
+ if (!u && cy != 0) {
+ CONST_CAST(float, child->worldX) = parent->a * cx + parent->worldX;
+ CONST_CAST(float, child->worldY) = parent->c * cx + parent->worldY;
+ cy = 0;
+ }
+ if (csx < 0) {
+ csx = -csx;
+ os2 = 180;
+ } else
+ os2 = 0;
+ pp = parent->parent;
+ ppa = pp->a; ppb = pp->b; ppc = pp->c; ppd = pp->d; id = 1 / (ppa * ppd - ppb * ppc);
+ x = targetX - pp->worldX; y = targetY - pp->worldY;
+ tx = (x * ppd - y * ppb) * id - px; ty = (y * ppa - x * ppc) * id - py;
+ x = child->worldX - pp->worldX;
+ y = child->worldY - pp->worldY;
+ dx = (x * ppd - y * ppb) * id - px; dy = (y * ppa - x * ppc) * id - py;
+ l1 = SQRT(dx * dx + dy * dy); l2 = child->data->length * csx;
+ outer:
+ if (u) {
+ float cosine, a, o;
+ l2 *= psx;
+ cosine = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2);
+ if (cosine < -1)
+ cosine = -1;
+ else if (cosine > 1) cosine = 1;
+ a2 = ACOS(cosine) * bendDir;
+ a = l1 + l2 * cosine, o = l2 * SIN(a2);
+ a1 = ATAN2(ty * a - tx * o, tx * a + ty * o);
+ } else {
+ float minAngle, minDist, minX, minY, maxAngle, maxDist, maxX, maxY, angle;
+ float a = psx * l2, b = psy * l2, ta = ATAN2(ty, tx);
+ float aa = a * a, bb = b * b, ll = l1 * l1, dd = tx * tx + ty * ty;
+ float c0 = bb * ll + aa * dd - aa * bb, c1 = -2 * bb * l1, c2 = bb - aa;
+ float d = c1 * c1 - 4 * c2 * c0;
+ if (d >= 0) {
+ float q = SQRT(d), r0, r, r1;
+ if (c1 < 0) q = -q;
+ q = -(c1 + q) / 2;
+ r0 = q / c2; r1 = c0 / q;
+ r = ABS(r0) < ABS(r1) ? r0 : r1;
+ if (r * r <= dd) {
+ y = SQRT(dd - r * r) * bendDir;
+ a1 = ta - ATAN2(y, r);
+ a2 = ATAN2(y / psy, (r - l1) / psx);
+ goto outer;
+ }
+ }
+ minAngle = 0; minDist = FLT_MAX; minX = 0; minY = 0;
+ maxAngle = 0; maxDist = 0; maxX = 0; maxY = 0;
+ x = l1 + a;
+ d = x * x;
+ if (d > maxDist) {
+ maxAngle = 0;
+ maxDist = d;
+ maxX = x;
+ }
+ x = l1 - a;
+ d = x * x;
+ if (d < minDist) {
+ minAngle = PI;
+ minDist = d;
+ minX = x;
+ }
+ angle = ACOS(-a * l1 / (aa - bb));
+ x = a * COS(angle) + l1;
+ y = b * SIN(angle);
+ d = x * x + y * y;
+ if (d < minDist) {
+ minAngle = angle;
+ minDist = d;
+ minX = x;
+ minY = y;
+ }
+ if (d > maxDist) {
+ maxAngle = angle;
+ maxDist = d;
+ maxX = x;
+ maxY = y;
+ }
+ if (dd <= (minDist + maxDist) / 2) {
+ a1 = ta - ATAN2(minY * bendDir, minX);
+ a2 = minAngle * bendDir;
+ } else {
+ a1 = ta - ATAN2(maxY * bendDir, maxX);
+ a2 = maxAngle * bendDir;
+ }
+ }
+ os = ATAN2(cy, cx) * s2;
+ a1 = (a1 - os) * RAD_DEG + os1;
+ a2 = ((a2 + os) * RAD_DEG - child->shearX) * s2 + os2;
+ if (a1 > 180)
+ a1 -= 360;
+ else if (a1 < -180) a1 += 360;
+ if (a2 > 180)
+ a2 -= 360;
+ else if (a2 < -180) a2 += 360;
+
+ rotation = parent->rotation;
+ spBone_updateWorldTransformWith(parent, px, py, rotation + (a1 - rotation) * alpha, parent->appliedScaleX,
+ parent->appliedScaleY, 0, 0);
+ rotation = child->rotation;
+ spBone_updateWorldTransformWith(child, cx, cy, rotation + (a2 - rotation) * alpha, child->appliedScaleX,
+ child->appliedScaleY, child->shearX, child->shearY);
}
diff --git a/spine-c/src/spine/Skeleton.c b/spine-c/src/spine/Skeleton.c
index 010e81dd5..2c6807eb0 100644
--- a/spine-c/src/spine/Skeleton.c
+++ b/spine-c/src/spine/Skeleton.c
@@ -169,8 +169,7 @@ void spSkeleton_updateCache (const spSkeleton* self) {
for (i = 0; i < self->transformConstraintsCount; ++i) {
spTransformConstraint* transformConstraint = self->transformConstraints[i];
for (ii = internal->updateCacheCount - 1; ii >= 0; --ii) {
- void* object = internal->updateCache[ii].object;
- if (object == transformConstraint->bone || object == transformConstraint->target) {
+ if (internal->updateCache[ii].object == transformConstraint->bone) {
int insertIndex = ii + 1;
update = internal->updateCache + insertIndex;
memmove(update + 1, update, (internal->updateCacheCount - insertIndex) * sizeof(_spUpdate));
@@ -220,10 +219,12 @@ void spSkeleton_setBonesToSetupPose (const spSkeleton* self) {
}
for (i = 0; i < self->transformConstraintsCount; ++i) {
- spTransformConstraint* transformConstraint = self->transformConstraints[i];
- transformConstraint->translateMix = transformConstraint->data->translateMix;
- transformConstraint->x = transformConstraint->data->x;
- transformConstraint->y = transformConstraint->data->y;
+ spTransformConstraint* constraint = self->transformConstraints[i];
+ spTransformConstraintData* data = constraint->data;
+ constraint->rotateMix = data->rotateMix;
+ constraint->translateMix = data->translateMix;
+ constraint->scaleMix = data->scaleMix;
+ constraint->shearMix = data->shearMix;
}
}
diff --git a/spine-c/src/spine/SkeletonJson.c b/spine-c/src/spine/SkeletonJson.c
index d8a5d10e2..2537c66c6 100644
--- a/spine-c/src/spine/SkeletonJson.c
+++ b/spine-c/src/spine/SkeletonJson.c
@@ -148,10 +148,11 @@ static spAnimation* _spSkeletonJson_readAnimation (spSkeletonJson* self, Json* r
Json* bones = Json_getItem(root, "bones");
Json* slots = Json_getItem(root, "slots");
Json* ik = Json_getItem(root, "ik");
+ Json* transform = Json_getItem(root, "transform");
Json* ffd = Json_getItem(root, "ffd");
Json* drawOrder = Json_getItem(root, "drawOrder");
Json* events = Json_getItem(root, "events");
- Json *boneMap, *slotMap, *ikMap, *ffdMap;
+ Json *boneMap, *slotMap, *constraintMap, *ffdMap;
if (!drawOrder) drawOrder = Json_getItem(root, "draworder");
for (boneMap = bones ? bones->child : 0; boneMap; boneMap = boneMap->next)
@@ -238,10 +239,15 @@ static spAnimation* _spSkeletonJson_readAnimation (spSkeletonJson* self, Json* r
} else {
int isScale = strcmp(timelineArray->name, "scale") == 0;
- if (isScale || strcmp(timelineArray->name, "translate") == 0) {
- float scale = isScale ? 1 : self->scale;
- spTranslateTimeline *timeline =
- isScale ? spScaleTimeline_create(timelineArray->size) : spTranslateTimeline_create(timelineArray->size);
+ int isTranslate = strcmp(timelineArray->name, "translate") == 0;
+ int isShear = strcmp(timelineArray->name, "shear") == 0;
+ if (isScale || isTranslate || isShear) {
+ float scale = isTranslate ? self->scale: 1;
+ spTranslateTimeline *timeline = 0;
+ if (isScale) timeline = spScaleTimeline_create(timelineArray->size);
+ else if (isTranslate) timeline = spTranslateTimeline_create(timelineArray->size);
+ else if (isShear) timeline = spShearTimeline_create(timelineArray->size);
+
timeline->boneIndex = boneIndex;
for (frame = timelineArray->child, i = 0; frame; frame = frame->next, ++i) {
spTranslateTimeline_setFrame(timeline, i, Json_getFloat(frame, "time", 0), Json_getFloat(frame, "x", 0) * scale,
@@ -261,23 +267,43 @@ static spAnimation* _spSkeletonJson_readAnimation (spSkeletonJson* self, Json* r
}
}
- /* IK timelines. */
- for (ikMap = ik ? ik->child : 0; ikMap; ikMap = ikMap->next) {
- spIkConstraintData* ikConstraint = spSkeletonData_findIkConstraint(skeletonData, ikMap->name);
- spIkConstraintTimeline* timeline = spIkConstraintTimeline_create(ikMap->size);
+ /* IK constraint timelines. */
+ for (constraintMap = ik ? ik->child : 0; constraintMap; constraintMap = constraintMap->next) {
+ spIkConstraintData* constraint = spSkeletonData_findIkConstraint(skeletonData, constraintMap->name);
+ spIkConstraintTimeline* timeline = spIkConstraintTimeline_create(constraintMap->size);
for (i = 0; i < skeletonData->ikConstraintsCount; ++i) {
- if (ikConstraint == skeletonData->ikConstraints[i]) {
+ if (constraint == skeletonData->ikConstraints[i]) {
timeline->ikConstraintIndex = i;
break;
}
}
- for (frame = ikMap->child, i = 0; frame; frame = frame->next, ++i) {
- spIkConstraintTimeline_setFrame(timeline, i, Json_getFloat(frame, "time", 0), Json_getFloat(frame, "mix", 0),
+ for (frame = constraintMap->child, i = 0; frame; frame = frame->next, ++i) {
+ spIkConstraintTimeline_setFrame(timeline, i, Json_getFloat(frame, "time", 0), Json_getFloat(frame, "mix", 1),
Json_getInt(frame, "bendPositive", 1) ? 1 : -1);
readCurve(SUPER(timeline), i, frame);
}
animation->timelines[animation->timelinesCount++] = SUPER_CAST(spTimeline, timeline);
- duration = timeline->frames[ikMap->size * 3 - 3];
+ duration = timeline->frames[constraintMap->size * 3 - 3];
+ if (duration > animation->duration) animation->duration = duration;
+ }
+
+ /* Transform constraint timelines. */
+ for (constraintMap = transform ? transform->child : 0; constraintMap; constraintMap = constraintMap->next) {
+ spTransformConstraintData* constraint = spSkeletonData_findTransformConstraint(skeletonData, constraintMap->name);
+ spTransformConstraintTimeline* timeline = spTransformConstraintTimeline_create(constraintMap->size);
+ for (i = 0; i < skeletonData->transformConstraintsCount; ++i) {
+ if (constraint == skeletonData->transformConstraints[i]) {
+ timeline->transformConstraintIndex = i;
+ break;
+ }
+ }
+ for (frame = constraintMap->child, i = 0; frame; frame = frame->next, ++i) {
+ spTransformConstraintTimeline_setFrame(timeline, i, Json_getFloat(frame, "time", 0), Json_getFloat(frame, "rotateMix", 1),
+ Json_getFloat(frame, "translateMix", 1), Json_getFloat(frame, "scaleMix", 1), Json_getFloat(frame, "shearMix", 1));
+ readCurve(SUPER(timeline), i, frame);
+ }
+ animation->timelines[animation->timelinesCount++] = SUPER_CAST(spTimeline, timeline);
+ duration = timeline->frames[constraintMap->size * 5 - 5];
if (duration > animation->duration) animation->duration = duration;
}
@@ -491,6 +517,8 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha
boneData->rotation = Json_getFloat(boneMap, "rotation", 0);
boneData->scaleX = Json_getFloat(boneMap, "scaleX", 1);
boneData->scaleY = Json_getFloat(boneMap, "scaleY", 1);
+ boneData->shearX = Json_getFloat(boneMap, "shearX", 0);
+ boneData->shearY = Json_getFloat(boneMap, "shearY", 0);
boneData->inheritScale = Json_getInt(boneMap, "inheritScale", 1);
boneData->inheritRotation = Json_getInt(boneMap, "inheritRotation", 1);
@@ -562,9 +590,16 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha
return 0;
}
+ transformConstraintData->offsetRotation = Json_getFloat(transformMap, "rotation", 0);
+ transformConstraintData->offsetX = Json_getFloat(transformMap, "x", 0) * self->scale;
+ transformConstraintData->offsetY = Json_getFloat(transformMap, "y", 0) * self->scale;
+ transformConstraintData->offsetScaleX = Json_getFloat(transformMap, "scaleX", 0) * self->scale;
+ transformConstraintData->offsetScaleY = Json_getFloat(transformMap, "scaleY", 0) * self->scale;
+ transformConstraintData->offsetShearY = Json_getFloat(transformMap, "shearY", 0) * self->scale;
+ transformConstraintData->rotateMix = Json_getFloat(transformMap, "rotateMix", 1);
transformConstraintData->translateMix = Json_getFloat(transformMap, "translateMix", 1);
- transformConstraintData->x = Json_getFloat(transformMap, "x", 0) * self->scale;
- transformConstraintData->y = Json_getFloat(transformMap, "y", 0) * self->scale;
+ transformConstraintData->scaleMix = Json_getFloat(transformMap, "scaleMix", 1);
+ transformConstraintData->shearMix = Json_getFloat(transformMap, "shearMix", 1);
skeletonData->transformConstraints[i] = transformConstraintData;
}
diff --git a/spine-c/src/spine/TransformConstraint.c b/spine-c/src/spine/TransformConstraint.c
index 15da3e6b2..9cf88271d 100644
--- a/spine-c/src/spine/TransformConstraint.c
+++ b/spine-c/src/spine/TransformConstraint.c
@@ -37,8 +37,11 @@ spTransformConstraint* spTransformConstraint_create (spTransformConstraintData*
spTransformConstraint* self = NEW(spTransformConstraint);
CONST_CAST(spTransformConstraintData*, self->data) = data;
self->translateMix = data->translateMix;
- self->x = data->x;
- self->y = data->y;
+ self->rotateMix = data->rotateMix;
+ self->scaleMix = data->scaleMix;
+ self->shearMix = data->shearMix;
+ self->offsetX = data->offsetX;
+ self->offsetY = data->offsetY;
self->bone = spSkeleton_findBone(skeleton, self->data->bone->name);
self->target = spSkeleton_findBone(skeleton, self->data->target->name);
return self;
@@ -49,10 +52,55 @@ void spTransformConstraint_dispose (spTransformConstraint* self) {
}
void spTransformConstraint_apply (spTransformConstraint* self) {
+ spBone* bone = self->bone;
+ spBone* target = self->target;
+
+ if (self->rotateMix > 0) {
+ float cosine, sine;
+ float a = bone->a, b = bone->b, c = bone->c, d = bone->d;
+ float r = atan2(target->c, target->a) - atan2(c, a) + self->offsetRotation * DEG_RAD;
+ if (r > PI)
+ r -= PI2;
+ else if (r < -PI) r += PI2;
+ r *= self->rotateMix;
+ cosine = COS(r); sine = SIN(r);
+ CONST_CAST(float, bone->a) = cosine * a - sine * c;
+ CONST_CAST(float, bone->b) = cosine * b - sine * d;
+ CONST_CAST(float, bone->c) = sine * a + cosine * c;
+ CONST_CAST(float, bone->d) = sine * b + cosine * d;
+ }
+
+ if (self->scaleMix > 0) {
+ float bs = (float)SQRT(bone->a * bone->a + bone->c * bone->c);
+ float ts = (float)SQRT(target->a * target->a + target->c * target->c);
+ float s = bs > 0.00001f ? (bs + (ts - bs + self->offsetScaleX) * self->scaleMix) / bs : 0;
+ CONST_CAST(float, bone->a) *= s;
+ CONST_CAST(float, bone->c) *= s;
+ bs = (float)SQRT(bone->b * bone->b + bone->d * bone->d);
+ ts = (float)SQRT(target->b * target->b + target->d * target->d);
+ s = bs > 0.00001f ? (bs + (ts - bs + self->offsetScaleY) * self->scaleMix) / bs : 0;
+ CONST_CAST(float, bone->b) *= s;
+ CONST_CAST(float, bone->d) *= s;
+ }
+
+ if (self->shearMix > 0) {
+ float b = bone->b, d = bone->d;
+ float by = atan2(d, b);
+ float r = atan2(target->d, target->b) - atan2(target->c, target->a) - (by - atan2(bone->c, bone->a));
+ float s;
+ if (r > PI)
+ r -= PI2;
+ else if (r < -PI) r += PI2;
+ r = by + (r + self->offsetShearY * DEG_RAD) * self->shearMix;
+ s = (float)SQRT(b * b + d * d);
+ CONST_CAST(float, bone->b) = COS(r) * s;
+ CONST_CAST(float, bone->d) = SIN(r) * s;
+ }
+
if (self->translateMix > 0) {
float tx, ty;
- spBone_localToWorld(self->target, self->x, self->y, &tx, &ty);
- CONST_CAST(float, self->bone->worldX) = self->bone->worldX + (tx - self->bone->worldX) * self->translateMix;
- CONST_CAST(float, self->bone->worldY) = self->bone->worldY + (ty - self->bone->worldY) * self->translateMix;
+ spBone_localToWorld(self->target, self->offsetX, self->offsetY, &tx, &ty);
+ CONST_CAST(float, self->bone->worldX) += (tx - self->bone->worldX) * self->translateMix;
+ CONST_CAST(float, self->bone->worldY) += (ty - self->bone->worldY) * self->translateMix;
}
}
diff --git a/spine-cocos2d-iphone/2/README.md b/spine-cocos2d-iphone/2/README.md
deleted file mode 100644
index 22de93123..000000000
--- a/spine-cocos2d-iphone/2/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# spine-cocos2d-iphone v2
-
-The spine-cocos2d-iphone runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [cocos2d-iphone](http://www.cocos2d-iphone.org/). spine-cocos2d-iphone is based on [spine-c](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-c).
-
-## Licensing
-
-This Spine Runtime may only be used for personal or internal use, typically to evaluate Spine before purchasing. If you would like to incorporate a Spine Runtime into your applications, distribute software containing a Spine Runtime, or modify a Spine Runtime, then you will need a valid [Spine license](https://esotericsoftware.com/spine-purchase). Please see the [Spine Runtimes Software License](https://github.com/EsotericSoftware/spine-runtimes/blob/master/LICENSE) for detailed information.
-
-The Spine Runtimes are developed with the intent to be used with data exported from Spine. By purchasing Spine, `Section 2` of the [Spine Software License](https://esotericsoftware.com/files/license.txt) grants the right to create and distribute derivative works of the Spine Runtimes.
-
-## Spine version
-
-spine-cocos2d-iphone v2 works with data exported from Spine 3.1.08. Updating spine-cocos2d-iphone v2 to [v3.2](https://trello.com/c/k7KtGdPW/76-update-runtimes-to-support-v3-2-shearing) is in progress.
-
-spine-cocos2d-iphone v2 supports all Spine features.
-
-spine-cocos2d-iphone v2 does not yet support loading the binary format.
-
-## Setup
-
-1. Download the Spine Runtimes source using [git](https://help.github.com/articles/set-up-git) or by downloading it [as a zip](https://github.com/EsotericSoftware/spine-runtimes/archive/master.zip).
-1. Place the contents of a cocos2d version 2.1.0 distribution into the `spine-cocos2d-iphone/2/cocos2d` directory.
-1. Open the XCode project file for iOS or Mac from the `spine-cocos2d-iphone/2` directory.
-
-Alternatively, the contents of the `spine-c/src`, `spine-c/include` and `spine-cocos2d-iphone/2/src` directories can be copied into your project. Be sure your header search path will find the contents of the `spine-c/include` and `spine-cocos2d-iphone/2/src` directories. Note that the includes use `spine/Xxx.h`, so the `spine` directory cannot be omitted when copying the files.
-
-## Examples
-
-[Spineboy](https://github.com/EsotericSoftware/spine-runtimes/blob/master/spine-cocos2d-iphone/2/example/SpineboyExample.m)
-[Golbins](https://github.com/EsotericSoftware/spine-runtimes/blob/master/spine-cocos2d-iphone/2/example/GoblinsExample.m)
-
-## Links
-
-[podspec](https://github.com/ldomaradzki/spine-runtimes/blob/master/Spine-Cocos2d-iPhone.podspec) (maintained externally)
diff --git a/spine-cocos2d-iphone/2/Resources-ios/AppDelegate.h b/spine-cocos2d-iphone/2/Resources-ios/AppDelegate.h
deleted file mode 100644
index 3a65b197a..000000000
--- a/spine-cocos2d-iphone/2/Resources-ios/AppDelegate.h
+++ /dev/null
@@ -1,20 +0,0 @@
-
-#import
-#import "cocos2d.h"
-
-// Added only for iOS 6 support
-@interface MyNavigationController : UINavigationController
-@end
-
-@interface AppController : NSObject {
- UIWindow *window_;
- MyNavigationController *navController_;
-
- CCDirectorIOS *director_; // weak ref
-}
-
-@property (nonatomic, retain) UIWindow *window;
-@property (readonly) MyNavigationController *navController;
-@property (readonly) CCDirectorIOS *director;
-
-@end
diff --git a/spine-cocos2d-iphone/2/Resources-ios/AppDelegate.m b/spine-cocos2d-iphone/2/Resources-ios/AppDelegate.m
deleted file mode 100644
index 1240f840b..000000000
--- a/spine-cocos2d-iphone/2/Resources-ios/AppDelegate.m
+++ /dev/null
@@ -1,162 +0,0 @@
-
-#import "cocos2d.h"
-#import "AppDelegate.h"
-#import "SpineboyExample.h"
-
-@implementation MyNavigationController
-
-// The available orientations should be defined in the Info.plist file.
-// And in iOS 6+ only, you can override it in the Root View controller in the "supportedInterfaceOrientations" method.
-// Only valid for iOS 6+. NOT VALID for iOS 4 / 5.
--(NSUInteger)supportedInterfaceOrientations {
- // iPhone only
- if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone )
- return UIInterfaceOrientationMaskLandscape;
-
- // iPad only
- return UIInterfaceOrientationMaskLandscape;
-}
-
-// Supported orientations. Customize it for your own needs
-// Only valid on iOS 4 / 5. NOT VALID for iOS 6.
-- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
- // iPhone only
- if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone )
- return UIInterfaceOrientationIsLandscape(interfaceOrientation);
-
- // iPad only
- // iPhone only
- return UIInterfaceOrientationIsLandscape(interfaceOrientation);
-}
-
-// This is needed for iOS4 and iOS5 in order to ensure
-// that the 1st scene has the correct dimensions
-// This is not needed on iOS6 and could be added to the application:didFinish...
--(void) directorDidReshapeProjection:(CCDirector*)director {
- if(director.runningScene == nil) {
- // Add the first scene to the stack. The director will draw it immediately into the framebuffer. (Animation is started automatically when the view is displayed.)
- // and add the scene to the stack. The director will run it when it automatically when the view is displayed.
- [director runWithScene: [SpineboyExample scene]];
- }
-}
-@end
-
-
-@implementation AppController
-
-@synthesize window=window_, navController=navController_, director=director_;
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- // Create the main window
- window_ = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
-
- // Create an CCGLView with a RGB565 color buffer, and a depth buffer of 0-bits
- CCGLView *glView = [CCGLView viewWithFrame:[window_ bounds]
- pixelFormat:kEAGLColorFormatRGB565 //kEAGLColorFormatRGBA8
- depthFormat:0 //GL_DEPTH_COMPONENT24_OES
- preserveBackbuffer:NO
- sharegroup:nil
- multiSampling:NO
- numberOfSamples:0];
-
- director_ = (CCDirectorIOS*) [CCDirector sharedDirector];
-
- director_.wantsFullScreenLayout = YES;
-
- // Display FSP and SPF
- [director_ setDisplayStats:YES];
-
- // set FPS at 60
- [director_ setAnimationInterval:1.0/60];
-
- // attach the openglView to the director
- [director_ setView:glView];
-
- // 2D projection
- [director_ setProjection:kCCDirectorProjection2D];
- // [director setProjection:kCCDirectorProjection3D];
-
- // Enables High Res mode (Retina Display) on iPhone 4 and maintains low res on all other devices
- if( ! [director_ enableRetinaDisplay:YES] )
- CCLOG(@"Retina Display Not supported");
-
- // Default texture format for PNG/BMP/TIFF/JPEG/GIF images
- // It can be RGBA8888, RGBA4444, RGB5_A1, RGB565
- // You can change this setting at any time.
- [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
-
- // If the 1st suffix is not found and if fallback is enabled then fallback suffixes are going to searched. If none is found, it will try with the name without suffix.
- // On iPad HD : "-ipadhd", "-ipad", "-hd"
- // On iPad : "-ipad", "-hd"
- // On iPhone HD: "-hd"
- CCFileUtils *sharedFileUtils = [CCFileUtils sharedFileUtils];
- [sharedFileUtils setEnableFallbackSuffixes:NO]; // Default: NO. No fallback suffixes are going to be used
- [sharedFileUtils setiPhoneRetinaDisplaySuffix:@"-hd"]; // Default on iPhone RetinaDisplay is "-hd"
- [sharedFileUtils setiPadSuffix:@"-ipad"]; // Default on iPad is "ipad"
- [sharedFileUtils setiPadRetinaDisplaySuffix:@"-ipadhd"]; // Default on iPad RetinaDisplay is "-ipadhd"
-
- // Assume that PVR images have premultiplied alpha
- [CCTexture2D PVRImagesHavePremultipliedAlpha:YES];
-
- // Create a Navigation Controller with the Director
- navController_ = [[MyNavigationController alloc] initWithRootViewController:director_];
- navController_.navigationBarHidden = YES;
-
- // for rotation and other messages
- [director_ setDelegate:navController_];
-
- // set the Navigation Controller as the root view controller
- [window_ setRootViewController:navController_];
-
- // make main window visible
- [window_ makeKeyAndVisible];
-
- return YES;
-}
-
-// getting a call, pause the game
--(void) applicationWillResignActive:(UIApplication *)application {
- if( [navController_ visibleViewController] == director_ )
- [director_ pause];
-}
-
-// call got rejected
--(void) applicationDidBecomeActive:(UIApplication *)application {
- [[CCDirector sharedDirector] setNextDeltaTimeZero:YES];
- if( [navController_ visibleViewController] == director_ )
- [director_ resume];
-}
-
--(void) applicationDidEnterBackground:(UIApplication*)application {
- if( [navController_ visibleViewController] == director_ )
- [director_ stopAnimation];
-}
-
--(void) applicationWillEnterForeground:(UIApplication*)application {
- if( [navController_ visibleViewController] == director_ )
- [director_ startAnimation];
-}
-
-// application will be killed
-- (void)applicationWillTerminate:(UIApplication *)application {
- CC_DIRECTOR_END();
-}
-
-// purge memory
-- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
-{
- [[CCDirector sharedDirector] purgeCachedData];
-}
-
-// next delta time will be zero
--(void) applicationSignificantTimeChange:(UIApplication *)application {
- [[CCDirector sharedDirector] setNextDeltaTimeZero:YES];
-}
-
-- (void) dealloc {
- [window_ release];
- [navController_ release];
-
- [super dealloc];
-}
-@end
diff --git a/spine-cocos2d-iphone/2/Resources-ios/main.m b/spine-cocos2d-iphone/2/Resources-ios/main.m
deleted file mode 100644
index e4c2d8ba5..000000000
--- a/spine-cocos2d-iphone/2/Resources-ios/main.m
+++ /dev/null
@@ -1,9 +0,0 @@
-
-#import
-
-int main(int argc, char *argv[]) {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- int retVal = UIApplicationMain(argc, argv, nil, @"AppController");
- [pool release];
- return retVal;
-}
diff --git a/spine-cocos2d-iphone/2/Resources-mac/AppDelegate.h b/spine-cocos2d-iphone/2/Resources-mac/AppDelegate.h
deleted file mode 100644
index 38e4cf97a..000000000
--- a/spine-cocos2d-iphone/2/Resources-mac/AppDelegate.h
+++ /dev/null
@@ -1,14 +0,0 @@
-
-#import "cocos2d.h"
-
-@interface spine_cocos2d_iphoneAppDelegate : NSObject {
- NSWindow *window_;
- CCGLView *glView_;
-}
-
-@property (assign) IBOutlet NSWindow *window;
-@property (assign) IBOutlet CCGLView *glView;
-
-- (IBAction)toggleFullScreen:(id)sender;
-
-@end
diff --git a/spine-cocos2d-iphone/2/Resources-mac/AppDelegate.m b/spine-cocos2d-iphone/2/Resources-mac/AppDelegate.m
deleted file mode 100644
index 70f963e66..000000000
--- a/spine-cocos2d-iphone/2/Resources-mac/AppDelegate.m
+++ /dev/null
@@ -1,38 +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];
- [window_ release];
- [super dealloc];
-}
-
-#pragma mark AppDelegate - IBActions
-
-- (IBAction)toggleFullScreen: (id)sender {
- CCDirectorMac *director = (CCDirectorMac*) [CCDirector sharedDirector];
- [director setFullScreen:![director isFullScreen]];
-}
-
-@end
diff --git a/spine-cocos2d-iphone/2/cocos2d/Place cocos2d here.txt b/spine-cocos2d-iphone/2/cocos2d/Place cocos2d here.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/spine-cocos2d-iphone/2/example/GoblinsExample.h b/spine-cocos2d-iphone/2/example/GoblinsExample.h
deleted file mode 100644
index a84084722..000000000
--- a/spine-cocos2d-iphone/2/example/GoblinsExample.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import "cocos2d.h"
-#import
-
-@interface GoblinsExample : CCLayerColor {
- SkeletonAnimation* skeletonNode;
-}
-
-+ (CCScene*) scene;
-
-@end
diff --git a/spine-cocos2d-iphone/2/example/GoblinsExample.m b/spine-cocos2d-iphone/2/example/GoblinsExample.m
deleted file mode 100644
index eff7ab266..000000000
--- a/spine-cocos2d-iphone/2/example/GoblinsExample.m
+++ /dev/null
@@ -1,80 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import "GoblinsExample.h"
-#import "SpineboyExample.h"
-
-@implementation GoblinsExample
-
-+ (CCScene*) scene {
- CCScene *scene = [CCScene node];
- [scene addChild:[GoblinsExample node]];
- return scene;
-}
-
--(id) init {
- self = [super initWithColor:ccc4(128, 128, 128, 255)];
- if (!self) return nil;
-
- skeletonNode = [SkeletonAnimation skeletonWithFile:@"goblins-mesh.json" atlasFile:@"goblins-mesh.atlas" scale:1];
- [skeletonNode setSkin:@"goblin"];
- [skeletonNode setAnimationForTrack:0 name:@"walk" loop:YES];
-
- CGSize windowSize = [[CCDirector sharedDirector] winSize];
- [skeletonNode setPosition:ccp(windowSize.width / 2, 20)];
- [self addChild:skeletonNode];
-
-#if __CC_PLATFORM_MAC
- [self setMouseEnabled:YES];
-#else
- [self setTouchEnabled:YES];
-#endif
-
- return self;
-}
-
-#if __CC_PLATFORM_MAC
-- (BOOL) ccMouseDown:(NSEvent*)event {
-#else
-- (void) ccTouchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
-#endif
- if (!skeletonNode.debugBones)
- skeletonNode.debugBones = true;
- else if (skeletonNode.timeScale == 1)
- skeletonNode.timeScale = 0.3f;
- else
- [[CCDirector sharedDirector] replaceScene:[SpineboyExample scene]];
-#if __CC_PLATFORM_MAC
- return YES;
-#endif
-}
-
-@end
diff --git a/spine-cocos2d-iphone/2/example/SpineboyExample.h b/spine-cocos2d-iphone/2/example/SpineboyExample.h
deleted file mode 100644
index e0d9aeb08..000000000
--- a/spine-cocos2d-iphone/2/example/SpineboyExample.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import "cocos2d.h"
-#import
-
-@interface SpineboyExample : CCLayerColor {
- SkeletonAnimation* skeletonNode;
-}
-
-+ (CCScene*) scene;
-
-@end
diff --git a/spine-cocos2d-iphone/2/example/SpineboyExample.m b/spine-cocos2d-iphone/2/example/SpineboyExample.m
deleted file mode 100644
index cb395d1ca..000000000
--- a/spine-cocos2d-iphone/2/example/SpineboyExample.m
+++ /dev/null
@@ -1,105 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import "SpineboyExample.h"
-#import "GoblinsExample.h"
-
-@implementation SpineboyExample
-
-+ (CCScene*) scene {
- CCScene *scene = [CCScene node];
- [scene addChild:[SpineboyExample node]];
- return scene;
-}
-
--(id) init {
- self = [super initWithColor:ccc4(128, 128, 128, 255)];
- if (!self) return nil;
-
- skeletonNode = [SkeletonAnimation skeletonWithFile:@"spineboy.json" atlasFile:@"spineboy.atlas" scale:0.6];
- [skeletonNode setMixFrom:@"walk" to:@"jump" duration:0.2f];
- [skeletonNode setMixFrom:@"jump" to:@"run" duration:0.2f];
-
- skeletonNode.startListener = ^(int trackIndex) {
- spTrackEntry* entry = spAnimationState_getCurrent(skeletonNode.state, trackIndex);
- const char* animationName = (entry && entry->animation) ? entry->animation->name : 0;
- CCLOG(@"%d start: %s", trackIndex, animationName);
- };
- skeletonNode.endListener = ^(int trackIndex) {
- CCLOG(@"%d end", trackIndex);
- };
- skeletonNode.completeListener = ^(int trackIndex, int loopCount) {
- CCLOG(@"%d complete: %d", trackIndex, loopCount);
- };
- skeletonNode.eventListener = ^(int trackIndex, spEvent* event) {
- CCLOG(@"%d event: %s, %d, %f, %s", trackIndex, event->data->name, event->intValue, event->floatValue, event->stringValue);
- };
-
- [skeletonNode setAnimationForTrack:0 name:@"walk" loop:YES];
- spTrackEntry* jumpEntry = [skeletonNode addAnimationForTrack:0 name:@"jump" loop:NO afterDelay:3];
- [skeletonNode addAnimationForTrack:0 name:@"run" loop:YES afterDelay:0];
-
- [skeletonNode setListenerForEntry:jumpEntry onStart:^(int trackIndex) {
- CCLOG(@"jumped!");
- }];
-
- // [skeletonNode setAnimationForTrack:1 name:@"test" loop:YES];
-
- CGSize windowSize = [[CCDirector sharedDirector] winSize];
- [skeletonNode setPosition:ccp(windowSize.width / 2, 20)];
- [self addChild:skeletonNode];
-
-#if __CC_PLATFORM_MAC
- [self setMouseEnabled:YES];
-#else
- [self setTouchEnabled:YES];
-#endif
-
- return self;
-}
-
-#if __CC_PLATFORM_MAC
-- (BOOL) ccMouseDown:(NSEvent*)event {
-#else
-- (void) ccTouchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
-#endif
- if (!skeletonNode.debugBones)
- skeletonNode.debugBones = true;
- else if (skeletonNode.timeScale == 1)
- skeletonNode.timeScale = 0.3f;
- else
- [[CCDirector sharedDirector] replaceScene:[GoblinsExample scene]];
-#if __CC_PLATFORM_MAC
- return YES;
-#endif
-}
-
-@end
diff --git a/spine-cocos2d-iphone/2/spine-cocos2d-iphone-ios.xcodeproj/project.pbxproj b/spine-cocos2d-iphone/2/spine-cocos2d-iphone-ios.xcodeproj/project.pbxproj
deleted file mode 100644
index db0cefe62..000000000
--- a/spine-cocos2d-iphone/2/spine-cocos2d-iphone-ios.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,831 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 4327E30419E9879C007E7FB7 /* IkConstraint.c in Sources */ = {isa = PBXBuildFile; fileRef = 4327E30219E9879C007E7FB7 /* IkConstraint.c */; };
- 4327E30519E9879C007E7FB7 /* IkConstraintData.c in Sources */ = {isa = PBXBuildFile; fileRef = 4327E30319E9879C007E7FB7 /* IkConstraintData.c */; };
- 4327E30619E98913007E7FB7 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 652107951895250000B1FF07 /* CoreText.framework */; };
- 4327E30919E98977007E7FB7 /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4327E30819E98977007E7FB7 /* GLKit.framework */; };
- 4327E30A19E989A3007E7FB7 /* libcocos2d_chipmunk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 434D47E6192A246B003127B5 /* libcocos2d_chipmunk.a */; };
- 4327E30B19E98A32007E7FB7 /* libChipmunk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 434D47E0192A246B003127B5 /* libChipmunk.a */; };
- 43C3282F170B0C19004A9460 /* spine-cocos2d-iphone.m in Sources */ = {isa = PBXBuildFile; fileRef = 43C3282D170B0C19004A9460 /* spine-cocos2d-iphone.m */; };
- 43C3286C170B0DA6004A9460 /* spineboy.json in Resources */ = {isa = PBXBuildFile; fileRef = 43C32868170B0DA6004A9460 /* spineboy.json */; };
- 43C3286E170B0DA6004A9460 /* spineboy.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 43C3286A170B0DA6004A9460 /* spineboy.atlas */; };
- 43C3286F170B0DA6004A9460 /* spineboy.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C3286B170B0DA6004A9460 /* spineboy.png */; };
- 43C3287D170B0DBE004A9460 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32871170B0DBE004A9460 /* Default-568h@2x.png */; };
- 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 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32874170B0DBE004A9460 /* Default@2x.png */; };
- 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 /* Icon-Small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32878170B0DBE004A9460 /* Icon-Small@2x.png */; };
- 43C32885170B0DBE004A9460 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32879170B0DBE004A9460 /* Icon.png */; };
- 43C32886170B0DBE004A9460 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C3287A170B0DBE004A9460 /* Icon@2x.png */; };
- 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 */; };
- 43D73BD61C7352D100F73E38 /* TransformConstraint.c in Sources */ = {isa = PBXBuildFile; fileRef = 43D73BD31C7352D100F73E38 /* TransformConstraint.c */; };
- 43D73BD71C7352D100F73E38 /* TransformConstraintData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43D73BD41C7352D100F73E38 /* TransformConstraintData.c */; };
- 43D73BD81C7352D100F73E38 /* WeightedMeshAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43D73BD51C7352D100F73E38 /* WeightedMeshAttachment.c */; };
- 43F7010F1927FBC700CA4038 /* goblins-mesh.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 43F7010C1927FBC700CA4038 /* goblins-mesh.atlas */; };
- 43F701101927FBC700CA4038 /* goblins-mesh.json in Resources */ = {isa = PBXBuildFile; fileRef = 43F7010D1927FBC700CA4038 /* goblins-mesh.json */; };
- 43F701111927FBC700CA4038 /* goblins-mesh.png in Resources */ = {isa = PBXBuildFile; fileRef = 43F7010E1927FBC700CA4038 /* goblins-mesh.png */; };
- 43F7FF511927F91900CA4038 /* Animation.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF381927F91900CA4038 /* Animation.c */; };
- 43F7FF521927F91900CA4038 /* AnimationState.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF391927F91900CA4038 /* AnimationState.c */; };
- 43F7FF531927F91900CA4038 /* AnimationStateData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF3A1927F91900CA4038 /* AnimationStateData.c */; };
- 43F7FF541927F91900CA4038 /* Atlas.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF3B1927F91900CA4038 /* Atlas.c */; };
- 43F7FF551927F91900CA4038 /* AtlasAttachmentLoader.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF3C1927F91900CA4038 /* AtlasAttachmentLoader.c */; };
- 43F7FF561927F91900CA4038 /* Attachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF3D1927F91900CA4038 /* Attachment.c */; };
- 43F7FF571927F91900CA4038 /* AttachmentLoader.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF3E1927F91900CA4038 /* AttachmentLoader.c */; };
- 43F7FF581927F91900CA4038 /* Bone.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF3F1927F91900CA4038 /* Bone.c */; };
- 43F7FF591927F91900CA4038 /* BoneData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF401927F91900CA4038 /* BoneData.c */; };
- 43F7FF5A1927F91900CA4038 /* BoundingBoxAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF411927F91900CA4038 /* BoundingBoxAttachment.c */; };
- 43F7FF5B1927F91900CA4038 /* Event.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF421927F91900CA4038 /* Event.c */; };
- 43F7FF5C1927F91900CA4038 /* EventData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF431927F91900CA4038 /* EventData.c */; };
- 43F7FF5D1927F91900CA4038 /* extension.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF441927F91900CA4038 /* extension.c */; };
- 43F7FF5E1927F91900CA4038 /* Json.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF451927F91900CA4038 /* Json.c */; };
- 43F7FF5F1927F91900CA4038 /* MeshAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF471927F91900CA4038 /* MeshAttachment.c */; };
- 43F7FF601927F91900CA4038 /* RegionAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF481927F91900CA4038 /* RegionAttachment.c */; };
- 43F7FF611927F91900CA4038 /* Skeleton.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF491927F91900CA4038 /* Skeleton.c */; };
- 43F7FF621927F91900CA4038 /* SkeletonBounds.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF4A1927F91900CA4038 /* SkeletonBounds.c */; };
- 43F7FF631927F91900CA4038 /* SkeletonData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF4B1927F91900CA4038 /* SkeletonData.c */; };
- 43F7FF641927F91900CA4038 /* SkeletonJson.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF4C1927F91900CA4038 /* SkeletonJson.c */; };
- 43F7FF651927F91900CA4038 /* Skin.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF4D1927F91900CA4038 /* Skin.c */; };
- 43F7FF671927F91900CA4038 /* Slot.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF4F1927F91900CA4038 /* Slot.c */; };
- 43F7FF681927F91900CA4038 /* SlotData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF501927F91900CA4038 /* SlotData.c */; };
- 43F7FF871927F94800CA4038 /* PolygonBatch.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF821927F94800CA4038 /* PolygonBatch.m */; };
- 43F7FF881927F94800CA4038 /* SkeletonAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF841927F94800CA4038 /* SkeletonAnimation.m */; };
- 43F7FF891927F94800CA4038 /* SkeletonRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF861927F94800CA4038 /* SkeletonRenderer.m */; };
- 43F7FF8E1927F96700CA4038 /* GoblinsExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF8B1927F96700CA4038 /* GoblinsExample.m */; };
- 43F7FF8F1927F96700CA4038 /* SpineboyExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FF8D1927F96700CA4038 /* SpineboyExample.m */; };
- 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 */
- 434D47DB192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 509807081175041800EA7266;
- remoteInfo = "build all libs";
- };
- 434D47DD192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 504225700FC0B39C00B992F7;
- remoteInfo = box2d;
- };
- 434D47DF192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 50B2C4D10E100AEA00AE9530;
- remoteInfo = Chipmunk;
- };
- 434D47E1192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 5018F24D0DFDEAC400C013A5;
- remoteInfo = cocos2d;
- };
- 434D47E3192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A0EFA7AC169CDF9C006D1B22;
- remoteInfo = cocos2d_box2d;
- };
- 434D47E5192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A0EFA886169CDFA4006D1B22;
- remoteInfo = cocos2d_chipmunk;
- };
- 434D47E7192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 502C65EE0DFEF3DD00E4107D;
- remoteInfo = "cocos2d-documentation";
- };
- 434D47E9192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 50CB2FCA1004C8B100B7A750;
- remoteInfo = CocosDenshion;
- };
- 434D47EB192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A02900ED15B5FA9E00D64F82;
- remoteInfo = CocosBuilderReader;
- };
- 434D47ED192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A031B73915D9BD0800E1986C;
- remoteInfo = jsbindings;
- };
- 434D47EF192A246B003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A04A1FEB13B826B300ABAFB7;
- remoteInfo = kazmath;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 4327E30019E9879C007E7FB7 /* IkConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IkConstraint.h; path = "../../spine-c/include/spine/IkConstraint.h"; sourceTree = ""; };
- 4327E30119E9879C007E7FB7 /* IkConstraintData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IkConstraintData.h; path = "../../spine-c/include/spine/IkConstraintData.h"; sourceTree = ""; };
- 4327E30219E9879C007E7FB7 /* IkConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IkConstraint.c; path = "../../spine-c/src/spine/IkConstraint.c"; sourceTree = ""; };
- 4327E30319E9879C007E7FB7 /* IkConstraintData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IkConstraintData.c; path = "../../spine-c/src/spine/IkConstraintData.c"; sourceTree = ""; };
- 4327E30819E98977007E7FB7 /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; };
- 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "cocos2d-ios.xcodeproj"; path = "cocos2d/cocos2d-ios.xcodeproj"; sourceTree = SOURCE_ROOT; };
- 43C3282D170B0C19004A9460 /* spine-cocos2d-iphone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "spine-cocos2d-iphone.m"; path = "src/spine/spine-cocos2d-iphone.m"; sourceTree = ""; };
- 43C3282E170B0C19004A9460 /* spine-cocos2d-iphone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "spine-cocos2d-iphone.h"; path = "src/spine/spine-cocos2d-iphone.h"; sourceTree = ""; };
- 43C32868170B0DA6004A9460 /* spineboy.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = spineboy.json; path = Resources/spineboy.json; sourceTree = ""; };
- 43C3286A170B0DA6004A9460 /* spineboy.atlas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = spineboy.atlas; path = Resources/spineboy.atlas; sourceTree = ""; };
- 43C3286B170B0DA6004A9460 /* spineboy.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = spineboy.png; path = Resources/spineboy.png; sourceTree = ""; };
- 43C32871170B0DBE004A9460 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "Resources-ios/Default-568h@2x.png"; sourceTree = ""; };
- 43C32872170B0DBE004A9460 /* Default-Landscape~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Landscape~ipad.png"; path = "Resources-ios/Default-Landscape~ipad.png"; sourceTree = ""; };
- 43C32873170B0DBE004A9460 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = "Resources-ios/Default.png"; sourceTree = ""; };
- 43C32874170B0DBE004A9460 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default@2x.png"; path = "Resources-ios/Default@2x.png"; sourceTree = ""; };
- 43C32875170B0DBE004A9460 /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72.png"; path = "Resources-ios/Icon-72.png"; sourceTree = ""; };
- 43C32876170B0DBE004A9460 /* Icon-Small-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small-50.png"; path = "Resources-ios/Icon-Small-50.png"; sourceTree = ""; };
- 43C32877170B0DBE004A9460 /* Icon-Small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small.png"; path = "Resources-ios/Icon-Small.png"; sourceTree = ""; };
- 43C32878170B0DBE004A9460 /* Icon-Small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small@2x.png"; path = "Resources-ios/Icon-Small@2x.png"; sourceTree = ""; };
- 43C32879170B0DBE004A9460 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = "Resources-ios/Icon.png"; sourceTree = ""; };
- 43C3287A170B0DBE004A9460 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon@2x.png"; path = "Resources-ios/Icon@2x.png"; sourceTree = ""; };
- 43C3287B170B0DBE004A9460 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Resources-ios/Info.plist"; sourceTree = ""; };
- 43C3287C170B0DBE004A9460 /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; name = iTunesArtwork; path = "Resources-ios/iTunesArtwork"; sourceTree = ""; };
- 43C32889170B0E9F004A9460 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = "Resources-ios/Prefix.pch"; sourceTree = ""; };
- 43C32A05170B0F93004A9460 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = "Resources-ios/main.m"; sourceTree = ""; };
- 43C32A07170B10FF004A9460 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = "Resources-ios/AppDelegate.h"; sourceTree = ""; };
- 43C32A08170B10FF004A9460 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = "Resources-ios/AppDelegate.m"; sourceTree = ""; };
- 43D73BD31C7352D100F73E38 /* TransformConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TransformConstraint.c; path = "../../spine-c/src/spine/TransformConstraint.c"; sourceTree = ""; };
- 43D73BD41C7352D100F73E38 /* TransformConstraintData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TransformConstraintData.c; path = "../../spine-c/src/spine/TransformConstraintData.c"; sourceTree = ""; };
- 43D73BD51C7352D100F73E38 /* WeightedMeshAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = WeightedMeshAttachment.c; path = "../../spine-c/src/spine/WeightedMeshAttachment.c"; sourceTree = ""; };
- 43D73BD91C7352E200F73E38 /* TransformConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransformConstraint.h; path = "../../spine-c/include/spine/TransformConstraint.h"; sourceTree = ""; };
- 43D73BDA1C7352E200F73E38 /* TransformConstraintData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransformConstraintData.h; path = "../../spine-c/include/spine/TransformConstraintData.h"; sourceTree = ""; };
- 43D73BDB1C7352E200F73E38 /* WeightedMeshAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WeightedMeshAttachment.h; path = "../../spine-c/include/spine/WeightedMeshAttachment.h"; sourceTree = ""; };
- 43F7010C1927FBC700CA4038 /* goblins-mesh.atlas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "goblins-mesh.atlas"; path = "Resources/goblins-mesh.atlas"; sourceTree = ""; };
- 43F7010D1927FBC700CA4038 /* goblins-mesh.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "goblins-mesh.json"; path = "Resources/goblins-mesh.json"; sourceTree = ""; };
- 43F7010E1927FBC700CA4038 /* goblins-mesh.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "goblins-mesh.png"; path = "Resources/goblins-mesh.png"; sourceTree = ""; };
- 43F7FF381927F91900CA4038 /* Animation.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Animation.c; path = "../../spine-c/src/spine/Animation.c"; sourceTree = ""; };
- 43F7FF391927F91900CA4038 /* AnimationState.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AnimationState.c; path = "../../spine-c/src/spine/AnimationState.c"; sourceTree = ""; };
- 43F7FF3A1927F91900CA4038 /* AnimationStateData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AnimationStateData.c; path = "../../spine-c/src/spine/AnimationStateData.c"; sourceTree = ""; };
- 43F7FF3B1927F91900CA4038 /* Atlas.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Atlas.c; path = "../../spine-c/src/spine/Atlas.c"; sourceTree = ""; };
- 43F7FF3C1927F91900CA4038 /* AtlasAttachmentLoader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AtlasAttachmentLoader.c; path = "../../spine-c/src/spine/AtlasAttachmentLoader.c"; sourceTree = ""; };
- 43F7FF3D1927F91900CA4038 /* Attachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Attachment.c; path = "../../spine-c/src/spine/Attachment.c"; sourceTree = ""; };
- 43F7FF3E1927F91900CA4038 /* AttachmentLoader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AttachmentLoader.c; path = "../../spine-c/src/spine/AttachmentLoader.c"; sourceTree = ""; };
- 43F7FF3F1927F91900CA4038 /* Bone.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Bone.c; path = "../../spine-c/src/spine/Bone.c"; sourceTree = ""; };
- 43F7FF401927F91900CA4038 /* BoneData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = BoneData.c; path = "../../spine-c/src/spine/BoneData.c"; sourceTree = ""; };
- 43F7FF411927F91900CA4038 /* BoundingBoxAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = BoundingBoxAttachment.c; path = "../../spine-c/src/spine/BoundingBoxAttachment.c"; sourceTree = ""; };
- 43F7FF421927F91900CA4038 /* Event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Event.c; path = "../../spine-c/src/spine/Event.c"; sourceTree = ""; };
- 43F7FF431927F91900CA4038 /* EventData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = EventData.c; path = "../../spine-c/src/spine/EventData.c"; sourceTree = ""; };
- 43F7FF441927F91900CA4038 /* extension.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = extension.c; path = "../../spine-c/src/spine/extension.c"; sourceTree = ""; };
- 43F7FF451927F91900CA4038 /* Json.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Json.c; path = "../../spine-c/src/spine/Json.c"; sourceTree = ""; };
- 43F7FF461927F91900CA4038 /* Json.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Json.h; path = "../../spine-c/src/spine/Json.h"; sourceTree = ""; };
- 43F7FF471927F91900CA4038 /* MeshAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = MeshAttachment.c; path = "../../spine-c/src/spine/MeshAttachment.c"; sourceTree = ""; };
- 43F7FF481927F91900CA4038 /* RegionAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = RegionAttachment.c; path = "../../spine-c/src/spine/RegionAttachment.c"; sourceTree = ""; };
- 43F7FF491927F91900CA4038 /* Skeleton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Skeleton.c; path = "../../spine-c/src/spine/Skeleton.c"; sourceTree = ""; };
- 43F7FF4A1927F91900CA4038 /* SkeletonBounds.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonBounds.c; path = "../../spine-c/src/spine/SkeletonBounds.c"; sourceTree = ""; };
- 43F7FF4B1927F91900CA4038 /* SkeletonData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonData.c; path = "../../spine-c/src/spine/SkeletonData.c"; sourceTree = ""; };
- 43F7FF4C1927F91900CA4038 /* SkeletonJson.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonJson.c; path = "../../spine-c/src/spine/SkeletonJson.c"; sourceTree = ""; };
- 43F7FF4D1927F91900CA4038 /* Skin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Skin.c; path = "../../spine-c/src/spine/Skin.c"; sourceTree = ""; };
- 43F7FF4F1927F91900CA4038 /* Slot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Slot.c; path = "../../spine-c/src/spine/Slot.c"; sourceTree = ""; };
- 43F7FF501927F91900CA4038 /* SlotData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SlotData.c; path = "../../spine-c/src/spine/SlotData.c"; sourceTree = ""; };
- 43F7FF691927F92500CA4038 /* Animation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Animation.h; path = "../../spine-c/include/spine/Animation.h"; sourceTree = ""; };
- 43F7FF6A1927F92500CA4038 /* AnimationState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AnimationState.h; path = "../../spine-c/include/spine/AnimationState.h"; sourceTree = ""; };
- 43F7FF6B1927F92500CA4038 /* AnimationStateData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AnimationStateData.h; path = "../../spine-c/include/spine/AnimationStateData.h"; sourceTree = ""; };
- 43F7FF6C1927F92500CA4038 /* Atlas.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Atlas.h; path = "../../spine-c/include/spine/Atlas.h"; sourceTree = ""; };
- 43F7FF6D1927F92500CA4038 /* AtlasAttachmentLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AtlasAttachmentLoader.h; path = "../../spine-c/include/spine/AtlasAttachmentLoader.h"; sourceTree = ""; };
- 43F7FF6E1927F92500CA4038 /* Attachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Attachment.h; path = "../../spine-c/include/spine/Attachment.h"; sourceTree = ""; };
- 43F7FF6F1927F92500CA4038 /* AttachmentLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AttachmentLoader.h; path = "../../spine-c/include/spine/AttachmentLoader.h"; sourceTree = ""; };
- 43F7FF701927F92500CA4038 /* Bone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Bone.h; path = "../../spine-c/include/spine/Bone.h"; sourceTree = ""; };
- 43F7FF711927F92500CA4038 /* BoneData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BoneData.h; path = "../../spine-c/include/spine/BoneData.h"; sourceTree = ""; };
- 43F7FF721927F92500CA4038 /* BoundingBoxAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BoundingBoxAttachment.h; path = "../../spine-c/include/spine/BoundingBoxAttachment.h"; sourceTree = ""; };
- 43F7FF731927F92500CA4038 /* Event.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Event.h; path = "../../spine-c/include/spine/Event.h"; sourceTree = ""; };
- 43F7FF741927F92500CA4038 /* EventData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EventData.h; path = "../../spine-c/include/spine/EventData.h"; sourceTree = ""; };
- 43F7FF751927F92500CA4038 /* extension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = extension.h; path = "../../spine-c/include/spine/extension.h"; sourceTree = ""; };
- 43F7FF761927F92500CA4038 /* MeshAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MeshAttachment.h; path = "../../spine-c/include/spine/MeshAttachment.h"; sourceTree = ""; };
- 43F7FF771927F92500CA4038 /* RegionAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegionAttachment.h; path = "../../spine-c/include/spine/RegionAttachment.h"; sourceTree = ""; };
- 43F7FF781927F92500CA4038 /* Skeleton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Skeleton.h; path = "../../spine-c/include/spine/Skeleton.h"; sourceTree = ""; };
- 43F7FF791927F92500CA4038 /* SkeletonBounds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonBounds.h; path = "../../spine-c/include/spine/SkeletonBounds.h"; sourceTree = ""; };
- 43F7FF7A1927F92500CA4038 /* SkeletonData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonData.h; path = "../../spine-c/include/spine/SkeletonData.h"; sourceTree = ""; };
- 43F7FF7B1927F92500CA4038 /* SkeletonJson.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonJson.h; path = "../../spine-c/include/spine/SkeletonJson.h"; sourceTree = ""; };
- 43F7FF7C1927F92500CA4038 /* Skin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Skin.h; path = "../../spine-c/include/spine/Skin.h"; sourceTree = ""; };
- 43F7FF7E1927F92500CA4038 /* Slot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Slot.h; path = "../../spine-c/include/spine/Slot.h"; sourceTree = ""; };
- 43F7FF7F1927F92500CA4038 /* SlotData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SlotData.h; path = "../../spine-c/include/spine/SlotData.h"; sourceTree = ""; };
- 43F7FF801927F92500CA4038 /* spine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = spine.h; path = "../../spine-c/include/spine/spine.h"; sourceTree = ""; };
- 43F7FF811927F94800CA4038 /* PolygonBatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PolygonBatch.h; path = src/spine/PolygonBatch.h; sourceTree = ""; };
- 43F7FF821927F94800CA4038 /* PolygonBatch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PolygonBatch.m; path = src/spine/PolygonBatch.m; sourceTree = ""; };
- 43F7FF831927F94800CA4038 /* SkeletonAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonAnimation.h; path = src/spine/SkeletonAnimation.h; sourceTree = ""; };
- 43F7FF841927F94800CA4038 /* SkeletonAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SkeletonAnimation.m; path = src/spine/SkeletonAnimation.m; sourceTree = ""; };
- 43F7FF851927F94800CA4038 /* SkeletonRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonRenderer.h; path = src/spine/SkeletonRenderer.h; sourceTree = ""; };
- 43F7FF861927F94800CA4038 /* SkeletonRenderer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SkeletonRenderer.m; path = src/spine/SkeletonRenderer.m; sourceTree = ""; };
- 43F7FF8A1927F96700CA4038 /* GoblinsExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GoblinsExample.h; path = example/GoblinsExample.h; sourceTree = ""; };
- 43F7FF8B1927F96700CA4038 /* GoblinsExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GoblinsExample.m; path = example/GoblinsExample.m; sourceTree = ""; };
- 43F7FF8C1927F96700CA4038 /* SpineboyExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SpineboyExample.h; path = example/SpineboyExample.h; sourceTree = ""; };
- 43F7FF8D1927F96700CA4038 /* SpineboyExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SpineboyExample.m; path = example/SpineboyExample.m; sourceTree = ""; };
- 652107951895250000B1FF07 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.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; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 9A5D2492170A94DA0030D4DD /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4327E30A19E989A3007E7FB7 /* libcocos2d_chipmunk.a in Frameworks */,
- 4327E30B19E98A32007E7FB7 /* libChipmunk.a in Frameworks */,
- 4327E30919E98977007E7FB7 /* GLKit.framework in Frameworks */,
- 4327E30619E98913007E7FB7 /* 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 */
- 434D47CB192A246A003127B5 /* Products */ = {
- isa = PBXGroup;
- children = (
- 434D47DC192A246B003127B5 /* libbuild all libs.a */,
- 434D47DE192A246B003127B5 /* libbox2d.a */,
- 434D47E0192A246B003127B5 /* libChipmunk.a */,
- 434D47E2192A246B003127B5 /* libcocos2d.a */,
- 434D47E4192A246B003127B5 /* libcocos2d_box2d.a */,
- 434D47E6192A246B003127B5 /* libcocos2d_chipmunk.a */,
- 434D47E8192A246B003127B5 /* libcocos2d-documentation.a */,
- 434D47EA192A246B003127B5 /* libCocosDenshion.a */,
- 434D47EC192A246B003127B5 /* libCocosBuilderReader.a */,
- 434D47EE192A246B003127B5 /* libjsbindings.a */,
- 434D47F0192A246B003127B5 /* libkazmath.a */,
- );
- name = Products;
- sourceTree = "";
- };
- 43C32821170B0BBC004A9460 /* Classes */ = {
- isa = PBXGroup;
- children = (
- 43C32822170B0BC2004A9460 /* spine-c */,
- 43C32823170B0BC7004A9460 /* spine-cocos2d-iphone */,
- 43F7FF8C1927F96700CA4038 /* SpineboyExample.h */,
- 43F7FF8D1927F96700CA4038 /* SpineboyExample.m */,
- 43F7FF8A1927F96700CA4038 /* GoblinsExample.h */,
- 43F7FF8B1927F96700CA4038 /* GoblinsExample.m */,
- 43C32A07170B10FF004A9460 /* AppDelegate.h */,
- 43C32A08170B10FF004A9460 /* AppDelegate.m */,
- 43C32A05170B0F93004A9460 /* main.m */,
- 43C32889170B0E9F004A9460 /* Prefix.pch */,
- );
- name = Classes;
- sourceTree = "";
- };
- 43C32822170B0BC2004A9460 /* spine-c */ = {
- isa = PBXGroup;
- children = (
- 43F7FF381927F91900CA4038 /* Animation.c */,
- 43F7FF691927F92500CA4038 /* Animation.h */,
- 43F7FF391927F91900CA4038 /* AnimationState.c */,
- 43F7FF6A1927F92500CA4038 /* AnimationState.h */,
- 43F7FF3A1927F91900CA4038 /* AnimationStateData.c */,
- 43F7FF6B1927F92500CA4038 /* AnimationStateData.h */,
- 43F7FF3B1927F91900CA4038 /* Atlas.c */,
- 43F7FF6C1927F92500CA4038 /* Atlas.h */,
- 43F7FF3C1927F91900CA4038 /* AtlasAttachmentLoader.c */,
- 43F7FF6D1927F92500CA4038 /* AtlasAttachmentLoader.h */,
- 43F7FF3D1927F91900CA4038 /* Attachment.c */,
- 43F7FF6E1927F92500CA4038 /* Attachment.h */,
- 43F7FF3E1927F91900CA4038 /* AttachmentLoader.c */,
- 43F7FF6F1927F92500CA4038 /* AttachmentLoader.h */,
- 43F7FF3F1927F91900CA4038 /* Bone.c */,
- 43F7FF701927F92500CA4038 /* Bone.h */,
- 43F7FF401927F91900CA4038 /* BoneData.c */,
- 43F7FF711927F92500CA4038 /* BoneData.h */,
- 43F7FF411927F91900CA4038 /* BoundingBoxAttachment.c */,
- 43F7FF721927F92500CA4038 /* BoundingBoxAttachment.h */,
- 43F7FF421927F91900CA4038 /* Event.c */,
- 43F7FF731927F92500CA4038 /* Event.h */,
- 43F7FF431927F91900CA4038 /* EventData.c */,
- 43F7FF741927F92500CA4038 /* EventData.h */,
- 43F7FF441927F91900CA4038 /* extension.c */,
- 43F7FF751927F92500CA4038 /* extension.h */,
- 4327E30219E9879C007E7FB7 /* IkConstraint.c */,
- 4327E30019E9879C007E7FB7 /* IkConstraint.h */,
- 4327E30319E9879C007E7FB7 /* IkConstraintData.c */,
- 4327E30119E9879C007E7FB7 /* IkConstraintData.h */,
- 43F7FF451927F91900CA4038 /* Json.c */,
- 43F7FF461927F91900CA4038 /* Json.h */,
- 43F7FF471927F91900CA4038 /* MeshAttachment.c */,
- 43F7FF761927F92500CA4038 /* MeshAttachment.h */,
- 43F7FF481927F91900CA4038 /* RegionAttachment.c */,
- 43F7FF771927F92500CA4038 /* RegionAttachment.h */,
- 43F7FF491927F91900CA4038 /* Skeleton.c */,
- 43F7FF781927F92500CA4038 /* Skeleton.h */,
- 43F7FF4A1927F91900CA4038 /* SkeletonBounds.c */,
- 43F7FF791927F92500CA4038 /* SkeletonBounds.h */,
- 43F7FF4B1927F91900CA4038 /* SkeletonData.c */,
- 43F7FF7A1927F92500CA4038 /* SkeletonData.h */,
- 43F7FF4C1927F91900CA4038 /* SkeletonJson.c */,
- 43F7FF7B1927F92500CA4038 /* SkeletonJson.h */,
- 43F7FF4D1927F91900CA4038 /* Skin.c */,
- 43F7FF7C1927F92500CA4038 /* Skin.h */,
- 43F7FF4F1927F91900CA4038 /* Slot.c */,
- 43F7FF7E1927F92500CA4038 /* Slot.h */,
- 43F7FF501927F91900CA4038 /* SlotData.c */,
- 43F7FF7F1927F92500CA4038 /* SlotData.h */,
- 43F7FF801927F92500CA4038 /* spine.h */,
- 43D73BD31C7352D100F73E38 /* TransformConstraint.c */,
- 43D73BD91C7352E200F73E38 /* TransformConstraint.h */,
- 43D73BD41C7352D100F73E38 /* TransformConstraintData.c */,
- 43D73BDA1C7352E200F73E38 /* TransformConstraintData.h */,
- 43D73BD51C7352D100F73E38 /* WeightedMeshAttachment.c */,
- 43D73BDB1C7352E200F73E38 /* WeightedMeshAttachment.h */,
- );
- name = "spine-c";
- sourceTree = "";
- };
- 43C32823170B0BC7004A9460 /* spine-cocos2d-iphone */ = {
- isa = PBXGroup;
- children = (
- 43F7FF811927F94800CA4038 /* PolygonBatch.h */,
- 43F7FF821927F94800CA4038 /* PolygonBatch.m */,
- 43F7FF831927F94800CA4038 /* SkeletonAnimation.h */,
- 43F7FF841927F94800CA4038 /* SkeletonAnimation.m */,
- 43F7FF851927F94800CA4038 /* SkeletonRenderer.h */,
- 43F7FF861927F94800CA4038 /* SkeletonRenderer.m */,
- 43C3282E170B0C19004A9460 /* spine-cocos2d-iphone.h */,
- 43C3282D170B0C19004A9460 /* spine-cocos2d-iphone.m */,
- );
- name = "spine-cocos2d-iphone";
- sourceTree = "";
- };
- 43C32867170B0C7F004A9460 /* Resources */ = {
- isa = PBXGroup;
- children = (
- 43F7010C1927FBC700CA4038 /* goblins-mesh.atlas */,
- 43F7010D1927FBC700CA4038 /* goblins-mesh.json */,
- 43F7010E1927FBC700CA4038 /* goblins-mesh.png */,
- 43C32868170B0DA6004A9460 /* spineboy.json */,
- 43C3286A170B0DA6004A9460 /* spineboy.atlas */,
- 43C3286B170B0DA6004A9460 /* spineboy.png */,
- );
- name = Resources;
- sourceTree = "";
- };
- 43C32870170B0DAD004A9460 /* Resources-ios */ = {
- isa = PBXGroup;
- children = (
- 43C32871170B0DBE004A9460 /* Default-568h@2x.png */,
- 43C32872170B0DBE004A9460 /* Default-Landscape~ipad.png */,
- 43C32873170B0DBE004A9460 /* Default.png */,
- 43C32874170B0DBE004A9460 /* Default@2x.png */,
- 43C32875170B0DBE004A9460 /* Icon-72.png */,
- 43C32876170B0DBE004A9460 /* Icon-Small-50.png */,
- 43C32877170B0DBE004A9460 /* Icon-Small.png */,
- 43C32878170B0DBE004A9460 /* Icon-Small@2x.png */,
- 43C32879170B0DBE004A9460 /* Icon.png */,
- 43C3287A170B0DBE004A9460 /* Icon@2x.png */,
- 43C3287B170B0DBE004A9460 /* Info.plist */,
- 43C3287C170B0DBE004A9460 /* iTunesArtwork */,
- );
- name = "Resources-ios";
- sourceTree = "";
- };
- 9A5D248C170A94DA0030D4DD = {
- isa = PBXGroup;
- children = (
- 43C32821170B0BBC004A9460 /* Classes */,
- 43C32867170B0C7F004A9460 /* Resources */,
- 43C32870170B0DAD004A9460 /* Resources-ios */,
- 9A5D24C3170A94DA0030D4DD /* cocos2d */,
- 9A5D2497170A94DA0030D4DD /* Frameworks */,
- 9A5D2496170A94DA0030D4DD /* Products */,
- );
- sourceTree = "";
- };
- 9A5D2496170A94DA0030D4DD /* Products */ = {
- isa = PBXGroup;
- children = (
- 9A5D2495170A94DA0030D4DD /* SpineExample.app */,
- );
- name = Products;
- sourceTree = "";
- };
- 9A5D2497170A94DA0030D4DD /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 4327E30819E98977007E7FB7 /* 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 = "";
- };
- 9A5D24C3170A94DA0030D4DD /* cocos2d */ = {
- isa = PBXGroup;
- children = (
- 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */,
- );
- name = cocos2d;
- path = Spine;
- sourceTree = "";
- };
-/* 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 = (
- );
- name = SpineExample;
- productName = "spine-cocos2d-iphone-ios";
- 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-iphone-ios" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- );
- mainGroup = 9A5D248C170A94DA0030D4DD;
- productRefGroup = 9A5D2496170A94DA0030D4DD /* Products */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = 434D47CB192A246A003127B5 /* Products */;
- ProjectRef = 434D47CA192A246A003127B5 /* cocos2d-ios.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 9A5D2494170A94DA0030D4DD /* SpineExample */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- 434D47DC192A246B003127B5 /* libbuild all libs.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libbuild all libs.a";
- remoteRef = 434D47DB192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D47DE192A246B003127B5 /* libbox2d.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libbox2d.a;
- remoteRef = 434D47DD192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D47E0192A246B003127B5 /* libChipmunk.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libChipmunk.a;
- remoteRef = 434D47DF192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D47E2192A246B003127B5 /* libcocos2d.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libcocos2d.a;
- remoteRef = 434D47E1192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D47E4192A246B003127B5 /* libcocos2d_box2d.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libcocos2d_box2d.a;
- remoteRef = 434D47E3192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D47E6192A246B003127B5 /* libcocos2d_chipmunk.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libcocos2d_chipmunk.a;
- remoteRef = 434D47E5192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D47E8192A246B003127B5 /* libcocos2d-documentation.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libcocos2d-documentation.a";
- remoteRef = 434D47E7192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D47EA192A246B003127B5 /* libCocosDenshion.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libCocosDenshion.a;
- remoteRef = 434D47E9192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D47EC192A246B003127B5 /* libCocosBuilderReader.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libCocosBuilderReader.a;
- remoteRef = 434D47EB192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D47EE192A246B003127B5 /* libjsbindings.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libjsbindings.a;
- remoteRef = 434D47ED192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D47F0192A246B003127B5 /* libkazmath.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libkazmath.a;
- remoteRef = 434D47EF192A246B003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 9A5D2493170A94DA0030D4DD /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 43C3286C170B0DA6004A9460 /* spineboy.json in Resources */,
- 43C3286E170B0DA6004A9460 /* spineboy.atlas in Resources */,
- 43C3286F170B0DA6004A9460 /* spineboy.png in Resources */,
- 43C3287D170B0DBE004A9460 /* Default-568h@2x.png in Resources */,
- 43C3287E170B0DBE004A9460 /* Default-Landscape~ipad.png in Resources */,
- 43C3287F170B0DBE004A9460 /* Default.png in Resources */,
- 43C32880170B0DBE004A9460 /* Default@2x.png in Resources */,
- 43C32881170B0DBE004A9460 /* Icon-72.png in Resources */,
- 43C32882170B0DBE004A9460 /* Icon-Small-50.png in Resources */,
- 43C32883170B0DBE004A9460 /* Icon-Small.png in Resources */,
- 43C32884170B0DBE004A9460 /* Icon-Small@2x.png in Resources */,
- 43C32885170B0DBE004A9460 /* Icon.png in Resources */,
- 43C32886170B0DBE004A9460 /* Icon@2x.png in Resources */,
- 43C32888170B0DBE004A9460 /* iTunesArtwork in Resources */,
- 43F7010F1927FBC700CA4038 /* goblins-mesh.atlas in Resources */,
- 43F701101927FBC700CA4038 /* goblins-mesh.json in Resources */,
- 43F701111927FBC700CA4038 /* goblins-mesh.png in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 9A5D2491170A94DA0030D4DD /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 43C3282F170B0C19004A9460 /* spine-cocos2d-iphone.m in Sources */,
- 43C32A06170B0F93004A9460 /* main.m in Sources */,
- 43C32A09170B10FF004A9460 /* AppDelegate.m in Sources */,
- 43F7FF511927F91900CA4038 /* Animation.c in Sources */,
- 43F7FF521927F91900CA4038 /* AnimationState.c in Sources */,
- 43F7FF531927F91900CA4038 /* AnimationStateData.c in Sources */,
- 43F7FF541927F91900CA4038 /* Atlas.c in Sources */,
- 43D73BD61C7352D100F73E38 /* TransformConstraint.c in Sources */,
- 43F7FF551927F91900CA4038 /* AtlasAttachmentLoader.c in Sources */,
- 43F7FF561927F91900CA4038 /* Attachment.c in Sources */,
- 43F7FF571927F91900CA4038 /* AttachmentLoader.c in Sources */,
- 43F7FF581927F91900CA4038 /* Bone.c in Sources */,
- 43D73BD71C7352D100F73E38 /* TransformConstraintData.c in Sources */,
- 43F7FF591927F91900CA4038 /* BoneData.c in Sources */,
- 43F7FF5A1927F91900CA4038 /* BoundingBoxAttachment.c in Sources */,
- 43F7FF5B1927F91900CA4038 /* Event.c in Sources */,
- 43F7FF5C1927F91900CA4038 /* EventData.c in Sources */,
- 43F7FF5D1927F91900CA4038 /* extension.c in Sources */,
- 4327E30419E9879C007E7FB7 /* IkConstraint.c in Sources */,
- 43F7FF5E1927F91900CA4038 /* Json.c in Sources */,
- 43F7FF5F1927F91900CA4038 /* MeshAttachment.c in Sources */,
- 43F7FF601927F91900CA4038 /* RegionAttachment.c in Sources */,
- 4327E30519E9879C007E7FB7 /* IkConstraintData.c in Sources */,
- 43F7FF611927F91900CA4038 /* Skeleton.c in Sources */,
- 43D73BD81C7352D100F73E38 /* WeightedMeshAttachment.c in Sources */,
- 43F7FF621927F91900CA4038 /* SkeletonBounds.c in Sources */,
- 43F7FF631927F91900CA4038 /* SkeletonData.c in Sources */,
- 43F7FF641927F91900CA4038 /* SkeletonJson.c in Sources */,
- 43F7FF651927F91900CA4038 /* Skin.c in Sources */,
- 43F7FF671927F91900CA4038 /* Slot.c in Sources */,
- 43F7FF681927F91900CA4038 /* SlotData.c in Sources */,
- 43F7FF871927F94800CA4038 /* PolygonBatch.m in Sources */,
- 43F7FF881927F94800CA4038 /* SkeletonAnimation.m in Sources */,
- 43F7FF891927F94800CA4038 /* SkeletonRenderer.m in Sources */,
- 43F7FF8E1927F96700CA4038 /* GoblinsExample.m in Sources */,
- 43F7FF8F1927F96700CA4038 /* SpineboyExample.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 9A5D2641170A94DC0030D4DD /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- 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__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 = 4.0;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALID_ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- };
- name = Debug;
- };
- 9A5D2642170A94DC0030D4DD /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- 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__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 = 4.0;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALID_ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- };
- name = Release;
- };
- 9A5D2644170A94DC0030D4DD /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = YES;
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Resources-ios/Prefix.pch";
- HEADER_SEARCH_PATHS = (
- "\"cocos2d/external/kazmath/include\"",
- "\"src\"",
- "\"../../spine-c/include\"",
- "\"cocos2d/cocos2d\"/**",
- );
- INFOPLIST_FILE = "Resources-ios/Info.plist";
- ONLY_ACTIVE_ARCH = YES;
- OTHER_LDFLAGS = (
- "-lz",
- "-lsqlite3",
- "-ObjC",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- VALID_ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- WRAPPER_EXTENSION = app;
- };
- name = Debug;
- };
- 9A5D2645170A94DC0030D4DD /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = YES;
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- COPY_PHASE_STRIP = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Resources-ios/Prefix.pch";
- HEADER_SEARCH_PATHS = (
- "\"cocos2d/external/kazmath/include\"",
- "\"src\"",
- "\"../../spine-c/include\"",
- "\"cocos2d/cocos2d\"/**",
- );
- INFOPLIST_FILE = "Resources-ios/Info.plist";
- ONLY_ACTIVE_ARCH = YES;
- OTHER_LDFLAGS = (
- "-lz",
- "-lsqlite3",
- "-ObjC",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- VALIDATE_PRODUCT = YES;
- VALID_ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 9A5D2490170A94DA0030D4DD /* Build configuration list for PBXProject "spine-cocos2d-iphone-ios" */ = {
- 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 */;
-}
diff --git a/spine-cocos2d-iphone/2/spine-cocos2d-iphone-mac.xcodeproj/project.pbxproj b/spine-cocos2d-iphone/2/spine-cocos2d-iphone-mac.xcodeproj/project.pbxproj
deleted file mode 100644
index 7f2a978a2..000000000
--- a/spine-cocos2d-iphone/2/spine-cocos2d-iphone-mac.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,759 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 4319B51816FF9B2600C1D7A9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4319B51716FF9B2600C1D7A9 /* QuartzCore.framework */; };
- 4319B51A16FF9B2600C1D7A9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4319B51916FF9B2600C1D7A9 /* OpenGL.framework */; };
- 4319B51C16FF9B2600C1D7A9 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4319B51B16FF9B2600C1D7A9 /* OpenAL.framework */; };
- 4319B51E16FF9B2600C1D7A9 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4319B51D16FF9B2600C1D7A9 /* AudioToolbox.framework */; };
- 4319B52016FF9B2600C1D7A9 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4319B51F16FF9B2600C1D7A9 /* AppKit.framework */; };
- 4319B52216FF9B2600C1D7A9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4319B52116FF9B2600C1D7A9 /* Foundation.framework */; };
- 431FF7CA1C735CA100D52DF2 /* IkConstraint.c in Sources */ = {isa = PBXBuildFile; fileRef = 431FF7C91C735CA100D52DF2 /* IkConstraint.c */; };
- 431FF7DA1C735CFE00D52DF2 /* IkConstraintData.c in Sources */ = {isa = PBXBuildFile; fileRef = 431FF7D61C735CFE00D52DF2 /* IkConstraintData.c */; };
- 431FF7DB1C735CFE00D52DF2 /* TransformConstraint.c in Sources */ = {isa = PBXBuildFile; fileRef = 431FF7D71C735CFE00D52DF2 /* TransformConstraint.c */; };
- 431FF7DC1C735CFE00D52DF2 /* TransformConstraintData.c in Sources */ = {isa = PBXBuildFile; fileRef = 431FF7D81C735CFE00D52DF2 /* TransformConstraintData.c */; };
- 431FF7DD1C735CFE00D52DF2 /* WeightedMeshAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 431FF7D91C735CFE00D52DF2 /* WeightedMeshAttachment.c */; };
- 431FF7E51C735D4300D52DF2 /* goblins-mesh.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 431FF7E21C735D4300D52DF2 /* goblins-mesh.atlas */; };
- 431FF7E61C735D4300D52DF2 /* goblins-mesh.json in Resources */ = {isa = PBXBuildFile; fileRef = 431FF7E31C735D4300D52DF2 /* goblins-mesh.json */; };
- 431FF7E71C735D4300D52DF2 /* goblins-mesh.png in Resources */ = {isa = PBXBuildFile; fileRef = 431FF7E41C735D4300D52DF2 /* goblins-mesh.png */; };
- 434D4819192A2B49003127B5 /* libcocos2d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 434D4808192A2B35003127B5 /* libcocos2d.a */; };
- 43BFBE0F170A778A00ECBACB /* spine-cocos2d-iphone.m in Sources */ = {isa = PBXBuildFile; fileRef = 43BFBE0D170A778A00ECBACB /* spine-cocos2d-iphone.m */; };
- 43C32A1B170B1295004A9460 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 43C32A11170B1295004A9460 /* AppDelegate.m */; };
- 43C32A1C170B1295004A9460 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 43C32A13170B1295004A9460 /* InfoPlist.strings */; };
- 43C32A1D170B1295004A9460 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 43C32A15170B1295004A9460 /* MainMenu.xib */; };
- 43C32A1E170B1295004A9460 /* icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 43C32A17170B1295004A9460 /* icon.icns */; };
- 43C32A20170B1295004A9460 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 43C32A19170B1295004A9460 /* main.m */; };
- 43C32A36170D0A4D004A9460 /* spineboy.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 43C32A30170D0A4D004A9460 /* spineboy.atlas */; };
- 43C32A37170D0A4D004A9460 /* spineboy.json in Resources */ = {isa = PBXBuildFile; fileRef = 43C32A31170D0A4D004A9460 /* spineboy.json */; };
- 43C32A38170D0A4D004A9460 /* spineboy.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C32A32170D0A4D004A9460 /* spineboy.png */; };
- 43F7FD711927C31700CA4038 /* Animation.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD581927C31700CA4038 /* Animation.c */; };
- 43F7FD721927C31700CA4038 /* AnimationState.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD591927C31700CA4038 /* AnimationState.c */; };
- 43F7FD731927C31700CA4038 /* AnimationStateData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD5A1927C31700CA4038 /* AnimationStateData.c */; };
- 43F7FD741927C31700CA4038 /* Atlas.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD5B1927C31700CA4038 /* Atlas.c */; };
- 43F7FD751927C31700CA4038 /* AtlasAttachmentLoader.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD5C1927C31700CA4038 /* AtlasAttachmentLoader.c */; };
- 43F7FD761927C31700CA4038 /* Attachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD5D1927C31700CA4038 /* Attachment.c */; };
- 43F7FD771927C31700CA4038 /* AttachmentLoader.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD5E1927C31700CA4038 /* AttachmentLoader.c */; };
- 43F7FD781927C31700CA4038 /* Bone.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD5F1927C31700CA4038 /* Bone.c */; };
- 43F7FD791927C31700CA4038 /* BoneData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD601927C31700CA4038 /* BoneData.c */; };
- 43F7FD7A1927C31700CA4038 /* BoundingBoxAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD611927C31700CA4038 /* BoundingBoxAttachment.c */; };
- 43F7FD7B1927C31700CA4038 /* Event.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD621927C31700CA4038 /* Event.c */; };
- 43F7FD7C1927C31700CA4038 /* EventData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD631927C31700CA4038 /* EventData.c */; };
- 43F7FD7D1927C31700CA4038 /* extension.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD641927C31700CA4038 /* extension.c */; };
- 43F7FD7E1927C31700CA4038 /* Json.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD651927C31700CA4038 /* Json.c */; };
- 43F7FD7F1927C31700CA4038 /* MeshAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD671927C31700CA4038 /* MeshAttachment.c */; };
- 43F7FD801927C31700CA4038 /* RegionAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD681927C31700CA4038 /* RegionAttachment.c */; };
- 43F7FD811927C31700CA4038 /* Skeleton.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD691927C31700CA4038 /* Skeleton.c */; };
- 43F7FD821927C31700CA4038 /* SkeletonBounds.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD6A1927C31700CA4038 /* SkeletonBounds.c */; };
- 43F7FD831927C31700CA4038 /* SkeletonData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD6B1927C31700CA4038 /* SkeletonData.c */; };
- 43F7FD841927C31700CA4038 /* SkeletonJson.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD6C1927C31700CA4038 /* SkeletonJson.c */; };
- 43F7FD851927C31700CA4038 /* Skin.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD6D1927C31700CA4038 /* Skin.c */; };
- 43F7FD871927C31700CA4038 /* Slot.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD6F1927C31700CA4038 /* Slot.c */; };
- 43F7FD881927C31700CA4038 /* SlotData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FD701927C31700CA4038 /* SlotData.c */; };
- 43F7FDA71927C33C00CA4038 /* PolygonBatch.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDA21927C33C00CA4038 /* PolygonBatch.m */; };
- 43F7FDA81927C33C00CA4038 /* SkeletonAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDA41927C33C00CA4038 /* SkeletonAnimation.m */; };
- 43F7FDA91927C33C00CA4038 /* SkeletonRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDA61927C33C00CA4038 /* SkeletonRenderer.m */; };
- 43F7FDAC1927C34600CA4038 /* SpineboyExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDAB1927C34600CA4038 /* SpineboyExample.m */; };
- 43F7FDB51927D04200CA4038 /* GoblinsExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F7FDB41927D04200CA4038 /* GoblinsExample.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 434D4807192A2B35003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = E01E663D121CA00A001A484F;
- remoteInfo = cocos2d;
- };
- 434D4809192A2B35003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A0EFA65C169CDAC8006D1B22;
- remoteInfo = cocos2d_box2d;
- };
- 434D480B192A2B35003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A0EFA585169CDABA006D1B22;
- remoteInfo = cocos2d_chipmunk;
- };
- 434D480D192A2B35003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 4AD3B8A7159A5415002E68D1;
- remoteInfo = CocosDenshion;
- };
- 434D480F192A2B35003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A0644A5215B609D3004AB807;
- remoteInfo = CocosBuilderReader;
- };
- 434D4811192A2B35003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A0FBA8AF14A5138F002DF395;
- remoteInfo = box2d;
- };
- 434D4813192A2B35003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A0FBA8A614A51386002DF395;
- remoteInfo = chipmunk;
- };
- 434D4815192A2B35003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A0191CB1167FD65B0099349A;
- remoteInfo = jsbindings;
- };
- 434D4817192A2B35003127B5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = A06430E713C1414300CC5554;
- remoteInfo = kazmath;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 4319B51316FF9B2600C1D7A9 /* SpineExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SpineExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 4319B51716FF9B2600C1D7A9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- 4319B51916FF9B2600C1D7A9 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
- 4319B51B16FF9B2600C1D7A9 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
- 4319B51D16FF9B2600C1D7A9 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
- 4319B51F16FF9B2600C1D7A9 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
- 4319B52116FF9B2600C1D7A9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 431FF7C91C735CA100D52DF2 /* IkConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IkConstraint.c; path = "../../spine-c/src/spine/IkConstraint.c"; sourceTree = ""; };
- 431FF7D51C735CAE00D52DF2 /* IkConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IkConstraint.h; path = "../../spine-c/include/spine/IkConstraint.h"; sourceTree = ""; };
- 431FF7D61C735CFE00D52DF2 /* IkConstraintData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IkConstraintData.c; path = "../../spine-c/src/spine/IkConstraintData.c"; sourceTree = ""; };
- 431FF7D71C735CFE00D52DF2 /* TransformConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TransformConstraint.c; path = "../../spine-c/src/spine/TransformConstraint.c"; sourceTree = ""; };
- 431FF7D81C735CFE00D52DF2 /* TransformConstraintData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TransformConstraintData.c; path = "../../spine-c/src/spine/TransformConstraintData.c"; sourceTree = ""; };
- 431FF7D91C735CFE00D52DF2 /* WeightedMeshAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = WeightedMeshAttachment.c; path = "../../spine-c/src/spine/WeightedMeshAttachment.c"; sourceTree = ""; };
- 431FF7DE1C735D1500D52DF2 /* IkConstraintData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IkConstraintData.h; path = "../../spine-c/include/spine/IkConstraintData.h"; sourceTree = ""; };
- 431FF7DF1C735D1500D52DF2 /* TransformConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransformConstraint.h; path = "../../spine-c/include/spine/TransformConstraint.h"; sourceTree = ""; };
- 431FF7E01C735D1500D52DF2 /* TransformConstraintData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransformConstraintData.h; path = "../../spine-c/include/spine/TransformConstraintData.h"; sourceTree = ""; };
- 431FF7E11C735D1500D52DF2 /* WeightedMeshAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WeightedMeshAttachment.h; path = "../../spine-c/include/spine/WeightedMeshAttachment.h"; sourceTree = ""; };
- 431FF7E21C735D4300D52DF2 /* goblins-mesh.atlas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "goblins-mesh.atlas"; sourceTree = ""; };
- 431FF7E31C735D4300D52DF2 /* goblins-mesh.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "goblins-mesh.json"; sourceTree = ""; };
- 431FF7E41C735D4300D52DF2 /* goblins-mesh.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "goblins-mesh.png"; sourceTree = ""; };
- 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "cocos2d-osx.xcodeproj"; path = "cocos2d/cocos2d-osx.xcodeproj"; sourceTree = SOURCE_ROOT; };
- 43BFBE0D170A778A00ECBACB /* spine-cocos2d-iphone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "spine-cocos2d-iphone.m"; path = "src/spine/spine-cocos2d-iphone.m"; sourceTree = ""; };
- 43BFBE0E170A778A00ECBACB /* spine-cocos2d-iphone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "spine-cocos2d-iphone.h"; path = "src/spine/spine-cocos2d-iphone.h"; sourceTree = ""; };
- 43C32A10170B1295004A9460 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = "../Resources-mac/AppDelegate.h"; sourceTree = ""; };
- 43C32A11170B1295004A9460 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = "../Resources-mac/AppDelegate.m"; sourceTree = ""; };
- 43C32A14170B1295004A9460 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = English; path = InfoPlist.strings; sourceTree = ""; };
- 43C32A16170B1295004A9460 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = MainMenu.xib; sourceTree = ""; };
- 43C32A17170B1295004A9460 /* icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = icon.icns; path = "Resources-mac/icon.icns"; sourceTree = ""; };
- 43C32A18170B1295004A9460 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = "Resources-mac/Info.plist"; sourceTree = ""; };
- 43C32A19170B1295004A9460 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = "../Resources-mac/main.m"; sourceTree = ""; };
- 43C32A1A170B1295004A9460 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = "../Resources-mac/Prefix.pch"; sourceTree = ""; };
- 43C32A30170D0A4D004A9460 /* spineboy.atlas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = spineboy.atlas; sourceTree = ""; };
- 43C32A31170D0A4D004A9460 /* spineboy.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = spineboy.json; sourceTree = ""; };
- 43C32A32170D0A4D004A9460 /* spineboy.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = spineboy.png; sourceTree = ""; };
- 43F7FD581927C31700CA4038 /* Animation.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Animation.c; path = "../../spine-c/src/spine/Animation.c"; sourceTree = ""; };
- 43F7FD591927C31700CA4038 /* AnimationState.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AnimationState.c; path = "../../spine-c/src/spine/AnimationState.c"; sourceTree = ""; };
- 43F7FD5A1927C31700CA4038 /* AnimationStateData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AnimationStateData.c; path = "../../spine-c/src/spine/AnimationStateData.c"; sourceTree = ""; };
- 43F7FD5B1927C31700CA4038 /* Atlas.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Atlas.c; path = "../../spine-c/src/spine/Atlas.c"; sourceTree = ""; };
- 43F7FD5C1927C31700CA4038 /* AtlasAttachmentLoader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AtlasAttachmentLoader.c; path = "../../spine-c/src/spine/AtlasAttachmentLoader.c"; sourceTree = ""; };
- 43F7FD5D1927C31700CA4038 /* Attachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Attachment.c; path = "../../spine-c/src/spine/Attachment.c"; sourceTree = ""; };
- 43F7FD5E1927C31700CA4038 /* AttachmentLoader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AttachmentLoader.c; path = "../../spine-c/src/spine/AttachmentLoader.c"; sourceTree = ""; };
- 43F7FD5F1927C31700CA4038 /* Bone.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Bone.c; path = "../../spine-c/src/spine/Bone.c"; sourceTree = ""; };
- 43F7FD601927C31700CA4038 /* BoneData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = BoneData.c; path = "../../spine-c/src/spine/BoneData.c"; sourceTree = ""; };
- 43F7FD611927C31700CA4038 /* BoundingBoxAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = BoundingBoxAttachment.c; path = "../../spine-c/src/spine/BoundingBoxAttachment.c"; sourceTree = ""; };
- 43F7FD621927C31700CA4038 /* Event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Event.c; path = "../../spine-c/src/spine/Event.c"; sourceTree = ""; };
- 43F7FD631927C31700CA4038 /* EventData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = EventData.c; path = "../../spine-c/src/spine/EventData.c"; sourceTree = ""; };
- 43F7FD641927C31700CA4038 /* extension.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = extension.c; path = "../../spine-c/src/spine/extension.c"; sourceTree = ""; };
- 43F7FD651927C31700CA4038 /* Json.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Json.c; path = "../../spine-c/src/spine/Json.c"; sourceTree = ""; };
- 43F7FD661927C31700CA4038 /* Json.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Json.h; path = "../../spine-c/src/spine/Json.h"; sourceTree = ""; };
- 43F7FD671927C31700CA4038 /* MeshAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = MeshAttachment.c; path = "../../spine-c/src/spine/MeshAttachment.c"; sourceTree = ""; };
- 43F7FD681927C31700CA4038 /* RegionAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = RegionAttachment.c; path = "../../spine-c/src/spine/RegionAttachment.c"; sourceTree = ""; };
- 43F7FD691927C31700CA4038 /* Skeleton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Skeleton.c; path = "../../spine-c/src/spine/Skeleton.c"; sourceTree = ""; };
- 43F7FD6A1927C31700CA4038 /* SkeletonBounds.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonBounds.c; path = "../../spine-c/src/spine/SkeletonBounds.c"; sourceTree = ""; };
- 43F7FD6B1927C31700CA4038 /* SkeletonData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonData.c; path = "../../spine-c/src/spine/SkeletonData.c"; sourceTree = ""; };
- 43F7FD6C1927C31700CA4038 /* SkeletonJson.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SkeletonJson.c; path = "../../spine-c/src/spine/SkeletonJson.c"; sourceTree = ""; };
- 43F7FD6D1927C31700CA4038 /* Skin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Skin.c; path = "../../spine-c/src/spine/Skin.c"; sourceTree = ""; };
- 43F7FD6F1927C31700CA4038 /* Slot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Slot.c; path = "../../spine-c/src/spine/Slot.c"; sourceTree = ""; };
- 43F7FD701927C31700CA4038 /* SlotData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SlotData.c; path = "../../spine-c/src/spine/SlotData.c"; sourceTree = ""; };
- 43F7FD891927C32800CA4038 /* Animation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Animation.h; path = "../../spine-c/include/spine/Animation.h"; sourceTree = ""; };
- 43F7FD8A1927C32800CA4038 /* AnimationState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AnimationState.h; path = "../../spine-c/include/spine/AnimationState.h"; sourceTree = ""; };
- 43F7FD8B1927C32800CA4038 /* AnimationStateData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AnimationStateData.h; path = "../../spine-c/include/spine/AnimationStateData.h"; sourceTree = ""; };
- 43F7FD8C1927C32800CA4038 /* Atlas.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Atlas.h; path = "../../spine-c/include/spine/Atlas.h"; sourceTree = ""; };
- 43F7FD8D1927C32800CA4038 /* AtlasAttachmentLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AtlasAttachmentLoader.h; path = "../../spine-c/include/spine/AtlasAttachmentLoader.h"; sourceTree = ""; };
- 43F7FD8E1927C32800CA4038 /* Attachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Attachment.h; path = "../../spine-c/include/spine/Attachment.h"; sourceTree = ""; };
- 43F7FD8F1927C32800CA4038 /* AttachmentLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AttachmentLoader.h; path = "../../spine-c/include/spine/AttachmentLoader.h"; sourceTree = ""; };
- 43F7FD901927C32800CA4038 /* Bone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Bone.h; path = "../../spine-c/include/spine/Bone.h"; sourceTree = ""; };
- 43F7FD911927C32800CA4038 /* BoneData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BoneData.h; path = "../../spine-c/include/spine/BoneData.h"; sourceTree = ""; };
- 43F7FD921927C32800CA4038 /* BoundingBoxAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BoundingBoxAttachment.h; path = "../../spine-c/include/spine/BoundingBoxAttachment.h"; sourceTree = ""; };
- 43F7FD931927C32800CA4038 /* Event.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Event.h; path = "../../spine-c/include/spine/Event.h"; sourceTree = ""; };
- 43F7FD941927C32800CA4038 /* EventData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EventData.h; path = "../../spine-c/include/spine/EventData.h"; sourceTree = ""; };
- 43F7FD951927C32800CA4038 /* extension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = extension.h; path = "../../spine-c/include/spine/extension.h"; sourceTree = ""; };
- 43F7FD961927C32800CA4038 /* MeshAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MeshAttachment.h; path = "../../spine-c/include/spine/MeshAttachment.h"; sourceTree = ""; };
- 43F7FD971927C32800CA4038 /* RegionAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegionAttachment.h; path = "../../spine-c/include/spine/RegionAttachment.h"; sourceTree = ""; };
- 43F7FD981927C32800CA4038 /* Skeleton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Skeleton.h; path = "../../spine-c/include/spine/Skeleton.h"; sourceTree = ""; };
- 43F7FD991927C32800CA4038 /* SkeletonBounds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonBounds.h; path = "../../spine-c/include/spine/SkeletonBounds.h"; sourceTree = ""; };
- 43F7FD9A1927C32800CA4038 /* SkeletonData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonData.h; path = "../../spine-c/include/spine/SkeletonData.h"; sourceTree = ""; };
- 43F7FD9B1927C32800CA4038 /* SkeletonJson.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonJson.h; path = "../../spine-c/include/spine/SkeletonJson.h"; sourceTree = ""; };
- 43F7FD9C1927C32800CA4038 /* Skin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Skin.h; path = "../../spine-c/include/spine/Skin.h"; sourceTree = ""; };
- 43F7FD9E1927C32800CA4038 /* Slot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Slot.h; path = "../../spine-c/include/spine/Slot.h"; sourceTree = ""; };
- 43F7FD9F1927C32800CA4038 /* SlotData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SlotData.h; path = "../../spine-c/include/spine/SlotData.h"; sourceTree = ""; };
- 43F7FDA01927C32800CA4038 /* spine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = spine.h; path = "../../spine-c/include/spine/spine.h"; sourceTree = ""; };
- 43F7FDA11927C33C00CA4038 /* PolygonBatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PolygonBatch.h; path = src/spine/PolygonBatch.h; sourceTree = ""; };
- 43F7FDA21927C33C00CA4038 /* PolygonBatch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PolygonBatch.m; path = src/spine/PolygonBatch.m; sourceTree = ""; };
- 43F7FDA31927C33C00CA4038 /* SkeletonAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonAnimation.h; path = src/spine/SkeletonAnimation.h; sourceTree = ""; };
- 43F7FDA41927C33C00CA4038 /* SkeletonAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SkeletonAnimation.m; path = src/spine/SkeletonAnimation.m; sourceTree = ""; };
- 43F7FDA51927C33C00CA4038 /* SkeletonRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkeletonRenderer.h; path = src/spine/SkeletonRenderer.h; sourceTree = ""; };
- 43F7FDA61927C33C00CA4038 /* SkeletonRenderer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SkeletonRenderer.m; path = src/spine/SkeletonRenderer.m; sourceTree = ""; };
- 43F7FDAA1927C34600CA4038 /* SpineboyExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpineboyExample.h; sourceTree = ""; };
- 43F7FDAB1927C34600CA4038 /* SpineboyExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SpineboyExample.m; sourceTree = ""; };
- 43F7FDB31927D04200CA4038 /* GoblinsExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GoblinsExample.h; sourceTree = ""; };
- 43F7FDB41927D04200CA4038 /* GoblinsExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GoblinsExample.m; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 4319B51016FF9B2600C1D7A9 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 434D4819192A2B49003127B5 /* libcocos2d.a in Frameworks */,
- 4319B51816FF9B2600C1D7A9 /* QuartzCore.framework in Frameworks */,
- 4319B51A16FF9B2600C1D7A9 /* OpenGL.framework in Frameworks */,
- 4319B51C16FF9B2600C1D7A9 /* OpenAL.framework in Frameworks */,
- 4319B51E16FF9B2600C1D7A9 /* AudioToolbox.framework in Frameworks */,
- 4319B52016FF9B2600C1D7A9 /* AppKit.framework in Frameworks */,
- 4319B52216FF9B2600C1D7A9 /* Foundation.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 4319B50816FF9B2600C1D7A9 = {
- isa = PBXGroup;
- children = (
- 4319B6BC16FF9D1700C1D7A9 /* Classes */,
- 4319B7CB16FF9D3900C1D7A9 /* Resources */,
- 43C32A0F170B1282004A9460 /* Resources-mac */,
- 4319B6C616FF9D3900C1D7A9 /* cocos2d */,
- 4319B51616FF9B2600C1D7A9 /* Frameworks */,
- 4319B51416FF9B2600C1D7A9 /* Products */,
- );
- sourceTree = "";
- };
- 4319B51416FF9B2600C1D7A9 /* Products */ = {
- isa = PBXGroup;
- children = (
- 4319B51316FF9B2600C1D7A9 /* SpineExample.app */,
- );
- name = Products;
- sourceTree = "";
- };
- 4319B51616FF9B2600C1D7A9 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 4319B51716FF9B2600C1D7A9 /* QuartzCore.framework */,
- 4319B51916FF9B2600C1D7A9 /* OpenGL.framework */,
- 4319B51B16FF9B2600C1D7A9 /* OpenAL.framework */,
- 4319B51D16FF9B2600C1D7A9 /* AudioToolbox.framework */,
- 4319B51F16FF9B2600C1D7A9 /* AppKit.framework */,
- 4319B52116FF9B2600C1D7A9 /* Foundation.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- 4319B6BC16FF9D1700C1D7A9 /* Classes */ = {
- isa = PBXGroup;
- children = (
- 4319B8921701168A00C1D7A9 /* spine-c */,
- 4319B8931701168F00C1D7A9 /* spine-cocos2d-iphone */,
- 43F7FDAA1927C34600CA4038 /* SpineboyExample.h */,
- 43F7FDAB1927C34600CA4038 /* SpineboyExample.m */,
- 43F7FDB31927D04200CA4038 /* GoblinsExample.h */,
- 43F7FDB41927D04200CA4038 /* GoblinsExample.m */,
- 43C32A10170B1295004A9460 /* AppDelegate.h */,
- 43C32A11170B1295004A9460 /* AppDelegate.m */,
- 43C32A19170B1295004A9460 /* main.m */,
- 43C32A1A170B1295004A9460 /* Prefix.pch */,
- );
- name = Classes;
- path = example;
- sourceTree = SOURCE_ROOT;
- };
- 4319B6C616FF9D3900C1D7A9 /* cocos2d */ = {
- isa = PBXGroup;
- children = (
- 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */,
- );
- name = cocos2d;
- path = libs;
- sourceTree = SOURCE_ROOT;
- };
- 4319B7CB16FF9D3900C1D7A9 /* Resources */ = {
- isa = PBXGroup;
- children = (
- 431FF7E21C735D4300D52DF2 /* goblins-mesh.atlas */,
- 431FF7E31C735D4300D52DF2 /* goblins-mesh.json */,
- 431FF7E41C735D4300D52DF2 /* goblins-mesh.png */,
- 43C32A30170D0A4D004A9460 /* spineboy.atlas */,
- 43C32A31170D0A4D004A9460 /* spineboy.json */,
- 43C32A32170D0A4D004A9460 /* spineboy.png */,
- );
- path = Resources;
- sourceTree = SOURCE_ROOT;
- };
- 4319B8921701168A00C1D7A9 /* spine-c */ = {
- isa = PBXGroup;
- children = (
- 43F7FD581927C31700CA4038 /* Animation.c */,
- 43F7FD891927C32800CA4038 /* Animation.h */,
- 43F7FD591927C31700CA4038 /* AnimationState.c */,
- 43F7FD8A1927C32800CA4038 /* AnimationState.h */,
- 43F7FD5A1927C31700CA4038 /* AnimationStateData.c */,
- 43F7FD8B1927C32800CA4038 /* AnimationStateData.h */,
- 43F7FD5B1927C31700CA4038 /* Atlas.c */,
- 43F7FD8C1927C32800CA4038 /* Atlas.h */,
- 43F7FD5C1927C31700CA4038 /* AtlasAttachmentLoader.c */,
- 43F7FD8D1927C32800CA4038 /* AtlasAttachmentLoader.h */,
- 43F7FD5D1927C31700CA4038 /* Attachment.c */,
- 43F7FD8E1927C32800CA4038 /* Attachment.h */,
- 43F7FD5E1927C31700CA4038 /* AttachmentLoader.c */,
- 43F7FD8F1927C32800CA4038 /* AttachmentLoader.h */,
- 43F7FD5F1927C31700CA4038 /* Bone.c */,
- 43F7FD901927C32800CA4038 /* Bone.h */,
- 43F7FD601927C31700CA4038 /* BoneData.c */,
- 43F7FD911927C32800CA4038 /* BoneData.h */,
- 43F7FD611927C31700CA4038 /* BoundingBoxAttachment.c */,
- 43F7FD921927C32800CA4038 /* BoundingBoxAttachment.h */,
- 43F7FD621927C31700CA4038 /* Event.c */,
- 43F7FD931927C32800CA4038 /* Event.h */,
- 43F7FD631927C31700CA4038 /* EventData.c */,
- 43F7FD941927C32800CA4038 /* EventData.h */,
- 43F7FD641927C31700CA4038 /* extension.c */,
- 43F7FD951927C32800CA4038 /* extension.h */,
- 431FF7C91C735CA100D52DF2 /* IkConstraint.c */,
- 431FF7D51C735CAE00D52DF2 /* IkConstraint.h */,
- 431FF7D61C735CFE00D52DF2 /* IkConstraintData.c */,
- 431FF7DE1C735D1500D52DF2 /* IkConstraintData.h */,
- 43F7FD651927C31700CA4038 /* Json.c */,
- 43F7FD661927C31700CA4038 /* Json.h */,
- 43F7FD671927C31700CA4038 /* MeshAttachment.c */,
- 43F7FD961927C32800CA4038 /* MeshAttachment.h */,
- 43F7FD681927C31700CA4038 /* RegionAttachment.c */,
- 43F7FD971927C32800CA4038 /* RegionAttachment.h */,
- 43F7FD691927C31700CA4038 /* Skeleton.c */,
- 43F7FD981927C32800CA4038 /* Skeleton.h */,
- 43F7FD6A1927C31700CA4038 /* SkeletonBounds.c */,
- 43F7FD991927C32800CA4038 /* SkeletonBounds.h */,
- 43F7FD6B1927C31700CA4038 /* SkeletonData.c */,
- 43F7FD9A1927C32800CA4038 /* SkeletonData.h */,
- 43F7FD6C1927C31700CA4038 /* SkeletonJson.c */,
- 43F7FD9B1927C32800CA4038 /* SkeletonJson.h */,
- 43F7FD6D1927C31700CA4038 /* Skin.c */,
- 43F7FD9C1927C32800CA4038 /* Skin.h */,
- 43F7FD6F1927C31700CA4038 /* Slot.c */,
- 43F7FD9E1927C32800CA4038 /* Slot.h */,
- 43F7FD701927C31700CA4038 /* SlotData.c */,
- 43F7FD9F1927C32800CA4038 /* SlotData.h */,
- 43F7FDA01927C32800CA4038 /* spine.h */,
- 431FF7D71C735CFE00D52DF2 /* TransformConstraint.c */,
- 431FF7DF1C735D1500D52DF2 /* TransformConstraint.h */,
- 431FF7D81C735CFE00D52DF2 /* TransformConstraintData.c */,
- 431FF7E01C735D1500D52DF2 /* TransformConstraintData.h */,
- 431FF7D91C735CFE00D52DF2 /* WeightedMeshAttachment.c */,
- 431FF7E11C735D1500D52DF2 /* WeightedMeshAttachment.h */,
- );
- name = "spine-c";
- path = ..;
- sourceTree = "";
- };
- 4319B8931701168F00C1D7A9 /* spine-cocos2d-iphone */ = {
- isa = PBXGroup;
- children = (
- 43F7FDA11927C33C00CA4038 /* PolygonBatch.h */,
- 43F7FDA21927C33C00CA4038 /* PolygonBatch.m */,
- 43F7FDA31927C33C00CA4038 /* SkeletonAnimation.h */,
- 43F7FDA41927C33C00CA4038 /* SkeletonAnimation.m */,
- 43F7FDA51927C33C00CA4038 /* SkeletonRenderer.h */,
- 43F7FDA61927C33C00CA4038 /* SkeletonRenderer.m */,
- 43BFBE0D170A778A00ECBACB /* spine-cocos2d-iphone.m */,
- 43BFBE0E170A778A00ECBACB /* spine-cocos2d-iphone.h */,
- );
- name = "spine-cocos2d-iphone";
- path = ..;
- sourceTree = "";
- };
- 434D47F8192A2B35003127B5 /* Products */ = {
- isa = PBXGroup;
- children = (
- 434D4808192A2B35003127B5 /* libcocos2d.a */,
- 434D480A192A2B35003127B5 /* libcocos2d_box2d.a */,
- 434D480C192A2B35003127B5 /* libcocos2d_chipmunk.a */,
- 434D480E192A2B35003127B5 /* libCocosDenshion.a */,
- 434D4810192A2B35003127B5 /* libCocosBuilderReader.a */,
- 434D4812192A2B35003127B5 /* libbox2d.a */,
- 434D4814192A2B35003127B5 /* libchipmunk.a */,
- 434D4816192A2B35003127B5 /* libjsbindings.a */,
- 434D4818192A2B35003127B5 /* libkazmath.a */,
- );
- name = Products;
- sourceTree = "";
- };
- 43C32A0F170B1282004A9460 /* Resources-mac */ = {
- isa = PBXGroup;
- children = (
- 43C32A12170B1295004A9460 /* English.lproj */,
- 43C32A17170B1295004A9460 /* icon.icns */,
- 43C32A18170B1295004A9460 /* Info.plist */,
- );
- name = "Resources-mac";
- sourceTree = "";
- };
- 43C32A12170B1295004A9460 /* English.lproj */ = {
- isa = PBXGroup;
- children = (
- 43C32A13170B1295004A9460 /* InfoPlist.strings */,
- 43C32A15170B1295004A9460 /* MainMenu.xib */,
- );
- name = English.lproj;
- path = "Resources-mac/English.lproj";
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 4319B51216FF9B2600C1D7A9 /* SpineExample */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 4319B6AC16FF9B2B00C1D7A9 /* Build configuration list for PBXNativeTarget "SpineExample" */;
- buildPhases = (
- 4319B50F16FF9B2600C1D7A9 /* Sources */,
- 4319B51016FF9B2600C1D7A9 /* Frameworks */,
- 4319B51116FF9B2600C1D7A9 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = SpineExample;
- productName = "spine-cocos2d-iphone-mac";
- productReference = 4319B51316FF9B2600C1D7A9 /* SpineExample.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 4319B50A16FF9B2600C1D7A9 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0450;
- ORGANIZATIONNAME = "Esoteric Software";
- };
- buildConfigurationList = 4319B50D16FF9B2600C1D7A9 /* Build configuration list for PBXProject "spine-cocos2d-iphone-mac" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- English,
- );
- mainGroup = 4319B50816FF9B2600C1D7A9;
- productRefGroup = 4319B51416FF9B2600C1D7A9 /* Products */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = 434D47F8192A2B35003127B5 /* Products */;
- ProjectRef = 434D47F7192A2B35003127B5 /* cocos2d-osx.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 4319B51216FF9B2600C1D7A9 /* SpineExample */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- 434D4808192A2B35003127B5 /* libcocos2d.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libcocos2d.a;
- remoteRef = 434D4807192A2B35003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D480A192A2B35003127B5 /* libcocos2d_box2d.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libcocos2d_box2d.a;
- remoteRef = 434D4809192A2B35003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D480C192A2B35003127B5 /* libcocos2d_chipmunk.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libcocos2d_chipmunk.a;
- remoteRef = 434D480B192A2B35003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D480E192A2B35003127B5 /* libCocosDenshion.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libCocosDenshion.a;
- remoteRef = 434D480D192A2B35003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D4810192A2B35003127B5 /* libCocosBuilderReader.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libCocosBuilderReader.a;
- remoteRef = 434D480F192A2B35003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D4812192A2B35003127B5 /* libbox2d.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libbox2d.a;
- remoteRef = 434D4811192A2B35003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D4814192A2B35003127B5 /* libchipmunk.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libchipmunk.a;
- remoteRef = 434D4813192A2B35003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D4816192A2B35003127B5 /* libjsbindings.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libjsbindings.a;
- remoteRef = 434D4815192A2B35003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 434D4818192A2B35003127B5 /* libkazmath.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libkazmath.a;
- remoteRef = 434D4817192A2B35003127B5 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 4319B51116FF9B2600C1D7A9 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 43C32A1C170B1295004A9460 /* InfoPlist.strings in Resources */,
- 431FF7E61C735D4300D52DF2 /* goblins-mesh.json in Resources */,
- 431FF7E71C735D4300D52DF2 /* goblins-mesh.png in Resources */,
- 431FF7E51C735D4300D52DF2 /* goblins-mesh.atlas in Resources */,
- 43C32A1D170B1295004A9460 /* MainMenu.xib in Resources */,
- 43C32A1E170B1295004A9460 /* icon.icns in Resources */,
- 43C32A36170D0A4D004A9460 /* spineboy.atlas in Resources */,
- 43C32A37170D0A4D004A9460 /* spineboy.json in Resources */,
- 43C32A38170D0A4D004A9460 /* spineboy.png in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 4319B50F16FF9B2600C1D7A9 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 43BFBE0F170A778A00ECBACB /* spine-cocos2d-iphone.m in Sources */,
- 43C32A1B170B1295004A9460 /* AppDelegate.m in Sources */,
- 43C32A20170B1295004A9460 /* main.m in Sources */,
- 43F7FD711927C31700CA4038 /* Animation.c in Sources */,
- 43F7FD721927C31700CA4038 /* AnimationState.c in Sources */,
- 43F7FD731927C31700CA4038 /* AnimationStateData.c in Sources */,
- 43F7FD741927C31700CA4038 /* Atlas.c in Sources */,
- 431FF7DB1C735CFE00D52DF2 /* TransformConstraint.c in Sources */,
- 43F7FD751927C31700CA4038 /* AtlasAttachmentLoader.c in Sources */,
- 43F7FD761927C31700CA4038 /* Attachment.c in Sources */,
- 43F7FD771927C31700CA4038 /* AttachmentLoader.c in Sources */,
- 43F7FD781927C31700CA4038 /* Bone.c in Sources */,
- 431FF7DC1C735CFE00D52DF2 /* TransformConstraintData.c in Sources */,
- 43F7FD791927C31700CA4038 /* BoneData.c in Sources */,
- 43F7FD7A1927C31700CA4038 /* BoundingBoxAttachment.c in Sources */,
- 43F7FD7B1927C31700CA4038 /* Event.c in Sources */,
- 43F7FD7C1927C31700CA4038 /* EventData.c in Sources */,
- 431FF7DA1C735CFE00D52DF2 /* IkConstraintData.c in Sources */,
- 43F7FD7D1927C31700CA4038 /* extension.c in Sources */,
- 431FF7CA1C735CA100D52DF2 /* IkConstraint.c in Sources */,
- 43F7FD7E1927C31700CA4038 /* Json.c in Sources */,
- 43F7FD7F1927C31700CA4038 /* MeshAttachment.c in Sources */,
- 43F7FD801927C31700CA4038 /* RegionAttachment.c in Sources */,
- 43F7FD811927C31700CA4038 /* Skeleton.c in Sources */,
- 431FF7DD1C735CFE00D52DF2 /* WeightedMeshAttachment.c in Sources */,
- 43F7FD821927C31700CA4038 /* SkeletonBounds.c in Sources */,
- 43F7FD831927C31700CA4038 /* SkeletonData.c in Sources */,
- 43F7FD841927C31700CA4038 /* SkeletonJson.c in Sources */,
- 43F7FD851927C31700CA4038 /* Skin.c in Sources */,
- 43F7FD871927C31700CA4038 /* Slot.c in Sources */,
- 43F7FD881927C31700CA4038 /* SlotData.c in Sources */,
- 43F7FDA71927C33C00CA4038 /* PolygonBatch.m in Sources */,
- 43F7FDA81927C33C00CA4038 /* SkeletonAnimation.m in Sources */,
- 43F7FDA91927C33C00CA4038 /* SkeletonRenderer.m in Sources */,
- 43F7FDAC1927C34600CA4038 /* SpineboyExample.m in Sources */,
- 43F7FDB51927D04200CA4038 /* GoblinsExample.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXVariantGroup section */
- 43C32A13170B1295004A9460 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 43C32A14170B1295004A9460 /* English */,
- );
- name = InfoPlist.strings;
- sourceTree = "";
- };
- 43C32A15170B1295004A9460 /* MainMenu.xib */ = {
- isa = PBXVariantGroup;
- children = (
- 43C32A16170B1295004A9460 /* English */,
- );
- name = MainMenu.xib;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- 4319B6AA16FF9B2B00C1D7A9 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_64_BIT)";
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- 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_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.7;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = macosx;
- };
- name = Debug;
- };
- 4319B6AB16FF9B2B00C1D7A9 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_64_BIT)";
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- 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_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.7;
- SDKROOT = macosx;
- };
- name = Release;
- };
- 4319B6AD16FF9B2B00C1D7A9 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ENABLE_OBJC_ARC = NO;
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Resources-mac/Prefix.pch";
- GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
- HEADER_SEARCH_PATHS = (
- "\"cocos2d/external/kazmath/include\"",
- "\"src\"",
- "\"../../spine-c/include\"",
- "\"cocos2d/cocos2d\"/**",
- );
- INFOPLIST_FILE = "Resources-mac/Info.plist";
- OTHER_CFLAGS = "";
- OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
- OTHER_LDFLAGS = (
- "-lz",
- "-lsqlite3",
- "-ObjC",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- WRAPPER_EXTENSION = app;
- };
- name = Debug;
- };
- 4319B6AE16FF9B2B00C1D7A9 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ENABLE_OBJC_ARC = NO;
- COPY_PHASE_STRIP = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "Resources-mac/Prefix.pch";
- GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
- HEADER_SEARCH_PATHS = (
- "\"cocos2d/external/kazmath/include\"",
- "\"src\"",
- "\"../../spine-c/include\"",
- "\"cocos2d/cocos2d\"/**",
- );
- INFOPLIST_FILE = "Resources-mac/Info.plist";
- OTHER_CFLAGS = "";
- OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
- OTHER_LDFLAGS = (
- "-lz",
- "-lsqlite3",
- "-ObjC",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 4319B50D16FF9B2600C1D7A9 /* Build configuration list for PBXProject "spine-cocos2d-iphone-mac" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 4319B6AA16FF9B2B00C1D7A9 /* Debug */,
- 4319B6AB16FF9B2B00C1D7A9 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 4319B6AC16FF9B2B00C1D7A9 /* Build configuration list for PBXNativeTarget "SpineExample" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 4319B6AD16FF9B2B00C1D7A9 /* Debug */,
- 4319B6AE16FF9B2B00C1D7A9 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 4319B50A16FF9B2600C1D7A9 /* Project object */;
-}
diff --git a/spine-cocos2d-iphone/2/src/spine/PolygonBatch.h b/spine-cocos2d-iphone/2/src/spine/PolygonBatch.h
deleted file mode 100644
index d85419d04..000000000
--- a/spine-cocos2d-iphone/2/src/spine/PolygonBatch.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import
-
-@interface spPolygonBatch : NSObject {
- int _capacity;
- ccV2F_C4B_T2F* _vertices;
- int _verticesCount;
- GLushort* _triangles;
- int _trianglesCount;
- CCTexture2D* _texture;
-}
-
-+ (id) createWithCapacity:(int)capacity;
-
-- (id) initWithCapacity:(int)capacity;
-
-- (void) add:(CCTexture2D*)texture vertices:(const float*)vertices uvs:(const float*)uvs
- verticesCount:(int)verticesCount triangles:(const int*)triangles trianglesCount:(int)trianglesCount
- color:(ccColor4B*)color;
-- (void) flush;
-
-@end
diff --git a/spine-cocos2d-iphone/2/src/spine/PolygonBatch.m b/spine-cocos2d-iphone/2/src/spine/PolygonBatch.m
deleted file mode 100644
index 28d36e29e..000000000
--- a/spine-cocos2d-iphone/2/src/spine/PolygonBatch.m
+++ /dev/null
@@ -1,107 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import
-#import
-#import
-
-@implementation spPolygonBatch
-
-+ (id) createWithCapacity:(int)capacity {
- return [[(spPolygonBatch*)[self alloc] initWithCapacity:capacity] autorelease];
-}
-
-- (id) initWithCapacity:(int)capacity {
- // 32767 is max index, so 32767 / 3 - (32767 / 3 % 3) = 10920.
- NSAssert(capacity <= 10920, @"capacity cannot be > 10920");
- NSAssert(capacity >= 0, @"capacity cannot be < 0");
-
- self = [super init];
- if (!self) return nil;
-
- _capacity = capacity;
- _vertices = MALLOC(ccV2F_C4B_T2F, capacity);
- _triangles = MALLOC(GLushort, capacity * 3);
-
- return self;
-}
-
-- (void) dealloc {
- FREE(_vertices);
- FREE(_triangles);
- [super dealloc];
-}
-
-- (void) add:(CCTexture2D*)addTexture vertices:(const float*)addVertices uvs:(const float*)uvs
- verticesCount:(int)addVerticesCount triangles:(const int*)addTriangles trianglesCount:(int)addTrianglesCount
- color:(ccColor4B*)color {
-
- if (
- addTexture != _texture
- || _verticesCount + (addVerticesCount >> 1) > _capacity
- || _trianglesCount + addTrianglesCount > _capacity * 3) {
- [self flush];
- _texture = addTexture;
- }
-
- for (int i = 0; i < addTrianglesCount; ++i, ++_trianglesCount)
- _triangles[_trianglesCount] = addTriangles[i] + _verticesCount;
-
- for (int i = 0; i < addVerticesCount; i += 2, ++_verticesCount) {
- ccV2F_C4B_T2F* vertex = _vertices + _verticesCount;
- vertex->vertices.x = addVertices[i];
- vertex->vertices.y = addVertices[i + 1];
- vertex->colors = *color;
- vertex->texCoords.u = uvs[i];
- vertex->texCoords.v = uvs[i + 1];
- }
-}
-
-- (void) flush {
- if (!_verticesCount) return;
-
- ccGLBindTexture2D(_texture.name);
- glEnableVertexAttribArray(kCCVertexAttrib_Position);
- glEnableVertexAttribArray(kCCVertexAttrib_Color);
- glEnableVertexAttribArray(kCCVertexAttrib_TexCoords);
- glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, sizeof(ccV2F_C4B_T2F), &_vertices[0].vertices);
- glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(ccV2F_C4B_T2F), &_vertices[0].colors);
- glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, sizeof(ccV2F_C4B_T2F), &_vertices[0].texCoords);
-
- glDrawElements(GL_TRIANGLES, _trianglesCount, GL_UNSIGNED_SHORT, _triangles);
-
- _verticesCount = 0;
- _trianglesCount = 0;
-
- CHECK_GL_ERROR_DEBUG();
-}
-
-@end
diff --git a/spine-cocos2d-iphone/2/src/spine/SkeletonAnimation.m b/spine-cocos2d-iphone/2/src/spine/SkeletonAnimation.m
deleted file mode 100644
index aa61ed952..000000000
--- a/spine-cocos2d-iphone/2/src/spine/SkeletonAnimation.m
+++ /dev/null
@@ -1,256 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import
-#import
-#import
-
-static void animationCallback (spAnimationState* state, int trackIndex, spEventType type, spEvent* event, int loopCount) {
- [(SkeletonAnimation*)state->rendererObject onAnimationStateEvent:trackIndex type:type event:event loopCount:loopCount];
-}
-
-void trackEntryCallback (spAnimationState* state, int trackIndex, spEventType type, spEvent* event, int loopCount) {
- [(SkeletonAnimation*)state->rendererObject onTrackEntryEvent:trackIndex type:type event:event loopCount:loopCount];
-}
-
-typedef struct _TrackEntryListeners {
- spStartListener startListener;
- spEndListener endListener;
- spCompleteListener completeListener;
- spEventListener eventListener;
-} _TrackEntryListeners;
-
-static _TrackEntryListeners* getListeners (spTrackEntry* entry) {
- if (!entry->rendererObject) {
- entry->rendererObject = NEW(_TrackEntryListeners);
- entry->listener = trackEntryCallback;
- }
- return (_TrackEntryListeners*)entry->rendererObject;
-}
-
-void disposeTrackEntry (spTrackEntry* entry) {
- if (entry->rendererObject) {
- _TrackEntryListeners* listeners = (_TrackEntryListeners*)entry->rendererObject;
- [listeners->startListener release];
- [listeners->endListener release];
- [listeners->completeListener release];
- [listeners->eventListener release];
- FREE(listeners);
- }
- _spTrackEntry_dispose(entry);
-}
-
-//
-
-@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;
-
-+ (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;
- stateInternal->disposeTrackEntry = disposeTrackEntry;
-}
-
-- (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];
- [_endListener release];
- [_completeListener release];
- [_eventListener release];
-
- [super dealloc];
-}
-
-- (void) update:(ccTime)deltaTime {
- deltaTime *= _timeScale;
- spSkeleton_update(_skeleton, deltaTime);
- spAnimationState_update(_state, deltaTime);
- spAnimationState_apply(_state, _skeleton);
- spSkeleton_updateWorldTransform(_skeleton);
-}
-
-- (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:(int)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:(int)trackIndex type:(spEventType)type event:(spEvent*)event loopCount:(int)loopCount {
- switch (type) {
- case SP_ANIMATION_START:
- if (_startListener) _startListener(trackIndex);
- break;
- case SP_ANIMATION_END:
- if (_endListener) _endListener(trackIndex);
- break;
- case SP_ANIMATION_COMPLETE:
- if (_completeListener) _completeListener(trackIndex, loopCount);
- break;
- case SP_ANIMATION_EVENT:
- if (_eventListener) _eventListener(trackIndex, event);
- break;
- }
-}
-
-- (void) onTrackEntryEvent:(int)trackIndex type:(spEventType)type event:(spEvent*)event loopCount:(int)loopCount {
- spTrackEntry* entry = spAnimationState_getCurrent(_state, trackIndex);
- if (!entry->rendererObject) return;
- _TrackEntryListeners* listeners = (_TrackEntryListeners*)entry->rendererObject;
- switch (type) {
- case SP_ANIMATION_START:
- if (listeners->startListener) listeners->startListener(trackIndex);
- break;
- case SP_ANIMATION_END:
- if (listeners->endListener) listeners->endListener(trackIndex);
- break;
- case SP_ANIMATION_COMPLETE:
- if (listeners->completeListener) listeners->completeListener(trackIndex, loopCount);
- break;
- case SP_ANIMATION_EVENT:
- if (listeners->eventListener) listeners->eventListener(trackIndex, event);
- break;
- }
-}
-
-- (void) setListenerForEntry:(spTrackEntry*)entry onStart:(spStartListener)listener {
- getListeners(entry)->startListener = [listener copy];
-}
-
-- (void) setListenerForEntry:(spTrackEntry*)entry onEnd:(spEndListener)listener {
- getListeners(entry)->endListener = [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];
-}
-
-@end
diff --git a/spine-cocos2d-iphone/2/src/spine/SkeletonRenderer.h b/spine-cocos2d-iphone/2/src/spine/SkeletonRenderer.h
deleted file mode 100644
index eaa67ddc5..000000000
--- a/spine-cocos2d-iphone/2/src/spine/SkeletonRenderer.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import
-#import "cocos2d.h"
-
-@class spPolygonBatch;
-
-/** Draws a skeleton. */
-@interface SkeletonRenderer : CCNodeRGBA {
- spSkeleton* _skeleton;
- spBone* _rootBone;
- bool _debugSlots;
- bool _debugBones;
- bool _premultipliedAlpha;
- ccBlendFunc _blendFunc;
-
- bool _ownsSkeletonData;
- spAtlas* _atlas;
- spPolygonBatch* batch;
- float* worldVertices;
-}
-
-+ (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;
-
-- (CCTexture2D*) getTextureForRegion:(spRegionAttachment*)attachment;
-- (CCTexture2D*) getTextureForMesh:(spMeshAttachment*)attachment;
-- (CCTexture2D*) getTextureForWeightedMesh:(spWeightedMeshAttachment*)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 debugSlots;
-@property (nonatomic) bool debugBones;
-@property (nonatomic) spBone* rootBone;
-
-@end
diff --git a/spine-cocos2d-iphone/2/src/spine/SkeletonRenderer.m b/spine-cocos2d-iphone/2/src/spine/SkeletonRenderer.m
deleted file mode 100644
index 71a6aed03..000000000
--- a/spine-cocos2d-iphone/2/src/spine/SkeletonRenderer.m
+++ /dev/null
@@ -1,370 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import
-#import
-#import
-#import
-
-static const int quadTriangles[6] = {0, 1, 2, 2, 3, 0};
-
-@interface SkeletonRenderer (Private)
-- (void) initialize:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData;
-@end
-
-@implementation SkeletonRenderer
-
-@synthesize skeleton = _skeleton;
-@synthesize rootBone = _rootBone;
-@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 {
- _ownsSkeletonData = ownsSkeletonData;
-
- worldVertices = MALLOC(float, 1000); // Max number of vertices per mesh.
-
- batch = [[spPolygonBatch createWithCapacity:2000] retain]; // Max number of vertices and triangles per batch.
-
- _skeleton = spSkeleton_create(skeletonData);
- _rootBone = _skeleton->bones[0];
-
- _blendFunc.src = GL_ONE;
- _blendFunc.dst = GL_ONE_MINUS_SRC_ALPHA;
- [self setOpacityModifyRGB:YES];
-
- [self setShaderProgram:[[CCShaderCache sharedShaderCache] programForKey:kCCShader_PositionTextureColor]];
- [self scheduleUpdate];
-}
-
-- (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 = 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;
-
- _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 = 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);
- [batch release];
- FREE(worldVertices);
- [super dealloc];
-}
-
-- (void) draw {
- CC_NODE_DRAW_SETUP();
- ccGLBindVAO(0);
-
- ccColor3B nodeColor = self.color;
- _skeleton->r = nodeColor.r / (float)255;
- _skeleton->g = nodeColor.g / (float)255;
- _skeleton->b = nodeColor.b / (float)255;
- _skeleton->a = self.opacity / (float)255;
-
- int blendMode = -1;
- ccColor4B color;
- const float* uvs = 0;
- int verticesCount = 0;
- const int* triangles = 0;
- int trianglesCount = 0;
- float r = 0, g = 0, b = 0, a = 0;
- for (int i = 0, n = _skeleton->slotsCount; i < n; i++) {
- spSlot* slot = _skeleton->drawOrder[i];
- if (!slot->attachment) continue;
- CCTexture2D *texture = 0;
- switch (slot->attachment->type) {
- case SP_ATTACHMENT_REGION: {
- spRegionAttachment* attachment = (spRegionAttachment*)slot->attachment;
- spRegionAttachment_computeWorldVertices(attachment, slot->bone, worldVertices);
- texture = [self getTextureForRegion:attachment];
- uvs = attachment->uvs;
- verticesCount = 8;
- triangles = quadTriangles;
- trianglesCount = 6;
- r = attachment->r;
- g = attachment->g;
- b = attachment->b;
- a = attachment->a;
- break;
- }
- case SP_ATTACHMENT_MESH: {
- spMeshAttachment* attachment = (spMeshAttachment*)slot->attachment;
- spMeshAttachment_computeWorldVertices(attachment, slot, worldVertices);
- texture = [self getTextureForMesh:attachment];
- uvs = attachment->uvs;
- verticesCount = attachment->verticesCount;
- triangles = attachment->triangles;
- trianglesCount = attachment->trianglesCount;
- r = attachment->r;
- g = attachment->g;
- b = attachment->b;
- a = attachment->a;
- break;
- }
- case SP_ATTACHMENT_WEIGHTED_MESH: {
- spWeightedMeshAttachment* attachment = (spWeightedMeshAttachment*)slot->attachment;
- spWeightedMeshAttachment_computeWorldVertices(attachment, slot, worldVertices);
- texture = [self getTextureForWeightedMesh:attachment];
- uvs = attachment->uvs;
- verticesCount = attachment->uvsCount;
- triangles = attachment->triangles;
- trianglesCount = attachment->trianglesCount;
- r = attachment->r;
- g = attachment->g;
- b = attachment->b;
- a = attachment->a;
- break;
- }
- default: ;
- }
- if (texture) {
- if (slot->data->blendMode != blendMode) {
- [batch flush];
- blendMode = slot->data->blendMode;
- switch (slot->data->blendMode) {
- case SP_BLEND_MODE_ADDITIVE:
- ccGLBlendFunc(_premultipliedAlpha ? GL_ONE : GL_SRC_ALPHA, GL_ONE);
- break;
- case SP_BLEND_MODE_MULTIPLY:
- ccGLBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA);
- break;
- case SP_BLEND_MODE_SCREEN:
- ccGLBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);
- break;
- default:
- ccGLBlendFunc(_premultipliedAlpha ? GL_ONE : GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
- }
- color.a = _skeleton->a * slot->a * a * 255;
- float multiplier = _premultipliedAlpha ? color.a : 255;
- color.r = _skeleton->r * slot->r * r * multiplier;
- color.g = _skeleton->g * slot->g * g * multiplier;
- color.b = _skeleton->b * slot->b * b * multiplier;
- [batch add:texture vertices:worldVertices uvs:uvs verticesCount:verticesCount
- triangles:triangles trianglesCount:trianglesCount color:&color];
- }
- }
- [batch flush];
-
- if (_debugSlots) {
- // Slots.
- ccDrawColor4B(0, 0, 255, 255);
- glLineWidth(1);
- CGPoint points[4];
- for (int i = 0, n = _skeleton->slotsCount; i < n; i++) {
- spSlot* slot = _skeleton->drawOrder[i];
- if (!slot->attachment || slot->attachment->type != SP_ATTACHMENT_REGION) continue;
- spRegionAttachment* attachment = (spRegionAttachment*)slot->attachment;
- spRegionAttachment_computeWorldVertices(attachment, slot->bone, worldVertices);
- 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]);
- ccDrawPoly(points, 4, true);
- }
- }
- if (_debugBones) {
- // Bone lengths.
- glLineWidth(2);
- ccDrawColor4B(255, 0, 0, 255);
- for (int i = 0, n = _skeleton->bonesCount; i < n; i++) {
- spBone *bone = _skeleton->bones[i];
- float x = bone->data->length * bone->a + bone->worldX;
- float y = bone->data->length * bone->c + bone->worldY;
- ccDrawLine(ccp(bone->worldX, bone->worldY), ccp(x, y));
- }
- // Bone origins.
- ccPointSize(4);
- ccDrawColor4B(0, 0, 255, 255); // Root bone is blue.
- for (int i = 0, n = _skeleton->bonesCount; i < n; i++) {
- spBone *bone = _skeleton->bones[i];
- ccDrawPoint(ccp(bone->worldX, bone->worldY));
- if (i == 0) ccDrawColor4B(0, 255, 0, 255);
- }
- }
-}
-
-- (CCTexture2D*) getTextureForRegion:(spRegionAttachment*)attachment {
- return (CCTexture2D*)((spAtlasRegion*)attachment->rendererObject)->page->rendererObject;
-}
-
-- (CCTexture2D*) getTextureForMesh:(spMeshAttachment*)attachment {
- return (CCTexture2D*)((spAtlasRegion*)attachment->rendererObject)->page->rendererObject;
-}
-
-- (CCTexture2D*) getTextureForWeightedMesh:(spWeightedMeshAttachment*)attachment {
- return (CCTexture2D*)((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);
- verticesCount = 8;
- } else if (slot->attachment->type == SP_ATTACHMENT_MESH) {
- spMeshAttachment* mesh = (spMeshAttachment*)slot->attachment;
- spMeshAttachment_computeWorldVertices(mesh, slot, worldVertices);
- verticesCount = mesh->verticesCount;
- } else if (slot->attachment->type == SP_ATTACHMENT_WEIGHTED_MESH) {
- spWeightedMeshAttachment* mesh = (spWeightedMeshAttachment*)slot->attachment;
- spWeightedMeshAttachment_computeWorldVertices(mesh, slot, worldVertices);
- verticesCount = mesh->uvsCount;
- } else
- continue;
- for (int ii = 0; ii < verticesCount; ii += 2) {
- float x = worldVertices[ii] * scaleX, y = worldVertices[ii + 1] * scaleY;
- minX = min(minX, x);
- minY = min(minY, y);
- maxX = max(maxX, x);
- maxY = max(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
diff --git a/spine-cocos2d-iphone/2/src/spine/spine-cocos2d-iphone.m b/spine-cocos2d-iphone/2/src/spine/spine-cocos2d-iphone.m
deleted file mode 100644
index 45e53f5d7..000000000
--- a/spine-cocos2d-iphone/2/src/spine/spine-cocos2d-iphone.m
+++ /dev/null
@@ -1,49 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import
-#import
-
-void _spAtlasPage_createTexture (spAtlasPage* self, const char* path) {
- CCTexture2D* texture = [[[CCTextureCache sharedTextureCache] addImage:@(path)] retain];
- self->rendererObject = texture;
- CGSize size = texture.contentSizeInPixels;
- self->width = size.width;
- self->height = size.height;
-}
-
-void _spAtlasPage_disposeTexture (spAtlasPage* self) {
- [(CCTexture2D*)self->rendererObject release];
-}
-
-char* _spUtil_readFile (const char* path, int* length) {
- return _readFile([[[CCFileUtils sharedFileUtils] fullPathForFilename:@(path)] UTF8String], length);
-}
diff --git a/spine-cocos2d-iphone/3/README.md b/spine-cocos2d-iphone/3/README.md
deleted file mode 100644
index 6e759d221..000000000
--- a/spine-cocos2d-iphone/3/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# spine-cocos2d-iphone v3.0
-
-The spine-cocos2d-iphone runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [cocos2d-iphone](http://www.cocos2d-iphone.org/). spine-cocos2d-iphone is based on [spine-c](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-c).
-
-## Licensing
-
-This Spine Runtime may only be used for personal or internal use, typically to evaluate Spine before purchasing. If you would like to incorporate a Spine Runtime into your applications, distribute software containing a Spine Runtime, or modify a Spine Runtime, then you will need a valid [Spine license](https://esotericsoftware.com/spine-purchase). Please see the [Spine Runtimes Software License](https://github.com/EsotericSoftware/spine-runtimes/blob/master/LICENSE) for detailed information.
-
-The Spine Runtimes are developed with the intent to be used with data exported from Spine. By purchasing Spine, `Section 2` of the [Spine Software License](https://esotericsoftware.com/files/license.txt) grants the right to create and distribute derivative works of the Spine Runtimes.
-
-## Spine version
-
-spine-cocos2d-iphone v3 works with data exported from Spine 3.1.08. Updating spine-cocos2d-iphone v3 to [v3.2](https://trello.com/c/k7KtGdPW/76-update-runtimes-to-support-v3-2-shearing) is in progress.
-
-spine-cocos2d-iphone v3 supports all Spine features.
-
-spine-cocos2d-iphone v3 does not yet support loading the binary format.
-
-## Setup
-
-1. Download the Spine Runtimes source using [git](https://help.github.com/articles/set-up-git) or by downloading it [as a zip](https://github.com/EsotericSoftware/spine-runtimes/archive/master.zip).
-1. Place the contents of a cocos2d version 3.1 (or higher) distribution into the `spine-cocos2d-iphone/3/cocos2d` directory.
-1. Open the Xcode project file for iOS or Mac from the `spine-cocos2d-iphone/3` directory.
-
-Alternatively, the contents of the `spine-c/src`, `spine-c/include` and `spine-cocos2d-iphone/3/src` directories can be copied into your project. Be sure your header search path will find the contents of the `spine-c/include` and `spine-cocos2d-iphone/3/src` directories. Note that the includes use `spine/Xxx.h`, so the `spine` directory cannot be omitted when copying the files.
-
-## Examples
-
-[Spineboy](https://github.com/EsotericSoftware/spine-runtimes/blob/master/spine-cocos2d-iphone/3/example/SpineboyExample.m)
-[Golbins](https://github.com/EsotericSoftware/spine-runtimes/blob/master/spine-cocos2d-iphone/3/example/GoblinsExample.m)
-
-## Links
-
-[podspec](https://github.com/ldomaradzki/spine-runtimes/blob/master/Spine-Cocos2d-iPhone.podspec) (maintained externally)
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Default-568h@2x.png b/spine-cocos2d-iphone/3/Resources-ios/Default-568h@2x.png
deleted file mode 100644
index 24728b3a5..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/Default-568h@2x.png and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Default-Landscape~ipad.png b/spine-cocos2d-iphone/3/Resources-ios/Default-Landscape~ipad.png
deleted file mode 100644
index 82aa50e93..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/Default-Landscape~ipad.png and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Default.png b/spine-cocos2d-iphone/3/Resources-ios/Default.png
deleted file mode 100644
index b3de96822..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/Default.png and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Default@2x.png b/spine-cocos2d-iphone/3/Resources-ios/Default@2x.png
deleted file mode 100644
index 075ae87f0..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/Default@2x.png and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Icon-72.png b/spine-cocos2d-iphone/3/Resources-ios/Icon-72.png
deleted file mode 100644
index 5b1ce47ad..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/Icon-72.png and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Icon-Small-50.png b/spine-cocos2d-iphone/3/Resources-ios/Icon-Small-50.png
deleted file mode 100644
index bf1f0c52f..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/Icon-Small-50.png and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Icon-Small.png b/spine-cocos2d-iphone/3/Resources-ios/Icon-Small.png
deleted file mode 100644
index 1f1166959..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/Icon-Small.png and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Icon-Small@2x.png b/spine-cocos2d-iphone/3/Resources-ios/Icon-Small@2x.png
deleted file mode 100644
index 8d8ece43e..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/Icon-Small@2x.png and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Icon.png b/spine-cocos2d-iphone/3/Resources-ios/Icon.png
deleted file mode 100644
index def898328..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/Icon.png and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Icon@2x.png b/spine-cocos2d-iphone/3/Resources-ios/Icon@2x.png
deleted file mode 100644
index 05be6c602..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/Icon@2x.png and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-ios/Prefix.pch b/spine-cocos2d-iphone/3/Resources-ios/Prefix.pch
deleted file mode 100644
index f69095daf..000000000
--- a/spine-cocos2d-iphone/3/Resources-ios/Prefix.pch
+++ /dev/null
@@ -1,11 +0,0 @@
-
-#import
-
-#ifndef __IPHONE_3_0
-#warning "This project uses features only available in iPhone SDK 3.0 and later."
-#endif
-
-#ifdef __OBJC__
-#import
-#import
-#endif
diff --git a/spine-cocos2d-iphone/3/Resources-ios/iTunesArtwork b/spine-cocos2d-iphone/3/Resources-ios/iTunesArtwork
deleted file mode 100644
index b1cc056ba..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-ios/iTunesArtwork and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-mac/English.lproj/InfoPlist.strings b/spine-cocos2d-iphone/3/Resources-mac/English.lproj/InfoPlist.strings
deleted file mode 100644
index 477b28ff8..000000000
--- a/spine-cocos2d-iphone/3/Resources-mac/English.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Localized versions of Info.plist keys */
-
diff --git a/spine-cocos2d-iphone/3/Resources-mac/English.lproj/MainMenu.xib b/spine-cocos2d-iphone/3/Resources-mac/English.lproj/MainMenu.xib
deleted file mode 100644
index cbff754f9..000000000
--- a/spine-cocos2d-iphone/3/Resources-mac/English.lproj/MainMenu.xib
+++ /dev/null
@@ -1,896 +0,0 @@
-
-
-
- 1060
- 10K549
- 1938
- 1038.36
- 461.00
-
-
-
-
-
-
-
- YES
-
-
- terminate:
-
-
-
- 449
-
-
-
- orderFrontStandardAboutPanel:
-
-
-
- 142
-
-
-
- delegate
-
-
-
- 495
-
-
-
- performMiniaturize:
-
-
-
- 37
-
-
-
- arrangeInFront:
-
-
-
- 39
-
-
-
- performZoom:
-
-
-
- 240
-
-
-
- hide:
-
-
-
- 367
-
-
-
- hideOtherApplications:
-
-
-
- 368
-
-
-
- unhideAllApplications:
-
-
-
- 370
-
-
-
- showHelp:
-
-
-
- 493
-
-
-
- window
-
-
-
- 536
-
-
-
- glView
-
-
-
- 537
-
-
-
- toggleFullScreen:
-
-
-
- 541
-
-
-
-
- YES
-
- 0
-
- YES
-
-
-
-
-
- -2
-
-
- File's Owner
-
-
- -1
-
-
- First Responder
-
-
- -3
-
-
- Application
-
-
- 29
-
-
- YES
-
-
-
-
-
-
-
-
- 19
-
-
- YES
-
-
-
-
-
- 56
-
-
- YES
-
-
-
-
-
- 57
-
-
- YES
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 58
-
-
-
-
- 134
-
-
-
-
- 150
-
-
-
-
- 136
-
-
-
-
- 144
-
-
-
-
- 129
-
-
-
-
- 143
-
-
-
-
- 236
-
-
-
-
- 131
-
-
- YES
-
-
-
-
-
- 149
-
-
-
-
- 145
-
-
-
-
- 130
-
-
-
-
- 24
-
-
- YES
-
-
-
-
-
-
-
-
- 92
-
-
-
-
- 5
-
-
-
-
- 239
-
-
-
-
- 23
-
-
-
-
- 295
-
-
- YES
-
-
-
-
-
- 296
-
-
- YES
-
-
-
-
-
- 371
-
-
- YES
-
-
-
-
-
- 372
-
-
- YES
-
-
-
-
-
- 420
-
-
-
-
- 490
-
-
- YES
-
-
-
-
-
- 491
-
-
- YES
-
-
-
-
-
- 492
-
-
-
-
- 494
-
-
-
-
- 533
-
-
-
-
- 538
-
-
-
-
- 540
-
-
-
-
-
-
- YES
-
- YES
- -1.IBPluginDependency
- -2.IBPluginDependency
- -3.IBPluginDependency
- 129.IBPluginDependency
- 130.IBPluginDependency
- 131.IBPluginDependency
- 134.IBPluginDependency
- 136.IBPluginDependency
- 143.IBPluginDependency
- 144.IBPluginDependency
- 145.IBPluginDependency
- 149.IBPluginDependency
- 150.IBPluginDependency
- 19.IBPluginDependency
- 23.IBPluginDependency
- 236.IBPluginDependency
- 239.IBPluginDependency
- 24.IBPluginDependency
- 29.IBPluginDependency
- 295.IBPluginDependency
- 296.IBPluginDependency
- 371.IBPluginDependency
- 371.IBWindowTemplateEditedContentRect
- 371.NSWindowTemplate.visibleAtLaunch
- 372.IBPluginDependency
- 420.IBPluginDependency
- 490.IBPluginDependency
- 491.IBPluginDependency
- 492.IBPluginDependency
- 494.IBPluginDependency
- 5.IBPluginDependency
- 533.CustomClassName
- 533.IBPluginDependency
- 538.IBPluginDependency
- 540.IBPluginDependency
- 56.IBPluginDependency
- 57.IBPluginDependency
- 58.IBPluginDependency
- 92.IBPluginDependency
-
-
- YES
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- {{395, 107}, {580, 416}}
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- CCGLView
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
-
- YES
-
-
-
-
-
- YES
-
-
-
-
- 541
-
-
-
- YES
-
- MacGLView
- NSOpenGLView
-
- IBProjectSource
- ./Classes/MacGLView.h
-
-
-
- spine_cocos2d_iphoneAppDelegate
- NSObject
-
- toggleFullScreen:
- id
-
-
- toggleFullScreen:
-
- toggleFullScreen:
- id
-
-
-
- YES
-
- YES
- glView
- window
-
-
- YES
- MacGLView
- NSWindow
-
-
-
- YES
-
- YES
- glView
- window
-
-
- YES
-
- glView
- MacGLView
-
-
- window
- NSWindow
-
-
-
-
- IBProjectSource
- ./Classes/spine_cocos2d_iphoneAppDelegate.h
-
-
-
-
- 0
- IBCocoaFramework
-
- com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3
-
-
- YES
- 3
-
- YES
-
- YES
- NSMenuCheckmark
- NSMenuMixedState
-
-
- YES
- {9, 8}
- {7, 2}
-
-
-
-
diff --git a/spine-cocos2d-iphone/3/Resources-mac/Prefix.pch b/spine-cocos2d-iphone/3/Resources-mac/Prefix.pch
deleted file mode 100644
index 8c4f6562b..000000000
--- a/spine-cocos2d-iphone/3/Resources-mac/Prefix.pch
+++ /dev/null
@@ -1,4 +0,0 @@
-
-#ifdef __OBJC__
- #import
-#endif
diff --git a/spine-cocos2d-iphone/3/Resources-mac/icon.icns b/spine-cocos2d-iphone/3/Resources-mac/icon.icns
deleted file mode 100644
index 70ba1e4d8..000000000
Binary files a/spine-cocos2d-iphone/3/Resources-mac/icon.icns and /dev/null differ
diff --git a/spine-cocos2d-iphone/3/Resources-mac/main.m b/spine-cocos2d-iphone/3/Resources-mac/main.m
deleted file mode 100644
index 3fa78a5d9..000000000
--- a/spine-cocos2d-iphone/3/Resources-mac/main.m
+++ /dev/null
@@ -1,8 +0,0 @@
-
-#import
-#import "cocos2d.h"
-
-int main(int argc, char *argv[]) {
- [CCGLView load_];
- return NSApplicationMain(argc, (const char **) argv);
-}
diff --git a/spine-cocos2d-iphone/3/spine-cocos2d-iphone-ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/spine-cocos2d-iphone/3/spine-cocos2d-iphone-ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 3d1aaa193..000000000
--- a/spine-cocos2d-iphone/3/spine-cocos2d-iphone-ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/spine-cocos2d-iphone/3/src/spine/SkeletonAnimation.h b/spine-cocos2d-iphone/3/src/spine/SkeletonAnimation.h
deleted file mode 100644
index 22ee4f1da..000000000
--- a/spine-cocos2d-iphone/3/src/spine/SkeletonAnimation.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import
-#import
-#import "cocos2d.h"
-
-@class SkeletonAnimation;
-
-typedef void(^spStartListener)(int trackIndex);
-typedef void(^spEndListener)(int trackIndex);
-typedef void(^spCompleteListener)(int trackIndex, int loopCount);
-typedef void(^spEventListener)(int trackIndex, spEvent* event);
-
-/** 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;
- spEndListener _endListener;
- spCompleteListener _completeListener;
- spEventListener _eventListener;
-}
-
-+ (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:(int)delay;
-- (spTrackEntry*) getCurrentForTrack:(int)trackIndex;
-- (void) clearTracks;
-- (void) clearTrack:(int)trackIndex;
-
-- (void) setListenerForEntry:(spTrackEntry*)entry onStart:(spStartListener)listener;
-- (void) setListenerForEntry:(spTrackEntry*)entry onEnd:(spEndListener)listener;
-- (void) setListenerForEntry:(spTrackEntry*)entry onComplete:(spCompleteListener)listener;
-- (void) setListenerForEntry:(spTrackEntry*)entry onEvent:(spEventListener)listener;
-
-- (void) onAnimationStateEvent:(int)trackIndex type:(spEventType)type event:(spEvent*)event loopCount:(int)loopCount;
-- (void) onTrackEntryEvent:(int)trackIndex type:(spEventType)type event:(spEvent*)event loopCount:(int)loopCount;
-
-@property (nonatomic, readonly) spAnimationState* state;
-@property (nonatomic) float timeScale;
-@property (nonatomic, copy) spStartListener startListener;
-@property (nonatomic, copy) spEndListener endListener;
-@property (nonatomic, copy) spCompleteListener completeListener;
-@property (nonatomic, copy) spEventListener eventListener;
-
-@end
diff --git a/spine-cocos2d-iphone/3/src/spine/spine-cocos2d-iphone.h b/spine-cocos2d-iphone/3/src/spine/spine-cocos2d-iphone.h
deleted file mode 100644
index 848a4043b..000000000
--- a/spine-cocos2d-iphone/3/src/spine/spine-cocos2d-iphone.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/******************************************************************************
- * Spine Runtimes Software License
- * Version 2.3
- *
- * Copyright (c) 2013-2015, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable and
- * non-transferable license to use, install, execute and perform the Spine
- * Runtimes Software (the "Software") and derivative works solely for personal
- * or internal use. Without the written permission of Esoteric Software (see
- * Section 2 of the Spine Software License Agreement), you may not (a) modify,
- * translate, adapt or otherwise create derivative works, improvements of the
- * Software or develop new applications using the Software or (b) remove,
- * delete, alter or obscure any trademarks or any copyright, trademark, patent
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "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 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) 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.
- *****************************************************************************/
-
-#import
-#import "cocos2d.h"
-#import
-#import
diff --git a/spine-cocos2d-objc/CMakeLists.txt b/spine-cocos2d-objc/CMakeLists.txt
new file mode 100644
index 000000000..57c3dee80
--- /dev/null
+++ b/spine-cocos2d-objc/CMakeLists.txt
@@ -0,0 +1,5 @@
+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()
\ No newline at end of file
diff --git a/spine-cocos2d-iphone/2/LICENSE b/spine-cocos2d-objc/LICENSE
similarity index 100%
rename from spine-cocos2d-iphone/2/LICENSE
rename to spine-cocos2d-objc/LICENSE
diff --git a/spine-cocos2d-objc/README.md b/spine-cocos2d-objc/README.md
new file mode 100644
index 000000000..167a2d66a
--- /dev/null
+++ b/spine-cocos2d-objc/README.md
@@ -0,0 +1,44 @@
+# 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](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-c).
+
+## Licensing
+
+This Spine Runtime may only be used for personal or internal use, typically to evaluate Spine before purchasing. If you would like to incorporate a Spine Runtime into your applications, distribute software containing a Spine Runtime, or modify a Spine Runtime, then you will need a valid [Spine license](https://esotericsoftware.com/spine-purchase). Please see the [Spine Runtimes Software License](https://github.com/EsotericSoftware/spine-runtimes/blob/master/LICENSE) for detailed information.
+
+The Spine Runtimes are developed with the intent to be used with data exported from Spine. By purchasing Spine, `Section 2` of the [Spine Software License](https://esotericsoftware.com/files/license.txt) grants the right to create and distribute derivative works of the Spine Runtimes.
+
+## Spine version
+
+spine-cocos2d-objc works with data exported from Spine version 3.2.01.
+
+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](https://github.com/EsotericSoftware/spine-runtimes/archive/master.zip)
+3. Add the sources from `spine-c/src/spine` and `spine-cocos2d-objc/src/spine` to your project
+4. Add the folders `spine-c/include` and `spine-cocos2d-objc/src` to your header search path. Note that includes are specified as `#inclue `, so the `spine` directory cannot be omitted when copying the source files.
+
+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.
+
+### 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](https://github.com/EsotericSoftware/spine-runtimes/archive/master.zip)
+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 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)
diff --git a/spine-cocos2d-iphone/3/Resources-ios/AppDelegate.h b/spine-cocos2d-objc/Resources-ios/AppDelegate.h
similarity index 100%
rename from spine-cocos2d-iphone/3/Resources-ios/AppDelegate.h
rename to spine-cocos2d-objc/Resources-ios/AppDelegate.h
diff --git a/spine-cocos2d-iphone/3/Resources-ios/AppDelegate.m b/spine-cocos2d-objc/Resources-ios/AppDelegate.m
similarity index 100%
rename from spine-cocos2d-iphone/3/Resources-ios/AppDelegate.m
rename to spine-cocos2d-objc/Resources-ios/AppDelegate.m
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Default-568h@2x.png b/spine-cocos2d-objc/Resources-ios/Default-568h@2x.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Default-568h@2x.png
rename to spine-cocos2d-objc/Resources-ios/Default-568h@2x.png
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Default-Landscape~ipad.png b/spine-cocos2d-objc/Resources-ios/Default-Landscape~ipad.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Default-Landscape~ipad.png
rename to spine-cocos2d-objc/Resources-ios/Default-Landscape~ipad.png
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Default.png b/spine-cocos2d-objc/Resources-ios/Default.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Default.png
rename to spine-cocos2d-objc/Resources-ios/Default.png
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Default@2x.png b/spine-cocos2d-objc/Resources-ios/Default@2x.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Default@2x.png
rename to spine-cocos2d-objc/Resources-ios/Default@2x.png
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Icon-72.png b/spine-cocos2d-objc/Resources-ios/Icon-72.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Icon-72.png
rename to spine-cocos2d-objc/Resources-ios/Icon-72.png
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Icon-Small-50.png b/spine-cocos2d-objc/Resources-ios/Icon-Small-50.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Icon-Small-50.png
rename to spine-cocos2d-objc/Resources-ios/Icon-Small-50.png
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Icon-Small.png b/spine-cocos2d-objc/Resources-ios/Icon-Small.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Icon-Small.png
rename to spine-cocos2d-objc/Resources-ios/Icon-Small.png
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Icon-Small@2x.png b/spine-cocos2d-objc/Resources-ios/Icon-Small@2x.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Icon-Small@2x.png
rename to spine-cocos2d-objc/Resources-ios/Icon-Small@2x.png
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Icon.png b/spine-cocos2d-objc/Resources-ios/Icon.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Icon.png
rename to spine-cocos2d-objc/Resources-ios/Icon.png
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Icon@2x.png b/spine-cocos2d-objc/Resources-ios/Icon@2x.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Icon@2x.png
rename to spine-cocos2d-objc/Resources-ios/Icon@2x.png
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Info.plist b/spine-cocos2d-objc/Resources-ios/Info.plist
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Info.plist
rename to spine-cocos2d-objc/Resources-ios/Info.plist
diff --git a/spine-cocos2d-iphone/2/Resources-ios/Prefix.pch b/spine-cocos2d-objc/Resources-ios/Prefix.pch
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/Prefix.pch
rename to spine-cocos2d-objc/Resources-ios/Prefix.pch
diff --git a/spine-cocos2d-iphone/2/Resources-ios/iTunesArtwork b/spine-cocos2d-objc/Resources-ios/iTunesArtwork
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-ios/iTunesArtwork
rename to spine-cocos2d-objc/Resources-ios/iTunesArtwork
diff --git a/spine-cocos2d-iphone/3/Resources-ios/main.m b/spine-cocos2d-objc/Resources-ios/main.m
similarity index 100%
rename from spine-cocos2d-iphone/3/Resources-ios/main.m
rename to spine-cocos2d-objc/Resources-ios/main.m
diff --git a/spine-cocos2d-iphone/3/Resources-mac/AppDelegate.h b/spine-cocos2d-objc/Resources-mac/AppDelegate.h
similarity index 100%
rename from spine-cocos2d-iphone/3/Resources-mac/AppDelegate.h
rename to spine-cocos2d-objc/Resources-mac/AppDelegate.h
diff --git a/spine-cocos2d-iphone/3/Resources-mac/AppDelegate.m b/spine-cocos2d-objc/Resources-mac/AppDelegate.m
similarity index 100%
rename from spine-cocos2d-iphone/3/Resources-mac/AppDelegate.m
rename to spine-cocos2d-objc/Resources-mac/AppDelegate.m
diff --git a/spine-cocos2d-iphone/2/Resources-mac/English.lproj/InfoPlist.strings b/spine-cocos2d-objc/Resources-mac/English.lproj/InfoPlist.strings
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-mac/English.lproj/InfoPlist.strings
rename to spine-cocos2d-objc/Resources-mac/English.lproj/InfoPlist.strings
diff --git a/spine-cocos2d-iphone/2/Resources-mac/English.lproj/MainMenu.xib b/spine-cocos2d-objc/Resources-mac/English.lproj/MainMenu.xib
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-mac/English.lproj/MainMenu.xib
rename to spine-cocos2d-objc/Resources-mac/English.lproj/MainMenu.xib
diff --git a/spine-cocos2d-iphone/2/Resources-mac/Info.plist b/spine-cocos2d-objc/Resources-mac/Info.plist
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-mac/Info.plist
rename to spine-cocos2d-objc/Resources-mac/Info.plist
diff --git a/spine-cocos2d-iphone/2/Resources-mac/Prefix.pch b/spine-cocos2d-objc/Resources-mac/Prefix.pch
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-mac/Prefix.pch
rename to spine-cocos2d-objc/Resources-mac/Prefix.pch
diff --git a/spine-cocos2d-iphone/2/Resources-mac/icon.icns b/spine-cocos2d-objc/Resources-mac/icon.icns
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-mac/icon.icns
rename to spine-cocos2d-objc/Resources-mac/icon.icns
diff --git a/spine-cocos2d-iphone/2/Resources-mac/main.m b/spine-cocos2d-objc/Resources-mac/main.m
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources-mac/main.m
rename to spine-cocos2d-objc/Resources-mac/main.m
diff --git a/spine-cocos2d-iphone/2/Resources/goblins-mesh.atlas b/spine-cocos2d-objc/Resources/goblins-mesh.atlas
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources/goblins-mesh.atlas
rename to spine-cocos2d-objc/Resources/goblins-mesh.atlas
diff --git a/spine-cocos2d-iphone/2/Resources/goblins-mesh.json b/spine-cocos2d-objc/Resources/goblins-mesh.json
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources/goblins-mesh.json
rename to spine-cocos2d-objc/Resources/goblins-mesh.json
diff --git a/spine-cocos2d-iphone/2/Resources/goblins-mesh.png b/spine-cocos2d-objc/Resources/goblins-mesh.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources/goblins-mesh.png
rename to spine-cocos2d-objc/Resources/goblins-mesh.png
diff --git a/spine-c/data/spineboy.atlas b/spine-cocos2d-objc/Resources/spineboy.atlas
similarity index 100%
rename from spine-c/data/spineboy.atlas
rename to spine-cocos2d-objc/Resources/spineboy.atlas
diff --git a/spine-cocos2d-iphone/2/Resources/spineboy.json b/spine-cocos2d-objc/Resources/spineboy.json
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources/spineboy.json
rename to spine-cocos2d-objc/Resources/spineboy.json
diff --git a/spine-cocos2d-iphone/2/Resources/spineboy.png b/spine-cocos2d-objc/Resources/spineboy.png
similarity index 100%
rename from spine-cocos2d-iphone/2/Resources/spineboy.png
rename to spine-cocos2d-objc/Resources/spineboy.png
diff --git a/spine-cocos2d-iphone/3/example/GoblinsExample.h b/spine-cocos2d-objc/example/GoblinsExample.h
similarity index 98%
rename from spine-cocos2d-iphone/3/example/GoblinsExample.h
rename to spine-cocos2d-objc/example/GoblinsExample.h
index 86d34a6b7..3b8bea4ae 100644
--- a/spine-cocos2d-iphone/3/example/GoblinsExample.h
+++ b/spine-cocos2d-objc/example/GoblinsExample.h
@@ -30,7 +30,7 @@
*****************************************************************************/
#import "cocos2d.h"
-#import
+#import
@interface GoblinsExample : CCNode {
SkeletonAnimation* skeletonNode;
diff --git a/spine-cocos2d-iphone/3/example/GoblinsExample.m b/spine-cocos2d-objc/example/GoblinsExample.m
similarity index 100%
rename from spine-cocos2d-iphone/3/example/GoblinsExample.m
rename to spine-cocos2d-objc/example/GoblinsExample.m
diff --git a/spine-cocos2d-iphone/3/example/SpineboyExample.h b/spine-cocos2d-objc/example/SpineboyExample.h
similarity index 98%
rename from spine-cocos2d-iphone/3/example/SpineboyExample.h
rename to spine-cocos2d-objc/example/SpineboyExample.h
index 5fa7697dd..32810a67c 100644
--- a/spine-cocos2d-iphone/3/example/SpineboyExample.h
+++ b/spine-cocos2d-objc/example/SpineboyExample.h
@@ -30,7 +30,7 @@
*****************************************************************************/
#import "cocos2d.h"
-#import
+#import
@interface SpineboyExample : CCNode {
SkeletonAnimation* skeletonNode;
diff --git a/spine-cocos2d-iphone/3/example/SpineboyExample.m b/spine-cocos2d-objc/example/SpineboyExample.m
similarity index 100%
rename from spine-cocos2d-iphone/3/example/SpineboyExample.m
rename to spine-cocos2d-objc/example/SpineboyExample.m
diff --git a/spine-cocos2d-iphone/3/spine-cocos2d-iphone-ios.xcodeproj/project.pbxproj b/spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.pbxproj
similarity index 87%
rename from spine-cocos2d-iphone/3/spine-cocos2d-iphone-ios.xcodeproj/project.pbxproj
rename to spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.pbxproj
index d16b1511e..f7615215e 100644
--- a/spine-cocos2d-iphone/3/spine-cocos2d-iphone-ios.xcodeproj/project.pbxproj
+++ b/spine-cocos2d-objc/spine-cocos2d-objc.xcodeproj/project.pbxproj
@@ -12,7 +12,7 @@
431FF7F51C735D8D00D52DF2 /* WeightedMeshAttachment.c in Sources */ = {isa = PBXBuildFile; fileRef = 431FF7F21C735D8D00D52DF2 /* WeightedMeshAttachment.c */; };
43B7CC0919DC4ACD0031321C /* IkConstraint.c in Sources */ = {isa = PBXBuildFile; fileRef = 43B7CC0719DC4ACD0031321C /* IkConstraint.c */; };
43B7CC0A19DC4ACD0031321C /* IkConstraintData.c in Sources */ = {isa = PBXBuildFile; fileRef = 43B7CC0819DC4ACD0031321C /* IkConstraintData.c */; };
- 43C3282F170B0C19004A9460 /* spine-cocos2d-iphone.m in Sources */ = {isa = PBXBuildFile; fileRef = 43C3282D170B0C19004A9460 /* spine-cocos2d-iphone.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 43C3282F170B0C19004A9460 /* spine-cocos2d-objc.m in Sources */ = {isa = PBXBuildFile; fileRef = 43C3282D170B0C19004A9460 /* spine-cocos2d-objc.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
43C3286C170B0DA6004A9460 /* spineboy.json in Resources */ = {isa = PBXBuildFile; fileRef = 43C32868170B0DA6004A9460 /* spineboy.json */; };
43C3286E170B0DA6004A9460 /* spineboy.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 43C3286A170B0DA6004A9460 /* spineboy.atlas */; };
43C3286F170B0DA6004A9460 /* spineboy.png in Resources */ = {isa = PBXBuildFile; fileRef = 43C3286B170B0DA6004A9460 /* spineboy.png */; };
@@ -112,18 +112,18 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
- 431FF7ED1C735D7A00D52DF2 /* TransformConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransformConstraint.h; path = "../../spine-c/include/spine/TransformConstraint.h"; sourceTree = ""; };
- 431FF7EE1C735D7A00D52DF2 /* TransformConstraintData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransformConstraintData.h; path = "../../spine-c/include/spine/TransformConstraintData.h"; sourceTree = ""; };
- 431FF7EF1C735D7A00D52DF2 /* WeightedMeshAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WeightedMeshAttachment.h; path = "../../spine-c/include/spine/WeightedMeshAttachment.h"; sourceTree = ""; };
- 431FF7F01C735D8D00D52DF2 /* TransformConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TransformConstraint.c; path = "../../spine-c/src/spine/TransformConstraint.c"; sourceTree = ""; };
- 431FF7F11C735D8D00D52DF2 /* TransformConstraintData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TransformConstraintData.c; path = "../../spine-c/src/spine/TransformConstraintData.c"; sourceTree = ""; };
- 431FF7F21C735D8D00D52DF2 /* WeightedMeshAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = WeightedMeshAttachment.c; path = "../../spine-c/src/spine/WeightedMeshAttachment.c"; sourceTree = ""; };
- 43B7CC0719DC4ACD0031321C /* IkConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IkConstraint.c; path = "../../spine-c/src/spine/IkConstraint.c"; sourceTree = ""; };
- 43B7CC0819DC4ACD0031321C /* IkConstraintData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IkConstraintData.c; path = "../../spine-c/src/spine/IkConstraintData.c"; sourceTree = ""; };
- 43B7CC0D19DC4AE30031321C /* IkConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IkConstraint.h; path = "../../spine-c/include/spine/IkConstraint.h"; sourceTree = ""; };
- 43B7CC0E19DC4AE30031321C /* IkConstraintData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IkConstraintData.h; path = "../../spine-c/include/spine/IkConstraintData.h"; sourceTree = ""; };
- 43C3282D170B0C19004A9460 /* spine-cocos2d-iphone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "spine-cocos2d-iphone.m"; path = "src/spine/spine-cocos2d-iphone.m"; sourceTree = ""; };
- 43C3282E170B0C19004A9460 /* spine-cocos2d-iphone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "spine-cocos2d-iphone.h"; path = "src/spine/spine-cocos2d-iphone.h"; sourceTree = ""; };
+ 431FF7ED1C735D7A00D52DF2 /* TransformConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransformConstraint.h; path = "../spine-c/include/spine/TransformConstraint.h"; sourceTree = ""; };
+ 431FF7EE1C735D7A00D52DF2 /* TransformConstraintData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransformConstraintData.h; path = "../spine-c/include/spine/TransformConstraintData.h"; sourceTree = ""; };
+ 431FF7EF1C735D7A00D52DF2 /* WeightedMeshAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WeightedMeshAttachment.h; path = "../spine-c/include/spine/WeightedMeshAttachment.h"; sourceTree = ""; };
+ 431FF7F01C735D8D00D52DF2 /* TransformConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TransformConstraint.c; path = "../spine-c/src/spine/TransformConstraint.c"; sourceTree = ""; };
+ 431FF7F11C735D8D00D52DF2 /* TransformConstraintData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TransformConstraintData.c; path = "../spine-c/src/spine/TransformConstraintData.c"; sourceTree = ""; };
+ 431FF7F21C735D8D00D52DF2 /* WeightedMeshAttachment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = WeightedMeshAttachment.c; path = "../spine-c/src/spine/WeightedMeshAttachment.c"; sourceTree = ""; };
+ 43B7CC0719DC4ACD0031321C /* IkConstraint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IkConstraint.c; path = "../spine-c/src/spine/IkConstraint.c"; sourceTree = "