- dsc_dir = "north";
- }
- else if (EAST == d)
- {
- dsc_dir = "east" ;
- }
- else if (SOUTH == d)
- {
- dsc_dir = "south";
- }
- else if (WEST == d)
- {
- dsc_dir = "west" ;
- }
- char * dsc_move = "You fail to move ";
- if (is_passable(world->map, target))
- {
- dsc_move = "You move ";
- world->player->pos = target;
- }
- char msg[strlen(dsc_move) + strlen (dsc_dir) + 3];
- sprintf(msg, "\n%s%s.", dsc_move, dsc_dir);
- update_log(world, msg);
-}
-
-
-
-extern void move_monster(struct World * world, struct Monster * monster)
-{
- char d = rrand() % 5;
- struct yx_uint16 t = mv_yx_in_dir(d, monster->map_obj.pos);
- struct MapObjDef * mod = get_map_obj_def(world, monster->map_obj.type);
- char * dsc = mod->desc;
- if (yx_uint16_cmp(&t, &world->player->pos))
- {
- monster_hits_player(world, dsc);
- return;
- }
- struct Monster * other_monster;
- for (other_monster = world->monster;
- other_monster != 0;
- other_monster = other_monster->map_obj.next)
- {
- if (other_monster == monster)