aboutsummaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 05f1da5e0..5a278a52e 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -1356,6 +1356,10 @@ void the_game(
// NOTE: So we have to use getTime() and call run()s between them
u32 lasttime = device->getTimer()->getTime();
+ LocalPlayer* player = client.getEnv().getLocalPlayer();
+ player->hurt_tilt_timer = 0;
+ player->hurt_tilt_strength = 0;
+
for(;;)
{
if(device->run() == false || kill == true)
@@ -2055,8 +2059,13 @@ void the_game(
{
//u16 damage = event.player_damage.amount;
//infostream<<"Player damage: "<<damage<<std::endl;
+
damage_flash += 100.0;
damage_flash += 8.0 * event.player_damage.amount;
+
+ player->hurt_tilt_timer = 1.5;
+ player->hurt_tilt_strength = event.player_damage.amount/2;
+ player->hurt_tilt_strength = rangelim(player->hurt_tilt_strength, 2.0, 10.0);
}
else if(event.type == CE_PLAYER_FORCE_MOVE)
{
@@ -2088,6 +2097,10 @@ void the_game(
damage_flash = 0;
+ LocalPlayer* player = client.getEnv().getLocalPlayer();
+ player->hurt_tilt_timer = 0;
+ player->hurt_tilt_strength = 0;
+
/*LocalPlayer* player = client.getLocalPlayer();
player->setPosition(player->getPosition() + v3f(0,-BS,0));
camera.update(player, busytime, screensize);*/
@@ -3058,6 +3071,16 @@ void the_game(
}
/*
+ Damage camera tilt
+ */
+ if(player->hurt_tilt_timer > 0.0)
+ {
+ player->hurt_tilt_timer -= dtime*5;
+ if(player->hurt_tilt_timer < 0)
+ player->hurt_tilt_strength = 0;
+ }
+
+ /*
Draw gui
*/
// 0-1ms