def get_current_version() -> tuple[str, int]:
    """Pull current version and build_number from the project."""
    version = None
    build_number = None
    with open('src/ballistica/ballistica.cc', encoding='utf-8') as infile:
        lines = infile.readlines()
    for line in lines:
        if line.startswith('const char* kAppVersion = "'):
            if version is not None:
                raise Exception('found multiple version lines')
            version = line[27:-3]
        if line.startswith('const int kAppBuildNumber = '):
            if build_number is not None:
                raise Exception('found multiple build number lines')
            build_number = int(line[28:-2])
    if version is None:
        raise Exception('version not found')
    if build_number is None:
        raise Exception('build number not found')
    return version, build_number