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

◆ HandleOptic()

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

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

1144 {
1145 UAInterface input = GetInputInterface();
1146 if (!input)
1147 {
1148 return;
1149 }
1150
1151 Weapon_Base weapon;
1152 int FOVcount;
1153 bool controllerPressIn;
1154 bool controllerPressOut;
1155
1156 if (input.SyncedPress_ID(UAZoomInOptics))
1157 {
1158 weapon = Weapon_Base.Cast(optic.GetHierarchyParent());
1159 FOVcount = optic.GetStepFOVCount();
1160 controllerPressIn = input.SyncedPress_ID(UAZoomInOpticsControllerHelper);
1161
1162 if (weapon && m_CameraIronsight && !m_CameraOptics)
1163 {
1164 SetIronsights(false);
1165 SwitchOptics(optic,true);
1166 optic.SetStepFOVIndex(0);
1167 }
1168 else if (m_CameraOptics)
1169 {
1170 if (controllerPressIn) //controller
1171 {
1172 if (!optic.StepFOVUp())
1173 {
1174 if (FOVcount > 0)
1175 {
1176 optic.SetStepFOVIndex(0); //loop to minimum magnification
1177 }
1178
1179 if (weapon && weapon.CanEnterIronsights()) //loop into ironsights
1180 {
1181 SwitchOptics(optic,false);
1182 SetIronsights(true);
1183 }
1184 }
1185 }
1186 else //m&k
1187 {
1188 optic.StepFOVUp();
1189 }
1190 }
1191 }
1192
1193 if (input.SyncedPress_ID(UAZoomOutOptics))
1194 {
1195 weapon = Weapon_Base.Cast(optic.GetHierarchyParent());
1196 FOVcount = optic.GetStepFOVCount();
1197 controllerPressOut = input.SyncedPress_ID(UAZoomOutOpticsControllerHelper);
1198 if (m_CameraOptics)
1199 {
1200 if (!optic.StepFOVDown())
1201 {
1202 if (controllerPressOut)
1203 {
1204 if (FOVcount > 0 && (!weapon || !weapon.CanEnterIronsights()))
1205 {
1206 optic.SetStepFOVIndex(FOVcount - 1); //loop to maximum magnification
1207 }
1208 }
1209
1210 if (weapon && weapon.CanEnterIronsights())
1211 {
1212 SwitchOptics(optic,false);
1213 SetIronsights(true);
1214 }
1215 }
1216 }
1217 else if (controllerPressOut && weapon && m_CameraIronsight)
1218 {
1219 SwitchOptics(optic,true);
1220 if (FOVcount > 0)
1221 {
1222 optic.SetStepFOVIndex(FOVcount - 1); //loop to maximum magnification
1223 }
1224 }
1225 }
1226 }
void SetIronsights(bool value)
Определения DayZPlayerImplement.c:375
bool m_CameraIronsight
Определения DayZPlayerImplement.c:139
bool m_CameraOptics
Определения DayZPlayerImplement.c:140
void SwitchOptics(ItemOptics optic, bool state)
Определения DayZPlayerImplement.c:440
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().