<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
//
-// tanksAppDelegate.h
+// RootAppDelegate.h
// tanks
//
// Created by dsc on 4/27/11.
#import <UIKit/UIKit.h>
#import "Sparrow.h"
-@interface tanksAppDelegate : NSObject <UIApplicationDelegate>
+@interface RootAppDelegate : NSObject <UIApplicationDelegate>
{
UIWindow *window;
SPView *sparrowView;
//
-// tanksAppDelegate.m
+// RootAppDelegate.m
// tanks
//
// Created by dsc on 4/27/11.
// Copyright 2011 lttlst.com. All rights reserved.
//
-#import "tanksAppDelegate.h"
+#import "RootAppDelegate.h"
#import "Game.h"
-@implementation tanksAppDelegate
+@implementation RootAppDelegate
@synthesize window;
@synthesize sparrowView;
[SPStage setSupportHighResolutions:YES];
[SPAudioEngine start];
- Game *game = [[Game alloc] init];
+ Game *game = [[Game alloc] init];
sparrowView.stage = game;
[game release];
--- /dev/null
+//
+// Box2DAppDelegate.h
+// Box2D
+//
+// Box2D iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+//
+
+#import <UIKit/UIKit.h>
+#import "TestEntriesViewController.h"
+#import "Delegates.h"
+
+@class Box2DView;
+
+@interface Box2DAppDelegate : NSObject <UIApplicationDelegate,TestSelectDelegate> {
+ UIWindow *window;
+ Box2DView *glView;
+ TestEntriesViewController *testEntriesView;
+}
+
+@property (nonatomic, retain) IBOutlet UIWindow *window;
+@property (nonatomic, retain) IBOutlet Box2DView *glView;
+
+@end
+
--- /dev/null
+//
+// Box2DAppDelegate.m
+// Box2D
+//
+// Box2D iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+//
+
+#import <UIKit/UIKit.h>
+#import "Box2DAppDelegate.h"
+#import "Box2DView.h"
+
+@implementation Box2DAppDelegate
+
+@synthesize window;
+@synthesize glView;
+
+- (void)applicationDidFinishLaunching:(UIApplication *)application {
+ [application setStatusBarHidden:true];
+
+ [glView removeFromSuperview];
+
+ glView.animationInterval = 1.0 / 60.0;
+
+ testEntriesView=[[TestEntriesViewController alloc] initWithStyle:UITableViewStylePlain];
+ [testEntriesView setDelegate:self];
+ [glView setDelegate:self];
+
+ [window addSubview:[testEntriesView view]];
+}
+
+-(void) selectTest:(int) testIndex
+{
+ [[testEntriesView view] removeFromSuperview];
+ [window addSubview:glView];
+ [glView startAnimation];
+ [glView selectTestEntry:testIndex];
+}
+
+-(void) leaveTest
+{
+ [glView stopAnimation];
+ [glView removeFromSuperview];
+ [window addSubview:[testEntriesView view]];
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application {
+ glView.animationInterval = 1.0 / 5.0;
+}
+
+
+- (void)applicationDidBecomeActive:(UIApplication *)application {
+ glView.animationInterval = 1.0 / 60.0;
+}
+
+
+- (void)dealloc {
+ [window release];
+ [glView release];
+ [super dealloc];
+}
+
+@end
--- /dev/null
+//
+// Box2DView.h
+// Box2D OpenGL View
+//
+// Box2D iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+//
+
+
+#import <UIKit/UIKit.h>
+#import <OpenGLES/EAGL.h>
+#import <OpenGLES/ES1/gl.h>
+#import <OpenGLES/ES1/glext.h>
+
+#import "iPhoneTest.h"
+#import "Delegates.h"
+
+/*
+This class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass.
+The view content is basically an EAGL surface you render your OpenGL scene into.
+Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel.
+*/
+@interface Box2DView : UIView <UIAccelerometerDelegate> {
+
+@private
+ /* The pixel dimensions of the backbuffer */
+ GLint backingWidth;
+ GLint backingHeight;
+
+ EAGLContext *context;
+
+ /* OpenGL names for the renderbuffer and framebuffers used to render to this view */
+ GLuint viewRenderbuffer, viewFramebuffer;
+
+ /* OpenGL name for the depth buffer that is attached to viewFramebuffer, if it exists (0 if it does not exist) */
+ GLuint depthRenderbuffer;
+
+ NSTimer *animationTimer;
+ NSTimeInterval animationInterval;
+
+ TestEntry* entry;
+ Test* test;
+
+ // Position offset and scale
+ float sceneScale;
+ CGPoint positionOffset;
+ CGPoint lastWorldTouch;
+ CGPoint lastScreenTouch;
+
+ bool panning;
+ int doubleClickValidCountdown;
+
+ id<TestSelectDelegate> _delegate;
+
+}
+@property(assign) id<TestSelectDelegate> delegate;
+@property NSTimeInterval animationInterval;
+
+- (void)startAnimation;
+- (void)stopAnimation;
+- (void)drawView;
+-(void) selectTestEntry:(int) testIndex;
+
+@end
--- /dev/null
+//
+// Box2DView.mm
+// Box2D OpenGL View
+//
+// Box2D iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+//
+
+#import <QuartzCore/QuartzCore.h>
+#import <OpenGLES/EAGLDrawable.h>
+
+#import "Box2DView.h"
+
+#define USE_DEPTH_BUFFER 0
+#define kAccelerometerFrequency 30
+#define FRAMES_BETWEEN_PRESSES_FOR_DOUBLE_CLICK 10
+
+Settings settings;
+
+// A class extension to declare private methods
+@interface Box2DView ()
+
+@property (nonatomic, retain) EAGLContext *context;
+@property (nonatomic, assign) NSTimer *animationTimer;
+
+- (BOOL) createFramebuffer;
+- (void) destroyFramebuffer;
+
+@end
+
+
+@implementation Box2DView
+
+@synthesize context;
+@synthesize animationTimer;
+@synthesize animationInterval;
+@synthesize delegate=_delegate;
+
+// You must implement this method
++ (Class)layerClass {
+ return [CAEAGLLayer class];
+}
+
+
+//The GL view is stored in the nib file. When it's unarchived it's sent -initWithCoder:
+- (id)initWithCoder:(NSCoder*)coder {
+
+ if ((self = [super initWithCoder:coder])) {
+ // Get the layer
+ CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer;
+
+ eaglLayer.opaque = YES;
+ eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
+ [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
+
+ context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
+
+ if (!context || ![EAGLContext setCurrentContext:context]) {
+ [self release];
+ return nil;
+ }
+
+ animationInterval = 1.0 / 60.0;
+ sceneScale=10.0f;
+ positionOffset=CGPointMake(0, 0);
+ lastWorldTouch=CGPointMake(0, 0);
+
+ [[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / kAccelerometerFrequency)];
+ [[UIAccelerometer sharedAccelerometer] setDelegate:self];
+ }
+
+
+ return self;
+}
+
+-(void) selectTestEntry:(int) testIndex
+{
+ // Destroy existing scene
+ delete test;
+
+ entry = g_testEntries + testIndex;
+ test = entry->createFcn();
+
+ doubleClickValidCountdown=0;
+
+ sceneScale=10.0f;
+ positionOffset=CGPointMake(0, 0);
+ lastWorldTouch=CGPointMake(0, 0);
+}
+
+
+
+- (void)drawView {
+
+
+
+ if (doubleClickValidCountdown>0) doubleClickValidCountdown--;
+
+ [EAGLContext setCurrentContext:context];
+
+ glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer);
+ glViewport(0, 0, backingWidth, backingHeight);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ glOrthof(-sceneScale, sceneScale, -sceneScale*1.5f, sceneScale*1.5f, -1.0f, 1.0f);
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(positionOffset.x, positionOffset.y,0);
+ glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ glEnableClientState(GL_VERTEX_ARRAY);
+
+ test->Step(&settings);
+
+ glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
+ [context presentRenderbuffer:GL_RENDERBUFFER_OES];
+}
+
+
+- (void)layoutSubviews {
+ [EAGLContext setCurrentContext:context];
+ [self destroyFramebuffer];
+ [self createFramebuffer];
+ [self drawView];
+}
+
+
+- (BOOL)createFramebuffer {
+
+ glGenFramebuffersOES(1, &viewFramebuffer);
+ glGenRenderbuffersOES(1, &viewRenderbuffer);
+
+ glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer);
+ glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
+ [context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(CAEAGLLayer*)self.layer];
+ glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, viewRenderbuffer);
+
+ glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
+ glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
+
+ if (USE_DEPTH_BUFFER) {
+ glGenRenderbuffersOES(1, &depthRenderbuffer);
+ glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer);
+ glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, backingWidth, backingHeight);
+ glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer);
+ }
+
+ if(glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES) {
+ NSLog(@"failed to make complete framebuffer object %x", glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES));
+ return NO;
+ }
+
+ return YES;
+}
+
+
+- (void)destroyFramebuffer {
+
+ glDeleteFramebuffersOES(1, &viewFramebuffer);
+ viewFramebuffer = 0;
+ glDeleteRenderbuffersOES(1, &viewRenderbuffer);
+ viewRenderbuffer = 0;
+
+ if(depthRenderbuffer) {
+ glDeleteRenderbuffersOES(1, &depthRenderbuffer);
+ depthRenderbuffer = 0;
+ }
+}
+
+
+- (void)startAnimation {
+ self.animationTimer = [NSTimer scheduledTimerWithTimeInterval:animationInterval target:self selector:@selector(drawView) userInfo:nil repeats:YES];
+}
+
+
+- (void)stopAnimation {
+ self.animationTimer = nil;
+}
+
+
+- (void)setAnimationTimer:(NSTimer *)newTimer {
+ [animationTimer invalidate];
+ animationTimer = newTimer;
+}
+
+
+- (void)setAnimationInterval:(NSTimeInterval)interval {
+
+ animationInterval = interval;
+ if (animationTimer) {
+ [self stopAnimation];
+ [self startAnimation];
+ }
+}
+
+
+- (void)dealloc {
+
+ [self stopAnimation];
+
+ if ([EAGLContext currentContext] == context) {
+ [EAGLContext setCurrentContext:nil];
+ }
+
+ [context release];
+ [super dealloc];
+}
+
+-(CGPoint) screenSpaceToWorldSpace:(CGPoint) screenLocation
+{
+ screenLocation.x-=160;
+ screenLocation.y-=240;
+ screenLocation.x/=160;
+ screenLocation.y/=160;
+ screenLocation.x*=sceneScale;
+ screenLocation.y*=-sceneScale;
+
+ screenLocation.x-=positionOffset.x;
+ screenLocation.y-=positionOffset.y;
+ return screenLocation;
+}
+
+- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
+{
+
+ if (doubleClickValidCountdown>0)
+ {
+ [_delegate leaveTest];
+ return;
+ }
+
+ doubleClickValidCountdown=FRAMES_BETWEEN_PRESSES_FOR_DOUBLE_CLICK;
+
+
+ panning=false;
+ for (UITouch *touch in touches)
+ {
+ CGPoint touchLocation=[touch locationInView:self];
+ CGPoint worldPosition=[self screenSpaceToWorldSpace:touchLocation];
+ //printf("Screen touched %f,%f -> %f,%f\n",touchLocation.x,touchLocation.y,worldPosition.x,worldPosition.y);
+ lastScreenTouch=touchLocation;
+ lastWorldTouch=worldPosition;
+ test->MouseDown(b2Vec2(lastWorldTouch.x,lastWorldTouch.y));
+
+ if (!test->m_mouseJoint) panning=true;
+ }
+}
+
+- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
+{
+ for (UITouch *touch in touches)
+ {
+ CGPoint touchLocation=[touch locationInView:self];
+ CGPoint worldPosition=[self screenSpaceToWorldSpace:touchLocation];
+ //printf("Screen touched %f,%f -> %f,%f\n",touchLocation.x,touchLocation.y,worldPosition.x,worldPosition.y);
+
+
+ CGPoint screenDistanceMoved=CGPointMake(touchLocation.x-lastScreenTouch.x,touchLocation.y-lastScreenTouch.y);
+ if (panning)
+ {
+ screenDistanceMoved.x/=160;
+ screenDistanceMoved.y/=160;
+ screenDistanceMoved.x*=sceneScale;
+ screenDistanceMoved.y*=-sceneScale;
+ positionOffset.x+=screenDistanceMoved.x;
+ positionOffset.y+=screenDistanceMoved.y;
+ }
+
+ lastScreenTouch=touchLocation;
+ lastWorldTouch=worldPosition;
+ test->MouseMove(b2Vec2(lastWorldTouch.x,lastWorldTouch.y));
+
+ }
+}
+- (void) touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
+{
+ test->MouseUp(b2Vec2(lastWorldTouch.x,lastWorldTouch.y));
+}
+
+- (void) accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration
+{
+ // Only run for valid values
+ if (acceleration.y!=0 && acceleration.x!=0)
+ {
+ if (test) test->SetGravity(acceleration.x,acceleration.y);
+ }
+}
+
+@end
--- /dev/null
+/*
+ * Delegates.h
+ * Box2D
+ *
+ * Box2D iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+ *
+ *
+ */
+
+@protocol TestSelectDelegate <NSObject>
+ -(void) selectTest:(int) testIndex;
+ -(void) leaveTest;
+
+@end
\ No newline at end of file
--- /dev/null
+/*
+* Copyright (c) 2006-2007 Erin Catto http://www.gphysics.com
+*
+* iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+*
+* This software is provided 'as-is', without any express or implied
+* warranty. In no event will the authors be held liable for any damages
+* arising from the use of this software.
+* Permission is granted to anyone to use this software for any purpose,
+* including commercial applications, and to alter it and redistribute it
+* freely, subject to the following restrictions:
+* 1. The origin of this software must not be misrepresented; you must not
+* claim that you wrote the original software. If you use this software
+* in a product, an acknowledgment in the product documentation would be
+* appreciated but is not required.
+* 2. Altered source versions must be plainly marked as such, and must not be
+* misrepresented as being the original software.
+* 3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef RENDER_H
+#define RENDER_H
+
+#import <UIKit/UIKit.h>
+#import <OpenGLES/EAGL.h>
+#import <OpenGLES/ES1/gl.h>
+#import <OpenGLES/ES1/glext.h>
+
+#include <Box2D/Box2D.h>
+
+struct b2AABB;
+
+// This class implements debug drawing callbacks that are invoked
+// inside b2World::Step.
+class GLESDebugDraw : public b2DebugDraw
+{
+public:
+ void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
+
+ void DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
+
+ void DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color);
+
+ void DrawSolidCircle(const b2Vec2& center, float32 radius, const b2Vec2& axis, const b2Color& color);
+
+ void DrawSegment(const b2Vec2& p1, const b2Vec2& p2, const b2Color& color);
+
+ void DrawTransform(const b2Transform& xf);
+
+ void DrawPoint(const b2Vec2& p, float32 size, const b2Color& color);
+
+ void DrawString(int x, int y, const char* string, ...);
+
+ void DrawAABB(b2AABB* aabb, const b2Color& color);
+};
+
+
+#endif
--- /dev/null
+/*
+* Copyright (c) 2006-2007 Erin Catto http://www.gphysics.com
+*
+* iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+*
+* This software is provided 'as-is', without any express or implied
+* warranty. In no event will the authors be held liable for any damages
+* arising from the use of this software.
+* Permission is granted to anyone to use this software for any purpose,
+* including commercial applications, and to alter it and redistribute it
+* freely, subject to the following restrictions:
+* 1. The origin of this software must not be misrepresented; you must not
+* claim that you wrote the original software. If you use this software
+* in a product, an acknowledgment in the product documentation would be
+* appreciated but is not required.
+* 2. Altered source versions must be plainly marked as such, and must not be
+* misrepresented as being the original software.
+* 3. This notice may not be removed or altered from any source distribution.
+*/
+
+#include "GLES-Render.h"
+
+
+#include <cstdio>
+#include <cstdarg>
+
+#include <cstring>
+
+void GLESDebugDraw::DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color)
+{
+ glColor4f(color.r, color.g, color.b,1);
+ glVertexPointer(2, GL_FLOAT, 0, vertices);
+ glDrawArrays(GL_LINE_LOOP, 0, vertexCount);
+}
+
+void GLESDebugDraw::DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color)
+{
+ glVertexPointer(2, GL_FLOAT, 0, vertices);
+
+ glColor4f(color.r, color.g, color.b,0.5f);
+ glDrawArrays(GL_TRIANGLE_FAN, 0, vertexCount);
+
+ glColor4f(color.r, color.g, color.b,1);
+ glDrawArrays(GL_LINE_LOOP, 0, vertexCount);
+}
+
+void GLESDebugDraw::DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color)
+{
+ const float32 k_segments = 16.0f;
+ int vertexCount=16;
+ const float32 k_increment = 2.0f * b2_pi / k_segments;
+ float32 theta = 0.0f;
+
+ GLfloat glVertices[vertexCount*2];
+ for (int32 i = 0; i < k_segments; ++i)
+ {
+ b2Vec2 v = center + radius * b2Vec2(cosf(theta), sinf(theta));
+ glVertices[i*2]=v.x;
+ glVertices[i*2+1]=v.y;
+ theta += k_increment;
+ }
+
+ glColor4f(color.r, color.g, color.b,1);
+ glVertexPointer(2, GL_FLOAT, 0, glVertices);
+
+ glDrawArrays(GL_TRIANGLE_FAN, 0, vertexCount);
+}
+
+void GLESDebugDraw::DrawSolidCircle(const b2Vec2& center, float32 radius, const b2Vec2& axis, const b2Color& color)
+{
+ const float32 k_segments = 16.0f;
+ int vertexCount=16;
+ const float32 k_increment = 2.0f * b2_pi / k_segments;
+ float32 theta = 0.0f;
+
+ GLfloat glVertices[vertexCount*2];
+ for (int32 i = 0; i < k_segments; ++i)
+ {
+ b2Vec2 v = center + radius * b2Vec2(cosf(theta), sinf(theta));
+ glVertices[i*2]=v.x;
+ glVertices[i*2+1]=v.y;
+ theta += k_increment;
+ }
+
+ glColor4f(color.r, color.g, color.b,0.5f);
+ glVertexPointer(2, GL_FLOAT, 0, glVertices);
+ glDrawArrays(GL_TRIANGLE_FAN, 0, vertexCount);
+ glColor4f(color.r, color.g, color.b,1);
+ glDrawArrays(GL_LINE_LOOP, 0, vertexCount);
+
+ // Draw the axis line
+ DrawSegment(center,center+radius*axis,color);
+}
+
+void GLESDebugDraw::DrawSegment(const b2Vec2& p1, const b2Vec2& p2, const b2Color& color)
+{
+ glColor4f(color.r, color.g, color.b,1);
+ GLfloat glVertices[] = {
+ p1.x,p1.y,p2.x,p2.y
+ };
+ glVertexPointer(2, GL_FLOAT, 0, glVertices);
+ glDrawArrays(GL_LINES, 0, 2);
+}
+
+void GLESDebugDraw::DrawTransform(const b2Transform& xf)
+{
+ b2Vec2 p1 = xf.position, p2;
+ const float32 k_axisScale = 0.4f;
+
+ p2 = p1 + k_axisScale * xf.R.col1;
+ DrawSegment(p1,p2,b2Color(1,0,0));
+
+ p2 = p1 + k_axisScale * xf.R.col2;
+ DrawSegment(p1,p2,b2Color(0,1,0));
+}
+
+void GLESDebugDraw::DrawPoint(const b2Vec2& p, float32 size, const b2Color& color)
+{
+ glColor4f(color.r, color.g, color.b,1);
+ glPointSize(size);
+ GLfloat glVertices[] = {
+ p.x,p.y
+ };
+ glVertexPointer(2, GL_FLOAT, 0, glVertices);
+ glDrawArrays(GL_POINTS, 0, 1);
+ glPointSize(1.0f);
+}
+
+void GLESDebugDraw::DrawString(int x, int y, const char *string, ...)
+{
+
+ /* Unsupported as yet. Could replace with bitmap font renderer at a later date */
+}
+
+void GLESDebugDraw::DrawAABB(b2AABB* aabb, const b2Color& c)
+{
+
+ glColor4f(c.r, c.g, c.b,1);
+
+ GLfloat glVertices[] = {
+ aabb->lowerBound.x, aabb->lowerBound.y,
+ aabb->upperBound.x, aabb->lowerBound.y,
+ aabb->upperBound.x, aabb->upperBound.y,
+ aabb->lowerBound.x, aabb->upperBound.y
+ };
+ glVertexPointer(2, GL_FLOAT, 0, glVertices);
+ glDrawArrays(GL_LINE_LOOP, 0, 8);
+
+}
--- /dev/null
+//
+// TestEntriesViewController.h
+// Box2D
+//
+// Box2D iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+//
+
+#import <UIKit/UIKit.h>
+#import "iPhoneTest.h"
+#import "Delegates.h"
+
+@interface TestEntriesViewController : UITableViewController {
+ int32 testCount;
+ id<TestSelectDelegate> _delegate;
+}
+
+@property(assign) id<TestSelectDelegate> delegate;
+
+@end
--- /dev/null
+//
+// TestEntriesViewController.m
+// Box2D
+//
+// Box2D iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+//
+
+#import "TestEntriesViewController.h"
+
+
+@implementation TestEntriesViewController
+
+@synthesize delegate=_delegate;
+
+- (id)initWithStyle:(UITableViewStyle)style {
+ if ((self = [super initWithStyle:style])) {
+ testCount = 0;
+ TestEntry* e = g_testEntries;
+ while (e->createFcn)
+ {
+ ++testCount;
+ ++e;
+ }
+ }
+ return self;
+}
+
+- (void)didReceiveMemoryWarning {
+ [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
+ // Release anything that's not essential, such as cached data
+}
+
+#pragma mark Table view methods
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
+ return 1;
+}
+
+
+// Customize the number of rows in the table view.
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ return testCount;
+}
+
+
+// Customize the appearance of table view cells.
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+
+ static NSString *CellIdentifier = @"Cell";
+
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
+ }
+
+ // Set up the cell...
+ TestEntry* e = g_testEntries;
+ e+=indexPath.row;
+
+ [cell.textLabel setText:[NSString stringWithCString:e->name encoding:NSUTF8StringEncoding]];
+ return cell;
+}
+
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ [_delegate selectTest:indexPath.row];
+}
+
+- (void)dealloc {
+ [super dealloc];
+}
+
+
+@end
+
--- /dev/null
+/*
+* Copyright (c) 2006-2007 Erin Catto http://www.gphysics.com
+*
+* iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+*
+* This software is provided 'as-is', without any express or implied
+* warranty. In no event will the authors be held liable for any damages
+* arising from the use of this software.
+* Permission is granted to anyone to use this software for any purpose,
+* including commercial applications, and to alter it and redistribute it
+* freely, subject to the following restrictions:
+* 1. The origin of this software must not be misrepresented; you must not
+* claim that you wrote the original software. If you use this software
+* in a product, an acknowledgment in the product documentation would be
+* appreciated but is not required.
+* 2. Altered source versions must be plainly marked as such, and must not be
+* misrepresented as being the original software.
+* 3. This notice may not be removed or altered from any source distribution.
+*/
+
+
+
+#ifndef TEST_H
+#define TEST_H
+
+#import <UIKit/UIKit.h>
+#include <Box2D/Box2D.h>
+#include "GLES-Render.h"
+
+#include <cstdlib>
+
+class Test;
+struct Settings;
+
+typedef Test* TestCreateFcn();
+
+#define RAND_LIMIT 32767
+
+/// Random number in range [-1,1]
+inline float32 RandomFloat()
+{
+ float32 r = (float32)(rand() & (RAND_LIMIT));
+ r /= RAND_LIMIT;
+ r = 2.0f * r - 1.0f;
+ return r;
+}
+
+/// Random floating point number in range [lo, hi]
+inline float32 RandomFloat(float32 lo, float32 hi)
+{
+ float32 r = (float32)(rand() & (RAND_LIMIT));
+ r /= RAND_LIMIT;
+ r = (hi - lo) * r + lo;
+ return r;
+}
+
+/// Test settings. Some can be controlled in the GUI.
+struct Settings
+{
+ Settings() :
+ hz(60.0f),
+ velocityIterations(10),
+ positionIterations(4),
+ drawStats(0),
+ drawShapes(1),
+ drawJoints(1),
+ drawAABBs(0),
+ drawPairs(0),
+ drawContactPoints(0),
+ drawContactNormals(0),
+ drawContactForces(0),
+ drawFrictionForces(0),
+ drawCOMs(0),
+ enableWarmStarting(1),
+ enableContinuous(1),
+ pause(0),
+ singleStep(0)
+ {}
+
+ float32 hz;
+ int32 velocityIterations;
+ int32 positionIterations;
+ int32 drawShapes;
+ int32 drawJoints;
+ int32 drawAABBs;
+ int32 drawPairs;
+ int32 drawContactPoints;
+ int32 drawContactNormals;
+ int32 drawContactForces;
+ int32 drawFrictionForces;
+ int32 drawCOMs;
+ int32 drawStats;
+ int32 enableWarmStarting;
+ int32 enableContinuous;
+ int32 pause;
+ int32 singleStep;
+};
+
+struct TestEntry
+{
+ const char *name;
+ TestCreateFcn *createFcn;
+};
+
+extern TestEntry g_testEntries[];
+// This is called when a joint in the world is implicitly destroyed
+// because an attached body is destroyed. This gives us a chance to
+// nullify the mouse joint.
+class DestructionListener : public b2DestructionListener
+ {
+ public:
+ void SayGoodbye(b2Fixture* fixture) { B2_NOT_USED(fixture); }
+ void SayGoodbye(b2Joint* joint);
+
+ Test* test;
+ };
+
+const int32 k_maxContactPoints = 2048;
+
+struct ContactPoint
+{
+ b2Fixture* fixtureA;
+ b2Fixture* fixtureB;
+ b2Vec2 normal;
+ b2Vec2 position;
+ b2PointState state;
+};
+
+class Test : public b2ContactListener
+ {
+ public:
+
+ Test();
+ virtual ~Test();
+
+ void SetGravity(float x,float y);
+ void SetTextLine(int32 line) { m_textLine = line; }
+ void DrawTitle(int x, int y, const char *string);
+ virtual void Step(Settings* settings);
+ virtual void Keyboard(unsigned char key) { B2_NOT_USED(key); }
+ void ShiftMouseDown(const b2Vec2& p);
+ virtual void MouseDown(const b2Vec2& p);
+ virtual void MouseUp(const b2Vec2& p);
+ void MouseMove(const b2Vec2& p);
+ void LaunchBomb();
+ void LaunchBomb(const b2Vec2& position, const b2Vec2& velocity);
+
+ void SpawnBomb(const b2Vec2& worldPt);
+ void CompleteBombSpawn(const b2Vec2& p);
+
+ // Let derived tests know that a joint was destroyed.
+ virtual void JointDestroyed(b2Joint* joint) { B2_NOT_USED(joint); }
+
+ // Callbacks for derived classes.
+ virtual void BeginContact(b2Contact* contact) { B2_NOT_USED(contact); }
+ virtual void EndContact(b2Contact* contact) { B2_NOT_USED(contact); }
+ virtual void PreSolve(b2Contact* contact, const b2Manifold* oldManifold);
+ virtual void PostSolve(b2Contact* contact, const b2ContactImpulse* impulse)
+ {
+ B2_NOT_USED(contact);
+ B2_NOT_USED(impulse);
+ }
+
+ protected:
+ friend class DestructionListener;
+ friend class BoundaryListener;
+ friend class ContactListener;
+
+ b2Body* m_groundBody;
+ b2AABB m_worldAABB;
+ ContactPoint m_points[k_maxContactPoints];
+ int32 m_pointCount;
+ DestructionListener m_destructionListener;
+ GLESDebugDraw m_debugDraw;
+ int32 m_textLine;
+ b2World* m_world;
+ b2Body* m_bomb;
+ b2MouseJoint* m_mouseJoint;
+ b2Vec2 m_bombSpawnPoint;
+ bool m_bombSpawning;
+ b2Vec2 m_mouseWorld;
+ int32 m_stepCount;
+ };
+
+#endif
--- /dev/null
+/*
+* Copyright (c) 2006-2007 Erin Catto http://www.gphysics.com
+*
+* iPhone port by Simon Oliver - http://www.simonoliver.com - http://www.handcircus.com
+*
+* This software is provided 'as-is', without any express or implied
+* warranty. In no event will the authors be held liable for any damages
+* arising from the use of this software.
+* Permission is granted to anyone to use this software for any purpose,
+* including commercial applications, and to alter it and redistribute it
+* freely, subject to the following restrictions:
+* 1. The origin of this software must not be misrepresented; you must not
+* claim that you wrote the original software. If you use this software
+* in a product, an acknowledgment in the product documentation would be
+* appreciated but is not required.
+* 2. Altered source versions must be plainly marked as such, and must not be
+* misrepresented as being the original software.
+* 3. This notice may not be removed or altered from any source distribution.
+*/
+
+#include "iPhoneTest.h"
+#include "GLES-Render.h"
+
+#include <cstdio>
+
+void DestructionListener::SayGoodbye(b2Joint* joint)
+{
+ if (test->m_mouseJoint == joint)
+ {
+ test->m_mouseJoint = NULL;
+ }
+ else
+ {
+ test->JointDestroyed(joint);
+ }
+}
+
+Test::Test()
+: m_debugDraw()
+{
+ b2Vec2 gravity;
+ gravity.Set(0.0f, -10.0f);
+ bool doSleep = true;
+ m_world = new b2World(gravity, doSleep);
+ m_bomb = NULL;
+ m_textLine = 30;
+ m_mouseJoint = NULL;
+ m_pointCount = 0;
+
+ m_destructionListener.test = this;
+ m_world->SetDestructionListener(&m_destructionListener);
+ m_world->SetContactListener(this);
+ m_world->SetDebugDraw(&m_debugDraw);
+
+ m_bombSpawning = false;
+
+ m_stepCount = 0;
+
+ b2BodyDef bodyDef;
+ m_groundBody = m_world->CreateBody(&bodyDef);
+}
+
+Test::~Test()
+{
+ // By deleting the world, we delete the bomb, mouse joint, etc.
+ delete m_world;
+ m_world = NULL;
+
+}
+
+void Test::SetGravity( float x, float y)
+{
+ float tVectorLength=sqrt(x*x+y*y);
+ float newGravityX=9.81f*x/tVectorLength;
+ float newGravityY=9.81f*y/tVectorLength;
+ m_world->SetGravity(b2Vec2(newGravityX,newGravityY));
+}
+
+void Test::PreSolve(b2Contact* contact, const b2Manifold* oldManifold)
+{
+ const b2Manifold* manifold = contact->GetManifold();
+
+ if (manifold->pointCount == 0)
+ {
+ return;
+ }
+
+ b2Fixture* fixtureA = contact->GetFixtureA();
+ b2Fixture* fixtureB = contact->GetFixtureB();
+
+ b2PointState state1[b2_maxManifoldPoints], state2[b2_maxManifoldPoints];
+ b2GetPointStates(state1, state2, oldManifold, manifold);
+
+ b2WorldManifold worldManifold;
+ contact->GetWorldManifold(&worldManifold);
+
+ for (int32 i = 0; i < manifold->pointCount && m_pointCount < k_maxContactPoints; ++i)
+ {
+ ContactPoint* cp = m_points + m_pointCount;
+ cp->fixtureA = fixtureA;
+ cp->fixtureB = fixtureB;
+ cp->position = worldManifold.points[i];
+ cp->normal = worldManifold.normal;
+ cp->state = state2[i];
+ ++m_pointCount;
+ }
+}
+
+void Test::DrawTitle(int x, int y, const char *string)
+{
+ m_debugDraw.DrawString(x, y, string);
+}
+
+class QueryCallback : public b2QueryCallback
+ {
+ public:
+ QueryCallback(const b2Vec2& point)
+ {
+ m_point = point;
+ m_fixture = NULL;
+ }
+
+ bool ReportFixture(b2Fixture* fixture)
+ {
+ b2Body* body = fixture->GetBody();
+ if (body->GetType() == b2_dynamicBody)
+ {
+ bool inside = fixture->TestPoint(m_point);
+ if (inside)
+ {
+ m_fixture = fixture;
+
+ // We are done, terminate the query.
+ return false;
+ }
+ }
+
+ // Continue the query.
+ return true;
+ }
+
+ b2Vec2 m_point;
+ b2Fixture* m_fixture;
+ };
+
+
+void Test::MouseDown(const b2Vec2& p)
+{
+ m_mouseWorld = p;
+
+ if (m_mouseJoint != NULL)
+ {
+ return;
+ }
+
+ // Make a small box.
+ b2AABB aabb;
+ b2Vec2 d;
+ d.Set(0.001f, 0.001f);
+ aabb.lowerBound = p - d;
+ aabb.upperBound = p + d;
+
+ // Query the world for overlapping shapes.
+ QueryCallback callback(p);
+ m_world->QueryAABB(&callback, aabb);
+
+ if (callback.m_fixture)
+ {
+ b2Body* body = callback.m_fixture->GetBody();
+ b2MouseJointDef md;
+ md.bodyA = m_groundBody;
+ md.bodyB = body;
+ md.target = p;
+#ifdef TARGET_FLOAT32_IS_FIXED
+ md.maxForce = (body->GetMass() < 16.0)?
+ (1000.0f * body->GetMass()) : float32(16000.0);
+#else
+ md.maxForce = 1000.0f * body->GetMass();
+#endif
+ m_mouseJoint = (b2MouseJoint*)m_world->CreateJoint(&md);
+ body->SetAwake(true);
+ }
+}
+
+void Test::SpawnBomb(const b2Vec2& worldPt)
+{
+ m_bombSpawnPoint = worldPt;
+ m_bombSpawning = true;
+}
+
+void Test::CompleteBombSpawn(const b2Vec2& p)
+{
+ if (m_bombSpawning == false)
+ {
+ return;
+ }
+
+ const float multiplier = 30.0f;
+ b2Vec2 vel = m_bombSpawnPoint - p;
+ vel *= multiplier;
+ LaunchBomb(m_bombSpawnPoint,vel);
+ m_bombSpawning = false;
+}
+
+void Test::ShiftMouseDown(const b2Vec2& p)
+{
+ m_mouseWorld = p;
+
+ if (m_mouseJoint != NULL)
+ {
+ return;
+ }
+
+ SpawnBomb(p);
+}
+
+void Test::MouseUp(const b2Vec2& p)
+{
+ if (m_mouseJoint)
+ {
+ m_world->DestroyJoint(m_mouseJoint);
+ m_mouseJoint = NULL;
+ }
+
+ if (m_bombSpawning)
+ {
+ CompleteBombSpawn(p);
+ }
+}
+
+void Test::MouseMove(const b2Vec2& p)
+{
+ m_mouseWorld = p;
+
+ if (m_mouseJoint)
+ {
+ m_mouseJoint->SetTarget(p);
+ }
+}
+
+void Test::LaunchBomb()
+{
+ b2Vec2 p(RandomFloat(-15.0f, 15.0f), 30.0f);
+ b2Vec2 v = -5.0f * p;
+ LaunchBomb(p, v);
+}
+
+void Test::LaunchBomb(const b2Vec2& position, const b2Vec2& velocity)
+{
+ if (m_bomb)
+ {
+ m_world->DestroyBody(m_bomb);
+ m_bomb = NULL;
+ }
+
+ b2BodyDef bd;
+ bd.type = b2_dynamicBody;
+ bd.position = position;
+ bd.bullet = true;
+ m_bomb = m_world->CreateBody(&bd);
+ m_bomb->SetLinearVelocity(velocity);
+
+ b2CircleShape circle;
+ circle.m_radius = 0.3f;
+
+ b2FixtureDef fd;
+ fd.shape = &circle;
+ fd.density = 20.0f;
+ fd.restitution = 0.1f;
+
+ b2Vec2 minV = position - b2Vec2(0.3f,0.3f);
+ b2Vec2 maxV = position + b2Vec2(0.3f,0.3f);
+
+ b2AABB aabb;
+ aabb.lowerBound = minV;
+ aabb.upperBound = maxV;
+
+ m_bomb->CreateFixture(&fd);
+}
+
+void Test::Step(Settings* settings)
+{
+ float32 timeStep = settings->hz > 0.0f ? 1.0f / settings->hz : float32(0.0f);
+
+ if (settings->pause)
+ {
+ if (settings->singleStep)
+ {
+ settings->singleStep = 0;
+ }
+ else
+ {
+ timeStep = 0.0f;
+ }
+
+ m_debugDraw.DrawString(5, m_textLine, "****PAUSED****");
+ m_textLine += 15;
+ }
+
+ uint32 flags = 0;
+ flags += settings->drawShapes * b2DebugDraw::e_shapeBit;
+ flags += settings->drawJoints * b2DebugDraw::e_jointBit;
+ flags += settings->drawAABBs * b2DebugDraw::e_aabbBit;
+ flags += settings->drawPairs * b2DebugDraw::e_pairBit;
+ flags += settings->drawCOMs * b2DebugDraw::e_centerOfMassBit;
+ m_debugDraw.SetFlags(flags);
+
+ m_world->SetWarmStarting(settings->enableWarmStarting > 0);
+ m_world->SetContinuousPhysics(settings->enableContinuous > 0);
+
+ m_pointCount = 0;
+
+ m_world->Step(timeStep, settings->velocityIterations, settings->positionIterations);
+
+ m_world->DrawDebugData();
+
+ if (timeStep > 0.0f)
+ {
+ ++m_stepCount;
+ }
+
+ if (settings->drawStats)
+ {
+ m_debugDraw.DrawString(5, m_textLine, "bodies/contacts/joints/proxies = %d/%d/%d",
+ m_world->GetBodyCount(), m_world->GetContactCount(), m_world->GetJointCount(), m_world->GetProxyCount());
+ m_textLine += 15;
+
+// m_debugDraw.DrawString(5, m_textLine, "heap bytes = %d", b2_byteCount);
+// m_textLine += 15;
+ }
+
+ if (m_mouseJoint)
+ {
+// b2Body* body = m_mouseJoint->GetBodyB();
+// b2Vec2 p1 = body->GetWorldPoint(m_mouseJoint->m_localAnchor);
+// b2Vec2 p2 = m_mouseJoint->m_target;
+//
+// glPointSize(4.0f);
+// glColor3f(0.0f, 1.0f, 0.0f);
+// glBegin(GL_POINTS);
+// glVertex2f(p1.x, p1.y);
+// glVertex2f(p2.x, p2.y);
+// glEnd();
+// glPointSize(1.0f);
+//
+// glColor3f(0.8f, 0.8f, 0.8f);
+// glBegin(GL_LINES);
+// glVertex2f(p1.x, p1.y);
+// glVertex2f(p2.x, p2.y);
+// glEnd();
+ }
+
+ if (m_bombSpawning)
+ {
+// glPointSize(4.0f);
+// glColor3f(0.0f, 0.0f, 1.0f);
+// glBegin(GL_POINTS);
+// glColor3f(0.0f, 0.0f, 1.0f);
+// glVertex2f(m_bombSpawnPoint.x, m_bombSpawnPoint.y);
+// glEnd();
+//
+// glColor3f(0.8f, 0.8f, 0.8f);
+// glBegin(GL_LINES);
+// glVertex2f(m_mouseWorld.x, m_mouseWorld.y);
+// glVertex2f(m_bombSpawnPoint.x, m_bombSpawnPoint.y);
+// glEnd();
+ }
+
+ if (settings->drawContactPoints)
+ {
+ //const float32 k_impulseScale = 0.1f;
+ const float32 k_axisScale = 0.3f;
+
+ for (int32 i = 0; i < m_pointCount; ++i)
+ {
+ ContactPoint* point = m_points + i;
+
+ if (point->state == b2_addState)
+ {
+ // Add
+ m_debugDraw.DrawPoint(point->position, 10.0f, b2Color(0.3f, 0.95f, 0.3f));
+ }
+ else if (point->state == b2_persistState)
+ {
+ // Persist
+ m_debugDraw.DrawPoint(point->position, 5.0f, b2Color(0.3f, 0.3f, 0.95f));
+ }
+
+ if (settings->drawContactNormals == 1)
+ {
+ b2Vec2 p1 = point->position;
+ b2Vec2 p2 = p1 + k_axisScale * point->normal;
+ m_debugDraw.DrawSegment(p1, p2, b2Color(0.4f, 0.9f, 0.4f));
+ }
+ else if (settings->drawContactForces == 1)
+ {
+ //b2Vec2 p1 = point->position;
+ //b2Vec2 p2 = p1 + k_forceScale * point->normalForce * point->normal;
+ //DrawSegment(p1, p2, b2Color(0.9f, 0.9f, 0.3f));
+ }
+
+ if (settings->drawFrictionForces == 1)
+ {
+ //b2Vec2 tangent = b2Cross(point->normal, 1.0f);
+ //b2Vec2 p1 = point->position;
+ //b2Vec2 p2 = p1 + k_forceScale * point->tangentForce * tangent;
+ //DrawSegment(p1, p2, b2Color(0.9f, 0.9f, 0.3f));
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2006-2007 Erin Catto http://www.gphysics.com
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ */
+
+#include "iPhoneTest.h"
+//#include "GLES-Render.h"
+
+#include "ApplyForce.h"
+#include "BodyTypes.h"
+
+#include "Breakable.h"
+#include "Bridge.h"
+#include "Chain.h"
+#include "CollisionFiltering.h"
+#include "CollisionProcessing.h"
+#include "CompoundShapes.h"
+#include "Confined.h"
+#include "DistanceTest.h"
+#include "Dominos.h"
+#include "DynamicTreeTest.h"
+#include "Gears.h"
+#include "LineJoint.h"
+#include "OneSidedPlatform.h"
+#include "PolyCollision.h"
+#include "PolyShapes.h"
+#include "Prismatic.h"
+#include "Pulleys.h"
+#include "Pyramid.h"
+#include "RayCast.h"
+#include "Revolute.h"
+#include "SensorTest.h"
+#include "ShapeEditing.h"
+#include "SliderCrank.h"
+#include "SphereStack.h"
+#include "TheoJansen.h"
+#include "TimeOfImpact.h"
+#include "VaryingFriction.h"
+#include "VaryingRestitution.h"
+#include "VerticalStack.h"
+#include "Web.h"
+
+TestEntry g_testEntries[] =
+{
+{"Body Types", BodyTypes::Create},
+{"SphereStack", SphereStack::Create},
+{"Vertical Stack", VerticalStack::Create},
+{"Confined", Confined::Create},
+{"Bridge", Bridge::Create},
+{"Breakable", Breakable::Create},
+{"Varying Restitution", VaryingRestitution::Create},
+{"Ray-Cast", RayCast::Create},
+{"Pyramid", Pyramid::Create},
+{"PolyCollision", PolyCollision::Create},
+{"One-Sided Platform", OneSidedPlatform::Create},
+{"Apply Force", ApplyForce::Create},
+{"Chain", Chain::Create},
+{"Collision Filtering", CollisionFiltering::Create},
+{"Collision Processing", CollisionProcessing::Create},
+{"Compound Shapes", CompoundShapes::Create},
+{"Distance Test", DistanceTest::Create},
+{"Dominos", Dominos::Create},
+{"Dynamic Tree", DynamicTreeTest::Create},
+{"Gears", Gears::Create},
+{"Line Joint", LineJoint::Create},
+{"Polygon Shapes", PolyShapes::Create},
+{"Prismatic", Prismatic::Create},
+{"Pulleys", Pulleys::Create},
+{"Revolute", Revolute::Create},
+{"Sensor Test", SensorTest::Create},
+{"Shape Editing", ShapeEditing::Create},
+{"Slider Crank", SliderCrank::Create},
+{"Theo Jansen's Walker", TheoJansen::Create},
+{"Time of Impact", TimeOfImpact::Create},
+{"Varying Friction", VaryingFriction::Create},
+{"Web", Web::Create},
+{NULL, NULL}
+
+};
//
-// tanksAppDelegate_iPad.h
+// RootAppDelegate_iPad.h
// tanks
//
// Created by dsc on 4/27/11.
//
#import <UIKit/UIKit.h>
-#import "tanksAppDelegate.h"
+#import "RootAppDelegate.h"
-@interface tanksAppDelegate_iPad : tanksAppDelegate {
+@interface RootAppDelegate_iPad : RootAppDelegate {
}
//
-// tanksAppDelegate_iPad.m
+// RootAppDelegate_iPad.m
// tanks
//
// Created by dsc on 4/27/11.
// Copyright 2011 lttlst.com. All rights reserved.
//
-#import "tanksAppDelegate_iPad.h"
+#import "RootAppDelegate_iPad.h"
-@implementation tanksAppDelegate_iPad
+@implementation RootAppDelegate_iPad
- (void)dealloc
{
<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1024</int>
<string key="IBDocument.SystemVersion">10J869</string>
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">301</string>
</object>
- <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array key="IBDocument.IntegratedClassDependencies">
<string>IBUIWindow</string>
<string>IBUICustomObject</string>
<string>IBUILabel</string>
<string>IBUIView</string>
<string>IBProxyObject</string>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ </array>
+ <array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <reference key="dict.values" ref="0"/>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ </array>
+ <dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
+ <array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="IBProxyObject" id="841351856">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<object class="IBUIWindow" id="62075450">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array class="NSMutableArray" key="NSSubviews">
<object class="IBUILabel" id="348798989">
<reference key="NSNextResponder" ref="62075450"/>
<int key="NSvFlags">301</int>
<string key="NSFrame">{{0, 21}, {768, 1003}}</string>
<reference key="NSSuperview" ref="62075450"/>
<reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="348798989"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
- </object>
+ </array>
<string key="NSFrameSize">{768, 1024}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView" ref="348798989"/>
+ <reference key="NSNextKeyView" ref="607297697"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEAA</bytes>
<object class="IBUICustomObject" id="250404236">
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
- </object>
+ </array>
<object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="250404236"/>
<reference key="destination" ref="607297697"/>
</object>
- <int key="connectionID">13</int>
+ <int key="connectionID">14</int>
</object>
- </object>
+ </array>
<object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
- <reference key="object" ref="0"/>
+ <array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="62075450"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array class="NSMutableArray" key="children">
<reference ref="348798989"/>
<reference ref="607297697"/>
- </object>
+ </array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<reference key="object" ref="607297697"/>
<reference key="parent" ref="62075450"/>
</object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>11.IBPluginDependency</string>
- <string>12.CustomClassName</string>
- <string>12.IBPluginDependency</string>
- <string>2.IBEditorWindowLastContentRect</string>
- <string>2.IBPluginDependency</string>
- <string>6.CustomClassName</string>
- <string>6.IBPluginDependency</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>UIApplication</string>
- <string>UIResponder</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>SPView</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>{{202, 84}, {783, 772}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>tanksAppDelegate_iPad</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <reference key="dict.values" ref="0"/>
+ </array>
</object>
+ <dictionary class="NSMutableDictionary" key="flattenedProperties">
+ <string key="-1.CustomClassName">UIApplication</string>
+ <string key="-2.CustomClassName">UIResponder</string>
+ <string key="11.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="12.CustomClassName">SPView</string>
+ <string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="2.IBEditorWindowLastContentRect">{{202, 84}, {783, 772}}</string>
+ <string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="6.CustomClassName">RootAppDelegate_iPad</string>
+ <string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </dictionary>
+ <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <reference key="dict.values" ref="0"/>
- </object>
+ <dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
- <int key="maxID">13</int>
+ <int key="maxID">14</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
- <string key="className">SPView</string>
- <string key="superclassName">UIView</string>
+ <string key="className">RootAppDelegate</string>
+ <string key="superclassName">NSObject</string>
+ <dictionary class="NSMutableDictionary" key="outlets">
+ <string key="sparrowView">SPView</string>
+ <string key="window">UIWindow</string>
+ </dictionary>
+ <dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <object class="IBToOneOutletInfo" key="sparrowView">
+ <string key="name">sparrowView</string>
+ <string key="candidateClassName">SPView</string>
+ </object>
+ <object class="IBToOneOutletInfo" key="window">
+ <string key="name">window</string>
+ <string key="candidateClassName">UIWindow</string>
+ </object>
+ </dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
- <string key="minorKey">./Classes/SPView.h</string>
+ <string key="minorKey">./Classes/RootAppDelegate.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
- <string key="className">tanksAppDelegate</string>
- <string key="superclassName">NSObject</string>
- <object class="NSMutableDictionary" key="outlets">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>sparrowView</string>
- <string>window</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>SPView</string>
- <string>UIWindow</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>sparrowView</string>
- <string>window</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBToOneOutletInfo">
- <string key="name">sparrowView</string>
- <string key="candidateClassName">SPView</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">window</string>
- <string key="candidateClassName">UIWindow</string>
- </object>
- </object>
- </object>
+ <string key="className">RootAppDelegate_iPad</string>
+ <string key="superclassName">RootAppDelegate</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
- <string key="minorKey">./Classes/tanksAppDelegate.h</string>
+ <string key="minorKey">./Classes/RootAppDelegate_iPad.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
- <string key="className">tanksAppDelegate_iPad</string>
- <string key="superclassName">tanksAppDelegate</string>
+ <string key="className">SPView</string>
+ <string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
- <string key="minorKey">./Classes/tanksAppDelegate_iPad.h</string>
+ <string key="minorKey">./Classes/SPView.h</string>
</object>
</object>
- </object>
+ </array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<integer value="1024" key="NS.object.0"/>
</object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3100" key="NS.object.0"/>
- </object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">301</string>
//
-// tanksAppDelegate_iPhone.h
+// RootAppDelegate_iPhone.h
// tanks
//
// Created by dsc on 4/27/11.
//
#import <UIKit/UIKit.h>
-#import "tanksAppDelegate.h"
+#import "RootAppDelegate.h"
-@interface tanksAppDelegate_iPhone : tanksAppDelegate {
+@interface RootAppDelegate_iPhone : RootAppDelegate {
}
//
-// tanksAppDelegate_iPhone.m
+// RootAppDelegate_iPhone.m
// tanks
//
// Created by dsc on 4/27/11.
// Copyright 2011 lttlst.com. All rights reserved.
//
-#import "tanksAppDelegate_iPhone.h"
+#import "RootAppDelegate_iPhone.h"
-@implementation tanksAppDelegate_iPhone
+@implementation RootAppDelegate_iPhone
- (void)dealloc
{
<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1024</int>
<string key="IBDocument.SystemVersion">10J869</string>
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">301</string>
</object>
- <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array key="IBDocument.IntegratedClassDependencies">
<string>IBUIWindow</string>
<string>IBUICustomObject</string>
<string>IBUILabel</string>
<string>IBUIView</string>
<string>IBProxyObject</string>
- </object>
- <object class="NSArray" key="IBDocument.PluginDependencies">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ </array>
+ <array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- <object class="NSMutableDictionary" key="IBDocument.Metadata">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys" id="0">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
- <reference key="dict.values" ref="0"/>
- </object>
- <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ </array>
+ <dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
+ <array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="IBProxyObject" id="841351856">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="IBUIWindow" id="380026005">
<reference key="NSNextResponder"/>
<int key="NSvFlags">1316</int>
- <object class="NSMutableArray" key="NSSubviews">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array class="NSMutableArray" key="NSSubviews">
<object class="IBUILabel" id="723173800">
<reference key="NSNextResponder" ref="380026005"/>
<int key="NSvFlags">1325</int>
<string key="NSFrame">{{51, 229}, {218, 22}}</string>
<reference key="NSSuperview" ref="380026005"/>
<reference key="NSWindow"/>
+ <reference key="NSNextKeyView"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<int key="IBUIContentMode">7</int>
<string key="NSFrame">{{0, 21}, {320, 459}}</string>
<reference key="NSSuperview" ref="380026005"/>
<reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="723173800"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
- </object>
+ </array>
<object class="NSPSMatrix" key="NSFrameMatrix"/>
<string key="NSFrameSize">{320, 480}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="851352140"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEAA</bytes>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIResizesToFullScreen">YES</bool>
</object>
- </object>
+ </array>
<object class="IBObjectContainer" key="IBDocument.Objects">
- <object class="NSMutableArray" key="connectionRecords">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="987256611"/>
<reference key="destination" ref="851352140"/>
</object>
- <int key="connectionID">10</int>
+ <int key="connectionID">11</int>
</object>
- </object>
+ </array>
<object class="IBMutableOrderedSet" key="objectRecords">
- <object class="NSArray" key="orderedObjects">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
- <reference key="object" ref="0"/>
+ <array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="380026005"/>
- <object class="NSMutableArray" key="children">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array class="NSMutableArray" key="children">
<reference ref="723173800"/>
<reference ref="851352140"/>
- </object>
+ </array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="987256611"/>
<reference key="parent" ref="0"/>
- <string key="objectName">App Delegate</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="851352140"/>
<reference key="parent" ref="380026005"/>
</object>
- </object>
- </object>
- <object class="NSMutableDictionary" key="flattenedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>-1.CustomClassName</string>
- <string>-2.CustomClassName</string>
- <string>2.IBAttributePlaceholdersKey</string>
- <string>2.IBEditorWindowLastContentRect</string>
- <string>2.IBPluginDependency</string>
- <string>2.UIWindow.visibleAtLaunch</string>
- <string>4.CustomClassName</string>
- <string>4.IBPluginDependency</string>
- <string>8.IBPluginDependency</string>
- <string>9.CustomClassName</string>
- <string>9.IBPluginDependency</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>UIApplication</string>
- <string>UIResponder</string>
- <object class="NSMutableDictionary">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <reference key="dict.values" ref="0"/>
- </object>
- <string>{{520, 376}, {320, 480}}</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <integer value="1"/>
- <string>tanksAppDelegate_iPhone</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string>SPView</string>
- <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="unlocalizedProperties">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <reference key="dict.values" ref="0"/>
+ </array>
</object>
+ <dictionary class="NSMutableDictionary" key="flattenedProperties">
+ <string key="-1.CustomClassName">UIApplication</string>
+ <string key="-2.CustomClassName">UIResponder</string>
+ <dictionary class="NSMutableDictionary" key="2.IBAttributePlaceholdersKey"/>
+ <string key="2.IBEditorWindowLastContentRect">{{520, 376}, {320, 480}}</string>
+ <string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <integer value="1" key="2.UIWindow.visibleAtLaunch"/>
+ <string key="4.CustomClassName">RootAppDelegate_iPhone</string>
+ <string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="9.CustomClassName">SPView</string>
+ <string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </dictionary>
+ <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
- <object class="NSMutableDictionary" key="localizations">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <reference key="dict.sortedKeys" ref="0"/>
- <reference key="dict.values" ref="0"/>
- </object>
+ <dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
- <int key="maxID">10</int>
+ <int key="maxID">11</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
+ <array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
- <string key="className">SPView</string>
- <string key="superclassName">UIView</string>
+ <string key="className">RootAppDelegate</string>
+ <string key="superclassName">NSObject</string>
+ <dictionary class="NSMutableDictionary" key="outlets">
+ <string key="sparrowView">SPView</string>
+ <string key="window">UIWindow</string>
+ </dictionary>
+ <dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <object class="IBToOneOutletInfo" key="sparrowView">
+ <string key="name">sparrowView</string>
+ <string key="candidateClassName">SPView</string>
+ </object>
+ <object class="IBToOneOutletInfo" key="window">
+ <string key="name">window</string>
+ <string key="candidateClassName">UIWindow</string>
+ </object>
+ </dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
- <string key="minorKey">./Classes/SPView.h</string>
+ <string key="minorKey">./Classes/RootAppDelegate.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
- <string key="className">tanksAppDelegate</string>
- <string key="superclassName">NSObject</string>
- <object class="NSMutableDictionary" key="outlets">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>sparrowView</string>
- <string>window</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>SPView</string>
- <string>UIWindow</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>sparrowView</string>
- <string>window</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBToOneOutletInfo">
- <string key="name">sparrowView</string>
- <string key="candidateClassName">SPView</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">window</string>
- <string key="candidateClassName">UIWindow</string>
- </object>
- </object>
- </object>
+ <string key="className">RootAppDelegate_iPhone</string>
+ <string key="superclassName">RootAppDelegate</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
- <string key="minorKey">./Classes/tanksAppDelegate.h</string>
+ <string key="minorKey">./Classes/RootAppDelegate_iPhone.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
- <string key="className">tanksAppDelegate_iPhone</string>
- <string key="superclassName">tanksAppDelegate</string>
+ <string key="className">SPView</string>
+ <string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
- <string key="minorKey">./Classes/tanksAppDelegate_iPhone.h</string>
+ <string key="minorKey">./Classes/SPView.h</string>
</object>
</object>
- </object>
+ </array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<integer value="1024" key="NS.object.0"/>
</object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
- <integer value="3100" key="NS.object.0"/>
- </object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">301</string>
--- /dev/null
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 499668C713692E2D006E8125 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499668C613692E2D006E8125 /* UIKit.framework */; };
+ 499668C913692E2D006E8125 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499668C813692E2D006E8125 /* Foundation.framework */; };
+ 499668CB13692E2D006E8125 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499668CA13692E2D006E8125 /* CoreGraphics.framework */; };
+ 49966917136930E8006E8125 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49966912136930E8006E8125 /* AudioToolbox.framework */; };
+ 49966918136930E8006E8125 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49966913136930E8006E8125 /* AVFoundation.framework */; };
+ 49966919136930E8006E8125 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49966914136930E8006E8125 /* OpenAL.framework */; };
+ 4996691A136930E8006E8125 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49966915136930E8006E8125 /* OpenGLES.framework */; };
+ 4996691B136930E8006E8125 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49966916136930E8006E8125 /* QuartzCore.framework */; };
+ 49F2D99A137645BF000B6B8C /* libSparrow.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 49F2D999137645BF000B6B8C /* libSparrow.a */; };
+ 49F2D9AD1376462B000B6B8C /* libBox2D.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 49F2D9AC1376462B000B6B8C /* libBox2D.a */; };
+ 49F2D9C413764666000B6B8C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2D9B013764666000B6B8C /* main.m */; };
+ 49F2D9C513764666000B6B8C /* RootAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2D9B513764666000B6B8C /* RootAppDelegate.m */; };
+ 49F2D9C613764666000B6B8C /* Game.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2D9B813764666000B6B8C /* Game.m */; };
+ 49F2D9C713764666000B6B8C /* MainWindow_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 49F2D9BB13764666000B6B8C /* MainWindow_iPad.xib */; };
+ 49F2D9C813764666000B6B8C /* RootAppDelegate_iPad.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2D9BE13764666000B6B8C /* RootAppDelegate_iPad.m */; };
+ 49F2D9C913764666000B6B8C /* MainWindow_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 49F2D9C013764666000B6B8C /* MainWindow_iPhone.xib */; };
+ 49F2D9CA13764666000B6B8C /* RootAppDelegate_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2D9C313764666000B6B8C /* RootAppDelegate_iPhone.m */; };
+ 49F2D9CD13764710000B6B8C /* RootAppDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2D9B413764666000B6B8C /* RootAppDelegate.h */; };
+ 49F2D9CE13764710000B6B8C /* Game.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2D9B713764666000B6B8C /* Game.h */; };
+ 49F2D9CF13764710000B6B8C /* RootAppDelegate_iPad.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2D9BD13764666000B6B8C /* RootAppDelegate_iPad.h */; };
+ 49F2D9D013764710000B6B8C /* RootAppDelegate_iPhone.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2D9C213764666000B6B8C /* RootAppDelegate_iPhone.h */; };
+ 49F2D9D213764763000B6B8C /* prefix.pch in Sources */ = {isa = PBXBuildFile; fileRef = 49F2D9B213764666000B6B8C /* prefix.pch */; };
+ 49F2D9D713764A9B000B6B8C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 49F2D9D413764A9B000B6B8C /* InfoPlist.strings */; };
+ 49F2D9D813764A9B000B6B8C /* tanks-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 49F2D9D613764A9B000B6B8C /* tanks-Info.plist */; };
+ 49F2DA8213764ED6000B6B8C /* SPAVSound.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA2613764ED5000B6B8C /* SPAVSound.h */; };
+ 49F2DA8313764ED6000B6B8C /* SPAVSound.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA2713764ED5000B6B8C /* SPAVSound.m */; };
+ 49F2DA8413764ED6000B6B8C /* SPAVSoundChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA2813764ED5000B6B8C /* SPAVSoundChannel.h */; };
+ 49F2DA8513764ED6000B6B8C /* SPAVSoundChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA2913764ED5000B6B8C /* SPAVSoundChannel.m */; };
+ 49F2DA8613764ED6000B6B8C /* SPALSound.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA2A13764ED5000B6B8C /* SPALSound.h */; };
+ 49F2DA8713764ED6000B6B8C /* SPALSound.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA2B13764ED5000B6B8C /* SPALSound.m */; };
+ 49F2DA8813764ED6000B6B8C /* SPALSoundChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA2C13764ED5000B6B8C /* SPALSoundChannel.h */; };
+ 49F2DA8913764ED6000B6B8C /* SPALSoundChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA2D13764ED5000B6B8C /* SPALSoundChannel.m */; };
+ 49F2DA8A13764ED6000B6B8C /* SPAudioEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA2013764ED5000B6B8C /* SPAudioEngine.h */; };
+ 49F2DA8B13764ED6000B6B8C /* SPAudioEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA2113764ED5000B6B8C /* SPAudioEngine.m */; };
+ 49F2DA8C13764ED6000B6B8C /* SPSound.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA2213764ED5000B6B8C /* SPSound.h */; };
+ 49F2DA8D13764ED6000B6B8C /* SPSound.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA2313764ED5000B6B8C /* SPSound.m */; };
+ 49F2DA8E13764ED6000B6B8C /* SPSoundChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA2413764ED5000B6B8C /* SPSoundChannel.h */; };
+ 49F2DA8F13764ED6000B6B8C /* SPSoundChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA2513764ED5000B6B8C /* SPSoundChannel.m */; };
+ 49F2DA9013764ED6000B6B8C /* SPView.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA2E13764ED5000B6B8C /* SPView.h */; };
+ 49F2DA9113764ED6000B6B8C /* SPView.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA2F13764ED5000B6B8C /* SPView.m */; };
+ 49F2DA9213764ED6000B6B8C /* SPTouch_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA3B13764ED5000B6B8C /* SPTouch_Internal.h */; };
+ 49F2DA9313764ED6000B6B8C /* SPEvent_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA3C13764ED5000B6B8C /* SPEvent_Internal.h */; };
+ 49F2DA9413764ED6000B6B8C /* SPEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA3113764ED5000B6B8C /* SPEvent.h */; };
+ 49F2DA9513764ED6000B6B8C /* SPEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA3213764ED5000B6B8C /* SPEvent.m */; };
+ 49F2DA9613764ED6000B6B8C /* SPEventDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA3313764ED5000B6B8C /* SPEventDispatcher.h */; };
+ 49F2DA9713764ED6000B6B8C /* SPEventDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA3413764ED5000B6B8C /* SPEventDispatcher.m */; };
+ 49F2DA9813764ED6000B6B8C /* SPTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA3513764ED5000B6B8C /* SPTouch.h */; };
+ 49F2DA9913764ED6000B6B8C /* SPTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA3613764ED5000B6B8C /* SPTouch.m */; };
+ 49F2DA9A13764ED6000B6B8C /* SPTouchEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA3713764ED5000B6B8C /* SPTouchEvent.h */; };
+ 49F2DA9B13764ED6000B6B8C /* SPTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA3813764ED5000B6B8C /* SPTouchEvent.m */; };
+ 49F2DA9C13764ED6000B6B8C /* SPEnterFrameEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA3913764ED5000B6B8C /* SPEnterFrameEvent.h */; };
+ 49F2DA9D13764ED6000B6B8C /* SPEnterFrameEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA3A13764ED5000B6B8C /* SPEnterFrameEvent.m */; };
+ 49F2DA9E13764ED6000B6B8C /* SPRendering.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA5213764ED5000B6B8C /* SPRendering.m */; };
+ 49F2DA9F13764ED6000B6B8C /* SPRenderSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA5313764ED5000B6B8C /* SPRenderSupport.h */; };
+ 49F2DAA013764ED6000B6B8C /* SPRenderSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA5413764ED5000B6B8C /* SPRenderSupport.m */; };
+ 49F2DAA113764ED6000B6B8C /* SPTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA5513764ED5000B6B8C /* SPTextField.h */; };
+ 49F2DAA213764ED6000B6B8C /* SPTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA5613764ED5000B6B8C /* SPTextField.m */; };
+ 49F2DAA313764ED6000B6B8C /* SPBitmapFont.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA5713764ED5000B6B8C /* SPBitmapFont.h */; };
+ 49F2DAA413764ED6000B6B8C /* SPBitmapFont.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA5813764ED5000B6B8C /* SPBitmapFont.m */; };
+ 49F2DAA513764ED6000B6B8C /* SPBitmapChar.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA5913764ED5000B6B8C /* SPBitmapChar.h */; };
+ 49F2DAA613764ED6000B6B8C /* SPBitmapChar.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA5A13764ED5000B6B8C /* SPBitmapChar.m */; };
+ 49F2DAA713764ED6000B6B8C /* SPTouchProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA5B13764ED5000B6B8C /* SPTouchProcessor.h */; };
+ 49F2DAA813764ED6000B6B8C /* SPTouchProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA5C13764ED5000B6B8C /* SPTouchProcessor.m */; };
+ 49F2DAA913764ED6000B6B8C /* SPDisplayObject_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA5D13764ED5000B6B8C /* SPDisplayObject_Internal.h */; };
+ 49F2DAAA13764ED6000B6B8C /* SPStage_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA5E13764ED5000B6B8C /* SPStage_Internal.h */; };
+ 49F2DAAB13764ED6000B6B8C /* SPDisplayObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA4013764ED5000B6B8C /* SPDisplayObject.h */; };
+ 49F2DAAC13764ED6000B6B8C /* SPDisplayObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA4113764ED5000B6B8C /* SPDisplayObject.m */; };
+ 49F2DAAD13764ED6000B6B8C /* SPDisplayObjectContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA4213764ED5000B6B8C /* SPDisplayObjectContainer.h */; };
+ 49F2DAAE13764ED6000B6B8C /* SPDisplayObjectContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA4313764ED5000B6B8C /* SPDisplayObjectContainer.m */; };
+ 49F2DAAF13764ED6000B6B8C /* SPSprite.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA4413764ED5000B6B8C /* SPSprite.h */; };
+ 49F2DAB013764ED6000B6B8C /* SPSprite.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA4513764ED5000B6B8C /* SPSprite.m */; };
+ 49F2DAB113764ED6000B6B8C /* SPStage.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA4613764ED5000B6B8C /* SPStage.h */; };
+ 49F2DAB213764ED6000B6B8C /* SPStage.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA4713764ED5000B6B8C /* SPStage.m */; };
+ 49F2DAB313764ED6000B6B8C /* SPQuad.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA4813764ED5000B6B8C /* SPQuad.h */; };
+ 49F2DAB413764ED6000B6B8C /* SPQuad.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA4913764ED5000B6B8C /* SPQuad.m */; };
+ 49F2DAB513764ED6000B6B8C /* SPImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA4A13764ED5000B6B8C /* SPImage.h */; };
+ 49F2DAB613764ED6000B6B8C /* SPImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA4B13764ED5000B6B8C /* SPImage.m */; };
+ 49F2DAB713764ED6000B6B8C /* SPButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA4C13764ED5000B6B8C /* SPButton.h */; };
+ 49F2DAB813764ED6000B6B8C /* SPButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA4D13764ED5000B6B8C /* SPButton.m */; };
+ 49F2DAB913764ED6000B6B8C /* SPMovieClip.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA4E13764ED5000B6B8C /* SPMovieClip.h */; };
+ 49F2DABA13764ED6000B6B8C /* SPMovieClip.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA4F13764ED5000B6B8C /* SPMovieClip.m */; };
+ 49F2DABB13764ED6000B6B8C /* SPCompiledSprite.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA5013764ED5000B6B8C /* SPCompiledSprite.h */; };
+ 49F2DABC13764ED6000B6B8C /* SPCompiledSprite.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA5113764ED5000B6B8C /* SPCompiledSprite.m */; };
+ 49F2DABD13764ED6000B6B8C /* SPTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA5F13764ED5000B6B8C /* SPTexture.h */; };
+ 49F2DABE13764ED6000B6B8C /* SPTexture.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA6013764ED5000B6B8C /* SPTexture.m */; };
+ 49F2DABF13764ED6000B6B8C /* SPGLTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA6113764ED5000B6B8C /* SPGLTexture.h */; };
+ 49F2DAC013764ED6000B6B8C /* SPGLTexture.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA6213764ED5000B6B8C /* SPGLTexture.m */; };
+ 49F2DAC113764ED6000B6B8C /* SPSubTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA6313764ED5000B6B8C /* SPSubTexture.h */; };
+ 49F2DAC213764ED6000B6B8C /* SPSubTexture.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA6413764ED5000B6B8C /* SPSubTexture.m */; };
+ 49F2DAC313764ED6000B6B8C /* SPRenderTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA6513764ED5000B6B8C /* SPRenderTexture.h */; };
+ 49F2DAC413764ED6000B6B8C /* SPRenderTexture.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA6613764ED5000B6B8C /* SPRenderTexture.m */; };
+ 49F2DAC513764ED6000B6B8C /* SPTextureAtlas.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA6713764ED5000B6B8C /* SPTextureAtlas.h */; };
+ 49F2DAC613764ED6000B6B8C /* SPTextureAtlas.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA6813764ED5000B6B8C /* SPTextureAtlas.m */; };
+ 49F2DAC713764ED6000B6B8C /* SPTweenedProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA7313764ED5000B6B8C /* SPTweenedProperty.h */; };
+ 49F2DAC813764ED6000B6B8C /* SPTweenedProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA7413764ED5000B6B8C /* SPTweenedProperty.m */; };
+ 49F2DAC913764ED6000B6B8C /* SPAnimatable.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA6A13764ED5000B6B8C /* SPAnimatable.h */; };
+ 49F2DACA13764ED6000B6B8C /* SPJuggler.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA6B13764ED5000B6B8C /* SPJuggler.h */; };
+ 49F2DACB13764ED6000B6B8C /* SPJuggler.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA6C13764ED5000B6B8C /* SPJuggler.m */; };
+ 49F2DACC13764ED6000B6B8C /* SPTransitions.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA6D13764ED5000B6B8C /* SPTransitions.h */; };
+ 49F2DACD13764ED6000B6B8C /* SPTransitions.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA6E13764ED5000B6B8C /* SPTransitions.m */; };
+ 49F2DACE13764ED6000B6B8C /* SPTween.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA6F13764ED5000B6B8C /* SPTween.h */; };
+ 49F2DACF13764ED6000B6B8C /* SPTween.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA7013764ED5000B6B8C /* SPTween.m */; };
+ 49F2DAD013764ED6000B6B8C /* SPDelayedInvocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA7113764ED5000B6B8C /* SPDelayedInvocation.h */; };
+ 49F2DAD113764ED6000B6B8C /* SPDelayedInvocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA7213764ED5000B6B8C /* SPDelayedInvocation.m */; };
+ 49F2DAD213764ED6000B6B8C /* SPMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA7513764ED6000B6B8C /* SPMacros.h */; };
+ 49F2DAD313764ED6000B6B8C /* SPMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA7613764ED6000B6B8C /* SPMatrix.h */; };
+ 49F2DAD413764ED6000B6B8C /* SPMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA7713764ED6000B6B8C /* SPMatrix.m */; };
+ 49F2DAD513764ED6000B6B8C /* SPPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA7813764ED6000B6B8C /* SPPoint.h */; };
+ 49F2DAD613764ED6000B6B8C /* SPPoint.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA7913764ED6000B6B8C /* SPPoint.m */; };
+ 49F2DAD713764ED6000B6B8C /* SPRectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA7A13764ED6000B6B8C /* SPRectangle.h */; };
+ 49F2DAD813764ED6000B6B8C /* SPRectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA7B13764ED6000B6B8C /* SPRectangle.m */; };
+ 49F2DAD913764ED6000B6B8C /* SPNSExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA7C13764ED6000B6B8C /* SPNSExtensions.h */; };
+ 49F2DADA13764ED6000B6B8C /* SPNSExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA7D13764ED6000B6B8C /* SPNSExtensions.m */; };
+ 49F2DADB13764ED6000B6B8C /* SPPoolObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA7E13764ED6000B6B8C /* SPPoolObject.h */; };
+ 49F2DADC13764ED6000B6B8C /* SPPoolObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA7F13764ED6000B6B8C /* SPPoolObject.m */; };
+ 49F2DADD13764ED6000B6B8C /* SPUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA8013764ED6000B6B8C /* SPUtils.h */; };
+ 49F2DADE13764ED6000B6B8C /* SPUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DA8113764ED6000B6B8C /* SPUtils.m */; };
+ 49F2DADF13764ED6000B6B8C /* Sparrow.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DA1D13764ED5000B6B8C /* Sparrow.h */; };
+ 49F2DAF213765004000B6B8C /* GLES-Render.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F2DAE613765004000B6B8C /* GLES-Render.h */; };
+ 49F2DAF313765004000B6B8C /* GLES-Render.mm in Sources */ = {isa = PBXBuildFile; fileRef = 49F2DAE713765004000B6B8C /* GLES-Render.mm */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 49F2D9A2137645E0000B6B8C /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 49F2D99B137645DF000B6B8C /* box2d-ios.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 4913305F1372610400DFB46D;
+ remoteInfo = Box2D;
+ };
+ 49F2D9AA13764624000B6B8C /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 49F2D99B137645DF000B6B8C /* box2d-ios.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = 4913305E1372610400DFB46D;
+ remoteInfo = Box2D;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 499668C213692E2D006E8125 /* Tanks.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tanks.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 499668C613692E2D006E8125 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ 499668C813692E2D006E8125 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 499668CA13692E2D006E8125 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ 49966912136930E8006E8125 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+ 49966913136930E8006E8125 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
+ 49966914136930E8006E8125 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
+ 49966915136930E8006E8125 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
+ 49966916136930E8006E8125 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+ 49F2D999137645BF000B6B8C /* libSparrow.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libSparrow.a; sourceTree = SOURCE_ROOT; };
+ 49F2D99B137645DF000B6B8C /* box2d-ios.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "box2d-ios.xcodeproj"; path = "libs/box2d/box2d-ios.xcodeproj"; sourceTree = "<group>"; };
+ 49F2D9AC1376462B000B6B8C /* libBox2D.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libBox2D.a; sourceTree = SOURCE_ROOT; };
+ 49F2D9B013764666000B6B8C /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ 49F2D9B213764666000B6B8C /* prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = prefix.pch; sourceTree = "<group>"; };
+ 49F2D9B413764666000B6B8C /* RootAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootAppDelegate.h; sourceTree = "<group>"; };
+ 49F2D9B513764666000B6B8C /* RootAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootAppDelegate.m; sourceTree = "<group>"; };
+ 49F2D9B713764666000B6B8C /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Game.h; sourceTree = "<group>"; };
+ 49F2D9B813764666000B6B8C /* Game.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Game.m; sourceTree = "<group>"; };
+ 49F2D9BC13764666000B6B8C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow_iPad.xib; sourceTree = "<group>"; };
+ 49F2D9BD13764666000B6B8C /* RootAppDelegate_iPad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootAppDelegate_iPad.h; sourceTree = "<group>"; };
+ 49F2D9BE13764666000B6B8C /* RootAppDelegate_iPad.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootAppDelegate_iPad.m; sourceTree = "<group>"; };
+ 49F2D9C113764666000B6B8C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow_iPhone.xib; sourceTree = "<group>"; };
+ 49F2D9C213764666000B6B8C /* RootAppDelegate_iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootAppDelegate_iPhone.h; sourceTree = "<group>"; };
+ 49F2D9C313764666000B6B8C /* RootAppDelegate_iPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootAppDelegate_iPhone.m; sourceTree = "<group>"; };
+ 49F2D9D513764A9B000B6B8C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 49F2D9D613764A9B000B6B8C /* tanks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "tanks-Info.plist"; sourceTree = "<group>"; };
+ 49F2DA1D13764ED5000B6B8C /* Sparrow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sparrow.h; sourceTree = "<group>"; };
+ 49F2DA2013764ED5000B6B8C /* SPAudioEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPAudioEngine.h; sourceTree = "<group>"; };
+ 49F2DA2113764ED5000B6B8C /* SPAudioEngine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPAudioEngine.m; sourceTree = "<group>"; };
+ 49F2DA2213764ED5000B6B8C /* SPSound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPSound.h; sourceTree = "<group>"; };
+ 49F2DA2313764ED5000B6B8C /* SPSound.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPSound.m; sourceTree = "<group>"; };
+ 49F2DA2413764ED5000B6B8C /* SPSoundChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPSoundChannel.h; sourceTree = "<group>"; };
+ 49F2DA2513764ED5000B6B8C /* SPSoundChannel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPSoundChannel.m; sourceTree = "<group>"; };
+ 49F2DA2613764ED5000B6B8C /* SPAVSound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPAVSound.h; sourceTree = "<group>"; };
+ 49F2DA2713764ED5000B6B8C /* SPAVSound.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPAVSound.m; sourceTree = "<group>"; };
+ 49F2DA2813764ED5000B6B8C /* SPAVSoundChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPAVSoundChannel.h; sourceTree = "<group>"; };
+ 49F2DA2913764ED5000B6B8C /* SPAVSoundChannel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPAVSoundChannel.m; sourceTree = "<group>"; };
+ 49F2DA2A13764ED5000B6B8C /* SPALSound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPALSound.h; sourceTree = "<group>"; };
+ 49F2DA2B13764ED5000B6B8C /* SPALSound.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPALSound.m; sourceTree = "<group>"; };
+ 49F2DA2C13764ED5000B6B8C /* SPALSoundChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPALSoundChannel.h; sourceTree = "<group>"; };
+ 49F2DA2D13764ED5000B6B8C /* SPALSoundChannel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPALSoundChannel.m; sourceTree = "<group>"; };
+ 49F2DA2E13764ED5000B6B8C /* SPView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPView.h; sourceTree = "<group>"; };
+ 49F2DA2F13764ED5000B6B8C /* SPView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPView.m; sourceTree = "<group>"; };
+ 49F2DA3113764ED5000B6B8C /* SPEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPEvent.h; sourceTree = "<group>"; };
+ 49F2DA3213764ED5000B6B8C /* SPEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPEvent.m; sourceTree = "<group>"; };
+ 49F2DA3313764ED5000B6B8C /* SPEventDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPEventDispatcher.h; sourceTree = "<group>"; };
+ 49F2DA3413764ED5000B6B8C /* SPEventDispatcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPEventDispatcher.m; sourceTree = "<group>"; };
+ 49F2DA3513764ED5000B6B8C /* SPTouch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTouch.h; sourceTree = "<group>"; };
+ 49F2DA3613764ED5000B6B8C /* SPTouch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTouch.m; sourceTree = "<group>"; };
+ 49F2DA3713764ED5000B6B8C /* SPTouchEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTouchEvent.h; sourceTree = "<group>"; };
+ 49F2DA3813764ED5000B6B8C /* SPTouchEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTouchEvent.m; sourceTree = "<group>"; };
+ 49F2DA3913764ED5000B6B8C /* SPEnterFrameEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPEnterFrameEvent.h; sourceTree = "<group>"; };
+ 49F2DA3A13764ED5000B6B8C /* SPEnterFrameEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPEnterFrameEvent.m; sourceTree = "<group>"; };
+ 49F2DA3B13764ED5000B6B8C /* SPTouch_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTouch_Internal.h; sourceTree = "<group>"; };
+ 49F2DA3C13764ED5000B6B8C /* SPEvent_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPEvent_Internal.h; sourceTree = "<group>"; };
+ 49F2DA4013764ED5000B6B8C /* SPDisplayObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPDisplayObject.h; sourceTree = "<group>"; };
+ 49F2DA4113764ED5000B6B8C /* SPDisplayObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPDisplayObject.m; sourceTree = "<group>"; };
+ 49F2DA4213764ED5000B6B8C /* SPDisplayObjectContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPDisplayObjectContainer.h; sourceTree = "<group>"; };
+ 49F2DA4313764ED5000B6B8C /* SPDisplayObjectContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPDisplayObjectContainer.m; sourceTree = "<group>"; };
+ 49F2DA4413764ED5000B6B8C /* SPSprite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPSprite.h; sourceTree = "<group>"; };
+ 49F2DA4513764ED5000B6B8C /* SPSprite.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPSprite.m; sourceTree = "<group>"; };
+ 49F2DA4613764ED5000B6B8C /* SPStage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPStage.h; sourceTree = "<group>"; };
+ 49F2DA4713764ED5000B6B8C /* SPStage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPStage.m; sourceTree = "<group>"; };
+ 49F2DA4813764ED5000B6B8C /* SPQuad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPQuad.h; sourceTree = "<group>"; };
+ 49F2DA4913764ED5000B6B8C /* SPQuad.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPQuad.m; sourceTree = "<group>"; };
+ 49F2DA4A13764ED5000B6B8C /* SPImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPImage.h; sourceTree = "<group>"; };
+ 49F2DA4B13764ED5000B6B8C /* SPImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPImage.m; sourceTree = "<group>"; };
+ 49F2DA4C13764ED5000B6B8C /* SPButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPButton.h; sourceTree = "<group>"; };
+ 49F2DA4D13764ED5000B6B8C /* SPButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPButton.m; sourceTree = "<group>"; };
+ 49F2DA4E13764ED5000B6B8C /* SPMovieClip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPMovieClip.h; sourceTree = "<group>"; };
+ 49F2DA4F13764ED5000B6B8C /* SPMovieClip.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPMovieClip.m; sourceTree = "<group>"; };
+ 49F2DA5013764ED5000B6B8C /* SPCompiledSprite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPCompiledSprite.h; sourceTree = "<group>"; };
+ 49F2DA5113764ED5000B6B8C /* SPCompiledSprite.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPCompiledSprite.m; sourceTree = "<group>"; };
+ 49F2DA5213764ED5000B6B8C /* SPRendering.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPRendering.m; sourceTree = "<group>"; };
+ 49F2DA5313764ED5000B6B8C /* SPRenderSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPRenderSupport.h; sourceTree = "<group>"; };
+ 49F2DA5413764ED5000B6B8C /* SPRenderSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPRenderSupport.m; sourceTree = "<group>"; };
+ 49F2DA5513764ED5000B6B8C /* SPTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTextField.h; sourceTree = "<group>"; };
+ 49F2DA5613764ED5000B6B8C /* SPTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTextField.m; sourceTree = "<group>"; };
+ 49F2DA5713764ED5000B6B8C /* SPBitmapFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPBitmapFont.h; sourceTree = "<group>"; };
+ 49F2DA5813764ED5000B6B8C /* SPBitmapFont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPBitmapFont.m; sourceTree = "<group>"; };
+ 49F2DA5913764ED5000B6B8C /* SPBitmapChar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPBitmapChar.h; sourceTree = "<group>"; };
+ 49F2DA5A13764ED5000B6B8C /* SPBitmapChar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPBitmapChar.m; sourceTree = "<group>"; };
+ 49F2DA5B13764ED5000B6B8C /* SPTouchProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTouchProcessor.h; sourceTree = "<group>"; };
+ 49F2DA5C13764ED5000B6B8C /* SPTouchProcessor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTouchProcessor.m; sourceTree = "<group>"; };
+ 49F2DA5D13764ED5000B6B8C /* SPDisplayObject_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPDisplayObject_Internal.h; sourceTree = "<group>"; };
+ 49F2DA5E13764ED5000B6B8C /* SPStage_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPStage_Internal.h; sourceTree = "<group>"; };
+ 49F2DA5F13764ED5000B6B8C /* SPTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTexture.h; sourceTree = "<group>"; };
+ 49F2DA6013764ED5000B6B8C /* SPTexture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTexture.m; sourceTree = "<group>"; };
+ 49F2DA6113764ED5000B6B8C /* SPGLTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPGLTexture.h; sourceTree = "<group>"; };
+ 49F2DA6213764ED5000B6B8C /* SPGLTexture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPGLTexture.m; sourceTree = "<group>"; };
+ 49F2DA6313764ED5000B6B8C /* SPSubTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPSubTexture.h; sourceTree = "<group>"; };
+ 49F2DA6413764ED5000B6B8C /* SPSubTexture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPSubTexture.m; sourceTree = "<group>"; };
+ 49F2DA6513764ED5000B6B8C /* SPRenderTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPRenderTexture.h; sourceTree = "<group>"; };
+ 49F2DA6613764ED5000B6B8C /* SPRenderTexture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPRenderTexture.m; sourceTree = "<group>"; };
+ 49F2DA6713764ED5000B6B8C /* SPTextureAtlas.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTextureAtlas.h; sourceTree = "<group>"; };
+ 49F2DA6813764ED5000B6B8C /* SPTextureAtlas.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTextureAtlas.m; sourceTree = "<group>"; };
+ 49F2DA6A13764ED5000B6B8C /* SPAnimatable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPAnimatable.h; sourceTree = "<group>"; };
+ 49F2DA6B13764ED5000B6B8C /* SPJuggler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPJuggler.h; sourceTree = "<group>"; };
+ 49F2DA6C13764ED5000B6B8C /* SPJuggler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPJuggler.m; sourceTree = "<group>"; };
+ 49F2DA6D13764ED5000B6B8C /* SPTransitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTransitions.h; sourceTree = "<group>"; };
+ 49F2DA6E13764ED5000B6B8C /* SPTransitions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTransitions.m; sourceTree = "<group>"; };
+ 49F2DA6F13764ED5000B6B8C /* SPTween.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTween.h; sourceTree = "<group>"; };
+ 49F2DA7013764ED5000B6B8C /* SPTween.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTween.m; sourceTree = "<group>"; };
+ 49F2DA7113764ED5000B6B8C /* SPDelayedInvocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPDelayedInvocation.h; sourceTree = "<group>"; };
+ 49F2DA7213764ED5000B6B8C /* SPDelayedInvocation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPDelayedInvocation.m; sourceTree = "<group>"; };
+ 49F2DA7313764ED5000B6B8C /* SPTweenedProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPTweenedProperty.h; sourceTree = "<group>"; };
+ 49F2DA7413764ED5000B6B8C /* SPTweenedProperty.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPTweenedProperty.m; sourceTree = "<group>"; };
+ 49F2DA7513764ED6000B6B8C /* SPMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPMacros.h; sourceTree = "<group>"; };
+ 49F2DA7613764ED6000B6B8C /* SPMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPMatrix.h; sourceTree = "<group>"; };
+ 49F2DA7713764ED6000B6B8C /* SPMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPMatrix.m; sourceTree = "<group>"; };
+ 49F2DA7813764ED6000B6B8C /* SPPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPPoint.h; sourceTree = "<group>"; };
+ 49F2DA7913764ED6000B6B8C /* SPPoint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPPoint.m; sourceTree = "<group>"; };
+ 49F2DA7A13764ED6000B6B8C /* SPRectangle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPRectangle.h; sourceTree = "<group>"; };
+ 49F2DA7B13764ED6000B6B8C /* SPRectangle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPRectangle.m; sourceTree = "<group>"; };
+ 49F2DA7C13764ED6000B6B8C /* SPNSExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPNSExtensions.h; sourceTree = "<group>"; };
+ 49F2DA7D13764ED6000B6B8C /* SPNSExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPNSExtensions.m; sourceTree = "<group>"; };
+ 49F2DA7E13764ED6000B6B8C /* SPPoolObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPPoolObject.h; sourceTree = "<group>"; };
+ 49F2DA7F13764ED6000B6B8C /* SPPoolObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPPoolObject.m; sourceTree = "<group>"; };
+ 49F2DA8013764ED6000B6B8C /* SPUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPUtils.h; sourceTree = "<group>"; };
+ 49F2DA8113764ED6000B6B8C /* SPUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPUtils.m; sourceTree = "<group>"; };
+ 49F2DAE113765004000B6B8C /* Box2DAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Box2DAppDelegate.h; sourceTree = "<group>"; };
+ 49F2DAE213765004000B6B8C /* Box2DAppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Box2DAppDelegate.mm; sourceTree = "<group>"; };
+ 49F2DAE313765004000B6B8C /* Box2DView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Box2DView.h; sourceTree = "<group>"; };
+ 49F2DAE413765004000B6B8C /* Box2DView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Box2DView.mm; sourceTree = "<group>"; };
+ 49F2DAE513765004000B6B8C /* Delegates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Delegates.h; sourceTree = "<group>"; };
+ 49F2DAE613765004000B6B8C /* GLES-Render.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GLES-Render.h"; sourceTree = "<group>"; };
+ 49F2DAE713765004000B6B8C /* GLES-Render.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "GLES-Render.mm"; sourceTree = "<group>"; };
+ 49F2DAE813765004000B6B8C /* iPhoneTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhoneTest.h; sourceTree = "<group>"; };
+ 49F2DAE913765004000B6B8C /* iPhoneTest.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = iPhoneTest.mm; sourceTree = "<group>"; };
+ 49F2DAEA13765004000B6B8C /* iPhoneTestEntries.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = iPhoneTestEntries.mm; sourceTree = "<group>"; };
+ 49F2DAEB13765004000B6B8C /* TestEntriesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestEntriesViewController.h; sourceTree = "<group>"; };
+ 49F2DAEC13765004000B6B8C /* TestEntriesViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TestEntriesViewController.mm; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 499668BF13692E2D006E8125 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 49F2D9AD1376462B000B6B8C /* libBox2D.a in Frameworks */,
+ 49F2D99A137645BF000B6B8C /* libSparrow.a in Frameworks */,
+ 49966917136930E8006E8125 /* AudioToolbox.framework in Frameworks */,
+ 49966918136930E8006E8125 /* AVFoundation.framework in Frameworks */,
+ 49966919136930E8006E8125 /* OpenAL.framework in Frameworks */,
+ 4996691A136930E8006E8125 /* OpenGLES.framework in Frameworks */,
+ 4996691B136930E8006E8125 /* QuartzCore.framework in Frameworks */,
+ 499668C713692E2D006E8125 /* UIKit.framework in Frameworks */,
+ 499668C913692E2D006E8125 /* Foundation.framework in Frameworks */,
+ 499668CB13692E2D006E8125 /* CoreGraphics.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 499668B713692E2D006E8125 = {
+ isa = PBXGroup;
+ children = (
+ 49F2D9D313764A9B000B6B8C /* etc */,
+ 49F2D9AE13764666000B6B8C /* src */,
+ 49F2DAE013764EDF000B6B8C /* libs */,
+ 499668C513692E2D006E8125 /* Frameworks */,
+ 499668C313692E2D006E8125 /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ 499668C313692E2D006E8125 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 499668C213692E2D006E8125 /* Tanks.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 499668C513692E2D006E8125 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2D999137645BF000B6B8C /* libSparrow.a */,
+ 49F2D9AC1376462B000B6B8C /* libBox2D.a */,
+ 49F2D99B137645DF000B6B8C /* box2d-ios.xcodeproj */,
+ 49966912136930E8006E8125 /* AudioToolbox.framework */,
+ 49966913136930E8006E8125 /* AVFoundation.framework */,
+ 49966914136930E8006E8125 /* OpenAL.framework */,
+ 49966915136930E8006E8125 /* OpenGLES.framework */,
+ 49966916136930E8006E8125 /* QuartzCore.framework */,
+ 499668C613692E2D006E8125 /* UIKit.framework */,
+ 499668C813692E2D006E8125 /* Foundation.framework */,
+ 499668CA13692E2D006E8125 /* CoreGraphics.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 49F2D99C137645DF000B6B8C /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2D9A3137645E0000B6B8C /* libBox2D.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 49F2D9AE13764666000B6B8C /* src */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2D9AF13764666000B6B8C /* display */,
+ 49F2D9B013764666000B6B8C /* main.m */,
+ 49F2D9B113764666000B6B8C /* physics */,
+ 49F2D9B213764666000B6B8C /* prefix.pch */,
+ 49F2D9B313764666000B6B8C /* render */,
+ 49F2D9B413764666000B6B8C /* RootAppDelegate.h */,
+ 49F2D9B513764666000B6B8C /* RootAppDelegate.m */,
+ 49F2D9B613764666000B6B8C /* tanks */,
+ 49F2D9B913764666000B6B8C /* ui */,
+ );
+ path = src;
+ sourceTree = "<group>";
+ };
+ 49F2D9AF13764666000B6B8C /* display */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ path = display;
+ sourceTree = "<group>";
+ };
+ 49F2D9B113764666000B6B8C /* physics */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ path = physics;
+ sourceTree = "<group>";
+ };
+ 49F2D9B313764666000B6B8C /* render */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DAE113765004000B6B8C /* Box2DAppDelegate.h */,
+ 49F2DAE213765004000B6B8C /* Box2DAppDelegate.mm */,
+ 49F2DAE313765004000B6B8C /* Box2DView.h */,
+ 49F2DAE413765004000B6B8C /* Box2DView.mm */,
+ 49F2DAE513765004000B6B8C /* Delegates.h */,
+ 49F2DAE613765004000B6B8C /* GLES-Render.h */,
+ 49F2DAE713765004000B6B8C /* GLES-Render.mm */,
+ 49F2DAE813765004000B6B8C /* iPhoneTest.h */,
+ 49F2DAE913765004000B6B8C /* iPhoneTest.mm */,
+ 49F2DAEA13765004000B6B8C /* iPhoneTestEntries.mm */,
+ 49F2DAEB13765004000B6B8C /* TestEntriesViewController.h */,
+ 49F2DAEC13765004000B6B8C /* TestEntriesViewController.mm */,
+ );
+ path = render;
+ sourceTree = "<group>";
+ };
+ 49F2D9B613764666000B6B8C /* tanks */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2D9B713764666000B6B8C /* Game.h */,
+ 49F2D9B813764666000B6B8C /* Game.m */,
+ );
+ path = tanks;
+ sourceTree = "<group>";
+ };
+ 49F2D9B913764666000B6B8C /* ui */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2D9BA13764666000B6B8C /* iPad */,
+ 49F2D9BF13764666000B6B8C /* iPhone */,
+ );
+ path = ui;
+ sourceTree = "<group>";
+ };
+ 49F2D9BA13764666000B6B8C /* iPad */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2D9BB13764666000B6B8C /* MainWindow_iPad.xib */,
+ 49F2D9BD13764666000B6B8C /* RootAppDelegate_iPad.h */,
+ 49F2D9BE13764666000B6B8C /* RootAppDelegate_iPad.m */,
+ );
+ path = iPad;
+ sourceTree = "<group>";
+ };
+ 49F2D9BF13764666000B6B8C /* iPhone */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2D9C013764666000B6B8C /* MainWindow_iPhone.xib */,
+ 49F2D9C213764666000B6B8C /* RootAppDelegate_iPhone.h */,
+ 49F2D9C313764666000B6B8C /* RootAppDelegate_iPhone.m */,
+ );
+ path = iPhone;
+ sourceTree = "<group>";
+ };
+ 49F2D9D313764A9B000B6B8C /* etc */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2D9D413764A9B000B6B8C /* InfoPlist.strings */,
+ 49F2D9D613764A9B000B6B8C /* tanks-Info.plist */,
+ );
+ path = etc;
+ sourceTree = "<group>";
+ };
+ 49F2DA1513764ED5000B6B8C /* Sparrow */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA1613764ED5000B6B8C /* Audio */,
+ 49F2DA1713764ED5000B6B8C /* System */,
+ 49F2DA1813764ED5000B6B8C /* Events */,
+ 49F2DA1913764ED5000B6B8C /* Display */,
+ 49F2DA1A13764ED5000B6B8C /* Textures */,
+ 49F2DA1B13764ED5000B6B8C /* Animation */,
+ 49F2DA1C13764ED5000B6B8C /* Utils */,
+ 49F2DA1D13764ED5000B6B8C /* Sparrow.h */,
+ );
+ name = Sparrow;
+ path = libs/sparrow/src/Classes;
+ sourceTree = "<group>";
+ };
+ 49F2DA1613764ED5000B6B8C /* Audio */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA1E13764ED5000B6B8C /* AVFoundation */,
+ 49F2DA1F13764ED5000B6B8C /* OpenAL */,
+ 49F2DA2013764ED5000B6B8C /* SPAudioEngine.h */,
+ 49F2DA2113764ED5000B6B8C /* SPAudioEngine.m */,
+ 49F2DA2213764ED5000B6B8C /* SPSound.h */,
+ 49F2DA2313764ED5000B6B8C /* SPSound.m */,
+ 49F2DA2413764ED5000B6B8C /* SPSoundChannel.h */,
+ 49F2DA2513764ED5000B6B8C /* SPSoundChannel.m */,
+ );
+ name = Audio;
+ sourceTree = "<group>";
+ };
+ 49F2DA1713764ED5000B6B8C /* System */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA2E13764ED5000B6B8C /* SPView.h */,
+ 49F2DA2F13764ED5000B6B8C /* SPView.m */,
+ );
+ name = System;
+ sourceTree = "<group>";
+ };
+ 49F2DA1813764ED5000B6B8C /* Events */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA3013764ED5000B6B8C /* Internal */,
+ 49F2DA3113764ED5000B6B8C /* SPEvent.h */,
+ 49F2DA3213764ED5000B6B8C /* SPEvent.m */,
+ 49F2DA3313764ED5000B6B8C /* SPEventDispatcher.h */,
+ 49F2DA3413764ED5000B6B8C /* SPEventDispatcher.m */,
+ 49F2DA3513764ED5000B6B8C /* SPTouch.h */,
+ 49F2DA3613764ED5000B6B8C /* SPTouch.m */,
+ 49F2DA3713764ED5000B6B8C /* SPTouchEvent.h */,
+ 49F2DA3813764ED5000B6B8C /* SPTouchEvent.m */,
+ 49F2DA3913764ED5000B6B8C /* SPEnterFrameEvent.h */,
+ 49F2DA3A13764ED5000B6B8C /* SPEnterFrameEvent.m */,
+ );
+ name = Events;
+ sourceTree = "<group>";
+ };
+ 49F2DA1913764ED5000B6B8C /* Display */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA3D13764ED5000B6B8C /* Rendering */,
+ 49F2DA3E13764ED5000B6B8C /* Text */,
+ 49F2DA3F13764ED5000B6B8C /* Internal */,
+ 49F2DA4013764ED5000B6B8C /* SPDisplayObject.h */,
+ 49F2DA4113764ED5000B6B8C /* SPDisplayObject.m */,
+ 49F2DA4213764ED5000B6B8C /* SPDisplayObjectContainer.h */,
+ 49F2DA4313764ED5000B6B8C /* SPDisplayObjectContainer.m */,
+ 49F2DA4413764ED5000B6B8C /* SPSprite.h */,
+ 49F2DA4513764ED5000B6B8C /* SPSprite.m */,
+ 49F2DA4613764ED5000B6B8C /* SPStage.h */,
+ 49F2DA4713764ED5000B6B8C /* SPStage.m */,
+ 49F2DA4813764ED5000B6B8C /* SPQuad.h */,
+ 49F2DA4913764ED5000B6B8C /* SPQuad.m */,
+ 49F2DA4A13764ED5000B6B8C /* SPImage.h */,
+ 49F2DA4B13764ED5000B6B8C /* SPImage.m */,
+ 49F2DA4C13764ED5000B6B8C /* SPButton.h */,
+ 49F2DA4D13764ED5000B6B8C /* SPButton.m */,
+ 49F2DA4E13764ED5000B6B8C /* SPMovieClip.h */,
+ 49F2DA4F13764ED5000B6B8C /* SPMovieClip.m */,
+ 49F2DA5013764ED5000B6B8C /* SPCompiledSprite.h */,
+ 49F2DA5113764ED5000B6B8C /* SPCompiledSprite.m */,
+ );
+ name = Display;
+ sourceTree = "<group>";
+ };
+ 49F2DA1A13764ED5000B6B8C /* Textures */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA5F13764ED5000B6B8C /* SPTexture.h */,
+ 49F2DA6013764ED5000B6B8C /* SPTexture.m */,
+ 49F2DA6113764ED5000B6B8C /* SPGLTexture.h */,
+ 49F2DA6213764ED5000B6B8C /* SPGLTexture.m */,
+ 49F2DA6313764ED5000B6B8C /* SPSubTexture.h */,
+ 49F2DA6413764ED5000B6B8C /* SPSubTexture.m */,
+ 49F2DA6513764ED5000B6B8C /* SPRenderTexture.h */,
+ 49F2DA6613764ED5000B6B8C /* SPRenderTexture.m */,
+ 49F2DA6713764ED5000B6B8C /* SPTextureAtlas.h */,
+ 49F2DA6813764ED5000B6B8C /* SPTextureAtlas.m */,
+ );
+ name = Textures;
+ sourceTree = "<group>";
+ };
+ 49F2DA1B13764ED5000B6B8C /* Animation */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA6913764ED5000B6B8C /* Internal */,
+ 49F2DA6A13764ED5000B6B8C /* SPAnimatable.h */,
+ 49F2DA6B13764ED5000B6B8C /* SPJuggler.h */,
+ 49F2DA6C13764ED5000B6B8C /* SPJuggler.m */,
+ 49F2DA6D13764ED5000B6B8C /* SPTransitions.h */,
+ 49F2DA6E13764ED5000B6B8C /* SPTransitions.m */,
+ 49F2DA6F13764ED5000B6B8C /* SPTween.h */,
+ 49F2DA7013764ED5000B6B8C /* SPTween.m */,
+ 49F2DA7113764ED5000B6B8C /* SPDelayedInvocation.h */,
+ 49F2DA7213764ED5000B6B8C /* SPDelayedInvocation.m */,
+ );
+ name = Animation;
+ sourceTree = "<group>";
+ };
+ 49F2DA1C13764ED5000B6B8C /* Utils */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA7513764ED6000B6B8C /* SPMacros.h */,
+ 49F2DA7613764ED6000B6B8C /* SPMatrix.h */,
+ 49F2DA7713764ED6000B6B8C /* SPMatrix.m */,
+ 49F2DA7813764ED6000B6B8C /* SPPoint.h */,
+ 49F2DA7913764ED6000B6B8C /* SPPoint.m */,
+ 49F2DA7A13764ED6000B6B8C /* SPRectangle.h */,
+ 49F2DA7B13764ED6000B6B8C /* SPRectangle.m */,
+ 49F2DA7C13764ED6000B6B8C /* SPNSExtensions.h */,
+ 49F2DA7D13764ED6000B6B8C /* SPNSExtensions.m */,
+ 49F2DA7E13764ED6000B6B8C /* SPPoolObject.h */,
+ 49F2DA7F13764ED6000B6B8C /* SPPoolObject.m */,
+ 49F2DA8013764ED6000B6B8C /* SPUtils.h */,
+ 49F2DA8113764ED6000B6B8C /* SPUtils.m */,
+ );
+ name = Utils;
+ sourceTree = "<group>";
+ };
+ 49F2DA1E13764ED5000B6B8C /* AVFoundation */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA2613764ED5000B6B8C /* SPAVSound.h */,
+ 49F2DA2713764ED5000B6B8C /* SPAVSound.m */,
+ 49F2DA2813764ED5000B6B8C /* SPAVSoundChannel.h */,
+ 49F2DA2913764ED5000B6B8C /* SPAVSoundChannel.m */,
+ );
+ name = AVFoundation;
+ sourceTree = "<group>";
+ };
+ 49F2DA1F13764ED5000B6B8C /* OpenAL */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA2A13764ED5000B6B8C /* SPALSound.h */,
+ 49F2DA2B13764ED5000B6B8C /* SPALSound.m */,
+ 49F2DA2C13764ED5000B6B8C /* SPALSoundChannel.h */,
+ 49F2DA2D13764ED5000B6B8C /* SPALSoundChannel.m */,
+ );
+ name = OpenAL;
+ sourceTree = "<group>";
+ };
+ 49F2DA3013764ED5000B6B8C /* Internal */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA3B13764ED5000B6B8C /* SPTouch_Internal.h */,
+ 49F2DA3C13764ED5000B6B8C /* SPEvent_Internal.h */,
+ );
+ name = Internal;
+ sourceTree = "<group>";
+ };
+ 49F2DA3D13764ED5000B6B8C /* Rendering */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA5213764ED5000B6B8C /* SPRendering.m */,
+ 49F2DA5313764ED5000B6B8C /* SPRenderSupport.h */,
+ 49F2DA5413764ED5000B6B8C /* SPRenderSupport.m */,
+ );
+ name = Rendering;
+ sourceTree = "<group>";
+ };
+ 49F2DA3E13764ED5000B6B8C /* Text */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA5513764ED5000B6B8C /* SPTextField.h */,
+ 49F2DA5613764ED5000B6B8C /* SPTextField.m */,
+ 49F2DA5713764ED5000B6B8C /* SPBitmapFont.h */,
+ 49F2DA5813764ED5000B6B8C /* SPBitmapFont.m */,
+ 49F2DA5913764ED5000B6B8C /* SPBitmapChar.h */,
+ 49F2DA5A13764ED5000B6B8C /* SPBitmapChar.m */,
+ );
+ name = Text;
+ sourceTree = "<group>";
+ };
+ 49F2DA3F13764ED5000B6B8C /* Internal */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA5B13764ED5000B6B8C /* SPTouchProcessor.h */,
+ 49F2DA5C13764ED5000B6B8C /* SPTouchProcessor.m */,
+ 49F2DA5D13764ED5000B6B8C /* SPDisplayObject_Internal.h */,
+ 49F2DA5E13764ED5000B6B8C /* SPStage_Internal.h */,
+ );
+ name = Internal;
+ sourceTree = "<group>";
+ };
+ 49F2DA6913764ED5000B6B8C /* Internal */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA7313764ED5000B6B8C /* SPTweenedProperty.h */,
+ 49F2DA7413764ED5000B6B8C /* SPTweenedProperty.m */,
+ );
+ name = Internal;
+ sourceTree = "<group>";
+ };
+ 49F2DAE013764EDF000B6B8C /* libs */ = {
+ isa = PBXGroup;
+ children = (
+ 49F2DA1513764ED5000B6B8C /* Sparrow */,
+ );
+ name = libs;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 49F2D9CC13764697000B6B8C /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 49F2D9CD13764710000B6B8C /* RootAppDelegate.h in Headers */,
+ 49F2D9CE13764710000B6B8C /* Game.h in Headers */,
+ 49F2D9CF13764710000B6B8C /* RootAppDelegate_iPad.h in Headers */,
+ 49F2D9D013764710000B6B8C /* RootAppDelegate_iPhone.h in Headers */,
+ 49F2DA8213764ED6000B6B8C /* SPAVSound.h in Headers */,
+ 49F2DA8413764ED6000B6B8C /* SPAVSoundChannel.h in Headers */,
+ 49F2DA8613764ED6000B6B8C /* SPALSound.h in Headers */,
+ 49F2DA8813764ED6000B6B8C /* SPALSoundChannel.h in Headers */,
+ 49F2DA8A13764ED6000B6B8C /* SPAudioEngine.h in Headers */,
+ 49F2DA8C13764ED6000B6B8C /* SPSound.h in Headers */,
+ 49F2DA8E13764ED6000B6B8C /* SPSoundChannel.h in Headers */,
+ 49F2DA9013764ED6000B6B8C /* SPView.h in Headers */,
+ 49F2DA9213764ED6000B6B8C /* SPTouch_Internal.h in Headers */,
+ 49F2DA9313764ED6000B6B8C /* SPEvent_Internal.h in Headers */,
+ 49F2DA9413764ED6000B6B8C /* SPEvent.h in Headers */,
+ 49F2DA9613764ED6000B6B8C /* SPEventDispatcher.h in Headers */,
+ 49F2DA9813764ED6000B6B8C /* SPTouch.h in Headers */,
+ 49F2DA9A13764ED6000B6B8C /* SPTouchEvent.h in Headers */,
+ 49F2DA9C13764ED6000B6B8C /* SPEnterFrameEvent.h in Headers */,
+ 49F2DA9F13764ED6000B6B8C /* SPRenderSupport.h in Headers */,
+ 49F2DAA113764ED6000B6B8C /* SPTextField.h in Headers */,
+ 49F2DAA313764ED6000B6B8C /* SPBitmapFont.h in Headers */,
+ 49F2DAA513764ED6000B6B8C /* SPBitmapChar.h in Headers */,
+ 49F2DAA713764ED6000B6B8C /* SPTouchProcessor.h in Headers */,
+ 49F2DAA913764ED6000B6B8C /* SPDisplayObject_Internal.h in Headers */,
+ 49F2DAAA13764ED6000B6B8C /* SPStage_Internal.h in Headers */,
+ 49F2DAAB13764ED6000B6B8C /* SPDisplayObject.h in Headers */,
+ 49F2DAAD13764ED6000B6B8C /* SPDisplayObjectContainer.h in Headers */,
+ 49F2DAAF13764ED6000B6B8C /* SPSprite.h in Headers */,
+ 49F2DAB113764ED6000B6B8C /* SPStage.h in Headers */,
+ 49F2DAB313764ED6000B6B8C /* SPQuad.h in Headers */,
+ 49F2DAB513764ED6000B6B8C /* SPImage.h in Headers */,
+ 49F2DAB713764ED6000B6B8C /* SPButton.h in Headers */,
+ 49F2DAB913764ED6000B6B8C /* SPMovieClip.h in Headers */,
+ 49F2DABB13764ED6000B6B8C /* SPCompiledSprite.h in Headers */,
+ 49F2DABD13764ED6000B6B8C /* SPTexture.h in Headers */,
+ 49F2DABF13764ED6000B6B8C /* SPGLTexture.h in Headers */,
+ 49F2DAC113764ED6000B6B8C /* SPSubTexture.h in Headers */,
+ 49F2DAC313764ED6000B6B8C /* SPRenderTexture.h in Headers */,
+ 49F2DAC513764ED6000B6B8C /* SPTextureAtlas.h in Headers */,
+ 49F2DAC713764ED6000B6B8C /* SPTweenedProperty.h in Headers */,
+ 49F2DAC913764ED6000B6B8C /* SPAnimatable.h in Headers */,
+ 49F2DACA13764ED6000B6B8C /* SPJuggler.h in Headers */,
+ 49F2DACC13764ED6000B6B8C /* SPTransitions.h in Headers */,
+ 49F2DACE13764ED6000B6B8C /* SPTween.h in Headers */,
+ 49F2DAD013764ED6000B6B8C /* SPDelayedInvocation.h in Headers */,
+ 49F2DAD213764ED6000B6B8C /* SPMacros.h in Headers */,
+ 49F2DAD313764ED6000B6B8C /* SPMatrix.h in Headers */,
+ 49F2DAD513764ED6000B6B8C /* SPPoint.h in Headers */,
+ 49F2DAD713764ED6000B6B8C /* SPRectangle.h in Headers */,
+ 49F2DAD913764ED6000B6B8C /* SPNSExtensions.h in Headers */,
+ 49F2DADB13764ED6000B6B8C /* SPPoolObject.h in Headers */,
+ 49F2DADD13764ED6000B6B8C /* SPUtils.h in Headers */,
+ 49F2DADF13764ED6000B6B8C /* Sparrow.h in Headers */,
+ 49F2DAF213765004000B6B8C /* GLES-Render.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 499668C113692E2D006E8125 /* Tanks */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 499668FE13692E2D006E8125 /* Build configuration list for PBXNativeTarget "Tanks" */;
+ buildPhases = (
+ 499668BE13692E2D006E8125 /* Sources */,
+ 499668BF13692E2D006E8125 /* Frameworks */,
+ 499668C013692E2D006E8125 /* Resources */,
+ 49F2D9CC13764697000B6B8C /* Headers */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 49F2D9AB13764624000B6B8C /* PBXTargetDependency */,
+ );
+ name = Tanks;
+ productName = tanks;
+ productReference = 499668C213692E2D006E8125 /* Tanks.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 499668B913692E2D006E8125 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 499668BC13692E2D006E8125 /* Build configuration list for PBXProject "tanks" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 499668B713692E2D006E8125;
+ productRefGroup = 499668C313692E2D006E8125 /* Products */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = 49F2D99C137645DF000B6B8C /* Products */;
+ ProjectRef = 49F2D99B137645DF000B6B8C /* box2d-ios.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 499668C113692E2D006E8125 /* Tanks */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ 49F2D9A3137645E0000B6B8C /* libBox2D.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libBox2D.a;
+ remoteRef = 49F2D9A2137645E0000B6B8C /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 499668C013692E2D006E8125 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 49F2D9C713764666000B6B8C /* MainWindow_iPad.xib in Resources */,
+ 49F2D9C913764666000B6B8C /* MainWindow_iPhone.xib in Resources */,
+ 49F2D9D713764A9B000B6B8C /* InfoPlist.strings in Resources */,
+ 49F2D9D813764A9B000B6B8C /* tanks-Info.plist in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 499668BE13692E2D006E8125 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 49F2D9D213764763000B6B8C /* prefix.pch in Sources */,
+ 49F2D9C413764666000B6B8C /* main.m in Sources */,
+ 49F2D9C513764666000B6B8C /* RootAppDelegate.m in Sources */,
+ 49F2D9C613764666000B6B8C /* Game.m in Sources */,
+ 49F2D9C813764666000B6B8C /* RootAppDelegate_iPad.m in Sources */,
+ 49F2D9CA13764666000B6B8C /* RootAppDelegate_iPhone.m in Sources */,
+ 49F2DA8313764ED6000B6B8C /* SPAVSound.m in Sources */,
+ 49F2DA8513764ED6000B6B8C /* SPAVSoundChannel.m in Sources */,
+ 49F2DA8713764ED6000B6B8C /* SPALSound.m in Sources */,
+ 49F2DA8913764ED6000B6B8C /* SPALSoundChannel.m in Sources */,
+ 49F2DA8B13764ED6000B6B8C /* SPAudioEngine.m in Sources */,
+ 49F2DA8D13764ED6000B6B8C /* SPSound.m in Sources */,
+ 49F2DA8F13764ED6000B6B8C /* SPSoundChannel.m in Sources */,
+ 49F2DA9113764ED6000B6B8C /* SPView.m in Sources */,
+ 49F2DA9513764ED6000B6B8C /* SPEvent.m in Sources */,
+ 49F2DA9713764ED6000B6B8C /* SPEventDispatcher.m in Sources */,
+ 49F2DA9913764ED6000B6B8C /* SPTouch.m in Sources */,
+ 49F2DA9B13764ED6000B6B8C /* SPTouchEvent.m in Sources */,
+ 49F2DA9D13764ED6000B6B8C /* SPEnterFrameEvent.m in Sources */,
+ 49F2DA9E13764ED6000B6B8C /* SPRendering.m in Sources */,
+ 49F2DAA013764ED6000B6B8C /* SPRenderSupport.m in Sources */,
+ 49F2DAA213764ED6000B6B8C /* SPTextField.m in Sources */,
+ 49F2DAA413764ED6000B6B8C /* SPBitmapFont.m in Sources */,
+ 49F2DAA613764ED6000B6B8C /* SPBitmapChar.m in Sources */,
+ 49F2DAA813764ED6000B6B8C /* SPTouchProcessor.m in Sources */,
+ 49F2DAAC13764ED6000B6B8C /* SPDisplayObject.m in Sources */,
+ 49F2DAAE13764ED6000B6B8C /* SPDisplayObjectContainer.m in Sources */,
+ 49F2DAB013764ED6000B6B8C /* SPSprite.m in Sources */,
+ 49F2DAB213764ED6000B6B8C /* SPStage.m in Sources */,
+ 49F2DAB413764ED6000B6B8C /* SPQuad.m in Sources */,
+ 49F2DAB613764ED6000B6B8C /* SPImage.m in Sources */,
+ 49F2DAB813764ED6000B6B8C /* SPButton.m in Sources */,
+ 49F2DABA13764ED6000B6B8C /* SPMovieClip.m in Sources */,
+ 49F2DABC13764ED6000B6B8C /* SPCompiledSprite.m in Sources */,
+ 49F2DABE13764ED6000B6B8C /* SPTexture.m in Sources */,
+ 49F2DAC013764ED6000B6B8C /* SPGLTexture.m in Sources */,
+ 49F2DAC213764ED6000B6B8C /* SPSubTexture.m in Sources */,
+ 49F2DAC413764ED6000B6B8C /* SPRenderTexture.m in Sources */,
+ 49F2DAC613764ED6000B6B8C /* SPTextureAtlas.m in Sources */,
+ 49F2DAC813764ED6000B6B8C /* SPTweenedProperty.m in Sources */,
+ 49F2DACB13764ED6000B6B8C /* SPJuggler.m in Sources */,
+ 49F2DACD13764ED6000B6B8C /* SPTransitions.m in Sources */,
+ 49F2DACF13764ED6000B6B8C /* SPTween.m in Sources */,
+ 49F2DAD113764ED6000B6B8C /* SPDelayedInvocation.m in Sources */,
+ 49F2DAD413764ED6000B6B8C /* SPMatrix.m in Sources */,
+ 49F2DAD613764ED6000B6B8C /* SPPoint.m in Sources */,
+ 49F2DAD813764ED6000B6B8C /* SPRectangle.m in Sources */,
+ 49F2DADA13764ED6000B6B8C /* SPNSExtensions.m in Sources */,
+ 49F2DADC13764ED6000B6B8C /* SPPoolObject.m in Sources */,
+ 49F2DADE13764ED6000B6B8C /* SPUtils.m in Sources */,
+ 49F2DAF313765004000B6B8C /* GLES-Render.mm in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 49F2D9AB13764624000B6B8C /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = Box2D;
+ targetProxy = 49F2D9AA13764624000B6B8C /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+ 49F2D9BB13764666000B6B8C /* MainWindow_iPad.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 49F2D9BC13764666000B6B8C /* en */,
+ );
+ name = MainWindow_iPad.xib;
+ sourceTree = "<group>";
+ };
+ 49F2D9C013764666000B6B8C /* MainWindow_iPhone.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 49F2D9C113764666000B6B8C /* en */,
+ );
+ name = MainWindow_iPhone.xib;
+ sourceTree = "<group>";
+ };
+ 49F2D9D413764A9B000B6B8C /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 49F2D9D513764A9B000B6B8C /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 499668FC13692E2D006E8125 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 499668FD13692E2D006E8125 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
+ 499668FF13692E2D006E8125 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = YES;
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = src/prefix.pch;
+ INFOPLIST_FILE = "etc/tanks-Info.plist";
+ LIBRARY_SEARCH_PATHS = (
+ "libs/**",
+ "\"$(SRCROOT)\"",
+ );
+ OTHER_LDFLAGS = "";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ USER_HEADER_SEARCH_PATHS = "libs/** src/**";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ 4996690013692E2D006E8125 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = YES;
+ COPY_PHASE_STRIP = YES;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = src/prefix.pch;
+ INFOPLIST_FILE = "etc/tanks-Info.plist";
+ LIBRARY_SEARCH_PATHS = (
+ "libs/**",
+ "\"$(SRCROOT)\"",
+ );
+ OTHER_LDFLAGS = "";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ USER_HEADER_SEARCH_PATHS = "libs/** src/**";
+ VALIDATE_PRODUCT = YES;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 499668BC13692E2D006E8125 /* Build configuration list for PBXProject "tanks" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 499668FC13692E2D006E8125 /* Debug */,
+ 499668FD13692E2D006E8125 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 499668FE13692E2D006E8125 /* Build configuration list for PBXNativeTarget "Tanks" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 499668FF13692E2D006E8125 /* Debug */,
+ 4996690013692E2D006E8125 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 499668B913692E2D006E8125 /* Project object */;
+}
+++ /dev/null
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 49132ED31372483800DFB46D /* libSparrow.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 49132ED21372483700DFB46D /* libSparrow.a */; };
- 499668C713692E2D006E8125 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499668C613692E2D006E8125 /* UIKit.framework */; };
- 499668C913692E2D006E8125 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499668C813692E2D006E8125 /* Foundation.framework */; };
- 499668CB13692E2D006E8125 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499668CA13692E2D006E8125 /* CoreGraphics.framework */; };
- 499668D113692E2D006E8125 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 499668CF13692E2D006E8125 /* InfoPlist.strings */; };
- 499668D413692E2D006E8125 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 499668D313692E2D006E8125 /* main.m */; };
- 499668D713692E2D006E8125 /* tanksAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 499668D613692E2D006E8125 /* tanksAppDelegate.m */; };
- 499668DB13692E2D006E8125 /* tanksAppDelegate_iPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = 499668DA13692E2D006E8125 /* tanksAppDelegate_iPhone.m */; };
- 499668DE13692E2D006E8125 /* MainWindow_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 499668DC13692E2D006E8125 /* MainWindow_iPhone.xib */; };
- 499668E213692E2D006E8125 /* tanksAppDelegate_iPad.m in Sources */ = {isa = PBXBuildFile; fileRef = 499668E113692E2D006E8125 /* tanksAppDelegate_iPad.m */; };
- 499668E513692E2D006E8125 /* MainWindow_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 499668E313692E2D006E8125 /* MainWindow_iPad.xib */; };
- 499668EC13692E2D006E8125 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499668C613692E2D006E8125 /* UIKit.framework */; };
- 499668ED13692E2D006E8125 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499668C813692E2D006E8125 /* Foundation.framework */; };
- 499668EE13692E2D006E8125 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 499668CA13692E2D006E8125 /* CoreGraphics.framework */; };
- 499668F613692E2D006E8125 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 499668F413692E2D006E8125 /* InfoPlist.strings */; };
- 499668F913692E2D006E8125 /* tanksTests.h in Resources */ = {isa = PBXBuildFile; fileRef = 499668F813692E2D006E8125 /* tanksTests.h */; };
- 499668FB13692E2D006E8125 /* tanksTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 499668FA13692E2D006E8125 /* tanksTests.m */; };
- 49966917136930E8006E8125 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49966912136930E8006E8125 /* AudioToolbox.framework */; };
- 49966918136930E8006E8125 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49966913136930E8006E8125 /* AVFoundation.framework */; };
- 49966919136930E8006E8125 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49966914136930E8006E8125 /* OpenAL.framework */; };
- 4996691A136930E8006E8125 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49966915136930E8006E8125 /* OpenGLES.framework */; };
- 4996691B136930E8006E8125 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49966916136930E8006E8125 /* QuartzCore.framework */; };
- 4996691E13693180006E8125 /* Game.m in Sources */ = {isa = PBXBuildFile; fileRef = 4996691D13693180006E8125 /* Game.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 49132ECC1372459400DFB46D /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 49132EC41372459300DFB46D /* Sparrow.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = DEFE4BC2101B317600E22471;
- remoteInfo = Sparrow;
- };
- 49132ECE1372459400DFB46D /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 49132EC41372459300DFB46D /* Sparrow.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = DEEA9335101E32A30071DD21;
- remoteInfo = UnitTests;
- };
- 49132ED01372482D00DFB46D /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 49132EC41372459300DFB46D /* Sparrow.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = DEFE4BC1101B317600E22471;
- remoteInfo = Sparrow;
- };
- 499668EF13692E2D006E8125 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 499668B913692E2D006E8125 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 499668C113692E2D006E8125;
- remoteInfo = tanks;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 49132EC41372459300DFB46D /* Sparrow.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Sparrow.xcodeproj; path = ../libs/sparrow/src/Sparrow.xcodeproj; sourceTree = "<group>"; };
- 49132ED21372483700DFB46D /* libSparrow.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libSparrow.a; sourceTree = SOURCE_ROOT; };
- 499668C213692E2D006E8125 /* tanks.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tanks.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 499668C613692E2D006E8125 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- 499668C813692E2D006E8125 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 499668CA13692E2D006E8125 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- 499668CE13692E2D006E8125 /* tanks-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "tanks-Info.plist"; sourceTree = "<group>"; };
- 499668D013692E2D006E8125 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
- 499668D213692E2D006E8125 /* tanks-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "tanks-Prefix.pch"; sourceTree = "<group>"; };
- 499668D313692E2D006E8125 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
- 499668D513692E2D006E8125 /* tanksAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = tanksAppDelegate.h; sourceTree = "<group>"; };
- 499668D613692E2D006E8125 /* tanksAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = tanksAppDelegate.m; sourceTree = "<group>"; };
- 499668D913692E2D006E8125 /* tanksAppDelegate_iPhone.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = tanksAppDelegate_iPhone.h; path = iPhone/tanksAppDelegate_iPhone.h; sourceTree = "<group>"; };
- 499668DA13692E2D006E8125 /* tanksAppDelegate_iPhone.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = tanksAppDelegate_iPhone.m; path = iPhone/tanksAppDelegate_iPhone.m; sourceTree = "<group>"; };
- 499668DD13692E2D006E8125 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = iPhone/en.lproj/MainWindow_iPhone.xib; sourceTree = "<group>"; };
- 499668E013692E2D006E8125 /* tanksAppDelegate_iPad.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = tanksAppDelegate_iPad.h; path = iPad/tanksAppDelegate_iPad.h; sourceTree = "<group>"; };
- 499668E113692E2D006E8125 /* tanksAppDelegate_iPad.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = tanksAppDelegate_iPad.m; path = iPad/tanksAppDelegate_iPad.m; sourceTree = "<group>"; };
- 499668E413692E2D006E8125 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = iPad/en.lproj/MainWindow_iPad.xib; sourceTree = "<group>"; };
- 499668EB13692E2D006E8125 /* tanksTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = tanksTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
- 499668F313692E2D006E8125 /* tanksTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "tanksTests-Info.plist"; sourceTree = "<group>"; };
- 499668F513692E2D006E8125 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
- 499668F713692E2D006E8125 /* tanksTests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "tanksTests-Prefix.pch"; sourceTree = "<group>"; };
- 499668F813692E2D006E8125 /* tanksTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = tanksTests.h; sourceTree = "<group>"; };
- 499668FA13692E2D006E8125 /* tanksTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = tanksTests.m; sourceTree = "<group>"; };
- 49966912136930E8006E8125 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
- 49966913136930E8006E8125 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
- 49966914136930E8006E8125 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
- 49966915136930E8006E8125 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
- 49966916136930E8006E8125 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- 4996691C13693180006E8125 /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Game.h; sourceTree = "<group>"; };
- 4996691D13693180006E8125 /* Game.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Game.m; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 499668BF13692E2D006E8125 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 49132ED31372483800DFB46D /* libSparrow.a in Frameworks */,
- 49966917136930E8006E8125 /* AudioToolbox.framework in Frameworks */,
- 49966918136930E8006E8125 /* AVFoundation.framework in Frameworks */,
- 49966919136930E8006E8125 /* OpenAL.framework in Frameworks */,
- 4996691A136930E8006E8125 /* OpenGLES.framework in Frameworks */,
- 4996691B136930E8006E8125 /* QuartzCore.framework in Frameworks */,
- 499668C713692E2D006E8125 /* UIKit.framework in Frameworks */,
- 499668C913692E2D006E8125 /* Foundation.framework in Frameworks */,
- 499668CB13692E2D006E8125 /* CoreGraphics.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 499668E713692E2D006E8125 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 499668EC13692E2D006E8125 /* UIKit.framework in Frameworks */,
- 499668ED13692E2D006E8125 /* Foundation.framework in Frameworks */,
- 499668EE13692E2D006E8125 /* CoreGraphics.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 49132EC51372459300DFB46D /* Products */ = {
- isa = PBXGroup;
- children = (
- 49132ECD1372459400DFB46D /* libSparrow.a */,
- 49132ECF1372459400DFB46D /* UnitTest.octest */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 499668B713692E2D006E8125 = {
- isa = PBXGroup;
- children = (
- 49132EC41372459300DFB46D /* Sparrow.xcodeproj */,
- 499668CC13692E2D006E8125 /* tanks */,
- 499668F113692E2D006E8125 /* tanksTests */,
- 499668C513692E2D006E8125 /* Frameworks */,
- 499668C313692E2D006E8125 /* Products */,
- );
- sourceTree = "<group>";
- };
- 499668C313692E2D006E8125 /* Products */ = {
- isa = PBXGroup;
- children = (
- 499668C213692E2D006E8125 /* tanks.app */,
- 499668EB13692E2D006E8125 /* tanksTests.octest */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 499668C513692E2D006E8125 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 49132ED21372483700DFB46D /* libSparrow.a */,
- 49966912136930E8006E8125 /* AudioToolbox.framework */,
- 49966913136930E8006E8125 /* AVFoundation.framework */,
- 49966914136930E8006E8125 /* OpenAL.framework */,
- 49966915136930E8006E8125 /* OpenGLES.framework */,
- 49966916136930E8006E8125 /* QuartzCore.framework */,
- 499668C613692E2D006E8125 /* UIKit.framework */,
- 499668C813692E2D006E8125 /* Foundation.framework */,
- 499668CA13692E2D006E8125 /* CoreGraphics.framework */,
- );
- name = Frameworks;
- sourceTree = "<group>";
- };
- 499668CC13692E2D006E8125 /* tanks */ = {
- isa = PBXGroup;
- children = (
- 499668D513692E2D006E8125 /* tanksAppDelegate.h */,
- 499668D613692E2D006E8125 /* tanksAppDelegate.m */,
- 499668D813692E2D006E8125 /* iPhone */,
- 499668DF13692E2D006E8125 /* iPad */,
- 499668CD13692E2D006E8125 /* Supporting Files */,
- 4996691C13693180006E8125 /* Game.h */,
- 4996691D13693180006E8125 /* Game.m */,
- );
- path = tanks;
- sourceTree = "<group>";
- };
- 499668CD13692E2D006E8125 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 499668CE13692E2D006E8125 /* tanks-Info.plist */,
- 499668CF13692E2D006E8125 /* InfoPlist.strings */,
- 499668D213692E2D006E8125 /* tanks-Prefix.pch */,
- 499668D313692E2D006E8125 /* main.m */,
- );
- name = "Supporting Files";
- sourceTree = "<group>";
- };
- 499668D813692E2D006E8125 /* iPhone */ = {
- isa = PBXGroup;
- children = (
- 499668D913692E2D006E8125 /* tanksAppDelegate_iPhone.h */,
- 499668DA13692E2D006E8125 /* tanksAppDelegate_iPhone.m */,
- 499668DC13692E2D006E8125 /* MainWindow_iPhone.xib */,
- );
- name = iPhone;
- sourceTree = "<group>";
- };
- 499668DF13692E2D006E8125 /* iPad */ = {
- isa = PBXGroup;
- children = (
- 499668E013692E2D006E8125 /* tanksAppDelegate_iPad.h */,
- 499668E113692E2D006E8125 /* tanksAppDelegate_iPad.m */,
- 499668E313692E2D006E8125 /* MainWindow_iPad.xib */,
- );
- name = iPad;
- sourceTree = "<group>";
- };
- 499668F113692E2D006E8125 /* tanksTests */ = {
- isa = PBXGroup;
- children = (
- 499668F813692E2D006E8125 /* tanksTests.h */,
- 499668FA13692E2D006E8125 /* tanksTests.m */,
- 499668F213692E2D006E8125 /* Supporting Files */,
- );
- path = tanksTests;
- sourceTree = "<group>";
- };
- 499668F213692E2D006E8125 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 499668F313692E2D006E8125 /* tanksTests-Info.plist */,
- 499668F413692E2D006E8125 /* InfoPlist.strings */,
- 499668F713692E2D006E8125 /* tanksTests-Prefix.pch */,
- );
- name = "Supporting Files";
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 499668C113692E2D006E8125 /* tanks */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 499668FE13692E2D006E8125 /* Build configuration list for PBXNativeTarget "tanks" */;
- buildPhases = (
- 499668BE13692E2D006E8125 /* Sources */,
- 499668BF13692E2D006E8125 /* Frameworks */,
- 499668C013692E2D006E8125 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- 49132ED11372482D00DFB46D /* PBXTargetDependency */,
- );
- name = tanks;
- productName = tanks;
- productReference = 499668C213692E2D006E8125 /* tanks.app */;
- productType = "com.apple.product-type.application";
- };
- 499668EA13692E2D006E8125 /* tanksTests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 4996690113692E2D006E8125 /* Build configuration list for PBXNativeTarget "tanksTests" */;
- buildPhases = (
- 499668E613692E2D006E8125 /* Sources */,
- 499668E713692E2D006E8125 /* Frameworks */,
- 499668E813692E2D006E8125 /* Resources */,
- 499668E913692E2D006E8125 /* ShellScript */,
- );
- buildRules = (
- );
- dependencies = (
- 499668F013692E2D006E8125 /* PBXTargetDependency */,
- );
- name = tanksTests;
- productName = tanksTests;
- productReference = 499668EB13692E2D006E8125 /* tanksTests.octest */;
- productType = "com.apple.product-type.bundle";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 499668B913692E2D006E8125 /* Project object */ = {
- isa = PBXProject;
- buildConfigurationList = 499668BC13692E2D006E8125 /* Build configuration list for PBXProject "tanks" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- );
- mainGroup = 499668B713692E2D006E8125;
- productRefGroup = 499668C313692E2D006E8125 /* Products */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = 49132EC51372459300DFB46D /* Products */;
- ProjectRef = 49132EC41372459300DFB46D /* Sparrow.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 499668C113692E2D006E8125 /* tanks */,
- 499668EA13692E2D006E8125 /* tanksTests */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- 49132ECD1372459400DFB46D /* libSparrow.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libSparrow.a;
- remoteRef = 49132ECC1372459400DFB46D /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 49132ECF1372459400DFB46D /* UnitTest.octest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = UnitTest.octest;
- remoteRef = 49132ECE1372459400DFB46D /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 499668C013692E2D006E8125 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 499668D113692E2D006E8125 /* InfoPlist.strings in Resources */,
- 499668DE13692E2D006E8125 /* MainWindow_iPhone.xib in Resources */,
- 499668E513692E2D006E8125 /* MainWindow_iPad.xib in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 499668E813692E2D006E8125 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 499668F613692E2D006E8125 /* InfoPlist.strings in Resources */,
- 499668F913692E2D006E8125 /* tanksTests.h in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 499668E913692E2D006E8125 /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 499668BE13692E2D006E8125 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 499668D413692E2D006E8125 /* main.m in Sources */,
- 499668D713692E2D006E8125 /* tanksAppDelegate.m in Sources */,
- 499668DB13692E2D006E8125 /* tanksAppDelegate_iPhone.m in Sources */,
- 499668E213692E2D006E8125 /* tanksAppDelegate_iPad.m in Sources */,
- 4996691E13693180006E8125 /* Game.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 499668E613692E2D006E8125 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 499668FB13692E2D006E8125 /* tanksTests.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 49132ED11372482D00DFB46D /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = Sparrow;
- targetProxy = 49132ED01372482D00DFB46D /* PBXContainerItemProxy */;
- };
- 499668F013692E2D006E8125 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 499668C113692E2D006E8125 /* tanks */;
- targetProxy = 499668EF13692E2D006E8125 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- 499668CF13692E2D006E8125 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 499668D013692E2D006E8125 /* en */,
- );
- name = InfoPlist.strings;
- sourceTree = "<group>";
- };
- 499668DC13692E2D006E8125 /* MainWindow_iPhone.xib */ = {
- isa = PBXVariantGroup;
- children = (
- 499668DD13692E2D006E8125 /* en */,
- );
- name = MainWindow_iPhone.xib;
- sourceTree = "<group>";
- };
- 499668E313692E2D006E8125 /* MainWindow_iPad.xib */ = {
- isa = PBXVariantGroup;
- children = (
- 499668E413692E2D006E8125 /* en */,
- );
- name = MainWindow_iPad.xib;
- sourceTree = "<group>";
- };
- 499668F413692E2D006E8125 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 499668F513692E2D006E8125 /* en */,
- );
- name = InfoPlist.strings;
- sourceTree = "<group>";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- 499668FC13692E2D006E8125 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
- GCC_VERSION = com.apple.compilers.llvmgcc42;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 4.3;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Debug;
- };
- 499668FD13692E2D006E8125 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_VERSION = com.apple.compilers.llvmgcc42;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 4.3;
- OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Release;
- };
- 499668FF13692E2D006E8125 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = YES;
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "tanks/tanks-Prefix.pch";
- INFOPLIST_FILE = "tanks/tanks-Info.plist";
- LIBRARY_SEARCH_PATHS = (
- "../libs/**",
- "\"$(SRCROOT)\"",
- );
- OTHER_LDFLAGS = (
- "-ObjC",
- "-all_load",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- USER_HEADER_SEARCH_PATHS = "../libs/**";
- WRAPPER_EXTENSION = app;
- };
- name = Debug;
- };
- 4996690013692E2D006E8125 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = YES;
- COPY_PHASE_STRIP = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "tanks/tanks-Prefix.pch";
- INFOPLIST_FILE = "tanks/tanks-Info.plist";
- LIBRARY_SEARCH_PATHS = (
- "../libs/**",
- "\"$(SRCROOT)\"",
- );
- OTHER_LDFLAGS = (
- "-ObjC",
- "-all_load",
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- USER_HEADER_SEARCH_PATHS = "../libs/**";
- VALIDATE_PRODUCT = YES;
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
- 4996690213692E2D006E8125 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/tanks.app/tanks";
- FRAMEWORK_SEARCH_PATHS = (
- "$(SDKROOT)/Developer/Library/Frameworks",
- "$(DEVELOPER_LIBRARY_DIR)/Frameworks",
- );
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "tanksTests/tanksTests-Prefix.pch";
- INFOPLIST_FILE = "tanksTests/tanksTests-Info.plist";
- OTHER_LDFLAGS = (
- "-framework",
- SenTestingKit,
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUNDLE_LOADER)";
- WRAPPER_EXTENSION = octest;
- };
- name = Debug;
- };
- 4996690313692E2D006E8125 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/tanks.app/tanks";
- FRAMEWORK_SEARCH_PATHS = (
- "$(SDKROOT)/Developer/Library/Frameworks",
- "$(DEVELOPER_LIBRARY_DIR)/Frameworks",
- );
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "tanksTests/tanksTests-Prefix.pch";
- INFOPLIST_FILE = "tanksTests/tanksTests-Info.plist";
- OTHER_LDFLAGS = (
- "-framework",
- SenTestingKit,
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUNDLE_LOADER)";
- WRAPPER_EXTENSION = octest;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 499668BC13692E2D006E8125 /* Build configuration list for PBXProject "tanks" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 499668FC13692E2D006E8125 /* Debug */,
- 499668FD13692E2D006E8125 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 499668FE13692E2D006E8125 /* Build configuration list for PBXNativeTarget "tanks" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 499668FF13692E2D006E8125 /* Debug */,
- 4996690013692E2D006E8125 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 4996690113692E2D006E8125 /* Build configuration list for PBXNativeTarget "tanksTests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 4996690213692E2D006E8125 /* Debug */,
- 4996690313692E2D006E8125 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 499668B913692E2D006E8125 /* Project object */;
-}
+++ /dev/null
-/* Localized versions of Info.plist keys */
-
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>en</string>
- <key>CFBundleExecutable</key>
- <string>${EXECUTABLE_NAME}</string>
- <key>CFBundleIdentifier</key>
- <string>com.lttlst.${PRODUCT_NAME:rfc1034identifier}</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundlePackageType</key>
- <string>BNDL</string>
- <key>CFBundleShortVersionString</key>
- <string>1.0</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>1</string>
-</dict>
-</plist>
+++ /dev/null
-//
-// Prefix header for all source files of the 'tanksTests' target in the 'tanksTests' project
-//
-
-#ifdef __OBJC__
- #import <UIKit/UIKit.h>
-#endif
+++ /dev/null
-//
-// tanksTests.h
-// tanksTests
-//
-// Created by dsc on 4/27/11.
-// Copyright 2011 lttlst.com. All rights reserved.
-//
-
-#import <SenTestingKit/SenTestingKit.h>
-
-
-@interface tanksTests : SenTestCase {
-@private
-
-}
-
-@end
+++ /dev/null
-//
-// tanksTests.m
-// tanksTests
-//
-// Created by dsc on 4/27/11.
-// Copyright 2011 __MyCompanyName__. All rights reserved.
-//
-
-#import "tanksTests.h"
-
-
-@implementation tanksTests
-
-- (void)setUp
-{
- [super setUp];
-
- // Set-up code here.
-}
-
-- (void)tearDown
-{
- // Tear-down code here.
-
- [super tearDown];
-}
-
-- (void)testExample
-{
- STFail(@"Unit tests are not implemented yet in tanksTests");
-}
-
-@end