| 2936 | int lastSentReportID = -1; |
| 2937 | |
| 2938 | static command_result GetReports(color_ostream & stream, const EmptyMessage * in, RemoteFortressReader::Status * out) |
| 2939 | { |
| 2940 | //First find the last report we sent, so it doesn't get resent. |
| 2941 | int lastSentIndex = -1; |
| 2942 | for (int i = world->status.reports.size() - 1; i >= 0; i--) |
| 2943 | { |
| 2944 | auto local_rep = world->status.reports[i]; |
| 2945 | if (local_rep->id <= lastSentReportID) |
| 2946 | { |
| 2947 | lastSentIndex = i; |
| 2948 | break; |
| 2949 | } |
| 2950 | } |
| 2951 | for (size_t i = lastSentIndex + 1; i < world->status.reports.size(); i++) |
| 2952 | { |
| 2953 | auto local_rep = world->status.reports[i]; |
| 2954 | if (!local_rep) |
| 2955 | continue; |
| 2956 | auto send_rep = out->add_reports(); |
| 2957 | send_rep->set_type(local_rep->type); |
| 2958 | send_rep->set_text(DF2UTF(local_rep->text)); |
| 2959 | ConvertDfColor(local_rep->color | (local_rep->bright ? 8 : 0), send_rep->mutable_color()); |
| 2960 | send_rep->set_duration(local_rep->duration); |
| 2961 | send_rep->set_continuation(local_rep->flags.bits.continuation); |
| 2962 | send_rep->set_unconscious(local_rep->flags.bits.unconscious); |
| 2963 | send_rep->set_announcement(local_rep->flags.bits.announcement); |
| 2964 | send_rep->set_repeat_count(local_rep->repeat_count); |
| 2965 | ConvertDFCoord(local_rep->pos, send_rep->mutable_pos()); |
| 2966 | send_rep->set_id(local_rep->id); |
| 2967 | send_rep->set_year(local_rep->year); |
| 2968 | send_rep->set_time(local_rep->time); |
| 2969 | lastSentReportID = local_rep->id; |
| 2970 | } |
| 2971 | return CR_OK; |
| 2972 | } |
| 2973 | |
| 2974 | static command_result GetLanguage(color_ostream & stream, const EmptyMessage * in, RemoteFortressReader::Language * out) |
| 2975 | { |
nothing calls this directly
no test coverage detected