/* * Check for a "-plain" option; if it's there, set the terminal to plain * text mode. We must make this check before doing anything else, because * os_plain() must be called prior to os_init() if it's going to be called * at all. */ static void check_plain_option(int argc, char **argv) { int i; /* scan the argument list for the "-plain" option */ for (i = 1 ; i < argc ; ++i) { if (strcmp(argv[i], "-plain") == 0) { /* set plain text mode in the OS layer */ os_plain(); /* we've found what we're looking for - no need to look further */ break; } } }
/* set plain ASCII mode */ void set_plain_mode() { os_plain(); }
/* * Main entrypoint */ int main(int argc, char **argv) { int stat; int i; CVmHostIfc *hostifc; CVmMainClientConsole clientifc; /* * Check for a "-plain" option; if it's there, set the terminal to * plain text mode. We must make this check before doing anything * else, because os_plain() must be called prior to os_init() if * it's going to be called at all. */ for (i = 1 ; i < argc ; ++i) { if (strcmp(argv[i], "-plain") == 0) { /* set plain text mode in the OS layer */ os_plain(); /* we've found what we're looking for - no need to look further */ break; } } /* * Initialize the OS layer. Since this is a command-line-only * implementation, there's no need to ask the OS layer to try to get us * a filename to run, so pass in null for the prompt and filename * buffer. */ os_init(&argc, argv, 0, 0, 0); /* install the OS break handler while we're running */ os_instbrk(1); /* create the host interface */ hostifc = new CVmHostIfcStdio(argv[0]); /* invoke the basic entrypoint */ stat = vm_run_image_main(&clientifc, "t3run", argc, argv, TRUE, FALSE, hostifc); #ifdef TADSNET /* * Disconnect the Web UI, if applicable. Leave any final UI window * state displayed until the user manually closes it, so that the user * can read any final messages displayed when the game program * terminated. */ osnet_disconnect_webui(FALSE); /* shut down the network layer, if applicable */ os_net_cleanup(); #endif /* remove the OS break handler */ os_instbrk(0); /* uninitialize the OS layer */ os_uninit(); /* delete the host interface object */ delete hostifc; /* show any unfreed memory */ t3_list_memory_blocks(0); /* exit with status code */ os_term(stat); /* we shouldn't get here, but in case os_term doesn't really exit... */ AFTER_OS_TERM(return stat;) }