Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/orxonox/objects/weaponSystem/WeaponSystem.cc @ 2788

Last change on this file since 2788 was 2710, checked in by rgrieder, 16 years ago

Merged buildsystem3 containing buildsystem2 containing Adi's buildsystem branch back to the trunk.
Please update the media directory if you were not using buildsystem3 before.

  • Property svn:eol-style set to native
  • Property svn:mergeinfo set to (toggle deleted branches)
    /code/branches/lodfinal/src/orxonox/objects/weaponSystem/WeaponSystem.ccmergedeligible
    /code/branches/buildsystem2/src/orxonox/objects/weaponSystem/WeaponSystem.cc2506-2658
    /code/branches/buildsystem3/src/orxonox/objects/weaponSystem/WeaponSystem.cc2662-2708
    /code/branches/ceguilua/src/orxonox/objects/WeaponSystem.cc1802-1808
    /code/branches/core3/src/orxonox/objects/WeaponSystem.cc1572-1739
    /code/branches/gcc43/src/orxonox/objects/WeaponSystem.cc1580
    /code/branches/gui/src/orxonox/objects/WeaponSystem.cc1635-1723
    /code/branches/input/src/orxonox/objects/WeaponSystem.cc1629-1636
    /code/branches/network/src/orxonox/objects/weaponSystem/WeaponSystem.cc2356
    /code/branches/network64/src/orxonox/objects/weaponSystem/WeaponSystem.cc2210-2355
    /code/branches/objecthierarchy/src/orxonox/objects/WeaponSystem.cc1911-2085,​2100
    /code/branches/objecthierarchy2/src/orxonox/objects/weaponSystem/WeaponSystem.cc2171-2479
    /code/branches/overlay/src/orxonox/objects/weaponSystem/WeaponSystem.cc2117-2385
    /code/branches/physics/src/orxonox/objects/weaponSystem/WeaponSystem.cc2107-2439
    /code/branches/physics_merge/src/orxonox/objects/weaponSystem/WeaponSystem.cc2436-2457
    /code/branches/pickups/src/orxonox/objects/WeaponSystem.cc1926-2086
    /code/branches/pickups2/src/orxonox/objects/weaponSystem/WeaponSystem.cc2107-2497
    /code/branches/presentation/src/orxonox/objects/weaponSystem/WeaponSystem.cc2369-2652,​2654-2660
    /code/branches/questsystem/src/orxonox/objects/WeaponSystem.cc1894-2088
    /code/branches/questsystem2/src/orxonox/objects/weaponSystem/WeaponSystem.cc2107-2259
    /code/branches/script_trigger/src/orxonox/objects/WeaponSystem.cc1295-1953,​1955
    /code/branches/weapon/src/orxonox/objects/WeaponSystem.cc1925-2047
    /code/branches/weapon2/src/orxonox/objects/weaponSystem/WeaponSystem.cc2107-2488
File size: 4.4 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Martin Polak
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29#include "OrxonoxStableHeaders.h"
30
31#include <vector>
32
33#include "core/CoreIncludes.h"
34#include "core/XMLPort.h"
35#include "util/Debug.h"
36
37#include "WeaponSystem.h"
38
39
40/* WEAPONSYSTEM
41 * creates the WeaponSystem and the ability to use weapons and munition
42 * loads the weapon the whole weaponSystem setting from an xml file
43 *
44 */
45
46namespace orxonox
47{
48    CreateFactory(WeaponSystem);
49
50    WeaponSystem::WeaponSystem(BaseObject* creator) : BaseObject(creator)
51    {
52        RegisterObject(WeaponSystem);
53
54        this->activeWeaponSet_ = 0;
55        this->parentPawn_ = 0;
56    }
57
58    WeaponSystem::~WeaponSystem()
59    {
60    }
61
62    void WeaponSystem::attachWeaponPack(WeaponPack *wPack, unsigned int firemode)
63    {
64        if (firemode < this->weaponSets_.size())
65            this->weaponSets_[firemode]->attachWeaponPack(wPack);
66        this->weaponPacks_.push_back(wPack);
67    }
68
69    void WeaponSystem::attachWeaponSlot(WeaponSlot *wSlot)
70    {
71        wSlot->setParentWeaponSystem(this);
72        this->weaponSlots_.push_back(wSlot);
73    }
74
75    void WeaponSystem::attachWeaponSet(WeaponSet *wSet)
76    {
77        wSet->setParentWeaponSystem(this);
78        this->weaponSets_.push_back(wSet);
79    }
80
81    void WeaponSystem::setNewMunition(std::string munitionType, Munition * munitionToAdd)
82    {
83        this->munitionSet_[munitionType] = munitionToAdd;
84    }
85
86    //returns the Pointer to the munitionType
87    Munition * WeaponSystem::getMunitionType(std::string munitionType)
88    {
89//COUT(0) << "WeaponSystem::getMunitionType " << munitionType << std::endl;
90        std::map<std::string, Munition *>::const_iterator it = this->munitionSet_.find(munitionType);
91        if (it != this->munitionSet_.end())
92            return it->second;
93        else
94            return 0;
95    }
96
97
98/*
99    //the first weaponSet is at n=0
100    void WeaponSystem::setActiveWeaponSet(unsigned int n)
101    {
102        if (n < this->weaponSets_.size())
103            this->activeWeaponSet_ = this->weaponSets_[n];
104        else
105            this->activeWeaponSet_ = this->weaponSets_[0];
106    }
107*/
108
109
110    //n is the n'th weaponSet, starting with zero
111    //SpaceShip.cc only needs to have the keybinding to a specific Set-number n
112    void WeaponSystem::fire(WeaponMode::Enum n)
113    {
114        int set = 0;
115        switch (n)
116        {
117            case WeaponMode::fire:
118                set = 0;
119                break;
120            case WeaponMode::altFire:
121                set = 1;
122                break;
123            case WeaponMode::altFire2:
124                set = 2;
125                break;
126        }
127//COUT(0) << "WeaponSystem::fire" << std::endl;
128        if (set < (int)this->weaponSets_.size())
129//COUT(0) << "WeaponSystem::fire - after if" << std::endl;
130            this->weaponSets_[set]->fire();
131    }
132
133
134    WeaponSet * WeaponSystem::getWeaponSetPointer(unsigned int n)
135    {
136        if (n < this->weaponSets_.size())
137            return this->weaponSets_[n];
138        else
139            return 0;
140    }
141
142    WeaponSlot * WeaponSystem::getWeaponSlotPointer(unsigned int n)
143    {
144        if (n < this->weaponSlots_.size())
145            return this->weaponSlots_[n];
146        else
147            return 0;
148    }
149
150    WeaponPack * WeaponSystem::getWeaponPackPointer(unsigned int n)
151    {
152        if (n < this->weaponPacks_.size())
153            return this->weaponPacks_[n];
154        else
155            return 0;
156    }
157
158    void WeaponSystem::XMLPort(Element& xmlelement, XMLPort::Mode mode)
159    {
160        SUPER(WeaponSystem, XMLPort, xmlelement, mode);
161    }
162
163}
Note: See TracBrowser for help on using the repository browser.