Import v6.12.6 of the Inform 6 standard library
[informlib.git] / linklpa.h
1 ! ==============================================================================
2 !   LINKLPA:  Link declarations of common properties and attributes.
3 !
4 !   Supplied for use with Inform 6 -- Release 6.12.3 -- Serial number 190320
5 !
6 !   Copyright Graham Nelson 1993-2004 and David Griffith 2012-2019
7 !
8 !   This file is free software: you can redistribute it and/or modify
9 !   it under the terms of the GNU Affero General Public License as
10 !   published by the Free Software Foundation, either version 3 of the
11 !   License, or (at your option) any later version.
12 !
13 !   This file is distributed in the hope that it will be useful, but
14 !   WITHOUT ANY WARRANTY; without even the implied warranty of
15 !   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 !   Affero General Public License for more details.
17 !
18 !   You should have received a copy of the GNU Affero General Public
19 !   License along with this program. If not, see
20 !   https://gnu.org/licenses/
21 !
22 !   This file is automatically Included in your game file by "parser".
23 ! ==============================================================================
24
25 System_file;
26
27 ! ------------------------------------------------------------------------------
28 !   Some VM-specific constants.
29 !   (WORDSIZE and TARGET_XXX are defined by the compiler.)
30 ! ------------------------------------------------------------------------------
31
32 #Ifdef TARGET_ZCODE;
33 Constant NULL         = $ffff;
34 Constant WORD_HIGHBIT = $8000;
35 #Ifnot; ! TARGET_GLULX
36 Constant NULL         = $ffffffff;
37 Constant WORD_HIGHBIT = $80000000;
38 #Endif; ! TARGET_
39
40 ! ------------------------------------------------------------------------------
41 !   The common attributes and properties.
42 ! ------------------------------------------------------------------------------
43
44 Attribute animate;
45 #Ifdef USE_MODULES;
46     #Iffalse (animate == 0);
47     Message error "Please move your Attribute declarations after the Include ~Parser~ line:
48                    otherwise it will be impossible to USE_MODULES";
49     #Endif;
50 #Endif;
51
52 Attribute absent;       Attribute non_floating alias absent;
53 Attribute clothing;
54 Attribute concealed;
55 Attribute container;
56 Attribute door;
57 Attribute edible;
58 Attribute enterable;
59 Attribute general;
60 Attribute light;
61 Attribute lockable;
62 Attribute locked;
63 Attribute moved;
64 Attribute on;
65 Attribute open;
66 Attribute openable;
67 Attribute proper;
68 Attribute scenery;
69 Attribute scored;
70 Attribute static;
71 Attribute supporter;
72 Attribute switchable;
73 Attribute talkable;
74 Attribute transparent;
75 Attribute visited;
76 Attribute workflag;
77 Attribute worn;
78
79 Attribute male;
80 Attribute female;
81 Attribute neuter;
82 Attribute pluralname;
83
84 ! ------------------------------------------------------------------------------
85
86 Property additive before NULL;
87 Property additive after  NULL;
88 Property additive life   NULL;
89
90 Property n_to;
91 Property s_to;
92 Property e_to;
93 Property w_to;
94 Property ne_to;
95 Property nw_to;
96 Property se_to;
97 Property sw_to;
98 Property u_to;
99 Property d_to;
100 Property in_to;
101 Property out_to;
102
103 #Ifdef USE_MODULES;
104     #Iffalse (7 >= n_to);
105     Message error "Please move your Property declarations after the Include ~Parser~ line:
106                    otherwise it will be impossible to USE_MODULES";
107     #Endif;
108 #Endif;
109
110 Property door_to;
111 Property with_key;
112 Property door_dir;
113 Property invent;
114 Property plural;
115 Property add_to_scope;
116 Property list_together;
117 Property react_before;
118 Property react_after;
119 Property grammar;
120 Property additive orders;
121
122 Property initial;
123 Property when_open;
124 Property when_closed;
125 Property when_on;
126 Property when_off;
127 Property description;
128 Property additive describe NULL;
129 Property article "a";
130
131 Property cant_go;
132
133 Property found_in;          ! For fiddly reasons this can't alias
134
135 Property time_left;
136 Property number;
137 Property additive time_out NULL;
138 Property daemon;
139 Property additive each_turn NULL;
140
141 Property capacity 100;
142
143 Property short_name 0;
144 Property short_name_indef 0;
145 Property parse_name 0;
146
147 Property articles;
148 Property inside_description;
149
150 ! ==============================================================================