project_files/HedgewarsMobile/Classes/MissionTrainingViewController.m
branchios-develop
changeset 13192 d6aea85111c7
parent 13191 0c1f3a8ba0bb
child 13199 e17efd663125
equal deleted inserted replaced
13191:0c1f3a8ba0bb 13192:d6aea85111c7
    20 #import "MissionTrainingViewController.h"
    20 #import "MissionTrainingViewController.h"
    21 #import <QuartzCore/QuartzCore.h>
    21 #import <QuartzCore/QuartzCore.h>
    22 #import "GameInterfaceBridge.h"
    22 #import "GameInterfaceBridge.h"
    23 
    23 
    24 #define TRAINING_MISSION_TYPE @"Training"
    24 #define TRAINING_MISSION_TYPE @"Training"
       
    25 #define CHALLENGE_MISSION_TYPE @"Challenge"
       
    26 #define SCENARIO_MISSION_TYPE @"Scenario"
    25 
    27 
    26 @implementation MissionTrainingViewController
    28 @implementation MissionTrainingViewController
    27 
    29 
    28 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    30 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    29     return rotationManager(interfaceOrientation);
    31     return rotationManager(interfaceOrientation);
    83 
    85 
    84 - (NSDictionary *)newLocalizedMissionsDictionaryForType: (NSString *)type
    86 - (NSDictionary *)newLocalizedMissionsDictionaryForType: (NSString *)type
    85 {
    87 {
    86     NSString *languageID = [HWUtils languageID];
    88     NSString *languageID = [HWUtils languageID];
    87     
    89     
    88     NSString *missionsDescLocation = [[NSString alloc] initWithFormat:@"%@/missions_en.txt",LOCALE_DIRECTORY()];
    90     NSString *missionsDescLocation = [[NSString alloc] initWithFormat:@"%@/missions_en.txt", LOCALE_DIRECTORY()];
    89     NSString *localizedMissionsDescLocation = [[NSString alloc] initWithFormat:@"%@/missions_%@.txt", LOCALE_DIRECTORY(), languageID];
    91     NSString *localizedMissionsDescLocation = [[NSString alloc] initWithFormat:@"%@/missions_%@.txt", LOCALE_DIRECTORY(), languageID];
    90     
    92     
    91     if (![languageID isEqualToString:@"en"] && [[NSFileManager defaultManager] fileExistsAtPath:localizedMissionsDescLocation])
    93     if (![languageID isEqualToString:@"en"] && [[NSFileManager defaultManager] fileExistsAtPath:localizedMissionsDescLocation])
    92     {
    94     {
    93         NSDictionary *missionsDict = [self newMissionsDictionaryForType:type fromMissionsFile:missionsDescLocation];
    95         NSDictionary *missionsDict = [self newMissionsDictionaryForType:type fromMissionsFile:missionsDescLocation];
   178 
   180 
   179 - (NSArray *)missionsTypes
   181 - (NSArray *)missionsTypes
   180 {
   182 {
   181     if (!_missionsTypes)
   183     if (!_missionsTypes)
   182     {
   184     {
   183         _missionsTypes = @[ TRAINING_MISSION_TYPE ];
   185         _missionsTypes = @[ TRAINING_MISSION_TYPE, CHALLENGE_MISSION_TYPE, SCENARIO_MISSION_TYPE ];
   184     }
   186     }
   185     
   187     
   186     return _missionsTypes;
   188     return _missionsTypes;
   187 }
   189 }
   188 
   190 
   189 - (NSDictionary *)dictOfAllMissions
   191 - (NSDictionary *)dictOfAllMissions
   190 {
   192 {
   191     if (!_dictOfAllMissions)
   193     if (!_dictOfAllMissions)
   192     {
   194     {
   193         NSArray *types = [self missionsTypes];
   195         NSArray *types = [self missionsTypes];
   194         _dictOfAllMissions = @{ types[0] : [self dictOfTraining] };
   196         _dictOfAllMissions = @{ types[0] : self.dictOfTraining,
       
   197                                 types[1] : self.dictOfChallenge,
       
   198                                 types[2] : self.dictOfScenario };
   195     }
   199     }
   196     
   200     
   197     return _dictOfAllMissions;
   201     return _dictOfAllMissions;
   198 }
   202 }
   199 
   203 
   200 - (NSArray *)listOfTrainingIDs
   204 - (NSArray *)listOfTrainingIDs
   201 {
   205 {
   202     if (!_listOfTrainingIDs)
   206     if (!_listOfTrainingIDs)
   203     {
   207     {
   204         NSArray *sortedKeys = [[self.dictOfTraining allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
   208         _listOfTrainingIDs = [[self.dictOfTraining allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
   205         _listOfTrainingIDs = [[NSArray alloc] initWithArray:sortedKeys];
       
   206     }
   209     }
   207     
   210     
   208     return _listOfTrainingIDs;
   211     return _listOfTrainingIDs;
   209 }
   212 }
   210 
   213 
   214     {
   217     {
   215         _dictOfTraining = [self newLocalizedMissionsDictionaryForType:TRAINING_MISSION_TYPE];
   218         _dictOfTraining = [self newLocalizedMissionsDictionaryForType:TRAINING_MISSION_TYPE];
   216     }
   219     }
   217     
   220     
   218     return _dictOfTraining;
   221     return _dictOfTraining;
       
   222 }
       
   223 
       
   224 - (NSArray *)listOfChallengeIDs
       
   225 {
       
   226     if (!_listOfChallengeIDs)
       
   227     {
       
   228         _listOfChallengeIDs = [[self.dictOfChallenge allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
       
   229     }
       
   230     
       
   231     return _listOfChallengeIDs;
       
   232 }
       
   233 
       
   234 - (NSDictionary *)dictOfChallenge
       
   235 {
       
   236     if (!_dictOfChallenge)
       
   237     {
       
   238         _dictOfChallenge = [self newLocalizedMissionsDictionaryForType:CHALLENGE_MISSION_TYPE];
       
   239     }
       
   240     
       
   241     return _dictOfChallenge;
       
   242 }
       
   243 
       
   244 - (NSArray *)listOfScenarioIDs
       
   245 {
       
   246     if (!_listOfScenarioIDs)
       
   247     {
       
   248         _listOfScenarioIDs = [[self.dictOfScenario allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
       
   249     }
       
   250 
       
   251     return _listOfScenarioIDs;
       
   252 }
       
   253 
       
   254 - (NSDictionary *)dictOfScenario
       
   255 {
       
   256     if (!_dictOfScenario)
       
   257     {
       
   258         _dictOfScenario = [self newLocalizedMissionsDictionaryForType:SCENARIO_MISSION_TYPE];
       
   259     }
       
   260 
       
   261     return _dictOfScenario;
   219 }
   262 }
   220 
   263 
   221 #pragma mark -
   264 #pragma mark -
   222 #pragma mark Missions types
   265 #pragma mark Missions types
   223 
   266 
   224 - (NSString *)missionsDirectoryForType:(NSString *)type
   267 - (NSString *)missionsDirectoryForType:(NSString *)type
   225 {
   268 {
   226     if ([type isEqualToString:TRAINING_MISSION_TYPE]) {
   269     if ([type isEqualToString:TRAINING_MISSION_TYPE]) {
   227         return TRAININGS_DIRECTORY();
   270         return TRAININGS_DIRECTORY();
       
   271     } else if ([type isEqualToString:CHALLENGE_MISSION_TYPE]) {
       
   272         return CHALLENGE_DIRECTORY();
       
   273     } else if ([type isEqualToString:SCENARIO_MISSION_TYPE]) {
       
   274         return SCENARIO_DIRECTORY();
   228     }
   275     }
   229     return nil;
   276     return nil;
   230 }
   277 }
   231 
   278 
   232 - (NSArray *)listOfMissionsIDsForType:(NSString *)type
   279 - (NSArray *)listOfMissionsIDsForType:(NSString *)type
   233 {
   280 {
   234     if ([type isEqualToString:TRAINING_MISSION_TYPE]) {
   281     if ([type isEqualToString:TRAINING_MISSION_TYPE]) {
   235         return self.listOfTrainingIDs;
   282         return self.listOfTrainingIDs;
       
   283     } else if ([type isEqualToString:CHALLENGE_MISSION_TYPE]) {
       
   284         return self.listOfChallengeIDs;
       
   285     } else if ([type isEqualToString:SCENARIO_MISSION_TYPE]) {
       
   286         return self.listOfScenarioIDs;
   236     }
   287     }
   237     return nil;
   288     return nil;
   238 }
   289 }
   239 
   290 
   240 - (NSDictionary *)dictOfMissionsForType:(NSString *)type
   291 - (NSDictionary *)dictOfMissionsForType:(NSString *)type
   241 {
   292 {
   242     if ([type isEqualToString:TRAINING_MISSION_TYPE]) {
   293     if ([type isEqualToString:TRAINING_MISSION_TYPE]) {
   243         return self.dictOfTraining;
   294         return self.dictOfTraining;
       
   295     } else if ([type isEqualToString:CHALLENGE_MISSION_TYPE]) {
       
   296         return self.dictOfChallenge;
       
   297     } else if ([type isEqualToString:SCENARIO_MISSION_TYPE]) {
       
   298         return self.dictOfScenario;
   244     }
   299     }
   245     return nil;
   300     return nil;
   246 }
   301 }
   247 
   302 
   248 #pragma mark -
   303 #pragma mark -