summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/player.cc
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-15 23:33:50 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-15 23:33:50 +0000
commitfa763ba1bc7285247a5b1438d59633383a80cf6c (patch)
treef4b632fea66f43dc6c1415fdaa4feead0b6ff90d /crawl-ref/source/player.cc
parent4d88632cb99d368956dec86732f7d275ffb941e8 (diff)
downloadcrawl-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.cc36
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.