MCPcopy Create free account
hub / github.com/defold/defold / ResScriptCreate

Function ResScriptCreate

engine/gameobject/src/gameobject/res_script.cpp:52–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50 }
51
52 static dmResource::Result ResScriptCreate(const dmResource::ResourceCreateParams* params)
53 {
54 dmLuaDDF::LuaModule* lua_module = (dmLuaDDF::LuaModule*) params->m_PreloadData;
55
56 dmScript::HContext script_context = (dmScript::HContext) params->m_Context;
57 lua_State* L = dmScript::GetLuaState(script_context);
58
59 if (!RegisterSubModules(params->m_Factory, script_context, lua_module))
60 {
61 dmDDF::FreeMessage(lua_module);
62 return dmResource::RESULT_FORMAT_ERROR;
63 }
64
65 HScript script = NewScript(L, lua_module);
66 if (script)
67 {
68 dmResource::Result res = LoadPropertyResources(params->m_Factory, lua_module->m_PropertyResources.m_Data, lua_module->m_PropertyResources.m_Count, script->m_PropertyResources);
69 if(res != dmResource::RESULT_OK)
70 {
71 DeleteScript(script);
72 return res;
73 }
74
75 ResourceDescriptorSetResource(params->m_Resource, script);
76 ResourceDescriptorSetResourceSize(params->m_Resource, params->m_BufferSize - script->m_LuaModule->m_Source.m_Script.m_Count);
77 return dmResource::RESULT_OK;
78 }
79 else
80 {
81 dmDDF::FreeMessage(lua_module);
82 return dmResource::RESULT_FORMAT_ERROR;
83 }
84 }
85
86 static dmResource::Result ResScriptDestroy(const dmResource::ResourceDestroyParams* params)
87 {

Callers

nothing calls this directly

Calls 8

RegisterSubModulesFunction · 0.85
FreeMessageFunction · 0.85
LoadPropertyResourcesFunction · 0.85
GetLuaStateFunction · 0.70
NewScriptFunction · 0.70
DeleteScriptFunction · 0.70

Tested by

no test coverage detected