git repos / blockattack-game

blame: source/code/common.cc

normal view · raw

89c4a3a6 sago007 2008-08-29 14:32 1
/*
89c4a3a6 sago007 2008-08-29 14:32 2
Block Attack - Rise of the Blocks, SDL game, besed on Nintendo's Tetris Attack
89c4a3a6 sago007 2008-08-29 14:32 3
Copyright (C) 2008 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�vehjvej 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
    http://blockattack.sf.net
89c4a3a6 sago007 2008-08-29 14:32 25
*/
89c4a3a6 sago007 2008-08-29 14:32 26
89c4a3a6 sago007 2008-08-29 14:32 27
#include "common.h"
89c4a3a6 sago007 2008-08-29 14:32 28
89c4a3a6 sago007 2008-08-29 14:32 29
#ifdef WIN32
89c4a3a6 sago007 2008-08-29 14:32 30
//Returns path to "my Documents" in windows:
89c4a3a6 sago007 2008-08-29 14:32 31
string getMyDocumentsPath()
89c4a3a6 sago007 2008-08-29 14:32 32
{
89c4a3a6 sago007 2008-08-29 14:32 33
    TCHAR pszPath[MAX_PATH];
89c4a3a6 sago007 2008-08-29 14:32 34
    if (SUCCEEDED(SHGetSpecialFolderPath(NULL, pszPath, CSIDL_PERSONAL, FALSE))) {
89c4a3a6 sago007 2008-08-29 14:32 35
        // pszPath is now the path that you want
89c4a3a6 sago007 2008-08-29 14:32 36
#ifdef DEBUG
89c4a3a6 sago007 2008-08-29 14:32 37
        cout << "MyDocuments Located: " << pszPath << endl;
89c4a3a6 sago007 2008-08-29 14:32 38
#endif
89c4a3a6 sago007 2008-08-29 14:32 39
        string theResult= pszPath;
89c4a3a6 sago007 2008-08-29 14:32 40
        return theResult;
89c4a3a6 sago007 2008-08-29 14:32 41
    }
89c4a3a6 sago007 2008-08-29 14:32 42
    else
89c4a3a6 sago007 2008-08-29 14:32 43
    {
89c4a3a6 sago007 2008-08-29 14:32 44
        cout << "Warning: My Documents not found!" << endl;
89c4a3a6 sago007 2008-08-29 14:32 45
        string theResult ="";
89c4a3a6 sago007 2008-08-29 14:32 46
        return theResult;
89c4a3a6 sago007 2008-08-29 14:32 47
    }
89c4a3a6 sago007 2008-08-29 14:32 48
}
89c4a3a6 sago007 2008-08-29 14:32 49
89c4a3a6 sago007 2008-08-29 14:32 50
#endif
89c4a3a6 sago007 2008-08-29 14:32 51
89c4a3a6 sago007 2008-08-29 14:32 52
string getPathToSaveFiles()
89c4a3a6 sago007 2008-08-29 14:32 53
{
89c4a3a6 sago007 2008-08-29 14:32 54
#ifdef __unix__
89c4a3a6 sago007 2008-08-29 14:32 55
    return (string)getenv("HOME")+(string)"/.gamesaves/"+GAMENAME;
89c4a3a6 sago007 2008-08-29 14:32 56
#elif WIN32
89c4a3a6 sago007 2008-08-29 14:32 57
    return getMyDocumentsPath()+(string)"/My Games/"+GAMENAME;
89c4a3a6 sago007 2008-08-29 14:32 58
#else
89c4a3a6 sago007 2008-08-29 14:32 59
    return ".";
89c4a3a6 sago007 2008-08-29 14:32 60
#endif
89c4a3a6 sago007 2008-08-29 14:32 61
}
89c4a3a6 sago007 2008-08-29 14:32 62
89c4a3a6 sago007 2008-08-29 14:32 63
89c4a3a6 sago007 2008-08-29 14:32 64
89c4a3a6 sago007 2008-08-29 14:32 65
commonTime getTotalTime()
89c4a3a6 sago007 2008-08-29 14:32 66
{
89c4a3a6 sago007 2008-08-29 14:32 67
    commonTime ct;
89c4a3a6 sago007 2008-08-29 14:32 68
    string filename = getPathToSaveFiles()+"/totalTime";
89c4a3a6 sago007 2008-08-29 14:32 69
    ifstream inFile(filename.c_str());
89c4a3a6 sago007 2008-08-29 14:32 70
    if(inFile)
89c4a3a6 sago007 2008-08-29 14:32 71
    {
89c4a3a6 sago007 2008-08-29 14:32 72
        inFile >> ct.days;
89c4a3a6 sago007 2008-08-29 14:32 73
        inFile >> ct.hours;
89c4a3a6 sago007 2008-08-29 14:32 74
        inFile >> ct.minutes;
89c4a3a6 sago007 2008-08-29 14:32 75
        inFile >> ct.seconds;
89c4a3a6 sago007 2008-08-29 14:32 76
        inFile.close();
89c4a3a6 sago007 2008-08-29 14:32 77
    }
89c4a3a6 sago007 2008-08-29 14:32 78
    else
89c4a3a6 sago007 2008-08-29 14:32 79
    {
89c4a3a6 sago007 2008-08-29 14:32 80
        ct.days = 0;
89c4a3a6 sago007 2008-08-29 14:32 81
        ct.hours = 0;
89c4a3a6 sago007 2008-08-29 14:32 82
        ct.minutes = 0;
89c4a3a6 sago007 2008-08-29 14:32 83
        ct.seconds = 0;
89c4a3a6 sago007 2008-08-29 14:32 84
    }
89c4a3a6 sago007 2008-08-29 14:32 85
    return ct;
89c4a3a6 sago007 2008-08-29 14:32 86
}
89c4a3a6 sago007 2008-08-29 14:32 87
89c4a3a6 sago007 2008-08-29 14:32 88
commonTime addTotalTime(commonTime toAdd)
89c4a3a6 sago007 2008-08-29 14:32 89
{
89c4a3a6 sago007 2008-08-29 14:32 90
    commonTime ct = getTotalTime();
89c4a3a6 sago007 2008-08-29 14:32 91
    
89c4a3a6 sago007 2008-08-29 14:32 92
    ct.seconds +=toAdd.seconds;
89c4a3a6 sago007 2008-08-29 14:32 93
    ct.minutes +=ct.seconds/60;
89c4a3a6 sago007 2008-08-29 14:32 94
    ct.seconds = ct.seconds%60;
89c4a3a6 sago007 2008-08-29 14:32 95
    
89c4a3a6 sago007 2008-08-29 14:32 96
    ct.minutes += toAdd.minutes;
89c4a3a6 sago007 2008-08-29 14:32 97
    ct.hours += ct.minutes/60;
89c4a3a6 sago007 2008-08-29 14:32 98
    ct.minutes = ct.minutes%60;
89c4a3a6 sago007 2008-08-29 14:32 99
    
89c4a3a6 sago007 2008-08-29 14:32 100
    ct.hours += toAdd.hours;
89c4a3a6 sago007 2008-08-29 14:32 101
    ct.days += ct.hours/24;
ddfaa92f sago007 2008-09-06 22:44 102
    ct.hours = ct.hours%24;
89c4a3a6 sago007 2008-08-29 14:32 103
    
89c4a3a6 sago007 2008-08-29 14:32 104
    ct.days += toAdd.days;
89c4a3a6 sago007 2008-08-29 14:32 105
    
89c4a3a6 sago007 2008-08-29 14:32 106
    string filename = getPathToSaveFiles()+"/totalTime";
89c4a3a6 sago007 2008-08-29 14:32 107
    ofstream outFile(filename.c_str(),ios::trunc);
89c4a3a6 sago007 2008-08-29 14:32 108
    if(outFile)
89c4a3a6 sago007 2008-08-29 14:32 109
    {
89c4a3a6 sago007 2008-08-29 14:32 110
        outFile << ct.days << endl;
89c4a3a6 sago007 2008-08-29 14:32 111
        outFile << ct.hours << endl;
89c4a3a6 sago007 2008-08-29 14:32 112
        outFile << ct.minutes << endl;
89c4a3a6 sago007 2008-08-29 14:32 113
        outFile << ct.seconds << endl;
89c4a3a6 sago007 2008-08-29 14:32 114
        outFile.close();
89c4a3a6 sago007 2008-08-29 14:32 115
    }
89c4a3a6 sago007 2008-08-29 14:32 116
    else
89c4a3a6 sago007 2008-08-29 14:32 117
        cout << "Error writing total time to: " << filename << endl;
89c4a3a6 sago007 2008-08-29 14:32 118
    return ct;
89c4a3a6 sago007 2008-08-29 14:32 119
}
1970-01-01 00:00 120