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

◆ RelativizeValue()

float GetCategoryMask::RelativizeValue ( float value,
int var_type,
int mat_id,
int param_id,
bool relative )
protected

converts all values used to relative values (if not relative already)

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

803{
804 protected bool m_IsRunning; //helps determine if the requester has been stopped or not
805 protected bool m_ValuesSent;
806 protected int m_IDX;
807
808 protected bool m_Valid = false;
809
810 protected ref map<int,ref map<int,ref PPERequestParamDataBase>> m_RequestDataStructure; // <material<param_id,data>> // parameter data objects are singletons
811
812 void PPERequesterBase(int requester_IDX)
813 {
814 m_Valid = PPERequesterBank.VerifyRequester(this);
815
816 m_IDX = requester_IDX;
817 m_ValuesSent = true;
818 m_IsRunning = false;
820 }
821
823 void SetRequesterUpdating(bool state)
824 {
825 if (!m_Valid)
826 {
827 Debug.Log("" + this + " not valid!");
828 return;
829 }
830
831 PPEManagerStatic.GetPPEManager().SetRequestUpdating(this,state);
832
833 //TODO - separate into its own function?
834 if (state)
835 PPEManagerStatic.GetPPEManager().SetRequestActive(this,true);
836 }
837
838 void Start(Param par = null)
839 {
840 OnStart(par);
841 m_IsRunning = true;
842 }
843
844 void Stop(Param par = null)
845 {
847 return;
848
849 OnStop(par);
850 m_IsRunning = false;
851 }
852
853 bool IsRequesterRunning()
854 {
855 return m_IsRunning;
856 }
857
859 void SetRequesterIDX(int idx)
860 {
861 m_IDX = idx;
862 }
863
865 int GetRequesterIDX()
866 {
867 return m_IDX;
868 }
869
871 int GetCategoryMask()
872 {
873 return PPERequesterCategory.NONE;
874 }
875
876 //SETTERS//
877 //vvvvvvv//
878 protected void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator = PPOperators.SET)
879 {
881 return;
882
883 PPERequestParamDataBool data = PPERequestParamDataBool.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_BOOL));
884 data.SetPriorityLayer(priority_layer);
885 data.SetInteractionMask(operator);
886
887 data.m_BoolTarget = val;
888 data.m_BoolLast = data.m_BoolCurrent;
889
890 if (data.m_BoolTarget != data.m_BoolCurrent || data.IsSettingDefaultValues())
891 {
892 data.SetSettingDefaultValues(false);
893 data.SetDataActive(true);
894
896 }
897 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBool | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
898 }
899
900 protected void SetTargetValueBoolDefault(int mat_id, int param_idx)
901 {
902 //TODO - running check and cleanup rework (elsewhere!)
903 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
904 return;
905
906 PPERequestParamDataBool data = PPERequestParamDataBool.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_BOOL));
907 data.m_BoolLast = data.m_BoolCurrent;
908 if (!data.IsSettingDefaultValues())
909 {
910 data.SetSettingDefaultValues(true);
911
913 }
914 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueBoolDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
915 }
916
917 protected void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator = PPOperators.SET)
918 {
920 return;
921
922 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
923 data.SetPriorityLayer(priority_layer);
924 data.SetInteractionMask(operator);
925
926 data.m_IntTarget = val;
927 data.m_IntLast = data.m_IntCurrent;
928 if (data.m_IntTarget != data.m_IntCurrent || data.IsSettingDefaultValues())
929 {
930 data.SetSettingDefaultValues(false);
931 data.SetDataActive(true);
932
934 }
935 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueInt | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
936 }
937
938 protected void SetTargetValueIntDefault(int mat_id, int param_idx)
939 {
940 //TODO - running check and cleanup rework (elsewhere!)
941 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
942 return;
943
944 PPERequestParamDataInt data = PPERequestParamDataInt.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_INT));
945 data.m_IntLast = data.m_IntCurrent;
946 if (!data.IsSettingDefaultValues())
947 {
948 data.SetSettingDefaultValues(true);
949
951 }
952 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueIntDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
953 }
954
955 protected void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
956 {
958 return;
959
960 PPERequestParamDataFloat data = PPERequestParamDataFloat.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_FLOAT));
961 data.SetPriorityLayer(priority_layer);
962 data.SetInteractionMask(operator);
963
964 data.m_FloatFormerTarget = data.m_FloatTarget;
965 data.m_FloatTarget = RelativizeValue(val,PPEConstants.VAR_TYPE_FLOAT,mat_id,param_idx,relative);
966 data.m_FloatLast = data.m_FloatCurrent;
967 data.m_FloatStart = data.m_FloatCurrent;
968 if (data.m_FloatTarget != data.m_FloatCurrent || data.IsSettingDefaultValues())
969 {
970 data.SetSettingDefaultValues(false);
971 data.SetDataActive(true);
972
974 }
975 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloat | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
976 }
977
978 protected void SetTargetValueFloatDefault(int mat_id, int param_idx)
979 {
980 //TODO - running check and cleanup rework (elsewhere!)
981 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
982 return;
983
984 PPERequestParamDataFloat data = PPERequestParamDataFloat.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_FLOAT));
985 data.m_FloatFormerTarget = data.m_FloatTarget;
986 data.m_FloatLast = data.m_FloatCurrent;
987 data.m_FloatStart = data.m_FloatCurrent;
988 if (!data.IsSettingDefaultValues())
989 {
990 data.SetSettingDefaultValues(true);
991
993 }
994 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueFloatDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
995 }
996
997 protected void SetTargetValueColor(int mat_id, int param_idx, array<float> val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
998 {
1000 return;
1001
1002 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
1003 data.SetPriorityLayer(priority_layer);
1004 data.SetInteractionMask(operator);
1005 data.m_ColorFormerTarget = data.m_ColorTarget;
1006
1007 data.m_ColorTarget.Copy(val);
1008
1009 data.m_ColorLast = data.m_ColorCurrent;
1010 data.m_ColorStart = data.m_ColorCurrent;
1011 //if (data.m_ColorTarget != data.m_ColorCurrent)
1012 {
1013 data.SetSettingDefaultValues(false);
1014 data.SetDataActive(true);
1015
1017 }
1018 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColor | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1019 }
1020
1021 protected void SetTargetValueColorDefault(int mat_id, int param_idx)
1022 {
1023 //TODO - running check and cleanup rework (elsewhere!)
1024 if ( !m_RequestDataStructure || !m_RequestDataStructure.Get(mat_id) || !m_RequestDataStructure.Get(mat_id).Get(param_idx))
1025 return;
1026
1027 PPERequestParamDataColor data = PPERequestParamDataColor.Cast(GetRequestData(mat_id,param_idx,PPEConstants.VAR_TYPE_COLOR));
1028 data.m_ColorFormerTarget = data.m_ColorTarget;
1029 data.m_ColorLast = data.m_ColorCurrent;
1030 data.m_ColorStart = data.m_ColorCurrent;
1031 if (!data.IsSettingDefaultValues())
1032 {
1033 data.SetSettingDefaultValues(true);
1034
1036 }
1037 //DbgPrnt("PPEDebug | PPERequesterBase - SetTargetValueColorDefault | mat/par/req: " + mat_id + "/" + param_idx + "/" + m_IDX + " | data: " + data);
1038 }
1039
1040 /*protected void SetTargetValueVector(int mat_id, int param_idx, bool relative, vector val, int priority_layer, int operator = PPOperators.ADD_RELATIVE)
1041 {
1042 }
1043
1044 void SetTargetValueTexture(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1045 {
1046 }*/
1047
1048 /*void SetTargetValueResource(int mat_id, int param_idx, string val, int priority_layer, int mask, bool override_priority = false)
1049 {
1050 }*/
1051
1053 protected void QueueValuesSend()
1054 {
1055 m_ValuesSent = false;
1056 //m_IsRunning = true;
1058 }
1059
1061 PPERequestParamDataBase GetRequestData(int mat_id, int param_idx, int type)
1062 {
1064 if ( m_RequestDataStructure.Get(mat_id) )
1065 {
1066 if (m_RequestDataStructure.Get(mat_id).Get(param_idx))
1067 {
1068 data = m_RequestDataStructure.Get(mat_id).Get(param_idx);
1069 }
1070 else
1071 {
1072 data = PrepareData(mat_id,param_idx,type);
1073 m_RequestDataStructure.Get(mat_id).Set(param_idx,data);
1074 }
1075 }
1076 else
1077 {
1078 data = PrepareData(mat_id,param_idx,type);
1080 temp_map.Set(param_idx,data);
1081 m_RequestDataStructure.Set(mat_id, temp_map);
1082 }
1083
1084 if (!data)
1085 {
1086 Error("GetRequestData | no data found in the structure");
1087 }
1088
1089 data.m_Requester = this;
1090
1091 return data;
1092 }
1093
1094 protected PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
1095 {
1097 switch (type)
1098 {
1099 case PPEConstants.VAR_TYPE_BOOL:
1100 data = new PPERequestParamDataBool(m_IDX, mat_id, param_idx);
1101 break;
1102
1103 case PPEConstants.VAR_TYPE_INT:
1104 data = new PPERequestParamDataInt(m_IDX, mat_id, param_idx);
1105 break;
1106
1107 case PPEConstants.VAR_TYPE_FLOAT:
1108 data = new PPERequestParamDataFloat(m_IDX, mat_id, param_idx);
1109 break;
1110
1111 case PPEConstants.VAR_TYPE_COLOR:
1112 data = new PPERequestParamDataColor(m_IDX, mat_id, param_idx);
1113 break;
1114 }
1115 return data;
1116 }
1117
1118 // unused?
1120 {
1122 }
1123
1124 protected void ClearRequesterData()
1125 {
1126 m_RequestDataStructure.Clear();
1127 }
1128
1130 {
1131 PPEManagerStatic.GetPPEManager().SendMaterialValueData(data);
1132 }
1133
1134 //EVENTS//
1135 //vvvvvv//
1136 void OnUpdate(float delta)
1137 {
1138 //DbgPrnt("PPEDebug | PPERequesterBase | OnUpdate");
1139
1140 if ( !m_ValuesSent )
1141 {
1142 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1143 {
1144 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1145 {
1146 SendCurrentValueData(m_RequestDataStructure.GetElement(i).GetElement(j)); //map<int,ref map<int,PPERequestParamDataBase>> //<material<param,data>>
1147 }
1148 }
1149 m_ValuesSent = true;
1150 }
1151 SetRequesterUpdating(false);
1152 }
1153
1154 protected void OnStart(Param par = null)
1155 {
1157 }
1158
1160 protected void OnStop(Param par = null)
1161 {
1162 //DbgPrnt("PPEDebug | " + this + " | OnStop");
1165 }
1166
1168 protected float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
1169 {
1170 float ret = value;
1171 if (!relative) //if not already relative...
1172 {
1173 switch (var_type)
1174 {
1175 case PPEConstants.VAR_TYPE_FLOAT:
1176 PPETemplateDefFloat p_float = PPETemplateDefFloat.Cast(PPEManagerStatic.GetPPEManager().GetPostProcessDefaultValues(mat_id,param_id));
1177 ret = Math.InverseLerp(p_float.param3, p_float.param4, ret);
1178 ret = Math.Clamp(ret,0.0,1.0);
1179 break;
1180 }
1181 }
1182 //Print("RelativizeValue: " + ret);
1183
1184 return ret;
1185 }
1186
1188 protected void SetDefaultValuesAll()
1189 {
1190 //<material<param_id,data>>
1191 PPERequestParamDataBase req_data;
1192
1193 for (int i = 0; i < m_RequestDataStructure.Count(); i++)
1194 {
1195 for (int j = 0; j < m_RequestDataStructure.GetElement(i).Count(); j++)
1196 {
1197 req_data = m_RequestDataStructure.GetElement(i).GetElement(j);
1198
1199 if (!req_data.IsDataActive())
1200 continue;
1201
1202 switch (req_data.GetVarType())
1203 {
1204 case PPEConstants.VAR_TYPE_BOOL:
1206 break;
1207
1208 case PPEConstants.VAR_TYPE_INT:
1210 break;
1211
1212 case PPEConstants.VAR_TYPE_FLOAT:
1214 break;
1215
1216 case PPEConstants.VAR_TYPE_COLOR:
1218 break;
1219 }
1220 }
1221 }
1222 }
1223
1224 void DbgPrnt(string text)
1225 {
1226 //Debug.Log(""+text);
1227 }
1228}
1229
1231// Base requester platforms //
1233
1235{
1236 override int GetCategoryMask()
1237 {
1238 return PPERequesterCategory.GAMEPLAY_EFFECTS;
1239 }
1240}
1241
1243{
1244 override int GetCategoryMask()
1245 {
1246 return PPERequesterCategory.MENU_EFFECTS;
1247 }
1248}
map
Определения ControlsXboxNew.c:4
void Start()
Plays all elements this effects consists of.
Определения Effect.c:155
PPOperators
PP operators, specify operation between subsequent layers.
Определения PPEConstants.c:53
PPERequesterCategory
Определения PPEConstants.c:29
Param4< string, float, float, float > PPETemplateDefFloat
Определения PPEConstants.c:87
void PPERequestParamDataBool(int requester_idx, int mat_id, int param_id, int data_type=0, int priority=0, int mask=PPOperators.SET, bool relative=false)
Определения PPERequestData.c:111
void PPERequestParamDataFloat(int requester_idx, int mat_id, int param_id, int data_type=0, int priority=0, int mask=PPOperators.SET, bool relative=false)
Определения PPERequestData.c:142
bool m_IsRunning
Определения PPERequestPlatformsBase.c:437
void SetTargetValueBoolDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:533
void SendCurrentValueData(PPERequestParamDataBase data)
Определения PPERequestPlatformsBase.c:762
void SetTargetValueBool(int mat_id, int param_idx, bool val, int priority_layer, int operator=PPOperators.SET)
Определения PPERequestPlatformsBase.c:511
ref map< int, ref map< int, ref PPERequestParamDataBase > > m_RequestDataStructure
Определения PPERequestPlatformsBase.c:443
void OnStart(Param par=null)
Определения PPERequestPlatformsBase.c:787
void SetTargetValueFloatDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:611
int GetRequesterIDX()
Returns requester index.
Определения PPERequestPlatformsBase.c:498
map< int, ref map< int, ref PPERequestParamDataBase > > GetActiveRequestStructure()
Определения PPERequestPlatformsBase.c:752
int m_IDX
Определения PPERequestPlatformsBase.c:439
bool IsRequesterRunning()
Определения PPERequestPlatformsBase.c:486
void SetTargetValueColorDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:654
void SetRequesterIDX(int idx)
automatically assigned by PPERequesterBank
Определения PPERequestPlatformsBase.c:492
float RelativizeValue(float value, int var_type, int mat_id, int param_id, bool relative)
converts all values used to relative values (if not relative already)
Определения PPERequestPlatformsBase.c:801
void SetTargetValueFloat(int mat_id, int param_idx, bool relative, float val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
Определения PPERequestPlatformsBase.c:588
void DbgPrnt(string text)
Определения PPERequestPlatformsBase.c:857
void SetDefaultValuesAll()
Sets all requested values to default, ignoring them in further calculations.
Определения PPERequestPlatformsBase.c:821
void QueueValuesSend()
Sets this requester to update in the manager.
Определения PPERequestPlatformsBase.c:686
void SetTargetValueColor(int mat_id, int param_idx, array< float > val, int priority_layer, int operator=PPOperators.ADD_RELATIVE)
Определения PPERequestPlatformsBase.c:630
bool m_Valid
Определения PPERequestPlatformsBase.c:441
void SetRequesterUpdating(bool state)
Has to be set for the requester to be handled.
Определения PPERequestPlatformsBase.c:456
void PPERequesterBase(int requester_IDX)
Определения PPERequestPlatformsBase.c:445
class PPERequesterBase GetCategoryMask()
mask for mass-handling methods like 'StopAllEffects'
Определения PPERequestPlatformsBase.c:436
void SetTargetValueInt(int mat_id, int param_idx, bool relative, int val, int priority_layer, int operator=PPOperators.SET)
Определения PPERequestPlatformsBase.c:550
void SetTargetValueIntDefault(int mat_id, int param_idx)
Определения PPERequestPlatformsBase.c:571
PPERequestParamDataBase GetRequestData(int mat_id, int param_idx, int type)
returns request data for specific parameter, or creates one if one does not exist in this request yet...
Определения PPERequestPlatformsBase.c:694
PPERequestParamDataBase PrepareData(int mat_id, int param_idx, int type)
Определения PPERequestPlatformsBase.c:727
bool m_ValuesSent
Определения PPERequestPlatformsBase.c:438
void ClearRequesterData()
Определения PPERequestPlatformsBase.c:757
@ Count
Определения RandomGeneratorSyncManager.c:8
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
Определения Debug.c:122
Определения Debug.c:2
Определения EnMath.c:7
static PPEManager GetPPEManager()
Returns the manager instance singleton.
Определения PPEManager.c:27
Static component of PPE manager, used to hold the instance.
Определения PPEManager.c:3
PPERequesterBase m_Requester
Определения PPERequestData.c:4
int GetParameterID()
Определения PPERequestData.c:74
int GetMaterialID()
Определения PPERequestData.c:69
bool IsDataActive()
Определения PPERequestData.c:49
int GetVarType()
Определения PPERequestData.c:79
Data for one material parameter, requester side.
Определения PPERequestData.c:3
base, not to be used directly, would lead to layering collisions!
Определения PPERBloodLoss.c:2
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90
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'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
void OnStop()
Определения Sound.c:211
void Stop()
Stops all elements this effect consists of.
Определения Effect.c:181
proto native void OnUpdate()
Определения tools.c:349