Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_ResourceGeneratorContainerStorageQueueExtended.c
Go to the documentation of this file.
1
[
BaseContainerProps
()]
2
class
SCR_ResourceGeneratorContainerStorageQueueExtended
:
SCR_ResourceGeneratorContainerStorageQueue
3
{
4
//------------------------------------------------------------------------------------------------
5
override
bool
ShouldContainerChangeCauseUpdate
()
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;
18
int
position
=
m_iOffsetPosition
;
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
66
return
position
-
m_iOffsetPosition
;
67
}
68
};
BaseContainerProps
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
Definition
SCR_AIAnimationWaypoint.c:14
position
vector position
Definition
SCR_DestructibleTreeV2.c:30
SCR_ResourceContainer
Definition
SCR_ResourceContainer.c:35
SCR_ResourceContainer::GetResourceValue
float GetResourceValue()
Definition
SCR_ResourceContainer.c:95
SCR_ResourceContainer::GetMaxResourceValue
float GetMaxResourceValue()
Definition
SCR_ResourceContainer.c:101
SCR_ResourceContainerStorageQueue::ShouldContainerChangeCauseUpdate
bool ShouldContainerChangeCauseUpdate()
Definition
SCR_ResourceContainerStorageQueue.c:48
SCR_ResourceContainerStorageQueue::m_iOffsetPosition
int m_iOffsetPosition
Definition
SCR_ResourceContainerStorageQueue.c:4
SCR_ResourceContainerStorageQueue::GetUpperOffsetPosition
int GetUpperOffsetPosition()
Definition
SCR_ResourceContainerStorageQueue.c:21
SCR_ResourceContainerStorageQueue::GetContainerAt
SCR_ResourceContainer GetContainerAt(int index)
Definition
SCR_ResourceContainerStorageQueue.c:33
SCR_ResourceGeneratorContainerStorageQueueExtended
Definition
SCR_ResourceGeneratorContainerStorageQueueExtended.c:3
SCR_ResourceGeneratorContainerStorageQueue
Definition
SCR_ResourceGeneratorContainerStorageQueue.c:3
vector
Definition
vector.c:13
scripts
Game
Sandbox
Resources
ContainerQueue
Storage
Queue
Generator
SCR_ResourceGeneratorContainerStorageQueueExtended.c
Generated by
1.17.0