[Client] ZONEMOVEINFO class

10/27/2022 07:55 lnwnuyhodd#1
Code:
struct ZONEMAINDATA
{
  float mFirstCoord[3];
  int mNextZoneNum;
  float mXYZ[100][3];
  int mNextZone[100];
  int unkB;
  float mStartCoord[100][3];
  int unkD[100];
};
struct ZONEMAINDATA2
{
	float mFirstCoord[3];
	int mTotalOutNum;//total num for teleport to zone (min-0 | max-100)
	float mOutCoord[100][3]; //[100] to xyz
	int mOutZoneNumber[100];//[100] zone number
	int mTotalInNum;//total num for teleport from zone (min-0 | max-100)
	float mInCoord[100][3]; //[100] to xyz
	int mInFrom[100];//[100] zone number
};

ZONEMOVEINFO *__thiscall ZONEMOVEINFO::ZONEMOVEINFO(ZONEMOVEINFO *this)
{
    return this;
}

BOOL __thiscall ZONEMOVEINFO::Init(void *this)
{
    DWORD NumberOfBytesRead; // [esp+4h] [ebp-8h] BYREF
    HANDLE hFile; // [esp+8h] [ebp-4h]

    hFile = CreateFileA("G02_GINFO\\003.BIN", 2147483648, 1u, 0, 3u, 128u, 0);
    if ( hFile == -1 )
        return 0;
    if ( ReadFile(hFile, this, 1127000u, &NumberOfBytesRead, 0) && NumberOfBytesRead == 1127000 )
        return CloseHandle(hFile);
    CloseHandle(hFile);
    return 0;
}

void ZONEMOVEINFO::Free()
{
}

void __cdecl ZONEMOVEINFO::SetFirstCoord(int tZoneNumner, float tCoord[3])
{
    ZONEMOVEINFO *v2; // ecx

    tCoord[0] = 0.0;
    tCoord[1] = 0.0;
    tCoord[2] = 0.0;
    if ( tZoneNumner >= 1 && tZoneNumner <= 350 )
    {
        tCoord[0] = v2->mDATA[tZoneNumner - 1].mFirstCoord[0];
        tCoord[1] = v2->mDATA[tZoneNumner - 1].mFirstCoord[1];
        tCoord[2] = v2->mDATA[tZoneNumner - 1].mFirstCoord[2];
    }
}

void __cdecl ZONEMOVEINFO::SetStartCoord(int tZoneNumber, int tPreZoneNumber, float tCoord[3])
{
    ZONEMOVEINFO *v3; // ecx
    int i; // [esp+4h] [ebp-4h]

    tCoord[0] = 0.0;
    tCoord[1] = 0.0;
    tCoord[2] = 0.0;
    if ( tZoneNumber >= 1 && tZoneNumber <= 350 )
    {
        for ( i = 0; i < v3->mDATA[tZoneNumber - 1].unkB && v3->mDATA[tZoneNumber - 1].unkD[i] != tPreZoneNumber; ++i )
            ;
        if ( i != v3->mDATA[tZoneNumber - 1].unkB )
        {
            tCoord[0] = v3->mDATA[tZoneNumber - 1].mStartCoord[i][0];
            tCoord[1] = v3->mDATA[tZoneNumber - 1].mStartCoord[i][1];
            tCoord[2] = v3->mDATA[tZoneNumber - 1].mStartCoord[i][2];
        }
    }
}

