From 013a5ca196545a094f27c1b708facd0084d58d55 Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Thu, 22 May 2008 20:20:43 +0000 Subject: [PATCH] Rolled back bomb to old behaviour, some bomb gfx tuning SVN-Revision: 5508 --- data/images/creatures/mr_bomb/bomb.sprite | 48 +++++++++---- data/images/creatures/mr_bomb/exploding-left-1.png | Bin 2859 -> 2911 bytes data/images/creatures/mr_bomb/exploding-left-2.png | Bin 2829 -> 2942 bytes data/images/creatures/mr_bomb/exploding-left-3.png | Bin 2754 -> 2940 bytes data/images/creatures/mr_bomb/exploding-left-4.png | Bin 0 -> 2644 bytes data/images/creatures/mr_bomb/mr_bomb.sprite | 42 ++++++++--- src/badguy/mrbomb.cpp | 79 ++------------------- src/badguy/mrbomb.hpp | 12 +--- 8 files changed, 75 insertions(+), 106 deletions(-) create mode 100644 data/images/creatures/mr_bomb/exploding-left-4.png diff --git a/data/images/creatures/mr_bomb/bomb.sprite b/data/images/creatures/mr_bomb/bomb.sprite index de0076a42..dbb83b807 100644 --- a/data/images/creatures/mr_bomb/bomb.sprite +++ b/data/images/creatures/mr_bomb/bomb.sprite @@ -2,21 +2,43 @@ (action (name "ticking-left") - (fps 15.0) - (hitbox 4 6 32 34) - (images "exploding-left-0.png" - "exploding-left-1.png" - "exploding-left-2.png" - "exploding-left-3.png" - "exploding-left-2.png" - "exploding-left-1.png" - )) - + (fps 5.0) + (hitbox 5 8 32 32) + (images + "exploding-left-0.png" + "exploding-left-1.png" + "exploding-left-2.png" + "exploding-left-3.png" + "exploding-left-4.png" + "exploding-left-3.png" + "exploding-left-2.png" + "exploding-left-1.png" + "exploding-left-0.png" + "exploding-left-1.png" + "exploding-left-2.png" + "exploding-left-3.png" + "exploding-left-4.png" + "exploding-left-3.png" + "exploding-left-2.png" + "exploding-left-1.png" + "exploding-left-0.png" + "exploding-left-2.png" + "exploding-left-4.png" + "exploding-left-2.png" + "exploding-left-0.png" + "exploding-left-2.png" + "exploding-left-4.png" + "exploding-left-2.png" + "exploding-left-0.png" + "exploding-left-4.png" + "exploding-left-0.png" + "exploding-left-4.png" + )) (action (name "ticking-right") - (fps 15.0) - (hitbox 10 8 31.8 31.8) + (fps 5.0) + (hitbox 5 8 32 32) (mirror-action "ticking-left")) -) + ) diff --git a/data/images/creatures/mr_bomb/exploding-left-1.png b/data/images/creatures/mr_bomb/exploding-left-1.png index eb459cf5a79c62f8b766770bb4f98f212f80cf3d..069050f1def9eaa1757621d810f5272c68c2d7a4 100644 GIT binary patch delta 2815 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 delta 2733 zcmV;e3R3m{7L68=Hwgd$0002_L%V;GKp_VTFDpD8_bQQSEPrH4L_t(o!|j;cuV>X= zz&~rPy?^`M=A5~m;Y_Cvp|mOt2*fFr7PWvPtsxbnLWKuwwWf*sVAMYOVB(AV2atHF zmxh=~Y#LHytg)S1V+z=mLYW~9%rKofXD(;X@0|0y?8{o~`~CW`r=}qg&Ojgfz)JSZ zzO3(OfA8xH?|-g$*SqV7vciul*gf~$Qye~g*q=FbMgiQ98sL5R-B)y7x8lA3$Y3zI zv8t*+d+MpDQt`vs+(f;Br@suqFbN^()$DWcz4y+=81JvD>Q9!Jmye7_qwwO3FU|m; zdq*05`~x4`_s!AzuZwecn{zkfSc#?!*@Ubz5o4`R^?!G>%GcDnC;n&q)aZ3vJOSL| zoZE2Dedp-Wqw(OugP+~Kd-v@5^XJ{!vuAZu&4ssT98=2M(o0~(LTN&W-1Z&9(9i6 zFTB996E8Cs;iI?R#DSSWS2w)8dXcZMevjJZn`UG(Z=pP>XxjVYD`1eCqSi1ic zALhU>+>S3R@?=Whp3+?!k|s5AG@;(yrhlE*WK~)fq9~K5VIqk-M<`3?78lXNvwqvR{^$(v)WOVCEFZi&+=T^C7Ri*=FI)Qq-hhKudQ1RDYOznY6m%M(g%Uv_lRK?KNT9}?bDmcKn=~}z zHG`bLL?a1JnP3i&>mznrBPpZV=uD}zP+O*TLM{YJpmyb_yni9uUnw}e_qejp3iv)) zoqO{_`G%mIaXdNS=B2gMC;9KoYuvH0m)N$9>M`cv@Z21=2;T zv%4rcIGCYJN`FLn;rZ|K42Cmkv(lNc;0tzZ*=t=veeVv9_RmvUV1t4|RUyHl77!O{ zEHjpbnyl^EM_Wn9&*zB6$R07gDFIk6Dpm$F4DifqV1F3UWo5nX7)xR{1ooE|=IC7k zVPu&mD-D^}S>NgfPj(P7TFG=tu%v9~3~+qsQLp*fT7R-%d4E?Dg5&UDo?S)3zA#`; z14ZE&_>#k=W4A9E4>GAg)1hXxS=hEjBf>Nb+nPwh=v@D8Q3R42Dv=~Y%!!yYTREb} zu^nqPnS7yDk+qZv237FPxju>;CrmUGouI(Ldv+BiyD2Hmk<{4K#3*OBb7n(3CML9m zKFY%Y^?x4m4sk|GiP&{qY$u300lu)~0mMYQZr+zS)n-Rl$^rw#(>D{&unf_ZktXUS zOe8ZTvY8T_IkIVqt(>SW)0iP;1%)G2C6onL1XPq9BeCmscRmAl{QF~!5nOcR`gpp>pQ(`EIO@B=^l8I*IvLF`$3XdxXSP?KEFd(K# z%9#`+m!=c8B?Ej)vDK>rtu?L9`ts0*Sr-WA&@1)b)JS3^3_mDwGgWWivLu-y&QJp}!BVD+9U6tUZTVh3p))yg-TU5m z{bVnioyhf`4=0j;0T6OP-nao&ry%ui1S^WMqsC_)y@h zitLo6O3q43krWfLZOLuNq-|Jjr?jTq4j##-|MgZJJ03t(t~lx(|KM;p9x4YMtY-W2 z=;%9l0OzU70hA?H^hsS(CW?|$f8Jm3YBpjE&Yy7b8`<=koyfoH*;D0;zjBV>o`3a$ z1I2(nMcH@%7^;0^5sHFrf;jqaUW8%l*os}>T{-`GG5z$_$bDNwvdR@lar`mxkjI5Z z@0kmM$^}Z_*O1nfR)nc$#v*8c$odlS=VJQo)yjNFW5>!Bi@>8e?l!X{;0^%`);q$) nuvP18_t$}c6w}e$mGytXF4=D2I}XCT00000NkvXXu0mjf3-oCP diff --git a/data/images/creatures/mr_bomb/exploding-left-3.png b/data/images/creatures/mr_bomb/exploding-left-3.png index f02a9b1dc2dc4dbcfaaa5a128555906b069c9d27..e5ee6223f01119e0ebaa870c985e6d9c6851579c 100644 GIT binary patch delta 2844 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 #include "mrbomb.hpp" +#include "bomb.hpp" #include "object/explosion.hpp" #include "sprite/sprite_manager.hpp" #include "audio/sound_manager.hpp" -#include "level.hpp" - -namespace { - const float TICKING_TIME = 1.0f; /**< delay until ticking MrBomb explodes */ -} MrBomb::MrBomb(const lisp::Lisp& reader) : WalkingBadguy(reader, "images/creatures/mr_bomb/mr_bomb.sprite", "left", "right") @@ -36,16 +32,9 @@ MrBomb::MrBomb(const lisp::Lisp& reader) max_drop_height = 16; grabbed = false; + //Prevent stutter when Tux jumps on Mr Bomb sound_manager->preload("sounds/explosion.wav"); - ticking.reset(sound_manager->create_sound_source("sounds/fizz.wav")); - ticking->set_position(get_pos()); - ticking->set_looping(true); - ticking->set_gain(2.0); - ticking->set_reference_distance(32); - - state = STATE_IDLE; - //Check if we need another sprite if( !reader.get( "sprite", sprite_name ) ){ return; @@ -66,14 +55,6 @@ MrBomb::MrBomb(const Vector& pos, Direction d) max_drop_height = 16; grabbed = false; sound_manager->preload("sounds/explosion.wav"); - - state = STATE_IDLE; - - ticking.reset(sound_manager->create_sound_source("sounds/fizz.wav")); - ticking->set_position(get_pos()); - ticking->set_looping(true); - ticking->set_gain(2.0); - ticking->set_reference_distance(32); } void @@ -103,58 +84,21 @@ MrBomb::collision_player(Player& player, const CollisionHit& hit) bool MrBomb::collision_squished(GameObject& object) { - if(frozen) unfreeze(); - Player* player = dynamic_cast(&object); - if (player) { - player->bounce(*this); - } - if (state == STATE_IDLE) { - if (player && countMe) Sector::current()->get_level()->stats.badguys++; - state = STATE_TICKING; - - // TODO: currently we need to re-create ticking sound object every time, in case we had to stop it - ticking.reset(sound_manager->create_sound_source("sounds/fizz.wav")); - ticking->set_position(get_pos()); - ticking->set_looping(true); - ticking->set_gain(2.0); - ticking->set_reference_distance(32); - - ticking->play(); - ticking_timer.start(TICKING_TIME); - walk_left_action = "ticking-left"; - walk_right_action = "ticking-right"; - sprite->set_action(dir == LEFT ? walk_left_action : walk_right_action); - } + remove_me(); + Sector::current()->add_object(new Bomb(get_pos(), dir, sprite_name )); + kill_squished(object); return true; } void MrBomb::active_update(float elapsed_time) { - if (state == STATE_TICKING) { - ticking->set_position(get_pos()); - if(ticking_timer.check()) { - explode(); - } - } if(grabbed) return; WalkingBadguy::active_update(elapsed_time); } void -MrBomb::explode() -{ - ticking->stop(); - - remove_me(); - Explosion* explosion = new Explosion(get_bbox().get_middle()); - Sector::current()->add_object(explosion); - - run_dead_script(); -} - -void MrBomb::kill_fall() { remove_me(); @@ -188,19 +132,6 @@ MrBomb::freeze() { WalkingBadguy::freeze(); sprite->set_action(dir == LEFT ? "iced-left" : "iced-right"); - if (state == STATE_TICKING) { - ticking_timer.stop(); - ticking->stop(); - walk_left_action = "left"; - walk_right_action = "right"; - state = STATE_IDLE; - } -} - -void -MrBomb::unfreeze() -{ - WalkingBadguy::unfreeze(); } bool diff --git a/src/badguy/mrbomb.hpp b/src/badguy/mrbomb.hpp index 4f28ce602..14f326dec 100644 --- a/src/badguy/mrbomb.hpp +++ b/src/badguy/mrbomb.hpp @@ -41,21 +41,11 @@ public: bool is_portable() const; void freeze(); - void unfreeze(); bool is_freezable() const; - void explode(); + virtual MrBomb* clone() const { return new MrBomb(*this); } protected: - enum State { - STATE_IDLE, - STATE_TICKING - }; - - State state; - std::auto_ptr ticking; - Timer ticking_timer; - bool collision_squished(GameObject& object); private: -- 2.11.0