Go to the documentation of this file.
34 (*existing) = (*update);
43 if (!
quest->quest_is_system)
75 while (condition != NULL) {
76 auto next_condition = condition->
next;
78 condition = next_condition;
85 auto next_step = step->
next;
105 int condition_parsed = 0;
110 char namedquest[500];
111 namedquest[0] =
'\0';
112 if (sscanf(buffer,
"%s %d-%d", namedquest, &condition->
minstep, &condition->
maxstep) != 3) {
113 if (sscanf(buffer,
"%s <=%d", namedquest, &condition->
maxstep) == 2) {
115 condition_parsed = 1;
116 }
else if (sscanf(buffer,
"%s %d", namedquest, &condition->
minstep) == 2) {
118 condition_parsed = 1;
119 }
else if (strstr(buffer,
"finished")) {
120 if (sscanf(buffer,
"%s finished", namedquest) == 1) {
122 condition_parsed = 1;
126 condition_parsed = 1;
128 if (condition_parsed)
131 return condition_parsed;
#define FREE_AND_CLEAR_STR_IF(xyz)
sstring add_string(const char *str)
quest_step_definition * quest_create_step(void)
void quest_write_condition(char *buf, size_t len, const quest_condition *cond)
void quest_clear(quest_definition *quest)
void free_string(sstring str)
struct quest_step_definition * next
std::map< std::string, quest_definition * > m_assets
void quest_destroy_steps(quest_step_definition *step)
void fatal(enum fatal_error err)
virtual void replace(quest_definition *existing, quest_definition *update)
void quest_destroy_condition(quest_condition *condition)
virtual quest_definition * create(const std::string &name)
virtual void added(quest_definition *quest)
virtual void destroy(quest_definition *item)
quest_condition * conditions
void quest_destroy(quest_definition *quest)
void quest_destroy_step(quest_step_definition *step)
struct quest_condition * next
quest_definition * quest_create(const char *name)
int quest_condition_from_string(quest_condition *condition, const char *buffer)
quest_condition * quest_create_condition(void)