Mercurial > hg > early-roguelike
comparison xrogue/rip.c @ 225:4f6e056438eb
Merge the GCC5 and build fix branches.
author | John "Elwin" Edwards |
---|---|
date | Wed, 02 Mar 2016 21:28:34 -0500 |
parents | f54901b9c39b |
children | b49d8b963df3 |
comparison
equal
deleted
inserted
replaced
224:4d0f53998e8a | 225:4f6e056438eb |
---|---|
18 | 18 |
19 #define REALLIFE 1 /* Print out machine and logname */ | 19 #define REALLIFE 1 /* Print out machine and logname */ |
20 #define EDITSCORE 2 /* Edit the current score file */ | 20 #define EDITSCORE 2 /* Edit the current score file */ |
21 #define ADDSCORE 3 /* Add a new score */ | 21 #define ADDSCORE 3 /* Add a new score */ |
22 | 22 |
23 #include <stdlib.h> | |
23 #include <curses.h> | 24 #include <curses.h> |
24 #include <time.h> | 25 #include <time.h> |
25 #include <signal.h> | 26 #include <signal.h> |
26 #include <ctype.h> | 27 #include <ctype.h> |
27 #include <string.h> | 28 #include <string.h> |
52 " *| * * * |*", | 53 " *| * * * |*", |
53 " _________)|//\\\\///\\///\\//\\//\\/|(_________", | 54 " _________)|//\\\\///\\///\\//\\//\\/|(_________", |
54 NULL | 55 NULL |
55 }; | 56 }; |
56 | 57 |
57 char *killname(); | 58 int rs_read_scorefile(FILE *savef, struct sc_ent *entries, int count); |
59 void rs_write_scorefile(FILE *savef, struct sc_ent *entries, int count); | |
60 | |
61 char *killname(short monst); | |
62 void showpack(char *howso); | |
63 int update(struct sc_ent top_ten[], unsigned long amount, short quest, | |
64 char *whoami, short flags, short level, short monst, short ctype, | |
65 char *system, char *login); | |
58 | 66 |
59 extern FILE *scorefi, *logfile; | 67 extern FILE *scorefi, *logfile; |
60 | 68 |
61 /*UNUSED*/ | 69 /*UNUSED*/ |
62 void | 70 void |
63 byebye(sig) | 71 byebye(int sig) |
64 int sig; | |
65 { | 72 { |
66 NOOP(sig); | 73 NOOP(sig); |
67 exit_game(EXIT_ENDWIN); | 74 exit_game(EXIT_ENDWIN); |
68 } | 75 } |
69 | 76 |
71 /* | 78 /* |
72 * death: | 79 * death: |
73 * Do something really fun when he dies | 80 * Do something really fun when he dies |
74 */ | 81 */ |
75 | 82 |
76 death(monst) | 83 void |
77 register short monst; | 84 death(short monst) |
78 { | 85 { |
79 register char **dp = rip, *killer; | 86 register char **dp = rip, *killer; |
80 register struct tm *lt; | 87 register struct tm *lt; |
81 time_t date; | 88 time_t date; |
82 char buf[LINELEN]; | 89 char buf[LINELEN]; |
100 score(pstats.s_exp, KILLED, monst); | 107 score(pstats.s_exp, KILLED, monst); |
101 exit_game(EXIT_ENDWIN); | 108 exit_game(EXIT_ENDWIN); |
102 } | 109 } |
103 | 110 |
104 char * | 111 char * |
105 killname(monst) | 112 killname(short monst) |
106 register short monst; | |
107 { | 113 { |
108 static char mons_name[LINELEN/2]; | 114 static char mons_name[LINELEN/2]; |
109 int i; | 115 int i; |
110 | 116 |
111 if (monst > NUMMONST) return("a strange monster"); | 117 if (monst > NUMMONST) return("a strange monster"); |
185 /* | 191 /* |
186 * score -- figure score and post it. | 192 * score -- figure score and post it. |
187 */ | 193 */ |
188 | 194 |
189 /* VARARGS2 */ | 195 /* VARARGS2 */ |
190 score(amount, flags, monst) | 196 void |
191 unsigned long amount; | 197 score(unsigned long amount, int flags, short monst) |
192 int flags; | |
193 short monst; | |
194 { | 198 { |
195 struct sc_ent top_ten[NUMSCORE]; | 199 struct sc_ent top_ten[NUMSCORE]; |
196 register struct sc_ent *scp; | 200 register struct sc_ent *scp; |
197 register int i; | 201 register int i; |
198 register struct sc_ent *sc2; | 202 register struct sc_ent *sc2; |
572 /* | 576 /* |
573 * showpack: | 577 * showpack: |
574 * Display the contents of the hero's pack | 578 * Display the contents of the hero's pack |
575 */ | 579 */ |
576 | 580 |
577 showpack(howso) | 581 void |
578 char *howso; | 582 showpack(char *howso) |
579 { | 583 { |
580 reg char *iname; | 584 reg char *iname; |
581 reg int cnt, packnum; | 585 reg int cnt, packnum; |
582 reg struct linked_list *item; | 586 reg struct linked_list *item; |
583 reg struct object *obj; | 587 reg struct object *obj; |
602 } | 606 } |
603 mvprintw(cnt + 1,0,"--- %ld Gold Pieces ---",purse); | 607 mvprintw(cnt + 1,0,"--- %ld Gold Pieces ---",purse); |
604 refresh(); | 608 refresh(); |
605 } | 609 } |
606 | 610 |
607 total_winner() | 611 void |
612 total_winner(void) | |
608 { | 613 { |
609 register struct linked_list *item; | 614 register struct linked_list *item; |
610 register struct object *obj; | 615 register struct object *obj; |
611 register long worth; | 616 register long worth; |
612 register char c; | 617 register char c; |
663 exit_game(EXIT_ENDWIN); | 668 exit_game(EXIT_ENDWIN); |
664 } | 669 } |
665 | 670 |
666 | 671 |
667 void | 672 void |
668 delete_score(top_ten, idx) | 673 delete_score(struct sc_ent top_ten[NUMSCORE], int idx) |
669 struct sc_ent top_ten[NUMSCORE]; | |
670 int idx; | |
671 { | 674 { |
672 for(;idx < NUMSCORE-1;idx++) | 675 for(;idx < NUMSCORE-1;idx++) |
673 top_ten[idx] = top_ten[idx+1]; | 676 top_ten[idx] = top_ten[idx+1]; |
674 | 677 |
675 top_ten[NUMSCORE-1].sc_score = 0L; | 678 top_ten[NUMSCORE-1].sc_score = 0L; |
676 } | 679 } |
677 | 680 |
678 int | 681 int |
679 insert_score(top_ten, sc) | 682 insert_score(struct sc_ent top_ten[NUMSCORE], struct sc_ent *sc) |
680 struct sc_ent top_ten[NUMSCORE]; | |
681 struct sc_ent *sc; | |
682 { | 683 { |
683 int i,j; | 684 int i,j; |
684 | 685 |
685 if (top_ten[NUMSCORE-1].sc_score > 0) | 686 if (top_ten[NUMSCORE-1].sc_score > 0) |
686 return(-1); /* no room */ | 687 return(-1); /* no room */ |
697 return(-1); | 698 return(-1); |
698 } | 699 } |
699 | 700 |
700 /* PCS = player-class-system (used to determines uniqueness of player) */ | 701 /* PCS = player-class-system (used to determines uniqueness of player) */ |
701 | 702 |
702 int | 703 bool |
703 is_pcs_match(sc1,sc2) | 704 is_pcs_match(struct sc_ent *sc1, struct sc_ent *sc2) |
704 struct sc_ent *sc1; | |
705 struct sc_ent *sc2; | |
706 { | 705 { |
707 return( (strcmp(sc1->sc_name,sc2->sc_name) == 0) && | 706 return( (strcmp(sc1->sc_name,sc2->sc_name) == 0) && |
708 (sc1->sc_ctype == sc2->sc_ctype) && | 707 (sc1->sc_ctype == sc2->sc_ctype) && |
709 (strcmp(sc1->sc_system, sc2->sc_system)==0) ); | 708 (strcmp(sc1->sc_system, sc2->sc_system)==0) ); |
710 } | 709 } |
711 | 710 |
712 int | 711 int |
713 count_pcs_matches(top_ten,sc,lowest) | 712 count_pcs_matches(struct sc_ent top_ten[NUMSCORE], struct sc_ent *sc, |
714 struct sc_ent top_ten[NUMSCORE]; | 713 int *lowest) |
715 struct sc_ent *sc; | |
716 int *lowest; | |
717 { | 714 { |
718 int i, matches = 0; | 715 int i, matches = 0; |
719 | 716 |
720 *lowest = -1; | 717 *lowest = -1; |
721 | 718 |
727 } | 724 } |
728 return(matches); | 725 return(matches); |
729 } | 726 } |
730 | 727 |
731 int | 728 int |
732 find_most_pcs_matches(top_ten,sc,num,idx) | 729 find_most_pcs_matches(struct sc_ent top_ten[NUMSCORE], struct sc_ent *sc, |
733 struct sc_ent top_ten[NUMSCORE]; | 730 int *num, int *idx) |
734 struct sc_ent *sc; | |
735 int *num, *idx; | |
736 { | 731 { |
737 int i, matches, max_match=0, max_match_idx=-1, lowest; | 732 int i, matches, max_match=0, max_match_idx=-1, lowest; |
738 | 733 |
739 for(i = NUMSCORE-1; i > 0; i--) { | 734 for(i = NUMSCORE-1; i > 0; i--) { |
740 matches = count_pcs_matches(top_ten,&top_ten[i],&lowest); | 735 matches = count_pcs_matches(top_ten,&top_ten[i],&lowest); |
759 return(0); | 754 return(0); |
760 } | 755 } |
761 | 756 |
762 | 757 |
763 int | 758 int |
764 add_score(top_ten,sc) | 759 add_score(struct sc_ent top_ten[NUMSCORE], struct sc_ent *sc) |
765 struct sc_ent top_ten[NUMSCORE]; | |
766 struct sc_ent *sc; | |
767 { | 760 { |
768 int idx, count; | 761 int idx, count; |
769 | 762 |
770 if (insert_score(top_ten,sc) == -1) { | 763 if (insert_score(top_ten,sc) == -1) { |
771 /* Simple insert if space available in table */ | 764 /* Simple insert if space available in table */ |
795 insert_score(top_ten,sc); | 788 insert_score(top_ten,sc); |
796 } | 789 } |
797 } | 790 } |
798 } | 791 } |
799 | 792 |
800 update(top_ten, amount, quest, whoami, flags, level, monst, ctype, system, login) | 793 int |
801 struct sc_ent top_ten[]; | 794 update(struct sc_ent top_ten[], unsigned long amount, short quest, char *whoami, |
802 unsigned long amount; | 795 short flags, short level, short monst, short ctype, char *system, |
803 short quest, flags, level, monst, ctype; | 796 char *login) |
804 char *whoami, *system, *login; | |
805 { | 797 { |
806 struct sc_ent sc; | 798 struct sc_ent sc; |
807 | 799 |
808 sc.sc_score = amount; | 800 sc.sc_score = amount; |
809 sc.sc_quest = quest; | 801 sc.sc_quest = quest; |