static void AllocMoreHeaps(void) { /* * By default, we MSL's allocation (malloc/free) even with C++. * If you have declared a heap size in the Project Pref panel, * a defaull heap will be created the first time you call * malloc. You can add more calls to init_alloc to create additional * heaps. */ init_alloc(some_address1, some_size1); init_alloc(some_address2, some_size2); }
int kalloc_init( void* base, uint32 len ) { kalloc_base = base; #ifdef KALLOC_ROBUST inited = 1; #endif /* KALLOC_ROBUST */ kprintf( "kalloc: base: 0x%x, len: %d.\n", base, len ); return init_alloc( base, len ); }
Vector<value_type> & operator=(Vector<value_type> const & IN) { if(dim!=IN.dim) { if(dim!=0) delete[] elems; dim = IN.dim; init_alloc(); } for(size_type i=0;i<dim;i++) { elems[i] = IN.elems[i]; } return *this; }
void main() { init_alloc(); vga_printf("&main = %08p\n", &main); int i; for(i = 10; i >= 0; i--) vga_printf("'%#0*x' %.*s '%*d' %.*s '%.*s' %.*s '%d'\n", i, 0xdead, 10 - i, "", i, -123, 10 - i, "", i, "moo", 10 - i, "", i << i); vga_printf("%d %d %lld %lld %u %llu\n", INT_MIN, INT_MAX, LLONG_MIN, LLONG_MAX, UINT_MAX, ULLONG_MAX); vga_set_color(0xC, 0x0); vga_printf("HALT"); }
void VerifyLog::run() { if (verify_alloc) { init_alloc(); } BaseScanner* s = getScanner(); VerifyHandler h(merge); if (!merge) { s->openFileCallback = std::bind(&VerifyHandler::newFile, &h, std::placeholders::_1); } s->add_handler(&h); s->fork(); s->join(); delete s; }
/* ARGSUSED */ int main (int argc, char **argv, char **envp) { int skip_args = 0; #ifdef HAVE_PERSONALITY_LINUX32 /* See if there is a gap between the end of BSS and the heap. In that case, set personality and exec ourself again. */ if (!initialized && strcmp (argv[argc-1], "dump") == 0 && !getenv ("EMACS_HEAP_EXEC")) { /* Set this so we only do this once. */ putenv ("EMACS_HEAP_EXEC=true"); /* A flag to turn off address randomization which is introduced in linux kernel shipped with fedora core 4 */ personality (PER_LINUX32 | ADDR_NO_RANDOMIZE); execvp (argv[0], argv); /* If the exec fails, try to dump anyway. */ perror ("execvp"); } #endif /* HAVE_PERSONALITY_LINUX32 */ /* Map in shared memory, if we are using that. */ #ifdef HAVE_SHM if (argc > 1 && !strcmp (argv[1], "-nl")) { map_in_data (0); /* The shared memory was just restored, which clobbered this. */ skip_args = 1; } else { map_in_data (1); /* The shared memory was just restored, which clobbered this. */ skip_args = 0; } #endif #ifdef VMS /* If -map specified, map the data file in */ if (argc > 2 && ! strcmp (argv[1], "-map")) { skip_args = 2; mapin_data (argv[2]); } #ifdef LINK_CRTL_SHARE #ifdef SHAREABLE_LIB_BUG /* Bletcherous shared libraries! */ if (!stdin) stdin = fdopen (0, "r"); if (!stdout) stdout = fdopen (1, "w"); if (!stderr) stderr = fdopen (2, "w"); if (!environ) environ = envp; #endif /* SHAREABLE_LIB_BUG */ #endif /* LINK_CRTL_SHARE */ #endif /* VMS */ /* 92.11.4, 93.2.17 by M.Higashida */ #if defined(MSDOS) && defined(EMX) environ = envp; #endif #ifdef WIN32 environ = envp; #endif /* end of patch */ #ifdef USG_SHARED_LIBRARIES if (bss_end) brk (bss_end); #endif #ifdef NeXT extern int malloc_cookie; /* This helps out unexnext.c. */ if (initialized) { if (malloc_jumpstart (malloc_cookie) != 0) fatal("malloc jumpstart failed!\n"); } else { emacszone = NXCreateZone(ZONESIZE*vm_page_size,vm_page_size,1); if(emacszone == NX_NOZONE) fatal("can't create emacs zone.\n"); } #endif /* NeXT */ clearerr (stdin); #ifdef APOLLO #ifndef APOLLO_SR10 /* If USE_DOMAIN_ACLS environment variable exists, use ACLs rather than UNIX modes. */ if (egetenv ("USE_DOMAIN_ACLS")) default_acl (USE_DEFACL); #endif #endif /* APOLLO */ #ifndef SYSTEM_MALLOC /* Arrange for warnings when nearly out of space. */ malloc_init (0, malloc_warning); #endif /* 91.10.16 by S.Hirano */ #if defined(MSDOS) && defined(GO32) _fmode = O_BINARY; /* all of files are treated as binary files */ (stdin)->_flag &= ~_IOTEXT; /* also binary for stdio */ (stdout)->_flag &= ~_IOTEXT; (stderr)->_flag &= ~_IOTEXT; #endif /* MSDOS */ /* end of patch */ #ifdef HIGHPRI setpriority (PRIO_PROCESS, getpid (), HIGHPRI); setuid (getuid ()); #endif inhibit_window_system = 0; /* 92.3.31 by K.Handa, 92.10.21 by M.Higashida */ #if defined (HAVE_X_WINDOWS) || defined (HAVE_SUN_CONSOLE) || (defined(MSDOS) && defined(HAVE_VGA_ADAPTER)) || defined (WIN32) xargv = argv; xargc = argc; #endif /* Handle the -t switch, which specifies filename to use as terminal */ if (skip_args + 2 < argc && !strcmp (argv[skip_args + 1], "-t")) { skip_args += 2; close (0); close (1); open (argv[skip_args], O_RDWR, 2 ); dup (0); fprintf (stderr, "Using %s\n", argv[skip_args]); /* 92.3.31 by K.Handa, 92.10.21 by M.Higashida */ #if defined (HAVE_X_WINDOWS) || defined (HAVE_SUN_CONSOLE) || (defined(MSDOS) && defined(HAVE_VGA_ADAPTER)) || defined (WIN32) inhibit_window_system = 1; /* -t => -nw */ #endif } #ifdef HAVE_X_WINDOWS /* Handle the -d switch, which means use a different display for X */ if (skip_args + 2 < argc && (!strcmp (argv[skip_args + 1], "-d") || !strcmp (argv[skip_args + 1], "-display"))) { skip_args += 2; alternate_display = argv[skip_args]; } else alternate_display = 0; #endif /* HAVE_X_WINDOWS */ /* 92.3.31 by K.Handa */ #ifdef HAVE_SUN_CONSOLE if (skip_args + 1 < argc && (!strcmp (argv[skip_args + 1], "-sun"))) { extern Pixrect *screen; inhibit_window_system = -1; skip_args++; alternate_display = "/dev/fb"; if (skip_args + 2 < argc && (!strcmp (argv[skip_args + 1], "-fb"))) { skip_args += 2; alternate_display = argv[skip_args]; } if (screen = pr_open(alternate_display)) /* Just a test. */ pr_close(screen); else alternate_display = 0; } #endif /* HAVE_SUN_CONSOLE */ /* end of patch */ /* 92.10.17, 93.2.17 by M.Higashida */ #if defined(MSDOS) && defined(HAVE_VGA_ADAPTER) if (skip_args + 1 < argc && (!strcmp (argv[skip_args + 1], "-vga"))) { inhibit_window_system = -1; skip_args++; } #endif /* MSDOS and HAVE_VGA_ADAPTER */ #ifdef WIN32 inhibit_window_system = -1; #endif /* end of patch */ if (skip_args + 1 < argc && (!strcmp (argv[skip_args + 1], "-nw"))) { skip_args += 1; inhibit_window_system = 1; } /* Handle the -batch switch, which means don't do interactive display. */ noninteractive = 0; if (skip_args + 1 < argc && !strcmp (argv[skip_args + 1], "-batch")) { skip_args += 1; noninteractive = 1; } #ifdef POSIX_SIGNALS init_signals (); #endif #ifdef HAVE_TZSET /* Reinitialize the time zone if it was initialized before dumping Emacs. */ if (initialized) tzset (); #endif #ifdef WIN32 /* 93.2.25 by M.Higashida */ _tzset (); #endif if ( #ifndef CANNOT_DUMP ! noninteractive || initialized #else 1 #endif ) { /* Don't catch these signals in batch mode if not initialized. On some machines, this sets static data that would make signal fail to work right when the dumped Emacs is run. */ /* 91.10.16 by S.Hirano, 92.11.4 by M.Higashida */ #ifdef MSDOS #ifdef GO32 /* Nothing */ #else #ifdef EMX signal (SIGBREAK, fatal_error_signal); signal (SIGQUIT, fatal_error_signal); #endif #endif #else /* not MSDOS */ signal (SIGHUP, fatal_error_signal); signal (SIGQUIT, fatal_error_signal); signal (SIGILL, fatal_error_signal); signal (SIGTRAP, fatal_error_signal); signal (SIGIOT, fatal_error_signal); #ifdef SIGEMT signal (SIGEMT, fatal_error_signal); #endif signal (SIGFPE, fatal_error_signal); signal (SIGBUS, fatal_error_signal); signal (SIGSEGV, fatal_error_signal); signal (SIGSYS, fatal_error_signal); signal (SIGTERM, fatal_error_signal); #ifdef SIGXCPU signal (SIGXCPU, fatal_error_signal); #endif #ifdef SIGXFSZ signal (SIGXFSZ, fatal_error_signal); #endif #endif /* not MSDOS and GO32 */ /* end of patch */ #ifdef AIX /* This used to run fatal_error_signal, but it isn't fatal. There's nothing Emacs can usefully do. Might as well let the system kill us if it insists. */ signal (SIGDANGER, SIG_IGN); signal (20, fatal_error_signal); signal (21, fatal_error_signal); signal (22, fatal_error_signal); signal (23, fatal_error_signal); signal (24, fatal_error_signal); #ifdef SIGIO signal (SIGAIO, fatal_error_signal); signal (SIGPTY, fatal_error_signal); #endif #ifdef SIGURG /* Note that SIGIOINT is the same as SIGIO on some machines, and the same as SIGURG on others. It seems ore reliable to use the name with a uniform meaning. */ signal (SIGURG, fatal_error_signal); #endif signal (SIGGRANT, fatal_error_signal); signal (SIGRETRACT, fatal_error_signal); signal (SIGSOUND, fatal_error_signal); signal (SIGMSG, fatal_error_signal); #endif /* AIX */ } noninteractive1 = noninteractive; /* Perform basic initializations (not merely interning symbols) */ if (!initialized) { init_alloc_once (); init_obarray (); init_eval_once (); init_mc_once (); /* 89.7.26, 91.10.19 by K.Handa */ init_syntax_once (); /* Create standard syntax table. */ init_category_once (); /* 91.12.7 by K.Handa */ /* Must be done before init_buffer */ init_buffer_once (); /* Create buffer table and some buffers */ init_minibuf_once (); /* Create list of minibuffers */ /* Must precede init_window_once */ init_window_once (); /* Init the window system */ /* 92.10.28 by M.Higashida */ #if defined (MSDOS) && defined (HAVE_VGA_ADAPTER) init_bdf_once (); /* Init the BDF font structure. */ #endif /* end of patch */ } init_alloc (); #ifdef MAINTAIN_ENVIRONMENT init_environ (); /* 92.3.25 by N.Hikichi */ #ifdef HAVE_X_WINDOWS if (alternate_display) set_environment_alist (build_string ("DISPLAY"), build_string (alternate_display)); #endif /* HAVE_X_WINDOWS */ /* end of patch */ #endif init_codeconv (); /* 92.1.7 by K.Handa */ init_eval (); init_data (); init_read (); init_cmdargs (argc, argv, skip_args); /* Create list Vcommand_line_args */ init_buffer (); /* Init default directory of main buffer */ if (!noninteractive) { #ifdef VMS init_vms_input ();/* init_display calls get_screen_size, that needs this */ #endif /* VMS */ init_display (); /* Determine terminal type. init_sys_modes uses results */ } init_keyboard (); /* This too must precede init_sys_modes */ init_callproc (); /* And this too. */ init_sys_modes (); /* Init system terminal modes (RAW or CBREAK, etc.) */ init_xdisp (); init_macros (); init_editfns (); #ifdef VMS init_vmsfns (); #endif /* VMS */ #ifdef subprocesses init_process (); #endif /* subprocesses */ /* Intern the names of all standard functions and variables; define standard keys */ if (!initialized) { /* The basic levels of Lisp must come first */ /* And data must come first of all for the sake of symbols like error-message */ syms_of_data (); syms_of_alloc (); #ifdef MAINTAIN_ENVIRONMENT syms_of_environ (); #endif /* MAINTAIN_ENVIRONMENT */ syms_of_read (); syms_of_print (); syms_of_eval (); syms_of_fns (); syms_of_abbrev (); syms_of_buffer (); syms_of_bytecode (); syms_of_callint (); syms_of_casefiddle (); syms_of_callproc (); syms_of_category (); /* 91.11.11 by K.Handa */ syms_of_codeconv (); /* 92.1.7 by K.Handa */ syms_of_cmds (); #ifndef NO_DIR_LIBRARY syms_of_dired (); #endif /* not NO_DIR_LIBRARY */ syms_of_display (); syms_of_doc (); syms_of_editfns (); syms_of_emacs (); syms_of_fileio (); #ifdef CLASH_DETECTION syms_of_filelock (); #endif /* CLASH_DETECTION */ /* 92.11.1 by M.Higashida */ #ifdef FILE_TRANSLATION_MODE syms_of_transmode (); #endif /* FILE_TRANSLATION_MODE */ /* end of patch */ syms_of_indent (); syms_of_keyboard (); syms_of_keymap (); syms_of_macros (); syms_of_marker (); syms_of_minibuf (); syms_of_mocklisp (); #ifdef subprocesses syms_of_process (); #endif /* subprocesses */ syms_of_search (); syms_of_syntax (); syms_of_undo (); syms_of_window (); syms_of_xdisp (); #ifdef HAVE_X_WINDOWS syms_of_xfns (); #ifdef HAVE_X_MENU syms_of_xmenu (); #endif /* HAVE_X_MENU */ #endif /* HAVE_X_WINDOWS */ /* 87.6.8, 91.11.2, 92.3.31, 92.7.31 by K.Handa, 92.10.17, 93.2.17 by M.Higashida */ #ifdef HAVE_SUN_CONSOLE syms_of_sunterm (); #endif #if defined(MSDOS) && defined(HAVE_VGA_ADAPTER) syms_of_vgaterm (); #endif #ifdef WIN32 syms_of_win32term (); #endif syms_of_mc (); syms_of_ccl (); /* 93.5.14 by K.Handa */ #ifdef WNN4 syms_of_wnn (); #endif #ifdef CANNA syms_of_canna (); #endif /* CANNA */ /* end of patch */ #ifdef MCPATH syms_of_mcpath (); #endif /* MCPATH */ #ifdef SYMS_SYSTEM SYMS_SYSTEM; #endif #ifdef SYMS_MACHINE SYMS_MACHINE; #endif keys_of_casefiddle (); keys_of_cmds (); keys_of_buffer (); keys_of_keyboard (); keys_of_keymap (); keys_of_macros (); keys_of_minibuf (); keys_of_window (); } if (!initialized) { /* Handle -l loadup-and-dump, args passed by Makefile. */ if (argc > 2 + skip_args && !strcmp (argv[1 + skip_args], "-l")) Vtop_level = Fcons (intern ("load"), Fcons (build_string (argv[2 + skip_args]), Qnil)); #ifdef CANNOT_DUMP /* Unless next switch is -nl, load "loadup.el" first thing. */ if (!(argc > 1 + skip_args && !strcmp (argv[1 + skip_args], "-nl"))) Vtop_level = Fcons (intern ("load"), Fcons (build_string ("loadup.el"), Qnil)); #endif /* CANNOT_DUMP */ } initialized = 1; /* Enter editor command loop. This never returns. */ Frecursive_edit (); /* NOTREACHED */ }
Vector(Vector<value_type> const & IN) : dim(IN.dim) { init_alloc(); init_array(IN.elems); }
Vector(size_type dim, value_type initval) : dim(dim) { init_alloc(); for(unsigned i=0;i<dim;i++) elems[i] = initval; }
Vector(size_type dim) : dim(dim) { init_alloc(); }
/* * Hack -- main Angband initialization entry point * * Verify some files, display the "news.txt" file, create * the high score file, initialize all internal arrays, and * load the basic "user pref files". * * Be very careful to keep track of the order in which things * are initialized, in particular, the only thing *known* to * be available when this function is called is the "z-term.c" * package, and that may not be fully initialized until the * end of this function, when the default "user pref files" * are loaded and "Term_xtra(TERM_XTRA_REACT,0)" is called. * * Note that this function attempts to verify the "news" file, * and the game aborts (cleanly) on failure, since without the * "news" file, it is likely that the "lib" folder has not been * correctly located. Otherwise, the news file is displayed for * the user. * * Note that this function attempts to verify (or create) the * "high score" file, and the game aborts (cleanly) on failure, * since one of the most common "extraction" failures involves * failing to extract all sub-directories (even empty ones), such * as by failing to use the "-d" option of "pkunzip", or failing * to use the "save empty directories" option with "Compact Pro". * This error will often be caught by the "high score" creation * code below, since the "lib/apex" directory, being empty in the * standard distributions, is most likely to be "lost", making it * impossible to create the high score file. * * Note that various things are initialized by this function, * including everything that was once done by "init_some_arrays". * * This initialization involves the parsing of special files * in the "lib/data" and sometimes the "lib/edit" directories. * * Note that the "template" files are initialized first, since they * often contain errors. This means that macros and message recall * and things like that are not available until after they are done. * * We load the default "user pref files" here in case any "color" * changes are needed before character creation. * * Note that the "graf-xxx.prf" file must be loaded separately, * if needed, in the first (?) pass through "TERM_XTRA_REACT". */ bool init_angband(void) { event_signal(EVENT_ENTER_INIT); /* Initialize the menus */ /* This must occur before preference files are read(?) */ init_cmd4_c(); /*** Initialize some arrays ***/ /* Initialize size info */ event_signal_string(EVENT_INITSTATUS, "Initializing array sizes..."); if (init_z_info()) quit("Cannot initialize sizes"); /* Initialize feature info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (features)"); if (init_f_info()) quit("Cannot initialize features"); /* Initialize object info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (objects)"); if (init_k_info()) quit("Cannot initialize objects"); /* Initialize ego-item info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (ego-items)"); if (init_e_info()) quit("Cannot initialize ego-items"); /* Initialize monster info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (monsters)"); if (init_r_info()) quit("Cannot initialize monsters"); /* Initialize artifact info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (artifacts)"); if (init_a_info()) quit("Cannot initialize artifacts"); /* Initialize feature info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (vaults)"); if (init_v_info()) quit("Cannot initialize vaults"); /* Initialize history info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (histories)"); if (init_h_info()) quit("Cannot initialize histories"); /* Initialize race info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (races)"); if (init_p_info()) quit("Cannot initialize races"); /* Initialize class info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (classes)"); if (init_c_info()) quit("Cannot initialize classes"); /* Initialize owner info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (owners)"); if (init_b_info()) quit("Cannot initialize owners"); /* Initialize flavor info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (flavors)"); if (init_flavor_info()) quit("Cannot initialize flavors"); /* Initialize spell info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (spells)"); if (init_s_info()) quit("Cannot initialize spells"); /* Initialize spellbook info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (spellbooks)"); init_books(); /* Initialise store stocking data */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (store stocks)"); init_stores(); /* Initialise random name data */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (random names)"); init_names(); /* Initialize some other arrays */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (other)"); if (init_other()) quit("Cannot initialize other stuff"); /* Initialize some other arrays */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (alloc)"); if (init_alloc()) quit("Cannot initialize alloc stuff"); /*** Load default user pref files ***/ /* Initialize feature info */ event_signal_string(EVENT_INITSTATUS, "Loading basic user pref file..."); /* Process that file */ (void)process_pref_file("pref.prf"); /* Done */ event_signal_string(EVENT_INITSTATUS, "Initialization complete"); /* Sneakily init command list */ cmd_init(); /* Ask for a "command" until we get one we like. */ while (1) { game_command command_req; cmd_get(CMD_INIT, &command_req, TRUE); if (command_req.command == CMD_QUIT) { quit(NULL); } else if (command_req.command == CMD_NEWGAME) { event_signal(EVENT_LEAVE_INIT); return TRUE; } else if (command_req.command == CMD_LOADFILE) { event_signal(EVENT_LEAVE_INIT); /* In future we might want to pass back or set the savefile path here. */ return FALSE; } } }
/* * Hack -- main Angband initialization entry point * * Verify some files, display the "news.txt" file, create * the high score file, initialize all internal arrays, and * load the basic "user pref files". * * Be very careful to keep track of the order in which things * are initialized, in particular, the only thing *known* to * be available when this function is called is the "z-term.c" * package, and that may not be fully initialized until the * end of this function, when the default "user pref files" * are loaded and "Term_xtra(TERM_XTRA_REACT,0)" is called. * * Note that this function attempts to verify the "news" file, * and the game aborts (cleanly) on failure, since without the * "news" file, it is likely that the "lib" folder has not been * correctly located. Otherwise, the news file is displayed for * the user. * * Note that this function attempts to verify (or create) the * "high score" file, and the game aborts (cleanly) on failure, * since one of the most common "extraction" failures involves * failing to extract all sub-directories (even empty ones), such * as by failing to use the "-d" option of "pkunzip", or failing * to use the "save empty directories" option with "Compact Pro". * This error will often be caught by the "high score" creation * code below, since the "lib/apex" directory, being empty in the * standard distributions, is most likely to be "lost", making it * impossible to create the high score file. * * Note that various things are initialized by this function, * including everything that was once done by "init_some_arrays". * * This initialization involves the parsing of special files * in the "lib/data" and sometimes the "lib/edit" directories. * * Note that the "template" files are initialized first, since they * often contain errors. This means that macros and message recall * and things like that are not available until after they are done. * * We load the default "user pref files" here in case any "color" * changes are needed before character creation. * * Note that the "graf-xxx.prf" file must be loaded separately, * if needed, in the first (?) pass through "TERM_XTRA_REACT". */ bool init_angband(void) { /* If we have a savefile, use that for game mode instead */ if (savefile[0]) { load_gamemode(); } /* Which game are we playing? */ if (game_mode == 0) { get_game_mode(); } event_signal(EVENT_ENTER_INIT); /*** Initialize some arrays ***/ /* Initialize size info */ event_signal_string(EVENT_INITSTATUS, "Initializing array sizes..."); if (init_z_info()) quit("Cannot initialize sizes"); /* Prepare some things according to the game being played */ init_game_mode(); /* Initialize feature info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (features)"); if (init_f_info()) quit("Cannot initialize features"); /* Initialize object info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (objects)"); if (init_k_info()) quit("Cannot initialize objects"); /* Initialize object info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (ghosts)"); if (init_t_info()) quit("Cannot initialize ghosts"); /* Initialize artifact info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (artifacts)"); if (init_a_info()) quit("Cannot initialize artifacts"); /* Initialize ego-item info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (ego-items)"); if (init_e_info()) quit("Cannot initialize ego-items"); /* Initialize monster info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (monsters)"); if (init_r_info()) quit("Cannot initialize monsters"); /* Initialize feature info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (vaults)"); if (init_v_info()) quit("Cannot initialize vaults"); /* Initialize history info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (histories)"); if (init_h_info()) quit("Cannot initialize histories"); /* Initialize race info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (races)"); if (init_p_info()) quit("Cannot initialize races"); /* Initialize class info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (classes)"); if (init_c_info()) quit("Cannot initialize classes"); /* Initialize owner info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (owners)"); if (init_b_info()) quit("Cannot initialize owners"); /* Initialize flavor info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (flavors)"); if (init_flavor_info()) quit("Cannot initialize flavors"); /* Initialize flavor info */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (quests)"); if (init_q_info()) quit("Cannot initialize quests"); /* Initialize some other arrays */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (other)"); if (init_other()) quit("Cannot initialize other stuff"); /* Initialize some other arrays */ event_signal_string(EVENT_INITSTATUS, "Initializing arrays... (alloc)"); if (init_alloc()) quit("Cannot initialize alloc stuff"); /*** Load default user pref files ***/ /* Initialize feature info */ event_signal_string(EVENT_INITSTATUS, "Loading basic user pref file..."); /* Process that file */ (void)process_pref_file("pref.prf"); /* Initialize feature info */ event_signal_string(EVENT_INITSTATUS, "Initializing Random Artifact Tables...]"); if (init_n_info()) quit("Cannot initialize random name generator list"); /*Build the randart probability tables based on the standard Artifact Set*/ build_randart_tables(); /* Done */ event_signal_string(EVENT_INITSTATUS, "Initialization complete"); /* Sneakily init command list */ cmd_init(); /* Ask for a "command" until we get one we like. */ while (1) { game_command command_req; cmd_get(CMD_INIT, &command_req, TRUE); if (command_req.command == CMD_QUIT) { quit(NULL); } else if (command_req.command == CMD_NEWGAME) { event_signal(EVENT_LEAVE_INIT); return TRUE; } else if (command_req.command == CMD_LOADFILE) { event_signal(EVENT_LEAVE_INIT); /* In future we might want to pass back or set the savefile path here. */ return FALSE; } } }