1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2010 Winch Gate Property Limited
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #include "nel/3d/play_list_manager.h"
29 // ***************************************************************************
30 void CPlayListManager::addPlaylist(CAnimationPlaylist
* plist
, CChannelMixer
*chanMixer
)
35 // this do all the good things.
36 _List
[plist
]= CNode(plist
, chanMixer
);
40 // ***************************************************************************
41 void CPlayListManager::removePlaylist(CAnimationPlaylist
* plist
)
44 // this do all the good things.
49 // ***************************************************************************
50 void CPlayListManager::animate(TGlobalAnimationTime time
)
52 TPlayListList::iterator it
;
54 for(it
=_List
.begin();it
!=_List
.end();)
56 CNode
*node
= &(it
->second
);
58 if( node
->PlayList
==NULL
|| node
->ChannelMixer
==NULL
)
61 TPlayListList::iterator itDel
= it
++;
67 node
->PlayList
->setupMixer(*node
->ChannelMixer
, time
);
68 node
->ChannelMixer
->eval(false);
75 // ***************************************************************************
76 void CPlayListManager::setup(TGlobalAnimationTime time
)
78 TPlayListList::iterator it
;
80 for(it
=_List
.begin();it
!=_List
.end();)
82 CNode
*node
= &(it
->second
);
84 if( node
->PlayList
==NULL
|| node
->ChannelMixer
==NULL
)
87 TPlayListList::iterator itDel
= it
++;
93 node
->PlayList
->setupMixer(*node
->ChannelMixer
, time
);
99 // ***************************************************************************
101 void CPlayListManager::deleteAll()
103 TPlayListList::iterator it
= _List
.begin();
104 while (it
!= _List
.end())
106 TPlayListList::iterator itDel
= it
;
108 CNode
*node
= &(itDel
->second
);
109 delete node
->ChannelMixer
;
110 delete node
->PlayList
;