Ejemplo n.º 1
0
/**
 *
 *  rct2: 0x006E3B43
 */
void title_handle_keyboard_input()
{
	rct_window *w;
	int key;

	if (gOpenRCT2Headless) {
		return;
	}

	if (!gConsoleOpen) {
		// Handle modifier keys and key scrolling
		gInputPlaceObjectModifier = PLACE_OBJECT_MODIFIER_NONE;
		if (RCT2_GLOBAL(0x009E2B64, uint32) != 1) {
			if (gKeysState[SDL_SCANCODE_LSHIFT] || gKeysState[SDL_SCANCODE_RSHIFT])
				gInputPlaceObjectModifier |= PLACE_OBJECT_MODIFIER_SHIFT_Z;
			if (gKeysState[SDL_SCANCODE_LCTRL] || gKeysState[SDL_SCANCODE_RCTRL])
				gInputPlaceObjectModifier |= PLACE_OBJECT_MODIFIER_COPY_Z;
			if (gKeysState[SDL_SCANCODE_LALT] || gKeysState[SDL_SCANCODE_RALT])
				gInputPlaceObjectModifier |= 4;
#ifdef __MACOSX__
			if (gKeysState[SDL_SCANCODE_LGUI] || gKeysState[SDL_SCANCODE_RGUI]) {
				gInputPlaceObjectModifier |= 8;
			}
#endif
		}
	}

	while ((key = get_next_key()) != 0) {
		if (key == 255)
			continue;

		// Reserve backtick for console
		if (key == SDL_SCANCODE_GRAVE) {
			if (gConfigGeneral.debugging_tools || gConsoleOpen) {
				window_cancel_textbox();
				console_toggle();
			}
			continue;
		} else if (gConsoleOpen) {
			console_input(key);
			continue;
		}

		key |= gInputPlaceObjectModifier << 8;

		w = window_find_by_class(WC_CHANGE_KEYBOARD_SHORTCUT);
		if (w != NULL) {
			keyboard_shortcut_set(key);
		} else {
			w = window_find_by_class(WC_TEXTINPUT);
			if (w != NULL) {
				window_text_input_key(w, key);
			}
			
			if (key == gShortcutKeys[SHORTCUT_SCREENSHOT]) {
				keyboard_shortcut_handle_command(SHORTCUT_SCREENSHOT);
			}
		}
	}
}
Ejemplo n.º 2
0
datum
gdbm_nextkey (GDBM_FILE dbf, datum key)
{
  datum  return_val;		/* The return value. */
  int    elem_loc;		/* The location in the bucket. */
  char  *find_data;		/* Data pointer returned by _gdbm_findkey. */
  int    hash_val;		/* Returned by _gdbm_findkey. */

  /* Initialize the gdbm_errno variable. */
  gdbm_errno = GDBM_NO_ERROR;

  /* Set the default return value for no next entry. */
  return_val.dptr = NULL;

  /* Do we have a valid key? */
  if (key.dptr == NULL) return return_val;

  /* Find the key.  */
  elem_loc = _gdbm_findkey (dbf, key, &find_data, &hash_val);
  if (elem_loc == -1) return return_val;

  /* Find the next key. */  
  get_next_key (dbf, elem_loc, &return_val);

  return return_val;
}
Ejemplo n.º 3
0
int KeyGenerator::get_next_key(uint64_t& prefix,  bool is_read)
{
  int err = 0;

  err = get_next_key(prefix, is_read ? GEN_RANDOM : GEN_SEQ);
  if (0 != err && OB_NEED_RETRY != err)
  {
    TBSYS_LOG(WARN, "failed to get prefix, err=%d", err);
  }

  return err;
}
Ejemplo n.º 4
0
datum
gdbm_firstkey (GDBM_FILE dbf)
{
  datum return_val;		/* To return the first key. */

  /* Set the default return value for not finding a first entry. */
  return_val.dptr = NULL;

  /* Initialize the gdbm_errno variable. */
  gdbm_errno = GDBM_NO_ERROR;

  /* Get the first bucket.  */
  _gdbm_get_bucket (dbf, 0);

  /* Look for first entry. */
  get_next_key (dbf, -1, &return_val);

  return return_val;
}
Ejemplo n.º 5
0
/* increase the key by one */
int get_next_key(int pos) {
	for (int i = 0; i < base; ++i) {
		if (key[pos] == charset[i]) {
			if ((i + 1) < base) {
				key[pos] = charset[i+1];

				return 0;
			} else {
				key[pos] = charset[0];

				if ((pos + 1) < keysize_max)
					return get_next_key(pos + 1);
				else
					return END_OF_KEYRANGE;
			}
		}
	}

	key[pos] = charset[0];

	return 0;
}
Ejemplo n.º 6
0
static int check_format(char *string) {
	char *str;
	if(string[0] != '+') {
		printf("invalid format string use '+%%N'\n");
		return -1;
	}
	if(NULL != (str = get_next_key(string))) {
		switch(str[0]) {
		case 'N': {
			struct timeval tv;
			time64_t ns;

			ktime_get_timeval(&tv);
			ns = timeval_to_ns(&tv);
			printf("%lld\n", ns % MAX_NANOSECONDS);
			break;
		}
		default:
			break;
		}
	}
	return 0;
}
Ejemplo n.º 7
0
void input_handle_keyboard(bool isTitle)
{
    if (gOpenRCT2Headless)
    {
        return;
    }

    if (!gConsoleOpen)
    {
        if (!isTitle)
        {
            // Handle mouse scrolling
            if (input_get_state() == INPUT_STATE_NORMAL && gConfigGeneral.edge_scrolling)
            {
                if (!(gInputPlaceObjectModifier & (PLACE_OBJECT_MODIFIER_SHIFT_Z | PLACE_OBJECT_MODIFIER_COPY_Z)))
                {
                    game_handle_edge_scroll();
                }
            }
        }

        // Handle modifier keys and key scrolling
        gInputPlaceObjectModifier = PLACE_OBJECT_MODIFIER_NONE;
        const uint8 * keysState   = context_get_keys_state();
        if (keysState[SDL_SCANCODE_LSHIFT] || keysState[SDL_SCANCODE_RSHIFT])
        {
            gInputPlaceObjectModifier |= PLACE_OBJECT_MODIFIER_SHIFT_Z;
        }
        if (keysState[SDL_SCANCODE_LCTRL] || keysState[SDL_SCANCODE_RCTRL])
        {
            gInputPlaceObjectModifier |= PLACE_OBJECT_MODIFIER_COPY_Z;
        }
        if (keysState[SDL_SCANCODE_LALT] || keysState[SDL_SCANCODE_RALT])
        {
            gInputPlaceObjectModifier |= 4;
        }
#ifdef __MACOSX__
        if (keysState[SDL_SCANCODE_LGUI] || keysState[SDL_SCANCODE_RGUI])
        {
            gInputPlaceObjectModifier |= 8;
        }
#endif
        if (!isTitle)
        {
            game_handle_key_scroll();
        }
    }

    if (gConfigGeneral.use_virtual_floor)
    {
        if (gInputPlaceObjectModifier & (PLACE_OBJECT_MODIFIER_COPY_Z | PLACE_OBJECT_MODIFIER_SHIFT_Z))
            virtual_floor_enable();
        else
            virtual_floor_disable();
    }

    // Handle key input
    sint32 key;
    while (!gOpenRCT2Headless && (key = get_next_key()) != 0)
    {
        if (key == 255)
            continue;

        // Reserve backtick for console
        if (key == SDL_SCANCODE_GRAVE)
        {
            if ((gConfigGeneral.debugging_tools && !context_is_input_active()) || gConsoleOpen)
            {
                window_cancel_textbox();
                console_toggle();
            }
            continue;
        }
        else if (gConsoleOpen)
        {
            input_handle_console(key);
            continue;
        }
        else if (!isTitle && gChatOpen)
        {
            input_handle_chat(key);
            continue;
        }

        key |= gInputPlaceObjectModifier << 8;

        rct_window * w = window_find_by_class(WC_TEXTINPUT);
        if (w != nullptr)
        {
            char keychar = input_scancode_to_rct_keycode(key & 0xFF);
            window_text_input_key(w, keychar);
        }
        else if (!gUsingWidgetTextBox)
        {
            w = window_find_by_class(WC_CHANGE_KEYBOARD_SHORTCUT);
            if (w != nullptr)
            {
                keyboard_shortcuts_set(key);
                window_close_by_class(WC_CHANGE_KEYBOARD_SHORTCUT);
                window_invalidate_by_class(WC_KEYBOARD_SHORTCUT_LIST);
            }
            else
            {
                keyboard_shortcut_handle(key);
            }
        }
    }
}
Ejemplo n.º 8
0
/**
 *
 *  rct2: 0x006E3B43
 */
