File: resource_factory.cpp

package info (click to toggle)
epiphany 0.7.0+0-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 7,532 kB
  • sloc: cpp: 6,404; ansic: 141; makefile: 78; sh: 7
file content (91 lines) | stat: -rw-r--r-- 2,447 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/***************************************************************************
                          resource_factory.cpp  -  description
                             -------------------
    begin                : Jun 13 2007
    copyright            : (C) 2007 by Giuseppe D'Aqui'
    email                : kumber@tiscalinet.it
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License, Version 2,      *
 *   as published by the Free Software Foundation.                         *
 *                                                                         *
 ***************************************************************************/

#include "resource_factory.h"
#include "dephine.h"
#include <cstdio>
#include <cassert>



void Resource_Factory::init()
{
	//portability "quick hack" :)
	#ifdef _WIN32
	m_resource_path=".";
	#else
	m_resource_path=RESOURCE_PATH;
	#endif
	DEBWARN("Resource_path: "<<m_resource_path<<"\n");

	FILE * pFile;
	
	std::string res_path_string(m_resource_path);
	
	
  	pFile = fopen ((res_path_string+"/epiphany.scr").c_str(),"r");
 	 if (pFile==NULL)
  	{
   		DEBWARN("Warning: "<<res_path_string<<" not found.\n");
		res_path_string="./data";
		pFile = fopen ((res_path_string+"/epiphany.scr").c_str(),"r");
 	 	if (pFile==NULL)
  		{
   			DEBWARN("Warning: "<<res_path_string<<" not found.\n");
			res_path_string="../data";
			pFile = fopen ((res_path_string+"/epiphany.scr").c_str(),"r");
 	 		if (pFile==NULL)
  			{
   				DEBWARN("Warning: "<<res_path_string<<" not found.\n");
				assert(!"Error: epiphany.scr not found.\n");
  			}
  		}
  	}
  	
  	if(pFile!=NULL)
  	{
  		fclose(pFile);
  	}
  	else
  	{
  		assert(!"Error: sprites.scr not found.\n");
  	}
  	
  	m_resource_path = res_path_string.c_str();

	DEBOUT("Using "<<m_resource_path<<"/epiphany.scr"<<" as resource script.\n");
}

void Resource_Factory::deinit()
{
	
}

// begin Singleton stuff

Resource_Factory* Resource_Factory::_instance = 0;

Resource_Factory* Resource_Factory::instance()
{
	if (_instance == 0)
	{
		_instance = new Resource_Factory();
		_instance->init();
	}
	return _instance;
}

//end Singleton stuff