if (Wearing_ring(npc, 296)) { delete this; return; } if (curtime >= end_time || npc->get_flag(Obj_flags::invisible) == 0)
if (!npc->is_in_party() ||  npc->get_property(static_cast<int>(Actor::food_level)) >= 0 || npc->is_dead())
void Npc_invisibility_timer::handle_event	(	unsigned long curtime, 	long udata	)	{	Actor *npc = list->npc;	if (Wearing_ring(npc, 296))		{			// Wearing invisibility ring.		delete this;		// Don't need timer.		return;		}	if (curtime >= end_time ||	// Long enough?  Or cleared.	    npc->get_flag(Obj_flags::invisible) == 0)		{		npc->clear_flag(Obj_flags::invisible);		if (!npc->is_dead())			gwin->add_dirty(npc);		delete this;		return;		}					// Check again in 2 secs.	gwin->get_tqueue()->add(curtime + 2000, this, 0L);	}