more wiring

This commit is contained in:
2023-11-27 18:45:38 +01:00
parent 57c1f7d22d
commit e58fc9c38f
3 changed files with 95 additions and 3 deletions

View File

@@ -1,5 +1,24 @@
#include "./chess.hpp"
#include "../toxic_games.hpp"
Chess::ChessInstance::ChessInstance(
Chess& game_type_static,
uint32_t game_id
) : _game_type_static(game_type_static) {
_id = game_id;
}
void Chess::ChessInstance::quit(void) {
}
bool Chess::ChessInstance::allInvitesAccepted(void) {
return false;
}
void Chess::ChessInstance::onPacket(uint32_t from, const uint8_t* data, const uint32_t data_size) {
}
Chess::Chess(ToxicGames& tg) : ToxicGameI(tg) {
}
@@ -10,7 +29,19 @@ std::unique_ptr<Chess::InstanceI> Chess::createGame(std::vector<uint32_t> with)
return nullptr;
}
std::unique_ptr<Chess::InstanceI> Chess::acceptInvite(uint32_t from, uint32_t id) {
return nullptr;
std::unique_ptr<Chess::InstanceI> Chess::acceptInvite(uint32_t from, uint32_t game_id) {
sendAcceptInvite(from, game_id);
auto new_instance = std::make_unique<ChessInstance>(*this, game_id);
return new_instance;
}
bool Chess::sendAcceptInvite(uint32_t to, uint32_t game_id) {
std::vector<uint8_t> pkg;
// init accept invite (chess specific)
pkg.push_back(0x02);
return _tg.sendPacket(static_cast<Contact3>(to), getGameType(), game_id, pkg.data(), pkg.size());
}

View File

@@ -7,6 +7,10 @@ struct Chess final : public ToxicGameI {
~Chess(void);
struct ChessInstance final : public ToxicGameI::InstanceI {
Chess& _game_type_static;
ChessInstance(Chess& game_type_static, uint32_t game_id);
~ChessInstance(void) {}
// TODO: just destructor?
@@ -19,11 +23,15 @@ struct Chess final : public ToxicGameI {
// ??
//virtual void tick();
};
uint8_t getGameType(void) const override { return 1; };
std::unique_ptr<InstanceI> createGame(std::vector<uint32_t> with) override;
std::unique_ptr<InstanceI> acceptInvite(uint32_t from, uint32_t id) override;
std::unique_ptr<InstanceI> acceptInvite(uint32_t from, uint32_t game_id) override;
private:
bool sendAcceptInvite(uint32_t to, uint32_t game_id);
};