diff options
author | Jared Adams <jaxad0127@gmail.com> | 2009-12-05 00:12:04 -0700 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2009-12-05 00:12:04 -0700 |
commit | 3353d1a87fbfe2e6830a4b77470d9a5a1cdac593 (patch) | |
tree | f272b22eee0baa24f1de3cbc136327652045bb58 /src/net/net.cpp | |
parent | 1eb02f83a5d3895e4e18db30ea10d88da94ba4c0 (diff) | |
download | mana-3353d1a87fbfe2e6830a4b77470d9a5a1cdac593.tar.gz mana-3353d1a87fbfe2e6830a4b77470d9a5a1cdac593.tar.bz2 mana-3353d1a87fbfe2e6830a4b77470d9a5a1cdac593.tar.xz mana-3353d1a87fbfe2e6830a4b77470d9a5a1cdac593.zip |
Add a type member to ServerInfo and code for it
Some of the code is waiting for ifdef removal.
Diffstat (limited to 'src/net/net.cpp')
-rw-r--r-- | src/net/net.cpp | 51 |
1 files changed, 45 insertions, 6 deletions
diff --git a/src/net/net.cpp b/src/net/net.cpp index 9740844d..50baac73 100644 --- a/src/net/net.cpp +++ b/src/net/net.cpp @@ -121,15 +121,13 @@ Net::TradeHandler *Net::getTradeHandler() namespace Net { - bool networkLoaded = false; + ServerInfo::Type networkType = ServerInfo::UNKNOWN; } // namespace Net void Net::connectToServer(const ServerInfo &server) { - // TODO: Actually query the server about itself and choose the netcode - // based on that - - if (networkLoaded) + // Remove with ifdefs + if (networkType != ServerInfo::UNKNOWN) { getGeneralHandler()->reload(); } @@ -142,9 +140,50 @@ void Net::connectToServer(const ServerInfo &server) #endif getGeneralHandler()->load(); + + networkType = server.type; } + // End remove section + + // Uncomment after ifdefs removed + /*ServerInfo server = ServerInfo(inServer); + if (server.type == ServerInfo::UNKNOWN) + { + // TODO: Query the server about itself and choose the netcode based on + // that + } + + //if (networkType == server.type) + if (networkType != ServerInfo::UNKNOWN) + { + getGeneralHandler()->reload(); + } + else + { + if (networkType != ServerInfo::UNKNOWN) + { + getGeneralHandler()->unload(); + } + + switch (server.type) + { + case ServerInfo::MANASERV: + new ManaServ::GeneralHandler; + break; + + case ServerInfo::EATHENA: + new EAthena::GeneralHandler; + break; + + default: + // Shouldn't happen... + break; + } + + getGeneralHandler()->load(); - networkLoaded = true; + networkType = server.type; + }*/ getLoginHandler()->setServer(server); |