| 1080 | int donedemosort(demo_s **a, demo_s **b) { return (*a)->timestamp - (*b)->timestamp; } |
| 1081 | |
| 1082 | void listdemos(int cn) |
| 1083 | { |
| 1084 | packetbuf p(MAXTRANS, ENET_PACKET_FLAG_RELIABLE); |
| 1085 | putint(p, SV_SENDDEMOLIST); |
| 1086 | vector<demo_s *> donedemos; |
| 1087 | loopi(MAXDEMOS) if(demos[i].sequence && demos[i].done) donedemos.add(demos + i); |
| 1088 | putint(p, donedemos.length()); |
| 1089 | donedemos.sort(donedemosort); |
| 1090 | loopv(donedemos) |
| 1091 | { |
| 1092 | demo_s &d = *donedemos[i]; |
| 1093 | putint(p, d.sequence); |
| 1094 | sendstring(d.info, p); |
| 1095 | putint(p, d.len); |
| 1096 | sendstring(d.mapname, p); |
| 1097 | putint(p, d.gmode); |
| 1098 | putint(p, d.timeplayed); |
| 1099 | putint(p, d.timeremain); |
| 1100 | putint(p, d.timestamp); |
| 1101 | } |
| 1102 | sendpacket(cn, 1, p.finalize()); |
| 1103 | } |
| 1104 | |
| 1105 | static void cleardemos(int n) |
| 1106 | { |