joybox 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. checksums.yaml +8 -8
  2. data/Gemfile.lock +1 -1
  3. data/LICENSE +1 -1
  4. data/LICENSE_Box2D +20 -0
  5. data/LICENSE_Cocos2D +24 -0
  6. data/README.md +34 -66
  7. data/Rakefile +2 -3
  8. data/bin/joybox +49 -0
  9. data/command/joybox/USAGE +24 -0
  10. data/command/joybox/templates/layer.erb +11 -0
  11. data/command/joybox/templates/layer_spec.erb +3 -0
  12. data/command/joybox/templates/scene.erb +11 -0
  13. data/command/joybox/templates/scene_spec.erb +3 -0
  14. data/command/joybox/templates/sprite.erb +11 -0
  15. data/command/joybox/templates/sprite_spec.erb +3 -0
  16. data/command/joybox_generate_command.rb +114 -0
  17. data/joybox.gemspec +44 -0
  18. data/lib/joybox/joybox-ios.rb +47 -0
  19. data/lib/joybox/joybox-osx.rb +47 -0
  20. data/lib/joybox/version.rb +1 -1
  21. data/lib/joybox.rb +18 -36
  22. data/{lib/joybox/cocos2d → motion/joybox}/actions/actions.rb +0 -0
  23. data/motion/joybox/actions/animate.rb +22 -0
  24. data/motion/joybox/actions/bezier.rb +33 -0
  25. data/motion/joybox/actions/blink.rb +24 -0
  26. data/motion/joybox/actions/ease.rb +149 -0
  27. data/motion/joybox/actions/fade.rb +38 -0
  28. data/motion/joybox/actions/jump.rb +39 -0
  29. data/{lib/joybox/cocos2d → motion/joybox}/actions/move.rb +4 -2
  30. data/motion/joybox/actions/place.rb +22 -0
  31. data/{lib/joybox/cocos2d → motion/joybox}/actions/repeat.rb +10 -1
  32. data/{lib/joybox/cocos2d → motion/joybox}/actions/rotate.rb +4 -2
  33. data/{lib/joybox/cocos2d → motion/joybox}/actions/scale.rb +4 -2
  34. data/{lib/joybox/cocos2d → motion/joybox}/actions/sequence.rb +3 -3
  35. data/{lib/joybox/cocos2d → motion/joybox}/actions/skew.rb +0 -0
  36. data/motion/joybox/actions/spawn.rb +22 -0
  37. data/motion/joybox/actions/tint.rb +37 -0
  38. data/motion/joybox/animations/animation.rb +60 -0
  39. data/{lib/joybox/cocos2d → motion/joybox}/common/color.rb +12 -1
  40. data/{lib/joybox/cocos2d → motion/joybox}/common/gc_size.rb +4 -4
  41. data/{lib/joybox/cocos2d → motion/joybox}/common/ns_set.rb +0 -0
  42. data/{lib/joybox/cocos2d → motion/joybox}/common/numeric.rb +0 -0
  43. data/{lib/joybox/cocos2d → motion/joybox}/common/screen.rb +4 -4
  44. data/motion/joybox/core/layer.rb +51 -0
  45. data/{lib/joybox/cocos2d → motion/joybox}/core/node.rb +0 -0
  46. data/{lib/joybox/cocos2d → motion/joybox}/core/scene.rb +0 -0
  47. data/{lib/joybox/cocos2d → motion/joybox}/core/sprite.rb +22 -3
  48. data/{lib/joybox/cocos2d → motion/joybox}/core/sprite_batch.rb +0 -0
  49. data/motion/joybox/core/sprite_frame_cache.rb +147 -0
  50. data/{lib/joybox/cocos2d/cocos2d.rb → motion/joybox/joybox.rb} +3 -1
  51. data/{lib/joybox/cocos2d → motion/joybox}/macros.rb +0 -0
  52. data/{lib/joybox/box2d → motion/joybox/physics}/body.rb +44 -17
  53. data/{lib/joybox/cocos2d/core → motion/joybox/physics}/physics_sprite.rb +1 -1
  54. data/motion/joybox/physics/world.rb +79 -0
  55. data/{lib/joybox/cocos2d → motion/joybox}/ui/label.rb +3 -2
  56. data/{lib/joybox/cocos2d → motion/joybox}/ui/menu.rb +0 -0
  57. data/{lib/joybox/cocos2d → motion/joybox}/ui/menu_image.rb +0 -0
  58. data/{lib/joybox/cocos2d → motion/joybox}/ui/menu_label.rb +0 -0
  59. data/{lib/joybox/cocos2d → motion/joybox}/ui/ui.rb +0 -0
  60. data/{lib/joybox/cocos2d → motion/joybox-ios}/common/cg_point.rb +9 -2
  61. data/{lib/joybox/cocos2d → motion/joybox-ios}/common/ui_touch.rb +1 -1
  62. data/{lib/joybox/cocos2d → motion/joybox-ios}/configuration/configuration.rb +0 -0
  63. data/{lib/joybox/cocos2d → motion/joybox-ios}/configuration/file_utils.rb +0 -3
  64. data/{lib/joybox/cocos2d → motion/joybox-ios}/configuration/gl_view.rb +0 -0
  65. data/{lib/joybox/cocos2d → motion/joybox-ios}/configuration/texture_2d.rb +0 -0
  66. data/{lib/joybox/cocos2d → motion/joybox-ios}/core/layer.rb +1 -45
  67. data/{lib/joybox/cocos2d → motion/joybox-ios}/director.rb +6 -6
  68. data/motion/joybox-osx/common/ats_point.rb +48 -0
  69. data/motion/joybox-osx/common/ns_event.rb +8 -0
  70. data/motion/joybox-osx/configuration/configuration.rb +46 -0
  71. data/motion/joybox-osx/configuration/gl_view.rb +57 -0
  72. data/motion/joybox-osx/core/layer.rb +135 -0
  73. data/motion/joybox-osx/director.rb +42 -0
  74. data/template/joybox-ios/files/Rakefile.erb +9 -0
  75. data/{app → template/joybox-ios/files/app}/app_delegate.rb +1 -5
  76. data/{resources → template/joybox-ios/files/resources}/fps_images-hd.png +0 -0
  77. data/{resources → template/joybox-ios/files/resources}/fps_images-ipadhd.png +0 -0
  78. data/{resources → template/joybox-ios/files/resources}/fps_images.png +0 -0
  79. data/template/joybox-ios/files/spec/main_spec.rb.erb +9 -0
  80. data/template/joybox-osx/files/Rakefile.erb +9 -0
  81. data/template/joybox-osx/files/app/app_delegate.rb +23 -0
  82. data/template/joybox-osx/files/app/layers/default_layer.rb +5 -0
  83. data/template/joybox-osx/files/app/menu.rb +51 -0
  84. data/template/joybox-osx/files/resources/Credits.rtf +29 -0
  85. data/template/joybox-osx/files/resources/fps_images-hd.png +0 -0
  86. data/template/joybox-osx/files/resources/fps_images-ipadhd.png +0 -0
  87. data/template/joybox-osx/files/resources/fps_images.png +0 -0
  88. data/template/joybox-osx/files/spec/main_spec.rb.erb +9 -0
  89. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Box2D +0 -0
  90. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Box2D.framework.bridgesupport +47 -37
  91. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Versions/A/Box2D +0 -0
  92. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Versions/A/Headers/Collision/B2DContactListener.h +0 -0
  93. data/vendor/vendor-ios/Box2D.framework/Versions/A/Headers/Collision/Shapes/B2DCircleShape.h +16 -0
  94. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Versions/A/Headers/Collision/Shapes/B2DEdgeShape.h +0 -0
  95. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Versions/A/Headers/Collision/Shapes/B2DPolygonShape.h +0 -0
  96. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Versions/A/Headers/Collision/Shapes/B2DShape.h +0 -0
  97. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Versions/A/Headers/Dynamics/B2DBody.h +6 -6
  98. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Versions/A/Headers/Dynamics/B2DWorld.h +0 -0
  99. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Versions/A/Resources/Box2DConfig.cmake +0 -0
  100. data/vendor/{Box2D.framework → vendor-ios/Box2D.framework}/Versions/A/Resources/CMakeLists.txt +0 -0
  101. data/vendor/vendor-ios/Box2D.framework/Versions/A/Resources/LICENSE +22 -0
  102. data/vendor/vendor-ios/cocos_2d/cocos_2d.bridgesupport +9154 -0
  103. data/vendor/vendor-ios/cocos_2d/cocos_2d_exceptions.bridgesupport +39 -0
  104. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCAction.h +23 -23
  105. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionCamera.h +21 -19
  106. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionCatmullRom.h +18 -6
  107. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionEase.h +117 -31
  108. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionGrid.h +19 -17
  109. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionGrid3D.h +45 -42
  110. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionInstant.h +21 -13
  111. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionInterval.h +123 -81
  112. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionManager.h +2 -2
  113. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionPageTurn3D.h +2 -1
  114. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionProgressTimer.h +4 -4
  115. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionTiledGrid.h +46 -38
  116. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCActionTween.h +3 -3
  117. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCAnimation.h +8 -8
  118. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCAnimationCache.h +2 -2
  119. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCAtlasNode.h +19 -17
  120. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCCamera.h +12 -12
  121. data/vendor/vendor-ios/cocos_2d/include/CCClippingNode.h +77 -0
  122. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCConfiguration.h +31 -13
  123. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCDirector.h +51 -42
  124. data/vendor/vendor-ios/cocos_2d/include/CCDrawNode.h +65 -0
  125. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCDrawingPrimitives.h +42 -8
  126. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCGLProgram.h +56 -21
  127. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCGrabber.h +2 -2
  128. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCGrid.h +29 -29
  129. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCLabelAtlas.h +5 -2
  130. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCLabelBMFont.h +56 -32
  131. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCLabelTTF.h +20 -20
  132. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCLayer.h +107 -79
  133. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCMenu.h +10 -14
  134. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCMenuItem.h +37 -32
  135. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCMotionStreak.h +18 -19
  136. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCNode+Debug.h +0 -0
  137. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCNode.h +87 -37
  138. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCParallaxNode.h +2 -2
  139. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCParticleBatchNode.h +2 -2
  140. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCParticleExamples.h +22 -0
  141. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCParticleSystem.h +51 -40
  142. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCParticleSystemQuad.h +4 -4
  143. data/vendor/vendor-ios/cocos_2d/include/CCPhysicsDebugNode.h +58 -0
  144. data/vendor/vendor-ios/cocos_2d/include/CCPhysicsSprite.h +82 -0
  145. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCProgressTimer.h +9 -11
  146. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCProtocols.h +54 -26
  147. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCRenderTexture.h +29 -9
  148. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCScene.h +4 -0
  149. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCScheduler.h +94 -40
  150. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCShaderCache.h +1 -1
  151. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCSprite.h +21 -28
  152. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCSpriteBatchNode.h +16 -9
  153. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCSpriteFrame.h +10 -10
  154. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCSpriteFrameCache.h +6 -6
  155. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTMXLayer.h +16 -16
  156. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTMXObjectGroup.h +4 -4
  157. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTMXTiledMap.h +9 -9
  158. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTMXXMLParser.h +44 -33
  159. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTexture2D.h +17 -25
  160. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTextureAtlas.h +10 -10
  161. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTextureCache.h +4 -4
  162. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTexturePVR.h +25 -8
  163. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTileMapAtlas.h +6 -6
  164. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTransition.h +57 -12
  165. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTransitionPageTurn.h +2 -2
  166. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/CCTransitionProgress.h +27 -5
  167. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Platforms}/CCGL.h +4 -2
  168. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Platforms}/CCNS.h +0 -0
  169. data/vendor/vendor-ios/cocos_2d/include/Platforms/Mac/CCDirectorMac.h +110 -0
  170. data/vendor/vendor-ios/cocos_2d/include/Platforms/Mac/CCEventDispatcher.h +343 -0
  171. data/vendor/vendor-ios/cocos_2d/include/Platforms/Mac/CCGLView.h +103 -0
  172. data/vendor/vendor-ios/cocos_2d/include/Platforms/Mac/CCWindow.h +41 -0
  173. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Platforms/iOS}/CCDirectorIOS.h +12 -5
  174. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Platforms/iOS}/CCES2Renderer.h +12 -12
  175. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Platforms/iOS}/CCESRenderer.h +0 -0
  176. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Platforms/iOS}/CCGLView.h +28 -13
  177. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Platforms/iOS}/CCTouchDelegateProtocol.h +4 -4
  178. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Platforms/iOS}/CCTouchDispatcher.h +2 -2
  179. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Platforms/iOS}/CCTouchHandler.h +7 -7
  180. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/CCArray.h +1 -1
  181. data/vendor/vendor-ios/cocos_2d/include/Support/CCFileUtils.h +394 -0
  182. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/CCProfiling.h +0 -0
  183. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/CCVertex.h +1 -1
  184. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/CGPointExtension.h +4 -2
  185. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/NSThread+performBlock.h +0 -0
  186. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/OpenGL_Internal.h +0 -0
  187. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/TGAlib.h +0 -0
  188. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/TransformUtils.h +0 -0
  189. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/ZipUtils.h +4 -4
  190. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/base64.h +0 -0
  191. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/ccCArray.h +15 -15
  192. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/ccUtils.h +0 -0
  193. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/uthash.h +129 -184
  194. data/vendor/{Cocos2D/include → vendor-ios/cocos_2d/include/Support}/utlist.h +298 -55
  195. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/ccConfig.h +56 -9
  196. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/ccDeprecated.h +131 -0
  197. data/vendor/vendor-ios/cocos_2d/include/ccFPSImages.h +39 -0
  198. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/ccGLStateCache.h +44 -26
  199. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/ccMacros.h +9 -9
  200. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionColorLengthTexture_frag.h +41 -0
  201. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionColorLengthTexture_vert.h +47 -0
  202. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionColor_frag.h +37 -0
  203. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionColor_vert.h +40 -0
  204. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionTextureA8Color_frag.h +41 -0
  205. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionTextureA8Color_vert.h +45 -0
  206. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionTextureColorAlphaTest_frag.h +47 -0
  207. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionTextureColor_frag.h +39 -0
  208. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionTextureColor_vert.h +45 -0
  209. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionTexture_frag.h +38 -0
  210. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionTexture_uColor_frag.h +41 -0
  211. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionTexture_uColor_vert.h +41 -0
  212. data/vendor/vendor-ios/cocos_2d/include/ccShader_PositionTexture_vert.h +41 -0
  213. data/vendor/vendor-ios/cocos_2d/include/ccShader_Position_uColor_frag.h +37 -0
  214. data/vendor/vendor-ios/cocos_2d/include/ccShader_Position_uColor_vert.h +43 -0
  215. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/ccShaders.h +11 -0
  216. data/vendor/vendor-ios/cocos_2d/include/ccTypes.h +392 -0
  217. data/vendor/vendor-ios/cocos_2d/include/cocos2d-ios-exceptions.bridgesupport +39 -0
  218. data/vendor/{Cocos2D → vendor-ios/cocos_2d}/include/cocos2d.h +28 -3
  219. data/vendor/vendor-ios/cocos_2d/include/gen_cocos2d_bridgesupport.sh +17 -0
  220. data/vendor/vendor-ios/cocos_2d/include/gen_cocos2d_complement.sh +17 -0
  221. data/vendor/vendor-ios/cocos_2d/libcocos2d.a +0 -0
  222. data/vendor/vendor-osx/box_2d/box_2d.bridgesupport +176 -0
  223. data/vendor/vendor-osx/box_2d/include/B2DBody.h +46 -0
  224. data/vendor/vendor-osx/box_2d/include/B2DCircleShape.h +16 -0
  225. data/vendor/vendor-osx/box_2d/include/B2DContactListener.h +30 -0
  226. data/vendor/vendor-osx/box_2d/include/B2DEdgeShape.h +17 -0
  227. data/vendor/vendor-osx/box_2d/include/B2DPolygonShape.h +16 -0
  228. data/vendor/vendor-osx/box_2d/include/B2DShape.h +18 -0
  229. data/vendor/vendor-osx/box_2d/include/B2DWorld.h +44 -0
  230. data/vendor/vendor-osx/box_2d/libBox2D.a +0 -0
  231. data/vendor/vendor-osx/cocos_2d/cocos_2d.bridgesupport +8292 -0
  232. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCAction.h +195 -0
  233. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionCamera.h +75 -0
  234. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionCatmullRom.h +151 -0
  235. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionEase.h +245 -0
  236. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionGrid.h +167 -0
  237. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionGrid3D.h +208 -0
  238. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionInstant.h +235 -0
  239. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionInterval.h +473 -0
  240. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionManager.h +113 -0
  241. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionPageTurn3D.h +43 -0
  242. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionProgressTimer.h +59 -0
  243. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionTiledGrid.h +219 -0
  244. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCActionTween.h +62 -0
  245. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCAnimation.h +150 -0
  246. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCAnimationCache.h +74 -0
  247. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCAtlasNode.h +98 -0
  248. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCCamera.h +98 -0
  249. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCClippingNode.h +77 -0
  250. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCConfiguration.h +144 -0
  251. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCDirector.h +353 -0
  252. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCDrawNode.h +65 -0
  253. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCDrawingPrimitives.h +173 -0
  254. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCGLProgram.h +185 -0
  255. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCGrabber.h +44 -0
  256. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCGrid.h +130 -0
  257. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCLabelAtlas.h +71 -0
  258. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCLabelBMFont.h +240 -0
  259. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCLabelTTF.h +132 -0
  260. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCLayer.h +308 -0
  261. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCMenu.h +96 -0
  262. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCMenuItem.h +428 -0
  263. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCMotionStreak.h +86 -0
  264. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCNode+Debug.h +39 -0
  265. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCNode.h +619 -0
  266. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCParallaxNode.h +50 -0
  267. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCParticleBatchNode.h +99 -0
  268. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCParticleExamples.h +117 -0
  269. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCParticleSystem.h +464 -0
  270. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCParticleSystemQuad.h +73 -0
  271. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCPhysicsDebugNode.h +58 -0
  272. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCPhysicsSprite.h +82 -0
  273. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCProgressTimer.h +92 -0
  274. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCProtocols.h +160 -0
  275. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCRenderTexture.h +159 -0
  276. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCScene.h +47 -0
  277. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCScheduler.h +284 -0
  278. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCShaderCache.h +60 -0
  279. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCSprite.h +281 -0
  280. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCSpriteBatchNode.h +145 -0
  281. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCSpriteFrame.h +126 -0
  282. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCSpriteFrameCache.h +121 -0
  283. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTMXLayer.h +164 -0
  284. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTMXObjectGroup.h +67 -0
  285. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTMXTiledMap.h +145 -0
  286. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTMXXMLParser.h +228 -0
  287. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTexture2D.h +349 -0
  288. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTextureAtlas.h +188 -0
  289. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTextureCache.h +146 -0
  290. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTexturePVR.h +146 -0
  291. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTileMapAtlas.h +83 -0
  292. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTransition.h +341 -0
  293. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTransitionPageTurn.h +60 -0
  294. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/CCTransitionProgress.h +84 -0
  295. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/CCGL.h +74 -0
  296. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/CCNS.h +54 -0
  297. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/Mac/CCDirectorMac.h +110 -0
  298. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/Mac/CCEventDispatcher.h +343 -0
  299. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/Mac/CCGLView.h +103 -0
  300. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Platforms/Mac/CCWindow.h +41 -0
  301. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/CCArray.h +119 -0
  302. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/CCFileUtils.h +394 -0
  303. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/CCProfiling.h +89 -0
  304. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/CCVertex.h +36 -0
  305. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/CGPointExtension.h +346 -0
  306. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/NSThread+performBlock.h +22 -0
  307. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/OpenGL_Internal.h +86 -0
  308. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/TGAlib.h +55 -0
  309. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/TransformUtils.h +36 -0
  310. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/ZipUtils.h +91 -0
  311. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/base64.h +33 -0
  312. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/ccCArray.h +229 -0
  313. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/ccUtils.h +36 -0
  314. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/uthash.h +917 -0
  315. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/Support/utlist.h +733 -0
  316. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccConfig.h +292 -0
  317. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccDeprecated.h +431 -0
  318. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccFPSImages.h +39 -0
  319. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccGLStateCache.h +156 -0
  320. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccMacros.h +353 -0
  321. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionColorLengthTexture_frag.h +41 -0
  322. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionColorLengthTexture_vert.h +47 -0
  323. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionColor_frag.h +37 -0
  324. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionColor_vert.h +40 -0
  325. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionTextureA8Color_frag.h +41 -0
  326. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionTextureA8Color_vert.h +45 -0
  327. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionTextureColorAlphaTest_frag.h +47 -0
  328. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionTextureColor_frag.h +39 -0
  329. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionTextureColor_vert.h +45 -0
  330. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionTexture_frag.h +38 -0
  331. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionTexture_uColor_frag.h +41 -0
  332. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionTexture_uColor_vert.h +41 -0
  333. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_PositionTexture_vert.h +41 -0
  334. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_Position_uColor_frag.h +37 -0
  335. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShader_Position_uColor_vert.h +43 -0
  336. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/ccShaders.h +56 -0
  337. data/vendor/{Cocos2D/include → vendor-osx/cocos_2d/cocos_2d_include}/ccTypes.h +39 -35
  338. data/vendor/vendor-osx/cocos_2d/cocos_2d_include/cocos2d.h +203 -0
  339. data/vendor/vendor-osx/cocos_2d/libcocos2d.a +0 -0
  340. metadata +363 -195
  341. data/app/layers/box2d_layer.rb +0 -109
  342. data/app/layers/cocos2d_layer.rb +0 -14
  343. data/app/layers/cocos_motion_layer.rb +0 -145
  344. data/app/layers/menu_layer.rb +0 -59
  345. data/lib/joybox/box2d/world.rb +0 -79
  346. data/resources/box2d/blocks_sprite_sheet.png +0 -0
  347. data/resources/cocos_motion/dot.png +0 -0
  348. data/resources/cocos_motion/dot_selected.png +0 -0
  349. data/resources/cocos_motion/grossini.png +0 -0
  350. data/resources/cocos_motion/grossinis_sister.png +0 -0
  351. data/resources/cocos_motion/grossinis_sister_two.png +0 -0
  352. data/resources/cocos_motion/left_arrow.png +0 -0
  353. data/resources/cocos_motion/left_arrow_selected.png +0 -0
  354. data/resources/cocos_motion/right_arrow.png +0 -0
  355. data/resources/cocos_motion/right_arrow_selected.png +0 -0
  356. data/vendor/Cocos2D/Cocos2D.bridgesupport +0 -7808
  357. data/vendor/Cocos2D/include/CCFileUtils.h +0 -188
  358. data/vendor/Cocos2D/include/CocosDenshion/CDAudioManager.h +0 -243
  359. data/vendor/Cocos2D/include/CocosDenshion/CDConfig.h +0 -60
  360. data/vendor/Cocos2D/include/CocosDenshion/CDOpenALSupport.h +0 -77
  361. data/vendor/Cocos2D/include/CocosDenshion/CDXPropertyModifierAction.h +0 -45
  362. data/vendor/Cocos2D/include/CocosDenshion/CocosDenshion.h +0 -440
  363. data/vendor/Cocos2D/include/CocosDenshion/SimpleAudioEngine.h +0 -90
  364. data/vendor/Cocos2D/include/RubyMotionSchedule.h +0 -7
  365. data/vendor/Cocos2D/include/ccShader_PositionColor_frag.h +0 -12
  366. data/vendor/Cocos2D/include/ccShader_PositionColor_vert.h +0 -17
  367. data/vendor/Cocos2D/include/ccShader_PositionTextureA8Color_frag.h +0 -16
  368. data/vendor/Cocos2D/include/ccShader_PositionTextureA8Color_vert.h +0 -21
  369. data/vendor/Cocos2D/include/ccShader_PositionTextureColorAlphaTest_frag.h +0 -23
  370. data/vendor/Cocos2D/include/ccShader_PositionTextureColor_frag.h +0 -14
  371. data/vendor/Cocos2D/include/ccShader_PositionTextureColor_vert.h +0 -22
  372. data/vendor/Cocos2D/include/ccShader_PositionTexture_frag.h +0 -13
  373. data/vendor/Cocos2D/include/ccShader_PositionTexture_uColor_frag.h +0 -16
  374. data/vendor/Cocos2D/include/ccShader_PositionTexture_uColor_vert.h +0 -18
  375. data/vendor/Cocos2D/include/ccShader_PositionTexture_vert.h +0 -17
  376. data/vendor/Cocos2D/include/ccShader_Position_uColor_frag.h +0 -12
  377. data/vendor/Cocos2D/include/ccShader_Position_uColor_vert.h +0 -19
  378. data/vendor/Cocos2D/include/kazmath/GL/mat4stack.h +0 -51
  379. data/vendor/Cocos2D/include/kazmath/GL/matrix.h +0 -58
  380. data/vendor/Cocos2D/include/kazmath/aabb.h +0 -53
  381. data/vendor/Cocos2D/include/kazmath/kazmath.h +0 -39
  382. data/vendor/Cocos2D/include/kazmath/mat3.h +0 -75
  383. data/vendor/Cocos2D/include/kazmath/mat4.h +0 -93
  384. data/vendor/Cocos2D/include/kazmath/neon_matrix_impl.h +0 -41
  385. data/vendor/Cocos2D/include/kazmath/plane.h +0 -70
  386. data/vendor/Cocos2D/include/kazmath/quaternion.h +0 -113
  387. data/vendor/Cocos2D/include/kazmath/ray2.h +0 -50
  388. data/vendor/Cocos2D/include/kazmath/utility.h +0 -74
  389. data/vendor/Cocos2D/include/kazmath/vec2.h +0 -64
  390. data/vendor/Cocos2D/include/kazmath/vec3.h +0 -68
  391. data/vendor/Cocos2D/include/kazmath/vec4.h +0 -68
  392. data/vendor/Cocos2D/libCocosDenshion.a +0 -0
  393. data/vendor/Cocos2D/libcocos2d.a +0 -0
