SCErr meth_n_run(World *inWorld, int inSize, char *inData, ReplyAddress* /*inReply*/) { sc_msg_iter msg(inSize, inData); while (msg.remain()) { Node *node = Msg_GetNode(inWorld, msg); if (!node) return kSCErr_NodeNotFound; int32 run = msg.geti(); Node_SetRun(node, run); } return kSCErr_None; }
void Unit_DoneAction(int doneAction, Unit *unit) { switch (doneAction) { case 1 : Node_SetRun(&unit->mParent->mNode, 0); break; case 2 : Node_End(&unit->mParent->mNode); break; case 3 : { Node_End(&unit->mParent->mNode); Node* prev = unit->mParent->mNode.mPrev; if (prev) Node_End(prev); } break; case 4 : { Node_End(&unit->mParent->mNode); Node* next = unit->mParent->mNode.mNext; if (next) Node_End(next); } break; case 5 : { Node_End(&unit->mParent->mNode); Node* prev = unit->mParent->mNode.mPrev; if (!prev) break; if (prev && prev->mIsGroup) Group_DeleteAll((Group*)prev); else Node_End(prev); } break; case 6 : { Node_End(&unit->mParent->mNode); Node* next = unit->mParent->mNode.mNext; if (!next) break; if (next->mIsGroup) Group_DeleteAll((Group*)next); else Node_End(next); } break; case 7 : { Node* node = &unit->mParent->mNode; while (node) { Node *prev = node->mPrev; Node_End(node); node = prev; } } break; case 8 : { Node* node = &unit->mParent->mNode; while (node) { Node *next = node->mNext; Node_End(node); node = next; } } break; case 9 : { Node_End(&unit->mParent->mNode); Node* prev = unit->mParent->mNode.mPrev; if (prev) Node_SetRun(prev, 0); } break; case 10 : { Node_End(&unit->mParent->mNode); Node* next = unit->mParent->mNode.mNext; if (next) Node_SetRun(next, 0); } break; case 11 : { Node_End(&unit->mParent->mNode); Node* prev = unit->mParent->mNode.mPrev; if (!prev) break; if (prev->mIsGroup) Group_DeepFreeGraphs((Group*)prev); else Node_End(prev); } break; case 12 : { Node_End(&unit->mParent->mNode); Node* next = unit->mParent->mNode.mNext; if (!next) break; if (next->mIsGroup) Group_DeepFreeGraphs((Group*)next); else Node_End(next); } break; case 13 : { Node* node = unit->mParent->mNode.mParent->mHead; while (node) { Node *next = node->mNext; Node_End(node); node = next; } } break; case 14 : Node_End(&unit->mParent->mNode.mParent->mNode); break; } }