Skip to content

Commit

Permalink
Fix report widget
Browse files Browse the repository at this point in the history
  • Loading branch information
WibbenZ committed Jul 4, 2015
1 parent 41dfeb2 commit 93bd496
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 6 deletions.
7 changes: 7 additions & 0 deletions src/enums.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@
#ifndef FS_ENUMS_H_003445999FEE4A67BCECBE918B0124CE
#define FS_ENUMS_H_003445999FEE4A67BCECBE918B0124CE

enum BugReportType_t : uint8_t {
BUG_CATEGORY_MAP = 0,
BUG_CATEGORY_TYPO = 1,
BUG_CATEGORY_TECHNICAL = 2,
BUG_CATEGORY_OTHER = 3
};

enum ThreadState {
THREAD_STATE_RUNNING,
THREAD_STATE_CLOSING,
Expand Down
11 changes: 8 additions & 3 deletions src/game.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4838,7 +4838,7 @@ void Game::kickPlayer(uint32_t playerId, bool displayEffect)
player->kickPlayer(displayEffect);
}

void Game::playerReportBug(uint32_t playerId, const std::string& bug)
void Game::playerReportBug(uint32_t playerId, const std::string& message, const Position position, uint8_t category)
{
Player* player = getPlayerByID(playerId);
if (!player) {
Expand All @@ -4852,8 +4852,13 @@ void Game::playerReportBug(uint32_t playerId, const std::string& bug)
std::string fileName = "data/reports/" + player->getName() + " report.txt";
FILE* file = fopen(fileName.c_str(), "a");
if (file) {
const Position& position = player->getPosition();
fprintf(file, "------------------------------\nName: %s [Position X: %u Y: %u Z: %u]\nBug Report: %s\n", player->getName().c_str(), position.x, position.y, position.z, bug.c_str());
const Position& playerPosition = player->getPosition();
if (category == BUG_CATEGORY_MAP) {
fprintf(file, "------------------------------\nName: %s [Map Position: %u, %u, %u] [Player Position: %u, %u, %u]\nComment: %s\n", player->getName().c_str(), position.x, position.y, position.z, playerPosition.x, playerPosition.y, playerPosition.z, message.c_str());
} else {
fprintf(file, "------------------------------\nName: %s [Player Position: %u, %u, %u]\nComment: %s\n", player->getName().c_str(), playerPosition.x, playerPosition.y, playerPosition.z, message.c_str());
}

fclose(file);
}

Expand Down
2 changes: 1 addition & 1 deletion src/game.h
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ class Game

void sendGuildMotd(uint32_t playerId);
void kickPlayer(uint32_t playerId, bool displayEffect);
void playerReportBug(uint32_t playerId, const std::string& bug);
void playerReportBug(uint32_t playerId, const std::string& message, const Position position, uint8_t category);
void playerDebugAssert(uint32_t playerId, const std::string& assertLine, const std::string& date, const std::string& description, const std::string& comment);
void playerAnswerModalWindow(uint32_t playerId, uint32_t modalWindowId, uint8_t button, uint8_t choice);

Expand Down
11 changes: 9 additions & 2 deletions src/protocolgame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1059,8 +1059,15 @@ void ProtocolGame::parseRotateItem(NetworkMessage& msg)

void ProtocolGame::parseBugReport(NetworkMessage& msg)
{
std::string bug = msg.getString();
addGameTask(&Game::playerReportBug, player->getID(), bug);
uint8_t category = msg.getByte();
std::string message = msg.getString();

Position position;
if (category == BUG_CATEGORY_MAP) {
position = msg.getPosition();
}

addGameTask(&Game::playerReportBug, player->getID(), message, position, category);
}

void ProtocolGame::parseDebugAssert(NetworkMessage& msg)
Expand Down

0 comments on commit 93bd496

Please sign in to comment.