1 | /* |
1 | /* |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
3 | * |
3 | * |
4 | * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
4 | * Copyright (©) 2005,2006,2007,2008 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
5 | * |
5 | * |
6 | * Deliantra is free software: you can redistribute it and/or modify |
6 | * Deliantra is free software: you can redistribute it and/or modify it under |
7 | * it under the terms of the GNU General Public License as published by |
7 | * the terms of the Affero GNU General Public License as published by the |
8 | * the Free Software Foundation, either version 3 of the License, or |
8 | * Free Software Foundation, either version 3 of the License, or (at your |
9 | * (at your option) any later version. |
9 | * option) any later version. |
10 | * |
10 | * |
11 | * This program is distributed in the hope that it will be useful, |
11 | * This program is distributed in the hope that it will be useful, |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. |
14 | * GNU General Public License for more details. |
15 | * |
15 | * |
16 | * You should have received a copy of the GNU General Public License |
16 | * You should have received a copy of the Affero GNU General Public License |
17 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | * and the GNU General Public License along with this program. If not, see |
|
|
18 | * <http://www.gnu.org/licenses/>. |
18 | * |
19 | * |
19 | * The authors can be reached via e-mail to <support@deliantra.net> |
20 | * The authors can be reached via e-mail to <support@deliantra.net> |
20 | */ |
21 | */ |
21 | |
22 | |
22 | /* alchemy.c */ |
23 | /* alchemy.c */ |
23 | int need_identify (const object *obj); |
24 | int need_identify (const object *obj); |
24 | int apply_shop_mat (object *shop_mat, object *op); |
25 | int apply_shop_mat (object *shop_mat, object *op); |
25 | const char *cost_string_from_value (sint64 cost, int approx); |
26 | const char *cost_string_from_value (sint64 cost, int approx); |
26 | void pay_player (object *pl, sint64 amount); |
27 | void pay_player (object *pl, sint64 amount); |
27 | sint64 pay_player_arch (object *pl, const char *arch, sint64 amount); |
28 | sint64 pay_player_arch (object *pl, const char *arch, sint64 amount); |
28 | void attempt_do_alchemy (object *caster, object *cauldron); |
29 | void attempt_do_alchemy (object *caster, object *cauldron, object *skill); |
29 | int content_recipe_value (object *op); |
30 | int content_recipe_value (object *op); |
30 | int numb_ob_inside (object *op); |
31 | int numb_ob_inside (object *op); |
31 | object *attempt_recipe (object *caster, object *cauldron, int ability, recipe *rp, int nbatches); |
32 | object *attempt_recipe (object *caster, object *cauldron, int ability, recipe *rp, int nbatches); |
32 | void adjust_product (object *item, int lvl, int yield); |
33 | void adjust_product (object *item, int lvl, int yield); |
33 | object *make_item_from_recipe (object *cauldron, recipe *rp); |
34 | object *make_item_from_recipe (object *cauldron, recipe *rp); |
… | |
… | |
67 | void apply_lighter (object *who, object *lighter); |
68 | void apply_lighter (object *who, object *lighter); |
68 | void scroll_failure (object *op, int failure, int power); |
69 | void scroll_failure (object *op, int failure, int power); |
69 | void apply_changes_to_player (object *pl, object *change); |
70 | void apply_changes_to_player (object *pl, object *change); |
70 | void apply_item_transformer (object *pl, object *transformer); |
71 | void apply_item_transformer (object *pl, object *transformer); |
71 | extern void handle_apply_yield (object *op); |
72 | extern void handle_apply_yield (object *op); |
|
|
73 | void apply_lamp (object *op, bool switch_on); |
|
|
74 | void get_animation_from_arch (object *op, arch_ptr a); |
|
|
75 | extern int convert_item (object *item, object *converter); |
72 | |
76 | |
73 | /* attack.c */ |
77 | /* attack.c */ |
74 | void cancellation (object *op); |
78 | void cancellation (object *op); |
75 | int did_make_save_item (object *op, int type, object *originator); |
79 | int did_make_save_item (object *op, int type, object *originator); |
76 | void save_throw_object (object *op, int type, object *originator); |
80 | void save_throw_object (object *op, int type, object *originator); |
… | |
… | |
94 | int is_aimed_missile (object *op); |
98 | int is_aimed_missile (object *op); |
95 | |
99 | |
96 | /* build_map.c */ |
100 | /* build_map.c */ |
97 | int can_build_over (struct mapdef *map, object *tmp, short x, short y); |
101 | int can_build_over (struct mapdef *map, object *tmp, short x, short y); |
98 | void remove_marking_runes (struct mapdef *map, short x, short y); |
102 | void remove_marking_runes (struct mapdef *map, short x, short y); |
99 | int find_unused_connected_value (struct mapdef *map); |
|
|
100 | int find_or_create_connection_for_map (object *pl, short x, short y, object *rune); |
|
|
101 | object *get_connection_rune (object *pl, short x, short y); |
103 | object *get_connection_rune (object *pl, short x, short y); |
102 | object *get_msg_book (object *pl, short x, short y); |
104 | object *get_msg_book (object *pl, short x, short y); |
103 | object *get_wall (struct mapdef *map, int x, int y); |
105 | object *get_wall (struct mapdef *map, int x, int y); |
104 | void fix_walls (maptile *map, int x, int y); |
106 | void fix_walls (maptile *map, int x, int y); |
105 | void fix_walls_around (maptile *map, int x, int y); |
107 | void fix_walls_around (maptile *map, int x, int y); |
… | |
… | |
275 | char *spool (char *bp, char *error); |
277 | char *spool (char *bp, char *error); |
276 | void check_score (object *op); |
278 | void check_score (object *op); |
277 | void display_high_score (object *op, int max, const char *match); |
279 | void display_high_score (object *op, int max, const char *match); |
278 | |
280 | |
279 | /* gods.c */ |
281 | /* gods.c */ |
280 | int lookup_god_by_name (const char *name); |
282 | int lookup_god_by_name (shstr_cmp name); |
281 | object *find_god (const char *name); |
283 | object *find_god (shstr_cmp name); |
282 | const char *determine_god (object *op); |
284 | shstr_tmp determine_god (object *op); |
283 | void pray_at_altar (object *pl, object *altar, object *skill); |
285 | void pray_at_altar (object *pl, object *altar, object *skill); |
284 | void become_follower (object *op, object *new_god); |
286 | void become_follower (object *op, object *new_god); |
285 | int worship_forbids_use (object *op, object *exp_obj, uint32 flag, const char *string); |
287 | int worship_forbids_use (object *op, object *exp_obj, uint32 flag, const char *string); |
286 | void stop_using_item (object *op, int type, int number); |
288 | void stop_using_item (object *op, int type, int number); |
287 | void update_priest_flag (object *god, object *exp_ob, uint32 flag); |
289 | void update_priest_flag (object *god, object *exp_ob, uint32 flag); |
288 | archetype *determine_holy_arch (object *god, const char *type); |
290 | archetype *determine_holy_arch (object *god, shstr_cmp type); |
289 | void god_intervention (object *op, object *god, object *skill); |
291 | void god_intervention (object *op, object *god, object *skill); |
290 | int god_examines_priest (object *op, object *god); |
292 | int god_examines_priest (object *op, object *god); |
291 | int god_examines_item (object *god, object *item); |
293 | int god_examines_item (object *god, object *item); |
292 | int get_god (object *priest); |
294 | int get_god (object *priest); |
293 | const char *get_god_for_race (const char *race); |
|
|
294 | int tailor_god_spell (object *spellop, object *caster); |
295 | int tailor_god_spell (object *spellop, object *caster); |
295 | |
296 | |
296 | /* init.c */ |
297 | /* init.c */ |
297 | void load_settings (void); |
298 | void load_settings (void); |
298 | void load_materials (void); |
299 | void load_materials (void); |
… | |
… | |
394 | object *fix_summon_pet (archetype *at, object *op, int dir, int is_golem); |
395 | object *fix_summon_pet (archetype *at, object *op, int dir, int is_golem); |
395 | void move_golem (object *op); |
396 | void move_golem (object *op); |
396 | void control_golem (object *op, int dir); |
397 | void control_golem (object *op, int dir); |
397 | int summon_golem (object *op, object *caster, int dir, object *spob); |
398 | int summon_golem (object *op, object *caster, int dir, object *spob); |
398 | object *choose_cult_monster (object *pl, object *god, int summon_level); |
399 | object *choose_cult_monster (object *pl, object *god, int summon_level); |
399 | int summon_object (object *op, object *caster, object *spell_ob, int dir, const char *stringarg); |
400 | int summon_object (object *op, object *caster, object *spell_ob, int dir, const char *spellparam); |
400 | int should_arena_attack (object *pet, object *owner, object *target); |
401 | int should_arena_attack (object *pet, object *owner, object *target); |
401 | |
402 | |
402 | /* player.c */ |
403 | /* player.c */ |
403 | player *find_player (const char *plname); |
404 | player *find_player (const char *plname); |
404 | player *find_player_partial_name (const char *plname); |
405 | player *find_player_partial_name (const char *plname); |
… | |
… | |
422 | int key_change_class (object *op, char key); |
423 | int key_change_class (object *op, char key); |
423 | int key_confirm_quit (object *op, char key); |
424 | int key_confirm_quit (object *op, char key); |
424 | void flee_player (object *op); |
425 | void flee_player (object *op); |
425 | int check_pick (object *op); |
426 | int check_pick (object *op); |
426 | object *find_arrow (object *op, const char *type); |
427 | object *find_arrow (object *op, const char *type); |
427 | object *find_better_arrow (object *op, object *target, const char *type, int *better); |
428 | object *find_better_arrow (object *op, object *target, shstr_cmp type, int *better); |
428 | object *pick_arrow_target (object *op, const char *type, int dir); |
429 | object *pick_arrow_target (object *op, shstr_cmp type, int dir); |
429 | int fire_bow (object *op, object *part, object *arrow, int dir, int wc_mod, sint16 sx, sint16 sy); |
430 | int fire_bow (object *op, object *part, object *arrow, int dir, int wc_mod, sint16 sx, sint16 sy); |
430 | int player_fire_bow (object *op, int dir); |
431 | int player_fire_bow (object *op, int dir); |
431 | void fire_misc_object (object *op, int dir); |
432 | void fire_misc_object (object *op, int dir); |
432 | bool fire (object *op, int dir); |
433 | bool fire (object *op, int dir); |
433 | object *find_key (object *pl, object *container, object *door); |
434 | object *find_key (object *pl, object *container, object *door); |
… | |
… | |
546 | void polymorph_living (object *op); |
547 | void polymorph_living (object *op); |
547 | void polymorph_melt (object *who, object *op); |
548 | void polymorph_melt (object *who, object *op); |
548 | void polymorph_item (object *who, object *op); |
549 | void polymorph_item (object *who, object *op); |
549 | void polymorph (object *op, object *who); |
550 | void polymorph (object *op, object *who); |
550 | int cast_polymorph (object *op, object *caster, object *spell_ob, int dir); |
551 | int cast_polymorph (object *op, object *caster, object *spell_ob, int dir); |
551 | int cast_create_missile (object *op, object *caster, object *spell, int dir, const char *stringarg); |
552 | int cast_create_missile (object *op, object *caster, object *spell, int dir, const char *spellparam); |
552 | int cast_create_food (object *op, object *caster, object *spell_ob, int dir, const char *stringarg); |
553 | int cast_create_food (object *op, object *caster, object *spell_ob, int dir, const char *spellparam); |
553 | int probe (object *op, object *caster, object *spell_ob, int dir); |
554 | int probe (object *op, object *caster, object *spell_ob, int dir); |
554 | int makes_invisible_to (object *pl, object *mon); |
555 | int makes_invisible_to (object *pl, object *mon); |
555 | int cast_invisible (object *op, object *caster, object *spell_ob); |
556 | int cast_invisible (object *op, object *caster, object *spell_ob); |
556 | int cast_earth_to_dust (object *op, object *caster, object *spell_ob); |
557 | int cast_earth_to_dust (object *op, object *caster, object *spell_ob); |
557 | void execute_word_of_recall (object *op); |
558 | void execute_word_of_recall (object *op); |
558 | int cast_word_of_recall (object *op, object *caster, object *spell_ob); |
559 | int cast_word_of_recall (object *op, object *caster, object *spell_ob); |
559 | int cast_wonder (object *op, object *caster, int dir, object *spell_ob); |
560 | int cast_wonder (object *op, object *caster, int dir, object *spell_ob); |
560 | int perceive_self (object *op); |
561 | int perceive_self (object *op); |
561 | int magic_wall (object *op, object *caster, int dir, object *spell_ob); |
562 | int magic_wall (object *op, object *caster, int dir, object *spell_ob); |
562 | int dimension_door (object *op, object *caster, object *spob, int dir); |
563 | int dimension_door (object *op, object *caster, object *spob, int dir, const char *spellparam); |
563 | int cast_heal (object *op, object *caster, object *spell, int dir); |
564 | int cast_heal (object *op, object *caster, object *spell, int dir); |
|
|
565 | int change_ability_duration (object *spell, object *caster); |
564 | int cast_change_ability (object *op, object *caster, object *spell_ob, int dir, int silent); |
566 | int cast_change_ability (object *op, object *caster, object *spell_ob, int dir, int silent); |
565 | int cast_bless (object *op, object *caster, object *spell_ob, int dir); |
567 | int cast_bless (object *op, object *caster, object *spell_ob, int dir); |
566 | int alchemy (object *op, object *caster, object *spell_ob); |
568 | int alchemy (object *op, object *caster, object *spell_ob); |
567 | int remove_curse (object *op, object *caster, object *spell); |
569 | int remove_curse (object *op, object *caster, object *spell); |
568 | int cast_identify (object *op, object *caster, object *spell); |
570 | int cast_identify (object *op, object *caster, object *spell); |
… | |
… | |
576 | void move_aura (object *aura); |
578 | void move_aura (object *aura); |
577 | void move_peacemaker (object *op); |
579 | void move_peacemaker (object *op); |
578 | int write_mark (object *op, object *spell, const char *msg); |
580 | int write_mark (object *op, object *spell, const char *msg); |
579 | |
581 | |
580 | /* spell_util.c */ |
582 | /* spell_util.c */ |
581 | object *find_random_spell_in_ob (object *ob, const char *skill); |
583 | object *find_random_spell_in_ob (object *ob, shstr_cmp skill = shstr_cmp ()); |
582 | void set_spell_skill (object *op, object *caster, object *spob, object *dest); |
584 | void set_spell_skill (object *op, object *caster, object *spob, object *dest); |
583 | void spell_effect (object *spob, int x, int y, maptile *map, object *originator); |
585 | void spell_effect (object *spob, int x, int y, maptile *map, object *originator); |
584 | int min_casting_level (object *caster, object *spell); |
586 | int min_casting_level (object *caster, object *spell); |
585 | int casting_level (object *caster, object *spell); |
587 | int casting_level (object *caster, object *spell); |
586 | sint16 SP_level_spellpoint_cost (object *caster, object *spell, int flags); |
588 | sint16 SP_level_spellpoint_cost (object *caster, object *spell, int flags); |
587 | int SP_level_dam_adjust (object *caster, object *spob); |
589 | int SP_level_dam_adjust (object *caster, object *spob); |
588 | int SP_level_duration_adjust (object *caster, object *spob); |
590 | int SP_level_duration_adjust (object *caster, object *spob); |
589 | int SP_level_range_adjust (object *caster, object *spob); |
591 | int SP_level_range_adjust (object *caster, object *spob); |
590 | object *check_spell_known (object *op, const char *name); |
592 | object *check_spell_known (object *op, shstr_cmp name); |
591 | object *lookup_spell_by_name (object *op, const char *spname); |
593 | object *lookup_spell_by_name (object *op, const char *spname); |
592 | int reflwall (maptile *m, int x, int y, object *sp_op); |
594 | int reflwall (maptile *m, int x, int y, object *sp_op); |
593 | int cast_create_obj (object *op, object *caster, object *new_op, int dir); |
595 | int cast_create_obj (object *op, object *caster, object *new_op, int dir); |
594 | int ok_to_put_more (maptile *m, sint16 x, sint16 y, object *op, int immune_stop); |
596 | int ok_to_put_more (maptile *m, sint16 x, sint16 y, object *op, int immune_stop); |
595 | int fire_arch_from_position (object *op, object *caster, sint16 x, sint16 y, int dir, object *spell); |
597 | int fire_arch_from_position (object *op, object *caster, sint16 x, sint16 y, int dir, object *spell); |
… | |
… | |
600 | void put_a_monster (object *op, const char *monstername); |
602 | void put_a_monster (object *op, const char *monstername); |
601 | int summon_hostile_monsters (object *op, int n, const char *monstername); |
603 | int summon_hostile_monsters (object *op, int n, const char *monstername); |
602 | void shuffle_attack (object *op, int change_face); |
604 | void shuffle_attack (object *op, int change_face); |
603 | void prayer_failure (object *op, int failure, int power); |
605 | void prayer_failure (object *op, int failure, int power); |
604 | void spell_failure (object *op, int failure, int power, object *skill); |
606 | void spell_failure (object *op, int failure, int power, object *skill); |
605 | int cast_party_spell (object *op, object *caster, int dir, object *spell_ob, char *stringarg); |
607 | int cast_party_spell (object *op, object *caster, int dir, object *spell_ob, char *spellparam); |
606 | int cast_spell (object *op, object *caster, int dir, object *spell_ob, char *stringarg); |
608 | int cast_spell (object *op, object *caster, int dir, object *spell_ob, char *spellparam); |
607 | void move_spell_effect (object *op); |
609 | void move_spell_effect (object *op); |
608 | void check_spell_effect (object *op); |
610 | void check_spell_effect (object *op); |
609 | void apply_spell_effect (object *spell, object *victim); |
611 | void apply_spell_effect (object *spell, object *victim); |
|
|
612 | void create_exploding_ball_at (object *victim, int level); |
610 | |
613 | |
611 | /* swamp.c */ |
614 | /* swamp.c */ |
612 | void walk_on_deep_swamp (object *op, object *victim); |
615 | void walk_on_deep_swamp (object *op, object *victim); |
613 | void move_deep_swamp (object *op); |
616 | void move_deep_swamp (object *op); |
614 | |
617 | |