c7dd5ec4035cda96c4e34d2e4c645732f2560492.svn-base (1703B)
1 #include "Sequence.h" 2 3 Sequence::Sequence(AnimPack* pck, EventReceiver* prtlib, EventReceiver* sndlib) : mAnimPack(pck), mPrtLib(prtlib), mSndLib(sndlib), mPlaying(false), mLooping(true) 4 { 5 for(int i = 0; i < mAnimPack->GetAnimData()->GetAnimCount(); i++) 6 { 7 mAnimPack->GetAnimationDirect(i)->mFeed.Subscribe(this); 8 } 9 } 10 11 seq_player_idle::seq_player_idle(AnimPack* pck, EventReceiver* prtlib, EventReceiver* sndlib) : Sequence(pck, prtlib, sndlib) 12 { 13 } 14 15 Frame seq_player_idle::Run() 16 { 17 if (mLooping == false) 18 { 19 return mAnimPack->ActivateAnimation(IDLE_BEGIN, ONCE)->GetCurrentFrame(); 20 } 21 else 22 { 23 return mAnimPack->ActivateAnimation(IDLE)->GetCurrentFrame(); 24 } 25 } 26 27 bool seq_player_idle::EventProcess(Event eve) 28 { 29 switch (*eve.GetEventType()) 30 { 31 case ANIM_COMPLETE: 32 if (eve.GetEventData()->i == IDLE_BEGIN) 33 { 34 mLooping = true; 35 } 36 default: 37 gCons->ConsPrintf("Sequence asked to process unrecognized event\n"); 38 } 39 return false; 40 } 41 42 43 seq_player_run::seq_player_run(AnimPack* pck, EventReceiver* prtlib, EventReceiver* sndlib) : Sequence(pck, prtlib, sndlib) 44 { 45 } 46 47 Frame seq_player_run::Run() 48 { 49 return mAnimPack->ActivateAnimation(RUN)->GetCurrentFrame(); 50 } 51 52 bool seq_player_run::EventProcess(Event eve) 53 { 54 switch (*eve.GetEventType()) 55 { 56 case ANIM_COMPLETE: 57 if (eve.GetEventData()->i == IDLE_BEGIN) 58 { 59 mLooping = true; 60 } 61 default: 62 gCons->ConsPrintf("Sequence asked to process unrecognized event\n"); 63 } 64 return false; 65 } 66 67 SequenceGraph::SequenceGraph(AnimPack pck, EventReceiver* prtlib, EventReceiver* sndlib) : mAnimPack(pck) 68 { 69 } 70 71 bool SequenceGraph::LogSequence(Sequence* seq, int ID) 72 { 73 mSeqs.push_back(seq); 74 mIDs.push_back(ID); 75 seq->SetSequenceGraph(this); 76 return false; 77 }