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

Comparing deliantra/server/server/time.C (file contents):
Revision 1.62 by elmex, Sat Aug 4 21:04:24 2007 UTC vs.
Revision 1.63 by root, Sat Aug 4 22:23:47 2007 UTC

96 96
97 if (GENERATE_SPEED (gen) && rndm (0, GENERATE_SPEED (gen) - 1)) 97 if (GENERATE_SPEED (gen) && rndm (0, GENERATE_SPEED (gen) - 1))
98 return; 98 return;
99 99
100 object *op; 100 object *op;
101 int i;
101 102
102 if (QUERY_FLAG (gen, FLAG_CONTENT_ON_GEN)) 103 if (QUERY_FLAG (gen, FLAG_CONTENT_ON_GEN))
103 { 104 {
104 // either copy one item from the inventory... 105 // either copy one item from the inventory...
105 if (!gen->inv) 106 if (!gen->inv)
109 int index = 0; 110 int index = 0;
110 for (object *tmp = gen->inv; tmp; tmp = tmp->below) 111 for (object *tmp = gen->inv; tmp; tmp = tmp->below)
111 if (!rndm (++index)) 112 if (!rndm (++index))
112 op = tmp; 113 op = tmp;
113 114
115 i = find_free_spot (op, gen->map, gen->x, gen->y, 1, 9);
116 if (i < 0)
117 return;
118
114 op = object_create_clone (op); 119 op = object_create_clone (op);
115 120
116 CLEAR_FLAG (op, FLAG_IS_A_TEMPLATE); 121 CLEAR_FLAG (op, FLAG_IS_A_TEMPLATE);
117 unflag_inv (op, FLAG_IS_A_TEMPLATE); 122 unflag_inv (op, FLAG_IS_A_TEMPLATE);
118 } 123 }
119 else if (gen->other_arch) 124 else if (gen->other_arch)
120 { 125 {
121 // ...or use other_arch 126 // ...or use other_arch
127 i = find_free_spot (gen->other_arch, gen->map, gen->x, gen->y, 1, 9);
128 if (i < 0)
129 return;
130
122 op = arch_to_object (gen->other_arch); 131 op = arch_to_object (gen->other_arch);
123 } 132 }
124 else 133 else
125 return; 134 return;
126 135
127 op->expand_tail (); 136 op->expand_tail ();
128 137
129 int i = find_free_spot (op, gen->map, gen->x, gen->y, 1, 9);
130 if (i >= 0)
131 {
132 if (insert_ob_in_map_at (op, gen->map, gen, 0, gen->x + freearr_x[i], gen->y + freearr_y[i])) 138 if (insert_ob_in_map_at (op, gen->map, gen, 0, gen->x + freearr_x[i], gen->y + freearr_y[i]))
133 { 139 {
134 if (rndm (0, 9)) 140 if (rndm (0, 9))
135 generate_artifact (op, gen->map->difficulty); 141 generate_artifact (op, gen->map->difficulty);
136 142
137 if (op->has_random_items ()) 143 if (op->has_random_items ())
138 create_treasure (op->randomitems, op, GT_APPLY, gen->map->difficulty); 144 create_treasure (op->randomitems, op, GT_APPLY, gen->map->difficulty);
139 145
140 return; 146 return;
141 }
142 } 147 }
143 148
144 op->destroy (); 149 op->destroy ();
145} 150}
146 151

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines