diff --git a/scripts/client/job.js b/scripts/client/job.js index bdb7c48d..238c372e 100644 --- a/scripts/client/job.js +++ b/scripts/client/job.js @@ -14,7 +14,7 @@ let jobRouteLocationSphere = null; let jobRouteLocationRadius = 5.0; let jobRouteLocationIndicatorPosition = toVector3(0.0, 0.0, 0.0); -let jobRouteLocationIndicatorSize = [32, 32]; +let jobRouteLocationIndicatorSize = toVector2(32, 32); let jobRouteLocationIndicatorEnabled = false; let jobRouteLocationIndicatorImagePath = "files/images/icons/objective-icon.png"; let jobRouteLocationIndicatorImage = null; @@ -288,7 +288,8 @@ function processJobLocationIndicatorRendering() { } let screenPosition = getScreenFromWorldPosition(jobRouteLocationIndicatorPosition); - graphics.drawRectangle(jobRouteLocationIndicatorImage, [screenPosition.x - (jobRouteLocationIndicatorSize[0] / 2), screenPosition.y - (jobRouteLocationIndicatorSize[1] / 2)], [jobRouteLocationIndicatorSize[0], jobRouteLocationIndicatorSize[1]]); + screenPosition = fixOffScreenPosition(screenPosition, jobRouteLocationIndicatorSize); + graphics.drawRectangle(jobRouteLocationIndicatorImage, [screenPosition.x - (jobRouteLocationIndicatorSize.x / 2), screenPosition.y - (jobRouteLocationIndicatorSize.y / 2)], [jobRouteLocationIndicatorSize.x, jobRouteLocationIndicatorSize.y]); } // =========================================================================== diff --git a/scripts/client/utilities.js b/scripts/client/utilities.js index 0918302b..175479bb 100644 --- a/scripts/client/utilities.js +++ b/scripts/client/utilities.js @@ -593,4 +593,20 @@ function setLocalPlayerMoney(amount) { updateLocalPlayerMoney(); } -// =========================================================================== \ No newline at end of file +// =========================================================================== + +function fixOffScreenPosition(position, margin = toVector2(0.0, 0.0)) { + if (position.x <= 0) { + position.x = 0.0 + (margin.x / 2); + } else if (position.x > game.width) { + position.x = game.width - (margin.x / 2); + } + + if (position.y <= 0) { + position.y = 0.0 + (margin.y / 2); + } else if (position.y > game.height) { + position.y = game.height - (margin.y / 2); + } + + return position; +} \ No newline at end of file