void game_handle_keyboard_input()
{
	rct_window *w;
	sint32 key;

	if (!gConsoleOpen) {
		// Handle mouse scrolling
		if (_inputState == INPUT_STATE_NORMAL && gConfigGeneral.edge_scrolling) {
			if (!(gInputPlaceObjectModifier & (PLACE_OBJECT_MODIFIER_SHIFT_Z | PLACE_OBJECT_MODIFIER_COPY_Z))) {
				game_handle_edge_scroll();
			}
		}

		// Handle modifier keys and key scrolling
		gInputPlaceObjectModifier = PLACE_OBJECT_MODIFIER_NONE;
		if (gKeysState[SDL_SCANCODE_LSHIFT] || gKeysState[SDL_SCANCODE_RSHIFT]) {
			gInputPlaceObjectModifier |= PLACE_OBJECT_MODIFIER_SHIFT_Z;
		}
		if (gKeysState[SDL_SCANCODE_LCTRL] || gKeysState[SDL_SCANCODE_RCTRL]) {
			gInputPlaceObjectModifier |= PLACE_OBJECT_MODIFIER_COPY_Z;
		}
		if (gKeysState[SDL_SCANCODE_LALT] || gKeysState[SDL_SCANCODE_RALT]) {
			gInputPlaceObjectModifier |= 4;
		}
#ifdef __MACOSX__
		if (gKeysState[SDL_SCANCODE_LGUI] || gKeysState[SDL_SCANCODE_RGUI]) {
			gInputPlaceObjectModifier |= 8;
		}
#endif
		game_handle_key_scroll();
	}


	// Handle key input
	while (!gOpenRCT2Headless && (key = get_next_key()) != 0) {
		if (key == 255)
			continue;

		// Reserve backtick for console
		if (key == SDL_SCANCODE_GRAVE) {
			if ((gConfigGeneral.debugging_tools && !platform_is_input_active()) || gConsoleOpen) {
				window_cancel_textbox();
				console_toggle();
			}
			continue;
		} else if (gConsoleOpen) {
			console_input(key);
			continue;
		} else if (gChatOpen) {
			chat_input(key);
			continue;
		}

		key |= gInputPlaceObjectModifier << 8;

		w = window_find_by_class(WC_CHANGE_KEYBOARD_SHORTCUT);
		if (w != NULL) {
			keyboard_shortcut_set(key);
		} else {
			w = window_find_by_class(WC_TEXTINPUT);
			if (w != NULL) {
				window_text_input_key(w, key);
			} else if (!gUsingWidgetTextBox) {
				keyboard_shortcut_handle(key);
			}
		}
	}
}
Ejemplo n.º 9
0
/**
 * 
 *  rct2: 0x006E3B43
 */
