diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-09-15 23:33:50 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-09-15 23:33:50 +0000 |
commit | fa763ba1bc7285247a5b1438d59633383a80cf6c (patch) | |
tree | f4b632fea66f43dc6c1415fdaa4feead0b6ff90d /crawl-ref/source/player.cc | |
parent | 4d88632cb99d368956dec86732f7d275ffb941e8 (diff) | |
download | crawl-ref-fa763ba1bc7285247a5b1438d59633383a80cf6c.tar.gz crawl-ref-fa763ba1bc7285247a5b1438d59633383a80cf6c.zip |
Split off portions of externs.h and enum.h into other files. The
crawl_environment, player and monsters classes have been left in
externs.h, which necessitates that all of the enums references by
those classes stay in enums.h, since you can't forward declare an
enum. However, it's a start.
Also, portions of misc.{cc,h} have been split off into traps.{cc,h},
place.{cc,h} and terrain.{cc,h}
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2095 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/player.cc')
-rw-r--r-- | crawl-ref/source/player.cc | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc index 4c47f44685..6ac2ef50c9 100644 --- a/crawl-ref/source/player.cc +++ b/crawl-ref/source/player.cc @@ -41,7 +41,9 @@ #include "itemname.h" #include "itemprop.h" #include "items.h" +#include "Kills.h" #include "macro.h" +#include "message.h" #include "misc.h" #include "monstuff.h" #include "mon-util.h" @@ -58,7 +60,9 @@ #include "spl-util.h" #include "spells4.h" #include "stuff.h" +#include "terrain.h" #include "transfor.h" +#include "traps.h" #include "travel.h" #include "tutorial.h" #include "view.h" @@ -4769,12 +4773,12 @@ bool rot_player( int amount ) } -int count_worn_ego( special_armour_type ego ) +int count_worn_ego( int which_ego ) { int result = 0; for ( int slot = EQ_CLOAK; slot <= EQ_BODY_ARMOUR; ++slot ) if (you.equip[slot] != -1 && - get_armour_ego_type(you.inv[you.equip[slot]]) == ego) + get_armour_ego_type(you.inv[you.equip[slot]]) == which_ego) result++; return result; } @@ -4896,8 +4900,31 @@ actor::~actor() player::player() { init(); + kills = new KillMaster(); } +player::player(const player &other) +{ + init(); + *this = other; + + kills = new KillMaster(*(other.kills)); +} + +void player::copy_from(const player &other) +{ + if (this == &other) + return; + + KillMaster *_kills = kills; + + *this = other; + + kills = _kills; + *kills = *(other.kills); +} + + // player struct initialization void player::init() { @@ -5039,6 +5066,11 @@ void player::init() exp_available = 25; } +player::~player() +{ + delete kills; +} + bool player::is_valid() const { // Check if there's a name. |