@@ -1,5 +1,5 @@
1
1
  /*
2
- Copyright (c) 2007-2010, Troy D. Hanson http://uthash.sourceforge.net
2
+ Copyright (c) 2007-2013, Troy D. Hanson http://uthash.sourceforge.net
3
3
  All rights reserved.
4
4
 
5
5
  Redistribution and use in source and binary forms, with or without
@@ -24,9 +24,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
24
  #ifndef UTLIST_H
25
25
  #define UTLIST_H
26
26
 
27
- #define UTLIST_VERSION 1.9.1
27
+ #define UTLIST_VERSION 1.9.7
28
28
 
29
- /*
29
+ #include <assert.h>
30
+
31
+ /*
30
32
  * This file contains macros to manipulate singly and doubly-linked lists.
31
33
  *
32
34
  * 1. LL_ macros: singly-linked lists.
@@ -36,7 +38,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
38
  * To use singly-linked lists, your structure must have a "next" pointer.
37
39
  * To use doubly-linked lists, your structure must "prev" and "next" pointers.
38
40
  * Either way, the pointer to the head of the list must be initialized to NULL.
39
- *
41
+ *
40
42
  * ----------------.EXAMPLE -------------------------
41
43
  * struct item {
42
44
  * int id;
@@ -77,18 +79,18 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
77
79
  * to dereference its prev/next pointers, and save/restore the real head.*/
