rendered paste body===================================================================--- src/client/cl_basemanagement.c (Revision 8765)+++ src/client/cl_basemanagement.c (Arbeitskopie)@@ -2824,9 +2824,15 @@ MSG_WritePos(sb, aircraft->pos); MSG_WriteShort(sb, aircraft->time); MSG_WriteShort(sb, aircraft->point);- MSG_WriteString(sb, aircraft->weapon_string);- MSG_WriteString(sb, aircraft->shield_string);- MSG_WriteString(sb, aircraft->item_string);++ /* save weapon slots */+ MSG_WriteShort(sb, TODO GET ITEM AMOUNT);+ for (l = 0; l < MAX_AIRCRAFTSLOT; l++) {+ if (aircraft->weapons[l].itemIdx >= 0)+ MSG_WriteString(sb, aircraftItems[aircraft->weapons[l].itemIdx].id);+ }+ /* TODO: The same for shield and items */+ for (l = 0; l < MAX_ACTIVETEAM; l++) MSG_WriteShort(sb, aircraft->teamIdxs[l]); MSG_WriteShort(sb, aircraft->numUpgrades);@@ -2994,9 +3000,16 @@ MSG_ReadPos(sb, aircraft->pos); aircraft->time = MSG_ReadShort(sb); aircraft->point = MSG_ReadShort(sb);- Q_strncpyz(aircraft->weapon_string, MSG_ReadString(sb), sizeof(aircraft->weapon_string));- Q_strncpyz(aircraft->shield_string, MSG_ReadString(sb), sizeof(aircraft->shield_string));- Q_strncpyz(aircraft->item_string, MSG_ReadString(sb), sizeof(aircraft->item_string));+ if (*(int*)data == 1) { /* >= 2.1.1 */+ MSG_ReadString(sb); /* old weapon string */+ MSG_ReadString(sb); /* old shield string */+ MSG_ReadString(sb); /* old item string */+ } else {+ amount = MSG_ReadShort(sb);+ for (l = 0; l < amount; l++) {+ /* TODO: fill the slot with the given item */+ }+ } for (l = 0; l < MAX_ACTIVETEAM; l++) aircraft->teamIdxs[l] = MSG_ReadShort(sb); aircraft->numUpgrades = MSG_ReadShort(sb);