git repos / blockattack-game

blame: source/code/editor/EditorInterface.cpp

normal view · raw

89c4a3a6 sago007 2008-08-29 14:32 1
/*
c53e6443 sago007 2012-04-17 11:04 2
===========================================================================
c53e6443 sago007 2012-04-17 11:04 3
blockattack - Block Attack - Rise of the Blocks
c53e6443 sago007 2012-04-17 11:04 4
Copyright (C) 2005-2012 Poul Sander
c53e6443 sago007 2012-04-17 11:04 5
c53e6443 sago007 2012-04-17 11:04 6
This program is free software: you can redistribute it and/or modify
c53e6443 sago007 2012-04-17 11:04 7
it under the terms of the GNU General Public License as published by
c53e6443 sago007 2012-04-17 11:04 8
the Free Software Foundation, either version 2 of the License, or
c53e6443 sago007 2012-04-17 11:04 9
(at your option) any later version.
c53e6443 sago007 2012-04-17 11:04 10
c53e6443 sago007 2012-04-17 11:04 11
This program is distributed in the hope that it will be useful,
c53e6443 sago007 2012-04-17 11:04 12
but WITHOUT ANY WARRANTY; without even the implied warranty of
c53e6443 sago007 2012-04-17 11:04 13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
c53e6443 sago007 2012-04-17 11:04 14
GNU General Public License for more details.
c53e6443 sago007 2012-04-17 11:04 15
c53e6443 sago007 2012-04-17 11:04 16
You should have received a copy of the GNU General Public License
c53e6443 sago007 2012-04-17 11:04 17
along with this program.  If not, see http://www.gnu.org/licenses/
c53e6443 sago007 2012-04-17 11:04 18
c53e6443 sago007 2012-04-17 11:04 19
Source information and contacts persons can be found at
c53e6443 sago007 2012-04-17 11:04 20
http://blockattack.sf.net
c53e6443 sago007 2012-04-17 11:04 21
===========================================================================
89c4a3a6 sago007 2008-08-29 14:32 22
*/
89c4a3a6 sago007 2008-08-29 14:32 23
89c4a3a6 sago007 2008-08-29 14:32 24
/*
c53e6443 sago007 2012-04-17 11:04 25
TODO: The way we test for
89c4a3a6 sago007 2008-08-29 14:32 26
89c4a3a6 sago007 2008-08-29 14:32 27
*/
89c4a3a6 sago007 2008-08-29 14:32 28
89c4a3a6 sago007 2008-08-29 14:32 29
#include "EditorInterface.hpp"
89c4a3a6 sago007 2008-08-29 14:32 30
89c4a3a6 sago007 2008-08-29 14:32 31
EditorInterface::EditorInterface()
89c4a3a6 sago007 2008-08-29 14:32 32
{
c53e6443 sago007 2012-04-17 11:04 33
	boardActive = -1;
c53e6443 sago007 2012-04-17 11:04 34
	saved = true;
c53e6443 sago007 2012-04-17 11:04 35
	fileSaved = true;
c53e6443 sago007 2012-04-17 11:04 36
	bh.isNull = true;
89c4a3a6 sago007 2008-08-29 14:32 37
}
89c4a3a6 sago007 2008-08-29 14:32 38
89c4a3a6 sago007 2008-08-29 14:32 39
void EditorInterface::getModel(int nr)
89c4a3a6 sago007 2008-08-29 14:32 40
{
c53e6443 sago007 2012-04-17 11:04 41
	tb = bh.getModel(nr);
c53e6443 sago007 2012-04-17 11:04 42
	saved = true;
c53e6443 sago007 2012-04-17 11:04 43
	boardActive = nr;
89c4a3a6 sago007 2008-08-29 14:32 44
}
89c4a3a6 sago007 2008-08-29 14:32 45
89c4a3a6 sago007 2008-08-29 14:32 46
bool EditorInterface::exists()
89c4a3a6 sago007 2008-08-29 14:32 47
{
c53e6443 sago007 2012-04-17 11:04 48
	if(bh.isNull)
c53e6443 sago007 2012-04-17 11:04 49
		return false;
c53e6443 sago007 2012-04-17 11:04 50
	else
c53e6443 sago007 2012-04-17 11:04 51
		return true;
89c4a3a6 sago007 2008-08-29 14:32 52
}
89c4a3a6 sago007 2008-08-29 14:32 53
89c4a3a6 sago007 2008-08-29 14:32 54
void EditorInterface::selectColor(int color)
89c4a3a6 sago007 2008-08-29 14:32 55
{
c53e6443 sago007 2012-04-17 11:04 56
	colorSelected = color;
89c4a3a6 sago007 2008-08-29 14:32 57
}
89c4a3a6 sago007 2008-08-29 14:32 58
89c4a3a6 sago007 2008-08-29 14:32 59
int EditorInterface::getSelectedColor()
89c4a3a6 sago007 2008-08-29 14:32 60
{
c53e6443 sago007 2012-04-17 11:04 61
	return colorSelected;
89c4a3a6 sago007 2008-08-29 14:32 62
}
89c4a3a6 sago007 2008-08-29 14:32 63
89c4a3a6 sago007 2008-08-29 14:32 64
void EditorInterface::drawOnModel(int x, int y)
89c4a3a6 sago007 2008-08-29 14:32 65
{
c53e6443 sago007 2012-04-17 11:04 66
	if(boardActive!=-1)
89c4a3a6 sago007 2008-08-29 14:32 67
	{
89c4a3a6 sago007 2008-08-29 14:32 68
		if(colorSelected<7)  //Ordinary thing
c53e6443 sago007 2012-04-17 11:04 69
			tb.setBrick(x,y,colorSelected);
89c4a3a6 sago007 2008-08-29 14:32 70
		if(colorSelected==7)
89c4a3a6 sago007 2008-08-29 14:32 71
			tb.moveUp(x,y);
89c4a3a6 sago007 2008-08-29 14:32 72
		if(colorSelected==8)
89c4a3a6 sago007 2008-08-29 14:32 73
			tb.moveDown(x,y);
89c4a3a6 sago007 2008-08-29 14:32 74
		saved = false;
89c4a3a6 sago007 2008-08-29 14:32 75
	}
89c4a3a6 sago007 2008-08-29 14:32 76
}
89c4a3a6 sago007 2008-08-29 14:32 77
89c4a3a6 sago007 2008-08-29 14:32 78
void EditorInterface::moveLeft()
89c4a3a6 sago007 2008-08-29 14:32 79
{
89c4a3a6 sago007 2008-08-29 14:32 80
	if(boardActive!=-1)
c53e6443 sago007 2012-04-17 11:04 81
		tb.moveLeft();
89c4a3a6 sago007 2008-08-29 14:32 82
	saved = false;
89c4a3a6 sago007 2008-08-29 14:32 83
}
89c4a3a6 sago007 2008-08-29 14:32 84
89c4a3a6 sago007 2008-08-29 14:32 85
void EditorInterface::moveRight()
89c4a3a6 sago007 2008-08-29 14:32 86
{
89c4a3a6 sago007 2008-08-29 14:32 87
	if(boardActive!=-1)
89c4a3a6 sago007 2008-08-29 14:32 88
		tb.moveRight();
89c4a3a6 sago007 2008-08-29 14:32 89
	saved = false;
89c4a3a6 sago007 2008-08-29 14:32 90
}
c53e6443 sago007 2012-04-17 11:04 91
89c4a3a6 sago007 2008-08-29 14:32 92
void EditorInterface::deleteBoard()
89c4a3a6 sago007 2008-08-29 14:32 93
{
89c4a3a6 sago007 2008-08-29 14:32 94
	if(boardActive!=-1)
89c4a3a6 sago007 2008-08-29 14:32 95
	{
89c4a3a6 sago007 2008-08-29 14:32 96
		bh.removeBoard(boardActive);
89c4a3a6 sago007 2008-08-29 14:32 97
		boardActive = -1;
89c4a3a6 sago007 2008-08-29 14:32 98
		saved = true;
89c4a3a6 sago007 2008-08-29 14:32 99
		fileSaved = false;
89c4a3a6 sago007 2008-08-29 14:32 100
	}
89c4a3a6 sago007 2008-08-29 14:32 101
}
c53e6443 sago007 2012-04-17 11:04 102
89c4a3a6 sago007 2008-08-29 14:32 103
void EditorInterface::moveBoardBack()
89c4a3a6 sago007 2008-08-29 14:32 104
{
89c4a3a6 sago007 2008-08-29 14:32 105
	if(boardActive!=-1)
89c4a3a6 sago007 2008-08-29 14:32 106
	{
89c4a3a6 sago007 2008-08-29 14:32 107
		if(bh.moveBoardBack(boardActive))
89c4a3a6 sago007 2008-08-29 14:32 108
			boardActive--;
89c4a3a6 sago007 2008-08-29 14:32 109
	}
89c4a3a6 sago007 2008-08-29 14:32 110
}
c53e6443 sago007 2012-04-17 11:04 111
89c4a3a6 sago007 2008-08-29 14:32 112
void EditorInterface::moveBoardForward()
89c4a3a6 sago007 2008-08-29 14:32 113
{
89c4a3a6 sago007 2008-08-29 14:32 114
	if(boardActive!=-1)
89c4a3a6 sago007 2008-08-29 14:32 115
	{
89c4a3a6 sago007 2008-08-29 14:32 116
		if(bh.moveBoardForward(boardActive))
89c4a3a6 sago007 2008-08-29 14:32 117
			boardActive++;
89c4a3a6 sago007 2008-08-29 14:32 118
	}
89c4a3a6 sago007 2008-08-29 14:32 119
}
c53e6443 sago007 2012-04-17 11:04 120
89c4a3a6 sago007 2008-08-29 14:32 121
void EditorInterface::saveBoard()
89c4a3a6 sago007 2008-08-29 14:32 122
{
89c4a3a6 sago007 2008-08-29 14:32 123
	if(boardActive!=-1)
89c4a3a6 sago007 2008-08-29 14:32 124
	{
89c4a3a6 sago007 2008-08-29 14:32 125
		bh.setModel(boardActive,tb);
89c4a3a6 sago007 2008-08-29 14:32 126
		saved = true;
89c4a3a6 sago007 2008-08-29 14:32 127
		fileSaved = false;
89c4a3a6 sago007 2008-08-29 14:32 128
	}
89c4a3a6 sago007 2008-08-29 14:32 129
}
c53e6443 sago007 2012-04-17 11:04 130
89c4a3a6 sago007 2008-08-29 14:32 131
bool EditorInterface::saveFile(string filename)
89c4a3a6 sago007 2008-08-29 14:32 132
{
89c4a3a6 sago007 2008-08-29 14:32 133
	if((!bh.isNull)&&(filename!=""))
89c4a3a6 sago007 2008-08-29 14:32 134
	{
c53e6443 sago007 2012-04-17 11:04 135
		fileName = filename;
89c4a3a6 sago007 2008-08-29 14:32 136
		bh.saveBoards(filename);
89c4a3a6 sago007 2008-08-29 14:32 137
		fileSaved = true;
89c4a3a6 sago007 2008-08-29 14:32 138
		return true;
89c4a3a6 sago007 2008-08-29 14:32 139
	}
89c4a3a6 sago007 2008-08-29 14:32 140
	return false;
89c4a3a6 sago007 2008-08-29 14:32 141
}
c53e6443 sago007 2012-04-17 11:04 142
89c4a3a6 sago007 2008-08-29 14:32 143
bool EditorInterface::saveFile()
89c4a3a6 sago007 2008-08-29 14:32 144
{
89c4a3a6 sago007 2008-08-29 14:32 145
	if((!bh.isNull)&&(fileName!=""))
89c4a3a6 sago007 2008-08-29 14:32 146
	{
89c4a3a6 sago007 2008-08-29 14:32 147
		bh.saveBoards(fileName);
89c4a3a6 sago007 2008-08-29 14:32 148
		fileSaved = true;
89c4a3a6 sago007 2008-08-29 14:32 149
		return true;
89c4a3a6 sago007 2008-08-29 14:32 150
	}
89c4a3a6 sago007 2008-08-29 14:32 151
	return false;
89c4a3a6 sago007 2008-08-29 14:32 152
}
c53e6443 sago007 2012-04-17 11:04 153
89c4a3a6 sago007 2008-08-29 14:32 154
void EditorInterface::openFile(string filename)
89c4a3a6 sago007 2008-08-29 14:32 155
{
89c4a3a6 sago007 2008-08-29 14:32 156
	fileName = filename;
89c4a3a6 sago007 2008-08-29 14:32 157
	BoardHolder bh2(fileName);
89c4a3a6 sago007 2008-08-29 14:32 158
	bh = bh2;
89c4a3a6 sago007 2008-08-29 14:32 159
	saved = true;
89c4a3a6 sago007 2008-08-29 14:32 160
	fileSaved = true;
89c4a3a6 sago007 2008-08-29 14:32 161
}
c53e6443 sago007 2012-04-17 11:04 162
89c4a3a6 sago007 2008-08-29 14:32 163
void EditorInterface::newFile()
89c4a3a6 sago007 2008-08-29 14:32 164
{
89c4a3a6 sago007 2008-08-29 14:32 165
	fileName = "";
89c4a3a6 sago007 2008-08-29 14:32 166
	bh = BoardHolder();
89c4a3a6 sago007 2008-08-29 14:32 167
	TheBoard tb2;
c53e6443 sago007 2012-04-17 11:04 168
	tb.isNull = true; // = null; What here!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
89c4a3a6 sago007 2008-08-29 14:32 169
	boardActive = -1;
89c4a3a6 sago007 2008-08-29 14:32 170
	saved = true;
89c4a3a6 sago007 2008-08-29 14:32 171
	fileSaved = false;
89c4a3a6 sago007 2008-08-29 14:32 172
}
c53e6443 sago007 2012-04-17 11:04 173
89c4a3a6 sago007 2008-08-29 14:32 174
int EditorInterface::getColor(int x, int y)
89c4a3a6 sago007 2008-08-29 14:32 175
{
89c4a3a6 sago007 2008-08-29 14:32 176
	if(boardActive==-1)
89c4a3a6 sago007 2008-08-29 14:32 177
		return -1;
89c4a3a6 sago007 2008-08-29 14:32 178
	return tb.getBrick(x,y);
89c4a3a6 sago007 2008-08-29 14:32 179
}
c53e6443 sago007 2012-04-17 11:04 180
89c4a3a6 sago007 2008-08-29 14:32 181
int EditorInterface::getActiveBoardNr()
89c4a3a6 sago007 2008-08-29 14:32 182
{
89c4a3a6 sago007 2008-08-29 14:32 183
	return boardActive;
89c4a3a6 sago007 2008-08-29 14:32 184
}
c53e6443 sago007 2012-04-17 11:04 185
89c4a3a6 sago007 2008-08-29 14:32 186
int EditorInterface::getNumberOfMoves()
89c4a3a6 sago007 2008-08-29 14:32 187
{
89c4a3a6 sago007 2008-08-29 14:32 188
	if(!tb.isNull)
89c4a3a6 sago007 2008-08-29 14:32 189
	{
89c4a3a6 sago007 2008-08-29 14:32 190
		return tb.getNumberOfMoves();
89c4a3a6 sago007 2008-08-29 14:32 191
	}
89c4a3a6 sago007 2008-08-29 14:32 192
	return 0;
89c4a3a6 sago007 2008-08-29 14:32 193
}
c53e6443 sago007 2012-04-17 11:04 194
89c4a3a6 sago007 2008-08-29 14:32 195
bool EditorInterface::newBoard()
89c4a3a6 sago007 2008-08-29 14:32 196
{
89c4a3a6 sago007 2008-08-29 14:32 197
	if(!bh.isNull)
89c4a3a6 sago007 2008-08-29 14:32 198
	{
89c4a3a6 sago007 2008-08-29 14:32 199
		fileSaved = false;
89c4a3a6 sago007 2008-08-29 14:32 200
		return bh.addBoard();
89c4a3a6 sago007 2008-08-29 14:32 201
	}
89c4a3a6 sago007 2008-08-29 14:32 202
	else
89c4a3a6 sago007 2008-08-29 14:32 203
		return false;
89c4a3a6 sago007 2008-08-29 14:32 204
}
c53e6443 sago007 2012-04-17 11:04 205
89c4a3a6 sago007 2008-08-29 14:32 206
int EditorInterface::getNumberOfBoards()
89c4a3a6 sago007 2008-08-29 14:32 207
{
89c4a3a6 sago007 2008-08-29 14:32 208
	if(!bh.isNull)
89c4a3a6 sago007 2008-08-29 14:32 209
		return bh.getNumberOfBoards();
89c4a3a6 sago007 2008-08-29 14:32 210
	else
89c4a3a6 sago007 2008-08-29 14:32 211
		return 0;
89c4a3a6 sago007 2008-08-29 14:32 212
}
c53e6443 sago007 2012-04-17 11:04 213
89c4a3a6 sago007 2008-08-29 14:32 214
void EditorInterface::setNumberOfMoves(int moves)
89c4a3a6 sago007 2008-08-29 14:32 215
{
89c4a3a6 sago007 2008-08-29 14:32 216
	if(!tb.isNull)
89c4a3a6 sago007 2008-08-29 14:32 217
	{
89c4a3a6 sago007 2008-08-29 14:32 218
		saved = false;
89c4a3a6 sago007 2008-08-29 14:32 219
		tb.setNumberOfMoves(moves);
89c4a3a6 sago007 2008-08-29 14:32 220
	}
89c4a3a6 sago007 2008-08-29 14:32 221
}
c53e6443 sago007 2012-04-17 11:04 222
89c4a3a6 sago007 2008-08-29 14:32 223
bool EditorInterface::isSaved()
89c4a3a6 sago007 2008-08-29 14:32 224
{
89c4a3a6 sago007 2008-08-29 14:32 225
	return saved;
89c4a3a6 sago007 2008-08-29 14:32 226
}
c53e6443 sago007 2012-04-17 11:04 227
89c4a3a6 sago007 2008-08-29 14:32 228
bool EditorInterface::fileIsSaved()
89c4a3a6 sago007 2008-08-29 14:32 229
{
89c4a3a6 sago007 2008-08-29 14:32 230
	return fileSaved;
89c4a3a6 sago007 2008-08-29 14:32 231
}
1970-01-01 00:00 232