ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/quest.c
(Generate patch)

Comparing deliantra/server/common/quest.c (file contents):
Revision 1.1.1.1 by root, Fri Feb 3 07:11:39 2006 UTC vs.
Revision 1.1.1.2 by elmex, Wed Feb 22 18:01:22 2006 UTC

1/* 1/*
2 * static char *rcsid_quest_c = 2 * static char *rcsid_quest_c =
3 * "$Id: quest.c,v 1.1.1.1 2006/02/03 07:11:39 root Exp $"; 3 * "$Id: quest.c,v 1.1.1.2 2006/02/22 18:01:22 elmex Exp $";
4 */ 4 */
5 5
6/* 6/*
7 CrossFire, A Multiplayer game for X-windows 7 CrossFire, A Multiplayer game for X-windows
8 8
69 return 0; 69 return 0;
70 return 1; 70 return 1;
71 } 71 }
72#endif 72#endif
73 73
74int quest_is_quest_marker( object* marker, int task ) 74int quest_is_quest_marker( const object* marker, int task )
75 { 75 {
76 if ( marker->type != QUEST ) 76 if ( marker->type != QUEST )
77 return 0; 77 return 0;
78 if ( task && !TASK_NAME(marker) ) 78 if ( task && !TASK_NAME(marker) )
79 return 0; 79 return 0;
80 if ( !task && TASK_NAME(marker) ) 80 if ( !task && TASK_NAME(marker) )
81 return 0; 81 return 0;
82 return 1; 82 return 1;
83 } 83 }
84 84
85int quest_is_in_progress( object* marker, int task ) 85int quest_is_in_progress( const object* marker, int task )
86 { 86 {
87 if ( marker->subtype != QUEST_IN_PROGRESS ) 87 if ( marker->subtype != QUEST_IN_PROGRESS )
88 return 0; 88 return 0;
89 return 1; 89 return 1;
90 } 90 }
91 91
92int quest_is_completed( object* marker, int task ) 92int quest_is_completed( const object* marker, int task )
93 { 93 {
94 if ( marker->type != QUEST ) 94 if ( marker->type != QUEST )
95 return 0; 95 return 0;
96 if ( task && ( !marker->subtype != QUEST_DONE_TASK ) ) 96 if ( task && ( !marker->subtype != QUEST_DONE_TASK ) )
97 return 0; 97 return 0;
247 } 247 }
248 return NULL; 248 return NULL;
249 } 249 }
250#endif 250#endif
251 251
252const char* quest_get_name( object* marker ) 252const char* quest_get_name( const object* marker )
253 { 253 {
254 if ( marker->type != QUEST ) 254 if ( marker->type != QUEST )
255 return NULL; 255 return NULL;
256 if ( TASK_NAME(marker) ) 256 if ( TASK_NAME(marker) )
257 return TASK_NAME(marker); 257 return TASK_NAME(marker);
258 return QUEST_NAME(marker); 258 return QUEST_NAME(marker);
259 } 259 }
260 260
261object* quest_get_player_quest( object* pl, const char* name, const char* name_pl ) 261object* quest_get_player_quest( const object* pl, const char* name, const char* name_pl )
262{ 262{
263 object* quest; 263 object* quest;
264 for ( quest = pl->inv; quest; quest = quest->below ) 264 for ( quest = pl->inv; quest; quest = quest->below )
265 if ( quest->type == QUEST && 265 if ( quest->type == QUEST &&
266 QUEST_NAME(quest) == name && TASK_NAME(quest) == name_pl ) 266 QUEST_NAME(quest) == name && TASK_NAME(quest) == name_pl )
267 return quest; 267 return quest;
268 268
269 return NULL; 269 return NULL;
270} 270}
271 271
272object* quest_get_override( object* ob, object* pl ) 272object* quest_get_override( const object* ob, const object* pl )
273{ 273{
274 object *in_ob, *in_pl; 274 object *in_ob, *in_pl;
275 if ( !ob->inv ) 275 if ( !ob->inv )
276 return NULL; 276 return NULL;
277 for ( in_ob = ob->inv; in_ob; in_ob = in_ob->below ) 277 for ( in_ob = ob->inv; in_ob; in_ob = in_ob->below )
284 } 284 }
285 } 285 }
286 return NULL; 286 return NULL;
287} 287}
288 288
289const char* quest_get_override_slaying( object* ob, object* pl ) 289const char* quest_get_override_slaying( const object* ob, const object* pl )
290{ 290{
291 object* quest; 291 object* quest;
292 quest = quest_get_override( ob, pl ); 292 quest = quest_get_override( ob, pl );
293 if ( quest ) 293 if ( quest )
294 return quest->slaying; 294 return quest->slaying;
295 return ob->slaying; 295 return ob->slaying;
296} 296}
297 297
298const char* quest_get_override_msg( object* ob, object* pl ) 298const char* quest_get_override_msg( const object* ob, const object* pl )
299{ 299{
300 object* quest; 300 object* quest;
301 quest = quest_get_override( ob, pl ); 301 quest = quest_get_override( ob, pl );
302 if ( quest ) 302 if ( quest )
303 return quest->msg; 303 return quest->msg;
428#define QCT_QS_TD 5 428#define QCT_QS_TD 5
429#define QCT_QS_TSD 6 429#define QCT_QS_TSD 6
430#define QCT_QSD 7 430#define QCT_QSD 7
431#define QCT_QD 8 431#define QCT_QD 8
432 432
433int quest_is_override_compatible(object *marker, object* pl) 433int quest_is_override_compatible(const object *marker, const object* pl)
434{ 434{
435 object* test; 435 object* test;
436 if ( marker->type != QUEST || marker->subtype != QUEST_OVERRIDE ) 436 if ( marker->type != QUEST || marker->subtype != QUEST_OVERRIDE )
437 return 0; 437 return 0;
438 switch ( marker->stats.hp ) 438 switch ( marker->stats.hp )

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines