CODE: Can someone explain this to me?

From: James Goddard (
Date: 02/15/97

I was about to go in and fix the code so that timers could be used on
non-corpses (they are ignored on anything else) when I came across
something a little disconcerting:

1. point_update calls update_char_objects for each character
2. update_char_objects calls update_object( obj, 2) for each item in
inventory and update_object( ch->carrying, 1)
3. the code for update_object is:

void update_object(struct obj_data * obj, int use)
	if (GET_OBJ_TIMER(obj) > 0)
		GET_OBJ_TIMER(obj) -= use;
	if (obj->contains)
		update_object(obj->contains, use);
	if (obj->next_content)
		update_object(obj->next_content, use);

Now, I know it's late at night and I'm getting a little bugeyed but I
see several problems here:

1. If obj->timer is 1, then this will set obj->timer to -1
2. Nothing is actually done with the object when the timer when it
reaches 0
3. If I add the fix I want to add, timers can go down by as many as 3
times per tick

Can someone please explain why this is here, what it was supposed to do,
and what the consequences of taking it out are?


| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   |
|    Or send 'info circle' to     |

This archive was generated by hypermail 2b30 : 12/18/00 PST