コード例 #1
0
ファイル: rect.cpp プロジェクト: kimjoy2002/touhou_crawl
rand_rect_iterator::rand_rect_iterator(const coord_def &start_, int x_size_, int y_size_, bool no_inside):
start(start_),current(0),x_size(x_size_),y_size(y_size_)
{
	for(int i=-x_size; i<=x_size; i++)
	{
		for(int j=-y_size; j<=y_size; j++)
		{
			if(!no_inside || j != 0 || i != 0)
				dq.push_back(coord_def(i+start.x,j+start.y));
		}
	}
	rand_shuffle(dq.begin(),dq.end());
}
コード例 #2
0
ファイル: encode.c プロジェクト: DHODoS/snort
static inline uint16_t IpId_Next ()
{
#ifdef REG_TEST
    uint16_t id = htons(s_id_index + 1);
#else
    uint16_t id = s_id_pool[s_id_index];
#endif
    s_id_index = (s_id_index + 1) % IP_ID_COUNT;

    if ( !s_id_index )
        rand_shuffle(s_rand, s_id_pool, sizeof(s_id_pool), 1);

    return id;
}
コード例 #3
0
ファイル: rect.cpp プロジェクト: kimjoy2002/touhou_crawl
dif_rect_iterator::dif_rect_iterator(const coord_def &start_, int distan_, bool random_):
start(start_),current(0),distan(distan_)
{	
	deque<coord_def> temp;
	for(int i=-distan; i<=distan; i++)
	{
		for(int j=-distan; j<=distan; j++)
		{
			if(abs(i)+abs(j) != distan_*2 || distan_ == 0)
				temp.push_back(coord_def(i+start.x,j+start.y));
		}
	}
	rand_shuffle(temp.begin(),temp.end());
	for(unsigned int i=0;i<temp.size();i++)
		dq.push_back(temp[i]);
	if(!random_)
		sort_distan(true);
}
コード例 #4
0
ファイル: atifact.cpp プロジェクト: kimjoy2002/touhou_crawl
void MakeArtifact(item* item_, int good_bad_)
{
	int num_ = 1+randA(1+randA(3));
	deque<int> temp;
	for(int i=0; i<RGT_MAX; i++)
	{
		if(item_->type >= ITM_ARMOR_BODY_FIRST && item_->type < ITM_ARMOR_BODY_LAST)
		{
			if(ArmourExceptopn((armour_kind)item_->value5) == i)
				continue;
		}

		temp.push_back(i);
	}
	rand_shuffle(temp.begin(),temp.end());
	for(int i = 0; i < num_ ; i++)
	{
		if(item_->value1 != temp[i] || item_->type != ITM_RING)
		{
			int gb_ = randA(3)?good_bad_:good_bad_*-1;
			item_->atifact_vector.push_back(atifact_infor(temp[i],GetAtifactValue((ring_type)temp[i],gb_)));
		}
		else
			num_++;
	}

	if(item_->type>=ITM_WEAPON_FIRST && item_->type<ITM_WEAPON_LAST)
	{
		item_->value4 = randA(9)+randA(3)+randA(3)-4;
		//item_->value3 = randA(9)+randA(3)+randA(3)-4;
	}		
	if(item_->type>=ITM_ARMOR_FIRST && item_->type< ITM_ARMOR_LAST)
	{
		item_->value4 = randA(item_->value1)+randA(2)+randA(2)-2;
	}
	
	item_->second_name.name = "아티펙트 ";
	item_->second_name.name_type = false;

}
コード例 #5
0
ファイル: map_file.cpp プロジェクト: kimjoy2002/touhou_crawl
void initMap()
{
	map_list.dungeon_enter[TEMPLE].set(false,0,0,rand_int(2,5));
	map_list.dungeon_enter[MISTY_LAKE].set(false,0,0,rand_int(7,9));
	map_list.dungeon_enter[YOUKAI_MOUNTAIN].set(false,0,0,MISTY_LAKE_LEVEL+rand_int(1,2));
	map_list.dungeon_enter[SCARLET_M].set(false,0,0,MISTY_LAKE_LEVEL+rand_int(3,4));	
	map_list.dungeon_enter[SCARLET_L].set(false,0,0,SCARLET_LEVEL+rand_int(1,2));	
	map_list.dungeon_enter[SCARLET_U].set(false,0,0,SCARLET_LEVEL_LAST_LEVEL);
	map_list.dungeon_enter[BAMBOO].set(false,0,0,rand_int(10,13));
	map_list.dungeon_enter[SUBTERRANEAN].set(false,0,0,DEPTH_LEVEL+rand_int(1,3));



	map_list.dungeon_enter[YUKKURI_D].set(false,0,0,YOUKAI_MOUNTAIN_LAST_LEVEL);	
	map_list.dungeon_enter[DEPTH].set(false,0,0,MAX_DUNGEUN_LEVEL);	
	map_list.dungeon_enter[DREAM_D].set(false,0,0,DEPTH_LEVEL+rand_int(1,3));
	//map_list.dungeon_enter[MOON_D].set(false,0,0,rand_int(10,13));
	map_list.dungeon_enter[PANDEMONIUM].set(false,0,0,DEPTH_LEVEL+rand_int(1,3));
	map_list.dungeon_enter[HAKUREI_D].set(false,0,0,DEPTH_LAST_LEVEL);

	map_list.god_num = 10;
	map_list.bamboo_count = 0;
	map_list.bamboo_rate = 0;
	//map_list.tutorial = 0;
	map_list.bamboo_tewi = false;
	deque<int> dq;
	for(int i=0;i<GT_LAST;i++)
	{
		if(i != GT_SHIKIEIKI && i != GT_SEIJA) //세이자는 무조건 나온다.
			dq.push_back(i);
	}
	rand_shuffle(dq.begin(),dq.end());
	for(int i=0;i<GT_LAST-map_list.god_num;i++)
	{
		map_list.temple[dq[i]].set(false,0,0,rand_int(1,5));
	}
	map_list.temple[GT_SEIJA].set(false,0,0,rand_int(1,5));
	//map_list.temple[GT_SUWAKO].set(false,0,0,0);
}