add notes about interaction mode

This commit is contained in:
Martin Michelsen
2025-01-08 23:47:33 -08:00
parent 68003b2e2f
commit 7c48dc1ff5
2 changed files with 10 additions and 2 deletions
+9 -1
View File
@@ -515,6 +515,13 @@ struct S_UpdateClientConfig_BB_04 {
// there was a separate command to send the block list, but it was scrapped.
// Perhaps this was used for command A1, which is identical to 07 and A0 in all
// versions of PSO (except DC NTE).
// This command sets the interaction mode, which affects which objects can be
// interacted with and what certain controls do. It also affects some in-game
// behaviors; for example, if the leader's interaction mode is set incorrectly
// in a game, the leader will not send the game state to joining players, so
// they will wait forever and not be able to actually join.
// The menu is titled "Ship Select" unless the first menu item begins with the
// text "BLOCK" (all caps), in which case it is titled "Block Select".
@@ -572,7 +579,8 @@ check_struct_size(S_MenuItem_DC_V3_08_Ep3_E6, 0x1C);
// 08 (S->C): Game list
// Internal name: RcvGameList
// Client responds with 09 and 10 commands (or nothing if the player cancels).
// Command format is the same as 07.
// Command format is the same as 07. Like 07, this command also sets the
// interaction mode, so it should not be used within a game.
// 09 (C->S): Menu item info request
// Internal name: SndInfo
+1 -1
View File
@@ -1385,6 +1385,7 @@ void send_menu_t(shared_ptr<Client> c, shared_ptr<const Menu> menu, bool is_info
auto& e = entries.emplace_back();
e.menu_id = menu->menu_id;
e.item_id = 0xFFFFFFFF;
e.difficulty_tag = 0x04;
e.name.encode(menu->name, c->language());
}
@@ -1442,7 +1443,6 @@ void send_menu_t(shared_ptr<Client> c, shared_ptr<const Menu> menu, bool is_info
e.name.encode(item.name, c->language());
e.difficulty_tag = 0x04;
e.num_players = (c->version() == Version::BB_V4) ? 0x00 : 0x0F;
e.flags = 0xFF;
}
}