… | |
… | |
735 | return freedir[i]; |
735 | return freedir[i]; |
736 | } |
736 | } |
737 | return -1; /* flag for "keep going the way you were" */ |
737 | return -1; /* flag for "keep going the way you were" */ |
738 | } |
738 | } |
739 | |
739 | |
740 | |
|
|
741 | |
|
|
742 | /* put_a_monster: puts a monster named monstername near by |
740 | /* put_a_monster: puts a monster named monstername near by |
743 | * op. This creates the treasures for the monsters, and |
741 | * op. This creates the treasures for the monsters, and |
744 | * also deals with multipart monsters properly. |
742 | * also deals with multipart monsters properly. |
745 | */ |
743 | */ |
746 | |
|
|
747 | void |
744 | void |
748 | put_a_monster (object *op, const char *monstername) |
745 | put_a_monster (object *op, const char *monstername) |
749 | { |
746 | { |
750 | object *tmp, *head = NULL, *prev = NULL; |
747 | object *tmp, *head = NULL, *prev = NULL; |
751 | archetype *at; |
748 | archetype *at; |
… | |
… | |
824 | { |
821 | { |
825 | int attacktype; |
822 | int attacktype; |
826 | int face; |
823 | int face; |
827 | } ATTACKS[22] = |
824 | } ATTACKS[22] = |
828 | { |
825 | { |
829 | { |
|
|
830 | AT_PHYSICAL, 0}, |
826 | { AT_PHYSICAL, 0}, |
831 | { |
|
|
832 | AT_PHYSICAL, 0}, /*face = explosion */ |
827 | { AT_PHYSICAL, 0}, /*face = explosion */ |
833 | { |
|
|
834 | AT_PHYSICAL, 0}, |
828 | { AT_PHYSICAL, 0}, |
835 | { |
|
|
836 | AT_MAGIC, 1}, |
829 | { AT_MAGIC, 1}, |
837 | { |
|
|
838 | AT_MAGIC, 1}, /* face = last-burnout */ |
830 | { AT_MAGIC, 1}, /* face = last-burnout */ |
839 | { |
|
|
840 | AT_MAGIC, 1}, |
831 | { AT_MAGIC, 1}, |
841 | { |
|
|
842 | AT_FIRE, 2}, |
832 | { AT_FIRE, 2}, |
843 | { |
|
|
844 | AT_FIRE, 2}, /* face = fire.... */ |
833 | { AT_FIRE, 2}, /* face = fire.... */ |
845 | { |
|
|
846 | AT_FIRE, 2}, |
834 | { AT_FIRE, 2}, |
847 | { |
|
|
848 | AT_ELECTRICITY, 3}, |
835 | { AT_ELECTRICITY, 3}, |
849 | { |
|
|
850 | AT_ELECTRICITY, 3}, /* ball_lightning */ |
836 | { AT_ELECTRICITY, 3}, /* ball_lightning */ |
851 | { |
|
|
852 | AT_ELECTRICITY, 3}, |
837 | { AT_ELECTRICITY, 3}, |
853 | { |
|
|
854 | AT_COLD, 4}, |
838 | { AT_COLD, 4}, |
855 | { |
|
|
856 | AT_COLD, 4}, /* face=icestorm */ |
839 | { AT_COLD, 4}, /* face=icestorm */ |
857 | { |
|
|
858 | AT_COLD, 4}, |
840 | { AT_COLD, 4}, |
859 | { |
|
|
860 | AT_CONFUSION, 5}, |
841 | { AT_CONFUSION, 5}, |
861 | { |
|
|
862 | AT_POISON, 7}, |
842 | { AT_POISON, 7}, |
863 | { |
|
|
864 | AT_POISON, 7}, /* face = acid sphere. generator */ |
843 | { AT_POISON, 7}, /* face = acid sphere. generator */ |
865 | { |
|
|
866 | AT_POISON, 7}, /* poisoncloud face */ |
844 | { AT_POISON, 7}, /* poisoncloud face */ |
867 | { |
|
|
868 | AT_SLOW, 8}, |
845 | { AT_SLOW, 8}, |
869 | { |
|
|
870 | AT_PARALYZE, 9}, |
846 | { AT_PARALYZE, 9}, |
871 | { |
|
|
872 | AT_FEAR, 10}}; |
847 | { AT_FEAR, 10}, |
873 | |
848 | }; |
874 | |
|
|
875 | |
849 | |
876 | /* shuffle_attack: peterm |
850 | /* shuffle_attack: peterm |
877 | * This routine shuffles the attack of op to one of the |
851 | * This routine shuffles the attack of op to one of the |
878 | * ones in the list. It does this at random. It also |
852 | * ones in the list. It does this at random. It also |
879 | * chooses a face appropriate to the attack that is |
853 | * chooses a face appropriate to the attack that is |