final_realms_fluffos_v1/
final_realms_fluffos_v1/bin/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/ChangeLog.old/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/Win32/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/compat/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/compat/simuls/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/include/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/clone/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/command/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/data/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/etc/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/include/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/inherit/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/inherit/master/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/log/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/compiler/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/efuns/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/operators/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/u/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/tmp/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/windows/
final_realms_fluffos_v1/lib/baseobs/guilds/
final_realms_fluffos_v1/lib/baseobs/misc/
final_realms_fluffos_v1/lib/baseobs/races/shadows/
final_realms_fluffos_v1/lib/cmds/god/
final_realms_fluffos_v1/lib/cmds/handlers/
final_realms_fluffos_v1/lib/cmds/handlers/cmds/
final_realms_fluffos_v1/lib/d/heaven/
final_realms_fluffos_v1/lib/d/heaven/heaven/ave/
final_realms_fluffos_v1/lib/d/mudlib/
final_realms_fluffos_v1/lib/d/newbie/
final_realms_fluffos_v1/lib/d/newbie/docs/
final_realms_fluffos_v1/lib/d/newbie/drow/armour/
final_realms_fluffos_v1/lib/d/newbie/drow/items/
final_realms_fluffos_v1/lib/d/newbie/drow/mobs/
final_realms_fluffos_v1/lib/d/newbie/drow/oldmobs/
final_realms_fluffos_v1/lib/d/newbie/drow/weapons/
final_realms_fluffos_v1/lib/d/newbie/duergar/weapons/
final_realms_fluffos_v1/lib/d/newbie/dwarf/weapons/
final_realms_fluffos_v1/lib/d/newbie/elf/cafe/
final_realms_fluffos_v1/lib/d/newbie/elf/chars/equip/
final_realms_fluffos_v1/lib/d/newbie/elf/items/armours/
final_realms_fluffos_v1/lib/d/newbie/elf/items/obj/
final_realms_fluffos_v1/lib/d/newbie/elf/items/weapons/
final_realms_fluffos_v1/lib/d/newbie/elf/quick_fix/
final_realms_fluffos_v1/lib/d/newbie/gnome/armour/
final_realms_fluffos_v1/lib/d/newbie/gnome/buildings/
final_realms_fluffos_v1/lib/d/newbie/gnome/items/
final_realms_fluffos_v1/lib/d/newbie/gnome/npcs/clones/
final_realms_fluffos_v1/lib/d/newbie/gnome/rooms/northrooms/
final_realms_fluffos_v1/lib/d/newbie/gnome/weapons/
final_realms_fluffos_v1/lib/d/newbie/goblin/armour/
final_realms_fluffos_v1/lib/d/newbie/goblin/items/
final_realms_fluffos_v1/lib/d/newbie/grads/log/
final_realms_fluffos_v1/lib/d/newbie/grads/npcs/
final_realms_fluffos_v1/lib/d/newbie/grads/rooms/
final_realms_fluffos_v1/lib/d/newbie/grads/rooms/cave1/
final_realms_fluffos_v1/lib/d/newbie/grads/temp/
final_realms_fluffos_v1/lib/d/newbie/guests/weapons/
final_realms_fluffos_v1/lib/d/newbie/half-elf/items/
final_realms_fluffos_v1/lib/d/newbie/half-elf/newroomss/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/castle/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/drows/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/savannah/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/secret/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/town/
final_realms_fluffos_v1/lib/d/newbie/halfling/
final_realms_fluffos_v1/lib/d/newbie/halfling/misc/
final_realms_fluffos_v1/lib/d/newbie/halfling/rooms/cave/
final_realms_fluffos_v1/lib/d/newbie/human/
final_realms_fluffos_v1/lib/d/newbie/human/armour/
final_realms_fluffos_v1/lib/d/newbie/human/monsters/
final_realms_fluffos_v1/lib/d/newbie/human/obj/
final_realms_fluffos_v1/lib/d/newbie/human/weapons/
final_realms_fluffos_v1/lib/d/newbie/lizard/armour/
final_realms_fluffos_v1/lib/d/newbie/lizard/items/
final_realms_fluffos_v1/lib/d/newbie/lizard/underwater/
final_realms_fluffos_v1/lib/d/newbie/lizard/weapons/
final_realms_fluffos_v1/lib/d/newbie/logs/
final_realms_fluffos_v1/lib/d/newbie/new_halfelf/
final_realms_fluffos_v1/lib/d/newbie/new_halfelf/npcs/
final_realms_fluffos_v1/lib/d/newbie/newdrow/npcs/
final_realms_fluffos_v1/lib/d/newbie/newdrow/rooms/
final_realms_fluffos_v1/lib/d/newbie/newelf/
final_realms_fluffos_v1/lib/d/newbie/newelf/chars/
final_realms_fluffos_v1/lib/d/newbie/newelf/npcs/
final_realms_fluffos_v1/lib/d/newbie/newelf/npcs/recopied/
final_realms_fluffos_v1/lib/d/newbie/newelf/obj/
final_realms_fluffos_v1/lib/d/newbie/newelf/quest_docs./
final_realms_fluffos_v1/lib/d/newbie/newken/
final_realms_fluffos_v1/lib/d/newbie/newken/chars/
final_realms_fluffos_v1/lib/d/newbie/newken/misc/
final_realms_fluffos_v1/lib/d/newbie/newken/npcs/
final_realms_fluffos_v1/lib/d/newbie/newken/obj/
final_realms_fluffos_v1/lib/d/newbie/newliz/
final_realms_fluffos_v1/lib/d/newbie/newliz/cave/
final_realms_fluffos_v1/lib/d/newbie/newliz/npcs/
final_realms_fluffos_v1/lib/d/newbie/orc/items/misc/
final_realms_fluffos_v1/lib/d/newbie/orc/items/weapons/
final_realms_fluffos_v1/lib/d/newbie/orc/tower/
final_realms_fluffos_v1/lib/d/vehicle/
final_realms_fluffos_v1/lib/doc/
final_realms_fluffos_v1/lib/doc/driver/
final_realms_fluffos_v1/lib/doc/driver/concepts/
final_realms_fluffos_v1/lib/doc/driver/driver/
final_realms_fluffos_v1/lib/doc/driver/efuns/arrays/
final_realms_fluffos_v1/lib/doc/driver/efuns/bitstrings/
final_realms_fluffos_v1/lib/doc/driver/efuns/communication/
final_realms_fluffos_v1/lib/doc/driver/efuns/core/
final_realms_fluffos_v1/lib/doc/driver/efuns/debugging/
final_realms_fluffos_v1/lib/doc/driver/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/driver/efuns/interactive/
final_realms_fluffos_v1/lib/doc/driver/efuns/mappings/
final_realms_fluffos_v1/lib/doc/driver/efuns/objects/
final_realms_fluffos_v1/lib/doc/driver/efuns/security/
final_realms_fluffos_v1/lib/doc/driver/efuns/strings/
final_realms_fluffos_v1/lib/doc/driver/efuns/system/
final_realms_fluffos_v1/lib/doc/driver/efuns/types/
final_realms_fluffos_v1/lib/doc/driver/lpc/constructs/
final_realms_fluffos_v1/lib/doc/driver/lpc/types/
final_realms_fluffos_v1/lib/doc/driver/platforms/
final_realms_fluffos_v1/lib/doc/lpc/
final_realms_fluffos_v1/lib/doc/mail/
final_realms_fluffos_v1/lib/doc/man/
final_realms_fluffos_v1/lib/doc/man/html/
final_realms_fluffos_v1/lib/doc/man/html/applies/
final_realms_fluffos_v1/lib/doc/man/html/applies/parsing/
final_realms_fluffos_v1/lib/doc/man/html/driver/
final_realms_fluffos_v1/lib/doc/man/html/efuns/
final_realms_fluffos_v1/lib/doc/man/html/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/html/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/html/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/html/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/html/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/html/efuns/general/
final_realms_fluffos_v1/lib/doc/man/html/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/html/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/local/
final_realms_fluffos_v1/lib/doc/man/local/applies/
final_realms_fluffos_v1/lib/doc/man/local/applies/interactive/
final_realms_fluffos_v1/lib/doc/man/local/applies/master/
final_realms_fluffos_v1/lib/doc/man/local/concepts/
final_realms_fluffos_v1/lib/doc/man/local/defines/
final_realms_fluffos_v1/lib/doc/man/local/driver/
final_realms_fluffos_v1/lib/doc/man/local/efuns/
final_realms_fluffos_v1/lib/doc/man/local/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/local/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/local/efuns/calls/
final_realms_fluffos_v1/lib/doc/man/local/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/local/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/man/local/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/local/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/local/efuns/general/
final_realms_fluffos_v1/lib/doc/man/local/efuns/interactive/
final_realms_fluffos_v1/lib/doc/man/local/efuns/internals/
final_realms_fluffos_v1/lib/doc/man/local/efuns/mappings/
final_realms_fluffos_v1/lib/doc/man/local/efuns/mudlib/
final_realms_fluffos_v1/lib/doc/man/local/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/local/efuns/objects/
final_realms_fluffos_v1/lib/doc/man/local/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/local/efuns/sockets/
final_realms_fluffos_v1/lib/doc/man/local/efuns/strings/
final_realms_fluffos_v1/lib/doc/man/local/efuns/system/
final_realms_fluffos_v1/lib/doc/man/local/historical/
final_realms_fluffos_v1/lib/doc/man/local/lfun/QC/
final_realms_fluffos_v1/lib/doc/man/local/lfun/events/
final_realms_fluffos_v1/lib/doc/man/local/lfun/monster/
final_realms_fluffos_v1/lib/doc/man/local/lfun/properties/
final_realms_fluffos_v1/lib/doc/man/local/lpc/
final_realms_fluffos_v1/lib/doc/man/local/lpc/constructs/
final_realms_fluffos_v1/lib/doc/man/local/lpc/types/
final_realms_fluffos_v1/lib/doc/man/local/standards/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/basic/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/intermediate/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/interactive/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/parsing/
final_realms_fluffos_v1/lib/doc/man/mudos/concepts/
final_realms_fluffos_v1/lib/doc/man/mudos/driver/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/calls/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/general/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mappings/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mixed/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mudlib/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/mudos/lpc/constructs/
final_realms_fluffos_v1/lib/doc/man/mudos/lpc/types/
final_realms_fluffos_v1/lib/doc/races/
final_realms_fluffos_v1/lib/doc/races/old_race/
final_realms_fluffos_v1/lib/global/virtual/
final_realms_fluffos_v1/lib/global/wiz_backup/
final_realms_fluffos_v1/lib/net/config/
final_realms_fluffos_v1/lib/net/daemon/chars/
final_realms_fluffos_v1/lib/net/inherit/
final_realms_fluffos_v1/lib/net/intermud3/
final_realms_fluffos_v1/lib/net/intermud3/cmds/
final_realms_fluffos_v1/lib/net/intermud3/save/
final_realms_fluffos_v1/lib/net/intermud3/services/
final_realms_fluffos_v1/lib/net/obj/
final_realms_fluffos_v1/lib/net/old/
final_realms_fluffos_v1/lib/net/old/intermud/
final_realms_fluffos_v1/lib/net/old/intermud/adm/
final_realms_fluffos_v1/lib/net/old/intermud/services/
final_realms_fluffos_v1/lib/net/old/intermud/udp/
final_realms_fluffos_v1/lib/net/virtual/
final_realms_fluffos_v1/lib/obj/b_day/
final_realms_fluffos_v1/lib/obj/chars/
final_realms_fluffos_v1/lib/obj/handlers/lists/
final_realms_fluffos_v1/lib/obj/handlers/useless/
final_realms_fluffos_v1/lib/obj/monsters/
final_realms_fluffos_v1/lib/obj/roomgen/
final_realms_fluffos_v1/lib/obj/soul/
final_realms_fluffos_v1/lib/obj/vegetation/
final_realms_fluffos_v1/lib/obj/weapons/oldsys/
final_realms_fluffos_v1/lib/open/
final_realms_fluffos_v1/lib/players/g/
final_realms_fluffos_v1/lib/releasefiles/d/heaven/
final_realms_fluffos_v1/lib/releasefiles/d/mudlib/
final_realms_fluffos_v1/lib/releasefiles/d/newbie/
final_realms_fluffos_v1/lib/releasefiles/doc/
final_realms_fluffos_v1/lib/releasefiles/players/g/
final_realms_fluffos_v1/lib/releasefiles/save/
final_realms_fluffos_v1/lib/releasefiles/save/environ/
final_realms_fluffos_v1/lib/releasefiles/save/roomgen/
final_realms_fluffos_v1/lib/releasefiles/secure/
final_realms_fluffos_v1/lib/releasefiles/w/
final_realms_fluffos_v1/lib/releasefiles/w/god/
final_realms_fluffos_v1/lib/room/
final_realms_fluffos_v1/lib/save/
final_realms_fluffos_v1/lib/save/environ/
final_realms_fluffos_v1/lib/save/roomgen/
final_realms_fluffos_v1/lib/scripts/
final_realms_fluffos_v1/lib/secure/crerem/
final_realms_fluffos_v1/lib/secure/dom/
final_realms_fluffos_v1/lib/secure/log/
final_realms_fluffos_v1/lib/secure/misc/
final_realms_fluffos_v1/lib/std/adnd/
final_realms_fluffos_v1/lib/std/commands/shadows/
final_realms_fluffos_v1/lib/std/creator/
final_realms_fluffos_v1/lib/std/curses/
final_realms_fluffos_v1/lib/std/curses/old_sys/
final_realms_fluffos_v1/lib/std/curses/shadows/
final_realms_fluffos_v1/lib/std/dom/
final_realms_fluffos_v1/lib/std/effects/
final_realms_fluffos_v1/lib/std/effects/healing/
final_realms_fluffos_v1/lib/std/effects/other/
final_realms_fluffos_v1/lib/std/effects/poisons/
final_realms_fluffos_v1/lib/std/environ/
final_realms_fluffos_v1/lib/std/guilds/
final_realms_fluffos_v1/lib/std/guilds/priests/samples/
final_realms_fluffos_v1/lib/std/guilds/wizards/
final_realms_fluffos_v1/lib/std/living/baldy/
final_realms_fluffos_v1/lib/std/living/divstuff/
final_realms_fluffos_v1/lib/std/paran/
final_realms_fluffos_v1/lib/std/poisons/
final_realms_fluffos_v1/lib/std/poisons/shadows/
final_realms_fluffos_v1/lib/std/poisons/weapons/
final_realms_fluffos_v1/lib/std/race_groups/
final_realms_fluffos_v1/lib/std/room/
final_realms_fluffos_v1/lib/std/room/old/
final_realms_fluffos_v1/lib/std/rooms/
final_realms_fluffos_v1/lib/std/shadows/
final_realms_fluffos_v1/lib/std/shadows/test_shad/
final_realms_fluffos_v1/lib/std/socket/
final_realms_fluffos_v1/lib/std/spells/
final_realms_fluffos_v1/lib/std/vaults/
final_realms_fluffos_v1/lib/tmp/
final_realms_fluffos_v1/lib/w/
final_realms_fluffos_v1/lib/w/god/
final_realms_fluffos_v1/old/
final_realms_fluffos_v1/win32/
/* Ok, this time it's this code I will walk through...
 * Baldrick, april '94
 * Death.c removed from cmbat.c to make it cleaner.
 */

