#=============================================================================== # Tilemap to Bitmap #------------------------------------------------------------------------------- # Version: 1.0 # Author: cozziekuns (rmrk) # Last Date Updated: 9/5/2011 #=============================================================================== # Description: #------------------------------------------------------------------------------- # A scripters tool which converts the RGSS2 Tilemap class into a usable Bitmap. #=============================================================================== # Updates # ------------------------------------------------------------------------------ # o 9/5/2011 - Started Script. #=============================================================================== # To-do List #------------------------------------------------------------------------------- # o Nothing. Post some ideas. #=============================================================================== # Instructions #------------------------------------------------------------------------------- # Copy and paste this script above Main Process but below Materials. The only # method is tilemap_to_bitmap, which is stored inside Game_System, and returns # the tilemap as a bitmap. # # Call using: $game_system.tilemap_to_bitmap(map_id), where map_id is the # tilemap you want to convert to a bitmap. #=============================================================================== #============================================================================== # ** Game_System #============================================================================== class Game_System def tilemap_to_bitmap(map_id) data = (load_data(sprintf("Data/Map%03d.rvdata", map_id))).data bitmap = Bitmap.new(data.xsize * 32, data.ysize * 32) for x in 0...data.xsize; for y in 0...data.ysize; for z in 0...data.zsize tile_id = data[x, y, z] next if tile_id == 0 case z when 0, 1 target_x = x * 32 target_y = y * 32 if tile_id >= 2048 dummy = Bitmap.new(32, 32) iterations = (tile_id - 2048) % 48 tile = (tile_id - 2048) / 48 case tile when 0...16 export = Cache.system("TileA1") if tile == 1 src_rect = Rect.new(0, 96, 64, 96) elsif tile == 2 src_rect = Rect.new(192, 0, 64, 96) elsif tile == 3 src_rect = Rect.new(192, 96, 64, 96) else src_rect = Rect.new(0, 0, 64, 96) src_rect.x = ((tile / 4) % 2) * 256 + (tile % 2) * 192 src_rect.y = ((tile / 8) * 192) + ((tile % 4) / 2) * 96 end src_bitmap = Bitmap.new(64, 96) src_bitmap.blt(0, 0, export, src_rect) if [5, 7, 9, 11, 13, 15].include?(tile) case iterations when 0 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 16, 16, 16) when 1 rect_q1 = Rect.new(0, 0, 16, 16) rect_q2 = Rect.new(16, 0, 16, 16) rect_q3 = Rect.new(0, 16, 16, 16) rect_q4 = Rect.new(16, 16, 16, 16) when 2 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 3 rect_q1 = Rect.new(0, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) end else case iterations when 0 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 1 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 2 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 3 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 4 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 5 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 6 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 7 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 8 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 9 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 10 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 11 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 12 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 13 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 14 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 15 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 16 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 17 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 18 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 19 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 20 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 21 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 22 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 23 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 24 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 25 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 26 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 27 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 28 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 29 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 30 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 31 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(16, 80, 16, 16) rect_q4 = Rect.new(32, 80, 16, 16) when 32 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 33 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 34 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 35 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 36 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 37 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 38 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 39 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 40 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 41 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 42 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 43 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 44 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 45 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 46 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) end end dummy.blt(0, 0, src_bitmap, rect_q1) dummy.blt(16, 0, src_bitmap, rect_q2) dummy.blt(0, 16, src_bitmap, rect_q3) dummy.blt(16, 16, src_bitmap, rect_q4) bitmap.blt(target_x, target_y, dummy, dummy.rect) when 16...48 export = Cache.system("TileA2") tile = tile - 16 src_rect = Rect.new(0, 0, 64, 96) src_rect.x = (tile % 8) * 64 src_rect.y = (tile / 8) * 96 src_bitmap = Bitmap.new(64, 96) src_bitmap.blt(0, 0, export, src_rect) case iterations when 0 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 1 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 2 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 3 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 4 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 5 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 6 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 7 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 8 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 9 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 10 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 11 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 12 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 13 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 14 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 15 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 16 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 17 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 18 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 19 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 20 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 21 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 22 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 23 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 24 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 25 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 26 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 27 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 28 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 29 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 30 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 31 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(16, 80, 16, 16) rect_q4 = Rect.new(32, 80, 16, 16) when 32 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 33 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 34 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 35 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 36 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 37 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 38 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 39 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 40 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 41 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 42 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 43 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 44 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 45 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 46 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) end dummy.blt(0, 0, src_bitmap, rect_q1) dummy.blt(16, 0, src_bitmap, rect_q2) dummy.blt(0, 16, src_bitmap, rect_q3) dummy.blt(16, 16, src_bitmap, rect_q4) bitmap.blt(target_x, target_y, dummy, dummy.rect) when 48...80 export = Cache.system("TileA3") tile = tile - 48 src_rect = Rect.new(0, 0, 64, 64) src_rect.x = (tile % 8) * 64 src_rect.y = (tile / 8) * 64 src_bitmap = Bitmap.new(64, 64) src_bitmap.blt(0, 0, export, src_rect) case iterations when 0 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 16, 16, 16) when 1 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 16, 16, 16) rect_q4 = Rect.new(16, 16, 16, 16) when 2 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 16, 16, 16) when 3 rect_q1 = Rect.new(0, 0, 16, 16) rect_q2 = Rect.new(16, 0, 16, 16) rect_q3 = Rect.new(0, 16, 16, 16) rect_q4 = Rect.new(16, 16, 16, 16) when 4 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 5 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(0, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 6 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 7 rect_q1 = Rect.new(0, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 8 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 9 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 10 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 11 rect_q1 = Rect.new(0, 0, 16, 16) rect_q2 = Rect.new(16, 0, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 12 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 13 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 14 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 15 rect_q1 = Rect.new(0, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) end dummy.blt(0, 0, src_bitmap, rect_q1) dummy.blt(16, 0, src_bitmap, rect_q2) dummy.blt(0, 16, src_bitmap, rect_q3) dummy.blt(16, 16, src_bitmap, rect_q4) bitmap.blt(target_x, target_y, dummy, dummy.rect) when 80...128 export = Cache.system("TileA4") tile = tile - 80 if ((tile / 8) % 2) == 1 src_rect = Rect.new(0, 0, 64, 64) src_rect.x = (tile % 8) * 64 src_rect.y = (tile / 16) * 160 + 96 src_bitmap = Bitmap.new(64, 64) src_bitmap.blt(0, 0, export, src_rect) case iterations when 0 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 16, 16, 16) when 1 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 16, 16, 16) rect_q4 = Rect.new(16, 16, 16, 16) when 2 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 16, 16, 16) when 3 rect_q1 = Rect.new(0, 0, 16, 16) rect_q2 = Rect.new(16, 0, 16, 16) rect_q3 = Rect.new(0, 16, 16, 16) rect_q4 = Rect.new(16, 16, 16, 16) when 4 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 5 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(0, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 6 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 7 rect_q1 = Rect.new(0, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 8 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 9 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 10 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 11 rect_q1 = Rect.new(0, 0, 16, 16) rect_q2 = Rect.new(16, 0, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 12 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 13 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 14 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 15 rect_q1 = Rect.new(0, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) end else src_rect = Rect.new(0, 0, 64, 96) src_rect.x = (tile % 8) * 64 src_rect.y = (tile / 16) * 160 src_bitmap = Bitmap.new(64, 96) src_bitmap.blt(0, 0, export, src_rect) case iterations when 0 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 1 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 2 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 3 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 4 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 5 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 6 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 7 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 8 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 9 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 10 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 11 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 12 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 13 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 14 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 15 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 16 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 17 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 18 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 19 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 20 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 21 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 22 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 23 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 24 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 25 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 26 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 27 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 28 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 29 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 30 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 31 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(16, 80, 16, 16) rect_q4 = Rect.new(32, 80, 16, 16) when 32 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 33 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 34 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(16, 48, 16, 16) when 35 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 16, 16, 16) when 36 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 37 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 16, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 38 rect_q1 = Rect.new(32, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 39 rect_q1 = Rect.new(32, 0, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 40 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(16, 64, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 41 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 0, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 42 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(0, 48, 16, 16) rect_q4 = Rect.new(48, 48, 16, 16) when 43 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(16, 32, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(16, 80, 16, 16) when 44 rect_q1 = Rect.new(0, 64, 16, 16) rect_q2 = Rect.new(48, 64, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 45 rect_q1 = Rect.new(32, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(32, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) when 46 rect_q1 = Rect.new(0, 32, 16, 16) rect_q2 = Rect.new(48, 32, 16, 16) rect_q3 = Rect.new(0, 80, 16, 16) rect_q4 = Rect.new(48, 80, 16, 16) end end dummy.blt(0, 0, src_bitmap, rect_q1) dummy.blt(16, 0, src_bitmap, rect_q2) dummy.blt(0, 16, src_bitmap, rect_q3) dummy.blt(16, 16, src_bitmap, rect_q4) bitmap.blt(target_x, target_y, dummy, dummy.rect) end else iterations = 0 tile = (tile_id - 1408) - 128 src_rect = Rect.new((tile % 8) * 32, (tile / 8) * 32, 32, 32) export = Cache.system("TileA5") bitmap.blt(target_x, target_y, export, src_rect) end when 2 target_x = x * 32 target_y = y * 32 iterations = tile_id / 256 tile = tile_id % 256 case iterations when 0 export = Cache.system("TileB") when 1 export = Cache.system("TileC") when 2 export = Cache.system("TileD") when 3 export = Cache.system("TileE") end src_rect = Rect.new(0, 0, 32, 32) src_rect.x = (tile % 8) * 32 + (tile / 128 == 0 ? 0 : 256) src_rect.y = (tile / 8) * 32 - (tile / 128 == 0 ? 0 : 512) bitmap.blt(target_x, target_y, export, src_rect) end end; end; end return bitmap end end