… | |
… | |
34 | #include <functional> |
34 | #include <functional> |
35 | |
35 | |
36 | player * |
36 | player * |
37 | find_player (const char *plname) |
37 | find_player (const char *plname) |
38 | { |
38 | { |
39 | player *pl; |
39 | for_all_players (pl) |
40 | |
|
|
41 | for (pl = first_player; pl; pl = pl->next) |
|
|
42 | if (pl->ob && !strcmp (query_name (pl->ob), plname)) |
40 | if (pl->ob && !strcmp (query_name (pl->ob), plname)) |
43 | return pl; |
41 | return pl; |
44 | |
42 | |
45 | return 0; |
43 | return 0; |
46 | } |
44 | } |
… | |
… | |
391 | |
389 | |
392 | object * |
390 | object * |
393 | get_nearest_player (object *mon) |
391 | get_nearest_player (object *mon) |
394 | { |
392 | { |
395 | object *op = NULL; |
393 | object *op = NULL; |
396 | player *pl = NULL; |
|
|
397 | objectlink *ol; |
394 | objectlink *ol; |
398 | unsigned lastdist; |
395 | unsigned lastdist; |
399 | rv_vector rv; |
396 | rv_vector rv; |
400 | |
397 | |
401 | for (ol = first_friendly_object, lastdist = 1000; ol != NULL; ol = ol->next) |
398 | for (ol = first_friendly_object, lastdist = 1000; ol != NULL; ol = ol->next) |
… | |
… | |
433 | { |
430 | { |
434 | op = ol->ob; |
431 | op = ol->ob; |
435 | lastdist = rv.distance; |
432 | lastdist = rv.distance; |
436 | } |
433 | } |
437 | } |
434 | } |
438 | for (pl = first_player; pl != NULL; pl = pl->next) |
435 | |
439 | { |
436 | for_all_players (pl) |
440 | if (can_detect_enemy (mon, pl->ob, &rv)) |
437 | if (can_detect_enemy (mon, pl->ob, &rv)) |
441 | { |
|
|
442 | |
|
|
443 | if (lastdist > rv.distance) |
438 | if (lastdist > rv.distance) |
444 | { |
439 | { |
445 | op = pl->ob; |
440 | op = pl->ob; |
446 | lastdist = rv.distance; |
441 | lastdist = rv.distance; |
447 | } |
442 | } |
448 | } |
443 | |
449 | } |
|
|
450 | #if 0 |
444 | #if 0 |
451 | LOG (llevDebug, "get_nearest_player() finds player: %s\n", op ? &op->name : "(null)"); |
445 | LOG (llevDebug, "get_nearest_player() finds player: %s\n", op ? &op->name : "(null)"); |
452 | #endif |
446 | #endif |
453 | return op; |
447 | return op; |
454 | } |
448 | } |
… | |
… | |
3070 | */ |
3064 | */ |
3071 | |
3065 | |
3072 | void |
3066 | void |
3073 | fix_weight (void) |
3067 | fix_weight (void) |
3074 | { |
3068 | { |
3075 | for (player *pl = first_player; pl; pl = pl->next) |
3069 | for_all_players (pl) |
3076 | { |
3070 | { |
3077 | int old = pl->ob->carrying, sum = sum_weight (pl->ob); |
3071 | int old = pl->ob->carrying, sum = sum_weight (pl->ob); |
3078 | |
3072 | |
3079 | if (old == sum) |
3073 | if (old == sum) |
3080 | continue; |
3074 | continue; |
… | |
… | |
3084 | } |
3078 | } |
3085 | |
3079 | |
3086 | void |
3080 | void |
3087 | fix_luck (void) |
3081 | fix_luck (void) |
3088 | { |
3082 | { |
3089 | for (player *pl = first_player; pl; pl = pl->next) |
3083 | for_all_players (pl) |
3090 | if (!pl->ob->contr->ns->state) |
3084 | if (!pl->ob->contr->ns->state) |
3091 | pl->ob->change_luck (0); |
3085 | pl->ob->change_luck (0); |
3092 | } |
3086 | } |
3093 | |
3087 | |
3094 | /* cast_dust() - handles op throwing objects of type 'DUST'. |
3088 | /* cast_dust() - handles op throwing objects of type 'DUST'. |