public void flip_horiz(EAxesFlipType _ft) #endif { m_CHR_attr.ForEach(delegate(CHR_data_attr _attr) { #if DEF_NES || DEF_PCE _attr.hflip(); #elif DEF_SMS m_CHR_data.get_data()[_attr.CHR_ind].transform(CHR_data.ETransform.t_hflip); if (_8x16_mode && _attr.CHR_ind + 1 < m_CHR_data.get_data().Count) { m_CHR_data.get_data()[_attr.CHR_ind + 1].transform(CHR_data.ETransform.t_hflip); } if (_transform_pos) #endif { switch (_ft) { case sprite_data.EAxesFlipType.aft_LOCAL_AXES: { int center = m_size_x >> 1; _attr.x = center - (_attr.x - center) - utils.CONST_CHR_SIDE_PIXELS_CNT; } break; case sprite_data.EAxesFlipType.aft_GLOABL_AXES: { _attr.x = (-_attr.x - utils.CONST_CHR_SIDE_PIXELS_CNT) - m_offset_x; } break; } } }); #if DEF_SMS if (_transform_pos) #endif { if (_ft == sprite_data.EAxesFlipType.aft_GLOABL_AXES) { // find a minimal X value int min_x = int.MaxValue; m_CHR_attr.ForEach(delegate(CHR_data_attr _attr) { if (min_x > _attr.x) { min_x = _attr.x; } }); // attr.x -= min_X m_CHR_attr.ForEach(delegate(CHR_data_attr _attr) { _attr.x -= min_x; }); m_offset_x = min_x; } } }
public void flip_horiz(EAxesFlipType _ft, bool _transform_pos, bool _8x16_mode)
public void flip_vert(EAxesFlipType _ft) #endif { m_CHR_attr.ForEach(delegate(CHR_data_attr _attr) { #if DEF_NES || DEF_PCE _attr.vflip(); #elif DEF_SMS m_CHR_data.get_data()[_attr.CHR_ind].transform(CHR_data.ETransform.t_vflip); if (_8x16_mode && _attr.CHR_ind + 1 < m_CHR_data.get_data().Count) { m_CHR_data.get_data()[_attr.CHR_ind + 1].transform(CHR_data.ETransform.t_vflip); m_CHR_data.swap_CHRs(_attr.CHR_ind, _attr.CHR_ind + 1); } if (_transform_pos) #endif { switch (_ft) { case sprite_data.EAxesFlipType.aft_LOCAL_AXES: { int center = m_size_y >> 1; _attr.y = center - (_attr.y - center) - utils.CONST_CHR_SIDE_PIXELS_CNT; } break; case sprite_data.EAxesFlipType.aft_GLOABL_AXES: { _attr.y = (-_attr.y - utils.CONST_CHR_SIDE_PIXELS_CNT) - m_offset_y; #if !DEF_PCE if (_8x16_mode) { _attr.y -= utils.CONST_CHR_SIDE_PIXELS_CNT; } #endif } break; } } }); #if DEF_SMS if (_transform_pos) #endif { if (_ft == sprite_data.EAxesFlipType.aft_GLOABL_AXES) { // find a minimal Y value int min_y = int.MaxValue; m_CHR_attr.ForEach(delegate(CHR_data_attr _attr) { if (min_y > _attr.y) { min_y = _attr.y; } }); // attr.y -= min_y m_CHR_attr.ForEach(delegate(CHR_data_attr _attr) { _attr.y -= min_y; }); m_offset_y = min_y; } } }
public void flip_horiz(EAxesFlipType _ft)
public void flip_vert(EAxesFlipType _ft, bool _8x16_mode)