src/scene.c

changeset 266
a73674e99e62
parent 262
b47de42f4598
equal deleted inserted replaced
265:5c915d01bdc0 266:a73674e99e62
45 scene->root = asc_scene_node_empty(); 45 scene->root = asc_scene_node_empty();
46 for (unsigned i = 0 ; i < ASC_RENDER_GROUP_COUNT ; i++) { 46 for (unsigned i = 0 ; i < ASC_RENDER_GROUP_COUNT ; i++) {
47 scene->internal.render_groups[i] = cxArrayListCreateSimple(CX_STORE_POINTERS, 32); 47 scene->internal.render_groups[i] = cxArrayListCreateSimple(CX_STORE_POINTERS, 32);
48 } 48 }
49 if (name == NULL) { 49 if (name == NULL) {
50 scene->name = asc_util_gen_name(scene); 50 scene->name = asc_util_gen_name("scene");
51 } else { 51 } else {
52 scene->name.ptr = strdup(name); 52 scene->name.ptr = strdup(name);
53 scene->name.length = strlen(name); 53 scene->name.length = strlen(name);
54 } 54 }
55 asc_dprintf("Initialized scene %"CX_PRIstr, CX_SFMT(scene->name)); 55 asc_dprintf("Initialized scene %"CX_PRIstr, CX_SFMT(scene->name));
71 CxTreeVisitor iter = cx_tree_visitor(scene->root, 71 CxTreeVisitor iter = cx_tree_visitor(scene->root,
72 offsetof(AscSceneNode, children), 72 offsetof(AscSceneNode, children),
73 offsetof(AscSceneNode, next) 73 offsetof(AscSceneNode, next)
74 ); 74 );
75 cx_foreach(AscSceneNode*, node, iter) { 75 cx_foreach(AscSceneNode*, node, iter) {
76 CxIterator behavior_iter = cxListMutIterator(node->behaviors); 76 CxMapIterator behavior_iter = cxMapMutIteratorValues(node->behaviors);
77 cx_foreach(AscBehavior*, behavior, behavior_iter) { 77 cx_foreach(AscBehavior*, behavior, behavior_iter) {
78 if (behavior->enabled) { 78 if (behavior->enabled) {
79 asc_behavior_trigger(behavior); 79 asc_behavior_trigger(behavior);
80 } 80 }
81 if (behavior->killed) { 81 if (behavior->killed) {

mercurial