more DNA object edits

- 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.
This commit is contained in:
2011-11-05 03:02:55 +00:00
parent b0adf37ef9
commit cc7e79f372
3 changed files with 27 additions and 38 deletions

View 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;

View 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;
}
}

View 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;
@@ -202,37 +202,25 @@ typedef struct Object {
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 ********************* */