fix bb player choice bug
This commit is contained in:
+2
-2
@@ -80,7 +80,7 @@ ClientConfigBB Client::export_config_bb() const {
|
|||||||
ClientConfigBB cc;
|
ClientConfigBB cc;
|
||||||
cc.cfg = this->export_config();
|
cc.cfg = this->export_config();
|
||||||
cc.bb_game_state = this->bb_game_state;
|
cc.bb_game_state = this->bb_game_state;
|
||||||
cc.bb_player_index = this->bb_player_index;
|
cc.bb_player_index = this->game_data.bb_player_index;
|
||||||
cc.unused.clear(0xFF);
|
cc.unused.clear(0xFF);
|
||||||
return cc;
|
return cc;
|
||||||
}
|
}
|
||||||
@@ -97,5 +97,5 @@ void Client::import_config(const ClientConfig& cc) {
|
|||||||
void Client::import_config(const ClientConfigBB& cc) {
|
void Client::import_config(const ClientConfigBB& cc) {
|
||||||
this->import_config(cc.cfg);
|
this->import_config(cc.cfg);
|
||||||
this->bb_game_state = cc.bb_game_state;
|
this->bb_game_state = cc.bb_game_state;
|
||||||
this->bb_player_index = cc.bb_player_index;
|
this->game_data.bb_player_index = cc.bb_player_index;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,6 @@ struct Client {
|
|||||||
// config can be up to 0x20 bytes; on BB it can be 0x28 bytes. We don't use
|
// config can be up to 0x20 bytes; on BB it can be 0x28 bytes. We don't use
|
||||||
// all of that space.
|
// all of that space.
|
||||||
uint8_t bb_game_state;
|
uint8_t bb_game_state;
|
||||||
uint8_t bb_player_index;
|
|
||||||
uint16_t flags;
|
uint16_t flags;
|
||||||
|
|
||||||
// Encryption
|
// Encryption
|
||||||
|
|||||||
@@ -270,7 +270,7 @@ void process_login_d_e_pc_gc(shared_ptr<ServerState> s, shared_ptr<Client> c,
|
|||||||
// to newserv before, so we should show the welcome message.
|
// to newserv before, so we should show the welcome message.
|
||||||
c->flags |= Client::Flag::AT_WELCOME_MESSAGE;
|
c->flags |= Client::Flag::AT_WELCOME_MESSAGE;
|
||||||
c->bb_game_state = ClientStateBB::INITIAL_LOGIN;
|
c->bb_game_state = ClientStateBB::INITIAL_LOGIN;
|
||||||
c->bb_player_index = 0;
|
c->game_data.bb_player_index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@@ -346,7 +346,7 @@ void process_login_bb(shared_ptr<ServerState> s, shared_ptr<Client> c,
|
|||||||
}
|
}
|
||||||
} catch (const invalid_argument&) {
|
} catch (const invalid_argument&) {
|
||||||
c->bb_game_state = ClientStateBB::INITIAL_LOGIN;
|
c->bb_game_state = ClientStateBB::INITIAL_LOGIN;
|
||||||
c->bb_player_index = 0;
|
c->game_data.bb_player_index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
send_client_init_bb(c, 0);
|
send_client_init_bb(c, 0);
|
||||||
@@ -1224,7 +1224,7 @@ void process_player_preview_request_bb(shared_ptr<ServerState>, shared_ptr<Clien
|
|||||||
const auto& cmd = check_size_t<C_PlayerPreviewRequest_BB_E3>(data);
|
const auto& cmd = check_size_t<C_PlayerPreviewRequest_BB_E3>(data);
|
||||||
|
|
||||||
if (c->bb_game_state == ClientStateBB::CHOOSE_PLAYER) {
|
if (c->bb_game_state == ClientStateBB::CHOOSE_PLAYER) {
|
||||||
c->bb_player_index = cmd.player_index;
|
c->game_data.bb_player_index = cmd.player_index;
|
||||||
c->bb_game_state++;
|
c->bb_game_state++;
|
||||||
send_client_init_bb(c, 0);
|
send_client_init_bb(c, 0);
|
||||||
send_approve_player_choice_bb(c);
|
send_approve_player_choice_bb(c);
|
||||||
@@ -1309,7 +1309,7 @@ void process_create_character_bb(shared_ptr<ServerState> s, shared_ptr<Client> c
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
c->bb_player_index = cmd.player_index;
|
c->game_data.bb_player_index = cmd.player_index;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
c->game_data.create_player(cmd.preview, s->level_table);
|
c->game_data.create_player(cmd.preview, s->level_table);
|
||||||
|
|||||||
+1
-1
@@ -435,7 +435,7 @@ void send_stream_file_chunk_bb(shared_ptr<Client> c, uint32_t chunk_index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void send_approve_player_choice_bb(shared_ptr<Client> c) {
|
void send_approve_player_choice_bb(shared_ptr<Client> c) {
|
||||||
S_ApprovePlayerChoice_BB_00E4 cmd = {c->bb_player_index, 1};
|
S_ApprovePlayerChoice_BB_00E4 cmd = {c->game_data.bb_player_index, 1};
|
||||||
send_command_t(c, 0x00E4, 0x00000000, cmd);
|
send_command_t(c, 0x00E4, 0x00000000, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user