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]); } } }
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 }
// ------------------------------------------------------------------------- // 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]; }