… | |
… | |
330 | |
330 | |
331 | coroapi::cede_to_tick_every (100); |
331 | coroapi::cede_to_tick_every (100); |
332 | |
332 | |
333 | for (;;) |
333 | for (;;) |
334 | { |
334 | { |
|
|
335 | object *op = object::create (); |
335 | archetype *at = get (f.get_str ()); |
336 | archetype *at = get (f.get_str ()); |
336 | object *op = object::create (); |
337 | f.get (op->name); |
|
|
338 | f.next (); |
337 | |
339 | |
338 | if (!op->parse_kv (f)) |
340 | if (!op->parse_kv (f)) |
339 | goto fail; |
341 | goto fail; |
340 | |
342 | |
341 | parts.push_back (std::make_pair (at, op)); |
343 | parts.push_back (std::make_pair (at, op)); |
342 | |
344 | |
343 | if (f.kw != KW_more) |
345 | if (f.kw != KW_more) |
344 | break; |
346 | break; |
345 | |
347 | |
346 | f.next (); |
348 | f.next (); |
|
|
349 | |
347 | assert (f.kw == KW_object); |
350 | if (f.kw != KW_object) |
|
|
351 | { |
|
|
352 | f.parse_error ("more object"); |
|
|
353 | goto fail; |
|
|
354 | } |
348 | } |
355 | } |
349 | |
356 | |
350 | { |
357 | { |
351 | archetype *head = parts.front ().first; |
358 | archetype *head = parts.front ().first; |
352 | |
359 | |