diff --git a/src/network/core/tcp_content.h b/src/network/core/tcp_content.h index 52cae1e0eda..527ad12ca99 100644 --- a/src/network/core/tcp_content.h +++ b/src/network/core/tcp_content.h @@ -28,7 +28,11 @@ class NetworkContentSocketHandler : public NetworkTCPSocketHandler { /** * Client requesting a list of content info: * byte type - * uint32 openttd version + * uint32 openttd version (or 0xFFFFFFFF if using a list) + * Only if the above value is 0xFFFFFFFF: + * uint8 count + * string branch-name ("vanilla" for upstream OpenTTD) + * string release version (like "12.0") * @param p The packet that was just received. * @return True upon success, otherwise false. */ diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp index b0174c4b663..c03044156fe 100644 --- a/src/network/network_content.cpp +++ b/src/network/network_content.cpp @@ -207,7 +207,20 @@ void ClientNetworkContentSocketHandler::RequestContentList(ContentType type) Packet *p = new Packet(PACKET_CONTENT_CLIENT_INFO_LIST); p->Send_uint8 ((byte)type); - p->Send_uint32(_openttd_newgrf_version); + p->Send_uint32(0xffffffff); + p->Send_uint8 (1); + p->Send_string("vanilla"); + p->Send_string(_openttd_content_version); + + /* Patchpacks can extend the list with one. In BaNaNaS metadata you can + * add a branch in the 'compatibility' list, to filter on this. If you want + * your patchpack to be mentioned in the BaNaNaS web-interface, create an + * issue on https://github.com/OpenTTD/bananas-api asking for this. + + p->Send_string("patchpack"); // Or what-ever the name of your patchpack is. + p->Send_string(_openttd_content_version_patchpack); + + */ this->SendPacket(p); } diff --git a/src/rev.cpp.in b/src/rev.cpp.in index 0049c21f8fc..976943731e7 100644 --- a/src/rev.cpp.in +++ b/src/rev.cpp.in @@ -79,6 +79,13 @@ const byte _openttd_revision_modified = ${REV_MODIFIED}; */ const byte _openttd_revision_tagged = ${REV_ISTAG}; +/** + * To check compatibility of BaNaNaS content, this version string is used. + * It should never contain things like "beta", but only the release version + * we are compatible with. + */ +const char _openttd_content_version[] = "12.0"; + /** * The NewGRF revision of OTTD: * bits meaning. diff --git a/src/rev.h b/src/rev.h index dd2674f0250..e3bee3538ae 100644 --- a/src/rev.h +++ b/src/rev.h @@ -18,6 +18,7 @@ extern const char _openttd_revision_year[]; extern const char _openttd_build_configure_defines[]; extern const byte _openttd_revision_modified; extern const byte _openttd_revision_tagged; +extern const char _openttd_content_version[]; extern const uint32 _openttd_newgrf_version; bool IsReleasedVersion();