void game_handle_keyboard_input()
{
	rct_window *w;
	int key;

	// Handle mouse scrolling
	if (RCT2_GLOBAL(RCT2_ADDRESS_ON_TUTORIAL, uint8) == 0)
		if (RCT2_GLOBAL(RCT2_ADDRESS_CONFIG_EDGE_SCROLLING, uint8) != 0)
			if (RCT2_GLOBAL(RCT2_ADDRESS_INPUT_STATE, uint8) == 1)
				if (!(RCT2_GLOBAL(RCT2_ADDRESS_PLACE_OBJECT_MODIFIER, uint8) & 3))
					game_handle_edge_scroll();

	// Handle modifier keys and key scrolling
	RCT2_GLOBAL(RCT2_ADDRESS_PLACE_OBJECT_MODIFIER, uint8) = 0;
	if (RCT2_GLOBAL(0x009E2B64, uint32) != 1) {
		if (gKeysState[SDL_SCANCODE_LSHIFT] || gKeysState[SDL_SCANCODE_RSHIFT])
			RCT2_GLOBAL(RCT2_ADDRESS_PLACE_OBJECT_MODIFIER, uint8) |= 1;
		if (gKeysState[SDL_SCANCODE_LCTRL] || gKeysState[SDL_SCANCODE_RCTRL])
			RCT2_GLOBAL(RCT2_ADDRESS_PLACE_OBJECT_MODIFIER, uint8) |= 2;
		if (RCT2_GLOBAL(RCT2_ADDRESS_ON_TUTORIAL, uint8) == 0)
			game_handle_key_scroll();
	}


	// Handle key input
	while ((key = get_next_key()) != 0) {
		if (key == 255)
			continue;

		key |= RCT2_GLOBAL(RCT2_ADDRESS_PLACE_OBJECT_MODIFIER, uint8) << 8;

		w = window_find_by_id(WC_CHANGE_KEYBOARD_SHORTCUT, 0);
		if (w != NULL)
			set_shortcut(key);
		else if (RCT2_GLOBAL(RCT2_ADDRESS_ON_TUTORIAL, uint8) == 1)
			tutorial_stop();
		else
			handle_shortcut(key);
	}

	if (RCT2_GLOBAL(RCT2_ADDRESS_ON_TUTORIAL, uint8) == 0)
		return;

	// Tutorial and the modifier key
	if (RCT2_GLOBAL(RCT2_ADDRESS_ON_TUTORIAL, uint8) == 1) {
		int eax, ebx, ecx, edx, esi, edi, ebp;
		RCT2_CALLFUNC_X(0x0066EEB4, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
		eax &= 0xFF;
		RCT2_GLOBAL(RCT2_ADDRESS_PLACE_OBJECT_MODIFIER, uint8) = eax;
		if (RCT2_GLOBAL(RCT2_ADDRESS_PLACE_OBJECT_MODIFIER, uint8) & 4) {
			window_tooltip_close();
			if ((w = window_get_main()) != NULL) {
				RCT2_CALLPROC_X(0x006EA2AA, 0, 0, 0, 0, (int)w, RCT2_GLOBAL(0x009DEA72, uint16), 0);
				RCT2_GLOBAL(0x009DEA72, uint16)++;
			}
		}
	} else {
		if (!(RCT2_GLOBAL(RCT2_ADDRESS_PLACE_OBJECT_MODIFIER, uint8) & 4)) {
			window_tooltip_close();
			if ((w = window_get_main()) != NULL) {
				RCT2_CALLPROC_X(0x006EA2AA, 0, 0, 0, 0, (int)w, RCT2_GLOBAL(0x009DEA72, uint16), 0);
				RCT2_GLOBAL(0x009DEA72, uint16)++;
			}
		}

		// Write tutorial input
		RCT2_CALLPROC_X(0x0066EEE1, RCT2_GLOBAL(RCT2_ADDRESS_PLACE_OBJECT_MODIFIER, uint8), 0, 0, 0, 0, 0, 0);
	}
}
Ejemplo n.º 10
0
int	NavHelp::get_previous_key( const char *help_key, navh_eHelpFile file_type, const char *file_name,
				   bool strict, char *prev_key)
{
  FILE	*file;
  char	line[200];
  char	key[80];
  char	key_part[4][40];
  char	include_file[80];
  char	subject[80];
  char	subject_part[4][40];
  int	key_nr;
  int	subject_nr;
  int	hit = 0;
  int 	sts;
  int	i;  
  char	*s;
  char  prev[80] = "";

  if ( help_key) {
    cdh_ToLower( key, help_key);
  }

  // Open file
  file = navhelp_open_file( this, file_type, file_name);
  if ( !file) return NAV__NOFILE;

  key_nr = dcli_parse( key, " 	", "", (char *)key_part,
		       sizeof( key_part) / sizeof( key_part[0]), 
		       sizeof( key_part[0]), 0);


  sts = dcli_read_line( line, sizeof( line), file);
  while ( ODD(sts)) {
    if ( cdh_NoCaseStrncmp( line, "<include>", 9) == 0) {      
      help_remove_spaces( &line[9], include_file);
      // Replace symbol for language
      if ( strncmp( include_file, "$pwr_lang/", 10) == 0) {
        char lng_include_file[200];

	sprintf( lng_include_file, "$pwr_exe/%s/%s", Lng::get_language_str(),
		 &include_file[10]);
	strcpy( include_file, lng_include_file);
      }

      if ( !noprop) {
	sts = get_next_key( help_key, navh_eHelpFile_Other, 
			    include_file, strict, prev_key);
	if ( ODD(sts)) {
	  fclose( file);
	  return sts;
	}
      }
      hit = 0;
    }
    if ( cdh_NoCaseStrncmp( line, "<topic>", 7) == 0) {
      if ( (s = strstr( line, "<style>")) || (s = strstr( line, "<STYLE>"))) {
	*s = 0;
      }

      help_remove_spaces( &line[7], subject);
      cdh_ToLower( subject, subject);
      subject_nr = dcli_parse( subject, " 	", "", (char *)subject_part,
                	sizeof( subject_part) / sizeof( subject_part[0]),
			sizeof( subject_part[0]), 0);
      if ( key_nr == subject_nr ) {
	for ( i = 0; i < key_nr; i++) {
	  if ( (!strict && strncmp( subject_part[i], key_part[i], strlen(key_part[i])) == 0) ||
	       (strict && strcmp( subject_part[i], key_part[i]) == 0)) {
	    if ( i == key_nr - 1) {
	      hit = 1;
	      strcpy( prev_key, prev);
	    }
	  }
	  else
	    break;
	}
      }
      if ( hit) 
	break;

      strcpy( prev, subject);
    }
    sts = dcli_read_line( line, sizeof( line), file);
  }
  fclose( file);

  if ( !hit || strcmp( prev, "") == 0)
    return NAV__TOPICNOTFOUND;
  return NAV__SUCCESS;
}
Ejemplo n.º 11
0
int main(int argc, char *argv[])
{
	int i;
	int ret;
//	CONTAINER *tmp;
	int resume = 0;
	struct sockaddr_in sin;
	int16_t port;


	FILE *file;
	char *line;
	char *ip;

	srandom(time(NULL));
	
	ret = log4c_init();
	if (ret != 0) {
		printf("log4c_init failed[%d]\n", ret);		
		return ret;
	}
	mycat = log4c_category_get("six13log.log.app");
	if (!mycat) {
		printf("log4c_category_get(\"six13log.log.app.application1\"); failed\n");
		return (0);
	}

	obj_count_loger = log4c_category_get("count_obj_cate");
	if (!obj_count_loger) {
		printf("log4c_category_get(\"six13log.log.app.application2\"); failed\n");
		return (0);
	}

	for (i = 1; i < argc; ++i) {
		if (strcmp(argv[i], "-d") == 0) {
			change_to_deamon();
			--argc;
			break;
		}
	}
	if (argc > 1)
		resume = 1;
	
	ret = load_all_config();
	if (ret != 0) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "load all config fail[%d]\n", ret);
		return (-1);
	}

	ret = init_gm_system();
	if (ret != 0) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "init gm system fail[%d]\n", ret);
		return (-1);		
	}

	sc_interface = load_game_script();
	if (!sc_interface) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "load script fail[%d]\n");		
		return (-1);
	}
	
	log4c_category_log(mycat, LOG4C_PRIORITY_INFO, "game_srv run");

	role_rbdata_init_head();	

	file = fopen("../server_info.ini", "r");
	if (!file) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "open server_info.ini failed[%d]", errno);				
		return (-1);
	}
	line = get_first_key(file, "game_srv_key");
	key = strtoul(get_value(line), NULL, 0);
	if (key == 0 || key == ULONG_MAX) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "config file wrong, no game_srv_key");
		return (-1);
	}
	
	if (alloc_shared_mem(resume) != 0) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "alloc_shared_mem[%d] failed", resume);		
		return (-1);
	}

	ret = init_all_objs(resume);
	if (ret != 0) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "init_all_objs[%d] failed[%d]", resume, ret);
		return (-1);		
	}

	ret = create_all_static_scene();
	if (ret != 0) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "creeate_all_static_scene[%d] failed[%d]", resume, ret);
		return (-1);		
	}

