CallVM API, plus multi-return and vector support

This commit is contained in:
Ricardo Luís Vaz Silva 2025-06-18 03:43:30 -03:00
commit f4eebd1ced
4 changed files with 294 additions and 45 deletions

View file

@ -317,7 +317,7 @@ CCMD (slot)
// Needs to be redone
IFVIRTUALPTRNAME(mo, NAME_PlayerPawn, PickWeapon)
{
SendItemUse = VMCallSingle<AActor *>(func, mo, slot, (int)!(dmflags2 & DF2_DONTCHECKAMMO));
SendItemUse = CallVM<AActor *>(func, mo, slot, (int)!(dmflags2 & DF2_DONTCHECKAMMO));
}
}
@ -373,7 +373,7 @@ CCMD (weapnext)
// Needs to be redone
IFVIRTUALPTRNAME(mo, NAME_PlayerPawn, PickNextWeapon)
{
SendItemUse = VMCallSingle<AActor *>(func, mo);
SendItemUse = CallVM<AActor *>(func, mo);
}
}
@ -398,7 +398,7 @@ CCMD (weapprev)
// Needs to be redone
IFVIRTUALPTRNAME(mo, NAME_PlayerPawn, PickPrevWeapon)
{
SendItemUse = VMCallSingle<AActor *>(func, mo);
SendItemUse = CallVM<AActor *>(func, mo);
}
}
@ -437,7 +437,7 @@ CCMD (invnext)
{
IFVM(PlayerPawn, InvNext)
{
VMCallVoid<AActor *>(func, players[consoleplayer].mo);
CallVM<void>(func, players[consoleplayer].mo);
}
}
}
@ -448,7 +448,7 @@ CCMD(invprev)
{
IFVM(PlayerPawn, InvPrev)
{
VMCallVoid<AActor *>(func, players[consoleplayer].mo);
CallVM<void>(func, players[consoleplayer].mo);
}
}
}
@ -523,7 +523,7 @@ CCMD (useflechette)
if (players[consoleplayer].mo == nullptr) return;
IFVIRTUALPTRNAME(players[consoleplayer].mo, NAME_PlayerPawn, GetFlechetteItem)
{
AActor * cls = VMCallSingle<AActor *>(func, players[consoleplayer].mo);
AActor * cls = CallVM<AActor *>(func, players[consoleplayer].mo);
if (cls != nullptr) SendItemUse = cls;
}
@ -1289,7 +1289,7 @@ void G_PlayerFinishLevel (int player, EFinishLevelType mode, int flags)
{
IFVM(PlayerPawn, PlayerFinishLevel)
{
VMCallVoid(func, players[player].mo, (int)mode, flags);
CallVM<void>(func, players[player].mo, (int)mode, flags);
}
}
@ -1362,7 +1362,7 @@ void FLevelLocals::PlayerReborn (int player)
IFVIRTUALPTRNAME(actor, NAME_PlayerPawn, GiveDefaultInventory)
{
VMCallVoid(func, actor);
CallVM<void>(func, actor);
}
p->ReadyWeapon = p->PendingWeapon;
}