Repository: Ezekial711/MonsterHunterWorldModding Branch: master Commit: fc1edd4f3013 Files: 5 Total size: 4.0 KB Directory structure: gitextract_yen_2k4q/ ├── .gitignore ├── DTI_Prop_CT_Generator.py ├── EFX-PL-Editing/ │ └── __init__.txt ├── README.md └── TestEAN ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ ################################################################################ # This .gitignore file was automatically created by Microsoft(R) Visual Studio. ################################################################################ /.vs/ProjectSettings.json /.vs/slnx.sqlite ================================================ FILE: DTI_Prop_CT_Generator.py ================================================ # -*- coding: utf-8 -*- """ Created on Sat Jun 19 03:14:10 2021 @author: AsteriskAmpersand """ import re def createCT(name,entryList): entryPattern = """ 1 "%s" %s
+%s
""" entries = ''.join((entryPattern%entry for entry in entryList)) return """ 30 "%s" 1
862E0AA0
0 "Class" 1 Array of byte 8
+0
%s
"""%(name,entries) commentPattern = re.compile(r"// [a-zA-Z0-9:]* vftable:([0-9A-Fx]*)") classPattern = re.compile(r".*class\s+([a-zA-Z0-9:]*)") entryPattern = re.compile(r"\s*([a-zA-Z0-9]*)\s*'(.*)'.*Offset:([0-9A-Fx]*)" ) endPattern = re.compile(r" };") typings = {"f64" : "Double", "f32" : "Float", "u64" : "8 Bytes", "s64" : "8 Bytes", "u32" : "4 Bytes", "s32" : "4 Bytes", "u16" : "2 Bytes", "s16" : "2 Bytes", "u8" : "Byte", "s8" : "Byte", "matrix44" : "Float", "vector3" : "Float", "bool" : "Byte", "string" : "String" } def parseTyping(typing): if typing not in typings: return "4 Bytes" else: return typings[typing] def parseEntries(dataDumpClass): started = False entries = [] comment = "" for line in dataDumpClass: if not started: commentMatch = commentPattern.match(line) if commentMatch: comment = " ["+commentMatch[1]+"]" classMatch = classPattern.match(line) if classMatch: name = classMatch[1]+comment started = True if started: entryMatch = entryPattern.match(line) if entryMatch: description = entryMatch[2] typing = parseTyping(entryMatch[1]) offset = entryMatch[3] if offset == "0x7FFFFFFFFFFFFFFF": offset = "0x0" description += " [INVALID ENTRY]" if entryMatch[1] == "matrix44": for i in range(4): for j in range(4): entries.append((description+"%d%d"%(i,j),typing,hex(int(offset,16)+4*(j+4*i))[2:])) elif entryMatch[1] == "vector3": for i in range(3): entries.append((description+"%d"%i,typing,hex(int(offset,16)+4*i)[2:])) else: entries.append((description,typing,offset[2:])) endMatch = endPattern.match(line) if endMatch: break return name, entries ================================================ FILE: EFX-PL-Editing/__init__.txt ================================================ ================================================ FILE: README.md ================================================ [![](https://cdn.discordapp.com/attachments/521438182311460879/646445510877642782/Modding_Wiki.fw.png)](https://github.com/Ezekial711/MonsterHunterWorldModding/wiki) [![](https://cdn.discordapp.com/attachments/521438182311460879/646437032205484042/Modding_Discord.fw.png)](https://discord.gg/gJwMdhK) ================================================ FILE: TestEAN ================================================ TestFile for commit