summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-03-06 19:33:45 +0000
committerrubidium <rubidium@openttd.org>2009-03-06 19:33:45 +0000
commit406832fed8008718aad8005215c1ecfbdb6f9d3a (patch)
tree785d2e3194f2744aa1c4620d6c6364ac056d5a8a /src/network
parentbc58d4ef9a13623f1b7c679a298940383c6b4a20 (diff)
downloadopenttd-406832fed8008718aad8005215c1ecfbdb6f9d3a.tar.xz
(svn r15632) -Feature: allow downloading scenarios and heightmaps via bananas.
Diffstat (limited to 'src/network')
-rw-r--r--src/network/network_content.cpp8
-rw-r--r--src/network/network_content_gui.cpp7
2 files changed, 15 insertions, 0 deletions
diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp
index 83740c81c..3a558c7d5 100644
--- a/src/network/network_content.cpp
+++ b/src/network/network_content.cpp
@@ -22,6 +22,7 @@
extern bool TarListAddFile(const char *filename);
extern bool HasGraphicsSet(const ContentInfo *ci, bool md5sum);
+extern bool HasScenario(const ContentInfo *ci, bool md5sum);
ClientNetworkContentSocketHandler _network_content_client;
/** Wrapper function for the HasProc */
@@ -86,6 +87,11 @@ DEF_CONTENT_RECEIVE_COMMAND(Client, PACKET_CONTENT_SERVER_INFO)
proc = AI::HasAI; break;
break;
+ case CONTENT_TYPE_SCENARIO:
+ case CONTENT_TYPE_HEIGHTMAP:
+ proc = HasScenario;
+ break;
+
default:
break;
}
@@ -143,6 +149,8 @@ void ClientNetworkContentSocketHandler::RequestContentList(ContentType type)
{
if (type == CONTENT_TYPE_END) {
this->RequestContentList(CONTENT_TYPE_BASE_GRAPHICS);
+ this->RequestContentList(CONTENT_TYPE_SCENARIO);
+ this->RequestContentList(CONTENT_TYPE_HEIGHTMAP);
this->RequestContentList(CONTENT_TYPE_AI);
this->RequestContentList(CONTENT_TYPE_NEWGRF);
this->RequestContentList(CONTENT_TYPE_AI_LIBRARY);
diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp
index a2be8557d..2c2f9eac6 100644
--- a/src/network/network_content_gui.cpp
+++ b/src/network/network_content_gui.cpp
@@ -98,6 +98,13 @@ public:
InvalidateWindowData(WC_NETWORK_WINDOW, 0, 2);
break;
+ case CONTENT_TYPE_SCENARIO:
+ case CONTENT_TYPE_HEIGHTMAP:
+ InvalidateWindowClasses(WC_SAVELOAD);
+ extern void ScanScenarios();
+ ScanScenarios();
+ break;
+
default:
break;
}