Пример #1
0
LipSync *ResourceLoader::loadLipSync(const char *filename) {
	Common::String fname = filename;
	fname.toLowercase();
	LipSync *result;
	Block *b = getFileFromCache(fname.c_str());
	if (!b) {
		b = getFileBlock(fname.c_str());
		if (!b)
			return NULL;
	}

	result = new LipSync(filename, b->data(), b->len());

	// Some lipsync files have no data
	if (result->isValid()) {
		putIntoCache(fname, b);
		_lipsyncs.push_back(result);
	} else {
		delete result;
		delete b;
		result = NULL;
	}

	return result;
}
Пример #2
0
Block *ResourceLoader::getBlock(const char *filename) {
    Common::String fname = filename;
    fname.toLowercase();
    Block *b = getFileFromCache(fname.c_str());
    if (!b) {
        b = getFileBlock(fname.c_str());
		if (b) {
			putIntoCache(fname, b);
		}
    }

    return b;
}
Пример #3
0
Costume *ResourceLoader::loadCostume(const char *filename, Costume *prevCost) {
	Common::String fname = filename;
	fname.toLowercase();
	Block *b = getFileFromCache(fname.c_str());
	if (!b) {
		b = getFileBlock(fname.c_str());
		if (!b)
			error("Could not find costume \"%s\"", filename);
		putIntoCache(fname, b);
	}
	Costume *result = new Costume(filename, b->data(), b->len(), prevCost);

	return result;
}
Пример #4
0
Model *ResourceLoader::loadModel(const char *filename, CMap *c) {
	Common::String fname = filename;
	fname.toLowercase();
	Block *b = getFileFromCache(fname.c_str());
	if (!b) {
		b = getFileBlock(fname.c_str());
		if (!b)
			error("Could not find model %s", filename);
		putIntoCache(fname, b);
	}

	Model *result = new Model(filename, b->data(), b->len(), c);
	_models.push_back(result);

	return result;
}
Пример #5
0
KeyframeAnim *ResourceLoader::loadKeyframe(const char *filename) {
	Common::String fname = filename;
	fname.toLowercase();
	Block *b = getFileFromCache(fname.c_str());
	if (!b) {
		b = getFileBlock(fname.c_str());
		if (!b)
			error("Could not find keyframe file %s", filename);
		putIntoCache(fname, b);
	}

	KeyframeAnim *result = new KeyframeAnim(filename, b->data(), b->len());
	_keyframeAnims.push_back(result);

	return result;
}
Пример #6
0
Font *ResourceLoader::loadFont(const char *filename) {
	Common::String fname = filename;
	fname.toLowercase();
	Block *b = getFileFromCache(fname.c_str());
	if (!b) {
		b = getFileBlock(fname.c_str());
		if (!b)
			error("Could not find font file %s", filename);
		putIntoCache(fname, b);
	}

	Font *result = new Font(filename, b->data(), b->len());
	_fonts.push_back(result);

	return result;
}
Пример #7
0
CMap *ResourceLoader::loadColormap(const char *filename) {
	Common::String fname = filename;
	fname.toLowercase();
	Block *b = getFileFromCache(fname.c_str());
	if (!b) {
		b = getFileBlock(fname.c_str());
		if (!b) {
			error("Could not find colormap %s", filename);
        }
		putIntoCache(fname, b);
	}

	CMap *result = new CMap(filename, b->data(), b->len());
	_colormaps.push_back(result);

	return result;
}
	void testFileTransfer(){

		MpsHeader header;

		header.payloadDescriptor = '0';
		memcpy(header.descriptorId , generateRandomKey(16) , 16);
		//strcpy(header.descriptorId , generateRandomKey(16));

		File * file1 = fopen("/home/gonzalo/images/anonimo.jpg" , "r");

		char readingBuffer[1024];
		char buffer[65536];

		char * opName = "snd_img1";

		int offset = 0;
		while(! feof(file1) && header.payloadDescriptor == '0'){

			bzero(buffer , 65536);
			fread(readingBuffer , sizeof(char) , 1024 , file1);

			FileBlock * block = getFileBlock(readingBuffer);
			header.payloadDescriptor = 'b';
			header.payloadSize = sizeof(FileBlock) + strlen("snd_img1");

			memcpy(buffer , &header , sizeof(MpsHeader));
			offset += sizeof(MpsHeader);
			memcpy(buffer + 21 , opName , strlen("snd_img1"));
			offset += strlen("snd_img1");
			memcpy(buffer + 29 , block , sizeof(FileBlock));
			offset += sizeof(FileBlock);

			sendBytes(getFileSystemConnection() , buffer , offset );


			recv(getFileSystemConnection() , &header , sizeof(MpsHeader) , 0);
		}

		header.payloadSize = 0;
		header.payloadDescriptor = 'a';
		sendBytes(getFileSystemConnection() , &header , sizeof(MpsHeader));

		fclose(file1);

	}
Пример #9
0
Bitmap *ResourceLoader::loadBitmap(const char *filename) {
	Common::String fname = filename;
	fname.toLowercase();
	Block *b = getFileFromCache(fname.c_str());
	if (!b) {
		b = getFileBlock(fname.c_str());
		if (!b) {	// Grim sometimes asks for non-existant bitmaps (eg, ha_overhead)
			warning("Could not find bitmap %s", filename);
			return NULL;
		}
		putIntoCache(fname, b);
	}

	Bitmap *result = g_grim->registerBitmap(filename, b->data(), b->len());
	_bitmaps.push_back(result);

	return result;
}