--- deliantra/server/include/loader.h 2007/02/01 19:40:42 1.9 +++ deliantra/server/include/loader.h 2007/02/15 21:07:49 1.10 @@ -23,6 +23,9 @@ */ +#ifndef LOADER_H__ +#define LOADER_H__ + #define LL_IGNORED -1 #define LL_EOF 0 #define LL_MORE 1 @@ -30,97 +33,7 @@ extern int nrofpixmaps; -// resource loader pure base class -struct loader_base -{ - const char *filename; - - virtual ~loader_base (); - - virtual archetype *get_arch (const char *name); - virtual void put_arch (archetype *arch); - - virtual object *get_object (const char *name); - virtual void put_object (object *op); - - virtual player *get_player (); - virtual void put_player (player *pl); - - virtual region *get_region (const char *name); - virtual void put_region (region *rgn); - - virtual facetile *get_face (const char *name); - virtual void put_face (facetile *face); - - virtual treasurelist *get_treasure (const char *name, bool one = false); - virtual void put_treasure (treasurelist *treasure); - - virtual animation *get_animation (const char *name); - virtual void put_animation (animation *anim); - - bool parse_arch (object_thawer &thawer, archetype *arch); - bool parse_object (object_thawer &thawer, object *op); - bool parse_player (object_thawer &thawer, player *pl); - bool parse_region (object_thawer &thawer, region *rgn); - bool parse_face (object_thawer &thawer, facetile *face); - bool parse_treasure (object_thawer &thawer, treasurelist *treasure); - bool parse_animation (object_thawer &thawer, animation *anim); - - bool parse (object_thawer &thawer); - - bool load (const char *filename); -}; - -// pure base class for default archetype loader -struct loader_arch : virtual loader_base { - archetype *get_arch (const char *name); - void put_arch (archetype *arch); -}; - -// pure base class for default object loader -struct loader_object : virtual loader_base { - object *get_object (const char *name); - void put_object (object *op); -}; - -// pure base class for default player loader -struct loader_player : virtual loader_base { - virtual player *get_player (); - virtual void put_player (player *pl); -}; - -// pure base class for default region loader -struct loader_region : virtual loader_base { - region *get_region (const char *name); - void put_region (region *rgn); -}; - -// pure base class for default face loader -struct loader_face : virtual loader_base { - facetile *get_face (const char *name); - void put_face (facetile *face); -}; - -// pure base class for default treasure loader -struct loader_treasure : virtual loader_base { - treasurelist *get_treasure (const char *name, bool one = false); - void put_treasure (treasurelist *treasure); -}; - -// pure base class for default animation loader -struct loader_animation : virtual loader_base { - animation *get_animation (const char *name); - void put_animation (animation *anim); -}; - -// future generic resource loader -// handles generic stuff valid in most files, such as -// animations, treasures, faces and so on -struct loader_generic -: virtual loader_base, - loader_object, loader_player, - loader_region, loader_face, - loader_treasure, loader_animation -{ -}; +bool load_resource_file (const char *filename); + +#endif