Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenloader/intern/readfile.c
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
| Show First 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | |||||
| #include "DNA_lightprobe_types.h" | #include "DNA_lightprobe_types.h" | ||||
| #include "DNA_rigidbody_types.h" | #include "DNA_rigidbody_types.h" | ||||
| #include "DNA_text_types.h" | #include "DNA_text_types.h" | ||||
| #include "DNA_view3d_types.h" | #include "DNA_view3d_types.h" | ||||
| #include "DNA_screen_types.h" | #include "DNA_screen_types.h" | ||||
| #include "DNA_sdna_types.h" | #include "DNA_sdna_types.h" | ||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| #include "DNA_sequence_types.h" | #include "DNA_sequence_types.h" | ||||
| #include "DNA_smoke_types.h" | #include "DNA_manta_types.h" | ||||
| #include "DNA_speaker_types.h" | #include "DNA_speaker_types.h" | ||||
| #include "DNA_sound_types.h" | #include "DNA_sound_types.h" | ||||
| #include "DNA_space_types.h" | #include "DNA_space_types.h" | ||||
| #include "DNA_vfont_types.h" | #include "DNA_vfont_types.h" | ||||
| #include "DNA_workspace_types.h" | #include "DNA_workspace_types.h" | ||||
| #include "DNA_world_types.h" | #include "DNA_world_types.h" | ||||
| #include "DNA_movieclip_types.h" | #include "DNA_movieclip_types.h" | ||||
| #include "DNA_mask_types.h" | #include "DNA_mask_types.h" | ||||
| ▲ Show 20 Lines • Show All 5,258 Lines • ▼ Show 20 Lines | #endif | ||||
| if (fluidmd && fluidmd->fss) { | if (fluidmd && fluidmd->fss) { | ||||
| fluidmd->fss->ipo = newlibadr_us( | fluidmd->fss->ipo = newlibadr_us( | ||||
| fd, ob->id.lib, fluidmd->fss->ipo); // XXX deprecated - old animation system | fd, ob->id.lib, fluidmd->fss->ipo); // XXX deprecated - old animation system | ||||
| } | } | ||||
| } | } | ||||
| { | { | ||||
| SmokeModifierData *smd = (SmokeModifierData *)modifiers_findByType(ob, | MantaModifierData *mmd = (MantaModifierData *)modifiers_findByType(ob, | ||||
| eModifierType_Smoke); | eModifierType_Manta); | ||||
| if (smd && (smd->type == MOD_SMOKE_TYPE_DOMAIN) && smd->domain) { | if (mmd && (mmd->type == MOD_MANTA_TYPE_DOMAIN) && mmd->domain) { | ||||
| /* Flag for refreshing the simulation after loading. */ | /* Flag for refreshing the simulation after loading */ | ||||
| smd->domain->flags |= MOD_SMOKE_FILE_LOAD; | mmd->domain->flags |= FLUID_DOMAIN_FILE_LOAD; | ||||
| } | } | ||||
| } | } | ||||
| /* texture field */ | /* texture field */ | ||||
| if (ob->pd) { | if (ob->pd) { | ||||
| lib_link_partdeflect(fd, &ob->id, ob->pd); | lib_link_partdeflect(fd, &ob->id, ob->pd); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 152 Lines • ▼ Show 20 Lines | else if (md->type == eModifierType_Fluidsim) { | ||||
| FluidsimModifierData *fluidmd = (FluidsimModifierData *)md; | FluidsimModifierData *fluidmd = (FluidsimModifierData *)md; | ||||
| fluidmd->fss = newdataadr(fd, fluidmd->fss); | fluidmd->fss = newdataadr(fd, fluidmd->fss); | ||||
| if (fluidmd->fss) { | if (fluidmd->fss) { | ||||
| fluidmd->fss->fmd = fluidmd; | fluidmd->fss->fmd = fluidmd; | ||||
| fluidmd->fss->meshVelocities = NULL; | fluidmd->fss->meshVelocities = NULL; | ||||
| } | } | ||||
| } | } | ||||
| else if (md->type == eModifierType_Smoke) { | else if (md->type == eModifierType_Manta) { | ||||
| SmokeModifierData *smd = (SmokeModifierData *)md; | MantaModifierData *mmd = (MantaModifierData *)md; | ||||
| if (smd->type == MOD_SMOKE_TYPE_DOMAIN) { | if (mmd->type == MOD_MANTA_TYPE_DOMAIN) { | ||||
| smd->flow = NULL; | mmd->flow = NULL; | ||||
| smd->coll = NULL; | mmd->effec = NULL; | ||||
| smd->domain = newdataadr(fd, smd->domain); | mmd->domain = newdataadr(fd, mmd->domain); | ||||
| smd->domain->smd = smd; | mmd->domain->mmd = mmd; | ||||
| smd->domain->fluid = NULL; | mmd->domain->fluid = NULL; | ||||
| smd->domain->fluid_mutex = BLI_rw_mutex_alloc(); | mmd->domain->fluid_mutex = BLI_rw_mutex_alloc(); | ||||
| smd->domain->wt = NULL; | mmd->domain->tex = NULL; | ||||
| smd->domain->shadow = NULL; | mmd->domain->tex_shadow = NULL; | ||||
| smd->domain->tex = NULL; | mmd->domain->tex_flame = NULL; | ||||
| smd->domain->tex_shadow = NULL; | mmd->domain->tex_flame_coba = NULL; | ||||
| smd->domain->tex_flame = NULL; | mmd->domain->tex_coba = NULL; | ||||
| smd->domain->tex_flame_coba = NULL; | mmd->domain->tex_field = NULL; | ||||
| smd->domain->tex_coba = NULL; | mmd->domain->tex_velocity_x = NULL; | ||||
| smd->domain->tex_field = NULL; | mmd->domain->tex_velocity_y = NULL; | ||||
| smd->domain->tex_velocity_x = NULL; | mmd->domain->tex_velocity_z = NULL; | ||||
| smd->domain->tex_velocity_y = NULL; | mmd->domain->tex_wt = NULL; | ||||
| smd->domain->tex_velocity_z = NULL; | mmd->domain->mesh_velocities = NULL; | ||||
| smd->domain->tex_wt = NULL; | mmd->domain->coba = newdataadr(fd, mmd->domain->coba); | ||||
| smd->domain->coba = newdataadr(fd, smd->domain->coba); | |||||
| mmd->domain->effector_weights = newdataadr(fd, mmd->domain->effector_weights); | |||||
| smd->domain->effector_weights = newdataadr(fd, smd->domain->effector_weights); | if (!mmd->domain->effector_weights) { | ||||
| if (!smd->domain->effector_weights) { | mmd->domain->effector_weights = BKE_effector_add_weights(NULL); | ||||
| smd->domain->effector_weights = BKE_effector_add_weights(NULL); | |||||
| } | } | ||||
| direct_link_pointcache_list( | direct_link_pointcache_list( | ||||
| fd, &(smd->domain->ptcaches[0]), &(smd->domain->point_cache[0]), 1); | fd, &(mmd->domain->ptcaches[0]), &(mmd->domain->point_cache[0]), 1); | ||||
| /* Smoke uses only one cache from now on, so store pointer convert */ | /* Manta sim uses only one cache from now on, so store pointer convert */ | ||||
| if (smd->domain->ptcaches[1].first || smd->domain->point_cache[1]) { | if (mmd->domain->ptcaches[1].first || mmd->domain->point_cache[1]) { | ||||
| if (smd->domain->point_cache[1]) { | if (mmd->domain->point_cache[1]) { | ||||
| PointCache *cache = newdataadr(fd, smd->domain->point_cache[1]); | PointCache *cache = newdataadr(fd, mmd->domain->point_cache[1]); | ||||
| if (cache->flag & PTCACHE_FAKE_SMOKE) { | if (cache->flag & PTCACHE_FAKE_SMOKE) { | ||||
| /* Smoke was already saved in "new format" and this cache is a fake one. */ | /* Mantasim / smoke was already saved in "new format" and this cache is a fake one. | ||||
| */ | |||||
| } | } | ||||
| else { | else { | ||||
| printf( | printf( | ||||
| "High resolution smoke cache not available due to pointcache update. Please " | "High resolution manta cache not available due to pointcache update. Please " | ||||
| "reset the simulation.\n"); | "reset the simulation.\n"); | ||||
| } | } | ||||
| BKE_ptcache_free(cache); | BKE_ptcache_free(cache); | ||||
| } | } | ||||
| BLI_listbase_clear(&smd->domain->ptcaches[1]); | BLI_listbase_clear(&mmd->domain->ptcaches[1]); | ||||
| smd->domain->point_cache[1] = NULL; | mmd->domain->point_cache[1] = NULL; | ||||
| } | } | ||||
| } | } | ||||
| else if (smd->type == MOD_SMOKE_TYPE_FLOW) { | else if (mmd->type == MOD_MANTA_TYPE_FLOW) { | ||||
| smd->domain = NULL; | mmd->domain = NULL; | ||||
| smd->coll = NULL; | mmd->effec = NULL; | ||||
| smd->flow = newdataadr(fd, smd->flow); | mmd->flow = newdataadr(fd, mmd->flow); | ||||
| smd->flow->smd = smd; | mmd->flow->mmd = mmd; | ||||
| smd->flow->mesh = NULL; | mmd->flow->mesh = NULL; | ||||
| smd->flow->verts_old = NULL; | mmd->flow->verts_old = NULL; | ||||
| smd->flow->numverts = 0; | mmd->flow->numverts = 0; | ||||
| smd->flow->psys = newdataadr(fd, smd->flow->psys); | mmd->flow->psys = newdataadr(fd, mmd->flow->psys); | ||||
| } | } | ||||
| else if (smd->type == MOD_SMOKE_TYPE_COLL) { | else if (mmd->type == MOD_MANTA_TYPE_EFFEC) { | ||||
| smd->flow = NULL; | mmd->flow = NULL; | ||||
| smd->domain = NULL; | mmd->domain = NULL; | ||||
| smd->coll = newdataadr(fd, smd->coll); | mmd->effec = newdataadr(fd, mmd->effec); | ||||
| if (smd->coll) { | if (mmd->effec) { | ||||
| smd->coll->smd = smd; | mmd->effec->mmd = mmd; | ||||
| smd->coll->verts_old = NULL; | mmd->effec->verts_old = NULL; | ||||
| smd->coll->numverts = 0; | mmd->effec->numverts = 0; | ||||
| smd->coll->mesh = NULL; | mmd->effec->mesh = NULL; | ||||
| } | } | ||||
| else { | else { | ||||
| smd->type = 0; | mmd->type = 0; | ||||
| smd->flow = NULL; | mmd->flow = NULL; | ||||
| smd->domain = NULL; | mmd->domain = NULL; | ||||
| smd->coll = NULL; | mmd->effec = NULL; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| else if (md->type == eModifierType_DynamicPaint) { | else if (md->type == eModifierType_DynamicPaint) { | ||||
| DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md; | DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md; | ||||
| if (pmd->canvas) { | if (pmd->canvas) { | ||||
| pmd->canvas = newdataadr(fd, pmd->canvas); | pmd->canvas = newdataadr(fd, pmd->canvas); | ||||
| ▲ Show 20 Lines • Show All 6,456 Lines • Show Last 20 Lines | |||||