/*==LICENSE==* CyanWorlds.com Engine - MMOG client, server and tools Copyright (C) 2011 Cyan Worlds, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . You can contact Cyan Worlds, Inc. by email legal@cyan.com or by snail mail at: Cyan Worlds, Inc. 14617 N Newport Hwy Mead, WA 99021 *==LICENSE==*/ // singular #include "plAvTaskBrain.h" // local #include "plArmatureMod.h" #include "plAvBrain.h" // other #include "plPipeline/plDebugText.h" ///////////////////////////////////////////////////////////////////////////////////////// // // PLAVTASKBRAIN // ///////////////////////////////////////////////////////////////////////////////////////// // CTOR default plAvTaskBrain::plAvTaskBrain() : fBrain(nil) { } // CTOR brain plAvTaskBrain::plAvTaskBrain(plArmatureBrain *brain) : fBrain(brain) { } plAvTaskBrain::~plAvTaskBrain() { delete fBrain; } // Start ------------------------------------------------------------------------------------------ // ------ hsBool plAvTaskBrain::Start(plArmatureMod *avatar, plArmatureBrain *brain, double time, hsScalar elapsed) { if(fBrain) avatar->PushBrain(fBrain); else avatar->PopBrain(); fBrain = nil; // We've passed it on the the avatar, set our pointer to nil so we don't destroy it return true; } void plAvTaskBrain::Finish(plArmatureMod *avatar, plArmatureBrain *brain, double time, hsScalar elapsed) { } // DumpDebug ------------------------------------------------------------------------------------------------------ // ---------- void plAvTaskBrain::DumpDebug(const char *name, int &x, int&y, int lineHeight, char *strBuf, plDebugText &debugTxt) { if(fBrain) { debugTxt.DrawString(x, y, "Brain task -- Push New Brain."); } else { debugTxt.DrawString(x, y, "Brain task -- Pop Current Brain."); } y += lineHeight; } // GetBrain ------------------------ // --------- plArmatureBrain *plAvTaskBrain::GetBrain() { return fBrain; } // Read ------------------------------------------ // ----- void plAvTaskBrain::Read(hsStream *stream, hsResMgr *mgr) { plAvTask::Read(stream, mgr); fBrain = plArmatureBrain::ConvertNoRef(mgr->ReadCreatable(stream)); } // Write ------------------------------------------ // ------ void plAvTaskBrain::Write(hsStream *stream, hsResMgr *mgr) { plAvTask::Write(stream, mgr); mgr->WriteCreatable(stream, fBrain); }