2
* Copyright (C) 2002-4 by the Widelands Development Team
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License
6
* as published by the Free Software Foundation; either version 2
7
* of the License, or (at your option) any later version.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21
#include "editorinteractive.h"
22
#include "editor_make_infrastructure_tool.h"
24
#include "fieldaction.h"
29
* Callback function to calculate correct overlays
31
int Editor_Make_Infrastructure_Tool_Callback(FCoords& fc, void* data, int player) {
32
Editor* editor=static_cast<Editor*>(data);
34
return editor->get_player(player)->get_buildcaps(fc);
40
Editor_Make_Infrastructure_Tool::Editor_Make_Infrastructure_Tool(void) :
41
Editor_Tool(this,this) {
48
Editor_Make_Infrastructure_Tool::~Editor_Make_Infrastructure_Tool(void) {
54
Editor_Make_Infrastructure_Tool::handle_click_impl()
56
This is the most complex of all tool functions: check where was clicked,
57
offer the correct user dialog and act accordingly.
59
Obviously, this function ignores the fieldsel radius
62
int Editor_Make_Infrastructure_Tool::handle_click_impl(FCoords& fc, Map* map, Editor_Interactive* parent) {
63
// Special case for buildings
64
/* BaseImmovable *imm = m_game->get_map()->get_immovable(get_fieldsel_pos());
67
if (imm && imm->get_type() == Map_Object::BUILDING) {
68
Building *building = (Building *)imm;
69
building->show_options(this);
73
show_field_action(parent, parent->get_editor()->get_player(m_player), &m_registry);
74
return 5; // Not really needed, since Player Immovables are taken care of while placing on map