int __stdcall ZONEMOVEINFO::ReturnMoveZone(int tFrom, int tTo)
{
    int result; // eax
    int v3; // esi
    int v4; // esi
    int v5; // esi
    int v6; // esi
    int v7; // esi
    int v8; // esi
    int v9; // esi
    int v10; // esi
    int v11; // esi
    int v12; // esi
    int v13; // esi
    int v14; // esi
    int v15; // esi
    int v16; // esi
    int v17; // esi
    int v18; // esi
    int v19; // esi
    int v20; // esi
    int v21; // esi
    int v22; // esi
    int v23; // esi
    int v24; // esi
    int v25; // esi
    int v26; // esi
    int v27; // esi
    int v28; // esi
    int v29; // esi
    int v30; // esi
    int v31; // esi
    int v32; // esi
    int v33; // esi
    int v34; // esi
    int v35; // esi
    int v36; // esi
    int v37; // esi
    int v38; // esi
    int v39; // esi
    int v40; // esi
    int v41; // esi
    int v42; // esi
    int v43; // esi
    int v44; // esi
    int v45; // esi
    int v46; // esi
    int v47; // esi
    int v48; // esi
    int v49; // esi
    int v50; // esi
    int v51; // esi
    int v52; // esi
    int v53; // esi
    int v54; // esi
    int v55; // esi
    int v56; // esi
    int v57; // esi
    int v58; // esi
    int v59; // esi
    int v60; // esi
    int v61; // esi
    int v62; // esi
    int v63; // esi
    int v64; // esi
    int v65; // esi
    int v66; // esi
    int v67; // esi
    int v68; // esi
    int v69; // esi
    int v70; // esi
    int v71; // esi
    int v72; // esi
    int v73; // esi
    int v74; // esi
    int v75; // esi
    int v76; // esi
    int v77; // esi
    int v78; // esi
    int v79; // esi
    int v80; // esi
    int v81; // esi
    int v82; // esi
    int v83; // esi
    int v84; // esi
    int v85; // esi
    int v86; // esi
    int v87; // esi
    int v88; // esi
    int v89; // esi
    int v90; // esi
    int v91; // esi
    int v92; // esi
    int v93; // esi
    int v94; // esi
    int v95; // esi
    int v96; // esi
    int v97; // esi
    int v98; // esi
    int v99; // esi
    int v100; // esi
    int v101; // esi
    int v102; // esi
    int v103; // esi
    int v104; // esi
    int v105; // esi
    int v106; // esi
    int v107; // esi
    int v108; // esi

    if ( tFrom < 1 || tFrom > 350 || tTo < 1 || tTo > 350 )
        return 0;
    if ( tFrom == 1 && tTo == 2
      || tFrom == 2 && tTo == 3
      || tFrom == 3 && tTo == 4
      || tFrom == 4 && tTo == 38
      || tFrom == 40 && tTo == 43
      || tFrom == 40 && tTo == 38
      || tFrom == 43 && tTo == 56
      || tFrom == 43 && tTo == 40
      || tFrom == 46 && tTo == 2
      || tFrom == 16 && tTo == 3
      || tFrom == 17 && tTo == 4
      || tFrom == 62 && tTo == 40
      || tFrom == 64 && tTo == 43
      || tFrom == 59 && tTo == 56
      || tFrom == 17 && tTo == 18
      || tFrom == 18 && tTo == 17
      || tFrom == 62 && tTo == 63
      || tFrom == 63 && tTo == 62
      || tFrom == 40 && tTo == 62
      || tFrom == 43 && tTo == 64
      || tFrom == 56 && tTo == 59
      || tFrom == 56 && tTo == 43
      || tFrom == 6 && tTo == 7
      || tFrom == 7 && tTo == 8
      || tFrom == 8 && tTo == 9
      || tFrom == 9 && tTo == 38
      || tFrom == 41 && tTo == 44
      || tFrom == 41 && tTo == 38
      || tFrom == 44 && tTo == 57
      || tFrom == 44 && tTo == 41
      || tFrom == 47 && tTo == 7
      || tFrom == 22 && tTo == 8
      || tFrom == 23 && tTo == 9
      || tFrom == 65 && tTo == 41
      || tFrom == 67 && tTo == 44
      || tFrom == 60 && tTo == 57
      || tFrom == 23 && tTo == 24
      || tFrom == 24 && tTo == 23
      || tFrom == 65 && tTo == 66
      || tFrom == 66 && tTo == 65
      || tFrom == 41 && tTo == 65
      || tFrom == 44 && tTo == 67
      || tFrom == 57 && tTo == 60
      || tFrom == 57 && tTo == 44
      || tFrom == 11 && tTo == 12
      || tFrom == 12 && tTo == 13
      || tFrom == 13 && tTo == 14
      || tFrom == 14 && tTo == 38
      || tFrom == 42 && tTo == 45
      || tFrom == 42 && tTo == 38
      || tFrom == 45 && tTo == 58
      || tFrom == 45 && tTo == 42
      || tFrom == 48 && tTo == 12
      || tFrom == 28 && tTo == 13
      || tFrom == 29 && tTo == 14
      || tFrom == 68 && tTo == 42
      || tFrom == 70 && tTo == 45
      || tFrom == 61 && tTo == 58
      || tFrom == 29 && tTo == 30
      || tFrom == 30 && tTo == 29
      || tFrom == 68 && tTo == 69
      || tFrom == 69 && tTo == 68
      || tFrom == 42 && tTo == 68
      || tFrom == 45 && tTo == 70
      || tFrom == 58 && tTo == 61
      || tFrom == 58 && tTo == 45
      || tFrom == 39 && tTo == 38
      || tFrom == 144 && tTo == 38
      || tFrom == 145 && tTo == 38
      || tFrom == 145 && tTo == 74
      || tFrom == 74 && tTo == 145
      || tFrom == 310 && tTo == 38
      || tFrom == 101 && tTo == 1
      || tFrom == 126 && tTo == 1
      || tFrom == 127 && tTo == 1
      || tFrom == 128 && tTo == 1
      || tFrom == 129 && tTo == 1
      || tFrom == 210 && tTo == 1
      || tFrom == 211 && tTo == 1
      || tFrom == 212 && tTo == 1
      || tFrom == 126 && tTo == 235
      || tFrom == 127 && tTo == 236
      || tFrom == 128 && tTo == 237
      || tFrom == 129 && tTo == 238
      || tFrom == 235 && tTo == 126
      || tFrom == 236 && tTo == 127
      || tFrom == 237 && tTo == 128
      || tFrom == 238 && tTo == 129
      || tFrom == 222 && tTo == 210
      || tFrom == 223 && tTo == 211
      || tFrom == 224 && tTo == 212
      || tFrom == 102 && tTo == 6
      || tFrom == 130 && tTo == 6
      || tFrom == 131 && tTo == 6
      || tFrom == 132 && tTo == 6
      || tFrom == 133 && tTo == 6
      || tFrom == 213 && tTo == 6
      || tFrom == 214 && tTo == 6
      || tFrom == 215 && tTo == 6
      || tFrom == 130 && tTo == 239
      || tFrom == 131 && tTo == 240
      || tFrom == 132 && tTo == 241
      || tFrom == 133 && tTo == 242
      || tFrom == 239 && tTo == 130
      || tFrom == 240 && tTo == 131
      || tFrom == 241 && tTo == 132
      || tFrom == 242 && tTo == 133
      || tFrom == 225 && tTo == 213
      || tFrom == 226 && tTo == 214
      || tFrom == 227 && tTo == 215
      || tFrom == 103 && tTo == 11
      || tFrom == 134 && tTo == 11
      || tFrom == 135 && tTo == 11
      || tFrom == 136 && tTo == 11
      || tFrom == 137 && tTo == 11
      || tFrom == 216 && tTo == 11
      || tFrom == 217 && tTo == 11
      || tFrom == 218 && tTo == 11
      || tFrom == 134 && tTo == 243
      || tFrom == 135 && tTo == 244
      || tFrom == 136 && tTo == 245
      || tFrom == 137 && tTo == 246
      || tFrom == 243 && tTo == 134
      || tFrom == 244 && tTo == 135
      || tFrom == 245 && tTo == 136
      || tFrom == 246 && tTo == 137
      || tFrom == 228 && tTo == 216
      || tFrom == 229 && tTo == 217
      || tFrom == 230 && tTo == 218
      || tFrom == 167 && tTo == 140
      || tFrom == 171 && tTo == 140
      || tFrom == 172 && tTo == 140
      || tFrom == 173 && tTo == 140
      || tFrom == 174 && tTo == 140
      || tFrom == 219 && tTo == 140
      || tFrom == 220 && tTo == 140
      || tFrom == 221 && tTo == 140
      || tFrom == 171 && tTo == 247
      || tFrom == 172 && tTo == 248
      || tFrom == 173 && tTo == 249
      || tFrom == 174 && tTo == 250
      || tFrom == 247 && tTo == 171
      || tFrom == 248 && tTo == 172
      || tFrom == 249 && tTo == 173
      || tFrom == 250 && tTo == 174
      || tFrom == 231 && tTo == 219
      || tFrom == 232 && tTo == 220
      || tFrom == 233 && tTo == 221
      || tFrom == 71 && tTo == 1
      || tFrom == 72 && tTo == 6
      || tFrom == 73 && tTo == 11
      || tFrom == 105 && tTo == 1
      || tFrom == 104 && tTo == 1
      || tFrom == 110 && tTo == 1
      || tFrom == 111 && tTo == 1
      || tFrom == 251 && tTo == 1
      || tFrom == 252 && tTo == 1
      || tFrom == 259 && tTo == 1
      || tFrom == 260 && tTo == 1
      || tFrom == 107 && tTo == 6
      || tFrom == 106 && tTo == 6
      || tFrom == 112 && tTo == 6
      || tFrom == 113 && tTo == 6
      || tFrom == 253 && tTo == 6
      || tFrom == 254 && tTo == 6
      || tFrom == 261 && tTo == 6
      || tFrom == 262 && tTo == 6
      || tFrom == 109 && tTo == 11
      || tFrom == 108 && tTo == 11
      || tFrom == 114 && tTo == 11
      || tFrom == 115 && tTo == 11
      || tFrom == 255 && tTo == 11
      || tFrom == 256 && tTo == 11
      || tFrom == 263 && tTo == 11
      || tFrom == 264 && tTo == 11
      || tFrom == 169 && tTo == 140
      || tFrom == 168 && tTo == 140
      || tFrom == 116 && tTo == 140
      || tFrom == 117 && tTo == 140
      || tFrom == 257 && tTo == 140
      || tFrom == 258 && tTo == 140
      || tFrom == 265 && tTo == 140
      || tFrom == 266 && tTo == 140
      || tFrom == 140 && tTo == 141
      || tFrom == 141 && tTo == 142
      || tFrom == 142 && tTo == 143
      || tFrom == 143 && tTo == 38
      || tFrom == 76 && tTo == 75
      || tFrom == 77 && tTo == 75
      || tFrom == 78 && tTo == 75
      || tFrom == 79 && tTo == 75
      || tFrom == 76 && tTo == 80
      || tFrom == 77 && tTo == 81
      || tFrom == 78 && tTo == 82
      || tFrom == 79 && tTo == 83
      || tFrom == 80 && tTo == 76
      || tFrom == 81 && tTo == 77
      || tFrom == 82 && tTo == 78
      || tFrom == 83 && tTo == 79
      || tFrom == 91 && tTo == 90
      || tFrom == 92 && tTo == 90
      || tFrom == 93 && tTo == 90
      || tFrom == 94 && tTo == 90
      || tFrom == 91 && tTo == 95
      || tFrom == 92 && tTo == 96
      || tFrom == 93 && tTo == 97
      || tFrom == 94 && tTo == 98
      || tFrom == 95 && tTo == 91
      || tFrom == 96 && tTo == 92
      || tFrom == 97 && tTo == 93
      || tFrom == 98 && tTo == 94
      || tFrom == 202 && tTo == 201
      || tFrom == 203 && tTo == 201
      || tFrom == 204 && tTo == 201
      || tFrom == 205 && tTo == 201
      || tFrom == 202 && tTo == 206
      || tFrom == 203 && tTo == 207
      || tFrom == 204 && tTo == 208
      || tFrom == 205 && tTo == 209
      || tFrom == 206 && tTo == 202
      || tFrom == 207 && tTo == 203
      || tFrom == 208 && tTo == 204
      || tFrom == 209 && tTo == 205
      || tFrom == 275 && tTo == 1
      || tFrom == 279 && tTo == 1
      || tFrom == 283 && tTo == 1
      || tFrom == 287 && tTo == 1
      || tFrom == 276 && tTo == 6
      || tFrom == 280 && tTo == 6
      || tFrom == 284 && tTo == 6
      || tFrom == 288 && tTo == 6
      || tFrom == 277 && tTo == 11
      || tFrom == 281 && tTo == 11
      || tFrom == 285 && tTo == 11
      || tFrom == 289 && tTo == 11
      || tFrom == 278 && tTo == 140
      || tFrom == 282 && tTo == 140
      || tFrom == 286 && tTo == 140
      || tFrom == 290 && tTo == 140 )
    {
        v3 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v3 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v4 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v4 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 119 && tTo == 1 || tFrom == 124 && tTo == 1 || tFrom == 55 && tTo == 1 || tFrom == 89 && tTo == 1 || tFrom == 125 && tTo == 1 || tFrom == 75 && tTo == 1 || tFrom == 90 && tTo == 1 || tFrom == 201 && tTo == 1 || tFrom == 234 && tTo == 1 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe )
            return 0;
        v5 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v5 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v6 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v6 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 119 && tTo == 6 || tFrom == 124 && tTo == 6 || tFrom == 55 && tTo == 6 || tFrom == 89 && tTo == 6 || tFrom == 125 && tTo == 6 || tFrom == 75 && tTo == 6 || tFrom == 90 && tTo == 6 || tFrom == 201 && tTo == 6 || tFrom == 234 && tTo == 6 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 1 )
            return 0;
        v7 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v7 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v8 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v8 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 119 && tTo == 11 || tFrom == 124 && tTo == 11 || tFrom == 55 && tTo == 11 || tFrom == 89 && tTo == 11 || tFrom == 125 && tTo == 11 || tFrom == 75 && tTo == 11 || tFrom == 90 && tTo == 11 || tFrom == 201 && tTo == 11 || tFrom == 234 && tTo == 11 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 2 )
            return 0;
        v9 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v9 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v10 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v10 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 119 && tTo == 140 || tFrom == 124 && tTo == 140 || tFrom == 55 && tTo == 140 || tFrom == 89 && tTo == 140 || tFrom == 125 && tTo == 140 || tFrom == 75 && tTo == 140 || tFrom == 90 && tTo == 140 || tFrom == 201 && tTo == 140 || tFrom == 234 && tTo == 140 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 3 )
            return 0;
        v11 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v11 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v12 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v12 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 2 && tTo == 46 || tFrom == 3 && tTo == 16 || tFrom == 4 && tTo == 17 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
            return 0;
        v13 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v13 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v14 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v14 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 7 && tTo == 47 || tFrom == 8 && tTo == 22 || tFrom == 9 && tTo == 23 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 1 && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(1) )
            return 0;
        v15 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v15 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v16 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v16 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 12 && tTo == 48 || tFrom == 13 && tTo == 28 || tFrom == 14 && tTo == 29 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 2 && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(2) )
            return 0;
        v17 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v17 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v18 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v18 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 38 && tTo == 40 || tFrom == 75 && tTo == 76 || tFrom == 90 && tTo == 91 || tFrom == 201 && tTo == 202 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
            return 0;
        v19 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v19 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v20 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v20 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 38 && tTo == 4 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
        {
            if ( mPLAY[0].mWorldInfo.mTribeGuardState[0][0] )
            {
                result = 2;
            }
            else
            {
                v23 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                if ( v23 >= ZONEMAININFO::ReturnMinZoneLevelInfo(4) && (v24 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v24 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(4)) )
                    result = 1;
                else
                    result = 2;
            }
        }
        else
        {
            v21 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v21 >= ZONEMAININFO::ReturnMinZoneLevelInfo(4) && (v22 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v22 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(4)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 4 && tTo == 3 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
        {
            if ( PLAY::ReturnTribePointWithAlliance(0) >= 100 )
            {
                if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v27 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v27 <= 2 * PLAY::ReturnTribePointWithAlliance(0)) )
                {
                    if ( mPLAY[0].mWorldInfo.mTribeGuardState[0][1] )
                    {
                        result = 2;
                    }
                    else
                    {
                        v28 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                        if ( v28 >= ZONEMAININFO::ReturnMinZoneLevelInfo(3) && (v29 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v29 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(3)) )
                            result = 1;
                        else
                            result = 2;
                    }
                }
                else
                {
                    result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            v25 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v25 >= ZONEMAININFO::ReturnMinZoneLevelInfo(3) && (v26 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v26 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(3)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 3 && tTo == 2 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
        {
            if ( PLAY::ReturnTribePointWithAlliance(0) >= 100 )
            {
                if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v32 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v32 <= 2 * PLAY::ReturnTribePointWithAlliance(0)) )
                {
                    if ( mPLAY[0].mWorldInfo.mTribeGuardState[0][2] )
                    {
                        result = 2;
                    }
                    else
                    {
                        v33 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                        if ( v33 >= ZONEMAININFO::ReturnMinZoneLevelInfo(2) && (v34 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v34 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(2)) )
                            result = 1;
                        else
                            result = 2;
                    }
                }
                else
                {
                    result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            v30 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v30 >= ZONEMAININFO::ReturnMinZoneLevelInfo(2) && (v31 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v31 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(2)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 2 && tTo == 1 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
        {
            if ( PLAY::ReturnTribePointWithAlliance(0) >= 100 )
            {
                if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v37 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v37 <= 2 * PLAY::ReturnTribePointWithAlliance(0)) )
                {
                    if ( mPLAY[0].mWorldInfo.mTribeGuardState[0][3] )
                    {
                        result = 2;
                    }
                    else
                    {
                        v38 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                        if ( v38 >= ZONEMAININFO::ReturnMinZoneLevelInfo(1) && (v39 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v39 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(1)) )
                            result = 1;
                        else
                            result = 2;
                    }
                }
                else
                {
                    result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            v35 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v35 >= ZONEMAININFO::ReturnMinZoneLevelInfo(1) && (v36 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v36 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(1)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 38 && tTo == 41 || tFrom == 75 && tTo == 77 || tFrom == 90 && tTo == 92 || tFrom == 201 && tTo == 203 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 1 && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(1) )
            return 0;
        v40 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v40 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v41 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v41 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 38 && tTo == 9 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(1) )
        {
            v42 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v42 >= ZONEMAININFO::ReturnMinZoneLevelInfo(9) && (v43 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v43 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(9)) )
                result = 1;
            else
                result = 2;
        }
        else if ( mPLAY[0].mWorldInfo.mTribeGuardState[1][0] )
        {
            result = 2;
        }
        else
        {
            v44 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v44 >= ZONEMAININFO::ReturnMinZoneLevelInfo(9) && (v45 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v45 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(9)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 9 && tTo == 8 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(1) )
        {
            v46 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v46 >= ZONEMAININFO::ReturnMinZoneLevelInfo(8) && (v47 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v47 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(8)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(1) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v48 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v48 <= 2 * PLAY::ReturnTribePointWithAlliance(1)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[1][1] )
                {
                    result = 2;
                }
                else
                {
                    v49 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v49 >= ZONEMAININFO::ReturnMinZoneLevelInfo(8) && (v50 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v50 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(8)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 8 && tTo == 7 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(1) )
        {
            v51 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v51 >= ZONEMAININFO::ReturnMinZoneLevelInfo(7) && (v52 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v52 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(7)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(1) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v53 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v53 <= 2 * PLAY::ReturnTribePointWithAlliance(1)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[1][2] )
                {
                    result = 2;
                }
                else
                {
                    v54 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v54 >= ZONEMAININFO::ReturnMinZoneLevelInfo(7) && (v55 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v55 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(7)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 7 && tTo == 6 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(1) )
        {
            v56 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v56 >= ZONEMAININFO::ReturnMinZoneLevelInfo(6) && (v57 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v57 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(6)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(1) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v58 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v58 <= 2 * PLAY::ReturnTribePointWithAlliance(1)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[1][3] )
                {
                    result = 2;
                }
                else
                {
                    v59 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v59 >= ZONEMAININFO::ReturnMinZoneLevelInfo(6) && (v60 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v60 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(6)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 38 && tTo == 42 || tFrom == 75 && tTo == 78 || tFrom == 90 && tTo == 93 || tFrom == 201 && tTo == 204 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 2 && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(2) )
            return 0;
        v61 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v61 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v62 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v62 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 38 && tTo == 14 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(2) )
        {
            v63 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v63 >= ZONEMAININFO::ReturnMinZoneLevelInfo(14) && (v64 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v64 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(14)) )
                result = 1;
            else
                result = 2;
        }
        else if ( mPLAY[0].mWorldInfo.mTribeGuardState[2][0] )
        {
            result = 2;
        }
        else
        {
            v65 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v65 >= ZONEMAININFO::ReturnMinZoneLevelInfo(14) && (v66 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v66 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(14)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 14 && tTo == 13 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(2) )
        {
            v67 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v67 >= ZONEMAININFO::ReturnMinZoneLevelInfo(13) && (v68 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v68 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(13)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(2) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v69 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v69 <= 2 * PLAY::ReturnTribePointWithAlliance(2)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[2][1] )
                {
                    result = 2;
                }
                else
                {
                    v70 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v70 >= ZONEMAININFO::ReturnMinZoneLevelInfo(13) && (v71 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v71 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(13)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 13 && tTo == 12 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(2) )
        {
            v72 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v72 >= ZONEMAININFO::ReturnMinZoneLevelInfo(12) && (v73 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v73 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(12)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(2) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v74 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v74 <= 2 * PLAY::ReturnTribePointWithAlliance(2)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[2][2] )
                {
                    result = 2;
                }
                else
                {
                    v75 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v75 >= ZONEMAININFO::ReturnMinZoneLevelInfo(12) && (v76 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v76 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(12)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 12 && tTo == 11 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(2) )
        {
            v77 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v77 >= ZONEMAININFO::ReturnMinZoneLevelInfo(11) && (v78 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v78 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(11)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(2) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v79 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v79 <= 2 * PLAY::ReturnTribePointWithAlliance(2)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[2][3] )
                {
                    result = 2;
                }
                else
                {
                    v80 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v80 >= ZONEMAININFO::ReturnMinZoneLevelInfo(11) && (v81 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v81 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(11)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 75 && tTo == 79 || tFrom == 90 && tTo == 94 || tFrom == 201 && tTo == 205 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 3 && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(3) )
            return 0;
        v82 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v82 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v83 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v83 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 38 && tTo == 143 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(3) )
        {
            v84 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v84 >= ZONEMAININFO::ReturnMinZoneLevelInfo(143) && (v85 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v85 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(143)) )
                result = 1;
            else
                result = 2;
        }
        else if ( mPLAY[0].mWorldInfo.mTribeGuardState[3][0] )
        {
            result = 2;
        }
        else
        {
            v86 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v86 >= ZONEMAININFO::ReturnMinZoneLevelInfo(143) && (v87 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v87 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(143)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 143 && tTo == 142 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(3) )
        {
            v88 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v88 >= ZONEMAININFO::ReturnMinZoneLevelInfo(142) && (v89 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v89 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(142)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(3) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v90 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v90 <= 2 * PLAY::ReturnTribePointWithAlliance(3)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[3][1] )
                {
                    result = 2;
                }
                else
                {
                    v91 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v91 >= ZONEMAININFO::ReturnMinZoneLevelInfo(142) && (v92 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v92 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(142)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 142 && tTo == 141 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(3) )
        {
            v93 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v93 >= ZONEMAININFO::ReturnMinZoneLevelInfo(141) && (v94 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v94 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(141)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(3) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v95 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v95 <= 2 * PLAY::ReturnTribePointWithAlliance(3)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[3][2] )
                {
                    result = 2;
                }
                else
                {
                    v96 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v96 >= ZONEMAININFO::ReturnMinZoneLevelInfo(141) && (v97 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v97 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(141)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 141 && tTo == 140 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(3) )
        {
            v98 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v98 >= ZONEMAININFO::ReturnMinZoneLevelInfo(140) && (v99 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v99 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(140)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(3) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v100 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v100 <= 2 * PLAY::ReturnTribePointWithAlliance(3)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[3][3] )
                {
                    result = 2;
                }
                else
                {
                    v101 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v101 >= ZONEMAININFO::ReturnMinZoneLevelInfo(140) && (v102 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v102 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(140)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 38 && tTo == 39 || tFrom == 38 && tTo == 144 || tFrom == 38 && tTo == 145 || tFrom == 38 && tTo == 310 )
    {
        if ( tTo == 310 )
        {
            if ( mMYINFO[0].mUseAvatar.aZone038Ticket > 0 || mMYINFO[0].mUseAvatar.aTribe == mPLAY[0].mWorldInfo.mZone038WinTribe )
            {
                v103 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                result = 0;
                if ( v103 >= ZONEMAININFO::ReturnMinZoneLevelInfo(310) )
                {
                    v104 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v104 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(310) )
                        result = 1;
                }
                return result;
            }
            return 2;
        }
        if ( mMYINFO[0].mUseAvatar.aTribe != mPLAY[0].mWorldInfo.mZone038WinTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(mPLAY[0].mWorldInfo.mZone038WinTribe) )
            return 2;
        v105 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        result = 0;
        if ( v105 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) )
        {
            v106 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v106 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo) )
                result = 1;
        }
    }
    else if ( tFrom == 195 && tTo == 1 || tFrom == 196 && tTo == 1 || tFrom == 197 && tTo == 1 || tFrom == 198 && tTo == 1 || tFrom == 199 && tTo == 1 || tFrom == 85 && tTo == 1 || tFrom == 86 && tTo == 1 || tFrom == 87 && tTo == 1 || tFrom == 99 && tTo == 1 || tFrom == 100 && tTo == 1 || tFrom == 118 && tTo == 1 || tFrom == 302 && tTo == 1 || tFrom == 304 && tTo == 1 || tFrom == 340 && tTo == 1 || tFrom == 341 && tTo == 1 || tFrom == 345 && tTo == 1 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe )
            result = 2;
        else
            result = 1;
    }
    else if ( tFrom == 195 && tTo == 6 || tFrom == 196 && tTo == 6 || tFrom == 197 && tTo == 6 || tFrom == 198 && tTo == 6 || tFrom == 199 && tTo == 6 || tFrom == 85 && tTo == 6 || tFrom == 86 && tTo == 6 || tFrom == 87 && tTo == 6 || tFrom == 99 && tTo == 6 || tFrom == 100 && tTo == 6 || tFrom == 118 && tTo == 6 || tFrom == 302 && tTo == 6 || tFrom == 305 && tTo == 6 || tFrom == 340 && tTo == 6 || tFrom == 341 && tTo == 6 || tFrom == 345 && tTo == 6 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 195 && tTo == 11 || tFrom == 196 && tTo == 11 || tFrom == 197 && tTo == 11 || tFrom == 198 && tTo == 11 || tFrom == 199 && tTo == 11 || tFrom == 85 && tTo == 11 || tFrom == 86 && tTo == 11 || tFrom == 87 && tTo == 11 || tFrom == 99 && tTo == 11 || tFrom == 100 && tTo == 11 || tFrom == 118 && tTo == 11 || tFrom == 302 && tTo == 11 || tFrom == 306 && tTo == 11 || tFrom == 340 && tTo == 11 || tFrom == 341 && tTo == 11 || tFrom == 345 && tTo == 11 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 196 && tTo == 140 || tFrom == 197 && tTo == 140 || tFrom == 198 && tTo == 140 || tFrom == 199 && tTo == 140 || tFrom == 85 && tTo == 140 || tFrom == 86 && tTo == 140 || tFrom == 87 && tTo == 140 || tFrom == 99 && tTo == 140 || tFrom == 100 && tTo == 140 || tFrom == 118 && tTo == 140 || tFrom == 302 && tTo == 140 || tFrom == 307 && tTo == 140 || tFrom == 340 && tTo == 140 || tFrom == 341 && tTo == 140 || tFrom == 345 && tTo == 140 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 170 && tTo == 1 || tFrom == 50 && tTo == 1 || tFrom == 52 && tTo == 1 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe )
            result = 2;
        else
            result = 1;
    }
    else if ( tFrom == 170 && tTo == 6 || tFrom == 50 && tTo == 6 || tFrom == 52 && tTo == 6 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 170 && tTo == 11 || tFrom == 50 && tTo == 11 || tFrom == 52 && tTo == 11 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 170 && tTo == 140 || tFrom == 50 && tTo == 140 || tFrom == 52 && tTo == 140 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 210 && tTo == 222 || tFrom == 211 && tTo == 223 || tFrom == 212 && tTo == 224 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe )
        {
            result = 2;
        }
        else if ( mMYINFO[0].mLoginPremium == 2 || mMYINFO[0].mUseAvatar.aZone126Time > 0 || mMYINFO[0].mUseAvatar.aPremium > 0 || mMYINFO[0].mLoginPremium == 3 )
        {
            result = 1;
        }
        else
        {
            result = 2;
        }
    }
    else if ( tFrom == 222 && tTo == 210 || tFrom == 223 && tTo == 211 || tFrom == 224 && tTo == 212 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe )
            result = 2;
        else
            result = 1;
    }
    else if ( tFrom == 213 && tTo == 225 || tFrom == 214 && tTo == 226 || tFrom == 215 && tTo == 227 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 )
        {
            if ( mMYINFO[0].mLoginPremium == 2 || mMYINFO[0].mUseAvatar.aZone126Time > 0 || mMYINFO[0].mUseAvatar.aPremium > 0 || mMYINFO[0].mLoginPremium == 3 )
                result = 1;
            else
                result = 2;
        }
        else
        {
            result = 2;
        }
    }
    else if ( tFrom == 225 && tTo == 213 || tFrom == 226 && tTo == 214 || tFrom == 227 && tTo == 215 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 216 && tTo == 228 || tFrom == 217 && tTo == 229 || tFrom == 218 && tTo == 230 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 )
        {
            if ( mMYINFO[0].mLoginPremium == 2 || mMYINFO[0].mUseAvatar.aZone126Time > 0 || mMYINFO[0].mUseAvatar.aPremium > 0 || mMYINFO[0].mLoginPremium == 3 )
                result = 1;
            else
                result = 2;
        }
        else
        {
            result = 2;
        }
    }
    else if ( tFrom == 228 && tTo == 216 || tFrom == 229 && tTo == 217 || tFrom == 230 && tTo == 218 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 219 && tTo == 231 || tFrom == 220 && tTo == 232 || tFrom == 221 && tTo == 233 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 )
        {
            if ( mMYINFO[0].mLoginPremium == 2 || mMYINFO[0].mUseAvatar.aZone126Time > 0 || mMYINFO[0].mUseAvatar.aPremium > 0 || mMYINFO[0].mLoginPremium == 3 )
                result = 1;
            else
                result = 2;
        }
        else
        {
            result = 2;
        }
    }
    else if ( tFrom == 231 && tTo == 219 || tFrom == 232 && tTo == 220 || tFrom == 233 && tTo == 221 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 235 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone235Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 236 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone236Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 237 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone237Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 238 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone238Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 239 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone239Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 240 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone240Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 235 && tTo == 234 || tFrom == 236 && tTo == 234 || tFrom == 237 && tTo == 234 || tFrom == 238 && tTo == 234 || tFrom == 239 && tTo == 234 || tFrom == 240 && tTo == 234 )
    {
        result = 1;
    }
    else if ( tFrom == 74 && tTo == 303 || tFrom == 303 && tTo == 74 )
    {
        v107 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v107 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v108 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v108 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) && mMYINFO[0].mUseAvatar.aRebirthNum == 12 && (mMYINFO[0].mUseAvatar.aTribe == mPLAY[0].mWorldInfo.mZone038WinTribe || PLAY::ReturnAllianceTribe(mMYINFO[0].mUseAvatar.aTribe) == mPLAY[0].mWorldInfo.mZone038WinTribe) )
            result = 1;
        else
            result = 2;
    }
    else
    {
        result = 0;
    }
    return result;
}

int __stdcall ZONEMOVEINFO::ReturnNextZone(int tZoneNumber, float tCoord[3])
{
    ZONEMOVEINFO *v2; // ecx
    ZONEMOVEINFO *v4; // [esp+0h] [ebp-8h]
    int i; // [esp+4h] [ebp-4h]

    v4 = v2;
    if ( tZoneNumber < 1 || tZoneNumber > 350 )
        return -1;
    for ( i = 0; i < v4->mDATA[tZoneNumber - 1].mNextZoneNum; ++i )
    {
        if ( UTIL::ReturnLengthXYZ(v4->mDATA[tZoneNumber - 1].mXYZ[i], tCoord) < 30.0 && ZONEMOVEINFO::ReturnMoveZone(tZoneNumber, v4->mDATA[tZoneNumber - 1].mNextZone[i]) == 1 )
            return v4->mDATA[tZoneNumber - 1].mNextZone[i];
    }
    return -1;
}

int __stdcall ZONEMOVEINFO::ReturnNextZoneAfterDeath(int tTribe, int tZoneNumber)
{
    int v2; // esi
    int result; // eax
    int v4; // [esp+4h] [ebp-18h]
    int v5; // [esp+8h] [ebp-14h]
    int v6; // [esp+Ch] [ebp-10h]
    int v7; // [esp+10h] [ebp-Ch]

    if ( ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber) == -1 )
        return tZoneNumber;
    if ( ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber) == tTribe )
        return tZoneNumber;
    v2 = ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber);
    if ( v2 == PLAY::ReturnAllianceTribe(tTribe) )
        return tZoneNumber;
    switch ( tTribe )
    {
        case 0:
            v7 = ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber);
            if ( v7 <= 0 || v7 > 3 )
                result = 1;
            else
                result = 38;
            break;
        case 1:
            v6 = ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber);
            if ( v6 && (v6 <= 1 || v6 > 3) )
                result = 6;
            else
                result = 38;
            break;
        case 2:
            v5 = ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber);
            if ( v5 >= 0 && (v5 <= 1 || v5 == 3) )
                result = 38;
            else
                result = 11;
            break;
        case 3:
            v4 = ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber);
            if ( v4 < 0 || v4 > 2 )
                result = 140;
            else
                result = 38;
            break;
        default:
            result = 0;
            break;
    }
    return result;
}

void __stdcall ZONEMOVEINFO::DrawZonePortal(int tSort)
{
    ZONEMOVEINFO *v1; // ecx
    ZONEMOVEINFO *v2; // [esp+18h] [ebp-30h]
    float pFrame; // [esp+1Ch] [ebp-2Ch]
    float tCoord[3]; // [esp+20h] [ebp-28h] BYREF
    float tAngle[3]; // [esp+2Ch] [ebp-1Ch] BYREF
    int v6; // [esp+38h] [ebp-10h]
    int i; // [esp+3Ch] [ebp-Ch]
    int v8; // [esp+40h] [ebp-8h]
    int v9; // [esp+44h] [ebp-4h]

    v2 = v1;
    for ( i = 0; i < v2->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mNextZoneNum; ++i )
    {
        v9 = ZONEMOVEINFO::ReturnMoveZone(mMYINFO[0].mPresentZoneNumber, v2->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mNextZone[i]);
        if ( v9 )
        {
            if ( v9 == 1 )
            {
                if ( mMYINFO[0].mUseAvatar.aPreviousTribe )
                {
                    if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 1 )
                    {
                        v6 = 123;
                    }
                    else if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 2 )
                    {
                        v6 = 124;
                    }
                }
                else
                {
                    v6 = 122;
                }
            }
            else
            {
                v6 = 149;
            }
            v8 = GMOBJECT::GetTotalFrameNum(&mGDATA[0].mMOB_005[v6], 0);
            if ( v8 >= 1 )
            {
                pFrame = ((mApp[0].hPresentElapsedSeconds * 30.0) % v8);
                tCoord[0] = v2->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][0];
                tCoord[1] = v2->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][1];
                tCoord[2] = v2->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][2];
                memset(tAngle, 0, sizeof(tAngle));
                GMOBJECT::DisplayMObject(&mGDATA[0].mMOB_005[v6], tSort, pFrame, tCoord, tAngle, 0);
            }
        }
    }
}

