NAME

Games::Resource - open game resource files via standard paths

SYNOPSIS

	use Games::Resource;

	# set configuration

	Games::Resource::config (
	  data_path => 'data',
	  mod_path => '',
	  language => 'de',
	  resource_extension => '.zip',
	  resource_files => [ 'sounds', 'textures', 'models', ... ],
	  resource_hints => { md2 => 'models', ogg => 'sounds', ... },
	);

	# construct an object	
	my $file = Games::Resource::open('models','apple.md2');

	# get the handle to the file (unless part of an zip file)
        # This is not recommended.
	my $FILE_HANDLE = $file->handle();

	# or just the contents, regardless of how the file was stored
	$contents = $file->contents();		# not handle->contents unless

EXPORTS

Exports nothing on default.

DESCRIPTION

This package provides a standard way to access your game resources stored in files. After setting up the paths and resource hints, you can simple specify the filename and the module will figure out where the file actually is. Here is an example with the example values from above:

my $FILE_HANDLE = Game::Resource::open('books/book1.txt');

This would first try:

data/books/en/book1.txt

On the reasoning that you specified 'de' as language. If it was not found (because there is no German version), the next file tried would be:

data/books/book1.txt

to access the "default language" version. If it was still not found, the resource files will be tried. Since you did not specifiy a hint for .txt files, all of them (in semi-random order) will be tried, like:

data/sounds.zip
data/textures.zip
data/models.zip
...

In each of these resource files, the files:

data/books/en/book1.txt
data/books/book1.txt

will be tried.

If the file cannot be found at all, undef will be returned.

The reasource files must currently be ZIP archive. Maybe later other archive formats will be supported.

The paths are assumed relative to the current path.

The file will be closed automatically when the object returned by open is destroyed, e.g. goes out of scope or is freed otherwise.

METHODS

config()
my $cfg = Game::Resource::config( );
Game::Resource::config( $config );

Set/get the config values.

open()
Games::Resource::open ($path, $file);

Try to find the given path and file and return a file handle. On error, returns undef.

AUTHORS

(c) 2003, Tels <http://bloodgate.com/>

SEE ALSO

SDL:App::FPS, SDL::App and SDL.

NAME

Games::Resource - open game resource files via standard paths

SYNOPSIS

use Games::Resource;

Games::Resource::config (
  data_path => 'data',
  mod_path => '',
  language => 'de',
  resource_extension => '.zip',
  resource_files => [ 'sounds', 'textures', 'models', ... ],
  resource_hints => [ md2 => 'models', ogg => 'sounds', ... ],
);

my $FILE_HANDLE = Games::Resource::open('models','apple.md2');

EXPORTS

Exports nothing on default.

DESCRIPTION

This package provides a standard way to access your game resources stored in files. After setting up the paths and resource hints, you can simple specify the filename and the module will figure out where the file actually is. Here is an example with the example values from above:

my $FILE_HANDLE = Game::Resource::open('books/book1.txt');

This would first try:

data/books/en/book1.txt

On the reasoning that you specified 'de' as language. If it was not found (because there is no German version), the next file tried would be:

data/books/book1.txt

to access the "default language" version. If it was still not found, the resource files will be tried. Since you did not specifiy a hint for .txt files, all of them (in semi-random order) will be tried, like:

data/sounds.zip
data/textures.zip
data/models.zip
...

In each of these resource files, the files:

data/books/en/book1.txt
data/books/book1.txt

will be tried.

If the file cannot be found at all, undef will be returned.

METHODS

config()
my $cfg = Game::Resource::config( );
Game::Resource::config( $config );

Set/get the config values.

Renders the brush.

open()
Games::Resource::open ($path, $file);

Try to find the given path and file and return a file handle. On error, returns undef.

AUTHORS

(c) 2003, Tels <http://bloodgate.com/>

SEE ALSO

SDL:App::FPS, SDL::App and SDL.

NAME

Games::Resource - open game resource files via standard paths

SYNOPSIS

use Games::Resource;

Games::Resource::config (
  data_path => 'data',
  mod_path => '',
  language => 'de',
  resource_extension => '.zip',
  resource_files => [ 'sounds', 'textures', 'models', ... ],
  resource_hints => [ md2 => 'models', ogg => 'sounds', ... ],
);

my $FILE_HANDLE = Games::Resource::open('models','apple.md2');

EXPORTS

Exports nothing on default.

DESCRIPTION

This package provides a standard way to access your game resources stored in files. After setting up the paths and resource hints, you can simple specify the filename and the module will figure out where the file actually is. Here is an example with the example values from above:

my $FILE_HANDLE = Game::Resource::open('books/book1.txt');

This would first try:

data/books/en/book1.txt

On the reasoning that you specified 'de' as language. If it was not found (because there is no German version), the next file tried would be:

data/books/book1.txt

to access the "default language" version. If it was still not found, the resource files will be tried. Since you did not specifiy a hint for .txt files, all of them (in semi-random order) will be tried, like:

data/sounds.zip
data/textures.zip
data/models.zip
...

In each of these resource files, the files:

data/books/en/book1.txt
data/books/book1.txt

will be tried.

If the file cannot be found at all, undef will be returned.

METHODS

config()
my $cfg = Game::Resource::config( );
Game::Resource::config( $config );

Set/get the config values.

Renders the brush.

open()
Games::Resource::open ($path, $file);

Try to find the given path and file and return a file handle. On error, returns undef.

The returned handle is not in binmode, you need to do this by yourself if you think you need it (e.g. opening non-text files under some old fashioned OS like win32).

AUTHORS

(c) 2003, Tels <http://bloodgate.com/>

SEE ALSO

SDL:App::FPS, SDL::App and SDL.