X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fskull_tile.cpp;h=025b5e8ae4d76f368213d8cbd4bbdbf66a63bc41;hb=a98f7cee9f6a2593c0e1f3442800f159bad410df;hp=1b6d7ea8432bd0a29a10c8d503c917dbc46c1057;hpb=07ddaed2a657e4d2a3d038fed223fc5827159caf;p=supertux.git diff --git a/src/object/skull_tile.cpp b/src/object/skull_tile.cpp index 1b6d7ea84..025b5e8ae 100644 --- a/src/object/skull_tile.cpp +++ b/src/object/skull_tile.cpp @@ -25,35 +25,20 @@ #include "player.hpp" #include "sector.hpp" #include "resources.hpp" -#include "sprite/sprite_manager.hpp" #include "sprite/sprite.hpp" +#include "random_generator.hpp" -static const float CRACKTIME = 0.3; -static const float FALLTIME = 0.8; +static const float CRACKTIME = 0.3f; +static const float FALLTIME = 0.8f; SkullTile::SkullTile(const lisp::Lisp& lisp) - : hit(false), falling(false) + : MovingSprite(lisp, "images/objects/skull_tile/skull_tile.sprite", LAYER_TILES, COLGROUP_STATIC), hit(false), falling(false) { - lisp.get("x", bbox.p1.x); - lisp.get("y", bbox.p1.y); - bbox.set_size(32, 32); - sprite = sprite_manager->create("images/objects/skull_tile/skull_tile.sprite"); - flags |= FLAG_SOLID; - - set_group(COLGROUP_STATIC); -} - -SkullTile::~SkullTile() -{ - delete sprite; } HitResponse -SkullTile::collision(GameObject& other, const CollisionHit& hitdata) +SkullTile::collision(GameObject& other, const CollisionHit& ) { - if(hitdata.normal.y < 0.8) - return FORCE_MOVE; - Player* player = dynamic_cast (&other); if(player) hit = true; @@ -67,10 +52,10 @@ SkullTile::draw(DrawingContext& context) Vector pos = get_pos(); // shacking if(timer.get_timegone() > CRACKTIME) { - pos.x += (rand() % 6) - 3; - } + pos.x += systemRandom.rand(-3, 3); + } - sprite->draw(context, pos, LAYER_TILES); + sprite->draw(context, pos, layer); } void @@ -85,8 +70,7 @@ SkullTile::update(float elapsed_time) } else if(hit) { if(timer.check()) { falling = true; - physic.enable_gravity(true); - flags &= ~FLAG_SOLID; + physic.enable_gravity(true); timer.stop(); } else if(!timer.started()) { timer.start(FALLTIME);