PSO Peeps: align proxy boost gates with upstream cleanup

This commit is contained in:
2026-05-19 15:50:37 -04:00
parent f73dbf5a96
commit e7ea471ec5
14 changed files with 19 additions and 25 deletions
+3 -6
View File
@@ -3120,21 +3120,18 @@ static asio::awaitable<void> on_10_proxy_destinations(shared_ptr<Client> c, uint
c->channel->disconnect();
} else {
// PSO Peeps: boosted clients may not enter Vanilla/Hardcore.
// PC v2 receives boosted BattleParams via the patch server. DC/GC can be
// boosted either by old boosted-disc listener ports or by the PSO Peeps XP
// client-function patch, which sets HAS_PSO_PEEPS_XP_PATCH.
// DC/GC can be boosted either by old boosted-disc listener ports or by
// PSO Peeps XP client-function patches, which set HAS_PSO_PEEPS_XP_PATCH.
const bool is_vanilla_or_hardcore_dest =
(dest->second == 19203 || dest->second == 19230 || dest->second == 19530);
const bool is_boosted_disc =
(c->listener_port == 9105 || c->listener_port == 9110 ||
c->listener_port == 9201 || c->listener_port == 9202 ||
c->listener_port == 19105 || c->listener_port == 19110);
const bool is_pc_v2_boosted = (c->version() == Version::PC_V2);
const bool has_psopeeps_xp_patch =
c->check_flag(Client::Flag::HAS_PSO_PEEPS_XP_PATCH);
if (is_vanilla_or_hardcore_dest &&
(is_boosted_disc || is_pc_v2_boosted || has_psopeeps_xp_patch)) {
(is_boosted_disc || has_psopeeps_xp_patch)) {
send_message_box(c,
"$C6Vanilla and Hardcore are not available\n"
"while boosted XP is active.\n\n"
+4 -19
View File
@@ -2487,25 +2487,10 @@ static asio::awaitable<void> on_pick_up_item_generic(
// TODO: Figure out what the actual max range is; 30 is an overestimate
double dist2 = fi->pos.dist2(c->pos);
if (dist2 > 900.0) {
const bool allow_dcv2_falz_pickup_distance_recovery =
is_request &&
(c->version() == Version::DC_V2) &&
(l->episode == Episode::EP1) &&
(floor == 0x0E) &&
(fi->from_obj == nullptr) &&
(fi->from_ene == nullptr) &&
fi->visible_to_client(c->lobby_client_id);
if (allow_dcv2_falz_pickup_distance_recovery) {
l->log.warning_f(
"DC V2 Falz floor item pickup distance recovery: Player {} picking up {:08X}; dist2={} item_floor={} player_floor={}",
client_id, item_id, dist2, static_cast<uint64_t>(floor), static_cast<uint64_t>(c->floor));
} else {
l->log.warning_f("Player {} requests to pick up {:08X}, but it is too far away (dist2={})",
client_id, item_id, dist2);
l->add_item(floor, fi);
co_return;
}
l->log.warning_f("Player {} requests to pick up {:08X}, but it is too far away (dist2={})",
client_id, item_id, dist2);
l->add_item(floor, fi);
co_return;
}
try {
@@ -1,6 +1,7 @@
.meta visibility="menu"
.meta key="PsoPeepsV2EXP5xDC"
.meta name="V2 5x"
.meta client_flag="0x0000200000000000"
.meta description="Dreamcast V2 EXP"
.versions 2OEF
@@ -1,6 +1,7 @@
.meta visibility="menu"
.meta key="PsoPeepsV2EXP_enabled"
.meta name="10x XP"
.meta client_flag="0x0000200000000000"
.meta description="Dreamcast V2 XP boost applies across all difficulties (server dispatches per-difficulty tables on each area transition)."
.versions 2OEF
@@ -1,6 +1,7 @@
.meta visibility="menu"
.meta key="PsoPeepsV2EXP_enabled"
.meta name="5x XP"
.meta client_flag="0x0000200000000000"
.meta description="Dreamcast V2 XP boost applies across all difficulties (server dispatches per-difficulty tables on each area transition)."
.versions 2OEF
@@ -1,6 +1,7 @@
.meta visibility="menu"
.meta key="PsoPeepsEP1EXP10x"
.meta name="EP1 10x"
.meta client_flag="0x0000200000000000"
.meta description="Sets EP1 enemy EXP\nto 10x for GC crossplay"
.versions 3OE2 3OJ5
@@ -1,6 +1,7 @@
.meta visibility="menu"
.meta key="PsoPeepsEP1EXP5x"
.meta name="EP1 5x"
.meta client_flag="0x0000200000000000"
.meta description="Sets EP1 enemy EXP\nto 5x for GC crossplay"
.versions 3OE2 3OJ5
@@ -1,5 +1,6 @@
.meta key="PsoPeepsEP2EXP10x"
.meta name="EP2 10x"
.meta client_flag="0x0000200000000000"
.meta description="Sets EP2 enemy EXP\nto 10x for GC crossplay"
.versions 3OE2 3OJ5
@@ -1,6 +1,7 @@
.meta visibility="menu"
.meta key="PsoPeepsEP2EXP10xJP"
.meta name="EP2 10x"
.meta client_flag="0x0000200000000000"
.meta description="Sets EP2 enemy EXP\nto 10x for GC crossplay"
.versions 3OJ5
@@ -1,6 +1,7 @@
.meta visibility="menu"
.meta key="PsoPeepsEP2EXP10xUS"
.meta name="EP2 10x"
.meta client_flag="0x0000200000000000"
.meta description="Sets EP2 enemy EXP\nto 10x for GC crossplay"
.versions 3OE2
@@ -1,5 +1,6 @@
.meta key="PsoPeepsEP2EXP5x"
.meta name="EP2 5x"
.meta client_flag="0x0000200000000000"
.meta description="Sets EP2 enemy EXP\nto 5x for GC crossplay"
.versions 3OE2 3OJ5
@@ -1,6 +1,7 @@
.meta visibility="menu"
.meta key="PsoPeepsEP2EXP5xJP"
.meta name="EP2 5x"
.meta client_flag="0x0000200000000000"
.meta description="Sets EP2 enemy EXP\nto 5x for GC crossplay"
.versions 3OJ5
@@ -1,6 +1,7 @@
.meta visibility="menu"
.meta key="PsoPeepsEP2EXP5xUS"
.meta name="EP2 5x"
.meta client_flag="0x0000200000000000"
.meta description="Sets EP2 enemy EXP\nto 5x for GC crossplay"
.versions 3OE2
@@ -1,6 +1,7 @@
.meta visibility="menu"
.meta key="PsoPeepsV2EXP_enabled"
.meta name="10x XP"
.meta client_flag="0x0000200000000000"
.meta description="Dreamcast V2 XP boost applies across all difficulties (server dispatches per-difficulty tables on each area transition)."
.versions 2OEF