Commit eb133fef authored by nanahira's avatar nanahira

add registry and add metadata

parent 8a838916
Pipeline #37736 failed with stages
in 7 minutes and 27 seconds
......@@ -232,6 +232,7 @@ public:
intptr_t pduel{};
wchar_t name[20]{};
wchar_t pass[20]{};
std::vector<byte> registry_dump;
};
}
......
......@@ -436,6 +436,27 @@ void SingleDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
set_card_reader(DataManager::CardReader);
set_message_handler(SingleDuel::MessageHandler);
pduel = create_duel(duel_seed);
if(!registry_dump.empty()) {
load_registry(pduel, registry_dump.data(), (int32_t)registry_dump.size());
}
set_registry_value(pduel, "duel_mode", match_mode ? "match" : "single");
if(match_mode) {
set_registry_value(pduel, "duel_count", std::to_string(duel_count).c_str());
}
set_registry_value(pduel, "start_lp", std::to_string(host_info.start_lp).c_str());
set_registry_value(pduel, "start_hand", std::to_string(host_info.start_hand).c_str());
set_registry_value(pduel, "draw_count", std::to_string(host_info.draw_count).c_str());
wchar_t player_name_buf[40];
char player_name_buf_u[40];
char player_key_buf[15];
for(int i = 0; i < 2; ++i) {
BufferIO::CopyCharArray(players[i]->name, player_name_buf);
BufferIO::EncodeUTF8(player_name_buf, player_name_buf_u);
std::snprintf(player_key_buf, sizeof(player_key_buf), "player_name_%d", i);
set_registry_value(pduel, player_key_buf, player_name_buf_u);
std::snprintf(player_key_buf, sizeof(player_key_buf), "player_type_%d", i);
set_registry_value(pduel, player_key_buf, std::to_string(players[i]->type).c_str());
}
set_player_info(pduel, 0, host_info.start_lp, host_info.start_hand, host_info.draw_count);
set_player_info(pduel, 1, host_info.start_lp, host_info.start_hand, host_info.draw_count);
preload_script(pduel, "./script/special.lua");
......@@ -1462,6 +1483,9 @@ void SingleDuel::EndDuel() {
NetServer::ReSendToPlayer(players[1]);
for(auto oit = observers.begin(); oit != observers.end(); ++oit)
NetServer::ReSendToPlayer(*oit);
registry_dump.resize(0x2000);
int len = dump_registry(pduel, registry_dump.data());
registry_dump.resize(len);
end_duel(pduel);
event_del(etimer);
pduel = 0;
......
......@@ -413,6 +413,24 @@ void TagDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
set_card_reader(DataManager::CardReader);
set_message_handler(TagDuel::MessageHandler);
pduel = create_duel(duel_seed);
if(!registry_dump.empty()) {
load_registry(pduel, registry_dump.data(), (int32_t)registry_dump.size());
}
set_registry_value(pduel, "duel_mode", "tag");
set_registry_value(pduel, "start_lp", std::to_string(host_info.start_lp).c_str());
set_registry_value(pduel, "start_hand", std::to_string(host_info.start_hand).c_str());
set_registry_value(pduel, "draw_count", std::to_string(host_info.draw_count).c_str());
wchar_t player_name_buf[40];
char player_name_buf_u[40];
char player_key_buf[15];
for(int i = 0; i < 2; ++i) {
BufferIO::CopyCharArray(players[i]->name, player_name_buf);
BufferIO::EncodeUTF8(player_name_buf, player_name_buf_u);
std::snprintf(player_key_buf, sizeof(player_key_buf), "player_name_%d", i);
set_registry_value(pduel, player_key_buf, player_name_buf_u);
std::snprintf(player_key_buf, sizeof(player_key_buf), "player_type_%d", i);
set_registry_value(pduel, player_key_buf, std::to_string(players[i]->type).c_str());
}
set_player_info(pduel, 0, host_info.start_lp, host_info.start_hand, host_info.draw_count);
set_player_info(pduel, 1, host_info.start_lp, host_info.start_hand, host_info.draw_count);
preload_script(pduel, "./script/special.lua");
......@@ -1569,6 +1587,9 @@ void TagDuel::EndDuel() {
NetServer::ReSendToPlayer(players[3]);
for(auto oit = observers.begin(); oit != observers.end(); ++oit)
NetServer::ReSendToPlayer(*oit);
registry_dump.resize(0x2000);
int len = dump_registry(pduel, registry_dump.data());
registry_dump.resize(len);
end_duel(pduel);
event_del(etimer);
pduel = 0;
......
Subproject commit ee1548f719cd4d371ae687fb623fac75bd8a64f4
Subproject commit 7e4dcb52699be7631d0abcc9617c7276bb3cc50d
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment