StringBuilder *MatchRecorder::export_str_player() { int flag = 0; // 什么也不做 /* if (_penalty_count > 0) // 点球大战计数器 { _reverse = 0; // 方向进攻方向 if (_penalty_count % 2 == 0) { flag = 1; // player_id 取反 } }*/ StringBuilder *str = new StringBuilder(40*1024); // 压缩前长度 MsgMatchPlayerRoundData msg;//= new MsgMatchRoundData(); msg.mid = 1; msg.player_count = RECORDER_PLAYER_COUNT; str->append((const char*) &msg, sizeof(msg) - sizeof(void*)); for (int i = 0; i < RECORDER_PLAYER_COUNT; ++i) { PlayerRoundInfo info; info.time_sacle_numbers = _players_frames[i].size(); info.pid = (*_players_frames[i].begin())->get_player_id(); info.cond = (*_players_frames[i].begin())->get_player_cond(); str->append((const char*) &info, sizeof(info) - sizeof(void*)); save_data(_players_frames[i].begin(), _players_frames[i].end(), str, _reverse, _is_half, flag); } ((MsgMatchPlayerRoundData*) str->get_buffer())->msg_size = str->len(); return str; }
StringBuilder *MatchRecorder::export_str_ball() { int string_len = 100; string_len += _ball_frames.size() * 20; StringBuilder *str = new StringBuilder(string_len); // 压缩前长度 MsgGameBallRoundData msg; msg.mid =1; msg.time_counts = _ball_frames.size(); str->append((const char*)&msg,sizeof(msg) - sizeof(void*)); save_data(_ball_frames.begin(), _ball_frames.end(), str, _reverse, _is_half, 0); ((MsgGameBallRoundData*)str->get_buffer())->msg_size = str->len(); return str; }