diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/main.ha | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/client/main.ha b/client/main.ha index 9f43aaf..3279fb0 100644 --- a/client/main.ha +++ b/client/main.ha @@ -106,6 +106,8 @@ export fn main() void = { if (did_move) { packet_reader::send(conn, camera_pos: packet_reader::packet_position)!; + request_visible_chunks(pictures, conn, camera_pos); + }; const n = poll::poll(pollfd, poll::NONBLOCK)!; @@ -237,11 +239,17 @@ fn request_visible_chunks(pictures: []drawing::picture, conn: net::socket, camer for (let dx = 0i32; dx < 3; dx += 1) for (let dy = 0i32; dy < 3; dy += 1) { let world_pos = (x0+CHUNKSIZE*dx, y0+CHUNKSIZE*dy): pos; - fmt::printfln("investigating {},{}", world_pos.0, world_pos.1)!; + if (!is_picture_visible(camera_pos, world_pos)) { + fmt::printfln("invisible {},{}", world_pos.0, world_pos.1)!; + continue; + }; + fmt::printfln("visible {},{}, checking availability", world_pos.0, world_pos.1)!; match (find_chunk(pictures,world_pos)) { - case *drawing::picture => yield; + case *drawing::picture => + fmt::printfln("\talready got that one")!; + yield; case null => - fmt::printfln("requesting {},{}", world_pos.0, world_pos.1)!; + fmt::printfln("\trequesting {},{}", world_pos.0, world_pos.1)!; packet_reader::send(conn, world_pos: packet_reader::packet_reqchunk)!; }; }; |