summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Entities/Pawn.cpp15
-rw-r--r--src/Entities/Pawn.h1
2 files changed, 16 insertions, 0 deletions
diff --git a/src/Entities/Pawn.cpp b/src/Entities/Pawn.cpp
index 9045f8595..126947d3e 100644
--- a/src/Entities/Pawn.cpp
+++ b/src/Entities/Pawn.cpp
@@ -70,6 +70,21 @@ bool cPawn::IsFireproof(void) const
+void cPawn::HandleAir(void)
+{
+ if (IsSubmerged() && HasEntityEffect(cEntityEffect::effWaterBreathing))
+ {
+ // Prevent the oxygen from decreasing
+ return;
+ }
+
+ super::HandleAir();
+}
+
+
+
+
+
void cPawn::AddEntityEffect(cEntityEffect::eType a_EffectType, int a_Duration, short a_Intensity, double a_DistanceModifier)
{
// Check if the plugins allow the addition:
diff --git a/src/Entities/Pawn.h b/src/Entities/Pawn.h
index 40ce9b2dd..67878f699 100644
--- a/src/Entities/Pawn.h
+++ b/src/Entities/Pawn.h
@@ -24,6 +24,7 @@ public:
virtual void KilledBy(TakeDamageInfo & a_TDI) override;
virtual bool IsFireproof(void) const override;
+ virtual void HandleAir(void) override;
// tolua_begin