project_files/HedgewarsMobile/Classes/SavedGamesViewController.m
author nemo
Sun, 10 Oct 2010 20:16:17 -0400
changeset 3951 c9a63db3e603
parent 3923 694e6f6e0e30
child 3971 5c82ee165ed5
permissions -rw-r--r--
Correct another bug in slot switching, adjust width of theme list, really truly fix reset of weps (I hope) should also fix infinite teleport bug in place hogs mode. Slow update of health to 5s for inf attack mode.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
     1
/*
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
     2
 * Hedgewars-iOS, a Hedgewars port for iOS devices
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
     3
 * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
     4
 *
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
     8
 *
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    12
 * GNU General Public License for more details.
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    13
 *
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    17
 *
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    18
 * File created on 22/09/2010.
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    19
 */
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    20
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    21
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    22
#import "SavedGamesViewController.h"
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    23
#import "SDL_uikitappdelegate.h"
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    24
#import "CommodityFunctions.h"
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    25
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    26
@implementation SavedGamesViewController
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    27
@synthesize tableView, listOfSavegames;
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    28
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    29
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    30
    return rotationManager(interfaceOrientation);
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    31
}
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    32
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    33
-(void) updateTable {
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    34
    NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SAVES_DIRECTORY() error:NULL];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    35
    NSMutableArray *array = [[NSMutableArray alloc] initWithArray:contentsOfDir copyItems:YES];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    36
    self.listOfSavegames = array;
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    37
    [array release];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    38
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    39
    [self.tableView reloadData];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    40
}
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    41
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    42
-(void) viewDidLoad {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    43
    self.tableView.backgroundView = nil;
3904
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
    44
    [[NSNotificationCenter defaultCenter] addObserver:self
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
    45
                                             selector:@selector(viewWillAppear:)
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
    46
                                                 name:@"removedSave"
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
    47
                                               object:nil];
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    48
    [super viewDidLoad];
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    49
}
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    50
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    51
-(void) viewWillAppear:(BOOL)animated {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    52
    [super viewWillAppear:animated];
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    53
    [self updateTable];
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    54
}
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    55
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    56
#pragma mark -
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    57
#pragma mark button functions
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    58
-(IBAction) buttonPressed:(id) sender {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    59
    playSound(@"backSound");
3903
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    60
    [self.tableView setEditing:NO animated:YES];
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    61
    [[self parentViewController] dismissModalViewControllerAnimated:YES];
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    62
}
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    63
3903
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    64
-(IBAction) toggleEdit:(id) sender {
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    65
    BOOL isEditing = self.tableView.editing;
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    66
    [self.tableView setEditing:!isEditing animated:YES];
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    67
    UIToolbar *toolbar = (UIToolbar *)[self.view viewWithTag:458912];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    68
    for (UIBarButtonItem *item in toolbar.items)
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    69
        if (item.tag == 452198)
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    70
            item.enabled = !isEditing;
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    71
}
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    72
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    73
-(IBAction) clearAll:(id) sender {
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    74
    [[NSFileManager defaultManager] removeItemAtPath:SAVES_DIRECTORY() error:NULL];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    75
    [[NSFileManager defaultManager] createDirectoryAtPath:SAVES_DIRECTORY() withIntermediateDirectories:NO attributes:nil error:NULL];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3904
diff changeset
    76
    [self updateTable];
3903
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    77
}
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    78
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    79
#pragma mark -
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    80
#pragma mark Table view data source
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    81
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    82
    return 1;
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    83
}
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    84
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    85
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    86
    return [self.listOfSavegames count];
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    87
}
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    88
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    89
-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
    90
    static NSString *CellIdentifier = @"Cell";
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
    91
3903
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    92
    EditableCellView *editableCell = (EditableCellView *)[aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    93
    if (editableCell == nil) {
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    94
        editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    95
        editableCell.delegate = self;
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    96
    }
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    97
    editableCell.tag = [indexPath row];
3904
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
    98
    editableCell.respectEditing = YES;
3903
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
    99
    editableCell.textField.text = [[self.listOfSavegames objectAtIndex:[indexPath row]] stringByDeletingPathExtension];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   100
    editableCell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   101
    
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   102
    UIImage *addImg = [UIImage imageWithContentsOfFile:@"plus.png"];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   103
    UIButton *customButton = [UIButton buttonWithType:UIButtonTypeContactAdd];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   104
    customButton.tag = [indexPath row];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   105
    [customButton setImage:addImg forState:UIControlStateNormal];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   106
    [customButton addTarget:self action:@selector(duplicateEntry:) forControlEvents:UIControlEventTouchUpInside];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   107
    editableCell.editingAccessoryView = customButton;
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   108
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   109
    return (UITableViewCell *)editableCell;
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   110
}
3904
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   111
3903
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   112
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) section {
3904
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   113
    UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 50)];
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   114
    footer.backgroundColor = [UIColor clearColor];
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   115
    
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   116
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width*80/100, 100)];
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   117
    label.center = CGPointMake(self.tableView.frame.size.width/2,70);
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   118
    label.textAlignment = UITextAlignmentCenter;
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   119
    label.font = [UIFont systemFontOfSize:16];
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   120
    label.textColor = [UIColor lightGrayColor];
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   121
    label.numberOfLines = 5;
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   122
    label.text = NSLocalizedString(@"Games are automatically saved and can be resumed by selecting an entry above.\nYou can modify this list by pressing the 'Edit' button.\nNotice that completed games are deleted, so make backups.",@"");
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   123
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   124
    label.backgroundColor = [UIColor clearColor];
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   125
    [footer addSubview:label];
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   126
    [label release];
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   127
    return [footer autorelease];