void __stdcall ZONEMOVEINFO::DrawZonePortalForMinimap(int a2)
{
    ZONEMOVEINFO *v1; // ecx
    WORD v2; // ax
    WORD v3; // ax
    WORD v4; // ax
    WORD v5; // ax
    int v6; // [esp-4h] [ebp-74h]
    int v7; // [esp-4h] [ebp-74h]
    int v8; // [esp-4h] [ebp-74h]
    int v9; // [esp-4h] [ebp-74h]
    ZONEMOVEINFO *v10; // [esp+18h] [ebp-58h]
    int v11; // [esp+1Ch] [ebp-54h]
    signed int v12; // [esp+20h] [ebp-50h]
    signed int v13; // [esp+24h] [ebp-4Ch]
    int v14; // [esp+30h] [ebp-40h]
    int v15; // [esp+34h] [ebp-3Ch]
    float v16; // [esp+38h] [ebp-38h]
    float v17; // [esp+3Ch] [ebp-34h]
    float v18; // [esp+40h] [ebp-30h]
    float v19; // [esp+44h] [ebp-2Ch]
    int v20; // [esp+48h] [ebp-28h]
    int v21; // [esp+4Ch] [ebp-24h]
    int i; // [esp+50h] [ebp-20h]
    int v23; // [esp+54h] [ebp-1Ch]
    float v24; // [esp+5Ch] [ebp-14h]
    float v25; // [esp+5Ch] [ebp-14h]
    float v26; // [esp+5Ch] [ebp-14h]
    float v27; // [esp+5Ch] [ebp-14h]
    int v28; // [esp+60h] [ebp-10h]
    int v29; // [esp+64h] [ebp-Ch]
    int v30; // [esp+68h] [ebp-8h]
    int v31; // [esp+6Ch] [ebp-4h]

    v10 = v1;
    if ( a2 )
    {
        if ( a2 == 1 )
        {
            if ( mMYINFO[0].mUseAvatar.aPreviousTribe )
            {
                if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 1 )
                {
                    v15 = 1939;
                }
                else if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 2 )
                {
                    v15 = 1942;
                }
            }
            else
            {
                v15 = 1936;
            }
        }
        else if ( a2 == 2 )
        {
            if ( mMYINFO[0].mUseAvatar.aPreviousTribe )
            {
                if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 1 )
                {
                    v15 = 1940;
                }
                else if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 2 )
                {
                    v15 = 1943;
                }
            }
            else
            {
                v15 = 1937;
            }
        }
    }
    else if ( mMYINFO[0].mUseAvatar.aPreviousTribe )
    {
        if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 1 )
        {
            v15 = 1938;
        }
        else if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 2 )
        {
            v15 = 1941;
        }
    }
    else
    {
        v15 = 1935;
    }
    v16 = mGDATA[0].mZONE.mWORLD.mQuadtree->mBoxMin[0];
    v17 = mGDATA[0].mZONE.mWORLD.mQuadtree->mBoxMax[0];
    v18 = -mGDATA[0].mZONE.mWORLD.mQuadtree->mBoxMax[2];
    v19 = -mGDATA[0].mZONE.mWORLD.mQuadtree->mBoxMin[2];
    v12 = mGDATA[0].mZONE.mMINIMAP[a2].mTextureInfo.Width;
    v13 = mGDATA[0].mZONE.mMINIMAP[a2].mTextureInfo.Height;
    v31 = mMYINFO[0].mScreenXSize - GIMAGE2D::GetXSize(&mGDATA[0].mUI_MAIN[241]);
    if ( a2 >= 0 )
    {
        if ( a2 <= 1 )
        {
            v24 = -mPLAY[0].mAVATAR_OBJECT[0].mDATA.aAction.aLocation[2];
            v11 = (v13 * (v24 - v18) / (v19 - v18));
            v21 = (v12 * (mPLAY[0].mAVATAR_OBJECT[0].mDATA.aAction.aLocation[0] - v16) / (v17 - v16)) - 72;
            if ( v21 >= 0 )
            {
                if ( v21 > v12 - 145 )
                    v21 = v12 - 145;
            }
            else
            {
                v21 = 0;
            }
            v30 = v11 - 64;
            if ( v11 - 64 >= 0 )
            {
                if ( v30 > v13 - 128 )
                    v30 = v13 - 128;
            }
            else
            {
                v30 = 0;
            }
            v23 = v21;
            v14 = v30;
        }
        else if ( a2 == 2 )
        {
            v23 = 0;
            v14 = 0;
        }
    }
    for ( i = 0; i < v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mNextZoneNum; ++i )
    {
        v28 = ZONEMOVEINFO::ReturnMoveZone(mMYINFO[0].mPresentZoneNumber, v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mNextZone[i]);
        if ( !v28 )
            continue;
        if ( a2 )
        {
            if ( a2 == 1 )
            {
                v26 = -v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][2];
                v20 = v31 + (v12 * (v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][0] - v16) / (v17 - v16)) + 4 - v23;
                v29 = (v13 * (v26 - v18) / (v19 - v18)) + 42 - v14;
                if ( v20 >= v31 + 4 && v20 <= v31 + 150 && v29 >= 42 && v29 <= 168 )
                {
                    if ( v28 != 1 )
                    {
                        v7 = v29 - GIMAGE2D::GetYSize(&mGDATA[0].mUI_MAIN[2418]) / 2;
                        v3 = GIMAGE2D::GetXSize(&mGDATA[0].mUI_MAIN[2418]);
                        GIMAGE2D::Display(&mGDATA[0].mUI_MAIN[2418], v20 - v3 / 2, v7);
                        continue;
                    }
                    goto LABEL_69;
                }
            }
            else if ( a2 == 2 )
            {
                v27 = -v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][2];
                v20 = v31 + (v12 * (v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][0] - v16) / (v17 - v16)) + 4 - v23;
                v29 = (v13 * (v27 - v18) / (v19 - v18)) + 42 - v14;
                if ( v20 >= v31 + 4 && v20 <= v31 + 150 && v29 >= 42 && v29 <= 168 )
                {
                    if ( v28 == 1 )
                        goto LABEL_69;
                    v9 = v29 - GIMAGE2D::GetYSize(&mGDATA[0].mUI_MAIN[2419]) / 2;
                    v5 = GIMAGE2D::GetXSize(&mGDATA[0].mUI_MAIN[2419]);
                    GIMAGE2D::Display(&mGDATA[0].mUI_MAIN[2419], v20 - v5 / 2, v9);
                }
            }
        }
        else
        {
            v25 = -v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][2];
            v20 = v31 + (v12 * (v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][0] - v16) / (v17 - v16)) + 4 - v23;
            v29 = (v13 * (v25 - v18) / (v19 - v18)) + 42 - v14;
            if ( v20 >= v31 + 4 && v20 <= v31 + 150 && v29 >= 42 && v29 <= 168 )
            {
                if ( v28 != 1 )
                {
                    v6 = v29 - GIMAGE2D::GetYSize(&mGDATA[0].mUI_MAIN[2417]) / 2;
                    v2 = GIMAGE2D::GetXSize(&mGDATA[0].mUI_MAIN[2417]);
                    GIMAGE2D::Display(&mGDATA[0].mUI_MAIN[2417], v20 - v2 / 2, v6);
                    continue;
                }
LABEL_69:
                v8 = v29 - GIMAGE2D::GetYSize(&mGDATA[0].mUI_MAIN[v15]) / 2;
                v4 = GIMAGE2D::GetXSize(&mGDATA[0].mUI_MAIN[v15]);
                GIMAGE2D::Display(&mGDATA[0].mUI_MAIN[v15], v20 - v4 / 2, v8);
                continue;
            }
        }
    }
}
10/27/2022 07:55 lnwnuyhodd#2
Code:
BOOL __stdcall ZONEMOVEINFO::ReturnNPCTelepoterCoord1(int tZoneNumber, float tCoord[3])
{
    BOOL result; // eax

    switch ( tZoneNumber )
    {
        case 1:
            tCoord[0] = -295.0;
            tCoord[1] = 0.0;
            tCoord[2] = 900.0;
            result = 1;
            break;
        case 2:
            tCoord[0] = 1399.0;
            tCoord[1] = -9.0;
            tCoord[2] = -3461.0;
            result = 1;
            break;
        case 3:
            tCoord[0] = -4059.0;
            tCoord[1] = 0.0;
            tCoord[2] = 6075.0;
            result = 1;
            break;
        case 4:
            tCoord[0] = 496.0;
            tCoord[1] = 421.0;
            tCoord[2] = 5530.0;
            result = 1;
            break;
        case 6:
            tCoord[0] = -538.0;
            tCoord[1] = 48.0;
            tCoord[2] = -102.0;
            result = 1;
            break;
        case 7:
            tCoord[0] = -1073.0;
            tCoord[1] = 0.0;
            tCoord[2] = 4966.0;
            result = 1;
            break;
        case 8:
            tCoord[0] = 3972.0;
            tCoord[1] = 42.0;
            tCoord[2] = 8163.0;
            result = 1;
            break;
        case 9:
            tCoord[0] = -7755.0;
            tCoord[1] = -196.0;
            tCoord[2] = 3081.0;
            result = 1;
            break;
        case 11:
            tCoord[0] = 1537.0;
            tCoord[1] = 0.0;
            tCoord[2] = 35.0;
            result = 1;
            break;
        case 12:
            tCoord[0] = 5324.0;
            tCoord[1] = 3.0;
            tCoord[2] = 988.0;
            result = 1;
            break;
        case 13:
            tCoord[0] = -3103.0;
            tCoord[1] = 10.0;
            tCoord[2] = 5093.0;
            result = 1;
            break;
        case 14:
            tCoord[0] = 1078.0;
            tCoord[1] = 230.0;
            tCoord[2] = 5153.0;
            result = 1;
            break;
        case 37:
            tCoord[0] = -279.0;
            tCoord[1] = 0.0;
            tCoord[2] = -1594.0;
            result = 1;
            break;
        case 43:
        case 44:
        case 45:
            tCoord[0] = 4357.0;
            tCoord[1] = 0.0;
            tCoord[2] = 5823.0;
            result = 1;
            break;
        case 50:
LABEL_26:
            switch ( mMYINFO[0].mUseAvatar.aTribe )
            {
                case 0:
                    tCoord[0] = 190.0;
                    tCoord[1] = 10.0;
                    tCoord[2] = -1169.0;
                    result = 1;
                    break;
                case 1:
                    tCoord[0] = -11.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -417.0;
                    result = 1;
                    break;
                case 2:
                    tCoord[0] = -3.0;
                    tCoord[1] = 5.0;
                    tCoord[2] = 621.0;
                    result = 1;
                    break;
                case 3:
                    tCoord[0] = -264.0;
                    tCoord[1] = 8.0;
                    tCoord[2] = 1700.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_31;
            }
            break;
        case 52:
LABEL_31:
            switch ( mMYINFO[0].mUseAvatar.aTribe )
            {
                case 0:
                    tCoord[0] = 190.0;
                    tCoord[1] = 10.0;
                    tCoord[2] = -1169.0;
                    result = 1;
                    break;
                case 1:
                    tCoord[0] = -11.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -417.0;
                    result = 1;
                    break;
                case 2:
                    tCoord[0] = -3.0;
                    tCoord[1] = 5.0;
                    tCoord[2] = 621.0;
                    result = 1;
                    break;
                case 3:
                    tCoord[0] = -264.0;
                    tCoord[1] = 8.0;
                    tCoord[2] = 1700.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_36;
            }
            break;
        case 56:
        case 57:
        case 58:
            tCoord[0] = 3826.0;
            tCoord[1] = 0.0;
            tCoord[2] = -670.0;
            result = 1;
            break;
        case 140:
            tCoord[0] = 415.0;
            tCoord[1] = 0.0;
            tCoord[2] = -740.0;
            result = 1;
            break;
        case 141:
            tCoord[0] = 1905.0;
            tCoord[1] = 0.0;
            tCoord[2] = 4470.0;
            result = 1;
            break;
        case 142:
            tCoord[0] = 2048.0;
            tCoord[1] = 0.0;
            tCoord[2] = 5354.0;
            result = 1;
            break;
        case 143:
            tCoord[0] = -1145.0;
            tCoord[1] = -14.0;
            tCoord[2] = 4296.0;
            result = 1;
            break;
        case 170:
            switch ( mMYINFO[0].mUseAvatar.aTribe )
            {
                case 0:
                    tCoord[0] = 190.0;
                    tCoord[1] = 10.0;
                    tCoord[2] = -1169.0;
                    result = 1;
                    break;
                case 1:
                    tCoord[0] = -11.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -417.0;
                    result = 1;
                    break;
                case 2:
                    tCoord[0] = -3.0;
                    tCoord[1] = 5.0;
                    tCoord[2] = 621.0;
                    result = 1;
                    break;
                case 3:
                    tCoord[0] = -264.0;
                    tCoord[1] = 8.0;
                    tCoord[2] = 1700.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_26;
            }
            break;
        default:
LABEL_36:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnNPCTelepoterCoord2(int tTribe, int tZoneNumber, float tCoord[3])
{
    BOOL result; // eax
    float v4; // [esp+18h] [ebp-1B8h]
    float v5; // [esp+1Ch] [ebp-1B4h]
    float v6[107]; // [esp+20h] [ebp-1B0h]
    int v7; // [esp+1CCh] [ebp-4h]

    switch ( tTribe )
    {
        case 0:
            switch ( tZoneNumber )
            {
                case 5:
                    goto LABEL_39;
                case 19:
                case 25:
                case 31:
                case 175:
                case 178:
                case 182:
                case 186:
                case 190:
                    goto LABEL_24;
                case 38:
                    tCoord[0] = -1816.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 2431.0;
                    result = 1;
                    break;
                case 49:
                case 146:
                case 149:
                    tCoord[0] = 460.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 50:
                case 52:
                case 170:
                    tCoord[0] = 190.0;
                    tCoord[1] = 10.0;
                    tCoord[2] = -1169.0;
                    result = 1;
                    break;
                case 51:
                case 147:
                case 150:
                    tCoord[0] = 709.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 53:
                case 148:
                case 151:
                case 152:
                case 153:
                    tCoord[0] = 836.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 54:
                    tCoord[0] = 1588.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 1585.0;
                    result = 1;
                    break;
                case 55:
                    tCoord[0] = 15.0;
                    tCoord[1] = -25.0;
                    tCoord[2] = -5048.0;
                    result = 1;
                    break;
                case 71:
                    tCoord[0] = 7.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -150.0;
                    result = 1;
                    break;
                case 75:
                    tCoord[0] = 10890.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -216.0;
                    result = 1;
                    break;
                case 84:
                    tCoord[0] = -46.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -50.0;
                    result = 1;
                    break;
                case 85:
                case 86:
                case 87:
                case 99:
                case 100:
                case 195:
                case 196:
                case 197:
                case 198:
                case 199:
                    tCoord[0] = 2413.0;
                    tCoord[1] = -11.0;
                    tCoord[2] = 2525.0;
                    result = 1;
                    break;
                case 88:
                    tCoord[0] = 2520.0;
                    tCoord[1] = -1.0;
                    tCoord[2] = 2527.0;
                    result = 1;
                    break;
                case 89:
                    tCoord[0] = 4906.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = 4812.0;
                    result = 1;
                    break;
                case 90:
                    tCoord[0] = 754.0;
                    tCoord[1] = -292.0;
                    tCoord[2] = 1301.0;
                    result = 1;
                    break;
                case 101:
                    goto LABEL_8;
                case 104:
                case 110:
                case 251:
                case 259:
                    goto LABEL_147;
                case 105:
                case 111:
                case 252:
                case 260:
                    goto LABEL_148;
                case 118:
                case 339:
                    tCoord[0] = 5276.0;
                    tCoord[1] = 220.0;
                    tCoord[2] = 5283.0;
                    result = 1;
                    break;
                case 120:
                case 121:
                case 122:
                case 154:
                case 157:
                case 160:
                case 295:
                case 296:
                    tCoord[0] = 539.0;
                    tCoord[1] = 99.0;
                    tCoord[2] = 4181.0;
                    result = 1;
                    break;
                case 124:
                    goto LABEL_5;
                case 125:
                    tCoord[0] = 6261.0;
                    tCoord[1] = -17.0;
                    tCoord[2] = 3327.0;
                    result = 1;
                    break;
                case 126:
                case 127:
                case 128:
                case 129:
                case 210:
                case 211:
                case 212:
                    goto LABEL_16;
                case 155:
                case 158:
                case 161:
                    tCoord[0] = 789.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4183.0;
                    result = 1;
                    break;
                case 156:
                case 159:
                case 162:
                case 163:
                case 164:
                    tCoord[0] = 1037.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4184.0;
                    result = 1;
                    break;
                case 194:
                    tCoord[0] = 3.0;
                    tCoord[1] = 62.0;
                    tCoord[2] = -1315.0;
                    result = 1;
                    break;
                case 200:
                case 297:
                case 298:
                case 299:
                    tCoord[0] = 7886.0;
                    tCoord[1] = 9.0;
                    tCoord[2] = 7651.0;
                    result = 1;
                    break;
                case 201:
                    tCoord[0] = -9420.0;
                    tCoord[1] = -108.0;
                    tCoord[2] = -7665.0;
                    result = 1;
                    break;
                case 234:
                    goto LABEL_27;
                case 241:
                case 242:
                case 243:
                case 244:
                case 245:
                case 246:
                case 247:
                case 248:
                case 249:
                case 292:
                case 293:
                case 294:
                case 311:
                case 312:
                case 325:
                case 326:
                case 327:
                case 328:
                case 329:
                case 330:
                    goto LABEL_28;
                case 250:
                case 267:
                case 268:
                case 269:
                    tCoord[0] = 0.0;
                    tCoord[1] = 70.0;
                    tCoord[2] = -2804.0;
                    result = 1;
                    break;
                case 275:
                    goto LABEL_13;
                case 279:
                    goto LABEL_14;
                case 283:
                    goto LABEL_15;
                case 287:
                    goto LABEL_34;
                case 291:
                    if ( !strcmp(mPLAY[0].mWorldInfo.mGuildName1, mMYINFO[0].mUseAvatar.aGuildName) )
                    {
                        tCoord[0] = 1.0;
                        tCoord[1] = 238.0;
                        tCoord[2] = 7959.0;
                    }
                    else
                    {
                        tCoord[0] = -8.0;
                        tCoord[1] = 15.0;
                        tCoord[2] = -37.0;
                    }
                    result = 1;
                    break;
                case 302:
                case 345:
                    tCoord[0] = 5.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = 4896.0;
                    result = 1;
                    break;
                case 303:
                    goto LABEL_42;
                case 304:
                    goto LABEL_43;
                case 319:
                case 320:
                case 321:
                case 322:
                case 323:
                    tCoord[0] = 57.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 6576.0;
                    result = 1;
                    break;
                case 324:
                    tCoord[0] = -1102.0;
                    tCoord[1] = 54.0;
                    tCoord[2] = 725.0;
                    result = 1;
                    break;
                case 340:
                    tCoord[0] = 3027.0;
                    tCoord[1] = -206.0;
                    tCoord[2] = 3186.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_171;
            }
            break;
        case 1:
            switch ( tZoneNumber )
            {
                case 10:
                    tCoord[0] = -56.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5479.0;
                    result = 1;
                    break;
                case 20:
                case 26:
                case 32:
                case 176:
                case 179:
                case 183:
                case 187:
                case 191:
                    tCoord[0] = -25.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5456.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = 234.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 394.0;
                    result = 1;
                    break;
                case 49:
                case 146:
                case 149:
                    tCoord[0] = 0.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -60.0;
                    result = 1;
                    break;
                case 50:
                case 52:
                case 170:
                    tCoord[0] = -11.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -417.0;
                    result = 1;
                    break;
                case 51:
                case 147:
                case 150:
                    tCoord[0] = 0.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -309.0;
                    result = 1;
                    break;
                case 53:
                case 148:
                case 151:
                case 152:
                case 153:
                    tCoord[0] = 0.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -442.0;
                    result = 1;
                    break;
                case 54:
                    tCoord[0] = -1594.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 1594.0;
                    result = 1;
                    break;
                case 55:
                    tCoord[0] = 2224.0;
                    tCoord[1] = -15.0;
                    tCoord[2] = -4951.0;
                    result = 1;
                    break;
                case 72:
                    tCoord[0] = -1.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -369.0;
                    result = 1;
                    break;
                case 75:
                    tCoord[0] = 253.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 13.0;
                    result = 1;
                    break;
                case 84:
                    tCoord[0] = -3965.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 4552.0;
                    result = 1;
                    break;
                case 85:
                case 86:
                case 87:
                case 99:
                case 100:
                case 195:
                case 196:
                case 197:
                case 198:
                case 199:
                    tCoord[0] = -1.0;
                    tCoord[1] = -11.0;
                    tCoord[2] = 111.0;
                    result = 1;
                    break;
                case 88:
                    tCoord[0] = 3.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -3.0;
                    result = 1;
                    break;
                case 89:
                    tCoord[0] = 54.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = -125.0;
                    result = 1;
                    break;
                case 90:
                    tCoord[0] = -6728.0;
                    tCoord[1] = -291.0;
                    tCoord[2] = 7443.0;
                    result = 1;
                    break;
                case 102:
                    tCoord[0] = 6689.0;
                    tCoord[1] = 12.0;
                    tCoord[2] = 1258.0;
                    result = 1;
                    break;
                case 106:
                case 112:
                case 253:
                case 261:
                    tCoord[0] = 6398.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6409.0;
                    result = 1;
                    break;
                case 107:
                case 113:
                case 254:
                case 262:
                    tCoord[0] = 6402.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6377.0;
                    result = 1;
                    break;
                case 118:
                case 339:
                    tCoord[0] = 5288.0;
                    tCoord[1] = 220.0;
                    tCoord[2] = -5272.0;
                    result = 1;
                    break;
                case 120:
                case 121:
                case 122:
                case 154:
                case 157:
                case 160:
                case 295:
                case 296:
                    tCoord[0] = 52.0;
                    tCoord[1] = 99.0;
                    tCoord[2] = 3708.0;
                    result = 1;
                    break;
                case 124:
                    tCoord[0] = -2.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = -370.0;
                    result = 1;
                    break;
                case 125:
                    tCoord[0] = 3042.0;
                    tCoord[1] = -7.0;
                    tCoord[2] = 178.0;
                    result = 1;
                    break;
                case 130:
                case 131:
                case 132:
                case 133:
                case 213:
                case 214:
                case 215:
                    tCoord[0] = 6244.0;
                    tCoord[1] = -46.0;
                    tCoord[2] = 59.0;
                    result = 1;
                    break;
                case 155:
                case 158:
                case 161:
                    tCoord[0] = 52.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 3457.0;
                    result = 1;
                    break;
                case 156:
                case 159:
                case 162:
                case 163:
                case 164:
                    tCoord[0] = 51.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 3212.0;
                    result = 1;
                    break;
                case 194:
                    tCoord[0] = -1316.0;
                    tCoord[1] = 62.0;
                    tCoord[2] = 0.0;
                    result = 1;
                    break;
                case 200:
                case 297:
                case 298:
                case 299:
                    tCoord[0] = 9.0;
                    tCoord[1] = 9.0;
                    tCoord[2] = -175.0;
                    result = 1;
                    break;
                case 201:
                    tCoord[0] = -3762.0;
                    tCoord[1] = -108.0;
                    tCoord[2] = -12454.0;
                    result = 1;
                    break;
                case 234:
                    tCoord[0] = -8.0;
                    tCoord[1] = -178.0;
                    tCoord[2] = -5209.0;
                    result = 1;
                    break;
                case 241:
                case 242:
                case 243:
                case 244:
                case 245:
                case 246:
                case 247:
                case 248:
                case 249:
                case 292:
                case 293:
                case 294:
                case 311:
                case 312:
                case 325:
                case 326:
                case 327:
                case 328:
                case 329:
                case 330:
                    tCoord[0] = -1.0;
                    tCoord[1] = 20.0;
                    tCoord[2] = 831.0;
                    result = 1;
                    break;
                case 250:
                case 267:
                case 268:
                case 269:
                    tCoord[0] = -2798.0;
                    tCoord[1] = 70.0;
                    tCoord[2] = 2.0;
                    result = 1;
                    break;
                case 276:
                    tCoord[0] = 17.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 189.0;
                    result = 1;
                    break;
                case 280:
                    tCoord[0] = -5.0;
                    tCoord[1] = 58.0;
                    tCoord[2] = -3836.0;
                    result = 1;
                    break;
                case 284:
                    tCoord[0] = -22.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 47.0;
                    result = 1;
                    break;
                case 288:
                    tCoord[0] = 3281.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 434.0;
                    result = 1;
                    break;
                case 291:
                    if ( !strcmp(mPLAY[0].mWorldInfo.mGuildName1, mMYINFO[0].mUseAvatar.aGuildName) )
                    {
                        tCoord[0] = 1.0;
                        tCoord[1] = 238.0;
                        tCoord[2] = 7959.0;
                    }
                    else
                    {
                        tCoord[0] = -8.0;
                        tCoord[1] = 15.0;
                        tCoord[2] = -37.0;
                    }
                    result = 1;
                    break;
                case 302:
                case 345:
                    tCoord[0] = 3.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -4930.0;
                    result = 1;
                    break;
                case 303:
                    tCoord[0] = -1547.0;
                    tCoord[1] = -17.0;
                    tCoord[2] = -2050.0;
                    result = 1;
                    break;
                case 305:
                    tCoord[0] = -4180.0;
                    tCoord[1] = 85.0;
                    tCoord[2] = 4127.0;
                    result = 1;
                    break;
                case 319:
                case 320:
                case 321:
                case 322:
                case 323:
                    tCoord[0] = 2457.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4190.0;
                    result = 1;
                    break;
                case 324:
                    tCoord[0] = 1102.0;
                    tCoord[1] = 54.0;
                    tCoord[2] = 724.0;
                    result = 1;
                    break;
                case 340:
                    tCoord[0] = 3003.0;
                    tCoord[1] = -205.0;
                    tCoord[2] = -3223.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_171;
            }
            break;
        case 2:
            switch ( tZoneNumber )
            {
                case 15:
                    tCoord[0] = -56.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5479.0;
                    result = 1;
                    break;
                case 21:
                case 27:
                case 33:
                case 177:
                case 180:
                case 184:
                case 188:
                case 192:
                    tCoord[0] = -25.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5456.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = 2500.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 337.0;
                    result = 1;
                    break;
                case 49:
                case 146:
                case 149:
                    tCoord[0] = -459.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 50:
                case 52:
                case 170:
                    tCoord[0] = -3.0;
                    tCoord[1] = 5.0;
                    tCoord[2] = 621.0;
                    result = 1;
                    break;
                case 51:
                case 147:
                case 150:
                    tCoord[0] = -709.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 53:
                case 148:
                case 151:
                case 152:
                case 153:
                    tCoord[0] = -832.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 54:
                    tCoord[0] = -1574.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -1572.0;
                    result = 1;
                    break;
                case 55:
                    tCoord[0] = -2037.0;
                    tCoord[1] = -3.0;
                    tCoord[2] = -4816.0;
                    result = 1;
                    break;
                case 73:
                    tCoord[0] = 6.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -305.0;
                    result = 1;
                    break;
                case 75:
                    tCoord[0] = 487.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 10649.0;
                    result = 1;
                    break;
                case 84:
                    tCoord[0] = 4555.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 5249.0;
                    result = 1;
                    break;
                case 85:
                case 86:
                case 87:
                case 99:
                case 100:
                case 195:
                case 196:
                case 197:
                case 198:
                case 199:
                    tCoord[0] = -2406.0;
                    tCoord[1] = -11.0;
                    tCoord[2] = 2512.0;
                    result = 1;
                    break;
                case 88:
                    tCoord[0] = -2522.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 2520.0;
                    result = 1;
                    break;
                case 89:
                    tCoord[0] = -5079.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = 4769.0;
                    result = 1;
                    break;
                case 90:
                    tCoord[0] = -632.0;
                    tCoord[1] = -295.0;
                    tCoord[2] = 14900.0;
                    result = 1;
                    break;
                case 103:
                    tCoord[0] = 6689.0;
                    tCoord[1] = 12.0;
                    tCoord[2] = 1258.0;
                    result = 1;
                    break;
                case 108:
                case 114:
                case 255:
                case 263:
                    tCoord[0] = 6398.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6409.0;
                    result = 1;
                    break;
                case 109:
                case 115:
                case 256:
                case 264:
                    tCoord[0] = 6402.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6377.0;
                    result = 1;
                    break;
                case 118:
                case 339:
                    tCoord[0] = -5275.0;
                    tCoord[1] = 220.0;
                    tCoord[2] = -5288.0;
                    result = 1;
                    break;
                case 120:
                case 121:
                case 122:
                case 154:
                case 157:
                case 160:
                case 295:
                case 296:
                    tCoord[0] = -423.0;
                    tCoord[1] = 99.0;
                    tCoord[2] = 4199.0;
                    result = 1;
                    break;
                case 124:
                    tCoord[0] = -2.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = -370.0;
                    result = 1;
                    break;
                case 125:
                    tCoord[0] = 13.0;
                    tCoord[1] = -7.0;
                    tCoord[2] = 145.0;
                    result = 1;
                    break;
                case 134:
                case 135:
                case 136:
                case 137:
                case 216:
                case 217:
                case 218:
                    tCoord[0] = 6244.0;
                    tCoord[1] = -46.0;
                    tCoord[2] = 59.0;
                    result = 1;
                    break;
                case 155:
                case 158:
                case 161:
                    tCoord[0] = -673.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4197.0;
                    result = 1;
                    break;
                case 156:
                case 159:
                case 162:
                case 163:
                case 164:
                    tCoord[0] = -921.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4197.0;
                    result = 1;
                    break;
                case 194:
                    tCoord[0] = 0.0;
                    tCoord[1] = 62.0;
                    tCoord[2] = 1324.0;
                    result = 1;
                    break;
                case 200:
                case 297:
                case 298:
                case 299:
                    tCoord[0] = -7834.0;
                    tCoord[1] = 9.0;
                    tCoord[2] = 7654.0;
                    result = 1;
                    break;
                case 201:
                    tCoord[0] = 3642.0;
                    tCoord[1] = -108.0;
                    tCoord[2] = -12501.0;
                    result = 1;
                    break;
                case 234:
                    tCoord[0] = -8.0;
                    tCoord[1] = -178.0;
                    tCoord[2] = -5209.0;
                    result = 1;
                    break;
                case 241:
                case 242:
                case 243:
                case 244:
                case 245:
                case 246:
                case 247:
                case 248:
                case 249:
                case 292:
                case 293:
                case 294:
                case 311:
                case 312:
                case 325:
                case 326:
                case 327:
                case 328:
                case 329:
                case 330:
                    tCoord[0] = -1.0;
                    tCoord[1] = 20.0;
                    tCoord[2] = 831.0;
                    result = 1;
                    break;
                case 250:
                case 267:
                case 268:
                case 269:
                    tCoord[0] = 2793.0;
                    tCoord[1] = 70.0;
                    tCoord[2] = 0.0;
                    result = 1;
                    break;
                case 277:
                    tCoord[0] = 17.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 189.0;
                    result = 1;
                    break;
                case 281:
                    tCoord[0] = -5.0;
                    tCoord[1] = 58.0;
                    tCoord[2] = -3836.0;
                    result = 1;
                    break;
                case 285:
                    tCoord[0] = -22.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 47.0;
                    result = 1;
                    break;
                case 289:
                    tCoord[0] = 3281.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 434.0;
                    result = 1;
                    break;
                case 291:
                    if ( !strcmp(mPLAY[0].mWorldInfo.mGuildName1, mMYINFO[0].mUseAvatar.aGuildName) )
                    {
                        tCoord[0] = 1.0;
                        tCoord[1] = 238.0;
                        tCoord[2] = 7959.0;
                    }
                    else
                    {
                        tCoord[0] = -8.0;
                        tCoord[1] = 15.0;
                        tCoord[2] = -37.0;
                    }
                    result = 1;
                    break;
                case 302:
                case 345:
                    tCoord[0] = -4862.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -11.0;
                    result = 1;
                    break;
                case 303:
                    tCoord[0] = -1547.0;
                    tCoord[1] = -17.0;
                    tCoord[2] = -2050.0;
                    result = 1;
                    break;
                case 306:
                    tCoord[0] = -4180.0;
                    tCoord[1] = 85.0;
                    tCoord[2] = 4127.0;
                    result = 1;
                    break;
                case 319:
                case 320:
                case 321:
                case 322:
                case 323:
                    tCoord[0] = 58.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 1789.0;
                    result = 1;
                    break;
                case 324:
                    tCoord[0] = 1100.0;
                    tCoord[1] = 54.0;
                    tCoord[2] = -780.0;
                    result = 1;
                    break;
                case 340:
                    tCoord[0] = -3411.0;
                    tCoord[1] = -203.0;
                    tCoord[2] = -3214.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_171;
            }
            break;
        case 3:
            switch ( tZoneNumber )
            {
                case 34:
                case 35:
                case 36:
                case 181:
                case 185:
                case 189:
                case 193:
LABEL_24:
                    tCoord[0] = -25.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5456.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = 4611.0;
                    tCoord[1] = 161.0;
                    tCoord[2] = 2458.0;
                    result = 1;
                    break;
                case 50:
                case 52:
                case 170:
                    tCoord[0] = -264.0;
                    tCoord[1] = 8.0;
                    tCoord[2] = 1700.0;
                    result = 1;
                    break;
                case 54:
                    tCoord[0] = 1585.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -1586.0;
                    result = 1;
                    break;
                case 55:
                    tCoord[0] = -3060.0;
                    tCoord[1] = 11.0;
                    tCoord[2] = -2245.0;
                    result = 1;
                    break;
                case 75:
                    tCoord[0] = 11064.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 10412.0;
                    result = 1;
                    break;
                case 84:
                    tCoord[0] = 359.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 9449.0;
                    result = 1;
                    break;
                case 85:
                case 86:
                case 87:
                case 99:
                case 100:
                case 196:
                case 197:
                case 198:
                case 199:
                    tCoord[0] = -9.0;
                    tCoord[1] = -11.0;
                    tCoord[2] = 4929.0;
                    result = 1;
                    break;
                case 88:
                    tCoord[0] = 0.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 5039.0;
                    result = 1;
                    break;
                case 89:
                    tCoord[0] = -9.0;
                    tCoord[1] = 40.0;
                    tCoord[2] = 9381.0;
                    result = 1;
                    break;
                case 90:
                    tCoord[0] = 6841.0;
                    tCoord[1] = -289.0;
                    tCoord[2] = 8767.0;
                    result = 1;
                    break;
                case 116:
                case 168:
                case 257:
                case 265:
LABEL_147:
                    tCoord[0] = 6398.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6409.0;
                    result = 1;
                    break;
                case 117:
                case 169:
                case 258:
                case 266:
LABEL_148:
                    tCoord[0] = 6402.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6377.0;
                    result = 1;
                    break;
                case 118:
                case 339:
                    tCoord[0] = -5289.0;
                    tCoord[1] = 220.0;
                    tCoord[2] = 5273.0;
                    result = 1;
                    break;
                case 120:
                case 121:
                case 122:
                case 154:
                case 157:
                case 160:
                case 295:
                case 296:
                    tCoord[0] = 67.0;
                    tCoord[1] = 99.0;
                    tCoord[2] = 4671.0;
                    result = 1;
                    break;
                case 123:
LABEL_39:
                    tCoord[0] = -56.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5479.0;
                    result = 1;
                    break;
                case 124:
LABEL_5:
                    tCoord[0] = -2.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = -370.0;
                    result = 1;
                    break;
                case 125:
                    tCoord[0] = -3380.0;
                    tCoord[1] = -9.0;
                    tCoord[2] = 3197.0;
                    result = 1;
                    break;
                case 155:
                case 158:
                case 161:
                    tCoord[0] = 64.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4922.0;
                    result = 1;
                    break;
                case 156:
                case 159:
                case 162:
                case 163:
                case 164:
                    tCoord[0] = 65.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 5169.0;
                    result = 1;
                    break;
                case 167:
LABEL_8:
                    tCoord[0] = 6689.0;
                    tCoord[1] = 12.0;
                    tCoord[2] = 1258.0;
                    result = 1;
                    break;
                case 171:
                case 172:
                case 173:
                case 174:
                case 219:
                case 220:
                case 221:
LABEL_16:
                    tCoord[0] = 6244.0;
                    tCoord[1] = -46.0;
                    tCoord[2] = 59.0;
                    result = 1;
                    break;
                case 194:
                    tCoord[0] = 1333.0;
                    tCoord[1] = 62.0;
                    tCoord[2] = 1.0;
                    result = 1;
                    break;
                case 200:
                case 297:
                case 298:
                case 299:
                    tCoord[0] = 25.0;
                    tCoord[1] = 9.0;
                    tCoord[2] = 15453.0;
                    result = 1;
                    break;
                case 201:
                    tCoord[0] = 9349.0;
                    tCoord[1] = -108.0;
                    tCoord[2] = -7776.0;
                    result = 1;
                    break;
                case 234:
LABEL_27:
                    tCoord[0] = -8.0;
                    tCoord[1] = -178.0;
                    tCoord[2] = -5209.0;
                    result = 1;
                    break;
                case 241:
                case 242:
                case 243:
                case 244:
                case 245:
                case 246:
                case 247:
                case 248:
                case 249:
                case 292:
                case 293:
                case 294:
                case 311:
                case 312:
                case 325:
                case 326:
                case 327:
                case 328:
                case 329:
                case 330:
LABEL_28:
                    tCoord[0] = -1.0;
                    tCoord[1] = 20.0;
                    tCoord[2] = 831.0;
                    result = 1;
                    break;
                case 250:
                case 268:
                case 269:
                    tCoord[0] = 0.0;
                    tCoord[1] = 70.0;
                    tCoord[2] = 2794.0;
                    result = 1;
                    break;
                case 278:
LABEL_13:
                    tCoord[0] = 17.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 189.0;
                    result = 1;
                    break;
                case 282:
LABEL_14:
                    tCoord[0] = -5.0;
                    tCoord[1] = 58.0;
                    tCoord[2] = -3836.0;
                    result = 1;
                    break;
                case 286:
LABEL_15:
                    tCoord[0] = -22.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 47.0;
                    result = 1;
                    break;
                case 290:
LABEL_34:
                    tCoord[0] = 3281.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 434.0;
                    result = 1;
                    break;
                case 291:
                    if ( !strcmp(mPLAY[0].mWorldInfo.mGuildName1, mMYINFO[0].mUseAvatar.aGuildName) )
                    {
                        tCoord[0] = 1.0;
                        tCoord[1] = 238.0;
                        tCoord[2] = 7959.0;
                    }
                    else
                    {
                        tCoord[0] = -8.0;
                        tCoord[1] = 15.0;
                        tCoord[2] = -37.0;
                    }
                    result = 1;
                    break;
                case 302:
                case 345:
                    tCoord[0] = 4882.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = 0.0;
                    result = 1;
                    break;
                case 303:
LABEL_42:
                    tCoord[0] = -1547.0;
                    tCoord[1] = -17.0;
                    tCoord[2] = -2050.0;
                    result = 1;
                    break;
                case 307:
LABEL_43:
                    tCoord[0] = -4180.0;
                    tCoord[1] = 85.0;
                    tCoord[2] = 4127.0;
                    result = 1;
                    break;
                case 319:
                case 320:
                case 321:
                case 322:
                case 323:
                    tCoord[0] = -2342.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4190.0;
                    result = 1;
                    break;
                case 324:
                    tCoord[0] = -1105.0;
                    tCoord[1] = 54.0;
                    tCoord[2] = -784.0;
                    result = 1;
                    break;
                case 340:
                    tCoord[0] = -3382.0;
                    tCoord[1] = -205.0;
                    tCoord[2] = 3244.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_171;
            }
            break;
        default:
LABEL_171:
            if ( tZoneNumber == 341 )
            {
                v4 = 4168.0;
                v5 = 237.0;
                v6[0] = 5115.0;
                v6[1] = 3144.0;
                v6[2] = 193.0;
                v6[3] = 3894.0;
                v6[4] = 4201.0;
                v6[5] = 490.0;
                v6[6] = 3352.0;
                v6[7] = 1222.0;
                v6[8] = -15.0;
                v6[9] = 4460.0;
                v6[10] = 1292.0;
                v6[11] = -15.0;
                v6[12] = 3145.0;
                v6[13] = 882.0;
                v6[14] = -10.0;
                v6[15] = 2053.0;
                v6[16] = 882.0;
                v6[17] = -10.0;
                v6[18] = 2053.0;
                v6[19] = 3012.0;
                v6[20] = 9.0;
                v6[21] = 986.0;
                v6[22] = 1740.0;
                v6[23] = -3.0;
                v6[24] = 2334.0;
                v6[25] = 5268.0;
                v6[26] = 237.0;
                v6[27] = -4057.0;
                v6[28] = 3845.0;
                v6[29] = 187.0;
                v6[30] = -3114.0;
                v6[31] = 2994.0;
                v6[32] = 202.0;
                v6[33] = -3081.0;
                v6[34] = 4286.0;
                v6[35] = -17.0;
                v6[36] = -943.0;
                v6[37] = 2199.0;
                v6[38] = 116.0;
                v6[39] = -3197.0;
                v6[40] = 2344.0;
                v6[41] = -4.0;
                v6[42] = -1774.0;
                v6[43] = 2076.0;
                v6[44] = -16.0;
                v6[45] = -709.0;
                v6[46] = 1047.0;
                v6[47] = 9.0;
                v6[48] = -3034.0;
                v6[49] = 962.0;
                v6[50] = -17.0;
                v6[51] = -1470.0;
                v6[52] = -4093.0;
                v6[53] = 237.0;
                v6[54] = -5160.0;
                v6[55] = -2952.0;
                v6[56] = 299.0;
                v6[57] = -5124.0;
                v6[58] = -3099.0;
                v6[59] = 185.0;
                v6[60] = -4242.0;
                v6[61] = -4266.0;
                v6[62] = 398.0;
                v6[63] = -4029.0;
                v6[64] = -3166.0;
                v6[65] = 202.0;
                v6[66] = -2994.0;
                v6[67] = -4347.0;
                v6[68] = 396.0;
                v6[69] = -2544.0;
                v6[70] = -3258.0;
                v6[71] = 112.0;
                v6[72] = -2163.0;
                v6[73] = -1695.0;
                v6[74] = -5.0;
                v6[75] = -2302.0;
                v6[76] = -2944.0;
                v6[77] = 9.0;
                v6[78] = -1018.0;
                v6[79] = -2726.0;
                v6[80] = -2.0;
                v6[81] = 930.0;
                v6[82] = -1833.0;
                v6[83] = -25.0;
                v6[84] = 1643.0;
                v6[85] = -2496.0;
                v6[86] = 186.0;
                v6[87] = 2935.0;
                v6[88] = -3130.0;
                v6[89] = 205.0;
                v6[90] = 3141.0;
                v6[91] = -4264.0;
                v6[92] = 188.0;
                v6[93] = 3565.0;
                v6[94] = -982.0;
                v6[95] = 9.0;
                v6[96] = 2948.0;
                v6[97] = -1609.0;
                v6[98] = 440.0;
                v6[99] = 3702.0;
                v6[100] = -292.0;
                v6[101] = -17.0;
                v6[102] = 2370.0;
                v6[103] = -4973.0;
                v6[104] = 293.0;
                v6[105] = 2795.0;
                v7 = rand() % 36;
                tCoord[0] = *(&v4 + 3 * v7);
                tCoord[1] = *(&v5 + 3 * v7);
                tCoord[2] = v6[3 * v7];
                result = 1;
            }
            else
            {
                tCoord[0] = 0.0;
                tCoord[1] = 0.0;
                tCoord[2] = 0.0;
                result = 0;
            }
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnLevelBattleGateCoord(int tSort, int tZoneNumber, float *tZoneCoord)
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 0:
            if ( tZoneNumber > 323 )
                goto LABEL_98;
            if ( tZoneNumber >= 319 )
            {
                *tZoneCoord = 56.91;
                tZoneCoord[1] = 104.19;
                tZoneCoord[2] = 5668.4502;
                tZoneCoord[3] = 0.0;
                result = 1;
            }
            else
            {
                switch ( tZoneNumber )
                {
                    case 49:
                        *tZoneCoord = 197.03;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 399.82001;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 51:
                        *tZoneCoord = 451.76001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.88;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 53:
                    case 152:
                        *tZoneCoord = 700.51001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.92999;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 91:
                        *tZoneCoord = 605.96997;
                        tZoneCoord[1] = -3.9100001;
                        tZoneCoord[2] = 3569.77;
                        tZoneCoord[3] = 45.0;
                        result = 1;
                        break;
                    case 93:
                        *tZoneCoord = 2858.6201;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 4193.9302;
                        tZoneCoord[3] = 180.0;
                        result = 1;
                        break;
                    case 120:
                    case 160:
                        *tZoneCoord = 257.23999;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 4190.1299;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 121:
                    case 154:
                        *tZoneCoord = 257.23999;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 4190.1299;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 122:
                    case 157:
                    case 295:
                    case 296:
                        *tZoneCoord = 257.23999;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 4190.1299;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 146:
                        *tZoneCoord = 197.03;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 399.82001;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 147:
                        *tZoneCoord = 451.76001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.88;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 148:
                    case 153:
                        *tZoneCoord = 700.51001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.92999;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 149:
                        *tZoneCoord = 197.03;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 399.82001;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 150:
                        *tZoneCoord = 451.76001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.88;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 151:
                        *tZoneCoord = 700.51001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.92999;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 155:
                        *tZoneCoord = 521.54999;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4188.77;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 156:
                    case 163:
                        *tZoneCoord = 622.89001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5298;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 158:
                        *tZoneCoord = 521.54999;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4188.77;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 159:
                    case 164:
                        *tZoneCoord = 622.89001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5298;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 161:
                        *tZoneCoord = 521.54999;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4188.77;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 162:
                        *tZoneCoord = 622.89001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5298;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 250:
                        *tZoneCoord = -0.12;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = -2364.4299;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 267:
                    case 268:
                    case 269:
                        *tZoneCoord = -0.12;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = -2364.4299;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    default:
                        goto LABEL_98;
                }
            }
            break;
        case 1:
            if ( tZoneNumber > 323 )
                goto LABEL_98;
            if ( tZoneNumber >= 319 )
            {
                *tZoneCoord = 1527.5601;
                tZoneCoord[1] = 104.19;
                tZoneCoord[2] = 4187.8198;
                tZoneCoord[3] = 90.0;
                result = 1;
            }
            else
            {
                switch ( tZoneNumber )
                {
                    case 49:
                        *tZoneCoord = 0.5;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 200.60001;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 51:
                        *tZoneCoord = -0.22;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -52.889999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 53:
                    case 152:
                        *tZoneCoord = 0.37;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -300.35999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 91:
                        *tZoneCoord = 594.53998;
                        tZoneCoord[1] = -3.9100001;
                        tZoneCoord[2] = 577.85999;
                        tZoneCoord[3] = -45.0;
                        result = 1;
                        break;
                    case 93:
                        *tZoneCoord = 61.220001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 1392.04;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 120:
                    case 160:
                        *tZoneCoord = 58.0;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 3991.0601;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 121:
                    case 154:
                        *tZoneCoord = 58.0;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 3991.0601;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 122:
                    case 157:
                    case 295:
                    case 296:
                        *tZoneCoord = 58.0;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 3991.0601;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 146:
                        *tZoneCoord = 0.5;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 200.60001;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 147:
                        *tZoneCoord = -0.22;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -52.889999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 148:
                    case 153:
                        *tZoneCoord = 0.37;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -300.35999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 149:
                        *tZoneCoord = 0.5;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 200.60001;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 150:
                        *tZoneCoord = -0.22;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -52.889999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 151:
                        *tZoneCoord = 0.37;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -300.35999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 155:
                        *tZoneCoord = 58.700001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3726.6201;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 156:
                    case 163:
                        *tZoneCoord = 57.880001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3626.5901;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 158:
                        *tZoneCoord = 58.700001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3726.6201;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 159:
                    case 164:
                        *tZoneCoord = 57.880001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3626.5901;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 161:
                        *tZoneCoord = 58.700001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3726.6201;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 162:
                        *tZoneCoord = 57.880001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3626.5901;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 250:
                        *tZoneCoord = -2363.3701;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = 0.050000001;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 267:
                    case 268:
                    case 269:
                        *tZoneCoord = -2363.3701;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = 0.050000001;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    default:
                        goto LABEL_98;
                }
            }
            break;
        case 2:
            if ( tZoneNumber > 323 )
                goto LABEL_98;
            if ( tZoneNumber >= 319 )
            {
                *tZoneCoord = 55.810001;
                tZoneCoord[1] = 104.19;
                tZoneCoord[2] = 2709.6499;
                tZoneCoord[3] = 0.0;
                result = 1;
            }
            else
            {
                switch ( tZoneNumber )
                {
                    case 49:
                        *tZoneCoord = -197.39;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 401.01001;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 51:
                        *tZoneCoord = -450.92999;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.73999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 53:
                    case 152:
                        *tZoneCoord = -699.28998;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 400.20999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 91:
                        *tZoneCoord = 6227.2998;
                        tZoneCoord[1] = -3.9100001;
                        tZoneCoord[2] = 579.04999;
                        tZoneCoord[3] = -225.0;
                        result = 1;
                        break;
                    case 93:
                        *tZoneCoord = -2740.5901;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 4188.3701;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 120:
                    case 160:
                        *tZoneCoord = -139.82001;
                        tZoneCoord[1] = 99.959999;
                        tZoneCoord[2] = 4190.21;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 121:
                    case 154:
                        *tZoneCoord = -139.82001;
                        tZoneCoord[1] = 99.959999;
                        tZoneCoord[2] = 4190.21;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 122:
                    case 157:
                    case 295:
                    case 296:
                        *tZoneCoord = -139.82001;
                        tZoneCoord[1] = 99.959999;
                        tZoneCoord[2] = 4190.21;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 146:
                        *tZoneCoord = -197.39;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 401.01001;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 147:
                        *tZoneCoord = -450.92999;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.73999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 148:
                    case 153:
                        *tZoneCoord = -699.28998;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 400.20999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 149:
                        *tZoneCoord = -197.39;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 401.01001;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 150:
                        *tZoneCoord = -450.92999;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.73999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 151:
                        *tZoneCoord = -699.28998;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 400.20999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 155:
                        *tZoneCoord = -405.56;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5698;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 156:
                    case 163:
                        *tZoneCoord = -504.25;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4192.2002;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 158:
                        *tZoneCoord = -405.56;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5698;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 159:
                    case 164:
                        *tZoneCoord = -504.25;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4192.2002;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 161:
                        *tZoneCoord = -405.56;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5698;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 162:
                        *tZoneCoord = -504.25;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4192.2002;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 250:
                        *tZoneCoord = 2363.01;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = 0.2;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 267:
                    case 268:
                    case 269:
                        *tZoneCoord = 2363.01;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = 0.2;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    default:
                        goto LABEL_98;
                }
            }
            break;
        case 3:
            switch ( tZoneNumber )
            {
                case 91:
                    *tZoneCoord = 6227.52;
                    tZoneCoord[1] = -3.9100001;
                    tZoneCoord[2] = 3579.8999;
                    tZoneCoord[3] = -225.0;
                    result = 1;
                    break;
                case 120:
                case 157:
                    *tZoneCoord = 58.259998;
                    tZoneCoord[1] = 100.1;
                    tZoneCoord[2] = 4388.27;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 121:
                case 160:
                    *tZoneCoord = 58.259998;
                    tZoneCoord[1] = 100.1;
                    tZoneCoord[2] = 4388.27;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 122:
                case 154:
                case 295:
                case 296:
                    *tZoneCoord = 58.259998;
                    tZoneCoord[1] = 100.1;
                    tZoneCoord[2] = 4388.27;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 155:
                    *tZoneCoord = 59.389999;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4653.73;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 156:
                case 163:
                    *tZoneCoord = 60.57;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4752.7402;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 158:
                    *tZoneCoord = 59.389999;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4653.73;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 159:
                case 164:
                    *tZoneCoord = 60.57;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4752.7402;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 161:
                    *tZoneCoord = 59.389999;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4653.73;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 162:
                    *tZoneCoord = 60.57;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4752.7402;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 250:
                case 267:
                    *tZoneCoord = 0.25;
                    tZoneCoord[1] = 70.68;
                    tZoneCoord[2] = 2360.25;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 268:
                    *tZoneCoord = 0.25;
                    tZoneCoord[1] = 70.68;
                    tZoneCoord[2] = 2360.25;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 269:
                    *tZoneCoord = 0.25;
                    tZoneCoord[1] = 70.68;
                    tZoneCoord[2] = 2360.25;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 319:
                case 320:
                case 321:
                case 322:
                case 323:
                    *tZoneCoord = -1423.87;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4190.3701;
                    tZoneCoord[3] = 90.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_98;
            }
            break;
        default:
LABEL_98:
            *tZoneCoord = 0.0;
            tZoneCoord[1] = 0.0;
            tZoneCoord[2] = 0.0;
            tZoneCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnGuardStoneEffectCoord(int tTribe, int tZoneNumber, float tCoord[3])
{
    BOOL result; // eax

    switch ( tTribe )
    {
        case 0:
            switch ( tZoneNumber )
            {
                case 2:
                    tCoord[0] = -4149.0;
                    tCoord[1] = -3.0;
                    tCoord[2] = -2947.0;
                    result = 1;
                    break;
                case 3:
                    tCoord[0] = -88.0;
                    tCoord[1] = -9.0;
                    tCoord[2] = 822.0;
                    result = 1;
                    break;
                case 4:
                    tCoord[0] = -59.0;
                    tCoord[1] = -10.0;
                    tCoord[2] = 1828.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = -1816.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 2431.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_22;
            }
            break;
        case 1:
            switch ( tZoneNumber )
            {
                case 7:
                    tCoord[0] = 3274.0;
                    tCoord[1] = 29.0;
                    tCoord[2] = -4728.0;
                    result = 1;
                    break;
                case 8:
                    tCoord[0] = 211.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 1505.0;
                    result = 1;
                    break;
                case 9:
                    tCoord[0] = -218.0;
                    tCoord[1] = -2.0;
                    tCoord[2] = 1419.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = 234.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 394.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_22;
            }
            break;
        case 2:
            switch ( tZoneNumber )
            {
                case 12:
                    tCoord[0] = -4598.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -4307.0;
                    result = 1;
                    break;
                case 13:
                    tCoord[0] = 12.0;
                    tCoord[1] = 13.0;
                    tCoord[2] = 1472.0;
                    result = 1;
                    break;
                case 14:
                    tCoord[0] = 39.0;
                    tCoord[1] = 12.0;
                    tCoord[2] = 1814.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = 2500.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 337.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_22;
            }
            break;
        case 3:
            switch ( tZoneNumber )
            {
                case 38:
                    tCoord[0] = 4611.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 2458.0;
                    result = 1;
                    break;
                case 141:
                    tCoord[0] = -13.0;
                    tCoord[1] = -19.0;
                    tCoord[2] = 1450.0;
                    result = 1;
                    break;
                case 142:
                    tCoord[0] = -45.0;
                    tCoord[1] = -14.0;
                    tCoord[2] = 847.0;
                    result = 1;
                    break;
                case 143:
                    tCoord[0] = 11.0;
                    tCoord[1] = -14.0;
                    tCoord[2] = 883.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_22;
            }
            break;
        default:
LABEL_22:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnMysteryDungeonGateCoord(int tSort, float tCoord[4])
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 1:
            tCoord[0] = -5.75;
            tCoord[1] = 0.0;
            tCoord[2] = -4749.1201;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 2:
            tCoord[0] = -8.8800001;
            tCoord[1] = 0.0;
            tCoord[2] = -1623.71;
            tCoord[3] = 183.0;
            result = 1;
            break;
        case 3:
            tCoord[0] = -4.46;
            tCoord[1] = 0.0;
            tCoord[2] = 1619.7;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 4:
            tCoord[0] = -4.4200001;
            tCoord[1] = 0.0;
            tCoord[2] = 4750.6001;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 5:
            tCoord[0] = -36.439999;
            tCoord[1] = 1.17;
            tCoord[2] = 7748.3999;
            tCoord[3] = 178.0;
            result = 1;
            break;
        case 6:
            tCoord[0] = -35.43;
            tCoord[1] = 1.99;
            tCoord[2] = 10899.92;
            tCoord[3] = -184.0;
            result = 1;
            break;
        case 7:
            tCoord[0] = -29.75;
            tCoord[1] = 1.99;
            tCoord[2] = 14105.72;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 8:
            tCoord[0] = -30.91;
            tCoord[1] = 1.17;
            tCoord[2] = 17257.971;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 9:
            tCoord[0] = -29.940001;
            tCoord[1] = 1.17;
            tCoord[2] = 21523.25;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 10:
            tCoord[0] = -30.809999;
            tCoord[1] = 1.17;
            tCoord[2] = 24672.68;
            tCoord[3] = 0.0;
            result = 1;
            break;
        default:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            tCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnHoisundoGateCoord(int tType, int tSort, float tCoord[4])
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 0:
            if ( tType == 1 )
            {
                tCoord[0] = 7419.2998;
                tCoord[1] = 0.0;
                tCoord[2] = 7644.2598;
                tCoord[3] = 90.0;
            }
            else if ( tType == 2 )
            {
                tCoord[0] = 761.03003;
                tCoord[1] = 248.94;
                tCoord[2] = 7662.0601;
                tCoord[3] = -89.0;
            }
            result = 1;
            break;
        case 1:
            if ( tType == 1 )
            {
                tCoord[0] = -3.3399999;
                tCoord[1] = 0.0;
                tCoord[2] = 254.87;
                tCoord[3] = 0.0;
            }
            else if ( tType == 2 )
            {
                tCoord[0] = 14.18;
                tCoord[1] = 248.94;
                tCoord[2] = 6912.1099;
                tCoord[3] = 0.0;
            }
            result = 1;
            break;
        case 2:
            if ( tType == 1 )
            {
                tCoord[0] = -7391.6899;
                tCoord[1] = 0.0;
                tCoord[2] = 7677.1401;
                tCoord[3] = 88.0;
            }
            else if ( tType == 2 )
            {
                tCoord[0] = -732.70001;
                tCoord[1] = 249.00999;
                tCoord[2] = 7662.96;
                tCoord[3] = 87.0;
            }
            result = 1;
            break;
        case 3:
            if ( tType == 1 )
            {
                tCoord[0] = 29.84;
                tCoord[1] = 0.0;
                tCoord[2] = 15062.38;
                tCoord[3] = 0.0;
            }
            else if ( tType == 2 )
            {
                tCoord[0] = 11.53;
                tCoord[1] = 248.94;
                tCoord[2] = 8410.0;
                tCoord[3] = 0.0;
            }
            result = 1;
            break;
        default:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            tCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnSamgundoGateCoord(int tSort, float tCoord[4])
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 0:
            tCoord[0] = 2205.05;
            tCoord[1] = -1.71;
            tCoord[2] = 2528.54;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 1:
            tCoord[0] = 0.029999999;
            tCoord[1] = -0.0;
            tCoord[2] = 318.98999;
            tCoord[3] = 90.0;
            result = 1;
            break;
        case 2:
            tCoord[0] = -2203.46;
            tCoord[1] = -0.0;
            tCoord[2] = 2519.6299;
            tCoord[3] = -180.0;
            result = 1;
            break;
        case 3:
            tCoord[0] = 0.12;
            tCoord[1] = 0.0;
            tCoord[2] = 4722.8999;
            tCoord[3] = -90.0;
            result = 1;
            break;
        default:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            tCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnFourGuildGateCoord(int tSort, float tCoord[4])
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 0:
            tCoord[0] = -0.14;
            tCoord[1] = 0.27000001;
            tCoord[2] = -3799.6799;
            tCoord[3] = -181.0;
            result = 1;
            break;
        case 1:
            tCoord[0] = 2.1400001;
            tCoord[1] = 5.27;
            tCoord[2] = -1601.59;
            tCoord[3] = -181.0;
            result = 1;
            break;
        case 2:
            tCoord[0] = -0.44;
            tCoord[1] = 10.27;
            tCoord[2] = 596.70001;
            tCoord[3] = -181.0;
            result = 1;
            break;
        case 3:
            tCoord[0] = -1.73;
            tCoord[1] = 15.27;
            tCoord[2] = 2797.3899;
            tCoord[3] = -181.0;
            result = 1;
            break;
        default:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            tCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnGoldMoonGateCoord(int tSort, float tCoord[4])
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 0:
            tCoord[0] = 374.26001;
            tCoord[1] = 4.6500001;
            tCoord[2] = -375.35001;
            tCoord[3] = -44.0;
            result = 1;
            break;
        case 1:
            tCoord[0] = 377.60999;
            tCoord[1] = 0.64999998;
            tCoord[2] = 378.19;
            tCoord[3] = -135.0;
            result = 1;
            break;
        case 2:
            tCoord[0] = -379.04999;
            tCoord[1] = 1.65;
            tCoord[2] = 378.47;
            tCoord[3] = 134.0;
            result = 1;
            break;
        case 3:
            tCoord[0] = -376.94;
            tCoord[1] = 0.64999998;
            tCoord[2] = -376.48999;
            tCoord[3] = 43.0;
            result = 1;
            break;
        default:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            tCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}
10/27/2022 11:17 hapciuu#3
can you share costume class
10/28/2022 09:32 RHNbaskan#4
we don't realize what it means

unless you provide a way to demonstrate usage logic
No contribution in terms of development

because the infrastructure is over ts1
The parameters you gave seem to work for their implementation there.

Most of the tables needed for npc and character location determination are given here.

In order to skip the old db paths and map control server parts, we are moving towards using the current 2.5 v instead of the infrastructure anymore.

I draw the full part of the structure, the map and shuning groups.

This is time, and it is prepared for the renewed db without hassle.

The important point is to show how to use the text you gave.

The reason is that we cannot select the coordinate where the character in the character map is located.
if you touch it by hand

/ img group in gdata / 01 folder -(3/04 allows to interfere with npc locations)

If I find the place of intervention in the starting map of the main character :D
+100 map will be added, the system infrastructure is reading wm and wg files.


TR:
ne anlama geldiğini farkediyoruz

kullanım mantığını göstermek için yol sunmadığın sürece
gelişim anlamında katkı sağlanmıyor

alt yapı ts1 üzerinden olduğu için
verdiğin paremetreler orda uygulanması için iş görür gözükmekte.

npc ve karakter konum belirlenmesi için gereken çoğu tablo burada verilmiş.

artık alt yapı onu değil güncel 2.5 v kullanmaya doğru gittiğimiz , için eski db yolları ve map kontrol server kısımlarını atlamak için

yapının koplesini map ve shuning gruplarını çekiyorum.

buda zaman , ve yenilenmiş db için uğraşmadan hazırlanmış oluyor.

önemli nokta bu verdiğin metinin nasıl kullanılçağını gösterilmesi

sebebi karakter map içindeki karakterin bulunduğu kordinat seçemiyoruz
eğer el ile dokunmak için

gdata / 01 klasör içindeki/ img grubu -(03/04 npc konumlarına müdehaleye müsade ediyor)

ana karakterin başlangıç map içindeki konumuna müdehale yerini bulursam :D
+100 map eklenmiş olucak sistem alt yapı wm ve wg dosyaları okuyor.
------------------------------------------------------


main city via source code
Can we specify the starting coordinate?

case 37:
mCheckAllienceServer = TRUE;
mAlliencePostTick = 0;
mAllienceBattleState = 0;
mAllienceRemainTime = 0;
mAllienceBattlePostLocation[0][0] = -41.0f;
mAllienceBattlePostLocation[0][1] = 8.0f;
mAllienceBattlePostLocation[0][2] = -272.0f;
mAllienceBattlePostLocation[1][0] = 35.0f;
mAllienceBattlePostLocation[1][1] = 8.0f;
mAllienceBattlePostLocation[1][2] = -272.0f;
mAllienceBattlePostRadius[0] = 10.0f;
mAllienceBattlePostRadius[1] = 10.0f;
mAlliencePostAvatarIndex[0] = -1;
mAlliencePostAvatarIndex[1] = -1;
mAlliencePostAvatarUniqueNumber[0] = 0;
mAlliencePostAvatarUniqueNumber[1] = 0;
mAlliencePostAvatarTribe[0] = -1;
mAlliencePostAvatarTribe[1] = -1;
break;