mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-11 07:12:16 +00:00
- fixed: DECORATE didn't pass all needed arguments to FunctionBuildList.AddFunction. Removed the default parameter values from this function's declaration to prevent it from happening again.
This commit is contained in:
parent
21e3aba1c7
commit
71bda99c3b
6 changed files with 7 additions and 7 deletions
|
@ -343,7 +343,7 @@ endofstate:
|
||||||
if (ScriptCode != nullptr)
|
if (ScriptCode != nullptr)
|
||||||
{
|
{
|
||||||
auto funcsym = CreateAnonymousFunction(actor, nullptr, state.UseFlags);
|
auto funcsym = CreateAnonymousFunction(actor, nullptr, state.UseFlags);
|
||||||
state.ActionFunc = FunctionBuildList.AddFunction(funcsym, ScriptCode, FStringf("%s.StateFunction.%d", actor->TypeName.GetChars(), bag.statedef.GetStateCount()), true);
|
state.ActionFunc = FunctionBuildList.AddFunction(funcsym, ScriptCode, FStringf("%s.StateFunction.%d", actor->TypeName.GetChars(), bag.statedef.GetStateCount()), true, bag.statedef.GetStateCount(), int(statestring.Len()), sc.LumpNum);
|
||||||
}
|
}
|
||||||
int count = bag.statedef.AddStates(&state, statestring, scp);
|
int count = bag.statedef.AddStates(&state, statestring, scp);
|
||||||
if (count < 0)
|
if (count < 0)
|
||||||
|
|
|
@ -219,7 +219,7 @@ PFunction *FindClassMemberFunction(PStruct *selfcls, PStruct *funccls, FName nam
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
||||||
void CreateDamageFunction(PClassActor *info, AActor *defaults, FxExpression *id, bool fromDecorate)
|
void CreateDamageFunction(PClassActor *info, AActor *defaults, FxExpression *id, bool fromDecorate, int lumpnum)
|
||||||
{
|
{
|
||||||
if (id == nullptr)
|
if (id == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -229,7 +229,7 @@ void CreateDamageFunction(PClassActor *info, AActor *defaults, FxExpression *id,
|
||||||
{
|
{
|
||||||
auto dmg = new FxReturnStatement(new FxIntCast(id, true), id->ScriptPosition);
|
auto dmg = new FxReturnStatement(new FxIntCast(id, true), id->ScriptPosition);
|
||||||
auto funcsym = CreateAnonymousFunction(info, TypeSInt32, 0);
|
auto funcsym = CreateAnonymousFunction(info, TypeSInt32, 0);
|
||||||
defaults->DamageFunc = FunctionBuildList.AddFunction(funcsym, dmg, FStringf("%s.DamageFunction", info->TypeName.GetChars()), fromDecorate);
|
defaults->DamageFunc = FunctionBuildList.AddFunction(funcsym, dmg, FStringf("%s.DamageFunction", info->TypeName.GetChars()), fromDecorate, -1, 0, lumpnum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -160,7 +160,7 @@ FName CheckCastKludges(FName in);
|
||||||
void SetImplicitArgs(TArray<PType *> *args, TArray<DWORD> *argflags, TArray<FName> *argnames, PStruct *cls, DWORD funcflags, int useflags);
|
void SetImplicitArgs(TArray<PType *> *args, TArray<DWORD> *argflags, TArray<FName> *argnames, PStruct *cls, DWORD funcflags, int useflags);
|
||||||
PFunction *CreateAnonymousFunction(PClass *containingclass, PType *returntype, int flags);
|
PFunction *CreateAnonymousFunction(PClass *containingclass, PType *returntype, int flags);
|
||||||
PFunction *FindClassMemberFunction(PStruct *cls, PStruct *funccls, FName name, FScriptPosition &sc, bool *error);
|
PFunction *FindClassMemberFunction(PStruct *cls, PStruct *funccls, FName name, FScriptPosition &sc, bool *error);
|
||||||
void CreateDamageFunction(PClassActor *info, AActor *defaults, FxExpression *id, bool fromDecorate);
|
void CreateDamageFunction(PClassActor *info, AActor *defaults, FxExpression *id, bool fromDecorate, int lumpnum);
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -664,7 +664,7 @@ DEFINE_PROPERTY(damage, X, Actor)
|
||||||
|
|
||||||
defaults->DamageVal = dmgval;
|
defaults->DamageVal = dmgval;
|
||||||
// Only DECORATE can get here with a valid expression.
|
// Only DECORATE can get here with a valid expression.
|
||||||
CreateDamageFunction(bag.Info, defaults, id, true);
|
CreateDamageFunction(bag.Info, defaults, id, true, bag.Lumpnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
|
@ -149,7 +149,7 @@ class FFunctionBuildList
|
||||||
TArray<Item> mItems;
|
TArray<Item> mItems;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
VMFunction *AddFunction(PFunction *func, FxExpression *code, const FString &name, bool fromdecorate, int currentstate = -1, int statecnt = 0, int lumpnum = -1);
|
VMFunction *AddFunction(PFunction *func, FxExpression *code, const FString &name, bool fromdecorate, int currentstate, int statecnt, int lumpnum);
|
||||||
void Build();
|
void Build();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1842,7 +1842,7 @@ void ZCCCompiler::ProcessDefaultProperty(PClassActor *cls, ZCC_PropertyStmt *pro
|
||||||
if (namenode->Id == NAME_DamageFunction)
|
if (namenode->Id == NAME_DamageFunction)
|
||||||
{
|
{
|
||||||
auto x = ConvertNode(prop->Values);
|
auto x = ConvertNode(prop->Values);
|
||||||
CreateDamageFunction(cls, (AActor *)bag.Info->Defaults, x, false);
|
CreateDamageFunction(cls, (AActor *)bag.Info->Defaults, x, false, Lump);
|
||||||
((AActor *)bag.Info->Defaults)->DamageVal = -1;
|
((AActor *)bag.Info->Defaults)->DamageVal = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue