| 905 | } |
| 906 | |
| 907 | void pilot::add_mission_data(tMissionData *mdata) { |
| 908 | if (!mdata) { |
| 909 | Int3(); |
| 910 | return; |
| 911 | } |
| 912 | |
| 913 | if (find_mission_data(mdata->mission_name) != -1) { |
| 914 | Int3(); |
| 915 | mprintf(0, "Mission already exists\n"); |
| 916 | return; |
| 917 | } |
| 918 | |
| 919 | mprintf(0, "Adding new mission data for (%s)\n", mdata->mission_name); |
| 920 | |
| 921 | tMissionData *new_data = (tMissionData *)mem_malloc((num_missions_flown + 1) * sizeof(tMissionData)); |
| 922 | if (!new_data) { |
| 923 | mprintf(0, "Out of memory\n"); |
| 924 | return; |
| 925 | } |
| 926 | |
| 927 | ASSERT(num_missions_flown >= 0); |
| 928 | |
| 929 | if (mission_data && num_missions_flown > 0) { |
| 930 | memcpy(new_data, mission_data, sizeof(tMissionData) * num_missions_flown); |
| 931 | mem_free(mission_data); |
| 932 | } |
| 933 | |
| 934 | mission_data = new_data; |
| 935 | |
| 936 | memcpy(&mission_data[num_missions_flown], mdata, sizeof(tMissionData)); |
| 937 | |
| 938 | num_missions_flown++; |
| 939 | } |
| 940 | void pilot::edit_mission_data(int index, tMissionData *mdata) { |
| 941 | if (index < 0 || index >= num_missions_flown) { |
| 942 | mprintf(0, "Invalid mission index\n"); |
no outgoing calls
no test coverage detected