Esempio n. 1
0
DEFINE_ACTION_FUNCTION(_Translation, SetPlayerTranslation)
{
	PARAM_PROLOGUE;
	PARAM_UINT(tgroup);
	PARAM_UINT(tnum);
	PARAM_UINT(pnum);
	PARAM_POINTER(cls, FPlayerClass);

	if (pnum >= MAXPLAYERS || tgroup >= NUM_TRANSLATION_TABLES || tnum >= translationtables[tgroup].Size())
	{
		ACTION_RETURN_BOOL(false);
	}
	auto self = &players[pnum];
	int PlayerColor = self->userinfo.GetColor();
	int	PlayerSkin = self->userinfo.GetSkin();
	int PlayerColorset = self->userinfo.GetColorSet();

	if (cls != nullptr)
	{
		PlayerSkin = R_FindSkin(Skins[PlayerSkin].Name, int(cls - &PlayerClasses[0]));
		R_GetPlayerTranslation(PlayerColor, GetColorSet(cls->Type, PlayerColorset),
			&Skins[PlayerSkin], translationtables[tgroup][tnum]);
	}
	ACTION_RETURN_BOOL(true);
}
Esempio n. 2
0
DEFINE_ACTION_FUNCTION(FSavegameManager, DrawSavePic)
{
	PARAM_SELF_STRUCT_PROLOGUE(FSavegameManager);
	PARAM_INT(x);
	PARAM_INT(y);
	PARAM_INT(w);
	PARAM_INT(h);
	ACTION_RETURN_BOOL(self->DrawSavePic(x, y, w, h));
}
Esempio n. 3
0
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_Overlay)
{
	PARAM_ACTION_PROLOGUE;
	PARAM_INT		(layer);
	PARAM_STATE_OPT	(state) { state = nullptr; }
	PARAM_BOOL_OPT	(dontoverride)	{ dontoverride = false; }

	player_t *player = self->player;

	if (player == nullptr || (dontoverride && (player->FindPSprite(layer) != nullptr)))
	{
		ACTION_RETURN_BOOL(false);
	}

	DPSprite *pspr;
	pspr = new DPSprite(player, stateowner, layer);
	pspr->SetState(state);
	ACTION_RETURN_BOOL(true);
}
Esempio n. 4
0
DEFINE_ACTION_FUNCTION(AActor, Teleport)
{
	PARAM_SELF_PROLOGUE(AActor);
	PARAM_FLOAT(x);
	PARAM_FLOAT(y);
	PARAM_FLOAT(z);
	PARAM_ANGLE(an);
	PARAM_INT(flags);
	ACTION_RETURN_BOOL(P_Teleport(self, DVector3(x, y, z), an, flags));
}
Esempio n. 5
0
DEFINE_ACTION_FUNCTION(DFloor, CreateFloor)
{
	PARAM_PROLOGUE;
	PARAM_POINTER_NOT_NULL(sec, sector_t);
	PARAM_INT(floortype);
	PARAM_POINTER(ln, line_t);
	PARAM_FLOAT(speed);
	PARAM_FLOAT_DEF(height);
	PARAM_INT_DEF(crush);
	PARAM_INT_DEF(change);
	PARAM_BOOL_DEF(hereticlower);
	PARAM_BOOL_DEF(hexencrush);
	ACTION_RETURN_BOOL(P_CreateFloor(sec, (DFloor::EFloor)floortype, ln, speed, height, crush, change, hexencrush, hereticlower));
}
Esempio n. 6
0
DEFINE_ACTION_FUNCTION(DCeiling, CreateCeiling)
{
	PARAM_PROLOGUE;
	PARAM_POINTER_NOT_NULL(sec, sector_t);
	PARAM_INT(type);
	PARAM_POINTER(ln, line_t);
	PARAM_FLOAT(speed);
	PARAM_FLOAT(speed2);
	PARAM_FLOAT_DEF(height);
	PARAM_INT_DEF(crush);
	PARAM_INT_DEF(silent);
	PARAM_INT_DEF(change);
	PARAM_INT_DEF(crushmode);
	ACTION_RETURN_BOOL(P_CreateCeiling(sec, (DCeiling::ECeiling)type, ln, 0, speed, speed2, height, crush, silent, change, (DCeiling::ECrushMode)crushmode));
}
Esempio n. 7
0
DEFINE_ACTION_FUNCTION(FDynArray_String, Pop)
{
	PARAM_SELF_STRUCT_PROLOGUE(FDynArray_String);
	ACTION_RETURN_BOOL(self->Pop());
}
Esempio n. 8
0
DEFINE_ACTION_FUNCTION(AInventory, SpecialDropAction)
{
	PARAM_SELF_PROLOGUE(AInventory);
	PARAM_OBJECT_NOT_NULL(dropper, AActor);
	ACTION_RETURN_BOOL(self->SpecialDropAction(dropper));
}
Esempio n. 9
0
DEFINE_ACTION_FUNCTION(_DamageTypeDefinition, IgnoreArmor)
{
	PARAM_PROLOGUE;
	PARAM_NAME(type);
	ACTION_RETURN_BOOL(DamageTypeDefinition::IgnoreArmor(type));
}