#define DIV_NUM 6
#define OMIQ_HAND "/global/omiq"
#define DEATH_HAND "/obj/handlers/death"

// prototypes:
void actual_death();

int do_death(object killed_by) 
{
    int i, dead_xp, aln, tot;
    float xp_adj;
    mapping damage_done;
    int att_level;
    int attackers, attacker_xp;
    string deity;
    int ethos,dei;
    object *attacker_list, *call_outed;

    // Death statistics - Radix April 1996
    catch(xp_adj=DEATH_HAND->update_statistics(this_object(),killed_by));
    if(!xp_adj) xp_adj = 1;
    // Taniwha, 1996.
    if(this_object()->query_race_ob())
    {
    catch(this_object()->query_race_ob()->on_death(this_object(),killed_by));
    }
    if(this_object()->query_guild_ob())
    {
    catch(this_object()->query_guild_ob()->on_death(this_object(),killed_by));
    }

    /* Added to maybe fix an annoying bug..
     * The dead on login bug..
     * Baldrick, April '95.
     */
    if (this_object()->query_property("loading"))
    return 0;

    attacker_list = this_object()->query_attacker_list();
    call_outed = this_object()->query_call_outed();
    /* Added this because 0's in the attacker/call outed list sometimes
     * pop up and screw things up royally.  Monsters not dying, that sort of thing.
     * --WF, apr 95
     */
    attacker_list -= ({ 0 });
    call_outed -= ({ 0 });

    att_level = (int)this_object()->query_level();
    damage_done = (mapping)this_object()->query_damage_done();
    if (!damage_done)
    damage_done = ([ ]);
    for (i=0;i<sizeof(attacker_list);i++) 
    {
    attacker_list[i]->stop_fight(this_object());
    tot += damage_done[attacker_list[i]];
    attackers++;
    }
    for (i=0;i<sizeof(call_outed);i++)
    call_outed[i]->stop_fight(this_object());

    /* ??? where is this from ???  
     * It is the victims XP, so it can be added to the killer..
     * Smart, and nice.. 
     */
    dead_xp = (int)this_object()->query_xp();
    if(interactive(this_object()))
    secure_log_file("exp_loss",ctime(time())+": "+this_object()->query_cap_name()+" "+
      "lost "+dead_xp+".\n");

    if (!tot) tot = 1;
    /* This is a tad expansive, will make the alignment change wery often..
     * Will make a divider.
     * Should make it level dependant, so killing a rat with 100 in alignment
     * won't be more important than killing a 50 dragon.
     * Baldrick
     * Actually, the alignment shouldn't be in the death, but the attack..
     */
    //aln = (int)this_object()->query_level() * (int)this_object()->query_align();

    //aln = aln/800;
  // taking out alignment change... Anirudh
  /*
    aln = (int)this_object()->query_align();
    if(aln >= 100) aln = 100;
    if(aln < -100) aln = -100;
  */

    /* this gives the total for each attacker.. */
    if (dead_xp != 0)
    attacker_xp = dead_xp / 20;
    if (attackers)
// xp_adj is the multiplier to kill_xp returned by the 
// death statistic keeper... Anirudh
        attacker_xp+=(int)this_object()->query_kill_xp()*xp_adj/attackers;

   if(interactive(this_object())) 
      attacker_xp = 0;
    /* Deliver the XP.. */
    for (i=0;i<sizeof(attacker_list);i++) 
    {
    if(!attacker_list[i]) continue;

    if(function_exists("adjust_xp",attacker_list[i]))
    {
        ethos = (int)this_object()->query_ethics();
        deity = (string)this_object()->query_deity();
        dei = (int)this_object()->query_deity_status(deity);
        attacker_list[i]->adjust_xp(attacker_xp);
        //attacker_list[i]->adjust_align(-aln);
        attacker_list[i]->adjust_ethics(-ethos);
        attacker_list[i]->adjust_deity_status(-dei,deity);
    }
    }
    this_object()->set_dead(1);
    if(OMIQ_HAND->omiq_in_progress() && interactive(this_object()))
    this_object()->add_property("OMIQ_KILLED",1);
    if (killed_by) {
    tell_room(environment(this_object()),killed_by->query_cap_name()+
      " dealt the death blow to "+
      this_object()->query_cap_name()+".\n",({killed_by}));
    tell_object(killed_by,"You dealt the death blow to "+
      this_object()->query_cap_name()+".\n");
    }
    else
    tell_room(environment(this_object()),this_object()->query_cap_name()+" died horribly.\n");
    if (environment())
    {
    event(environment(),"death",attacker_list,killed_by);
    }
    actual_death();
    return 0;
}

