Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_ResourceGeneratorContainerStorageQueueExtended.c
Go to the documentation of this file.
3{
4 //------------------------------------------------------------------------------------------------
6 {
7 return true;
8 }
9
10 //------------------------------------------------------------------------------------------------
11 override int ComputePosition(SCR_ResourceContainer container, SCR_ResourceInteractor actor)
12 {
13 int containerComparePosition;
14 float containerCompareResource;
15 float containerCompareMaxResource;
16 float containerCompareNorm;
17 SCR_ResourceContainer containerCompare;
19 int maxPosition = GetUpperOffsetPosition();
20 float containerResource = container.GetResourceValue();
21 float containerMaxResource = container.GetMaxResourceValue();
22
24 if (containerResource == containerMaxResource)
25 return maxPosition - m_iOffsetPosition;
26
27 float containerNorm = vector.DistanceSq(actor.GetOwnerOrigin(), container.GetOwnerOrigin());
28
29 while (position < maxPosition)
30 {
31 containerComparePosition = position + ((maxPosition - position) >> 1);
32 containerCompare = GetContainerAt(containerComparePosition);
33
34 if (!containerCompare)
35 {
36 maxPosition = containerComparePosition;
37 continue;
38 }
39
40 containerCompareResource = containerCompare.GetResourceValue();
41 containerCompareMaxResource = containerCompare.GetMaxResourceValue();
42 containerCompareNorm = vector.DistanceSq(actor.GetOwnerOrigin(), containerCompare.GetOwnerOrigin());
43
44 if (containerNorm > containerCompareNorm)
45 position = containerComparePosition + 1;
46
47 else if (containerNorm < containerCompareNorm)
48 maxPosition = containerComparePosition;
49
50 else if (containerResource > containerCompareResource)
51 position = containerComparePosition + 1;
52
53 else if (containerResource < containerCompareResource)
54 maxPosition = containerComparePosition;
55
56 else if (containerMaxResource > containerCompareMaxResource)
57 position = containerComparePosition + 1;
58
59 else if (containerMaxResource < containerCompareMaxResource)
60 maxPosition = containerComparePosition;
61
62 else
63 break;
64 }
65
67 }
68};
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
vector position
SCR_ResourceContainer GetContainerAt(int index)