Improve inheritance system
This commit is contained in:
parent
9e702bcdbb
commit
01e4d7c9ec
|
@ -21,8 +21,11 @@ int main(int argc, char* *argv){
|
|||
NOD_Node *openbsd = NOD_CreateNode("OpenBSD");
|
||||
NOD_Node *debianbsd = NOD_CreateNode("Debian GNU/kFreeBSD");
|
||||
|
||||
NOD_Node *test = NOD_CreateNode2D("This is a test");
|
||||
NOD_NodeAddChild(debian, test);
|
||||
NOD_Node2D *point = NOD_CreateNode2D("Point2D");
|
||||
point->pos.x = 2;
|
||||
printf("The X value of '%s' is %d!\n", point->node.name, 3);
|
||||
|
||||
NOD_NodeAddChild(debian, point);
|
||||
|
||||
NOD_NodeAddChild(distros, linoox);
|
||||
NOD_NodeAddChild(distros, bsd);
|
||||
|
@ -47,6 +50,7 @@ int main(int argc, char* *argv){
|
|||
|
||||
//NOD_NodeUnparent(child2);
|
||||
|
||||
|
||||
NOD_PrintNodeTree(distros);
|
||||
|
||||
NOD_DestroyNodeBranch(distros);
|
||||
|
|
|
@ -25,7 +25,7 @@ NOD_Node *NOD_CreateNodeEX(char* type, char *name){
|
|||
|
||||
void NOD_DestroyNode(NOD_Node *node){
|
||||
if(node != NULL){
|
||||
printf("NOD_Info: Deleting node \"%s\"\n", node->name);
|
||||
/*printf("NOD_Info: Deleting node \"%s\"\n", node->name);*/
|
||||
/** Cleanup dependencies on this node by its parent */
|
||||
NOD_NodeUnparent(node);
|
||||
free(node);
|
||||
|
@ -133,9 +133,9 @@ void NOD_NodeUnparent(NOD_Node *node){
|
|||
|
||||
/* Free allocated memory if last child */
|
||||
if(i + 1 == parent->childc){
|
||||
fprintf(stderr,
|
||||
/*fprintf(stderr,
|
||||
"NOD_Debug: Freeing last child \"%s\" of vector \"%s\"...\n",
|
||||
node->name, parent->name);
|
||||
node->name, parent->name);*/
|
||||
parent->childv = realloc(parent->childv, sizeof(node) *parent->childc);
|
||||
parent->childc--;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,21 @@
|
|||
#include "node2d.h"
|
||||
|
||||
NOD_Node *NOD_CreateNode2D(char *name){
|
||||
return NOD_CreateNodeEX("Node2D", name);
|
||||
NOD_Node2D *NOD_CreateNode2D(char *name){
|
||||
NOD_Node2D *node = NULL;
|
||||
NOD_Node *plain_node = NULL;
|
||||
|
||||
plain_node = NOD_CreateNodeEX("Node2D", name);
|
||||
|
||||
if(plain_node != NULL){
|
||||
plain_node = realloc(plain_node, sizeof(NOD_Node2D));
|
||||
|
||||
if(plain_node != NULL){
|
||||
node = (NOD_Node2D*)plain_node;
|
||||
|
||||
node->pos.x = 0;
|
||||
node->pos.y = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
#include"../node/node.h"
|
||||
#include"../types.h"
|
||||
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
|
||||
NOD_Node *NOD_CreateNode2D(char *name);
|
||||
typedef struct node_2d{
|
||||
NOD_Node node;
|
||||
vector2Di pos;
|
||||
} NOD_Node2D;
|
||||
|
||||
NOD_Node2D *NOD_CreateNode2D(char *name);
|
||||
void NOD_DestroyNode2D(NOD_Node *node);
|
||||
|
|
Loading…
Reference in New Issue