function AdjustCameraBoundsBJ takes integer adjustMethod, real dxWest, real dxEast, real dyNorth, real dySouth returns nothing
local real minX = 0
local real minY = 0
local real maxX = 0
local real maxY = 0
local real scale = 0
if (adjustMethod == bj_CAMERABOUNDS_ADJUST_ADD) then
set scale = 1
elseif (adjustMethod == bj_CAMERABOUNDS_ADJUST_SUB) then
set scale = -1
else
// Unrecognized adjustment method - ignore the request.
return
endif
// Adjust the actual camera values
set minX = GetCameraBoundMinX() - scale * dxWest
set maxX = GetCameraBoundMaxX() + scale * dxEast
set minY = GetCameraBoundMinY() - scale * dySouth
set maxY = GetCameraBoundMaxY() + scale * dyNorth
// Make sure the camera bounds are still valid.
if (maxX < minX) then
set minX = (minX + maxX) * 0.5
set maxX = minX
endif
if (maxY < minY) then
set minY = (minY + maxY) * 0.5
set maxY = minY
endif
// Apply the new camera values.
call SetCameraBounds(minX, minY, minX, maxY, maxX, maxY, maxX, minY)
endfunction