/
Archipelago/
Archipelago/doc/
Archipelago/lib/misc/
Archipelago/lib/plrobjs/
Archipelago/lib/plrobjs/P-T/
Archipelago/lib/world/mob/
Archipelago/lib/world/obj/
Archipelago/lib/world/shp/
Archipelago/lib/world/wld/
Archipelago/lib/world/zon/
Archipelago/slave/
/* ************************************************************************
*   File: objact.c                                     Part of Archipelago*
*  Usage: Functions for generating interesting room bhaviour              *
*                                                                         *
*  All rights reserved.  See license.doc for complete information.        *
*  AJN Feb 96                                                             *
*  Archipelago is based on CircleMud                                      *
*  CircleMUD is based on DikuMUD, Copyright (C) 1990, 1991.               *
*  Archipelago changes by Alastair J. Neil Copyright (C) 1993, 94, 95, 96 *
************************************************************************ */

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#include "structs.h"
#include "utils.h"
#include "db.h"
#include "comm.h"
#include "interpreter.h"
#include "handler.h"
#include "spells.h"

/* external structs */
extern struct char_data *character_list;
extern struct index_data *mob_index;
extern struct room_data *world;
extern struct str_app_type str_app[];
ACMD(do_move);
ACMD(do_look);
ACMD(do_get);
ACMD(do_wear);
ACMD(do_flee);
ACMD(do_stand);
void	update_pos( struct char_data *victim );
void	die(struct char_data *ch);

void object_activity(void)
{
  register struct char_data *ch;
  register struct obj_data *obj;  

  for (ch = character_list; ch; ch = ch->next)
    if (!IS_MOB(ch)){
      for (obj = world[ch->in_room].contents; obj; obj = obj->next_content){
	if ((obj->obj_flags.type_flag == ITEM_FOUNTAIN)
	    && obj->action_description && !number(0,5))
	  act(obj->action_description,FALSE,ch,obj,obj,TO_CHAR);
	else if ((obj->obj_flags.type_flag == ITEM_CONTAINER)
		 && obj->action_description && (obj->obj_flags.value[3] < 0)
		 && !number(0,5))
	  act(obj->action_description,FALSE,ch,obj,obj,TO_CHAR);	
      }
    }
}