1 | /* |
1 | /* |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
3 | * |
3 | * |
4 | * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
4 | * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
5 | * Copyright (©) 2001,2007 Mark Wedel & Crossfire Development Team |
5 | * Copyright (©) 2001 Mark Wedel & Crossfire Development Team |
6 | * Copyright (©) 1992,2007 Frank Tore Johansen |
6 | * Copyright (©) 1992 Frank Tore Johansen |
7 | * |
7 | * |
8 | * Deliantra is free software: you can redistribute it and/or modify it under |
8 | * Deliantra is free software: you can redistribute it and/or modify it under |
9 | * the terms of the Affero GNU General Public License as published by the |
9 | * the terms of the Affero GNU General Public License as published by the |
10 | * Free Software Foundation, either version 3 of the License, or (at your |
10 | * Free Software Foundation, either version 3 of the License, or (at your |
11 | * option) any later version. |
11 | * option) any later version. |
… | |
… | |
622 | |
622 | |
623 | new_draw_info_format (NDI_UNIQUE, 0, this, |
623 | new_draw_info_format (NDI_UNIQUE, 0, this, |
624 | "You try to balance all your items at once, " |
624 | "You try to balance all your items at once, " |
625 | "but the %s is just too much for your body. " |
625 | "but the %s is just too much for your body. " |
626 | "[You need to unapply some items first - use the 'body' command to see " |
626 | "[You need to unapply some items first - use the 'body' command to see " |
627 | "how many items you cna wera on a specific body part.]", &ob->name); |
627 | "how many items you can wear on a specific body part.]", &ob->name); |
628 | return false; |
628 | return false; |
629 | } |
629 | } |
630 | |
630 | |
631 | //new_draw_info_format (NDI_UNIQUE, 0, this, "You switch to your %s.", &ob->name); |
631 | //new_draw_info_format (NDI_UNIQUE, 0, this, "You switch to your %s.", &ob->name); |
632 | } |
632 | } |
… | |
… | |
1331 | * Passing 0 for flag gives proper default values, so flag really only needs |
1331 | * Passing 0 for flag gives proper default values, so flag really only needs |
1332 | * to be set if special handling is needed. |
1332 | * to be set if special handling is needed. |
1333 | * |
1333 | * |
1334 | * Return value: |
1334 | * Return value: |
1335 | * new object if 'op' was merged with other object |
1335 | * new object if 'op' was merged with other object |
1336 | * NULL if 'op' was destroyed |
1336 | * NULL if there was an error (destroyed, blocked etc.) |
1337 | * just 'op' otherwise |
1337 | * just 'op' otherwise |
1338 | */ |
1338 | */ |
1339 | object * |
1339 | object * |
1340 | insert_ob_in_map (object *op, maptile *m, object *originator, int flag) |
1340 | insert_ob_in_map (object *op, maptile *m, object *originator, int flag) |
1341 | { |
1341 | { |
… | |
… | |
2693 | |
2693 | |
2694 | insert (force); |
2694 | insert (force); |
2695 | } |
2695 | } |
2696 | } |
2696 | } |
2697 | |
2697 | |
|
|
2698 | void object::change_move_type (MoveType mt) |
|
|
2699 | { |
|
|
2700 | if (move_type == mt) |
|
|
2701 | return; |
|
|
2702 | |
|
|
2703 | if (is_on_map ()) |
|
|
2704 | { |
|
|
2705 | // we are on the map, so handle move_on/off effects |
|
|
2706 | remove (); |
|
|
2707 | move_type = mt; |
|
|
2708 | map->insert (this, x, y, this); |
|
|
2709 | } |
|
|
2710 | else |
|
|
2711 | move_type = mt; |
|
|
2712 | } |
|
|
2713 | |