MCPcopy Create free account
hub / github.com/BoomingTech/Piccolo / load

Method load

engine/source/runtime/function/framework/level/level.cpp:55–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53 }
54
55 bool Level::load(const std::string& level_res_url)
56 {
57 LOG_INFO("loading level: {}", level_res_url);
58
59 m_level_res_url = level_res_url;
60
61 LevelRes level_res;
62 const bool is_load_success = g_runtime_global_context.m_asset_manager->loadAsset(level_res_url, level_res);
63 if (is_load_success == false)
64 {
65 return false;
66 }
67
68 ASSERT(g_runtime_global_context.m_physics_manager);
69 m_physics_scene = g_runtime_global_context.m_physics_manager->createPhysicsScene(level_res.m_gravity);
70
71 for (const ObjectInstanceRes& object_instance_res : level_res.m_objects)
72 {
73 createObject(object_instance_res);
74 }
75
76 // create active character
77 for (const auto& object_pair : m_gobjects)
78 {
79 std::shared_ptr<GObject> object = object_pair.second;
80 if (object == nullptr)
81 continue;
82
83 if (level_res.m_character_name == object->getName())
84 {
85 m_current_active_character = std::make_shared<Character>(object);
86 break;
87 }
88 }
89
90 m_is_loaded = true;
91
92 LOG_INFO("level load succeed");
93
94 return true;
95 }
96
97 void Level::unload()
98 {

Callers 3

loadLevelMethod · 0.45
createObjectMethod · 0.45
allocMethod · 0.45

Calls 2

loadAssetMethod · 0.80
createPhysicsSceneMethod · 0.80

Tested by

no test coverage detected