summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xCartographic.xcodeproj/project.pbxproj22
-rw-r--r--Classes/GameModeSelection.h8
-rw-r--r--Classes/GameModeSelection.m195
-rw-r--r--Classes/GameModeSelectionLayer.m15
-rw-r--r--Classes/UIImage+ColorMasking.h15
-rw-r--r--Classes/UIImage+ColorMasking.m77
-rw-r--r--Resources/leveldescriptions.fnt99
-rw-r--r--Resources/leveldescriptions.pngbin7780 -> 0 bytes
-rw-r--r--Resources/levelnames.fnt99
-rw-r--r--Resources/levelnames.pngbin8652 -> 0 bytes
10 files changed, 253 insertions, 277 deletions
diff --git a/Cartographic.xcodeproj/project.pbxproj b/Cartographic.xcodeproj/project.pbxproj index 6676ba3..cda609e 100755 --- a/Cartographic.xcodeproj/project.pbxproj +++ b/Cartographic.xcodeproj/project.pbxproj
@@ -101,6 +101,7 @@
101 6C0C140E13F1C3EC003A31B2 /* ValuableObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C0C140D13F1C3EC003A31B2 /* ValuableObject.m */; }; 101 6C0C140E13F1C3EC003A31B2 /* ValuableObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C0C140D13F1C3EC003A31B2 /* ValuableObject.m */; };
102 6C0C141113F2099B003A31B2 /* Cart.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C0C141013F2099B003A31B2 /* Cart.m */; }; 102 6C0C141113F2099B003A31B2 /* Cart.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C0C141013F2099B003A31B2 /* Cart.m */; };
103 6C0C141413F20E98003A31B2 /* GameMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C0C141313F20E98003A31B2 /* GameMode.m */; }; 103 6C0C141413F20E98003A31B2 /* GameMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C0C141313F20E98003A31B2 /* GameMode.m */; };
104 6C18C3CA1402AD9C0005AA4C /* UIImage+ColorMasking.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C18C3C91402AD9C0005AA4C /* UIImage+ColorMasking.m */; };
104 6C29041013EAEB590032DA0F /* TutorialBubble.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C29040F13EAEB590032DA0F /* TutorialBubble.m */; }; 105 6C29041013EAEB590032DA0F /* TutorialBubble.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C29040F13EAEB590032DA0F /* TutorialBubble.m */; };
105 6C29041213EAEC8A0032DA0F /* framestuff.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C29041113EAEC8A0032DA0F /* framestuff.png */; }; 106 6C29041213EAEC8A0032DA0F /* framestuff.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C29041113EAEC8A0032DA0F /* framestuff.png */; };
106 6C39CFE013FC2708002B21AF /* tutorial.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39CFDF13FC2708002B21AF /* tutorial.png */; }; 107 6C39CFE013FC2708002B21AF /* tutorial.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39CFDF13FC2708002B21AF /* tutorial.png */; };
@@ -108,11 +109,7 @@
108 6C39CFF313FD4F8B002B21AF /* GameModeSelection.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C39CFF213FD4F89002B21AF /* GameModeSelection.m */; }; 109 6C39CFF313FD4F8B002B21AF /* GameModeSelection.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C39CFF213FD4F89002B21AF /* GameModeSelection.m */; };
109 6C39CFF513FD5526002B21AF /* paintdaubs.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39CFF413FD5526002B21AF /* paintdaubs.png */; }; 110 6C39CFF513FD5526002B21AF /* paintdaubs.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39CFF413FD5526002B21AF /* paintdaubs.png */; };
110 6C39CFF813FD7638002B21AF /* GameModeSelectionLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C39CFF713FD7637002B21AF /* GameModeSelectionLayer.m */; }; 111 6C39CFF813FD7638002B21AF /* GameModeSelectionLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C39CFF713FD7637002B21AF /* GameModeSelectionLayer.m */; };
111 6C39CFFB13FD7DDE002B21AF /* levelnames.fnt in Resources */ = {isa = PBXBuildFile; fileRef = 6C39CFF913FD7DDE002B21AF /* levelnames.fnt */; };
112 6C39CFFC13FD7DDE002B21AF /* levelnames.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39CFFA13FD7DDE002B21AF /* levelnames.png */; };
113 6C39D00813FD9037002B21AF /* florence.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39D00713FD9037002B21AF /* florence.png */; }; 112 6C39D00813FD9037002B21AF /* florence.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39D00713FD9037002B21AF /* florence.png */; };
114 6C39D00B13FD933D002B21AF /* leveldescriptions.fnt in Resources */ = {isa = PBXBuildFile; fileRef = 6C39D00913FD933D002B21AF /* leveldescriptions.fnt */; };
115 6C39D00C13FD933D002B21AF /* leveldescriptions.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39D00A13FD933D002B21AF /* leveldescriptions.png */; };
116 6C39D01213FD9945002B21AF /* paris.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39D01113FD9945002B21AF /* paris.png */; }; 113 6C39D01213FD9945002B21AF /* paris.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39D01113FD9945002B21AF /* paris.png */; };
117 6C5179C613DF3839006F1F38 /* Morning1.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C5179C513DF3839006F1F38 /* Morning1.png */; }; 114 6C5179C613DF3839006F1F38 /* Morning1.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C5179C513DF3839006F1F38 /* Morning1.png */; };
118 6CC89DD913F2F4E6003704F7 /* Entitlements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6CC89DD813F2F4E6003704F7 /* Entitlements.plist */; }; 115 6CC89DD913F2F4E6003704F7 /* Entitlements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6CC89DD813F2F4E6003704F7 /* Entitlements.plist */; };
@@ -415,6 +412,8 @@
415 6C0C141013F2099B003A31B2 /* Cart.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Cart.m; sourceTree = "<group>"; }; 412 6C0C141013F2099B003A31B2 /* Cart.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Cart.m; sourceTree = "<group>"; };
416 6C0C141213F20E98003A31B2 /* GameMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameMode.h; sourceTree = "<group>"; }; 413 6C0C141213F20E98003A31B2 /* GameMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameMode.h; sourceTree = "<group>"; };
417 6C0C141313F20E98003A31B2 /* GameMode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GameMode.m; sourceTree = "<group>"; }; 414 6C0C141313F20E98003A31B2 /* GameMode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GameMode.m; sourceTree = "<group>"; };
415 6C18C3C81402AD9C0005AA4C /* UIImage+ColorMasking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+ColorMasking.h"; sourceTree = "<group>"; };
416 6C18C3C91402AD9C0005AA4C /* UIImage+ColorMasking.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ColorMasking.m"; sourceTree = "<group>"; };
418 6C29040E13EAEB590032DA0F /* TutorialBubble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TutorialBubble.h; sourceTree = "<group>"; }; 417 6C29040E13EAEB590032DA0F /* TutorialBubble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TutorialBubble.h; sourceTree = "<group>"; };
419 6C29040F13EAEB590032DA0F /* TutorialBubble.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TutorialBubble.m; sourceTree = "<group>"; }; 418 6C29040F13EAEB590032DA0F /* TutorialBubble.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TutorialBubble.m; sourceTree = "<group>"; };
420 6C29041113EAEC8A0032DA0F /* framestuff.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = framestuff.png; sourceTree = "<group>"; }; 419 6C29041113EAEC8A0032DA0F /* framestuff.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = framestuff.png; sourceTree = "<group>"; };
@@ -425,11 +424,7 @@
425 6C39CFF413FD5526002B21AF /* paintdaubs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = paintdaubs.png; sourceTree = "<group>"; }; 424 6C39CFF413FD5526002B21AF /* paintdaubs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = paintdaubs.png; sourceTree = "<group>"; };
426 6C39CFF613FD7636002B21AF /* GameModeSelectionLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameModeSelectionLayer.h; sourceTree = "<group>"; }; 425 6C39CFF613FD7636002B21AF /* GameModeSelectionLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameModeSelectionLayer.h; sourceTree = "<group>"; };
427 6C39CFF713FD7637002B21AF /* GameModeSelectionLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GameModeSelectionLayer.m; sourceTree = "<group>"; }; 426 6C39CFF713FD7637002B21AF /* GameModeSelectionLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GameModeSelectionLayer.m; sourceTree = "<group>"; };
428 6C39CFF913FD7DDE002B21AF /* levelnames.fnt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = levelnames.fnt; sourceTree = "<group>"; };
429 6C39CFFA13FD7DDE002B21AF /* levelnames.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = levelnames.png; sourceTree = "<group>"; };
430 6C39D00713FD9037002B21AF /* florence.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = florence.png; sourceTree = "<group>"; }; 427 6C39D00713FD9037002B21AF /* florence.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = florence.png; sourceTree = "<group>"; };
431 6C39D00913FD933D002B21AF /* leveldescriptions.fnt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = leveldescriptions.fnt; sourceTree = "<group>"; };
432 6C39D00A13FD933D002B21AF /* leveldescriptions.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = leveldescriptions.png; sourceTree = "<group>"; };
433 6C39D01113FD9945002B21AF /* paris.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = paris.png; sourceTree = "<group>"; }; 428 6C39D01113FD9945002B21AF /* paris.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = paris.png; sourceTree = "<group>"; };
434 6C5179C513DF3839006F1F38 /* Morning1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Morning1.png; sourceTree = "<group>"; }; 429 6C5179C513DF3839006F1F38 /* Morning1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Morning1.png; sourceTree = "<group>"; };
435 6CC89DD813F2F4E6003704F7 /* Entitlements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Entitlements.plist; sourceTree = "<group>"; }; 430 6CC89DD813F2F4E6003704F7 /* Entitlements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Entitlements.plist; sourceTree = "<group>"; };
@@ -736,6 +731,8 @@
736 6C39CFF213FD4F89002B21AF /* GameModeSelection.m */, 731 6C39CFF213FD4F89002B21AF /* GameModeSelection.m */,
737 6C39CFF613FD7636002B21AF /* GameModeSelectionLayer.h */, 732 6C39CFF613FD7636002B21AF /* GameModeSelectionLayer.h */,
738 6C39CFF713FD7637002B21AF /* GameModeSelectionLayer.m */, 733 6C39CFF713FD7637002B21AF /* GameModeSelectionLayer.m */,
734 6C18C3C81402AD9C0005AA4C /* UIImage+ColorMasking.h */,
735 6C18C3C91402AD9C0005AA4C /* UIImage+ColorMasking.m */,
739 ); 736 );
740 path = Classes; 737 path = Classes;
741 sourceTree = "<group>"; 738 sourceTree = "<group>";
@@ -777,10 +774,6 @@
777 3F6C7F5D13D648D300C038FE /* Fonts */ = { 774 3F6C7F5D13D648D300C038FE /* Fonts */ = {
778 isa = PBXGroup; 775 isa = PBXGroup;
779 children = ( 776 children = (
780 6C39D00913FD933D002B21AF /* leveldescriptions.fnt */,
781 6C39D00A13FD933D002B21AF /* leveldescriptions.png */,
782 6C39CFF913FD7DDE002B21AF /* levelnames.fnt */,
783 6C39CFFA13FD7DDE002B21AF /* levelnames.png */,
784 3F7D0F3D13D8F0C800B6CE14 /* getoffthatboatrightnowyounglady.fnt */, 777 3F7D0F3D13D8F0C800B6CE14 /* getoffthatboatrightnowyounglady.fnt */,
785 3F7D0F3E13D8F0C800B6CE14 /* getoffthatboatrightnowyounglady.png */, 778 3F7D0F3E13D8F0C800B6CE14 /* getoffthatboatrightnowyounglady.png */,
786 3F6C7F5913D648CE00C038FE /* helvetica2.fnt */, 779 3F6C7F5913D648CE00C038FE /* helvetica2.fnt */,
@@ -1403,11 +1396,7 @@
1403 6C39CFE013FC2708002B21AF /* tutorial.png in Resources */, 1396 6C39CFE013FC2708002B21AF /* tutorial.png in Resources */,
1404 6C39CFE213FC2713002B21AF /* tutorial2.png in Resources */, 1397 6C39CFE213FC2713002B21AF /* tutorial2.png in Resources */,
1405 6C39CFF513FD5526002B21AF /* paintdaubs.png in Resources */, 1398 6C39CFF513FD5526002B21AF /* paintdaubs.png in Resources */,
1406 6C39CFFB13FD7DDE002B21AF /* levelnames.fnt in Resources */,
1407 6C39CFFC13FD7DDE002B21AF /* levelnames.png in Resources */,
1408 6C39D00813FD9037002B21AF /* florence.png in Resources */, 1399 6C39D00813FD9037002B21AF /* florence.png in Resources */,
1409 6C39D00B13FD933D002B21AF /* leveldescriptions.fnt in Resources */,
1410 6C39D00C13FD933D002B21AF /* leveldescriptions.png in Resources */,
1411 6C39D01213FD9945002B21AF /* paris.png in Resources */, 1400 6C39D01213FD9945002B21AF /* paris.png in Resources */,
1412 ); 1401 );
1413 runOnlyForDeploymentPostprocessing = 0; 1402 runOnlyForDeploymentPostprocessing = 0;
@@ -1455,6 +1444,7 @@
1455 6CC89DDF13F31413003704F7 /* TutorialMode.m in Sources */, 1444 6CC89DDF13F31413003704F7 /* TutorialMode.m in Sources */,
1456 6C39CFF313FD4F8B002B21AF /* GameModeSelection.m in Sources */, 1445 6C39CFF313FD4F8B002B21AF /* GameModeSelection.m in Sources */,
1457 6C39CFF813FD7638002B21AF /* GameModeSelectionLayer.m in Sources */, 1446 6C39CFF813FD7638002B21AF /* GameModeSelectionLayer.m in Sources */,
1447 6C18C3CA1402AD9C0005AA4C /* UIImage+ColorMasking.m in Sources */,
1458 ); 1448 );
1459 runOnlyForDeploymentPostprocessing = 0; 1449 runOnlyForDeploymentPostprocessing = 0;
1460 }; 1450 };
diff --git a/Classes/GameModeSelection.h b/Classes/GameModeSelection.h index 66d0a5a..f6aaeff 100644 --- a/Classes/GameModeSelection.h +++ b/Classes/GameModeSelection.h
@@ -12,19 +12,15 @@
12 NSString* name; 12 NSString* name;
13 NSString* location; 13 NSString* location;
14 BOOL unlocked; 14 BOOL unlocked;
15 int highscore;
16 NSString* unlockCondition; 15 NSString* unlockCondition;
17
18 CCLabelBMFont* nameLabel;
19 CCLabelBMFont* otherLabel;
20} 16}
21 17
22@property (readonly) NSString* name; 18@property (readonly) NSString* name;
23@property (readonly) NSString* location; 19@property (readonly) NSString* location;
24@property (readonly) BOOL unlocked; 20@property (readonly) BOOL unlocked;
25@property (nonatomic,assign) int highscore;
26@property (nonatomic,retain) NSString* unlockCondition;
27- (id)initWithName:(NSString*)name location:(NSString*)location filename:(NSString*)filename unlocked:(BOOL)unlocked; 21- (id)initWithName:(NSString*)name location:(NSString*)location filename:(NSString*)filename unlocked:(BOOL)unlocked;
22- (id)initWithName:(NSString *)name location:(NSString *)location filename:(NSString *)filename highscore:(int)highscore;
23- (id)initWithName:(NSString *)name location:(NSString *)location filename:(NSString *)filename unlockCondition:(NSString*)unlockCondition;
28- (void)buttonTapped; 24- (void)buttonTapped;
29 25
30@end 26@end
diff --git a/Classes/GameModeSelection.m b/Classes/GameModeSelection.m index 0816828..fc6797a 100644 --- a/Classes/GameModeSelection.m +++ b/Classes/GameModeSelection.m
@@ -9,10 +9,11 @@
9#import "GameModeSelection.h" 9#import "GameModeSelection.h"
10#import "TutorialMode.h" 10#import "TutorialMode.h"
11#import "ClassicGameMode.h" 11#import "ClassicGameMode.h"
12#import "UIImage+ColorMasking.h"
12 13
13@implementation GameModeSelection 14@implementation GameModeSelection
14 15
15@synthesize name, location, unlocked, highscore, unlockCondition; 16@synthesize name, location, unlocked;
16 17
17- (id)initWithName:(NSString*)m_name location:(NSString*)m_location filename:(NSString*)filename unlocked:(BOOL)m_unlocked; 18- (id)initWithName:(NSString*)m_name location:(NSString*)m_location filename:(NSString*)filename unlocked:(BOOL)m_unlocked;
18{ 19{
@@ -26,92 +27,186 @@
26 location = m_location; 27 location = m_location;
27 unlocked = m_unlocked; 28 unlocked = m_unlocked;
28 29
29 if (!unlocked) 30 NSString* filenameMod;
31
32 if (unlocked)
30 { 33 {
34 filenameMod = [NSString stringWithFormat:@"%@-unlocked", filename];
35 } else {
36 filenameMod = [NSString stringWithFormat:@"%@-locked", filename];
31 name = [@"" stringByPaddingToLength:name.length withString:@"?" startingAtIndex:0]; 37 name = [@"" stringByPaddingToLength:name.length withString:@"?" startingAtIndex:0];
32 location = [@"" stringByPaddingToLength:location.length withString:@"?" startingAtIndex:0]; 38 location = [@"" stringByPaddingToLength:location.length withString:@"?" startingAtIndex:0];
33 } 39 }
34 40
35 nameLabel = [CCLabelBMFont labelWithString:[NSString stringWithFormat:@"%@ (%@)", location, name] fntFile:@"levelnames.fnt"]; 41 // First, create the frame that we will put the level picture inside
42 CGImageRef framestuff = [[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"framestuff" ofType:@"png"]] CGImage];
43 CGImageRef topLeftRef = CGImageCreateWithImageInRect(framestuff, CGRectMake(0, 0, 8, 8));
44 CGImageRef topRightRef = CGImageCreateWithImageInRect(framestuff, CGRectMake(8, 0, 8, 8));
45 CGImageRef bottomLeftRef = CGImageCreateWithImageInRect(framestuff, CGRectMake(0, 8, 8, 8));
46 CGImageRef bottomRightRef = CGImageCreateWithImageInRect(framestuff, CGRectMake(8, 8, 8, 8));
47 CGImageRef topBorderRef = CGImageCreateWithImageInRect(framestuff, CGRectMake(0, 16, 8, 8));
48 CGImageRef leftBorderRef = CGImageCreateWithImageInRect(framestuff, CGRectMake(8, 16, 8, 8));
49 CGImageRef rightBorderRef = CGImageCreateWithImageInRect(framestuff, CGRectMake(0, 24, 8, 8));
50 CGImageRef bottomBorderRef = CGImageCreateWithImageInRect(framestuff, CGRectMake(8, 24, 8, 8));
51 UIImage* topLeft = [UIImage imageWithCGImage:topLeftRef];
52 UIImage* topRight = [UIImage imageWithCGImage:topRightRef];
53 UIImage* bottomLeft = [UIImage imageWithCGImage:bottomLeftRef];
54 UIImage* bottomRight = [UIImage imageWithCGImage:bottomRightRef];
55 UIImage* topBorder = [UIImage imageWithCGImage:topBorderRef];
56 UIImage* leftBorder = [UIImage imageWithCGImage:leftBorderRef];
57 UIImage* rightBorder = [UIImage imageWithCGImage:rightBorderRef];
58 UIImage* bottomBorder = [UIImage imageWithCGImage:bottomBorderRef];
59 CGImageRelease(topLeftRef);
60 CGImageRelease(topRightRef);
61 CGImageRelease(bottomLeftRef);
62 CGImageRelease(bottomRightRef);
63 CGImageRelease(topBorderRef);
64 CGImageRelease(leftBorderRef);
65 CGImageRelease(rightBorderRef);
66 CGImageRelease(bottomBorderRef);
36 67
37 [self addChild:nameLabel]; 68 CGSize boxSize = CGSizeMake(128+12, 128+12);
38 nameLabel.position = ccp(0, -32-nameLabel.contentSize.height); 69 UIGraphicsBeginImageContext(boxSize);
70 CGContextRef context = UIGraphicsGetCurrentContext();
71 [topLeft drawInRect:CGRectMake(0, 0, 8, 8)];
72 [topBorder drawInRect:CGRectMake(8, 0, boxSize.width-16, 8)];
73 [topRight drawInRect:CGRectMake(8+boxSize.width-16, 0, 8, 8)];
74 [rightBorder drawInRect:CGRectMake(8+boxSize.width-16, 8, 8, boxSize.height-16)];
75 [bottomRight drawInRect:CGRectMake(8+boxSize.width-16, 8+boxSize.height-16, 8, 8)];
76 [bottomBorder drawInRect:CGRectMake(8, 8+boxSize.height-16, boxSize.width-16, 8)];
77 [bottomLeft drawInRect:CGRectMake(0, 8+boxSize.height-16, 8, 8)];
78 [leftBorder drawInRect:CGRectMake(0, 8, 8, boxSize.height-16)];
79 CGContextSetFillColorWithColor(context, [[UIColor whiteColor] CGColor]);
80 CGContextFillRect(context, CGRectMake(8, 8, boxSize.width-16, boxSize.height-16));
81 UIImage* selectionBackground = UIGraphicsGetImageFromCurrentImageContext();
39 82
83 // Now we want to put the level image inside the frame without messing up the frame itself
40 UIImage* innerPicture = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:filename ofType:@"png"]]; 84 UIImage* innerPicture = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:filename ofType:@"png"]];
41 UIGraphicsBeginImageContext(CGSizeMake(128, 128)); 85 CGContextClipToMask(context, CGRectMake(0, 0, boxSize.width, boxSize.height), [[selectionBackground opaqueMaskFromWhiteImage] CGImage]);
42 CGContextRef context = UIGraphicsGetCurrentContext(); 86 [innerPicture drawInRect:CGRectMake(6, 6, 128, 128)];
43 UIGraphicsPushContext(context); 87 selectionBackground = UIGraphicsGetImageFromCurrentImageContext();
88 UIGraphicsEndImageContext();
89
90 // The frame needs a shadow, so let's redraw it in a new context
91 UIGraphicsBeginImageContext(CGSizeMake(boxSize.width+10, boxSize.height+10));
92 context = UIGraphicsGetCurrentContext();
93 CGContextSaveGState(context);
44 94
45 if (unlocked) 95 if (unlocked)
46 { 96 {
47 [innerPicture drawInRect:CGRectMake(0, 0, 128, 128)]; 97 CGContextSetShadow(context, CGSizeMake(-6, 6), 4.0f);
98 [selectionBackground drawInRect:CGRectMake(10, 0, boxSize.width, boxSize.height)];
48 } else { 99 } else {
100 // Draw the picture in grayscale if the level has not yet been unlocked
101 CGContextClipToMask(context, CGRectMake(10, 0, boxSize.width, boxSize.height), [selectionBackground CGImage]);
49 CGContextSetFillColorWithColor(context, [[UIColor whiteColor] CGColor]); 102 CGContextSetFillColorWithColor(context, [[UIColor whiteColor] CGColor]);
50 CGContextFillRect(context, CGRectMake(0, 0, 128, 128)); 103 CGContextFillRect(context, CGRectMake(10, 0, boxSize.width, boxSize.height));
51 [innerPicture drawInRect:CGRectMake(0, 0, 128, 128) blendMode:kCGBlendModeLuminosity alpha:1.0]; 104 CGContextRestoreGState(context);
105
106 CGContextSaveGState(context);
107 CGContextSetShadow(context, CGSizeMake(-6, 6), 4.0f);
108 [selectionBackground drawInRect:CGRectMake(10, 0, boxSize.width, boxSize.height) blendMode:kCGBlendModeLuminosity alpha:1.0];
52 } 109 }
53 110
54 UIGraphicsPopContext(); 111 CGContextRestoreGState(context);
55 CGImageRef innerPictureRef = [UIGraphicsGetImageFromCurrentImageContext() CGImage]; 112 CGImageRef pictureRef = [UIGraphicsGetImageFromCurrentImageContext() CGImage];
56 113
57 if (unlocked) 114 CCSprite* picture = [CCSprite spriteWithCGImage:pictureRef key:[NSString stringWithFormat:@"gms-%@", filenameMod]];
58 {
59 CCSprite* picture = [CCSprite spriteWithCGImage:innerPictureRef key:[NSString stringWithFormat:@"gms-%@", filename]];
60 UIGraphicsPushContext(context);
61 CGContextSetFillColorWithColor(context, [[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5] CGColor]);
62 CGContextFillRect(context, CGRectMake(0, 0, 128, 128));
63 UIGraphicsPopContext();
64 CGImageRef selectedButtonRef = [UIGraphicsGetImageFromCurrentImageContext() CGImage];
65 CCSprite* selectedButton = [CCSprite spriteWithCGImage:selectedButtonRef key:[NSString stringWithFormat:@"gms-%@-selected", filename]];
66
67 CCMenuItemSprite* pictureMenuItem = [CCMenuItemSprite itemFromNormalSprite:picture selectedSprite:selectedButton target:self selector:@selector(buttonTapped)];
68 CCMenu* theMenu = [CCMenu menuWithItems:pictureMenuItem, nil];
69 theMenu.position = ccp(0, 32);
70 [self addChild:theMenu];
71 } else {
72 CCSprite* picture = [CCSprite spriteWithCGImage:innerPictureRef key:[NSString stringWithFormat:@"gms-%@-locked", filename]];
73 picture.position = ccp(0, 32);
74 [self addChild:picture];
75 }
76 115
116 // We're also going to need a "selected" image state for the button
117 CGContextSaveGState(context);
118 CGContextClipToMask(context, CGRectMake(10, 0, boxSize.width, boxSize.height), [selectionBackground CGImage]);
119 CGContextSetFillColorWithColor(context, [[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5] CGColor]);
120 CGContextFillRect(context, CGRectMake(10, 0, boxSize.width, boxSize.height));
121 CGContextRestoreGState(context);
122 CGImageRef selectedButtonRef = [UIGraphicsGetImageFromCurrentImageContext() CGImage];
77 UIGraphicsEndImageContext(); 123 UIGraphicsEndImageContext();
124 CCSprite* selectedButton = [CCSprite spriteWithCGImage:selectedButtonRef key:[NSString stringWithFormat:@"gms-%@-selected", filenameMod]];
125
126 CCMenuItemSprite* pictureMenuItem = [CCMenuItemSprite itemFromNormalSprite:picture selectedSprite:selectedButton target:self selector:@selector(buttonTapped)];
127 CCMenu* theMenu = [CCMenu menuWithItems:pictureMenuItem, nil];
128 theMenu.position = ccp(-5, 0);
129 [self addChild:theMenu];
130
131 // Render the titles
132 UIFont* titleFont = [UIFont fontWithName:@"AmericanTypewriter-Bold" size:18.0f];
133 CGSize titleSize = [location sizeWithFont:titleFont constrainedToSize:CGSizeMake(128, 0)];
134 UIFont* subtitleFont = [UIFont fontWithName:@"AmericanTypewriter" size:18.0f];
135 CGSize subtitleSize = [name sizeWithFont:subtitleFont constrainedToSize:CGSizeMake(128, 0)];
136 CGSize combinedTitleSize = CGSizeMake(128, titleSize.height + 10 + subtitleSize.height + 10);
137
138 UIGraphicsBeginImageContext(combinedTitleSize);
139 context = UIGraphicsGetCurrentContext();
140 CGContextSetShadow(context, CGSizeMake(-6, 6), 4.0f);
141 [location drawInRect:CGRectMake(10, 0, 128, titleSize.height) withFont:titleFont lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];
142 [name drawInRect:CGRectMake(10, titleSize.height, 128, subtitleSize.height) withFont:subtitleFont lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];
143
144 CGImageRef titleImage = [UIGraphicsGetImageFromCurrentImageContext() CGImage];
145 UIGraphicsEndImageContext();
146 CCSprite* titleSprite = [CCSprite spriteWithCGImage:titleImage key:[NSString stringWithFormat:@"gms-%@-title", filenameMod]];
147 titleSprite.position = ccp(-10, (boxSize.height)/2+(combinedTitleSize.height)/2);
148 [self addChild:titleSprite];
78 } 149 }
79 150
80 return self; 151 return self;
81} 152}
82 153
83- (void)setHighscore:(int)m_highscore 154- (id)initWithName:(NSString *)m_name location:(NSString *)m_location filename:(NSString *)m_filename highscore:(int)m_highscore
84{ 155{
85 if (unlocked) 156 self = [self initWithName:m_name location:m_location filename:m_filename unlocked:YES];
157
158 if (nil != self)
86 { 159 {
87 highscore = m_highscore; 160 if (m_highscore != 0)
88 161 {
89 otherLabel = [CCLabelBMFont labelWithString:[NSString stringWithFormat:@"Highscore: %d", highscore] fntFile:@"leveldescriptions.fnt"]; 162 // Render the highscore label
90 otherLabel.position = ccp(0, -32-nameLabel.contentSize.height-otherLabel.contentSize.height); 163 NSString* highscoreString = [NSString stringWithFormat:@"Highscore: %d", m_highscore];
91 [self addChild:otherLabel]; 164 UIFont* highscoreFont = [UIFont fontWithName:@"AmericanTypewriter" size:16.0f];
165 CGSize highscoreSize = [highscoreString sizeWithFont:highscoreFont];
166
167 UIGraphicsBeginImageContext(CGSizeMake(highscoreSize.width+10, highscoreSize.height+10));
168 CGContextRef context = UIGraphicsGetCurrentContext();
169 CGContextSetShadow(context, CGSizeMake(-6, 6), 4.0f);
170 [highscoreString drawInRect:CGRectMake(10, 0, highscoreSize.width, highscoreSize.height) withFont:highscoreFont];
171
172 CGImageRef highscoreImage = [UIGraphicsGetImageFromCurrentImageContext() CGImage];
173 UIGraphicsEndImageContext();
174 CCSprite* highscoreSprite = [CCSprite spriteWithCGImage:highscoreImage key:[NSString stringWithFormat:@"gms-%@-highscore", m_filename]];
175 highscoreSprite.position = ccp((128-highscoreSize.width)/2, 0-64-(highscoreSize.height)/2-10);
176 [self addChild:highscoreSprite];
177 }
92 } 178 }
179
180 return self;
93} 181}
94 182
95- (void)setUnlockCondition:(NSString *)m_unlockCondition 183- (id)initWithName:(NSString *)m_name location:(NSString *)m_location filename:(NSString *)m_filename unlockCondition:(NSString*)m_unlockCondition
96{ 184{
97 if (!unlocked) 185 self = [self initWithName:m_name location:m_location filename:m_filename unlocked:NO];
186
187 if (nil != self)
98 { 188 {
99 unlockCondition = m_unlockCondition; 189 unlockCondition = m_unlockCondition;
100
101 otherLabel = [CCLabelBMFont labelWithString:unlockCondition fntFile:@"leveldescriptions.fnt"];
102 otherLabel.position = ccp(0, -32-nameLabel.contentSize.height-otherLabel.contentSize.height);
103 [self addChild:otherLabel];
104 } 190 }
191
192 return self;
105} 193}
106 194
107- (void)buttonTapped 195- (void)buttonTapped
108{ 196{
109 if ([name isEqual:@"Tutorial"]) 197 if (unlocked)
110 {
111 [[CCDirector sharedDirector] replaceScene:[TutorialMode scene]];
112 } else if ([name isEqual:@"Collect"])
113 { 198 {
114 [[CCDirector sharedDirector] replaceScene:[ClassicGameMode scene]]; 199 if ([name isEqual:@"Tutorial"])
200 {
201 [[CCDirector sharedDirector] replaceScene:[TutorialMode scene]];
202 } else if ([name isEqual:@"Collect"])
203 {
204 [[CCDirector sharedDirector] replaceScene:[ClassicGameMode scene]];
205 }
206 } else {
207 UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"To unlock this game mode:" message:unlockCondition delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
208 [alertView show];
209 [alertView release];
115 } 210 }
116} 211}
117 212
diff --git a/Classes/GameModeSelectionLayer.m b/Classes/GameModeSelectionLayer.m index 3e1995e..a90606e 100644 --- a/Classes/GameModeSelectionLayer.m +++ b/Classes/GameModeSelectionLayer.m
@@ -42,27 +42,28 @@
42 [self addChild:tutorialSelection]; 42 [self addChild:tutorialSelection];
43 43
44 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; 44 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
45 GameModeSelection* collectSelection = [[[GameModeSelection alloc] initWithName:@"Collect" location:@"Paris" filename:@"paris" unlocked:[defaults boolForKey:@"hasDoneTutorial"]] autorelease]; 45 GameModeSelection* collectSelection;
46 collectSelection.position = ccp(400-32, 160);
47 46
48 if (collectSelection.unlocked) 47 if ([defaults boolForKey:@"hasDoneTutorial"])
49 { 48 {
50 const char* sqlQuery = "SELECT * FROM highscores ORDER BY score DESC LIMIT 1"; 49 const char* sqlQuery = "SELECT * FROM highscores ORDER BY score DESC LIMIT 1";
51 sqlite3_stmt* compiled_statement; 50 sqlite3_stmt* compiled_statement;
51 int score = 0;
52 52
53 if (sqlite3_prepare_v2([Cart_CollectAppDelegate database], sqlQuery, -1, &compiled_statement, NULL) == SQLITE_OK) 53 if (sqlite3_prepare_v2([Cart_CollectAppDelegate database], sqlQuery, -1, &compiled_statement, NULL) == SQLITE_OK)
54 { 54 {
55 if (sqlite3_step(compiled_statement) == SQLITE_ROW) 55 if (sqlite3_step(compiled_statement) == SQLITE_ROW)
56 { 56 {
57 int score = sqlite3_column_int(compiled_statement, 2); 57 score = sqlite3_column_int(compiled_statement, 2);
58
59 [collectSelection setHighscore:score];
60 } 58 }
61 } 59 }
60
61 collectSelection = [[[GameModeSelection alloc] initWithName:@"Collect" location:@"Paris" filename:@"paris" highscore:score] autorelease];
62 } else { 62 } else {
63 [collectSelection setUnlockCondition:@"Beat the tutorial!"]; 63 collectSelection = [[[GameModeSelection alloc] initWithName:@"Collect" location:@"Paris" filename:@"paris" unlockCondition:@"Beat the tutorial!"] autorelease];
64 } 64 }
65 65
66 collectSelection.position = ccp(320+32,160);
66 [self addChild:collectSelection]; 67 [self addChild:collectSelection];
67 68
68 CCMenuItemImage* newgameMenuItem = [CCMenuItemImage itemFromNormalImage:@"back.png" selectedImage:@"back2.png" target:self selector:@selector(mainmenu)]; 69 CCMenuItemImage* newgameMenuItem = [CCMenuItemImage itemFromNormalImage:@"back.png" selectedImage:@"back2.png" target:self selector:@selector(mainmenu)];
diff --git a/Classes/UIImage+ColorMasking.h b/Classes/UIImage+ColorMasking.h new file mode 100644 index 0000000..d25fafb --- /dev/null +++ b/Classes/UIImage+ColorMasking.h
@@ -0,0 +1,15 @@
1//
2// UIImage+ColorMasking.h
3// Cartographic
4//
5// Created by Starla Insigna on 8/22/11.
6// Copyright 2011 Four Island. All rights reserved.
7//
8
9#import <UIKit/UIKit.h>
10
11@interface UIImage (ColorMasking)
12
13- (UIImage *)opaqueMaskFromWhiteImage;
14
15@end
diff --git a/Classes/UIImage+ColorMasking.m b/Classes/UIImage+ColorMasking.m new file mode 100644 index 0000000..e4da8c8 --- /dev/null +++ b/Classes/UIImage+ColorMasking.m
@@ -0,0 +1,77 @@
1//
2// UIImage+ColorMasking.m
3// Cartographic
4//
5// Created by Starla Insigna on 8/22/11.
6// Copyright 2011 Four Island. All rights reserved.
7//
8
9#import "UIImage+ColorMasking.h"
10
11@implementation UIImage (ColorMasking)
12
13typedef enum {
14 ALPHA = 0,
15 BLUE = 1,
16 GREEN = 2,
17 RED = 3
18} PIXELS;
19
20- (UIImage *)opaqueMaskFromWhiteImage
21{
22 CGSize size = [self size];
23 int width = size.width;
24 int height = size.height;
25
26 // the pixels will be painted to this array
27 uint32_t *pixels = (uint32_t *) malloc(width * height * sizeof(uint32_t));
28
29 // clear the pixels so any transparency is preserved
30 memset(pixels, 0, width * height * sizeof(uint32_t));
31
32 CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
33
34 // create a context with RGBA pixels
35 CGContextRef context = CGBitmapContextCreate(pixels, width, height, 8, width * sizeof(uint32_t), colorSpace,
36 kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast);
37
38 // paint the bitmap to our context which will fill in the pixels array
39 CGContextDrawImage(context, CGRectMake(0, 0, width, height), [self CGImage]);
40
41 for(int y = 0; y < height; y++) {
42 for(int x = 0; x < width; x++) {
43 uint8_t *rgbaPixel = (uint8_t *) &pixels[y * width + x];
44
45 if ((rgbaPixel[RED] == 255) && (rgbaPixel[GREEN] == 255) && (rgbaPixel[BLUE] == 255) && (rgbaPixel[ALPHA] == 255))
46 {
47 rgbaPixel[RED] = 255;
48 rgbaPixel[GREEN] = 255;
49 rgbaPixel[BLUE] = 255;
50 rgbaPixel[ALPHA] = 255;
51 } else {
52 rgbaPixel[RED] = 0;
53 rgbaPixel[GREEN] = 0;
54 rgbaPixel[BLUE] = 0;
55 rgbaPixel[ALPHA] = 0;
56 }
57 }
58 }
59
60 // create a new CGImageRef from our context with the modified pixels
61 CGImageRef image = CGBitmapContextCreateImage(context);
62
63 // we're done with the context, color space, and pixels
64 CGContextRelease(context);
65 CGColorSpaceRelease(colorSpace);
66 free(pixels);
67
68 // make a new UIImage to return
69 UIImage *resultUIImage = [UIImage imageWithCGImage:image];
70
71 // we're done with image now too
72 CGImageRelease(image);
73
74 return resultUIImage;
75}
76
77@end
diff --git a/Resources/leveldescriptions.fnt b/Resources/leveldescriptions.fnt deleted file mode 100644 index 2cf1ce6..0000000 --- a/Resources/leveldescriptions.fnt +++ /dev/null
@@ -1,99 +0,0 @@
1info face="BitstreamVeraSansMono-Roman" size=16 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
2common lineHeight=19 base=15 scaleW=512 scaleH=512 pages=1 packed=0
3page id=0 file="leveldescriptions.png"
4chars count=94
5char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=15 xadvance=10 page=0 chnl=0
6char id=124 x=0 y=0 width=3 height=18 xoffset=4 yoffset=2 xadvance=10 page=0 chnl=0
7char id=106 x=3 y=0 width=7 height=18 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
8char id=36 x=10 y=0 width=9 height=17 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
9char id=125 x=19 y=0 width=8 height=17 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0
10char id=123 x=27 y=0 width=8 height=17 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0
11char id=93 x=35 y=0 width=6 height=17 xoffset=3 yoffset=2 xadvance=10 page=0 chnl=0
12char id=91 x=41 y=0 width=5 height=17 xoffset=4 yoffset=2 xadvance=10 page=0 chnl=0
13char id=41 x=46 y=0 width=6 height=17 xoffset=3 yoffset=2 xadvance=10 page=0 chnl=0
14char id=40 x=52 y=0 width=5 height=17 xoffset=3 yoffset=2 xadvance=10 page=0 chnl=0
15char id=81 x=57 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
16char id=92 x=67 y=0 width=10 height=15 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
17char id=64 x=77 y=0 width=11 height=15 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=0
18char id=47 x=88 y=0 width=10 height=15 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
19char id=100 x=98 y=0 width=10 height=15 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
20char id=98 x=108 y=0 width=9 height=15 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0
21char id=38 x=117 y=0 width=11 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
22char id=48 x=128 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
23char id=57 x=137 y=0 width=10 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
24char id=56 x=147 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
25char id=54 x=156 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
26char id=53 x=165 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
27char id=51 x=174 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
28char id=121 x=183 y=0 width=11 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
29char id=113 x=194 y=0 width=9 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
30char id=112 x=203 y=0 width=9 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
31char id=108 x=212 y=0 width=9 height=14 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
32char id=107 x=221 y=0 width=10 height=14 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0
33char id=105 x=231 y=0 width=9 height=14 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
34char id=104 x=240 y=0 width=9 height=14 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0
35char id=103 x=249 y=0 width=10 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
36char id=102 x=259 y=0 width=9 height=14 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0
37char id=85 x=268 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
38char id=83 x=277 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
39char id=79 x=286 y=0 width=10 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
40char id=74 x=296 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
41char id=71 x=305 y=0 width=10 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
42char id=67 x=315 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
43char id=35 x=324 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
44char id=37 x=335 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
45char id=59 x=346 y=0 width=4 height=13 xoffset=3 yoffset=6 xadvance=10 page=0 chnl=0
46char id=63 x=350 y=0 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0
47char id=33 x=359 y=0 width=3 height=13 xoffset=4 yoffset=3 xadvance=10 page=0 chnl=0
48char id=55 x=362 y=0 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
49char id=52 x=371 y=0 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
50char id=50 x=381 y=0 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
51char id=49 x=390 y=0 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0
52char id=116 x=399 y=0 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
53char id=90 x=408 y=0 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
54char id=89 x=418 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
55char id=88 x=429 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
56char id=87 x=440 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
57char id=86 x=451 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
58char id=84 x=462 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
59char id=82 x=473 y=0 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
60char id=80 x=483 y=0 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0
61char id=78 x=492 y=0 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
62char id=77 x=501 y=0 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
63char id=76 x=0 y=18 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0
64char id=75 x=9 y=18 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
65char id=73 x=19 y=18 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0
66char id=72 x=28 y=18 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
67char id=70 x=37 y=18 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0
68char id=69 x=46 y=18 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0
69char id=68 x=55 y=18 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
70char id=66 x=64 y=18 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
71char id=65 x=73 y=18 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
72char id=43 x=84 y=18 width=10 height=11 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=0
73char id=117 x=94 y=18 width=9 height=11 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0
74char id=115 x=103 y=18 width=9 height=11 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0
75char id=111 x=112 y=18 width=9 height=11 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
76char id=101 x=121 y=18 width=10 height=11 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
77char id=99 x=131 y=18 width=9 height=11 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0
78char id=97 x=140 y=18 width=9 height=11 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
79char id=58 x=149 y=18 width=4 height=10 xoffset=4 yoffset=6 xadvance=10 page=0 chnl=0
80char id=122 x=153 y=18 width=9 height=10 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0
81char id=120 x=162 y=18 width=11 height=10 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
82char id=119 x=173 y=18 width=11 height=10 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
83char id=118 x=184 y=18 width=10 height=10 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
84char id=114 x=194 y=18 width=9 height=10 xoffset=3 yoffset=6 xadvance=10 page=0 chnl=0
85char id=110 x=203 y=18 width=9 height=10 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0
86char id=109 x=212 y=18 width=10 height=10 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
87char id=42 x=222 y=18 width=9 height=9 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
88char id=62 x=231 y=18 width=10 height=9 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
89char id=60 x=241 y=18 width=10 height=9 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
90char id=61 x=251 y=18 width=10 height=7 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
91char id=44 x=261 y=18 width=4 height=7 xoffset=3 yoffset=12 xadvance=10 page=0 chnl=0
92char id=94 x=265 y=18 width=11 height=6 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
93char id=39 x=276 y=18 width=3 height=6 xoffset=4 yoffset=3 xadvance=10 page=0 chnl=0
94char id=34 x=279 y=18 width=6 height=6 xoffset=3 yoffset=3 xadvance=10 page=0 chnl=0
95char id=126 x=285 y=18 width=10 height=5 xoffset=1 yoffset=8 xadvance=10 page=0 chnl=0
96char id=96 x=295 y=18 width=5 height=5 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0
97char id=45 x=300 y=18 width=6 height=4 xoffset=3 yoffset=9 xadvance=10 page=0 chnl=0
98char id=46 x=306 y=18 width=4 height=4 xoffset=4 yoffset=12 xadvance=10 page=0 chnl=0
99char id=95 x=310 y=18 width=9 height=2 xoffset=0 yoffset=18 xadvance=10 page=0 chnl=0
diff --git a/Resources/leveldescriptions.png b/Resources/leveldescriptions.png deleted file mode 100644 index c4ca55b..0000000 --- a/Resources/leveldescriptions.png +++ /dev/null
Binary files differ
diff --git a/Resources/levelnames.fnt b/Resources/levelnames.fnt deleted file mode 100644 index 026b009..0000000 --- a/Resources/levelnames.fnt +++ /dev/null
@@ -1,99 +0,0 @@
1info face="BitstreamVeraSansMono-BoldOb" size=18 bold=1 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
2common lineHeight=22 base=17 scaleW=512 scaleH=512 pages=1 packed=0
3page id=0 file="levelnames.png"
4chars count=94
5char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=17 xadvance=11 page=0 chnl=0
6char id=124 x=0 y=0 width=4 height=20 xoffset=4 yoffset=3 xadvance=11 page=0 chnl=0
7char id=106 x=4 y=0 width=8 height=20 xoffset=1 yoffset=2 xadvance=11 page=0 chnl=0
8char id=36 x=12 y=0 width=10 height=18 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
9char id=125 x=22 y=0 width=10 height=18 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
10char id=123 x=32 y=0 width=10 height=18 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
11char id=93 x=42 y=0 width=7 height=18 xoffset=3 yoffset=3 xadvance=11 page=0 chnl=0
12char id=91 x=49 y=0 width=7 height=18 xoffset=4 yoffset=3 xadvance=11 page=0 chnl=0
13char id=41 x=56 y=0 width=7 height=18 xoffset=3 yoffset=3 xadvance=11 page=0 chnl=0
14char id=40 x=63 y=0 width=7 height=18 xoffset=3 yoffset=3 xadvance=11 page=0 chnl=0
15char id=81 x=70 y=0 width=12 height=18 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
16char id=92 x=82 y=0 width=11 height=17 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
17char id=64 x=93 y=0 width=12 height=17 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0
18char id=47 x=105 y=0 width=11 height=17 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
19char id=38 x=116 y=0 width=12 height=16 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
20char id=48 x=128 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
21char id=57 x=138 y=0 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
22char id=56 x=149 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
23char id=54 x=159 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
24char id=53 x=169 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
25char id=51 x=179 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
26char id=113 x=189 y=0 width=11 height=16 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
27char id=112 x=200 y=0 width=11 height=16 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
28char id=105 x=211 y=0 width=11 height=16 xoffset=1 yoffset=2 xadvance=11 page=0 chnl=0
29char id=103 x=222 y=0 width=11 height=16 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
30char id=100 x=233 y=0 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
31char id=98 x=244 y=0 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
32char id=85 x=255 y=0 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
33char id=83 x=266 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
34char id=79 x=276 y=0 width=12 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
35char id=74 x=288 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
36char id=71 x=298 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
37char id=67 x=308 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
38char id=63 x=318 y=0 width=9 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
39char id=33 x=327 y=0 width=4 height=15 xoffset=4 yoffset=3 xadvance=11 page=0 chnl=0
40char id=55 x=331 y=0 width=10 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
41char id=52 x=341 y=0 width=12 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
42char id=50 x=353 y=0 width=10 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
43char id=49 x=363 y=0 width=10 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
44char id=121 x=373 y=0 width=12 height=15 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=0
45char id=108 x=385 y=0 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
46char id=107 x=396 y=0 width=11 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
47char id=104 x=407 y=0 width=10 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
48char id=102 x=417 y=0 width=10 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
49char id=90 x=427 y=0 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
50char id=89 x=438 y=0 width=12 height=15 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
51char id=88 x=450 y=0 width=12 height=15 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
52char id=87 x=462 y=0 width=12 height=15 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
53char id=86 x=474 y=0 width=12 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
54char id=84 x=486 y=0 width=12 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
55char id=82 x=498 y=0 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
56char id=80 x=0 y=20 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
57char id=78 x=11 y=20 width=10 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
58char id=77 x=21 y=20 width=12 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
59char id=76 x=33 y=20 width=11 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
60char id=75 x=44 y=20 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
61char id=73 x=55 y=20 width=10 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
62char id=72 x=65 y=20 width=10 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
63char id=70 x=75 y=20 width=10 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
64char id=69 x=85 y=20 width=10 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
65char id=68 x=95 y=20 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
66char id=66 x=106 y=20 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
67char id=65 x=117 y=20 width=12 height=15 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
68char id=35 x=129 y=20 width=12 height=14 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0
69char id=37 x=141 y=20 width=12 height=14 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0
70char id=59 x=153 y=20 width=5 height=14 xoffset=3 yoffset=7 xadvance=11 page=0 chnl=0
71char id=116 x=158 y=20 width=11 height=14 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
72char id=115 x=169 y=20 width=10 height=13 xoffset=2 yoffset=6 xadvance=11 page=0 chnl=0
73char id=111 x=179 y=20 width=11 height=13 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
74char id=101 x=190 y=20 width=12 height=13 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
75char id=99 x=202 y=20 width=10 height=13 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
76char id=97 x=212 y=20 width=11 height=13 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
77char id=43 x=223 y=20 width=12 height=12 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
78char id=62 x=235 y=20 width=12 height=12 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
79char id=60 x=247 y=20 width=12 height=12 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
80char id=117 x=259 y=20 width=10 height=12 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=0
81char id=114 x=269 y=20 width=10 height=12 xoffset=3 yoffset=6 xadvance=11 page=0 chnl=0
82char id=110 x=279 y=20 width=10 height=12 xoffset=2 yoffset=6 xadvance=11 page=0 chnl=0
83char id=109 x=289 y=20 width=12 height=12 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
84char id=58 x=301 y=20 width=5 height=11 xoffset=4 yoffset=7 xadvance=11 page=0 chnl=0
85char id=122 x=306 y=20 width=10 height=11 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=0
86char id=120 x=316 y=20 width=12 height=11 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=0
87char id=119 x=328 y=20 width=12 height=11 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=0
88char id=118 x=340 y=20 width=12 height=11 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=0
89char id=42 x=352 y=20 width=10 height=10 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
90char id=61 x=362 y=20 width=12 height=8 xoffset=1 yoffset=8 xadvance=11 page=0 chnl=0
91char id=44 x=374 y=20 width=5 height=8 xoffset=3 yoffset=13 xadvance=11 page=0 chnl=0
92char id=94 x=379 y=20 width=12 height=7 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
93char id=39 x=391 y=20 width=4 height=7 xoffset=4 yoffset=3 xadvance=11 page=0 chnl=0
94char id=34 x=395 y=20 width=8 height=7 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0
95char id=126 x=403 y=20 width=12 height=5 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
96char id=45 x=415 y=20 width=8 height=5 xoffset=3 yoffset=10 xadvance=11 page=0 chnl=0
97char id=46 x=423 y=20 width=5 height=5 xoffset=4 yoffset=13 xadvance=11 page=0 chnl=0
98char id=96 x=428 y=20 width=7 height=5 xoffset=2 yoffset=2 xadvance=11 page=0 chnl=0
99char id=95 x=435 y=20 width=12 height=4 xoffset=0 yoffset=19 xadvance=11 page=0 chnl=0
diff --git a/Resources/levelnames.png b/Resources/levelnames.png deleted file mode 100644 index 1b3d082..0000000 --- a/Resources/levelnames.png +++ /dev/null
Binary files differ