class Game_Character #-------------------------------------------------------------------------- # *initialize #-------------------------------------------------------------------------- alias old_ini initialize def initialize old_ini @original_pattern = 2 end #-------------------------------------------------------------------------- # * strength #-------------------------------------------------------------------------- def straighten @pattern = 2 if @walk_anime or @step_anime @anime_count = 0 endendclass Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # * Update Transfer Origin Bitmap #-------------------------------------------------------------------------- def update_bitmap if @tile_id != @character.tile_id or @character_name != @character.character_name or @character_index != @character.character_index @tile_id = @character.tile_id @character_name = @character.character_name @character_index = @character.character_index if @tile_id > 0 sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32; sy = @tile_id % 256 / 8 % 16 * 32; self.bitmap = tileset_bitmap(@tile_id) self.src_rect.set(sx, sy, 32, 32) self.ox = 16 self.oy = 32 else self.bitmap = Cache.character(@character_name) sign = @character_name[/^[\!\$\#\%]./] if sign != nil # for single VX character if sign.include?('$') @cw = bitmap.width / 3 @ch = bitmap.height / 4 @vx_or_xp = 0 # for XP single character elsif sign.include?('#') @cw = bitmap.width / 4 @ch = bitmap.height / 4 @vx_or_xp = 1 # for XP character set in VX format else @cw = bitmap.width / 16 @ch = bitmap.height / 8 @vx_or_xp = 1 end # for VX character set else @cw = bitmap.width / 12 @ch = bitmap.height / 8 @vx_or_xp = 0 end self.ox = @cw / 2 self.oy = @ch end end end #-------------------------------------------------------------------------- # ? update Transfer origin rect #-------------------------------------------------------------------------- def update_src_rect if @tile_id == 0 index = @character.character_index # XP format if @vx_or_xp == 1 pattern = @character.pattern < 4 ? @character.pattern : 1 sx = (index % 4 * 4 + pattern) * @cw # VX format else pattern = @character.pattern < 3 ? @character.pattern : 1 sx = (index % 4 * 3 + pattern) * @cw end sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch self.src_rect.set(sx, sy, @cw, @ch) end endend