diff -r -w -c2 angband-281/src/Makefile angband-281.randart/src/Makefile *** angband-281/src/Makefile Sun May 4 09:28:51 1997 --- angband-281.randart/src/Makefile Tue Jun 24 22:16:34 1997 *************** *** 54,58 **** wizard1.c wizard2.c \ generate.c dungeon.c init1.c init2.c \ ! main-cap.c main-gcu.c main-x11.c main-xaw.c main.c OBJS = \ --- 54,59 ---- wizard1.c wizard2.c \ generate.c dungeon.c init1.c init2.c \ ! main-cap.c main-gcu.c main-x11.c main-xaw.c main.c \ ! randart.c randmain.c OBJS = \ *************** *** 66,71 **** wizard1.o wizard2.o \ generate.o dungeon.o init1.o init2.o \ ! main-cap.o main-gcu.o main-x11.o main-xaw.o main.o --- 67,74 ---- wizard1.o wizard2.o \ generate.o dungeon.o init1.o init2.o \ ! randart.o + MAIN_OBJS = \ + main-cap.o main-gcu.o main-x11.o main-xaw.o main.o *************** *** 216,230 **** # install: testing cp testing .. # ! # Build the "Angband" program # ! testing: $(OBJS) ! $(CC) $(CFLAGS) -o testing $(OBJS) $(LDFLAGS) $(LIBS) ! # --- 219,244 ---- # + angband: $(MAIN_OBJS) libangband.a + $(CC) $(CFLAGS) -o $@ $(MAIN_OBJS) libangband.a $(LDFLAGS) $(LIBS) + install: testing cp testing .. + randart: _randart.o randmain.o libangband.a + $(CC) $(CFLAGS) -o $@ _randart.o randmain.o libangband.a $(LDFLAGS) + + # Hack -- the standalone randart program needs a different msg_format(). + _randart.o : randart.c + cp randart.c _randart.c + $(CC) $(CFLAGS) -DSTANDALONE_RANDART -c _randart.c + rm _randart.c # ! # Build the Angband function library # ! libangband.a: $(OBJS) ! ar rcv $@ $(OBJS) ! -ranlib $@ # diff -r -w -c2 angband-281/src/birth.c angband-281.randart/src/birth.c *** angband-281/src/birth.c Tue Jun 24 22:13:56 1997 --- angband-281.randart/src/birth.c Tue Jun 24 22:59:39 1997 *************** *** 1318,1321 **** --- 1318,1348 ---- + #ifdef GJW_RANDART + /* Extra info */ + Term_putstr(5, 15, -1, TERM_WHITE, + "Using random artifacts means that your character will enter a"); + Term_putstr(5, 16, -1, TERM_WHITE, + "world with a uniquely generated set of special items. "); + + /* Ask about random artifacts */ + while (1) + { + put_str("Use random artifacts? (y/n) ", 20, 2); + c = inkey(); + if (c == 'Q') quit(NULL); + if (c == 'S') return (FALSE); + if (c == ESCAPE) break; + if ((c == 'y') || (c == 'n')) break; + if (c == '?') do_cmd_help("help.hlp"); + else bell(); + } + + /* Set random artifacts */ + p_ptr->random_artifacts = (c == 'y'); + + /* Clear */ + clear_from(20); + #endif + #ifdef ALLOW_AUTOROLLER diff -r -w -c2 angband-281/src/config.h angband-281.randart/src/config.h *** angband-281/src/config.h Sun May 4 09:04:02 1997 --- angband-281.randart/src/config.h Tue Jun 24 22:00:19 1997 *************** *** 346,349 **** --- 346,353 ---- + /* + * OPTION: Allow the use of random artifacts. + */ + #define GJW_RANDART /* diff -r -w -c2 angband-281/src/dungeon.c angband-281.randart/src/dungeon.c *** angband-281/src/dungeon.c Mon Mar 3 22:20:47 1997 --- angband-281.randart/src/dungeon.c Wed Jun 25 22:38:07 1997 *************** *** 2552,2557 **** --- 2552,2568 ---- seed_town = rand_int(0x10000000); + #ifdef GJW_RANDART + /* Hack -- seed for random artifacts */ + seed_randart = rand_int (0x10000000); + #endif + /* Roll up a new character */ player_birth(); + + #ifdef GJW_RANDART + /* Randomize the artifacts. */ + if (p_ptr->random_artifacts) + do_randart (seed_randart); + #endif /* Hack -- enter the world */ diff -r -w -c2 angband-281/src/externs.h angband-281.randart/src/externs.h *** angband-281/src/externs.h Thu Mar 6 21:52:08 1997 --- angband-281.randart/src/externs.h Tue Jun 24 22:33:22 1997 *************** *** 89,92 **** --- 89,95 ---- extern u32b seed_flavor; extern u32b seed_town; + #ifdef GJW_RANDART + extern u32b seed_randart; + #endif extern s16b command_cmd; extern s16b command_arg; diff -r -w -c2 angband-281/src/init1.c angband-281.randart/src/init1.c *** angband-281/src/init1.c Mon Mar 3 22:23:07 1997 --- angband-281.randart/src/init1.c Fri Jun 20 20:18:01 1997 *************** *** 366,370 **** * Object flags */ ! static cptr k_info_flags1[] = { "STR", --- 366,370 ---- * Object flags */ ! cptr k_info_flags1[] = { "STR", *************** *** 405,409 **** * Object flags */ ! static cptr k_info_flags2[] = { "SUST_STR", --- 405,409 ---- * Object flags */ ! cptr k_info_flags2[] = { "SUST_STR", *************** *** 444,448 **** * Object flags */ ! static cptr k_info_flags3[] = { "XXX1", --- 444,448 ---- * Object flags */ ! cptr k_info_flags3[] = { "XXX1", diff -r -w -c2 angband-281/src/init2.c angband-281.randart/src/init2.c *** angband-281/src/init2.c Mon Mar 3 22:23:39 1997 --- angband-281.randart/src/init2.c Fri Jun 20 20:18:01 1997 *************** *** 562,566 **** * even if the string happens to be empty (everyone has a unique '\0'). */ ! static errr init_k_info(void) { int fd; --- 562,566 ---- * even if the string happens to be empty (everyone has a unique '\0'). */ ! errr init_k_info(void) { int fd; *************** *** 815,819 **** * even if the string happens to be empty (everyone has a unique '\0'). */ ! static errr init_a_info(void) { int fd; --- 815,819 ---- * even if the string happens to be empty (everyone has a unique '\0'). */ ! errr init_a_info(void) { int fd; diff -r -w -c2 angband-281/src/load2.c angband-281.randart/src/load2.c *** angband-281/src/load2.c Mon Mar 3 22:24:39 1997 --- angband-281.randart/src/load2.c Wed Jun 25 22:33:02 1997 *************** *** 1335,1342 **** --- 1335,1352 ---- rd_byte(&p_ptr->maximize); rd_byte(&p_ptr->preserve); + #ifdef GJW_RANDART + rd_byte(&p_ptr->random_artifacts); + #else rd_byte(&tmp8u); + #endif + #ifdef GJW_RANDART + /* Future use */ + for (i = 0; i < 44; i++) rd_byte(&tmp8u); + rd_u32b(&seed_randart); + #else /* Future use */ for (i = 0; i < 48; i++) rd_byte(&tmp8u); + #endif /* Skip the flags */ *************** *** 1358,1361 **** --- 1368,1377 ---- rd_byte(&tmp8u); death = tmp8u; + + #ifdef GJW_RANDART + /* Randomize the artifacts */ + if (!death) + if (p_ptr->random_artifacts) do_randart (seed_randart); + #endif /* Read "feeling" */ diff -r -w -c2 angband-281/src/save.c angband-281.randart/src/save.c *** angband-281/src/save.c Mon Mar 3 22:35:23 1997 --- angband-281.randart/src/save.c Tue Jun 24 22:18:28 1997 *************** *** 1085,1092 **** --- 1085,1102 ---- wr_byte(p_ptr->maximize); wr_byte(p_ptr->preserve); + #ifdef GJW_RANDART + wr_byte(p_ptr->random_artifacts); + #else wr_byte(0); + #endif + #ifdef GJW_RANDART + /* Future use */ + for (i = 0; i < 11; i++) wr_u32b(0L); + wr_u32b(seed_randart); + #else /* Future use */ for (i = 0; i < 12; i++) wr_u32b(0L); + #endif /* Ignore some flags */ diff -r -w -c2 angband-281/src/types.h angband-281.randart/src/types.h *** angband-281/src/types.h Tue Jun 24 22:13:23 1997 --- angband-281.randart/src/types.h Tue Jun 24 22:13:20 1997 *************** *** 915,918 **** --- 915,921 ---- byte maximize; /* Maximize stats */ byte preserve; /* Preserve artifacts */ + #ifdef GJW_RANDART + byte random_artifacts; /* Random artifacts */ + #endif s16b age; /* Characters age */ diff -r -w -c2 angband-281/src/variable.c angband-281.randart/src/variable.c *** angband-281/src/variable.c Tue Jun 24 22:11:53 1997 --- angband-281.randart/src/variable.c Tue Jun 24 22:11:43 1997 *************** *** 75,78 **** --- 75,81 ---- u32b seed_flavor; /* Hack -- consistent object colors */ u32b seed_town; /* Hack -- consistent town layout */ + #ifdef GJW_RANDART + u32b seed_randart; /* Hack -- consistent random artifacts */ + #endif s16b command_cmd; /* Current "Angband Command" */