Port actorfixer.py to MM (#126)

* Port actorfixer

* Run actorfixer
This commit is contained in:
Anghelo Carvajal 2021-05-10 21:22:03 -04:00 committed by GitHub
parent cf1da451aa
commit aae6d9d364
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

54
tools/actorfixer.py Executable file
View File

@ -0,0 +1,54 @@
#!/usr/bin/env python3
import os
import argparse
# "old": "new"
animdict ={
"Actor_GetSwitchFlag": "Flags_GetSwitch",
}
def replace_anim(file):
with open(file,'r',encoding = 'utf-8') as infile:
srcdata = infile.read()
funcs = list(animdict.keys())
fixes = 0
for func in funcs:
newfunc = animdict.get(func)
if(newfunc is None):
print("How did this happen?")
return -1
if(func in srcdata):
fixes += 1
print(func)
srcdata = srcdata.replace(func, newfunc)
if(fixes > 0):
print('Changed', fixes,'entr' + ('y' if fixes == 1 else 'ies') + ' in',file)
with open(file, 'w', encoding = 'utf-8', newline = '\n') as outfile:
outfile.write(srcdata)
return 1
def replace_anim_all(repo):
for subdir, dirs, files in os.walk(repo + os.sep + 'src'):
for filename in files:
if(filename.endswith('.c')):
file = subdir + os.sep + filename
replace_anim(file)
for subdir, dirs, files in os.walk(repo + os.sep + 'asm' + os.sep + 'non_matchings'):
for filename in files:
if(filename.endswith('.s')):
file = subdir + os.sep + filename
replace_anim(file)
return 1
parser = argparse.ArgumentParser(description='Update to the new animation names')
parser.add_argument('file', help="source file to be processed. use . to process the whole repo", default = None)
if __name__ == "__main__":
args = parser.parse_args()
if(args.file == '.'):
replace_anim_all(os.curdir)
else:
replace_anim(args.file)