summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorluksor111@gmail.com <luksor111@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-12-21 19:05:34 +0100
committerluksor111@gmail.com <luksor111@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-12-21 19:05:34 +0100
commit994b02f5af05158f6da3964dee5f00e6f00ae981 (patch)
tree970d2c31a3736e064fc7d6da525bfa0f44c5e606 /source
parentAdded more constants into eEntityType; made them a compulsory parameter to the constructor, so that all entities have proper type. (diff)
downloadcuberite-994b02f5af05158f6da3964dee5f00e6f00ae981.tar
cuberite-994b02f5af05158f6da3964dee5f00e6f00ae981.tar.gz
cuberite-994b02f5af05158f6da3964dee5f00e6f00ae981.tar.bz2
cuberite-994b02f5af05158f6da3964dee5f00e6f00ae981.tar.lz
cuberite-994b02f5af05158f6da3964dee5f00e6f00ae981.tar.xz
cuberite-994b02f5af05158f6da3964dee5f00e6f00ae981.tar.zst
cuberite-994b02f5af05158f6da3964dee5f00e6f00ae981.zip
Diffstat (limited to 'source')
-rw-r--r--source/Blocks/BlockLever.cpp11
-rw-r--r--source/Mobs/Bat.cpp2
-rw-r--r--source/Mobs/Blaze.cpp2
-rw-r--r--source/Mobs/Cavespider.cpp2
-rw-r--r--source/Mobs/Chicken.cpp2
-rw-r--r--source/Mobs/Cow.cpp2
-rw-r--r--source/Mobs/Creeper.cpp2
-rw-r--r--source/Mobs/Enderman.cpp2
-rw-r--r--source/Mobs/Ghast.cpp2
-rw-r--r--source/Mobs/Magmacube.cpp2
-rw-r--r--source/Mobs/Monster.cpp4
-rw-r--r--source/Mobs/Monster.h3
-rw-r--r--source/Mobs/Mooshroom.cpp2
-rw-r--r--source/Mobs/Ocelot.cpp2
-rw-r--r--source/Mobs/Pig.cpp2
-rw-r--r--source/Mobs/Sheep.cpp2
-rw-r--r--source/Mobs/Silverfish.cpp2
-rw-r--r--source/Mobs/Skeleton.cpp2
-rw-r--r--source/Mobs/Slime.cpp2
-rw-r--r--source/Mobs/Spider.cpp2
-rw-r--r--source/Mobs/Wolf.cpp2
-rw-r--r--source/Mobs/Zombie.cpp2
-rw-r--r--source/Mobs/Zombiepigman.cpp2
23 files changed, 57 insertions, 1 deletions
diff --git a/source/Blocks/BlockLever.cpp b/source/Blocks/BlockLever.cpp
index 925a5bdcd..cf0255df5 100644
--- a/source/Blocks/BlockLever.cpp
+++ b/source/Blocks/BlockLever.cpp
@@ -40,7 +40,16 @@ void cBlockLeverHandler::OnDestroyed(cWorld *a_World, int a_BlockX, int a_BlockY
void cBlockLeverHandler::OnUse(cWorld *a_World, cPlayer *a_Player, int a_BlockX, int a_BlockY, int a_BlockZ)
{
//Flip the ON bit on/off. Using XOR bitwise operation to turn it on/off.
- a_World->SetBlock(a_BlockX, a_BlockY, a_BlockZ, m_BlockType, ((a_World->GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ) ^ 0x08) & 0x0f));
+ NIBBLETYPE Meta = ((a_World->GetBlockMeta(a_BlockX, a_BlockY, a_BlockZ) ^ 0x08) & 0x0f);
+ a_World->SetBlock(a_BlockX, a_BlockY, a_BlockZ, m_BlockType, Meta);
+ if(Meta & 0x08)
+ {
+ a_World->BroadcastSoundEffect("random.click", a_BlockX * 8, a_BlockY * 8, a_BlockZ * 8, 0.5f, 0.6f);
+ }
+ else
+ {
+ a_World->BroadcastSoundEffect("random.click", a_BlockX * 8, a_BlockY * 8, a_BlockZ * 8, 0.5f, 0.5f);
+ }
}
diff --git a/source/Mobs/Bat.cpp b/source/Mobs/Bat.cpp
index e77cfd46d..952b0d899 100644
--- a/source/Mobs/Bat.cpp
+++ b/source/Mobs/Bat.cpp
@@ -10,6 +10,8 @@
cBat::cBat(void)
{
m_MobType = 65;
+ m_SoundHurt = "mob.bat.hurt";
+ m_SoundDeath = "mob.bat.death";
GetMonsterConfig("Bat");
}
diff --git a/source/Mobs/Blaze.cpp b/source/Mobs/Blaze.cpp
index c3a1fbabf..bab0ea13a 100644
--- a/source/Mobs/Blaze.cpp
+++ b/source/Mobs/Blaze.cpp
@@ -10,6 +10,8 @@
cBlaze::cBlaze(void)
{
m_MobType = 61;
+ m_SoundHurt = "mob.blaze.hit";
+ m_SoundDeath = "mob.blaze.death";
GetMonsterConfig("Blaze");
}
diff --git a/source/Mobs/Cavespider.cpp b/source/Mobs/Cavespider.cpp
index 94eadf12d..b9d4829bc 100644
--- a/source/Mobs/Cavespider.cpp
+++ b/source/Mobs/Cavespider.cpp
@@ -10,6 +10,8 @@
cCavespider::cCavespider(void)
{
m_MobType = 59;
+ m_SoundHurt = "mob.spider.say";
+ m_SoundDeath = "mob.spider.death";
GetMonsterConfig("Cavespider");
}
diff --git a/source/Mobs/Chicken.cpp b/source/Mobs/Chicken.cpp
index fe6526d76..55bf73584 100644
--- a/source/Mobs/Chicken.cpp
+++ b/source/Mobs/Chicken.cpp
@@ -16,6 +16,8 @@
cChicken::cChicken(void)
{
m_MobType = 93;
+ m_SoundHurt = "mob.chicken.hurt";
+ m_SoundDeath = "mob.chicken.hurt";
GetMonsterConfig("Chicken");
}
diff --git a/source/Mobs/Cow.cpp b/source/Mobs/Cow.cpp
index f6ae5b7da..b0dab1e0f 100644
--- a/source/Mobs/Cow.cpp
+++ b/source/Mobs/Cow.cpp
@@ -16,6 +16,8 @@
cCow::cCow(void)
{
m_MobType = 92;
+ m_SoundHurt = "mob.cow.hurt";
+ m_SoundDeath = "mob.cow.hurt";
GetMonsterConfig("Cow");
}
diff --git a/source/Mobs/Creeper.cpp b/source/Mobs/Creeper.cpp
index e3610198f..b3133d7c9 100644
--- a/source/Mobs/Creeper.cpp
+++ b/source/Mobs/Creeper.cpp
@@ -10,6 +10,8 @@
cCreeper::cCreeper(void)
{
m_MobType = 50;
+ m_SoundHurt = "mob.creeper.say";
+ m_SoundDeath = "mob.creeper.say";
GetMonsterConfig("Creeper");
}
diff --git a/source/Mobs/Enderman.cpp b/source/Mobs/Enderman.cpp
index 2739265f1..2814ab71b 100644
--- a/source/Mobs/Enderman.cpp
+++ b/source/Mobs/Enderman.cpp
@@ -10,6 +10,8 @@
cEnderman::cEnderman(void)
{
m_MobType = 58;
+ m_SoundHurt = "mob.endermen.hit";
+ m_SoundDeath = "mob.endermen.death";
GetMonsterConfig("Enderman");
}
diff --git a/source/Mobs/Ghast.cpp b/source/Mobs/Ghast.cpp
index 0e1656b95..38f6af582 100644
--- a/source/Mobs/Ghast.cpp
+++ b/source/Mobs/Ghast.cpp
@@ -10,6 +10,8 @@
cGhast::cGhast(void)
{
m_MobType = 56;
+ m_SoundHurt = "mob.ghast.scream";
+ m_SoundDeath = "mob.ghast.death";
GetMonsterConfig("Ghast");
}
diff --git a/source/Mobs/Magmacube.cpp b/source/Mobs/Magmacube.cpp
index a71463928..f514d6177 100644
--- a/source/Mobs/Magmacube.cpp
+++ b/source/Mobs/Magmacube.cpp
@@ -10,6 +10,8 @@
cMagmacube::cMagmacube()
{
m_MobType = 62;
+ m_SoundHurt = "mob.magmacube.big";
+ m_SoundDeath = "mob.magmacube.big";
GetMonsterConfig("Magmacube");
}
diff --git a/source/Mobs/Monster.cpp b/source/Mobs/Monster.cpp
index 6c9b870e1..04989caac 100644
--- a/source/Mobs/Monster.cpp
+++ b/source/Mobs/Monster.cpp
@@ -38,6 +38,8 @@ cMonster::cMonster(void)
, m_DestroyTimer( 0 )
, m_Jump(0)
, m_MobType( 0 )
+ , m_SoundHurt( "" )
+ , m_SoundDeath( "" )
, m_EMState(IDLE)
, m_SightDistance(25)
, m_SeePlayerInterval (0)
@@ -303,6 +305,7 @@ void cMonster::HandlePhysics(float a_Dt)
void cMonster::DoTakeDamage(TakeDamageInfo & a_TDI)
{
super::DoTakeDamage(a_TDI);
+ if((m_SoundHurt != "") && (m_Health > 0)) m_World->BroadcastSoundEffect(m_SoundHurt, (int)(m_Pos.x * 8), (int)(m_Pos.y * 8), (int)(m_Pos.z * 8), 1.0f, 0.8f);
if (a_TDI.Attacker != NULL)
{
m_Target = a_TDI.Attacker;
@@ -317,6 +320,7 @@ void cMonster::DoTakeDamage(TakeDamageInfo & a_TDI)
void cMonster::KilledBy(cPawn * a_Killer)
{
super::KilledBy(a_Killer);
+ if(m_SoundHurt != "") m_World->BroadcastSoundEffect(m_SoundDeath, (int)(m_Pos.x * 8), (int)(m_Pos.y * 8), (int)(m_Pos.z * 8), 1.0f, 0.8f);
m_DestroyTimer = 0;
}
diff --git a/source/Mobs/Monster.h b/source/Mobs/Monster.h
index 051477162..2c26045ff 100644
--- a/source/Mobs/Monster.h
+++ b/source/Mobs/Monster.h
@@ -92,6 +92,9 @@ protected:
char m_MobType;
+ AString m_SoundHurt;
+ AString m_SoundDeath;
+
float m_SeePlayerInterval;
float m_AttackDamage;
float m_AttackRange;
diff --git a/source/Mobs/Mooshroom.cpp b/source/Mobs/Mooshroom.cpp
index aca32873f..148b0c068 100644
--- a/source/Mobs/Mooshroom.cpp
+++ b/source/Mobs/Mooshroom.cpp
@@ -16,6 +16,8 @@
cMooshroom::cMooshroom(void)
{
m_MobType = 96;
+ m_SoundHurt = "mob.cow.hurt";
+ m_SoundDeath = "mob.cow.hurt";
GetMonsterConfig("Mooshroom");
}
diff --git a/source/Mobs/Ocelot.cpp b/source/Mobs/Ocelot.cpp
index 02d5ccc37..df2eb5c04 100644
--- a/source/Mobs/Ocelot.cpp
+++ b/source/Mobs/Ocelot.cpp
@@ -10,6 +10,8 @@
cOcelot::cOcelot()
{
m_MobType = 98;
+ m_SoundHurt = "mob.cat.hitt";
+ m_SoundDeath = "mob.cat.hitt";
GetMonsterConfig("Ocelot");
}
diff --git a/source/Mobs/Pig.cpp b/source/Mobs/Pig.cpp
index 0e0d4e875..c75d0c0bf 100644
--- a/source/Mobs/Pig.cpp
+++ b/source/Mobs/Pig.cpp
@@ -10,6 +10,8 @@
cPig::cPig(void)
{
m_MobType = 90;
+ m_SoundHurt = "mob.pig.say";
+ m_SoundDeath = "mob.pig.death";
GetMonsterConfig("Pig");
}
diff --git a/source/Mobs/Sheep.cpp b/source/Mobs/Sheep.cpp
index 997184dcf..c4cdba1cf 100644
--- a/source/Mobs/Sheep.cpp
+++ b/source/Mobs/Sheep.cpp
@@ -13,6 +13,8 @@ cSheep::cSheep(void) :
m_WoolColor(E_META_WOOL_WHITE)
{
m_MobType = 91;
+ m_SoundHurt = "mob.sheep.say";
+ m_SoundDeath = "mob.sheep.say";
GetMonsterConfig("Sheep");
}
diff --git a/source/Mobs/Silverfish.cpp b/source/Mobs/Silverfish.cpp
index a8ced0b6b..d62b7cc14 100644
--- a/source/Mobs/Silverfish.cpp
+++ b/source/Mobs/Silverfish.cpp
@@ -10,6 +10,8 @@
cSilverfish::cSilverfish(void)
{
m_MobType = 60;
+ m_SoundHurt = "mob.silverfish.hit";
+ m_SoundDeath = "mob.silverfish.kill";
GetMonsterConfig("Silverfish");
}
diff --git a/source/Mobs/Skeleton.cpp b/source/Mobs/Skeleton.cpp
index 684e1e13d..279aa0fe3 100644
--- a/source/Mobs/Skeleton.cpp
+++ b/source/Mobs/Skeleton.cpp
@@ -10,6 +10,8 @@
cSkeleton::cSkeleton(void)
{
m_MobType = 51;
+ m_SoundHurt = "mob.skeleton.hurt";
+ m_SoundDeath = "mob.skeleton.death";
GetMonsterConfig("Skeleton");
}
diff --git a/source/Mobs/Slime.cpp b/source/Mobs/Slime.cpp
index 5df887934..c95915215 100644
--- a/source/Mobs/Slime.cpp
+++ b/source/Mobs/Slime.cpp
@@ -12,6 +12,8 @@
cSlime::cSlime(void)
{
m_MobType = 55;
+ m_SoundHurt = "mob.slime.attack";
+ m_SoundDeath = "mob.slime.attack";
GetMonsterConfig("Slime");
}
diff --git a/source/Mobs/Spider.cpp b/source/Mobs/Spider.cpp
index 1e1338b58..608858a5e 100644
--- a/source/Mobs/Spider.cpp
+++ b/source/Mobs/Spider.cpp
@@ -10,6 +10,8 @@
cSpider::cSpider()
{
m_MobType = 52;
+ m_SoundHurt = "mob.spider.say";
+ m_SoundDeath = "mob.spider.death";
GetMonsterConfig("Spider");
}
diff --git a/source/Mobs/Wolf.cpp b/source/Mobs/Wolf.cpp
index 5a8ceabbc..52bfb46cb 100644
--- a/source/Mobs/Wolf.cpp
+++ b/source/Mobs/Wolf.cpp
@@ -10,6 +10,8 @@
cWolf::cWolf(void)
{
m_MobType = 95;
+ m_SoundHurt = "mob.wolf.hurt";
+ m_SoundDeath = "mob.wolf.death";
GetMonsterConfig("Wolf");
}
diff --git a/source/Mobs/Zombie.cpp b/source/Mobs/Zombie.cpp
index 15e99734b..c3e331226 100644
--- a/source/Mobs/Zombie.cpp
+++ b/source/Mobs/Zombie.cpp
@@ -10,6 +10,8 @@
cZombie::cZombie()
{
m_MobType = 54;
+ m_SoundHurt = "mob.zombie.hurt";
+ m_SoundDeath = "mob.zombie.death";
GetMonsterConfig("Zombie");
}
diff --git a/source/Mobs/Zombiepigman.cpp b/source/Mobs/Zombiepigman.cpp
index 37cf02925..89e679050 100644
--- a/source/Mobs/Zombiepigman.cpp
+++ b/source/Mobs/Zombiepigman.cpp
@@ -10,6 +10,8 @@
cZombiepigman::cZombiepigman()
{
m_MobType = 57;
+ m_SoundHurt = "mob.zombiepig.zpighurt";
+ m_SoundDeath = "mob.zombiepig.zpigdeath";
GetMonsterConfig("Zombiepigman");
}