Mercurial > hg > early-roguelike
comparison srogue/rgdata.c @ 36:2128c7dc8a40
Import Super-Rogue 9.0 from the Roguelike Restoration Project (r1490)
| author | elwin |
|---|---|
| date | Thu, 25 Nov 2010 12:21:41 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 35:05018c63a721 | 36:2128c7dc8a40 |
|---|---|
| 1 /* | |
| 2 * Super-Rogue | |
| 3 * Copyright (C) 1984 Robert D. Kindelberger | |
| 4 * All rights reserved. | |
| 5 * | |
| 6 * See the file LICENSE.TXT for full copyright and licensing information. | |
| 7 */ | |
| 8 | |
| 9 #include "global.c" | |
| 10 | |
| 11 main(argc,argv) | |
| 12 char **argv; | |
| 13 int argc; | |
| 14 { | |
| 15 char *ptr; | |
| 16 int i, j, k; | |
| 17 struct magic_item *mi; | |
| 18 struct init_weps *wp; | |
| 19 struct init_armor *ar; | |
| 20 struct monster *mo; | |
| 21 FILE *fo; | |
| 22 | |
| 23 /* | |
| 24 * write to desired output file | |
| 25 */ | |
| 26 if (argc > 1) { | |
| 27 fo = fopen(argv[1], "w"); | |
| 28 if (fo == NULL) { | |
| 29 printf("%s: %s not writable\n",argv[0],argv[1]); | |
| 30 exit(1); | |
| 31 } | |
| 32 } | |
| 33 else | |
| 34 fo = stdout; | |
| 35 | |
| 36 /* | |
| 37 * print total chances for armor, weapons, food, scrolls, etc | |
| 38 */ | |
| 39 fprintf(fo,"\n\n\n\n\n\n"); | |
| 40 fprintf(fo,"\t ITEM GENERAL INFO\n\n\n"); | |
| 41 fprintf(fo,"NAME\t\tCHANCE\t\tWEIGHT\n\n"); | |
| 42 for (mi = &things[0]; mi < &things[NUMTHINGS]; mi++) { | |
| 43 fprintf(fo,"%s\t\t",mi->mi_name); | |
| 44 i = mi->mi_prob / 10; | |
| 45 j = mi->mi_prob % 10; | |
| 46 fprintf(fo,"%2d.%1d %%\t\t",i,j); | |
| 47 i = mi->mi_wght / 10; | |
| 48 j = mi->mi_wght % 10; | |
| 49 if (i == 0 && j == 0) | |
| 50 fprintf(fo,"%3s\n","*"); | |
| 51 else | |
| 52 fprintf(fo,"%3d.%1d lbs\n",i,j); | |
| 53 } | |
| 54 fprintf(fo,"\n\n\n\n\n\n\nNOTES - * means that weight depends on which one of that item type\n"); | |
| 55 fprintf(fo," - All items weigh 20%% more when cursed\n"); | |
| 56 | |
| 57 /* | |
| 58 * print stuff about potions | |
| 59 */ | |
| 60 fprintf(fo,"\n\n\n\n\n\n"); | |
| 61 fprintf(fo,"\t\t POTION INFO\n\n\n"); | |
| 62 fprintf(fo,"NAME\t\t\t\tCHANCE\t\tWORTH\n\n"); | |
| 63 for (mi = &p_magic[0]; mi < &p_magic[MAXPOTIONS]; mi++) { | |
| 64 fprintf(fo,"%s\t",mi->mi_name); | |
| 65 k = strlen(mi->mi_name); | |
| 66 if (k < 8) | |
| 67 ptr = "\t\t\t"; | |
| 68 else if (k >= 16) | |
| 69 ptr = "\t"; | |
| 70 else | |
| 71 ptr = "\t\t"; | |
| 72 fprintf(fo,"%s", ptr); | |
| 73 i = mi->mi_prob / 10; | |
| 74 j = mi->mi_prob % 10; | |
| 75 fprintf(fo,"%2d.%1d %%\t\t",i,j); | |
| 76 fprintf(fo,"%3d\n",mi->mi_worth); | |
| 77 } | |
| 78 fprintf(fo,"\n\n\n\n\nNOTE - All potions weigh 0.5 lbs\n"); | |
| 79 | |
| 80 | |
| 81 /* | |
| 82 * print stuff about scrolls | |
| 83 */ | |
| 84 fprintf(fo,"\n\n\n\n\n\n"); | |
| 85 fprintf(fo,"\t\t SCROLL INFO\n\n\n"); | |
| 86 fprintf(fo,"NAME\t\t\t\tCHANCE\t\tWORTH\n\n"); | |
| 87 for (mi = &s_magic[0]; mi < &s_magic[MAXSCROLLS]; mi++) { | |
| 88 fprintf(fo,"%s\t",mi->mi_name); | |
| 89 k = strlen(mi->mi_name); | |
| 90 if (k < 8) | |
| 91 ptr = "\t\t\t"; | |
| 92 else if (k >= 16) | |
| 93 ptr = "\t"; | |
| 94 else | |
| 95 ptr = "\t\t"; | |
| 96 fprintf(fo,"%s", ptr); | |
| 97 i = mi->mi_prob / 10; | |
| 98 j = mi->mi_prob % 10; | |
| 99 fprintf(fo,"%2d.%1d %%\t\t",i,j); | |
| 100 fprintf(fo,"%3d\n",mi->mi_worth); | |
| 101 } | |
| 102 fprintf(fo,"\n\n\n\n\nNOTE - All scrolls weigh 3.0 lbs\n"); | |
| 103 | |
| 104 | |
| 105 /* | |
| 106 * print stuff about rings | |
| 107 */ | |
| 108 fprintf(fo,"\n\n\n\n\n\n"); | |
| 109 fprintf(fo,"\t\t RING INFO\n\n\n"); | |
| 110 fprintf(fo,"NAME\t\t\t\tCHANCE\t\tWORTH\n\n"); | |
| 111 for (mi = &r_magic[0]; mi < &r_magic[MAXRINGS]; mi++) { | |
| 112 fprintf(fo,"%s\t",mi->mi_name); | |
| 113 k = strlen(mi->mi_name); | |
| 114 if (k < 8) | |
| 115 ptr = "\t\t\t"; | |
| 116 else if (k >= 16) | |
| 117 ptr = "\t"; | |
| 118 else | |
| 119 ptr = "\t\t"; | |
| 120 fprintf(fo,"%s", ptr); | |
| 121 i = mi->mi_prob / 10; | |
| 122 j = mi->mi_prob % 10; | |
| 123 fprintf(fo,"%2d.%1d %%\t\t",i,j); | |
| 124 fprintf(fo,"%3d\n",mi->mi_worth); | |
| 125 } | |
| 126 fprintf(fo,"\n\n\n\n\nNOTE - All rings weigh 0.5 lbs\n"); | |
| 127 | |
| 128 | |
| 129 /* | |
| 130 * print stuff about sticks | |
| 131 */ | |
| 132 fprintf(fo,"\n\n\n\n\n\n"); | |
| 133 fprintf(fo,"\t\t STAFF/WAND INFO\n\n\n"); | |
| 134 fprintf(fo,"NAME\t\t\t\tCHANCE\t\tWORTH\n\n"); | |
| 135 for (mi = &ws_magic[0]; mi < &ws_magic[MAXSTICKS]; mi++) { | |
| 136 fprintf(fo,"%s\t",mi->mi_name); | |
| 137 k = strlen(mi->mi_name); | |
| 138 if (k < 8) | |
| 139 ptr = "\t\t\t"; | |
| 140 else if (k >= 16) | |
| 141 ptr = "\t"; | |
| 142 else | |
| 143 ptr = "\t\t"; | |
| 144 fprintf(fo,"%s", ptr); | |
| 145 i = mi->mi_prob / 10; | |
| 146 j = mi->mi_prob % 10; | |
| 147 fprintf(fo,"%2d.%1d %%\t\t",i,j); | |
| 148 fprintf(fo,"%3d\n",mi->mi_worth); | |
| 149 } | |
| 150 fprintf(fo,"\n\n\n\n\nNOTES - All wands weigh 6.0 lbs\n"); | |
| 151 fprintf(fo," - All staffs weigh 10.0 lbs\n"); | |
| 152 fprintf(fo," - Wands contain from 4 to 8 charges\n"); | |
| 153 fprintf(fo," - Staffs contain from 5 to 12 charges\n"); | |
| 154 fprintf(fo," - Sticks of light have an additional 7 to 15 charges\n"); | |
| 155 | |
| 156 | |
| 157 /* | |
| 158 * print armor info | |
| 159 */ | |
| 160 fprintf(fo,"\n\n\n\n\n\n"); | |
| 161 fprintf(fo,"\t\t\t\tARMOR INFO\n\n\n"); | |
| 162 fprintf(fo,"NAME\t\t\t\tAC\tCHANCE\t\tWORTH\t\tWEIGHT\n\n"); | |
| 163 for (ar = &armors[0]; ar < &armors[MAXARMORS]; ar++) { | |
| 164 fprintf(fo,"%s\t",ar->a_name); | |
| 165 k = strlen(ar->a_name); | |
| 166 if (k < 8) | |
| 167 ptr = "\t\t\t"; | |
| 168 else if (k >= 16) | |
| 169 ptr = "\t"; | |
| 170 else | |
| 171 ptr = "\t\t"; | |
| 172 fprintf(fo,"%s", ptr); | |
| 173 fprintf(fo,"%2d\t",ar->a_class); | |
| 174 fprintf(fo,"%2d %%\t\t",ar->a_prob); | |
| 175 fprintf(fo,"%3d\t\t",ar->a_worth); | |
| 176 fprintf(fo,"%2d lbs\n",ar->a_wght / 10); | |
| 177 } | |
| 178 fprintf(fo,"\n\n\n\n\nNOTE - All armor becomes 50%% lighter when blessed\n"); | |
| 179 | |
| 180 | |
| 181 /* | |
| 182 * print stuff about weapons | |
| 183 */ | |
| 184 fprintf(fo,"\n\n\n\n\n\n"); | |
| 185 fprintf(fo,"\t\t\t\t\tWEAPON INFO\n\n\n"); | |
| 186 fprintf(fo, | |
| 187 "NAME\t\t\tHIT DAMAGE\tHURL DAMAGE\tWORTH\t\tWEIGHT\n\n"); | |
| 188 for (wp = &weaps[0]; wp < &weaps[MAXWEAPONS]; wp++) { | |
| 189 fprintf(fo,"%s\t",wp->w_name); | |
| 190 k = strlen(wp->w_name); | |
| 191 if (k < 8) | |
| 192 ptr = "\t\t"; | |
| 193 else if (k >= 16) | |
| 194 ptr = ""; | |
| 195 else | |
| 196 ptr = "\t"; | |
| 197 fprintf(fo,"%s", ptr); | |
| 198 ptr = wp->w_dam; | |
| 199 i = *ptr - '0'; | |
| 200 j = 0; | |
| 201 ptr += 2; | |
| 202 while (*ptr != NULL) { | |
| 203 j = j * 10 + (*ptr - '0'); | |
| 204 ++ptr; | |
| 205 } | |
| 206 j *= i; | |
| 207 fprintf(fo," %d to %d\t",i,j); | |
| 208 ptr = wp->w_hrl; | |
| 209 i = *ptr - '0'; | |
| 210 j = 0; | |
| 211 ptr += 2; | |
| 212 while (*ptr != NULL) { | |
| 213 j = j * 10 + (*ptr - '0'); | |
| 214 ++ptr; | |
| 215 } | |
| 216 j *= i; | |
| 217 fprintf(fo," %d to %d\t",i,j); | |
| 218 fprintf(fo,"%4d\t\t",wp->w_worth); | |
| 219 i = wp->w_wght / 10; | |
| 220 j = wp->w_wght % 10; | |
| 221 fprintf(fo,"%2d.%1d lbs\n",i,j); | |
| 222 } | |
| 223 fprintf(fo,"\n\n\n\n\nNOTE - All weapons become 50%% lighter when blessed\n"); | |
| 224 | |
| 225 | |
| 226 /* | |
| 227 * print stuff about the monsters | |
| 228 */ | |
| 229 } |
