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.279 by root, Thu Jan 8 03:03:23 2009 UTC vs.
Revision 1.281 by root, Sun Jan 11 06:08:40 2009 UTC

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 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008,2009 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2001,2007 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2001,2007 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992,2007 Frank Tore Johansen 6 * Copyright (©) 1992,2007 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify 8 * Deliantra is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by 9 * it under the terms of the GNU General Public License as published by
2493 container = 0; 2493 container = 0;
2494 2494
2495 // client needs item update to make it work, client bug requires this to be separate 2495 // client needs item update to make it work, client bug requires this to be separate
2496 esrv_update_item (UPD_FLAGS, this, old_container); 2496 esrv_update_item (UPD_FLAGS, this, old_container);
2497 2497
2498 new_draw_info_format (NDI_UNIQUE, 0, this, "You close %s.", query_name (old_container)); 2498 new_draw_info_format (NDI_UNIQUE, 0, this, "You close %s.", old_container->query_name ());
2499 play_sound (sound_find ("chest_close")); 2499 play_sound (sound_find ("chest_close"));
2500 } 2500 }
2501 2501
2502 if (new_container) 2502 if (new_container)
2503 { 2503 {
2513 closer->flag [FLAG_NO_MAP_SAVE] = 1; 2513 closer->flag [FLAG_NO_MAP_SAVE] = 1;
2514 new_container->insert (closer); 2514 new_container->insert (closer);
2515 } 2515 }
2516#endif 2516#endif
2517 2517
2518 new_draw_info_format (NDI_UNIQUE, 0, this, "You open %s.", query_name (new_container)); 2518 new_draw_info_format (NDI_UNIQUE, 0, this, "You open %s.", new_container->query_name ());
2519 2519
2520 // make sure the container is available, client bug requires this to be separate 2520 // make sure the container is available, client bug requires this to be separate
2521 esrv_send_item (this, new_container); 2521 esrv_send_item (this, new_container);
2522 2522
2523 new_container->flag [FLAG_APPLIED] = true; 2523 new_container->flag [FLAG_APPLIED] = true;
2563 2563
2564 return insert (force); 2564 return insert (force);
2565} 2565}
2566 2566
2567void 2567void
2568object::play_sound (faceidx sound) 2568object::play_sound (faceidx sound) const
2569{ 2569{
2570 if (!sound) 2570 if (!sound)
2571 return; 2571 return;
2572 2572
2573 if (flag [FLAG_REMOVED]) 2573 if (is_on_map ())
2574 return;
2575
2576 if (env)
2577 {
2578 if (object *pl = in_player ())
2579 pl->contr->play_sound (sound);
2580 }
2581 else
2582 map->play_sound (sound, x, y); 2574 map->play_sound (sound, x, y);
2575 else if (object *pl = in_player ())
2576 pl->contr->play_sound (sound);
2577}
2578
2579void
2580object::say_msg (const char *msg) const
2581{
2582 if (is_on_map ())
2583 map->say_msg (msg, x, y);
2584 else if (object *pl = in_player ())
2585 pl->contr->play_sound (sound);
2583} 2586}
2584 2587
2585void 2588void
2586object::make_noise () 2589object::make_noise ()
2587{ 2590{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines