Пример #1
0
void PhysicsServerManager::on_servers_changed() {

	String physics_servers("DEFAULT");
	for (int i = get_servers_count() - 1; 0 <= i; --i) {
		physics_servers += "," + get_server_name(i);
	}
	ProjectSettings::get_singleton()->set_custom_property_info(setting_property_name, PropertyInfo(Variant::STRING, setting_property_name, PROPERTY_HINT_ENUM, physics_servers));
}
Пример #2
0
/*
 * Choose a random server out of server array.
 */
char *get_random_server(void)
{
    int i = 0;
    int rnd = 0;

    /* Choose a random number between 0 and i-1 */
    rnd = rand() % get_servers_count();

    return params->servers[rnd];
}
Пример #3
0
String PhysicsServerManager::get_server_name(int p_id) {
	ERR_FAIL_INDEX_V(p_id, get_servers_count(), "");
	return physics_servers[p_id].name;
}
Пример #4
0
/*
 * Parse command line arguments and store them in a global struct.
 */
int parse_cmd_args(int *argc, char *argv[])
{
    int i;
    int ret = 0;
    int param_server_err = 0;
    int param_loglevel_err = 0;

    /* Init struct */
    params->reverse = 0;
    params->help = 0;

    for (i = 0; i < 5; i++)
        params->servers[i] = NULL;

    params->domain = NULL;
    params->inputfile = NULL;
    params->outputfile = NULL;
    params->loglevel = LOG_INFO;
    params->version = 0;

    while (1)
    {
        static struct option long_options[] =
        {
            { "reverse",	no_argument,       0, 'r' },
            { "servers",	required_argument, 0, 's' },
            { "domain",		required_argument, 0, 'd' },
            { "inputfile",	required_argument, 0, 'i' },
            { "outputfile", required_argument, 0, 'o' },
            { "help",		no_argument,       0, 'h' },
            { "version",	no_argument,       0, 'v' },
            { "loglevel",	required_argument, 0, 'l' },
            { 0, 0, 0, 0 }
        };

        /* getopt_long stores the option index here */
        int option_index = 0;
        int c;

        c = getopt_long(*argc, argv, "rs:d:i:o:hvl:", long_options, &option_index);

        /* Detect the end of the options */
        if (c == -1)
            break;

        switch (c)
        {
        case 'r':
            params->reverse = 1;
            break;
        case 's':
            /* Process server parameters */
            ret = parse_server_cmd_arg(optarg, params->servers);
            if (ret != 0) {
                param_server_err = 1;
            }
            break;
        case 'd':
            params->domain = optarg;
            break;
        case 'i':
            params->inputfile = optarg;
            break;
        case 'o':
            params->outputfile = optarg;
            break;
        case 'h':
            params->help = 1;
            break;
        case 'v':
            params->version = 1;
            break;
        case 'l':
            params->loglevel = atoi(optarg);
            if ((params->loglevel < 1) || (params->loglevel > 3))
                param_loglevel_err = 1;
            break;
        }
    }

    /* Check param dependencies */
    if (get_servers_count() == 0) {
        return -1;
    }
    if (params->inputfile == NULL) {
        return -2;
    }
    if (param_server_err == 1) {
        return -3;
    }
    if (param_loglevel_err == 1) {
        return -4;
    }
    if (params->reverse == 0)
    {
        /* Additional parameter checks when doing forward lookup requests */
        if (params->domain == NULL) {
            return -5;
        }
    }

    return 0;
}