我正在从游戏 Rayman 2 中反编译脚本引擎。它进行得很顺利,但我遇到了一个特定的函数,该函数调用另一个带有未初始化参数的函数。
这是函数的相关部分:
void __cdecl fn_p_stIntelligenceEvalTreeEngine(HIE_tdstSuperObject
*superObject, tdstNodeInterpret_ *nodeInterpreter, tdstGetSetParam_
*getSetParam)
{
...
HIE_tdstSuperObject *superObject_1; // [sp+0h] [bp-20h]@0
tdstNodeInterpret_ *nodeInterpreter_1; // [sp+4h] [bp-1Ch]@0
tdstGetSetParam_ *getSetParam_1; // [sp+8h] [bp-18h]@0
...
evaluatedNode = fn_p_stEvalTree(superObject_1, nodeInterpreter_1, getSetParam_1);
据我了解,在调用时变量已经到位,即在 bp-20、bp-1C 和 bp-18h。现在我不明白的是这些变量是如何分配的。我应该查看调用此函数的父函数以查看这些变量是如何创建的吗?或者还有其他解释吗?
这是感兴趣的人的完整功能:https : //pastebin.com/Udj4K8PW