ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/object.C
(Generate patch)

Comparing deliantra/server/common/object.C (file contents):
Revision 1.237 by root, Tue May 6 21:04:37 2008 UTC vs.
Revision 1.240 by root, Wed May 7 13:40:30 2008 UTC

904 * drop on that space. 904 * drop on that space.
905 */ 905 */
906 if (!drop_to_ground 906 if (!drop_to_ground
907 || !map 907 || !map
908 || map->in_memory != MAP_ACTIVE 908 || map->in_memory != MAP_ACTIVE
909 || map->nodrop 909 || map->no_drop
910 || ms ().move_block == MOVE_ALL) 910 || ms ().move_block == MOVE_ALL)
911 { 911 {
912 while (inv) 912 while (inv)
913 { 913 {
914 inv->destroy_inv (false); 914 inv->destroy_inv (false);
943 943
944static struct freed_map : maptile 944static struct freed_map : maptile
945{ 945{
946 freed_map () 946 freed_map ()
947 { 947 {
948 path = "<freed objects map>"; 948 path = "<freed objects map>";
949 name = "/internal/freed_objects_map"; 949 name = "/internal/freed_objects_map";
950 width = 3; 950 width = 3;
951 height = 3; 951 height = 3;
952 nodrop = 1; 952 no_drop = 1;
953 no_reset = 1;
953 954
954 alloc (); 955 alloc ();
955 in_memory = MAP_ACTIVE; 956 in_memory = MAP_ACTIVE;
956 } 957 }
957 958
1390 } /* If objects on this space */ 1391 } /* If objects on this space */
1391 1392
1392 if (flag & INS_ABOVE_FLOOR_ONLY) 1393 if (flag & INS_ABOVE_FLOOR_ONLY)
1393 top = floor; 1394 top = floor;
1394 1395
1395 /* Top is the object that our object (op) is going to get inserted above. 1396 // insert object above top, or bottom-most if top = 0
1396 */
1397
1398 /* no top found, insert on top */
1399 if (!top) 1397 if (!top)
1400 { 1398 {
1401 op->above = 0; 1399 op->below = 0;
1402 op->below = ms.top; 1400 op->above = ms.bot;
1403 ms.top = op; 1401 ms.bot = op;
1404 1402
1405 *(op->below ? &op->below->above : &ms.bot) = op; 1403 *(op->above ? &op->above->below : &ms.top) = op;
1406 } 1404 }
1407 else 1405 else
1408 { /* get inserted into the stack above top */ 1406 {
1409 op->above = top->above; 1407 op->above = top->above;
1410 top->above = op; 1408 top->above = op;
1411 1409
1412 op->below = top; 1410 op->below = top;
1413 *(op->above ? &op->above->below : &ms.top) = op; 1411 *(op->above ? &op->above->below : &ms.top) = op;
1414 } 1412 }
1415 } /* else not INS_BELOW_ORIGINATOR */ 1413 }
1416 1414
1417 if (op->type == PLAYER) 1415 if (op->type == PLAYER)
1418 { 1416 {
1419 op->contr->do_los = 1; 1417 op->contr->do_los = 1;
1420 ++op->map->players; 1418 ++op->map->players;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines