コード例 #1
0
ファイル: device.c プロジェクト: go2net/my-com-rec
void write_file_info(u8 cmd)
{
    u16 id;
    u8 i;
//    u8 encode_cnt;
//    u8 mem_addr;
    if(0 == cmd)
    {
        id = 0;
    }
    else
    {
        id = read_file_id(&fat_ptr1);
    }

    write_info(MEM_ACTIVE_DEV, device_active);

    get_rec_mem_info();
    if ((device_active & (~VIRTUAL_DEVICE)) == DEVICE_SDMMC0)
    {
        disk_mus_point[0+encode_cnt].id0 = id;
        disk_mus_point[0+encode_cnt].id1 = 0;
        disk_mus_point[0+encode_cnt].id2 = 0;
        for (i = 9;i != (-1);i--)
        {
            write_info(MEM_SD_PLAYPOINT_ID0+i+mem_addr,((u8 *)(&(disk_mus_point[0+encode_cnt].id0)))[i]);
        }
    }
    else if ((device_active & (~VIRTUAL_DEVICE)) == DEVICE_UDISK)
    {
        disk_mus_point[1 + encode_cnt].id0 = id;
        disk_mus_point[1 + encode_cnt].id1 = 0;
        disk_mus_point[1 + encode_cnt].id2 = 0;
        for (i = 9;i != (-1);i--)
        {
            write_info(MEM_USB_PLAYPOINT_ID0+i+mem_addr,((u8 *)(&(disk_mus_point[1 + encode_cnt].id0)))[i]);
        }
    }
}
コード例 #2
0
ファイル: device.c プロジェクト: go2net/kt-rec-pro
void write_file_info(u8 cmd)
{
    u16 id;
    //u8 i;
//    u8 encode_cnt;
//    u8 mem_addr;
    if(0 == cmd)
    {
        id = 0;
    }
    else
    {
        id = read_file_id(&fat_ptr1);
    }

    write_info(MEM_ACTIVE_DEV, device_active);

   // get_rec_mem_info();
    if ((device_active & (~VIRTUAL_DEVICE)) == DEVICE_SDMMC0)
    {

#if 1
	write_info(MEM_SD_PLAYPOINT_ID0+1 , (u8)(id&(0x00FF)));
	write_info(MEM_SD_PLAYPOINT_ID0, (u8)((id>>8)&(0x00FF)));

	//sd_music_bp = id;
	//write_info(MEM_SD_PLAYPOINT_ID0,(((u8 *)(&sd_music_bp))[0]));
	//write_info(MEM_SD_PLAYPOINT_ID0+1,(((u8 *)(&sd_music_bp))[1]));
#else
        disk_mus_point[0+encode_cnt].id0 = id;
        disk_mus_point[0+encode_cnt].id1 = 0;
        disk_mus_point[0+encode_cnt].id2 = 0;
        for (i = 9;i != (-1);i--)
        {
            write_info(MEM_SD_PLAYPOINT_ID0+i+mem_addr,((u8 *)(&(disk_mus_point[0+encode_cnt].id0)))[i]);
        }
#endif
    }
コード例 #3
0
// -------------------------------------------------------------------------
// get properties for a given artifact image
// -------------------------------------------------------------------------
static t_artifact_properties const& get_properties( t_artifact_type artifact )
{
	assert( artifact >= 0 && artifact < k_artifact_type_count );

	static t_artifact_properties artifact_properties[k_artifact_type_count];
	static bool					 initialized = false;

	if (!initialized)
	{
		t_table_cache			skill_table( "artifacts" );
		t_table_ptr				table = skill_table.get();
		t_artifact_type         type;

		initialized = true;
		for (type = t_artifact_type(0); type < k_artifact_type_count; enum_incr(type))
		{
			t_artifact_properties& properties = artifact_properties[type];

			properties.file_id	= k_artifact_file_none;
			properties.level	= k_artifact_level_count;
			properties.cost		= 0;
			properties.slot		= k_artifact_slot_none;
			properties.cut		= false;
		}

		static t_artifact_type const k_cut_artifacts[] =
		{
			k_artifact_holy_crown,
			k_artifact_crown,
			k_artifact_ruby,
			k_artifact_sapphire,
			k_artifact_vampiric_amulet,
			k_artifact_chain,
			k_artifact_setting,
			k_artifact_left_onyx,
			k_artifact_right_onyx,
			k_artifact_dark_ruby,
			k_artifact_book_of_enchantment,
			k_artifact_chapter_one,
			k_artifact_chapter_two,
			k_artifact_chapter_three,
			k_artifact_chapter_four,
			k_artifact_binding,
			k_artifact_rod_of_chaos,
			k_artifact_rams_horn,
			k_artifact_crown_of_dragon_teeth,
			k_artifact_infant_dragon_wings,
			k_artifact_vial_of_sulfur,
			k_artifact_fire_snake,
			k_artifact_orb_of_summoning,
			k_artifact_sandalwood_key,
			k_artifact_ebony_key,
			k_artifact_ivory_key,
			k_artifact_mahogany_key,
			k_artifact_shield_of_resistance,
			k_artifact_blank_shield,
			k_artifact_left_elephant_tusk,
			k_artifact_right_elephant_tusk,
			k_artifact_rhino_horn,
			k_artifact_rising_sun,
			k_artifact_arms_of_legion,
			k_artifact_head_of_legion,
			k_artifact_legs_of_legion,
			k_artifact_statue_of_legion,
			k_artifact_torso_of_legion,
			k_artifact_victory_banner,
			k_artifact_boots_of_levitation,
		};

		int i;
		for ( i = 0; i < ELEMENTS_OF( k_cut_artifacts ); ++i )
			artifact_properties[ k_cut_artifacts[ i ] ].cut = true;

		std::string			keyword;
		t_table::iterator	line;

		// skip header
		line = table->begin();
		line++;
		line++;
		for (; line != table->end(); line++)
		{
			if (line->size() == 0)
				continue;

			keyword = (*line)[k_keyword_column];
			if (keyword.empty())
				continue;
			type = get_artifact_type( keyword );
			if (type == k_artifact_none)
				continue;

			t_artifact_properties& properties = artifact_properties[type];
			if ( properties.cut )
				continue;

			properties.file_id			 = read_file_id( (*line)[k_file_column] );
			properties.name				 = (*line)[k_name_column];
			properties.name_with_article = (*line)[k_name_with_article_column];
			properties.slot				 = get_artifact_slot( (*line)[k_slot_column] );
			properties.cost				 = atoi((*line)[k_cost_column].c_str() );
			properties.level			 = get_artifact_level( (*line)[k_level_column] );
			properties.help				 = (*line)[k_help_column];
			properties.pickup_text		 = (*line)[k_pickup_text_column];
			properties.history_text      = (*line)[k_history_text_column];
			
			std::string allowed_by_default = (*line)[k_allowed_by_default_column];
			
			int i;
			for ( i = 0; i < (int)allowed_by_default.size() && isspace(allowed_by_default[i]); i++ )
				;

			properties.allowed_by_default = (i < (int)allowed_by_default.size());
		}

#if !defined( NDEBUG )
		for (type = t_artifact_type(0); type < k_artifact_type_count; enum_incr(type))
			assert( artifact_properties[ type ].cut || artifact_properties[type].file_id != k_artifact_file_none );
#endif
	}
	return artifact_properties[artifact];
}