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.
20
#ifndef __S__WIDELANDS_MAP_MAP_OBJECT_SAVER_H
21
#define __S__WIDELANDS_MAP_MAP_OBJECT_SAVER_H
29
* - keep track of map objects on the map
30
* - translate Map_Object* Pointer into the index used in the saved file
32
typedef std::map<Map_Object*, uint> Map_Object_Map;
34
class Widelands_Map_Map_Object_Saver {
36
Widelands_Map_Map_Object_Saver(void);
37
~Widelands_Map_Map_Object_Saver(void);
39
bool is_object_known(Map_Object*);
40
uint register_object(Map_Object*);
42
uint get_object_file_index(Map_Object*);
44
void mark_object_as_saved(Map_Object*);
46
// Information functions
47
int get_nr_unsaved_objects(void);
48
int get_nr_roads(void) { return m_nr_roads; }
49
int get_nr_flags(void) { return m_nr_flags; }
50
int get_nr_buildings(void) { return m_nr_buildings; }
51
int get_nr_wares(void) { return m_nr_wares; }
52
int get_nr_bobs(void) { return m_nr_bobs; }
53
int get_nr_immovables(void) { return m_nr_immovables; }
55
bool is_object_saved(Map_Object* obj) { return m_saved_obj[obj]; }
58
std::map<Map_Object*, bool> m_saved_obj;
59
Map_Object_Map m_objects;
60
uint m_nr_roads, m_nr_flags, m_nr_buildings, m_nr_bobs,
61
m_nr_wares, m_nr_immovables;