Endgame-Analyzer/include/download.h

36 lines
1.0 KiB
C
Raw Normal View History

#ifndef DYNAMIC_PROGRAM_DOWNLOAD_H
#define DYNAMIC_PROGRAM_DOWNLOAD_H
#include <iostream>
2023-08-05 11:55:46 +02:00
#include <variant>
2023-11-15 23:07:39 +01:00
#include <optional>
2023-08-12 19:43:22 +02:00
#include <boost/json.hpp>
2023-11-15 23:07:39 +01:00
#include "game_interface.h"
2023-11-16 16:20:04 +01:00
namespace Download
{
std::optional<boost::json::object> download_game_json(int game_id);
std::optional<boost::json::object> open_game_json(char const *filename);
/**
* @brief Create game object from given source
* @param game_spec Either an id to download from hanab.live or a filename with a json specification
* @param score_goal What score counts as a win for this game. If left empty, the maximum score is inserted.
* @return Game state
*
* If both turn and draw_pile_break are specified, the game skips until the specified turn or the first time the
* draw pile hits the given size, whichever comes first
*
*/
Hanabi::Game get_game(int game_id, std::optional<uint8_t> score_goal);
Hanabi::Game get_game(std::string const & filename, std::optional<uint8_t> score_goal);
} // namespace Download
#endif // DYNAMIC_PROGRAM_DOWNLOAD_H