Files
HeroesStone_PRC8/_module/nss/dm_paa_adjust.nss
Jaysyn904 1eefc84201 Initial Commit
Initial Commit.
2025-09-14 15:40:46 -04:00

107 lines
3.5 KiB
Plaintext

// code to adjust location of placeable
#include "x0_i0_position"
#include "dmts_common_inc"
void main()
{
// Retrieve variables from user, set up working variables
object oTarget = GetLocalObject(OBJECT_SELF, "DM_PAA_oTarget");
int iDirection = GetLocalInt(OBJECT_SELF, "DM_PAA_iDirection");
int iConvChoice = GetLocalInt(OBJECT_SELF, "iConvChoice");
float fAdjustment = 0.0f;
location lTargetLocation = GetLocation(oTarget);
object oArea = GetAreaFromLocation(lTargetLocation);
float fFacing = GetFacingFromLocation(lTargetLocation);
vector vPosition = GetPositionFromLocation(lTargetLocation);
switch (iConvChoice)
{ case 1:
fAdjustment = 0.01f; break;
case 2:
fAdjustment = 0.05f; break;
case 3:
fAdjustment = 0.10f; break;
case 4:
fAdjustment = 0.25f; break;
case 5:
fAdjustment = 1.0f; break;
case 6:
fAdjustment = 5.0f; break;
case 7:
fAdjustment = 10.0f; break;
case 8:
fAdjustment = 25.0f; break;
case 9:
fAdjustment = 100.0f; break;
default:
fAdjustment = 0.0f; break;
}
switch (iDirection)
{ case 1:
vPosition = GetChangedPosition(vPosition, fAdjustment, fFacing);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 2:
vPosition = GetChangedPosition(vPosition, fAdjustment, fFacing + 180.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 3:
vPosition = GetChangedPosition(vPosition, fAdjustment, fFacing + 90.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 4:
vPosition = GetChangedPosition(vPosition, fAdjustment, fFacing - 90.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 5:
vPosition = Vector(vPosition.x, vPosition.y, (vPosition.z + fAdjustment));
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 6:
vPosition = Vector(vPosition.x, vPosition.y, (vPosition.z - fAdjustment));
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 7:
vPosition = GetChangedPosition(vPosition, fAdjustment, 90.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 8:
vPosition = GetChangedPosition(vPosition, fAdjustment, 270.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 9:
vPosition = GetChangedPosition(vPosition, fAdjustment, 0.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 10:
vPosition = GetChangedPosition(vPosition, fAdjustment, 180.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 11:
vPosition = GetChangedPosition(vPosition, fAdjustment, 45.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 12:
vPosition = GetChangedPosition(vPosition, fAdjustment, 135.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 13:
vPosition = GetChangedPosition(vPosition, fAdjustment, 315.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
case 14:
vPosition = GetChangedPosition(vPosition, fAdjustment, 225.0f);
lTargetLocation = Location(oArea, vPosition, fFacing);
break;
default:
SendMessageToPC(OBJECT_SELF, "ERROR: Invalid direction."); break;
}
RecreateObjectAtLocation(oTarget, lTargetLocation);
}