void main(int pointy, char **arguments) { Obj *a, *c; Obj *t, *chain; chain = ObjChain(a = newButton(1,"A",0,0), newButton(2,"B",0,0)); chain = ObjChain(chain, c = newCheck(0,0,"C",0,0,0,0)); chain = ObjChain(chain, newCheck(0,4,"D",0,0,0,0)); t = ObjChain(chain, chain); if (t == (Obj*)0) perror("duplicate insert"); else puts("ERROR! duplicate inserts work"); puts("BACKWARD"); printPrevObjChain(chain); puts("FORWARD"); printNextObjChain(chain); t = copyObj(a); setObjTitle(t, "AA"); chain = extractFromObjChain(chain, a); if (chain) { puts("FORWARD AFTER EXTRACT"); printNextObjChain(chain); ObjChain(c, a); ObjChain(c, t); puts("FORWARD AFTER REINSERT"); printNextObjChain(chain); chain = sortObjChain(chain); if (chain) { puts("FORWARD AFTER SORT"); printNextObjChain(chain); } else perror("sortObjChain"); } else perror("extractFromObjChain"); deleteObjChain(chain); adump(); }
// ---------------------------------------------------------------------------- void Track::exportElements(std::ofstream& stream, bool obj) { ISceneManager* sm = Editor::getEditor()->getSceneManager(); ISceneNode* node; stringc name; int i = 1; while ((node = sm->getSceneNodeFromId(MAGIC_NUMBER + i))) { name = node->getName(); vector3df pos, rot, sca; if (node->isVisible() && name != "banana" && name != "item" && name != "small-nitro" && name != "big-nitro" && (name.equalsn("obj/", 4) == obj)) { pos = node->getPosition(); rot = node->getRotation(); sca = node->getScale(); if (name.equalsn("obj/", 4)) { stream << " <static-object model=\"" << Editor::toRelative(name).c_str(); copyObj(name); ITexture* tex; for (int j = 0; (tex = node->getMaterial(0).getTexture(j)); j++) copyObj(stringc("obj/") + Editor::toRelative(tex->getName())); } // export as static-object else { stream << " <library name=\"" << Editor::getLib(node->getName()).c_str(); } // export as library stream << "\" xyz=\""; stream << pos.X << " " << pos.Y << " " << pos.Z << "\" hpr=\""; stream << rot.X << " " << rot.Y << " " << rot.Z << "\" scale=\""; stream << sca.X << " " << sca.Y << " " << sca.Z << "\"/>\n"; } i++; } } // exportElements