78
80
  #ifdef NO_DECLTYPE
79
81
  #define _SV(elt,list) _tmp = (char*)(list); {char **_alias = (char**)&(list); *_alias = (elt); }
80
- #define _NEXT(elt,list) ((char*)((list)->next))
81
- #define _NEXTASGN(elt,list,to) { char **_alias = (char**)&((list)->next); *_alias=(char*)(to); }
82
- #define _PREV(elt,list) ((char*)((list)->prev))
83
- #define _PREVASGN(elt,list,to) { char **_alias = (char**)&((list)->prev); *_alias=(char*)(to); }
82
+ #define _NEXT(elt,list,next) ((char*)((list)->next))
83
+ #define _NEXTASGN(elt,list,to,next) { char **_alias = (char**)&((list)->next); *_alias=(char*)(to); }
84
+ /* #define _PREV(elt,list,prev) ((char*)((list)->prev)) */
85
+ #define _PREVASGN(elt,list,to,prev) { char **_alias = (char**)&((list)->prev); *_alias=(char*)(to); }
84
86
  #define _RS(list) { char **_alias = (char**)&(list); *_alias=_tmp; }
85
87
  #define _CASTASGN(a,b) { char **_alias = (char**)&(a); *_alias=(char*)(b); }
86
- #else
88
+ #else
87
89
  #define _SV(elt,list)
