diff options
author | Jens Ole Wund <bjornmose@gmx.net> | 2007-10-04 01:01:14 +0400 |
---|---|---|
committer | Jens Ole Wund <bjornmose@gmx.net> | 2007-10-04 01:01:14 +0400 |
commit | 7c4955ee04e4ebcb48eb9875581c1c0aab76eef2 (patch) | |
tree | 8e922828c483b8498947af91f1098348985197ad /source/blender/src/buttons_object.c | |
parent | 3a46c74a6e5f7cb75963c8964bf90a66f43ef3e9 (diff) |
bug fix #7399 crash with certain Physics button settings
-- on the fly allocating of ob->pd data was missing in SB_II panel .. still is ugly that .. shudder
Diffstat (limited to 'source/blender/src/buttons_object.c')
-rw-r--r-- | source/blender/src/buttons_object.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/src/buttons_object.c b/source/blender/src/buttons_object.c index cd3246fcd8d..55b36ce43db 100644 --- a/source/blender/src/buttons_object.c +++ b/source/blender/src/buttons_object.c @@ -2807,6 +2807,13 @@ static void object_softbodies_II(Object *ob) uiBlock *block; static int val; if(!_can_softbodies_at_all(ob)) return; + /*bah that is ugly! creating missing data members in UI code*/ + if(ob->pd == NULL){ + ob->pd= MEM_callocN(sizeof(PartDeflect), "PartDeflect"); + ob->pd->pdef_sbdamp = 0.1f; + ob->pd->pdef_sbift = 0.2f; + ob->pd->pdef_sboft = 0.02f; + } block= uiNewBlock(&curarea->uiblocks, "object_softbodies_II", UI_EMBOSS, UI_HELV, curarea->win); uiNewPanelTabbed("Soft Body", "Physics"); if(uiNewPanel(curarea, block, "Soft Body Collision", "Physics", 651, 0, 318, 204)==0) return; @@ -2825,7 +2832,7 @@ static void object_softbodies_II(Object *ob) uiDefButBitS(block, TOG, 1, B_REDR, "Deflection",10,50,150,20, &ob->pd->deflect, 0, 0, 0, 0, "Makes this object visible to softbody objects"); if(ob->pd->deflect) { uiDefButF(block, NUM, B_FIELD_CHANGE, "Damping:", 160,50,150,20, &ob->pd->pdef_sbdamp, 0.0, 1.0, 10, 0, "Amount of damping during soft body collision"); - uiDefButBitS(block, TOG,OB_SB_COLLFINAL , B_DIFF, "Ev.M.Stack",10,30,150,20, &ob->softflag, 0, 0, 0, 0, "Pick collision object from modifier stack"); + uiDefButBitS(block, TOG,OB_SB_COLLFINAL , B_DIFF, "Ev.M.Stack",10,30,150,20, &ob->softflag, 0, 0, 0, 0, "Pick collision object from modifier stack"); uiDefButF(block, NUM, B_FIELD_CHANGE, "Inner:", 160,30,150,20, &ob->pd->pdef_sbift, 0.001, 1.0, 10, 0, "Inner face thickness"); uiDefButF(block, NUM, B_FIELD_CHANGE, "Outer:", 160,10,150,20, &ob->pd->pdef_sboft, 0.001, 1.0, 10, 0, "Outer face thickness"); } @@ -2870,7 +2877,7 @@ static void object_softbodies_II(Object *ob) uiDefButBitS(block, TOG, 1, B_REDR, "Deflection",10,50,150,20, &ob->pd->deflect, 0, 0, 0, 0, "Makes this object visible to other softbody objects"); if(ob->pd->deflect) { uiDefButF(block, NUM, B_DIFF, "Damping:", 160,50,150,20, &ob->pd->pdef_sbdamp, 0.0, 1.0, 10, 0, "Amount of damping during soft body collision"); - uiDefButBitS(block, TOG,OB_SB_COLLFINAL , B_DIFF, "Ev.M.Stack",10,30,150,20, &ob->softflag, 0, 0, 0, 0, "Pick collision object from modifier stack"); + uiDefButBitS(block, TOG,OB_SB_COLLFINAL , B_DIFF, "Ev.M.Stack",10,30,150,20, &ob->softflag, 0, 0, 0, 0, "Pick collision object from modifier stack"); uiDefButF(block, NUM, B_DIFF, "Inner:", 160,30,150,20, &ob->pd->pdef_sbift, 0.001, 1.0, 10, 0, "Inner face thickness"); uiDefButF(block, NUM, B_DIFF, "Outer:", 160,10,150,20, &ob->pd->pdef_sboft, 0.001, 1.0, 10, 0, "Outer face thickness"); } |