Crossfire Server, Trunk  1.75.0
quest.h
Go to the documentation of this file.
1 /*
2  * Crossfire -- cooperative multi-player graphical RPG and adventure game
3  *
4  * Copyright (c) 2021 the Crossfire Development Team
5  *
6  * Crossfire is free software and comes with ABSOLUTELY NO WARRANTY. You are
7  * welcome to redistribute it under certain conditions. For details, please
8  * see COPYING and LICENSE.
9  *
10  * The authors can be reached via e-mail at <crossfire@metalforge.org>.
11  */
12 
13 #ifndef QUEST_H
14 #define QUEST_H
15 
16 #include "global.h"
17 #include <vector>
18 
21  sstring quest_code = nullptr;
22  int minstep = 0;
24  int maxstep = 0;
26 };
27 
30  int step = 0;
33  std::vector<quest_condition *> conditions;
34 };
35 
38  sstring quest_code = nullptr;
39  sstring quest_title = nullptr;
41  sstring quest_comment = nullptr;
42  int quest_restart = 0;
43  const Face *face = nullptr;
44  uint32_t client_code = 0;
45  bool quest_is_system = false;
46  std::vector<quest_step_definition *> steps;
47  struct quest_definition *parent = nullptr;
48 };
49 
50 typedef void(*quest_op)(const quest_definition *, void *);
51 
52 void quest_for_each(quest_op op, void *user);
53 
59 
65 
66 quest_definition *quest_create(const char *name);
69 void quest_clear(quest_definition *quest);
70 void quest_destroy(quest_definition *quest);
71 
84 int quest_condition_from_string(quest_condition *condition, const char *buffer);
85 
92 void quest_write_condition(char *buf, size_t len, const quest_condition *condition);
93 
94 #endif /* QUEST_H */
Face
New face structure - this enforces the notion that data is face by face only - you can not change the...
Definition: face.h:14
quest_destroy_condition
void quest_destroy_condition(quest_condition *condition)
Definition: Quests.cpp:69
global.h
quest_for_each
void quest_for_each(quest_op op, void *user)
Iterate over all quests.
Definition: assets.cpp:539
quest_condition::quest_code
sstring quest_code
The quest that triggers the condition.
Definition: quest.h:21
quest_condition::maxstep
int maxstep
The latest step that triggers the condition, to match, the stages must be between minstep and maxstep...
Definition: quest.h:24
quest_op
void(* quest_op)(const quest_definition *, void *)
Definition: quest.h:50
quest_create_condition
quest_condition * quest_create_condition(void)
Allocate a quest_condition, will call fatal() if out of memory.
Definition: Quests.cpp:56
quest_definition::quest_description
sstring quest_description
Quest longer description.
Definition: quest.h:40
quest_destroy
void quest_destroy(quest_definition *quest)
Definition: Quests.cpp:95
quest_step_definition::step
int step
Step identifier.
Definition: quest.h:30
quest_condition_from_string
int quest_condition_from_string(quest_condition *condition, const char *buffer)
Parse a single step condition.
Definition: Quests.cpp:100
quest_definition::quest_is_system
bool quest_is_system
If set then the quest isn't counted or listed.
Definition: quest.h:45
buf
StringBuffer * buf
Definition: readable.cpp:1565
quest_step_definition
One step of a quest.
Definition: quest.h:29
name
Plugin animator file specs[Config] name
Definition: animfiles.txt:4
quest_definition::quest_title
sstring quest_title
Quest title for player.
Definition: quest.h:39
quest_definition::quest_comment
sstring quest_comment
Quest comment, not visible to players.
Definition: quest.h:41
quest_step_definition::is_completion_step
int is_completion_step
Whether this step completes the quest (1) or not (0)
Definition: quest.h:32
quest_clear
void quest_clear(quest_definition *quest)
Definition: Quests.cpp:83
quest_definition::face
const Face * face
Face associated with this quest.
Definition: quest.h:43
quest_definition::quest_code
sstring quest_code
Quest internal code.
Definition: quest.h:38
quest_definition::parent
struct quest_definition * parent
Parent for this quest, NULL if it is a 'top-level' quest.
Definition: quest.h:47
step
How to Install a Crossfire Server on you must install a python script engine on your computer Python is the default script engine of Crossfire You can find the python engine you have only to install them The VisualC Crossfire settings are for but you habe then to change the pathes in the VC settings Go in Settings C and Settings Link and change the optional include and libs path to the new python installation path o step
Definition: INSTALL_WIN32.txt:20
quest_definition::client_code
uint32_t client_code
The code used to communicate with the client, merely a unique index.
Definition: quest.h:44
quest_condition::minstep
int minstep
The earliest step in the quest that triggers the condition, -1 means finished, 0 means not started.
Definition: quest.h:22
quest_condition
One condition to automatically move to a quest step.
Definition: quest.h:20
sstring
const typedef char * sstring
Definition: sstring.h:2
quest_create_step
quest_step_definition * quest_create_step(void)
Allocate a quest_step_definition, will call fatal() if out of memory.
Definition: Quests.cpp:49
quest_definition
Definition of an in-game quest.
Definition: quest.h:37
buffer
if you malloc the data for the buffer
Definition: protocol.txt:2106
quest_destroy_step
void quest_destroy_step(quest_step_definition *step)
Definition: Quests.cpp:74
quest_write_condition
void quest_write_condition(char *buf, size_t len, const quest_condition *condition)
Write a step condition to a buffer.
Definition: Quests.cpp:130
quest_create
quest_definition * quest_create(const char *name)
Definition: Quests.cpp:63
quest_step_definition::conditions
std::vector< quest_condition * > conditions
The conditions that must be satisfied to trigger the step.
Definition: quest.h:33
quest_step_definition::step_description
sstring step_description
Step description to show player.
Definition: quest.h:31
quest_definition::quest_restart
int quest_restart
If non zero, can be restarted.
Definition: quest.h:42
quest_definition::steps
std::vector< quest_step_definition * > steps
Quest steps.
Definition: quest.h:46