Пример #1
0
DEFINE_ACTION_FUNCTION(AActor, OverlayID)
{
	PARAM_ACTION_PROLOGUE;

	if (ACTION_CALL_FROM_PSPRITE())
	{
		ACTION_RETURN_INT(stateinfo->mPSPIndex);
	}
	ACTION_RETURN_INT(0);
}
Пример #2
0
DEFINE_ACTION_FUNCTION(FDynArray_Obj, Push)
{
	PARAM_SELF_STRUCT_PROLOGUE(FDynArray_Obj);
	PARAM_OBJECT(val, DObject);
	GC::WriteBarrier(val);
	ACTION_RETURN_INT(self->Push(val));
}
Пример #3
0
DEFINE_ACTION_FUNCTION(_Wads, CheckNumForName)
{
	PARAM_PROLOGUE;
	PARAM_STRING(name);
	PARAM_INT(ns);
	PARAM_INT_DEF(wadnum);
	PARAM_BOOL_DEF(exact);
	ACTION_RETURN_INT(Wads.CheckNumForName(name, ns, wadnum, exact));
}
Пример #4
0
DEFINE_ACTION_FUNCTION(_Wads, FindLump)
{
	PARAM_PROLOGUE;
	PARAM_STRING(name);
	PARAM_INT_DEF(startlump);
	PARAM_INT_DEF(ns);
	const bool isLumpValid = startlump >= 0 && startlump < Wads.GetNumLumps();
	ACTION_RETURN_INT(isLumpValid ? Wads.FindLump(name, &startlump, 0 != ns) : -1);
}
Пример #5
0
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_ClearOverlays)
{
	PARAM_ACTION_PROLOGUE;
	PARAM_INT_OPT(start) { start = 0; }
	PARAM_INT_OPT(stop) { stop = 0; }
	PARAM_BOOL_OPT(safety) { safety = true; }

	if (self->player == nullptr)
		ACTION_RETURN_INT(0);

	if (!start && !stop)
	{
		start = INT_MIN;
		stop = safety ? PSP_TARGETCENTER - 1 : INT_MAX;
	}

	unsigned int count = 0;
	int id;

	for (DPSprite *pspr = self->player->psprites; pspr != nullptr; pspr = pspr->GetNext())
	{
		id = pspr->GetID();

		if (id < start || id == 0)
			continue;
		else if (id > stop)
			break;

		if (safety)
		{
			if (id >= PSP_TARGETCENTER)
				break;
			else if (id == PSP_STRIFEHANDS || id == PSP_WEAPON || id == PSP_FLASH)
				continue;
		}

		pspr->SetState(nullptr);
		count++;
	}

	ACTION_RETURN_INT(count);
}
Пример #6
0
DEFINE_ACTION_FUNCTION(_Translation, AddTranslation)
{
	PARAM_SELF_STRUCT_PROLOGUE(FTranslation);

	FRemapTable NewTranslation;
	memcpy(&NewTranslation.Palette[0], self->colors, 256 * sizeof(PalEntry));
	for (int i = 0; i < 256; i++)
	{
		NewTranslation.Remap[i] = ColorMatcher.Pick(self->colors[i]);
	}
	int trans = NewTranslation.StoreTranslation(TRANSLATION_Custom);
	ACTION_RETURN_INT(trans);
}
Пример #7
0
DEFINE_ACTION_FUNCTION(FDynArray_String, Reserve)
{
	PARAM_SELF_STRUCT_PROLOGUE(FDynArray_String);
	PARAM_INT(count);
	ACTION_RETURN_INT(self->Reserve(count));
}
Пример #8
0
DEFINE_ACTION_FUNCTION(FDynArray_String, Find)
{
	PARAM_SELF_STRUCT_PROLOGUE(FDynArray_String);
	PARAM_STRING(val);
	ACTION_RETURN_INT(self->Find(val));
}
Пример #9
0
DEFINE_ACTION_FUNCTION(AActor, GetSpriteIndex)
{
	PARAM_PROLOGUE;
	PARAM_NAME(sprt);
	ACTION_RETURN_INT(GetSpriteIndex(sprt.GetChars(), false));
}
Пример #10
0
DEFINE_ACTION_FUNCTION(FDynArray_Obj, Find)
{
	PARAM_SELF_STRUCT_PROLOGUE(FDynArray_Obj);
	PARAM_OBJECT(val, DObject);
	ACTION_RETURN_INT(self->Find(val));
}
Пример #11
0
DEFINE_ACTION_FUNCTION(FDynArray_Ptr, Push)
{
	PARAM_SELF_STRUCT_PROLOGUE(FDynArray_Ptr);
	PARAM_POINTER(val, void);
	ACTION_RETURN_INT(self->Push(val));
}
Пример #12
0
DEFINE_ACTION_FUNCTION(FDynArray_F64, Find)
{
	PARAM_SELF_STRUCT_PROLOGUE(FDynArray_F64);
	PARAM_FLOAT(val);
	ACTION_RETURN_INT(self->Find(val));
}
Пример #13
0
DEFINE_ACTION_FUNCTION(FDynArray_F32, Push)
{
	PARAM_SELF_STRUCT_PROLOGUE(FDynArray_F32);
	PARAM_FLOAT(val);
	ACTION_RETURN_INT(self->Push((float)val));
}
Пример #14
0
DEFINE_ACTION_FUNCTION(_Wads, CheckNumForFullName)
{
	PARAM_PROLOGUE;
	PARAM_STRING(name);
	ACTION_RETURN_INT(Wads.CheckNumForFullName(name));
}
Пример #15
0
DEFINE_ACTION_FUNCTION(DObject, GameType)
{
	PARAM_PROLOGUE;
	ACTION_RETURN_INT(gameinfo.gametype);
}
Пример #16
0
DEFINE_ACTION_FUNCTION(FDynArray_String, Max)
{
	PARAM_SELF_STRUCT_PROLOGUE(FDynArray_String);
	ACTION_RETURN_INT(self->Max());
}
Пример #17
0
DEFINE_ACTION_FUNCTION(DObject, BAM)
{
	PARAM_PROLOGUE;
	PARAM_FLOAT(ang);
	ACTION_RETURN_INT(DAngle(ang).BAMs());
}
Пример #18
0
DEFINE_ACTION_FUNCTION(FSavegameManager, RemoveNewSaveNode)
{
	PARAM_SELF_STRUCT_PROLOGUE(FSavegameManager);
	ACTION_RETURN_INT(self->RemoveNewSaveNode());
}
Пример #19
0
DEFINE_ACTION_FUNCTION(FSavegameManager, SavegameCount)
{
	PARAM_SELF_STRUCT_PROLOGUE(FSavegameManager);
	ACTION_RETURN_INT(self->SavegameCount());
}
Пример #20
0
DEFINE_ACTION_FUNCTION(FSavegameManager, ExtractSaveData)
{
	PARAM_SELF_STRUCT_PROLOGUE(FSavegameManager);
	PARAM_INT(sel);
	ACTION_RETURN_INT(self->ExtractSaveData(sel));
}
Пример #21
0
DEFINE_ACTION_FUNCTION(FSavegameManager, RemoveSaveSlot)
{
	PARAM_SELF_STRUCT_PROLOGUE(FSavegameManager);
	PARAM_INT(sel);
	ACTION_RETURN_INT(self->RemoveSaveSlot(sel));
}
Пример #22
0
DEFINE_ACTION_FUNCTION(FDynArray_I8, Push)
{
	PARAM_SELF_STRUCT_PROLOGUE(FDynArray_I8);
	PARAM_INT(val);
	ACTION_RETURN_INT(self->Push(val));
}
Пример #23
0
DEFINE_ACTION_FUNCTION(_Translation, GetID)
{
	PARAM_PROLOGUE;
	PARAM_NAME(t);
	ACTION_RETURN_INT(R_FindCustomTranslation(t));
}