#ifndef GAMEFEATURES_H #define GAMEFEATURES_H #include "game.h" #include "qw_levelbuilder.h" #include "qw_soundplayer.h" #include "qw_inventorymanager.h" #include "qw_textdialoguemanager.h" #include "qw_widgetdialoguemanager.h" #include "view/qw_view.h" /* GameFeatures * The package of all key in-game managers. This way they are easy to transport. */ struct GameFeatures final { public: QWView *ptr_view; QWScene *ptr_scene; QWSoundPlayer *ptr_sound_player; QWInventoryManager *ptr_inventory; QWLevelBuilder *ptr_builder; QWTextDialogueManager *ptr_text_dlg; QWWidgetDialogueManager *ptr_widget_dlg; explicit GameFeatures(Game *ptr_game) { ptr_scene = new QWScene(1280, 720); ptr_view = new QWView(ptr_scene); ptr_sound_player = new QWSoundPlayer(ptr_game); ptr_inventory = new QWInventoryManager(ptr_scene); ptr_builder = new QWLevelBuilder(ptr_game); ptr_text_dlg = new QWTextDialogueManager(ptr_scene); ptr_widget_dlg = new QWWidgetDialogueManager(ptr_scene); } ~GameFeatures() = default; }; #endif // GAMEFEATURES_H