diff options
| -rwxr-xr-x | Cartographic.xcodeproj/project.pbxproj | 22 | ||||
| -rw-r--r-- | Classes/GameModeSelection.h | 8 | ||||
| -rw-r--r-- | Classes/GameModeSelection.m | 195 | ||||
| -rw-r--r-- | Classes/GameModeSelectionLayer.m | 15 | ||||
| -rw-r--r-- | Classes/UIImage+ColorMasking.h | 15 | ||||
| -rw-r--r-- | Classes/UIImage+ColorMasking.m | 77 | ||||
| -rw-r--r-- | Resources/leveldescriptions.fnt | 99 | ||||
| -rw-r--r-- | Resources/leveldescriptions.png | bin | 7780 -> 0 bytes | |||
| -rw-r--r-- | Resources/levelnames.fnt | 99 | ||||
| -rw-r--r-- | Resources/levelnames.png | bin | 8652 -> 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 | |||
| 13 | typedef 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 @@ | |||
| 1 | info 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 | ||
| 2 | common lineHeight=19 base=15 scaleW=512 scaleH=512 pages=1 packed=0 | ||
| 3 | page id=0 file="leveldescriptions.png" | ||
| 4 | chars count=94 | ||
| 5 | char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=15 xadvance=10 page=0 chnl=0 | ||
| 6 | char id=124 x=0 y=0 width=3 height=18 xoffset=4 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 7 | char id=106 x=3 y=0 width=7 height=18 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 8 | char id=36 x=10 y=0 width=9 height=17 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 9 | char id=125 x=19 y=0 width=8 height=17 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 10 | char id=123 x=27 y=0 width=8 height=17 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 11 | char id=93 x=35 y=0 width=6 height=17 xoffset=3 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 12 | char id=91 x=41 y=0 width=5 height=17 xoffset=4 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 13 | char id=41 x=46 y=0 width=6 height=17 xoffset=3 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 14 | char id=40 x=52 y=0 width=5 height=17 xoffset=3 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 15 | char id=81 x=57 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 16 | char id=92 x=67 y=0 width=10 height=15 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 17 | char id=64 x=77 y=0 width=11 height=15 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=0 | ||
| 18 | char id=47 x=88 y=0 width=10 height=15 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 19 | char id=100 x=98 y=0 width=10 height=15 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 20 | char id=98 x=108 y=0 width=9 height=15 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 21 | char id=38 x=117 y=0 width=11 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 22 | char id=48 x=128 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 23 | char id=57 x=137 y=0 width=10 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 24 | char id=56 x=147 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 25 | char id=54 x=156 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 26 | char id=53 x=165 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 27 | char id=51 x=174 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 28 | char id=121 x=183 y=0 width=11 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 29 | char id=113 x=194 y=0 width=9 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 30 | char id=112 x=203 y=0 width=9 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 31 | char id=108 x=212 y=0 width=9 height=14 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 32 | char id=107 x=221 y=0 width=10 height=14 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 33 | char id=105 x=231 y=0 width=9 height=14 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 34 | char id=104 x=240 y=0 width=9 height=14 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 35 | char id=103 x=249 y=0 width=10 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 36 | char id=102 x=259 y=0 width=9 height=14 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 37 | char id=85 x=268 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 38 | char id=83 x=277 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 39 | char id=79 x=286 y=0 width=10 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 40 | char id=74 x=296 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 41 | char id=71 x=305 y=0 width=10 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 42 | char id=67 x=315 y=0 width=9 height=14 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 43 | char id=35 x=324 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 44 | char id=37 x=335 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 45 | char id=59 x=346 y=0 width=4 height=13 xoffset=3 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 46 | char id=63 x=350 y=0 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 47 | char id=33 x=359 y=0 width=3 height=13 xoffset=4 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 48 | char id=55 x=362 y=0 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 49 | char id=52 x=371 y=0 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 50 | char id=50 x=381 y=0 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 51 | char id=49 x=390 y=0 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 52 | char id=116 x=399 y=0 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 53 | char id=90 x=408 y=0 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 54 | char id=89 x=418 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 55 | char id=88 x=429 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 56 | char id=87 x=440 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 57 | char id=86 x=451 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 58 | char id=84 x=462 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 59 | char id=82 x=473 y=0 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 60 | char id=80 x=483 y=0 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 61 | char id=78 x=492 y=0 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 62 | char id=77 x=501 y=0 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 63 | char id=76 x=0 y=18 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 64 | char id=75 x=9 y=18 width=10 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 65 | char id=73 x=19 y=18 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 66 | char id=72 x=28 y=18 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 67 | char id=70 x=37 y=18 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 68 | char id=69 x=46 y=18 width=9 height=13 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 69 | char id=68 x=55 y=18 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 70 | char id=66 x=64 y=18 width=9 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 71 | char id=65 x=73 y=18 width=11 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 72 | char id=43 x=84 y=18 width=10 height=11 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=0 | ||
| 73 | char id=117 x=94 y=18 width=9 height=11 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 74 | char id=115 x=103 y=18 width=9 height=11 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 75 | char id=111 x=112 y=18 width=9 height=11 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 76 | char id=101 x=121 y=18 width=10 height=11 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 77 | char id=99 x=131 y=18 width=9 height=11 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 78 | char id=97 x=140 y=18 width=9 height=11 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 79 | char id=58 x=149 y=18 width=4 height=10 xoffset=4 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 80 | char id=122 x=153 y=18 width=9 height=10 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 81 | char id=120 x=162 y=18 width=11 height=10 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 82 | char id=119 x=173 y=18 width=11 height=10 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 83 | char id=118 x=184 y=18 width=10 height=10 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 84 | char id=114 x=194 y=18 width=9 height=10 xoffset=3 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 85 | char id=110 x=203 y=18 width=9 height=10 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 86 | char id=109 x=212 y=18 width=10 height=10 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 87 | char id=42 x=222 y=18 width=9 height=9 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 88 | char id=62 x=231 y=18 width=10 height=9 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 89 | char id=60 x=241 y=18 width=10 height=9 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 | ||
| 90 | char id=61 x=251 y=18 width=10 height=7 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0 | ||
| 91 | char id=44 x=261 y=18 width=4 height=7 xoffset=3 yoffset=12 xadvance=10 page=0 chnl=0 | ||
| 92 | char id=94 x=265 y=18 width=11 height=6 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 93 | char id=39 x=276 y=18 width=3 height=6 xoffset=4 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 94 | char id=34 x=279 y=18 width=6 height=6 xoffset=3 yoffset=3 xadvance=10 page=0 chnl=0 | ||
| 95 | char id=126 x=285 y=18 width=10 height=5 xoffset=1 yoffset=8 xadvance=10 page=0 chnl=0 | ||
| 96 | char id=96 x=295 y=18 width=5 height=5 xoffset=2 yoffset=2 xadvance=10 page=0 chnl=0 | ||
| 97 | char id=45 x=300 y=18 width=6 height=4 xoffset=3 yoffset=9 xadvance=10 page=0 chnl=0 | ||
| 98 | char id=46 x=306 y=18 width=4 height=4 xoffset=4 yoffset=12 xadvance=10 page=0 chnl=0 | ||
| 99 | char 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 @@ | |||
| 1 | info 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 | ||
| 2 | common lineHeight=22 base=17 scaleW=512 scaleH=512 pages=1 packed=0 | ||
| 3 | page id=0 file="levelnames.png" | ||
| 4 | chars count=94 | ||
| 5 | char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=17 xadvance=11 page=0 chnl=0 | ||
| 6 | char id=124 x=0 y=0 width=4 height=20 xoffset=4 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 7 | char id=106 x=4 y=0 width=8 height=20 xoffset=1 yoffset=2 xadvance=11 page=0 chnl=0 | ||
| 8 | char id=36 x=12 y=0 width=10 height=18 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 9 | char id=125 x=22 y=0 width=10 height=18 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 10 | char id=123 x=32 y=0 width=10 height=18 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 11 | char id=93 x=42 y=0 width=7 height=18 xoffset=3 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 12 | char id=91 x=49 y=0 width=7 height=18 xoffset=4 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 13 | char id=41 x=56 y=0 width=7 height=18 xoffset=3 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 14 | char id=40 x=63 y=0 width=7 height=18 xoffset=3 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 15 | char id=81 x=70 y=0 width=12 height=18 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 16 | char id=92 x=82 y=0 width=11 height=17 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 17 | char id=64 x=93 y=0 width=12 height=17 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0 | ||
| 18 | char id=47 x=105 y=0 width=11 height=17 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 19 | char id=38 x=116 y=0 width=12 height=16 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 20 | char id=48 x=128 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 21 | char id=57 x=138 y=0 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 22 | char id=56 x=149 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 23 | char id=54 x=159 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 24 | char id=53 x=169 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 25 | char id=51 x=179 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 26 | char id=113 x=189 y=0 width=11 height=16 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 27 | char id=112 x=200 y=0 width=11 height=16 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 28 | char id=105 x=211 y=0 width=11 height=16 xoffset=1 yoffset=2 xadvance=11 page=0 chnl=0 | ||
| 29 | char id=103 x=222 y=0 width=11 height=16 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 30 | char id=100 x=233 y=0 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 31 | char id=98 x=244 y=0 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 32 | char id=85 x=255 y=0 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 33 | char id=83 x=266 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 34 | char id=79 x=276 y=0 width=12 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 35 | char id=74 x=288 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 36 | char id=71 x=298 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 37 | char id=67 x=308 y=0 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 38 | char id=63 x=318 y=0 width=9 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 39 | char id=33 x=327 y=0 width=4 height=15 xoffset=4 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 40 | char id=55 x=331 y=0 width=10 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 41 | char id=52 x=341 y=0 width=12 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 42 | char id=50 x=353 y=0 width=10 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 43 | char id=49 x=363 y=0 width=10 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 44 | char id=121 x=373 y=0 width=12 height=15 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=0 | ||
| 45 | char id=108 x=385 y=0 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 46 | char id=107 x=396 y=0 width=11 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 47 | char id=104 x=407 y=0 width=10 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 48 | char id=102 x=417 y=0 width=10 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 49 | char id=90 x=427 y=0 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 50 | char id=89 x=438 y=0 width=12 height=15 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 51 | char id=88 x=450 y=0 width=12 height=15 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 52 | char id=87 x=462 y=0 width=12 height=15 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 53 | char id=86 x=474 y=0 width=12 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 54 | char id=84 x=486 y=0 width=12 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 55 | char id=82 x=498 y=0 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 56 | char id=80 x=0 y=20 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 57 | char id=78 x=11 y=20 width=10 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 58 | char id=77 x=21 y=20 width=12 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 59 | char id=76 x=33 y=20 width=11 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 60 | char id=75 x=44 y=20 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 61 | char id=73 x=55 y=20 width=10 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 62 | char id=72 x=65 y=20 width=10 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 63 | char id=70 x=75 y=20 width=10 height=15 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 64 | char id=69 x=85 y=20 width=10 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 65 | char id=68 x=95 y=20 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 66 | char id=66 x=106 y=20 width=11 height=15 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 67 | char id=65 x=117 y=20 width=12 height=15 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 68 | char id=35 x=129 y=20 width=12 height=14 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0 | ||
| 69 | char id=37 x=141 y=20 width=12 height=14 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0 | ||
| 70 | char id=59 x=153 y=20 width=5 height=14 xoffset=3 yoffset=7 xadvance=11 page=0 chnl=0 | ||
| 71 | char id=116 x=158 y=20 width=11 height=14 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0 | ||
| 72 | char id=115 x=169 y=20 width=10 height=13 xoffset=2 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 73 | char id=111 x=179 y=20 width=11 height=13 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 74 | char id=101 x=190 y=20 width=12 height=13 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 75 | char id=99 x=202 y=20 width=10 height=13 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 76 | char id=97 x=212 y=20 width=11 height=13 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 77 | char id=43 x=223 y=20 width=12 height=12 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 78 | char id=62 x=235 y=20 width=12 height=12 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 79 | char id=60 x=247 y=20 width=12 height=12 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 80 | char id=117 x=259 y=20 width=10 height=12 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=0 | ||
| 81 | char id=114 x=269 y=20 width=10 height=12 xoffset=3 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 82 | char id=110 x=279 y=20 width=10 height=12 xoffset=2 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 83 | char id=109 x=289 y=20 width=12 height=12 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 | ||
| 84 | char id=58 x=301 y=20 width=5 height=11 xoffset=4 yoffset=7 xadvance=11 page=0 chnl=0 | ||
| 85 | char id=122 x=306 y=20 width=10 height=11 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=0 | ||
| 86 | char id=120 x=316 y=20 width=12 height=11 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=0 | ||
| 87 | char id=119 x=328 y=20 width=12 height=11 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=0 | ||
| 88 | char id=118 x=340 y=20 width=12 height=11 xoffset=1 yoffset=7 xadvance=11 page=0 chnl=0 | ||
| 89 | char id=42 x=352 y=20 width=10 height=10 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 90 | char id=61 x=362 y=20 width=12 height=8 xoffset=1 yoffset=8 xadvance=11 page=0 chnl=0 | ||
| 91 | char id=44 x=374 y=20 width=5 height=8 xoffset=3 yoffset=13 xadvance=11 page=0 chnl=0 | ||
| 92 | char id=94 x=379 y=20 width=12 height=7 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 93 | char id=39 x=391 y=20 width=4 height=7 xoffset=4 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 94 | char id=34 x=395 y=20 width=8 height=7 xoffset=2 yoffset=3 xadvance=11 page=0 chnl=0 | ||
| 95 | char id=126 x=403 y=20 width=12 height=5 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0 | ||
| 96 | char id=45 x=415 y=20 width=8 height=5 xoffset=3 yoffset=10 xadvance=11 page=0 chnl=0 | ||
| 97 | char id=46 x=423 y=20 width=5 height=5 xoffset=4 yoffset=13 xadvance=11 page=0 chnl=0 | ||
| 98 | char id=96 x=428 y=20 width=7 height=5 xoffset=2 yoffset=2 xadvance=11 page=0 chnl=0 | ||
| 99 | char 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 | |||