22e4d74240e5 finishing touches to save games handling (help label, dim on overlay, edit text only when table is editable)
koda
parents: 3903
diff changeset
   128
}
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   129
3903
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   130
-(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   131
    NSUInteger row = [indexPath row];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   132
    [(EditableCellView *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:0]] save:nil];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   133
    
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   134
    NSString *saveName = [self.listOfSavegames objectAtIndex:row];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   135
    NSString *currentFilePath = [NSString stringWithFormat:@"%@/%@",SAVES_DIRECTORY(),saveName];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   136
    [[NSFileManager defaultManager] removeItemAtPath:currentFilePath error:nil];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   137
    [self.listOfSavegames removeObject:saveName];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   138
    
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   139
    [self.tableView reloadData];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   140
}
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   141
3903
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   142
-(void) duplicateEntry:(id) sender {
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   143
    UIButton *button = (UIButton *)sender;
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   144
    NSUInteger row = button.tag;
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   145
    
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   146
    [(EditableCellView *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:0]] save:nil];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   147
    NSString *currentSaveName = [self.listOfSavegames objectAtIndex:row];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   148
    NSString *newSaveName = [[currentSaveName stringByDeletingPathExtension] stringByAppendingFormat:@" %d.hws",[self.listOfSavegames count]];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   149
    
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   150
    NSString *currentFilePath = [NSString stringWithFormat:@"%@/%@",SAVES_DIRECTORY(),currentSaveName];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   151
    NSString *newFilePath = [NSString stringWithFormat:@"%@/%@",SAVES_DIRECTORY(),newSaveName];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   152
    [[NSFileManager defaultManager] copyItemAtPath:currentFilePath toPath:newFilePath error:nil];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   153
    [self.listOfSavegames addObject:newSaveName];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   154
    [self.listOfSavegames sortUsingSelector:@selector(compare:)];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   155
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   156
    //[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[self.listOfSavegames indexOfObject:newSaveName] inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   157
    [self.tableView reloadData];
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
   158
}
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
   159
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   160
#pragma mark -
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   161
#pragma mark Table view delegate
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   162
-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   163
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   164
    
3903
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   165
    [(EditableCellView *)[self.tableView cellForRowAtIndexPath:indexPath] save:nil];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   166
    
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   167
    NSString *filePath = [NSString stringWithFormat:@"%@/%@",SAVES_DIRECTORY(),[self.listOfSavegames objectAtIndex:[indexPath row]]];
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   168
    
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   169
    NSDictionary *allDataNecessary = [NSDictionary dictionaryWithObjectsAndKeys:
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   170
                                      [NSDictionary dictionary],@"game_dictionary",
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   171
                                      filePath,@"savefile",
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   172
                                      [NSNumber numberWithBool:NO],@"netgame",
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   173
                                      nil];
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   174
    [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary];
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
   175
}
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
   176
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   177
#pragma mark -
3903
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   178
#pragma mark editableCellView delegate
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   179
// rename old file if names differ
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   180
-(void) saveTextFieldValue:(NSString *)textString withTag:(NSInteger) tagValue {
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   181
    NSString *oldFilePath = [NSString stringWithFormat:@"%@/%@",SAVES_DIRECTORY(),[self.listOfSavegames objectAtIndex:tagValue]];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   182
    NSString *newFilePath = [NSString stringWithFormat:@"%@/%@.hws",SAVES_DIRECTORY(),textString];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   183
    
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   184
    if ([oldFilePath isEqualToString:newFilePath] == NO) {
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   185
        [[NSFileManager defaultManager] moveItemAtPath:oldFilePath toPath:newFilePath error:nil];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   186
        [self.listOfSavegames replaceObjectAtIndex:tagValue withObject:[textString stringByAppendingString:@".hws"]];
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   187
    }
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   188
    
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   189
}
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   190
db01c37494af pimp-my-savagame-table
koda
parents: 3898
diff changeset
   191
#pragma mark -
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   192
#pragma mark Memory Management
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   193
-(void) didReceiveMemoryWarning {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   194
    [super didReceiveMemoryWarning];
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   195
}
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
   196
3898
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   197
-(void) viewDidUnload {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   198
    self.tableView = nil;
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   199
    self.listOfSavegames = nil;
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   200
    [super viewDidUnload];
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   201
}
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   202
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   203
-(void) dealloc {
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   204
    [tableView release];
0a9c3735a713 implemented reloading savefiles
koda
parents: 3893
diff changeset
   205
    [listOfSavegames release];
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
   206
    [super dealloc];
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
   207
}
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
   208
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents:
diff changeset
   209
@end