more DNA object edits
authorCampbell Barton <ideasman42@gmail.com>
Sat, 5 Nov 2011 03:02:55 +0000 (03:02 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 5 Nov 2011 03:02:55 +0000 (03:02 +0000)
- remove 'path' pointer, wasnt used anywhere.
- remove comments about what each game flag 'bit' does, these are defines now.
- reduce the size of DupliObject 8 bytes.
also commented some of the struct members.

source/blender/blenkernel/intern/object.c
source/blender/blenloader/intern/readfile.c
source/blender/makesdna/DNA_object_types.h

index 1e0ece1c5e6fca567ffd79f03be6c02340677f78..b09d1ea98aa6a21e84a44488a61db7e3d60eff86 100644 (file)
@@ -303,8 +303,6 @@ void free_object(Object *ob)
        ob->matbits= NULL;
        if(ob->bb) MEM_freeN(ob->bb); 
        ob->bb= NULL;
-       if(ob->path) free_path(ob->path); 
-       ob->path= NULL;
        if(ob->adt) BKE_free_animdata((ID *)ob);
        if(ob->poselib) ob->poselib->id.us--;
        if(ob->gpd) ((ID *)ob->gpd)->us--;
@@ -1376,7 +1374,6 @@ Object *copy_object(Object *ob)
        }
        
        if(ob->bb) obn->bb= MEM_dupallocN(ob->bb);
-       obn->path= NULL;
        obn->flag &= ~OB_FROMGROUP;
        
        obn->modifiers.first = obn->modifiers.last= NULL;
index fc0f3028a0e25069c44947f74a447a5d1d54096a..13c218404596dc80d1db456b5427c6cb766c7e8b 100644 (file)
@@ -7429,9 +7429,9 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
        if(main->versionfile <= 200) {
                Object *ob= main->object.first;
                while(ob) {
-                       ob->scaflag = ob->gameflag & (64+128+256+512+1024+2048);
+                       ob->scaflag = ob->gameflag & (OB_DO_FH|OB_ROT_FH|OB_ANISOTROPIC_FRICTION|OB_GHOST|OB_RIGID_BODY|OB_BOUNDS);
                                /* 64 is do_fh */
-                       ob->gameflag &= ~(128+256+512+1024+2048);
+                       ob->gameflag &= ~(OB_ROT_FH|OB_ANISOTROPIC_FRICTION|OB_GHOST|OB_RIGID_BODY|OB_BOUNDS);
                        ob = ob->id.next;
                }
        }
