source: nrEngine/src/ScriptLoader.cpp @ 30

Revision 30, 3.5 KB checked in by art, 12 years ago (diff)

::std wurde durch std ueberall ersetzt!

RevLine 
[1]1/***************************************************************************
2 *                                                                         *
3 *   (c) Art Tevs, MPI Informatik Saarbruecken                             *
4 *       mailto: <tevs@mpi-sb.mpg.de>                                      *
5 *                                                                         *
6 *   This program is free software; you can redistribute it and/or modify  *
7 *   it under the terms of the GNU General Public License as published by  *
8 *   the Free Software Foundation; either version 2 of the License, or     *
9 *   (at your option) any later version.                                   *
10 *                                                                         *
11 ***************************************************************************/
12
13
14//----------------------------------------------------------------------------------
15// Includes
16//----------------------------------------------------------------------------------
17#include "ScriptLoader.h"
18#include "Log.h"
19#include "FileStream.h"
20#include "Kernel.h"
21
22namespace nrEngine{
23
24        //----------------------------------------------------------------------------------
25        ScriptLoader::ScriptLoader() : IResourceLoader("ScriptLoader")
26        {
[15]27                initializeResourceLoader();
[1]28        }
29
30
31        //----------------------------------------------------------------------------------
32        ScriptLoader::~ScriptLoader()
33        {
34
35        }
36
37        //----------------------------------------------------------------------------------
[27]38        Result ScriptLoader::initializeResourceLoader()
39        {
[1]40                // fill out supported resource types;
41                declareSupportedResourceType("Script");
42                declareSupportedResourceType("Config");
[23]43                declareSupportedResourceType("nrScript");
[27]44
[1]45                // we do only support dll files in windows version of our engine
[27]46                declareSupportedFileType("script");
[23]47                declareSupportedFileType("nrscript");
48                declareSupportedFileType("cfg");
[1]49
50                // now delcare mapping of the types
[23]51                declareTypeMap("nrscript", "nrScript");
52                declareTypeMap("script", "nrScript");
[1]53                declareTypeMap("cfg", "Config");
[27]54
[1]55                return OK;
56        }
57
58        //----------------------------------------------------------------------------------
[15]59        Result ScriptLoader::loadResourceImpl(IResource* res, const std::string& fileName, PropertyList* param)
[1]60        {
61                // load a file so we use its content as a script
62                FileStream* fStream = new FileStream();
63                Result ret = fStream->open(fileName);
64                if (ret == OK){
65
66                        // get the whole file content
67                        std::string str = fStream->getAsString();
68
69                        // cast the resource to the iscript interface
70                        IScript* scr = dynamic_cast<IScript*>(res);
[27]71
[1]72                        // load the script from a string
73                        ret = scr->loadFromString(str);
74
75                }
76                delete fStream;
[27]77
[1]78                // return the last error
79                return ret;
80        }
81
82
83        //----------------------------------------------------------------------------------
[15]84        IResource* ScriptLoader::createResourceImpl(const std::string& resourceType, PropertyList* params)
[1]85        {
86                // check if we want to create just a script
[23]87                if (resourceType == "Script" || resourceType == "nrScript")
[1]88                        return new Script();
89                else if (resourceType == "Config"){
90                        // config scripts does run completely not stepwise
91                        Script* scr = new Script();
92                        scr->setRunStepwise(false);
93                        return scr;
94                }
95                return NULL;
96        }
97
98
99        //----------------------------------------------------------------------------------
[30]100        IResource* ScriptLoader::createEmptyResource(const std::string& resourceType)
[1]101        {
102                // create an instance of empty plugin
[27]103                return new EmptyScript(resourceType);
[1]104        }
105
106
107};
108
Note: See TracBrowser for help on using the repository browser.