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

◆ HandleOptic()

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

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

1207 {
1208 UAInterface input = GetInputInterface();
1209 if (!input)
1210 {
1211 return;
1212 }
1213
1214 Weapon_Base weapon;
1215 int FOVcount;
1216 bool controllerPressIn;
1217 bool controllerPressOut;
1218
1219 if (input.SyncedPress_ID(UAZoomInOptics))
1220 {
1221 weapon = Weapon_Base.Cast(optic.GetHierarchyParent());
1222 FOVcount = optic.GetStepFOVCount();
1223 controllerPressIn = input.SyncedPress_ID(UAZoomInOpticsControllerHelper);
1224
1225 if (weapon && m_CameraIronsight && !m_CameraOptics)
1226 {
1227 SetIronsights(false);
1228 SwitchOptics(optic,true);
1229 optic.SetStepFOVIndex(0);
1230 }
1231 else if (m_CameraOptics)
1232 {
1233 if (controllerPressIn) //controller
1234 {
1235 if (!optic.StepFOVUp())
1236 {
1237 if (FOVcount > 0)
1238 {
1239 optic.SetStepFOVIndex(0); //loop to minimum magnification
1240 }
1241
1242 if (weapon && weapon.CanEnterIronsights()) //loop into ironsights
1243 {
1244 SwitchOptics(optic,false);
1245 SetIronsights(true);
1246 }
1247 }
1248 }
1249 else //m&k
1250 {
1251 optic.StepFOVUp();
1252 }
1253 }
1254 }
1255
1256 if (input.SyncedPress_ID(UAZoomOutOptics))
1257 {
1258 weapon = Weapon_Base.Cast(optic.GetHierarchyParent());
1259 FOVcount = optic.GetStepFOVCount();
1260 controllerPressOut = input.SyncedPress_ID(UAZoomOutOpticsControllerHelper);
1261 if (m_CameraOptics)
1262 {
1263 if (!optic.StepFOVDown())
1264 {
1265 if (controllerPressOut)
1266 {
1267 if (FOVcount > 0 && (!weapon || !weapon.CanEnterIronsights()))
1268 {
1269 optic.SetStepFOVIndex(FOVcount - 1); //loop to maximum magnification
1270 }
1271 }
1272
1273 if (weapon && weapon.CanEnterIronsights())
1274 {
1275 SwitchOptics(optic,false);
1276 SetIronsights(true);
1277 }
1278 }
1279 }
1280 else if (controllerPressOut && weapon && m_CameraIronsight)
1281 {
1282 SwitchOptics(optic,true);
1283 if (FOVcount > 0)
1284 {
1285 optic.SetStepFOVIndex(FOVcount - 1); //loop to maximum magnification
1286 }
1287 }
1288 }
1289 }
void SetIronsights(bool value)
Определения DayZPlayerImplement.c:382
bool m_CameraIronsight
Определения DayZPlayerImplement.c:139
bool m_CameraOptics
Определения DayZPlayerImplement.c:140
void SwitchOptics(ItemOptics optic, bool state)
Определения DayZPlayerImplement.c:447
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().