Mercurial > mm7
comparison mm7_3.cpp @ 580:bcae3e06cadb
Слияние
author | Ritor1 |
---|---|
date | Wed, 06 Mar 2013 09:28:27 +0600 |
parents | a295c9f956d1 f451efdb7c8b |
children | d59398528e4f 42d5777c2f47 |
comparison
equal
deleted
inserted
replaced
579:a295c9f956d1 | 580:bcae3e06cadb |
---|---|
1700 pParty->uFallStartY = v80; | 1700 pParty->uFallStartY = v80; |
1701 } | 1701 } |
1702 LABEL_20: | 1702 LABEL_20: |
1703 if ( v6 - party_z > 512 && !bFeatherFall && party_z <= v80 + 1 ) | 1703 if ( v6 - party_z > 512 && !bFeatherFall && party_z <= v80 + 1 ) |
1704 { | 1704 { |
1705 if ( BYTE1(pParty->uFlags) & 1 ) | 1705 if (pParty->uFlags & PARTY_FLAGS_1_LANDING) |
1706 { | 1706 { |
1707 BYTE1(pParty->uFlags) &= 0xFEu; | 1707 pParty->uFlags &= ~PARTY_FLAGS_1_LANDING; |
1708 } | 1708 } |
1709 else for (uint i = 0; i < 4; ++i) | 1709 else for (uint i = 0; i < 4; ++i) |
1710 { // receive falling damage | 1710 { // receive falling damage |
1711 auto pPlayer = pParty->pPlayers + i; | 1711 auto pPlayer = pParty->pPlayers + i; |
1712 | 1712 |
1925 if ( pIndoor->pFaces[v68].pFacePlane_old.vNormal.z < 32768 ) | 1925 if ( pIndoor->pFaces[v68].pFacePlane_old.vNormal.z < 32768 ) |
1926 { | 1926 { |
1927 v89 -= pEventTimer->uTimeElapsed * GetGravityStrength(); | 1927 v89 -= pEventTimer->uTimeElapsed * GetGravityStrength(); |
1928 goto LABEL_92; | 1928 goto LABEL_92; |
1929 } | 1929 } |
1930 if ( BYTE1(pParty->uFlags) & 1 ) | 1930 if (pParty->uFlags & PARTY_FLAGS_1_LANDING) |
1931 goto LABEL_92; | 1931 goto LABEL_92; |
1932 v89 = 0; | 1932 v89 = 0; |
1933 } | 1933 } |
1934 if ( bJumping != v36 && v89 <= v36 ) | 1934 if ( bJumping != v36 && v89 <= v36 ) |
1935 { | 1935 { |
2179 pAudioPlayer->_4AA258(804); | 2179 pAudioPlayer->_4AA258(804); |
2180 pParty->field_6F8 = 64; | 2180 pParty->field_6F8 = 64; |
2181 } | 2181 } |
2182 } | 2182 } |
2183 if ( !bJumping || bFeatherFall ) | 2183 if ( !bJumping || bFeatherFall ) |
2184 pParty->uFlags &= 0xFFFFFFF7u; | 2184 pParty->uFlags &= ~PARTY_FLAGS_1_FALLING; |
2185 else | 2185 else |
2186 pParty->uFlags |= 8u; | 2186 pParty->uFlags |= PARTY_FLAGS_1_FALLING; |
2187 BYTE1(pParty->uFlags) &= 0xFDu; | 2187 pParty->uFlags &= ~0x200; |
2188 pParty->vPosition.x = new_party_x; | 2188 pParty->vPosition.x = new_party_x; |
2189 pParty->vPosition.z = new_party_z; | 2189 pParty->vPosition.z = new_party_z; |
2190 pParty->vPosition.y = new_party_y; | 2190 pParty->vPosition.y = new_party_y; |
2191 pParty->uFallSpeed = v89; | 2191 pParty->uFallSpeed = v89; |
2192 if ( !bJumping && BYTE3(pIndoor->pFaces[uFaceID].uAttributes) & 0x40 ) | 2192 if ( !bJumping && BYTE3(pIndoor->pFaces[uFaceID].uAttributes) & 0x40 ) |
2193 BYTE1(pParty->uFlags) |= 2u; | 2193 pParty->uFlags |= 0x200; |
2194 if (uFaceEvent) | 2194 if (uFaceEvent) |
2195 EventProcessor(uFaceEvent, 0, 1); | 2195 EventProcessor(uFaceEvent, 0, 1); |
2196 } | 2196 } |
2197 | 2197 |
2198 | 2198 |
2368 break; | 2368 break; |
2369 } | 2369 } |
2370 } | 2370 } |
2371 // bFeatherFall = 1; | 2371 // bFeatherFall = 1; |
2372 //LABEL_9: | 2372 //LABEL_9: |
2373 LOBYTE(pParty->uFlags) &= 0x7Fu; | 2373 pParty->uFlags &= ~PARTY_FLAGS_1_STANDING_ON_WATER; |
2374 if (pParty->WaterWalkActive()) | 2374 if (pParty->WaterWalkActive()) |
2375 { | 2375 { |
2376 //LOBYTE(pParty->uFlags) &= 0x7Fu; | 2376 //LOBYTE(pParty->uFlags) &= 0x7Fu; |
2377 bWaterWalk = 1; | 2377 bWaterWalk = 1; |
2378 *(short *)&stru_5E4C90._decor_events[20 * pParty->pPartyBuffs[18].uOverlayID + 119] |= 1u; | 2378 *(short *)&stru_5E4C90._decor_events[20 * pParty->pPartyBuffs[18].uOverlayID + 119] |= 1u; |
2474 break; | 2474 break; |
2475 | 2475 |
2476 pParty->bFlying = false; | 2476 pParty->bFlying = false; |
2477 if (bUnderwater || | 2477 if (bUnderwater || |
2478 pParty->pPartyBuffs[PARTY_BUFF_FLY].uFlags & 1 || | 2478 pParty->pPartyBuffs[PARTY_BUFF_FLY].uFlags & 1 || |
2479 pParty->pPlayers[pParty->pPartyBuffs[PARTY_BUFF_FLY].uCaster - 1].sMana <= 0 ) | 2479 pParty->pPlayers[pParty->pPartyBuffs[PARTY_BUFF_FLY].uCaster - 1].sMana > 0 ) |
2480 { | 2480 { |
2481 if ( pParty->vPosition.z < 4000 || bJumping ) | 2481 if ( pParty->vPosition.z < 4000 || bJumping ) |
2482 { | 2482 { |
2483 v123 += 30; | 2483 v123 += 30; |
2484 v113 += 30; | 2484 v113 += 30; |
2495 if ( v102 && v123 < v109 && (signed int)(pParty->uPartyHeight + v123) >= v109 ) | 2495 if ( v102 && v123 < v109 && (signed int)(pParty->uPartyHeight + v123) >= v109 ) |
2496 { | 2496 { |
2497 pParty->field_6E0 = 0; | 2497 pParty->field_6E0 = 0; |
2498 pParty->field_6E4 = 0; | 2498 pParty->field_6E4 = 0; |
2499 pPartyActionQueue->uNumActions = 0; | 2499 pPartyActionQueue->uNumActions = 0; |
2500 BYTE1(pParty->uFlags) |= 1u; | 2500 pParty->uFlags |= PARTY_FLAGS_1_LANDING; |
2501 pParty->vPosition.z = v109 - pParty->uPartyHeight - 31; | 2501 pParty->vPosition.z = v109 - pParty->uPartyHeight - 31; |
2502 pParty->field_6F0 = v123; | 2502 pParty->field_6F0 = v123; |
2503 pParty->bFlying = 0; | 2503 pParty->bFlying = 0; |
2504 v123 = v109 - pParty->uPartyHeight - 31; | 2504 v123 = v109 - pParty->uPartyHeight - 31; |
2505 v113 = pParty->field_6F0; | 2505 v113 = pParty->field_6F0; |
2515 if (pParty->FlyActive() || bUnderwater) | 2515 if (pParty->FlyActive() || bUnderwater) |
2516 { | 2516 { |
2517 pParty->bFlying = 0; | 2517 pParty->bFlying = 0; |
2518 if ( bUnderwater | 2518 if ( bUnderwater |
2519 || pParty->pPartyBuffs[7].uFlags & 1 | 2519 || pParty->pPartyBuffs[7].uFlags & 1 |
2520 || pParty->pPlayers[pParty->pPartyBuffs[7].uCaster-1].sMana <= 0 )//*(int *)&pParty->pArtifactsFound[6972 * pParty->pPartyBuffs[7].uCaster + 10] > 0 ) | 2520 || pParty->pPlayers[pParty->pPartyBuffs[7].uCaster - 1].sMana > 0 )//*(int *)&pParty->pArtifactsFound[6972 * pParty->pPartyBuffs[7].uCaster + 10] > 0 ) |
2521 { | 2521 { |
2522 v123 -= 30; | 2522 v123 -= 30; |
2523 v113 -= 30; | 2523 v113 -= 30; |
2524 pParty->uFallSpeed = 0; | 2524 pParty->uFallSpeed = 0; |
2525 v121 = 0; | 2525 v121 = 0; |
3145 pAudioPlayer->_4AA258(804); | 3145 pAudioPlayer->_4AA258(804); |
3146 pParty->field_6F8 = 64; | 3146 pParty->field_6F8 = 64; |
3147 } | 3147 } |
3148 } | 3148 } |
3149 if ( !bJumping || v101 ) | 3149 if ( !bJumping || v101 ) |
3150 pParty->uFlags &= 0xFFFFFFF7u; | 3150 pParty->uFlags &= ~PARTY_FLAGS_1_FALLING; |
3151 else | 3151 else |
3152 pParty->uFlags |= 8u; | 3152 pParty->uFlags |= PARTY_FLAGS_1_FALLING; |
3153 v126 = WorldPosToGridCellX(pParty->vPosition.x); | 3153 v126 = WorldPosToGridCellX(pParty->vPosition.x); |
3154 v65 = WorldPosToGridCellZ(pParty->vPosition.y) - 1; | 3154 v65 = WorldPosToGridCellZ(pParty->vPosition.y) - 1; |
3155 v114 = WorldPosToGridCellX(v116); | 3155 v114 = WorldPosToGridCellX(v116); |
3156 v66 = WorldPosToGridCellZ(v117) - 1; | 3156 v66 = WorldPosToGridCellZ(v117) - 1; |
3157 v127 = (BSPModel *)(((unsigned int)~pOutdoor->ActuallyGetSomeOtherTileInfo(v126, v65) >> 1) & 1); | 3157 v127 = (BSPModel *)(((unsigned int)~pOutdoor->ActuallyGetSomeOtherTileInfo(v126, v65) >> 1) & 1); |
3190 pParty->uFallSpeed = 0; | 3190 pParty->uFallSpeed = 0; |
3191 v73 = v105; | 3191 v73 = v105; |
3192 pParty->vPosition.z = v105; | 3192 pParty->vPosition.z = v105; |
3193 if ( pParty->uFallStartY - v70 > 512 && !bFeatherFall && v70 <= v105 && !bUnderwater ) | 3193 if ( pParty->uFallStartY - v70 > 512 && !bFeatherFall && v70 <= v105 && !bUnderwater ) |
3194 { | 3194 { |
3195 if ( pParty->uFlags & 0x100 ) | 3195 if ( pParty->uFlags & PARTY_FLAGS_1_LANDING ) |
3196 { | 3196 { |
3197 BYTE1(pParty->uFlags) &= 0xFEu; | 3197 pParty->uFlags &= ~PARTY_FLAGS_1_LANDING; |
3198 } | 3198 } |
3199 else | 3199 else |
3200 { | 3200 { |
3201 v74 = &pPlayers[1]; | 3201 v74 = &pPlayers[1]; |
3202 do | 3202 do |
3223 { | 3223 { |
3224 pParty->vPosition.z = v109 - pParty->uPartyHeight - 1; | 3224 pParty->vPosition.z = v109 - pParty->uPartyHeight - 1; |
3225 pParty->field_6F0 = v109 - pParty->uPartyHeight - 1; | 3225 pParty->field_6F0 = v109 - pParty->uPartyHeight - 1; |
3226 } | 3226 } |
3227 } | 3227 } |
3228 LOWORD(pParty->uFlags) &= 0xFDFBu; | 3228 pParty->uFlags &= ~0x204; |
3229 } | 3229 } |
3230 return; | 3230 return; |
3231 } | 3231 } |
3232 v76 = pParty->bFlying; | 3232 v76 = pParty->bFlying; |
3233 if ( pParty->bFlying || v101 == 0 || bWaterWalk || !v127 ) | 3233 if ( pParty->bFlying || v101 == 0 || bWaterWalk || !v127 ) |
3258 LABEL_312: | 3258 LABEL_312: |
3259 pParty->vPosition.y = v117; | 3259 pParty->vPosition.y = v117; |
3260 LABEL_313: | 3260 LABEL_313: |
3261 if ( bWaterWalk ) | 3261 if ( bWaterWalk ) |
3262 { | 3262 { |
3263 LOBYTE(pParty->uFlags) &= 0x7Fu; | 3263 pParty->uFlags &= ~PARTY_FLAGS_1_STANDING_ON_WATER; |
3264 v79 = 20 * pParty->pPartyBuffs[18].uOverlayID + 6180178; | 3264 //v79 = 20 * pParty->pPartyBuffs[18].uOverlayID + 6180178; |
3265 *(short *)&stru_5E4C90._decor_events[20 * pParty->pPartyBuffs[18].uOverlayID + 119] |= 1u; | 3265 //*(short *)&stru_5E4C90._decor_events[20 * pParty->pPartyBuffs[18].uOverlayID + 119] |= 1u; |
3266 v79 = (int)&stru_5E4C90._decor_events[20 * pParty->pPartyBuffs[18].uOverlayID + 119]; | |
3267 *(short *)v79 |= 1u; | |
3266 if ( !v122 || !v69 ) | 3268 if ( !v122 || !v69 ) |
3267 { | 3269 { |
3268 if ( !v76 ) | 3270 if ( !v76 ) |
3269 { | 3271 { |
3270 v80 = *(short *)v79; | 3272 v80 = *(short *)v79; |
3271 LOBYTE(pParty->uFlags) |= 0x80u; | 3273 pParty->uFlags |= PARTY_FLAGS_1_STANDING_ON_WATER; |
3272 *(short *)v79 = v80 & 0xFFFE; | 3274 *(short *)v79 = v80 & 0xFFFE; |
3273 } | 3275 } |
3274 } | 3276 } |
3275 } | 3277 } |
3276 goto LABEL_318; | 3278 goto LABEL_318; |
3310 v82 = v105; | 3312 v82 = v105; |
3311 pParty->uFallSpeed = 0; | 3313 pParty->uFallSpeed = 0; |
3312 pParty->vPosition.z = v105; | 3314 pParty->vPosition.z = v105; |
3313 if ( pParty->uFallStartY - v81 > 512 && !bFeatherFall && v81 <= v105 && !bUnderwater ) | 3315 if ( pParty->uFallStartY - v81 > 512 && !bFeatherFall && v81 <= v105 && !bUnderwater ) |
3314 { | 3316 { |
3315 if ( pParty->uFlags & 0x100 ) | 3317 if ( pParty->uFlags & PARTY_FLAGS_1_LANDING ) |
3316 { | 3318 { |
3317 BYTE1(pParty->uFlags) &= 0xFEu; | 3319 pParty->uFlags &= ~PARTY_FLAGS_1_LANDING; |
3318 } | 3320 } |
3319 else | 3321 else |
3320 { | 3322 { |
3321 v84 = &pPlayers[1]; | 3323 v84 = &pPlayers[1]; |
3322 do | 3324 do |
11661 } | 11663 } |
11662 | 11664 |
11663 //----- (0044100D) -------------------------------------------------------- | 11665 //----- (0044100D) -------------------------------------------------------- |
11664 bool __cdecl sub_44100D() | 11666 bool __cdecl sub_44100D() |
11665 { | 11667 { |
11666 return pCurrentScreen == SCREEN_NPC_DIALOGUE | 11668 return pCurrentScreen == SCREEN_NPC_DIALOGUE || pCurrentScreen == SCREEN_CHARACTERS || |
11667 || pCurrentScreen == SCREEN_CHARACTERS | 11669 pCurrentScreen > SCREEN_LOADGAME && pCurrentScreen <= SCREEN_E || |
11668 || pCurrentScreen > SCREEN_LOADGAME | 11670 pCurrentScreen > SCREEN_VIDEO && pCurrentScreen <= SCREEN_INPUT_BLV || pCurrentScreen == SCREEN_CASTING; |
11669 && (pCurrentScreen <= SCREEN_E | |
11670 || pCurrentScreen > SCREEN_VIDEO | |
11671 && (pCurrentScreen <= SCREEN_INPUT_BLV | |
11672 || pCurrentScreen == SCREEN_CASTING)); | |
11673 } | 11671 } |
11674 // 4E28F8: using guessed type int pCurrentScreen; | 11672 // 4E28F8: using guessed type int pCurrentScreen; |
11675 | 11673 |
11676 //----- (00441498) -------------------------------------------------------- | 11674 //----- (00441498) -------------------------------------------------------- |
11677 void __cdecl GameUI_DrawTorchlightAndWizardEye() | 11675 void __cdecl GameUI_DrawTorchlightAndWizardEye() |
11678 { | 11676 { |
11679 unsigned int v0; // eax@15 | 11677 if (pCurrentScreen == SCREEN_GAME |
11680 IconFrame *v1; // eax@15 | |
11681 unsigned int v2; // eax@19 | |
11682 IconFrame *v3; // eax@19 | |
11683 | |
11684 if ( !pCurrentScreen | |
11685 || pCurrentScreen == SCREEN_MENU | 11678 || pCurrentScreen == SCREEN_MENU |
11686 || pCurrentScreen == SCREEN_OPTIONS | 11679 || pCurrentScreen == SCREEN_OPTIONS |
11687 || pCurrentScreen == SCREEN_REST | 11680 || pCurrentScreen == SCREEN_REST |
11688 || pCurrentScreen == SCREEN_SPELL_BOOK | 11681 || pCurrentScreen == SCREEN_SPELL_BOOK |
11689 || pCurrentScreen == SCREEN_CHEST | 11682 || pCurrentScreen == SCREEN_CHEST |
11691 || pCurrentScreen == SCREEN_LOADGAME | 11684 || pCurrentScreen == SCREEN_LOADGAME |
11692 || pCurrentScreen == SCREEN_F | 11685 || pCurrentScreen == SCREEN_F |
11693 || pCurrentScreen == SCREEN_BOOKS | 11686 || pCurrentScreen == SCREEN_BOOKS |
11694 || pCurrentScreen == SCREEN_BRANCHLESS_NPC_DIALOG ) | 11687 || pCurrentScreen == SCREEN_BRANCHLESS_NPC_DIALOG ) |
11695 { | 11688 { |
11696 if ( SHIDWORD(pParty->pPartyBuffs[16].uExpireTime) >= 0 | 11689 if (pParty->TorchlightActive()) |
11697 && (SHIDWORD(pParty->pPartyBuffs[16].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[16].uExpireTime)) ) | 11690 { |
11698 { | 11691 auto icon = pIconsFrameTable->GetFrame((signed __int16)pUIAnum_Torchlight->uIconID, pEventTimer->Time()); |
11699 v0 = pEventTimer->Time(); | 11692 pRenderer->DrawTextureTransparent(pUIAnum_Torchlight->x, pUIAnum_Torchlight->y, pIcons_LOD->GetTexture(icon->uTextureID)); |
11700 v1 = pIconsFrameTable->GetFrame((signed __int16)pUIAnum_Torchlight->uIconID, v0); | 11693 } |
11701 pRenderer->DrawTextureTransparent( | 11694 if (pParty->WizardEyeActive()) |
11702 pUIAnum_Torchlight->x, | 11695 { |
11703 pUIAnum_Torchlight->y, | 11696 auto icon = pIconsFrameTable->GetFrame((signed __int16)pUIAnim_WizardEye->uIconID, pEventTimer->Time()); |
11704 &pIcons_LOD->pTextures[v1->uTextureID]); | 11697 pRenderer->DrawTextureTransparent(pUIAnim_WizardEye->x, pUIAnim_WizardEye->y, pIcons_LOD->GetTexture(icon->uTextureID)); |
11705 } | |
11706 if ( SHIDWORD(pParty->pPartyBuffs[19].uExpireTime) >= 0 | |
11707 && (SHIDWORD(pParty->pPartyBuffs[19].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[19].uExpireTime)) ) | |
11708 { | |
11709 v2 = pEventTimer->Time(); | |
11710 v3 = pIconsFrameTable->GetFrame((signed __int16)pUIAnim_WizardEye->uIconID, v2); | |
11711 pRenderer->DrawTextureTransparent( | |
11712 pUIAnim_WizardEye->x, | |
11713 pUIAnim_WizardEye->y, | |
11714 &pIcons_LOD->pTextures[v3->uTextureID]); | |
11715 } | 11698 } |
11716 } | 11699 } |
11717 } | 11700 } |
11718 // 4E28F8: using guessed type int pCurrentScreen; | 11701 // 4E28F8: using guessed type int pCurrentScreen; |
11719 | 11702 |
11727 &pIcons_LOD->pTextures[dword_50C98C]); | 11710 &pIcons_LOD->pTextures[dword_50C98C]); |
11728 } | 11711 } |
11729 | 11712 |
11730 | 11713 |
11731 //----- (004415C5) -------------------------------------------------------- | 11714 //----- (004415C5) -------------------------------------------------------- |
11732 void __cdecl Load_isn_spells_21_27() | 11715 void LoadPartyBuffIcons() |
11733 { | 11716 { |
11734 signed int v0; // esi@1 | 11717 for (uint i = 0; i < 14; ++i) |
11735 char pContainer[120]; // [sp+8h] [bp-20h]@2 | 11718 { |
11736 | 11719 char filename[200]; |
11737 v0 = 0; | 11720 sprintf(filename, "isn-%02d", i + 1); |
11738 do | 11721 pTextureIDs_PartyBuffIcons[i] = pIcons_LOD->LoadTexture(filename, TEXTURE_16BIT_PALETTE); |
11739 { | 11722 } |
11740 sprintf(pContainer, "isn-%02d", v0 + 1); | 11723 |
11741 pTextureIDs_isns[v0++] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | 11724 uIconIdx_FlySpell = pIconsFrameTable->FindIcon("spell21"); |
11742 } | 11725 uIconIdx_WaterWalk = pIconsFrameTable->FindIcon("spell27"); |
11743 while ( v0 < 14 ); | |
11744 uIconIdx_Spell21 = pIconsFrameTable->FindIcon("spell21"); | |
11745 uIconIdx_Spell27 = pIconsFrameTable->FindIcon("spell27"); | |
11746 } | 11726 } |
11747 | 11727 |
11748 //----- (0044162D) -------------------------------------------------------- | 11728 //----- (0044162D) -------------------------------------------------------- |
11749 void __cdecl GameUI_DrawPartySpells() | 11729 void __cdecl GameUI_DrawPartySpells() |
11750 { | 11730 { |
11751 unsigned int v0; // ebp@1 | 11731 unsigned int v0; // ebp@1 |
11752 signed int v1; // edi@1 | 11732 //signed int v1; // edi@1 |
11753 int v2; // eax@2 | 11733 //int v2; // eax@2 |
11754 int v3; // ecx@5 | 11734 //int v3; // ecx@5 |
11755 __int16 *v4; // ebx@25 | 11735 //__int16 *v4; // ebx@25 |
11756 Player *v5; // edi@26 | 11736 //Player *v5; // edi@26 |
11757 unsigned int v6; // [sp-4h] [bp-1Ch]@11 | 11737 //unsigned int v6; // [sp-4h] [bp-1Ch]@11 |
11758 Texture *v7; // [sp-4h] [bp-1Ch]@12 | 11738 Texture *v7; // [sp-4h] [bp-1Ch]@12 |
11759 unsigned int v8; // [sp-4h] [bp-1Ch]@20 | 11739 //unsigned int v8; // [sp-4h] [bp-1Ch]@20 |
11760 Texture *v9; // [sp-4h] [bp-1Ch]@21 | 11740 Texture *v9; // [sp-4h] [bp-1Ch]@21 |
11761 Player **v10; // [sp+10h] [bp-8h]@25 | 11741 //Player **v10; // [sp+10h] [bp-8h]@25 |
11762 | 11742 |
11763 v0 = (signed __int64)((double)GetTickCount() * 0.050000001); | 11743 v0 = (signed __int64)((double)GetTickCount() * 0.050000001); |
11764 v1 = 0; | 11744 //v1 = 0; |
11765 do | 11745 for (uint i = 0; i < 14; ++i) |
11766 { | 11746 { |
11767 v2 = (unsigned __int8)byte_4E5DD8[v1]; | 11747 //v2 = byte_4E5DD8[v1]; |
11768 if ( SHIDWORD(pParty->pPartyBuffs[v2].uExpireTime) >= 0 | 11748 if (pParty->pPartyBuffs[byte_4E5DD8[i]].uExpireTime) |
11769 && (SHIDWORD(pParty->pPartyBuffs[v2].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[v2].uExpireTime) > 0) ) | 11749 { |
11770 { | 11750 auto tex = pIcons_LOD->GetTexture(pTextureIDs_PartyBuffIcons[i]); |
11771 v3 = pTextureIDs_isns[v1]; | 11751 //v3 = pTextureIDs_PartyBuffIcons[i]; |
11772 pRenderer->_4A65CC( | 11752 if (tex) |
11773 pPartySpellbuffsUI_XYs[v1][0], | 11753 pRenderer->_4A65CC(pPartySpellbuffsUI_XYs[i][0], |
11774 pPartySpellbuffsUI_XYs[v1][1], | 11754 pPartySpellbuffsUI_XYs[i][1], tex, tex, |
11775 (Texture *)(v3 != -1 ? &pIcons_LOD->pTextures[v3] : 0), | 11755 v0 + 20 * pPartySpellbuffsUI_smthns[i], 0, 63); |
11776 (Texture *)(v3 != -1 ? &pIcons_LOD->pTextures[v3] : 0), | 11756 } |
11777 v0 + 20 * pPartySpellbuffsUI_smthns[v1], | 11757 //++v1; |
11778 0, | 11758 } |
11779 63); | 11759 //while ( v1 < 14 ); |
11780 } | 11760 |
11781 ++v1; | 11761 if (pCurrentScreen == SCREEN_GAME || pCurrentScreen == SCREEN_NPC_DIALOGUE) |
11782 } | 11762 { |
11783 while ( v1 < 14 ); | 11763 if (pParty->FlyActive()) |
11784 if ( !pCurrentScreen | |
11785 || pCurrentScreen == SCREEN_NPC_DIALOGUE ) | |
11786 { | |
11787 if ( (signed __int64)pParty->pPartyBuffs[7].uExpireTime > 0 ) | |
11788 { | 11764 { |
11789 if ( pParty->bFlying ) | 11765 if ( pParty->bFlying ) |
11790 v6 = v0; | 11766 v7 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_FlySpell, v0)->uTextureID]; |
11791 else | 11767 else |
11792 v6 = 0; | 11768 v7 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_FlySpell, 0)->uTextureID]; |
11793 v7 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_Spell21, v6)->uTextureID]; | |
11794 if ( pRenderer->pRenderD3D ) | 11769 if ( pRenderer->pRenderD3D ) |
11795 pRenderer->DrawTextureIndexed(8u, 8u, v7); | 11770 pRenderer->DrawTextureIndexed(8u, 8u, v7); |
11796 else | 11771 else |
11797 pRenderer->DrawTextureTransparent(8u, 8u, v7); | 11772 pRenderer->DrawTextureTransparent(8u, 8u, v7); |
11798 } | 11773 } |
11799 if ( SHIDWORD(pParty->pPartyBuffs[18].uExpireTime) >= 0 | 11774 if (pParty->WaterWalkActive()) |
11800 && (SHIDWORD(pParty->pPartyBuffs[18].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[18].uExpireTime)) ) | 11775 { |
11801 { | 11776 if ( pParty->uFlags & PARTY_FLAGS_1_STANDING_ON_WATER) |
11802 if ( pParty->uFlags & 0x80 ) | 11777 v9 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_WaterWalk, v0)->uTextureID]; |
11803 v8 = v0; | |
11804 else | 11778 else |
11805 v8 = 0; | 11779 v9 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_WaterWalk, 0)->uTextureID]; |
11806 v9 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_Spell27, v8)->uTextureID]; | |
11807 if ( pRenderer->pRenderD3D ) | 11780 if ( pRenderer->pRenderD3D ) |
11808 pRenderer->DrawTextureIndexed(396u, 8u, v9); | 11781 pRenderer->DrawTextureIndexed(396u, 8u, v9); |
11809 else | 11782 else |
11810 pRenderer->DrawTextureTransparent(396u, 8u, v9); | 11783 pRenderer->DrawTextureTransparent(396u, 8u, v9); |
11811 } | 11784 } |
11812 } | 11785 } |
11813 | 11786 |
11814 uint _it = 0; | 11787 for (uint i = 0; i < 4; ++i) |
11815 v10 = &pPlayers[1]; | 11788 { |
11816 v4 = pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing; | 11789 auto player = pParty->pPlayers + i; |
11817 do | 11790 |
11818 { | 11791 if (player->pPlayerBuffs[PLAYER_BUFF_HAMMERHANDS].uExpireTime) |
11819 v5 = *v10; | 11792 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 427, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_Hammerhands)); |
11820 if ( (signed __int64)(*v10)->pPlayerBuffs[6].uExpireTime > 0 ) | 11793 if (player->pPlayerBuffs[PLAYER_BUFF_BLESS].uExpireTime) |
11821 pRenderer->DrawTextureIndexed( | 11794 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 393, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_Bless)); |
11822 *v4 + 72, | 11795 if (player->pPlayerBuffs[PLAYER_BUFF_PRESERVATION].uExpireTime) |
11823 0x1ABu, | 11796 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 410, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_Preservation)); |
11824 (Texture *)(dword_507964 != -1 ? &pIcons_LOD->pTextures[dword_507964] : 0)); | 11797 if (player->pPlayerBuffs[PLAYER_BUFF_PAIN_REFLECTION].uExpireTime) |
11825 if ( (signed __int64)v5->pPlayerBuffs[1].uExpireTime > 0 ) | 11798 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 444, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_PainReflection)); |
11826 pRenderer->DrawTextureIndexed( | 11799 } |
11827 *v4 + 72, | |
11828 0x189u, | |
11829 (Texture *)(dword_50796C != -1 ? &pIcons_LOD->pTextures[dword_50796C] : 0)); | |
11830 if ( (signed __int64)v5->pPlayerBuffs[11].uExpireTime > 0 ) | |
11831 pRenderer->DrawTextureIndexed( | |
11832 *v4 + 72, | |
11833 0x19Au, | |
11834 (Texture *)(dword_507968 != -1 ? &pIcons_LOD->pTextures[dword_507968] : 0)); | |
11835 if ( (signed __int64)v5->pPlayerBuffs[10].uExpireTime > 0 ) | |
11836 pRenderer->DrawTextureIndexed( | |
11837 *v4 + 72, | |
11838 0x1BCu, | |
11839 (Texture *)(dword_507960 != -1 ? &pIcons_LOD->pTextures[dword_507960] : 0)); | |
11840 ++v10; | |
11841 ++v4; | |
11842 } | |
11843 //while ( (signed int)v4 < (signed int)pBaseHealthByClass ); | |
11844 while (++_it != 4); | |
11845 } | 11800 } |
11846 | 11801 |
11847 //----- (00441A4E) -------------------------------------------------------- | 11802 //----- (00441A4E) -------------------------------------------------------- |
11848 __int16 __fastcall sub_441A4E(int a1) | 11803 __int16 __fastcall sub_441A4E(int a1) |
11849 { | 11804 { |
15530 unsigned __int16 v27; // ax@59 | 15485 unsigned __int16 v27; // ax@59 |
15531 int j; // esi@60 | 15486 int j; // esi@60 |
15532 signed int v29; // edx@66 | 15487 signed int v29; // edx@66 |
15533 char *v30; // ecx@67 | 15488 char *v30; // ecx@67 |
15534 unsigned __int16 v31; // ax@70 | 15489 unsigned __int16 v31; // ax@70 |
15535 Player *v32; // eax@80 | 15490 //Player *v32; // eax@80 |
15536 unsigned __int16 v33; // si@85 | 15491 //unsigned __int16 v33; // si@85 |
15537 int v34; // eax@96 | 15492 int v34; // eax@96 |
15538 int v35; // eax@97 | 15493 int v35; // eax@97 |
15539 unsigned __int64 v36; // qax@99 | 15494 unsigned __int64 v36; // qax@99 |
15540 SpellBuff *v37; // ecx@99 | 15495 SpellBuff *v37; // ecx@99 |
15541 int v38; // esi@103 | 15496 int v38; // esi@103 |
15543 int v40; // ebx@108 | 15498 int v40; // ebx@108 |
15544 int v41; // ebx@109 | 15499 int v41; // ebx@109 |
15545 int v42; // esi@111 | 15500 int v42; // esi@111 |
15546 int v43; // ebx@111 | 15501 int v43; // ebx@111 |
15547 int v44; // eax@117 | 15502 int v44; // eax@117 |
15548 unsigned __int16 v45; // si@137 | 15503 //unsigned __int16 v45; // si@137 |
15549 unsigned __int16 v46; // [sp-8h] [bp-BCh]@99 | 15504 unsigned __int16 v46; // [sp-8h] [bp-BCh]@99 |
15550 int v47; // [sp-4h] [bp-B8h]@35 | 15505 int v47; // [sp-4h] [bp-B8h]@35 |
15551 unsigned __int16 v48; // [sp-4h] [bp-B8h]@99 | 15506 unsigned __int16 v48; // [sp-4h] [bp-B8h]@99 |
15552 int v49; // [sp+0h] [bp-B4h]@35 | 15507 int v49; // [sp+0h] [bp-B4h]@35 |
15553 int v50; // [sp+0h] [bp-B4h]@99 | 15508 int v50; // [sp+0h] [bp-B4h]@99 |
15559 unsigned int yaw; // [sp+30h] [bp-84h]@7 | 15514 unsigned int yaw; // [sp+30h] [bp-84h]@7 |
15560 int pitch; // [sp+34h] [bp-80h]@7 | 15515 int pitch; // [sp+34h] [bp-80h]@7 |
15561 //SpriteObject a1; // [sp+38h] [bp-7Ch]@12 | 15516 //SpriteObject a1; // [sp+38h] [bp-7Ch]@12 |
15562 int v59; // [sp+A8h] [bp-Ch]@1 | 15517 int v59; // [sp+A8h] [bp-Ch]@1 |
15563 int v60; // [sp+ACh] [bp-8h]@1 | 15518 int v60; // [sp+ACh] [bp-8h]@1 |
15564 int spellnum_; // [sp+B0h] [bp-4h]@1 | 15519 //int spellnum_; // [sp+B0h] [bp-4h]@1 |
15565 signed int levela; // [sp+BCh] [bp+8h]@80 | 15520 //signed int levela; // [sp+BCh] [bp+8h]@80 |
15566 int a6_4; // [sp+C8h] [bp+14h]@117 | 15521 int a6_4; // [sp+C8h] [bp+14h]@117 |
15567 float a7a; // [sp+CCh] [bp+18h]@6 | 15522 float a7a; // [sp+CCh] [bp+18h]@6 |
15568 signed int a7b; // [sp+CCh] [bp+18h]@12 | 15523 signed int a7b; // [sp+CCh] [bp+18h]@12 |
15569 int a7c; // [sp+CCh] [bp+18h]@29 | 15524 int a7c; // [sp+CCh] [bp+18h]@29 |
15570 int a7d; // [sp+CCh] [bp+18h]@55 | 15525 int a7d; // [sp+CCh] [bp+18h]@55 |
15573 int a8c; // [sp+D0h] [bp+1Ch]@55 | 15528 int a8c; // [sp+D0h] [bp+1Ch]@55 |
15574 float toza; // [sp+D4h] [bp+20h]@6 | 15529 float toza; // [sp+D4h] [bp+20h]@6 |
15575 | 15530 |
15576 v9 = 0; | 15531 v9 = 0; |
15577 v59 = rank + 1; | 15532 v59 = rank + 1; |
15578 spellnum_ = spellnum; | 15533 //spellnum_ = spellnum; |
15579 v60 = 0; | 15534 v60 = 0; |
15580 if ( tox || toy || toz ) | 15535 if ( tox || toy || toz ) |
15581 { | 15536 { |
15582 v10 = (double)tox - (double)fromx; | 15537 v10 = (double)tox - (double)fromx; |
15583 v53 = v10; | 15538 v53 = v10; |
15616 a7b = v15; | 15571 a7b = v15; |
15617 | 15572 |
15618 SpriteObject a1; // [sp+38h] [bp-7Ch]@12 | 15573 SpriteObject a1; // [sp+38h] [bp-7Ch]@12 |
15619 //SpriteObject::SpriteObject(&a1); | 15574 //SpriteObject::SpriteObject(&a1); |
15620 | 15575 |
15621 a1.uType = stru_4E3ACC[spellnum_].field_0; | 15576 a1.uType = stru_4E3ACC[spellnum].field_0; |
15622 if ( spellnum_ > 58 ) | 15577 if ( spellnum > 58 ) |
15623 { | 15578 { |
15624 if ( spellnum_ == 69 ) | 15579 if ( spellnum == 69 ) |
15625 goto LABEL_117; | 15580 goto LABEL_117; |
15626 if ( spellnum_ != 83 ) | 15581 if ( spellnum != 83 ) |
15627 return; | 15582 return; |
15628 v40 = v15 - 2; | 15583 v40 = v15 - 2; |
15629 if ( v40 ) | 15584 if ( v40 ) |
15630 { | 15585 { |
15631 v41 = v40 - 1; | 15586 v41 = v40 - 1; |
15659 v36 = pParty->uTimePlayed + v39; | 15614 v36 = pParty->uTimePlayed + v39; |
15660 LABEL_116: | 15615 LABEL_116: |
15661 v37->Apply(v36, v46, v48, v50, v52); | 15616 v37->Apply(v36, v46, v48, v50, v52); |
15662 goto LABEL_139; | 15617 goto LABEL_139; |
15663 } | 15618 } |
15664 if ( spellnum_ != 58 ) | 15619 if ( spellnum != 58 ) |
15665 { | 15620 { |
15666 switch ( spellnum_ ) | 15621 switch ( spellnum ) |
15667 { | 15622 { |
15668 case 2: | 15623 case 2: |
15669 case 6: | 15624 case 6: |
15670 case 18: | 15625 case 18: |
15671 case 26: | 15626 case 26: |
15673 case 32: | 15628 case 32: |
15674 case 39: | 15629 case 39: |
15675 case 41: | 15630 case 41: |
15676 a1.stru_24.Reset(); | 15631 a1.stru_24.Reset(); |
15677 v16 = 0; | 15632 v16 = 0; |
15678 a1.field_48 = spellnum_; | 15633 a1.field_48 = spellnum; |
15679 a1.field_4C = level; | 15634 a1.field_4C = level; |
15680 a1.field_50 = v15; | 15635 a1.field_50 = v15; |
15681 if ( (signed int)pObjectList->uNumObjects <= 0 ) | 15636 if ( (signed int)pObjectList->uNumObjects <= 0 ) |
15682 goto LABEL_34; | 15637 goto LABEL_34; |
15683 v17 = (char *)&pObjectList->pObjects->uObjectID; | 15638 v17 = (char *)&pObjectList->pObjects->uObjectID; |
15711 if ( v60 != 1 ) | 15666 if ( v60 != 1 ) |
15712 { | 15667 { |
15713 a8b = a7c / (v60 - 1); | 15668 a8b = a7c / (v60 - 1); |
15714 a1.stru_24.Reset(); | 15669 a1.stru_24.Reset(); |
15715 v21 = 0; | 15670 v21 = 0; |
15716 a1.field_48 = spellnum_; | 15671 a1.field_48 = spellnum; |
15717 a1.field_4C = level; | 15672 a1.field_4C = level; |
15718 a1.field_50 = v15; | 15673 a1.field_50 = v15; |
15719 if ( (signed int)pObjectList->uNumObjects <= 0 ) | 15674 if ( (signed int)pObjectList->uNumObjects <= 0 ) |
15720 { | 15675 { |
15721 LABEL_41: | 15676 LABEL_41: |
15754 } | 15709 } |
15755 goto LABEL_139; | 15710 goto LABEL_139; |
15756 } | 15711 } |
15757 a1.stru_24.Reset(); | 15712 a1.stru_24.Reset(); |
15758 v16 = 0; | 15713 v16 = 0; |
15759 a1.field_48 = spellnum_; | 15714 a1.field_48 = spellnum; |
15760 a1.field_4C = level; | 15715 a1.field_4C = level; |
15761 a1.field_50 = v15; | 15716 a1.field_50 = v15; |
15762 if ( (signed int)pObjectList->uNumObjects <= 0 ) | 15717 if ( (signed int)pObjectList->uNumObjects <= 0 ) |
15763 goto LABEL_34; | 15718 goto LABEL_34; |
15764 v19 = (char *)&pObjectList->pObjects->uObjectID; | 15719 v19 = (char *)&pObjectList->pObjects->uObjectID; |
15807 } | 15762 } |
15808 a7d = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360; | 15763 a7d = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360; |
15809 a8c = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360 / (v60 - 1); | 15764 a8c = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360 / (v60 - 1); |
15810 a1.stru_24.Reset(); | 15765 a1.stru_24.Reset(); |
15811 v25 = 0; | 15766 v25 = 0; |
15812 a1.field_48 = spellnum_; | 15767 a1.field_48 = spellnum; |
15813 a1.field_4C = level; | 15768 a1.field_4C = level; |
15814 a1.field_50 = v15; | 15769 a1.field_50 = v15; |
15815 if ( (signed int)pObjectList->uNumObjects <= 0 ) | 15770 if ( (signed int)pObjectList->uNumObjects <= 0 ) |
15816 goto LABEL_59; | 15771 goto LABEL_59; |
15817 v26 = (char *)&pObjectList->pObjects->uObjectID; | 15772 v26 = (char *)&pObjectList->pObjects->uObjectID; |
15851 case 43: | 15806 case 43: |
15852 if ( uCurrentlyLoadedLevelType == LEVEL_Indoor ) | 15807 if ( uCurrentlyLoadedLevelType == LEVEL_Indoor ) |
15853 return; | 15808 return; |
15854 a1.stru_24.Reset(); | 15809 a1.stru_24.Reset(); |
15855 v29 = 0; | 15810 v29 = 0; |
15856 a1.field_48 = spellnum_; | 15811 a1.field_48 = spellnum; |
15857 a1.field_4C = level; | 15812 a1.field_4C = level; |
15858 a1.field_50 = v15; | 15813 a1.field_50 = v15; |
15859 if ( (signed int)pObjectList->uNumObjects <= 0 ) | 15814 if ( (signed int)pObjectList->uNumObjects <= 0 ) |
15860 goto LABEL_70; | 15815 goto LABEL_70; |
15861 v30 = (char *)&pObjectList->pObjects->uObjectID; | 15816 v30 = (char *)&pObjectList->pObjects->uObjectID; |
15862 break; | 15817 break; |
15863 case 5: | 15818 |
15819 case SPELL_FIRE_HASTE: | |
15864 if ( v15 > 0 ) | 15820 if ( v15 > 0 ) |
15865 { | 15821 { |
15866 if ( v15 <= 2 ) | 15822 if ( v15 <= 2 ) |
15867 { | 15823 { |
15868 v9 = 60 * (level + 60); | 15824 v9 = 60 * (level + 60); |
15878 if ( v15 == 4 ) | 15834 if ( v15 == 4 ) |
15879 v9 = 240 * (level + 15); | 15835 v9 = 240 * (level + 15); |
15880 } | 15836 } |
15881 } | 15837 } |
15882 } | 15838 } |
15883 levela = 1; | 15839 //levela = 1; |
15884 v32 = pParty->pPlayers;//[0].pConditions[1]; | 15840 //v32 = pParty->pPlayers;//[0].pConditions[1]; |
15885 do | 15841 //do |
15886 { | 15842 for (uint i = 0; i < 4; ++i) |
15887 if ( v32->pConditions[1] ) | 15843 if (pParty->pPlayers[i].pConditions[Player::Condition_Weak]) |
15888 levela = 0; | 15844 return; |
15889 ++v32; | 15845 //while ( v32 <= &pParty->pPlayers[3] ); |
15890 } | 15846 //if ( !levela ) |
15891 while ( v32 <= &pParty->pPlayers[3] ); | 15847 // return; |
15892 if ( !levela ) | 15848 pParty->pPartyBuffs[PARTY_BUFF_HASTE].Apply(pParty->uTimePlayed + (signed int)(signed __int64)((double)(v9 * 128) * 0.033333335), |
15893 return; | |
15894 pParty->pPartyBuffs[8].Apply( | |
15895 pParty->uTimePlayed + (signed int)(signed __int64)((double)(v9 << 7) * 0.033333335), | |
15896 v15, | 15849 v15, |
15897 0, | 15850 0, |
15898 0, | 15851 0, |
15899 0); | 15852 0); |
15900 v33 = spellnum_; | 15853 //v33 = spellnum_; |
15901 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 0); | 15854 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 0); |
15902 pGame->pStru6Instance->SetPlayerBuffAnim(v33, 1u); | 15855 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 1); |
15903 pGame->pStru6Instance->SetPlayerBuffAnim(v33, 2u); | 15856 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 2); |
15904 pGame->pStru6Instance->SetPlayerBuffAnim(v33, 3u); | 15857 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 3); |
15905 goto LABEL_138; | 15858 goto LABEL_138; |
15906 case 17: | 15859 case 17: |
15907 case 38: | 15860 case 38: |
15908 case 51: | 15861 case 51: |
15909 switch ( v15 ) | 15862 switch ( v15 ) |
15917 break; | 15870 break; |
15918 case 4: | 15871 case 4: |
15919 v9 = 3600 * (level + 1); | 15872 v9 = 3600 * (level + 1); |
15920 break; | 15873 break; |
15921 } | 15874 } |
15922 switch ( spellnum_ ) | 15875 switch ( spellnum ) |
15923 { | 15876 { |
15924 case 17: | 15877 case 17: |
15925 v60 = 0; | 15878 v60 = 0; |
15926 level = 14; | 15879 level = 14; |
15927 break; | 15880 break; |
15934 v34 = level + 5; | 15887 v34 = level + 5; |
15935 level = 9; | 15888 level = 9; |
15936 v60 = v34; | 15889 v60 = v34; |
15937 break; | 15890 break; |
15938 } | 15891 } |
15939 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 0); | 15892 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 0); |
15940 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 1u); | 15893 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 1); |
15941 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 2u); | 15894 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 2); |
15942 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 3u); | 15895 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 3); |
15943 v52 = 0; | 15896 v52 = 0; |
15944 v50 = 0; | 15897 v50 = 0; |
15945 v48 = v60; | 15898 v48 = v60; |
15946 v46 = v15; | 15899 v46 = v15; |
15947 v36 = pParty->uTimePlayed + (signed int)(signed __int64)((double)(v9 << 7) * 0.033333335); | 15900 v36 = pParty->uTimePlayed + (signed int)(signed __int64)((double)(v9 << 7) * 0.033333335); |
15950 case 8: | 15903 case 8: |
15951 if ( v15 == 2 || v15 == 3 || v15 != 4 ) | 15904 if ( v15 == 2 || v15 == 3 || v15 != 4 ) |
15952 v38 = 60 * level; | 15905 v38 = 60 * level; |
15953 else | 15906 else |
15954 v38 = 600 * level; | 15907 v38 = 600 * level; |
15955 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 0); | 15908 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 0); |
15956 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 1u); | 15909 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 1); |
15957 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 2u); | 15910 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 2); |
15958 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 3u); | 15911 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 3); |
15959 v52 = 0; | 15912 v52 = 0; |
15960 v50 = 0; | 15913 v50 = 0; |
15961 v48 = level; | 15914 v48 = level; |
15962 v46 = v15; | 15915 v46 = v15; |
15963 v39 = (signed __int64)((double)(v38 << 7) * 0.033333335); | 15916 v39 = (signed __int64)((double)(v38 << 7) * 0.033333335); |
16025 { | 15978 { |
16026 v44 = 4 * level; | 15979 v44 = 4 * level; |
16027 goto LABEL_124; | 15980 goto LABEL_124; |
16028 } | 15981 } |
16029 LABEL_125: | 15982 LABEL_125: |
16030 switch ( spellnum_ ) | 15983 switch ( spellnum ) |
16031 { | 15984 { |
16032 case 3: | 15985 case 3: |
16033 level = 6; | 15986 level = 6; |
16034 break; | 15987 break; |
16035 case 14: | 15988 case 14: |
16046 break; | 15999 break; |
16047 case 69: | 16000 case 69: |
16048 level = 1; | 16001 level = 1; |
16049 break; | 16002 break; |
16050 } | 16003 } |
16051 v45 = spellnum_; | 16004 //v45 = spellnum_; |
16052 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 0); | 16005 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 0); |
16053 pGame->pStru6Instance->SetPlayerBuffAnim(v45, 1u); | 16006 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 1); |
16054 pGame->pStru6Instance->SetPlayerBuffAnim(v45, 2u); | 16007 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 2); |
16055 pGame->pStru6Instance->SetPlayerBuffAnim(v45, 3u); | 16008 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 3); |
16056 pParty->pPartyBuffs[level].Apply( | 16009 pParty->pPartyBuffs[level].Apply( |
16057 pParty->uTimePlayed + (signed int)(signed __int64)((double)a6_4 * 4.2666669), | 16010 pParty->uTimePlayed + (signed int)(signed __int64)((double)a6_4 * 4.2666669), |
16058 v15, | 16011 v15, |
16059 v60, | 16012 v60, |
16060 0, | 16013 0, |
16061 0); | 16014 0); |
16062 levela = 1; | 16015 //levela = 1; |
16063 LABEL_138: | 16016 LABEL_138: |
16064 if ( levela ) | 16017 //if ( levela ) |
16065 LABEL_139: | 16018 LABEL_139: |
16066 pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[spellnum_], 0, 0, fromx, fromy, 0, 0, 0); | 16019 pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[spellnum], 0, 0, fromx, fromy, 0, 0, 0); |
16067 } | 16020 } |
16068 // 4EE088: using guessed type __int16 word_4EE088_sound_ids[]; | 16021 // 4EE088: using guessed type __int16 word_4EE088_sound_ids[]; |
16069 | 16022 |
16070 //----- (0044987B) -------------------------------------------------------- | 16023 //----- (0044987B) -------------------------------------------------------- |
16071 char *__fastcall sub_44987B(const char *pMapName, unsigned int uStartingPointType) | 16024 char *__fastcall sub_44987B(const char *pMapName, unsigned int uStartingPointType) |