object make_corpse() 
{
    object corpse, money, *obs, ob;
    mixed *usedstuff;
    string my_mess, room_mess;
    int i;

    my_mess = "";
    room_mess = "";

    corpse = clone_object("/obj/corpse");
    /* Hamlet fixed next line */
    corpse->set_owner(this_object()->short(0),this_object());
    corpse->set_race_name(this_object()->query_race());

    //? corpse->add_alias((string)this_object()->query_name());
    //? corpse->add_alias((string *)this_object()->query_aliases());
    //? corpse->add_plural((string *)this_object()->query_plurals());

    corpse->start_decay();
    corpse->add_adjective(this_object()->query_adjectives());
    if (!this_object()->query_race_ob())
    if (file_size("/std/races/"+this_object()->query_race()+".c") >= 0)
        corpse->set_race_ob("/std/races/"+this_object()->query_race());
    else
        corpse->set_race_ob("/std/races/unknown");
    else
    corpse->set_race_ob(this_object()->query_race_ob());

    //dk Until we make an informed decision here, I'm going to have corpses
    //unhold, unwear and unwield everything.  Otherwise, since some items have a
    //special effect on the room only if they're worn or held by a living
    //creature, creators would have to code each such item carefully to
    //distinguish the effects when worn or held by a corpse...we probly don't
    //want to do this, but even if we do, I don't want to deal with it right now.

