From b4edcb5f272dc8df26d488b693f6cd6562c33cfe Mon Sep 17 00:00:00 2001 From: Allanis Date: Sun, 20 Jul 2014 21:26:48 +0100 Subject: [PATCH] [Fix] Make sure player can accept the active mission from C side code. --- src/land.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/land.c b/src/land.c index 3a725d1..4fe1391 100644 --- a/src/land.c +++ b/src/land.c @@ -1207,10 +1207,21 @@ static void misn_accept(unsigned int wid, char* str) { char* misn_name; Mission* misn; int pos; + int i; misn_name = toolkit_getList(wid, "lstMission"); - if(strcmp(misn_name, "No Missions")==0) return; + /* Make sure you have missions. */ + if(strcmp(misn_name, "No Missions")==0) + return; + + /* Make sure player can accept the mission. */ + for(i = 0; i < MISSION_MAX; i++) + if(player_missions[i].data == NULL) break; + if(i >= MISSION_MAX) { + dialogue_alert("You have too many active missions."); + return; + } if(dialogue_YesNo("Accept Mission", "Are you sure you want to accept this mission?")) {