33 lines
848 B
C++
33 lines
848 B
C++
#include "Pickable.h"
|
|
#include "Actor.h"
|
|
#include "Engine.h"
|
|
#include "Container.h"
|
|
#include "Gui.h"
|
|
|
|
bool Pickable::pick(Actor* owner, Actor* wearer) {
|
|
if (wearer->container && wearer->container->add(owner)) {
|
|
engine->actors.remove(owner);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool Pickable::use(Actor* owner, Actor* wearer) {
|
|
if (wearer->container) {
|
|
wearer->container->remove(owner);
|
|
delete owner;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void Pickable::drop(Actor* owner, Actor* wearer) {
|
|
if (wearer->container) {
|
|
wearer->container->remove(owner);
|
|
engine->actors.push(owner);
|
|
owner->x = wearer->x;
|
|
owner->y = wearer->y;
|
|
engine->gui->message(TCOD_ColorRGB(200,200,200), "%s drops a %s.",
|
|
wearer->name.c_str(), owner->name.c_str());
|
|
}
|
|
} |