Mercurial > mm7
changeset 675:92c1e1250e7c
Merge
author | Nomad |
---|---|
date | Thu, 14 Mar 2013 23:44:03 +0200 |
parents | c508daac2c07 (current diff) 28109e4eee44 (diff) |
children | ecfb1b3c9a39 |
files | mm7_3.cpp |
diffstat | 11 files changed, 114 insertions(+), 119 deletions(-) [+] |
line wrap: on
line diff
--- a/Indoor.cpp Thu Mar 14 23:26:01 2013 +0200 +++ b/Indoor.cpp Thu Mar 14 23:44:03 2013 +0200 @@ -275,15 +275,15 @@ for (uint i = 0; i < pBspRenderer->uNumFaceIDs; ++i) { v2 = pBspRenderer->pFaceIDs[2 * i + 1]; - if ( pBspRenderer->field_FA8[v2].std__vector_0007A8 == -1 ) + if ( pBspRenderer->pSectors[v2].std__vector_0007A8 == -1 ) { v6 = 0; v3 = 0; } else { - v3 = pBspRenderer->field_FA8[v2].std__vector_0007AC; - v6 = pBspRenderer->field_FA8[v2].pVertices; + v3 = pBspRenderer->pSectors[v2].std__vector_0007AC; + v6 = pBspRenderer->pSectors[v2].pVertices; } IndoorLocation::ExecDraw_d3d(pBspRenderer->pFaceIDs[2 * i], v3, 4, v6); } @@ -293,7 +293,7 @@ for (uint j = 0; j < pBspRenderer->uNumFaceIDs; ++j ) { v5 = pBspRenderer->pFaceIDs[2 * j]; - pBLVRenderParams->field_7C = &pBspRenderer->field_FA8[pBspRenderer->pFaceIDs[2 * j + 1]].field_C; + pBLVRenderParams->field_7C = &pBspRenderer->pSectors[pBspRenderer->pFaceIDs[2 * j + 1]].field_C; IndoorLocation::ExecDraw_sw(v5); } } @@ -322,17 +322,17 @@ { v1 = pBLVRenderParams->pRenderTarget; v6 = 0; - if ( (signed int)pBspRenderer->std__vector_000FA8 > 0 ) + if ( (signed int)pBspRenderer->pNumSectors > 0 ) { v7 = 0; - v2 = (char *)&pBspRenderer->field_FA8[0].field_C._viewport_space_w; + v2 = (char *)&pBspRenderer->pSectors[0].field_C._viewport_space_w; do { v3 = *((int *)v2 - 1); v4 = pRenderer->uTargetSurfacePitch * *((int *)v2 - 1); if ( v3 <= *(int *)v2 ) { - v5 = (char *)&pBspRenderer->field_FA8[0].field_C.array_3D8[v3 + v7]; + v5 = (char *)&pBspRenderer->pSectors[0].field_C.array_3D8[v3 + v7]; do { v1[v4 + *((short *)v5 - 480)] = 255; @@ -347,7 +347,7 @@ v7 += 1126; v2 += 2252; } - while ( v6 < (signed int)pBspRenderer->std__vector_000FA8 ); + while ( v6 < (signed int)pBspRenderer->pNumSectors ); } } } @@ -1276,14 +1276,14 @@ //v3 = uFaceID; //v4 = this; //v5 = &pIndoor->pFaces[uFaceID]; - field_FA8[std__vector_000FA8].std__vector_0007A8 = -1; + pSectors[pNumSectors].std__vector_0007A8 = -1; //v39 = &pIndoor->pFaces[uFaceID]; auto pFace = &pIndoor->pFaces[uFaceID]; if (pFace->TwoSided()) { - auto p = &field_FA8[a2]; + auto p = &pSectors[a2]; //v6 = (int)((char *)this + 2252 * a2); //a0 = v6; if (p->uFaceID == uFaceID) @@ -1301,20 +1301,20 @@ + pBLVRenderParams->vPartyPos.z * pFace->pFacePlane_old.vNormal.z) <= 589824 ) { v7 = pFace->uSectorID; - if ( field_FA8[0].uSectorID == v7 ) + if ( pSectors[0].uSectorID == v7 ) v7 = pFace->uBackSectorID; - field_FA8[std__vector_000FA8].uSectorID = v7; - field_FA8[std__vector_000FA8].uFaceID = uFaceID; - field_FA8[std__vector_000FA8].uViewportX = pBLVRenderParams->uViewportX; - field_FA8[std__vector_000FA8].uViewportZ = pBLVRenderParams->uViewportZ; - field_FA8[std__vector_000FA8].uViewportY = pBLVRenderParams->uViewportY; - field_FA8[std__vector_000FA8].uViewportW = pBLVRenderParams->uViewportW; - field_FA8[std__vector_000FA8++].field_C._43F9E1( + pSectors[pNumSectors].uSectorID = v7; + pSectors[pNumSectors].uFaceID = uFaceID; + pSectors[pNumSectors].uViewportX = pBLVRenderParams->uViewportX; + pSectors[pNumSectors].uViewportZ = pBLVRenderParams->uViewportZ; + pSectors[pNumSectors].uViewportY = pBLVRenderParams->uViewportY; + pSectors[pNumSectors].uViewportW = pBLVRenderParams->uViewportW; + pSectors[pNumSectors++].field_C._43F9E1( pBLVRenderParams->uViewportX, pBLVRenderParams->uViewportY, pBLVRenderParams->uViewportZ, pBLVRenderParams->uViewportW); - sub_440639(std__vector_000FA8 - 1); + sub_440639(pNumSectors - 1); return; } //v5 = v39; @@ -1361,26 +1361,24 @@ a2 <= p->uViewportZ && v12 >= p->uViewportY && v37 <= p->uViewportW && - sub_424829(v10, &field_FA8[std__vector_000FA8].field_C, &p->field_C, uFaceID)) + sub_424829(v10, &pSectors[pNumSectors].field_C, &p->field_C, uFaceID)) { //v17 = v39; v18 = pFace->uSectorID; if (p->uSectorID == v18 ) v18 = pFace->uBackSectorID; - field_FA8[std__vector_000FA8].uSectorID = v18; - field_FA8[std__vector_000FA8].uFaceID = uFaceID; - field_FA8[std__vector_000FA8].uViewportX = pBLVRenderParams->uViewportX; - field_FA8[std__vector_000FA8].uViewportZ = pBLVRenderParams->uViewportZ; - field_FA8[std__vector_000FA8].uViewportY = pBLVRenderParams->uViewportY; - field_FA8[std__vector_000FA8].uViewportW = pBLVRenderParams->uViewportW; + pSectors[pNumSectors].uSectorID = v18; + pSectors[pNumSectors].uFaceID = uFaceID; + pSectors[pNumSectors].uViewportX = pBLVRenderParams->uViewportX; + pSectors[pNumSectors].uViewportZ = pBLVRenderParams->uViewportZ; + pSectors[pNumSectors].uViewportY = pBLVRenderParams->uViewportY; + pSectors[pNumSectors].uViewportW = pBLVRenderParams->uViewportW; //v38 = pGame->pStru10Instance; //a0a = pGame->pIndoorCameraD3D; if (p->std__vector_0007A8 == -1 ) { - v29 = pGame->pStru10Instance->_49C681_DrawDebugStuff( - pFace, - field_FA8[std__vector_000FA8].std__vector_0007AC, - field_FA8[std__vector_000FA8].pVertices); + v29 = pGame->pStru10Instance->_49C681_DrawDebugStuff(pFace, pSectors[pNumSectors].std__vector_0007AC, + pSectors[pNumSectors].pVertices); } else { @@ -1415,21 +1413,18 @@ 4, 0, 0); - v29 = pGame->pStru10Instance->_49C5DA( - pFace, - static_subAddFaceToRenderList_d3d_stru_F79E08, - &a2, - field_FA8[std__vector_000FA8].std__vector_0007AC, - field_FA8[std__vector_000FA8].pVertices); + v29 = pGame->pStru10Instance->_49C5DA(pFace, static_subAddFaceToRenderList_d3d_stru_F79E08, &a2, + pSectors[pNumSectors].std__vector_0007AC, + pSectors[pNumSectors].pVertices); } if ( v29 ) { - field_FA8[std__vector_000FA8].std__vector_0007A8 = uFaceID; - v30 = std__vector_000FA8; + pSectors[pNumSectors].std__vector_0007A8 = uFaceID; + v30 = pNumSectors; if ( v30 < 150 ) { v31 = v30 + 1; - std__vector_000FA8 = v31; + pNumSectors = v31; sub_440639(v31 - 1); } } @@ -1497,20 +1492,20 @@ + pBLVRenderParams->vPartyPos.z * v4->pFacePlane_old.vNormal.z) <= 589824 ) { v6 = v21->uSectorID; - if ( v3->field_FA8[0].uSectorID == v6 ) + if ( v3->pSectors[0].uSectorID == v6 ) v6 = v21->uBackSectorID; - v3->field_FA8[v3->std__vector_000FA8].uSectorID = v6; - v3->field_FA8[v3->std__vector_000FA8].uFaceID = uFaceID; - v3->field_FA8[v3->std__vector_000FA8].uViewportX = LOWORD(pBLVRenderParams->uViewportX); - v3->field_FA8[v3->std__vector_000FA8].uViewportZ = LOWORD(pBLVRenderParams->uViewportZ); - v3->field_FA8[v3->std__vector_000FA8].uViewportY = LOWORD(pBLVRenderParams->uViewportY); - v3->field_FA8[v3->std__vector_000FA8].uViewportW = LOWORD(pBLVRenderParams->uViewportW); - v3->field_FA8[v3->std__vector_000FA8++].field_C._43F9E1( + v3->pSectors[v3->pNumSectors].uSectorID = v6; + v3->pSectors[v3->pNumSectors].uFaceID = uFaceID; + v3->pSectors[v3->pNumSectors].uViewportX = LOWORD(pBLVRenderParams->uViewportX); + v3->pSectors[v3->pNumSectors].uViewportZ = LOWORD(pBLVRenderParams->uViewportZ); + v3->pSectors[v3->pNumSectors].uViewportY = LOWORD(pBLVRenderParams->uViewportY); + v3->pSectors[v3->pNumSectors].uViewportW = LOWORD(pBLVRenderParams->uViewportW); + v3->pSectors[v3->pNumSectors++].field_C._43F9E1( SLOWORD(pBLVRenderParams->uViewportX), pBLVRenderParams->uViewportY, SLOWORD(pBLVRenderParams->uViewportZ), pBLVRenderParams->uViewportW); - v7 = v3->std__vector_000FA8 - 1; + v7 = v3->pNumSectors - 1; goto LABEL_14; } v4 = v21; @@ -1556,22 +1551,22 @@ && v23 <= *((short *)v20 + 2007) && v12 >= *((short *)v20 + 2006) && v22 <= *((short *)v20 + 2008) - && sub_424829(v10, &v3->field_FA8[v3->std__vector_000FA8].field_C, (BspRenderer_stru2 *)(v20 + 4020), uFaceID) ) + && sub_424829(v10, &v3->pSectors[v3->pNumSectors].field_C, (BspRenderer_stru2 *)(v20 + 4020), uFaceID) ) { v16 = v21->uSectorID; if ( *((short *)v20 + 2004) == v16 ) v16 = v21->uBackSectorID; - v3->field_FA8[v3->std__vector_000FA8].uSectorID = v16; - v3->field_FA8[v3->std__vector_000FA8].uFaceID = uFaceID; - v3->field_FA8[v3->std__vector_000FA8].uViewportX = LOWORD(pBLVRenderParams->uViewportX); - v3->field_FA8[v3->std__vector_000FA8].uViewportZ = LOWORD(pBLVRenderParams->uViewportZ); - v3->field_FA8[v3->std__vector_000FA8].uViewportY = LOWORD(pBLVRenderParams->uViewportY); - v3->field_FA8[v3->std__vector_000FA8].uViewportW = LOWORD(pBLVRenderParams->uViewportW); - v17 = v3->std__vector_000FA8; + v3->pSectors[v3->pNumSectors].uSectorID = v16; + v3->pSectors[v3->pNumSectors].uFaceID = uFaceID; + v3->pSectors[v3->pNumSectors].uViewportX = LOWORD(pBLVRenderParams->uViewportX); + v3->pSectors[v3->pNumSectors].uViewportZ = LOWORD(pBLVRenderParams->uViewportZ); + v3->pSectors[v3->pNumSectors].uViewportY = LOWORD(pBLVRenderParams->uViewportY); + v3->pSectors[v3->pNumSectors].uViewportW = LOWORD(pBLVRenderParams->uViewportW); + v17 = v3->pNumSectors; if ( v17 < 150 ) { v18 = v17 + 1; - v3->std__vector_000FA8 = v18; + v3->pNumSectors = v18; v7 = v18 - 1; LABEL_14: sub_440639(v7); @@ -1611,7 +1606,7 @@ if ( v1 < (signed int)pIndoor->uNumFaces ) { v2 = pBspRenderer->pFaceIDs[2 * i]; - pBLVRenderParams->field_7C = &pBspRenderer->field_FA8[pBspRenderer->pFaceIDs[2 * i + 1]].field_C; + pBLVRenderParams->field_7C = &pBspRenderer->pSectors[pBspRenderer->pFaceIDs[2 * i + 1]].field_C; v3 = sub_423B5D(v2); if ( v3 ) { @@ -3338,7 +3333,7 @@ v51 = v40->zCalc2; v56 = (unsigned __int64)(v51 * (signed __int64)(sY << 16)) >> 16; v42 = (v56 + v40->zCalc3 + v57 + 32768) >> 16; - goto LABEL_46; + v39 = sZ - v42; } LABEL_47: if ( v39 >= 0 ) @@ -3354,7 +3349,6 @@ return v38; } v42 = this->pVertices[*v40->pVertexIDs].z; -LABEL_46: v39 = sZ - v42; goto LABEL_47; }
--- a/Indoor_stuff.h Thu Mar 14 23:26:01 2013 +0200 +++ b/Indoor_stuff.h Thu Mar 14 23:44:03 2013 +0200 @@ -75,7 +75,7 @@ // (void (__thiscall *)(void *))stru170_stru0::stru170_stru0, // (void (__thiscall *)(void *))stru170_stru0::dtor); uNumFaceIDs = 0; - std__vector_000FA8 = 0; + pNumSectors = 0; uNumVisibleNotEmptySectors = 0; } @@ -85,10 +85,10 @@ void DrawFaceOutlines(); unsigned int uNumFaceIDs; - __int16 pFaceIDs[150]; - char field_130[3700]; - unsigned int std__vector_000FA8; - BspRenderer_stru0 field_FA8[150]; + __int16 pFaceIDs[2000]; + //char field_130[3700]; + unsigned int pNumSectors; + BspRenderer_stru0 pSectors[150]; unsigned int uNumVisibleNotEmptySectors; unsigned __int16 pVisibleSectorIDs_toDrawDecorsActorsEtcFrom[6]; };
--- a/NPC.cpp Thu Mar 14 23:26:01 2013 +0200 +++ b/NPC.cpp Thu Mar 14 23:44:03 2013 +0200 @@ -456,8 +456,8 @@ decode_step=0; do { - while (*test_string == '\t') // some steps are separated by multiple \t's - ++test_string; + //while (*test_string == '\t') // some steps are separated by multiple \t's + //++test_string; c = *(unsigned char*)test_string; temp_str_len = 0; @@ -492,7 +492,7 @@ } else { - if (decode_step) + if (!decode_step) break_loop = true; } ++decode_step; @@ -676,6 +676,12 @@ pNPCDataBuff->Location2D = uLocation2D; pNPCDataBuff->field_24 = 1; pNPCDataBuff->joins = 1; + pNPCDataBuff->evt_A = 0; + pNPCDataBuff->evt_B = 0; + pNPCDataBuff->evt_C = 0; + pNPCDataBuff->evt_D = 0; + pNPCDataBuff->evt_E = 0; + pNPCDataBuff->evt_F = 0; } //----- (00476387) --------------------------------------------------------
--- a/Party.cpp Thu Mar 14 23:26:01 2013 +0200 +++ b/Party.cpp Thu Mar 14 23:44:03 2013 +0200 @@ -974,7 +974,7 @@ memset(hireling, 0, sizeof(*hireling)); pParty->field_709 = 0; - sub_44A56A(); + Party__CountHirelings(); viewparams->bRedrawGameUI = 1; } }
--- a/Player.cpp Thu Mar 14 23:26:01 2013 +0200 +++ b/Player.cpp Thu Mar 14 23:44:03 2013 +0200 @@ -3391,7 +3391,7 @@ return 1; } if ( HasItemEquipped((ITEM_EQUIP_TYPE)a2) - && *(int *)&this->pInventoryItems[*(&v4->pEquipment.uOffHand + v3)-1] == a1 ) + && *(int *)&this->pInventoryItems[*(&this->pEquipment.uOffHand + v3)-1] == a1 ) return 1; return 0; } @@ -8304,7 +8304,7 @@ case VAR_NPCs2: pParty->field_709 = 0; LOBYTE(pNPCStats->pNewNPCData[var_value].uFlags) |= 0x80u; - sub_44A56A(); + Party__CountHirelings(); viewparams->bRedrawGameUI = 1; break; case VAR_NumSkillPoints: @@ -9261,7 +9261,7 @@ case VAR_NPCs2: pParty->field_709 = 0; LOBYTE(pNPCStats->pNewNPCData[val].uFlags) |= 0x80u; - sub_44A56A(); + Party__CountHirelings(); viewparams->bRedrawGameUI = 1; break; case VAR_NumSkillPoints: @@ -9377,7 +9377,7 @@ { pParty->field_709 = 0; LOBYTE(pNPCStats->pNewNPCData[(int)pValue].uFlags) &= 0x7Fu; - sub_44A56A(); + Party__CountHirelings(); viewparams->bRedrawGameUI = 1; } break; @@ -9404,7 +9404,7 @@ if ( pParty->pHirelings[1].uProfession == pValue ) memset(&pParty->pHirelings[1], 0, 0x4Cu); pParty->field_709 = 0; - sub_44A56A(); + Party__CountHirelings(); break; case 243: v17 = (char *)&this->uSkillPoints;
--- a/UIHouses.cpp Thu Mar 14 23:26:01 2013 +0200 +++ b/UIHouses.cpp Thu Mar 14 23:44:03 2013 +0200 @@ -1015,17 +1015,17 @@ *(float *)&v83 = v2; *(float *)&v89 = v2 * v2; v3 = (signed __int64)(*(float *)&v89 * 0.1); - v4 = v3 * (100 - pPlayer->GetMerchant()) / 100; - if ( v4 < v3 / 3 ) - v4 = v3 / 3; + pItemNum = v3 * (100 - pPlayer->GetMerchant()) / 100; + if ( pItemNum < v3 / 3 ) + pItemNum = v3 / 3; v5 = 1; - pOutString = (GUIFont *)v4; - if ( v4 <= 0 ) + pOutString = (GUIFont *)pItemNum; + if ( pItemNum <= 0 ) pOutString = (GUIFont *)1; v6 = (signed __int64)(*(float *)&v89 * *(float *)&v83 * 0.0099999998); v7 = v6 * (100 - pPlayer->GetMerchant()) / 100; if ( v7 < v6 / 3 ) - v7 = v6 / 3; + v7 = v6 / 3; v83 = v7; if ( v7 <= 0 ) { @@ -1059,19 +1059,16 @@ strcat(v77, "\n \n"); v75[0] = 0; pTextHeight = 0; - v31 = (signed int)window_SpeakInHouse->ptr_1C; - if ( v31 >= 108 && v31 <= 120 ) + if ( (signed int)window_SpeakInHouse->ptr_1C >= 108 && (signed int)window_SpeakInHouse->ptr_1C <= 120 ) { sprintf(v75, "\xC" "%05d", pDialogueWindow->pCurrentPosActiveItem == 5 ? pColorYellow : pColorWhite); strcat(v75, pGlobalTXT_LocalizationStrings[611]); // Play Arcomage pTextHeight = pFontArrus->CalcTextHeight(v75, &dialog_window, 0, 0); } - v34 = pDialogueWindow->pStartingPosActiveItem; - v35 = v34 + pDialogueWindow->pNumPresenceButton; + pNumActiveItem = pDialogueWindow->pStartingPosActiveItem; v36 = LOBYTE(pFontArrus->uFontHeight) - 3; v37 = -pDialogueWindow->pNumPresenceButton < 0; - pOutString = (GUIFont *)pDialogueWindow->pStartingPosActiveItem; - if ( !(v37 ^ v34 < v35) ) + if ( !(v37 ^ pNumActiveItem < pNumActiveItem + pDialogueWindow->pNumPresenceButton) ) { sprintf(pTmpBuf, "%s%s%s%s", Dest, a1, v77, v75); dialog_window.DrawTitleText(pFontArrus, 0, 146, 0, pTmpBuf, 3); @@ -1079,7 +1076,7 @@ } while ( 1 ) { - pButton = pDialogueWindow->GetControl((unsigned int)pOutString); + pButton = pDialogueWindow->GetControl(pNumActiveItem); if ( pButton->uControlParam == 15 ) { v46 = pTextHeight; @@ -1115,8 +1112,8 @@ v41 = v39 + v40 - 1; pButton->uW = v41; } - pOutString = (GUIFont *)((char *)pOutString + 1); - if ( (signed int)pOutString >= pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem ) + pNumActiveItem++; + if ( pNumActiveItem >= pDialogueWindow->pNumPresenceButton + pDialogueWindow->pStartingPosActiveItem ) { sprintf(pTmpBuf, "%s%s%s%s", &Dest, &a1, &v77, &v75); dialog_window.DrawTitleText(pFontArrus, 0, 146, 0, pTmpBuf, 3); @@ -1517,7 +1514,7 @@ do { // if ( pParty->field_777C[9 * (int)&v48[3 * (unsigned int)window_SpeakInHouse->ptr_1C]] ) - if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][(int)v48].uItemID); + if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][(int)v48].uItemID) { v49 = word_F8B158[(signed int)v48]; v50 = ItemsInShopTexture[(signed int)v48]; @@ -2440,7 +2437,6 @@ } } - //----- (004BA928) -------------------------------------------------------- void __cdecl ArmorShopDialog() {
--- a/mm7_2.cpp Thu Mar 14 23:26:01 2013 +0200 +++ b/mm7_2.cpp Thu Mar 14 23:44:03 2013 +0200 @@ -1757,8 +1757,8 @@ // v31 = 9 * (v29 - 1 + 12 * (int)v30); if ( dialog_menu_id == 2 ) { - v32 = (ItemGen *)&pParty->StandartItemsInShops[(int)v30][v29]; - _this = (ItemGen *)&pParty->StandartItemsInShops[(int)v30][v29]; + v32 = (ItemGen *)&pParty->StandartItemsInShops[(int)v30][v29-1]; + _this = (ItemGen *)&pParty->StandartItemsInShops[(int)v30][v29-1]; } else {
--- a/mm7_3.cpp Thu Mar 14 23:26:01 2013 +0200 +++ b/mm7_3.cpp Thu Mar 14 23:44:03 2013 +0200 @@ -10922,7 +10922,7 @@ } //----- (00486B4E) -------------------------------------------------------- -char __fastcall sr_sub_486B4E_push_outdoor_edges(RenderVertexSoft *a1, int *a2, int *a3, stru148 *a4) +char __fastcall sr_sub_486B4E_push_outdoor_edges(RenderVertexSoft *a1, int *a2, int *a3, stru148 *a4)//maybe DrawPolygonSW { stru148 *v4; // esi@1 RenderVertexSoft *v5; // edi@1 @@ -11148,19 +11148,19 @@ if (pBLVRenderParams->uPartySectorID) { - pBspRenderer->field_FA8[0].uSectorID = pBLVRenderParams->uPartySectorID; - pBspRenderer->field_FA8[0].uViewportW = pBLVRenderParams->uViewportW; - pBspRenderer->field_FA8[0].uViewportZ = pBLVRenderParams->uViewportZ; - pBspRenderer->field_FA8[0].uViewportY = pBLVRenderParams->uViewportY; - pBspRenderer->field_FA8[0].uViewportX = pBLVRenderParams->uViewportX; - pBspRenderer->field_FA8[0].field_C._43F9E1( + pBspRenderer->pSectors[0].uSectorID = pBLVRenderParams->uPartySectorID; + pBspRenderer->pSectors[0].uViewportW = pBLVRenderParams->uViewportW; + pBspRenderer->pSectors[0].uViewportZ = pBLVRenderParams->uViewportZ; + pBspRenderer->pSectors[0].uViewportY = pBLVRenderParams->uViewportY; + pBspRenderer->pSectors[0].uViewportX = pBLVRenderParams->uViewportX; + pBspRenderer->pSectors[0].field_C._43F9E1( pBLVRenderParams->uViewportX, pBLVRenderParams->uViewportY, pBLVRenderParams->uViewportZ, pBLVRenderParams->uViewportW); - pBspRenderer->field_FA8[0].uFaceID = -1; - pBspRenderer->field_FA8[0].std__vector_0007A8 = -1; - pBspRenderer->std__vector_000FA8 = 1; + pBspRenderer->pSectors[0].uFaceID = -1; + pBspRenderer->pSectors[0].std__vector_0007A8 = -1; + pBspRenderer->pNumSectors = 1; sub_440639(0); } @@ -11524,7 +11524,7 @@ v1 = a1; v2 = 0; - v3 = &pIndoor->pSectors[pBspRenderer->field_FA8[a1].uSectorID]; + v3 = &pIndoor->pSectors[pBspRenderer->pSectors[a1].uSectorID]; if ( pRenderer->pRenderD3D ) { for (uint i = 0; i < v3->uNumNonBSPFaces; ++i) @@ -11562,7 +11562,7 @@ //Log::Warning(L"sub_4406BC(%u, %u)", a1, uFirstNode); v10 = a1; - v12 = &pBspRenderer->field_FA8[a1]; + v12 = &pBspRenderer->pSectors[a1]; while ( 1 ) { v2 = &pIndoor->pSectors[v12->uSectorID]; @@ -16204,7 +16204,7 @@ //----- (0044A56A) -------------------------------------------------------- -void __cdecl sub_44A56A() +void __cdecl Party__CountHirelings() { pParty->field_70A = 0;
--- a/mm7_4.cpp Thu Mar 14 23:26:01 2013 +0200 +++ b/mm7_4.cpp Thu Mar 14 23:44:03 2013 +0200 @@ -9590,7 +9590,7 @@ //LOBYTE(v2->uFlags) |= 0x80u; pCurrentNPCInfo->uFlags |= 128; pParty->field_709 = 0; - sub_44A56A(); + Party__CountHirelings(); if ( pParty->pHirelings[0].pName ) { memcpy(&pParty->pHirelings[1], pCurrentNPCInfo, sizeof(pParty->pHirelings[1])); @@ -9605,7 +9605,7 @@ } strcpy(v22, v24); pParty->field_709 = 0; - sub_44A56A(); + Party__CountHirelings(); PrepareHouse((HOUSE_ID)(int)window_SpeakInHouse->ptr_1C); dialog_menu_id = 1; @@ -10870,7 +10870,7 @@ memset(v11, 0, sizeof(NPCData)); } pParty->field_709 = 0; - sub_44A56A(); + Party__CountHirelings(); dword_591084 = 0; pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); dword_7241C8 = 0; @@ -10918,7 +10918,7 @@ } strcpy(v13, v15); pParty->field_709 = 0; - sub_44A56A(); + Party__CountHirelings(); pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); @@ -10981,7 +10981,7 @@ memset(v11, 0, sizeof(NPCData)); } pParty->field_709 = 0; - sub_44A56A(); + Party__CountHirelings(); dword_591084 = 0; pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); dword_7241C8 = 0;
--- a/mm7_5.cpp Thu Mar 14 23:26:01 2013 +0200 +++ b/mm7_5.cpp Thu Mar 14 23:44:03 2013 +0200 @@ -1367,7 +1367,7 @@ { pParty->field_709 = 0; LOBYTE(pNPCStats->pNewNPCData[dword_5B65CC].uFlags) &= 0x7Fu; - sub_44A56A(); + Party__CountHirelings(); viewparams->bRedrawGameUI = v0; dword_5B65CC = 0; } @@ -1377,7 +1377,7 @@ { pParty->field_709 = 0; LOBYTE(pNPCStats->pNewNPCData[dword_5B65CC].uFlags) &= 0x7Fu; - sub_44A56A(); + Party__CountHirelings(); viewparams->bRedrawGameUI = v0; dword_5B65CC = 0; } @@ -9251,22 +9251,21 @@ int v6; // ebx@3 uNumVisibleNotEmptySectors = 0; - for (uint i = 0; i < std__vector_000FA8; ++i) + for (uint i = 0; i < pNumSectors; ++i) { v6 = 0; if (!uNumVisibleNotEmptySectors) { -//LABEL_7: - pVisibleSectorIDs_toDrawDecorsActorsEtcFrom[uNumVisibleNotEmptySectors++] = field_FA8[i].uSectorID; + pVisibleSectorIDs_toDrawDecorsActorsEtcFrom[uNumVisibleNotEmptySectors++] = pSectors[i].uSectorID; } else { - while (pVisibleSectorIDs_toDrawDecorsActorsEtcFrom[v6] != field_FA8[i].uSectorID ) + while (pVisibleSectorIDs_toDrawDecorsActorsEtcFrom[v6] != pSectors[i].uSectorID ) { ++v6; if ( v6 >= uNumVisibleNotEmptySectors) { - pVisibleSectorIDs_toDrawDecorsActorsEtcFrom[uNumVisibleNotEmptySectors++] = field_FA8[i].uSectorID; + pVisibleSectorIDs_toDrawDecorsActorsEtcFrom[uNumVisibleNotEmptySectors++] = pSectors[i].uSectorID; continue; } }
--- a/mm7_data.h Thu Mar 14 23:26:01 2013 +0200 +++ b/mm7_data.h Thu Mar 14 23:44:03 2013 +0200 @@ -2044,7 +2044,7 @@ __int16 __fastcall sub_449A49_door_switch_animation(unsigned int uDoorID, int a2); // idb bool _449B57_test_bit(unsigned __int8 *a1, __int16 a2); void _449B7E_toggle_bit(unsigned char *pArray, __int16 a2, unsigned __int16 bToggle); // idb -void __cdecl sub_44A56A(); +void __cdecl Party__CountHirelings(); void __fastcall ShowStatusBarString(const char *pString, unsigned int uNumSeconds); void __cdecl ShowNothingHereStatus(); signed int __cdecl const_2();