git repos / blockattack-game

blame: source/code/editor/editorMain.cpp

normal view · raw

89c4a3a6 sago007 2008-08-29 14:32 1
/*
89c4a3a6 sago007 2008-08-29 14:32 2
editorMain.cpp
89c4a3a6 sago007 2008-08-29 14:32 3
Copyright (C) 2007 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
1f61db96 sago007 2010-11-15 20:12 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
#include "editorMain.hpp"
89c4a3a6 sago007 2008-08-29 14:32 27
89c4a3a6 sago007 2008-08-29 14:32 28
EditorInterface ei;
89c4a3a6 sago007 2008-08-29 14:32 29
89c4a3a6 sago007 2008-08-29 14:32 30
//How to write!
89c4a3a6 sago007 2008-08-29 14:32 31
inline void DrawIMG(SDL_Surface *img, SDL_Surface *target, int x, int y)
89c4a3a6 sago007 2008-08-29 14:32 32
{
89c4a3a6 sago007 2008-08-29 14:32 33
  SDL_Rect dest;
89c4a3a6 sago007 2008-08-29 14:32 34
  dest.x = x;
89c4a3a6 sago007 2008-08-29 14:32 35
  dest.y = y;
89c4a3a6 sago007 2008-08-29 14:32 36
  SDL_BlitSurface(img, NULL, target, &dest);
89c4a3a6 sago007 2008-08-29 14:32 37
}
89c4a3a6 sago007 2008-08-29 14:32 38
89c4a3a6 sago007 2008-08-29 14:32 39
class createFileButton : public aButton 
89c4a3a6 sago007 2008-08-29 14:32 40
{
89c4a3a6 sago007 2008-08-29 14:32 41
        
89c4a3a6 sago007 2008-08-29 14:32 42
    public:    
89c4a3a6 sago007 2008-08-29 14:32 43
    createFileButton()
89c4a3a6 sago007 2008-08-29 14:32 44
    {
89c4a3a6 sago007 2008-08-29 14:32 45
        aButton::aButton(100,100,bCreateFile);
89c4a3a6 sago007 2008-08-29 14:32 46
    }
89c4a3a6 sago007 2008-08-29 14:32 47
    
89c4a3a6 sago007 2008-08-29 14:32 48
    void click(int x,int y)
89c4a3a6 sago007 2008-08-29 14:32 49
    {
89c4a3a6 sago007 2008-08-29 14:32 50
        if(clicked(x,y))
89c4a3a6 sago007 2008-08-29 14:32 51
        {
89c4a3a6 sago007 2008-08-29 14:32 52
            ei.newBoard();  
89c4a3a6 sago007 2008-08-29 14:32 53
        }
89c4a3a6 sago007 2008-08-29 14:32 54
    }
89c4a3a6 sago007 2008-08-29 14:32 55
};
89c4a3a6 sago007 2008-08-29 14:32 56
89c4a3a6 sago007 2008-08-29 14:32 57
class deletePuzzleButton : public aButton 
89c4a3a6 sago007 2008-08-29 14:32 58
{
89c4a3a6 sago007 2008-08-29 14:32 59
        
89c4a3a6 sago007 2008-08-29 14:32 60
    public:    
89c4a3a6 sago007 2008-08-29 14:32 61
    deletePuzzleButton()
89c4a3a6 sago007 2008-08-29 14:32 62
    {
89c4a3a6 sago007 2008-08-29 14:32 63
        aButton::aButton(240,100,bDeletePuzzle);
89c4a3a6 sago007 2008-08-29 14:32 64
    }
89c4a3a6 sago007 2008-08-29 14:32 65
    
89c4a3a6 sago007 2008-08-29 14:32 66
    void click(int x,int y)
89c4a3a6 sago007 2008-08-29 14:32 67
    {
89c4a3a6 sago007 2008-08-29 14:32 68
        if(clicked(x,y))
89c4a3a6 sago007 2008-08-29 14:32 69
        {
89c4a3a6 sago007 2008-08-29 14:32 70
            ei.deleteBoard();
89c4a3a6 sago007 2008-08-29 14:32 71
        }
89c4a3a6 sago007 2008-08-29 14:32 72
    }
89c4a3a6 sago007 2008-08-29 14:32 73
};
89c4a3a6 sago007 2008-08-29 14:32 74
89c4a3a6 sago007 2008-08-29 14:32 75
class loadFileButton : public aButton 
89c4a3a6 sago007 2008-08-29 14:32 76
{
89c4a3a6 sago007 2008-08-29 14:32 77
        
89c4a3a6 sago007 2008-08-29 14:32 78
    public:    
89c4a3a6 sago007 2008-08-29 14:32 79
    loadFileButton()
89c4a3a6 sago007 2008-08-29 14:32 80
    {
89c4a3a6 sago007 2008-08-29 14:32 81
        aButton::aButton(240,100,bLoadFile);
89c4a3a6 sago007 2008-08-29 14:32 82
    }
89c4a3a6 sago007 2008-08-29 14:32 83
    
89c4a3a6 sago007 2008-08-29 14:32 84
    void click(int x,int y)
89c4a3a6 sago007 2008-08-29 14:32 85
    {
89c4a3a6 sago007 2008-08-29 14:32 86
        if(clicked(x,y))
89c4a3a6 sago007 2008-08-29 14:32 87
        {
89c4a3a6 sago007 2008-08-29 14:32 88
            //Thing to load file!
89c4a3a6 sago007 2008-08-29 14:32 89
        }
89c4a3a6 sago007 2008-08-29 14:32 90
    }
89c4a3a6 sago007 2008-08-29 14:32 91
};
89c4a3a6 sago007 2008-08-29 14:32 92
89c4a3a6 sago007 2008-08-29 14:32 93
class moveBackButton : public aButton 
89c4a3a6 sago007 2008-08-29 14:32 94
{
89c4a3a6 sago007 2008-08-29 14:32 95
        
89c4a3a6 sago007 2008-08-29 14:32 96
    public:    
89c4a3a6 sago007 2008-08-29 14:32 97
    moveBackButton()
89c4a3a6 sago007 2008-08-29 14:32 98
    {
89c4a3a6 sago007 2008-08-29 14:32 99
        aButton::aButton(240,100,bMoveBack);
89c4a3a6 sago007 2008-08-29 14:32 100
    }
89c4a3a6 sago007 2008-08-29 14:32 101
    
89c4a3a6 sago007 2008-08-29 14:32 102
    void click(int x,int y)
89c4a3a6 sago007 2008-08-29 14:32 103
    {
89c4a3a6 sago007 2008-08-29 14:32 104
        if(clicked(x,y))
89c4a3a6 sago007 2008-08-29 14:32 105
        {
89c4a3a6 sago007 2008-08-29 14:32 106
            ei.moveBoardBack();
89c4a3a6 sago007 2008-08-29 14:32 107
        }
89c4a3a6 sago007 2008-08-29 14:32 108
    }
89c4a3a6 sago007 2008-08-29 14:32 109
};
89c4a3a6 sago007 2008-08-29 14:32 110
89c4a3a6 sago007 2008-08-29 14:32 111
class moveDownButton : public aButton 
89c4a3a6 sago007 2008-08-29 14:32 112
{
89c4a3a6 sago007 2008-08-29 14:32 113
        
89c4a3a6 sago007 2008-08-29 14:32 114
    public:    
89c4a3a6 sago007 2008-08-29 14:32 115
    moveDownButton()
89c4a3a6 sago007 2008-08-29 14:32 116
    {
89c4a3a6 sago007 2008-08-29 14:32 117
        aButton::aButton(240,100,bMoveDown);
89c4a3a6 sago007 2008-08-29 14:32 118
    }
89c4a3a6 sago007 2008-08-29 14:32 119
    
89c4a3a6 sago007 2008-08-29 14:32 120
    void click(int x,int y)
89c4a3a6 sago007 2008-08-29 14:32 121
    {
89c4a3a6 sago007 2008-08-29 14:32 122
        if(clicked(x,y))
89c4a3a6 sago007 2008-08-29 14:32 123
        {
89c4a3a6 sago007 2008-08-29 14:32 124
            if(ei.getNumberOfMoves()>0)
89c4a3a6 sago007 2008-08-29 14:32 125
                ei.setNumberOfMoves(ei.getNumberOfMoves()-1);
89c4a3a6 sago007 2008-08-29 14:32 126
        }
89c4a3a6 sago007 2008-08-29 14:32 127
    }
89c4a3a6 sago007 2008-08-29 14:32 128
};
89c4a3a6 sago007 2008-08-29 14:32 129
89c4a3a6 sago007 2008-08-29 14:32 130
theEditor::theEditor()
89c4a3a6 sago007 2008-08-29 14:32 131
{
89c4a3a6 sago007 2008-08-29 14:32 132
    //This is the constructor
89c4a3a6 sago007 2008-08-29 14:32 133
    createFileButton cb;
89c4a3a6 sago007 2008-08-29 14:32 134
    buttons.push_back(cb);
89c4a3a6 sago007 2008-08-29 14:32 135
    deletePuzzleButton dpb;
89c4a3a6 sago007 2008-08-29 14:32 136
    buttons.push_back(dpb);
89c4a3a6 sago007 2008-08-29 14:32 137
}
89c4a3a6 sago007 2008-08-29 14:32 138
89c4a3a6 sago007 2008-08-29 14:32 139
void theEditor::drawButtons()
89c4a3a6 sago007 2008-08-29 14:32 140
{
89c4a3a6 sago007 2008-08-29 14:32 141
     for(int i = 0;i<buttons.size(); i++)
89c4a3a6 sago007 2008-08-29 14:32 142
     {
89c4a3a6 sago007 2008-08-29 14:32 143
             (&(buttons[i]))->draw();
89c4a3a6 sago007 2008-08-29 14:32 144
     }
89c4a3a6 sago007 2008-08-29 14:32 145
}
89c4a3a6 sago007 2008-08-29 14:32 146
89c4a3a6 sago007 2008-08-29 14:32 147
void aButton::click(int x, int y)
89c4a3a6 sago007 2008-08-29 14:32 148
{
89c4a3a6 sago007 2008-08-29 14:32 149
     cout << "Error: aButtons's click command was executed!" << endl;
89c4a3a6 sago007 2008-08-29 14:32 150
}
89c4a3a6 sago007 2008-08-29 14:32 151
89c4a3a6 sago007 2008-08-29 14:32 152
void aButton::draw()
89c4a3a6 sago007 2008-08-29 14:32 153
{
89c4a3a6 sago007 2008-08-29 14:32 154
     DrawIMG(label,screen,x,y);
89c4a3a6 sago007 2008-08-29 14:32 155
}
89c4a3a6 sago007 2008-08-29 14:32 156
89c4a3a6 sago007 2008-08-29 14:32 157
void theEditor::click(int x, int y)
89c4a3a6 sago007 2008-08-29 14:32 158
{
89c4a3a6 sago007 2008-08-29 14:32 159
     for(int i = 0;i<buttons.size(); i++)
89c4a3a6 sago007 2008-08-29 14:32 160
     {
89c4a3a6 sago007 2008-08-29 14:32 161
             (&(buttons[i]))->click(x,y);
89c4a3a6 sago007 2008-08-29 14:32 162
     }
89c4a3a6 sago007 2008-08-29 14:32 163
}     
1f61db96 sago007 2010-11-15 20:12 164
1f61db96 sago007 2010-11-15 20:12 165
int main() {
1f61db96 sago007 2010-11-15 20:12 166
    theEditor te;
1f61db96 sago007 2010-11-15 20:12 167
    te.drawButtons();
1f61db96 sago007 2010-11-15 20:12 168
}