handle GC_NTE 6x7C properly
This commit is contained in:
@@ -3294,7 +3294,8 @@ static void on_challenge_update_records(shared_ptr<Client> c, uint8_t command, u
|
|||||||
auto p = c->character(true, false);
|
auto p = c->character(true, false);
|
||||||
Version c_version = c->version();
|
Version c_version = c->version();
|
||||||
switch (c_version) {
|
switch (c_version) {
|
||||||
case Version::DC_V2: {
|
case Version::DC_V2:
|
||||||
|
case Version::GC_NTE: {
|
||||||
const auto& cmd = check_size_t<G_SetChallengeRecords_DC_6x7C>(data, size);
|
const auto& cmd = check_size_t<G_SetChallengeRecords_DC_6x7C>(data, size);
|
||||||
p->challenge_records = cmd.records;
|
p->challenge_records = cmd.records;
|
||||||
break;
|
break;
|
||||||
@@ -3315,9 +3316,6 @@ static void on_challenge_update_records(shared_ptr<Client> c, uint8_t command, u
|
|||||||
p->challenge_records = cmd.records;
|
p->challenge_records = cmd.records;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Version::GC_NTE:
|
|
||||||
// TODO: DOes GC NTE ever send this command?
|
|
||||||
throw runtime_error("format is unknown for this game version");
|
|
||||||
default:
|
default:
|
||||||
throw runtime_error("game version cannot send 6x7C");
|
throw runtime_error("game version cannot send 6x7C");
|
||||||
}
|
}
|
||||||
@@ -3333,7 +3331,7 @@ static void on_challenge_update_records(shared_ptr<Client> c, uint8_t command, u
|
|||||||
if ((lc_version == c_version) || (is_v3(lc_version) && is_v3(c_version))) {
|
if ((lc_version == c_version) || (is_v3(lc_version) && is_v3(c_version))) {
|
||||||
data_to_send = data;
|
data_to_send = data;
|
||||||
size_to_send = size;
|
size_to_send = size;
|
||||||
} else if (lc->version() == Version::DC_V2) {
|
} else if ((lc->version() == Version::DC_V2) || (lc->version() == Version::GC_NTE)) {
|
||||||
if (dc_data.empty()) {
|
if (dc_data.empty()) {
|
||||||
dc_data.resize(sizeof(G_SetChallengeRecords_DC_6x7C));
|
dc_data.resize(sizeof(G_SetChallengeRecords_DC_6x7C));
|
||||||
auto& dc_cmd = check_size_t<G_SetChallengeRecords_DC_6x7C>(dc_data);
|
auto& dc_cmd = check_size_t<G_SetChallengeRecords_DC_6x7C>(dc_data);
|
||||||
|
|||||||
Reference in New Issue
Block a user