index c5fd17e1bdb38da1a02013c20c9cf57a4ba09171..3306b9e97bcf7f0590cbba77a66a25c90d2c6569 100644 (file)
@@ -111,12 +111,12 @@ typedef struct Object {
        /* proxy_from is set in target back to the proxy. */
        struct Object *proxy, *proxy_group, *proxy_from;
        struct Ipo *ipo;                // XXX depreceated... old animation system
-       struct Path *path;
+       /* struct Path *path; */
        struct BoundBox *bb;
        struct bAction *action;  // XXX depreceated... old animation system
        struct bAction *poselib;
-       struct bPose *pose;     
-       void *data;
+       struct bPose *pose;  /* pose data, armature objects only */
+       void *data;  /* pointer to objects data - an 'ID' or NULL */
        
        struct bGPdata *gpd;    /* Grease Pencil data */
        
@@ -124,9 +124,9 @@ typedef struct Object {
        bMotionPath *mpath;             /* motion path cache for this object */
        
        ListBase constraintChannels; // XXX depreceated... old animation system
-       ListBase effect;
-       ListBase disp;
-       ListBase defbase;
+       ListBase effect;             // XXX depreceated... keep for readfile
+       ListBase disp;      /* list of DispList, used by lattice, metaballs curve & surfaces */
+       ListBase defbase;   /* list of bDeformGroup (vertex groups) names and flag only */
        ListBase modifiers; /* list of ModifierData structures */
 
        int mode;           /* Local object mode */
@@ -156,7 +156,7 @@ typedef struct Object {
         */
        float imat_ren[4][4];
        
-       unsigned int lay;                               /* copy of Base */
+       unsigned int lay;       /* copy of Base's layer in the scene */
        
        short flag;                     /* copy of Base */
        short colbits;          /* deprecated */
@@ -164,8 +164,8 @@ typedef struct Object {
        short transflag, protectflag;   /* transformation settings and transform locks  */
        short trackflag, upflag;
        short nlaflag, ipoflag;         // xxx depreceated... old animation system
-       short scaflag;          /* ipowin: blocktype last ipowindow */
-       char scavisflag;
+       short scaflag;                          /* ui state for game logic */
+       char scavisflag;                        /* more display settings for game logic */
        char pad5;
 
        int dupon, dupoff, dupsta, dupend;
@@ -200,39 +200,27 @@ typedef struct Object {
        char boundtype;            /* bounding box use for drawing */
        char collision_boundtype;  /* bounding box type used for collision */
 
-       char  restrictflag;                     /* for restricting view, select, render etc. accessible in outliner */
+       char  restrictflag;     /* for restricting view, select, render etc. accessible in outliner */
 
-       char dt, dtx;
+       char dt;                        /* viewport draw type */
+       char dtx;                       /* viewport draw extra settings */
        char empty_drawtype;
        float empty_drawsize;
        float dupfacesca;       /* dupliface scale */
        
-       ListBase prop;
-       ListBase sensors;
-       ListBase controllers;
-       ListBase actuators;
+       ListBase prop;                  /* game logic property list (not to be confused with IDProperties) */
+       ListBase sensors;               /* game logic sensors */
+       ListBase controllers;   /* game logic controllers */
+       ListBase actuators;             /* game logic actuators */
 
        float bbsize[3];
        short index;                    /* custom index, for renderpasses */
        unsigned short actdef;  /* current deformation group, note: index starts at 1 */
        float col[4];                   /* object color */
-       /**
-        * Settings for game objects
-        * bit 0: Object has dynamic behaviour
-        * bit 2: Object is evaluated by the gameengine
-        * bit 6: Use Fh settings in Materials
-        * bit 7: Use face normal to rotate Object
-        * bit 8: Friction is anisotropic
-        * bit 9: Object is a ghost
-        * bit 10: Do rigid body dynamics.
-        * bit 11: Use bounding object for physics
-        */
+
        int gameflag;
-       /**
-        * More settings
-        * bit 15: Always ignore activity culling 
-        */
        int gameflag2;
+
        struct BulletSoftBody *bsoft;   /* settings for game engine bullet soft body */
 
        short softflag;                 /* softbody settings */
@@ -241,7 +229,7 @@ typedef struct Object {
 
        ListBase constraints;           /* object constraints */
        ListBase nlastrips;                     // XXX depreceated... old animation system
-       ListBase hooks;
+       ListBase hooks;                         // XXX depreceated... old animation system
        ListBase particlesystem;        /* particle systems */
        
        struct PartDeflect *pd;         /* particle deflector/attractor/collision data */
@@ -261,7 +249,7 @@ typedef struct Object {
        unsigned int state;                     /* bit masks of game controllers that are active */
        unsigned int init_state;        /* bit masks of initial state as recorded by the users */
 
-       ListBase gpulamp;               /* runtime, for lamps only */
+       ListBase gpulamp;               /* runtime, for glsl lamp display only */
        ListBase pc_ids;
        ListBase *duplilist;    /* for temporary dupli list storage, only for use by RNA API */
 
@@ -286,13 +274,17 @@ typedef struct ObHook {
        float force;
 } ObHook;
 
+/* runtime only, but include here for rna access */
 typedef struct DupliObject {
        struct DupliObject *next, *prev;
        struct Object *ob;
        unsigned int origlay;
-       int index, no_draw, type, animated;
+       int index;
        float mat[4][4], omat[4][4];
        float orco[3], uv[2];
+
+       short type; /* from Object.transflag */
+       char no_draw, animated;
 } DupliObject;
 
 /* **************** OBJECT ********************* */