void ESoundSource::Save(IWriter& F) { inherited::Save (F); F.open_chunk (SOUND_CHUNK_VERSION); F.w_u16 (SOUND_SOURCE_VERSION); F.close_chunk (); F.w_chunk (SOUND_CHUNK_TYPE,&m_Type,sizeof(m_Type)); F.open_chunk (SOUND_CHUNK_SOURCE_NAME); F.w_stringZ (m_WAVName); F.close_chunk (); F.w_chunk (SOUND_CHUNK_SOURCE_FLAGS,&m_Flags,sizeof(m_Flags)); F.open_chunk (SOUND_CHUNK_SOURCE_PARAMS3); F.w_fvector3 (m_Params.position); F.w_float (m_Params.volume); F.w_float (m_Params.freq); F.w_float (m_Params.min_distance); F.w_float (m_Params.max_distance); F.w_float (m_Params.max_ai_distance); F.close_chunk (); F.open_chunk (SOUND_CHUNK_GAME_PARAMS); F.w_fvector2 (m_RandomPause); F.w_fvector2 (m_ActiveTime); F.w_fvector2 (m_PlayTime); F.close_chunk (); }
void CSector::Save(IWriter &fs) { // Root xr_vector<OGF_Base *>::iterator F = std::find(g_tree.begin(),g_tree.end(),TreeRoot); R_ASSERT(F!=g_tree.end()); u32 ID = u32(F-g_tree.begin()); fs.w_chunk(fsP_Root,&ID,sizeof(u32)); // Portals fs.w_chunk(fsP_Portals,&*Portals.begin(),Portals.size()*sizeof(u16)); }
void recalculation::setup_recalculationflags_file( u32 check_sum ) { IWriter *W = FS.w_open ( "$level$", "recalculation_data_slots.details" ); W->w_chunk( 0, &check_sum, sizeof( check_sum ) ); u32 buff_size = dtH.slot_index( dtH.x_size(), dtH.z_size() ) * sizeof( slots_flags[0] ); void* buff = _alloca( buff_size ); Memory.mem_fill( buff, 0, buff_size ); W->w_chunk( 1, buff, buff_size ); FS.w_close( W ); }
void CGroupObject::Save(IWriter& F) { CCustomObject::Save(F); F.open_chunk (GROUPOBJ_CHUNK_VERSION); F.w_u16 (GROUPOBJ_CURRENT_VERSION); F.close_chunk (); F.w_chunk (GROUPOBJ_CHUNK_FLAGS,&m_Flags,sizeof(m_Flags)); // objects if (IsOpened()){ F.open_chunk(GROUPOBJ_CHUNK_OPEN_OBJECT_LIST); F.w_u32 (m_Objects.size()); for (ObjectIt it=m_Objects.begin(); it!=m_Objects.end(); it++) F.w_stringZ ((*it)->Name); F.close_chunk (); }else{ Scene->SaveObjects(m_Objects,GROUPOBJ_CHUNK_OBJECT_LIST,F); } F.open_chunk (GROUPOBJ_CHUNK_REFERENCE); F.w_stringZ (m_ReferenceName); F.close_chunk (); }
void SaveGEOMs (LPCSTR fn, VBContainer& vb, IBContainer& ib, SWIContainer& swi) { Status ("Geometry '%s'...", fn); // geometry string_path lfn ; IWriter* file ; file = FS.w_open (strconcat(sizeof(lfn),lfn,pBuild->path,fn)); hdrLEVEL H; H.XRLC_version = XRCL_PRODUCTION_VERSION; file->w_chunk (fsL_HEADER,&H,sizeof(H)); // verts file->open_chunk (fsL_VB); vb.Save (*file); file->close_chunk (); // indices file->open_chunk (fsL_IB); ib.Save (*file); file->close_chunk (); // swis file->open_chunk (fsL_SWIS); swi.Save (*file); file->close_chunk (); }
void ESceneLightTools::Save(IWriter& F) { inherited::Save (F); F.w_chunk (CHUNK_VERSION,(u16*)&LIGHT_TOOLS_VERSION,sizeof(LIGHT_TOOLS_VERSION)); F.open_chunk (CHUNK_FLAGS); F.w_u32 (m_Flags.get()); F.close_chunk (); F.open_chunk (CHUNK_SUN_SHADOW); F.w_u8 (0); F.w_fvector2 (m_SunShadowDir); F.close_chunk (); F.open_chunk (CHUNK_LCONTROLS_LAST); F.w_u32 (lcontrol_last_idx); F.close_chunk (); F.open_chunk (CHUNK_LCONTROLS); RTokenVecIt _I = lcontrols.begin(); RTokenVecIt _E = lcontrols.end(); for (;_I!=_E; _I++){ F.w_stringZ (_I->name); F.w_u32 (_I->id); } F.close_chunk (); }
void CLight::Save(IWriter& F) { CCustomObject::Save(F); F.open_chunk (LIGHT_CHUNK_VERSION); F.w_u16 (LIGHT_VERSION); F.close_chunk (); F.open_chunk (LIGHT_CHUNK_PARAMS); F.w_u32 (m_Type); F.w_fcolor (m_Color); F.w_float (m_Brightness); F.w_float (m_Range); F.w_float (m_Attenuation0); F.w_float (m_Attenuation1); F.w_float (m_Attenuation2); F.w_float (m_Cone); F.w_float (m_VirtualSize); F.close_chunk (); F.w_chunk (LIGHT_CHUNK_USE_IN_D3D,&m_UseInD3D,sizeof(m_UseInD3D)); F.w_chunk (LIGHT_CHUNK_FLAG,&m_Flags,sizeof(m_Flags)); F.w_chunk (LIGHT_CHUNK_LCONTROL,&m_LControl,sizeof(m_LControl)); if (m_pAnimRef){ F.open_chunk(LIGHT_CHUNK_ANIMREF); F.w_stringZ (m_pAnimRef->cName); F.close_chunk(); } if (m_FalloffTex.size()){ F.open_chunk(LIGHT_CHUNK_FALLOFF_TEXTURE); F.w_stringZ (m_FalloffTex); F.close_chunk(); } if (m_Flags.is(ELight::flPointFuzzy)){ VERIFY(m_FuzzyData); F.open_chunk(LIGHT_CHUNK_FUZZY_DATA); m_FuzzyData->Save(F); F.close_chunk(); } }
void EDetailManager::SaveStream(IWriter& F) { inherited::SaveStream (F); // version F.open_chunk (DETMGR_CHUNK_VERSION); F.w_u32 (DETMGR_VERSION); F.close_chunk (); F.open_chunk (DETMGR_CHUNK_FLAGS); F.w_u32 (m_Flags.get()); F.close_chunk (); // header F.w_chunk (DETMGR_CHUNK_HEADER,&dtH,sizeof(DetailHeader)); // objects SaveColorIndices (F); // slots F.open_chunk (DETMGR_CHUNK_SLOTS); F.w_u32 (dtH.size_x*dtH.size_z); F.w (dtSlots,dtH.size_x*dtH.size_z*sizeof(DetailSlot)); F.close_chunk (); // internal // bbox F.w_chunk (DETMGR_CHUNK_BBOX,&m_BBox,sizeof(Fbox)); // base texture if (m_Base.Valid()){ F.open_chunk (DETMGR_CHUNK_BASE_TEXTURE); F.w_stringZ (m_Base.GetName()); F.close_chunk (); } F.open_chunk (DETMGR_CHUNK_DENSITY); F.w_float (ps_r__Detail_density); F.close_chunk (); // snap objects F.open_chunk (DETMGR_CHUNK_SNAP_OBJECTS); F.w_u32 (m_SnapObjects.size()); for (ObjectIt o_it=m_SnapObjects.begin(); o_it!=m_SnapObjects.end(); o_it++) F.w_stringZ ((*o_it)->Name); F.close_chunk (); }
void ESceneSpawnTool::SaveStream(IWriter& F) { inherited::SaveStream (F); F.w_chunk (CHUNK_VERSION,(u16*)&SPAWN_TOOLS_VERSION,sizeof(SPAWN_TOOLS_VERSION)); F.open_chunk (CHUNK_FLAGS); F.w_u32 (m_Flags.get()); F.close_chunk (); }
void ESceneCustomOTools::SaveSelection(IWriter& F) { F.open_chunk (CHUNK_OBJECTS); int count = 0; for(ObjectIt it = m_Objects.begin();it!=m_Objects.end();it++){ if ((*it)->Selected() && !(*it)->IsDeleted()){ F.open_chunk(count++); Scene->SaveObject(*it,F); F.close_chunk(); } } F.close_chunk (); F.w_chunk (CHUNK_OBJECT_COUNT,&count,sizeof(count)); }
void CBuild::SaveSectors(IWriter& fs) { CMemoryWriter MFS; Status("Processing..."); // validate & save for (u32 I=0; I<g_sectors.size(); I++) { MFS.open_chunk(I); g_sectors[I]->Validate(); g_sectors[I]->Save(MFS); MFS.close_chunk(); Progress(float(I)/float(g_sectors.size())); } fs.w_chunk(fsL_SECTORS,MFS.pointer(),MFS.size()); }
void ESceneObjectTools::Save(IWriter& F) { inherited::Save(F); F.w_chunk (CHUNK_VERSION,(u16*)&OBJECT_TOOLS_VERSION,sizeof(OBJECT_TOOLS_VERSION)); F.open_chunk (CHUNK_FLAGS); F.w_u32 (m_Flags.get()); F.close_chunk (); F.open_chunk (CHUNK_APPEND_RANDOM); F.w_fvector3 (m_AppendRandomMinScale); F.w_fvector3 (m_AppendRandomMaxScale); F.w_fvector3 (m_AppendRandomMinRotation); F.w_fvector3 (m_AppendRandomMaxRotation); F.w_u32 (m_AppendRandomObjects.size()); if (m_AppendRandomObjects.size()){ for (RStringVecIt it=m_AppendRandomObjects.begin(); it!=m_AppendRandomObjects.end(); it++) F.w_stringZ(*it); } F.close_chunk (); }
void CPGDef::Save(IWriter& F) { F.open_chunk (PGD_CHUNK_VERSION); F.w_u16 (PGD_VERSION); F.close_chunk (); F.open_chunk (PGD_CHUNK_NAME); F.w_stringZ (m_Name); F.close_chunk (); F.w_chunk (PGD_CHUNK_FLAGS,&m_Flags,sizeof(m_Flags)); F.open_chunk (PGD_CHUNK_EFFECTS); F.w_u32 (m_Effects.size()); for (EffectIt it=m_Effects.begin(); it!=m_Effects.end(); it++){ F.w_stringZ ((*it)->m_EffectName); F.w_stringZ ((*it)->m_OnPlayChildName); F.w_stringZ ((*it)->m_OnBirthChildName); F.w_stringZ ((*it)->m_OnDeadChildName); F.w_float ((*it)->m_Time0); F.w_float ((*it)->m_Time1); F.w_u32 ((*it)->m_Flags.get()); } F.close_chunk (); F.open_chunk (PGD_CHUNK_TIME_LIMIT); F.w_float (m_fTimeLimit); F.close_chunk (); #ifdef _EDITOR F.open_chunk (PGD_CHUNK_OWNER); F.w_stringZ (m_OwnerName); F.w_stringZ (m_ModifName); F.w (&m_CreateTime,sizeof(m_CreateTime)); F.w (&m_ModifTime,sizeof(m_ModifTime)); F.close_chunk (); #endif }
void ESceneSectorTool::SaveSelection(IWriter& F) { F.w_chunk (CHUNK_VERSION,(u16*)&SECTOR_TOOLS_VERSION,sizeof(SECTOR_TOOLS_VERSION)); inherited::SaveSelection(F); }
void ESceneLightTools::SaveSelection(IWriter& F) { F.w_chunk (CHUNK_VERSION,(u16*)&LIGHT_TOOLS_VERSION,sizeof(LIGHT_TOOLS_VERSION)); inherited::SaveSelection(F); }
void CEditableMesh::SaveMesh(IWriter& F){ F.open_chunk (EMESH_CHUNK_VERSION); F.w_u16 (EMESH_CURRENT_VERSION); F.close_chunk (); F.open_chunk (EMESH_CHUNK_MESHNAME); F.w_stringZ (m_Name); F.close_chunk (); F.w_chunk (EMESH_CHUNK_BBOX,&m_Box, sizeof(m_Box)); F.w_chunk (EMESH_CHUNK_FLAGS,&m_Flags,1); F.w_chunk (EMESH_CHUNK_BOP,&m_Ops, sizeof(m_Ops)); F.open_chunk (EMESH_CHUNK_VERTS); F.w_u32 (m_VertCount); F.w (m_Verts, m_VertCount*sizeof(Fvector)); /* for (AdjIt a_it=m_Adjs.begin(); a_it!=m_Adjs.end(); a_it++){ int sz = a_it->size(); VERIFY(sz<=255); F.w_u8 ((u8)sz); F.w (&*a_it->begin(), sizeof(int)*sz); } */ F.close_chunk (); F.open_chunk (EMESH_CHUNK_FACES); F.w_u32 (m_FaceCount); /* polygon count */ F.w (m_Faces, m_FaceCount*sizeof(st_Face)); F.close_chunk (); if (m_SGs){ F.open_chunk (EMESH_CHUNK_SG); F.w (m_SGs, m_FaceCount*sizeof(u32)); F.close_chunk (); } F.open_chunk (EMESH_CHUNK_VMREFS); F.w_u32 (m_VMRefs.size()); for (VMRefsIt r_it=m_VMRefs.begin(); r_it!=m_VMRefs.end(); r_it++){ int sz = r_it->count; VERIFY(sz<=255); F.w_u8 ((u8)sz); F.w (r_it->pts, sizeof(st_VMapPt)*sz); } F.close_chunk (); F.open_chunk (EMESH_CHUNK_SFACE); F.w_u16 ((u16)m_SurfFaces.size()); /* surface polygon count*/ for (SurfFacesPairIt plp_it=m_SurfFaces.begin(); plp_it!=m_SurfFaces.end(); plp_it++){ F.w_stringZ (plp_it->first->_Name()); /* surface name*/ IntVec& pol_lst = plp_it->second; F.w_u32 (pol_lst.size()); /* surface-polygon indices*/ F.w (&*pol_lst.begin(), sizeof(int)*pol_lst.size()); } F.close_chunk (); F.open_chunk (EMESH_CHUNK_VMAPS_2); F.w_u32 (m_VMaps.size()); for (VMapIt vm_it=m_VMaps.begin(); vm_it!=m_VMaps.end(); vm_it++){ F.w_stringZ ((*vm_it)->name); F.w_u8 ((*vm_it)->dim); F.w_u8 ((u8)(*vm_it)->polymap); F.w_u8 ((*vm_it)->type); F.w_u32 ((*vm_it)->size()); F.w ((*vm_it)->getVMdata(), (*vm_it)->VMdatasize()); F.w ((*vm_it)->getVIdata(), (*vm_it)->VIdatasize()); if ((*vm_it)->polymap) F.w ((*vm_it)->getPIdata(), (*vm_it)->PIdatasize()); } F.close_chunk (); }
void ESceneWayTool::SaveSelection(IWriter& F) { F.w_chunk (CHUNK_VERSION,(u16*)&WAY_TOOLS_VERSION,sizeof(WAY_TOOLS_VERSION)); inherited::SaveSelection(F); }
void CBuild::Run (LPCSTR P) { if (strstr(Core.Params,"-att")) gl_linear = TRUE; //****************************************** Open Level strconcat (path,P,"\\") ; string_path lfn ; IWriter* fs = FS.w_open (strconcat(lfn,path,"level.")); fs->open_chunk (fsL_HEADER) ; hdrLEVEL H; H.XRLC_version = XRCL_PRODUCTION_VERSION; H.XRLC_quality = g_params.m_quality; fs->w (&H,sizeof(H)); fs->close_chunk (); //****************************************** Dumb entry in shader-registration RegisterShader (""); //****************************************** Saving lights { string256 fn; IWriter* fs = FS.w_open (strconcat(fn,pBuild->path,"build.lights")); fs->w_chunk (0,&*L_static.rgb.begin(),L_static.rgb.size()*sizeof(R_Light)); fs->w_chunk (1,&*L_static.hemi.begin(),L_static.hemi.size()*sizeof(R_Light)); fs->w_chunk (2,&*L_static.sun.begin(),L_static.sun.size()*sizeof(R_Light)); FS.w_close (fs); } //****************************************** Optimizing + checking for T-junctions FPU::m64r (); Phase ("Optimizing..."); mem_Compact (); PreOptimize (); CorrectTJunctions (); //****************************************** HEMI-Tesselate FPU::m64r (); Phase ("Adaptive HT..."); mem_Compact (); #ifndef CFORM_ONLY xrPhase_AdaptiveHT (); #endif //****************************************** Building normals FPU::m64r (); Phase ("Building normals..."); mem_Compact (); CalcNormals (); //SmoothVertColors (5); //****************************************** Collision DB //should be after normals, so that double-sided faces gets separated FPU::m64r (); Phase ("Building collision database..."); mem_Compact (); BuildCForm (); #ifdef CFORM_ONLY return; #endif BuildPortals (*fs); //****************************************** T-Basis { FPU::m64r (); Phase ("Building tangent-basis..."); xrPhase_TangentBasis (); mem_Compact (); } //****************************************** GLOBAL-RayCast model FPU::m64r (); Phase ("Building rcast-CFORM model..."); mem_Compact (); Light_prepare (); BuildRapid (TRUE); //****************************************** GLOBAL-ILLUMINATION if (b_radiosity) { FPU::m64r (); Phase ("Radiosity-Solver..."); mem_Compact (); Light_prepare (); xrPhase_Radiosity (); } //****************************************** Starting MU FPU::m64r (); Phase ("LIGHT: Starting MU..."); mem_Compact (); Light_prepare (); mu_base.start (xr_new<CMUThread> (0)); //****************************************** Resolve materials FPU::m64r (); Phase ("Resolving materials..."); mem_Compact (); xrPhase_ResolveMaterials (); IsolateVertices (TRUE); //****************************************** UV mapping { FPU::m64r (); Phase ("Build UV mapping..."); mem_Compact (); xrPhase_UVmap (); IsolateVertices (TRUE); } //****************************************** Subdivide geometry FPU::m64r (); Phase ("Subdividing geometry..."); mem_Compact (); xrPhase_Subdivide (); IsolateVertices (TRUE); //****************************************** All lighting + lmaps building and saving Light (); //****************************************** Merge geometry FPU::m64r (); Phase ("Merging geometry..."); mem_Compact (); xrPhase_MergeGeometry (); //****************************************** Convert to OGF FPU::m64r (); Phase ("Converting to OGFs..."); mem_Compact (); Flex2OGF (); //****************************************** Wait for MU FPU::m64r (); Phase ("LIGHT: Waiting for MU-thread..."); mem_Compact (); mu_base.wait (500); mu_secondary.wait (500); //****************************************** Export MU-models FPU::m64r (); Phase ("Converting MU-models to OGFs..."); mem_Compact (); { u32 m; Status ("MU : Models..."); for (m=0; m<mu_models.size(); m++) { mu_models[m]->calc_ogf (); mu_models[m]->export_geometry (); } Status ("MU : References..."); for (m=0; m<mu_refs.size(); m++) mu_refs[m]->export_ogf (); } //****************************************** Destroy RCast-model FPU::m64r (); Phase ("Destroying ray-trace model..."); mem_Compact (); xr_delete (RCAST_Model); //****************************************** Build sectors FPU::m64r (); Phase ("Building sectors..."); mem_Compact (); BuildSectors (); //****************************************** Saving MISC stuff FPU::m64r (); Phase ("Saving..."); mem_Compact (); SaveLights (*fs); fs->open_chunk (fsL_GLOWS); for (u32 i=0; i<glows.size(); i++) { b_glow& G = glows[i]; fs->w (&G,4*sizeof(float)); string1024 sid; strconcat (sid, shader_render[materials[G.dwMaterial].shader].name, "/", textures [materials[G.dwMaterial].surfidx].name ); fs->w_u16 (RegisterShader(sid)); } fs->close_chunk (); SaveTREE (*fs); SaveSectors (*fs); err_save (); }
void CBuild::BuildPortals(IWriter& fs) { fs.w_chunk (fsL_PORTALS,&*portals.begin(),portals.size()*sizeof(b_portal)); }
void ESceneObjectTools::SaveSelection(IWriter& F) { F.w_chunk (CHUNK_VERSION,(u16*)&OBJECT_TOOLS_VERSION,sizeof(OBJECT_TOOLS_VERSION)); inherited::SaveSelection(F); }
void ESceneSpawnTool::SaveSelection(IWriter& F) { F.w_chunk (CHUNK_VERSION,(u16*)&SPAWN_TOOLS_VERSION,sizeof(SPAWN_TOOLS_VERSION)); inherited::SaveSelection(F); }
void CEditableObject::Save(IWriter& F) { F.open_chunk (EOBJ_CHUNK_VERSION); F.w_u16 (EOBJ_CURRENT_VERSION); F.close_chunk (); F.open_chunk (EOBJ_CHUNK_CLASSSCRIPT); F.w_stringZ (m_ClassScript); F.close_chunk (); F.open_chunk (EOBJ_CHUNK_LODS); F.w_stringZ (m_LODs); F.close_chunk (); F.w_chunk (EOBJ_CHUNK_FLAGS,&m_Flags.flags,sizeof(m_Flags.flags)); // Log("1: ",F.tell()); // meshes F.open_chunk (EOBJ_CHUNK_EDITMESHES); int count = 0; for(EditMeshIt m = m_Meshes.begin();m!=m_Meshes.end();m++){ F.open_chunk(count); count++; (*m)->SaveMesh(F); F.close_chunk(); } F.close_chunk (); // Log("2: ",F.tell()); // surfaces F.open_chunk (EOBJ_CHUNK_SURFACES3); F.w_u32 (m_Surfaces.size()); for (SurfaceIt sf_it=m_Surfaces.begin(); sf_it!=m_Surfaces.end(); sf_it++){ F.w_stringZ ((*sf_it)->_Name ()); F.w_stringZ ((*sf_it)->_ShaderName ()); F.w_stringZ ((*sf_it)->_ShaderXRLCName ()); F.w_stringZ ((*sf_it)->_GameMtlName ()); F.w_stringZ ((*sf_it)->_Texture ()); F.w_stringZ ((*sf_it)->_VMap ()); F.w_u32 ((*sf_it)->m_Flags.get ()); F.w_u32 ((*sf_it)->_FVF ()); F.w_u32 (1); } F.close_chunk (); // Log("3: ",F.tell()); // bones if (!m_Bones.empty()){ F.open_chunk (EOBJ_CHUNK_BONES2); for (BoneIt b_it=m_Bones.begin(); b_it!=m_Bones.end(); b_it++){ F.open_chunk (b_it-m_Bones.begin()); (*b_it)->Save (F); F.close_chunk (); } F.close_chunk (); } // Log("4: ",F.tell()); // skeleton motions if (!m_SMotions.empty()){ F.open_chunk (EOBJ_CHUNK_SMOTIONS); F.w_u32 (m_SMotions.size()); for (SMotionIt s_it=m_SMotions.begin(); s_it!=m_SMotions.end(); s_it++) (*s_it)->Save(F); F.close_chunk (); } // skeleton motions refs if (m_SMotionRefs.size()){ F.open_chunk (EOBJ_CHUNK_SMOTIONS2); F.w_stringZ (m_SMotionRefs); F.close_chunk (); } // Log("5: ",F.tell()); // bone parts if (!m_BoneParts.empty()){ F.open_chunk (EOBJ_CHUNK_BONEPARTS2); F.w_u32 (m_BoneParts.size()); for (BPIt bp_it=m_BoneParts.begin(); bp_it!=m_BoneParts.end(); bp_it++){ F.w_stringZ (bp_it->alias); F.w_u32 (bp_it->bones.size()); for (RStringVecIt s_it=bp_it->bones.begin(); s_it!=bp_it->bones.end(); s_it++) F.w_stringZ(s_it->c_str()); } F.close_chunk (); } // Log("6: ",F.tell()); if (IsDynamic()){ F.open_chunk (EOBJ_CHUNK_ACTORTRANSFORM); F.w_fvector3 (a_vPosition); F.w_fvector3 (a_vRotate); F.close_chunk (); } // Log("7: ",F.tell()); F.open_chunk (EOBJ_CHUNK_DESC); F.w_stringZ (m_CreateName.c_str()); F.w (&m_CreateTime,sizeof(m_CreateTime)); F.w_stringZ (m_ModifName.c_str()); F.w (&m_ModifTime,sizeof(m_ModifTime)); F.close_chunk (); // set modif desc SetVersionToCurrent (FALSE, TRUE); bOnModified = false; }
void ESceneWayTool::SaveStream(IWriter& F) { inherited::SaveStream(F); F.w_chunk (CHUNK_VERSION,(u16*)&WAY_TOOLS_VERSION,sizeof(WAY_TOOLS_VERSION)); }
void CPEDef::Save(IWriter& F) { F.open_chunk (PED_CHUNK_VERSION); F.w_u16 (PED_VERSION); F.close_chunk (); F.open_chunk (PED_CHUNK_NAME); F.w_stringZ (m_Name); F.close_chunk (); F.open_chunk (PED_CHUNK_EFFECTDATA); F.w_u32 (m_MaxParticles); F.close_chunk (); F.open_chunk (PED_CHUNK_ACTIONLIST); F.w (m_Actions.pointer(),m_Actions.size()); F.close_chunk (); F.w_chunk (PED_CHUNK_FLAGS,&m_Flags,sizeof(m_Flags)); if (m_Flags.is(dfSprite)) { F.open_chunk (PED_CHUNK_SPRITE); F.w_stringZ (m_ShaderName); F.w_stringZ (m_TextureName); F.close_chunk (); } if (m_Flags.is(dfFramed)) { F.open_chunk (PED_CHUNK_FRAME); F.w (&m_Frame,sizeof(SFrame)); F.close_chunk (); } if (m_Flags.is(dfTimeLimit)) { F.open_chunk (PED_CHUNK_TIMELIMIT); F.w_float (m_fTimeLimit); F.close_chunk (); } if (m_Flags.is(dfCollision)) { F.open_chunk (PED_CHUNK_COLLISION); F.w_float (m_fCollideOneMinusFriction); F.w_float (m_fCollideResilience); F.w_float (m_fCollideSqrCutoff); F.close_chunk (); } if (m_Flags.is(dfVelocityScale)) { F.open_chunk (PED_CHUNK_VEL_SCALE); F.w_fvector3 (m_VelocityScale); F.close_chunk (); } if (m_Flags.is(dfAlignToPath)) { F.open_chunk (PED_CHUNK_ALIGN_TO_PATH); F.w_fvector3 (m_APDefaultRotation); F.close_chunk (); } #ifdef _EDITOR F.open_chunk (PED_CHUNK_EDATA); F.w_u32 (m_EActionList.size()); for (EPAVecIt it=m_EActionList.begin(); it!=m_EActionList.end(); it++){ F.w_u32 ((*it)->type); (*it)->Save (F); } F.close_chunk (); #endif }
void EScenePSTools::SaveSelection(IWriter& F) { F.w_chunk (CHUNK_VERSION,(u16*)&PS_TOOLS_VERSION,sizeof(PS_TOOLS_VERSION)); inherited::SaveSelection(F); }