update some command notes
This commit is contained in:
+16
-12
@@ -2304,8 +2304,7 @@ struct S_UpdateMediaHeader_GC_Ep3_B9 {
|
|||||||
// This command is not valid on Episode 3 Trial Edition.
|
// This command is not valid on Episode 3 Trial Edition.
|
||||||
// header.flag specifies the transaction purpose. Specific known values:
|
// header.flag specifies the transaction purpose. Specific known values:
|
||||||
// 00 = unknown
|
// 00 = unknown
|
||||||
// 01 = Lobby jukebox object created (C->S; always has a value of 0;
|
// 01 = Initialize Meseta subsystem (C->S; always has a value of 0)
|
||||||
// response request_token must match the last token sent by client)
|
|
||||||
// 02 = Spend meseta (at e.g. lobby jukebox or Pinz's shop) (C->S)
|
// 02 = Spend meseta (at e.g. lobby jukebox or Pinz's shop) (C->S)
|
||||||
// 03 = Spend meseta response (S->C; request_token must match the last token
|
// 03 = Spend meseta response (S->C; request_token must match the last token
|
||||||
// sent by client)
|
// sent by client)
|
||||||
@@ -2495,12 +2494,14 @@ struct C_SetBlockedSenders_BB_C6 : C_SetBlockedSenders_C6<28> {
|
|||||||
// Server does not respond
|
// Server does not respond
|
||||||
|
|
||||||
// C9: Broadcast command (Episode 3)
|
// C9: Broadcast command (Episode 3)
|
||||||
|
// Internal name: SndCardClientData
|
||||||
// Same as 60, but should be forwarded only to Episode 3 clients.
|
// Same as 60, but should be forwarded only to Episode 3 clients.
|
||||||
// newserv uses this command for all server-generated events (in response to CA
|
// newserv uses this command for all server-generated events (in response to CA
|
||||||
// commands), except for map data requests. This differs from Sega's original
|
// commands), except for map data requests. This differs from Sega's original
|
||||||
// implementation, which sent CA responses via 60 commands instead.
|
// implementation, which sent CA responses via 60 commands instead.
|
||||||
|
|
||||||
// CA (C->S): Server data request (Episode 3)
|
// CA (C->S): Server data request (Episode 3)
|
||||||
|
// Internal name: SndCardServerData
|
||||||
// The CA command format is the same as that of the 6xB3 commands, and the
|
// The CA command format is the same as that of the 6xB3 commands, and the
|
||||||
// subsubcommands formats are shared as well. Unlike the 6x commands, the server
|
// subsubcommands formats are shared as well. Unlike the 6x commands, the server
|
||||||
// is expected to respond to the command appropriately instead of forwarding it.
|
// is expected to respond to the command appropriately instead of forwarding it.
|
||||||
@@ -2508,12 +2509,14 @@ struct C_SetBlockedSenders_BB_C6 : C_SetBlockedSenders_C6<28> {
|
|||||||
// commands in the comments and structure names.
|
// commands in the comments and structure names.
|
||||||
|
|
||||||
// CB: Broadcast command (Episode 3)
|
// CB: Broadcast command (Episode 3)
|
||||||
|
// Internal name: SndKansenPsoData
|
||||||
// Same as 60, but only send to Episode 3 clients.
|
// Same as 60, but only send to Episode 3 clients.
|
||||||
// This command is identical to C9, except that CB is not valid on Episode 3
|
// This command's format is identical to C9, except that CB is not valid on
|
||||||
// Trial Edition (whereas C9 is valid).
|
// Episode 3 Trial Edition (whereas C9 is valid).
|
||||||
// Unlike the 6x and C9 commands, subcommands sent with the CB command are
|
// Unlike the 6x and C9 commands, subcommands sent with the CB command are
|
||||||
// forwarded from spectator teams to the primary team. The client only uses this
|
// forwarded from spectator teams to the primary team. The client only uses this
|
||||||
// behavior for the 6xBE command (sound chat), and newserv enforces this rule.
|
// behavior for the 6xBE command (sound chat), and newserv enforces that no
|
||||||
|
// other subcommand can be sent via CB.
|
||||||
|
|
||||||
// CC (S->C): Confirm tournament entry (Episode 3)
|
// CC (S->C): Confirm tournament entry (Episode 3)
|
||||||
// This command is not valid on Episode 3 Trial Edition.
|
// This command is not valid on Episode 3 Trial Edition.
|
||||||
@@ -2529,7 +2532,7 @@ struct C_SetBlockedSenders_BB_C6 : C_SetBlockedSenders_C6<28> {
|
|||||||
struct S_ConfirmTournamentEntry_GC_Ep3_CC {
|
struct S_ConfirmTournamentEntry_GC_Ep3_CC {
|
||||||
ptext<char, 0x40> tournament_name;
|
ptext<char, 0x40> tournament_name;
|
||||||
le_uint16_t num_teams = 0;
|
le_uint16_t num_teams = 0;
|
||||||
le_uint16_t unknown_a1 = 0;
|
le_uint16_t players_per_team = 0;
|
||||||
le_uint16_t unknown_a2 = 0;
|
le_uint16_t unknown_a2 = 0;
|
||||||
le_uint16_t unknown_a3 = 0;
|
le_uint16_t unknown_a3 = 0;
|
||||||
ptext<char, 0x20> server_name;
|
ptext<char, 0x20> server_name;
|
||||||
@@ -5135,10 +5138,11 @@ struct G_CardBattleCommandHeader {
|
|||||||
} __packed__;
|
} __packed__;
|
||||||
|
|
||||||
// Unlike all other 6x subcommands, the 6xB3 subcommand is sent to the server in
|
// Unlike all other 6x subcommands, the 6xB3 subcommand is sent to the server in
|
||||||
// a CA command instead of a 6x, C9, or CB command. (For this reason, we refer
|
// a CA command instead of a 6x, C9, or CB command. (For this reason, we
|
||||||
// to 6xB3xZZ commands as CAxZZ commands as well.) The server is expected to
|
// generally refer to 6xB3xZZ commands as CAxZZ commands instead.) The server is
|
||||||
// reply to CA commands instead of forwarding them. The logic for doing so is
|
// expected to reply to CA commands with one or more 6xB4 subcommands instead of
|
||||||
// primarily implemented in Episode3/Server.cc and the surrounding classes.
|
// forwarding them. The logic for doing so is implemented in Episode3/Server.cc
|
||||||
|
// and the surrounding classes.
|
||||||
|
|
||||||
// The 6xB3 subcommand has a longer header than 6xB4 and 6xB5. This header is
|
// The 6xB3 subcommand has a longer header than 6xB4 and 6xB5. This header is
|
||||||
// common to all 6xB3x (CAx) subcommands.
|
// common to all 6xB3x (CAx) subcommands.
|
||||||
@@ -5157,8 +5161,8 @@ struct G_CardServerDataCommandHeader {
|
|||||||
|
|
||||||
// 6xB4: Unknown (XBOX; voice chat)
|
// 6xB4: Unknown (XBOX; voice chat)
|
||||||
|
|
||||||
// 6xB4: CARD battle server response (Episode 3) - see 6xB3 (above)
|
// 6xB4: CARD battle server response (Episode 3) - see 6xB3 above
|
||||||
// 6xB5: CARD battle client command (Episode 3) - see 6xB3 (above)
|
// 6xB5: CARD battle client command (Episode 3) - see 6xB3 above
|
||||||
|
|
||||||
// 6xB5: BB shop request (handled by the server)
|
// 6xB5: BB shop request (handled by the server)
|
||||||
|
|
||||||
|
|||||||
@@ -2298,6 +2298,7 @@ void send_ep3_confirm_tournament_entry(
|
|||||||
cmd.start_time = "Unknown";
|
cmd.start_time = "Unknown";
|
||||||
auto& teams = tourn->all_teams();
|
auto& teams = tourn->all_teams();
|
||||||
cmd.num_teams = min<size_t>(teams.size(), 0x20);
|
cmd.num_teams = min<size_t>(teams.size(), 0x20);
|
||||||
|
cmd.players_per_team = (tourn->get_flags() & Episode3::Tournament::Flag::IS_2V2) ? 2 : 1;
|
||||||
for (size_t z = 0; z < min<size_t>(teams.size(), 0x20); z++) {
|
for (size_t z = 0; z < min<size_t>(teams.size(), 0x20); z++) {
|
||||||
cmd.team_entries[z].win_count = teams[z]->num_rounds_cleared;
|
cmd.team_entries[z].win_count = teams[z]->num_rounds_cleared;
|
||||||
cmd.team_entries[z].is_active = teams[z]->is_active;
|
cmd.team_entries[z].is_active = teams[z]->is_active;
|
||||||
|
|||||||
Reference in New Issue
Block a user