Added RC_NOT_CONNECTED which is used to check the return value of rcGetCon()
This commit is contained in:
parent
f29a51b612
commit
14d1c97f1a
@ -108,6 +108,7 @@ struct rcCompactHeightfield
|
||||
delete [] spans;
|
||||
delete [] dist;
|
||||
delete [] reg;
|
||||
delete [] flags;
|
||||
}
|
||||
int width, height; // Width and height of the heighfield.
|
||||
int spanCount; // Number of spans in the heightfield.
|
||||
@ -120,6 +121,7 @@ struct rcCompactHeightfield
|
||||
rcCompactSpan* spans; // Pointer to spans.
|
||||
unsigned short* dist; // Pointer to per span distance to border.
|
||||
unsigned short* reg; // Pointer to per span region ID.
|
||||
unsigned short* flags; // Pointer to per span flags.
|
||||
};
|
||||
|
||||
struct rcContour
|
||||
@ -240,7 +242,17 @@ static const unsigned short RC_BORDER_REG = 0x8000;
|
||||
// removed in order to match the segments and vertices at tile boundaries.
|
||||
static const int RC_BORDER_VERTEX = 0x10000;
|
||||
|
||||
|
||||
// Value returned by rcGetCon() if the direction is not connected.
|
||||
static const int RC_NOT_CONNECTED = 0xf;
|
||||
|
||||
// Compact span neighbour helpers.
|
||||
inline void rcSetCon(rcCompactSpan& s, int dir, int i)
|
||||
{
|
||||
s.con &= ~(0xf << (dir*4));
|
||||
s.con |= (i&0xf) << (dir*4);
|
||||
}
|
||||
|
||||
inline int rcGetCon(const rcCompactSpan& s, int dir)
|
||||
{
|
||||
return (s.con >> (dir*4)) & 0xf;
|
||||
|
@ -124,12 +124,6 @@ static int getSpanCount(unsigned char flags, rcHeightfield& hf)
|
||||
return spanCount;
|
||||
}
|
||||
|
||||
inline void setCon(rcCompactSpan& s, int dir, int i)
|
||||
{
|
||||
s.con &= ~(0xf << (dir*4));
|
||||
s.con |= (i&0xf) << (dir*4);
|
||||
}
|
||||
|
||||
bool rcBuildCompactHeightfield(const int walkableHeight, const int walkableClimb,
|
||||
unsigned char flags, rcHeightfield& hf,
|
||||
rcCompactHeightfield& chf)
|
||||
@ -168,6 +162,14 @@ bool rcBuildCompactHeightfield(const int walkableHeight, const int walkableClimb
|
||||
return false;
|
||||
}
|
||||
memset(chf.spans, 0, sizeof(rcCompactSpan)*spanCount);
|
||||
chf.flags = new unsigned short[spanCount];
|
||||
if (!chf.flags)
|
||||
{
|
||||
if (rcGetLog())
|
||||
rcGetLog()->log(RC_LOG_ERROR, "rcBuildCompactHeightfield: Out of memory 'chf.flags' (%d)", spanCount);
|
||||
return false;
|
||||
}
|
||||
memset(chf.flags, 0, sizeof(unsigned short)*spanCount);
|
||||
|
||||
const int MAX_HEIGHT = 0xffff;
|
||||
|
||||
@ -211,7 +213,7 @@ bool rcBuildCompactHeightfield(const int walkableHeight, const int walkableClimb
|
||||
|
||||
for (int dir = 0; dir < 4; ++dir)
|
||||
{
|
||||
setCon(s, dir, 0xf);
|
||||
rcSetCon(s, dir, RC_NOT_CONNECTED);
|
||||
const int nx = x + rcGetDirOffsetX(dir);
|
||||
const int ny = y + rcGetDirOffsetY(dir);
|
||||
// First check that the neighbour cell is in bounds.
|
||||
@ -232,10 +234,13 @@ bool rcBuildCompactHeightfield(const int walkableHeight, const int walkableClimb
|
||||
if ((top - bot) >= walkableHeight && rcAbs((int)ns.y - (int)s.y) <= walkableClimb)
|
||||
{
|
||||
// Mark direction as walkable.
|
||||
setCon(s, dir, k - (int)nc.index);
|
||||
rcSetCon(s, dir, k - (int)nc.index);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ static int getCornerHeight(int x, int y, int i, int dir,
|
||||
|
||||
regs[0] = chf.reg[i];
|
||||
|
||||
if (rcGetCon(s, dir) != 0xf)
|
||||
if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = x + rcGetDirOffsetX(dir);
|
||||
const int ay = y + rcGetDirOffsetY(dir);
|
||||
@ -45,7 +45,7 @@ static int getCornerHeight(int x, int y, int i, int dir,
|
||||
const rcCompactSpan& as = chf.spans[ai];
|
||||
ch = rcMax(ch, (int)as.y);
|
||||
regs[1] = chf.reg[ai];
|
||||
if (rcGetCon(as, dirp) != 0xf)
|
||||
if (rcGetCon(as, dirp) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax2 = ax + rcGetDirOffsetX(dirp);
|
||||
const int ay2 = ay + rcGetDirOffsetY(dirp);
|
||||
@ -55,7 +55,7 @@ static int getCornerHeight(int x, int y, int i, int dir,
|
||||
regs[2] = chf.reg[ai2];
|
||||
}
|
||||
}
|
||||
if (rcGetCon(s, dirp) != 0xf)
|
||||
if (rcGetCon(s, dirp) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = x + rcGetDirOffsetX(dirp);
|
||||
const int ay = y + rcGetDirOffsetY(dirp);
|
||||
@ -63,7 +63,7 @@ static int getCornerHeight(int x, int y, int i, int dir,
|
||||
const rcCompactSpan& as = chf.spans[ai];
|
||||
ch = rcMax(ch, (int)as.y);
|
||||
regs[3] = chf.reg[ai];
|
||||
if (rcGetCon(as, dir) != 0xf)
|
||||
if (rcGetCon(as, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax2 = ax + rcGetDirOffsetX(dir);
|
||||
const int ay2 = ay + rcGetDirOffsetY(dir);
|
||||
@ -127,7 +127,7 @@ static void walkContour(int x, int y, int i,
|
||||
}
|
||||
int r = 0;
|
||||
const rcCompactSpan& s = chf.spans[i];
|
||||
if (rcGetCon(s, dir) != 0xf)
|
||||
if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = x + rcGetDirOffsetX(dir);
|
||||
const int ay = y + rcGetDirOffsetY(dir);
|
||||
@ -150,7 +150,7 @@ static void walkContour(int x, int y, int i,
|
||||
const int nx = x + rcGetDirOffsetX(dir);
|
||||
const int ny = y + rcGetDirOffsetY(dir);
|
||||
const rcCompactSpan& s = chf.spans[i];
|
||||
if (rcGetCon(s, dir) != 0xf)
|
||||
if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const rcCompactCell& nc = chf.cells[nx+ny*chf.width];
|
||||
ni = (int)nc.index + rcGetCon(s, dir);
|
||||
@ -579,7 +579,7 @@ bool rcBuildContours(rcCompactHeightfield& chf,
|
||||
for (int dir = 0; dir < 4; ++dir)
|
||||
{
|
||||
unsigned short r = 0;
|
||||
if (rcGetCon(s, dir) != 0xf)
|
||||
if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = x + rcGetDirOffsetX(dir);
|
||||
const int ay = y + rcGetDirOffsetY(dir);
|
||||
|
@ -803,7 +803,7 @@ static void getHeightData(const rcCompactHeightfield& chf,
|
||||
|
||||
for (int dir = 0; dir < 4; ++dir)
|
||||
{
|
||||
if (rcGetCon(cs, dir) == 0xf) continue;
|
||||
if (rcGetCon(cs, dir) == RC_NOT_CONNECTED) continue;
|
||||
|
||||
const int ax = cx + rcGetDirOffsetX(dir);
|
||||
const int ay = cy + rcGetDirOffsetY(dir);
|
||||
|
@ -50,7 +50,7 @@ static unsigned short* calculateDistanceField(rcCompactHeightfield& chf,
|
||||
int nc = 0;
|
||||
for (int dir = 0; dir < 4; ++dir)
|
||||
{
|
||||
if (rcGetCon(s, dir) != 0xf)
|
||||
if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
|
||||
nc++;
|
||||
}
|
||||
if (nc != 4)
|
||||
@ -69,7 +69,7 @@ static unsigned short* calculateDistanceField(rcCompactHeightfield& chf,
|
||||
{
|
||||
const rcCompactSpan& s = chf.spans[i];
|
||||
|
||||
if (rcGetCon(s, 0) != 0xf)
|
||||
if (rcGetCon(s, 0) != RC_NOT_CONNECTED)
|
||||
{
|
||||
// (-1,0)
|
||||
const int ax = x + rcGetDirOffsetX(0);
|
||||
@ -80,7 +80,7 @@ static unsigned short* calculateDistanceField(rcCompactHeightfield& chf,
|
||||
src[i] = src[ai]+2;
|
||||
|
||||
// (-1,-1)
|
||||
if (rcGetCon(as, 3) != 0xf)
|
||||
if (rcGetCon(as, 3) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int aax = ax + rcGetDirOffsetX(3);
|
||||
const int aay = ay + rcGetDirOffsetY(3);
|
||||
@ -89,7 +89,7 @@ static unsigned short* calculateDistanceField(rcCompactHeightfield& chf,
|
||||
src[i] = src[aai]+3;
|
||||
}
|
||||
}
|
||||
if (rcGetCon(s, 3) != 0xf)
|
||||
if (rcGetCon(s, 3) != RC_NOT_CONNECTED)
|
||||
{
|
||||
// (0,-1)
|
||||
const int ax = x + rcGetDirOffsetX(3);
|
||||
@ -100,7 +100,7 @@ static unsigned short* calculateDistanceField(rcCompactHeightfield& chf,
|
||||
src[i] = src[ai]+2;
|
||||
|
||||
// (1,-1)
|
||||
if (rcGetCon(as, 2) != 0xf)
|
||||
if (rcGetCon(as, 2) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int aax = ax + rcGetDirOffsetX(2);
|
||||
const int aay = ay + rcGetDirOffsetY(2);
|
||||
@ -123,7 +123,7 @@ static unsigned short* calculateDistanceField(rcCompactHeightfield& chf,
|
||||
{
|
||||
const rcCompactSpan& s = chf.spans[i];
|
||||
|
||||
if (rcGetCon(s, 2) != 0xf)
|
||||
if (rcGetCon(s, 2) != RC_NOT_CONNECTED)
|
||||
{
|
||||
// (1,0)
|
||||
const int ax = x + rcGetDirOffsetX(2);
|
||||
@ -134,7 +134,7 @@ static unsigned short* calculateDistanceField(rcCompactHeightfield& chf,
|
||||
src[i] = src[ai]+2;
|
||||
|
||||
// (1,1)
|
||||
if (rcGetCon(as, 1) != 0xf)
|
||||
if (rcGetCon(as, 1) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int aax = ax + rcGetDirOffsetX(1);
|
||||
const int aay = ay + rcGetDirOffsetY(1);
|
||||
@ -143,7 +143,7 @@ static unsigned short* calculateDistanceField(rcCompactHeightfield& chf,
|
||||
src[i] = src[aai]+3;
|
||||
}
|
||||
}
|
||||
if (rcGetCon(s, 1) != 0xf)
|
||||
if (rcGetCon(s, 1) != RC_NOT_CONNECTED)
|
||||
{
|
||||
// (0,1)
|
||||
const int ax = x + rcGetDirOffsetX(1);
|
||||
@ -154,7 +154,7 @@ static unsigned short* calculateDistanceField(rcCompactHeightfield& chf,
|
||||
src[i] = src[ai]+2;
|
||||
|
||||
// (-1,1)
|
||||
if (rcGetCon(as, 0) != 0xf)
|
||||
if (rcGetCon(as, 0) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int aax = ax + rcGetDirOffsetX(0);
|
||||
const int aay = ay + rcGetDirOffsetY(0);
|
||||
@ -201,7 +201,7 @@ static unsigned short* boxBlur(rcCompactHeightfield& chf, int thr,
|
||||
int d = cd;
|
||||
for (int dir = 0; dir < 4; ++dir)
|
||||
{
|
||||
if (rcGetCon(s, dir) != 0xf)
|
||||
if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = x + rcGetDirOffsetX(dir);
|
||||
const int ay = y + rcGetDirOffsetY(dir);
|
||||
@ -210,7 +210,7 @@ static unsigned short* boxBlur(rcCompactHeightfield& chf, int thr,
|
||||
|
||||
const rcCompactSpan& as = chf.spans[ai];
|
||||
const int dir2 = (dir+1) & 0x3;
|
||||
if (rcGetCon(as, dir2) != 0xf)
|
||||
if (rcGetCon(as, dir2) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax2 = ax + rcGetDirOffsetX(dir2);
|
||||
const int ay2 = ay + rcGetDirOffsetY(dir2);
|
||||
@ -267,7 +267,7 @@ static bool floodRegion(int x, int y, int i,
|
||||
for (int dir = 0; dir < 4; ++dir)
|
||||
{
|
||||
// 8 connected
|
||||
if (rcGetCon(cs, dir) != 0xf)
|
||||
if (rcGetCon(cs, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = cx + rcGetDirOffsetX(dir);
|
||||
const int ay = cy + rcGetDirOffsetY(dir);
|
||||
@ -279,7 +279,7 @@ static bool floodRegion(int x, int y, int i,
|
||||
const rcCompactSpan& as = chf.spans[ai];
|
||||
|
||||
const int dir2 = (dir+1) & 0x3;
|
||||
if (rcGetCon(as, dir2) != 0xf)
|
||||
if (rcGetCon(as, dir2) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax2 = ax + rcGetDirOffsetX(dir2);
|
||||
const int ay2 = ay + rcGetDirOffsetY(dir2);
|
||||
@ -301,7 +301,7 @@ static bool floodRegion(int x, int y, int i,
|
||||
// Expand neighbours.
|
||||
for (int dir = 0; dir < 4; ++dir)
|
||||
{
|
||||
if (rcGetCon(cs, dir) != 0xf)
|
||||
if (rcGetCon(cs, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = cx + rcGetDirOffsetX(dir);
|
||||
const int ay = cy + rcGetDirOffsetY(dir);
|
||||
@ -376,7 +376,7 @@ static unsigned short* expandRegions(int maxIter, unsigned short level,
|
||||
const rcCompactSpan& s = chf.spans[i];
|
||||
for (int dir = 0; dir < 4; ++dir)
|
||||
{
|
||||
if (rcGetCon(s, dir) == 0xf) continue;
|
||||
if (rcGetCon(s, dir) == RC_NOT_CONNECTED) continue;
|
||||
const int ax = x + rcGetDirOffsetX(dir);
|
||||
const int ay = y + rcGetDirOffsetY(dir);
|
||||
const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, dir);
|
||||
@ -569,7 +569,7 @@ static bool isSolidEdge(rcCompactHeightfield& chf, unsigned short* srcReg,
|
||||
{
|
||||
const rcCompactSpan& s = chf.spans[i];
|
||||
unsigned short r = 0;
|
||||
if (rcGetCon(s, dir) != 0xf)
|
||||
if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = x + rcGetDirOffsetX(dir);
|
||||
const int ay = y + rcGetDirOffsetY(dir);
|
||||
@ -591,7 +591,7 @@ static void walkContour(int x, int y, int i, int dir,
|
||||
|
||||
const rcCompactSpan& ss = chf.spans[i];
|
||||
unsigned short curReg = 0;
|
||||
if (rcGetCon(ss, dir) != 0xf)
|
||||
if (rcGetCon(ss, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = x + rcGetDirOffsetX(dir);
|
||||
const int ay = y + rcGetDirOffsetY(dir);
|
||||
@ -609,7 +609,7 @@ static void walkContour(int x, int y, int i, int dir,
|
||||
{
|
||||
// Choose the edge corner
|
||||
unsigned short r = 0;
|
||||
if (rcGetCon(s, dir) != 0xf)
|
||||
if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = x + rcGetDirOffsetX(dir);
|
||||
const int ay = y + rcGetDirOffsetY(dir);
|
||||
@ -629,7 +629,7 @@ static void walkContour(int x, int y, int i, int dir,
|
||||
int ni = -1;
|
||||
const int nx = x + rcGetDirOffsetX(dir);
|
||||
const int ny = y + rcGetDirOffsetY(dir);
|
||||
if (rcGetCon(s, dir) != 0xf)
|
||||
if (rcGetCon(s, dir) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const rcCompactCell& nc = chf.cells[nx+ny*chf.width];
|
||||
ni = (int)nc.index + rcGetCon(s, dir);
|
||||
@ -1027,7 +1027,7 @@ bool rcBuildRegionsMonotone(rcCompactHeightfield& chf,
|
||||
|
||||
// -x
|
||||
unsigned short previd = 0;
|
||||
if (rcGetCon(s, 0) != 0xf)
|
||||
if (rcGetCon(s, 0) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = x + rcGetDirOffsetX(0);
|
||||
const int ay = y + rcGetDirOffsetY(0);
|
||||
@ -1045,7 +1045,7 @@ bool rcBuildRegionsMonotone(rcCompactHeightfield& chf,
|
||||
}
|
||||
|
||||
// -y
|
||||
if (rcGetCon(s,3) != 0xf)
|
||||
if (rcGetCon(s,3) != RC_NOT_CONNECTED)
|
||||
{
|
||||
const int ax = x + rcGetDirOffsetX(3);
|
||||
const int ay = y + rcGetDirOffsetY(3);
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -279,14 +279,14 @@
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>26</integer>
|
||||
<integer>28</integer>
|
||||
<integer>18</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
</array>
|
||||
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
|
||||
<string>{{0, 280}, {282, 660}}</string>
|
||||
<string>{{0, 125}, {282, 660}}</string>
|
||||
</dict>
|
||||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
@ -321,7 +321,7 @@
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>6B8632A30F78115100E2684A</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>RecastMeshDetail.cpp</string>
|
||||
<string>Recast.cpp</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
@ -329,33 +329,43 @@
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>6B8632A40F78115100E2684A</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>RecastMeshDetail.cpp</string>
|
||||
<string>Recast.cpp</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>6B7FB7461091E02E001BA51A</string>
|
||||
<string>6B8DE74910B01BE900DF20FB</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>6B6FA3B31076452F009B0572</string>
|
||||
<string>6B6FA3B41076452F009B0572</string>
|
||||
<string>6B6FA3B61076452F009B0572</string>
|
||||
<string>6B3BFADD107A80E1006284CD</string>
|
||||
<string>6B3BFB0C107A8979006284CD</string>
|
||||
<string>6B3BFB0D107A8979006284CD</string>
|
||||
<string>6B9BE372107BC6A40036CC81</string>
|
||||
<string>6B57D358108C66B200DDD053</string>
|
||||
<string>6B57D372108C692900DDD053</string>
|
||||
<string>6B57D38F108C69E400DDD053</string>
|
||||
<string>6B57D391108C69E400DDD053</string>
|
||||
<string>6B7FB7351091DD43001BA51A</string>
|
||||
<string>6B7FB7451091E02E001BA51A</string>
|
||||
<string>6B7FB74A1091EBDE001BA51A</string>
|
||||
<string>6B7FB74D1091EBDE001BA51A</string>
|
||||
<string>6B8DE6FE10B01BBF00DF20FB</string>
|
||||
<string>6B8DE6FF10B01BBF00DF20FB</string>
|
||||
<string>6B8DE70010B01BBF00DF20FB</string>
|
||||
<string>6B8DE70110B01BBF00DF20FB</string>
|
||||
<string>6B8DE70310B01BBF00DF20FB</string>
|
||||
<string>6B8DE70410B01BBF00DF20FB</string>
|
||||
<string>6B8DE70510B01BBF00DF20FB</string>
|
||||
<string>6B8DE70610B01BBF00DF20FB</string>
|
||||
<string>6B8DE70710B01BBF00DF20FB</string>
|
||||
<string>6B8DE70810B01BBF00DF20FB</string>
|
||||
<string>6B8DE70910B01BBF00DF20FB</string>
|
||||
<string>6B8DE70A10B01BBF00DF20FB</string>
|
||||
<string>6B8DE70B10B01BBF00DF20FB</string>
|
||||
<string>6B8DE70C10B01BBF00DF20FB</string>
|
||||
<string>6B8DE70D10B01BBF00DF20FB</string>
|
||||
<string>6B8DE73D10B01BBF00DF20FB</string>
|
||||
</array>
|
||||
<key>prevStack</key>
|
||||
<array>
|
||||
<string>6B6FA3611070C102009B0572</string>
|
||||
<string>6B6FA36B1070C1F7009B0572</string>
|
||||
<string>6B6FA3B81076452F009B0572</string>
|
||||
<string>6B6FA3B91076452F009B0572</string>
|
||||
<string>6B6FA3BA1076452F009B0572</string>
|
||||
<string>6B6FA3BC1076452F009B0572</string>
|
||||
<string>6B3BFADF107A80E1006284CD</string>
|
||||
@ -365,8 +375,48 @@
|
||||
<string>6B57D35B108C66B200DDD053</string>
|
||||
<string>6B57D376108C692900DDD053</string>
|
||||
<string>6B57D393108C69E400DDD053</string>
|
||||
<string>6B7FB7371091DD43001BA51A</string>
|
||||
<string>6B7FB7381091DD43001BA51A</string>
|
||||
<string>6B7FB7531091EBDE001BA51A</string>
|
||||
<string>6B7FB7541091EBDE001BA51A</string>
|
||||
<string>6B7FB7571091EBDE001BA51A</string>
|
||||
<string>6B8DE71110B01BBF00DF20FB</string>
|
||||
<string>6B8DE71210B01BBF00DF20FB</string>
|
||||
<string>6B8DE71310B01BBF00DF20FB</string>
|
||||
<string>6B8DE71410B01BBF00DF20FB</string>
|
||||
<string>6B8DE71510B01BBF00DF20FB</string>
|
||||
<string>6B8DE71710B01BBF00DF20FB</string>
|
||||
<string>6B8DE71810B01BBF00DF20FB</string>
|
||||
<string>6B8DE71910B01BBF00DF20FB</string>
|
||||
<string>6B8DE71A10B01BBF00DF20FB</string>
|
||||
<string>6B8DE71B10B01BBF00DF20FB</string>
|
||||
<string>6B8DE71C10B01BBF00DF20FB</string>
|
||||
<string>6B8DE71D10B01BBF00DF20FB</string>
|
||||
<string>6B8DE71E10B01BBF00DF20FB</string>
|
||||
<string>6B8DE71F10B01BBF00DF20FB</string>
|
||||
<string>6B8DE72010B01BBF00DF20FB</string>
|
||||
<string>6B8DE72110B01BBF00DF20FB</string>
|
||||
<string>6B8DE72210B01BBF00DF20FB</string>
|
||||
<string>6B8DE72310B01BBF00DF20FB</string>
|
||||
<string>6B8DE72410B01BBF00DF20FB</string>
|
||||
<string>6B8DE72510B01BBF00DF20FB</string>
|
||||
<string>6B8DE72610B01BBF00DF20FB</string>
|
||||
<string>6B8DE72810B01BBF00DF20FB</string>
|
||||
<string>6B8DE72A10B01BBF00DF20FB</string>
|
||||
<string>6B8DE72B10B01BBF00DF20FB</string>
|
||||
<string>6B8DE72D10B01BBF00DF20FB</string>
|
||||
<string>6B8DE72E10B01BBF00DF20FB</string>
|
||||
<string>6B8DE72F10B01BBF00DF20FB</string>
|
||||
<string>6B8DE73010B01BBF00DF20FB</string>
|
||||
<string>6B8DE73110B01BBF00DF20FB</string>
|
||||
<string>6B8DE73210B01BBF00DF20FB</string>
|
||||
<string>6B8DE73310B01BBF00DF20FB</string>
|
||||
<string>6B8DE73410B01BBF00DF20FB</string>
|
||||
<string>6B8DE73510B01BBF00DF20FB</string>
|
||||
<string>6B8DE73610B01BBF00DF20FB</string>
|
||||
<string>6B8DE73710B01BBF00DF20FB</string>
|
||||
<string>6B8DE73810B01BBF00DF20FB</string>
|
||||
<string>6B8DE73910B01BBF00DF20FB</string>
|
||||
<string>6B8DE73A10B01BBF00DF20FB</string>
|
||||
<string>6B8DE73B10B01BBF00DF20FB</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
@ -380,18 +430,18 @@
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {976, 551}}</string>
|
||||
<string>{{0, 0}, {976, 434}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>0 59 1280 719 0 0 1280 778 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>551pt</string>
|
||||
<string>434pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>122pt</string>
|
||||
<string>239pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
@ -405,7 +455,7 @@
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {976, 145}}</string>
|
||||
<string>{{10, 27}, {976, -27}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
@ -421,7 +471,9 @@
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {976, 166}}</string>
|
||||
<string>{{10, 27}, {976, 212}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>0 59 1280 719 0 0 1280 778 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXProjectFindModule</string>
|
||||
@ -459,9 +511,7 @@
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {976, 95}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>0 59 1280 719 0 0 1280 778 </string>
|
||||
<string>{{10, 27}, {976, 155}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
@ -489,11 +539,11 @@
|
||||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>6B7FB6F31091CF16001BA51A</string>
|
||||
<string>6B8DE73F10B01BBF00DF20FB</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>6B7FB6F41091CF16001BA51A</string>
|
||||
<string>6B8DE74010B01BBF00DF20FB</string>
|
||||
<string>6B8632A30F78115100E2684A</string>
|
||||
<string>6B7FB6F51091CF16001BA51A</string>
|
||||
<string>6B8DE74110B01BBF00DF20FB</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
@ -640,14 +690,14 @@
|
||||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>6B7FB6F61091CF16001BA51A</string>
|
||||
<string>6B8DE74210B01BBF00DF20FB</string>
|
||||
<string>1CCC7628064C1048000F2A68</string>
|
||||
<string>1CCC7629064C1048000F2A68</string>
|
||||
<string>6B7FB6F71091CF16001BA51A</string>
|
||||
<string>6B7FB6F81091CF16001BA51A</string>
|
||||
<string>6B7FB6F91091CF16001BA51A</string>
|
||||
<string>6B7FB6FA1091CF16001BA51A</string>
|
||||
<string>6B7FB6FB1091CF16001BA51A</string>
|
||||
<string>6B8DE74310B01BBF00DF20FB</string>
|
||||
<string>6B8DE74410B01BBF00DF20FB</string>
|
||||
<string>6B8DE74510B01BBF00DF20FB</string>
|
||||
<string>6B8DE74610B01BBF00DF20FB</string>
|
||||
<string>6B8DE74710B01BBF00DF20FB</string>
|
||||
</array>
|
||||
<key>ToolbarConfiguration</key>
|
||||
<string>xcode.toolbar.config.debugV3</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user