    /* Un equip the player ? or corpse ? */
    usedstuff = (mixed *)this_object()->query_held_ob();

    if (sizeof(usedstuff)) {
    my_mess = "You have been slain";
    room_mess = (string)this_object()->query_cap_name() +
    " dies";
    } 

    for (i=0;i<sizeof(usedstuff);i++)
    {
    /* Have to use this instead. */
    if (objectp(usedstuff[i]))
    {
        object ok;
        ok = usedstuff[i];
        this_object()->unhold_ob(ok);
        ok->move(environment(this_object()));
    } /* if (usedstuff.. */
    } /* for.. */

    /* Reset the array (to be sure ) */
    usedstuff = ({ });

    usedstuff = (mixed *)this_object()->query_worn_ob();

    if (sizeof(usedstuff))
    if (stringp(my_mess)) {
        my_mess += ", and your weapons fall from your limp hands.";
        room_mess += ", and " + this_object()->query_possessive() + 
        " weapons eerily fall from "+this_object()->query_possessive()+
        " limp hands and drop to the floor";
    } else {
        my_mess += "Your weapons fall from your limp hands "
        "and drop to the floor";
        room_mess += this_object()->query_cap_name() + 
        "'s weapons fall from "+this_object()->query_possessive()+
        " limp hands and drop to the floor";
    }

