#16 MilanL
Ve výpočtech odkazů není chyba, zkontroloval jsem si to. Problém je, že nefungují odkazy na POINT do paměti podle pokynů výše:
INT32 LAT[156]{ -10127, -10291, -11002, -11149, -10807, -9789, -8948, -8328, -8183, -7918, -7259, -6590, -5993, -7324, -8584, -8876, -8603, -8262, -8858, -8326, -7710, -8189, -7419, -6292, -5564, -5227, -4379, -3494, -3382, -3298, -4022, -4732, -3894, -4604, -6124, -6672, -6904, -7157, -7512, -7987, -8552, -9248, -10438, -10727, -11218, -11566, -12788, -12717, -12070, -11746, -11839, -11238, -11477, -12224, -12864, -14048, -14053, -13786, -14131, -14516, -14395, -14562, -14536, -14487, -14604, -14514, -14833, -14992, -15294, -15153, -15899, -16565, -17287, -17540, -18308, -18508, -18127, -18594, -19131, -19656, -21120, -21738, -21998, -20052, -19360, -19651, -22041, -26186, -25980, -24102, -23168, -22478, -22066, -22263, -23992, -24398, -24821, -26567, -25563, -26156, -25605, -26105, -26391, -25959, -25354, -25366, -26465, -26772, -25812, -25405, -25293, -26805, -29343, -31190, -31647, -32224, -32780, -32636, -32124, -32648, -33977, -34820, -36280, -36874, -35570, -35237, -33215, -34272, -33742, -32777, -32337, -31360, -31185, -31081, -30244, -28997, -27578, -27596, -27393, -27207, -27258, -27371, -26831, -26142, -26505, -26753, -26752, -26340, -26319, -26206, -26212, -26476, -26642, -26790, -26789, -26490
};
INT32 LON[156]{ 73025, 73056, 72348, 71368, 70694, 70816, 69896, 69756, 68782, 67560, 66618, 66209, 66586, 66171, 65126, 63698, 62961, 62424, 62597, 63580, 64129, 64918, 66398, 67329, 67455, 68054, 70343, 72531, 74184, 76406, 78643, 80838, 83212, 84528, 86157, 87738, 88750, 89554, 90109, 90485, 90798, 91481, 90374, 88523, 86799, 84249, 83107, 81232, 80334, 78805, 77591, 76457, 75045, 73544, 72271, 71062, 69696, 68603, 67876, 67306, 66004, 64291, 62692, 61926, 61540, 61192, 61142, 61042, 61153, 61206, 60941, 60356, 59374, 58525, 57722, 57662, 56746, 55771, 55351, 54571, 54200, 54324, 53027, 51690, 50442, 49689, 48362, 46033, 41235, 41275, 41375, 40487, 39458, 38626, 39822, 40245, 40429, 40149, 39217, 38947, 39100, 36916, 38485, 36234, 38713, 40824, 41513, 41779, 41089, 40006, 38967, 38710, 36581, 36241, 35660, 34026, 34544, 32490, 31168, 30185, 29004, 26684, 23031, 15876, 15791, 15628, 13732, 12223, 11979, 12393, 12141, 11593, 10385, 8649, 8551, 9156, 7629, 6108, 6080, 5060, 4762, 4922, 4524, 3795, 3522, 3814, 3792, 2947, 2949, 2763, 2349, 2648, 2273, 1383, 775, 245
};
//POINT apt[156]{};
POINT *apt = (POINT*)(bsrc + 0x01719F0F6B + 8 * x + 8)[*(DWORD *)(bsrc + 0x01719F0F6B + 4 * x + 4)];
for (int i = 0; i < 156; i++) // Naplníme pole pro vynášení bójí
{
apt[i].x = (float)LON[i] / (float)180000 * 960 + 960;
apt[i].y = (float)abs(LAT[i]) / (float)90000 * 540 + 540;
}
Těch 156 hodnot mám v C++ jen pro účely testování. Pokud program při ladění zastavím za blokem řádků výše a najedu kurozorem na řádek s POINT na apt (address of points structure) zobrazí se mi:
apt|0x0000000000000000 <NULL>
Pokud odzávorkuji řádek //POINT apt[156]{}; a z řádku níže udělám komentář je vše v pořádku:
apt|0x00000093a04fe960 {{x=1349 y=600}, {x=1349 y=601}, {x=1345 y=606}, {x=1340 y=606}, {x=1337 y=604}, ...}