//	test_fight();
//	return (0);
	
	ret = game_event_init();
	if (ret != 0) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "game_event_init failed[%d]", ret);		
		return (-1);
	}


	line = get_first_key(file, "conn_srv_ip");	
	for (i = 0; i < MAX_CONN_SRV && line != NULL; ++i) {
		memset(&sin, 0, sizeof(sin));
		sin.sin_family = AF_INET;
		conn_server[i].cb_recv = gamesrv_cb_conn_recv;
		ip = get_value(line);
		if (!ip)
			break;
		line = get_next_key(file, "conn_srv_port");
		if (!line)
			break;
		port = atoi(get_value(line));
		if (port <= 0)
			break;
		line = get_next_key(file, "conn_srv_ip");
		sin.sin_port = htons(port);
		ret = evutil_inet_pton(AF_INET, ip, &sin.sin_addr);
		if (ret != 1) {
			log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "evutil_inet_pton failed[%d], ip[%s] port[%d]", ret, ip, port);
			return (-1);		
		}
		ret = game_add_connect_event((struct sockaddr *)&sin, sizeof(sin), &conn_server[i]);
		if (ret < 0) {
			log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "game_add_connect_event to conn server failed[%d], ip[%s] port[%d]", ret, ip, port);
			return (-1);		
		}
		conn_server[i].fd = ret;
	}
	if (i == 0) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "config file wrong, no conn_srv");		
		return (-1);				
	}
	max_conn_srv = i;

	line = get_first_key(file, "db_srv_ip");	
	for (i = 0; i < MAX_ROLEDB_SRV && line != NULL; ++i) {
		memset(&sin, 0, sizeof(sin));
		sin.sin_family = AF_INET;
		roledb_server[i].cb_recv = gamesrv_cb_roledb_recv;		
		ip = get_value(line);
		if (!ip)
			break;
		line = get_next_key(file, "db_srv_port");
		if (!line)
			break;
		port = atoi(get_value(line));
		if (port <= 0)
			break;
		line = get_next_key(file, "db_srv_ip");
		sin.sin_port = htons(port);
		ret = evutil_inet_pton(AF_INET, ip, &sin.sin_addr);
		if (ret != 1) {
			log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "evutil_inet_pton failed[%d], ip[%s] port[%d]", ret, ip, port);
			return (-1);		
		}
		ret = game_add_connect_event((struct sockaddr *)&sin, sizeof(sin), &roledb_server[i]);
		if (ret < 0) {
			log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "game_add_connect_event to conn server failed[%d], ip[%s] port[%d]", ret, ip, port);
			return (-1);		
		}
		roledb_server[i].fd = ret;
	}
	if (i == 0) {
		log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "config file wrong, no roldb_srv");		
		return (-1);				
	}
	max_roledb_srv = i;	
	active_roledb_srv = &roledb_server[0];	
	fclose(file);

	struct timeval t1 = {5, 0};	
	add_timer(t1, &log_object_timer);
	log_object_timer.ev_callback = cb_log_object_timer;

	
	ret = event_base_loop(base, 0);
	log4c_category_log(mycat, LOG4C_PRIORITY_INFO, "event_base_loop stoped[%d]", ret);		

/*	
	tmp = create_container();	
	tmp = create_container();
	tmp = create_container();
	destory_container(tmp);	
	tmp = create_container();
	destory_container(tmp);
	tmp = create_container();
*/

/*	
	GAME_CIRCLEQ_FOREACH(tmp, pool_container_freed, base.list_free) {
		printf("tmp[idx] = %d:%d\n", tmp->base.list_free.idx, tmp->base.list_used.idx);
	}


	printf("\n ================== \n");
	GAME_CIRCLEQ_FOREACH(tmp, pool_container_used, base.list_used) {
		printf("tmp[idx] = %d:%d\n", tmp->base.list_free.idx, tmp->base.list_used.idx);
	}
*/	
	return (0);
}