EntryInfo EntryFunc()

in rts/game_MC/python_wrapper.cc [67:93]


    EntryInfo EntryFunc(const std::string &key) {
        auto *mm = GameState::get_mm(key);
        if (mm == nullptr) return EntryInfo();

        std::string type_name = mm->type();
        const int mapx = _context->options().map_size_x;
        const int mapy = _context->options().map_size_y;
        const int max_unit_cmd = _context->options().max_unit_cmd;
        const int reduced_size = MCExtractor::Size() * 5 * 5;

        if (key == "s") return EntryInfo(key, type_name, { (int)MCExtractor::Size() * _num_frames_in_state,  _context->options().map_size_y, _context->options().map_size_x});
        else if (key == "last_r" || key == "terminal" || key == "last_terminal" || key == "id" || key == "seq" || key == "game_counter" || key == "player_id") return EntryInfo(key, type_name);
        else if (key == "pi") return EntryInfo(key, type_name, {GameDef::GetNumAction()});
        else if (key == "a" || key == "rv" || key == "V" || key == "action_type") return EntryInfo(key, type_name);
        else if (key == "uloc") return EntryInfo(key, type_name, { max_unit_cmd });
        else if (key == "tloc") return EntryInfo(key, type_name, { max_unit_cmd });
        else if (key == "bt") return EntryInfo(key, type_name, { max_unit_cmd });
        else if (key == "ct") return EntryInfo(key, type_name, { max_unit_cmd });
        else if (key == "uloc_prob") return EntryInfo(key, type_name, { max_unit_cmd,  mapx * mapy });
        else if (key == "tloc_prob") return EntryInfo(key, type_name, { max_unit_cmd, mapx * mapy });
        else if (key == "bt_prob") return EntryInfo(key, type_name, { max_unit_cmd, GameDef::GetNumUnitType() });
        else if (key == "ct_prob") return EntryInfo(key, type_name, { max_unit_cmd, CmdInput::CI_NUM_CMDS });
        else if (key == "reduced_s") return EntryInfo(key, type_name, { reduced_size });
        else if (key == "reduced_next_s") return EntryInfo(key, type_name, { reduced_size });

        return EntryInfo();
    }