Ejemplo n.º 1
0
		SDL_Surface *load_tnt_minimap_fast_raw_bmp(const String& filename, int& sw, int& sh)
		{
			File *headerBytes = VFS::Instance()->readFileRange(filename, 0, sizeof(TNTHEADER));
			if (headerBytes == NULL)
				return 0;

			TNTHEADER *header = &((TNTHEADER_U*)headerBytes->data())->header;

			File *minimapdata = VFS::Instance()->readFileRange(filename, header->PTRminimap, sizeof(TNTMINIMAP));
			if (!minimapdata)
			{
				delete headerBytes;
				return 0;
			}

			minimapdata->seek(header->PTRminimap);
			TNTMINIMAP minimap;
			*minimapdata >> minimap;
			SDL_Surface	*bitmap = load_tnt_minimap_bmp(&minimap, &sw, &sh);

			delete headerBytes;
			delete minimapdata;

			return bitmap;
		}
Ejemplo n.º 2
0
    BITMAP *load_tnt_minimap_fast_raw_bmp(const String& filename, int& sw, int& sh)
    {
	    byte *headerBytes = HPIManager->PullFromHPI_zone(filename.c_str(),0,sizeof(TNTHEADER),NULL);
	    if (headerBytes==NULL)
	    {
	    	return 0;
	    }
	    TNTHEADER *header = &((TNTHEADER_U*)headerBytes)->header;

	    byte *minimapdata = HPIManager->PullFromHPI_zone(filename.c_str(),header->PTRminimap,sizeof(TNTMINIMAP),NULL);
	    if (minimapdata==NULL)
	    {
	    	delete[] headerBytes;
	    	return 0;
	    }

	    TNTMINIMAP *minimap = &((TNTMINIMAP_U*)(&minimapdata[header->PTRminimap]))->map;
	    BITMAP		*bitmap = load_tnt_minimap_bmp(minimap, &sw, &sh);

	    delete[] headerBytes;
	    delete[] minimapdata;

	    return bitmap;
    }