- char * bump_dsc = " bumps into ";
- struct MapObjDef * mod = get_map_obj_def(world, monster2->map_obj.type);
- char * msg = malloc(strlen(dsc_monster1) + strlen(bump_dsc)
- + strlen(mod->desc) + 3);
- sprintf(msg, "\n%s%s%s.", dsc_monster1, bump_dsc, mod->desc);
- update_log(world, msg);
- free(msg);
-}
-
-
-
-static void monster_hits_player(struct World * world, char * dsc_monster)
-{
- char * hit_dsc = " hits you";
- char * msg = malloc(strlen(dsc_monster) + strlen(hit_dsc) + 3);
- sprintf(msg, "\n%s%s.", dsc_monster, hit_dsc);
- update_log(world, msg);
- free(msg);
- world->player->hitpoints--;
- if (0 == world->player->hitpoints)
+ struct MapObjDef * mod_hitter = get_map_object_def(hitter->type);
+ struct MapObjDef * mod_hitted = get_map_object_def(hitted->type);
+ struct MapObj * player = get_player();
+ char * msg1 = "You";
+ char * msg2 = "wound";
+ char * msg3 = "you";
+ if (player != hitter)
+ {
+ msg1 = mod_hitter->name;
+ msg2 = "wounds";
+ }
+ if (player != hitted)