1(kern-load "gamestart-mech.scm")
2(kern-load "gamestart-statues.scm")
3
4(kern-mk-place 'p_char_setup "the Path"
5  s_shrine ;; sprite
6  (kern-mk-map 'm_char_setup 19 19 pal_expanded
7	(list
8	  "xx xx xx xx xx xx x! xx xx xx xx xx x! xx xx xx xx xx xx "
9	  "x! @@ @@ .C .H .O .O .S .E @@ @@ @@ .Y .O .U .R @@ @@ x! "
10	  "xx @@ @@ @@ @@ @@ @@ .P .A .T .H @@ @@ @@ @@ @@ @@ @@ xx "
11	  "xx ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, xx "
12	  "xx ,, ,, ,, ,, ++ ,, ,, ,, ,, ,, ,, ,, ++ ,, ,, ,, ,, xx "
13	  "xx ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, xx "
14	  "xx ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, xx "
15	  "xx ,, ,, ,, ,, ,, ,, ,, cx cx cx ,, ,, ,, ,, ,, ,, ,, xx "
16	  "xx ,, ,, ,, ,, ,, ,, ,, cx cx cx ,, ,, ,, ,, ,, ,, ,, xx "
17	  "xx ,, ,, cx cx cx ,, ,, cx cx cx ,, ,, cx cx cx ,, ,, xx "
18	  "xx ,, ,, cx cx cx ,, ,, ,, ,, ,, ,, ,, cx cx cx ,, ,, xx "
19	  "xx ,, ,, cx cx cx ,, ,, ,, ,, ,, ,, ,, cx cx cx ,, ,, xx "
20	  "xx ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, xx "
21	  "xx ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, xx "
22	  "xx ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, xx "
23	  "xx ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, xx "
24	  "x! ,, ,, +s ,, ,, ,, ,, pp cc pp ,, ,, ,, ,, +s ,, ,, x! "
25	  "xx ,, ,, ,, ,, ,, ,, pp ,, cc ,, pp ,, ,, ,, ,, ,, ,, xx "
26	  "xx xx xx xx xx xx x! xx xx xx xx xx x! xx xx xx xx xx xx "
27	)
28	)
29
30  #f #t #f #f
31  ;; subplaces
32  nil
33  ;; neighbors
34  nil
35
36 ;; *** contents of the place ***
37  (list
38   (put (mk-step-trig 'get-player-name nil) 9 16)
39   (put (kern-tag 'start-gate (mk-start-portal 'start-actual-game)) 9 4)
40   (put (kern-mk-obj F_illum_perm 1) 3 1)
41   (put (kern-mk-obj F_illum_perm 1) 15 1)
42   (put (kern-mk-obj F_illum_perm 1) 9 1)
43   (put (kern-mk-obj F_illum_perm 1) 10 4)
44   (put (kern-mk-obj F_illum_perm 1) 8 4)
45   )
46
47  nil ;; hooks
48  nil
49
50)
51
52(define (obj-line objfactory yloc xloc xmax)
53	(kern-obj-put-at (objfactory xloc) (list p_char_setup xloc yloc))
54	(if (< xloc xmax)
55		(obj-line objfactory yloc (+ xloc 1) xmax)
56	))
57
58;; Note: start-gate must be a tag to survive saving/reloading.
59(set-roomdata p_char_setup (list 6 6 6 'start-gate))
60
61(obj-line (lambda (unused)
62	(mk-step-trig 'one-off-message "A portal beckons on the far side of the room" "intromes"))
63	15 8 10)
64
65(obj-line (lambda (unused)
66	(mk-step-trig 'gamestart-light-lamps nil "lamps"))
67	14 7 11)
68
69(kern-obj-put-at (mk-step-trig 'gamestart-light-lamps nil "lamps") (list p_char_setup 7 15))
70(kern-obj-put-at (mk-step-trig 'gamestart-light-lamps nil "lamps") (list p_char_setup 11 15))
71(kern-obj-put-at (mk-step-trig 'gamestart-light-lamps nil "lamps") (list p_char_setup 7 16))
72(kern-obj-put-at (mk-step-trig 'gamestart-light-lamps nil "lamps") (list p_char_setup 11 16))
73
74(define (mk-start-statue tag name sprite conv)
75  (let ((kchar (bind
76                (kern-mk-char
77                 tag            ; tag
78                 name             ; name
79                 sp_statue         ; species
80                 nil              ; occ
81                 sprite     ; sprite
82                 faction-men      ; starting alignment
83                 0 0 0            ; str/int/dex
84                 999 0              ; hp mod/mult
85                 0 0              ; mp mod/mult
86                 max-health ; hp
87                 0                   ; xp
88                 max-health ; mp
89                 0
90                 9
91                 #f               ; dead
92                 conv         ; conv
93                 nil           ; sched
94                 'ankh-ai              ; special ai
95                 nil              ; container
96                 nil              ; readied
97                 )
98                nil)))
99    (kern-char-set-known kchar #t)
100    ))
101
102(kern-obj-put-at (mk-start-statue 'str_statue "Statue of Might" s_str_statue 'gs-str-conv) (list p_char_setup 4 10))
103(kern-obj-put-at (mk-start-statue 'dex_statue "Statue of Agility" s_dex_statue 'gs-dex-conv) (list p_char_setup 9 8))
104(kern-obj-put-at (mk-start-statue 'int_statue "Statue of Wisdom" s_int_statue 'gs-int-conv) (list p_char_setup 14 10))
105
106(obj-line (lambda (unused)
107	(mk-step-trig 'gamestart-statue-speak 'str_statue "statspeak"))
108	10 1 6)
109(obj-line (lambda (unused)
110	(mk-step-trig 'gamestart-statue-speak 'dex_statue "statspeak"))
111	9 6 12)
112(obj-line (lambda (unused)
113	(mk-step-trig 'gamestart-statue-speak 'int_statue "statspeak"))
114	10 12 17)
115
116
117;;(gamestart-field-circle F_fire_perm p_char_setup 4 10 4)
118;;(gamestart-field-circle F_acid_perm p_char_setup 9 8 4)
119;;(gamestart-field-circle F_energy_perm p_char_setup 14 10 4)
120
121