@@ -2187,14 +2187,31 @@ namespace vg::editor
21872187 bool overriden = propContext.m_isPrefabOverride ;
21882188 bool notOverriden = !overriden;
21892189
2190- ImGui::MenuItem (" Prefab override " , nullptr , false , false );
2190+ ImGui::MenuItem (" Prefab" , nullptr , false , false );
21912191 ImGui::Separator ();
21922192
2193- if (ImGui::MenuItem (" Use original value" , nullptr , ¬Overriden))
2194- propContext.m_prefab ->ToggleOverride (propContext.m_originalObject , propContext.m_originalProp , false );
2193+ bool overrideExists = propContext.m_prefab ->GetDynamicProperty (propContext.m_originalObject , propContext.m_originalProp );
21952194
2196- if (ImGui::MenuItem (" Use override value" , nullptr , &overriden))
2197- propContext.m_prefab ->ToggleOverride (propContext.m_originalObject , propContext.m_originalProp , true );
2195+ if (overrideExists)
2196+ {
2197+ if (ImGui::MenuItem (" Use original value" , nullptr , ¬Overriden))
2198+ propContext.m_prefab ->EnablePropertyOverride (propContext.m_originalObject , propContext.m_originalProp , false );
2199+
2200+ if (ImGui::MenuItem (" Use override value" , nullptr , &overriden))
2201+ propContext.m_prefab ->EnablePropertyOverride (propContext.m_originalObject , propContext.m_originalProp , true );
2202+
2203+ ImGui::Separator ();
2204+ if (ImGui::MenuItem (" Remove override" ))
2205+ {
2206+ propContext.m_prefab ->EnablePropertyOverride (propContext.m_originalObject , propContext.m_originalProp , false );
2207+ propContext.m_prefab ->DestroyDynamicOverride (propContext.m_originalObject , propContext.m_originalProp );
2208+ }
2209+ }
2210+ else
2211+ {
2212+ if (ImGui::MenuItem (" Create override value" ))
2213+ propContext.m_prefab ->EnablePropertyOverride (propContext.m_originalObject , propContext.m_originalProp , true );
2214+ }
21982215
21992216 ImGui::EndDisabled ();
22002217
@@ -2304,8 +2321,21 @@ namespace vg::editor
23042321
23052322 if (_propContext.m_propOverride )
23062323 {
2307- ((DynamicPropertyResource *)_propContext.m_propOverride )->SetValue (relativePath);
2308- _propContext.m_propOverride ->Enable (true );
2324+ switch (_propContext.m_propOverride ->GetProperty ()->GetType ())
2325+ {
2326+ default :
2327+ {
2328+ VG_ASSERT (false );
2329+ }
2330+ break ;
2331+
2332+ case PropertyType::Resource:
2333+ {
2334+ ((DynamicPropertyResource *)_propContext.m_propOverride )->SetValue (relativePath);
2335+ _propContext.m_propOverride ->Enable (true );
2336+ }
2337+ break ;
2338+ }
23092339 }
23102340 _resource->SetResourcePath (relativePath);
23112341 }
0 commit comments