diff --git a/src/misn_lua.c b/src/misn_lua.c index b54180e..e631c70 100644 --- a/src/misn_lua.c +++ b/src/misn_lua.c @@ -486,6 +486,7 @@ static int misn_finish(lua_State* L) { if(lua_isboolean(L, 1)) b = lua_toboolean(L, 1); else { lua_pushstring(L, "Mission Done"); + misn_delete = 1; lua_error(L); /* THERE IS NO RETURN! */ return 0; } diff --git a/src/mission.c b/src/mission.c index 40e4f24..e88a6f7 100644 --- a/src/mission.c +++ b/src/mission.c @@ -386,8 +386,10 @@ void mission_cleanup(Mission* misn) { misn->sys_marker = NULL; } if(misn->cargo != NULL) { - for(i = 0; i < misn->ncargo; i++) /* Must unlink all the cargo. */ + for(i = 0; i < misn->ncargo; i++) { /* Must unlink all the cargo. */ + pilot_rmMissionCargo(player, misn->cargo[i]); mission_unlinkCargo(misn, misn->cargo[i]); + } free(misn->cargo); misn->cargo = NULL; misn->ncargo = 0;