--- a/project_files/HedgewarsMobile/Classes/AboutViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/AboutViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -26,11 +26,11 @@
NSArray *people;
}
-@property (nonatomic,retain) IBOutlet UITableView *tableView;
-@property (nonatomic,retain) IBOutlet UISegmentedControl *segmentedControl;
-@property (nonatomic,retain) NSArray *people;
+@property (nonatomic, strong) IBOutlet UITableView *tableView;
+@property (nonatomic, strong) IBOutlet UISegmentedControl *segmentedControl;
+@property (nonatomic, strong) NSArray *people;
--(IBAction) buttonPressed:(id) sender;
--(IBAction) segmentedControlChanged:(id) sender;
+- (IBAction)buttonPressed:(id)sender;
+- (IBAction)segmentedControlChanged:(id)sender;
@end
--- a/project_files/HedgewarsMobile/Classes/AboutViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/AboutViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -23,11 +23,11 @@
@implementation AboutViewController
@synthesize tableView, segmentedControl, people;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
--(void) viewDidLoad
+- (void)viewDidLoad
{
[super viewDidLoad];
@@ -36,7 +36,6 @@
NSArray *array = [[NSArray alloc] initWithContentsOfFile:CREDITS_FILE()];
self.people = array;
- [array release];
NSString *imgName;
if (IS_IPAD())
@@ -45,16 +44,14 @@
imgName = @"smallerBackground~iphone.png";
UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgName];
UIImageView *background = [[UIImageView alloc] initWithImage:img];
- [img release];
background.frame = self.view.frame;
background.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view insertSubview:background atIndex:0];
- [background release];
[self localizeSegmentedControl];
}
--(IBAction) buttonPressed:(id) sender {
+- (IBAction)buttonPressed:(id)sender {
[[AudioManagerController mainManager] playBackSound];
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
}
@@ -70,7 +67,7 @@
}
}
--(IBAction) segmentedControlChanged:(id) sender {
+- (IBAction)segmentedControlChanged:(id)sender {
[[AudioManagerController mainManager] playClickSound];
[self.tableView setContentOffset:CGPointMake(0, 0) animated:NO];
[self.tableView reloadData];
@@ -91,7 +88,7 @@
UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
// first all the names, then the title (which is offset 5)
cell.textLabel.text = [[self.people objectAtIndex:self.segmentedControl.selectedSegmentIndex] objectAtIndex:[indexPath row]];
@@ -105,7 +102,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// do nothing
}
@@ -113,7 +110,7 @@
return 95;
}
--(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) section {
+-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
char *fullver;
int proto;
@@ -133,33 +130,18 @@
label.textColor = [UIColor lightGrayColor];
label.numberOfLines = 5;
label.text = footerString;
- [footerString release];
label.backgroundColor = [UIColor clearColor];
[footer addSubview:label];
- [label release];
- return [footer autorelease];
+ return footer;
}
#pragma mark -
#pragma mark Memory Management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
self.people = nil;
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- self.tableView = nil;
- self.segmentedControl = nil;
- self.people = nil;
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(tableView);
- releaseAndNil(segmentedControl);
- releaseAndNil(people);
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/AudioManagerController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/AudioManagerController.h Sat Dec 30 01:22:11 2017 +0100
@@ -33,26 +33,26 @@
NSOperationQueue *audioFaderQueue;
}
-@property (nonatomic,retain) AVAudioPlayer *backgroundMusic;
+@property (nonatomic, strong) AVAudioPlayer *backgroundMusic;
@property (assign) SystemSoundID clickSound;
@property (assign) SystemSoundID backSound;
@property (assign) SystemSoundID selSound;
-@property (nonatomic,retain) NSOperationQueue *audioFaderQueue;
+@property (nonatomic, strong) NSOperationQueue *audioFaderQueue;
+(id) mainManager;
--(void) playBackgroundMusic;
--(void) pauseBackgroundMusic;
--(void) stopBackgroundMusic;
+- (void)playBackgroundMusic;
+- (void)pauseBackgroundMusic;
+- (void)stopBackgroundMusic;
--(void) fadeInBackgroundMusic;
--(void) fadeOutBackgroundMusic;
+- (void)fadeInBackgroundMusic;
+- (void)fadeOutBackgroundMusic;
--(void) playClickSound;
--(void) playBackSound;
--(void) playSelectSound;
+- (void)playClickSound;
+- (void)playBackSound;
+- (void)playSelectSound;
-(SystemSoundID) loadSound:(NSString *)snd;
--(void) unloadSounds;
+- (void)unloadSounds;
@end
--- a/project_files/HedgewarsMobile/Classes/AudioManagerController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/AudioManagerController.m Sat Dec 30 01:22:11 2017 +0100
@@ -37,7 +37,7 @@
return mainInstance;
}
--(id) init {
+- (id)init {
if ((self = [super init])) {
self.backgroundMusic = nil;
self.clickSound = -1;
@@ -49,15 +49,12 @@
return self;
}
--(void) dealloc {
+- (void)dealloc {
[self unloadSounds];
- releaseAndNil(backgroundMusic);
- releaseAndNil(audioFaderQueue);
mainInstance = nil;
- [super dealloc];
}
--(void) didReceiveMemoryWarning {
+- (void)didReceiveMemoryWarning {
if (self.backgroundMusic.playing == NO)
self.backgroundMusic = nil;
if ([self.audioFaderQueue operationCount] == 0)
@@ -69,7 +66,7 @@
#pragma mark -
#pragma mark background music control
--(void) playBackgroundMusic {
+- (void)playBackgroundMusic {
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"music"] boolValue] == NO)
return;
@@ -84,15 +81,15 @@
[self.backgroundMusic play];
}
--(void) pauseBackgroundMusic {
+- (void)pauseBackgroundMusic {
[self.backgroundMusic pause];
}
--(void) stopBackgroundMusic {
+- (void)stopBackgroundMusic {
[self.backgroundMusic stop];
}
--(void) fadeOutBackgroundMusic {
+- (void)fadeOutBackgroundMusic {
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"music"] boolValue] == NO)
return;
@@ -103,10 +100,9 @@
toVolume:0.0
overDuration:FADEOUT_DURATION];
[self.audioFaderQueue addOperation:fadeOut];
- [fadeOut release];
}
--(void) fadeInBackgroundMusic {
+- (void)fadeInBackgroundMusic {
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"music"] boolValue] == NO)
return;
@@ -118,7 +114,6 @@
toVolume:DEFAULT_VOLUME
overDuration:FADEIN_DURATION];
[audioFaderQueue addOperation:fadeIn];
- [fadeIn release];
}
#pragma mark -
@@ -131,17 +126,17 @@
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
// use audio sevices to create and play the sound
- AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
+ AudioServicesCreateSystemSoundID((__bridge CFURLRef)filePath, &soundID);
return soundID;
}
--(void) unloadSounds {
+- (void)unloadSounds {
AudioServicesDisposeSystemSoundID(clickSound), clickSound = -1;
AudioServicesDisposeSystemSoundID(backSound), backSound = -1;
AudioServicesDisposeSystemSoundID(selSound), selSound = -1;
}
--(void) playClickSound {
+- (void)playClickSound {
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"sound"] boolValue] == NO)
return;
@@ -151,7 +146,7 @@
AudioServicesPlaySystemSound(self.clickSound);
}
--(void) playBackSound {
+- (void)playBackSound {
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"sound"] boolValue] == NO)
return;
@@ -161,7 +156,7 @@
AudioServicesPlaySystemSound(self.backSound);
}
--(void) playSelectSound {
+- (void)playSelectSound {
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"sound"] boolValue] == NO)
return;
--- a/project_files/HedgewarsMobile/Classes/CampaignViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/CampaignViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -20,6 +20,6 @@
@interface CampaignViewController : UITableViewController
-@property (nonatomic, retain) NSString *campaignName;
+@property (nonatomic, strong) NSString *campaignName;
@end
--- a/project_files/HedgewarsMobile/Classes/CampaignViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/CampaignViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -21,7 +21,7 @@
#import "GameInterfaceBridge.h"
@interface CampaignViewController ()
-@property (nonatomic, retain) NSArray *campaignMissions;
+@property (nonatomic, strong) NSArray *campaignMissions;
@end
@implementation CampaignViewController
@@ -40,7 +40,6 @@
IniParser *iniParser = [[IniParser alloc] initWithIniFilePath:campaignIniPath];
NSArray *parsedMissions = [iniParser newParsedSections];
- [iniParser release];
return parsedMissions;
}
@@ -52,7 +51,6 @@
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismiss)];
self.navigationItem.rightBarButtonItem = doneButton;
- [doneButton release];
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"campaignMissionCell"];
}
@@ -95,10 +93,5 @@
#pragma mark - Dealloc
-- (void)dealloc {
- [_campaignName release];
- [_campaignMissions release];
- [super dealloc];
-}
@end
--- a/project_files/HedgewarsMobile/Classes/CampaignsViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/CampaignsViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -20,7 +20,7 @@
#import "CampaignViewController.h"
@interface CampaignsViewController ()
-@property (nonatomic, retain) NSArray *campaigns;
+@property (nonatomic, strong) NSArray *campaigns;
@end
@implementation CampaignsViewController
@@ -48,7 +48,6 @@
}
NSArray *campaigns = [tempCampaigns copy];
- [tempCampaigns release];
return campaigns;
}
@@ -59,7 +58,6 @@
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismiss)];
self.navigationItem.rightBarButtonItem = doneButton;
- [doneButton release];
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"campaignCell"];
}
@@ -100,14 +98,9 @@
campaign.campaignName = self.campaigns[indexPath.row];
[self.navigationController pushViewController:campaign animated:YES];
- [campaign release];
}
#pragma mark - Dealloc
-- (void)dealloc {
- [_campaigns release];
- [super dealloc];
-}
@end
--- a/project_files/HedgewarsMobile/Classes/CreationChamber.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.h Sat Dec 30 01:22:11 2017 +0100
@@ -24,18 +24,18 @@
}
-+(void) createFirstLaunch;
-+(void) createSettings;
++ (void)createFirstLaunch;
++ (void)createSettings;
-+(void) createTeamNamed:(NSString *)nameWithoutExt;
-+(void) createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type;
-+(void) createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type controlledByAI:(BOOL) shouldAITakeOver;
++ (void)createTeamNamed:(NSString *)nameWithoutExt;
++ (void)createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type;
++ (void)createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type controlledByAI:(BOOL) shouldAITakeOver;
-+(void) createWeaponNamed:(NSString *)nameWithoutExt;
-+(void) createWeaponNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type;
++ (void)createWeaponNamed:(NSString *)nameWithoutExt;
++ (void)createWeaponNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type;
-+(void) createSchemeNamed:(NSString *)nameWithoutExt;
-+(void) createSchemeNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type;
++ (void)createSchemeNamed:(NSString *)nameWithoutExt;
++ (void)createSchemeNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type;
@end
--- a/project_files/HedgewarsMobile/Classes/CreationChamber.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.m Sat Dec 30 01:22:11 2017 +0100
@@ -23,7 +23,7 @@
@implementation CreationChamber
#pragma mark Checking status
-+(void) createFirstLaunch {
++ (void)createFirstLaunch {
DLog(@"Creating necessary files");
NSInteger index;
@@ -50,7 +50,6 @@
index = 0;
for (NSString *name in teamNames)
[self createTeamNamed:name ofType:index++ controlledByAI:[name isEqualToString:@"Robots"]];
- [teamNames release];
// SCHEMES - always overwrite and delete custom ones
if ([[NSFileManager defaultManager] fileExistsAtPath:SCHEMES_DIRECTORY()] == YES)
@@ -61,7 +60,6 @@
index = 0;
for (NSString *name in schemeNames)
[self createSchemeNamed:name ofType:index++];
- [schemeNames release];
// WEAPONS - always overwrite as merge is not needed (missing weaps are 0ed automatically)
NSArray *weaponNames = [[NSArray alloc] initWithObjects:@"Default",@"Crazy",@"Pro Mode",@"Shoppa",@"Clean Slate",
@@ -69,11 +67,10 @@
index = 0;
for (NSString *name in weaponNames)
[self createWeaponNamed:name ofType:index++];
- [weaponNames release];
}
#pragma mark Settings
-+(void) createSettings {
++ (void)createSettings {
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
[settings setObject:[NSNumber numberWithBool:NO] forKey:@"alternate"];
[settings setObject:[NSNumber numberWithBool:YES] forKey:@"music"];
@@ -90,15 +87,15 @@
}
#pragma mark Teams
-+(void) createTeamNamed:(NSString *)nameWithoutExt {
++ (void)createTeamNamed:(NSString *)nameWithoutExt {
[self createTeamNamed:nameWithoutExt ofType:0 controlledByAI:NO];
}
-+(void) createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type {
++ (void)createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type {
[self createTeamNamed:nameWithoutExt ofType:type controlledByAI:NO];
}
-+(void) createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type controlledByAI:(BOOL) shouldAITakeOver {
++ (void)createTeamNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type controlledByAI:(BOOL) shouldAITakeOver {
NSString *teamsDirectory = TEAMS_DIRECTORY();
if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) {
@@ -159,10 +156,7 @@
[customHats objectAtIndex:i],@"hat",
nil];
[hedgehogs addObject:hog];
- [hog release];
}
- [customHats release];
- [customNames release];
NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys:
@"0",@"hash",
@@ -172,21 +166,18 @@
flag,@"flag",
hedgehogs,@"hedgehogs",
nil];
- [hedgehogs release];
NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt];
[theTeam writeToFile:teamFile atomically:YES];
- [teamFile release];
- [theTeam release];
}
#pragma mark Weapons
-+(void) createWeaponNamed:(NSString *)nameWithoutExt {
++ (void)createWeaponNamed:(NSString *)nameWithoutExt {
[self createWeaponNamed:nameWithoutExt ofType:0];
}
-+(void) createWeaponNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type {
++ (void)createWeaponNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type {
NSString *weaponsDirectory = WEAPONS_DIRECTORY();
if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) {
@@ -269,23 +260,17 @@
NSDictionary *theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: qt,@"ammostore_initialqt",
prob,@"ammostore_probability", delay,@"ammostore_delay", crate,@"ammostore_crate", nil];
- [qt release];
- [prob release];
- [delay release];
- [crate release];
NSString *weaponFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", weaponsDirectory, nameWithoutExt];
[theWeapon writeToFile:weaponFile atomically:YES];
- [weaponFile release];
- [theWeapon release];
}
#pragma mark Schemes
-+(void) createSchemeNamed:(NSString *)nameWithoutExt {
++ (void)createSchemeNamed:(NSString *)nameWithoutExt {
[self createSchemeNamed:nameWithoutExt ofType:0];
}
-+(void) createSchemeNamed:(NSString *)nameWithoutExt ofType:(NSInteger) type {
++ (void)createSchemeNamed:(NSString *)nameWithoutExt ofType:(NSInteger)type {
NSString *schemesDirectory = SCHEMES_DIRECTORY();
if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) {
@@ -300,13 +285,11 @@
NSMutableArray *basicArray = [[NSMutableArray alloc] initWithCapacity:[basicSettings count]];
for (NSDictionary *basicDict in basicSettings)
[basicArray addObject:[basicDict objectForKey:@"default"]];
- [basicSettings release];
NSArray *mods = [[NSArray alloc] initWithContentsOfFile:GAMEMODS_FILE()];
NSMutableArray *gamemodArray= [[NSMutableArray alloc] initWithCapacity:[mods count]];
for (NSUInteger i = 0; i < [mods count]; i++)
[gamemodArray addObject:[NSNumber numberWithBool:NO]];
- [mods release];
switch (type) {
default: // default
@@ -422,14 +405,10 @@
basicArray,@"basic",
gamemodArray,@"gamemod",
nil];
- [gamemodArray release];
- [basicArray release];
NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", schemesDirectory, nameWithoutExt];
[theScheme writeToFile:schemeFile atomically:YES];
- [schemeFile release];
- [theScheme release];
}
@end
--- a/project_files/HedgewarsMobile/Classes/DefinesAndMacros.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/DefinesAndMacros.h Sat Dec 30 01:22:11 2017 +0100
@@ -24,14 +24,11 @@
#ifdef DEBUG
#define DLog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
#define ALog(...) [[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__]
- #define releaseAndNil(x) [x release]
#else
- #define DLog(...) do { } while (0)
#ifndef NS_BLOCK_ASSERTIONS
#define NS_BLOCK_ASSERTIONS
#endif
#define ALog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
- #define releaseAndNil(x) [x release], x = nil
#endif
--- a/project_files/HedgewarsMobile/Classes/EditableCellView.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/EditableCellView.h Sat Dec 30 01:22:11 2017 +0100
@@ -22,12 +22,12 @@
@protocol EditableCellViewDelegate <NSObject>
--(void) saveTextFieldValue:(NSString *)textString withTag:(NSInteger) tagValue;
+- (void)saveTextFieldValue:(NSString *)textString withTag:(NSInteger)tagValue;
@end
@interface EditableCellView : UITableViewCell <UITextFieldDelegate> {
- id<EditableCellViewDelegate> delegate;
+ id<EditableCellViewDelegate> __weak delegate;
UITextField *textField;
UILabel *titleLabel;
NSUInteger minimumCharacters;
@@ -38,16 +38,16 @@
NSString *oldValue;
}
-@property (nonatomic,assign) id<EditableCellViewDelegate> delegate;
-@property (nonatomic,retain,readonly) UITextField *textField;
-@property (nonatomic,retain,readonly) UILabel *titleLabel;
-@property (nonatomic,assign) NSUInteger minimumCharacters;
-@property (nonatomic,assign) NSUInteger maximumCharacters;
-@property (nonatomic,assign) BOOL respectEditing;
-@property (nonatomic,retain) NSString *oldValue;
+@property (nonatomic, weak) id<EditableCellViewDelegate> delegate;
+@property (nonatomic, strong, readonly) UITextField *textField;
+@property (nonatomic, strong, readonly) UILabel *titleLabel;
+@property (assign) NSUInteger minimumCharacters;
+@property (assign) NSUInteger maximumCharacters;
+@property (assign) BOOL respectEditing;
+@property (nonatomic, strong) NSString *oldValue;
--(void) replyKeyboard;
--(void) cancel:(id) sender;
--(void) save:(id) sender;
+- (void)replyKeyboard;
+- (void)cancel:(id)sender;
+- (void)save:(id)sender;
@end
--- a/project_files/HedgewarsMobile/Classes/EditableCellView.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/EditableCellView.m Sat Dec 30 01:22:11 2017 +0100
@@ -23,7 +23,7 @@
@implementation EditableCellView
@synthesize delegate, textField, titleLabel, minimumCharacters, maximumCharacters, respectEditing, oldValue;
--(id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
+- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
delegate = nil;
@@ -40,14 +40,12 @@
[textField addTarget:self action:@selector(save:) forControlEvents:UIControlEventEditingDidEndOnExit];
[self.contentView addSubview:textField];
- //[textField release];
titleLabel = [[UILabel alloc] init];
titleLabel.textAlignment = NSTextAlignmentLeft;
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
[self.contentView addSubview:titleLabel];
- //[titleLabel release];
minimumCharacters = 1;
maximumCharacters = 64;
@@ -57,7 +55,7 @@
return self;
}
--(void) layoutSubviews {
+- (void)layoutSubviews {
[super layoutSubviews];
CGRect contentRect = self.contentView.bounds;
@@ -79,35 +77,27 @@
textField.frame = CGRectMake(boundsX+offset+10, skew+10, 300, [UIFont labelFontSize] + 4);
}
--(void) setSelected:(BOOL)selected animated:(BOOL)animated {
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
--(void) dealloc {
- self.delegate = nil;
- releaseAndNil(oldValue);
- releaseAndNil(titleLabel);
- releaseAndNil(textField);
- [super dealloc];
-}
-
#pragma mark -
#pragma mark textField delegate
// limit the size of the field to 64 characters like in original frontend
--(BOOL) textField:(UITextField *)aTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
+- (BOOL)textField:(UITextField *)aTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
return !([aTextField.text length] > self.maximumCharacters && [string length] > range.length);
}
// allow editing only if delegate is set and conformant to protocol, and if editableOnlyWhileEditing
--(BOOL) textFieldShouldBeginEditing:(UITextField *)aTextField {
+- (BOOL)textFieldShouldBeginEditing:(UITextField *)aTextField {
return (delegate != nil) &&
[delegate respondsToSelector:@selector(saveTextFieldValue:withTag:)] &&
(respectEditing) ? [self findTable].editing : YES;
}
// the textfield is being modified, update the navigation controller
--(void) textFieldDidBeginEditing:(UITextField *)aTextField{
+- (void)textFieldDidBeginEditing:(UITextField *)aTextField{
// don't interact with table below
[self findTable].scrollEnabled = NO;
@@ -118,30 +108,28 @@
target:self
action:@selector(cancel:)];
[(UITableViewController *)delegate navigationItem].leftBarButtonItem = cancelButton;
- [cancelButton release];
UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Save",@"")
style:UIBarButtonItemStyleDone
target:self
action:@selector(save:)];
[(UITableViewController *)delegate navigationItem].rightBarButtonItem = saveButton;
- [saveButton release];
}
/* with this a field might remain in editing status even if the view moved;
use method below instead that allows some more interaction
// don't accept 0-length strings
--(BOOL) textFieldShouldEndEditing:(UITextField *)aTextField {
+- (BOOL)textFieldShouldEndEditing:(UITextField *)aTextField {
return ([aTextField.text length] > 0);
}
*/
--(BOOL) textFieldShouldReturn:(UITextField *)aTextField {
+- (BOOL)textFieldShouldReturn:(UITextField *)aTextField {
return ([aTextField.text length] >= self.minimumCharacters);
}
// the textfield has been modified, tell the delegate to do something
--(void) textFieldDidEndEditing:(UITextField *)aTextField {
+- (void)textFieldDidEndEditing:(UITextField *)aTextField {
// this forces a save when user selects a new field
if ([self.textField.text isEqualToString:self.oldValue] == NO)
[self save:aTextField];
@@ -155,19 +143,19 @@
#pragma mark -
#pragma mark instance methods
// the user wants to show the keyboard
--(void) replyKeyboard {
+- (void)replyKeyboard {
[self.textField becomeFirstResponder];
}
// the user pressed cancel so hide keyboard
--(void) cancel:(id) sender {
+- (void)cancel:(id)sender {
// reverts any changes and performs a fake save for removing the keyboard
self.textField.text = self.oldValue;
[self save:sender];
}
// send the value to the delegate (called before textFieldDidEndEditing)
--(void) save:(id) sender {
+- (void)save:(id)sender {
if (delegate == nil || [delegate respondsToSelector:@selector(saveTextFieldValue:withTag:)] == NO)
return;
@@ -181,7 +169,7 @@
}
// when field is editable only when the tableview is editable, resign responder when exiting editing mode
--(void) willTransitionToState:(UITableViewCellStateMask)state {
+- (void)willTransitionToState:(UITableViewCellStateMask)state {
if (respectEditing && state == UITableViewCellStateDefaultMask)
[self save:nil];
--- a/project_files/HedgewarsMobile/Classes/EngineProtocolNetwork.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/EngineProtocolNetwork.h Sat Dec 30 01:22:11 2017 +0100
@@ -23,32 +23,32 @@
@protocol EngineProtocolDelegate <NSObject>
--(void) gameEndedWithStatistics:(NSArray *)stats;
+- (void)gameEndedWithStatistics:(NSArray *)stats;
@end
@interface EngineProtocolNetwork : NSObject {
- id<EngineProtocolDelegate> delegate;
+ id<EngineProtocolDelegate> __weak delegate;
NSOutputStream *stream;
TCPsocket csd;
NSInteger enginePort;
}
-@property (nonatomic,assign) id<EngineProtocolDelegate> delegate;
-@property (nonatomic,retain) NSOutputStream *stream;
+@property (nonatomic, weak) id<EngineProtocolDelegate> delegate;
+@property (nonatomic, strong) NSOutputStream *stream;
@property (assign) TCPsocket csd;
@property (assign) NSInteger enginePort;
--(id) init;
--(id) initWithPort:(NSInteger) port;
--(void) spawnThread:(NSString *)onSaveFile withOptions:(NSDictionary *)dictionary;
--(void) engineProtocol:(id) object;
+- (id) init;
+- (id) initWithPort:(NSInteger)port;
+- (void)spawnThread:(NSString *)onSaveFile withOptions:(NSDictionary *)dictionary;
+- (void)engineProtocol:(id)object;
-(int) sendToEngine:(NSString *)string;
-(int) sendToEngineNoSave:(NSString *)string;
--(void) provideTeamData:(NSString *)teamName forHogs:(NSInteger) numberOfPlayingHogs withHealth:(NSInteger) initialHealth ofColor:(NSNumber *)teamColor;
--(void) provideAmmoData:(NSString *)ammostoreName forPlayingTeams:(NSInteger) numberOfTeams;
--(NSInteger) provideScheme:(NSString *)schemeName;
+- (void)provideTeamData:(NSString *)teamName forHogs:(NSInteger)numberOfPlayingHogs withHealth:(NSInteger)initialHealth ofColor:(NSNumber *)teamColor;
+- (void)provideAmmoData:(NSString *)ammostoreName forPlayingTeams:(NSInteger)numberOfTeams;
+- (NSInteger)provideScheme:(NSString *)schemeName;
@end
--- a/project_files/HedgewarsMobile/Classes/EngineProtocolNetwork.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/EngineProtocolNetwork.m Sat Dec 30 01:22:11 2017 +0100
@@ -25,7 +25,7 @@
@implementation EngineProtocolNetwork
@synthesize delegate, stream, csd, enginePort;
--(id) initWithPort:(NSInteger) port {
+- (id)initWithPort:(NSInteger)port {
if ((self = [super init])) {
self.delegate = nil;
self.csd = NULL;
@@ -35,19 +35,13 @@
return self;
}
--(id) init {
+- (id)init {
return [self initWithPort:[HWUtils randomPort]];
}
--(void) dealloc {
- self.delegate = nil;
- releaseAndNil(stream);
- [super dealloc];
-}
-
#pragma mark -
#pragma mark Spawner functions
--(void) spawnThread:(NSString *)onSaveFile withOptions:(NSDictionary *)dictionary {
+- (void)spawnThread:(NSString *)onSaveFile withOptions:(NSDictionary *)dictionary {
self.stream = (onSaveFile) ? [[NSOutputStream alloc] initToFileAtPath:onSaveFile append:YES] : nil;
[self.stream open];
@@ -60,7 +54,7 @@
#pragma mark -
#pragma mark Provider functions
// unpacks team data from the selected team.plist to a sequence of engine commands
--(void) provideTeamData:(NSString *)teamName forHogs:(NSInteger) numberOfPlayingHogs withHealth:(NSInteger) initialHealth ofColor:(NSNumber *)teamColor {
+- (void)provideTeamData:(NSString *)teamName forHogs:(NSInteger)numberOfPlayingHogs withHealth:(NSInteger)initialHealth ofColor:(NSNumber *)teamColor {
/*
addteam <32charsMD5hash> <color> <team name>
addhh <level> <health> <hedgehog name>
@@ -69,28 +63,22 @@
NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@", TEAMS_DIRECTORY(), teamName];
NSDictionary *teamData = [[NSDictionary alloc] initWithContentsOfFile:teamFile];
- [teamFile release];
NSString *teamHashColorAndName = [[NSString alloc] initWithFormat:@"eaddteam %@ %@ %@",
[teamData objectForKey:@"hash"], [teamColor stringValue], [teamName stringByDeletingPathExtension]];
[self sendToEngine: teamHashColorAndName];
- [teamHashColorAndName release];
NSString *grave = [[NSString alloc] initWithFormat:@"egrave %@", [teamData objectForKey:@"grave"]];
[self sendToEngine: grave];
- [grave release];
NSString *fort = [[NSString alloc] initWithFormat:@"efort %@", [teamData objectForKey:@"fort"]];
[self sendToEngine: fort];
- [fort release];
NSString *voicepack = [[NSString alloc] initWithFormat:@"evoicepack %@", [teamData objectForKey:@"voicepack"]];
[self sendToEngine: voicepack];
- [voicepack release];
NSString *flag = [[NSString alloc] initWithFormat:@"eflag %@", [teamData objectForKey:@"flag"]];
[self sendToEngine: flag];
- [flag release];
NSArray *hogs = [teamData objectForKey:@"hedgehogs"];
for (int i = 0; i < numberOfPlayingHogs; i++) {
@@ -99,21 +87,16 @@
NSString *hogLevelHealthAndName = [[NSString alloc] initWithFormat:@"eaddhh %@ %ld %@",
[hog objectForKey:@"level"], (long)initialHealth, [hog objectForKey:@"hogname"]];
[self sendToEngine: hogLevelHealthAndName];
- [hogLevelHealthAndName release];
NSString *hogHat = [[NSString alloc] initWithFormat:@"ehat %@", [hog objectForKey:@"hat"]];
[self sendToEngine: hogHat];
- [hogHat release];
}
-
- [teamData release];
}
// unpacks ammostore data from the selected ammo.plist to a sequence of engine commands
--(void) provideAmmoData:(NSString *)ammostoreName forPlayingTeams:(NSInteger) numberOfTeams {
+- (void)provideAmmoData:(NSString *)ammostoreName forPlayingTeams:(NSInteger)numberOfTeams {
NSString *weaponPath = [[NSString alloc] initWithFormat:@"%@/%@",WEAPONS_DIRECTORY(),ammostoreName];
NSDictionary *ammoData = [[NSDictionary alloc] initWithContentsOfFile:weaponPath];
- [weaponPath release];
// if we're loading an older version of ammos fill the engine message with 0s
int diff = HW_getNumberOfWeapons() - [[ammoData objectForKey:@"ammostore_initialqt"] length];
@@ -123,34 +106,28 @@
NSString *ammloadt = [[NSString alloc] initWithFormat:@"eammloadt %@%@", [ammoData objectForKey:@"ammostore_initialqt"], update];
[self sendToEngine: ammloadt];
- [ammloadt release];
NSString *ammprob = [[NSString alloc] initWithFormat:@"eammprob %@%@", [ammoData objectForKey:@"ammostore_probability"], update];
[self sendToEngine: ammprob];
- [ammprob release];
NSString *ammdelay = [[NSString alloc] initWithFormat:@"eammdelay %@%@", [ammoData objectForKey:@"ammostore_delay"], update];
[self sendToEngine: ammdelay];
- [ammdelay release];
NSString *ammreinf = [[NSString alloc] initWithFormat:@"eammreinf %@%@", [ammoData objectForKey:@"ammostore_crate"], update];
[self sendToEngine: ammreinf];
- [ammreinf release];
// send this for each team so it applies the same ammostore to all teams
NSString *ammstore = [[NSString alloc] initWithString:@"eammstore"];
- for (int i = 0; i < numberOfTeams; i++)
+ for (int i = 0; i < numberOfTeams; i++) {
[self sendToEngine: ammstore];
- [ammstore release];
-
- [ammoData release];
+ }
}
// unpacks scheme data from the selected scheme.plist to a sequence of engine commands
--(NSInteger) provideScheme:(NSString *)schemeName {
+- (NSInteger)provideScheme:(NSString *)schemeName {
NSString *schemePath = [[NSString alloc] initWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),schemeName];
NSDictionary *schemeDictionary = [[NSDictionary alloc] initWithContentsOfFile:schemePath];
- [schemePath release];
+
NSArray *basicArray = [schemeDictionary objectForKey:@"basic"];
NSArray *gamemodArray = [schemeDictionary objectForKey:@"gamemod"];
int result = 0;
@@ -164,7 +141,6 @@
}
NSString *flags = [[NSString alloc] initWithFormat:@"e$gmflags %d",result];
[self sendToEngine:flags];
- [flags release];
// basic game flags
result = [[basicArray objectAtIndex:0] intValue];
@@ -180,17 +156,14 @@
value = value * 1000;
NSString *strToSend = [[NSString alloc] initWithFormat:@"%@ %d",command,value];
[self sendToEngine:strToSend];
- [strToSend release];
}
- [basic release];
- [schemeDictionary release];
return result;
}
#pragma mark -
#pragma mark Network relevant code
--(void) dumpRawData:(const char *)buffer ofSize:(uint8_t) length {
+- (void)dumpRawData:(const char *)buffer ofSize:(uint8_t) length {
[self.stream write:&length maxLength:1];
[self.stream write:(const uint8_t *)buffer maxLength:length];
}
@@ -213,7 +186,7 @@
}
// this is launched as thread and handles all IPC with engine
--(void) engineProtocol:(id) object {
+- (void)engineProtocol:(id)object {
@autoreleasepool {
NSDictionary *gameConfig = (NSDictionary *)object;
@@ -259,7 +232,7 @@
break;
switch (buffer[0]) {
- case 'C':
+ case 'C': {
DLog(@"Sending game config...\n%@", gameConfig);
/*if (isNetGame == YES)
@@ -310,15 +283,18 @@
ofColor:[teamData objectForKey:@"color"]];
}
break;
- case '?':
+ }
+ case '?': {
DLog(@"Ping? Pong!");
[self sendToEngine:@"!"];
break;
- case 'E':
+ }
+ case 'E': {
DLog(@"ERROR - last console line: [%s]", &buffer[1]);
clientQuit = YES;
break;
- case 'e':
+ }
+ case 'e': {
[self dumpRawData:buffer ofSize:msgSize];
sscanf((char *)buffer, "%*s %d", &eProto);
@@ -333,21 +309,22 @@
clientQuit = YES;
}
break;
- case 'i':
+ }
+ case 'i': {
if (statsArray == nil) {
statsArray = [[NSMutableArray alloc] initWithCapacity:10 - 2];
NSMutableArray *ranking = [[NSMutableArray alloc] initWithCapacity:4];
[statsArray insertObject:ranking atIndex:0];
- [ranking release];
}
NSString *tempStr = [NSString stringWithUTF8String:&buffer[2]];
NSArray *info = [tempStr componentsSeparatedByString:@" "];
NSString *arg = [info objectAtIndex:0];
int index = [arg lengthOfBytesUsingEncoding:NSUTF8StringEncoding] + 3;
switch (buffer[1]) {
- case 'r': // winning team
+ case 'r': { // winning team
[statsArray insertObject:[NSString stringWithUTF8String:&buffer[2]] atIndex:1];
break;
+ }
case 'D': // best shot
{
NSString *hogName = [NSString stringWithUTF8String:&buffer[index]];
@@ -394,19 +371,21 @@
break;
}
break;
- case 'q':
+ }
+ case 'q': {
// game ended and match finished, statsArray is full of delicious statistics
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(gameEndedWithStatistics:)])
[self.delegate gameEndedWithStatistics:statsArray];
- [statsArray release];
[HWUtils setGameStatus:gsEnded];
// closing connection here would trigger a "IPC connection lost" error, so we have to wait until recv fails
break;
- case 'Q':
+ }
+ case 'Q': {
// game exited but not completed, skip this message in the savefile
[HWUtils setGameStatus:gsInterrupted];
// same here, don't set clientQuit to YES
break;
+ }
default:
[self dumpRawData:buffer ofSize:msgSize];
break;
@@ -415,7 +394,6 @@
DLog(@"Engine exited, ending thread");
[self.stream close];
- [self.stream release];
// Close the client socket
[HWUtils freePort:self.enginePort];
--- a/project_files/HedgewarsMobile/Classes/ExtraCategories.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/ExtraCategories.h Sat Dec 30 01:22:11 2017 +0100
@@ -30,7 +30,7 @@
@interface UITableView (backgroundColor)
--(void) setBackgroundColorForAnyTable:(UIColor *)color;
+- (void)setBackgroundColorForAnyTable:(UIColor *)color;
@end
@@ -48,7 +48,7 @@
@interface UIButton (quickStyle)
--(id) initWithFrame:(CGRect) frame andTitle:(NSString *)title;
+- (id)initWithFrame:(CGRect)frame andTitle:(NSString *)title;
- (void)applyBlackQuickStyle;
- (void)applyDarkBlueQuickStyle;
@@ -58,9 +58,9 @@
@interface UILabel (quickStyle)
--(id) initWithFrame:(CGRect)frame andTitle:(NSString *)title;
--(id) initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat) borderWidth;
--(id) initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat) borderWidth
+- (id)initWithFrame:(CGRect)frame andTitle:(NSString *)title;
+- (id)initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat)borderWidth;
+- (id)initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat)borderWidth
withBorderColor:(UIColor *)borderColor withBackgroundColor:(UIColor *)backColor;
@end
--- a/project_files/HedgewarsMobile/Classes/ExtraCategories.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/ExtraCategories.m Sat Dec 30 01:22:11 2017 +0100
@@ -47,12 +47,11 @@
#pragma mark -
@implementation UITableView (backgroundColor)
--(void) setBackgroundColorForAnyTable:(UIColor *) color {
+- (void)setBackgroundColorForAnyTable:(UIColor *) color {
if ([self respondsToSelector:@selector(backgroundView)]) {
UIView *backView = [[UIView alloc] initWithFrame:self.frame];
backView.backgroundColor = color;
self.backgroundView = backView;
- [backView release];
self.backgroundColor = [UIColor clearColor];
} else
self.backgroundColor = color;
@@ -97,8 +96,8 @@
#pragma mark -
@implementation UIButton (quickStyle)
--(id) initWithFrame:(CGRect) frame andTitle:(NSString *)title {
- [self initWithFrame:frame];
+- (id)initWithFrame:(CGRect)frame andTitle:(NSString *)title {
+ if (!(self = [self initWithFrame:frame])) return nil;
[self setTitle:title forState:UIControlStateNormal];
[self applyBlackQuickStyle];
@@ -137,7 +136,7 @@
#pragma mark -
@implementation UILabel (quickStyle)
--(id) initWithFrame:(CGRect)frame andTitle:(NSString *)title {
+- (id)initWithFrame:(CGRect)frame andTitle:(NSString *)title {
return [self initWithFrame:frame
andTitle:title
withBorderWidth:1.5f
@@ -145,7 +144,7 @@
withBackgroundColor:[UIColor darkBlueColor]];
}
--(id) initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat) borderWidth {
+- (id)initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat)borderWidth {
return [self initWithFrame:frame
andTitle:title
withBorderWidth:borderWidth
@@ -153,7 +152,7 @@
withBackgroundColor:[UIColor darkBlueColorTransparent]];
}
--(id) initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat) borderWidth
+- (id)initWithFrame:(CGRect)frame andTitle:(NSString *)title withBorderWidth:(CGFloat)borderWidth
withBorderColor:(UIColor *)borderColor withBackgroundColor:(UIColor *)backColor {
UILabel *theLabel = [self initWithFrame:frame];
theLabel.backgroundColor = backColor;
--- a/project_files/HedgewarsMobile/Classes/FlagsViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/FlagsViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -28,9 +28,9 @@
NSIndexPath *lastIndexPath;
}
-@property (nonatomic,retain) NSDictionary * teamDictionary;
-@property (nonatomic,retain) NSArray *flagArray;
-@property (nonatomic,retain) NSArray *communityArray;
-@property (nonatomic,retain) NSIndexPath *lastIndexPath;
+@property (nonatomic, strong) NSDictionary * teamDictionary;
+@property (nonatomic, strong) NSArray *flagArray;
+@property (nonatomic, strong) NSArray *communityArray;
+@property (nonatomic, strong) NSIndexPath *lastIndexPath;
@end
--- a/project_files/HedgewarsMobile/Classes/FlagsViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/FlagsViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -24,13 +24,13 @@
@implementation FlagsViewController
@synthesize teamDictionary, flagArray, communityArray, lastIndexPath;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray *array_na = [[NSMutableArray alloc] init];
@@ -45,14 +45,12 @@
}
self.flagArray = array_na;
- [array_na release];
self.communityArray = array_cm;
- [array_cm release];
self.title = NSLocalizedString(@"Set team flag",@"");
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// reloadData needed because team might change
[self.tableView reloadData];
@@ -62,11 +60,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == 0)
return [self.flagArray count];
else
@@ -80,7 +78,7 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSString *flagName = nil;
@@ -94,9 +92,7 @@
}
NSString *flagFile = [[NSString alloc] initWithFormat:@"%@/%@", FLAGS_DIRECTORY(), flagName];
UIImage *flagSprite = [[UIImage alloc] initWithContentsOfFile:flagFile];
- [flagFile release];
cell.imageView.image = flagSprite;
- [flagSprite release];
cell.imageView.layer.borderWidth = 1;
cell.imageView.layer.borderColor = [[UIColor blackColor] CGColor];
@@ -130,7 +126,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger newRow = [indexPath row];
NSInteger oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
NSInteger newSection = [indexPath section];
@@ -163,29 +159,12 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
self.lastIndexPath = nil;
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- self.teamDictionary = nil;
- self.lastIndexPath = nil;
- self.flagArray = nil;
- self.communityArray = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(teamDictionary);
- releaseAndNil(lastIndexPath);
- releaseAndNil(flagArray);
- releaseAndNil(communityArray);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/FortsViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/FortsViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -27,8 +27,8 @@
NSIndexPath *lastIndexPath;
}
-@property (nonatomic,retain) NSDictionary * teamDictionary;
-@property (nonatomic,retain) NSArray *fortArray;
-@property (nonatomic,retain) NSIndexPath *lastIndexPath;
+@property (nonatomic, strong) NSDictionary * teamDictionary;
+@property (nonatomic, strong) NSArray *fortArray;
+@property (nonatomic, strong) NSIndexPath *lastIndexPath;
@end
--- a/project_files/HedgewarsMobile/Classes/FortsViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/FortsViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -26,14 +26,14 @@
@synthesize teamDictionary, fortArray, lastIndexPath;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
NSArray *directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:FORTS_DIRECTORY() error:NULL];
@@ -49,7 +49,6 @@
}
}
self.fortArray = filteredContents;
- [filteredContents release];
// statically set row height instead of using delegate method for performance reasons
self.tableView.rowHeight = 128;
@@ -58,7 +57,7 @@
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.tableView reloadData];
[self.tableView setContentOffset:CGPointMake(0,0) animated:NO];
@@ -67,11 +66,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.fortArray count];
}
@@ -81,17 +80,15 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
- reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
+ reuseIdentifier:CellIdentifier];
NSString *fortName = [fortArray objectAtIndex:[indexPath row]];
cell.textLabel.text = fortName;
NSString *fortFile = [[NSString alloc] initWithFormat:@"%@/%@-preview.png", FORTS_DIRECTORY(), fortName];
UIImage *fortSprite = [[UIImage alloc] initWithContentsOfFile:fortFile];
- [fortFile release];
cell.imageView.image = fortSprite;
- [fortSprite release];
//cell.detailTextLabel.text = @"Insert funny description here";
if ([cell.textLabel.text isEqualToString:[self.teamDictionary objectForKey:@"fort"]]) {
@@ -107,7 +104,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger newRow = [indexPath row];
NSInteger oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
@@ -132,28 +129,12 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
self.lastIndexPath = nil;
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- self.teamDictionary = nil;
- self.lastIndexPath = nil;
- self.fortArray = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
-
--(void) dealloc {
- releaseAndNil(teamDictionary);
- releaseAndNil(lastIndexPath);
- releaseAndNil(fortArray);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -45,9 +45,9 @@
@property (nonatomic,retain) IBOutlet MapConfigViewController *mapConfigViewController;
@property (nonatomic,retain) HelpPageLobbyViewController *helpPage;
--(IBAction) buttonPressed:(id) sender;
--(IBAction) segmentPressed:(id) sender;
--(void) startGame:(UIButton *)button;
--(BOOL) isEverythingSet;
+- (IBAction)buttonPressed:(id)sender;
+- (IBAction)segmentPressed:(id)sender;
+- (void)startGame:(UIButton *)button;
+- (BOOL)isEverythingSet;
@end
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -35,13 +35,13 @@
@synthesize imgContainer, titleImage, sliderBackground, helpPage,
mapConfigViewController, teamConfigViewController, schemeWeaponConfigViewController;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark - Buttons
--(IBAction) buttonPressed:(id) sender {
+- (IBAction)buttonPressed:(id)sender {
UIButton *theButton = (UIButton *)sender;
switch (theButton.tag) {
@@ -53,7 +53,6 @@
cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
otherButtonTitles:nil];
[alert show];
- [alert release];
} else {
[[AudioManagerController mainManager] playBackSound];
[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];
@@ -68,7 +67,7 @@
[self startGame:theButton];
break;
- case 2:
+ case 2: {
[[AudioManagerController mainManager] playClickSound];
if (self.helpPage == nil)
self.helpPage = [[HelpPageLobbyViewController alloc] initWithNibName:@"HelpPageLobbyViewController-iPad" bundle:nil];
@@ -79,6 +78,7 @@
self.helpPage.view.alpha = 1;
}];
break;
+ }
default:
DLog(@"Nope");
break;
@@ -96,7 +96,7 @@
}
}
--(IBAction) segmentPressed:(id) sender {
+- (IBAction)segmentPressed:(id)sender {
UISegmentedControl *theSegment = (UISegmentedControl *)sender;
@@ -138,7 +138,7 @@
#pragma mark -
--(BOOL) isEverythingSet {
+- (BOOL)isEverythingSet {
// don't start playing if the preview is in progress
if ([self.mapConfigViewController busy]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Wait for the Preview",@"")
@@ -147,7 +147,6 @@
cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
otherButtonTitles:nil];
[alert show];
- [alert release];
return NO;
}
@@ -159,7 +158,6 @@
cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
otherButtonTitles:nil];
[alert show];
- [alert release];
return NO;
}
@@ -174,7 +172,6 @@
cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
otherButtonTitles:nil];
[alert show];
- [alert release];
return NO;
}
@@ -186,7 +183,6 @@
cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
otherButtonTitles:nil];
[alert show];
- [alert release];
return NO;
}
@@ -198,14 +194,12 @@
cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
otherButtonTitles:nil];
[alert show];
- [alert release];
return NO;
}
// play if the gameflags are set correctly (divideteam works only with 2 teams)
NSString *schemePath = [[NSString alloc] initWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),self.schemeWeaponConfigViewController.selectedScheme];
NSArray *gameFlags = [[NSDictionary dictionaryWithContentsOfFile:schemePath] objectForKey:@"gamemod"];
- [schemePath release];
if ([[gameFlags objectAtIndex:2] boolValue] && [self.teamConfigViewController.listOfSelectedTeams count] != 2) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Scheme mismatch",@"")
message:NSLocalizedString(@"The scheme you selected allows only for two teams",@"")
@@ -213,14 +207,13 @@
cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
otherButtonTitles:nil];
[alert show];
- [alert release];
return NO;
}
return YES;
}
--(void) startGame:(UIButton *)button {
+- (void)startGame:(UIButton *)button {
button.enabled = YES;
NSString *script = self.mapConfigViewController.missionCommand;
@@ -243,17 +236,14 @@
[GameInterfaceBridge registerCallingController:self];
[GameInterfaceBridge startLocalGame:gameDictionary];
- [gameDictionary release];
}
--(void) loadNiceHogs
+- (void)loadNiceHogs
{
@autoreleasepool
{
-
NSString *filePath = [[NSString alloc] initWithFormat:@"%@/Hedgehog/Idle.png",GRAPHICS_DIRECTORY()];
UIImage *hogSprite = [[UIImage alloc] initWithContentsOfFile:filePath];
- [filePath release];
NSArray *hatArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:HATS_DIRECTORY() error:NULL];
NSUInteger numberOfHats = [hatArray count];
@@ -278,13 +268,10 @@
[animation addObject:hogWithHat];
}
}
- [hatSprite release];
- [hatFile release];
UIImageView *hog = [[UIImageView alloc] initWithImage:[animation firstObject]];
hog.animationImages = animation;
hog.animationDuration = 3;
- [animation release];
int x = 20*i+arc4random_uniform(128);
while (x > 320 - 32)
@@ -293,9 +280,7 @@
hog.frame = CGRectMake(x, 25, hog.frame.size.width, hog.frame.size.height);
[self.imgContainer addSubview:hog];
[hog startAnimating];
- [hog release];
}
- [hogSprite release];
dispatch_async(dispatch_get_main_queue(), ^{
@@ -326,7 +311,7 @@
self.imgContainer = nil;
}
--(void) viewDidLoad
+- (void)viewDidLoad
{
[super viewDidLoad];
@@ -342,7 +327,6 @@
andTitle:nil
withBorderWidth:2.0f];
self.sliderBackground = backLabel;
- [backLabel release];
[self.view addSubview:self.sliderBackground];
// the label for max hogs
@@ -354,7 +338,6 @@
maxLabel.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:maxLabel];
self.mapConfigViewController.maxLabel = maxLabel;
- [maxLabel release];
}
else
{
@@ -370,7 +353,7 @@
[self.view bringSubviewToFront:self.mapConfigViewController.slider];
}
--(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval) duration {
+- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval) duration {
if (IS_IPAD() == NO)
return;
@@ -406,7 +389,7 @@
}
}
--(void) viewWillAppear:(BOOL)animated
+- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
@@ -436,7 +419,7 @@
}
}
--(void) didReceiveMemoryWarning
+- (void)didReceiveMemoryWarning
{
[self clearImgContainer];
@@ -457,30 +440,4 @@
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- self.imgContainer = nil;
- self.titleImage = nil;
- self.sliderBackground = nil;
- self.schemeWeaponConfigViewController = nil;
- self.teamConfigViewController = nil;
- self.mapConfigViewController = nil;
- self.helpPage = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(_tabsSegmentedControl);
- releaseAndNil(_backButton);
- releaseAndNil(_startButton);
- releaseAndNil(imgContainer);
- releaseAndNil(titleImage);
- releaseAndNil(sliderBackground);
- releaseAndNil(schemeWeaponConfigViewController);
- releaseAndNil(teamConfigViewController);
- releaseAndNil(mapConfigViewController);
- releaseAndNil(helpPage);
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.h Sat Dec 30 01:22:11 2017 +0100
@@ -27,16 +27,16 @@
NSInteger port;
}
-@property (nonatomic,retain) UIView *blackView;
-@property (nonatomic,retain) NSString *savePath;
+@property (nonatomic, strong) UIView *blackView;
+@property (nonatomic, strong) NSString *savePath;
@property (assign) NSInteger port;
-+(void) startLocalGame:(NSDictionary *)withOptions;
-+(void) startSaveGame:(NSString *)atPath;
-+(void) startMissionGame:(NSString *)withScript;
-+(void) startCampaignMissionGameWithScript:(NSString *)missionScriptName forCampaign:(NSString *)campaignName;
-+(void) startSimpleGame;
++ (void)startLocalGame:(NSDictionary *)withOptions;
++ (void)startSaveGame:(NSString *)atPath;
++ (void)startMissionGame:(NSString *)withScript;
++ (void)startCampaignMissionGameWithScript:(NSString *)missionScriptName forCampaign:(NSString *)campaignName;
++ (void)startSimpleGame;
-+(void) registerCallingController:(UIViewController *)controller;
++ (void)registerCallingController:(UIViewController *)controller;
@end
--- a/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m Sat Dec 30 01:22:11 2017 +0100
@@ -30,15 +30,13 @@
#pragma mark -
#pragma mark Instance methods for engine interaction
// prepares the controllers for hosting a game
--(void) earlyEngineLaunch:(NSDictionary *)optionsOrNil {
- [self retain];
+- (void)earlyEngineLaunch:(NSDictionary *)optionsOrNil {
[[AudioManagerController mainManager] fadeOutBackgroundMusic];
EngineProtocolNetwork *engineProtocol = [[EngineProtocolNetwork alloc] init];
self.port = engineProtocol.enginePort;
engineProtocol.delegate = self;
[engineProtocol spawnThread:self.savePath withOptions:optionsOrNil];
- [engineProtocol release];
// add a black view hiding the background
UIWindow *thisWindow = [[HedgewarsAppDelegate sharedAppDelegate] uiwindow];
@@ -52,7 +50,6 @@
self.blackView.alpha = 1;
[UIView commitAnimations];
[thisWindow addSubview:self.blackView];
- [self.blackView release];
// keep the point of return for games that completed loading
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
@@ -65,7 +62,7 @@
}
// cleans up everything
--(void) lateEngineLaunch {
+- (void)lateEngineLaunch {
// notify views below that they are getting the spotlight again
[[[HedgewarsAppDelegate sharedAppDelegate] uiwindow] makeKeyAndVisible];
[callingController viewWillAppear:YES];
@@ -91,11 +88,10 @@
[[AudioManagerController mainManager] fadeInBackgroundMusic];
[HWUtils setGameStatus:gsNone];
[HWUtils setGameType:gtNone];
- [self release];
}
// main routine for calling the actual game engine
--(void) engineLaunch {
+- (void)engineLaunch {
CGFloat width, height;
CGFloat screenScale = [[UIScreen mainScreen] safeScale];
NSString *ipcString = [[NSString alloc] initWithFormat:@"%d",self.port];
@@ -141,11 +137,6 @@
@"--prefix", resourcePath,
@"--user-prefix", documentsDirectory,
nil];
- [verticalSize release];
- [horizontalSize release];
- [resourcePath release];
- [localeString release];
- [ipcString release];
NSString *username = [settings objectForKey:@"username"];
if ([username length] > 0) {
@@ -175,7 +166,6 @@
const char **argv = (const char **)malloc(sizeof(const char*)*argc);
for (int i = 0; i < argc; i++)
argv[i] = strdup([[gameParameters objectAtIndex:i] UTF8String]);
- [gameParameters release];
// this is the pascal function that starts the game
RunEngine(argc, argv);
@@ -189,88 +179,72 @@
[self lateEngineLaunch];
}
--(void) dealloc {
- releaseAndNil(blackView);
- releaseAndNil(savePath);
- [super dealloc];
-}
#pragma mark -
#pragma mark EngineProtocolDelegate methods
--(void) gameEndedWithStatistics:(NSArray *)stats {
+- (void)gameEndedWithStatistics:(NSArray *)stats {
if (stats != nil) {
StatsPageViewController *statsPage = [[StatsPageViewController alloc] init];
statsPage.statsArray = stats;
statsPage.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[callingController presentViewController:statsPage animated:YES completion:nil];
- [statsPage release];
}
}
#pragma mark -
#pragma mark Class methods for setting up the engine from outsite
-+(void) registerCallingController:(UIViewController *)controller {
++ (void)registerCallingController:(UIViewController *)controller {
callingController = controller;
}
-+(void) startGame:(TGameType) type atPath:(NSString *)path withOptions:(NSDictionary *)config {
++ (void)startGame:(TGameType)type atPath:(NSString *)path withOptions:(NSDictionary *)config {
[HWUtils setGameType:type];
id bridge = [[self alloc] init];
[bridge setSavePath:path];
[bridge earlyEngineLaunch:config];
- [bridge release];
}
-+(void) startLocalGame:(NSDictionary *)withOptions {
++ (void)startLocalGame:(NSDictionary *)withOptions {
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"yyyy-MM-dd '@' HH.mm"];
NSString *savePath = [[NSString alloc] initWithFormat:@"%@%@.hws",SAVES_DIRECTORY(),[outputFormatter stringFromDate:[NSDate date]]];
- [outputFormatter release];
// in the rare case in which a savefile with the same name exists the older one must be removed (otherwise it gets corrupted)
if ([[NSFileManager defaultManager] fileExistsAtPath:savePath])
[[NSFileManager defaultManager] removeItemAtPath:savePath error:nil];
[self startGame:gtLocal atPath:savePath withOptions:withOptions];
- [savePath release];
}
-+(void) startSaveGame:(NSString *)atPath {
++ (void)startSaveGame:(NSString *)atPath {
[self startGame:gtSave atPath:atPath withOptions:nil];
}
-+(void) startMissionGame:(NSString *)withScript {
++ (void)startMissionGame:(NSString *)withScript {
NSString *seedCmd = [self seedCommand];
NSString *missionPath = [[NSString alloc] initWithFormat:@"escript Missions/Training/%@.lua",withScript];
NSDictionary *missionDict = [[NSDictionary alloc] initWithObjectsAndKeys:missionPath, @"mission_command", seedCmd, @"seed_command", nil];
- [missionPath release];
- [seedCmd release];
[self startGame:gtMission atPath:nil withOptions:missionDict];
- [missionDict release];
}
-+(NSString *) seedCommand {
++ (NSString *)seedCommand {
// generate a seed
NSString *seed = [HWUtils seed];
NSString *seedCmd = [[NSString alloc] initWithFormat:@"eseed {%@}", seed];
- [seed release];
return seedCmd;
}
-+(void) startCampaignMissionGameWithScript:(NSString *)missionScriptName forCampaign:(NSString *)campaignName {
++ (void)startCampaignMissionGameWithScript:(NSString *)missionScriptName forCampaign:(NSString *)campaignName {
NSString *seedCmd = [self seedCommand];
NSString *campaignMissionPath = [[NSString alloc] initWithFormat:@"escript Missions/Campaign/%@/%@", campaignName, missionScriptName];
NSDictionary *campaignMissionDict = [[NSDictionary alloc] initWithObjectsAndKeys:campaignMissionPath, @"mission_command", seedCmd, @"seed_command", nil];
- [campaignMissionPath release];
- [seedCmd release];
[self startGame:gtCampaign atPath:nil withOptions:campaignMissionDict];
- [campaignMissionDict release];
}
-+(void) startSimpleGame {
++ (void)startSimpleGame {
NSString *seedCmd = [self seedCommand];
// pick a random static map
@@ -278,9 +252,7 @@
NSString *mapName = [listOfMaps objectAtIndex:arc4random_uniform((int)[listOfMaps count])];
NSString *fileCfg = [[NSString alloc] initWithFormat:@"%@/%@/map.cfg",MAPS_DIRECTORY(),mapName];
NSString *contents = [[NSString alloc] initWithContentsOfFile:fileCfg encoding:NSUTF8StringEncoding error:NULL];
- [fileCfg release];
NSArray *split = [contents componentsSeparatedByString:@"\n"];
- [contents release];
NSString *themeCommand = [[NSString alloc] initWithFormat:@"etheme %@", [split objectAtIndex:0]];
NSString *staticMapCommand = [[NSString alloc] initWithFormat:@"emap %@", mapName];
@@ -301,8 +273,6 @@
[NSNumber numberWithUnsignedInt:secondColor],@"color",
@"Robots.plist",@"team",nil];
NSArray *listOfTeams = [[NSArray alloc] initWithObjects:firstTeam,secondTeam,nil];
- [firstTeam release];
- [secondTeam release];
// create the configuration
NSDictionary *gameDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:
@@ -317,14 +287,9 @@
@"Default.plist",@"weapon",
@"",@"mission_command",
nil];
- [listOfTeams release];
- [staticMapCommand release];
- [themeCommand release];
- [seedCmd release];
// launch game
[GameInterfaceBridge startLocalGame:gameDictionary];
- [gameDictionary release];
}
@end
--- a/project_files/HedgewarsMobile/Classes/GameLogViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameLogViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -41,14 +41,12 @@
UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStylePlain target:self action:@selector(dismissAction)];
self.navigationItem.rightBarButtonItem = closeButton;
- [closeButton release];
#ifdef DEBUG
if ([self allowSendLogByEmail])
{
UIBarButtonItem *sendButton = [[UIBarButtonItem alloc] initWithTitle:@"Send" style:UIBarButtonItemStylePlain target:self action:@selector(sendLogByEmailAction)];
self.navigationItem.leftBarButtonItem = sendButton;
- [sendButton release];
}
#endif
@@ -61,11 +59,9 @@
UITextView *logView = [[UITextView alloc] initWithFrame:self.view.frame];
[logView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];
logView.text = debugStr;
- [debugStr release];
logView.editable = NO;
[self.view addSubview:logView];
- [logView release];
}
#pragma mark - Parameters
@@ -95,7 +91,6 @@
[picker setMessageBody:emailBody isHTML:NO];
[self presentViewController:picker animated:YES completion:nil];
- [picker release];
}
#endif
--- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -23,23 +23,23 @@
@implementation GeneralSettingsViewController
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View Lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
self.navigationItem.title = NSLocalizedString(@"Edit game options", nil);
[super viewDidLoad];
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[self.tableView setContentOffset:CGPointMake(0,0) animated:NO];
[super viewWillAppear:animated];
}
--(void) viewWillDisappear:(BOOL)animated {
+- (void)viewWillDisappear:(BOOL)animated {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults synchronize];
if ([[userDefaults objectForKey:@"music"] boolValue] == NO)
@@ -49,7 +49,7 @@
}
#pragma mark -
--(void) switchValueChanged:(id) sender {
+- (void)switchValueChanged:(id)sender {
UISwitch *theSwitch = (UISwitch *)sender;
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
@@ -76,7 +76,7 @@
}
}
--(void) saveTextFieldValue:(NSString *)textString withTag:(NSInteger) tagValue {
+- (void)saveTextFieldValue:(NSString *)textString withTag:(NSInteger)tagValue {
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
if (tagValue == 40)
@@ -87,11 +87,11 @@
#pragma mark -
#pragma mark TableView Methods
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 3;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger )section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger )section {
switch (section) {
case 0: // user and pass
return 1; // set 2 here to show the password field
@@ -143,7 +143,7 @@
case 0:
editableCell = (EditableCellView *)[aTableView dequeueReusableCellWithIdentifier:cellIdentifier0];
if (nil == editableCell) {
- editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier0] autorelease];
+ editableCell = [[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier0];
editableCell.minimumCharacters = 0;
editableCell.delegate = self;
editableCell.textField.font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
@@ -170,11 +170,10 @@
case 1:
cell = [aTableView dequeueReusableCellWithIdentifier:cellIdentifier1];
if (nil == cell) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier1] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier1];
UISwitch *theSwitch = [[UISwitch alloc] init];
[theSwitch addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
cell.accessoryView = theSwitch;
- [theSwitch release];
}
switchContent = (UISwitch *)cell.accessoryView;
@@ -191,11 +190,10 @@
case 2:
cell = [aTableView dequeueReusableCellWithIdentifier:cellIdentifier2];
if (nil == cell) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier2] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier2];
UISwitch *theSwitch = [[UISwitch alloc] init];
[theSwitch addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
cell.accessoryView = theSwitch;
- [theSwitch release];
}
switchContent = (UISwitch *)cell.accessoryView;
@@ -231,7 +229,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
if (0 == [indexPath section]) {
EditableCellView *cell = (EditableCellView *)[aTableView cellForRowAtIndexPath:indexPath];
@@ -242,16 +240,9 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- [super viewDidUnload];
-}
-
--(void) dealloc {
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/GravesViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/GravesViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -27,8 +27,8 @@
NSIndexPath *lastIndexPath;
}
-@property (nonatomic,retain) NSMutableDictionary *teamDictionary;
-@property (nonatomic,retain) NSArray *graveArray;
-@property (nonatomic,retain) NSIndexPath *lastIndexPath;
+@property (nonatomic, strong) NSMutableDictionary *teamDictionary;
+@property (nonatomic, strong) NSArray *graveArray;
+@property (nonatomic, strong) NSIndexPath *lastIndexPath;
@end
--- a/project_files/HedgewarsMobile/Classes/GravesViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/GravesViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -23,13 +23,13 @@
@implementation GravesViewController
@synthesize teamDictionary, graveArray, lastIndexPath;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
// load all the grave names and store them into graveArray
@@ -38,7 +38,7 @@
self.title = NSLocalizedString(@"Choose hedgehog graves",@"");
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.tableView reloadData];
// this moves the tableview to the top
@@ -48,11 +48,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.graveArray count];
}
@@ -62,7 +62,7 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
NSString *grave = [self.graveArray objectAtIndex:[indexPath row]];
cell.textLabel.text = [grave stringByDeletingPathExtension];
@@ -77,9 +77,7 @@
NSString *graveFilePath = [[NSString alloc] initWithFormat:@"%@/%@",GRAVES_DIRECTORY(),grave];
// because we also have multi frame graves, let's take the first one only
UIImage *graveSprite = [[UIImage alloc] initWithContentsOfFile:graveFilePath andCutAt:CGRectMake(0, 0, 32, 32)];
- [graveFilePath release];
cell.imageView.image = graveSprite;
- [graveSprite release];
return cell;
}
@@ -87,7 +85,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger newRow = [indexPath row];
NSInteger oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
@@ -111,27 +109,12 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
self.lastIndexPath = nil;
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- self.lastIndexPath = nil;
- self.teamDictionary = nil;
- self.graveArray = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(graveArray);
- releaseAndNil(teamDictionary);
- releaseAndNil(lastIndexPath);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/HWUtils.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/HWUtils.h Sat Dec 30 01:22:11 2017 +0100
@@ -27,23 +27,23 @@
}
-+(TGameType) gameType;
-+(void) setGameType:(TGameType) type;
-+(TGameStatus) gameStatus;
-+(void) setGameStatus:(TGameStatus) status;
-+(BOOL) isGameLaunched;
-+(BOOL) isGameRunning;
++ (TGameType)gameType;
++ (void)setGameType:(TGameType)type;
++ (TGameStatus)gameStatus;
++ (void)setGameStatus:(TGameStatus)status;
++ (BOOL)isGameLaunched;
++ (BOOL)isGameRunning;
-+(NSString *)modelType;
-+(NSArray *)teamColors;
-+(void) releaseCache;
++ (NSString *)modelType;
++ (NSArray *)teamColors;
++ (void)releaseCache;
-+(NSInteger) randomPort;
-+(void) freePort:(NSInteger) port;
-+(BOOL) isNetworkReachable;
-+(NSString *) languageID;
-//+(UIView *)mainSDLViewInstance;
-+(NSString *) seed;
++ (NSInteger)randomPort;
++ (void)freePort:(NSInteger)port;
++ (BOOL)isNetworkReachable;
++ (NSString *)languageID;
+//+ (UIView *)mainSDLViewInstance;
++ (NSString *)seed;
@end
--- a/project_files/HedgewarsMobile/Classes/HWUtils.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/HWUtils.m Sat Dec 30 01:22:11 2017 +0100
@@ -35,33 +35,33 @@
#pragma mark -
#pragma mark game status and type info
-+(TGameType) gameType {
++ (TGameType)gameType {
return gameType;
}
-+(void) setGameType:(TGameType) type {
++ (void)setGameType:(TGameType)type {
gameType = type;
}
-+(TGameStatus) gameStatus {
++ (TGameStatus)gameStatus {
return gameStatus;
}
-+(void) setGameStatus:(TGameStatus) status {
++ (void)setGameStatus:(TGameStatus)status {
gameStatus = status;
}
-+(BOOL) isGameLaunched {
++ (BOOL)isGameLaunched {
return ((gameStatus == gsLoading) || (gameStatus == gsInGame));
}
-+(BOOL) isGameRunning {
++ (BOOL)isGameRunning {
return (gameStatus == gsInGame);
}
#pragma mark -
#pragma mark Helper Functions with cache
-+(NSString *)modelType {
++ (NSString *)modelType {
if (cachedModel == nil) {
size_t size;
// set 'oldp' parameter to NULL to get the size of the data returned so we can allocate appropriate amount of space
@@ -70,13 +70,13 @@
// get the platform name
sysctlbyname("hw.machine", name, &size, NULL, 0);
- cachedModel = [[NSString stringWithUTF8String:name] retain];
+ cachedModel = [NSString stringWithUTF8String:name];
free(name);
}
return cachedModel;
}
-+(NSArray *)teamColors {
++ (NSArray *)teamColors {
if (cachedColors == nil) {
// by default colors are ARGB but we do computation over RGB, hence we have to "& 0x00FFFFFF" before processing
unsigned int colors[] = HW_TEAMCOLOR_ARRAY;
@@ -86,24 +86,23 @@
while(colors[i] != 0)
[array addObject:[NSNumber numberWithUnsignedInt:(colors[i++] & 0x00FFFFFF)]];
- cachedColors = [[NSArray arrayWithArray:array] retain];
- [array release];
+ cachedColors = [NSArray arrayWithArray:array];
}
return cachedColors;
}
-+(void) releaseCache {
- [cachedModel release], cachedModel = nil;
- [cachedColors release], cachedColors = nil;
++ (void)releaseCache {
+ cachedModel = nil;
+ cachedColors = nil;
// don't release activePorts here
}
#pragma mark -
#pragma mark Helper Functions without cache
-+(NSInteger) randomPort {
++ (NSInteger)randomPort {
// set a new feed only at initialization time and forbid connecting to the server port
if (activePorts == nil) {
- activePorts = [[NSMutableArray arrayWithObject:[NSNumber numberWithInt:NETGAME_DEFAULT_PORT]] retain];
+ activePorts = [NSMutableArray arrayWithObject:[NSNumber numberWithInt:NETGAME_DEFAULT_PORT]];
}
// pick a random number from the free ports list
@@ -117,11 +116,11 @@
return res;
}
-+(void) freePort:(NSInteger) port {
++ (void)freePort:(NSInteger)port {
[activePorts removeObject:[NSNumber numberWithInteger:port]];
}
-+(BOOL) isNetworkReachable {
++ (BOOL)isNetworkReachable {
// Create zero addy
struct sockaddr_in zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
@@ -150,7 +149,6 @@
timeoutInterval:20.0];
NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:nil];
BOOL testResult = testConnection ? YES : NO;
- [testConnection release];
return ((isReachable && !needsConnection) || nonWiFi) ? testResult : NO;
}
@@ -162,7 +160,7 @@
}
/*
-+(UIView *)mainSDLViewInstance {
++ (UIView *)mainSDLViewInstance {
SDL_Window *window = HW_getSDLWindow();
if (window == NULL) {
SDL_SetError("Window does not exist");
@@ -177,7 +175,7 @@
+ (NSString *)seed
{
CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);
- NSString *seed = (NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuid);
+ NSString *seed = (NSString *)CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, uuid));
CFRelease(uuid);
return seed;
}
--- a/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.h Sat Dec 30 01:22:11 2017 +0100
@@ -28,8 +28,8 @@
UIWindow *uiwindow;
}
-@property (nonatomic,retain) MainMenuViewController *mainViewController;
-@property (nonatomic,retain) UIWindow *uiwindow;
+@property (nonatomic, strong) MainMenuViewController *mainViewController;
+@property (nonatomic, strong) UIWindow *uiwindow;
@end
--- a/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m Sat Dec 30 01:22:11 2017 +0100
@@ -24,7 +24,7 @@
@implementation SDLUIKitDelegate (customDelegate)
// hijack the the SDL_UIKitAppDelegate to use the UIApplicationDelegate we implement here
-+(NSString *)getAppDelegateClassName {
++ (NSString *)getAppDelegateClassName {
return @"HedgewarsAppDelegate";
}
@@ -35,7 +35,7 @@
#pragma mark -
#pragma mark AppDelegate methods
--(id) init {
+- (id)init {
if ((self = [super init])) {
mainViewController = nil;
uiwindow = nil;
@@ -43,14 +43,9 @@
return self;
}
--(void) dealloc {
- [mainViewController release];
- [uiwindow release];
- [super dealloc];
-}
// override the direct execution of SDL_main to allow us to implement our own frontend
--(void) postFinishLaunch
+- (void)postFinishLaunch
{
// Setup Appirater
[Appirater setAppId:@"391234866"];
@@ -70,12 +65,11 @@
NSString *controllerName = (IS_IPAD() ? @"MainMenuViewController-iPad" : @"MainMenuViewController-iPhone");
self.mainViewController = [[MainMenuViewController alloc] initWithNibName:controllerName bundle:nil];
self.uiwindow.rootViewController = self.mainViewController;
- [self.mainViewController release];
[self.uiwindow makeKeyAndVisible];
}
--(void) applicationDidReceiveMemoryWarning:(UIApplication *)application {
+- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
[HWUtils releaseCache];
// don't stop music if it is playing
if ([HWUtils isGameLaunched]) {
@@ -87,7 +81,7 @@
}
// true multitasking with SDL works only on 4.2 and above; we close the game to avoid a black screen at return
--(void) applicationWillResignActive:(UIApplication *)application {
+- (void)applicationWillResignActive:(UIApplication *)application {
if ([HWUtils isGameLaunched] && [[[UIDevice currentDevice] systemVersion] floatValue] < 4.2f)
HW_terminate(NO);
--- a/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -24,8 +24,8 @@
UIScrollView *scrollView;
}
-@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;
+@property (nonatomic, strong) IBOutlet UIScrollView *scrollView;
--(IBAction) dismiss;
+- (IBAction)dismiss;
@end
--- a/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -23,17 +23,17 @@
@implementation HelpPageLobbyViewController
@synthesize scrollView;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
--(void) didReceiveMemoryWarning {
+- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
self.scrollView = nil;
}
// on iPhone the XIBs contain UIScrollView
--(void) viewDidLoad {
+- (void)viewDidLoad {
if (IS_IPAD() == NO){
scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 650);
scrollView.maximumZoomScale = 4.0;
@@ -44,17 +44,7 @@
[super viewDidLoad];
}
--(void) viewDidUnload {
- [super viewDidUnload];
- self.scrollView = nil;
-}
-
--(void) dealloc {
- releaseAndNil(scrollView);
- [super dealloc];
-}
-
--(IBAction) dismiss {
+- (IBAction)dismiss {
[UIView animateWithDuration:0.5 animations:^{
self.view.alpha = 0;
} completion:^(BOOL finished){
--- a/project_files/HedgewarsMobile/Classes/HogHatViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/HogHatViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -28,9 +28,9 @@
UIImage *normalHogSprite;
}
-@property (nonatomic,retain) NSDictionary *teamDictionary;
+@property (nonatomic, strong) NSDictionary *teamDictionary;
@property (nonatomic) NSInteger selectedHog;
-@property (nonatomic,retain) NSArray *hatArray;
-@property (nonatomic,retain) UIImage *normalHogSprite;
+@property (nonatomic, strong) NSArray *hatArray;
+@property (nonatomic, strong) UIImage *normalHogSprite;
@end
--- a/project_files/HedgewarsMobile/Classes/HogHatViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/HogHatViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -24,13 +24,13 @@
@synthesize teamDictionary, hatArray, normalHogSprite, selectedHog;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
// load all the hat file names and store them into hatArray
@@ -41,14 +41,12 @@
// load the base hog image, drawing will occure in cellForRow...
NSString *normalHogFile = [[NSString alloc] initWithFormat:@"%@/basehat-hedgehog.png",[[NSBundle mainBundle] resourcePath]];
UIImage *hogSprite = [[UIImage alloc] initWithContentsOfFile:normalHogFile];
- [normalHogFile release];
self.normalHogSprite = hogSprite;
- [hogSprite release];
self.title = NSLocalizedString(@"Change hedgehogs' hat",@"");
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// this updates the hog name and its hat
@@ -60,11 +58,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.hatArray count];
}
@@ -75,16 +73,14 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
NSString *hat = [self.hatArray objectAtIndex:[indexPath row]];
cell.textLabel.text = [hat stringByDeletingPathExtension];
NSString *hatFile = [[NSString alloc] initWithFormat:@"%@/%@", HATS_DIRECTORY(), hat];
UIImage *hatSprite = [[UIImage alloc] initWithContentsOfFile: hatFile andCutAt:CGRectMake(0, 0, 32, 32)];
- [hatFile release];
cell.imageView.image = [self.normalHogSprite mergeWith:hatSprite atPoint:CGPointMake(0, 5)];
- [hatSprite release];
NSDictionary *hog = (self.selectedHog != -1) ? [[self.teamDictionary objectForKey:@"hedgehogs"] objectAtIndex:self.selectedHog] : nil;
if ([[hat stringByDeletingPathExtension] isEqualToString:[hog objectForKey:@"hat"]]) {
@@ -99,7 +95,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger selectedRow = [indexPath row];
NSString *newHat = [[self.hatArray objectAtIndex:selectedRow] stringByDeletingPathExtension];
@@ -134,32 +130,16 @@
NSMutableDictionary *newHog = [[NSMutableDictionary alloc] initWithDictionary:oldHog];
[newHog setObject:newHat forKey:@"hat"];
[hogsArray replaceObjectAtIndex:i withObject:newHog];
- [newHog release];
}
}
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- self.normalHogSprite = nil;
- self.teamDictionary = nil;
- self.hatArray = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(hatArray);
- releaseAndNil(teamDictionary);
- releaseAndNil(normalHogSprite);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/HoldTableViewCell.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/HoldTableViewCell.h Sat Dec 30 01:22:11 2017 +0100
@@ -22,17 +22,17 @@
@protocol HoldTableViewCellDelegate <NSObject>
--(void) holdAction:(NSString *)content onTable:(UITableView *)aTableView;
+- (void)holdAction:(NSString *)content onTable:(UITableView *)aTableView;
@end
@interface HoldTableViewCell : UITableViewCell {
- id<HoldTableViewCellDelegate> delegate;
+ id<HoldTableViewCellDelegate> __weak delegate;
NSTimeInterval time;
}
-@property (nonatomic,assign) id<HoldTableViewCellDelegate> delegate;
+@property (nonatomic, weak) id<HoldTableViewCellDelegate> delegate;
--(void) holdAction;
+- (void)holdAction;
@end
--- a/project_files/HedgewarsMobile/Classes/HoldTableViewCell.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/HoldTableViewCell.m Sat Dec 30 01:22:11 2017 +0100
@@ -26,14 +26,14 @@
#define SWIPE_DRAG_HORIZ_MIN 10
#define SWIPE_DRAG_VERT_MAX 40
--(id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
+- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
delegate = nil;
}
return self;
}
--(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
+- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
time = touch.timestamp;
@@ -42,7 +42,7 @@
[super touchesBegan:touches withEvent:event];
}
--(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
+- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if ( touch.timestamp - time < 0.25 ) {
@@ -55,7 +55,7 @@
[super touchesCancelled:touches withEvent:event];
}
--(void) holdAction {
+- (void)holdAction {
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(holdAction:onTable:)])
{
UITableView *tableView = [self findTable];
@@ -66,9 +66,4 @@
}
}
--(void) dealloc {
- self.delegate = nil;
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/IniParser.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/IniParser.m Sat Dec 30 01:22:11 2017 +0100
@@ -22,10 +22,10 @@
#define SECTION_START_CHAR '['
@interface IniParser ()
-@property (nonatomic, retain) NSString *iniFilePath;
+@property (nonatomic, strong) NSString *iniFilePath;
-@property (nonatomic, retain) NSMutableArray *mutableSections;
-@property (nonatomic, retain) NSMutableDictionary *currentSection;
+@property (nonatomic, strong) NSMutableArray *mutableSections;
+@property (nonatomic, strong) NSMutableDictionary *currentSection;
@end
@implementation IniParser
@@ -85,7 +85,6 @@
- (void)addPreviousSectionToSectionsIfNecessary {
if (self.currentSection != nil) {
[self.mutableSections addObject:self.currentSection];
- [self.currentSection release];
}
}
@@ -110,13 +109,4 @@
return [self.mutableSections copy];
}
-#pragma mark - Dealloc
-
-- (void)dealloc {
- [_iniFilePath release];
- [_mutableSections release];
- [_currentSection release];
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/LevelViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/LevelViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -30,9 +30,9 @@
NSInteger numberOfSections;
}
-@property (nonatomic,retain) NSDictionary *teamDictionary;
-@property (nonatomic,retain) NSArray *levelArray;
-@property (nonatomic,retain) NSArray *levelSprites;
-@property (nonatomic,retain) NSIndexPath *lastIndexPath;
+@property (nonatomic, strong) NSDictionary *teamDictionary;
+@property (nonatomic, strong) NSArray *levelArray;
+@property (nonatomic, strong) NSArray *levelSprites;
+@property (nonatomic, strong) NSIndexPath *lastIndexPath;
@end
--- a/project_files/HedgewarsMobile/Classes/LevelViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/LevelViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -23,13 +23,13 @@
@implementation LevelViewController
@synthesize teamDictionary, levelArray, levelSprites, lastIndexPath;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
NSArray *array = [[NSArray alloc] initWithObjects:
@@ -40,12 +40,11 @@
NSLocalizedString(@"Weaky",@""),
nil];
self.levelArray = array;
- [array release];
self.title = NSLocalizedString(@"Set difficulty level",@"");
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if ([[[[self.teamDictionary objectForKey:@"hedgehogs"] objectAtIndex:0] objectForKey:@"level"] intValue] == 0)
@@ -60,11 +59,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return numberOfSections;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger) section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == 0)
return 1;
else
@@ -83,11 +82,10 @@
if (section == 0) {
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier0];
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier0] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier0];
UISwitch *theSwitch = [[UISwitch alloc] init];
[theSwitch addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
cell.accessoryView = theSwitch;
- [theSwitch release];
}
UISwitch *theSwitch = (UISwitch *)cell.accessoryView;
if (numberOfSections == 1)
@@ -98,7 +96,7 @@
} else {
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1];
cell.textLabel.text = [levelArray objectAtIndex:row];
NSDictionary *hog = [[self.teamDictionary objectForKey:@"hedgehogs"] objectAtIndex:0];
@@ -111,15 +109,13 @@
NSString *botlevelPath = [[NSString alloc] initWithFormat:@"%@/bot%d.png",[[NSBundle mainBundle] resourcePath],row+1];
UIImage *levelImage = [[UIImage alloc] initWithContentsOfFile:botlevelPath];
- [botlevelPath release];
cell.imageView.image = levelImage;
- [levelImage release];
}
return cell;
}
--(void) switchValueChanged:(id) sender {
+- (void)switchValueChanged:(id)sender {
UISwitch *theSwitch = (UISwitch *)sender;
NSIndexSet *sections = [[NSIndexSet alloc] initWithIndex:1];
NSMutableArray *hogs = [self.teamDictionary objectForKey:@"hedgehogs"];
@@ -134,7 +130,6 @@
[self.tableView deleteSections:sections withRowAnimation:UITableViewRowAnimationFade];
level = 0;
}
- [sections release];
DLog(@"New level is %ld", (long)level);
for (NSMutableDictionary *hog in hogs)
@@ -147,7 +142,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger newRow = [indexPath row];
NSInteger oldRow = (self.lastIndexPath != nil) ? [self.lastIndexPath row] : -1;
@@ -174,29 +169,12 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
self.lastIndexPath = nil;
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- self.lastIndexPath = nil;
- self.teamDictionary = nil;
- self.levelArray = nil;
- self.levelSprites = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(levelArray);
- releaseAndNil(levelSprites);
- releaseAndNil(teamDictionary);
- releaseAndNil(lastIndexPath);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/MNEValueTrackingSlider.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MNEValueTrackingSlider.h Sat Dec 30 01:22:11 2017 +0100
@@ -17,6 +17,6 @@
}
@property (nonatomic, readonly) CGRect thumbRect;
-@property (nonatomic, retain) NSString *textValue;
+@property (nonatomic, strong) NSString *textValue;
@end
--- a/project_files/HedgewarsMobile/Classes/MNEValueTrackingSlider.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MNEValueTrackingSlider.m Sat Dec 30 01:22:11 2017 +0100
@@ -12,7 +12,7 @@
#pragma mark -
#pragma mark Private UIView subclass rendering the popup showing slider value
@interface SliderValuePopupView : UIView
-@property (nonatomic, retain) UIFont *font;
+@property (nonatomic, strong) UIFont *font;
@property (nonatomic, copy) NSString *text;
@property (nonatomic) float arrowOffset;
@end
@@ -23,7 +23,7 @@
@synthesize text = _text;
@synthesize arrowOffset = _arrowOffset;
--(id) initWithFrame:(CGRect) frame {
+- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.font = [UIFont boldSystemFontOfSize:18];
@@ -31,13 +31,8 @@
return self;
}
--(void) dealloc {
- self.text = nil;
- self.font = nil;
- [super dealloc];
-}
--(void) drawRect:(CGRect) rect {
+- (void)drawRect:(CGRect)rect {
// Create the path for the rounded rectangle
CGRect roundedRect = CGRectMake(self.bounds.origin.x, self.bounds.origin.y, self.bounds.size.width, floorf(self.bounds.size.height * 0.8));
UIBezierPath *roundedRectPath = [UIBezierPath bezierPathWithRoundedRect:roundedRect cornerRadius:6.0];
@@ -95,14 +90,14 @@
#pragma mark Private methods
--(void) _constructSlider {
+- (void)_constructSlider {
valuePopupView = [[SliderValuePopupView alloc] initWithFrame:CGRectZero];
valuePopupView.backgroundColor = [UIColor clearColor];
valuePopupView.alpha = 0.0;
[self addSubview:valuePopupView];
}
--(void) _fadePopupViewInAndOut:(BOOL)aFadeIn {
+- (void)_fadePopupViewInAndOut:(BOOL)aFadeIn {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.25];
if (aFadeIn) {
@@ -113,7 +108,7 @@
[UIView commitAnimations];
}
--(void) _positionAndUpdatePopupView {
+- (void)_positionAndUpdatePopupView {
CGRect _thumbRect = self.thumbRect;
CGRect popupRect = CGRectOffset(_thumbRect, 0, -floorf(_thumbRect.size.height * 1.5));
// (-100, -15) determines the size of the the rect
@@ -136,7 +131,7 @@
#pragma mark Memory management
--(id) initWithFrame:(CGRect) frame {
+- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self _constructSlider];
@@ -144,7 +139,7 @@
return self;
}
--(id) initWithCoder:(NSCoder *)aDecoder {
+- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
[self _constructSlider];
@@ -152,15 +147,10 @@
return self;
}
--(void) dealloc {
- [valuePopupView release];
- [textValue release];
- [super dealloc];
-}
#pragma mark -
#pragma mark UIControl touch event tracking
--(BOOL) beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
+- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
// Fade in and update the popup view
CGPoint touchPoint = [touch locationInView:self];
// Check if the knob is touched. Only in this case show the popup-view
@@ -171,17 +161,17 @@
return [super beginTrackingWithTouch:touch withEvent:event];
}
--(BOOL) continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
+- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
// Update the popup view as slider knob is being moved
[self _positionAndUpdatePopupView];
return [super continueTrackingWithTouch:touch withEvent:event];
}
--(void) cancelTrackingWithEvent:(UIEvent *)event {
+- (void)cancelTrackingWithEvent:(UIEvent *)event {
[super cancelTrackingWithEvent:event];
}
--(void) endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
+- (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
// Fade out the popoup view
[self _fadePopupViewInAndOut:NO];
[super endTrackingWithTouch:touch withEvent:event];
--- a/project_files/HedgewarsMobile/Classes/MXAudioPlayerFadeOperation.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MXAudioPlayerFadeOperation.h Sat Dec 30 01:22:11 2017 +0100
@@ -20,7 +20,7 @@
// The AVAudioPlayer that the volume fade will be applied to.
// Retained until the fade is completed.
// Must be set with init method.
-@property (nonatomic, retain, readonly) AVAudioPlayer *audioPlayer;
+@property (nonatomic, strong, readonly) AVAudioPlayer *audioPlayer;
// The duration of the volume fade.
// Default value is 1.0
--- a/project_files/HedgewarsMobile/Classes/MXAudioPlayerFadeOperation.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MXAudioPlayerFadeOperation.m Sat Dec 30 01:22:11 2017 +0100
@@ -10,7 +10,7 @@
#define SKVolumeChangesPerSecond 15
@interface MXAudioPlayerFadeOperation ()
-@property (nonatomic, retain, readwrite) AVAudioPlayer *audioPlayer;
+@property (nonatomic, strong, readwrite) AVAudioPlayer *audioPlayer;
- (void)beginFadeOperation;
- (void)finishFadeOperation;
@end
@@ -31,23 +31,22 @@
- (AVAudioPlayer *)audioPlayer {
AVAudioPlayer *result;
@synchronized(self) {
- result = [_audioPlayer retain];
+ result = _audioPlayer;
}
- return [result autorelease];
+ return result;
}
- (void)setAudioPlayer:(AVAudioPlayer *)anAudioPlayer {
@synchronized(self) {
if (_audioPlayer != anAudioPlayer) {
- [_audioPlayer release];
- _audioPlayer = [anAudioPlayer retain];
+ _audioPlayer = anAudioPlayer;
}
}
}
#pragma mark -
#pragma mark NSOperation
--(id) initFadeWithAudioPlayer:(AVAudioPlayer*)player toVolume:(float)volume overDuration:(NSTimeInterval)duration withDelay:(NSTimeInterval)timeDelay {
+- (id)initFadeWithAudioPlayer:(AVAudioPlayer*)player toVolume:(float)volume overDuration:(NSTimeInterval)duration withDelay:(NSTimeInterval)timeDelay {
if ((self = [super init])) {
self.audioPlayer = player;
[player prepareToPlay];
@@ -125,10 +124,6 @@
if ([self.audioPlayer isPlaying] && _stopAfterFade) [self.audioPlayer stop];
}
-- (void)dealloc {
- releaseAndNil(_audioPlayer);
- [super dealloc];
-}
@end
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -21,6 +21,6 @@
@interface MainMenuViewController : UIViewController <UIAlertViewDelegate>
--(IBAction) switchViews:(id)sender;
+- (IBAction)switchViews:(id)sender;
@end
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -50,12 +50,12 @@
@implementation MainMenuViewController
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
--(void) viewDidLoad {
+- (void)viewDidLoad {
self.view.frame = [[UIScreen mainScreen] safeBounds];
[super viewDidLoad];
@@ -108,31 +108,30 @@
- (void) presentViewController:(UIViewController *)vc
{
[self presentViewController:vc animated:NO completion:nil];
- [vc release];
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[[AudioManagerController mainManager] playBackgroundMusic];
[super viewWillAppear:animated];
}
#pragma mark -
--(IBAction) switchViews:(id) sender {
+- (IBAction)switchViews:(id)sender {
UIButton *button = (UIButton *)sender;
UIAlertView *alert;
NSString *xib = nil;
[[AudioManagerController mainManager] playClickSound];
switch (button.tag) {
- case 0:
+ case 0: {
xib = IS_IPAD() ? @"GameConfigViewController-iPad" : @"GameConfigViewController-iPhone";
GameConfigViewController *gcvc = [[GameConfigViewController alloc] initWithNibName:xib bundle:nil];
gcvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:gcvc animated:YES completion:nil];
- [gcvc release];
break;
+ }
case 2:
if (IS_IPAD())
{
@@ -140,23 +139,18 @@
SettingsBaseViewController *rightController = [[SettingsBaseViewController alloc] init];
rightController.targetController = nil;
UINavigationController *rightNavController = [[UINavigationController alloc] initWithRootViewController:rightController];
- [rightController release];
// the contens on the left of the splitview, setting targetController that will receive push/pop actions
SettingsBaseViewController *leftController = [[SettingsBaseViewController alloc] init];
leftController.targetController = rightNavController.topViewController;
UINavigationController *leftNavController = [[UINavigationController alloc] initWithRootViewController:leftController];
- [leftController release];
MGSplitViewController *splitViewRootController = [[MGSplitViewController alloc] init];
splitViewRootController.delegate = nil;
splitViewRootController.showsMasterInPortrait = YES;
splitViewRootController.viewControllers = [NSArray arrayWithObjects:leftNavController, rightNavController, nil];
- [leftNavController release];
- [rightNavController release];
[self presentViewController:splitViewRootController animated:YES completion:nil];
- [splitViewRootController release];
}
else
{
@@ -165,44 +159,32 @@
UIViewController *generalSettingsViewController = [[GeneralSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
generalSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"General",@"") imageName:@"flower" selectedImageName:@"flower_filled"];
UINavigationController *generalNavController = [[UINavigationController alloc] initWithRootViewController:generalSettingsViewController];
- [generalSettingsViewController release];
[tabBarNavigationControllers addObject:generalNavController];
- [generalNavController release];
UIViewController *teamSettingsViewController = [[TeamSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
teamSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Teams",@"") imageName:@"teams" selectedImageName:@"teams_filled"];
UINavigationController *teamNavController = [[UINavigationController alloc] initWithRootViewController:teamSettingsViewController];
- [teamSettingsViewController release];
[tabBarNavigationControllers addObject:teamNavController];
- [teamNavController release];
UIViewController *weaponSettingsViewController = [[WeaponSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
weaponSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Weapons",@"") imageName:@"bullet" selectedImageName:@"bullet_filled"];
UINavigationController *weaponNavController = [[UINavigationController alloc] initWithRootViewController:weaponSettingsViewController];
- [weaponSettingsViewController release];
[tabBarNavigationControllers addObject:weaponNavController];
- [weaponNavController release];
UIViewController *schemeSettingsViewController = [[SchemeSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
schemeSettingsViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Schemes",@"") imageName:@"target" selectedImageName:@"target_filled"];
UINavigationController *schemeNavController = [[UINavigationController alloc] initWithRootViewController:schemeSettingsViewController];
- [schemeSettingsViewController release];
[tabBarNavigationControllers addObject:schemeNavController];
- [schemeNavController release];
UIViewController *supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
supportViewController.tabBarItem = [self tabBarItemWithTitle:NSLocalizedString(@"Support",@"") imageName:@"heart" selectedImageName:@"heart_filled"];
UINavigationController *supportNavController = [[UINavigationController alloc] initWithRootViewController:supportViewController];
- [supportViewController release];
[tabBarNavigationControllers addObject:supportNavController];
- [supportNavController release];
UITabBarController *settingsTabController = [[UITabBarController alloc] init];
settingsTabController.viewControllers = tabBarNavigationControllers;
- [tabBarNavigationControllers release];
[self presentViewController:settingsTabController animated:YES completion:nil];
- [settingsTabController release];
}
break;
case 3:
@@ -210,10 +192,8 @@
{
GameLogViewController *gameLogVC = [[GameLogViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:gameLogVC];
- [gameLogVC release];
[self presentViewController:navController animated:YES completion:nil];
- [navController release];
}
#else
{
@@ -222,7 +202,6 @@
about.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:about animated:YES completion:nil];
- [about release];
}
#endif
break;
@@ -233,7 +212,6 @@
savedgames.modalPresentationStyle = UIModalPresentationPageSheet;
[self presentViewController:savedgames animated:YES completion:nil];
- [savedgames release];
}
break;
case 5:
@@ -244,36 +222,34 @@
missions.modalPresentationStyle = UIModalPresentationPageSheet;
[self presentViewController:missions animated:YES completion:nil];
- [missions release];
}
break;
- case 6:
+ case 6: {
[GameInterfaceBridge registerCallingController:self];
[GameInterfaceBridge startSimpleGame];
break;
+ }
case 7:
{
xib = IS_IPAD() ? @"CampaignsViewController-iPad" : @"CampaignsViewController-iPhone";
CampaignsViewController *campaigns = [[CampaignsViewController alloc] initWithNibName:xib bundle:nil];
UINavigationController *campaignNavigationController = [[UINavigationController alloc] initWithRootViewController:campaigns];
- [campaigns release];
campaignNavigationController.modalTransitionStyle = IS_IPAD() ? UIModalTransitionStyleCoverVertical : UIModalTransitionStyleCrossDissolve;
campaignNavigationController.modalPresentationStyle = UIModalPresentationPageSheet;
[self presentViewController:campaignNavigationController animated:YES completion:nil];
- [campaignNavigationController release];
}
break;
- default:
+ default: {
alert = [[UIAlertView alloc] initWithTitle:@"Not Yet Implemented"
message:@"Sorry, this feature is not yet implemented"
delegate:nil
cancelButtonTitle:@"Well, don't worry"
otherButtonTitles:nil];
[alert show];
- [alert release];
break;
+ }
}
}
@@ -281,27 +257,16 @@
imageName: (NSString *)imageName
selectedImageName: (NSString *)selectedImageName
{
- return [[[UITabBarItem alloc] initWithTitle:title
+ return [[UITabBarItem alloc] initWithTitle:title
image:[UIImage imageNamed:imageName]
- selectedImage:[UIImage imageNamed:selectedImageName]] autorelease];
+ selectedImage:[UIImage imageNamed:selectedImageName]];
}
#pragma mark -
--(void) viewDidUnload {
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
--(void) didReceiveMemoryWarning {
+- (void)didReceiveMemoryWarning {
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
--(void) dealloc {
- [_simpleGameButton release];
- [_missionsButton release];
- [_campaignButton release];
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -54,32 +54,32 @@
@property (nonatomic,assign) NSInteger oldPage;
@property (nonatomic,assign) BOOL busy;
@property (nonatomic,assign) NSInteger maxHogs;
-@property (nonatomic,retain) NSString *seedCommand;
-@property (nonatomic,retain) NSString *templateFilterCommand;
-@property (nonatomic,retain) NSString *mapGenCommand;
-@property (nonatomic,retain) NSString *mazeSizeCommand;
-@property (nonatomic,retain) NSString *themeCommand;
-@property (nonatomic,retain) NSString *staticMapCommand;
-@property (nonatomic,retain) NSString *missionCommand;
+@property (nonatomic, strong) NSString *seedCommand;
+@property (nonatomic, strong) NSString *templateFilterCommand;
+@property (nonatomic, strong) NSString *mapGenCommand;
+@property (nonatomic, strong) NSString *mazeSizeCommand;
+@property (nonatomic, strong) NSString *themeCommand;
+@property (nonatomic, strong) NSString *staticMapCommand;
+@property (nonatomic, strong) NSString *missionCommand;
-@property (nonatomic,retain) IBOutlet MapPreviewButtonView *previewButton;
-@property (nonatomic,retain) IBOutlet UITableView *tableView;
-@property (nonatomic,retain) IBOutlet UILabel *maxLabel;
-@property (nonatomic,retain) IBOutlet UISegmentedControl *segmentedControl;
-@property (nonatomic,retain) IBOutlet MNEValueTrackingSlider *slider;
+@property (nonatomic, strong) IBOutlet MapPreviewButtonView *previewButton;
+@property (nonatomic, strong) IBOutlet UITableView *tableView;
+@property (nonatomic, strong) IBOutlet UILabel *maxLabel;
+@property (nonatomic, strong) IBOutlet UISegmentedControl *segmentedControl;
+@property (nonatomic, strong) IBOutlet MNEValueTrackingSlider *slider;
-@property (nonatomic,retain) NSIndexPath *lastIndexPath;
-@property (nonatomic,retain) NSArray *dataSourceArray;
+@property (nonatomic, strong) NSIndexPath *lastIndexPath;
+@property (nonatomic, strong) NSArray *dataSourceArray;
--(IBAction) mapButtonPressed:(id) sender;
--(IBAction) sliderChanged:(id) sender;
--(IBAction) sliderEndedChanging:(id) sender;
--(IBAction) segmentedControlChanged:(id) sender;
+- (IBAction)mapButtonPressed:(id)sender;
+- (IBAction)sliderChanged:(id)sender;
+- (IBAction)sliderEndedChanging:(id)sender;
+- (IBAction)segmentedControlChanged:(id)sender;
--(void) turnOnWidgets;
--(void) turnOffWidgets;
--(void) setMaxLabelText:(NSString *)str;
--(void) updatePreview;
+- (void)turnOnWidgets;
+- (void)turnOffWidgets;
+- (void)setMaxLabelText:(NSString *)str;
+- (void)updatePreview;
@end
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -30,16 +30,16 @@
oldPage, oldValue;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
--(IBAction) mapButtonPressed:(id) sender {
+- (IBAction)mapButtonPressed:(id)sender {
[[AudioManagerController mainManager] playClickSound];
[self updatePreview];
}
--(void) updatePreview {
+- (void)updatePreview {
// don't generate a new preview while it's already generating one
if (self.busy)
return;
@@ -48,7 +48,6 @@
NSString *seed = [HWUtils seed];
NSString *seedCmd = [[NSString alloc] initWithFormat:@"eseed {%@}", seed];
self.seedCommand = seedCmd;
- [seedCmd release];
NSArray *source = [self.dataSourceArray objectAtIndex:scIndex];
if (isRandomness()) {
@@ -57,7 +56,6 @@
[self.previewButton updatePreviewWithSeed:seed];
// the preview for static maps is loaded in didSelectRowAtIndexPath
}
- [seed release];
// perform as if user clicked on an entry
NSIndexPath *theIndex = [NSIndexPath indexPathForRow:arc4random_uniform((int)[source count]) inSection:0];
@@ -66,7 +64,7 @@
[self.tableView scrollToRowAtIndexPath:theIndex atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
--(void) turnOffWidgets {
+- (void)turnOffWidgets {
busy = YES;
self.previewButton.alpha = 0.5f;
self.previewButton.enabled = NO;
@@ -77,7 +75,7 @@
#pragma mark -
#pragma mark MapPreviewButtonView delegate methods
--(void) turnOnWidgets {
+- (void)turnOnWidgets {
self.previewButton.alpha = 1.0f;
self.previewButton.enabled = YES;
self.segmentedControl.enabled = YES;
@@ -85,12 +83,12 @@
self.busy = NO;
}
--(void) setMaxLabelText:(NSString *)str {
+- (void)setMaxLabelText:(NSString *)str {
self.maxHogs = [str intValue];
self.maxLabel.text = [NSString stringWithFormat:@"%@ %@",NSLocalizedString(@"Max Hogs:",@""),str];
}
--(NSDictionary *)getDataForEngine {
+- (NSDictionary *)getDataForEngine {
NSDictionary *dictForEngine = [NSDictionary dictionaryWithObjectsAndKeys:
self.seedCommand,@"seedCommand",
self.templateFilterCommand,@"templateFilterCommand",
@@ -102,11 +100,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
--(NSInteger) tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger) section {
+- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section {
return [[self.dataSourceArray objectAtIndex:scIndex] count];
}
@@ -116,7 +114,7 @@
UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
NSArray *source = [self.dataSourceArray objectAtIndex:scIndex];
@@ -130,14 +128,12 @@
if (isRandomness()) {
UIImage *image = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@/icon.png",THEMES_DIRECTORY(),labelString]];
cell.imageView.image = image;
- [image release];
} else
cell.imageView.image = nil;
if (row == [self.lastIndexPath row]) {
UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
cell.accessoryView = checkbox;
- [checkbox release];
} else
cell.accessoryView = nil;
@@ -146,15 +142,13 @@
}
// this set details for a static map (called by didSelectRowAtIndexPath)
--(void) setDetailsForStaticMap:(NSInteger) index {
+- (void)setDetailsForStaticMap:(NSInteger)index {
NSArray *source = [self.dataSourceArray objectAtIndex:scIndex];
NSString *fileCfg = [[NSString alloc] initWithFormat:@"%@/%@/map.cfg",
(scIndex == 1) ? MAPS_DIRECTORY() : MISSIONS_DIRECTORY(),[source objectAtIndex:index]];
NSString *contents = [[NSString alloc] initWithContentsOfFile:fileCfg encoding:NSUTF8StringEncoding error:NULL];
- [fileCfg release];
NSArray *split = [contents componentsSeparatedByString:@"\n"];
- [contents release];
// if the number is not set we keep 18 standard;
// sometimes it's not set but there are trailing characters, we get around them with the second equation
@@ -176,7 +170,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger newRow = [indexPath row];
NSInteger oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
@@ -195,7 +189,6 @@
UITableViewCell *newCell = [aTableView cellForRowAtIndexPath:indexPath];
UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
newCell.accessoryView = checkbox;
- [checkbox release];
UITableViewCell *oldCell = [aTableView cellForRowAtIndexPath:self.lastIndexPath];
oldCell.accessoryView = nil;
@@ -209,7 +202,7 @@
#pragma mark slider & segmentedControl & button
// this updates the label and the command keys when the slider is moved, depending of the selection in segmentedControl
// no methods are called by this routine and you can pass nil to it
--(IBAction) sliderChanged:(id) sender {
+- (IBAction)sliderChanged:(id)sender {
NSString *labelText;
NSString *templateCommand;
NSString *mazeCommand;
@@ -282,7 +275,7 @@
}
// update preview (if not busy and if its value really changed) as soon as the user lifts its finger up
--(IBAction) sliderEndedChanging:(id) sender {
+- (IBAction)sliderEndedChanging:(id)sender {
int num = (int) (self.slider.value * 100);
if (oldValue != num) {
[self updatePreview];
@@ -293,7 +286,7 @@
// perform actions based on the activated section, then call updatePreview to visually update the selection
// and if necessary update the table with a slide animation
--(IBAction) segmentedControlChanged:(id) sender {
+- (IBAction)segmentedControlChanged:(id)sender {
NSString *mapgen, *staticmap, *mission;
NSInteger newPage = self.segmentedControl.selectedSegmentIndex;
@@ -372,7 +365,6 @@
NSString *checkPath = [[NSString alloc] initWithFormat:@"%@/%@/icon.png",THEMES_DIRECTORY(),themeName];
if ([[NSFileManager defaultManager] fileExistsAtPath:checkPath])
[themeArray addObject:themeName];
- [checkPath release];
}
// remove images that are too big for certain devices without loading the whole image
@@ -398,17 +390,13 @@
[missionArray addObject:str];
}
NSArray *array = [[NSArray alloc] initWithObjects:themeArray,mapArray,themeArray,missionArray,nil];
- [missionArray release];
- [themeArray release];
- [mapArray release];
self.dataSourceArray = array;
- [array release];
}
return dataSourceArray;
}
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
[self localizeSegmentedControl];
@@ -436,44 +424,21 @@
UILabel *backLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 14, 300, 190) andTitle:nil withBorderWidth:2.3f];
backLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[self.view insertSubview:backLabel belowSubview:self.segmentedControl];
- [backLabel release];
}
self.tableView.separatorColor = [UIColor whiteColor];
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
--(void) viewDidAppear:(BOOL) animated {
+- (void)viewDidAppear:(BOOL) animated {
[self updatePreview];
[super viewDidAppear:animated];
}
--(void) viewDidUnload {
- self.previewButton = nil;
- self.seedCommand = nil;
- self.templateFilterCommand = nil;
- self.mapGenCommand = nil;
- self.mazeSizeCommand = nil;
- self.themeCommand = nil;
- self.staticMapCommand = nil;
- self.missionCommand = nil;
-
- self.tableView = nil;
- self.maxLabel = nil;
- self.segmentedControl = nil;
- self.slider = nil;
-
- self.lastIndexPath = nil;
- self.dataSourceArray = nil;
-
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) didReceiveMemoryWarning {
+- (void)didReceiveMemoryWarning {
self.dataSourceArray = nil;
[super didReceiveMemoryWarning];
@@ -487,25 +452,4 @@
MSG_MEMCLEAN();
}
--(void) dealloc {
- releaseAndNil(seedCommand);
- releaseAndNil(templateFilterCommand);
- releaseAndNil(mapGenCommand);
- releaseAndNil(mazeSizeCommand);
- releaseAndNil(themeCommand);
- releaseAndNil(staticMapCommand);
- releaseAndNil(missionCommand);
-
- releaseAndNil(previewButton);
- releaseAndNil(tableView);
- releaseAndNil(maxLabel);
- releaseAndNil(segmentedControl);
- releaseAndNil(slider);
-
- releaseAndNil(lastIndexPath);
- releaseAndNil(dataSourceArray);
-
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.h Sat Dec 30 01:22:11 2017 +0100
@@ -23,25 +23,25 @@
@protocol MapPreviewViewDelegate <NSObject>
--(void) turnOnWidgets;
--(void) setMaxLabelText:(NSString *)string;
--(NSDictionary *)getDataForEngine;
+- (void)turnOnWidgets;
+- (void)setMaxLabelText:(NSString *)string;
+- (NSDictionary *)getDataForEngine;
@end
@interface MapPreviewButtonView : UIButton {
- id<MapPreviewViewDelegate> delegate;
+ id<MapPreviewViewDelegate> __weak delegate;
TCPsocket sd, csd;
NSInteger maxHogs;
}
-@property (nonatomic,assign) id<MapPreviewViewDelegate> delegate;
+@property (nonatomic,weak) id<MapPreviewViewDelegate> delegate;
--(void) setImageRounded:(UIImage *)image forState:(UIControlState) controlState;
--(void) setImageRounded:(UIImage *)image;
--(void) updatePreviewWithSeed:(NSString *)seed;
--(void) updatePreviewWithFile:(NSString *)filePath;
--(void) turnOnWidgets;
--(NSDictionary *)getDataForEngine;
+- (void)setImageRounded:(UIImage *)image forState:(UIControlState)controlState;
+- (void)setImageRounded:(UIImage *)image;
+- (void)updatePreviewWithSeed:(NSString *)seed;
+- (void)updatePreviewWithFile:(NSString *)filePath;
+- (void)turnOnWidgets;
+- (NSDictionary *)getDataForEngine;
@end
--- a/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m Sat Dec 30 01:22:11 2017 +0100
@@ -31,7 +31,7 @@
@implementation MapPreviewButtonView
@synthesize delegate;
--(id) initWithFrame:(CGRect)frame {
+- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
delegate = nil;
self.backgroundColor = [UIColor whiteColor];
@@ -40,18 +40,13 @@
return self;
}
--(void) dealloc {
- self.delegate = nil;
- [super dealloc];
-}
-
#pragma mark -
#pragma mark image wrappers
--(void) setImageRounded:(UIImage *)image forState:(UIControlState)controlState {
+- (void)setImageRounded:(UIImage *)image forState:(UIControlState)controlState {
[self setImage:[image makeRoundCornersOfSize:CGSizeMake(12, 12)] forState:controlState];
}
--(void) setImageRounded:(UIImage *)image {
+- (void)setImageRounded:(UIImage *)image {
[self setImageRounded:image forState:UIControlStateNormal];
}
@@ -64,7 +59,7 @@
return SDLNet_TCP_Send(csd, [string UTF8String], length);
}
--(void) engineProtocol:(uint8_t *)unpackedMap {
+- (void)engineProtocol:(uint8_t *)unpackedMap {
IPaddress ip;
BOOL serverQuit = NO;
uint8_t packedMap[128*32];
@@ -98,13 +93,11 @@
@"--user-prefix", documentsDirectory,
@"--landpreview",
nil];
- [ipcString release];
int argc = [gameParameters count];
const char **argv = (const char **)malloc(sizeof(const char*)*argc);
for (int i = 0; i < argc; i++)
argv[i] = strdup([[gameParameters objectAtIndex:i] UTF8String]);
- [gameParameters release];
RunEngine(argc, argv);
@@ -154,7 +147,7 @@
return;
}
--(void) drawingThread {
+- (void)drawingThread {
@autoreleasepool {
uint8_t unpackedMap[128*32*8];
@@ -174,7 +167,6 @@
[self performSelectorOnMainThread:@selector(setImageRounded:)
withObject:previewImage
waitUntilDone:NO];
- [previewImage release];
[self performSelectorOnMainThread:@selector(setLabelText:)
withObject:[NSString stringWithFormat:@"%ld", (long)maxHogs]
waitUntilDone:NO];
@@ -188,7 +180,7 @@
}
}
--(void) updatePreviewWithSeed:(NSString *)seed {
+- (void)updatePreviewWithSeed:(NSString *)seed {
// remove the current preview and title
[self setImage:nil forState:UIControlStateNormal];
[self setTitle:nil forState:UIControlStateNormal];
@@ -205,22 +197,20 @@
indicator.tag = INDICATOR_TAG;
[indicator startAnimating];
[self addSubview:indicator];
- [indicator release];
// let's draw in a separate thread so the gui can work; at the end it restore other widgets
[NSThread detachNewThreadSelector:@selector(drawingThread) toTarget:self withObject:nil];
}
}
--(void) updatePreviewWithFile:(NSString *)filePath {
+- (void)updatePreviewWithFile:(NSString *)filePath {
UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath];
[self setImageRounded:image forState:UIControlStateNormal];
self.backgroundColor = [UIColor whiteColor];
self.layer.cornerRadius = 12;
- [image release];
}
--(void) removeIndicator {
+- (void)removeIndicator {
UIActivityIndicatorView *indicator = (UIActivityIndicatorView *)[self viewWithTag:INDICATOR_TAG];
if (indicator) {
[indicator stopAnimating];
@@ -230,17 +220,17 @@
#pragma mark -
#pragma mark delegate
--(void) turnOnWidgets {
+- (void)turnOnWidgets {
if ([self.delegate respondsToSelector:@selector(turnOnWidgets)])
[self.delegate turnOnWidgets];
}
--(void) setLabelText:(NSString *)string {
+- (void)setLabelText:(NSString *)string {
if ([self.delegate respondsToSelector:@selector(setMaxLabelText:)])
[self.delegate setMaxLabelText:string];
}
--(NSDictionary *)getDataForEngine {
+- (NSDictionary *)getDataForEngine {
if ([self.delegate respondsToSelector:@selector(getDataForEngine)])
return [self.delegate getDataForEngine];
return nil;
--- a/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -22,14 +22,14 @@
@interface MissionTrainingViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
-@property (nonatomic, retain) NSArray *listOfMissionIDs;
-@property (nonatomic, retain) NSDictionary *dictOfMissions;
-@property (nonatomic, retain) NSString *missionName;
+@property (nonatomic, strong) NSArray *listOfMissionIDs;
+@property (nonatomic, strong) NSDictionary *dictOfMissions;
+@property (nonatomic, strong) NSString *missionName;
-@property (nonatomic, retain) IBOutlet UIImageView *previewImage;
-@property (nonatomic, retain) IBOutlet UITableView *tableView;
-@property (nonatomic, retain) IBOutlet UILabel *descriptionLabel;
+@property (nonatomic, strong) IBOutlet UIImageView *previewImage;
+@property (nonatomic, strong) IBOutlet UITableView *tableView;
+@property (nonatomic, strong) IBOutlet UILabel *descriptionLabel;
--(IBAction) buttonPressed:(id) sender;
+- (IBAction)buttonPressed:(id)sender;
@end
--- a/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -24,13 +24,13 @@
@implementation MissionTrainingViewController
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View management
--(void) viewDidLoad
+- (void)viewDidLoad
{
[super viewDidLoad];
@@ -54,14 +54,14 @@
self.descriptionLabel.textColor = [UIColor lightYellowColor];
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:arc4random_uniform((int)[self.listOfMissionIDs count]) inSection:0];
[self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionMiddle];
[self tableView:self.tableView didSelectRowAtIndexPath:indexPath];
[super viewWillAppear:animated];
}
--(IBAction) buttonPressed:(id) sender {
+- (IBAction)buttonPressed:(id)sender {
UIButton *button = (UIButton *)sender;
if (button.tag == 0) {
@@ -87,8 +87,6 @@
NSDictionary *missionsDict = [self newMissionsDictionaryFromMissionsFile:missionsDescLocation];
NSDictionary *localizedMissionsDict = [self newMissionsDictionaryFromMissionsFile:localizedMissionsDescLocation];
- [missionsDescLocation release];
- [localizedMissionsDescLocation release];
NSMutableDictionary *tempMissionsDict = [[NSMutableDictionary alloc] init];
@@ -104,8 +102,6 @@
}
}
- [missionsDict release];
- [localizedMissionsDict release];
return tempMissionsDict;
}
@@ -113,8 +109,6 @@
{
NSDictionary *missionsDict = [self newMissionsDictionaryFromMissionsFile:missionsDescLocation];
- [missionsDescLocation release];
- [localizedMissionsDescLocation release];
return missionsDict;
}
@@ -126,7 +120,6 @@
NSString *missionsFileContents = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
NSArray *missionsLines = [missionsFileContents componentsSeparatedByString:@"\n"];
- [missionsFileContents release];
for (NSString *line in missionsLines)
{
@@ -151,7 +144,6 @@
{
NSMutableDictionary *missionDict = [[NSMutableDictionary alloc] init];
[missionsDict setObject:missionDict forKey:missionID];
- [missionDict release];
}
NSMutableDictionary *missionDict = [missionsDict objectForKey:missionID];
@@ -200,11 +192,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.listOfMissionIDs count];
}
@@ -218,8 +210,8 @@
UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:(IS_IPAD()) ? UITableViewCellStyleDefault : UITableViewCellStyleSubtitle
- reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:(IS_IPAD()) ? UITableViewCellStyleDefault : UITableViewCellStyleSubtitle
+ reuseIdentifier:CellIdentifier];
NSString *missionID = [self.listOfMissionIDs objectAtIndex:row];
cell.textLabel.text = self.dictOfMissions[missionID][@"name"];
@@ -240,7 +232,6 @@
bgColorView.backgroundColor = [UIColor colorWithRed:(85.0/255.0) green:(15.0/255.0) blue:(106.0/255.0) alpha:1.0];
bgColorView.layer.masksToBounds = YES;
cell.selectedBackgroundView = bgColorView;
- [bgColorView release];
cell.backgroundColor = [UIColor blackColorTransparent];
return cell;
@@ -248,16 +239,14 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger row = [indexPath row];
self.missionName = [self.listOfMissionIDs objectAtIndex:row];
NSString *size = IS_IPAD() ? @"@2x" : @"";
NSString *filePath = [[NSString alloc] initWithFormat:@"%@/Missions/Training/%@%@.png",GRAPHICS_DIRECTORY(),self.missionName,size];
UIImage *img = [[UIImage alloc] initWithContentsOfFile:filePath];
- [filePath release];
[self.previewImage setImage:img];
- [img release];
self.descriptionLabel.text = self.dictOfMissions[self.missionName][@"desc"];
}
@@ -265,7 +254,7 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning
+- (void)didReceiveMemoryWarning
{
self.missionName = nil;
self.listOfMissionIDs = nil;
@@ -275,29 +264,4 @@
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload
-{
- self.listOfMissionIDs = nil;
- self.dictOfMissions = nil;
- self.previewImage = nil;
- self.tableView = nil;
- self.descriptionLabel = nil;
- self.missionName = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
-
--(void) dealloc
-{
- releaseAndNil(_listOfMissionIDs);
- releaseAndNil(_dictOfMissions);
- releaseAndNil(_previewImage);
- releaseAndNil(_tableView);
- releaseAndNil(_descriptionLabel);
- releaseAndNil(_missionName);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/ObjcExports.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/ObjcExports.m Sat Dec 30 01:22:11 2017 +0100
@@ -50,7 +50,6 @@
UIViewAutoresizingFlexibleBottomMargin;
[overlay_instance.loadingIndicator startAnimating];
[overlay_instance.view addSubview:overlay_instance.loadingIndicator];
- [overlay_instance.loadingIndicator release];
*/
}
--- a/project_files/HedgewarsMobile/Classes/RestoreViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/RestoreViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -24,6 +24,6 @@
}
--(IBAction) buttonReleased:(id) sender;
+- (IBAction)buttonReleased:(id)sender;
@end
--- a/project_files/HedgewarsMobile/Classes/RestoreViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/RestoreViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -21,17 +21,17 @@
#import "GameInterfaceBridge.h"
@interface RestoreViewController ()
-@property (retain, nonatomic) IBOutlet UIButton *restoreButton;
-@property (retain, nonatomic) IBOutlet UIButton *dismissButton;
+@property (strong, nonatomic) IBOutlet UIButton *restoreButton;
+@property (strong, nonatomic) IBOutlet UIButton *dismissButton;
@end
@implementation RestoreViewController
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
--(IBAction) buttonReleased:(id) sender {
+- (IBAction)buttonReleased:(id)sender {
UIButton *theButton = (UIButton *)sender;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
@@ -54,7 +54,7 @@
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
}
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
[self.restoreButton setTitle:NSLocalizedString(@"Restore", nil) forState:UIControlStateNormal];
@@ -64,19 +64,12 @@
[self.dismissButton applyDarkBlueQuickStyle];
}
--(void) didReceiveMemoryWarning {
+#pragma mark -
+#pragma mark Memory Management
+
+- (void)didReceiveMemoryWarning {
+ MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- [super viewDidUnload];
-}
-
--(void) dealloc {
- [_restoreButton release];
- [_dismissButton release];
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -26,9 +26,9 @@
NSMutableArray *listOfSavegames;
}
-@property (nonatomic,retain) IBOutlet UITableView *tableView;
-@property (nonatomic,retain) NSMutableArray *listOfSavegames;
+@property (nonatomic, strong) IBOutlet UITableView *tableView;
+@property (nonatomic, strong) NSMutableArray *listOfSavegames;
--(IBAction) buttonPressed:(id) sender;
+- (IBAction)buttonPressed:(id)sender;
@end
--- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -21,26 +21,25 @@
#import "GameInterfaceBridge.h"
@interface SavedGamesViewController ()
-@property (retain, nonatomic) IBOutlet UIBarButtonItem *clearAllButton;
+@property (strong, nonatomic) IBOutlet UIBarButtonItem *clearAllButton;
@end
@implementation SavedGamesViewController
@synthesize tableView, listOfSavegames;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
--(void) updateTable {
+- (void)updateTable {
NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SAVES_DIRECTORY() error:NULL];
NSMutableArray *array = [[NSMutableArray alloc] initWithArray:contentsOfDir copyItems:YES];
self.listOfSavegames = array;
- [array release];
[self.tableView reloadData];
}
--(void) viewDidLoad
+- (void)viewDidLoad
{
[super viewDidLoad];
@@ -49,11 +48,9 @@
NSString *imgName = (IS_IPAD()) ? @"mediumBackground~ipad.png" : @"smallerBackground~iphone.png";
UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgName];
UIImageView *background = [[UIImageView alloc] initWithImage:img];
- [img release];
background.frame = self.view.frame;
background.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view insertSubview:background atIndex:0];
- [background release];
[self.clearAllButton setTitle:NSLocalizedString(@"Clear All", nil)];
@@ -61,14 +58,14 @@
[self updateTable];
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[self updateTable];
[super viewWillAppear:animated];
}
#pragma mark -
#pragma mark button functions
--(IBAction) buttonPressed:(id) sender {
+- (IBAction)buttonPressed:(id)sender {
UIButton *button = (UIButton *)sender;
if (button.tag == 0) {
@@ -91,11 +88,10 @@
[actionSheet showFromBarButtonItem:(UIBarButtonItem *)sender animated:YES];
else
[actionSheet showInView:self.view];
- [actionSheet release];
}
}
--(void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger) buttonIndex {
+- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
if ([actionSheet cancelButtonIndex] != buttonIndex) {
// remove all files and recreate the directory
[[NSFileManager defaultManager] removeItemAtPath:SAVES_DIRECTORY() error:NULL];
@@ -108,17 +104,16 @@
[self.listOfSavegames removeAllObjects];
[self.tableView deleteRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationTop];
- [array release];
}
}
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.listOfSavegames count];
}
@@ -127,7 +122,7 @@
EditableCellView *editableCell = (EditableCellView *)[aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (editableCell == nil) {
- editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ editableCell = [[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
editableCell.delegate = nil;
editableCell.textField.userInteractionEnabled = NO;
}
@@ -138,7 +133,7 @@
return (UITableViewCell *)editableCell;
}
--(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) section {
+-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 60)];
footer.backgroundColor = [UIColor clearColor];
@@ -152,15 +147,14 @@
label.backgroundColor = [UIColor clearColor];
[footer addSubview:label];
- [label release];
- return [footer autorelease];
+ return footer;
}
-(CGFloat) tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 60;
}
--(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
[(EditableCellView *)[self.tableView cellForRowAtIndexPath:indexPath] save:nil];
[self fixTagsForStartTag:[indexPath row]];
@@ -189,7 +183,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.listOfSavegames == nil)
[self updateTable];
@@ -203,21 +197,18 @@
NSString *newFilePath = [[NSString alloc] initWithFormat:@"%@/%@",SAVES_DIRECTORY(),newSaveName];
[self.listOfSavegames addObject:newSaveName];
- [newSaveName release];
[[NSFileManager defaultManager] copyItemAtPath:currentFilePath toPath:newFilePath error:nil];
- [newFilePath release];
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
[GameInterfaceBridge registerCallingController:self];
[GameInterfaceBridge startSaveGame:currentFilePath];
- [currentFilePath release];
}
#pragma mark -
#pragma mark editableCellView delegate
// rename old file if names differ
--(void) saveTextFieldValue:(NSString *)textString withTag:(NSInteger) tagValue {
+- (void)saveTextFieldValue:(NSString *)textString withTag:(NSInteger)tagValue {
if (self.listOfSavegames == nil)
[self updateTable];
NSString *oldFilePath = [NSString stringWithFormat:@"%@/%@",SAVES_DIRECTORY(),[self.listOfSavegames objectAtIndex:tagValue]];
@@ -232,24 +223,11 @@
#pragma mark -
#pragma mark Memory Management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
self.listOfSavegames = nil;
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- self.tableView = nil;
- self.listOfSavegames = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(tableView);
- releaseAndNil(listOfSavegames);
- releaseAndNil(_clearAllButton);
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -24,6 +24,6 @@
NSMutableArray *listOfSchemes;
}
-@property (nonatomic, retain) NSMutableArray *listOfSchemes;
+@property (nonatomic, strong) NSMutableArray *listOfSchemes;
@end
--- a/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -24,13 +24,13 @@
@implementation SchemeSettingsViewController
@synthesize listOfSchemes;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Edit",@"")
@@ -38,24 +38,22 @@
target:self
action:@selector(toggleEdit:)];
self.navigationItem.rightBarButtonItem = editButton;
- [editButton release];
self.navigationItem.title = NSLocalizedString(@"List of schemes", nil);
}
--(void) viewWillAppear:(BOOL) animated {
+- (void)viewWillAppear:(BOOL) animated {
[super viewWillAppear:animated];
NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCHEMES_DIRECTORY() error:NULL];
NSMutableArray *array = [[NSMutableArray alloc] initWithArray:contentsOfDir copyItems:YES];
self.listOfSchemes = array;
- [array release];
[self.tableView reloadData];
}
// modifies the navigation bar to add the "Add" and "Done" buttons
--(void) toggleEdit:(id) sender {
+- (void)toggleEdit:(id)sender {
BOOL isEditing = self.tableView.editing;
[self.tableView setEditing:!isEditing animated:YES];
@@ -71,11 +69,10 @@
target:self
action:@selector(addScheme:)];
self.navigationItem.leftBarButtonItem = addButton;
- [addButton release];
}
}
--(void) addScheme:(id) sender {
+- (void)addScheme:(id)sender {
NSString *fileName = [[NSString alloc] initWithFormat:@"Scheme %u.plist", [self.listOfSchemes count]];
[CreationChamber createSchemeNamed:[fileName stringByDeletingPathExtension]];
@@ -88,7 +85,6 @@
NSInteger index = [self.listOfSchemes indexOfObject:fileName];
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
- [fileName release];
}
#pragma mark -
@@ -106,7 +102,7 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSUInteger row = [indexPath row];
@@ -118,12 +114,11 @@
}
// delete the row and the file
--(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),[self.listOfSchemes objectAtIndex:row]];
[[NSFileManager defaultManager] removeItemAtPath:schemeFile error:NULL];
- [schemeFile release];
[self.listOfSchemes removeObjectAtIndex:row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
@@ -131,7 +126,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
SingleSchemeViewController *singleSchemeViewController = [[SingleSchemeViewController alloc] initWithStyle:UITableViewStyleGrouped];
@@ -143,7 +138,6 @@
[singleSchemeViewController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
[self.navigationController pushViewController:singleSchemeViewController animated:YES];
- [singleSchemeViewController release];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
@@ -151,26 +145,12 @@
#pragma mark -
#pragma mark Memory management
+
-(void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
MSG_MEMCLEAN();
}
--(void) viewDidUnload
-{
- self.listOfSchemes = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
-
--(void) dealloc
-{
- releaseAndNil(listOfSchemes);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -38,20 +38,20 @@
BOOL sectionsHidden;
}
-@property (nonatomic,retain) NSArray *listOfSchemes;
-@property (nonatomic,retain) NSArray *listOfWeapons;
-@property (nonatomic,retain) NSArray *listOfScripts;
-@property (nonatomic,retain) NSIndexPath *lastIndexPath_sc;
-@property (nonatomic,retain) NSIndexPath *lastIndexPath_we;
-@property (nonatomic,retain) NSIndexPath *lastIndexPath_lu;
-@property (nonatomic,retain) NSString *selectedScheme;
-@property (nonatomic,retain) NSString *selectedWeapon;
-@property (nonatomic,retain) NSString *selectedScript;
-@property (nonatomic,retain) NSString *scriptCommand;
-@property (nonatomic,retain) UISegmentedControl *topControl;
-@property (nonatomic,assign) BOOL sectionsHidden;
+@property (nonatomic, strong) NSArray *listOfSchemes;
+@property (nonatomic, strong) NSArray *listOfWeapons;
+@property (nonatomic, strong) NSArray *listOfScripts;
+@property (nonatomic, strong) NSIndexPath *lastIndexPath_sc;
+@property (nonatomic, strong) NSIndexPath *lastIndexPath_we;
+@property (nonatomic, strong) NSIndexPath *lastIndexPath_lu;
+@property (nonatomic, strong) NSString *selectedScheme;
+@property (nonatomic, strong) NSString *selectedWeapon;
+@property (nonatomic, strong) NSString *selectedScript;
+@property (nonatomic, strong) NSString *scriptCommand;
+@property (nonatomic, strong) UISegmentedControl *topControl;
+@property (assign) BOOL sectionsHidden;
--(void) fillSections;
--(void) emptySections;
+- (void)fillSections;
+- (void)emptySections;
@end
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -29,7 +29,7 @@
@synthesize listOfSchemes, listOfWeapons, listOfScripts, lastIndexPath_sc, lastIndexPath_we, lastIndexPath_lu,
selectedScheme, selectedWeapon, selectedScript, scriptCommand, topControl, sectionsHidden;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
@@ -85,19 +85,17 @@
NSLocalizedString(@"Weapon",@""),
NSLocalizedString(@"Style",@""),nil];
UISegmentedControl *controller = [[UISegmentedControl alloc] initWithItems:array];
- [array release];
controller.segmentedControlStyle = UISegmentedControlStyleBar;
controller.tintColor = [UIColor lightGrayColor];
controller.selectedSegmentIndex = 0;
self.topControl = controller;
- [controller release];
}
return topControl;
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
self.sectionsHidden = NO;
NSInteger topOffset = IS_IPAD() ? 45 : 0;
@@ -116,7 +114,6 @@
withBorderWidth:2.7f];
background.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view insertSubview:background atIndex:0];
- [background release];
self.topControl.frame = CGRectMake(0, 4, self.view.frame.size.width * 80/100, 30);
self.topControl.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
@@ -128,9 +125,7 @@
UIImageView *background = [[UIImageView alloc] initWithImage:backgroundImage];
background.contentMode = UIViewContentModeScaleAspectFill;
background.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
- [backgroundImage release];
[self.view addSubview:background];
- [background release];
[aTableView setBackgroundColorForAnyTable:[UIColor clearColor]];
}
@@ -140,7 +135,6 @@
aTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
aTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:aTableView];
- [aTableView release];
[super viewDidLoad];
@@ -157,11 +151,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)aTableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)aTableView {
return (self.sectionsHidden ? 0 : 1);
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (self.topControl.selectedSegmentIndex == 0)
return [self.listOfSchemes count];
else if (self.topControl.selectedSegmentIndex == 1)
@@ -178,7 +172,7 @@
UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
cell.accessoryView = nil;
if (0 == index) {
@@ -186,11 +180,9 @@
NSString *str = [NSString stringWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),[self.listOfSchemes objectAtIndex:row]];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
cell.detailTextLabel.text = [dict objectForKey:@"description"];
- [dict release];
if ([[self.listOfSchemes objectAtIndex:row] isEqualToString:self.selectedScheme]) {
UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
cell.accessoryView = checkbox;
- [checkbox release];
self.lastIndexPath_sc = indexPath;
}
} else if (1 == index) {
@@ -198,11 +190,9 @@
NSString *str = [NSString stringWithFormat:@"%@/%@",WEAPONS_DIRECTORY(),[self.listOfWeapons objectAtIndex:row]];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
cell.detailTextLabel.text = [dict objectForKey:@"description"];
- [dict release];
if ([[self.listOfWeapons objectAtIndex:row] isEqualToString:self.selectedWeapon]) {
UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
cell.accessoryView = checkbox;
- [checkbox release];
self.lastIndexPath_we = indexPath;
}
} else {
@@ -214,7 +204,6 @@
{
UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
cell.accessoryView = checkbox;
- [checkbox release];
self.lastIndexPath_lu = indexPath;
}
}
@@ -228,7 +217,6 @@
if ([[self.listOfScripts objectAtIndex:row] isEqualToString:self.selectedScript]) {
UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
cell.accessoryView = checkbox;
- [checkbox release];
self.lastIndexPath_lu = indexPath;
}
}
@@ -242,11 +230,11 @@
return cell;
}
--(CGFloat) tableView:(UITableView *)aTableView heightForHeaderInSection:(NSInteger) section {
+-(CGFloat) tableView:(UITableView *)aTableView heightForHeaderInSection:(NSInteger)section {
return IS_IPAD() ? 0 : 50;
}
--(UIView *)tableView:(UITableView *)aTableView viewForHeaderInSection:(NSInteger) section {
+-(UIView *)tableView:(UITableView *)aTableView viewForHeaderInSection:(NSInteger)section {
if (IS_IPAD())
return nil;
UIView *theView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 30)];
@@ -255,14 +243,14 @@
self.topControl.center = CGPointMake(self.view.frame.size.width/2, 24);
[self.topControl addTarget:aTableView action:@selector(reloadData) forControlEvents:UIControlEventValueChanged];
[theView addSubview:self.topControl];
- return [theView autorelease];
+ return theView;
}
--(CGFloat) tableView:(UITableView *)aTableView heightForFooterInSection:(NSInteger) section {
+-(CGFloat) tableView:(UITableView *)aTableView heightForFooterInSection:(NSInteger)section {
return 40;
}
--(UIView *)tableView:(UITableView *)aTableView viewForFooterInSection:(NSInteger) section {
+-(UIView *)tableView:(UITableView *)aTableView viewForFooterInSection:(NSInteger)section {
NSInteger height = 40;
UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, aTableView.frame.size.width, height)];
footer.backgroundColor = [UIColor clearColor];
@@ -280,13 +268,12 @@
label.text = NSLocalizedString(@"Setting a Style might force a particular Scheme or Weapon configuration.",@"");
[footer addSubview:label];
- [label release];
- return [footer autorelease];
+ return footer;
}
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSIndexPath *lastIndexPath;
NSInteger index = self.topControl.selectedSegmentIndex;
if (index == 0)
@@ -304,7 +291,6 @@
UITableViewCell *newCell = [aTableView cellForRowAtIndexPath:indexPath];
UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
newCell.accessoryView = checkbox;
- [checkbox release];
UITableViewCell *oldCell = [aTableView cellForRowAtIndexPath:lastIndexPath];
oldCell.accessoryView = nil;
@@ -350,9 +336,7 @@
// some styles disable or force the choice of a particular scheme/weaponset
NSString *path = [[NSString alloc] initWithFormat:@"%@/%@.cfg",SCRIPTS_DIRECTORY(),[self.selectedScript stringByDeletingPathExtension]];
NSString *configFile = [[NSString alloc] initWithContentsOfFile:path];
- [path release];
NSArray *scriptOptions = [configFile componentsSeparatedByString:@"\n"];
- [configFile release];
self.scriptCommand = [NSString stringWithFormat:@"escript Scripts/Multiplayer/%@",self.selectedScript];
NSString *scheme = [scriptOptions objectAtIndex:0];
@@ -396,7 +380,7 @@
#pragma mark -
#pragma mark called by an NSNotification to empty or fill the sections completely
--(void) fillSections {
+- (void)fillSections {
if (self.sectionsHidden == YES) {
self.sectionsHidden = NO;
NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 1)];
@@ -407,7 +391,7 @@
}
}
--(void) emptySections {
+- (void)emptySections {
if (self.sectionsHidden == NO) {
self.sectionsHidden = YES;
NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 1)];
@@ -426,13 +410,13 @@
UIViewAutoresizingFlexibleBottomMargin;
[self.view addSubview:theLabel];
- [theLabel release];
}
}
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
self.listOfSchemes = nil;
self.listOfWeapons = nil;
self.listOfScripts = nil;
@@ -440,37 +424,9 @@
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- self.listOfSchemes = nil;
- self.listOfWeapons = nil;
- self.listOfScripts = nil;
- self.lastIndexPath_sc = nil;
- self.lastIndexPath_we = nil;
- self.lastIndexPath_lu = nil;
- self.selectedScheme = nil;
- self.selectedWeapon = nil;
- self.selectedScript = nil;
- self.scriptCommand = nil;
- self.topControl = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc
+- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
- releaseAndNil(listOfSchemes);
- releaseAndNil(listOfWeapons);
- releaseAndNil(listOfScripts);
- releaseAndNil(lastIndexPath_sc);
- releaseAndNil(lastIndexPath_we);
- releaseAndNil(lastIndexPath_lu);
- releaseAndNil(selectedScheme);
- releaseAndNil(selectedWeapon);
- releaseAndNil(selectedScript);
- releaseAndNil(scriptCommand);
- releaseAndNil(topControl);
- [super dealloc];
}
--- a/project_files/HedgewarsMobile/Classes/ServerProtocolNetwork.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/ServerProtocolNetwork.h Sat Dec 30 01:22:11 2017 +0100
@@ -29,12 +29,12 @@
@property (assign) TCPsocket ssd;
@property (assign) NSInteger serverPort;
-@property (nonatomic,retain) NSString *serverAddress;
+@property (nonatomic, strong) NSString *serverAddress;
--(id) init;
--(id) init:(NSInteger) onPort withAddress:(NSString *)address;
--(id) initOnPort:(NSInteger) port;
--(id) initToAddress:(NSString *)address;
+- (id)init;
+- (id)init:(NSInteger)onPort withAddress:(NSString *)address;
+- (id)initOnPort:(NSInteger)port;
+- (id)initToAddress:(NSString *)address;
+(id) openServerConnection;
@end
--- a/project_files/HedgewarsMobile/Classes/ServerProtocolNetwork.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/ServerProtocolNetwork.m Sat Dec 30 01:22:11 2017 +0100
@@ -29,7 +29,7 @@
#pragma mark -
#pragma mark init and class methods
--(id) init:(NSInteger) onPort withAddress:(NSString *)address {
+- (id)init:(NSInteger)onPort withAddress:(NSString *)address {
if ((self = [super init])) {
self.serverPort = onPort;
self.serverAddress = address;
@@ -38,22 +38,20 @@
return self;
}
--(id) init {
+- (id)init {
return [self init:NETGAME_DEFAULT_PORT withAddress:@"netserver.hedgewars.org"];
}
--(id) initOnPort:(NSInteger) port {
+- (id)initOnPort:(NSInteger)port {
return [self init:port withAddress:@"netserver.hedgewars.org"];
}
--(id) initToAddress:(NSString *)address {
+- (id)initToAddress:(NSString *)address {
return [self init:NETGAME_DEFAULT_PORT withAddress:address];
}
--(void) dealloc {
- releaseAndNil(serverAddress);
+- (void)dealloc {
serverConnection = nil;
- [super dealloc];
}
+(id) openServerConnection {
@@ -61,7 +59,7 @@
[NSThread detachNewThreadSelector:@selector(serverProtocol)
toTarget:connection
withObject:nil];
- [connection retain]; // retain count here is +2
+ // retain count here is +2
return connection;
}
@@ -70,18 +68,16 @@
-(int) sendToServer:(NSString *)command {
NSString *message = [[NSString alloc] initWithFormat:@"%@\n\n",command];
int result = SDLNet_TCP_Send(self.ssd, [message UTF8String], [message lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
- [message release];
return result;
}
-(int) sendToServer:(NSString *)command withArgument:(NSString *)argument {
NSString *message = [[NSString alloc] initWithFormat:@"%@\n%@\n\n",command,argument];
int result = SDLNet_TCP_Send(self.ssd, [message UTF8String], [message lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
- [message release];
return result;
}
--(void) serverProtocol {
+- (void)serverProtocol {
@autoreleasepool {
IPaddress ip;
@@ -143,7 +139,6 @@
NSString *bufferedMessage = [[NSString alloc] initWithBytes:buffer length:index-2 encoding:NSASCIIStringEncoding];
NSArray *listOfCommands = [bufferedMessage componentsSeparatedByString:@"\n"];
- [bufferedMessage release];
NSString *command = [listOfCommands objectAtIndex:0];
DLog(@"size = %d, %@", index-2, listOfCommands);
if ([command isEqualToString:@"PING"]) {
--- a/project_files/HedgewarsMobile/Classes/SettingsBaseViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SettingsBaseViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -26,10 +26,10 @@
UITabBarController *tabController;
}
-@property (nonatomic, retain) UIViewController *targetController;
-@property (nonatomic, retain) NSArray *controllerNames;
-@property (nonatomic, retain) NSIndexPath *lastIndexPath;
+@property (nonatomic, strong) UIViewController *targetController;
+@property (nonatomic, strong) NSArray *controllerNames;
+@property (nonatomic, strong) NSIndexPath *lastIndexPath;
--(void) dismissSplitView;
+- (void)dismissSplitView;
@end
--- a/project_files/HedgewarsMobile/Classes/SettingsBaseViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SettingsBaseViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -28,13 +28,13 @@
@implementation SettingsBaseViewController
@synthesize targetController, controllerNames, lastIndexPath;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
// the list of available controllers
NSArray *array = [[NSArray alloc] initWithObjects:NSLocalizedString(@"General",@""),
NSLocalizedString(@"Teams",@""),
@@ -43,7 +43,6 @@
NSLocalizedString(@"Support",@""),
nil];
self.controllerNames = array;
- [array release];
if (IS_IPAD())
{
@@ -57,7 +56,6 @@
[tableView reloadData];
[self.view addSubview:tableView];
[self tableView:tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
- [tableView release];
self.navigationItem.leftBarButtonItem = [self doneButton];
}
}
@@ -71,23 +69,24 @@
- (UIBarButtonItem *)doneButton
{
- return [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
+ return [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
- action:@selector(dismissSplitView)] autorelease];
+ action:@selector(dismissSplitView)];
}
--(void) dismissSplitView {
+- (void)dismissSplitView {
[[AudioManagerController mainManager] playBackSound];
- [[[HedgewarsAppDelegate sharedAppDelegate] mainViewController] dismissViewControllerAnimated:YES completion:nil];
+ UIViewController *vc = [[HedgewarsAppDelegate sharedAppDelegate] mainViewController];
+ [vc dismissViewControllerAnimated:YES completion:nil];
}
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.controllerNames count];
}
@@ -97,7 +96,7 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
NSString *iconStr = nil;
switch ([indexPath row]) {
@@ -125,14 +124,13 @@
cell.textLabel.text = [controllerNames objectAtIndex:[indexPath row]];
UIImage *icon = [[UIImage alloc] initWithContentsOfFile:iconStr];
cell.imageView.image = icon;
- [icon release];
return cell;
}
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger newRow = [indexPath row];
NSInteger oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
@@ -168,7 +166,6 @@
nextController.navigationItem.hidesBackButton = YES;
[nextController viewWillAppear:NO];
[targetController.navigationController pushViewController:nextController animated:NO];
- [nextController release];
[[AudioManagerController mainManager] playClickSound];
}
@@ -177,28 +174,12 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning
+
+- (void)didReceiveMemoryWarning
{
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload
-{
- self.controllerNames = nil;
- self.lastIndexPath = nil;
- self.targetController = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc
-{
- releaseAndNil(targetController);
- releaseAndNil(controllerNames);
- releaseAndNil(lastIndexPath);
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -29,52 +29,47 @@
@implementation SingleSchemeViewController
@synthesize schemeName, schemeDictionary, basicSettingList, gameModifierArray;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
// title, description, image name (+btn)
NSArray *mods = [[NSArray alloc] initWithContentsOfFile:GAMEMODS_FILE()];
self.gameModifierArray = mods;
- [mods release];
// title, image name (+icon), default value, max value, min value
NSArray *basicSettings = [[NSArray alloc] initWithContentsOfFile:BASICFLAGS_FILE()];
self.basicSettingList = basicSettings;
- [basicSettings release];
self.title = NSLocalizedString(@"Edit scheme preferences",@"");
}
// load from file
--(void) viewWillAppear:(BOOL) animated {
+- (void)viewWillAppear:(BOOL) animated {
[super viewWillAppear:animated];
NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",SCHEMES_DIRECTORY(),self.schemeName];
NSMutableDictionary *scheme = [[NSMutableDictionary alloc] initWithContentsOfFile:schemeFile];
- [schemeFile release];
self.schemeDictionary = scheme;
- [scheme release];
[self.tableView reloadData];
}
// save to file
--(void) viewWillDisappear:(BOOL) animated {
+- (void)viewWillDisappear:(BOOL) animated {
[super viewWillDisappear:animated];
NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",SCHEMES_DIRECTORY(),self.schemeName];
[self.schemeDictionary writeToFile:schemeFile atomically:YES];
- [schemeFile release];
}
// force a redraw of the game mod section to reposition the slider
--(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
+- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (IS_IPAD() == NO)
return;
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationFade];
@@ -83,7 +78,7 @@
#pragma mark -
#pragma mark editableCellView delegate
// set the new value
--(void) saveTextFieldValue:(NSString *)textString withTag:(NSInteger) tagValue {
+- (void)saveTextFieldValue:(NSString *)textString withTag:(NSInteger)tagValue {
if (tagValue == 0) {
// delete old file
[[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.plist",SCHEMES_DIRECTORY(),self.schemeName] error:NULL];
@@ -98,11 +93,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 3;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
switch (section) {
case 0:
return 2;
@@ -128,11 +123,11 @@
NSInteger row = [indexPath row];
switch ([indexPath section]) {
- case 0:
+ case 0: {
editableCell = (EditableCellView *)[aTableView dequeueReusableCellWithIdentifier:CellIdentifier0];
if (editableCell == nil) {
- editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault
- reuseIdentifier:CellIdentifier0] autorelease];
+ editableCell = [[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault
+ reuseIdentifier:CellIdentifier0];
editableCell.delegate = self;
}
editableCell.tag = row;
@@ -151,31 +146,29 @@
}
cell = editableCell;
break;
- case 1:
+ }
+ case 1: {
cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier1];
NSDictionary *detail = [self.basicSettingList objectAtIndex:row];
// need to offset this section (see format in CommodityFunctions.m and above)
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1
- reuseIdentifier:CellIdentifier1] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1
+ reuseIdentifier:CellIdentifier1];
UISlider *slider = [[UISlider alloc] init];
[slider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged];
[cell.contentView addSubview:slider];
- [slider release];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 7, 200, 30)];
label.tag = LABEL_TAG;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
[cell.contentView addSubview:label];
- [label release];
}
UIImage *img = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/icon%@.png",ICONS_DIRECTORY(),
[[self.basicSettingList objectAtIndex:row] objectForKey:@"image"]]];
cell.imageView.image = img;
- [img release];
UILabel *cellLabel = (UILabel *)[cell.contentView viewWithTag:LABEL_TAG];
NSString *basicSettingTitleKey = [[self.basicSettingList objectAtIndex:row] objectForKey:@"title"];
@@ -218,15 +211,15 @@
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
break;
- case 2:
+ }
+ case 2: {
cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
- reuseIdentifier:CellIdentifier2] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
+ reuseIdentifier:CellIdentifier2];
UISwitch *onOff = [[UISwitch alloc] init];
[onOff addTarget:self action:@selector(toggleSwitch:) forControlEvents:UIControlEventValueChanged];
cell.accessoryView = onOff;
- [onOff release];
}
UISwitch *switcher = (UISwitch *)cell.accessoryView;
@@ -236,7 +229,6 @@
UIImage *image = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/btn%@.png",ICONS_DIRECTORY(),
[[self.gameModifierArray objectAtIndex:row] objectForKey:@"image"]]];
cell.imageView.image = image;
- [image release];
cell.imageView.layer.cornerRadius = 6.0f;
cell.imageView.layer.masksToBounds = YES;
NSString *gameModTitleKey = [[self.gameModifierArray objectAtIndex:row] objectForKey:@"title"];
@@ -248,17 +240,18 @@
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
+ }
return cell;
}
--(void) toggleSwitch:(id) sender {
+- (void)toggleSwitch:(id)sender {
UISwitch *theSwitch = (UISwitch *)sender;
NSMutableArray *array = [self.schemeDictionary objectForKey:@"gamemod"];
[array replaceObjectAtIndex:theSwitch.tag-SWITCH_TAG withObject:[NSNumber numberWithBool:theSwitch.on]];
}
--(void) sliderChanged:(id) sender {
+- (void)sliderChanged:(id)sender {
// the slider that changed is sent as object
UISlider *theSlider = (UISlider *)sender;
// create the indexPath of the row of the slider
@@ -279,7 +272,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [aTableView cellForRowAtIndexPath:indexPath];
EditableCellView *editableCell = nil;
UISlider *cellSlider = nil;
@@ -373,27 +366,11 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
self.basicSettingList = nil;
self.gameModifierArray = nil;
}
--(void) viewDidUnload {
- self.schemeName = nil;
- self.schemeDictionary = nil;
- self.basicSettingList = nil;
- self.gameModifierArray = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(schemeName);
- releaseAndNil(schemeDictionary);
- releaseAndNil(basicSettingList);
- releaseAndNil(gameModifierArray);
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/SingleTeamViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SingleTeamViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -36,7 +36,7 @@
@property (nonatomic,retain) NSArray *secondaryItems;
@property (nonatomic,retain) NSArray *moreSecondaryItems;
--(void) writeFile;
--(void) setWriteNeeded;
+- (void)writeFile;
+- (void)setWriteNeeded;
@end
--- a/project_files/HedgewarsMobile/Classes/SingleTeamViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SingleTeamViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -32,14 +32,14 @@
@implementation SingleTeamViewController
@synthesize teamDictionary, normalHogSprite, secondaryItems, moreSecondaryItems, teamName;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark editableCellViewDelegate methods
// set the new value
--(void) saveTextFieldValue:(NSString *)textString withTag:(NSInteger) tagValue {
+- (void)saveTextFieldValue:(NSString *)textString withTag:(NSInteger)tagValue {
if (TEAMNAME_TAG == tagValue) {
// delete old file
[[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.plist",TEAMS_DIRECTORY(),self.teamName] error:NULL];
@@ -57,7 +57,7 @@
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
// labels for the entries
@@ -68,7 +68,6 @@
NSLocalizedString(@"Flag",@""),
NSLocalizedString(@"Level",@""),nil];
self.secondaryItems = array;
- [array release];
// labels for the subtitles
NSArray *moreArray = [[NSArray alloc] initWithObjects:
@@ -78,14 +77,11 @@
NSLocalizedString(@"Choose a charismatic symbol for your team",@""),
NSLocalizedString(@"Opt for controlling the team or let the AI lead",@""),nil];
self.moreSecondaryItems = moreArray;
- [moreArray release];
// load the base hog image, drawing will occure in cellForRow...
NSString *normalHogFile = [[NSString alloc] initWithFormat:@"%@/basehat-hedgehog.png",[[NSBundle mainBundle] resourcePath]];
UIImage *hogSprite = [[UIImage alloc] initWithContentsOfFile:normalHogFile];
- [normalHogFile release];
self.normalHogSprite = hogSprite;
- [hogSprite release];
// listen if any childController modifies the plist and write it if needed
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setWriteNeeded) name:@"setWriteNeedTeams" object:nil];
@@ -94,7 +90,7 @@
self.title = NSLocalizedString(@"Edit team settings",@"");
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// load data about the team and write if there has been a change from other childControllers
@@ -104,14 +100,12 @@
NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",TEAMS_DIRECTORY(),self.teamName];
NSMutableDictionary *teamDict = [[NSMutableDictionary alloc] initWithContentsOfFile:teamFile];
self.teamDictionary = teamDict;
- [teamDict release];
- [teamFile release];
[self.tableView reloadData];
}
// write on file if there has been a change
--(void) viewWillDisappear:(BOOL)animated {
+- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if (isWriteNeeded)
@@ -120,14 +114,13 @@
#pragma mark -
// needed by other classes to warn about a user change
--(void) setWriteNeeded {
+- (void)setWriteNeeded {
isWriteNeeded = YES;
}
--(void) writeFile {
+- (void)writeFile {
NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",TEAMS_DIRECTORY(),self.teamName];
[self.teamDictionary writeToFile:teamFile atomically:YES];
- [teamFile release];
//DLog(@"%@",teamDictionary);
isWriteNeeded = NO;
@@ -135,11 +128,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 3;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSInteger rows = 0;
switch (section) {
case 0: // team name
@@ -189,11 +182,11 @@
UIImage *accessoryImage;
switch ([indexPath section]) {
- case 0:
+ case 0: {
editableCell = (EditableCellView *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier0];
if (editableCell == nil) {
- editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault
- reuseIdentifier:CellIdentifier0] autorelease];
+ editableCell = [[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault
+ reuseIdentifier:CellIdentifier0];
editableCell.delegate = self;
editableCell.tag = TEAMNAME_TAG;
}
@@ -204,14 +197,15 @@
cell = editableCell;
break;
- case 1:
+ }
+ case 1: {
if ([indexPath row] == HW_getMaxNumberOfHogs())
{
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierDefault];
if (cell == nil)
{
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
- reuseIdentifier:CellIdentifierDefault] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
+ reuseIdentifier:CellIdentifierDefault];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
@@ -222,8 +216,8 @@
editableCell = (EditableCellView *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (editableCell == nil) {
- editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault
- reuseIdentifier:CellIdentifier1] autorelease];
+ editableCell = [[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault
+ reuseIdentifier:CellIdentifier1];
editableCell.delegate = self;
}
editableCell.tag = [indexPath row];
@@ -233,20 +227,19 @@
// draw the hat on top of the hog
NSString *hatFile = [[NSString alloc] initWithFormat:@"%@/%@.png", HATS_DIRECTORY(), [[hogArray objectAtIndex:row] objectForKey:@"hat"]];
UIImage *hatSprite = [[UIImage alloc] initWithContentsOfFile: hatFile andCutAt:CGRectMake(0, 0, 32, 32)];
- [hatFile release];
editableCell.imageView.image = [self.normalHogSprite mergeWith:hatSprite atPoint:CGPointMake(0, 5)];
- [hatSprite release];
editableCell.textField.text = [[hogArray objectAtIndex:row] objectForKey:@"hogname"];
editableCell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
cell = editableCell;
break;
- case 2:
+ }
+ case 2: {
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
- reuseIdentifier:CellIdentifier2] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
+ reuseIdentifier:CellIdentifier2];
}
cell.textLabel.text = [self.secondaryItems objectAtIndex:row];
@@ -258,25 +251,21 @@
GRAVES_DIRECTORY(),[teamDictionary objectForKey:@"grave"]]
andCutAt:CGRectMake(0,0,32,32)];
cell.imageView.image = accessoryImage;
- [accessoryImage release];
break;
case 1: // voice
accessoryImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/HellishBomb.png",
GRAPHICS_DIRECTORY()]];
cell.imageView.image = accessoryImage;
- [accessoryImage release];
break;
case 2: // fort
accessoryImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@-icon.png",
FORTS_DIRECTORY(),[teamDictionary objectForKey:@"fort"]]];
cell.imageView.image = accessoryImage;
- [accessoryImage release];
break;
case 3: // flags
accessoryImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.png",
FLAGS_DIRECTORY(),[teamDictionary objectForKey:@"flag"]]];
cell.imageView.image = [accessoryImage scaleToSize:CGSizeMake(26, 18)];
- [accessoryImage release];
cell.imageView.layer.borderWidth = 1;
cell.imageView.layer.borderColor = [[UIColor blackColor] CGColor];
break;
@@ -287,13 +276,13 @@
objectAtIndex:0] objectForKey:@"level"]
intValue]]];
cell.imageView.image = accessoryImage;
- [accessoryImage release];
break;
default:
cell.imageView.image = nil;
break;
}
break;
+ }
}
return cell;
@@ -302,7 +291,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger row = [indexPath row];
NSInteger section = [indexPath section];
@@ -316,7 +305,6 @@
[gravesViewController setTeamDictionary:teamDictionary];
[self.navigationController pushViewController:gravesViewController animated:YES];
- [gravesViewController release];
break;
}
case 1: // voice
@@ -325,7 +313,6 @@
[voicesViewController setTeamDictionary:teamDictionary];
[self.navigationController pushViewController:voicesViewController animated:YES];
- [voicesViewController release];
break;
}
case 2: // fort
@@ -334,7 +321,6 @@
[fortsViewController setTeamDictionary:teamDictionary];
[self.navigationController pushViewController:fortsViewController animated:YES];
- [fortsViewController release];
break;
}
case 3: // flag
@@ -343,7 +329,6 @@
[flagsViewController setTeamDictionary:teamDictionary];
[self.navigationController pushViewController:flagsViewController animated:YES];
- [flagsViewController release];
break;
}
case 4: // level
@@ -352,7 +337,6 @@
[levelViewController setTeamDictionary:teamDictionary];
[self.navigationController pushViewController:levelViewController animated:YES];
- [levelViewController release];
break;
}
default:
@@ -373,7 +357,7 @@
}
// action to perform when you want to change a hog hat
--(void) tableView:(UITableView *)aTableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
// if we are editing the field undo any change before proceeding
EditableCellView *cell = (EditableCellView *)[aTableView cellForRowAtIndexPath:indexPath];
[cell cancel:nil];
@@ -390,37 +374,15 @@
hogHatViewController.selectedHog = hogIndex;
[self.navigationController pushViewController:hogHatViewController animated:YES];
- [hogHatViewController release];
}
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
MSG_MEMCLEAN();
}
--(void) viewDidUnload {
- self.teamDictionary = nil;
- self.teamName = nil;
- self.normalHogSprite = nil;
- self.secondaryItems = nil;
- self.moreSecondaryItems = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc
-{
- [[NSNotificationCenter defaultCenter] removeObserver:self];
- releaseAndNil(teamDictionary);
- releaseAndNil(teamName);
- releaseAndNil(normalHogSprite);
- releaseAndNil(secondaryItems);
- releaseAndNil(moreSecondaryItems);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -37,6 +37,6 @@
@property (nonatomic,retain) NSString *description;
@property (nonatomic,retain) UIImage *ammoStoreImage;
--(void) saveAmmos;
+- (void)saveAmmos;
@end
--- a/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -20,20 +20,20 @@
#import "SingleWeaponViewController.h"
@interface SingleWeaponViewController ()
-@property (nonatomic, retain) NSString *trPath;
-@property (nonatomic, retain) NSString *trFileName;
+@property (nonatomic, strong) NSString *trPath;
+@property (nonatomic, strong) NSString *trFileName;
@end
@implementation SingleWeaponViewController
@synthesize weaponName, description, ammoStoreImage;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
self.trPath = [NSString stringWithFormat:@"%@", LOCALE_DIRECTORY()];
@@ -49,24 +49,21 @@
NSString *str = [NSString stringWithFormat:@"%@/AmmoMenu/Ammos_base.png", GRAPHICS_DIRECTORY()];
UIImage *img = [[UIImage alloc] initWithContentsOfFile:str];
self.ammoStoreImage = img;
- [img release];
self.title = NSLocalizedString(@"Edit weapons preferences",@"");
}
--(void) viewWillAppear:(BOOL) animated {
+- (void)viewWillAppear:(BOOL) animated {
[super viewWillAppear:animated];
NSString *ammoFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",WEAPONS_DIRECTORY(),self.weaponName];
NSDictionary *weapon = [[NSDictionary alloc] initWithContentsOfFile:ammoFile];
- [ammoFile release];
self.description = [weapon objectForKey:@"description"];
const char *tmp1 = [[weapon objectForKey:@"ammostore_initialqt"] UTF8String];
const char *tmp2 = [[weapon objectForKey:@"ammostore_probability"] UTF8String];
const char *tmp3 = [[weapon objectForKey:@"ammostore_delay"] UTF8String];
const char *tmp4 = [[weapon objectForKey:@"ammostore_crate"] UTF8String];
- [weapon release];
// if the new weaponset is diffrent from the older we need to update it replacing
// the missing ammos with 0 quantity
@@ -87,12 +84,12 @@
[self.tableView reloadData];
}
--(void) viewWillDisappear:(BOOL) animated {
+- (void)viewWillDisappear:(BOOL) animated {
[super viewWillDisappear:animated];
[self saveAmmos];
}
--(void) saveAmmos {
+- (void)saveAmmos {
quantity[HW_getNumberOfWeapons()] = '\0';
probability[HW_getNumberOfWeapons()] = '\0';
delay[HW_getNumberOfWeapons()] = '\0';
@@ -113,17 +110,15 @@
NSString *ammoFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",WEAPONS_DIRECTORY(),self.weaponName];
[weapon writeToFile:ammoFile atomically:YES];
- [ammoFile release];
- [weapon release];
}
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == 0)
return 2;
else
@@ -140,8 +135,8 @@
if (0 == [indexPath section]) {
EditableCellView *editableCell = (EditableCellView *)[aTableView dequeueReusableCellWithIdentifier:CellIdentifier0];
if (editableCell == nil) {
- editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault
- reuseIdentifier:CellIdentifier0] autorelease];
+ editableCell = [[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault
+ reuseIdentifier:CellIdentifier0];
editableCell.delegate = self;
}
editableCell.tag = row;
@@ -162,7 +157,7 @@
} else {
WeaponCellView *weaponCell = (WeaponCellView *)[aTableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (weaponCell == nil) {
- weaponCell = [[[WeaponCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease];
+ weaponCell = [[WeaponCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1];
weaponCell.delegate = self;
}
@@ -213,7 +208,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (0 == [indexPath section]) {
EditableCellView *editableCell = (EditableCellView *)[aTableView cellForRowAtIndexPath:indexPath];
[editableCell replyKeyboard];
@@ -223,7 +218,7 @@
#pragma mark -
#pragma mark editableCellView delegate
// set the new value
--(void) saveTextFieldValue:(NSString *)textString withTag:(NSInteger) tagValue {
+- (void)saveTextFieldValue:(NSString *)textString withTag:(NSInteger)tagValue {
if (tagValue == 0) {
// delete old file
[[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.plist",WEAPONS_DIRECTORY(),self.weaponName] error:NULL];
@@ -238,7 +233,7 @@
#pragma mark -
#pragma mark WeaponButtonControllerDelegate
--(void) updateValues:(NSArray *)withArray atIndex:(NSInteger) index {
+- (void)updateValues:(NSArray *)withArray atIndex:(NSInteger)index {
quantity[index] = [[NSString stringWithFormat:@"%d",[[withArray objectAtIndex:0] intValue]] characterAtIndex:0];
probability[index] = [[NSString stringWithFormat:@"%d",[[withArray objectAtIndex:1] intValue]] characterAtIndex:0];
delay[index] = [[NSString stringWithFormat:@"%d",[[withArray objectAtIndex:2] intValue]] characterAtIndex:0];
@@ -247,34 +242,13 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
-}
--(void) viewDidUnload {
+- (void)dealloc {
free(quantity); quantity = NULL;
free(probability); probability = NULL;
free(delay); delay = NULL;
free(crateness); crateness = NULL;
- [super viewDidUnload];
- self.description = nil;
- self.weaponName = nil;
- self.ammoStoreImage = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
}
-
--(void) dealloc {
- releaseAndNil(_trPath);
- releaseAndNil(_trFileName);
-
- releaseAndNil(weaponName);
- releaseAndNil(description);
- releaseAndNil(ammoStoreImage);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/SquareButtonView.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SquareButtonView.h Sat Dec 30 01:22:11 2017 +0100
@@ -27,12 +27,12 @@
NSArray *colorArray;
}
-@property (nonatomic,retain) NSMutableDictionary *ownerDictionary;
-@property (nonatomic,retain) NSArray *colorArray;
-@property (nonatomic,assign) NSUInteger selectedColor;
-@property (nonatomic,assign) NSUInteger colorIndex;
+@property (nonatomic, strong) NSMutableDictionary *ownerDictionary;
+@property (nonatomic, strong) NSArray *colorArray;
+@property (assign) NSUInteger selectedColor;
+@property (assign) NSUInteger colorIndex;
--(void) nextColor;
--(void) selectColor:(NSUInteger) color;
+- (void)nextColor;
+- (void)selectColor:(NSUInteger) color;
@end
--- a/project_files/HedgewarsMobile/Classes/SquareButtonView.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SquareButtonView.m Sat Dec 30 01:22:11 2017 +0100
@@ -24,7 +24,7 @@
@implementation SquareButtonView
@synthesize ownerDictionary, colorIndex, selectedColor, colorArray;
--(id) initWithFrame:(CGRect)frame {
+- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
self.colorIndex = 0;
self.selectedColor = 0;
@@ -46,7 +46,7 @@
return self;
}
--(void) nextColor {
+- (void)nextColor {
self.colorIndex++;
if (self.colorIndex >= [self.colorArray count])
@@ -58,7 +58,7 @@
[self selectColor:color];
}
--(void) selectColor:(NSUInteger) color {
+- (void)selectColor:(NSUInteger) color {
if (color != self.selectedColor) {
self.selectedColor = color;
self.colorIndex = [self.colorArray indexOfObject:[NSNumber numberWithUnsignedInteger:color]];
@@ -70,11 +70,6 @@
}
}
--(void) dealloc {
- releaseAndNil(ownerDictionary);
- releaseAndNil(colorArray);
- [super dealloc];
-}
@end
--- a/project_files/HedgewarsMobile/Classes/StatsPageViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/StatsPageViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -24,6 +24,6 @@
NSArray *statsArray;
}
-@property (nonatomic,retain) NSArray *statsArray;
+@property (nonatomic, strong) NSArray *statsArray;
@end
--- a/project_files/HedgewarsMobile/Classes/StatsPageViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/StatsPageViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -23,11 +23,11 @@
@implementation StatsPageViewController
@synthesize statsArray;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
--(void) viewDidLoad {
+- (void)viewDidLoad {
UITableView *aTableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped];
aTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[aTableView setBackgroundColorForAnyTable:[UIColor clearColor]];
@@ -35,11 +35,9 @@
NSString *imgName = (IS_IPAD()) ? @"mediumBackground~ipad.png" : @"smallerBackground~iphone.png";
UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgName];
UIImageView *background = [[UIImageView alloc] initWithImage:img];
- [img release];
background.frame = self.view.frame;
background.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view insertSubview:background atIndex:0];
- [background release];
aTableView.separatorColor = [UIColor darkYellowColor];
aTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
@@ -49,7 +47,6 @@
aTableView.rowHeight = 44;
[self.view addSubview:aTableView];
- [aTableView release];
[super viewDidLoad];
}
@@ -70,11 +67,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 3;
}
--(NSInteger) tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section {
if (section == 0)
return 1;
else if (section == 1)
@@ -92,7 +89,7 @@
UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier0];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier0] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier0];
if (section == 0) { // winning team
imgName = @"star";
@@ -117,12 +114,9 @@
NSString *imgString = [[NSString alloc] initWithFormat:@"%@/%@.png",imgPath,imgName];
UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgString];
- [imgString release];
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
cell.imageView.image = img;
- [img release];
cell.accessoryView = imgView;
- [imgView release];
cell.textLabel.textAlignment = NSTextAlignmentCenter;
cell.textLabel.adjustsFontSizeToFitWidth = YES;
@@ -143,13 +137,11 @@
UIImage *img = [[UIImage alloc] initWithContentsOfFile:@"smallerTitle.png"];
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
- [img release];
imgView.center = CGPointMake(aTableView.frame.size.width/2, 160/2);
imgView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[header addSubview:imgView];
- [imgView release];
- return [header autorelease];
+ return header;
} else
return nil;
}
@@ -168,32 +160,27 @@
button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[button addTarget:self action:@selector(dismissView) forControlEvents:UIControlEventTouchUpInside];
[footer addSubview:button];
- [button release];
- return [footer autorelease];
+ return footer;
} else
return nil;
}
#pragma mark -
#pragma mark button delegate
--(void) dismissView {
+- (void)dismissView {
[[AudioManagerController mainManager] playClickSound];
[self dismissViewControllerAnimated:YES completion:nil];
}
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
self.statsArray = nil;
}
--(void) dealloc {
- releaseAndNil(statsArray);
- [super dealloc];
-}
@end
--- a/project_files/HedgewarsMobile/Classes/SupportViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SupportViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -24,6 +24,6 @@
NSArray *waysToSupport;
}
-@property (nonatomic, retain) NSArray *waysToSupport;
+@property (nonatomic, strong) NSArray *waysToSupport;
@end
--- a/project_files/HedgewarsMobile/Classes/SupportViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/SupportViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -23,13 +23,13 @@
@implementation SupportViewController
@synthesize waysToSupport;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
NSArray *array = [[NSArray alloc] initWithObjects:
@@ -40,7 +40,6 @@
NSLocalizedString(@"Chat with the devs in IRC",@""),
nil];
self.waysToSupport = array;
- [array release];
self.navigationItem.title = @"♥";
self.tableView.rowHeight = 50;
@@ -67,7 +66,7 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
NSString *rowString = [self.waysToSupport objectAtIndex:(row + section)];
cell.textLabel.text = rowString;
@@ -100,21 +99,18 @@
NSString *imgString = [[NSString alloc] initWithFormat:@"%@/%@.png",[[NSBundle mainBundle] resourcePath],imgName];
UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgString];
- [imgString release];
cell.imageView.image = img;
if (section == 0) {
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
cell.accessoryView = imgView;
- [imgView release];
}
- [img release];
return cell;
}
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([indexPath section] == 0)
{
@@ -145,18 +141,16 @@
}
}
--(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) section {
+-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
if (section == 1) {
UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 240)];
footer.autoresizingMask = UIViewAutoresizingFlexibleWidth;
UIImage *img = [[UIImage alloc] initWithContentsOfFile:@"surprise.png"];
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
- [img release];
imgView.center = CGPointMake(self.tableView.frame.size.width/2, 120);
imgView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[footer addSubview:imgView];
- [imgView release];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 20)];
label.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
@@ -165,9 +159,8 @@
label.backgroundColor = [UIColor clearColor];
label.center = CGPointMake(self.tableView.frame.size.width/2, 250);
[footer addSubview:label];
- [label release];
- return [footer autorelease];
+ return footer;
} else
return nil;
}
@@ -179,19 +172,10 @@
#pragma mark -
#pragma mark Memory management
+
-(void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
-}
-
--(void) viewDidUnload {
- self.waysToSupport = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc {
- releaseAndNil(waysToSupport);
- [super dealloc];
+ MSG_MEMCLEAN();
}
@end
--- a/project_files/HedgewarsMobile/Classes/TableViewControllerWithDoneButton.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/TableViewControllerWithDoneButton.m Sat Dec 30 01:22:11 2017 +0100
@@ -38,15 +38,16 @@
- (UIBarButtonItem *)doneButton
{
- return [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
+ return [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
- action:@selector(dismissView)] autorelease];
+ action:@selector(dismissView)];
}
- (void)dismissView
{
[[AudioManagerController mainManager] playBackSound];
- [[[HedgewarsAppDelegate sharedAppDelegate] mainViewController] dismissViewControllerAnimated:YES completion:nil];
+ UIViewController *vc = [[HedgewarsAppDelegate sharedAppDelegate] mainViewController];
+ [vc dismissViewControllerAnimated:YES completion:nil];
}
@end
--- a/project_files/HedgewarsMobile/Classes/TeamConfigViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/TeamConfigViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -32,11 +32,11 @@
NSArray *cachedContentsOfDir;
}
-@property (nonatomic,retain) UITableView *tableView;
-@property (nonatomic,assign) NSInteger selectedTeamsCount;
-@property (nonatomic,assign) NSInteger allTeamsCount;
-@property (nonatomic,retain) NSMutableArray *listOfAllTeams;
-@property (nonatomic,retain) NSMutableArray *listOfSelectedTeams;
-@property (nonatomic,retain) NSArray *cachedContentsOfDir;
+@property (nonatomic, strong) UITableView *tableView;
+@property (assign) NSInteger selectedTeamsCount;
+@property (assign) NSInteger allTeamsCount;
+@property (nonatomic, strong) NSMutableArray *listOfAllTeams;
+@property (nonatomic, strong) NSMutableArray *listOfSelectedTeams;
+@property (nonatomic, strong) NSArray *cachedContentsOfDir;
@end
--- a/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -25,13 +25,13 @@
@implementation TeamConfigViewController
@synthesize tableView, selectedTeamsCount, allTeamsCount, listOfAllTeams, listOfSelectedTeams, cachedContentsOfDir;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
UITableView *aTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)
style:UITableViewStyleGrouped];
aTableView.delegate = self;
@@ -47,9 +47,7 @@
UIImageView *background = [[UIImageView alloc] initWithImage:backgroundImage];
background.contentMode = UIViewContentModeScaleAspectFill;
background.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
- [backgroundImage release];
[self.view addSubview:background];
- [background release];
[aTableView setBackgroundColorForAnyTable:[UIColor clearColor]];
}
@@ -58,13 +56,12 @@
aTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
aTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.tableView = aTableView;
- [aTableView release];
[self.view addSubview:self.tableView];
[super viewDidLoad];
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:TEAMS_DIRECTORY() error:NULL];
if ([self.cachedContentsOfDir isEqualToArray:contentsOfDir] == NO) {
self.cachedContentsOfDir = contentsOfDir;
@@ -76,14 +73,11 @@
[NSNumber numberWithInt:4],@"number",
[colors objectAtIndex:i%[colors count]],@"color",nil];
[array addObject:dict];
- [dict release];
}
self.listOfAllTeams = array;
- [array release];
NSMutableArray *emptyArray = [[NSMutableArray alloc] initWithObjects:nil];
self.listOfSelectedTeams = emptyArray;
- [emptyArray release];
self.selectedTeamsCount = [self.listOfSelectedTeams count];
self.allTeamsCount = [self.listOfAllTeams count];
@@ -93,7 +87,7 @@
[super viewWillAppear:animated];
}
--(NSInteger) filterNumberOfHogs:(NSInteger) hogs {
+- (NSInteger)filterNumberOfHogs:(NSInteger)hogs {
NSInteger numberOfHogs;
if (hogs <= HW_getMaxNumberOfHogs() && hogs >= 1)
numberOfHogs = hogs;
@@ -108,11 +102,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return (section == 0 ? self.selectedTeamsCount : self.allTeamsCount);
}
@@ -126,11 +120,10 @@
if (section == 0) {
cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier0];
if (cell == nil) {
- cell = [[[HoldTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier0] autorelease];
+ cell = [[HoldTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier0];
SquareButtonView *squareButton = [[SquareButtonView alloc] initWithFrame:CGRectMake(0, 0, 36, 36)];
cell.accessoryView = squareButton;
- [squareButton release];
}
NSMutableDictionary *selectedRow = [listOfSelectedTeams objectAtIndex:[indexPath row]];
@@ -148,7 +141,7 @@
} else {
cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (cell == nil)
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1];
cell.textLabel.text = [[[self.listOfAllTeams objectAtIndex:[indexPath row]] objectForKey:@"team"] stringByDeletingPathExtension];
cell.textLabel.backgroundColor = [UIColor clearColor];
@@ -158,12 +151,9 @@
if ([[firstHog objectForKey:@"level"] intValue] != 0) {
NSString *imgString = [[NSString alloc] initWithFormat:@"%@/robotBadge.png",[[NSBundle mainBundle] resourcePath]];
UIImage *sprite = [[UIImage alloc] initWithContentsOfFile:imgString];
- [imgString release];
UIImageView *spriteView = [[UIImageView alloc] initWithImage:sprite];
- [sprite release];
cell.accessoryView = spriteView;
- [spriteView release];
} else
cell.accessoryView = nil;
}
@@ -189,15 +179,14 @@
UIView *theView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, aTableView.frame.size.width, 30)];
theView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[theView addSubview:theLabel];
- [theLabel release];
- return [theView autorelease];
+ return theView;
}
-(CGFloat) tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return IS_IPAD() ? 40 : 30;
}
--(UIView *)tableView:(UITableView *)aTableView viewForFooterInSection:(NSInteger) section {
+-(UIView *)tableView:(UITableView *)aTableView viewForFooterInSection:(NSInteger)section {
NSInteger height = IS_IPAD() ? 40 : 30;
UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, aTableView.frame.size.width, height)];
footer.backgroundColor = [UIColor clearColor];
@@ -218,14 +207,13 @@
label.text = NSLocalizedString(@"The robot badge indicates an AI-controlled team.",@"");
[footer addSubview:label];
- [label release];
- return [footer autorelease];
+ return footer;
}
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
NSUInteger section = [indexPath section];
@@ -255,7 +243,7 @@
}
}
--(void) holdAction:(NSString *)content onTable:(UITableView *)aTableView {
+- (void)holdAction:(NSString *)content onTable:(UITableView *)aTableView {
NSUInteger row;
for (row = 0; row < [self.listOfSelectedTeams count]; row++) {
NSDictionary *dict = [self.listOfSelectedTeams objectAtIndex:row];
@@ -276,30 +264,12 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
self.cachedContentsOfDir = nil;
MSG_MEMCLEAN();
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
- self.tableView = nil;
- self.listOfAllTeams = nil;
- self.listOfSelectedTeams = nil;
- self.cachedContentsOfDir = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
-
--(void) dealloc {
- releaseAndNil(tableView);
- releaseAndNil(listOfAllTeams);
- releaseAndNil(listOfSelectedTeams);
- releaseAndNil(cachedContentsOfDir);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -24,6 +24,6 @@
NSMutableArray *listOfTeams;
}
-@property (nonatomic, retain) NSMutableArray *listOfTeams;
+@property (nonatomic, strong) NSMutableArray *listOfTeams;
@end
--- a/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -24,14 +24,14 @@
@implementation TeamSettingsViewController
@synthesize listOfTeams;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
// add an edit button
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Edit",@"")
@@ -39,25 +39,23 @@
target:self
action:@selector(toggleEdit:)];
self.navigationItem.rightBarButtonItem = editButton;
- [editButton release];
self.navigationItem.title = NSLocalizedString(@"List of teams", nil);
}
// load the list of teams in the teams directory
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:TEAMS_DIRECTORY() error:NULL];
NSMutableArray *array = [[NSMutableArray alloc] initWithArray:contentsOfDir copyItems:YES];
self.listOfTeams = array;
- [array release];
[self.tableView reloadData];
}
// modifies the navigation bar to add the "Add" and "Done" buttons
--(void) toggleEdit:(id) sender {
+- (void)toggleEdit:(id)sender {
BOOL isEditing = self.tableView.editing;
[self.tableView setEditing:!isEditing animated:YES];
@@ -73,12 +71,11 @@
target:self
action:@selector(addTeam:)];
self.navigationItem.leftBarButtonItem = addButton;
- [addButton release];
}
}
// add a team file with default values and updates the table
--(void) addTeam:(id) sender {
+- (void)addTeam:(id)sender {
NSString *fileName = [[NSString alloc] initWithFormat:@"Default Team %u.plist", [self.listOfTeams count]];
[CreationChamber createTeamNamed:[fileName stringByDeletingPathExtension]];
@@ -91,16 +88,15 @@
NSInteger index = [self.listOfTeams indexOfObject:fileName];
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
- [fileName release];
}
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.listOfTeams count];
}
@@ -110,7 +106,7 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSUInteger row = [indexPath row];
@@ -122,12 +118,11 @@
}
// delete the row and the file
--(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@",TEAMS_DIRECTORY(),[self.listOfTeams objectAtIndex:row]];
[[NSFileManager defaultManager] removeItemAtPath:teamFile error:NULL];
- [teamFile release];
[self.listOfTeams removeObjectAtIndex:row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
@@ -136,7 +131,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
SingleTeamViewController *singleTeamViewController = [[SingleTeamViewController alloc] initWithStyle:UITableViewStyleGrouped];
@@ -148,7 +143,6 @@
[singleTeamViewController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
[self.navigationController pushViewController:singleTeamViewController animated:YES];
- [singleTeamViewController release];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
@@ -156,26 +150,13 @@
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning
+
+- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Relinquish ownership any cached data, images, etc that aren't in use.
}
--(void) viewDidUnload
-{
- self.listOfTeams = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
-}
-
--(void) dealloc
-{
- releaseAndNil(listOfTeams);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/UIImageExtra.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/UIImageExtra.h Sat Dec 30 01:22:11 2017 +0100
@@ -22,17 +22,17 @@
@interface UIImage (extra)
-+(UIImage *)whiteImage:(CGSize) ofSize;
-+(UIImage *)drawHogsRepeated:(NSInteger) manyTimes;
-+(CGSize) imageSizeFromMetadataOf:(NSString *)aFileName;
++ (UIImage *)whiteImage:(CGSize)ofSize;
++ (UIImage *)drawHogsRepeated:(NSInteger)manyTimes;
++ (CGSize)imageSizeFromMetadataOf:(NSString *)aFileName;
--(UIImage *)scaleToSize:(CGSize) size;
--(UIImage *)mergeWith:(UIImage *)secondImage atPoint:(CGPoint) secondImagePoint;
--(id) initWithContentsOfFile:(NSString *)path andCutAt:(CGRect) rect;
--(UIImage *)cutAt:(CGRect) rect;
--(UIImage *)convertToGrayScale;
--(UIImage *)convertToNegative;
--(UIImage *)maskImageWith:(UIImage *)maskImage;
--(UIImage *)makeRoundCornersOfSize:(CGSize) sizewh;
+- (UIImage *)scaleToSize:(CGSize)size;
+- (UIImage *)mergeWith:(UIImage *)secondImage atPoint:(CGPoint)secondImagePoint;
+- (id)initWithContentsOfFile:(NSString *)path andCutAt:(CGRect)rect;
+- (UIImage *)cutAt:(CGRect)rect;
+- (UIImage *)convertToGrayScale;
+- (UIImage *)convertToNegative;
+- (UIImage *)maskImageWith:(UIImage *)maskImage;
+- (UIImage *)makeRoundCornersOfSize:(CGSize)sizewh;
@end
--- a/project_files/HedgewarsMobile/Classes/UIImageExtra.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/UIImageExtra.m Sat Dec 30 01:22:11 2017 +0100
@@ -22,7 +22,7 @@
@implementation UIImage (extra)
--(UIImage *)scaleToSize:(CGSize) size {
+- (UIImage *)scaleToSize:(CGSize)size {
// Create a bitmap graphics context; this will also set it as the current context
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, size.width, size.height, 8, 4 * size.width, colorSpace, kCGImageAlphaPremultipliedFirst);
@@ -49,7 +49,7 @@
return resultImage;
}
--(UIImage *)mergeWith:(UIImage *)secondImage atPoint:(CGPoint) secondImagePoint {
+- (UIImage *)mergeWith:(UIImage *)secondImage atPoint:(CGPoint)secondImagePoint {
if (secondImage == nil) {
DLog(@"Warning, secondImage == nil");
return self;
@@ -90,7 +90,7 @@
return resultImage;
}
--(id) initWithContentsOfFile:(NSString *)path andCutAt:(CGRect) rect {
+- (id)initWithContentsOfFile:(NSString *)path andCutAt:(CGRect)rect {
// load image from path
UIImage *image = [[UIImage alloc] initWithContentsOfFile: path];
@@ -99,7 +99,6 @@
CGImageRef cgImage = CGImageCreateWithImageInRect([image CGImage], rect);
// clean memory
- [image release];
// create a UIImage from the CGImage (memory must be allocated already)
UIImage *sprite = [self initWithCGImage:cgImage];
@@ -115,7 +114,7 @@
}
}
--(UIImage *)cutAt:(CGRect) rect {
+- (UIImage *)cutAt:(CGRect)rect {
CGImageRef cgImage = CGImageCreateWithImageInRect([self CGImage], rect);
UIImage *res = [UIImage imageWithCGImage:cgImage];
@@ -124,7 +123,7 @@
return res;
}
--(UIImage *)convertToGrayScale {
+- (UIImage *)convertToGrayScale {
// Create image rectangle with current image width/height
CGRect imageRect = CGRectMake(0, 0, self.size.width, self.size.height);
@@ -197,7 +196,7 @@
CGContextRestoreGState(context);
}
--(UIImage *)makeRoundCornersOfSize:(CGSize) sizewh {
+- (UIImage *)makeRoundCornersOfSize:(CGSize)sizewh {
CGFloat cornerWidth = sizewh.width;
CGFloat cornerHeight = sizewh.height;
CGFloat screenScale = [[UIScreen mainScreen] safeScale];
@@ -230,7 +229,7 @@
}
// by http://www.sixtemia.com/journal/2010/06/23/uiimage-negative-color-effect/
--(UIImage *)convertToNegative {
+- (UIImage *)convertToNegative {
UIGraphicsBeginImageContext(self.size);
CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeCopy);
[self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)];
@@ -243,7 +242,7 @@
return result;
}
-+(UIImage *)whiteImage:(CGSize) ofSize {
++ (UIImage *)whiteImage:(CGSize)ofSize {
CGFloat w = ofSize.width;
CGFloat h = ofSize.height;
DLog(@"w: %f, h: %f", w, h);
@@ -264,10 +263,9 @@
return bkgImg;
}
-+(UIImage *)drawHogsRepeated:(NSInteger) manyTimes {
++ (UIImage *)drawHogsRepeated:(NSInteger)manyTimes {
NSString *imgString = [[NSString alloc] initWithFormat:@"%@/hedgehog.png",[[NSBundle mainBundle] resourcePath]];
UIImage *hogSprite = [[UIImage alloc] initWithContentsOfFile:imgString];
- [imgString release];
CGFloat screenScale = [[UIScreen mainScreen] safeScale];
int w = hogSprite.size.width * screenScale;
int h = hogSprite.size.height * screenScale;
@@ -277,7 +275,6 @@
// draw the two images in the current context
for (int i = 0; i < manyTimes; i++)
CGContextDrawImage(context, CGRectMake(i*8*screenScale, 0, w, h), [hogSprite CGImage]);
- [hogSprite release];
// Create bitmap image info from pixel data in current context
CGImageRef imageRef = CGBitmapContextCreateImage(context);
@@ -299,7 +296,7 @@
// this routine checks for the PNG size without loading it in memory
// https://github.com/steipete/PSFramework/blob/master/PSFramework%20Version%200.3/PhotoshopFramework/PSMetaDataFunctions.m
-+(CGSize) imageSizeFromMetadataOf:(NSString *)aFileName {
++ (CGSize)imageSizeFromMetadataOf:(NSString *)aFileName {
// File Name to C String.
const char *fileName = [aFileName UTF8String];
// source file
--- a/project_files/HedgewarsMobile/Classes/VoicesViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/VoicesViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -31,8 +31,8 @@
int lastChannel;
}
-@property (nonatomic,retain) NSMutableDictionary *teamDictionary;
-@property (nonatomic,retain) NSArray *voiceArray;
-@property (nonatomic,retain) NSIndexPath *lastIndexPath;
+@property (nonatomic, strong) NSMutableDictionary *teamDictionary;
+@property (nonatomic, strong) NSArray *voiceArray;
+@property (nonatomic, strong) NSIndexPath *lastIndexPath;
@end
--- a/project_files/HedgewarsMobile/Classes/VoicesViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/VoicesViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -24,13 +24,13 @@
@synthesize teamDictionary, voiceArray, lastIndexPath;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
voiceBeingPlayed = NULL;
@@ -43,19 +43,19 @@
self.title = NSLocalizedString(@"Set hedgehog voices",@"");
}
--(void) viewWillAppear:(BOOL)animated {
+- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// this moves the tableview to the top
[self.tableView setContentOffset:CGPointMake(0,0) animated:NO];
}
--(void) viewDidAppear:(BOOL)animated {
+- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
Mix_OpenAudio(44100, 0x8010, 1, 1024);
}
--(void) viewDidDisappear:(BOOL)animated {
+- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
if(voiceBeingPlayed != NULL) {
Mix_HaltChannel(lastChannel);
@@ -68,11 +68,11 @@
#pragma mark -
#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.voiceArray count];
}
@@ -83,7 +83,7 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSString *voice = [[voiceArray objectAtIndex:[indexPath row]] stringByDeletingPathExtension];
@@ -102,7 +102,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger newRow = [indexPath row];
NSInteger oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
@@ -131,14 +131,14 @@
int index = arc4random_uniform((int)[array count]);
voiceBeingPlayed = Mix_LoadWAV([[voiceDir stringByAppendingString:[array objectAtIndex:index]] UTF8String]);
- [voiceDir release];
lastChannel = Mix_PlayChannel(-1, voiceBeingPlayed, 0);
}
#pragma mark -
#pragma mark Memory management
--(void) didReceiveMemoryWarning {
+
+- (void)didReceiveMemoryWarning {
if (voiceBeingPlayed != NULL) {
Mix_HaltChannel(lastChannel);
Mix_FreeChunk(voiceBeingPlayed);
@@ -149,26 +149,13 @@
[super didReceiveMemoryWarning];
}
--(void) viewDidUnload {
+- (void)dealloc {
if (voiceBeingPlayed != NULL) {
Mix_HaltChannel(lastChannel);
Mix_FreeChunk(voiceBeingPlayed);
voiceBeingPlayed = NULL;
}
- self.lastIndexPath = nil;
- self.teamDictionary = nil;
- self.voiceArray = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
}
--(void) dealloc {
- releaseAndNil(voiceArray);
- releaseAndNil(teamDictionary);
- releaseAndNil(lastIndexPath);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Classes/WeaponCellView.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/WeaponCellView.h Sat Dec 30 01:22:11 2017 +0100
@@ -22,12 +22,12 @@
@protocol WeaponButtonControllerDelegate <NSObject>
--(void) updateValues:(NSArray *)withArray atIndex:(NSInteger) index;
+- (void)updateValues:(NSArray *)withArray atIndex:(NSInteger)index;
@end
@interface WeaponCellView : UITableViewCell {
- id<WeaponButtonControllerDelegate> delegate;
+ id<WeaponButtonControllerDelegate> __weak delegate;
UILabel *weaponName;
UIImageView *weaponIcon;
@@ -50,26 +50,26 @@
UILabel *helpLabel;
}
-@property (nonatomic,assign) id<WeaponButtonControllerDelegate> delegate;
+@property (nonatomic, weak) id<WeaponButtonControllerDelegate> delegate;
-@property (nonatomic,retain) UILabel *weaponName;
-@property (nonatomic,retain) UIImageView *weaponIcon;
+@property (nonatomic, strong) UILabel *weaponName;
+@property (nonatomic, strong) UIImageView *weaponIcon;
-@property (nonatomic,retain) UISlider *initialSli;
-@property (nonatomic,retain) UISlider *probabilitySli;
-@property (nonatomic,retain) UISlider *delaySli;
-@property (nonatomic,retain) UISlider *crateSli;
+@property (nonatomic, strong) UISlider *initialSli;
+@property (nonatomic, strong) UISlider *probabilitySli;
+@property (nonatomic, strong) UISlider *delaySli;
+@property (nonatomic, strong) UISlider *crateSli;
-@property (nonatomic,retain) UIImageView *initialImg;
-@property (nonatomic,retain) UIImageView *probabilityImg;
-@property (nonatomic,retain) UIImageView *delayImg;
-@property (nonatomic,retain) UIImageView *crateImg;
+@property (nonatomic, strong) UIImageView *initialImg;
+@property (nonatomic, strong) UIImageView *probabilityImg;
+@property (nonatomic, strong) UIImageView *delayImg;
+@property (nonatomic, strong) UIImageView *crateImg;
-@property (nonatomic,retain) UILabel *initialLab;
-@property (nonatomic,retain) UILabel *probabilityLab;
-@property (nonatomic,retain) UILabel *delayLab;
-@property (nonatomic,retain) UILabel *crateLab;
+@property (nonatomic, strong) UILabel *initialLab;
+@property (nonatomic, strong) UILabel *probabilityLab;
+@property (nonatomic, strong) UILabel *delayLab;
+@property (nonatomic, strong) UILabel *crateLab;
-@property (nonatomic,retain) UILabel *helpLabel;
+@property (nonatomic, strong) UILabel *helpLabel;
@end
--- a/project_files/HedgewarsMobile/Classes/WeaponCellView.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/WeaponCellView.m Sat Dec 30 01:22:11 2017 +0100
@@ -24,7 +24,7 @@
@synthesize delegate, weaponName, weaponIcon, initialSli, probabilitySli, delaySli, crateSli, helpLabel,
initialImg, probabilityImg, delayImg, crateImg, initialLab, probabilityLab, delayLab, crateLab;
--(id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
+- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
delegate = nil;
@@ -67,16 +67,12 @@
NSString *imgAmmoStr = [[NSString alloc] initWithFormat:@"%@/ammopic.png",ICONS_DIRECTORY()];
initialImg = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:imgAmmoStr]];
- [imgAmmoStr release];
NSString *imgDamageStr = [[NSString alloc] initWithFormat:@"%@/iconDamage.png",ICONS_DIRECTORY()];
probabilityImg = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:imgDamageStr]];
- [imgDamageStr release];
NSString *imgTimeStr = [[NSString alloc] initWithFormat:@"%@/iconTime.png",ICONS_DIRECTORY()];
delayImg = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:imgTimeStr]];
- [imgTimeStr release];
NSString *imgBoxStr = [[NSString alloc] initWithFormat:@"%@/iconBox.png",ICONS_DIRECTORY()];
crateImg = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:imgBoxStr]];
- [imgBoxStr release];
initialLab = [[UILabel alloc] init];
initialLab.backgroundColor = [UIColor clearColor];
@@ -128,7 +124,7 @@
return self;
}
--(void) layoutSubviews {
+- (void)layoutSubviews {
[super layoutSubviews];
CGFloat hOffset = 80;
@@ -186,13 +182,13 @@
}
/*
--(void) setSelected:(BOOL)selected animated:(BOOL)animated {
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
*/
--(void) valueChanged:(id) sender {
+- (void)valueChanged:(id)sender {
if (self.delegate != nil) {
initialLab.text = ((int)initialSli.value == 9) ? @"∞" : [NSString stringWithFormat:@"%d",(int)initialSli.value];
probabilityLab.text = ((int)probabilitySli.value == 9) ? @"∞" : [NSString stringWithFormat:@"%d",(int)probabilitySli.value];
@@ -209,7 +205,7 @@
DLog(@"error - delegate = nil!");
}
--(void) startDragging:(id) sender {
+- (void)startDragging:(id)sender {
UISlider *slider = (UISlider *)sender;
NSString *str = nil;
@@ -242,28 +238,8 @@
self.helpLabel.text = str;
}
--(void) stopDragging:(id) sender {
+- (void)stopDragging:(id)sender {
self.helpLabel.text = @"";
}
--(void) dealloc {
- self.delegate = nil;
- releaseAndNil(weaponName);
- releaseAndNil(weaponIcon);
- releaseAndNil(initialSli);
- releaseAndNil(probabilitySli);
- releaseAndNil(delaySli);
- releaseAndNil(crateSli);
- releaseAndNil(initialImg);
- releaseAndNil(probabilityImg);
- releaseAndNil(delayImg);
- releaseAndNil(crateImg);
- releaseAndNil(initialLab);
- releaseAndNil(probabilityLab);
- releaseAndNil(delayLab);
- releaseAndNil(crateLab);
- releaseAndNil(helpLabel);
- [super dealloc];
-}
-
@end
--- a/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.h Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.h Sat Dec 30 01:22:11 2017 +0100
@@ -24,6 +24,6 @@
NSMutableArray *listOfWeapons;
}
-@property (nonatomic, retain) NSMutableArray *listOfWeapons;
+@property (nonatomic, strong) NSMutableArray *listOfWeapons;
@end
--- a/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.m Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.m Sat Dec 30 01:22:11 2017 +0100
@@ -24,13 +24,13 @@
@implementation WeaponSettingsViewController
@synthesize listOfWeapons;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
#pragma mark -
#pragma mark View lifecycle
--(void) viewDidLoad {
+- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Edit",@"")
@@ -38,24 +38,22 @@
target:self
action:@selector(toggleEdit:)];
self.navigationItem.rightBarButtonItem = editButton;
- [editButton release];
self.navigationItem.title = NSLocalizedString(@"List of weapons", nil);
}
--(void) viewWillAppear:(BOOL) animated {
+- (void)viewWillAppear:(BOOL) animated {
[super viewWillAppear:animated];
NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:WEAPONS_DIRECTORY() error:NULL];
NSMutableArray *array = [[NSMutableArray alloc] initWithArray:contentsOfDir copyItems:YES];
self.listOfWeapons = array;
- [array release];
[self.tableView reloadData];
}
// modifies the navigation bar to add the "Add" and "Done" buttons
--(void) toggleEdit:(id) sender {
+- (void)toggleEdit:(id)sender {
BOOL isEditing = self.tableView.editing;
[self.tableView setEditing:!isEditing animated:YES];
@@ -71,11 +69,10 @@
target:self
action:@selector(addWeapon:)];
self.navigationItem.leftBarButtonItem = addButton;
- [addButton release];
}
}
--(void) addWeapon:(id) sender {
+- (void)addWeapon:(id)sender {
NSString *fileName = [[NSString alloc] initWithFormat:@"Weapon %u.plist", [self.listOfWeapons count]];
[CreationChamber createWeaponNamed:[fileName stringByDeletingPathExtension]];
@@ -88,7 +85,6 @@
NSInteger index = [self.listOfWeapons indexOfObject:fileName];
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
- [fileName release];
}
#pragma mark -
@@ -106,7 +102,7 @@
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSUInteger row = [indexPath row];
@@ -118,12 +114,11 @@
}
// delete the row and the file
--(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
+- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@",WEAPONS_DIRECTORY(),[self.listOfWeapons objectAtIndex:row]];
[[NSFileManager defaultManager] removeItemAtPath:schemeFile error:NULL];
- [schemeFile release];
[self.listOfWeapons removeObjectAtIndex:row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
@@ -131,7 +126,7 @@
#pragma mark -
#pragma mark Table view delegate
--(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
SingleWeaponViewController *singleWeaponViewController = [[SingleWeaponViewController alloc] initWithStyle:UITableViewStyleGrouped];
@@ -143,7 +138,6 @@
[singleWeaponViewController.tableView setContentOffset:CGPointMake(0,0) animated:NO];
[self.navigationController pushViewController:singleWeaponViewController animated:YES];
- [singleWeaponViewController release];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
@@ -151,25 +145,12 @@
#pragma mark -
#pragma mark Memory management
+
-(void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
-}
-
--(void) viewDidUnload
-{
- self.listOfWeapons = nil;
- MSG_DIDUNLOAD();
- [super viewDidUnload];
+ MSG_MEMCLEAN();
}
-
--(void) dealloc
-{
- releaseAndNil(listOfWeapons);
- [super dealloc];
-}
-
-
@end
--- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Fri Dec 29 22:37:31 2017 +0100
+++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Sat Dec 30 01:22:11 2017 +0100
@@ -74,9 +74,9 @@
615AD9EB1207654E00F2FF04 /* helpButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 615AD9EA1207654E00F2FF04 /* helpButton.png */; };
615BE3D4155C5DDF003CA34D /* uInputHandler.pas in Sources */ = {isa = PBXBuildFile; fileRef = 615BE3D3155C5DDF003CA34D /* uInputHandler.pas */; };
615E755A14E41E8C00FBA131 /* MXAudioPlayerFadeOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E755914E41E8C00FBA131 /* MXAudioPlayerFadeOperation.m */; };
- 615E76BC14E4421200FBA131 /* MGSplitCornersView.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76B714E4421200FBA131 /* MGSplitCornersView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
- 615E76BD14E4421200FBA131 /* MGSplitDividerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76B914E4421200FBA131 /* MGSplitDividerView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
- 615E76BE14E4421200FBA131 /* MGSplitViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76BB14E4421200FBA131 /* MGSplitViewController.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 615E76BC14E4421200FBA131 /* MGSplitCornersView.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76B714E4421200FBA131 /* MGSplitCornersView.m */; };
+ 615E76BD14E4421200FBA131 /* MGSplitDividerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76B914E4421200FBA131 /* MGSplitDividerView.m */; };
+ 615E76BE14E4421200FBA131 /* MGSplitViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E76BB14E4421200FBA131 /* MGSplitViewController.m */; };
615FEAE212A2A6640098EE92 /* localplayButton~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 615FEADF12A2A6640098EE92 /* localplayButton~ipad.png */; };
615FEAE312A2A6640098EE92 /* localplayButton~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = 615FEAE012A2A6640098EE92 /* localplayButton~iphone.png */; };
616065A8159A71FD00CFAEF4 /* hwclassic.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 616065A7159A71FD00CFAEF4 /* hwclassic.mp3 */; };
@@ -279,7 +279,7 @@
F65E1DC01B9B95A400A78ADF /* Icon-76.png in Resources */ = {isa = PBXBuildFile; fileRef = F65E1DBD1B9B95A400A78ADF /* Icon-76.png */; };
F65E1DC11B9B95A400A78ADF /* Icon-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F65E1DBE1B9B95A400A78ADF /* Icon-76@2x.png */; };
F6756D801BD8550500B6AB6B /* LabelWithIBLocalization.m in Sources */ = {isa = PBXBuildFile; fileRef = F6756D7F1BD8550500B6AB6B /* LabelWithIBLocalization.m */; };
- F67FC8121BEC06E700A9DC75 /* Appirater.m in Sources */ = {isa = PBXBuildFile; fileRef = F67FC8101BEC06E700A9DC75 /* Appirater.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ F67FC8121BEC06E700A9DC75 /* Appirater.m in Sources */ = {isa = PBXBuildFile; fileRef = F67FC8101BEC06E700A9DC75 /* Appirater.m */; };
F67FC8141BEC072B00A9DC75 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F67FC8131BEC072B00A9DC75 /* StoreKit.framework */; };
F67FC8161BEC17AC00A9DC75 /* Appirater.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F67FC8151BEC17AC00A9DC75 /* Appirater.bundle */; };
F6BA38461BA7A834005D16EA /* GameLogViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F6BA38451BA7A834005D16EA /* GameLogViewController.m */; };
@@ -2109,6 +2109,7 @@
1D6058940D05DD3E006BFB54 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
GCC_DYNAMIC_NO_PIC = NO;
@@ -2126,6 +2127,7 @@
1D6058950D05DD3E006BFB54 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
@@ -2218,6 +2220,7 @@
61022D7D12305A2800B08935 /* Distro AppStore */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
@@ -2337,6 +2340,7 @@
6137064C117B1CB3004EE44A /* Distro Adhoc */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;