1. 레이어에 오브젝트 스토어와 컴포넌트 추가를 위한 변경사항
private:
list<class CGameObject*> m_GameObjects;
unordered_map<wstring, CGameObject*> m_objectStore;
unordered_multimap<FamilyId, CGameObject*> m_componentStore;
변경점
1)
기존 게임 클론시에 프로토타입태그 + void* pArg만 필요 했었는데
원하는 레이어에 컴포넌트 스토어 생성한 컴포넌트와 자기 자신을 넣어줘야하는 경우에 어떤 레벨의 어떤 레이어인지를
특정할 필요가 있음.
그리고 오브젝트 스토어에 넣을시에도 필요함
그래서 게임오브젝트 클론 함수및 Initialize함수를 변경함
virtual CGameObject* Clone(const _tchar* pLayerTag, _uint iLevelIndex, void* pArg = nullptr) = 0;
HRESULT CGameObject::Initialize(const _tchar* pLayerTag, _uint iLevelIndex, void* pArg)
{
if (nullptr == pLayerTag)
return E_FAIL;
m_iLevelindex = iLevelIndex;
m_strLayerTag = pLayerTag;
return S_OK;
}