88
- #define _NEXT(elt,list) ((elt)->next)
89
- #define _NEXTASGN(elt,list,to) ((elt)->next)=(to)
90
- #define _PREV(elt,list) ((elt)->prev)
91
- #define _PREVASGN(elt,list,to) ((elt)->prev)=(to)
90
+ #define _NEXT(elt,list,next) ((elt)->next)
91
+ #define _NEXTASGN(elt,list,to,next) ((elt)->next)=(to)
92
+ /* #define _PREV(elt,list,prev) ((elt)->prev) */
93
+ #define _PREVASGN(elt,list,to,prev) ((elt)->prev)=(to)
92
94
  #define _RS(list)
93
95
  #define _CASTASGN(a,b) (a)=(b)
94
96
  #endif
@@ -98,6 +100,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
98
100
  * Unwieldy variable names used here to avoid shadowing passed-in variables. *
99
101
  *****************************************************************************/
100
102
  #define LL_SORT(list, cmp) \
103
+ LL_SORT2(list, cmp, next)
104
+
105
+ #define LL_SORT2(list, cmp, next) \
101
106
  do { \
102
107
  LDECLTYPE(list) _ls_p; \
103
108
  LDECLTYPE(list) _ls_q; \
@@ -121,22 +126,26 @@ do {
121
126
  _ls_psize = 0; \
122
127
  for (_ls_i = 0; _ls_i < _ls_insize; _ls_i++) { \
123
128
  _ls_psize++; \
124
- _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); \
129
+ _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list,next); _RS(list); \
125
130
  if (!_ls_q) break; \
126
131
  } \
