2 // "what" code should default to 0.
3 resource(401) message { "field1" = "value1" };
5 // Fields with casts, type codes, and nested compound data.
6 resource(402) message(1000)
8 "small1" = (int8) 257, // 1
9 int8 "small2" = 257, // 1
10 int8 "small3" = (int8) 257, // 1
11 uint8 "small4" = (int8) -1, // (uint8)255
12 int8 "small5" = (uint8) -1, // -1
13 int8 "small6" = (int8) -1, // -1
14 uint8 "small7" = (uint8) -1, // (uint8)255
18 int64 "large3" = (int32) 3,
19 int32 "large4" = (int64) 3,
21 "string1" = "some text",
22 // string "string2" = 123, // invalid cast
23 // int32 "string3" = "text", // invalid cast
25 #'BYTE' "typecode1" = 1234, // does not become "(int8)-46"
26 #'blah' int16 "typecode2" = 1234, // becomes 16-bit, but raw encoded
28 "array1" = array { $"40", $"41" },
29 buffer "array2" = array { $"50" $"51" },
30 raw "array3" = array { "w00t", "dude" },
31 array "array4" = array { "w00t", 1234 },
32 array "array5" = (array) array { "w00t", 1234 },
33 //raw "array3" = { "w00t", "dude" }, // syntax error
35 "msg1" = message { "field" = "value" },
36 message "msg2" = message(2000) { "field" = "value" },
37 message "msg3" = (message) message(2000) { "field" = "value" },
38 #'blah' message "msg4" = message { "field" = "value" }
39 // ,message(2000) "msg5" = message(2000) { "fld" = "val" } // not supported
42 // "Arrays" of fields, i.e. multiple fields with the same name.
43 resource(403) message('blah')
48 // ,"integer" = "hi there" // type conflict
51 // Tests whether the decompiler correctly outputs nested messages.
52 resource(404) message('blah')
54 "sub1" = message('bla1') { "string1" = "value1" },
55 "sub1" = message('bla2') { "string2" = "value2" },
56 "sub1" = message('bla2') { "string2" = "value2", "string3" = "value3" },
58 "sub2" = message('bla3') { "string3" = "value3" }
61 // Another comma test for the decompiler.
62 resource(405) #'w00t' message('blah')
65 "sub" = message { "string1" = "woot1" },
69 // The decompiler should still recognize this as a message.
70 resource(406) #'RAWT' message { "field" = "value" };
72 //resource(407) (int32) message { "field" = "value" }; // invalid cast
73 //resource(407) (buffer) message { "field" = "value" }; // invalid cast
75 // beres allows you to specify a what code inside the cast,
76 // but we don't (beres ignores it anyway):
77 //resource(407) (message('blah')) message { "field" = "value"; }
79 // Decompiler turns the very long string into an array.
82 "longstring" = "alongstring-alongstringg\000-alongstringg-alongstringg-alongstringgalongstringg-alongstringg-alongstringg-alongstringg-alongstring",
83 "longarray" = array { $"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabb" },
84 #'blah' "longblah" = array { $"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabb" },
85 "textarray" = array { "pompiedom" }
88 // Note: negative "what" values are allowed, but the decompiler converts
89 // them to unsigned, just like type codes (which cannot be negative).
90 resource(409) message(-1) { "field" = "value" };
91 resource(410) message(0x80000000) { "field" = "value" };
92 resource(411) message(0x7FFFFFFF) { "field" = "value" };
93 resource(412) message(-100001) { "field" = "value" };
94 resource(413) #100001 message(-100001) { "field" = "value" };
95 //resource(414) #-100001 message { "f" = "v" }; // syntax error
97 resource(415) message { };
98 resource(416) message;
99 resource(417) message('blah') { };
100 resource(418) message('blah');
102 // Decompiles to an empty message.
103 resource(419) $"31424F460100001212000000000000000100";
105 resource(420) message('blah') {
106 "sub" = message('bla1') { "string1" = "woot1" },
107 "sub" = message('bla2') { "string2" = "woot2" },
108 int8 "small integer" = 1,
111 "large integer" = (int64)3,
112 "string" = "some text",
113 "sub2" = message('bla3') { "string3" = "woot3" }
116 resource(421) #'w00t' message('blah') {
118 "sub" = message('bla1') { "string1" = "woot1" },
122 //------------------------------------------------------------------------------
124 resource(701) #'BBMP' archive BSomeClass { "data" = 123 };
125 resource(702) archive BSomeClass { "data" = 123 };
126 resource(703) archive("dynamic", 'blah') BSomeClass { "data" = 123 };
127 resource(704) archive("dynamic") BSomeClass { "data" = 123 };
128 resource(705) archive(, 200) BSomeClass { "data" = 123 };
129 resource(706) (archive BSomeClass) archive BSomeClass { "data" = 123 };
130 resource(707) archive(, -1) BSomeClass { "data" = 123 };
131 resource(700) archive BSomeClass { "" = $"" }; // empty archive trick
133 // When you cast an archive to a message, beres strips the
134 // "class" field from the message (so it will no longer be
135 // recognized as an archive), but we don't.
136 resource(708) (message) archive BSomeClass { "data" = 123 };
138 // beres allows you to specify the add_on name and what code
139 // inside the cast, but we don't (beres ignores it anyway).
140 //resource(709) (archive("t", 1) BSomeClass) archive BSomeClass { "d" = 123 };
142 //resource(709) (archive) archive BSomeClass { "d" = 123 }; // syntax error
143 //resource(709) archive("dynamic",) BSomeClass { "d" = 123 }; // syntax error
145 //------------------------------------------------------------------------------
148 R_BBMP_kLargeNewGroupIcon = 516,
149 R_BBMP_kSmallNewGroupIcon = 517,
152 resource(R_BBMP_kLargeNewGroupIcon) #'BBMP' archive BBitmap {
153 "_frame" = rect { 0.0, 0.0, 31.0, 31.0 },
158 $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
159 $"FFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
160 $"FFFFFFFFFFFFFFFF00FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
161 $"FFFFFFFFFFFFFFFF00FAF8FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
162 $"FFFFFFFFFFFF000000FAF8F8F8FAFA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
163 $"FFFFFFFFFF00FAFA0000F8F8F8F8F8FAFA00FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
164 $"FFFFFFFFFF00FAF8FAFA0000F8F8F8F8F800FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
165 $"FFFFFFFFFF00FAF8F8F8FAFA0000F8F8F800FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
166 $"FFFFFFFFFF00FAF8F8F8F8F8FAFA00F8F80000FFFFFFFFFFFFFFFFFFFFFFFFFF"
167 $"FFFFFFFFFF001BF8F8F8F8F8F8F8000E0F1C1C0000FFFFFFFFFFFFFFFFFFFFFF"
168 $"FFFFFFFFFF001B0F0F0FF8F8F8F8003F3F0E0F1C1C0000FFFFFFFFFFFFFFFFFF"
169 $"FFFFFFFFFF001B0F3F3F0E0FF8F800003F3F3F0E0F1C1C0000FFFFFFFFFFFFFF"
170 $"FFFFFFFFFF001B0F3F3F3F3F0E0F1C1C00003F3F3F0E0F1A190000FFFFFFFFFF"
171 $"FFFFFFFFFF001B0F3F3F3F3F3F3F0E0F1C1C00003F3F3F0E1A1900FFFFFFFFFF"
172 $"FFFFFFFFFF001B0F3F3F3F3F3F3F3F3F0E0F1C1C00003F3F171900FFFFFFFFFF"
173 $"FFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F0E0F1A190000171900FFFFFFFFFF"
174 $"FFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F0E1A1900171900FFFFFFFFFF"
175 $"FFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F3F171900171900FFFFFFFFFF"
176 $"FFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F3F171900171900FFFFFFFFFF"
177 $"FFFFFFFFFF001B0F3F3F3F3F3F3F3F3F3F3F3F3F3F171900171900FFFFFFFFFF"
178 $"FFFFFFFFFF001B183F3F3F3F3F3F3F3F3F3F3F3F3F171900171900FFFFFFFFFF"
179 $"FFFFFFFFFF001B1C17183F3F3F3F3F3F3F3F3F3F3F171900171900FFFFFFFFFF"
180 $"FFFFFFFFFFFF00001B1C17183F3F3F3F3F3F3F3F3F171900171900FFFFFFFFFF"
181 $"FFFFFFFFFFFFFFFF0000191A17173F3F3F3F3F3F3F171900171900FFFFFFFFFF"
182 $"FFFFFFFFFFFFFFFFFFFF0000191A17173F3F3F3F3F171900171A00FFFFFFFFFF"
183 $"FFFFFFFFFFFFFFFFFFFFFFFF0000191A17173F3F3F1719001A1900FFFFFFFFFF"
184 $"FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000191A17173F171900001900FFFFFFFFFF"
185 $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000191A17171A00FF0000FFFFFFFFFF"
186 $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000191A1900FFFFFFFFFFFFFFFF"
187 $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00001900FFFFFFFFFFFFFFFF"
188 $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF"
189 $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
193 resource(R_BBMP_kSmallNewGroupIcon) #'BBMP' archive BBitmap {
194 "_frame" = rect { 0.0, 0.0, 15.0, 15.0 },
199 $"FFFFFFFF0E0EFFFFFFFFFFFFFFFFFFFFFFFFFF0EFAFA0E0EFFFFFFFFFFFFFFFF"
200 $"FFFF0E0EF8F8FAFA0EFFFFFFFFFFFFFFFFFF0EFAFA0EF8F80EFFFFFFFFFFFFFF"
201 $"FFFF0EF8F8FAFA0E0E0EFFFFFFFFFFFFFFFF0E1818F8F80E3F3F0E0EFFFFFFFF"
202 $"FFFF0E183F18180F0F3F3F0E12FFFFFFFFFF0E183F3F3F18180F0F0E12FFFFFF"
203 $"FFFF0E183F3F3F3F3F18180E12FFFFFFFFFF0E183F3F3F3F3F3F1C0E12FFFFFF"
204 $"FFFF0E0E181C3F3F3F3F1C0E12FFFFFFFFFFFFFF0E0E171C3F3F1C0E12FFFFFF"
205 $"FFFFFFFFFFFF0E0E171C1C0E12FFFFFFFFFFFFFFFFFFFFFF0E0E170E12FFFFFF"
206 $"FFFFFFFFFFFFFFFFFFFF0E0EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"