Update codebase to use 8sync-fibers
[mudsync.git] / mudsync / run-game.scm
index c9d1f423a31262e6004480c7ea5c91c1480d289d..17bce5dadb2c8f52f7d8cc42ef3b6fa3be6d360d 100644 (file)
@@ -20,7 +20,8 @@
   #:use-module (mudsync game-master)
   #:use-module (8sync)
   #:use-module (8sync repl)
-  #:use-module (8sync debug)
+  #:use-module (fibers conditions)
+  ;; #:use-module (8sync debug)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 receive)
   #:use-module (ice-9 q)
 ;;; ==================
 
 (define* (run-demo game-spec default-room #:key repl-server)
-  (define hive (make-hive))
-  (define new-conn-handler
-    (make-default-room-conn-handler default-room))
-  (define gm
-    (bootstrap-actor-gimmie* hive <game-master> "gm"
-                             #:new-conn-handler new-conn-handler))
-  (define injector
-    (bootstrap-actor hive <gameobj-injector>
-                     #:gm (actor-id gm)))
+  (run-hive
+   (lambda (hive)
+     (define new-conn-handler
+       (make-default-room-conn-handler default-room))
+     (define gm
+       ;; (bootstrap-actor-gimmie* hive <game-master> "gm"
+       ;;                          #:new-conn-handler new-conn-handler)
+       (create-actor* <game-master> "gm"
+                      #:new-conn-handler new-conn-handler))
+     (define injector
+       (create-actor <gameobj-injector>
+                     #:gm gm))
 
-  (define repl-manager
-    (bootstrap-actor* hive <repl-manager> "repl"
+     (define repl-manager
+       (create-actor* <repl-manager> "repl"
                       #:subscribers (list injector)))
 
-  (set! %live-gm gm)
-  (set! %live-hive hive)
+     ;; (set! %live-gm gm)
+     (set! %live-hive hive)
 
-  (set! %inject-queue (make-q))
+     (set! %inject-queue (make-q))
 
-  (run-hive hive
-            (list (bootstrap-message hive (actor-id gm) 'init-world
-                                     #:game-spec game-spec))))
+     (<- gm 'init-world
+         #:game-spec game-spec)
+     ;; (run-hive hive
+     ;;           (list (bootstrap-message hive (actor-id gm) 'init-world
+     ;;                                    #:game-spec game-spec)))
+     (wait (make-condition)))
+   ;; Just for testing / for now...
+   #:parallelism 1))