(define-module (mudsync command)
#:use-module (mudsync parser)
- #:use-module (8sync systems actors)
+ #:use-module (8sync actors)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (ice-9 control)
command-priority
direct-command
- indir-command
+ prep-indir-command
+ prep-direct-command
loose-direct-command
- loose-indir-command
+ loose-prep-command
empty-command
direct-greedy-command
greedy-command
%default-priority))
-(define* (indir-command verbs action #:optional prepositions)
+(define* (prep-indir-command verbs action #:optional prepositions)
(make-command verbs
cmatch-indir-obj
(lambda* (goes-by #:key direct-obj indir-obj preposition)
action
%high-priority))
-(define* (loose-indir-command verbs action #:optional prepositions)
+(define* (prep-direct-command verbs action #:optional prepositions)
+ (make-command verbs
+ cmatch-indir-obj
+ (lambda* (goes-by #:key direct-obj indir-obj preposition)
+ (if prepositions
+ (and
+ (member direct-obj goes-by)
+ (member preposition prepositions))
+ (member direct-obj goes-by)))
+ action
+ %high-priority))
+
+(define* (loose-prep-command verbs action #:optional prepositions)
(make-command verbs
cmatch-indir-obj
(const #t)