127
132
  _ls_qsize = _ls_insize; \
128
133
  while (_ls_psize > 0 || (_ls_qsize > 0 && _ls_q)) { \
129
134
  if (_ls_psize == 0) { \
130
- _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \
135
+ _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = \
136
+ _NEXT(_ls_q,list,next); _RS(list); _ls_qsize--; \
131
137
  } else if (_ls_qsize == 0 || !_ls_q) { \
132
- _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \
138
+ _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = \
139
+ _NEXT(_ls_p,list,next); _RS(list); _ls_psize--; \
133
140
  } else if (cmp(_ls_p,_ls_q) <= 0) { \
134
- _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \
141
+ _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = \
142
+ _NEXT(_ls_p,list,next); _RS(list); _ls_psize--; \
135
143
  } else { \
136
- _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \
144
+ _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = \
145
+ _NEXT(_ls_q,list,next); _RS(list); _ls_qsize--; \
137
146
  } \
138
147
  if (_ls_tail) { \
139
- _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_ls_e); _RS(list); \
148
+ _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_ls_e,next); _RS(list); \
140
149
  } else { \
141
150
  _CASTASGN(list,_ls_e); \
142
151
  } \
@@ -144,7 +153,7 @@ do {
144
153
  } \
145
154
  _ls_p = _ls_q; \
146
155
  } \
147
- _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,NULL); _RS(list); \
156
+ _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,NULL,next); _RS(list); \
148
157
  if (_ls_nmerges <= 1) { \
149
158
  _ls_looping=0; \
150
159
  } \
@@ -153,7 +162,11 @@ do {
153
162
  } else _tmp=NULL; /* quiet gcc unused variable warning */ \
154
163
  } while (0)
155
164
 
165
+
156
166
  #define DL_SORT(list, cmp) \
167
+ DL_SORT2(list, cmp, prev, next)
168
+
169
+ #define DL_SORT2(list, cmp, prev, next) \
157
170
  do { \
158
171
  LDECLTYPE(list) _ls_p; \
159
172
  LDECLTYPE(list) _ls_q; \
@@ -177,32 +190,36 @@ do {
177
190
  _ls_psize = 0; \
178
191
  for (_ls_i = 0; _ls_i < _ls_insize; _ls_i++) { \
179
192
  _ls_psize++; \
180
- _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); \
193
+ _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list,next); _RS(list); \
181
194
  if (!_ls_q) break; \
182
195
  } \
183
196
  _ls_qsize = _ls_insize; \
184
197
  while (_ls_psize > 0 || (_ls_qsize > 0 && _ls_q)) { \
185
198
  if (_ls_psize == 0) { \
186
- _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \
199
+ _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = \
200
+ _NEXT(_ls_q,list,next); _RS(list); _ls_qsize--; \
187
201
  } else if (_ls_qsize == 0 || !_ls_q) { \
188
- _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \
202
+ _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = \
203
+ _NEXT(_ls_p,list,next); _RS(list); _ls_psize--; \
189
204
  } else if (cmp(_ls_p,_ls_q) <= 0) { \
190
- _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \
205
+ _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = \
206
+ _NEXT(_ls_p,list,next); _RS(list); _ls_psize--; \
191
207
  } else { \
192
- _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \
208
+ _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = \
209
+ _NEXT(_ls_q,list,next); _RS(list); _ls_qsize--; \
193
210
  } \
194
211
  if (_ls_tail) { \
195
- _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_ls_e); _RS(list); \
212
+ _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_ls_e,next); _RS(list); \
196
213
  } else { \
197
214
  _CASTASGN(list,_ls_e); \
198
215
  } \
