User Tools

Site Tools


arma2:missions:find-terrain-size

ArmA 2 Find Terrain Size Using ctrlMapAnimAdd

ArmA 2 Forum, ArmA 2 Home, ArmA 2 Config, ArmA 2 File Formats, ArmA 2 Missions, ArmA 2 3D Modeling, ArmA 2 Scripting, ArmA 2 Terrain, ArmA 2 Texturing, ArmA 2 Tools

ArmA 2 missions, how to Find Terrain Size Using ctrlMapAnimAdd

/*
 
This script was written by Kempco
 
Post in bis forums here:
https://forums.bistudio.com/topic/131552-how-to-obtain-via-script-maps-true-center-position-or-maps-size-values/#entry2190549
 
*/
 
_unit = _this select 0;
_debug = _this select 1;
 
private ["_grid_size"];
disableserialization;
 
openMap [true, false];
WaitUntil {visibleMap};
 
_Map_display = findDisplay 12;
_map_cntrl = _Map_display displayCtrl 51;
// Temporarily zoom out as much as possible and measure the screen.
_map_cntrl ctrlMapAnimAdd [0, 1000, [9999999999, 9999999999]];
ctrlMapAnimCommit _map_cntrl;
waitUntil {ctrlMapAnimDone _map_cntrl};
_zoom_max = ctrlMapScale _map_cntrl;
_limit = _map_cntrl ctrlMapScreenToWorld [0.5, 0.5];
_x_max = _limit select 0;
_y_max = _limit select 1;
 
_top_right = [_x_max,_y_max,0];
_top_left = [0,_y_max,1];
_btm_left = [0,0,0];
_btm_right = [_x_max,0,0];
 
_map_center = [0.5*(_limit select 0),0.5*(_limit select 1)];
 
_cfg=configFile>>"CfgWorlds">>worldName>>"Grid";
_grid_size_y =getNumber(_cfg>>"Zoom1">>"stepX");
_grid_size_x =getNumber(_cfg>>"Zoom1">>"stepY");
 
 
_grid_size = abs(_grid_size_y);
if (_grid_size_y < 100) then {
_grid_size = abs(_grid_size_y*_grid_size_x);
}else{_grid_size = abs(_grid_size_y)};
 
_w = _top_right distance _top_left;
_h = _top_right distance _btm_right;
 
_map_width = _limit select 0;
_map_height = _limit select 1;
 
_Map_Area_Grids = (_map_width/_grid_size)*(_map_height/_grid_size);
_Map_Area_km = (_map_width/1000)*(_map_height/1000);
 
 
if (_debug) then {
_m = createmarker ["MapSize",_map_center];
_m setmarkerShape "RECTANGLE";
_m setmarkerSize [_map_width /2,_map_height/2];
_m setmarkerAlpha 0.15;
_m setmarkercolor "ColorRed";
 
_m = createmarker ["MapWNote",[-150,(_map_center select 0)]];
_m setmarkerText format["Delta X: %1 km",(_x_max/1000)];
_m setmarkersize [0,0];
_m setmarkerType "Dot";
_m setmarkercolor "Colorblack";
 
_m = createmarker ["MapLNote",[(_map_center select 1),-150]];
_m setmarkerText format ["Delta Y: %1 km",(_y_max/1000)];
_m setmarkersize [0,0];
_m setmarkerType "Dot";
_m setmarkercolor "Colorblack";
 
_m = createmarker ["MapSizeNote",_map_center];
_m setmarkerText format ["(Map Size: %1 sq km)",_Map_Area_km];
_m setmarkersize [0,0];
_m setmarkerType "Dot";
_m setmarkercolor "Colorblack";
};
 
_mapsize = _Map_Area_km;
 
WaitUntil {!isNil "_mapsize"};
 
_Size_stndrd = 235.93;
_zoom_stndrd = 0.05;
 
private ["_zoom","_mltplr"];
 
_add = true;
_percnt = (_mapsize/_Size_stndrd);
if (_percnt > 1) then {_percnt = _percnt mod 1;_add = false};
_percntof = 1 - (_percnt);
_zoom_dif = _percntof*_zoom_stndrd;
if !(_add) then {
_zoom = _zoom_stndrd - _zoom_dif;
}else{
_zoom = _zoom_dif + _zoom_stndrd;
};
 
if (_zoom > 0.095) then {
_zoom = 0.25
}else{
if (_zoom == 0) then {
_zoom = _zoom + _zoom_stndrd
}else{
if (_zoom < 0) then {_zoom = 0};
};
};
JTK_HALO_Min_GPS_Zoom = _zoom;
JTK_MapCenter = _map_center;
 
openMap [false, false];
arma2/missions/find-terrain-size.txt · Last modified: 2024/08/01 21:21 by snakeman

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

All PMC web site download services are temporarily suspended until web site yearly fees have been recovered, want to download addons/mods? Then Support PMC.

If you are grateful for all the work PMC has done in the past 25 years, use Support PMC page.