generated from Jaysyn/ModuleTemplate
107 lines
3.5 KiB
Plaintext
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);
|
|
}
|
|
|