Add tool to translate IDA types to real C++ types

Currently this only covers agl Parameter classes, but more type names
may be added to the mapping in the future.
This commit is contained in:
Léo Lam 2021-06-20 14:21:49 +02:00
parent 328354f857
commit b3acc6a393
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
1 changed files with 31 additions and 0 deletions

31
tools/translate_ida_types.py Executable file
View File

@ -0,0 +1,31 @@
#!/usr/bin/env python3
from colorama import Back, Fore, Style
import sys
mapping = {
"agl::utl::Parameter$uint$": "agl::utl::Parameter<u32>",
"agl::utl::Parameter$int$": "agl::utl::Parameter<int>",
"agl::utl::Parameter$s32$": "agl::utl::Parameter<int>",
"agl::utl::Parameter$float$": "agl::utl::Parameter<float>",
"agl::utl::Parameter$f32$": "agl::utl::Parameter<float>",
"agl::utl::Parameter$bool$": "agl::utl::Parameter<bool>",
"agl::utl::Parameter$sead::SafeString$": "agl::utl::Parameter<sead::SafeString>",
"agl::utl::Parameter$sead::Vector3f$": "agl::utl::Parameter<sead::Vector3f>",
"agl::utl::Parameter$sead::FixedSafeString20$": "agl::utl::Parameter<sead::FixedSafeString<32>>",
"agl::utl::Parameter$sead::FixedSafeString40$": "agl::utl::Parameter<sead::FixedSafeString<64>>",
"agl::utl::Parameter$sead::FixedSafeString100$": "agl::utl::Parameter<sead::FixedSafeString<256>>",
"agl::utl::Parameter$sead::Color4f$": "agl::utl::Parameter<sead::Color4f>",
"agl::utl::Parameter_String32": "agl::utl::Parameter<sead::FixedSafeString<32>>",
"agl::utl::Parameter_String64": "agl::utl::Parameter<sead::FixedSafeString<64>>",
"agl::utl::Parameter_String256": "agl::utl::Parameter<sead::FixedSafeString<256>>",
}
lines = list(sys.stdin)
sys.stderr.write(Back.BLUE + Fore.WHITE + Style.BRIGHT + "=" * 30 + " output " + "=" * 30 + Style.RESET_ALL + "\n")
for line in lines:
for from_type, to_type in mapping.items():
line = line.replace(from_type, to_type)
sys.stdout.write(line)