From a27cdf16f40e3a3f4772b944ead8f1e4e5618359 Mon Sep 17 00:00:00 2001 From: Jeija Date: Sat, 28 Apr 2012 02:06:25 +0200 Subject: Tilt camera on player damage (tweaked by PilzAdam) --- src/game.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/game.cpp') 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: "<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);*/ @@ -3057,6 +3070,16 @@ void the_game( damage_flash -= 100.0*dtime; } + /* + 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 */ -- cgit v1.2.3