| 2250 | } |
| 2251 | |
| 2252 | void cFodder::Camera_Pan_Set_Speed() { |
| 2253 | mCamera_Reached_Target = 2; |
| 2254 | mCamera_Speed_X = 0; |
| 2255 | mCamera_Speed_Y = 0; |
| 2256 | |
| 2257 | int16 Data0 = mCamera_PanTargetX; |
| 2258 | Data0 -= getCameraWidth() / 2; |
| 2259 | if (Data0 < 0) |
| 2260 | Data0 = 0; |
| 2261 | |
| 2262 | Data0 >>= 4; |
| 2263 | int16 Data4 = mCamera_PanTargetY; |
| 2264 | Data4 -= (getCameraHeight() - 8) / 2; |
| 2265 | if (Data4 < 0) |
| 2266 | Data4 = 0; |
| 2267 | |
| 2268 | Data4 >>= 4; |
| 2269 | |
| 2270 | int16 Data8 = mMapLoaded->getWidth(); |
| 2271 | Data8 -= (getCameraWidth() >> 4) + 1; |
| 2272 | |
| 2273 | if (Data8 < 0) |
| 2274 | Data8 = 0; |
| 2275 | |
| 2276 | if (Data0 >= Data8) |
| 2277 | Data0 = Data8; |
| 2278 | |
| 2279 | Data8 = mMapLoaded->getHeight(); |
| 2280 | Data8 -= (getCameraHeight() + 32) >> 4; |
| 2281 | if (Data8 < 0) |
| 2282 | Data8 = 0; |
| 2283 | |
| 2284 | if (Data4 >= Data8) |
| 2285 | Data4 = Data8; |
| 2286 | |
| 2287 | Data8 = mCameraX >> 16; |
| 2288 | Data8 >>= 4; |
| 2289 | int16 DataC = mCameraY >> 16; |
| 2290 | DataC >>= 4; |
| 2291 | |
| 2292 | if (Data8 == Data0) { |
| 2293 | --mCamera_Reached_Target; |
| 2294 | } |
| 2295 | else if (Data8 > Data0) { |
| 2296 | mCamera_Speed_X = (mCamera_Speed_X & 0xFFFF) | -CAMERA_PAN_TO_START_ACCELARATION; // (-8 << 16); |
| 2297 | } |
| 2298 | else |
| 2299 | mCamera_Speed_X = (mCamera_Speed_X & 0xFFFF) | CAMERA_PAN_TO_START_ACCELARATION; // (8 << 16); |
| 2300 | |
| 2301 | //loc_11FAC |
| 2302 | if (DataC == Data4) { |
| 2303 | --mCamera_Reached_Target; |
| 2304 | } |
| 2305 | else if (DataC > Data4) { |
| 2306 | mCamera_Speed_Y = (mCamera_Speed_Y & 0xFFFF) | -CAMERA_PAN_TO_START_ACCELARATION; // (-8 << 16); |
| 2307 | } |
| 2308 | else |
| 2309 | mCamera_Speed_Y = (mCamera_Speed_Y & 0xFFFF) | CAMERA_PAN_TO_START_ACCELARATION; // (8 << 16); |