199
- _SV(_ls_e,list); _PREVASGN(_ls_e,list,_ls_tail); _RS(list); \
216
+ _SV(_ls_e,list); _PREVASGN(_ls_e,list,_ls_tail,prev); _RS(list); \
200
217
  _ls_tail = _ls_e; \
201
218
  } \
202
219
  _ls_p = _ls_q; \
203
220
  } \
204
221
  _CASTASGN(list->prev, _ls_tail); \
205
- _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,NULL); _RS(list); \
222
+ _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,NULL,next); _RS(list); \
206
223
  if (_ls_nmerges <= 1) { \
207
224
  _ls_looping=0; \
208
225
  } \
@@ -212,6 +229,9 @@ do {
212
229
  } while (0)
213
230
 
214
231
  #define CDL_SORT(list, cmp) \
232
+ CDL_SORT2(list, cmp, prev, next)
233
+
234
+ #define CDL_SORT2(list, cmp, prev, next) \
215
235
  do { \
216
236
  LDECLTYPE(list) _ls_p; \
217
237
  LDECLTYPE(list) _ls_q; \
@@ -237,10 +257,10 @@ do {
237
257
  for (_ls_i = 0; _ls_i < _ls_insize; _ls_i++) { \
238
258
  _ls_psize++; \
239
259
  _SV(_ls_q,list); \
240
- if (_NEXT(_ls_q,list) == _ls_oldhead) { \
260
+ if (_NEXT(_ls_q,list,next) == _ls_oldhead) { \
241
261
  _ls_q = NULL; \
242
262
  } else { \
243
- _ls_q = _NEXT(_ls_q,list); \
263
+ _ls_q = _NEXT(_ls_q,list,next); \
244
264
  } \
245
265
  _RS(list); \
246
266
  if (!_ls_q) break; \
@@ -248,31 +268,35 @@ do {
248
268
  _ls_qsize = _ls_insize; \
249
269
  while (_ls_psize > 0 || (_ls_qsize > 0 && _ls_q)) { \
250
270
  if (_ls_psize == 0) { \
251
- _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \
271
+ _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = \
272
+ _NEXT(_ls_q,list,next); _RS(list); _ls_qsize--; \
252
273
  if (_ls_q == _ls_oldhead) { _ls_q = NULL; } \
253
274
  } else if (_ls_qsize == 0 || !_ls_q) { \
254
- _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \
275
+ _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = \
276
+ _NEXT(_ls_p,list,next); _RS(list); _ls_psize--; \
255
277
  if (_ls_p == _ls_oldhead) { _ls_p = NULL; } \
256
278
  } else if (cmp(_ls_p,_ls_q) <= 0) { \
257
- _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \
279
+ _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = \
280
+ _NEXT(_ls_p,list,next); _RS(list); _ls_psize--; \
258
281
  if (_ls_p == _ls_oldhead) { _ls_p = NULL; } \
259
282
  } else { \
260
- _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \
283
+ _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = \
284
+ _NEXT(_ls_q,list,next); _RS(list); _ls_qsize--; \
261
285
  if (_ls_q == _ls_oldhead) { _ls_q = NULL; } \
262
286
  } \
263
287
  if (_ls_tail) { \
264
- _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_ls_e); _RS(list); \
288
+ _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_ls_e,next); _RS(list); \
265
289
  } else { \
266
290
  _CASTASGN(list,_ls_e); \
267
291
  } \
268
- _SV(_ls_e,list); _PREVASGN(_ls_e,list,_ls_tail); _RS(list); \
292
+ _SV(_ls_e,list); _PREVASGN(_ls_e,list,_ls_tail,prev); _RS(list); \
269
293
  _ls_tail = _ls_e; \
270
294
  } \
271
295
  _ls_p = _ls_q; \
272
296
  } \
273
297
  _CASTASGN(list->prev,_ls_tail); \
274
298
  _CASTASGN(_tmp2,list); \
275
- _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_tmp2); _RS(list); \
299
+ _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_tmp2,next); _RS(list); \
276
300
  if (_ls_nmerges <= 1) { \
277
301
  _ls_looping=0; \
278
302
  } \
