Mercurial > mm7
changeset 2490:0a0c6d75aabe
two_handed_left_fist
author | Ritor1 |
---|---|
date | Fri, 12 Sep 2014 18:05:26 +0600 |
parents | ceda74e07201 |
children | e9adbbce69f9 85a12b497698 |
files | Actor.cpp GUIWindow.cpp Indoor.cpp Indoor.h Outdoor.cpp Render.cpp SpriteObject.cpp UI/UICharacter.cpp UI/UIHouses.cpp UI/UiGame.cpp |
diffstat | 10 files changed, 128 insertions(+), 348 deletions(-) [+] |
line wrap: on
line diff
--- a/Actor.cpp Thu Sep 11 17:30:59 2014 +0600 +++ b/Actor.cpp Fri Sep 12 18:05:26 2014 +0600 @@ -2611,7 +2611,7 @@ { pActors[actor_id].uLastCharacterIDToHit = attacker_id; if ( pActors[actor_id].uAIState == Fleeing ) - pActors[actor_id].uAttributes |= FACE_UNKNOW7; + pActors[actor_id].uAttributes |= 0x20000; if ( pActors[PID_ID(attacker_id)]._4273BB_DoesHitOtherActor(&pActors[actor_id], v4, 0) ) { dmgToRecv = pActors[PID_ID(attacker_id)]._43B3E0_CalcDamage(a4);
--- a/GUIWindow.cpp Thu Sep 11 17:30:59 2014 +0600 +++ b/GUIWindow.cpp Fri Sep 12 18:05:26 2014 +0600 @@ -1902,7 +1902,7 @@ { if ( v26 < 800 ) { - ItemGen2.uAttributes |= 1u; + ItemGen2.uAttributes |= 1; ItemGen2.uItemID = v26; if ( pItemsTable->pItems[v26].uEquipType == 12 ) {
--- a/Indoor.cpp Thu Sep 11 17:30:59 2014 +0600 +++ b/Indoor.cpp Fri Sep 12 18:05:26 2014 +0600 @@ -140,21 +140,6 @@ void BLVRenderParams::Reset() { int v7; // eax@1 -// int v8; // ST08_4@2 -// int v9; // ST04_4@2 -// int v10; // ST00_4@2 -// double v17; // st7@5 -// int v18; // eax@5 -// double v19; // st7@5 -// int v20; // eax@5 -// double v21; // st7@5 -// int v22; // eax@5 -// unsigned int v23; // edx@5 -// unsigned int v24; // ecx@5 -// int v25; // eax@5 -// int v26; // eax@5 -// signed int v27; // eax@6 -// int v29; // [sp+24h] [bp+8h]@5 this->field_0_timer_ = pEventTimer->uTotalGameTimeElapsed; @@ -418,39 +403,10 @@ //----- (004B0A25) -------------------------------------------------------- void IndoorLocation::ExecDraw_d3d(unsigned int uFaceID, IndoorCameraD3D_Vec4 *pVertices, unsigned int uNumVertices, RenderVertexSoft *pPortalBounding) { - //unsigned int v4; // esi@1 -// char *v5; // eax@4 -// signed int v6; // ecx@4 -// char *v7; // eax@8 -// signed int v8; // ecx@8 - //BLVFace *v9; // esi@13 - //IndoorCameraD3D *v10; // edi@16 - //int v11; // ebx@17 - //Vec3_short_ *v12; // ecx@18 - //char *v13; // edx@18 - //int v14; // eax@19 - //unsigned __int8 v15; // sf@19 - //unsigned __int8 v16; // of@19 int v17; // ebx@25 - //double v18; // st7@27 - //double v19; // st6@27 - //double v20; // st5@27 - //char v21; // dl@27 - //unsigned int v22; // eax@44 -// unsigned int v23; // eax@35 - //DWORD v24; // eax@37 - //int v25; // eax@38 - //char *v26; // edi@38 IDirect3DTexture2 *v27; // eax@42 - //Texture *v28; // [sp+Ch] [bp-1Ch]@15 - //int i; // [sp+10h] [bp-18h]@38 - //LightmapBuilder *pStru4; // [sp+14h] [bp-14h]@16 - //IndoorCameraD3D *v31; // [sp+18h] [bp-10h]@16 - //IndoorCameraD3D_Vec4 *a7; // [sp+1Ch] [bp-Ch]@1 - //unsigned int uFaceID_; // [sp+20h] [bp-8h]@1 unsigned int uNumVerticesa; // [sp+24h] [bp-4h]@17 int a4a; // [sp+34h] [bp+Ch]@25 - //unsigned int a4b; // [sp+34h] [bp+Ch]@38 if (uFaceID >= pIndoor->uNumFaces) return; @@ -468,7 +424,7 @@ return; ++pBLVRenderParams->uNumFacesRenderedThisFrame; - pFace->uAttributes |= 0x80; + pFace->uAttributes |= FACE_UNKNOW4; if (!pFace->GetTexture()) return; @@ -559,14 +515,14 @@ stru_F8AD28.pDeltaUV[0] = pIndoor->pFaceExtras[pIndoor->pFaces[uFaceID].uFaceExtraID].sTextureDeltaU; stru_F8AD28.pDeltaUV[1] = pIndoor->pFaceExtras[pIndoor->pFaces[uFaceID].uFaceExtraID].sTextureDeltaV; result = GetTickCount() >> 3; - if ( pIndoor->pFaces[uFaceID].uAttributes & 4 ) + if ( pIndoor->pFaces[uFaceID].uAttributes & FACE_FLOW_DIAGONAL ) stru_F8AD28.pDeltaUV[1] -= result & pBitmaps_LOD->GetTexture(pIndoor->pFaces[uFaceID].uBitmapID)->uHeightMinus1; else { - if ( pIndoor->pFaces[uFaceID].uAttributes & 0x20 ) + if ( pIndoor->pFaces[uFaceID].uAttributes & FACE_FLOW_VERTICAL ) stru_F8AD28.pDeltaUV[1] += result & pBitmaps_LOD->GetTexture(pIndoor->pFaces[uFaceID].uBitmapID)->uHeightMinus1; } - if ( pIndoor->pFaces[uFaceID].uAttributes & 0x800 ) + if ( pIndoor->pFaces[uFaceID].uAttributes & FACE_FLOW_HORIZONTAL ) stru_F8AD28.pDeltaUV[0] -= result & pBitmaps_LOD->GetTexture(pIndoor->pFaces[uFaceID].uBitmapID)->uWidthMinus1; else { @@ -579,47 +535,10 @@ //----- (004B0EA8) -------------------------------------------------------- void BspRenderer::AddFaceToRenderList_d3d(unsigned int node_id, unsigned int uFaceID) { - //unsigned int v3; // edx@1 - //stru170 *v4; // ebx@1 - //BLVFace *v5; // eax@1 - //int v6; // ecx@2 unsigned __int16 pTransitionSector; // ax@11 -// Vec3_short_ *v8; // esi@15 int v9; // edx@15 - //signed int v10; // eax@18 - //signed int v11; // edi@19 - //signed int v12; // ecx@19 - //signed int v13; // esi@19 -// signed int v14; // edx@20 -// int v15; // edx@24 - //int v16; // esi@29 - //BLVFace *v17; // edi@34 - //unsigned __int16 v18; // ax@34 -// char *v19; // eax@38 -// signed int v20; // ecx@38 -// char *v21; // eax@42 -// signed int v22; // ecx@42 - //signed int v23; // edx@45 - //char *v24; // ecx@46 - //int v25; // eax@47 - //Vec3_short_ *v26; // eax@47 - //double v27; // st7@47 - //signed int v28; // ST28_4@47 char v29; // al@48 - //signed int v30; // eax@51 - //int v31; // eax@52 - //unsigned int v32; // eax@55 - //__int16 v33; // cx@56 - //signed int v34; // [sp+Ch] [bp-14h]@18 - //int a0; // [sp+14h] [bp-Ch]@2 - //IndoorCameraD3D *a0a; // [sp+14h] [bp-Ch]@36 - //signed int v37; // [sp+18h] [bp-8h]@19 - //stru10 *v38; // [sp+18h] [bp-8h]@36 - //BLVFace *v39; // [sp+1Ch] [bp-4h]@1 - - //v3 = uFaceID; - //v4 = this; - //v5 = &pIndoor->pFaces[uFaceID]; + nodes[num_nodes].viewing_portal_id = -1; //v39 = &pIndoor->pFaces[uFaceID]; @@ -712,9 +631,9 @@ nodes[num_nodes].uViewportY = pBLVRenderParams->uViewportY; nodes[num_nodes].uViewportW = pBLVRenderParams->uViewportW; v29 = false; - if (nodes[node_id].viewing_portal_id == -1)//первый портал на который я смотрю + if (nodes[node_id].viewing_portal_id == -1)//for first portal v29 = pGame->pStru10Instance->CalcPortalShape(pFace, nodes[num_nodes].std__vector_0007AC, nodes[num_nodes].pPortalBounding); - else//следующие порталы в портале + else//for next portals { static RenderVertexSoft static_subAddFaceToRenderList_d3d_stru_F7AA08[64]; static RenderVertexSoft static_subAddFaceToRenderList_d3d_stru_F79E08[64]; @@ -762,45 +681,52 @@ //----- (00498B15) -------------------------------------------------------- void IndoorLocation::Release() { - //IndoorLocation *v1; // esi@1 - //char *v2; // ebp@1 - //void *v3; // ST00_4@1 - - //v1 = this; - //v2 = (char *)&this->ptr_0002B4_doors_ddata; free(this->ptr_0002B4_doors_ddata); - this->ptr_0002B4_doors_ddata = 0; + this->ptr_0002B4_doors_ddata = NULL; + free(this->ptr_0002B0_sector_rdata); - this->ptr_0002B0_sector_rdata = 0; + this->ptr_0002B0_sector_rdata = NULL; + free(this->ptr_0002B8_sector_lrdata); - this->ptr_0002B8_sector_lrdata = 0; + this->ptr_0002B8_sector_lrdata = NULL; + free(this->pLFaces); - this->pLFaces = 0; + this->pLFaces = NULL; + free(this->pSpawnPoints); - //v3 = this->pVertices; - this->pSpawnPoints = 0; + this->pSpawnPoints = NULL; + this->uNumSectors = 0; this->uNumFaces = 0; this->uNumVertices = 0; this->uNumNodes = 0; this->uNumDoors = 0; this->uNumLights = 0; + free(this->pVertices); + this->pVertices = NULL; + free(this->pFaces); + this->pFaces = NULL; + free(this->pFaceExtras); + this->pFaceExtras = NULL; + free(this->pSectors); + this->pSectors = NULL; + free(this->pLights); + this->pLights = NULL; + free(this->pDoors); + this->pDoors = NULL; + free(this->pNodes); + this->pNodes = NULL; + free(this->pMapOutlines); - this->pVertices = 0; - this->pFaces = 0; - this->pFaceExtras = 0; - this->pSectors = 0; - this->pLights = 0; - this->pDoors = 0; - this->pNodes = 0; - this->pMapOutlines = 0; + this->pMapOutlines = NULL; + this->bLoaded = 0; } @@ -834,9 +760,6 @@ //----- (00444810) -------------------------------------------------------- unsigned int IndoorLocation::GetLocationIndex(const char *Str1) { -// const char *v1; // edi@1 -// signed int v2; // esi@1 - for (uint i = 0; i < 11; ++i) if (!_stricmp(Str1, _4E6BDC_loc_names[i])) return i + 1; @@ -849,7 +772,7 @@ if ( uCurrentlyLoadedLevelType == LEVEL_Indoor && (sLightID <= pIndoor->uNumLights - 1) && (sLightID >= 0) ) { if ( bToggle ) - pIndoor->pLights[sLightID].uAtributes &= 0xFFFFFFF7u; + pIndoor->pLights[sLightID].uAtributes &= 0xFFFFFFF7; else pIndoor->pLights[sLightID].uAtributes |= 8; pParty->uFlags |= 2; @@ -1675,9 +1598,9 @@ if (pFaceExtra->uEventID) { if (pFaceExtra->HasEventint()) - pFace->uAttributes |= 0x100000; + pFace->uAttributes |= FACE_UNKNOW; else - pFace->uAttributes &= ~0x100000; + pFace->uAttributes &= ~FACE_UNKNOW; } } @@ -1840,7 +1763,7 @@ void *pRawDLV = nullptr; strcpy(&pFilename[strlen(pFilename) - 4], ".dlv"); File = pNew_LOD->FindContainer(pFilename, 1);//error on D28.dlv - fread(&header, 0x10u, 1, File);//(FILE *)v245); + fread(&header, 0x10, 1, File);//(FILE *)v245); bool _v244 = false; if (header.uVersion != 91969 || header.pMagic[0] != 'm' || @@ -1973,9 +1896,9 @@ if (pFaceExtra->uEventID) { if (pFaceExtra->HasEventint()) - pFace->uAttributes |= 0x100000; + pFace->uAttributes |= FACE_UNKNOW; else - pFace->uAttributes &= ~0x100000; + pFace->uAttributes &= ~FACE_UNKNOW; } } @@ -2169,59 +2092,17 @@ int IndoorLocation::GetSector(int sX, int sY, int sZ) { int v4; // esi@1 - //unsigned __int8 v5; // zf@1 - //unsigned __int8 v6; // sf@1 - //unsigned __int8 v7; // of@1 - //BLVSector *v8; // eax@3 - //int v9; // edi@9 - //int v10; // eax@9 - //int v11; // edx@9 - //int v12; // eax@10 - //unsigned __int16 v13; // ax@12 - //int v14; // edi@14 - //BLVFace *v15; // eax@14 - //BLVFace *v16; // edi@14 - //PolygonType v17; // al@14 - //unsigned __int16 *pVertexIDs; // esi@16 - //Vec3_short_ *v19; // eax@16 - //int v20; // edx@16 - //unsigned __int16 *v21; // esi@17 - //int v22; // edi@19 - //int v23; // edi@20 - //Vec3_short_ *v24; // edx@20 signed int v25; // edx@21 int v26; // ebx@23 - //int v27; // edx@26 - //signed __int64 v28; // qtt@26 - ///Vec3_short_ *v29; // eax@26 - //Vec3_short_ *v30; // edx@26 - //int v31; // edx@26 - //signed int v32; // edi@27 -// signed __int64 v33; // qtt@27 - //Vec3_short_ *v34; // edx@27 - //int v35; // edx@32 int v37; // edi@38 int pSectorID; // ebx@40 int v39; // eax@41 -// BLVFace *pFace; // esi@42 -// PolygonType pPolygonType; // dl@42 -// int v42; // edx@43 int v43[50]; // [sp+Ch] [bp-108h]@1 - //int v44; // [sp+D4h] [bp-40h]@9 - //int v45; // [sp+D8h] [bp-3Ch]@14 - //int v46; // [sp+DCh] [bp-38h]@14 - //int v47; // [sp+E0h] [bp-34h]@19 - //int v48; // [sp+E4h] [bp-30h]@9 - //Vec3_short_ *v49; // [sp+E8h] [bp-2Ch]@19 bool v50; // [sp+ECh] [bp-28h]@19 int v51; // [sp+F0h] [bp-24h]@9 - //unsigned int v52; // [sp+F4h] [bp-20h]@2 int v53; // [sp+F8h] [bp-1Ch]@10 int v54; // [sp+FCh] [bp-18h]@16 int v55; // [sp+100h] [bp-14h]@1 -// int v56; // [sp+104h] [bp-10h]@1 -// int v57; // [sp+108h] [bp-Ch]@16 - //Vec3_short_ *v58; // [sp+10Ch] [bp-8h]@20 int v59; // [sp+110h] [bp-4h]@16 v4 = 0; @@ -2424,13 +2305,13 @@ } //LABEL_12: - if ( this->uAttributes & 0x800000 ) + if ( this->uAttributes & FACE_UNKNOW3 ) { a2->x = -a2->x; a2->y = -a2->y; a2->z = -a2->z; } - if ( this->uAttributes & 0x1000000 ) + if ( this->uAttributes & FACE_UNKNOW4 ) { a3->x = -a3->x; a3->y = -a3->y; @@ -2475,9 +2356,6 @@ int v25; // eax@25 signed __int64 v27; // qtt@27 BLVFaceExtra *v28; // esi@32 -// int v29; // ecx@34 -// int v30; // edx@34 -// unsigned __int64 v31; // qax@34 int v32; // eax@34 Vec3_short_ *v34; // eax@35 int v35; // ecx@35 @@ -2487,11 +2365,6 @@ int v39; // eax@35 int v40; // edx@35 Vec3_short_ *v43; // edi@36 -// unsigned int v49; // ecx@46 -// unsigned __int16 v50; // ax@48 -// unsigned int v51; // eax@51 -// unsigned __int16 v52; // ax@54 -// int v56; // ecx@58 int v57; // eax@58 Vec3_int_ v67; Vec3_int_ v70; @@ -2502,7 +2375,6 @@ int v82; // [sp+44h] [bp-20h]@35 int v83; // [sp+48h] [bp-1Ch]@34 int v84; // [sp+4Ch] [bp-18h]@34 -// int v85; // [sp+50h] [bp-14h]@19 SoundID eDoorSoundID; // [sp+54h] [bp-10h]@1 int v88; // [sp+5Ch] [bp-8h]@18 int v89; // [sp+60h] [bp-4h]@6 @@ -2524,11 +2396,11 @@ { v89 = door->uMoveLength; door->uState = BLVDoor::Open; - if ( !(door->uAttributes & 6) && door->uNumVertices != 0) + if ( !(door->uAttributes & FACE_UNKNOW5) && door->uNumVertices != 0) pAudioPlayer->PlaySound((SoundID)((int)eDoorSoundID + 1), PID(OBJECT_BLVDoor,i), 0, -1, 0, 0, 0, 0); //goto LABEL_18; } - else if (!(door->uAttributes & 6) && door->uNumVertices) + else if (!(door->uAttributes & FACE_UNKNOW5) && door->uNumVertices) pAudioPlayer->PlaySound(eDoorSoundID, PID(OBJECT_BLVDoor, i), 1, -1, 0, 0, 0, 0); } else @@ -2538,14 +2410,14 @@ { v89 = 0; door->uState = BLVDoor::Closed; - if ( !(door->uAttributes & 6) && door->uNumVertices != 0) + if ( !(door->uAttributes & FACE_UNKNOW5) && door->uNumVertices != 0) pAudioPlayer->PlaySound((SoundID)((int)eDoorSoundID + 1), PID(OBJECT_BLVDoor,i), 0, -1, 0, 0, 0, 0); //goto LABEL_18; } else { v89 = door->uMoveLength - v5; - if (!(door->uAttributes & 6) && door->uNumVertices) + if (!(door->uAttributes & FACE_UNKNOW5) && door->uNumVertices) pAudioPlayer->PlaySound(eDoorSoundID, PID(OBJECT_BLVDoor, i), 1, -1, 0, 0, 0, 0); } } @@ -2633,7 +2505,7 @@ face->pVertexUIDs[j] = v76; face->pVertexVIDs[j] = v77; } - if ( face->uAttributes & FACE_UNKNOW3 ) + if ( face->uAttributes & FACE_HAS_EVENT ) v28->sTextureDeltaU -= v39; else { @@ -2643,11 +2515,11 @@ v28->sTextureDeltaU -= v84 + pBitmaps_LOD->pTextures[face->uBitmapID].uTextureWidth; } } - if ( face->uAttributes & 8 ) + if ( face->uAttributes & FACE_UNKNOW6 ) v28->sTextureDeltaV -= v40; else { - if ( face->uAttributes & FACE_UNKNOW7 ) + if ( face->uAttributes & FACE_INDOOR_DOOR ) { if ( face->uBitmapID != -1 ) v28->sTextureDeltaV -= v82 + pBitmaps_LOD->GetTexture(face->uBitmapID)->uTextureHeight; @@ -2684,21 +2556,9 @@ int v4; // eax@8 __int16 v5; // ax@11 signed int v6; // ebx@14 -// signed __int16 v9; // ax@17 signed __int64 v10; // qax@18 -// int v12; // eax@29 -// unsigned __int64 v13; // qax@29 -// int v14; // eax@30 -// unsigned __int64 v15; // qax@30 -// BLVFace *v17; // edx@33 -// int v18; // ecx@33 -// BLVFace *v19; // eax@34 -// int v20; // ecx@46 int v22; // edi@46 -// int v23; // eax@48 unsigned int v24; // eax@51 -// int v25; // eax@52 -// int v26; // ebx@54 int v27; // ST08_4@54 int v28; // edi@54 int v29; // eax@54 @@ -2706,21 +2566,11 @@ int v31; // ebx@62 int v32; // eax@62 int v33; // eax@64 -// unsigned int v34; // ecx@64 -// int v35; // ecx@64 signed int v37; // ebx@85 -// int v39; // ecx@90 -// int v40; // ebx@90 -// PolygonType v41; // al@94 -// int v42; // eax@96 -// __int16 v43; // dx@96 int v44; // ecx@96 int v45; // edi@101 -// unsigned __int8 v49; // zf@103 -// unsigned __int8 v50; // sf@103 AIDirection v52; // [sp+0h] [bp-60h]@75 AIDirection v53; // [sp+1Ch] [bp-44h]@116 -// int v54; // [sp+38h] [bp-28h]@53 unsigned int uSectorID; // [sp+3Ch] [bp-24h]@6 int v56; // [sp+40h] [bp-20h]@6 unsigned int _this; // [sp+44h] [bp-1Ch]@51 @@ -3022,7 +2872,7 @@ pActors[actor_id].uYawAngle = stru_5C6E00->Atan2(pActors[actor_id].vVelocity.x, pActors[actor_id].vVelocity.y); } } - if (pIndoor->pFaces[v37].uAttributes & 0x8000000) + if (pIndoor->pFaces[v37].uAttributes & FACE_UNKNOW1) EventProcessor(pIndoor->pFaceExtras[pIndoor->pFaces[v37].uFaceExtraID].uEventID, 0, 1); } pActors[actor_id].vVelocity.x = fixpoint_mul(58500, pActors[actor_id].vVelocity.x); @@ -3084,11 +2934,8 @@ unsigned int map_id; // eax@8 MapInfo *map_info; // edi@9 int v4; // eax@11 -// char *v14; // esi@49 DecorationDesc *decoration; // eax@54 -// char v22; // cl@64 char v28; // zf@81 -// __int16 v29; // ax@85 signed int v30; // edi@94 int v34[4]; // [sp+3E8h] [bp-2Ch]@96 int v35; // [sp+3F8h] [bp-1Ch]@1 @@ -3335,23 +3182,10 @@ int v13; // ecx@13 signed int v14; // ebx@14 int v15; // eax@16 - //int v16; // edx@19 - //int v17; // ST18_4@19 - //signed int v18; // edx@19 - //signed __int64 v19; // qtt@19 int v21; // eax@27 - //int v22; // ecx@29 signed int v28; // eax@45 int v29; // ebx@47 -// int v30; // edx@49 - //int v31; // ST10_4@49 - //signed int v32; // edx@49 -// signed __int64 v33; // qtt@49 - //signed int v34; // eax@54 - //signed int v35; // esi@56 - //int result; // eax@57 int v38; // edx@62 - //int v44; // [sp+20h] [bp-20h]@10 bool v47; // [sp+24h] [bp-1Ch]@43 bool current_vertices_Y; // [sp+28h] [bp-18h]@10 bool v49; // [sp+28h] [bp-18h]@41 @@ -3557,26 +3391,15 @@ //----- (0043FDED) -------------------------------------------------------- void PrepareActorRenderList_BLV() { -// unsigned __int16 v3; // ax@3 unsigned int v4; // eax@5 int v6; // esi@5 -// unsigned int v7; // eax@7 int v8; // eax@10 SpriteFrame *v9; // eax@16 int v12; // ecx@28 signed __int64 v18; // qtt@36 -// int v19; // ST5C_4@36 -// signed __int64 v20; // qtt@37 -// int v21; // ST5C_4@37 -// signed __int16 v22; // cx@39 -// int v23; // ST50_4@40 -// signed int v24; // ecx@40 int v25; // edx@44 __int16 v26; // ax@44 -// unsigned __int8 v30; // sf@44 -// int a3; // [sp+20h] [bp-34h]@5 int a5a; // [sp+2Ch] [bp-28h]@36 -// int a5b; // [sp+2Ch] [bp-28h]@40 __int16 v41; // [sp+3Ch] [bp-18h]@18 int a6; // [sp+40h] [bp-14h]@34 int v43; // [sp+44h] [bp-10h]@34 @@ -3702,12 +3525,7 @@ unsigned int v6; // eax@12 int v7; // ecx@12 int v9; // ecx@12 -// unsigned __int16 v10; // ax@12 - //int *v11; // eax@20 __int64 v18; // ST5C_4@27 -// signed __int64 v19; // qtt@28 -// int v20; // ST5C_4@28 -// __int16 v22; // ax@29 int a6; // [sp+2Ch] [bp-30h]@12 int v31; // [sp+38h] [bp-24h]@27 signed __int16 v34; // [sp+44h] [bp-18h]@14 @@ -3848,8 +3666,6 @@ int v7; // ebp@10 int v8; // ebx@10 __int16 v9; // di@18 - //int v10; // [sp+10h] [bp-Ch]@1 - //bool v11; // [sp+14h] [bp-8h]@5 BspRenderer_stru0 *node; // [sp+18h] [bp-4h]@1 //Log::Warning(L"sub_4406BC(%u, %u)", a1, uFirstNode); @@ -3902,9 +3718,7 @@ int v9; // edi@5 int v10; // eax@7 SpriteFrame *v11; // eax@7 -// char v16; // zf@18 signed __int64 v20; // qtt@19 -// signed __int64 v21; // qtt@20 Particle_sw particle; // [sp+Ch] [bp-A0h]@3 int v30; // [sp+8Ch] [bp-20h]@7 int a5; // [sp+94h] [bp-18h]@17 @@ -4057,31 +3871,14 @@ //----- (0048653D) -------------------------------------------------------- void stru149::_48653D_frustum_blv(int a2, int a3, int a4, int a5, int a6, int a7)//portal frustum culling { - //stru149 *v7; // esi@1 int v8; // edi@1 int v9; // eax@1 - //int v10; // edx@1 - //int v11; // ecx@1 - //int v12; // eax@1 - //int v13; // ebx@2 - //int v14; // ecx@2 - //int v15; // eax@2 int v16; // ST14_4@3 int v17; // ST10_4@3 - //int v18; // eax@5 int v19; // ST10_4@6 - //int v20; // eax@8 int v21; // ST10_4@9 - //int v22; // eax@10 - //int v23; // ecx@10 - //int v24; // eax@10 - //int result; // eax@10 - //int v26; // [sp+14h] [bp-14h]@1 - //int v27; // [sp+18h] [bp-10h]@1 int v28; // [sp+1Ch] [bp-Ch]@1 int v29; // [sp+24h] [bp-4h]@1 - //int v30; // [sp+30h] [bp+8h]@10 - //int v31; // [sp+3Ch] [bp+14h]@10 v8 = stru_5C6E00->Cos(pGame->pIndoorCameraD3D->sRotationY); v29 = stru_5C6E00->Sin(pGame->pIndoorCameraD3D->sRotationY); @@ -4251,7 +4048,6 @@ int v_4a; // [sp+8Ch] [bp+10h]@65 int v_4b; // [sp+8Ch] [bp+10h]@136 int v_4c; // [sp+8Ch] [bp+10h]@141 -// int v_8; // [sp+90h] [bp+14h]@53 //__debugbreak();срабатывает при стрельбе огненным шаром @@ -4292,13 +4088,9 @@ for ( a5b = 0; a5b < 2; a5b++ ) { if ( a5b ) - { v59 = pIndoor->GetSector(sX, sY, sZ); - } else - { v59 = pIndoor->GetSector(outx, outy, outz); - } //v60 = pIndoor->pSectors; //v61 = 116 * v59; //i = 116 * v59; @@ -4776,14 +4568,9 @@ int v22; // edi@46 int v24; // edx@48 int v26; // eax@55 -// signed int v27; // edi@55 int v29; // edx@57 int v31; // eax@64 -// signed int v32; // edi@64 -// int v34; // eax@66 -// int v35; // dx@66 __int16 v36; // dx@67 - //__int16 v37; // di@67 __int16 v38; // dx@67 int v46; // edx@87 int v49; // esi@93 @@ -5045,16 +4832,10 @@ signed int right_num_vertices; // ebx@41 signed int top_num_vertices; // edi@51 int bottom_num_vertices; // ebx@61 -// signed int v62; // edx@75 -// int v63; // ecx@76 -// int v64; // esi@76 -// int v65; // ecx@83 -// signed int v71; // [sp+14h] [bp-14h]@75 bool current_vertices_flag; // [sp+18h] [bp-10h]@9 -// int thisf; // [sp+18h] [bp-10h]@74 signed int depth_num_vertices; // [sp+1Ch] [bp-Ch]@9 -// int v80; // [sp+1Ch] [bp-Ch]@76 bool next_vertices_flag; // [sp+20h] [bp-8h]@10 + //Доп инфо "Программирование трёхмерных игр для windows" Ламот стр 910 pFace = &pIndoor->pFaces[uFaceID]; @@ -5506,20 +5287,6 @@ int v1; // ebx@1 int v2; // edi@1 double v10; // st7@27 -// unsigned int v12; // eax@49 -// double v13; // st7@50 -// int v17; // eax@62 -// double v18; // st7@62 -// int v19; // ST40_4@62 -// int v20; // eax@65 -// double v21; // st7@65 -// int v22; // ST40_4@65 -// int v23; // eax@66 -// double v24; // st7@66 -// int v25; // ST40_4@66 -// int v26; // eax@67 -// double v27; // st7@67 -// int v28; // ST40_4@67 int new_party_z; // esi@96 int v38; // eax@96 int v39; // ecx@106 @@ -5529,8 +5296,6 @@ int v46; // ecx@133 int v52; // eax@140 int v54; // ebx@146 -// int v63; // [sp-8h] [bp-68h]@75 -// int v65; // [sp-4h] [bp-64h]@75 unsigned int uFaceEvent; // [sp+14h] [bp-4Ch]@1 bool party_running_flag; // [sp+1Ch] [bp-44h]@1 bool bFeatherFall; // [sp+24h] [bp-3Ch]@15 @@ -5994,7 +5759,7 @@ { if ( on_water ) pAudioPlayer->PlaySound(SOUND_RunAlongWater, 804, 1, -1, 0, 0, 0, 0); - else if ( pIndoor->pFaces[uFaceID].uAttributes & FACE_UNKNOW6 )//по ковру + else if ( pIndoor->pFaces[uFaceID].uAttributes & FACE_INDOOR_CARPET )//по ковру pAudioPlayer->PlaySound((SoundID)50, 804, 1, -1, 0, 0, 0, 0); else pAudioPlayer->PlaySound(SOUND_RunAlong3DModel, 804, 1, -1, 0, 0, 0, 0); @@ -6007,7 +5772,7 @@ { if ( on_water ) pAudioPlayer->PlaySound(SOUND_WalkAlongWater, 804, 1, -1, 0, 0, 0, 0); - else if ( pIndoor->pFaces[uFaceID].uAttributes & FACE_UNKNOW6 )//по ковру + else if ( pIndoor->pFaces[uFaceID].uAttributes & FACE_INDOOR_CARPET )//по ковру pAudioPlayer->PlaySound((SoundID)89, 804, 1, -1, 0, 0, 0, 0); else pAudioPlayer->PlaySound(SOUND_WalkAlong3DModel, 804, 1, -1, 0, 0, 0, 0); @@ -6022,13 +5787,13 @@ pParty->uFlags &= ~PARTY_FLAGS_1_FALLING; else pParty->uFlags |= PARTY_FLAGS_1_FALLING; - pParty->uFlags &= ~0x200; + pParty->uFlags &= ~PARTY_FLAGS_1_BURNING; pParty->vPosition.x = new_party_x; pParty->vPosition.z = new_party_z; pParty->vPosition.y = new_party_y; //pParty->uFallSpeed = v89; - if ( !hovering && pIndoor->pFaces[uFaceID].uAttributes & FACE_UNKNOW5 ) - pParty->uFlags |= 0x200; + if ( !hovering && pIndoor->pFaces[uFaceID].uAttributes & FACE_INDOOR_LAVA ) + pParty->uFlags |= PARTY_FLAGS_1_BURNING;//0x200 if (uFaceEvent) EventProcessor(uFaceEvent, 0, 1); }
--- a/Indoor.h Thu Sep 11 17:30:59 2014 +0600 +++ b/Indoor.h Fri Sep 12 18:05:26 2014 +0600 @@ -463,30 +463,35 @@ #define FACE_PORTAL 0x00000001 // portal/two-sided #define FACE_CAN_SATURATE_COLOR 0x00000002 -#define FACE_UNKNOW8 0x00000004 +#define FACE_FLOW_DIAGONAL 0x00000004 // Diagonal flow of the lava or water +#define FACE_UNKNOW5 0x00000006 +#define FACE_UNKNOW6 0x00000008 #define FACE_FLUID 0x00000010 // wavy animated water or lava -#define FACE_UNKNOW9 0x00000020 +#define FACE_FLOW_VERTICAL 0x00000020 // Vertical flow of the lava or water #define FACE_DONT_CACHE_TEXTURE 0x00000040 // do not load face texture if it isn't loaded already #define FACE_UNKNOW4 0x00000080 #define FACE_XY_PLANE 0x00000100 #define FACE_XZ_PLANE 0x00000200 #define FACE_YZ_PLANE 0x00000400 -#define FACE_UNKNOW10 0x00000800 -#define FACE_UNKNOW3 0x00001000 +#define FACE_FLOW_HORIZONTAL 0x00000800 // Horizontal flow of the lava or water +#define FACE_HAS_EVENT 0x00001000 #define FACE_INVISIBLE 0x00002000 #define FACE_TEXTURE_FRAME 0x00004000 // Texture ID is a frameset from TextureFrameTable, otherwise BitmapID #define FACE_OUTLINED 0x00010000 // outline face edges -#define FACE_UNKNOW7 0x00020000 +#define FACE_INDOOR_DOOR 0x00020000 #define FACE_TEXTURE_FLOW 0x00040000 // The texture moves slowly. For horizontal facets only. #define FACE_UNKNOW 0x00100000 -#define FACE_UNKNOW6 0x00200000 +#define FACE_INDOOR_CARPET 0x00200000 #define FACE_INDOOR_SKY 0x00400000 +#define FACE_UNKNOW3 0x00800000 +#define FACE_UNKNOW4 0x01000000 #define FACE_CLICKABLE 0x02000000 // Event can be triggered by clicking on the facet. #define FACE_PRESSURE_PLATE 0x04000000 // Event can be triggered by stepping on the facet. #define FACE_INDICATE 0x06000000 // Event can be triggered by indicating on the facet. +#define FACE_UNKNOW1 0x08000000 #define FACE_UNKNOW2 0x10000000 #define FACE_ETHEREAL 0x20000000 // Untouchable. You can pass through it. -#define FACE_UNKNOW5 0x40000000 +#define FACE_INDOOR_LAVA 0x40000000 #define FACE_PICKED 0x80000000 /* 93 */
--- a/Outdoor.cpp Thu Sep 11 17:30:59 2014 +0600 +++ b/Outdoor.cpp Fri Sep 12 18:05:26 2014 +0600 @@ -35,6 +35,7 @@ #include "GUIWindow.h" #include "Level/Decoration.h" #include "ZlibWrapper.h" +#include "MMT.h" MapStartPoint uLevel_StartingPointType; // weak @@ -2018,7 +2019,7 @@ if (face.sCogTriggeredID) { if (face.HasEventHint()) - face.uAttributes |= FACE_UNKNOW3; + face.uAttributes |= FACE_HAS_EVENT; else face.uAttributes &= 0xFFFFEFFFu; } @@ -4763,7 +4764,11 @@ { if (pWeather->bNight) // night-time fog { - __debugbreak(); // decompilation can be inaccurate, please send savegame to Nomad + if (for_refactoring) + { + MessageBoxA(nullptr, "Nomad: decompilation can be inaccurate, please send savegame to Nomad", "", 0); + __debugbreak(); + } v2 = -(pWeather->bNight != 1); return (v2 & 0xE0E0E1) - 0xE0E0E1; }
--- a/Render.cpp Thu Sep 11 17:30:59 2014 +0600 +++ b/Render.cpp Fri Sep 12 18:05:26 2014 +0600 @@ -8473,19 +8473,19 @@ array_77EC08[pODMRenderParams->uNumPolygons].flags |= 2; if (pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_INDOOR_SKY ) HIBYTE(array_77EC08[pODMRenderParams->uNumPolygons].flags) |= 4; - if ( pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_UNKNOW8 ) + if ( pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_FLOW_DIAGONAL ) HIBYTE(array_77EC08[pODMRenderParams->uNumPolygons].flags) |= 4; else { - if ( pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_UNKNOW9 ) + if ( pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_FLOW_VERTICAL ) HIBYTE(array_77EC08[pODMRenderParams->uNumPolygons].flags) |= 8; } - if (pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_UNKNOW10) + if (pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_FLOW_HORIZONTAL) array_77EC08[pODMRenderParams->uNumPolygons].flags |= 0x2000; else { if (pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_DONT_CACHE_TEXTURE) - HIBYTE(array_77EC08[pODMRenderParams->uNumPolygons].flags) |= 0x10u; + HIBYTE(array_77EC08[pODMRenderParams->uNumPolygons].flags) |= 0x10; } array_77EC08[pODMRenderParams->uNumPolygons].sTextureDeltaU = pOutdoor->pBModels[model_id].pFaces[face_id].sTextureDeltaU; array_77EC08[pODMRenderParams->uNumPolygons].sTextureDeltaV = pOutdoor->pBModels[model_id].pFaces[face_id].sTextureDeltaV; @@ -10490,7 +10490,7 @@ v6 = fixpoint_mul(a2->z, v4->pFacePlane_old.vNormal.z); v7 = v5 + v6 + a4b; //(v16 = v5 + v6 + a4b) == 0; - if (a4->uAttributes & 0x20000000 || !v7 || v7 > 0 && !v4->Portal()) + if (a4->uAttributes & FACE_ETHEREAL || !v7 || v7 > 0 && !v4->Portal()) return 0; v8 = v4->pFacePlane_old.vNormal.z * a1->z; v9 = -(v4->pFacePlane_old.dist + v8 + a1->y * v4->pFacePlane_old.vNormal.y + a1->x * v4->pFacePlane_old.vNormal.x);
--- a/SpriteObject.cpp Thu Sep 11 17:30:59 2014 +0600 +++ b/SpriteObject.cpp Fri Sep 12 18:05:26 2014 +0600 @@ -413,8 +413,25 @@ { bmodel = &pOutdoor->pBModels[(signed int)stru_721530.uFaceID >> 9]; face = &bmodel->pFaces[PID_ID(stru_721530.uFaceID) & 0x3F]; - if ( face->uPolygonType != POLYGON_Floor ) + if ( face->uPolygonType == POLYGON_Floor ) { + pSpriteObjects[uLayingItemID].vPosition.z = bmodel->pVertices.pVertices[face->pVertexIDs[0]].z + 1; + if ( pSpriteObjects[uLayingItemID].vVelocity.x * pSpriteObjects[uLayingItemID].vVelocity.x + + pSpriteObjects[uLayingItemID].vVelocity.y * pSpriteObjects[uLayingItemID].vVelocity.y >= 400 ) + { + if ( face->uAttributes & FACE_UNKNOW2 ) + EventProcessor(face->sCogTriggeredID, 0, 1); + } + else + { + LOWORD(v35) = 0; + pSpriteObjects[uLayingItemID].vVelocity.z = 0; + pSpriteObjects[uLayingItemID].vVelocity.x = 0; + pSpriteObjects[uLayingItemID].vVelocity.y = v35; + } + } + else + { v56 = abs(face->pFacePlane.vNormal.x * pSpriteObjects[uLayingItemID].vVelocity.x + face->pFacePlane.vNormal.y * pSpriteObjects[uLayingItemID].vVelocity.y + face->pFacePlane.vNormal.z * pSpriteObjects[uLayingItemID].vVelocity.z) >> 16; @@ -435,22 +452,9 @@ v37 = fixpoint_mul(32000, v36); } pSpriteObjects[uLayingItemID].vVelocity.z += v37; - if ( BYTE3(face->uAttributes) & 0x10 ) + if ( face->uAttributes & FACE_UNKNOW2 ) EventProcessor(face->sCogTriggeredID, 0, 1); - goto LABEL_74; - } - pSpriteObjects[uLayingItemID].vPosition.z = bmodel->pVertices.pVertices[face->pVertexIDs[0]].z + 1; - if ( pSpriteObjects[uLayingItemID].vVelocity.x * pSpriteObjects[uLayingItemID].vVelocity.x - + pSpriteObjects[uLayingItemID].vVelocity.y * pSpriteObjects[uLayingItemID].vVelocity.y >= 400 ) - { - if ( face->uAttributes & 0x10000000 ) - EventProcessor(face->sCogTriggeredID, 0, 1); - goto LABEL_74; - } - LOWORD(v35) = 0; - pSpriteObjects[uLayingItemID].vVelocity.z = 0; - pSpriteObjects[uLayingItemID].vVelocity.x = 0; - pSpriteObjects[uLayingItemID].vVelocity.y = v35; + } } LABEL_74: pSpriteObjects[uLayingItemID].vVelocity.x = fixpoint_mul(58500, pSpriteObjects[uLayingItemID].vVelocity.x);
--- a/UI/UICharacter.cpp Thu Sep 11 17:30:59 2014 +0600 +++ b/UI/UICharacter.cpp Fri Sep 12 18:05:26 2014 +0600 @@ -747,7 +747,7 @@ char *v181; // [sp-8h] [bp-54h]@337 int item_Y; // [sp+10h] [bp-3Ch]@38 int pBodyComplection; // [sp+24h] [bp-28h]@6 - signed int v245; // [sp+34h] [bp-18h]@361 + bool two_handed_left_fist; // [sp+34h] [bp-18h]@361 signed int IsDwarf; // [sp+40h] [bp-Ch]@4 pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE); @@ -1129,15 +1129,7 @@ } } } - //---------------------------------------------(Hand2/Рука2)-------------------------------------------------- - if ( player->GetItem(&PlayerEquipment::uMainHand) ) - { - if ( player->GetMainHandItem()->GetItemEquipType() == EQUIP_TWO_HANDED - || player->GetMainHandItem()->GetPlayerSkillType() == PLAYER_SKILL_SPEAR - && !player->GetItem(&PlayerEquipment::uShield) ) - pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0], - pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlaus[uPlayerID - 1])); - } + //--------------------------------(Shoulder/Плечи)--------------------------------------------- if (player->GetItem(&PlayerEquipment::uArmor)) { @@ -1458,7 +1450,7 @@ { //v151 = item->uItemID - 400; item_X = 596; - v245 = 1; + two_handed_left_fist = true; switch ( item->uItemID ) { case 400: @@ -1479,7 +1471,7 @@ } else { - v245 = 0; + two_handed_left_fist = false; item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[item->uItemID].uEquipX; item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[item->uItemID].uEquipY; } @@ -1492,7 +1484,7 @@ { //v160 = (char *)pIcons_LOD->GetTexture(v153); if ( !(item->uAttributes & ITEM_IDENTIFIED) ) - pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v153)); + pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v153)); else pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v153)); } @@ -1516,17 +1508,26 @@ } pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v153), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); - if ( v245 ) - pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[pBodyComplection][0], + } + if ( two_handed_left_fist )//two-handed - left fist/двуручие - левая кисть + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdollLeftEmptyHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlhs[uPlayerID - 1])); - } if ( !bRingsShownInCharScreen ) pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v153), player->pEquipment.uShield); } } - //--------------------------------------------------------(RightHand/Правая рука)-------------------------------------------------- + //--------------------------------------------------------(RightHand/Правая кисть)-------------------------------------------------- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_RightHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_RightHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_drhs[uPlayerID - 1])); - //--------------------------------------------------------(LeftHand/Левая рука)---------------------------------------------------- + //---------------------------------------------(two-handed - hand/Двуручие - рука)-------------------------------------------------- + if ( player->GetItem(&PlayerEquipment::uMainHand) ) + { + if ( player->GetMainHandItem()->GetItemEquipType() == EQUIP_TWO_HANDED + || player->GetMainHandItem()->GetPlayerSkillType() == PLAYER_SKILL_SPEAR + && !player->GetItem(&PlayerEquipment::uShield) ) + pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0], + pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlaus[uPlayerID - 1])); + } + //--------------------------------------------------------(two-handed - fist/двуручие - кисть)---------------------------------------------------- if ( player->GetItem(&PlayerEquipment::uMainHand)) { item = player->GetMainHandItem();
--- a/UI/UIHouses.cpp Thu Sep 11 17:30:59 2014 +0600 +++ b/UI/UIHouses.cpp Fri Sep 12 18:05:26 2014 +0600 @@ -56,8 +56,8 @@ }; #pragma pack(pop) stru365_travel_info transport_schedule[35] = // 004F09B0 -{ - {MAP_STEADWICK, {1, 0, 1, 0, 1, 0, 0}, 2, -18048, 4636, 833, 1536, 0}, +{// location name days x y z + {MAP_STEADWICK, {1, 0, 1, 0, 1, 0, 0}, 2, -18048, 4636, 833, 1536, 0},//for stable {MAP_PIERPONT, {0, 1, 0, 1, 0, 1, 0}, 2, -2527, -6773, 1153, 896, 0}, {MAP_TATALIA, {1, 0, 1, 0, 1, 0, 0}, 2, 4730, -10580, 320, 1024, 0}, {MAP_HARMONDALE, {0, 1, 0, 1, 0, 1, 0}, 2, -5692, 11137, 1, 1024, 0}, @@ -71,7 +71,7 @@ {MAP_STEADWICK, {1, 0, 1, 0, 1, 0, 1}, 3, -18048, 4636, 833, 1536, 0}, {MAP_HARMONDALE, {0, 1, 0, 0, 0, 1, 0}, 5, -5692, 11137, 1, 1024, 0}, {MAP_STEADWICK, {0, 1, 0, 1, 0, 1, 0}, 2, -18048, 4636, 833, 1536, 0}, - {MAP_PIERPONT, {0, 1, 0, 1, 0, 1, 0}, 3, -2527, -16007, 1153, 896, 0}, + {MAP_PIERPONT, {0, 1, 0, 1, 0, 1, 0}, 3, -2527, -6773, 1153, 896, 0}, {MAP_DEYJA, {0, 0, 1, 0, 0, 0, 1}, 5, 7227, -16007, 2625, 640, 0}, {MAP_TATALIA, {0, 1, 0, 1, 0, 1, 0}, 2, -2183, -6941, 97, 0, 0}, {MAP_AVLEE, {1, 0, 0, 0, 1, 0, 0}, 4, 7913, 9476, 193, 0, 0}, @@ -80,7 +80,7 @@ {MAP_AVLEE, {0, 1, 0, 1, 0, 1, 0}, 3, 7913, 9476, 193, 0, 0}, {MAP_BRAKADA_DESERT, {1, 0, 1, 0, 0, 0, 0}, 6, 19171, -19722, 193, 1024, 0}, {MAP_TATALIA, {1, 0, 1, 0, 1, 0, 0}, 4, -2183, -6941, 97, 0, 0}, - {MAP_PIERPONT, {0, 0, 0, 0, 0, 1, 0}, 6, -709, -14087, 193, 1024, 0}, + {MAP_PIERPONT, {0, 0, 0, 0, 0, 1, 0}, 6, -709, -14087, 193, 1024, 0},//for boat {MAP_STEADWICK, {0, 0, 0, 0, 0, 0, 1}, 6, -10471, 13497, 193, 1536, 0}, {MAP_EVENMORN_ISLE, {0, 1, 0, 1, 0, 0, 0}, 1, 15616, 6390, 193, 1536, PARTY_QUEST_EVENMORN_MAP_FOUND}, {MAP_BRAKADA_DESERT, {0, 1, 0, 1, 0, 0, 0}, 1, 19171, -19722, 193, 1024, 0}, @@ -91,7 +91,7 @@ {MAP_STEADWICK, {0, 1, 0, 0, 0, 1, 0}, 4, -10471, 13497, 193, 1536, 0}, {MAP_PIERPONT, {1, 0, 1, 0, 1, 0, 0}, 3, -709, -14087, 193, 1024, 0}, {MAP_TATALIA, {0, 0, 0, 1, 0, 0, 0}, 5, -2183, -6941, 97, 0, 0}, - {MAP_ARENA, {0, 0, 0, 0, 0, 0, 1}, 4, 3844, 2906, 193, 512, 0} + {MAP_ARENA, {0, 0, 0, 0, 0, 0, 1}, 4, 3844, 2906, 193, 512, 0} }; unsigned char transport_routes[20][4] =
--- a/UI/UiGame.cpp Thu Sep 11 17:30:59 2014 +0600 +++ b/UI/UiGame.cpp Fri Sep 12 18:05:26 2014 +0600 @@ -1261,7 +1261,7 @@ else { pFace = &pIndoor->pFaces[pickedObjectID]; - if ( BYTE3(pFace->uAttributes) & 6 ) + if ( pFace->uAttributes & FACE_INDICATE ) { unsigned short eventId = pIndoor->pFaceExtras[pFace->uFaceExtraID].uEventID; if (eventId != 0) @@ -1290,7 +1290,7 @@ } else if ( PID_TYPE(pickedObjectPID) == OBJECT_Actor ) { - if ( pickedObjectPID >= 0x2000000u ) + if ( pickedObjectPID >= 0x2000000 ) { pMouse->uPointingObjectID = 0; if ( uLastPointedObjectID != 0 )