mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-24 19:45:07 +00:00
SCUMM HE: Added Weapon class
This commit is contained in:
parent
adc884ae8f
commit
33a0afc8f8
@ -27,6 +27,8 @@
|
||||
|
||||
namespace Scumm {
|
||||
|
||||
class ScummEngine;
|
||||
|
||||
extern ScummEngine *_vm;
|
||||
|
||||
typedef Common::List<int>::iterator intVecItr;
|
||||
|
87
engines/scumm/he/moonbase/ai_weapon.cpp
Normal file
87
engines/scumm/he/moonbase/ai_weapon.cpp
Normal file
@ -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
|
59
engines/scumm/he/moonbase/ai_weapon.h
Normal file
59
engines/scumm/he/moonbase/ai_weapon.h
Normal file
@ -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
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user