mirror of https://github.com/zeldaret/mm.git
237 lines
11 KiB
Python
Executable File
237 lines
11 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import argparse, os
|
|
|
|
# There are a few commented out entries that would produce unexpected renames.
|
|
# They are left as a comment so people can just grab them.
|
|
|
|
# "old": "new"
|
|
animdict = {
|
|
"Actor_GetSwitchFlag": "Flags_GetSwitch",
|
|
"atan_flip": "Math_Acot2F",
|
|
"atans": "Math_Atan2S",
|
|
"SysMatrix_StateAlloc": "Matrix_StateAlloc",
|
|
"SysMatrix_StatePush": "Matrix_StatePush",
|
|
"SysMatrix_CopyCurrentState": "Matrix_CopyCurrentState",
|
|
"SysMatrix_SetCurrentState": "Matrix_SetCurrentState",
|
|
"SysMatrix_InsertTranslation": "Matrix_InsertTranslation",
|
|
"SysMatrix_InsertMatrix": "Matrix_InsertMatrix",
|
|
"SysMatrix_Scale": "Matrix_Scale",
|
|
"SysMatrix_InsertXRotation_s": "Matrix_InsertXRotation_s",
|
|
"SysMatrix_InsertXRotation_f": "Matrix_InsertXRotation_f",
|
|
"SysMatrix_RotateStateAroundXAxis": "Matrix_RotateStateAroundXAxis",
|
|
"SysMatrix_SetStateXRotation": "Matrix_SetStateXRotation",
|
|
"SysMatrix_RotateY": "Matrix_RotateY",
|
|
"SysMatrix_InsertYRotation_f": "Matrix_InsertYRotation_f",
|
|
"SysMatrix_InsertZRotation_s": "Matrix_InsertZRotation_s",
|
|
"SysMatrix_InsertZRotation_f": "Matrix_InsertZRotation_f",
|
|
"SysMatrix_InsertRotation": "Matrix_InsertRotation",
|
|
"SysMatrix_JointPosition": "Matrix_JointPosition",
|
|
"SysMatrix_SetStateRotationAndTranslation": "Matrix_SetStateRotationAndTranslation",
|
|
"SysMatrix_ToRSPMatrix": "Matrix_ToRSPMatrix",
|
|
"SysMatrix_ToMtx": "Matrix_ToMtx",
|
|
"SysMatrix_NewMtx": "Matrix_NewMtx",
|
|
"SysMatrix_AppendToPolyOpaDisp": "Matrix_AppendToPolyOpaDisp",
|
|
"SysMatrix_MultiplyVector3fByState": "Matrix_MultiplyVector3fByState",
|
|
"SysMatrix_GetStateTranslation": "Matrix_GetStateTranslation",
|
|
"SysMatrix_GetStateTranslationAndScaledX": "Matrix_GetStateTranslationAndScaledX",
|
|
"SysMatrix_GetStateTranslationAndScaledY": "Matrix_GetStateTranslationAndScaledY",
|
|
"SysMatrix_GetStateTranslationAndScaledZ": "Matrix_GetStateTranslationAndScaledZ",
|
|
"SysMatrix_MultiplyVector3fXZByCurrentState": "Matrix_MultiplyVector3fXZByCurrentState",
|
|
"SysMatrix_MtxFCopy": "Matrix_MtxFCopy",
|
|
"SysMatrix_FromRSPMatrix": "Matrix_FromRSPMatrix",
|
|
"SysMatrix_MultiplyVector3fByMatrix": "Matrix_MultiplyVector3fByMatrix",
|
|
"SysMatrix_TransposeXYZ": "Matrix_TransposeXYZ",
|
|
"SysMatrix_NormalizeXYZ": "Matrix_NormalizeXYZ",
|
|
"SysMatrix_InsertRotationAroundUnitVector_f": "Matrix_InsertRotationAroundUnitVector_f",
|
|
"SysMatrix_InsertRotationAroundUnitVector_s": "Matrix_InsertRotationAroundUnitVector_s",
|
|
"func_800B78B8": "Actor_UpdateBgCheckInfo",
|
|
"func_8012403C": "Player_GetMask",
|
|
"func_8012404c": "Player_RemoveMask",
|
|
"Actor_SpawnWithParentAndCutscene": "Actor_SpawnAsChildAndCutscene",
|
|
"Actor_SpawnWithParent": "Actor_SpawnAsChild",
|
|
"func_800BE22C": "Actor_ApplyDamage",
|
|
"func_800F0568": "Audio_PlaySoundAtPosition",
|
|
"func_8016970C": "Play_CameraSetAtEye",
|
|
"func_800BBA88": "Enemy_StartFinishingBlow",
|
|
"ShrinkWindow_Step": "ShrinkWindow_Update",
|
|
"ShrinkWindow_Fini": "ShrinkWindow_Destroy",
|
|
"func_801A89A8": "Audio_QueueSeqCmd",
|
|
"SkelAnime_LodDrawLimb(": "SkelAnime_DrawLimbLod(",
|
|
"SkelAnime_LodDraw(": "SkelAnime_DrawLod(",
|
|
"SkelAnime_LodDrawLimbSV(": "SkelAnime_DrawFlexLimbLod(",
|
|
"SkelAnime_LodDrawSV(": "SkelAnime_DrawFlexLod(",
|
|
#"SkelAnime_DrawLimb(": "SkelAnime_DrawLimbOpa(",
|
|
#"SkelAnime_Draw(": "SkelAnime_DrawOpa(",
|
|
"SkelAnime_DrawLimbSV(": "SkelAnime_DrawFlexLimbOpa(",
|
|
"SkelAnime_DrawSV(": "SkelAnime_DrawFlexOpa(",
|
|
#"SkelAnime_AnimateFrame(": "SkelAnime_GetFrameData(",
|
|
"SkelAnime_GetTotalFrames(": "Animation_GetLength(",
|
|
"SkelAnime_GetFrameCount(": "Animation_GetLastFrame(",
|
|
"SkelAnime_Draw2Limb(": "SkelAnime_DrawLimb(",
|
|
"SkelAnime_Draw2(": "SkelAnime_Draw(",
|
|
"SkelAnime_DrawLimbSV2(": "SkelAnime_DrawFlexLimb(",
|
|
"SkelAnime_DrawSV2(": "SkelAnime_DrawFlex(",
|
|
"func_80134FFC": "SkelAnime_GetFrameData2",
|
|
"func_801353D4": "Animation_GetLimbCount2",
|
|
"SkelAnime_GetTotalFrames2(": "Animation_GetLength2(",
|
|
"SkelAnime_GetFrameCount2(": "Animation_GetLastFrame2(",
|
|
"SkelAnime_InterpolateVec3s": "SkelAnime_InterpFrameTable",
|
|
"SkelAnime_AnimationCtxReset": "AnimationContext_Reset",
|
|
"func_801358D4": "AnimationContext_SetNextQueue",
|
|
"func_801358F4": "AnimationContext_DisableQueue",
|
|
"SkelAnime_NextEntry": "AnimationContext_AddEntry",
|
|
"SkelAnime_LoadLinkAnimetion": "AnimationContext_SetLoadFrame",
|
|
"SkelAnime_LoadAnimationType1": "AnimationContext_SetCopyAll",
|
|
"SkelAnime_LoadAnimationType2": "AnimationContext_SetInterp",
|
|
"SkelAnime_LoadAnimationType3": "AnimationContext_SetCopyTrue",
|
|
"SkelAnime_LoadAnimationType4": "AnimationContext_SetCopyFalse",
|
|
"SkelAnime_LoadAnimationType5": "AnimationContext_SetMoveActor",
|
|
"SkelAnime_LinkAnimetionLoaded": "AnimationContext_LoadFrame",
|
|
"SkelAnime_AnimationType1Loaded": "AnimationContext_CopyAll",
|
|
"SkelAnime_AnimationType2Loaded": "AnimationContext_CopyInterp",
|
|
"SkelAnime_AnimationType3Loaded": "AnimationContext_CopyTrue",
|
|
"SkelAnime_AnimationType4Loaded": "AnimationContext_CopyFalse",
|
|
"SkelAnime_AnimationType5Loaded": "AnimationContext_MoveActor",
|
|
"func_80135EE8": "AnimationContext_Update",
|
|
"SkelAnime_InitLinkAnimetion(": "SkelAnime_InitLink(",
|
|
"func_801360A8": "LinkAnimation_SetUpdateFunction",
|
|
"func_801360E0": "LinkAnimation_Update",
|
|
"func_80136104": "LinkAnimation_Morph",
|
|
"func_801361BC": "LinkAnimation_AnimateFrame",
|
|
"func_80136288": "LinkAnimation_Loop",
|
|
"func_8013631C": "LinkAnimation_Once",
|
|
"SkelAnime_SetTransition": "Animation_SetMorph",
|
|
"SkelAnime_ChangeLinkAnim": "LinkAnimation_Change",
|
|
"SkelAnime_ChangeLinkAnimDefaultStop": "LinkAnimation_PlayOnce",
|
|
"SkelAnime_ChangeLinkAnimPlaybackStop": "LinkAnimation_PlayOnceSetSpeed",
|
|
"SkelAnime_ChangeLinkAnimDefaultRepeat": "LinkAnimation_PlayLoop",
|
|
"SkelAnime_ChangeLinkAnimPlaybackRepeat": "LinkAnimation_PlayLoopSetSpeed",
|
|
"func_8013670C": "LinkAnimation_CopyJointToMorph",
|
|
"func_8013673C": "LinkAnimation_CopyMorphToJoint",
|
|
"func_8013676C": "LinkAnimation_LoadToMorph",
|
|
"func_801367B0": "LinkAnimation_LoadToJoint",
|
|
"func_801367F4": "LinkAnimation_InterpJointMorph",
|
|
"func_8013682C": "LinkAnimation_BlendToJoint",
|
|
"func_801368CC": "LinkAnimation_BlendToMorph",
|
|
"SkelAnime_SetModeStop": "LinkAnimation_EndLoop",
|
|
"func_80136990": "Animation_OnFrameImpl",
|
|
"func_80136A48": "LinkAnimation_OnFrame",
|
|
"SkelAnime_InitSV": "SkelAnime_InitFlex",
|
|
"func_80136C84": "SkelAnime_SetUpdate",
|
|
"SkelAnime_FrameUpdateMatrix": "SkelAnime_Update",
|
|
"func_80136CF4": "SkelAnime_Morph",
|
|
"func_80136D98": "SkelAnime_MorphTaper",
|
|
"func_80136F04": "SkelAnime_AnimateFrame",
|
|
"func_8013702C": "SkelAnime_LoopFull",
|
|
"func_801370B0": "SkelAnime_LoopPartial",
|
|
"func_8013713C": "SkelAnime_Once",
|
|
"SkelAnime_ChangeAnimImpl": "Animation_ChangeImpl",
|
|
"SkelAnime_ChangeAnim(": "Animation_Change(",
|
|
"SkelAnime_ChangeAnimDefaultStop": "Animation_PlayOnce",
|
|
"SkelAnime_ChangeAnimTransitionStop": "Animation_MorphToPlayOnce",
|
|
"SkelAnime_ChangeAnimPlaybackStop": "Animation_PlayOnceSetSpeed",
|
|
"SkelAnime_ChangeAnimDefaultRepeat": "Animation_PlayLoop",
|
|
"SkelAnime_ChangeAnimTransitionRepeat": "Animation_MorphToLoop",
|
|
"SkelAnime_ChangeAnimPlaybackRepeat": "Animation_PlayLoopSetSpeed",
|
|
"SkelAnime_AnimSetStop": "Animation_EndLoop",
|
|
"SkelAnime_AnimReverse": "Animation_Reverse",
|
|
"func_80137674": "SkelAnime_CopyFrameTableTrue",
|
|
"func_801376DC": "SkelAnime_CopyFrameTableFalse",
|
|
"func_80137748": "SkelAnime_UpdateTranslation",
|
|
"func_801378B8": "Animation_OnFrame",
|
|
"SkelAnime_CopyVec3s": "SkelAnime_CopyFrameTable",
|
|
"SysMatrix_StatePop": "Matrix_StatePop",
|
|
"SysMatrix_GetCurrentState": "Matrix_GetCurrentState",
|
|
"zelda_malloc(": "ZeldaArena_Malloc(",
|
|
"zelda_mallocR(": "ZeldaArena_MallocR(",
|
|
"zelda_realloc": "ZeldaArena_Realloc",
|
|
"zelda_free": "ZeldaArena_Free",
|
|
"zelda_calloc": "ZeldaArena_Calloc",
|
|
"MainHeap_AnalyzeArena": "ZeldaArena_GetSizes",
|
|
"MainHeap_Check": "ZeldaArena_Check",
|
|
"MainHeap_Init": "ZeldaArena_Init",
|
|
"MainHeap_Cleanup": "ZeldaArena_Cleanup",
|
|
"MainHeap_IsInitialized": "ZeldaArena_IsInitialized",
|
|
|
|
"skelanime.unk03": "skelanime.taper",
|
|
"skelanime.animCurrentSeg": "skelanime.animation",
|
|
"skelanime.initialFrame": "skelanime.startFrame",
|
|
"skelanime.animFrameCount": "skelanime.endFrame",
|
|
"skelanime.totalFrames": "skelanime.animLength",
|
|
"skelanime.animCurrentFrame": "skelanime.curFrame",
|
|
"skelanime.animPlaybackSpeed": "skelanime.playSpeed",
|
|
"skelanime.limbDrawTbl": "skelanime.jointTable",
|
|
"skelanime.transitionDrawTbl": "skelanime.morphTable",
|
|
"skelanime.transCurrentFrame": "skelanime.morphWeight",
|
|
"skelanime.transitionStep": "skelanime.morphRate",
|
|
"skelanime.animUpdate": "skelanime.update",
|
|
"skelanime.flags": "skelanime.moveFlags",
|
|
"skelanime.prevFrameRot": "skelanime.prevRot",
|
|
"skelanime.prevFramePos": "skelanime.prevTransl",
|
|
"skelanime.unk3E": "skelanime.baseTransl",
|
|
}
|
|
|
|
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'):
|
|
for filename in files:
|
|
if(filename.endswith('.s')):
|
|
file = subdir + os.sep + filename
|
|
replace_anim(file)
|
|
for subdir, dirs, files in os.walk(repo + os.sep + 'tools' + os.sep + 'sizes'):
|
|
for filename in files:
|
|
if(filename.endswith('.csv')):
|
|
file = subdir + os.sep + filename
|
|
replace_anim(file)
|
|
return 1
|
|
|
|
def dictSanityCheck():
|
|
keys = animdict.keys()
|
|
values = animdict.values()
|
|
for k in keys:
|
|
if k in values:
|
|
print(f"Key '{k}' found in values")
|
|
print(f"This would produce unintended renames")
|
|
print(f"Fix this by removing said key from the dictionary")
|
|
exit(-1)
|
|
|
|
if __name__ == "__main__":
|
|
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)
|
|
|
|
args = parser.parse_args()
|
|
|
|
dictSanityCheck()
|
|
|
|
if(args.file == '.'):
|
|
replace_anim_all(os.curdir)
|
|
else:
|
|
replace_anim(args.file)
|