musicmud-2.1.6/data/
musicmud-2.1.6/data/help/
musicmud-2.1.6/data/policy/
musicmud-2.1.6/data/wild/
musicmud-2.1.6/data/world/
musicmud-2.1.6/doc/
musicmud-2.1.6/src/ident/
musicmud-2.1.6/src/lua/
musicmud-2.1.6/src/lua/include/
musicmud-2.1.6/src/lua/src/lib/
musicmud-2.1.6/src/lua/src/lua/
musicmud-2.1.6/src/lua/src/luac/
#ifndef NATIVEVERB_H
#define NATIVEVERB_H

class Player;

typedef bool (*verbhandler_t)(MudObject *, int argc, const char **argv);
typedef bool (*playerverb_t)(Player *, int argc, const char **argv);

//! a verb that maps to a function pointer
class NativeVerb : public Verb {
 private :
	verbhandler_t fn;
 public :
	virtual bool invoke(MudObject *invoker, int argc, const char*argv[]);
	NativeVerb(const char *_id, int _minlen, int, verbhandler_t _fn, PFlag pflag, VFlag vflags=VFL_NONE);
};

//! a verb that maps to a function pointer, and can only be run on a Player, not a MudObject.
class PlayerVerb : public Verb {
 private :
	playerverb_t fn;
 public :
	virtual bool invoke(MudObject *invoker, int argc, const char*argv[]);
	PlayerVerb(const char *_id, int _minlen, int, playerverb_t _fn, PFlag pflag, VFlag vflags=VFL_NONE);
};

#endif