00001 #include "BasicPre.hpp" 00002 #include "NavMeshAreaParser.hpp" 00003 #include "../area/NavMeshArea.hpp" 00004 #include "../area/NavMeshAreaFactory.hpp" 00005 #include "sim/area/AreaManager.hpp" 00006 #include "util/type/ByteArray.hpp" 00007 00008 using namespace se_core; 00009 00010 namespace se_basic { 00011 00012 NavMeshAreaParser 00013 ::NavMeshAreaParser(ParseManager& parser) 00014 : Parser(parser, Parser::BASIC, Parser::AREA, 2) { 00015 } 00016 00017 00018 void NavMeshAreaParser 00019 ::parse(InputStream& in) { 00020 // (name) 00021 String* name = new String(); 00022 in.readString(*name); 00023 00024 // (width height) 00025 unsigned short w = in.readShort(); 00026 unsigned short h = in.readShort(); 00027 00028 // (navmesh data) 00029 unsigned short dataSize = in.readShort(); 00030 ByteArray* data = new ByteArray(); 00031 in.readByteArray(*data, dataSize); 00032 00033 // Create area factory 00034 NavMeshAreaFactory* f = new NavMeshAreaFactory(name, w, h, data); 00035 SimSchema::areaManager.addFactory(f); 00036 00037 // Create area 00038 // Same name, but let factory handle destruction 00039 //String* areaName = new String(name->get()); 00040 //SimSchema::areaManager.createArea(areaName, name->get()); 00041 00042 //LogDetail(name->get() << ": " << w << ", " << h); 00043 } 00044 00045 }
Home Page | SagaEngine trunk (updated nightly) reference generated Sun Dec 2 20:06:02 2007 by Doxygen version 1.3.9.1.