Код:
class Game_Map
attr_reader :auto_shadows
def setup(map_id)
@map_id = map_id
@map = load_data(sprintf("Data/Map%03d.rvdata2", @map_id))
@tileset_id = @map.tileset_id
@display_x = 0
@display_y = 0
referesh_vehicles
setup_events
setup_scroll
setup_parallax
setup_battleback
init_auto_shadows
@need_refresh = false
end
def init_auto_shadows
@auto_shadows ||= []
@auto_shadows.clear
data.xsize.times do |x|
data.ysize.times do |y|
shadow_id = data[x, y, 3] & 0b1111
data[x, y, 3] -= shadow_id
next if shadow_id == 0
case shadow_id
when 3; @auto_shadows << [x*32, y*32, 32, 16]
when 5; @auto_shadows << [x*32, y*32, 16, 32]
when 10; @auto_shadows << [x*32+16, y*32, 16, 32]
when 12; @auto_shadows << [x*32, y*32+16, 32, 16]
when 15; @auto_shadows << [x*32, y*32, 32, 32]
else
4.times do |i|
if shadow_id[i] == 1
@auto_shadows << [x*32 + i%2*16, y*32 + i/2*16, 16, 16]
end
end
end
end
end
end
end
Социальные закладки