… | |
… | |
57 | x = rndm (RP->Xsize); |
57 | x = rndm (RP->Xsize); |
58 | y = rndm (RP->Ysize); |
58 | y = rndm (RP->Ysize); |
59 | freeindex = find_first_free_spot (this_monster, map, x, y); |
59 | freeindex = find_first_free_spot (this_monster, map, x, y); |
60 | if (freeindex != -1) |
60 | if (freeindex != -1) |
61 | { |
61 | { |
62 | object *new_monster = object_create_clone (this_monster); |
62 | object *new_monster = this_monster->deep_clone (); |
63 | |
|
|
64 | x += freearr_x[freeindex]; |
63 | x += freearr_x[freeindex]; |
65 | y += freearr_y[freeindex]; |
64 | y += freearr_y[freeindex]; |
66 | |
|
|
67 | new_monster->x = x; |
|
|
68 | new_monster->y = y; |
|
|
69 | insert_ob_in_map (new_monster, map, 0, INS_NO_MERGE | INS_NO_WALK_ON); |
65 | map->insert (new_monster, x, y, 0, INS_NO_MERGE | INS_NO_WALK_ON); |
70 | |
66 | |
71 | if (new_monster->is_alive ()) |
67 | if (new_monster->is_alive ()) |
72 | { |
68 | { |
73 | total_experience += this_monster->stats.exp; |
69 | total_experience += this_monster->stats.exp; |
74 | |
70 | |