git repos / blockattack-game

blame: source/code/replay.cpp

normal view · raw

89c4a3a6 sago007 2008-08-29 14:32 1
/*
89c4a3a6 sago007 2008-08-29 14:32 2
replay.cpp
89c4a3a6 sago007 2008-08-29 14:32 3
Copyright (C) 2005 Poul Sander
89c4a3a6 sago007 2008-08-29 14:32 4
89c4a3a6 sago007 2008-08-29 14:32 5
    This program is free software; you can redistribute it and/or modify
89c4a3a6 sago007 2008-08-29 14:32 6
    it under the terms of the GNU General Public License as published by
89c4a3a6 sago007 2008-08-29 14:32 7
    the Free Software Foundation; either version 2 of the License, or
89c4a3a6 sago007 2008-08-29 14:32 8
    (at your option) any later version.
89c4a3a6 sago007 2008-08-29 14:32 9
89c4a3a6 sago007 2008-08-29 14:32 10
    This program is distributed in the hope that it will be useful,
89c4a3a6 sago007 2008-08-29 14:32 11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
89c4a3a6 sago007 2008-08-29 14:32 12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
89c4a3a6 sago007 2008-08-29 14:32 13
    GNU General Public License for more details.
89c4a3a6 sago007 2008-08-29 14:32 14
89c4a3a6 sago007 2008-08-29 14:32 15
    You should have received a copy of the GNU General Public License
89c4a3a6 sago007 2008-08-29 14:32 16
    along with this program; if not, write to the Free Software
89c4a3a6 sago007 2008-08-29 14:32 17
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
89c4a3a6 sago007 2008-08-29 14:32 18
89c4a3a6 sago007 2008-08-29 14:32 19
    Poul Sander
89c4a3a6 sago007 2008-08-29 14:32 20
    R�veh�jvej 36, V. 1111
89c4a3a6 sago007 2008-08-29 14:32 21
    2800 Kgs. Lyngby
89c4a3a6 sago007 2008-08-29 14:32 22
    DENMARK
89c4a3a6 sago007 2008-08-29 14:32 23
    blockattack@poulsander.com
89c4a3a6 sago007 2008-08-29 14:32 24
*/
89c4a3a6 sago007 2008-08-29 14:32 25
89c4a3a6 sago007 2008-08-29 14:32 26
/*
89c4a3a6 sago007 2008-08-29 14:32 27
Handles replay
89c4a3a6 sago007 2008-08-29 14:32 28
*/
89c4a3a6 sago007 2008-08-29 14:32 29
c96f480e sago007 2009-03-28 18:59 30
#include <string.h>
c96f480e sago007 2009-03-28 18:59 31
89c4a3a6 sago007 2008-08-29 14:32 32
#include "replay.h"
89c4a3a6 sago007 2008-08-29 14:32 33
89c4a3a6 sago007 2008-08-29 14:32 34
Replay::Replay()
89c4a3a6 sago007 2008-08-29 14:32 35
{
89c4a3a6 sago007 2008-08-29 14:32 36
    nrOfFrames=0;
89c4a3a6 sago007 2008-08-29 14:32 37
    isLoaded = false;
89c4a3a6 sago007 2008-08-29 14:32 38
}
89c4a3a6 sago007 2008-08-29 14:32 39
89c4a3a6 sago007 2008-08-29 14:32 40
Replay::Replay(const Replay& r)
89c4a3a6 sago007 2008-08-29 14:32 41
{
89c4a3a6 sago007 2008-08-29 14:32 42
    bps = r.bps;
89c4a3a6 sago007 2008-08-29 14:32 43
    finalPack = r.finalPack;
89c4a3a6 sago007 2008-08-29 14:32 44
    nrOfFrames = r.nrOfFrames;
89c4a3a6 sago007 2008-08-29 14:32 45
    isLoaded = r.isLoaded;
89c4a3a6 sago007 2008-08-29 14:32 46
    theResult = r.theResult;
c96f480e sago007 2009-03-28 18:59 47
    strncpy(name,r.name,sizeof(name));
89c4a3a6 sago007 2008-08-29 14:32 48
}
89c4a3a6 sago007 2008-08-29 14:32 49
89c4a3a6 sago007 2008-08-29 14:32 50
Uint32 Replay::getNumberOfFrames()
89c4a3a6 sago007 2008-08-29 14:32 51
{
89c4a3a6 sago007 2008-08-29 14:32 52
    return nrOfFrames;
89c4a3a6 sago007 2008-08-29 14:32 53
}
89c4a3a6 sago007 2008-08-29 14:32 54
89c4a3a6 sago007 2008-08-29 14:32 55
void Replay::setFrameSecTo(Uint32 miliseconds, boardPackage bp)
89c4a3a6 sago007 2008-08-29 14:32 56
{
89c4a3a6 sago007 2008-08-29 14:32 57
    if (isLoaded)
89c4a3a6 sago007 2008-08-29 14:32 58
        return;
89c4a3a6 sago007 2008-08-29 14:32 59
    int framesToSet = (miliseconds*FRAMESPERSEC)/1000;
89c4a3a6 sago007 2008-08-29 14:32 60
    for (int i=nrOfFrames;i<framesToSet;i++)
89c4a3a6 sago007 2008-08-29 14:32 61
    {
89c4a3a6 sago007 2008-08-29 14:32 62
        bps.push_back(bp);
89c4a3a6 sago007 2008-08-29 14:32 63
    }
89c4a3a6 sago007 2008-08-29 14:32 64
    nrOfFrames=framesToSet;
89c4a3a6 sago007 2008-08-29 14:32 65
}
89c4a3a6 sago007 2008-08-29 14:32 66
89c4a3a6 sago007 2008-08-29 14:32 67
void Replay::setFinalFrame(boardPackage bp,int theStatus)
89c4a3a6 sago007 2008-08-29 14:32 68
{
89c4a3a6 sago007 2008-08-29 14:32 69
    if (isLoaded)
89c4a3a6 sago007 2008-08-29 14:32 70
        return;
89c4a3a6 sago007 2008-08-29 14:32 71
    finalPack = bp;
89c4a3a6 sago007 2008-08-29 14:32 72
    switch (theStatus)
89c4a3a6 sago007 2008-08-29 14:32 73
    {
89c4a3a6 sago007 2008-08-29 14:32 74
    case 1:
89c4a3a6 sago007 2008-08-29 14:32 75
        theResult = winner;
89c4a3a6 sago007 2008-08-29 14:32 76
        break;
89c4a3a6 sago007 2008-08-29 14:32 77
    case 2:
89c4a3a6 sago007 2008-08-29 14:32 78
        theResult = looser;
89c4a3a6 sago007 2008-08-29 14:32 79
        break;
89c4a3a6 sago007 2008-08-29 14:32 80
    case 3:
89c4a3a6 sago007 2008-08-29 14:32 81
        theResult = draw;
89c4a3a6 sago007 2008-08-29 14:32 82
        break;
89c4a3a6 sago007 2008-08-29 14:32 83
    default:
89c4a3a6 sago007 2008-08-29 14:32 84
        theResult = gameOver;
89c4a3a6 sago007 2008-08-29 14:32 85
    };
89c4a3a6 sago007 2008-08-29 14:32 86
89c4a3a6 sago007 2008-08-29 14:32 87
}
89c4a3a6 sago007 2008-08-29 14:32 88
89c4a3a6 sago007 2008-08-29 14:32 89
//Returns the frame to the current time, if time too high the final frame is returned
89c4a3a6 sago007 2008-08-29 14:32 90
boardPackage Replay::getFrameSec(Uint32 miliseconds)
89c4a3a6 sago007 2008-08-29 14:32 91
{
89c4a3a6 sago007 2008-08-29 14:32 92
    int frameToGet = (miliseconds*FRAMESPERSEC)/1000;
89c4a3a6 sago007 2008-08-29 14:32 93
    if (!(frameToGet<nrOfFrames))
89c4a3a6 sago007 2008-08-29 14:32 94
        return getFinalFrame();
89c4a3a6 sago007 2008-08-29 14:32 95
    return bps.at(frameToGet);
89c4a3a6 sago007 2008-08-29 14:32 96
}
89c4a3a6 sago007 2008-08-29 14:32 97
89c4a3a6 sago007 2008-08-29 14:32 98
bool Replay::isFinnished(Uint32 miliseconds)
89c4a3a6 sago007 2008-08-29 14:32 99
{
89c4a3a6 sago007 2008-08-29 14:32 100
    int frameToGet = (miliseconds*FRAMESPERSEC)/1000;
89c4a3a6 sago007 2008-08-29 14:32 101
    if (!(frameToGet<nrOfFrames))
89c4a3a6 sago007 2008-08-29 14:32 102
        return true;
89c4a3a6 sago007 2008-08-29 14:32 103
    return false;
89c4a3a6 sago007 2008-08-29 14:32 104
}
89c4a3a6 sago007 2008-08-29 14:32 105
89c4a3a6 sago007 2008-08-29 14:32 106
boardPackage Replay::getFinalFrame()
89c4a3a6 sago007 2008-08-29 14:32 107
{
89c4a3a6 sago007 2008-08-29 14:32 108
    return finalPack;
89c4a3a6 sago007 2008-08-29 14:32 109
}
89c4a3a6 sago007 2008-08-29 14:32 110
89c4a3a6 sago007 2008-08-29 14:32 111
int Replay::getFinalStatus()
89c4a3a6 sago007 2008-08-29 14:32 112
{
89c4a3a6 sago007 2008-08-29 14:32 113
    return theResult;
89c4a3a6 sago007 2008-08-29 14:32 114
}
89c4a3a6 sago007 2008-08-29 14:32 115
89c4a3a6 sago007 2008-08-29 14:32 116
89c4a3a6 sago007 2008-08-29 14:32 117
89c4a3a6 sago007 2008-08-29 14:32 118
bool Replay::saveReplay(string filename)
89c4a3a6 sago007 2008-08-29 14:32 119
{
e03ae476 sago007 2009-03-06 22:49 120
    //Saving as fileversion 3
e03ae476 sago007 2009-03-06 22:49 121
    cout << "Saving as version 3 save file" << endl;
89c4a3a6 sago007 2008-08-29 14:32 122
    ofstream saveFile;
89c4a3a6 sago007 2008-08-29 14:32 123
    saveFile.open(filename.c_str(),ios::binary|ios::trunc);
89c4a3a6 sago007 2008-08-29 14:32 124
    if (saveFile)
89c4a3a6 sago007 2008-08-29 14:32 125
    {
e03ae476 sago007 2009-03-06 22:49 126
        Uint32 version = 3;
89c4a3a6 sago007 2008-08-29 14:32 127
        boardPackage bp;
89c4a3a6 sago007 2008-08-29 14:32 128
        saveFile.write(reinterpret_cast<char*>(&version),sizeof(Uint32)); //Fileversion
89c4a3a6 sago007 2008-08-29 14:32 129
        Uint8 nrOfReplays = 1;
89c4a3a6 sago007 2008-08-29 14:32 130
        saveFile.write(reinterpret_cast<char*>(&nrOfReplays),sizeof(Uint8)); //nrOfReplaysIn File
89c4a3a6 sago007 2008-08-29 14:32 131
        saveFile.write(reinterpret_cast<char*>(&nrOfFrames),sizeof(Uint32)); //Nr of frames in file
89c4a3a6 sago007 2008-08-29 14:32 132
        for (int i=0; i<nrOfFrames && i<bps.size();i++)
89c4a3a6 sago007 2008-08-29 14:32 133
        { //Writing frames
89c4a3a6 sago007 2008-08-29 14:32 134
            bp = bps.at(i);
e03ae476 sago007 2009-03-06 22:49 135
            saveFile.write(reinterpret_cast<char*>(&bp),sizeof(bp));
89c4a3a6 sago007 2008-08-29 14:32 136
            
89c4a3a6 sago007 2008-08-29 14:32 137
        }
89c4a3a6 sago007 2008-08-29 14:32 138
        saveFile.write(reinterpret_cast<char*>(&finalPack),sizeof(finalPack));
c96f480e sago007 2009-03-28 18:59 139
        saveFile.write(reinterpret_cast<char*>(&theResult),sizeof(theResult));
c96f480e sago007 2009-03-28 18:59 140
        saveFile.write(reinterpret_cast<char*>(&name),sizeof(name));
89c4a3a6 sago007 2008-08-29 14:32 141
        saveFile.close();
89c4a3a6 sago007 2008-08-29 14:32 142
        return true;
89c4a3a6 sago007 2008-08-29 14:32 143
    }
89c4a3a6 sago007 2008-08-29 14:32 144
    else
89c4a3a6 sago007 2008-08-29 14:32 145
    {
89c4a3a6 sago007 2008-08-29 14:32 146
        return false;
89c4a3a6 sago007 2008-08-29 14:32 147
    }
89c4a3a6 sago007 2008-08-29 14:32 148
}
89c4a3a6 sago007 2008-08-29 14:32 149
89c4a3a6 sago007 2008-08-29 14:32 150
bool Replay::saveReplay(string filename,Replay p2)
89c4a3a6 sago007 2008-08-29 14:32 151
{
e03ae476 sago007 2009-03-06 22:49 152
    //Saving as fileversion 3
e03ae476 sago007 2009-03-06 22:49 153
    cout << "Saving as version 3 save file (2 players)" << endl;
89c4a3a6 sago007 2008-08-29 14:32 154
    ofstream saveFile;
89c4a3a6 sago007 2008-08-29 14:32 155
    saveFile.open(filename.c_str(),ios::binary|ios::trunc);
89c4a3a6 sago007 2008-08-29 14:32 156
    if (saveFile)
89c4a3a6 sago007 2008-08-29 14:32 157
    {
e03ae476 sago007 2009-03-06 22:49 158
        Uint32 version = 3;
89c4a3a6 sago007 2008-08-29 14:32 159
        boardPackage bp;
89c4a3a6 sago007 2008-08-29 14:32 160
        saveFile.write(reinterpret_cast<char*>(&version),sizeof(Uint32)); //Fileversion
89c4a3a6 sago007 2008-08-29 14:32 161
        Uint8 nrOfReplays = 2;
89c4a3a6 sago007 2008-08-29 14:32 162
        saveFile.write(reinterpret_cast<char*>(&nrOfReplays),sizeof(Uint8)); //nrOfReplaysIn File
89c4a3a6 sago007 2008-08-29 14:32 163
        saveFile.write(reinterpret_cast<char*>(&nrOfFrames),sizeof(Uint32)); //Nr of frames in file
89c4a3a6 sago007 2008-08-29 14:32 164
        for (int i=0; i<nrOfFrames && i<bps.size();i++)
89c4a3a6 sago007 2008-08-29 14:32 165
        { //Writing frames
89c4a3a6 sago007 2008-08-29 14:32 166
            bp = bps.at(i);
e03ae476 sago007 2009-03-06 22:49 167
            saveFile.write(reinterpret_cast<char*>(&bp),sizeof(bp));
89c4a3a6 sago007 2008-08-29 14:32 168
        }
89c4a3a6 sago007 2008-08-29 14:32 169
        saveFile.write(reinterpret_cast<char*>(&finalPack),sizeof(finalPack));
c96f480e sago007 2009-03-28 18:59 170
        saveFile.write(reinterpret_cast<char*>(&theResult),sizeof(theResult));
c96f480e sago007 2009-03-28 18:59 171
        saveFile.write(reinterpret_cast<char*>(&name),sizeof(name));
89c4a3a6 sago007 2008-08-29 14:32 172
        ///Player 2 starts here!!!!!!!!!!!!!!!!!!!!!!
89c4a3a6 sago007 2008-08-29 14:32 173
        saveFile.write(reinterpret_cast<char*>(&p2.nrOfFrames),sizeof(Uint32)); //Nr of frames in file
89c4a3a6 sago007 2008-08-29 14:32 174
        for (int i=0; (i<p2.nrOfFrames)&& i<p2.bps.size();i++)
89c4a3a6 sago007 2008-08-29 14:32 175
        { //Writing frames
89c4a3a6 sago007 2008-08-29 14:32 176
            bp = p2.bps.at(i);
e03ae476 sago007 2009-03-06 22:49 177
            saveFile.write(reinterpret_cast<char*>(&bp),sizeof(bp));
89c4a3a6 sago007 2008-08-29 14:32 178
        }
89c4a3a6 sago007 2008-08-29 14:32 179
        saveFile.write(reinterpret_cast<char*>(&p2.finalPack),sizeof(finalPack));
c96f480e sago007 2009-03-28 18:59 180
        saveFile.write(reinterpret_cast<char*>(&p2.theResult),sizeof(theResult));
c96f480e sago007 2009-03-28 18:59 181
        saveFile.write(reinterpret_cast<char*>(&p2.name),sizeof(name));
89c4a3a6 sago007 2008-08-29 14:32 182
        saveFile.close();
89c4a3a6 sago007 2008-08-29 14:32 183
        return true;
89c4a3a6 sago007 2008-08-29 14:32 184
    }
89c4a3a6 sago007 2008-08-29 14:32 185
    else
89c4a3a6 sago007 2008-08-29 14:32 186
    {
89c4a3a6 sago007 2008-08-29 14:32 187
        return false;
89c4a3a6 sago007 2008-08-29 14:32 188
    }
89c4a3a6 sago007 2008-08-29 14:32 189
}
89c4a3a6 sago007 2008-08-29 14:32 190
89c4a3a6 sago007 2008-08-29 14:32 191
bool Replay::loadReplay(string filename)
89c4a3a6 sago007 2008-08-29 14:32 192
{
89c4a3a6 sago007 2008-08-29 14:32 193
    isLoaded = true;
89c4a3a6 sago007 2008-08-29 14:32 194
    ifstream loadFile;
89c4a3a6 sago007 2008-08-29 14:32 195
    loadFile.open(filename.c_str(),ios::binary);
89c4a3a6 sago007 2008-08-29 14:32 196
    if (loadFile)
89c4a3a6 sago007 2008-08-29 14:32 197
    {
89c4a3a6 sago007 2008-08-29 14:32 198
        Uint32 version;
89c4a3a6 sago007 2008-08-29 14:32 199
        loadFile.read(reinterpret_cast<char*>(&version),sizeof(Uint32));
89c4a3a6 sago007 2008-08-29 14:32 200
        switch (version)
89c4a3a6 sago007 2008-08-29 14:32 201
        {
e03ae476 sago007 2009-03-06 22:49 202
        case 3:
e03ae476 sago007 2009-03-06 22:49 203
            cout << "Loading a version 3 save game" << endl;
89c4a3a6 sago007 2008-08-29 14:32 204
            Uint8 nrOfPlayers;
89c4a3a6 sago007 2008-08-29 14:32 205
            boardPackage bp;
89c4a3a6 sago007 2008-08-29 14:32 206
            loadFile.read(reinterpret_cast<char*>(&nrOfPlayers),sizeof(Uint8));
89c4a3a6 sago007 2008-08-29 14:32 207
            loadFile.read(reinterpret_cast<char*>(&nrOfFrames),sizeof(Uint32));
89c4a3a6 sago007 2008-08-29 14:32 208
            bps.clear();
89c4a3a6 sago007 2008-08-29 14:32 209
            for (int i=0; (i<nrOfFrames);i++)
89c4a3a6 sago007 2008-08-29 14:32 210
            {
e03ae476 sago007 2009-03-06 22:49 211
                loadFile.read(reinterpret_cast<char*>(&bp),sizeof(bp));
89c4a3a6 sago007 2008-08-29 14:32 212
                bps.push_back(bp);
89c4a3a6 sago007 2008-08-29 14:32 213
            }
89c4a3a6 sago007 2008-08-29 14:32 214
            loadFile.read(reinterpret_cast<char*>(&finalPack),sizeof(finalPack));
c96f480e sago007 2009-03-28 18:59 215
            loadFile.read(reinterpret_cast<char*>(&theResult),sizeof(theResult));
c96f480e sago007 2009-03-28 18:59 216
            loadFile.read(reinterpret_cast<char*>(&name),sizeof(name));
89c4a3a6 sago007 2008-08-29 14:32 217
            break;
89c4a3a6 sago007 2008-08-29 14:32 218
        default:
89c4a3a6 sago007 2008-08-29 14:32 219
            cout << "Unknown version" << endl;
89c4a3a6 sago007 2008-08-29 14:32 220
            return false;
89c4a3a6 sago007 2008-08-29 14:32 221
        };
89c4a3a6 sago007 2008-08-29 14:32 222
        loadFile.close();
89c4a3a6 sago007 2008-08-29 14:32 223
        cout << "Loaded 1 player" << endl;
89c4a3a6 sago007 2008-08-29 14:32 224
    }
89c4a3a6 sago007 2008-08-29 14:32 225
    else
89c4a3a6 sago007 2008-08-29 14:32 226
    {
89c4a3a6 sago007 2008-08-29 14:32 227
        cout << "File not found or couldn't open: " << filename << endl;
89c4a3a6 sago007 2008-08-29 14:32 228
        return false;
89c4a3a6 sago007 2008-08-29 14:32 229
    }
89c4a3a6 sago007 2008-08-29 14:32 230
89c4a3a6 sago007 2008-08-29 14:32 231
}
89c4a3a6 sago007 2008-08-29 14:32 232
89c4a3a6 sago007 2008-08-29 14:32 233
bool Replay::loadReplay2(string filename)
89c4a3a6 sago007 2008-08-29 14:32 234
{
89c4a3a6 sago007 2008-08-29 14:32 235
    isLoaded = true;
89c4a3a6 sago007 2008-08-29 14:32 236
    ifstream loadFile;
89c4a3a6 sago007 2008-08-29 14:32 237
    loadFile.open(filename.c_str(),ios::binary);
89c4a3a6 sago007 2008-08-29 14:32 238
    if (loadFile)
89c4a3a6 sago007 2008-08-29 14:32 239
    {
89c4a3a6 sago007 2008-08-29 14:32 240
        Uint32 version;
89c4a3a6 sago007 2008-08-29 14:32 241
        loadFile.read(reinterpret_cast<char*>(&version),sizeof(Uint32));
89c4a3a6 sago007 2008-08-29 14:32 242
        switch (version)
89c4a3a6 sago007 2008-08-29 14:32 243
        {
e03ae476 sago007 2009-03-06 22:49 244
        case 3:
89c4a3a6 sago007 2008-08-29 14:32 245
            Uint8 nrOfPlayers;
89c4a3a6 sago007 2008-08-29 14:32 246
            boardPackage bp;
89c4a3a6 sago007 2008-08-29 14:32 247
            loadFile.read(reinterpret_cast<char*>(&nrOfPlayers),sizeof(Uint8));
89c4a3a6 sago007 2008-08-29 14:32 248
            if (nrOfPlayers<2)
89c4a3a6 sago007 2008-08-29 14:32 249
            {
89c4a3a6 sago007 2008-08-29 14:32 250
                loadFile.close();
89c4a3a6 sago007 2008-08-29 14:32 251
                cout << "Only one player in replay" << endl;
89c4a3a6 sago007 2008-08-29 14:32 252
                return false;
89c4a3a6 sago007 2008-08-29 14:32 253
            }
ce6b7121 sago007 2009-03-07 14:40 254
            cout << "loading player 2" << endl;
89c4a3a6 sago007 2008-08-29 14:32 255
            loadFile.read(reinterpret_cast<char*>(&nrOfFrames),sizeof(Uint32));
89c4a3a6 sago007 2008-08-29 14:32 256
            for (int i=0; (i<nrOfFrames);i++)
89c4a3a6 sago007 2008-08-29 14:32 257
            {
e03ae476 sago007 2009-03-06 22:49 258
                loadFile.read(reinterpret_cast<char*>(&bp),sizeof(bp));
e03ae476 sago007 2009-03-06 22:49 259
                //bps.push_back(bp); We have already read player 1 with another function
89c4a3a6 sago007 2008-08-29 14:32 260
            }
89c4a3a6 sago007 2008-08-29 14:32 261
            loadFile.read(reinterpret_cast<char*>(&finalPack),sizeof(finalPack));
c96f480e sago007 2009-03-28 18:59 262
            loadFile.read(reinterpret_cast<char*>(&theResult),sizeof(theResult));
c96f480e sago007 2009-03-28 18:59 263
            loadFile.read(reinterpret_cast<char*>(&name),sizeof(name));
89c4a3a6 sago007 2008-08-29 14:32 264
            loadFile.read(reinterpret_cast<char*>(&nrOfFrames),sizeof(Uint32));
89c4a3a6 sago007 2008-08-29 14:32 265
            bps.reserve(nrOfFrames);
89c4a3a6 sago007 2008-08-29 14:32 266
            for (int i=0; (i<nrOfFrames);i++)
89c4a3a6 sago007 2008-08-29 14:32 267
            {
e03ae476 sago007 2009-03-06 22:49 268
                loadFile.read(reinterpret_cast<char*>(&bp),sizeof(bp));
89c4a3a6 sago007 2008-08-29 14:32 269
                bps.push_back(bp);
89c4a3a6 sago007 2008-08-29 14:32 270
            }
89c4a3a6 sago007 2008-08-29 14:32 271
            loadFile.read(reinterpret_cast<char*>(&finalPack),sizeof(finalPack));
c96f480e sago007 2009-03-28 18:59 272
            loadFile.read(reinterpret_cast<char*>(&theResult),sizeof(theResult));
c96f480e sago007 2009-03-28 18:59 273
            loadFile.read(reinterpret_cast<char*>(&name),sizeof(name));
89c4a3a6 sago007 2008-08-29 14:32 274
            break;
89c4a3a6 sago007 2008-08-29 14:32 275
        default:
89c4a3a6 sago007 2008-08-29 14:32 276
            cout << "Unknown version: " << version << endl;
89c4a3a6 sago007 2008-08-29 14:32 277
            return false;
89c4a3a6 sago007 2008-08-29 14:32 278
        };
89c4a3a6 sago007 2008-08-29 14:32 279
        loadFile.close();
89c4a3a6 sago007 2008-08-29 14:32 280
    }
89c4a3a6 sago007 2008-08-29 14:32 281
    else
89c4a3a6 sago007 2008-08-29 14:32 282
    {
89c4a3a6 sago007 2008-08-29 14:32 283
        cout << "File not found or couldn't open: " << filename << endl;
89c4a3a6 sago007 2008-08-29 14:32 284
        return false;
89c4a3a6 sago007 2008-08-29 14:32 285
    }
89c4a3a6 sago007 2008-08-29 14:32 286
89c4a3a6 sago007 2008-08-29 14:32 287
}
1970-01-01 00:00 288