Colobot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
objman.h
Go to the documentation of this file.
1 // * This file is part of the COLOBOT source code
2 // * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
3 // *
4 // * This program is free software: you can redistribute it and/or modify
5 // * it under the terms of the GNU General Public License as published by
6 // * the Free Software Foundation, either version 3 of the License, or
7 // * (at your option) any later version.
8 // *
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.
13 // *
14 // * You should have received a copy of the GNU General Public License
15 // * along with this program. If not, see http://www.gnu.org/licenses/.
16 
22 #pragma once
23 
24 #include "object/object.h"
25 
26 #include "common/singleton.h"
27 
28 const int MAX_OBJECTS = 500;
29 
34 class CObjectManager : public CSingleton<CObjectManager>
35 {
36 public:
38  virtual ~CObjectManager();
39 
41  bool AddInstance(CObject* instance);
43  bool DeleteInstance(CObject* instance);
45  CObject* SearchInstance(int id);
47  CObject* CreateObject(Math::Vector pos, float angle, ObjectType type, float power = -1.f, float zoom = 1.f, float height = 0.f, bool trainer = false, bool toy = false, int option = 0);
49  void Flush();
50 
51 protected:
52  CObject* m_table[MAX_OBJECTS];
53  int m_usedCount;
54 };
55