diff options
Diffstat (limited to '')
-rw-r--r-- | source/cMonsterConfig.cpp | 2 | ||||
-rw-r--r-- | source/cPawn.cpp | 14 | ||||
-rw-r--r-- | source/cSandSimulator.cpp | 3 |
3 files changed, 12 insertions, 7 deletions
diff --git a/source/cMonsterConfig.cpp b/source/cMonsterConfig.cpp index 1226c74e2..abb2ca2e7 100644 --- a/source/cMonsterConfig.cpp +++ b/source/cMonsterConfig.cpp @@ -87,7 +87,7 @@ void cMonsterConfig::AssignAttributes(cMonster *m, const char* n) m->SetAttackRange(itr->m_AttackRange);
m->SetSightDistance(itr->m_SightDistance);
m->SetAttackRate((int)itr->m_AttackRate);
- m->SetMaxHealth((int)itr->m_AttackRate);
+ m->SetMaxHealth((int)itr->m_MaxHealth);
}
}
}
diff --git a/source/cPawn.cpp b/source/cPawn.cpp index 8b1c951bb..db61f734e 100644 --- a/source/cPawn.cpp +++ b/source/cPawn.cpp @@ -26,6 +26,7 @@ cPawn::cPawn() , m_bBurnable(true)
, m_MetaData(NORMAL)
, m_FireDamageInterval(0.f)
+ , m_BurnPeriod(0.f)
{
SetMaxHealth(20);
SetMaxFoodLevel(125);
@@ -125,17 +126,20 @@ void cPawn::SetMetaData(MetaData a_MetaData) void cPawn::CheckMetaDataBurn()
{
char Block = GetWorld()->GetBlock((int) m_Pos->x, (int) m_Pos->y, (int) m_Pos->z);
-
char BlockAbove = GetWorld()->GetBlock((int) m_Pos->x, (int) m_Pos->y + 1, (int) m_Pos->z);
+ char BlockBelow = GetWorld()->GetBlock((int) m_Pos->x, (int) m_Pos->y - 1, (int) m_Pos->z);
+
if(GetMetaData() == BURNING
&& (IsBlockWater(Block)
- || IsBlockWater(BlockAbove)))
+ || IsBlockWater(BlockAbove)
+ || IsBlockWater(BlockBelow)))
{
SetMetaData(NORMAL);
- }else if(m_bBurnable && GetMetaData() != BURNING
+ }else if(m_bBurnable && GetMetaData() != BURNING
&& (IsBlockLava(Block) || Block == E_BLOCK_FIRE
- || IsBlockLava(BlockAbove) || BlockAbove == E_BLOCK_FIRE)) {
- SetMetaData(BURNING);
+ || IsBlockLava(BlockAbove) || BlockAbove == E_BLOCK_FIRE
+ || IsBlockLava(BlockBelow) || BlockBelow == E_BLOCK_FIRE)) {
+ SetMetaData(BURNING);
}
}
diff --git a/source/cSandSimulator.cpp b/source/cSandSimulator.cpp index c27607f73..c0ed2309b 100644 --- a/source/cSandSimulator.cpp +++ b/source/cSandSimulator.cpp @@ -72,7 +72,8 @@ bool cSandSimulator::IsPassable( char a_BlockID ) {
return a_BlockID == E_BLOCK_AIR
|| IsBlockWater(a_BlockID)
- || IsBlockLava(a_BlockID);
+ || IsBlockLava(a_BlockID)
+ || a_BlockID == E_BLOCK_FIRE;
}
|