Ejemplo n.º 1
0
def encode(original_data: Dict, x: BinaryIO) -> dict:
    data = copy.copy(original_data)

    writer = BinaryWriter(x)
    x.write(b"Req.")
    writer.write_uint(current_format_version)
    writer.write_byte(data.pop("game"))
    writer.write_string(data.pop("game_name"))

    # Resource Info database
    resource_database = data.pop("resource_database")
    write_array(writer, resource_database["items"], write_resource_info)
    write_array(writer, resource_database["events"], write_resource_info)
    write_array(writer, resource_database["tricks"], write_resource_info)
    write_array(writer, resource_database["damage"], write_damage_resource_info)
    write_array(writer, resource_database["versions"], write_resource_info)
    write_array(writer, resource_database["misc"], write_resource_info)
    write_array(writer, resource_database["difficulty"], write_resource_info)

    # Dock Weakness Database
    dock_weakness_database = data.pop("dock_weakness_database")
    write_array(writer, dock_weakness_database["door"], write_dock_weakness)
    write_array(writer, dock_weakness_database["portal"], write_dock_weakness)

    # Worlds List
    write_array(writer, data.pop("worlds"), write_world)

    return data
Ejemplo n.º 2
0
def test_write():
    b = io.BytesIO()
    b_io = b  # type: BinaryIO
    writer = BinaryWriter(b_io)

    writer.write_string("foo")
    writer.write_byte(5)
    writer.write_short(1505)
    writer.write_bool(False)

    assert b.getvalue() == b"foo\x00\x05\x05\xe1\x00"