diff --git a/data/models/License.txt b/data/models/License.txt
index 3ee158000..68c56d492 100644
--- a/data/models/License.txt
+++ b/data/models/License.txt
@@ -74,6 +74,9 @@
* rubber_ball-icon, plunger icon, cake icon, bowling ball texture and icon
by Totoplus62, released under CC-BY-SA 3.0
+
+* shield-icon
+ by tuxfan, release under CC-BY-SA 3.0
Others are GPL, by the original (super)TuxKart team
diff --git a/data/models/bubblegum-icon.png b/data/models/bubblegum-icon.png
index 3c144dff4..637d532d3 100644
Binary files a/data/models/bubblegum-icon.png and b/data/models/bubblegum-icon.png differ
diff --git a/data/models/bubblegum_shield.b3d b/data/models/bubblegum_shield.b3d
new file mode 100644
index 000000000..3a1a4c01e
Binary files /dev/null and b/data/models/bubblegum_shield.b3d differ
diff --git a/data/models/bubblegum_shield.png b/data/models/bubblegum_shield.png
new file mode 100644
index 000000000..fe65992a9
Binary files /dev/null and b/data/models/bubblegum_shield.png differ
diff --git a/data/models/shield-icon.png b/data/models/shield-icon.png
new file mode 100644
index 000000000..41e27bc21
Binary files /dev/null and b/data/models/shield-icon.png differ
diff --git a/data/stk_config.xml b/data/stk_config.xml
index 2746789d0..c42716288 100644
--- a/data/stk_config.xml
+++ b/data/stk_config.xml
@@ -114,8 +114,10 @@
nolok-bubble-gum, easter egg -->
-
-
+
+
diff --git a/src/config/stk_config.cpp b/src/config/stk_config.cpp
index 33424df9e..b3f840e74 100644
--- a/src/config/stk_config.cpp
+++ b/src/config/stk_config.cpp
@@ -118,6 +118,7 @@ void STKConfig::load(const std::string &filename)
CHECK_NEG(m_anvil_weight, "anvil-weight" );
CHECK_NEG(m_item_switch_time, "item-switch-time" );
CHECK_NEG(m_bubblegum_counter, "bubblegum disappear counter");
+ CHECK_NEG(m_bubblegum_shield_time, "bubblegum shield-time" );
CHECK_NEG(m_explosion_impulse_objects, "explosion-impulse-objects" );
CHECK_NEG(m_max_history, "max-history" );
CHECK_NEG(m_max_skidmarks, "max-skidmarks" );
@@ -159,6 +160,8 @@ void STKConfig::init_defaults()
m_smooth_angle_limit =
m_penalty_time = m_explosion_impulse_objects = UNDEFINED;
m_bubblegum_counter = -100;
+ m_bubblegum_shield_time = -100;
+ m_shield_restrict_weapos = false;
m_max_karts = -100;
m_max_history = -100;
m_max_skidmarks = -100;
@@ -335,7 +338,9 @@ void STKConfig::getAllData(const XMLNode * root)
if(const XMLNode *bubblegum_node= root->getNode("bubblegum"))
{
- bubblegum_node->get("disappear-counter", &m_bubblegum_counter);
+ bubblegum_node->get("disappear-counter", &m_bubblegum_counter );
+ bubblegum_node->get("shield-time", &m_bubblegum_shield_time );
+ bubblegum_node->get("restrict-weapons", &m_shield_restrict_weapos);
}
if(const XMLNode *explosion_node= root->getNode("explosion"))
diff --git a/src/config/stk_config.hpp b/src/config/stk_config.hpp
index 8dda02cb4..67b93140d 100644
--- a/src/config/stk_config.hpp
+++ b/src/config/stk_config.hpp
@@ -74,8 +74,10 @@ public:
passed on. */
float m_anvil_time; /**