don't load maps for ep3 games on proxy server
This commit is contained in:
+11
-4
@@ -965,15 +965,20 @@ static HandlerResult SC_6x60_6xA2(shared_ptr<ProxyServer::LinkedSession> ses, co
|
|||||||
case DropMode::PASSTHROUGH:
|
case DropMode::PASSTHROUGH:
|
||||||
return HandlerResult::Type::FORWARD;
|
return HandlerResult::Type::FORWARD;
|
||||||
case DropMode::INTERCEPT:
|
case DropMode::INTERCEPT:
|
||||||
if (!ses->item_creator) {
|
|
||||||
ses->log.warning("Received item drop request in intercept mode, but item creator is missing");
|
|
||||||
return HandlerResult::Type::FORWARD;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw logic_error("invalid drop mode");
|
throw logic_error("invalid drop mode");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!ses->item_creator) {
|
||||||
|
ses->log.warning("Session is in INTERCEPT drop mode, but item creator is missing");
|
||||||
|
return HandlerResult::Type::FORWARD;
|
||||||
|
}
|
||||||
|
if (!ses->map) {
|
||||||
|
ses->log.warning("Session is in INTERCEPT drop mode, but map is missing");
|
||||||
|
return HandlerResult::Type::FORWARD;
|
||||||
|
}
|
||||||
|
|
||||||
G_SpecializableItemDropRequest_6xA2 cmd = normalize_drop_request(data.data(), data.size());
|
G_SpecializableItemDropRequest_6xA2 cmd = normalize_drop_request(data.data(), data.size());
|
||||||
auto rec = reconcile_drop_request_with_map(
|
auto rec = reconcile_drop_request_with_map(
|
||||||
ses->log, ses->client_channel, cmd, ses->version(), ses->lobby_episode, ses->config, ses->map, false);
|
ses->log, ses->client_channel, cmd, ses->version(), ses->lobby_episode, ses->config, ses->map, false);
|
||||||
@@ -1647,6 +1652,7 @@ static HandlerResult S_64(shared_ptr<ProxyServer::LinkedSession> ses, uint16_t,
|
|||||||
// Recreate the item creator if needed, and load maps
|
// Recreate the item creator if needed, and load maps
|
||||||
auto s = ses->require_server_state();
|
auto s = ses->require_server_state();
|
||||||
ses->set_drop_mode(ses->drop_mode);
|
ses->set_drop_mode(ses->drop_mode);
|
||||||
|
if (!is_ep3(ses->version())) {
|
||||||
ses->map = Lobby::load_maps(
|
ses->map = Lobby::load_maps(
|
||||||
ses->version(),
|
ses->version(),
|
||||||
ses->lobby_episode,
|
ses->lobby_episode,
|
||||||
@@ -1661,6 +1667,7 @@ static HandlerResult S_64(shared_ptr<ProxyServer::LinkedSession> ses, uint16_t,
|
|||||||
make_shared<PSOV2Encryption>(ses->lobby_random_seed),
|
make_shared<PSOV2Encryption>(ses->lobby_random_seed),
|
||||||
cmd->variations,
|
cmd->variations,
|
||||||
&ses->log);
|
&ses->log);
|
||||||
|
}
|
||||||
|
|
||||||
bool modified = false;
|
bool modified = false;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user