_________ __                 __
        /   _____//  |_____________ _/  |______     ____  __ __  ______
        \_____  \\   __\_  __ \__  \\   __\__  \   / ___\|  |  \/  ___/
        /        \|  |  |  | \// __ \|  |  / __ \_/ /_/  >  |  /\___ \
       /_______  /|__|  |__|  (____  /__| (____  /\___  /|____//____  >
               \/                  \/          \//_____/            \/
    ______________________                           ______________________
                          T H E   W A R   B E G I N S
                   Stratagus - A free fantasy real time strategy game engine

unitptr.h
Go to the documentation of this file.
1 // _________ __ __
2 // / _____// |_____________ _/ |______ ____ __ __ ______
3 // \_____ \\ __\_ __ \__ \\ __\__ \ / ___\| | \/ ___/
4 // / \| | | | \// __ \| | / __ \_/ /_/ > | /\___ |
5 // /_______ /|__| |__| (____ /__| (____ /\___ /|____//____ >
6 // \/ \/ \//_____/ \/
7 // ______________________ ______________________
8 // T H E W A R B E G I N S
9 // Stratagus - A free fantasy real time strategy game engine
10 //
12 //
13 // (c) Copyright 2012 by Joris Dauphin
14 //
15 // This program is free software; you can redistribute it and/or modify
16 // it under the terms of the GNU General Public License as published by
17 // the Free Software Foundation; only version 2 of the License.
18 //
19 // This program is distributed in the hope that it will be useful,
20 // but WITHOUT ANY WARRANTY; without even the implied warranty of
21 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 // GNU General Public License for more details.
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program; if not, write to the Free Software
26 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
27 // 02111-1307, USA.
28 //
29 
30 #ifndef UNIT_PTR_H
31 #define UNIT_PTR_H
32 
34 
35 class CUnit;
36 
37 
41 class CUnitPtr
42 {
43 public:
44  CUnitPtr() : unit(NULL) {}
45  CUnitPtr(CUnit *u);
46  CUnitPtr(const CUnitPtr &u);
47  ~CUnitPtr() { Reset(); }
48 
49  void Reset();
50 
51  operator CUnit *() { return unit; }
52  operator CUnit *() const { return unit; }
53 
54  CUnit &operator*() { return *unit; }
55  CUnit *operator->() const { return unit; }
56 
58 
59  bool operator== (CUnit *u) const { return this->unit == u; }
60  bool operator!= (CUnit *u) const { return this->unit != u; }
61 
62 private:
63  CUnit *unit;
64 };
65 
67 
68 #endif // UNIT_PTR_H
CUnitPtr
Definition: unitptr.h:41
CUnitPtr::operator*
CUnit & operator*()
Definition: unitptr.h:54
CUnitPtr::operator!=
bool operator!=(CUnit *u) const
Definition: unitptr.h:60
CUnitPtr::operator==
bool operator==(CUnit *u) const
Definition: unitptr.h:59
CUnitPtr::operator->
CUnit * operator->() const
Definition: unitptr.h:55
CUnitPtr::operator=
CUnitPtr & operator=(CUnit *u)
Definition: unitptr.cpp:59
CUnitPtr::CUnitPtr
CUnitPtr()
Definition: unitptr.h:44
CUnitPtr::~CUnitPtr
~CUnitPtr()
Definition: unitptr.h:47
CUnitPtr::Reset
void Reset()
Definition: unitptr.cpp:51
CUnit
The big unit structure.
Definition: unit.h:135
(C) Copyright 1998-2012 by The Stratagus Project under the GNU General Public License.
All trademarks and copyrights on this page are owned by their respective owners.