feat(gui): add toolbar widget
feat(gui): add grid_select, toggle, panel, status_bar, image widgets fix(bsp): fill in exterior cells
This commit is contained in:
parent
5a565844dd
commit
8d491612ab
63 changed files with 3150 additions and 1686 deletions
|
|
@ -158,7 +158,7 @@ usize pxl8_protocol_deserialize_chunk_msg_header(const u8* buf, usize len, pxl8_
|
|||
}
|
||||
|
||||
usize pxl8_protocol_deserialize_bsp_wire_header(const u8* buf, usize len, pxl8_bsp_wire_header* hdr) {
|
||||
if (len < 44) return 0;
|
||||
if (len < 48) return 0;
|
||||
pxl8_stream s = pxl8_stream_create(buf, (u32)len);
|
||||
hdr->num_vertices = pxl8_read_u32_be(&s);
|
||||
hdr->num_edges = pxl8_read_u32_be(&s);
|
||||
|
|
@ -171,27 +171,27 @@ usize pxl8_protocol_deserialize_bsp_wire_header(const u8* buf, usize len, pxl8_b
|
|||
hdr->num_cell_portals = pxl8_read_u32_be(&s);
|
||||
hdr->visdata_size = pxl8_read_u32_be(&s);
|
||||
hdr->num_vertex_lights = pxl8_read_u32_be(&s);
|
||||
hdr->num_heightfield = pxl8_read_u32_be(&s);
|
||||
return s.offset;
|
||||
}
|
||||
|
||||
usize pxl8_protocol_serialize_chunk_enter(const pxl8_chunk_enter_msg* msg, u8* buf, usize len) {
|
||||
if (len < 8) return 0;
|
||||
pxl8_write_stream s = pxl8_write_stream_create(buf, (u32)len);
|
||||
pxl8_write_u32_be(&s, msg->chunk_id);
|
||||
pxl8_write_u8(&s, msg->chunk_type);
|
||||
pxl8_write_u8(&s, msg->reserved[0]);
|
||||
pxl8_write_u8(&s, msg->reserved[1]);
|
||||
pxl8_write_u8(&s, msg->reserved[2]);
|
||||
pxl8_write_u32_be(&s, (u32)msg->cx);
|
||||
pxl8_write_u32_be(&s, (u32)msg->cz);
|
||||
return s.offset;
|
||||
}
|
||||
|
||||
usize pxl8_protocol_deserialize_chunk_enter(const u8* buf, usize len, pxl8_chunk_enter_msg* msg) {
|
||||
if (len < 8) return 0;
|
||||
pxl8_stream s = pxl8_stream_create(buf, (u32)len);
|
||||
msg->chunk_id = pxl8_read_u32_be(&s);
|
||||
msg->chunk_type = pxl8_read_u8(&s);
|
||||
msg->reserved[0] = pxl8_read_u8(&s);
|
||||
msg->reserved[1] = pxl8_read_u8(&s);
|
||||
msg->reserved[2] = pxl8_read_u8(&s);
|
||||
msg->cx = (i32)pxl8_read_u32_be(&s);
|
||||
msg->cz = (i32)pxl8_read_u32_be(&s);
|
||||
return s.offset;
|
||||
}
|
||||
|
||||
u32 pxl8_chunk_hash(i32 cx, i32 cz) {
|
||||
u32 h = (u32)cx * 374761393u + (u32)cz * 668265263u;
|
||||
return h ^ (h >> 16);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue