示例#1
0
int
TnmInit(Tcl_Interp *interp, int safe)
{

#ifdef USE_TCL_STUBS
    if (Tcl_InitStubs(interp, "8.4", 0) == NULL) {
	return TCL_ERROR;
    }
#endif
    
    if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, 0) == NULL) {
        return TCL_ERROR;
    }

    if (Tcl_PkgProvide(interp, "Tnm", TNM_VERSION) != TCL_OK) {
        return TCL_ERROR;
    }

    Tcl_RegisterObjType(&tnmUnsigned64Type);
    Tcl_RegisterObjType(&tnmUnsigned32Type);
    Tcl_RegisterObjType(&tnmOctetStringType);
    Tcl_RegisterObjType(&tnmIpAddressType);

    InitVars(interp);
    TnmInitDns(interp);
    if (InitCmds(interp, safe) != TCL_OK) {
	return TCL_ERROR;
    }
    if (TnmSmxInit(interp) != TCL_OK) {
	return TCL_ERROR;
    }

    return SourceInitFiles(interp);
}
示例#2
0
	void C_Game::Start(int argc, char* argv[])
	{
		InitCmds();

		m_Config.startmode = GAME_START_BOTH;
		m_Config.splashMode = GAME_START_SPLASH;
		m_Config.keyboard = GAME_START_KEYBOARD_US;

		ParseArgs(argc, argv);

		m_Client.InitKeyboard(m_Config.keyboard);

		if(m_Config.splashMode == GAME_START_NOSPLASH) {
			m_Client.NoSplash();
		}

		if(m_Config.startmode == GAME_START_SERVER) {
			m_Server.Start(TCP_SERVER_PORT, true);
		}
		else if(m_Config.startmode == GAME_START_CLIENT) {
			m_Client.Start();
		}
		else {
			m_Server.Start(TCP_SERVER_PORT);
			m_Client.Start();
		}

		m_Client.WaitForStopEvent();
        m_Server.WaitForStopEvent();
	}