Skip to content
Snippets Groups Projects
Select Git revision
  • dailybuild_linux-x64
  • dailybuild_win32
  • master default protected
  • sqlite
  • rip_abstraction
  • dailybuild_macos-armv8
  • dd_file_lister_filanem_in_desc_color
  • mode7
  • dd_msg_reader_are_you_there_warning_improvement
  • c23-playing
  • syncterm-1.3
  • syncterm-1.2
  • test-build
  • hide_remote_connection_with_telgate
  • 638-can-t-control-c-during-a-file-search
  • add_body_to_pager_email
  • mingw32-build
  • cryptlib-3.4.7
  • ree/mastermind
  • new_user_dat
  • sbbs320d
  • syncterm-1.6
  • syncterm-1.5
  • syncterm-1.4
  • sbbs320b
  • syncterm-1.3
  • syncterm-1.2
  • syncterm-1.2rc6
  • syncterm-1.2rc5
  • push
  • syncterm-1.2rc4
  • syncterm-1.2rc2
  • syncterm-1.2rc1
  • sbbs319b
  • sbbs318b
  • goodbuild_linux-x64_Sep-01-2020
  • goodbuild_win32_Sep-01-2020
  • goodbuild_linux-x64_Aug-31-2020
  • goodbuild_win32_Aug-31-2020
  • goodbuild_win32_Aug-30-2020
40 results

prextrn.js

Blame
  • prextrn.js 1.74 KiB
    // prextrn.js
    
    // External Program Pre-execution Module
    // These actions execute before an external program is launched via bbs.exec_xtrn()
    
    "use strict";
    
    function exec_xtrn_pre(prog)
    {
    	var options;
    
    	if ((options = load({}, "modopts.js","xtrn:" + prog.code)) == null) {
    		if ((options = load({}, "modopts.js","xtrn_sec")) == null)
    			options = {};	// default values
    	}
    
    	// If displaying CODE.ans file, prompt the user to continue to enter the game or not
    	if (typeof options.prompt_on_info === "undefined") {
    		options.prompt_on_info = false;
    	}
    
    	if (typeof options.prompt_on_info_fmt === "undefined") {
    		options.prompt_on_info_fmt = "\r\n\x01n\x01cDo you wish to continue";
    	}
    
    	require("nodedefs.js", "NODE_LOGN");
    	if (bbs.node_action == NODE_LOGN) {
    		if (options.disable_pre_on_logon_event) {
    			exit(0);
    		}
    	} else {
    		if (options.restricted_user_msg === undefined) {
    			require("text.js", "R_ExternalPrograms");
    			options.restricted_user_msg = bbs.text(R_ExternalPrograms);
    		}
    		require("userdefs.js", "UFLAG_X");
    		if (user.security.restrictions&UFLAG_X) {
    			write(options.restricted_user_msg);
    			exit(1);
    		}
    	}
    
    	if (bbs.menu_exists("xtrn/" + prog.code)) {
    		bbs.menu("xtrn/" + prog.code);
    
    		// If displaying CODE.ans file, prompt the user to continue to enter the game or not
    		if (options.prompt_on_info) {
    			if (!console.yesno(options.prompt_on_info_fmt)) {
    				exit(1);
    			}
    		} else {
    			console.pause();
    		}
    		console.line_counter=0;
    	}
    
    	require("cga_defs.js", "LIGHTGRAY");
    	console.attributes = LIGHTGRAY;
    
    	if (options.clear_screen_on_exec) {
    		console.clear();
    	}
    
    	if (options.eval_before_exec) {
    		eval(options.eval_before_exec);
    	}
    
    	load('fonts.js', 'xtrn:' + prog.code);
    }
    
    
    /* main: */
    {
    	exec_xtrn_pre(xtrn_area.prog[argv[0].toLowerCase()]);
    }