Closed Dasaav-dsv closed 2 years ago
Changes:
bases: fixed nearonlydraw, sprjsound and fdpclient, found more stable (tested) AOBs for a lot of the bases table structure: +table tools header +table config, clear symbol cache scripts under it initialization script: game_ver as string representing the actual version +new "tga" class for functions and variables +default config +all checks like table and CE version checks can be disabled from the config +functions: isdir - if directory exists returns true mkpath - recursively checks folders along a path, if they don't exist, creates them sanitizeUsername - internal function to handle unicode names getGameVersion - returns game version as a string tga:loadConfig - internal function to load the config file or create it tga:saveConfig - internal function for the configure table script tga:loadSymbolCache - internal function to load the symbol cache file or create it tga:saveSymbolCache - internal function to write to the symbol cache file tga:clearSymbolCache - deletes all entries from the symbol cache file getAddressProcessSafe - checks if numerical or string address or symbol is within the process module, used internally to distinguish say a 1000 number passed to it from a 140698833649663 number address, otherwise works the same as getAddressSafe registerBaseByKey - registers a symbol at the address calculated from the displacement of an instruction that has a memory location as one of its operands, the instruction is gotten by parsing the key, which can be an address, a symbol or an AOB cacheSymbol - internal function, self explanatory AOBScanProcessCached - scans for an AOB inside the process and saves it in the symbol cache, or gets its address from there, returns the address registerBaseByKeyCached - same as registerBaseByKey but also interacts with the cache
Updated table initialization AOB scans to check when an AOB isn't found and print a warning message. Found a more stable AOB for SprjEventFlagMan. (REVERTED)