A_ChangeColorRelative is an action that changes the actor's skin color. If Var1 is set to any value besides 0, it will add the color value of the target to its own. Otherwise, it will add Var2 to its color value. Color values may be found on the List of skin colors article.
Code – A_ChangeColorRelative
// Function: A_ChangeColorRelative
// Description: Changes the color of an object
// var1 = if (var1 > 0), find target and add its color value to yours
// var2 = if (var1 = 0), color value to add
void A_ChangeColorRelative(mobj_t *actor)
INT32 locvar1 = var1;
INT32 locvar2 = var2;
if (LUA_CallAction("A_ChangeColorRelative", actor))
// Have you ever seen anything so hideous?
actor->color = (UINT8)(actor->color + actor->target->color);
actor->color = (UINT8)(actor->color + locvar2);