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

Comparing deliantra/server/server/move.C (file contents):
Revision 1.26 by root, Tue Aug 26 02:35:05 2008 UTC vs.
Revision 1.28 by root, Sat Dec 27 02:31:19 2008 UTC

224 for (i = -5; i < 6; i++) 224 for (i = -5; i < 6; i++)
225 for (j = -5; j < 6; j++) 225 for (j = -5; j < 6; j++)
226 { 226 {
227 if (i == 0 && j == 0) 227 if (i == 0 && j == 0)
228 continue; 228 continue;
229
229 /* Perhaps this should be extended to support tiled maps */ 230 /* Perhaps this should be extended to support tiled maps */
230 if (OUT_OF_REAL_MAP (teleporter->map, teleporter->x + i, teleporter->y + j)) 231 if (OUT_OF_REAL_MAP (teleporter->map, teleporter->x + i, teleporter->y + j))
231 continue; 232 continue;
233
232 other_teleporter = GET_MAP_OB (teleporter->map, teleporter->x + i, teleporter->y + j); 234 other_teleporter = GET_MAP_OB (teleporter->map, teleporter->x + i, teleporter->y + j);
233 235
234 while (other_teleporter) 236 while (other_teleporter)
235 { 237 {
236 if (other_teleporter->type == tele_type) 238 if (other_teleporter->type == tele_type)
237 break; 239 break;
238 other_teleporter = other_teleporter->above; 240 other_teleporter = other_teleporter->above;
239 } 241 }
242
240 if (other_teleporter && !(RANDOM () % ++nrofalt)) 243 if (other_teleporter && !rndm (++nrofalt))
241 altern = other_teleporter; 244 altern = other_teleporter;
242 } 245 }
243 246
244 if (!nrofalt) 247 if (!nrofalt)
245 { 248 {
284 } 287 }
285 288
286 user->remove (); 289 user->remove ();
287 290
288 /* Update location for the object */ 291 /* Update location for the object */
289 for (tmp = user; tmp != NULL; tmp = tmp->more) 292 for (tmp = user; tmp; tmp = tmp->more)
290 { 293 {
291 tmp->x = other_teleporter->x + freearr_x[k] + (tmp->arch == NULL ? 0 : tmp->arch->x); 294 tmp->x = other_teleporter->x + freearr_x[k] + (tmp->arch ? tmp->arch->x : 0);
292 tmp->y = other_teleporter->y + freearr_y[k] + (tmp->arch == NULL ? 0 : tmp->arch->y); 295 tmp->y = other_teleporter->y + freearr_y[k] + (tmp->arch ? tmp->arch->y : 0);
293 } 296 }
297
294 tmp = insert_ob_in_map (user, other_teleporter->map, NULL, 0); 298 tmp = insert_ob_in_map (user, other_teleporter->map, NULL, 0);
295 return (tmp == NULL); 299 return !tmp;
296} 300}
297 301
298void 302void
299recursive_roll (object *op, int dir, object *pusher) 303recursive_roll (object *op, int dir, object *pusher)
300{ 304{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines