Skip to content

Commit

Permalink
Extract GameData
Browse files Browse the repository at this point in the history
Related to #174.
  • Loading branch information
leha-bot committed Jul 24, 2019
1 parent 7eba66a commit d2494d8
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 28 deletions.
1 change: 1 addition & 0 deletions Telegram/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,7 @@ add_executable(Kepka WIN32 MACOSX_BUNDLE

SourceFiles/data/data_abstract_structure.cpp
SourceFiles/data/data_drafts.cpp
SourceFiles/data/data_game.cpp
SourceFiles/data/data_photo.cpp

SourceFiles/dialogs/dialogs_indexed_list.cpp
Expand Down
43 changes: 43 additions & 0 deletions Telegram/SourceFiles/data/data_game.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//
// This file is part of Kepka,
// an unofficial desktop version of Telegram messaging app,
// see https://github.com/procxx/kepka
//
// Kepka is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// It is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// In addition, as a special exception, the copyright holders give permission
// to link the code of portions of this program with the OpenSSL library.
//
// Full license: https://github.com/procxx/kepka/blob/master/LICENSE
// Copyright (c) 2017- Kepka Contributors, https://github.com/procxx
//

#include "data_game.h"
#include "data/data_photo.h"
#include "data/data_document.h"

GameData::GameData(const GameId &id, const quint64 &accessHash, const QString &shortName, const QString &title,
const QString &description, PhotoData *photo, DocumentData *document)
: id(id)
, accessHash(accessHash)
, shortName(shortName)
, title(title)
, description(description)
, photo(photo)
, document(document) {}

void GameData::forget() {
if (document) document->forget();
if (photo) photo->forget();
}



43 changes: 43 additions & 0 deletions Telegram/SourceFiles/data/data_game.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//
// This file is part of Kepka,
// an unofficial desktop version of Telegram messaging app,
// see https://github.com/procxx/kepka
//
// Kepka is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// It is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// In addition, as a special exception, the copyright holders give permission
// to link the code of portions of this program with the OpenSSL library.
//
// Full license: https://github.com/procxx/kepka/blob/master/LICENSE
// Copyright (c) 2019- Kepka Contributors, https://github.com/procxx
//
/// @file data/data_game.h Data_type for Telegram Games.

#pragma once

#include "data/data_types.h"

struct GameData {
GameData(const GameId &id)
: id(id) {}
GameData(const GameId &id, const quint64 &accessHash, const QString &shortName, const QString &title,
const QString &description, PhotoData *photo, DocumentData *document);

void forget();

GameId id = 0;
quint64 accessHash = 0;
QString shortName;
QString title;
QString description;
PhotoData *photo = nullptr;
DocumentData *document = nullptr;
};
10 changes: 0 additions & 10 deletions Telegram/SourceFiles/structs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2113,16 +2113,6 @@ WebPageData::WebPageData(const WebPageId &id, WebPageType type, const QString &u
, document(document)
, pendingTill(pendingTill) {}

GameData::GameData(const GameId &id, const quint64 &accessHash, const QString &shortName, const QString &title,
const QString &description, PhotoData *photo, DocumentData *document)
: id(id)
, accessHash(accessHash)
, shortName(shortName)
, title(title)
, description(description)
, photo(photo)
, document(document) {}

MsgId clientMsgId() {
static MsgId currentClientMsgId = StartClientMsgId;
Assert(currentClientMsgId < EndClientMsgId);
Expand Down
18 changes: 0 additions & 18 deletions Telegram/SourceFiles/structs.h
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,6 @@ using VideoId = quint64;
using AudioId = quint64;
using DocumentId = quint64;
using WebPageId = quint64;
using GameId = quint64;
static const WebPageId CancelledWebPageId = 0xFFFFFFFFFFFFFFFFULL;

inline bool operator==(const FullMsgId &a, const FullMsgId &b) {
Expand Down Expand Up @@ -1500,23 +1499,6 @@ struct WebPageData {
qint32 pendingTill;
};

struct GameData {
GameData(const GameId &id, const quint64 &accessHash = 0, const QString &shortName = QString(),
const QString &title = QString(), const QString &description = QString(), PhotoData *photo = nullptr,
DocumentData *doc = nullptr);

void forget() {
if (document) document->forget();
if (photo) photo->forget();
}

GameId id;
quint64 accessHash;
QString shortName, title, description;
PhotoData *photo;
DocumentData *document;
};

QString saveFileName(const QString &title, const QString &filter, const QString &prefix, QString name, bool savingAs,
const QDir &dir = QDir());
MsgId clientMsgId();
Expand Down

0 comments on commit d2494d8

Please sign in to comment.