Mercurial > hg > early-roguelike
comparison arogue5/things.c @ 225:4f6e056438eb
Merge the GCC5 and build fix branches.
| author | John "Elwin" Edwards |
|---|---|
| date | Wed, 02 Mar 2016 21:28:34 -0500 |
| parents | 56e748983fa8 |
| children |
comparison
equal
deleted
inserted
replaced
| 224:4d0f53998e8a | 225:4f6e056438eb |
|---|---|
| 16 #include "curses.h" | 16 #include "curses.h" |
| 17 #include <ctype.h> | 17 #include <ctype.h> |
| 18 #include <string.h> | 18 #include <string.h> |
| 19 #include "rogue.h" | 19 #include "rogue.h" |
| 20 | 20 |
| 21 int extras(void); | |
| 22 | |
| 21 /* | 23 /* |
| 22 * print out the number of charges on a stick | 24 * print out the number of charges on a stick |
| 23 */ | 25 */ |
| 24 char * | 26 char * |
| 25 charge_str(obj) | 27 charge_str(struct object *obj) |
| 26 register struct object *obj; | |
| 27 { | 28 { |
| 28 static char buf[20]; | 29 static char buf[20]; |
| 29 | 30 |
| 30 if (!(obj->o_flags & ISKNOW)) | 31 if (!(obj->o_flags & ISKNOW)) |
| 31 buf[0] = '\0'; | 32 buf[0] = '\0'; |
| 39 * inv_name: | 40 * inv_name: |
| 40 * return the name of something as it would appear in an | 41 * return the name of something as it would appear in an |
| 41 * inventory. | 42 * inventory. |
| 42 */ | 43 */ |
| 43 char * | 44 char * |
| 44 inv_name(obj, drop) | 45 inv_name(struct object *obj, bool drop) |
| 45 register struct object *obj; | |
| 46 bool drop; | |
| 47 { | 46 { |
| 48 register char *pb; | 47 register char *pb; |
| 49 | 48 |
| 50 pb = prbuf; | 49 pb = prbuf; |
| 51 pb[0] = '\0'; | 50 pb[0] = '\0'; |
| 294 /* | 293 /* |
| 295 * weap_name: | 294 * weap_name: |
| 296 * Return the name of a weapon. | 295 * Return the name of a weapon. |
| 297 */ | 296 */ |
| 298 char * | 297 char * |
| 299 weap_name(obj) | 298 weap_name(struct object *obj) |
| 300 register struct object *obj; | |
| 301 { | 299 { |
| 302 switch (obj->o_type) { | 300 switch (obj->o_type) { |
| 303 case WEAPON: | 301 case WEAPON: |
| 304 return(weaps[obj->o_which].w_name); | 302 return(weaps[obj->o_which].w_name); |
| 305 when RELIC: | 303 when RELIC: |
| 323 | 321 |
| 324 /* | 322 /* |
| 325 * drop: | 323 * drop: |
| 326 * put something down | 324 * put something down |
| 327 */ | 325 */ |
| 328 drop(item) | 326 bool |
| 329 struct linked_list *item; | 327 drop(struct linked_list *item) |
| 330 { | 328 { |
| 331 register char ch = 0; | 329 register char ch = 0; |
| 332 register struct linked_list *obj, *nobj; | 330 register struct linked_list *obj, *nobj; |
| 333 register struct object *op; | 331 register struct object *op; |
| 334 | 332 |
| 411 } | 409 } |
| 412 | 410 |
| 413 /* | 411 /* |
| 414 * do special checks for dropping or unweilding|unwearing|unringing | 412 * do special checks for dropping or unweilding|unwearing|unringing |
| 415 */ | 413 */ |
| 416 dropcheck(op) | 414 bool |
| 417 register struct object *op; | 415 dropcheck(struct object *op) |
| 418 { | 416 { |
| 419 int save_max; | 417 int save_max; |
| 420 | 418 |
| 421 if (op == NULL) | 419 if (op == NULL) |
| 422 return TRUE; | 420 return TRUE; |
| 512 | 510 |
| 513 /* | 511 /* |
| 514 * return a new thing | 512 * return a new thing |
| 515 */ | 513 */ |
| 516 struct linked_list * | 514 struct linked_list * |
| 517 new_thing(thing_type) | 515 new_thing(int thing_type) |
| 518 int thing_type; | |
| 519 { | 516 { |
| 520 register struct linked_list *item; | 517 register struct linked_list *item; |
| 521 register struct object *cur; | 518 register struct object *cur; |
| 522 register int j, k; | 519 register int j, k; |
| 523 register int blesschance, cursechance; | 520 register int blesschance, cursechance; |
| 708 | 705 |
| 709 /* | 706 /* |
| 710 * provide a new item tailored to specification | 707 * provide a new item tailored to specification |
| 711 */ | 708 */ |
| 712 struct linked_list * | 709 struct linked_list * |
| 713 spec_item(type, which, hit, damage) | 710 spec_item(int type, int which, int hit, int damage) |
| 714 int type, which, hit, damage; | |
| 715 { | 711 { |
| 716 register struct linked_list *item; | 712 register struct linked_list *item; |
| 717 register struct object *obj; | 713 register struct object *obj; |
| 718 | 714 |
| 719 item = new_item(sizeof *obj); | 715 item = new_item(sizeof *obj); |
| 785 } | 781 } |
| 786 | 782 |
| 787 /* | 783 /* |
| 788 * pick an item out of a list of nitems possible magic items | 784 * pick an item out of a list of nitems possible magic items |
| 789 */ | 785 */ |
| 790 pick_one(magic, nitems) | 786 int |
| 791 register struct magic_item *magic; | 787 pick_one(struct magic_item *magic, int nitems) |
| 792 int nitems; | |
| 793 { | 788 { |
| 794 register struct magic_item *end; | 789 register struct magic_item *end; |
| 795 register int i; | 790 register int i; |
| 796 register struct magic_item *start; | 791 register struct magic_item *start; |
| 797 | 792 |
| 819 /* blesscurse returns whether, according to the flag, the object is | 814 /* blesscurse returns whether, according to the flag, the object is |
| 820 * blessed, cursed, or neither | 815 * blessed, cursed, or neither |
| 821 */ | 816 */ |
| 822 | 817 |
| 823 char * | 818 char * |
| 824 blesscurse(flags) | 819 blesscurse(int flags) |
| 825 int flags; | |
| 826 { | 820 { |
| 827 if (flags & ISKNOW) { | 821 if (flags & ISKNOW) { |
| 828 if (flags & ISCURSED) return("cursed "); | 822 if (flags & ISCURSED) return("cursed "); |
| 829 if (flags & ISBLESSED) return("blessed "); | 823 if (flags & ISBLESSED) return("blessed "); |
| 830 return("normal "); | 824 return("normal "); |
| 834 | 828 |
| 835 /* | 829 /* |
| 836 * extras: | 830 * extras: |
| 837 * Return the number of extra items to be created | 831 * Return the number of extra items to be created |
| 838 */ | 832 */ |
| 839 extras() | 833 int |
| 834 extras(void) | |
| 840 { | 835 { |
| 841 reg int i; | 836 reg int i; |
| 842 | 837 |
| 843 i = rnd(100); | 838 i = rnd(100); |
| 844 if (i < 4) /* 4% for 2 more */ | 839 if (i < 4) /* 4% for 2 more */ |
