mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-14 08:30:50 +00:00
- fixed: With some functions moved to Weapon, Dehacked needs to check Weapon, not StateProvider to find its code pointers.
This commit is contained in:
parent
302cb41403
commit
4fa5055548
1 changed files with 5 additions and 5 deletions
|
@ -790,7 +790,7 @@ void SetDehParams(FState *state, int codepointer)
|
||||||
|
|
||||||
// Let's identify the codepointer we're dealing with.
|
// Let's identify the codepointer we're dealing with.
|
||||||
PFunction *sym;
|
PFunction *sym;
|
||||||
sym = dyn_cast<PFunction>(RUNTIME_CLASS(AStateProvider)->Symbols.FindSymbol(FName(MBFCodePointers[codepointer].name), true));
|
sym = dyn_cast<PFunction>(RUNTIME_CLASS(AWeapon)->Symbols.FindSymbol(FName(MBFCodePointers[codepointer].name), true));
|
||||||
if (sym == NULL) return;
|
if (sym == NULL) return;
|
||||||
|
|
||||||
if (codepointer < 0 || (unsigned)codepointer >= countof(MBFCodePointerFactories))
|
if (codepointer < 0 || (unsigned)codepointer >= countof(MBFCodePointerFactories))
|
||||||
|
@ -2108,7 +2108,7 @@ static int PatchCodePtrs (int dummy)
|
||||||
|
|
||||||
// This skips the action table and goes directly to the internal symbol table
|
// This skips the action table and goes directly to the internal symbol table
|
||||||
// DEH compatible functions are easy to recognize.
|
// DEH compatible functions are easy to recognize.
|
||||||
PFunction *sym = dyn_cast<PFunction>(RUNTIME_CLASS(AStateProvider)->Symbols.FindSymbol(symname, true));
|
PFunction *sym = dyn_cast<PFunction>(RUNTIME_CLASS(AWeapon)->Symbols.FindSymbol(symname, true));
|
||||||
if (sym == NULL)
|
if (sym == NULL)
|
||||||
{
|
{
|
||||||
Printf(TEXTCOLOR_RED "Frame %d: Unknown code pointer '%s'\n", frame, Line2);
|
Printf(TEXTCOLOR_RED "Frame %d: Unknown code pointer '%s'\n", frame, Line2);
|
||||||
|
@ -2717,11 +2717,11 @@ static bool LoadDehSupp ()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// all relevant code pointers are either defined in AStateProvider
|
// all relevant code pointers are either defined in AWeapon
|
||||||
// or AActor so this will find all of them.
|
// or AActor so this will find all of them.
|
||||||
FString name = "A_";
|
FString name = "A_";
|
||||||
name << sc.String;
|
name << sc.String;
|
||||||
PFunction *sym = dyn_cast<PFunction>(RUNTIME_CLASS(AStateProvider)->Symbols.FindSymbol(name, true));
|
PFunction *sym = dyn_cast<PFunction>(RUNTIME_CLASS(AWeapon)->Symbols.FindSymbol(name, true));
|
||||||
if (sym == NULL)
|
if (sym == NULL)
|
||||||
{
|
{
|
||||||
sc.ScriptError("Unknown code pointer '%s'", sc.String);
|
sc.ScriptError("Unknown code pointer '%s'", sc.String);
|
||||||
|
@ -3093,7 +3093,7 @@ void FinishDehPatch ()
|
||||||
{
|
{
|
||||||
if (AmmoPerAttacks[j].ptr == nullptr)
|
if (AmmoPerAttacks[j].ptr == nullptr)
|
||||||
{
|
{
|
||||||
auto p = dyn_cast<PFunction>(RUNTIME_CLASS(AStateProvider)->Symbols.FindSymbol(AmmoPerAttacks[j].func, true));
|
auto p = dyn_cast<PFunction>(RUNTIME_CLASS(AWeapon)->Symbols.FindSymbol(AmmoPerAttacks[j].func, true));
|
||||||
if (p != nullptr) AmmoPerAttacks[j].ptr = p->Variants[0].Implementation;
|
if (p != nullptr) AmmoPerAttacks[j].ptr = p->Variants[0].Implementation;
|
||||||
}
|
}
|
||||||
if (state->ActionFunc == AmmoPerAttacks[j].ptr)
|
if (state->ActionFunc == AmmoPerAttacks[j].ptr)
|
||||||
|
|
Loading…
Reference in a new issue