#include #include enum Room { KSI, KORYTARZ, SERWEROWNIA, WINDA_PIETRO, WINDA_PARTER, WINDY_TYLNE, GARAZ, ZEWNATRZ, ROOM_SIZE }; Room ksi(GameData& gameData); Room fail(GameData& gameData); class GameData { public: Room (* functions[ROOM_SIZE])(GameData&); std::set inventory; bool alive = true; Room room = KSI; GameData() { gameData.functions[KSI] = &ksi; gameData.functions[KORYTARZ] = &fail; gameData.functions[SERWEROWNIA] = &fail; gameData.functions[WINDA_PIETRO] = &fail; gameData.functions[WINDA_PARTER] = &fail; gameData.functions[WINDY_TYLNE] = &fail; gameData.functions[GARAZ] = &fail; gameData.functions[ZEWNATRZ] = &fail; } }; Room fail(GameData& gameData) { std::cout << "Ten pokój nie istnieje. Spadłeś w pustkę. Elo." << std::endl; gameData.alive = false; return ZEWNATRZ; }