184 print " SQ" cls ".DefSQConst(engine, " cls "::" enum_value[i] ", " substr(spaces, 1, mlen - length(enum_value[i])) "\"" enum_value[i] "\");" |
185 print " SQ" cls ".DefSQConst(engine, " cls "::" enum_value[i] ", " substr(spaces, 1, mlen - length(enum_value[i])) "\"" enum_value[i] "\");" |
185 delete enum_value[i] |
186 delete enum_value[i] |
186 } |
187 } |
187 if (enum_value_size != 0) print "" |
188 if (enum_value_size != 0) print "" |
188 |
189 |
|
190 mlen = 0 |
|
191 for (i = 1; i <= enum_error_size; i++) { |
|
192 if (mlen <= length(enum_error_string_mapping[i])) mlen = length(enum_error_string_mapping[i]) |
|
193 } |
|
194 for (i = 1; i <= enum_error_size; i++) { |
|
195 print " AIError::RegisterErrorMap (" enum_error_string_mapping[i] ", " substr(spaces, 1, mlen - length(enum_error_string_mapping[i])) cls "::" enum_error_value_mapping[i] ");" |
|
196 print " AIError::RegisterErrorMapString(" enum_error_string_mapping[i] ", " substr(spaces, 1, mlen - length(enum_error_string_mapping[i]) + length(cls) + 1) "\"" enum_error_value_mapping[i] "\");" |
|
197 |
|
198 delete enum_error_string_mapping[i] |
|
199 delete enum_error_value_mapping[i] |
|
200 } |
|
201 if (enum_error_size != 0) print "" |
|
202 |
189 # Static methods |
203 # Static methods |
190 mlen = 0 |
204 mlen = 0 |
191 for (i = 1; i <= static_method_size; i++) { |
205 for (i = 1; i <= static_method_size; i++) { |
192 if (mlen <= length(static_methods[i, 0])) mlen = length(static_methods[i, 0]) |
206 if (mlen <= length(static_methods[i, 0])) mlen = length(static_methods[i, 0]) |
193 } |
207 } |
234 { |
249 { |
235 if (in_enum == "true") { |
250 if (in_enum == "true") { |
236 enum_value_size++ |
251 enum_value_size++ |
237 sub(",", "", $1) |
252 sub(",", "", $1) |
238 enum_value[enum_value_size] = $1 |
253 enum_value[enum_value_size] = $1 |
|
254 |
|
255 # Check if this a special error enum |
|
256 if (match(enums[enum_size], ".*::ErrorMessages") != 0) { |
|
257 # syntax: |
|
258 # enum ErrorMessages { |
|
259 # ERR_SOME_ERROR, // [STR_ITEM1, STR_ITEM2, ...] |
|
260 # } |
|
261 |
|
262 # Set the mappings |
|
263 if (match($0, "\\[.+\\]") != 0) { |
|
264 mappings = substr($0, RSTART, RLENGTH); |
|
265 gsub("([\\[[:space:]\\]])", "", mappings); |
|
266 |
|
267 split(mappings, mapitems, ","); |
|
268 for (i = 1; i <= length(mapitems); i++) { |
|
269 enum_error_size++ |
|
270 enum_error_string_mapping[enum_error_size] = mapitems[i] |
|
271 enum_error_value_mapping[enum_error_size] = $1 |
|
272 } |
|
273 |
|
274 # Mark this index as an error |
|
275 enum_is_error_mapping[enum_value_size] = 1 |
|
276 } |
|
277 } |
239 next |
278 next |
240 } |
279 } |
241 } |
280 } |
242 |
281 |
243 # Add a method to the list |
282 # Add a method to the list |