diff --git a/Classes/Retronator/Xni/Framework/Color.h b/Classes/Retronator/Xni/Framework/Color.h index 7693a4f..faef2a5 100644 --- a/Classes/Retronator/Xni/Framework/Color.h +++ b/Classes/Retronator/Xni/Framework/Color.h @@ -10,7 +10,7 @@ #import "Retronator.Xni.Framework.classes.h" -@interface Color : NSObject { +@interface Color : NSObject { uint packedValue; } diff --git a/Classes/Retronator/Xni/Framework/Color.m b/Classes/Retronator/Xni/Framework/Color.m index ac907d0..e4d5fb6 100644 --- a/Classes/Retronator/Xni/Framework/Color.m +++ b/Classes/Retronator/Xni/Framework/Color.m @@ -43,6 +43,18 @@ return [self initWithRed:color.r green:color.g blue:color.b alpha:color.a]; } +- (id) initWithCoder:(NSCoder *)aDecoder { + if (self = [super init]) { + packedValue = [aDecoder decodeIntForKey:@"packedValue"]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeInt:packedValue forKey:@"packedValue"]; +} + + + (Color*) colorWithRed:(int)red green:(int)green blue:(int)blue alpha:(int)alpha { return [[[Color alloc] initWithRed:red green:green blue:blue alpha:alpha] autorelease]; } diff --git a/Classes/Retronator/Xni/Framework/Graphics/Vector4.h b/Classes/Retronator/Xni/Framework/Graphics/Vector4.h index 62ba3cf..de7b8d9 100644 --- a/Classes/Retronator/Xni/Framework/Graphics/Vector4.h +++ b/Classes/Retronator/Xni/Framework/Graphics/Vector4.h @@ -10,7 +10,7 @@ #import "Retronator.Xni.Framework.classes.h" -@interface Vector4 : NSObject { +@interface Vector4 : NSObject { Vector4Struct data; } diff --git a/Classes/Retronator/Xni/Framework/Graphics/Vector4.m b/Classes/Retronator/Xni/Framework/Graphics/Vector4.m index 5143b64..0abae15 100644 --- a/Classes/Retronator/Xni/Framework/Graphics/Vector4.m +++ b/Classes/Retronator/Xni/Framework/Graphics/Vector4.m @@ -32,6 +32,20 @@ return [self initWithVector4Struct:vector.data]; } +- (id) initWithCoder:(NSCoder *)aDecoder { + return [self initWithX:[aDecoder decodeFloatForKey:@"x"] + y:[aDecoder decodeFloatForKey:@"y"] + z:[aDecoder decodeFloatForKey:@"z"] + w:[aDecoder decodeFloatForKey:@"w"]]; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeFloat:data.x forKey:@"x"]; + [aCoder encodeFloat:data.y forKey:@"y"]; + [aCoder encodeFloat:data.z forKey:@"z"]; + [aCoder encodeFloat:data.w forKey:@"w"]; +} + + (Vector4*) vectorWithX:(float)x y:(float)y z:(float)z w:(float)w { return [[[Vector4 alloc] initWithX:x y:y z:z w:w] autorelease]; } diff --git a/Classes/Retronator/Xni/Framework/Matrix.h b/Classes/Retronator/Xni/Framework/Matrix.h index 1a4f4f1..6719869 100644 --- a/Classes/Retronator/Xni/Framework/Matrix.h +++ b/Classes/Retronator/Xni/Framework/Matrix.h @@ -10,7 +10,7 @@ #import "Retronator.Xni.Framework.classes.h" -@interface Matrix : NSObject { +@interface Matrix : NSObject { MatrixStruct data; } diff --git a/Classes/Retronator/Xni/Framework/Matrix.m b/Classes/Retronator/Xni/Framework/Matrix.m index 93fe7d2..4501f22 100644 --- a/Classes/Retronator/Xni/Framework/Matrix.m +++ b/Classes/Retronator/Xni/Framework/Matrix.m @@ -23,6 +23,25 @@ return [self initWithMatrixStruct:matrix.data]; } +- (id)initWithCoder:(NSCoder *)aDecoder +{ + self = [super init]; + if (self) { + float *values = &data.m11; + for (int i=0; i<16; i++) { + values[i] = [aDecoder decodeFloatForKey:[NSString stringWithFormat:@"%i", i]]; + } + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + float *values = &data.m11; + for (int i=0; i<16; i++) { + [aCoder encodeFloat:values[i] forKey:[NSString stringWithFormat:@"%i", i]]; + } +} + + (Matrix*) matrixWithStruct: (MatrixStruct*)matrixStruct { return [[[Matrix alloc] initWithMatrixStruct:matrixStruct] autorelease]; } diff --git a/Classes/Retronator/Xni/Framework/Quaternion.h b/Classes/Retronator/Xni/Framework/Quaternion.h index 987fd54..8d32d53 100644 --- a/Classes/Retronator/Xni/Framework/Quaternion.h +++ b/Classes/Retronator/Xni/Framework/Quaternion.h @@ -10,7 +10,7 @@ #import "Retronator.Xni.Framework.classes.h" -@interface Quaternion : NSObject { +@interface Quaternion : NSObject { Vector4Struct data; } diff --git a/Classes/Retronator/Xni/Framework/Quaternion.m b/Classes/Retronator/Xni/Framework/Quaternion.m index dbd23b8..0c23ed9 100644 --- a/Classes/Retronator/Xni/Framework/Quaternion.m +++ b/Classes/Retronator/Xni/Framework/Quaternion.m @@ -37,6 +37,20 @@ return [self initWithVector4Struct:quaternion.data]; } +- (id) initWithCoder:(NSCoder *)aDecoder { + return [self initWithX:[aDecoder decodeFloatForKey:@"x"] + y:[aDecoder decodeFloatForKey:@"y"] + z:[aDecoder decodeFloatForKey:@"z"] + w:[aDecoder decodeFloatForKey:@"w"]]; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeFloat:data.x forKey:@"x"]; + [aCoder encodeFloat:data.y forKey:@"y"]; + [aCoder encodeFloat:data.z forKey:@"z"]; + [aCoder encodeFloat:data.w forKey:@"w"]; +} + + (Quaternion*) quaternionWithX:(float)x y:(float)y z:(float)z w:(float)w { return [[[Quaternion alloc] initWithX:x y:y z:z w:w] autorelease]; } diff --git a/Classes/Retronator/Xni/Framework/Rectangle.h b/Classes/Retronator/Xni/Framework/Rectangle.h index 16b18b7..684d856 100644 --- a/Classes/Retronator/Xni/Framework/Rectangle.h +++ b/Classes/Retronator/Xni/Framework/Rectangle.h @@ -11,7 +11,7 @@ #import "Retronator.Xni.Framework.classes.h" -@interface Rectangle : NSObject { +@interface Rectangle : NSObject { RectangleStruct data; } diff --git a/Classes/Retronator/Xni/Framework/Rectangle.m b/Classes/Retronator/Xni/Framework/Rectangle.m index e57314e..d04f1e8 100644 --- a/Classes/Retronator/Xni/Framework/Rectangle.m +++ b/Classes/Retronator/Xni/Framework/Rectangle.m @@ -32,6 +32,20 @@ return [self initWithRectangleStruct:rectangle.data]; } +- (id) initWithCoder:(NSCoder *)aDecoder { + return [self initWithX:[aDecoder decodeIntForKey:@"x"] + y:[aDecoder decodeIntForKey:@"y"] + width:[aDecoder decodeIntForKey:@"width"] + height:[aDecoder decodeIntForKey:@"height"]]; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeInt:data.x forKey:@"x"]; + [aCoder encodeInt:data.y forKey:@"y"]; + [aCoder encodeInt:data.width forKey:@"width"]; + [aCoder encodeInt:data.height forKey:@"height"]; +} + + (Rectangle*) rectangleWithX:(int)x y:(int)y width:(int)width height:(int)height { return [[[Rectangle alloc] initWithX:x y:y width:width height:height] autorelease]; } diff --git a/Classes/Retronator/Xni/Framework/Vector2.h b/Classes/Retronator/Xni/Framework/Vector2.h index c5256b6..7aaad50 100644 --- a/Classes/Retronator/Xni/Framework/Vector2.h +++ b/Classes/Retronator/Xni/Framework/Vector2.h @@ -10,7 +10,7 @@ #import "Retronator.Xni.Framework.classes.h" -@interface Vector2 : NSObject { +@interface Vector2 : NSObject { Vector2Struct data; } diff --git a/Classes/Retronator/Xni/Framework/Vector2.m b/Classes/Retronator/Xni/Framework/Vector2.m index 19d9151..bcf902c 100644 --- a/Classes/Retronator/Xni/Framework/Vector2.m +++ b/Classes/Retronator/Xni/Framework/Vector2.m @@ -32,6 +32,15 @@ return [self initWithVector2Struct:vector.data]; } +- (id) initWithCoder:(NSCoder *)aDecoder { + return [self initWithX:[aDecoder decodeFloatForKey:@"x"] y:[aDecoder decodeFloatForKey:@"y"]]; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeFloat:data.x forKey:@"x"]; + [aCoder encodeFloat:data.y forKey:@"y"]; +} + + (Vector2*) vectorWithX:(float)x y:(float)y{ return [[[Vector2 alloc] initWithX:x y:y] autorelease]; } diff --git a/Classes/Retronator/Xni/Framework/Vector3.h b/Classes/Retronator/Xni/Framework/Vector3.h index 4f403ae..a309d73 100644 --- a/Classes/Retronator/Xni/Framework/Vector3.h +++ b/Classes/Retronator/Xni/Framework/Vector3.h @@ -10,7 +10,7 @@ #import "Retronator.Xni.Framework.classes.h" -@interface Vector3 : NSObject { +@interface Vector3 : NSObject { Vector3Struct data; } diff --git a/Classes/Retronator/Xni/Framework/Vector3.m b/Classes/Retronator/Xni/Framework/Vector3.m index 366ca03..d5aa0d9 100644 --- a/Classes/Retronator/Xni/Framework/Vector3.m +++ b/Classes/Retronator/Xni/Framework/Vector3.m @@ -32,6 +32,18 @@ return [self initWithVector3Struct:vector.data]; } +- (id) initWithCoder:(NSCoder *)aDecoder { + return [self initWithX:[aDecoder decodeFloatForKey:@"x"] + y:[aDecoder decodeFloatForKey:@"y"] + z:[aDecoder decodeFloatForKey:@"z"]]; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeFloat:data.x forKey:@"x"]; + [aCoder encodeFloat:data.y forKey:@"y"]; + [aCoder encodeFloat:data.z forKey:@"z"]; +} + + (Vector3*) vectorWithX:(float)x y:(float)y z:(float)z { return [[[Vector3 alloc] initWithX:x y:y z:z] autorelease]; } diff --git a/Classes/Retronator/Xni/Framework/XniPoint.h b/Classes/Retronator/Xni/Framework/XniPoint.h index 9005406..58603bd 100644 --- a/Classes/Retronator/Xni/Framework/XniPoint.h +++ b/Classes/Retronator/Xni/Framework/XniPoint.h @@ -11,7 +11,7 @@ #import "Retronator.Xni.Framework.classes.h" -@interface XniPoint : NSObject { +@interface XniPoint : NSObject { PointStruct data; } diff --git a/Classes/Retronator/Xni/Framework/XniPoint.m b/Classes/Retronator/Xni/Framework/XniPoint.m index 69f2adb..4e2bbb9 100644 --- a/Classes/Retronator/Xni/Framework/XniPoint.m +++ b/Classes/Retronator/Xni/Framework/XniPoint.m @@ -31,6 +31,15 @@ return [self initWithPointStruct:point.data]; } +- (id) initWithCoder:(NSCoder *)aDecoder { + return [self initWithIntX:[aDecoder decodeIntForKey:@"x"] y:[aDecoder decodeIntForKey:@"y"]]; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeInt:data.x forKey:@"x"]; + [aCoder encodeInt:data.y forKey:@"y"]; +} + + (XniPoint*) pointWithX:(int)x y:(int)y { return [[[XniPoint alloc] initWithIntX:x y:y] autorelease]; } diff --git a/XNI.xcodeproj/xcshareddata/xcschemes/XNI Release.xcscheme b/XNI.xcodeproj/xcshareddata/xcschemes/XNI Release.xcscheme index d719ff3..78dfc81 100644 --- a/XNI.xcodeproj/xcshareddata/xcschemes/XNI Release.xcscheme +++ b/XNI.xcodeproj/xcshareddata/xcschemes/XNI Release.xcscheme @@ -1,6 +1,6 @@