1 | ///////////////////////////////////////////////////////////////////////////////
|
---|
2 | //
|
---|
3 | // ## ######
|
---|
4 | // ###### ###
|
---|
5 | // ## ############### Shark 3D Engine (www.shark3d.com)
|
---|
6 | // ########## # # #
|
---|
7 | // ######## Copyright (c) 1996-2006 Spinor GmbH.
|
---|
8 | // ######### # # # All rights reserved.
|
---|
9 | // ## ##########
|
---|
10 | // ##
|
---|
11 | //
|
---|
12 | ///////////////////////////////////////////////////////////////////////////////
|
---|
13 |
|
---|
14 | // Universe definition.
|
---|
15 | // The universe contains the game state.
|
---|
16 |
|
---|
17 | actor_ident "kit_base.capsule"
|
---|
18 | actor_param
|
---|
19 | {
|
---|
20 | active 1
|
---|
21 | scope "universe"
|
---|
22 | local_name "capsule"
|
---|
23 | deleg_target "dispatch_export"
|
---|
24 | child_ident "kit_base.group"
|
---|
25 | child_param
|
---|
26 | {
|
---|
27 | // Delegate action calls to the children.
|
---|
28 | active 1
|
---|
29 | child_array
|
---|
30 | {
|
---|
31 | ident "kit_base.dispatch"
|
---|
32 | param
|
---|
33 | {
|
---|
34 | name "dispatch_export"
|
---|
35 | entry_array
|
---|
36 | {
|
---|
37 | cmds "produce_player"
|
---|
38 | targets "player_netproducer"
|
---|
39 | newcmd "produce"
|
---|
40 | }
|
---|
41 | {
|
---|
42 | cmds "net_traverse"
|
---|
43 | targets
|
---|
44 | "setting_serroot"
|
---|
45 | }
|
---|
46 | {
|
---|
47 | cmds "net_traverse"
|
---|
48 | targets
|
---|
49 | "player_netproducer"
|
---|
50 | "player_netappear"
|
---|
51 | newcmd "traverse"
|
---|
52 | }
|
---|
53 | }
|
---|
54 | }
|
---|
55 | {
|
---|
56 | // Dispatcher handling messages from the universe,
|
---|
57 | // which contains the game state.
|
---|
58 | ident "kit_base.dispatch"
|
---|
59 | param
|
---|
60 | {
|
---|
61 | name "dispatch_serialize"
|
---|
62 | entry_array
|
---|
63 | {
|
---|
64 | cmds "store_pre" "store_post" "load_post"
|
---|
65 | targets "player_set"
|
---|
66 | }
|
---|
67 | {
|
---|
68 | // Handle every command to avoid error:
|
---|
69 | cmds "delete_pre" "delete_post"
|
---|
70 | "store_pre" "store_post"
|
---|
71 | "load_pre" "load_post"
|
---|
72 | targets
|
---|
73 | }
|
---|
74 | }
|
---|
75 | }
|
---|
76 | {
|
---|
77 | ident "kit_base.dispatch"
|
---|
78 | param
|
---|
79 | {
|
---|
80 | name "dispatch_setting"
|
---|
81 | entry_array
|
---|
82 | {
|
---|
83 | cmds
|
---|
84 | "get_basesuppl"
|
---|
85 | "ignore_frmtime"
|
---|
86 | "cfg_access_int_info"
|
---|
87 | "cfg_access_float_info"
|
---|
88 | "cfg_access_str_info"
|
---|
89 | "cfg_access_chunk_info"
|
---|
90 | "universe_cfg_access_int_info"
|
---|
91 | "universe_cfg_access_float_info"
|
---|
92 | "universe_cfg_access_str_info"
|
---|
93 | "universe_cfg_access_chunk_info"
|
---|
94 | targets "^dispatch_universe"
|
---|
95 | }
|
---|
96 | {
|
---|
97 | cmds
|
---|
98 | "notice_level_load_pre"
|
---|
99 | "notice_level_load_post"
|
---|
100 | targets "player_set"
|
---|
101 | }
|
---|
102 | }
|
---|
103 | }
|
---|
104 | {
|
---|
105 | // Define a serialization actor.
|
---|
106 | // This actor can store and load its child into and from a file.
|
---|
107 | // Important! This actor defines a local namespace.
|
---|
108 | // It is not possible to access actors outside this namespace.
|
---|
109 | // Instead, you can send commands to the "outside" actor.
|
---|
110 | ident "kit_base.serroot"
|
---|
111 | param
|
---|
112 | {
|
---|
113 | // Delegate action calls to the child.
|
---|
114 | active 1
|
---|
115 | // Scope of the local namespace.
|
---|
116 | scope "setting"
|
---|
117 | // Actor name from outside.
|
---|
118 | export_name "setting"
|
---|
119 | // Name to delegate commands inside the universe to.
|
---|
120 | export_deleg_name "setting_serroot"
|
---|
121 | // Name to send commands for outside the universe to.
|
---|
122 | deleg_target "dispatch_export"
|
---|
123 | // Target to send commands outside the universe to.
|
---|
124 | local_outside_name "outside"
|
---|
125 | //
|
---|
126 | outside_target "dispatch_setting"
|
---|
127 | // Objects outside the universe referenced from inside,
|
---|
128 | // fetched from the outside actor:
|
---|
129 | known_cmds "get_basesuppl"
|
---|
130 | // Header identifier for the state files.
|
---|
131 | ident "std"
|
---|
132 | // Notification commands about loading and saving.
|
---|
133 | notify_target "dispatch_serialize"
|
---|
134 | notify_pre_delete_cmd "delete_pre"
|
---|
135 | notify_post_delete_cmd "delete_post"
|
---|
136 | notify_pre_store_cmd "store_pre"
|
---|
137 | notify_post_store_cmd "store_post"
|
---|
138 | notify_pre_load_cmd "load_pre"
|
---|
139 | notify_post_load_cmd "load_post"
|
---|
140 | // The level root has an own namespace:
|
---|
141 | child_ident "kit_base.extern"
|
---|
142 | child_param
|
---|
143 | {
|
---|
144 | // Delegate action calls to the child:
|
---|
145 | active 1
|
---|
146 | res "universe/actor/setting.s3d_actor_run"
|
---|
147 | }
|
---|
148 | }
|
---|
149 | }
|
---|
150 | {
|
---|
151 | // External file describing the structure of each player:
|
---|
152 | ident "kit_base.extern"
|
---|
153 | param
|
---|
154 | {
|
---|
155 | // Delegate action calls to the child:
|
---|
156 | active 1
|
---|
157 | res "universe/actor/universeplayer.s3d_actor_run"
|
---|
158 | }
|
---|
159 | }
|
---|
160 | {
|
---|
161 | ident "kit_engbase.netproducer"
|
---|
162 | param
|
---|
163 | {
|
---|
164 | name "player_netproducer"
|
---|
165 | produce_target "player_rawproducer"
|
---|
166 | produce_cmd "produce"
|
---|
167 | net_traverse_cmd "net_traverse"
|
---|
168 | created_local_cmd "created_local"
|
---|
169 | created_net_cmd "created_net"
|
---|
170 | }
|
---|
171 | }
|
---|
172 | {
|
---|
173 | ident "kit_engbase.netappear"
|
---|
174 | param
|
---|
175 | {
|
---|
176 | name "player_netappear"
|
---|
177 | appear_target "player_set"
|
---|
178 | appear_cmd "net_appear"
|
---|
179 | }
|
---|
180 | }
|
---|
181 | }
|
---|
182 | } |
---|