- (receive (post-run-hook gameobj-injector)
- (make-special-injector agenda hive (actor-id gm))
- ;; Set up injector for live hacking
- (set! inject-gameobj! gameobj-injector)
-
- (run-agenda agenda #:post-run-hook post-run-hook)))
-
-
-(define (do-inject-special! queue hive gm-id game-spec special-symbol)
- (define gameobj-spec
- (or (find
- (lambda (entry) (eq? (car entry) special-symbol))
- game-spec)
- (throw 'no-such-symbol "Can't find such a symbol in the game-spec"
- #:symbol special-symbol)))
- (define task
- (bootstrap-message hive gm-id 'inject-special!
- #:special-symbol special-symbol
- #:gameobj-spec gameobj-spec))
- (enq! queue task)
- 'done)
-
-(define (queue-injected-tasks-on-agenda! agenda inject-queue)
- "Inject tasks from the inject-queue onto the agenda queue."
- (while (not (q-empty? inject-queue))
- (enq! (agenda-queue agenda) (q-pop! inject-queue))))