diff options
author | Eugene Sandulenko | 2016-05-19 22:56:30 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-05-22 00:45:03 +0200 |
commit | 33a0afc8f850fdc226ac65e7b4da107f3e36b805 (patch) | |
tree | 1a816112e1519f5d5b31f233b707517727ddc44a | |
parent | adc884ae8f484a439bf13a0371f0fea95cd50392 (diff) | |
download | scummvm-rg350-33a0afc8f850fdc226ac65e7b4da107f3e36b805.tar.gz scummvm-rg350-33a0afc8f850fdc226ac65e7b4da107f3e36b805.tar.bz2 scummvm-rg350-33a0afc8f850fdc226ac65e7b4da107f3e36b805.zip |
SCUMM HE: Added Weapon class
-rw-r--r-- | engines/scumm/he/moonbase/ai_main.h | 2 | ||||
-rw-r--r-- | engines/scumm/he/moonbase/ai_weapon.cpp | 87 | ||||
-rw-r--r-- | engines/scumm/he/moonbase/ai_weapon.h | 59 | ||||
-rw-r--r-- | engines/scumm/module.mk | 1 |
4 files changed, 149 insertions, 0 deletions
diff --git a/engines/scumm/he/moonbase/ai_main.h b/engines/scumm/he/moonbase/ai_main.h index ca85ff1811..d35cf8ec5a 100644 --- a/engines/scumm/he/moonbase/ai_main.h +++ b/engines/scumm/he/moonbase/ai_main.h @@ -27,6 +27,8 @@ namespace Scumm { +class ScummEngine; + extern ScummEngine *_vm; typedef Common::List<int>::iterator intVecItr; diff --git a/engines/scumm/he/moonbase/ai_weapon.cpp b/engines/scumm/he/moonbase/ai_weapon.cpp new file mode 100644 index 0000000000..b13d1efebe --- /dev/null +++ b/engines/scumm/he/moonbase/ai_weapon.cpp @@ -0,0 +1,87 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "scumm/he/moonbase/ai_weapon.h" +#include "scumm/he/moonbase/ai_main.h" + +namespace Scumm { + +Weapon::Weapon(int typeID) { //, float damage, int radius) + switch (typeID) { + case ITEM_BOMB: + becomeBomb(); + break; + + case ITEM_CLUSTER: + becomeCluster(); + break; + + case ITEM_CRAWLER: + becomeCrawler(); + break; + + case ITEM_EMP: + becomeEMP(); + break; + + case ITEM_SPIKE: + becomeSpike(); + break; + } +} + +void Weapon::becomeBomb() { + _typeID = ITEM_BOMB; + _damage = 3; + _radius = 30; + _cost = 1; +} + +void Weapon::becomeCluster() { + _typeID = ITEM_CLUSTER; + _damage = 1.5; + _radius = 20; + _cost = 1; +} + +void Weapon::becomeCrawler() { + _typeID = ITEM_CRAWLER; + _damage = 4; + _radius = 180; + _cost = 7; +} + +void Weapon::becomeEMP() { + _typeID = ITEM_EMP; + _damage = .1f; + _radius = 215; + _cost = 3; +} + +void Weapon::becomeSpike() { + _typeID = ITEM_SPIKE; + _damage = 6; + _radius = 180; + _cost = 3; +} + +} // End of namespace Scumm diff --git a/engines/scumm/he/moonbase/ai_weapon.h b/engines/scumm/he/moonbase/ai_weapon.h new file mode 100644 index 0000000000..55c710ccdf --- /dev/null +++ b/engines/scumm/he/moonbase/ai_weapon.h @@ -0,0 +1,59 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef SCUMM_HE_MOONBASE_AI_WEAPON_H +#define SCUMM_HE_MOONBASE_AI_WEAPON_H + +namespace Scumm { + +class Weapon { +private: + int _typeID; + float _damage; + int _radius; + int _cost; + +public: + Weapon() {} + Weapon(int typeID); + virtual ~Weapon() {} + + void setTypeID(int typeID) { _typeID = typeID; } + void setDamage(float damage) { _damage = damage; } + void setRadius(int radius) { _radius = radius; } + void setCost(int cost) { _cost = cost; } + + int getTypeID() { return _typeID; } + float getDamage() { return _damage; } + int getRadius() { return _radius; } + int getCost() { return _cost; } + + void becomeBomb(); + void becomeCluster(); + void becomeCrawler(); + void becomeEMP(); + void becomeSpike(); +}; + +} // End of namespace Scumm + +#endif diff --git a/engines/scumm/module.mk b/engines/scumm/module.mk index 717ca8146e..582411f179 100644 --- a/engines/scumm/module.mk +++ b/engines/scumm/module.mk @@ -141,6 +141,7 @@ MODULE_OBJS += \ he/logic/soccer.o \ he/moonbase/ai_defenseunit.o \ he/moonbase/ai_types.o \ + he/moonbase/ai_weapon.o \ he/moonbase/moonbase.o \ he/moonbase/moonbase_fow.o endif |