Feature: opt-in survey when exiting a game
On first start-up, the game will ask if you want to participate in our automated survey. You have to opt-in, and can easily opt-out (via the Options) at any time. When opt-in, whenever you exit a game, a JSON blob will be send to the survey server hosted by OpenTTD. This JSON blob contains information that gives a global picture of the game just played: - What settings were used - How many humans vs AIs - How long the game has been played - Basic information about the OS / CPU All this information is kept very generic, so there is no chance we send private information to our survey server. Nothing in the JSON blob could identify you as a person; it mostly tells about the game played. At any time you can see what the JSON blob includes, by pressing the "Preview Survey Results" button in-game.
This commit is contained in:

committed by
Patric Stout

parent
021c45c4f6
commit
7634553d22
@@ -366,8 +366,21 @@ static void Xunzip(byte **bufp, size_t *sizep)
|
||||
if (StrStartsWith(sv_buf, u8"\ufeff")) sv_buf.remove_prefix(3);
|
||||
|
||||
/* Replace any invalid characters with a question-mark. This copies the buf in the process. */
|
||||
this->text = StrMakeValid(sv_buf, SVS_REPLACE_WITH_QUESTION_MARK | SVS_ALLOW_NEWLINE | SVS_REPLACE_TAB_CR_NL_WITH_SPACE);
|
||||
this->LoadText(sv_buf);
|
||||
free(buf);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a text into the textfile viewer.
|
||||
*
|
||||
* This will split the text into newlines and stores it for fast drawing.
|
||||
*
|
||||
* @param buf The text to load.
|
||||
*/
|
||||
void TextfileWindow::LoadText(std::string_view buf)
|
||||
{
|
||||
this->text = StrMakeValid(buf, SVS_REPLACE_WITH_QUESTION_MARK | SVS_ALLOW_NEWLINE | SVS_REPLACE_TAB_CR_NL_WITH_SPACE);
|
||||
this->lines.clear();
|
||||
|
||||
/* Split the string on newlines. */
|
||||
std::string_view p(this->text);
|
||||
@@ -406,7 +419,7 @@ std::optional<std::string> GetTextfile(TextfileType type, Subdirectory dir, cons
|
||||
"changelog",
|
||||
"license",
|
||||
};
|
||||
static_assert(lengthof(prefixes) == TFT_END);
|
||||
static_assert(lengthof(prefixes) == TFT_CONTENT_END);
|
||||
|
||||
std::string_view prefix = prefixes[type];
|
||||
|
||||
|
Reference in New Issue
Block a user