diff --git a/effects.cc b/effects.cc
index 27c74f2a..e7208cdd 100644
--- a/effects.cc
+++ b/effects.cc
@@ -1769,6 +1769,22 @@ Fire_field_effect::Fire_field_effect(
field = Game_object_weak(field_shared);
field_obj->set_flag(Obj_flags::is_temporary);
field_obj->move(t.tx, t.ty, t.tz);
+ for (int frame = 1; frame <= 5; ++frame) {
+ Game_object_shared dust_shared = gmap->create_ireg_object(224, frame);
+ Game_object *dust_obj = dust_shared.get();
+ dust = Game_object_weak(dust_shared);
+ dust_obj->set_flag(Obj_flags::is_temporary);
+ if (frame == 5)
+ dust_obj->move(t.tx, t.ty, t.tz);
+ else if (frame == 1)
+ dust_obj->move(t.tx, t.ty + 1, t.tz);
+ else if (frame == 2)
+ dust_obj->move(t.tx, t.ty - 1, t.tz);
+ else if (frame == 3)
+ dust_obj->move(t.tx - 1, t.ty, t.tz);
+ else if (frame == 4)
+ dust_obj->move(t.tx + 1, t.ty, t.tz);
+ }
gwin->get_tqueue()->add(Game::get_ticks() + 3000 + rand() % 2000, this);
}
diff --git a/effects.h b/effects.h
index da9d3bf9..00b57600 100644
--- a/effects.h
+++ b/effects.h
@@ -379,6 +379,7 @@ class Earthquake : public Time_sensitive {
*/
class Fire_field_effect : public Special_effect {
Game_object_weak field; // What we create.
+ Game_object_weak dust;
public:
Fire_field_effect(Tile_coord const &t);
void handle_event(unsigned long curtime, uintptr udata) override;
Comments
0 B
|👍
/👎
0 B
|👍
/👎