1 |
=head1 NAME |
2 |
|
3 |
Deliantra::Protocol::Constants - export protocol-related constants |
4 |
|
5 |
=head1 SYNOPSIS |
6 |
|
7 |
use Deliantra::Protocol::Constants; |
8 |
|
9 |
=head1 DESCRIPTION |
10 |
|
11 |
=over 4 |
12 |
|
13 |
=cut |
14 |
|
15 |
package Deliantra::Protocol::Constants; |
16 |
|
17 |
our $VERSION = '0.1'; |
18 |
|
19 |
use common::sense; |
20 |
|
21 |
use AnyEvent; |
22 |
use IO::Socket::INET; |
23 |
|
24 |
my %CONSTANTS = ( |
25 |
TICK => 0.120, # one server tick, not exposed through the protocol of course |
26 |
CS_QUERY_YESNO => 0x1, |
27 |
CS_QUERY_SINGLECHAR => 0x2, |
28 |
CS_QUERY_HIDEINPUT => 0x4, |
29 |
CS_SAY_NORMAL => 0x1, |
30 |
CS_SAY_SHOUT => 0x2, |
31 |
CS_SAY_GSAY => 0x4, |
32 |
FLOAT_MULTI => 100000, |
33 |
FLOAT_MULTF => 100000.0, |
34 |
CS_STAT_HP => 1, |
35 |
CS_STAT_MAXHP => 2, |
36 |
CS_STAT_SP => 3, |
37 |
CS_STAT_MAXSP => 4, |
38 |
CS_STAT_STR => 5, |
39 |
CS_STAT_INT => 6, |
40 |
CS_STAT_WIS => 7, |
41 |
CS_STAT_DEX => 8, |
42 |
CS_STAT_CON => 9, |
43 |
CS_STAT_CHA => 10, |
44 |
CS_STAT_EXP => 11, |
45 |
CS_STAT_LEVEL => 12, |
46 |
CS_STAT_WC => 13, |
47 |
CS_STAT_AC => 14, |
48 |
CS_STAT_DAM => 15, |
49 |
CS_STAT_ARMOUR => 16, |
50 |
CS_STAT_SPEED => 17, |
51 |
CS_STAT_FOOD => 18, |
52 |
CS_STAT_WEAP_SP => 19, |
53 |
CS_STAT_RANGE => 20, |
54 |
CS_STAT_TITLE => 21, |
55 |
CS_STAT_POW => 22, |
56 |
CS_STAT_GRACE => 23, |
57 |
CS_STAT_MAXGRACE => 24, |
58 |
CS_STAT_FLAGS => 25, |
59 |
CS_STAT_WEIGHT_LIM => 26, |
60 |
CS_STAT_EXP64 => 28, |
61 |
CS_STAT_SPELL_ATTUNE => 29, |
62 |
CS_STAT_SPELL_REPEL => 30, |
63 |
CS_STAT_SPELL_DENY => 31, |
64 |
CS_STAT_RESIST_START => 100, |
65 |
CS_STAT_RESIST_END => 117, |
66 |
CS_STAT_RES_PHYS => 100, |
67 |
CS_STAT_RES_MAG => 101, |
68 |
CS_STAT_RES_FIRE => 102, |
69 |
CS_STAT_RES_ELEC => 103, |
70 |
CS_STAT_RES_COLD => 104, |
71 |
CS_STAT_RES_CONF => 105, |
72 |
CS_STAT_RES_ACID => 106, |
73 |
CS_STAT_RES_DRAIN => 107, |
74 |
CS_STAT_RES_GHOSTHIT => 108, |
75 |
CS_STAT_RES_POISON => 109, |
76 |
CS_STAT_RES_SLOW => 110, |
77 |
CS_STAT_RES_PARA => 111, |
78 |
CS_STAT_TURN_UNDEAD => 112, |
79 |
CS_STAT_RES_FEAR => 113, |
80 |
CS_STAT_RES_DEPLETE => 114, |
81 |
CS_STAT_RES_DEATH => 115, |
82 |
CS_STAT_RES_HOLYWORD => 116, |
83 |
CS_STAT_RES_BLIND => 117, |
84 |
CS_STAT_SKILLINFO => 140, |
85 |
CS_NUM_SKILLS => 50, |
86 |
SF_FIREON => 0x01, |
87 |
SF_RUNON => 0x02, |
88 |
NDI_BLACK => 0, |
89 |
NDI_WHITE => 1, |
90 |
NDI_NAVY => 2, |
91 |
NDI_RED => 3, |
92 |
NDI_ORANGE => 4, |
93 |
NDI_BLUE => 5, |
94 |
NDI_DK_ORANGE => 6, |
95 |
NDI_GREEN => 7, |
96 |
NDI_LT_GREEN => 8, |
97 |
NDI_GREY => 9, |
98 |
NDI_BROWN => 10, |
99 |
NDI_GOLD => 11, |
100 |
NDI_TAN => 12, |
101 |
NDI_MAX_COLOR => 12, |
102 |
NDI_COLOR_MASK => 0x1f, |
103 |
NDI_REPLY => 0x20, |
104 |
NDI_NOCRATE => 0x40, |
105 |
NDI_CLEAR => 0x80, |
106 |
a_none => 0, |
107 |
a_readied => 1, |
108 |
a_wielded => 2, |
109 |
a_worn => 3, |
110 |
a_active => 4, |
111 |
a_applied => 5, |
112 |
F_APPLIED => 0x000F, |
113 |
F_LOCATION => 0x00F0, |
114 |
F_UNPAID => 0x0200, |
115 |
F_MAGIC => 0x0400, |
116 |
F_CURSED => 0x0800, |
117 |
F_DAMNED => 0x1000, |
118 |
F_OPEN => 0x2000, |
119 |
F_NOPICK => 0x4000, |
120 |
F_LOCKED => 0x8000, |
121 |
CF_FACE_NONE => 0, |
122 |
CF_FACE_BITMAP => 1, |
123 |
CF_FACE_XPM => 2, |
124 |
CF_FACE_PNG => 3, |
125 |
CF_FACE_CACHE => 0x10, |
126 |
FACE_FLOOR => 0x80, |
127 |
FACE_COLOR_MASK => 0xf, |
128 |
UPD_LOCATION => 0x01, |
129 |
UPD_FLAGS => 0x02, |
130 |
UPD_WEIGHT => 0x04, |
131 |
UPD_FACE => 0x08, |
132 |
UPD_NAME => 0x10, |
133 |
UPD_ANIM => 0x20, |
134 |
UPD_ANIMSPEED => 0x40, |
135 |
UPD_NROF => 0x80, |
136 |
UPD_SP_MANA => 0x01, |
137 |
UPD_SP_GRACE => 0x02, |
138 |
UPD_SP_LEVEL => 0x04, |
139 |
SOUND_NORMAL => 0, |
140 |
SOUND_SPELL => 1, |
141 |
|
142 |
PICKUP_NOTHING => 0x00000000, |
143 |
|
144 |
PICKUP_DEBUG => 0x10000000, |
145 |
PICKUP_INHIBIT => 0x20000000, |
146 |
PICKUP_STOP => 0x40000000, |
147 |
PICKUP_NEWMODE => 0x80000000, |
148 |
|
149 |
PICKUP_RATIO => 0x0000000F, |
150 |
|
151 |
PICKUP_FOOD => 0x00000010, |
152 |
PICKUP_DRINK => 0x00000020, |
153 |
PICKUP_VALUABLES => 0x00000040, |
154 |
PICKUP_BOW => 0x00000080, |
155 |
|
156 |
PICKUP_ARROW => 0x00000100, |
157 |
PICKUP_HELMET => 0x00000200, |
158 |
PICKUP_SHIELD => 0x00000400, |
159 |
PICKUP_ARMOUR => 0x00000800, |
160 |
|
161 |
PICKUP_BOOTS => 0x00001000, |
162 |
PICKUP_GLOVES => 0x00002000, |
163 |
PICKUP_CLOAK => 0x00004000, |
164 |
PICKUP_KEY => 0x00008000, |
165 |
|
166 |
PICKUP_MISSILEWEAPON => 0x00010000, |
167 |
PICKUP_ALLWEAPON => 0x00020000, |
168 |
PICKUP_MAGICAL => 0x00040000, |
169 |
PICKUP_POTION => 0x00080000, |
170 |
|
171 |
PICKUP_SPELLBOOK => 0x00100000, |
172 |
PICKUP_SKILLSCROLL => 0x00200000, |
173 |
PICKUP_READABLES => 0x00400000, |
174 |
PICKUP_MAGIC_DEVICE => 0x00800000, |
175 |
|
176 |
PICKUP_NOT_CURSED => 0x01000000, |
177 |
|
178 |
PICKUP_JEWELS => 0x02000000, |
179 |
PICKUP_FLESH => 0x04000000, |
180 |
); |
181 |
|
182 |
eval join "\n", (map "sub $_ () { $CONSTANTS{$_} }", keys %CONSTANTS), 1 |
183 |
or die; |
184 |
|
185 |
sub import { |
186 |
my $caller = caller; |
187 |
|
188 |
*{"$caller\::$_"} = \&$_ |
189 |
for keys %CONSTANTS; |
190 |
} |
191 |
|
192 |
=back |
193 |
|
194 |
=head1 AUTHOR |
195 |
|
196 |
Marc Lehmann <schmorp@schmorp.de> |
197 |
http://home.schmorp.de/ |
198 |
|
199 |
Robin Redeker <elmex@ta-sa.org> |
200 |
http://www.ta-sa.org/ |
201 |
|
202 |
=cut |
203 |
|
204 |
1 |