@@ -285,12 +309,33 @@ do {
285
309
  * singly linked list macros (non-circular) *
286
310
  *****************************************************************************/
287
311
  #define LL_PREPEND(head,add) \
312
+ LL_PREPEND2(head,add,next)
313
+
314
+ #define LL_PREPEND2(head,add,next) \
288
315
  do { \
289
316
  (add)->next = head; \
290
317
  head = add; \
291
318
  } while (0)
292
319
 
320
+ #define LL_CONCAT(head1,head2) \
321
+ LL_CONCAT2(head1,head2,next)
322
+
323
+ #define LL_CONCAT2(head1,head2,next) \
324
+ do { \
325
+ LDECLTYPE(head1) _tmp; \
326
+ if (head1) { \
327
+ _tmp = head1; \
328
+ while (_tmp->next) { _tmp = _tmp->next; } \
329
+ _tmp->next=(head2); \
330
+ } else { \
331
+ (head1)=(head2); \
332
+ } \
333
+ } while (0)
334
+
293
335
  #define LL_APPEND(head,add) \
336
+ LL_APPEND2(head,add,next)
337
+
338
+ #define LL_APPEND2(head,add,next) \
294
339
  do { \
295
340
  LDECLTYPE(head) _tmp; \
296
341
  (add)->next=NULL; \
@@ -304,6 +349,9 @@ do {
304
349
  } while (0)
305
350
 
306
351
  #define LL_DELETE(head,del) \
352
+ LL_DELETE2(head,del,next)
353
+
354
+ #define LL_DELETE2(head,del,next) \
307
355
  do { \
308
356
  LDECLTYPE(head) _tmp; \
309
357
  if ((head) == (del)) { \
@@ -321,6 +369,9 @@ do {
321
369
 
322
370
  /* Here are VS2008 replacements for LL_APPEND and LL_DELETE */
323
371
  #define LL_APPEND_VS2008(head,add) \
372
+ LL_APPEND2_VS2008(head,add,next)
373
+
374
+ #define LL_APPEND2_VS2008(head,add,next) \
324
375
  do { \
325
376
  if (head) { \
326
377
  (add)->next = head; /* use add->next as a temp variable */ \
@@ -333,16 +384,19 @@ do {
333
384
  } while (0)
334
385
 
335
386
  #define LL_DELETE_VS2008(head,del) \
387
+ LL_DELETE2_VS2008(head,del,next)
388
+
389
+ #define LL_DELETE2_VS2008(head,del,next) \
336
390
  do { \
337
391
  if ((head) == (del)) { \
338
392
  (head)=(head)->next; \
339
393
  } else { \
340
394
  char *_tmp = (char*)(head); \
341
- while (head->next && (head->next != (del))) { \
342
- head = head->next; \
395
+ while ((head)->next && ((head)->next != (del))) { \
396
+ head = (head)->next; \
343
397
  } \
344
- if (head->next) { \
345
- head->next = ((del)->next); \
398
+ if ((head)->next) { \
399
+ (head)->next = ((del)->next); \
346
400
  } \
347
401
  { \
348
402
  char **_head_alias = (char**)&(head); \
@@ -355,33 +409,95 @@ do {
355
409
  #define LL_APPEND LL_APPEND_VS2008
356
410
  #undef LL_DELETE
357
411
  #define LL_DELETE LL_DELETE_VS2008
412
+ #undef LL_DELETE2
413
+ #define LL_DELETE2_VS2008
414
+ #undef LL_APPEND2
415
+ #define LL_APPEND2 LL_APPEND2_VS2008
416
+ #undef LL_CONCAT /* no LL_CONCAT_VS2008 */
417
+ #undef DL_CONCAT /* no DL_CONCAT_VS2008 */
358
418
  #endif
359
419
  /* end VS2008 replacements */
360
420
 
361
421
  #define LL_FOREACH(head,el) \
362
- for(el=head;el;el=el->next)
422
+ LL_FOREACH2(head,el,next)
423
+
424
+ #define LL_FOREACH2(head,el,next) \
425
+ for(el=head;el;el=(el)->next)
363
426
 
364
427
  #define LL_FOREACH_SAFE(head,el,tmp) \
428
+ LL_FOREACH_SAFE2(head,el,tmp,next)
429
+
430
+ #define LL_FOREACH_SAFE2(head,el,tmp,next) \
365
431
  for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)
366
432
 
367
433
  #define LL_SEARCH_SCALAR(head,out,field,val) \
434
+ LL_SEARCH_SCALAR2(head,out,field,val,next)
435
+
436
+ #define LL_SEARCH_SCALAR2(head,out,field,val,next) \
368
437
  do { \
369
- LL_FOREACH(head,out) { \
438
+ LL_FOREACH2(head,out,next) { \
370
439
  if ((out)->field == (val)) break; \
371
440
  } \
372
- } while(0)
441
+ } while(0)
373
442
 
374
443
  #define LL_SEARCH(head,out,elt,cmp) \
444
+ LL_SEARCH2(head,out,elt,cmp,next)
445
+
446
+ #define LL_SEARCH2(head,out,elt,cmp,next) \
375
447
  do { \
376
- LL_FOREACH(head,out) { \
448
+ LL_FOREACH2(head,out,next) { \
377
449
  if ((cmp(out,elt))==0) break; \
378
450
  } \
379
- } while(0)
451
+ } while(0)
452
+
453
+ #define LL_REPLACE_ELEM(head, el, add) \
454
+ do { \
455
+ LDECLTYPE(head) _tmp; \
456
+ assert(head != NULL); \
457
+ assert(el != NULL); \
458
+ assert(add != NULL); \
459
+ (add)->next = (el)->next; \
460
+ if ((head) == (el)) { \
461
+ (head) = (add); \
462
+ } else { \
463
+ _tmp = head; \
464
+ while (_tmp->next && (_tmp->next != (el))) { \
465
+ _tmp = _tmp->next; \
466
+ } \
467
+ if (_tmp->next) { \
468
+ _tmp->next = (add); \
469
+ } \
470
+ } \
471
+ } while (0)
472
+
473
+ #define LL_PREPEND_ELEM(head, el, add) \
474
+ do { \
475
+ LDECLTYPE(head) _tmp; \
476
+ assert(head != NULL); \
477
+ assert(el != NULL); \
478
+ assert(add != NULL); \
479
+ (add)->next = (el); \
480
+ if ((head) == (el)) { \
481
+ (head) = (add); \
482
+ } else { \
483
+ _tmp = head; \
484
+ while (_tmp->next && (_tmp->next != (el))) { \
485
+ _tmp = _tmp->next; \
486
+ } \
487
+ if (_tmp->next) { \
488
+ _tmp->next = (add); \
489
+ } \
490
+ } \
491
+ } while (0) \
492
+
380
493
 
381
494
  /******************************************************************************
382
495
  * doubly linked list macros (non-circular) *
383
496
  *****************************************************************************/
384
497
  #define DL_PREPEND(head,add) \
498
+ DL_PREPEND2(head,add,prev,next)
499
+
500
+ #define DL_PREPEND2(head,add,prev,next) \
385
501
  do { \
386
502
  (add)->next = head; \
387
503
  if (head) { \
@@ -394,6 +510,9 @@ do {
394
510
  } while (0)
395
511
 
396
512
  #define DL_APPEND(head,add) \
513
+ DL_APPEND2(head,add,prev,next)
514
+
515
+ #define DL_APPEND2(head,add,prev,next) \
397
516
  do { \
398
517
  if (head) { \
399
518
  (add)->prev = (head)->prev; \
@@ -405,10 +524,32 @@ do {
405
524
  (head)->prev = (head); \
406
525
  (head)->next = NULL; \
407
526
  } \
408
- } while (0);
527
+ } while (0)
528
+
529
+ #define DL_CONCAT(head1,head2) \
530
+ DL_CONCAT2(head1,head2,prev,next)
531
+
532
+ #define DL_CONCAT2(head1,head2,prev,next) \
533
+ do { \
534
+ LDECLTYPE(head1) _tmp; \
535
+ if (head2) { \
536
+ if (head1) { \
537
+ _tmp = (head2)->prev; \
538
+ (head2)->prev = (head1)->prev; \
539
+ (head1)->prev->next = (head2); \
540
+ (head1)->prev = _tmp; \
541
+ } else { \
542
+ (head1)=(head2); \
543
+ } \
544
+ } \
545
+ } while (0)
409
546
 
410
547
  #define DL_DELETE(head,del) \
548
+ DL_DELETE2(head,del,prev,next)
549
+
550
+ #define DL_DELETE2(head,del,prev,next) \
411
551
  do { \
552
+ assert((del)->prev != NULL); \
412
553
  if ((del)->prev == (del)) { \
413
554
  (head)=NULL; \
414
555
  } else if ((del)==(head)) { \
@@ -422,24 +563,77 @@ do {
422
563
  (head)->prev = (del)->prev; \
423
564
  } \
424
565
  } \
425
- } while (0);
566
+ } while (0)
426
567
 
427
568
 
428
569
  #define DL_FOREACH(head,el) \
429
- for(el=head;el;el=el->next)
570
+ DL_FOREACH2(head,el,next)
571
+
572
+ #define DL_FOREACH2(head,el,next) \
573
+ for(el=head;el;el=(el)->next)
430
574
 
431
575
  /* this version is safe for deleting the elements during iteration */
432
576
  #define DL_FOREACH_SAFE(head,el,tmp) \
577
+ DL_FOREACH_SAFE2(head,el,tmp,next)
578
+
579
+ #define DL_FOREACH_SAFE2(head,el,tmp,next) \
433
580
  for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)
434
581
 
435
582
  /* these are identical to their singly-linked list counterparts */
436
583
  #define DL_SEARCH_SCALAR LL_SEARCH_SCALAR
437
584
  #define DL_SEARCH LL_SEARCH
585
+ #define DL_SEARCH_SCALAR2 LL_SEARCH_SCALAR2
586
+ #define DL_SEARCH2 LL_SEARCH2
587
+
588
+ #define DL_REPLACE_ELEM(head, el, add) \
589
+ do { \
590
+ assert(head != NULL); \
591
+ assert(el != NULL); \
592
+ assert(add != NULL); \
593
+ if ((head) == (el)) { \
594
+ (head) = (add); \
595
+ (add)->next = (el)->next; \
596
+ if ((el)->next == NULL) { \
597
+ (add)->prev = (add); \
598
+ } else { \
599
+ (add)->prev = (el)->prev; \
600
+ (add)->next->prev = (add); \
601
+ } \
602
+ } else { \
603
+ (add)->next = (el)->next; \
604
+ (add)->prev = (el)->prev; \
605
+ (add)->prev->next = (add); \
606
+ if ((el)->next == NULL) { \
607
+ (head)->prev = (add); \
608
+ } else { \
609
+ (add)->next->prev = (add); \
610
+ } \
611
+ } \
612
+ } while (0)
613
+
614
+ #define DL_PREPEND_ELEM(head, el, add) \
615
+ do { \
616
+ assert(head != NULL); \
617
+ assert(el != NULL); \
618
+ assert(add != NULL); \
619
+ (add)->next = (el); \
620
+ (add)->prev = (el)->prev; \
621
+ (el)->prev = (add); \
622
+ if ((head) == (el)) { \
623
+ (head) = (add); \
624
+ } else { \
625
+ (add)->prev->next = (add); \
626
+ } \
627
+ } while (0) \
628
+
438
629
 
439
630
  /******************************************************************************
440
631
  * circular doubly linked list macros *
441
632
  *****************************************************************************/
442
633
  #define CDL_PREPEND(head,add) \
634
+ CDL_PREPEND2(head,add,prev,next)
635
+
636
+ #define CDL_PREPEND2(head,add,prev,next) \
443
637
  do { \
444
638
  if (head) { \
445
639
  (add)->prev = (head)->prev; \
@@ -454,6 +648,9 @@ do {
454
648
  } while (0)
455
649
 
456
650
  #define CDL_DELETE(head,del) \
651
+ CDL_DELETE2(head,del,prev,next)
652
+
653
+ #define CDL_DELETE2(head,del,prev,next) \
457
654
  do { \
458
655
  if ( ((head)==(del)) && ((head)->next == (head))) { \
459
656
  (head) = 0L; \
@@ -462,29 +659,75 @@ do {
462
659
  (del)->prev->next = (del)->next; \
463
660
  if ((del) == (head)) (head)=(del)->next; \
464
661
  } \
465
- } while (0);
662
+ } while (0)
466
663
 
467
664
  #define CDL_FOREACH(head,el) \
468
- for(el=head;el;el=(el->next==head ? 0L : el->next))
665
+ CDL_FOREACH2(head,el,next)
666
+
667
+ #define CDL_FOREACH2(head,el,next) \
668
+ for(el=head;el;el=((el)->next==head ? 0L : (el)->next))
469
669
 
470
670
  #define CDL_FOREACH_SAFE(head,el,tmp1,tmp2) \
671
+ CDL_FOREACH_SAFE2(head,el,tmp1,tmp2,prev,next)
672
+
673
+ #define CDL_FOREACH_SAFE2(head,el,tmp1,tmp2,prev,next) \
471
674
  for((el)=(head), ((tmp1)=(head)?((head)->prev):NULL); \
472
675
  (el) && ((tmp2)=(el)->next, 1); \
473
676
  ((el) = (((el)==(tmp1)) ? 0L : (tmp2))))
474
677
 
475
678
  #define CDL_SEARCH_SCALAR(head,out,field,val) \
679
+ CDL_SEARCH_SCALAR2(head,out,field,val,next)
680
+
681
+ #define CDL_SEARCH_SCALAR2(head,out,field,val,next) \
476
682
  do { \
477
- CDL_FOREACH(head,out) { \
683
+ CDL_FOREACH2(head,out,next) { \
478
684
  if ((out)->field == (val)) break; \
479
685
  } \
480
- } while(0)
686
+ } while(0)
481
687
 
482
688
  #define CDL_SEARCH(head,out,elt,cmp) \
689
+ CDL_SEARCH2(head,out,elt,cmp,next)
690
+
691
+ #define CDL_SEARCH2(head,out,elt,cmp,next) \
483
692
  do { \
484
- CDL_FOREACH(head,out) { \
693
+ CDL_FOREACH2(head,out,next) { \
485
694
  if ((cmp(out,elt))==0) break; \
486
695
  } \
487
- } while(0)
696
+ } while(0)
697
+
698
+ #define CDL_REPLACE_ELEM(head, el, add) \
699
+ do { \
700
+ assert(head != NULL); \
701
+ assert(el != NULL); \
702
+ assert(add != NULL); \
703
+ if ((el)->next == (el)) { \
704
+ (add)->next = (add); \
705
+ (add)->prev = (add); \
706
+ (head) = (add); \
707
+ } else { \
708
+ (add)->next = (el)->next; \
709
+ (add)->prev = (el)->prev; \
710
+ (add)->next->prev = (add); \
711
+ (add)->prev->next = (add); \
712
+ if ((head) == (el)) { \
713
+ (head) = (add); \
714
+ } \
715
+ } \
716
+ } while (0)
717
+
718
+ #define CDL_PREPEND_ELEM(head, el, add) \
719
+ do { \
720
+ assert(head != NULL); \
721
+ assert(el != NULL); \
722
+ assert(add != NULL); \
723
+ (add)->next = (el); \
724
+ (add)->prev = (el)->prev; \
725
+ (el)->prev = (add); \
726
+ (add)->prev->next = (add); \
727
+ if ((head) == (el)) { \
728
+ (head) = (add); \
729
+ } \
730
+ } while (0) \
488
731
 
489
732
  #endif /* UTLIST_H */
490
733