summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStarla Insigna <starla4444@gmail.com>2011-08-22 19:52:08 -0400
committerStarla Insigna <starla4444@gmail.com>2011-08-22 19:52:08 -0400
commit2ac50443ddbf69b7594808ba4e6de49eecbc0b84 (patch)
tree5cdd3a92e9534dd7a2d8b5b52ca9b039587210ea
parent7e84858da5ecb1a445982860ce177c3c91318135 (diff)
downloadcartcollect-2ac50443ddbf69b7594808ba4e6de49eecbc0b84.tar.gz
cartcollect-2ac50443ddbf69b7594808ba4e6de49eecbc0b84.tar.bz2
cartcollect-2ac50443ddbf69b7594808ba4e6de49eecbc0b84.zip
Added borders to level selection images
The image for each level selection now has a tutorial bubble-esque border around it, which was achieved using image masking. The border is included in the graying-out effect when the image is being tapped, and it is also included in the grayscaling when the level is not yet unlocked.

Also rewrote most of the selection drawing code. The titles are now drawn above the image, with Quartz instead of Cocos2D. The highscore label is also drawn with Quartz, though it is still below the image. The unlock condition label no longer appears, and instead, locked levels are now tappable and tapping them shows an alert view containing the unlock condition. Will probably be changed to be more elegant later.

Really, the biggest thing left before the selection screen is done is the ability to scroll through levels. The background also needs changing, but that will come later once I recruit a graphics designer. :P

Refs #207
-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