MCPcopy Create free account
hub / github.com/cuberite/cuberite / Update

Method Update

src/Map.cpp:44–111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42
43
44void cMapDecorator::Update(void)
45{
46 if (m_Player != NULL)
47 {
48 ASSERT(m_Map != NULL);
49 unsigned int PixelWidth = m_Map->GetPixelWidth();
50
51 int InsideWidth = (m_Map->GetWidth() / 2) - 1;
52 int InsideHeight = (m_Map->GetHeight() / 2) - 1;
53
54 int PixelX = (int) (m_Player->GetPosX() - m_Map->GetCenterX()) / PixelWidth;
55 int PixelZ = (int) (m_Player->GetPosZ() - m_Map->GetCenterZ()) / PixelWidth;
56
57 // Center of pixel
58 m_PixelX = (2 * PixelX) + 1;
59 m_PixelZ = (2 * PixelZ) + 1;
60
61 if ((PixelX > -InsideWidth) && (PixelX <= InsideWidth) && (PixelZ > -InsideHeight) && (PixelZ <= InsideHeight))
62 {
63 double Yaw = m_Player->GetYaw();
64
65 if (m_Map->GetDimension() == dimNether)
66 {
67 cFastRandom Random;
68
69 Int64 WorldAge = m_Player->GetWorld()->GetWorldAge();
70
71 // TODO 2014-02-19 xdot: Refine
72 m_Rot = Random.NextInt(16, (int) WorldAge);
73 }
74 else
75 {
76 m_Rot = (int) (Yaw * 16) / 360;
77 }
78
79 m_Type = E_TYPE_PLAYER;
80 }
81 else
82 {
83 if ((abs(PixelX) > 320.0) || (abs(PixelZ) > 320.0))
84 {
85 // TODO 2014-02-18 xdot: Remove decorator
86 }
87
88 m_Rot = 0;
89
90 m_Type = E_TYPE_PLAYER_OUTSIDE;
91
92 // Move to border
93 if (PixelX <= -InsideWidth)
94 {
95 m_PixelX = (2 * -InsideWidth) + 1;
96 }
97 if (PixelZ <= -InsideHeight)
98 {
99 m_PixelZ = (2 * -InsideHeight) + 1;
100 }
101 if (PixelX > InsideWidth)

Callers 3

UpdateDecoratorsMethod · 0.45
StartEncryptionMethod · 0.45
StartEncryptionMethod · 0.45

Calls 12

GetPixelWidthMethod · 0.80
GetCenterXMethod · 0.80
GetCenterZMethod · 0.80
GetYawMethod · 0.80
GetWorldAgeMethod · 0.80
NextIntMethod · 0.80
GetWidthMethod · 0.45
GetHeightMethod · 0.45
GetPosXMethod · 0.45
GetPosZMethod · 0.45
GetDimensionMethod · 0.45
GetWorldMethod · 0.45

Tested by

no test coverage detected