init_static_usecodetables(config);
init_static_usecodetables();
int main(int argc, char** argv){	// Tends to make life easier	cout << std::setfill('0') << std::setbase(16);	cout.setf(ios::uppercase);	// get the parameters	uc.parse_params(argc, argv);	if(uc.verbose()) cout << "Parameters parsed..." << endl;	Configuration config;		// attempt to find an exult.cfg file... _somewhere_	if(uc.noconf() == false)	{		if(uc.verbose()) cout << "Loading exult configuration file..." << endl;		if(config.read_config_file("exult.cfg") == false)		{			cout << "Failed to locate exult.cfg. Run exult before running ucxt or use the -nc switch. Exiting." << endl;			exit(1);		}	}		// init the compile time tables	if(uc.verbose()) cout << "Initing static tables..." << endl;	init_static_usecodetables(config);	// init the run time tables	if(uc.verbose()) cout << "Initing runtime tables..." << endl;	init_usecodetables(config, uc.noconf(), uc.verbose());		// ICK! Don't try this at home kids...	// done because for some reason it started crashing upon piping or redirection to file... wierd.	// yes, it's a hack to fix an eldritch bug I can't find... it seems appropriate	std::ofstream outputstream;	std::streambuf *coutbuf=0;	if(uc.output_redirect().size())	{		U7open(outputstream, uc.output_redirect().c_str(), false);		if(outputstream.fail())		{			cout << "error. failed to open " << uc.output_redirect() << " for writing. exiting." << endl;			exit(1);		}		coutbuf = cout.rdbuf();		cout.rdbuf(outputstream.rdbuf());	}	// you may now uncover your eyes <grin>	open_usecode_file(uc, config);	if(uc.opt().output_extern_header)	{		uc.output_extern_header(cout);	}	else if     ( uc.mode_dis() || uc.mode_all() )	{		uc.disassamble();	}	else if( uc.output_flag() )	{		uc.dump_flags(cout);	}	else		usage();	// now we clean up the <ick>y ness from before	if(uc.output_redirect().size())	{		cout.rdbuf(coutbuf);	}		return 0;}