89f96f1df8540711f8555917b59a5bf518c14bb4
[mudsync.git] / mudsync / run-game.scm
1 ;;; Mudsync --- Live hackable MUD
2 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
3 ;;;
4 ;;; This file is part of Mudsync.
5 ;;;
6 ;;; Mudsync is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or
9 ;;; (at your option) any later version.
10 ;;;
11 ;;; Mudsync is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 ;;; General Public License for more details.
15 ;;;
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with Mudsync.  If not, see <http://www.gnu.org/licenses/>.
18
19 (define-module (mudsync run-game)
20   #:use-module (mudsync game-master)
21   #:use-module (8sync systems actors)
22   #:use-module (8sync systems actors debug)
23   #:export (run-demo
24             ;; Just temporarily
25             %test-gm))
26
27
28 ;;; Debugging stuff
29 ;;; ===============
30
31 (define %test-gm #f)
32
33 (define (run-demo db-path game-spec default-room)
34   (define hive (make-hive))
35   (define new-conn-handler
36     (make-default-room-conn-handler default-room))
37   (define gm
38     (hive-create-actor-gimmie* hive <game-master> "gm"
39                                #:new-conn-handler new-conn-handler))
40   (set! %test-gm gm)
41   ;; @@: Boy, wouldn't it be nice if the agenda could do things
42   ;;   on interrupt :P
43   (ez-run-hive hive
44                (list (bootstrap-message hive (actor-id gm) 'init-world
45                                         #:game-spec game-spec))))