var goalsMap = json_decode(goalsData);
var goalsList = ds_map_find_value(goalsMap, "default");
global.num_goals = ds_list_size(goalsList);
global.goals = ds_grid_create(global.num_goals, 11);
for (var i=0; i<global.num_goals; i++) {
var data = ds_list_find_value(goalsList, i);
global.goals[# i, GL_NUM] = real(data[? "Num"]);
global.goals[# i, GL_TYPE] = real(data[? "Type"]);
global.goals[# i, GL_LVL] = real(data[? "Level"]);
global.goals[# i, GL_OBJ] = asset_get_index(data[? "Object"]);
global.goals[# i, GL_VAR] = data[? "Var"];
global.goals[# i, GL_MAX] = real(data[? "Max"]);
global.goals[# i, GL_DESC] = data[? "Desc"];
global.goals[# i, GL_REWARD_OBJ] = asset_get_index(data[? "Reward_Object"]);
global.goals[# i, GL_REWARD_VAR] = data[? "Reward_Var"];
global.goals[# i, GL_REWARD_ADJ] = real(data[? "Reward_Adj"]);
global.goals[# i, GL_REWARD_DESC] = data[? "Reward_Desc"];
}
for (var i=0; i<global.num_goals; i++) {
if (global.goals[# i, GL_LVL] == goal_type_lvl[global.goals[#i, GL_TYPE]]) {
var curr_count = variable_instance_get(global.goals[# i, GL_OBJ], global.goals[# i, GL_VAR]);
if (curr_count >= global.goals[# i, GL_MAX]) {
goal_type_lvl[global.goals[# i, GL_TYPE]]++;
var obj = global.goals[# i, GL_REWARD_OBJ];
for (var j=0; j<instance_number(obj); j++) {
var inst = instance_find(obj, j);
var curr_value = variable_instance_get(inst, global.goals[# i, GL_REWARD_VAR]);
variable_instance_set(inst, global.goals[# i, GL_REWARD_VAR], curr_value+global.goals[# i, GL_REWARD_ADJ]);
}
}
}
}