550{
554
556 {
557 m_dmgContactCoef = 0.0790;
558
559 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
560 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
561 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
562 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
563 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
564 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
565
566 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
567 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
568
569 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
570 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
571
572 SetEnginePos("0 0.7 -1.7");
573 }
574
576 {
580 }
581
583 {
584 super.EEInit();
585
587 {
594
597 }
598 }
599
601 {
602 super.OnEngineStart();
603
605 {
608 }
609 }
610
612 {
613 super.OnEngineStop();
614
616 {
619 }
620 }
621
623 {
625 {
627 {
629 }
630 }
631 }
632
634 {
636 }
637
639 {
640 switch (posIdx)
641 {
642 case 0:
644 case 1:
646 case 2:
648 case 3:
650 }
651
652 return 0;
653 }
654
655
657 {
659 }
660
661
663 {
665 }
666
668 {
669 if (!super.CanReleaseAttachment(attachment))
670 {
671 return false;
672 }
673
674 string attType = attachment.GetType();
675 switch (attType)
676 {
677 case "CarBattery":
679 {
680 return false;
681 }
682 break;
683
684 case "SparkPlug":
686 {
687 return false;
688 }
689 break;
690
691 case "CarRadiator":
693 {
694 return false;
695 }
696 break;
697 }
698
699 return true;
700 }
701
703 {
705 }
706
708 {
709 if ( !super.CanDisplayAttachmentCategory(category_name))
710 {
711 return false;
712 }
713
715 if (category_name.
Contains(
"engine"))
716 {
718 {
719 return false;
720 }
721 }
722
723 if (category_name.
Contains(
"trunk"))
724 {
726 {
727 return false;
728 }
729 }
730
731 return true;
732 }
733
735 {
736 if ( !super.CanDisplayCargo() )
737 return false;
738
740 return false;
741
742 return true;
743 }
744
746 {
748
749 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
750 if (!carDoor)
751 {
753 }
754
755 switch (slotType)
756 {
757 case "Sedan_02_Door_1_1":
758 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
759
760 case "Sedan_02_Door_2_1":
761 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
762
763 case "Sedan_02_Door_1_2":
764 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
765
766 case "Sedan_02_Door_2_2":
767 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
768
769 case "Sedan_02_Hood":
770 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
771
772 case "Sedan_02_Trunk":
773 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
774 }
775
777 }
778
779
781 {
782 switch( posIdx )
783 {
784 case 0:
786 return false;
787
788 return true;
789 break;
790
791 case 1:
793 return false;
794
795 return true;
796 break;
797
798 case 2:
800 return false;
801
802 return true;
803 break;
804
805 case 3:
807 return false;
808
809 return true;
810 break;
811 }
812
813 return false;
814 }
815
817 {
818 switch( posIdx )
819 {
820 case 0:
821 return "doors_driver";
822 break;
823 case 1:
824 return "doors_codriver";
825 break;
826 case 2:
827 return "doors_cargo1";
828 break;
829 case 3:
830 return "doors_cargo2";
831 break;
832 }
833
834 return super.GetDoorSelectionNameFromSeatPos(posIdx);
835 }
836
838 {
839 switch( posIdx )
840 {
841 case 0:
842 return "Sedan_02_Door_1_1";
843 break;
844 case 1:
845 return "Sedan_02_Door_2_1";
846 break;
847 case 2:
848 return "Sedan_02_Door_1_2";
849 break;
850 case 3:
851 return "Sedan_02_Door_2_2";
852 break;
853 }
854
855 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
856 }
857
859 {
860 switch ( ctrl )
861 {
863 float newValue = 0;
865 {
866 newValue += 0.25;
867 }
868
870 {
871 newValue += 0.25;
872 }
873
875 {
876 newValue += 0.25;
877 }
878
880 {
881 newValue += 0.25;
882 }
883
885 break;
886 }
887
888 return super.OnSound(ctrl, oldValue);
889 }
890
892 {
893 switch( selection )
894 {
895 case "doors_driver":
896 return "DoorsDriver";
897 case "doors_codriver":
898 return "DoorsCoDriver";
899 case "doors_cargo1":
900 return "DoorsCargo1";
901 case "doors_cargo2":
902 return "DoorsCargo2";
903 case "doors_hood":
904 return "DoorsHood";
905 case "doors_trunk":
906 return "DoorsTrunk";
907 }
908
909 return "";
910 }
911
912
914 {
915 return false;
916 }
917
919 {
920 return false;
921 }
922
924 {
925 switch (currentSeat)
926 {
927 case 0:
928 return nextSeat == 1;
929
930 case 1:
931 return nextSeat == 0;
932
933 case 2:
934 return nextSeat == 3;
935
936 case 3:
937 return nextSeat == 2;
938 }
939
940 return false;
941 }
942
944 {
945 switch (pCurrentSeat)
946 {
947 case 0:
948 return pDoorsSelection == "DoorsDriver";
949
950 case 1:
951 return pDoorsSelection == "DoorsCoDriver";
952
953 case 2:
954 return pDoorsSelection == "DoorsCargo1";
955
956 case 3:
957 return pDoorsSelection == "DoorsCargo2";
958 }
959
960 return false;
961 }
962
964 {
965 SpawnUniversalParts();
966 SpawnAdditionalItems();
967 FillUpCarFluids();
968
975
982
983
986 }
987}
988
990{
992 {
993 SpawnUniversalParts();
994 SpawnAdditionalItems();
995 FillUpCarFluids();
996
997 GameInventory inventory = GetInventory();
1002
1009
1010
1013 }
1014}
1015
1016class Sedan_02_Grey
extends Sedan_02
1017{
1019 {
1020 SpawnUniversalParts();
1021 SpawnAdditionalItems();
1022 FillUpCarFluids();
1023
1024 GameInventory inventory = GetInventory();
1029
1036
1037
1040 }
1041}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
class Sedan_02 extends CarScript OnDebugSpawn()
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override void OnEngineStart()
override CarLightBase CreateFrontLight()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool IsVitalGlowPlug()
override CarRearLightBase CreateRearLight()
override bool IsVitalTruckBattery()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override bool CanDisplayAttachmentCategory(string category_name)
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
Super root of all classes in Enforce script.
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
override void OnDebugSpawn()
original Timer deletes m_params which is unwanted
DayZPlayerConstants
defined in C++
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static const float ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
bool Contains(string sample)
Returns true if sample is substring of string.
proto int ToLower()
Changes string to lowercase. Returns length.