ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/loader.C
(Generate patch)

Comparing deliantra/server/common/loader.C (file contents):
Revision 1.69 by root, Tue Apr 17 18:24:29 2007 UTC vs.
Revision 1.70 by root, Tue Apr 17 18:40:31 2007 UTC

1400} 1400}
1401 1401
1402///////////////////////////////////////////////////////////////////////////// 1402/////////////////////////////////////////////////////////////////////////////
1403 1403
1404// generic resource file load, 1404// generic resource file load,
1405// currently supports: region, treasures 1405// currently supports: region, treasures, archetypes
1406bool load_resource_file (const char *filename) 1406bool load_resource_file (const char *filename)
1407{ 1407{
1408 object_thawer f (filename); 1408 object_thawer f (filename);
1409
1410 bool success = false;
1411 bool seen_arch = false;
1409 1412
1410 f.next (); 1413 f.next ();
1411 1414
1412 for (;;) 1415 for (;;)
1413 { 1416 {
1414 switch (f.kw) 1417 switch (f.kw)
1415 { 1418 {
1416 case KW_region: 1419 case KW_region:
1417 if (!region::read (f)) 1420 if (!region::read (f))
1418 return false; 1421 goto finish;
1419 break; 1422 break;
1420 1423
1421 case KW_treasure: 1424 case KW_treasure:
1422 case KW_treasureone: 1425 case KW_treasureone:
1423 if (!treasurelist::read (f)) 1426 if (!treasurelist::read (f))
1424 return false; 1427 goto finish;
1428 break;
1429
1430 case KW_object:
1431 seen_arch = true;
1432 if (!archetype::read (f))
1433 goto finish;
1425 break; 1434 break;
1426 1435
1427 case KW_EOF: 1436 case KW_EOF:
1428 return true; 1437 success = true;
1438 goto finish;
1429 1439
1430 default: 1440 default:
1431 if (!f.parse_error ("resource file")) 1441 if (!f.parse_error ("resource file"))
1432 return false; 1442 goto finish;
1433 } 1443 }
1434 } 1444 }
1445
1446finish:
1447 if (seen_arch)
1448 init_archetype_pointers ();
1449
1450 return success;
1435} 1451}
1436 1452

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines