Показать сообщение отдельно
Старый 29.06.2009, 13:48   #22
jimon
 
Сообщений: n/a
Ответ: Хитрая хитрость

Mr_F_
какая еще тысяча if'ов ?
вот смотри, код сохранения\загрузки параметров узла графа сцены в\из файл
//! Serialize
virtual void Serialize(core::ISerializeStream * SerializeStream,u1 IfTrueThanWrite)
{
        SerializeStream->OpenSection("SceneNode");
        if(IfTrueThanWrite)
        {
                SerializeStream->SetValue("NodeName",NodeName);
                SerializeStream->SetValue("CurrentPosition.X",CurrentPosition.X);
                SerializeStream->SetValue("CurrentPosition.Y",CurrentPosition.Y);
                SerializeStream->SetValue("CurrentPosition.Z",CurrentPosition.Z);
                SerializeStream->SetValue("CurrentRotation.X",CurrentRotation.X);
                SerializeStream->SetValue("CurrentRotation.Y",CurrentRotation.Y);
                SerializeStream->SetValue("CurrentRotation.Z",CurrentRotation.Z);
                SerializeStream->SetValue("CurrentScale.X",CurrentScale.X);
                SerializeStream->SetValue("CurrentScale.Y",CurrentScale.Y);
                SerializeStream->SetValue("CurrentScale.Z",CurrentScale.Z);
                SerializeStream->SetValue("Visible",(s8)Visible);
        }
        else
        {
                NodeName = SerializeStream->GetValuejeStringd("NodeName");
                CurrentPosition.X = SerializeStream->GetValuef32("CurrentPosition.X");
                CurrentPosition.Y = SerializeStream->GetValuef32("CurrentPosition.Y");
                CurrentPosition.Z = SerializeStream->GetValuef32("CurrentPosition.Z");
                CurrentRotation.X = SerializeStream->GetValuef32("CurrentRotation.X");
                CurrentRotation.Y = SerializeStream->GetValuef32("CurrentRotation.Y");
                CurrentRotation.Z = SerializeStream->GetValuef32("CurrentRotation.Z");
                CurrentScale.X = SerializeStream->GetValuef32("CurrentScale.X");
                CurrentScale.Y = SerializeStream->GetValuef32("CurrentScale.Y");
                CurrentScale.Z = SerializeStream->GetValuef32("CurrentScale.Z");
                Visible = SerializeStream->GetValues8("Visible")?true:false;
                NeedToRebuildMatrix = true;
        }
        SerializeStream->CloseSection();
}
у меня так все обьекты сохраняют\загружают информацию
потом я просто пишу Scene->LoadScene("scene1.dat") и вся сцена загружается из этого файла
если надо - могу написать Scene->SaveScene("somefile.dat") и вся сцена сохранится в этот файл
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (29.06.2009)