diff --git a/tests/test_final_safety_hardening.py b/tests/test_final_safety_hardening.py new file mode 100644 index 0000000..4f2588f --- /dev/null +++ b/tests/test_final_safety_hardening.py @@ -0,0 +1,256 @@ +import math +import os +import struct +import tempfile +import unittest +from unittest import mock + +import remote_packages +import setup_tool_dynamic as dynamic + + +class _Var: + def __init__(self, value): + self.value = value + + def get(self): + return self.value + + +def _make_tool(): + tool = object.__new__(dynamic.ModernWowSetupTool) + tool.vt_fov = _Var(1.9199) + tool.vt_farclip = _Var(1500) + tool.vt_frill = _Var(300) + tool.vt_nameplate = _Var(41) + tool.vt_maxcam = _Var(100) + tool.vt_soundchan = _Var(64) + tool.vt_quickloot = _Var(True) + tool.vt_bg_sound = _Var(True) + tool.vt_laa = _Var(True) + tool.vt_cam_fix = _Var(True) + tool.vt_custom_glues = _Var(True) + return tool + + +def _base_client_data(): + data = bytearray(0x46795C) + data[ + dynamic._CLIENT_BUILD_OFFSET: + dynamic._CLIENT_BUILD_OFFSET + len(dynamic._CLIENT_BUILD) + ] = dynamic._CLIENT_BUILD + data[ + dynamic._CLIENT_VERSION_OFFSET: + dynamic._CLIENT_VERSION_OFFSET + len(dynamic._CLIENT_VERSION) + ] = dynamic._CLIENT_VERSION + + data[0x0C1ECF:0x0C1ED1] = b"\x74\x10" + data[0x0C2B25:0x0C2B27] = b"\x74\x0B" + data[0x3A4869] = 0x14 + data[0x126:0x128] = b"\x0F\x01" + + for offset, original, _patched in dynamic._CAMERA_REGIONS: + data[offset:offset + len(original)] = original + for offset, original, _patched in dynamic._CUSTOM_GLUES_SITES: + data[offset] = original + + struct.pack_into("