summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-10-16 14:24:29 -0700
committerBenjamin Otte <otte@redhat.com>2011-10-16 22:32:55 -0700
commit504c508abe9be9baf2c61f03321893b250b26373 (patch)
treeb43869104b84aeacf099a4dfc776e7ab7839af49
parent0445f1ad3e145c04fa9407a699c138fb2be364c0 (diff)
game: Add game_game_load_resource()
The function will load a file and return it as a GDataResource. This is the only function that should be used for loading data in games.
-rw-r--r--libgame/game-data-resource.h2
-rw-r--r--libgame/game-game.c12
-rw-r--r--libgame/game-game.h4
3 files changed, 17 insertions, 1 deletions
diff --git a/libgame/game-data-resource.h b/libgame/game-data-resource.h
index c5b68c5..34de1b5 100644
--- a/libgame/game-data-resource.h
+++ b/libgame/game-data-resource.h
@@ -30,7 +30,7 @@ G_BEGIN_DECLS
#define GAME_IS_DATA_RESOURCE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GAME_TYPE_DATA_RESOURCE))
#define GAME_DATA_RESOURCE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GAME_TYPE_DATA_RESOURCE, GameDataResourceClass))
-typedef struct _GameDataResource GameDataResource;
+//typedef struct _GameDataResource GameDataResource;
typedef struct _GameDataResourceClass GameDataResourceClass;
struct _GameDataResource {
diff --git a/libgame/game-game.c b/libgame/game-game.c
index 3afe905..7fd327c 100644
--- a/libgame/game-game.c
+++ b/libgame/game-game.c
@@ -1115,3 +1115,15 @@ game_game_get_resource (GameGame *game, const char *name)
return NULL;
}
+GameDataResource *
+game_game_load_resource (GameGame * game,
+ const char *filename)
+{
+ g_return_val_if_fail (GAME_IS_GAME (game), NULL);
+ g_return_val_if_fail (filename != NULL, NULL);
+
+ return GAME_DATA_RESOURCE (game_game_add_object (game,
+ GAME_TYPE_FILE_RESOURCE,
+ "filename", filename,
+ NULL));
+}
diff --git a/libgame/game-game.h b/libgame/game-game.h
index 634b923..4f5fbbd 100644
--- a/libgame/game-game.h
+++ b/libgame/game-game.h
@@ -40,6 +40,7 @@ typedef struct _GameGraphicClass GameGraphicClass;
typedef struct _GameMatch GameMatch;
typedef struct _GameMatchClass GameMatchClass;
typedef struct _GameResource GameResource;
+typedef struct _GameDataResource GameDataResource;
typedef struct _GameGame GameGame;
typedef struct _GameGameClass GameGameClass;
@@ -133,6 +134,9 @@ GameObject * game_game_get_object (GameGame * game,
const char * name);
GameResource * game_game_get_resource (GameGame * game,
const char * name);
+GameDataResource *game_game_load_resource (GameGame * game,
+ const char * filename);
+
GameContainer * game_game_get_players (GameGame * game);
guint game_game_get_player_count (GameGame * game);