    for (i=0;i<sizeof(usedstuff);i++)
    {
    if (objectp(usedstuff[i]))
    {
        this_object()->unwear_ob(usedstuff[i]);
        /*Shall they loose it or keep it in the corpse I */

        // usedstuff[i]->move(environment());
    } /* if (usedstuff.. */
    } /* for.. */

    /* Let the corpse loose everything */
    /* But they won't loose it, can put it back later tho.. */
    /*
    obs = all_inventory(this_object());
    for (i=0; i<sizeof(obs); i++)
      obs[i]->move(environment());
    */

    if (stringp(room_mess)) {
    tell_room(environment(this_object()),room_mess+".\n", this_object());
    tell_object(this_object(), my_mess+".\n");
    }

    // AS for now, the corpse contains the remaining stuff.
    all_inventory(this_object())->move(corpse);
    corpse->move(environment());
    return corpse;
} /* Make corpse */

//? shouldnt need to call this... so make it static, just in case 

static void actual_death() 
{
    object ob, ob2;
    // Radix made this so it didn't HAVE to create a corpse, 
    // so creators could mask this in their NPCs
    // Feb. 28, 1996
    object corp = make_corpse();

    //dw if second_life returns false... do stupid things... 

    if (!((int)this_object()->second_life())) {
    if(corp)
        corp->move(environment(this_object()));

    //dw dest the ones that stick around... 
    // This is slightly useless now, the stuff is in the corpse
    // Good for the stuff that for some reason couldn't be moved tho
    ob = first_inventory(this_object());
    while(ob) {
        ob2 = next_inventory(ob);
        ob->dest_me();
        ob = ob2;
    }
    this_object()->dest_me();
    }
} /* void actual death */