1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
28 #include "nel/misc/path.h"
29 #include "nel/misc/file.h"
31 #include "nel/3d/u_scene.h"
32 #include "nel/3d/u_animation_set.h"
34 #include "auto_anim.h"
46 using namespace NLMISC
;
48 using namespace NLNET
;
55 extern UDriver
*Driver
;
59 // ***************************************************************************
60 static NL3D::UAnimationSet
*AutoAnimSet
= NULL
;
62 // ***************************************************************************
63 void initAutoAnimation()
65 /* Load the automatic animations.
66 * Automatics animations are listed in the file auto_animatons_list.txt
67 * Each of this animations are loaded into an animations set
68 * The animation set is gived to the scene as default automatique animation set
71 string listFilename
= CPath::lookup("auto_animations_list.txt", false, false, false);
72 if (listFilename
.empty() || !file
.open (listFilename
))
74 nlwarning ("No automatic animation files list (auto_animations_list.txt)");
78 nlassert(!AutoAnimSet
);
79 // Create an animation set
80 AutoAnimSet
= Driver
->createAnimationSet();
81 nlassert (AutoAnimSet
);
87 file
.getline(line
, 512);
89 // Read the animation file
90 string animName
= toLowerAscii(CFile::getFilenameWithoutExtension(line
));
91 uint id
= AutoAnimSet
->addAnimation (line
, animName
.c_str ());
92 if (id
== UAnimationSet::NotFound
)
94 nlwarning ("Can't load automatic animation '%s'", line
);
98 // Add the animation set
99 AutoAnimSet
->build ();
100 Scene
->setAutomaticAnimationSet (AutoAnimSet
);
104 // ***************************************************************************
105 void releaseAutoAnimation()
107 // if already created
110 Driver
->deleteAnimationSet(AutoAnimSet
);