Follow-up Comment #2, patch #1446 (project freeciv): 1 & 2) I have already thought about a such solution for numerous structures of Freeciv. However, this is quite problematic. Most ruleset types for example need a translation support that need a gettext() pointer, which cannot be used in a packet structure.
The delta code actually has some disadvantages that could be solved with lot of works. Actually, it doesn't send the packet structure through the network. It checks all values computed in it and send field per field and ignores changed fields. So, probably the packet structure could be avoided for sending. We could use accessors instead (like inline functions to read a field of a structure). In receiving side, it is quite worse. For example, a client receiving a packet_city_info that only 1 field changed and was actually received, checks for all fields to make updates (in client/packhand.c). This make the client quite slow, especially with unit moves. A similar solution could be done, dropping the packet concept. common/packets_gen.c could call a function for each changed field that would probably save lot of time. This is of course not a part of this item, unfortunately... _______________________________________________________ Reply to this item at: <http://gna.org/patch/?1446> _______________________________________________ Message posté via/par Gna! http://gna.org/ _______________________________________________ Freeciv-dev mailing list Freecivfirstname.lastname@example.org https://mail.gna.org/listinfo/freeciv-dev