DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ HandleOptic()

void DayZPlayer::HandleOptic ( notnull ItemOptics optic,
bool inHands,
HumanInputController pInputs,
out bool pExitOptics )
inlineprotected

См. определение в файле DayZPlayerImplement.c строка 1245

1246 {
1247 UAInterface input = GetInputInterface();
1248 if (!input)
1249 {
1250 return;
1251 }
1252
1253 Weapon_Base weapon;
1254 int FOVcount;
1255 bool controllerPressIn;
1256 bool controllerPressOut;
1257
1258 if (input.SyncedPress_ID(UAZoomInOptics))
1259 {
1260 weapon = Weapon_Base.Cast(optic.GetHierarchyParent());
1261 FOVcount = optic.GetStepFOVCount();
1262 controllerPressIn = input.SyncedPress_ID(UAZoomInOpticsControllerHelper);
1263
1264 if (weapon && m_CameraIronsight && !m_CameraOptics)
1265 {
1266 SetIronsights(false);
1267 SwitchOptics(optic,true);
1268 optic.SetStepFOVIndex(0);
1269 }
1270 else if (m_CameraOptics)
1271 {
1272 if (controllerPressIn) //controller
1273 {
1274 if (!optic.StepFOVUp())
1275 {
1276 if (FOVcount > 0)
1277 {
1278 optic.SetStepFOVIndex(0); //loop to minimum magnification
1279 }
1280
1281 if (weapon && weapon.CanEnterIronsights()) //loop into ironsights
1282 {
1283 SwitchOptics(optic,false);
1284 SetIronsights(true);
1285 }
1286 }
1287 }
1288 else //m&k
1289 {
1290 optic.StepFOVUp();
1291 }
1292 }
1293 }
1294
1295 if (input.SyncedPress_ID(UAZoomOutOptics))
1296 {
1297 weapon = Weapon_Base.Cast(optic.GetHierarchyParent());
1298 FOVcount = optic.GetStepFOVCount();
1299 controllerPressOut = input.SyncedPress_ID(UAZoomOutOpticsControllerHelper);
1300 if (m_CameraOptics)
1301 {
1302 if (!optic.StepFOVDown())
1303 {
1304 if (controllerPressOut)
1305 {
1306 if (FOVcount > 0 && (!weapon || !weapon.CanEnterIronsights()))
1307 {
1308 optic.SetStepFOVIndex(FOVcount - 1); //loop to maximum magnification
1309 }
1310 }
1311
1312 if (weapon && weapon.CanEnterIronsights())
1313 {
1314 SwitchOptics(optic,false);
1315 SetIronsights(true);
1316 }
1317 }
1318 }
1319 else if (controllerPressOut && weapon && m_CameraIronsight)
1320 {
1321 SwitchOptics(optic,true);
1322 if (FOVcount > 0)
1323 {
1324 optic.SetStepFOVIndex(FOVcount - 1); //loop to maximum magnification
1325 }
1326 }
1327 }
1328 }
void SetIronsights(bool value)
Определения DayZPlayerImplement.c:363
bool m_CameraIronsight
Определения DayZPlayerImplement.c:115
bool m_CameraOptics
Определения DayZPlayerImplement.c:116
void SwitchOptics(ItemOptics optic, bool state)
Определения DayZPlayerImplement.c:428
proto native bool SyncedPress_ID(int action, bool check_focus=true)
Returns true just in frame, when action was invoked (button was pressed)

Перекрестные ссылки m_CameraIronsight, m_CameraOptics, SetIronsights(), SwitchOptics() и UAInterface::SyncedPress_ID().

Используется в CommandHandler() и HandleWeapons().