Scene toolsettings was not setting Brush pointers on read, causing
crashes on reading files. Thanks Jingyuan for (irc) report! :)
This commit is contained in:
2009-06-10 15:09:44 +00:00
parent fba6a9931c
commit 219f1ce2f0
2 changed files with 15 additions and 6 deletions

View File

@@ -3827,12 +3827,19 @@ static void lib_link_scene(FileData *fd, Main *main)
sce->world= newlibadr_us(fd, sce->id.lib, sce->world);
sce->set= newlibadr(fd, sce->id.lib, sce->set);
sce->ima= newlibadr_us(fd, sce->id.lib, sce->ima);
sce->toolsettings->imapaint.brush=
newlibadr_us(fd, sce->id.lib, sce->toolsettings->imapaint.brush);
if(sce->toolsettings->sculpt)
sce->toolsettings->sculpt->brush=
newlibadr_us(fd, sce->id.lib, sce->toolsettings->sculpt->brush);
if(sce->toolsettings->vpaint)
sce->toolsettings->vpaint->brush=
newlibadr_us(fd, sce->id.lib, sce->toolsettings->vpaint->brush);
if(sce->toolsettings->wpaint)
sce->toolsettings->wpaint->brush=
newlibadr_us(fd, sce->id.lib, sce->toolsettings->wpaint->brush);
sce->toolsettings->skgen_template = newlibadr(fd, sce->id.lib, sce->toolsettings->skgen_template);
for(base= sce->base.first; base; base= next) {

View File

@@ -1157,11 +1157,13 @@ static void view3d_panel_brush(const bContext *C, Panel *pa)
cy-= 20;
uiBlockEndAlign(block);
rect.xmin= cx; rect.xmax= cx + w;
rect.ymin= cy - 200; rect.ymax= cy;
uiBlockBeginAlign(block);
curvemap_buttons(block, br->curve, (char)0, B_NOP, 0, &rect);
uiBlockEndAlign(block);
if(br->curve) {
rect.xmin= cx; rect.xmax= cx + w;
rect.ymin= cy - 200; rect.ymax= cy;
uiBlockBeginAlign(block);
curvemap_buttons(block, br->curve, (char)0, B_NOP, 0, &rect);
uiBlockEndAlign(block);
}
}
static void sculptmode_draw_interface_tools(Scene *scene, uiBlock *block, unsigned short cx, unsigned short cy)