: BadGuy(reader, "images/creatures/yeti/yeti.sprite")
{
hit_points = INITIAL_HITPOINTS;
- reader.get("dead-script", dead_script);
countMe = false;
sound_manager->preload("sounds/yeti_gna.wav");
sound_manager->preload("sounds/yeti_roar.wav");
+ draw_dead_script_hint = false;
}
Yeti::~Yeti()
}
bool
-Yeti::collision_squished(Player& player)
+Yeti::collision_squished(GameObject& object)
{
- kill_squished(player);
+ kill_squished(object);
return true;
}
void
-Yeti::kill_squished(Player& player)
+Yeti::kill_squished(GameObject& object)
{
- player.bounce(*this);
- take_hit(player);
+ Player* player = dynamic_cast<Player*>(&object);
+ if (player) {
+ player->bounce(*this);
+ take_hit(*player);
+ }
}
void Yeti::take_hit(Player& )
if (countMe) Sector::current()->get_level()->stats.badguys++;
- // start script
if(dead_script != "") {
std::istringstream stream(dead_script);
Sector::current()->run_script(stream, "Yeti - dead-script");
writer.write_float("x", start_position.x);
writer.write_float("y", start_position.y);
- if(dead_script != "") {
- writer.write_string("dead-script", dead_script);
- }
-
writer.end_list("yeti");
}
Yeti::drop_stalactite()
{
// make a stalactite falling down and shake camera a bit
- Sector::current()->camera->shake(.1, 0, 10);
+ Sector::current()->camera->shake(.1f, 0, 10);
YetiStalactite* nearest = 0;
float dist = FLT_MAX;