# The "Look at..." action
objectType lookAt ("Look at ") {
	event default {
		Say (sam, pickOne ("I can't believe we're looking at this!", "Well, at least it's more detailed than Max's personality.", "Not much going on there!", "Why am I looking at THIS?"));
	}
}

# The "Pick up..." action
objectType pickUp ("Pick up ") {
	event default {
	      Say (sam, pickOne ("I'm not going pick that up!", "That's the second-worst suggestion I've ever heard!", "No way could I do that!"));
}
}

# The "Talk to..." action
objectType talkTo ("Talk to ") {
	event default {
		Say (sam, pickOne ("Not very talkative.", "Since when have you had this urge to speak with inanimate objects?", "I'm not talking to that!", "Occasionally, it's nice to talk to something that's going to say something back."));
	}
}

# The "Use..." action
objectType use ("Use ") {
	event default {
		Say (sam, pickOne ("I don't pointlessly use things, except for Max.", "Never mind that...it won't work.", "Are you crazy?  Try again!", "This is a completely unusable thingamabob!" ));
	}
}

# An event for setting a different mouse cursor when hovering over a
# particular object type
objectType oneCursor ("") {}

# An event for object types with only one action
objectType onlyAction ("") {}

# This is so that we can define default reactions
objectType default ("") {}

# This is so that we can walk to characters as well as screen regions
objectType walkToPerson ("") {}

# Try and combine two object types... make sure we do something if it
# doesn't work
sub findEvent (a, b) {
	if (! callEvent (a, b))
		if (! callEvent (b, a))
			if (! callEvent (default, a))
				if (! callEvent (default, b))
					say (sam, pickOne ("Maybe if I was insane, I would try that.  I'll let Max try it later.", "Give that up!  It's not going to work!", "Ha!", "No way could I do that!", "A suggestion THAT deranged can only come from a stressed adventurer...take a quick break!"));
}

objectType verbRename ("") {}