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

Comparing deliantra/server/common/arch.C (file contents):
Revision 1.92 by root, Thu Nov 5 15:43:21 2009 UTC vs.
Revision 1.95 by root, Fri Nov 6 13:03:34 2009 UTC

52static std::vector< std::pair<arch_ptr *, shstr> > postponed_arch_ref; 52static std::vector< std::pair<arch_ptr *, shstr> > postponed_arch_ref;
53// the vector of loaded but not yet committed archetypes 53// the vector of loaded but not yet committed archetypes
54static std::vector<archetype *> postponed_arch; 54static std::vector<archetype *> postponed_arch;
55 55
56//+GPL 56//+GPL
57
58/*
59 * Creates an object. This function is called by get_archetype()
60 * if it fails to find the appropriate archetype.
61 * Thus get_archetype() will be guaranteed to always return
62 * an object, and never NULL.
63 */
64static object *
65create_singularity (const char *name)
66{
67 LOG (llevError | logBacktrace, "FATAL: creating singularity for '%s'.\n", name);
68
69 if (!strcmp (name, "bug"))
70 abort ();
71
72 object *op = archetype::get (shstr_bug);
73 op->name = op->name_pl = format ("bug, please report (missing archetype %s)", name);
74
75 return op;
76}
57 77
58/** 78/**
59 * GROS - This function retrieves an archetype given the name that appears 79 * GROS - This function retrieves an archetype given the name that appears
60 * during the game (for example, "writing pen" instead of "stylus"). 80 * during the game (for example, "writing pen" instead of "stylus").
61 * It does not use the hashtable system, but browse the whole archlist each time. 81 * It does not use the hashtable system, but browse the whole archlist each time.
548} 568}
549 569
550//+GPL 570//+GPL
551 571
552/* 572/*
553 * Creates an object. This function is called by get_archetype()
554 * if it fails to find the appropriate archetype.
555 * Thus get_archetype() will be guaranteed to always return
556 * an object, and never NULL.
557 */
558object *
559create_singularity (const char *name)
560{
561 LOG (llevError | logBacktrace, "FATAL: creating singularity for '%s'.\n", name);
562
563 if (!strcmp (name, "bug"))
564 abort ();
565
566 object *op = archetype::get (shstr_bug);
567 op->name = op->name_pl = format ("bug, please report (missing archetype %s)", name);
568
569 return op;
570}
571
572/*
573 * Finds which archetype matches the given name, and returns a new 573 * Finds which archetype matches the given name, and returns a new
574 * object containing a copy of the archetype. 574 * object containing a copy of the archetype.
575 */ 575 */
576object * 576object *
577get_archetype (const char *name) 577get_archetype (const char *name)
592 592
593/* 593/*
594 * Returns the first archetype using the given type. 594 * Returns the first archetype using the given type.
595 * Used in treasure-generation. 595 * Used in treasure-generation.
596 */ 596 */
597archetype * 597static archetype *
598type_to_archetype (int type) 598type_to_archetype (int type)
599{ 599{
600 for_all_archetypes (at) 600 for_all_archetypes (at)
601 if (at->type == type && at->head_ () != at) 601 if (at->type == type && at->head_ () != at)
602 return at; 602 return at;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines