Mercurial > mm7
comparison mm7_3.cpp @ 569:f451efdb7c8b
* Party buff icons drawing (right panel)
* Water Walk works & draws
* Fly works & draws
* Invisibility sfx works
* Some player buff icons draw
author | Nomad |
---|---|
date | Tue, 05 Mar 2013 16:14:22 +0200 |
parents | 9caf59edb1ee |
children | bcae3e06cadb |
comparison
equal
deleted
inserted
replaced
568:6f7d936edc9b | 569:f451efdb7c8b |
---|---|
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 |
11651 } | 11653 } |
11652 | 11654 |
11653 //----- (0044100D) -------------------------------------------------------- | 11655 //----- (0044100D) -------------------------------------------------------- |
11654 bool __cdecl sub_44100D() | 11656 bool __cdecl sub_44100D() |
11655 { | 11657 { |
11656 return pCurrentScreen == SCREEN_NPC_DIALOGUE | 11658 return pCurrentScreen == SCREEN_NPC_DIALOGUE || pCurrentScreen == SCREEN_CHARACTERS || |
11657 || pCurrentScreen == SCREEN_CHARACTERS | 11659 pCurrentScreen > SCREEN_LOADGAME && pCurrentScreen <= SCREEN_E || |
11658 || pCurrentScreen > SCREEN_LOADGAME | 11660 pCurrentScreen > SCREEN_VIDEO && pCurrentScreen <= SCREEN_INPUT_BLV || pCurrentScreen == SCREEN_CASTING; |
11659 && (pCurrentScreen <= SCREEN_E | |
11660 || pCurrentScreen > SCREEN_VIDEO | |
11661 && (pCurrentScreen <= SCREEN_INPUT_BLV | |
11662 || pCurrentScreen == SCREEN_CASTING)); | |
11663 } | 11661 } |
11664 // 4E28F8: using guessed type int pCurrentScreen; | 11662 // 4E28F8: using guessed type int pCurrentScreen; |
11665 | 11663 |
11666 //----- (00441498) -------------------------------------------------------- | 11664 //----- (00441498) -------------------------------------------------------- |
11667 void __cdecl GameUI_DrawTorchlightAndWizardEye() | 11665 void __cdecl GameUI_DrawTorchlightAndWizardEye() |
11668 { | 11666 { |
11669 unsigned int v0; // eax@15 | 11667 if (pCurrentScreen == SCREEN_GAME |
11670 IconFrame *v1; // eax@15 | |
11671 unsigned int v2; // eax@19 | |
11672 IconFrame *v3; // eax@19 | |
11673 | |
11674 if ( !pCurrentScreen | |
11675 || pCurrentScreen == SCREEN_MENU | 11668 || pCurrentScreen == SCREEN_MENU |
11676 || pCurrentScreen == SCREEN_OPTIONS | 11669 || pCurrentScreen == SCREEN_OPTIONS |
11677 || pCurrentScreen == SCREEN_REST | 11670 || pCurrentScreen == SCREEN_REST |
11678 || pCurrentScreen == SCREEN_SPELL_BOOK | 11671 || pCurrentScreen == SCREEN_SPELL_BOOK |
11679 || pCurrentScreen == SCREEN_CHEST | 11672 || pCurrentScreen == SCREEN_CHEST |
11681 || pCurrentScreen == SCREEN_LOADGAME | 11674 || pCurrentScreen == SCREEN_LOADGAME |
11682 || pCurrentScreen == SCREEN_F | 11675 || pCurrentScreen == SCREEN_F |
11683 || pCurrentScreen == SCREEN_BOOKS | 11676 || pCurrentScreen == SCREEN_BOOKS |
11684 || pCurrentScreen == SCREEN_BRANCHLESS_NPC_DIALOG ) | 11677 || pCurrentScreen == SCREEN_BRANCHLESS_NPC_DIALOG ) |
11685 { | 11678 { |
11686 if ( SHIDWORD(pParty->pPartyBuffs[16].uExpireTime) >= 0 | 11679 if (pParty->TorchlightActive()) |
11687 && (SHIDWORD(pParty->pPartyBuffs[16].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[16].uExpireTime)) ) | 11680 { |
11688 { | 11681 auto icon = pIconsFrameTable->GetFrame((signed __int16)pUIAnum_Torchlight->uIconID, pEventTimer->Time()); |
11689 v0 = pEventTimer->Time(); | 11682 pRenderer->DrawTextureTransparent(pUIAnum_Torchlight->x, pUIAnum_Torchlight->y, pIcons_LOD->GetTexture(icon->uTextureID)); |
11690 v1 = pIconsFrameTable->GetFrame((signed __int16)pUIAnum_Torchlight->uIconID, v0); | 11683 } |
11691 pRenderer->DrawTextureTransparent( | 11684 if (pParty->WizardEyeActive()) |
11692 pUIAnum_Torchlight->x, | 11685 { |
11693 pUIAnum_Torchlight->y, | 11686 auto icon = pIconsFrameTable->GetFrame((signed __int16)pUIAnim_WizardEye->uIconID, pEventTimer->Time()); |
11694 &pIcons_LOD->pTextures[v1->uTextureID]); | 11687 pRenderer->DrawTextureTransparent(pUIAnim_WizardEye->x, pUIAnim_WizardEye->y, pIcons_LOD->GetTexture(icon->uTextureID)); |
11695 } | |
11696 if ( SHIDWORD(pParty->pPartyBuffs[19].uExpireTime) >= 0 | |
11697 && (SHIDWORD(pParty->pPartyBuffs[19].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[19].uExpireTime)) ) | |
11698 { | |
11699 v2 = pEventTimer->Time(); | |
11700 v3 = pIconsFrameTable->GetFrame((signed __int16)pUIAnim_WizardEye->uIconID, v2); | |
11701 pRenderer->DrawTextureTransparent( | |
11702 pUIAnim_WizardEye->x, | |
11703 pUIAnim_WizardEye->y, | |
11704 &pIcons_LOD->pTextures[v3->uTextureID]); | |
11705 } | 11688 } |
11706 } | 11689 } |
11707 } | 11690 } |
11708 // 4E28F8: using guessed type int pCurrentScreen; | 11691 // 4E28F8: using guessed type int pCurrentScreen; |
11709 | 11692 |
11717 &pIcons_LOD->pTextures[dword_50C98C]); | 11700 &pIcons_LOD->pTextures[dword_50C98C]); |
11718 } | 11701 } |
11719 | 11702 |
11720 | 11703 |
11721 //----- (004415C5) -------------------------------------------------------- | 11704 //----- (004415C5) -------------------------------------------------------- |
11722 void __cdecl Load_isn_spells_21_27() | 11705 void LoadPartyBuffIcons() |
11723 { | 11706 { |
11724 signed int v0; // esi@1 | 11707 for (uint i = 0; i < 14; ++i) |
11725 char pContainer[120]; // [sp+8h] [bp-20h]@2 | 11708 { |
11726 | 11709 char filename[200]; |
11727 v0 = 0; | 11710 sprintf(filename, "isn-%02d", i + 1); |
11728 do | 11711 pTextureIDs_PartyBuffIcons[i] = pIcons_LOD->LoadTexture(filename, TEXTURE_16BIT_PALETTE); |
11729 { | 11712 } |
11730 sprintf(pContainer, "isn-%02d", v0 + 1); | 11713 |
11731 pTextureIDs_isns[v0++] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | 11714 uIconIdx_FlySpell = pIconsFrameTable->FindIcon("spell21"); |
11732 } | 11715 uIconIdx_WaterWalk = pIconsFrameTable->FindIcon("spell27"); |
11733 while ( v0 < 14 ); | |
11734 uIconIdx_Spell21 = pIconsFrameTable->FindIcon("spell21"); | |
11735 uIconIdx_Spell27 = pIconsFrameTable->FindIcon("spell27"); | |
11736 } | 11716 } |
11737 | 11717 |
11738 //----- (0044162D) -------------------------------------------------------- | 11718 //----- (0044162D) -------------------------------------------------------- |
11739 void __cdecl GameUI_DrawPartySpells() | 11719 void __cdecl GameUI_DrawPartySpells() |
11740 { | 11720 { |
11741 unsigned int v0; // ebp@1 | 11721 unsigned int v0; // ebp@1 |
11742 signed int v1; // edi@1 | 11722 //signed int v1; // edi@1 |
11743 int v2; // eax@2 | 11723 //int v2; // eax@2 |
11744 int v3; // ecx@5 | 11724 //int v3; // ecx@5 |
11745 __int16 *v4; // ebx@25 | 11725 //__int16 *v4; // ebx@25 |
11746 Player *v5; // edi@26 | 11726 //Player *v5; // edi@26 |
11747 unsigned int v6; // [sp-4h] [bp-1Ch]@11 | 11727 //unsigned int v6; // [sp-4h] [bp-1Ch]@11 |
11748 Texture *v7; // [sp-4h] [bp-1Ch]@12 | 11728 Texture *v7; // [sp-4h] [bp-1Ch]@12 |
11749 unsigned int v8; // [sp-4h] [bp-1Ch]@20 | 11729 //unsigned int v8; // [sp-4h] [bp-1Ch]@20 |
11750 Texture *v9; // [sp-4h] [bp-1Ch]@21 | 11730 Texture *v9; // [sp-4h] [bp-1Ch]@21 |
11751 Player **v10; // [sp+10h] [bp-8h]@25 | 11731 //Player **v10; // [sp+10h] [bp-8h]@25 |
11752 | 11732 |
11753 v0 = (signed __int64)((double)GetTickCount() * 0.050000001); | 11733 v0 = (signed __int64)((double)GetTickCount() * 0.050000001); |
11754 v1 = 0; | 11734 //v1 = 0; |
11755 do | 11735 for (uint i = 0; i < 14; ++i) |
11756 { | 11736 { |
11757 v2 = (unsigned __int8)byte_4E5DD8[v1]; | 11737 //v2 = byte_4E5DD8[v1]; |
11758 if ( SHIDWORD(pParty->pPartyBuffs[v2].uExpireTime) >= 0 | 11738 if (pParty->pPartyBuffs[byte_4E5DD8[i]].uExpireTime) |
11759 && (SHIDWORD(pParty->pPartyBuffs[v2].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[v2].uExpireTime) > 0) ) | 11739 { |
11760 { | 11740 auto tex = pIcons_LOD->GetTexture(pTextureIDs_PartyBuffIcons[i]); |
11761 v3 = pTextureIDs_isns[v1]; | 11741 //v3 = pTextureIDs_PartyBuffIcons[i]; |
11762 pRenderer->_4A65CC( | 11742 if (tex) |
11763 pPartySpellbuffsUI_XYs[v1][0], | 11743 pRenderer->_4A65CC(pPartySpellbuffsUI_XYs[i][0], |
11764 pPartySpellbuffsUI_XYs[v1][1], | 11744 pPartySpellbuffsUI_XYs[i][1], tex, tex, |
11765 (Texture *)(v3 != -1 ? &pIcons_LOD->pTextures[v3] : 0), | 11745 v0 + 20 * pPartySpellbuffsUI_smthns[i], 0, 63); |
11766 (Texture *)(v3 != -1 ? &pIcons_LOD->pTextures[v3] : 0), | 11746 } |
11767 v0 + 20 * pPartySpellbuffsUI_smthns[v1], | 11747 //++v1; |
11768 0, | 11748 } |
11769 63); | 11749 //while ( v1 < 14 ); |
11770 } | 11750 |
11771 ++v1; | 11751 if (pCurrentScreen == SCREEN_GAME || pCurrentScreen == SCREEN_NPC_DIALOGUE) |
11772 } | 11752 { |
11773 while ( v1 < 14 ); | 11753 if (pParty->FlyActive()) |
11774 if ( !pCurrentScreen | |
11775 || pCurrentScreen == SCREEN_NPC_DIALOGUE ) | |
11776 { | |
11777 if ( (signed __int64)pParty->pPartyBuffs[7].uExpireTime > 0 ) | |
11778 { | 11754 { |
11779 if ( pParty->bFlying ) | 11755 if ( pParty->bFlying ) |
11780 v6 = v0; | 11756 v7 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_FlySpell, v0)->uTextureID]; |
11781 else | 11757 else |
11782 v6 = 0; | 11758 v7 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_FlySpell, 0)->uTextureID]; |
11783 v7 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_Spell21, v6)->uTextureID]; | |
11784 if ( pRenderer->pRenderD3D ) | 11759 if ( pRenderer->pRenderD3D ) |
11785 pRenderer->DrawTextureIndexed(8u, 8u, v7); | 11760 pRenderer->DrawTextureIndexed(8u, 8u, v7); |
11786 else | 11761 else |
11787 pRenderer->DrawTextureTransparent(8u, 8u, v7); | 11762 pRenderer->DrawTextureTransparent(8u, 8u, v7); |
11788 } | 11763 } |
11789 if ( SHIDWORD(pParty->pPartyBuffs[18].uExpireTime) >= 0 | 11764 if (pParty->WaterWalkActive()) |
11790 && (SHIDWORD(pParty->pPartyBuffs[18].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[18].uExpireTime)) ) | 11765 { |
11791 { | 11766 if ( pParty->uFlags & PARTY_FLAGS_1_STANDING_ON_WATER) |
11792 if ( pParty->uFlags & 0x80 ) | 11767 v9 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_WaterWalk, v0)->uTextureID]; |
11793 v8 = v0; | |
11794 else | 11768 else |
11795 v8 = 0; | 11769 v9 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_WaterWalk, 0)->uTextureID]; |
11796 v9 = &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconIdx_Spell27, v8)->uTextureID]; | |
11797 if ( pRenderer->pRenderD3D ) | 11770 if ( pRenderer->pRenderD3D ) |
11798 pRenderer->DrawTextureIndexed(396u, 8u, v9); | 11771 pRenderer->DrawTextureIndexed(396u, 8u, v9); |
11799 else | 11772 else |
11800 pRenderer->DrawTextureTransparent(396u, 8u, v9); | 11773 pRenderer->DrawTextureTransparent(396u, 8u, v9); |
11801 } | 11774 } |
11802 } | 11775 } |
11803 | 11776 |
11804 uint _it = 0; | 11777 for (uint i = 0; i < 4; ++i) |
11805 v10 = &pPlayers[1]; | 11778 { |
11806 v4 = pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing; | 11779 auto player = pParty->pPlayers + i; |
11807 do | 11780 |
11808 { | 11781 if (player->pPlayerBuffs[PLAYER_BUFF_HAMMERHANDS].uExpireTime) |
11809 v5 = *v10; | 11782 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 427, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_Hammerhands)); |
11810 if ( (signed __int64)(*v10)->pPlayerBuffs[6].uExpireTime > 0 ) | 11783 if (player->pPlayerBuffs[PLAYER_BUFF_BLESS].uExpireTime) |
11811 pRenderer->DrawTextureIndexed( | 11784 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 393, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_Bless)); |
11812 *v4 + 72, | 11785 if (player->pPlayerBuffs[PLAYER_BUFF_PRESERVATION].uExpireTime) |
11813 0x1ABu, | 11786 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 410, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_Preservation)); |
11814 (Texture *)(dword_507964 != -1 ? &pIcons_LOD->pTextures[dword_507964] : 0)); | 11787 if (player->pPlayerBuffs[PLAYER_BUFF_PAIN_REFLECTION].uExpireTime) |
11815 if ( (signed __int64)v5->pPlayerBuffs[1].uExpireTime > 0 ) | 11788 pRenderer->DrawTextureIndexed(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 72, 444, pIcons_LOD->GetTexture(uTextureID_PlayerBuff_PainReflection)); |
11816 pRenderer->DrawTextureIndexed( | 11789 } |
11817 *v4 + 72, | |
11818 0x189u, | |
11819 (Texture *)(dword_50796C != -1 ? &pIcons_LOD->pTextures[dword_50796C] : 0)); | |
11820 if ( (signed __int64)v5->pPlayerBuffs[11].uExpireTime > 0 ) | |
11821 pRenderer->DrawTextureIndexed( | |
11822 *v4 + 72, | |
11823 0x19Au, | |
11824 (Texture *)(dword_507968 != -1 ? &pIcons_LOD->pTextures[dword_507968] : 0)); | |
11825 if ( (signed __int64)v5->pPlayerBuffs[10].uExpireTime > 0 ) | |
11826 pRenderer->DrawTextureIndexed( | |
11827 *v4 + 72, | |
11828 0x1BCu, | |
11829 (Texture *)(dword_507960 != -1 ? &pIcons_LOD->pTextures[dword_507960] : 0)); | |
11830 ++v10; | |
11831 ++v4; | |
11832 } | |
11833 //while ( (signed int)v4 < (signed int)pBaseHealthByClass ); | |
11834 while (++_it != 4); | |
11835 } | 11790 } |
11836 | 11791 |
11837 //----- (00441A4E) -------------------------------------------------------- | 11792 //----- (00441A4E) -------------------------------------------------------- |
11838 __int16 __fastcall sub_441A4E(int a1) | 11793 __int16 __fastcall sub_441A4E(int a1) |
11839 { | 11794 { |
15520 unsigned __int16 v27; // ax@59 | 15475 unsigned __int16 v27; // ax@59 |
15521 int j; // esi@60 | 15476 int j; // esi@60 |
15522 signed int v29; // edx@66 | 15477 signed int v29; // edx@66 |
15523 char *v30; // ecx@67 | 15478 char *v30; // ecx@67 |
15524 unsigned __int16 v31; // ax@70 | 15479 unsigned __int16 v31; // ax@70 |
15525 Player *v32; // eax@80 | 15480 //Player *v32; // eax@80 |
15526 unsigned __int16 v33; // si@85 | 15481 //unsigned __int16 v33; // si@85 |
15527 int v34; // eax@96 | 15482 int v34; // eax@96 |
15528 int v35; // eax@97 | 15483 int v35; // eax@97 |
15529 unsigned __int64 v36; // qax@99 | 15484 unsigned __int64 v36; // qax@99 |
15530 SpellBuff *v37; // ecx@99 | 15485 SpellBuff *v37; // ecx@99 |
15531 int v38; // esi@103 | 15486 int v38; // esi@103 |
15533 int v40; // ebx@108 | 15488 int v40; // ebx@108 |
15534 int v41; // ebx@109 | 15489 int v41; // ebx@109 |
15535 int v42; // esi@111 | 15490 int v42; // esi@111 |
15536 int v43; // ebx@111 | 15491 int v43; // ebx@111 |
15537 int v44; // eax@117 | 15492 int v44; // eax@117 |
15538 unsigned __int16 v45; // si@137 | 15493 //unsigned __int16 v45; // si@137 |
15539 unsigned __int16 v46; // [sp-8h] [bp-BCh]@99 | 15494 unsigned __int16 v46; // [sp-8h] [bp-BCh]@99 |
15540 int v47; // [sp-4h] [bp-B8h]@35 | 15495 int v47; // [sp-4h] [bp-B8h]@35 |
15541 unsigned __int16 v48; // [sp-4h] [bp-B8h]@99 | 15496 unsigned __int16 v48; // [sp-4h] [bp-B8h]@99 |
15542 int v49; // [sp+0h] [bp-B4h]@35 | 15497 int v49; // [sp+0h] [bp-B4h]@35 |
15543 int v50; // [sp+0h] [bp-B4h]@99 | 15498 int v50; // [sp+0h] [bp-B4h]@99 |
15549 unsigned int yaw; // [sp+30h] [bp-84h]@7 | 15504 unsigned int yaw; // [sp+30h] [bp-84h]@7 |
15550 int pitch; // [sp+34h] [bp-80h]@7 | 15505 int pitch; // [sp+34h] [bp-80h]@7 |
15551 //SpriteObject a1; // [sp+38h] [bp-7Ch]@12 | 15506 //SpriteObject a1; // [sp+38h] [bp-7Ch]@12 |
15552 int v59; // [sp+A8h] [bp-Ch]@1 | 15507 int v59; // [sp+A8h] [bp-Ch]@1 |
15553 int v60; // [sp+ACh] [bp-8h]@1 | 15508 int v60; // [sp+ACh] [bp-8h]@1 |
15554 int spellnum_; // [sp+B0h] [bp-4h]@1 | 15509 //int spellnum_; // [sp+B0h] [bp-4h]@1 |
15555 signed int levela; // [sp+BCh] [bp+8h]@80 | 15510 //signed int levela; // [sp+BCh] [bp+8h]@80 |
15556 int a6_4; // [sp+C8h] [bp+14h]@117 | 15511 int a6_4; // [sp+C8h] [bp+14h]@117 |
15557 float a7a; // [sp+CCh] [bp+18h]@6 | 15512 float a7a; // [sp+CCh] [bp+18h]@6 |
15558 signed int a7b; // [sp+CCh] [bp+18h]@12 | 15513 signed int a7b; // [sp+CCh] [bp+18h]@12 |
15559 int a7c; // [sp+CCh] [bp+18h]@29 | 15514 int a7c; // [sp+CCh] [bp+18h]@29 |
15560 int a7d; // [sp+CCh] [bp+18h]@55 | 15515 int a7d; // [sp+CCh] [bp+18h]@55 |
15563 int a8c; // [sp+D0h] [bp+1Ch]@55 | 15518 int a8c; // [sp+D0h] [bp+1Ch]@55 |
15564 float toza; // [sp+D4h] [bp+20h]@6 | 15519 float toza; // [sp+D4h] [bp+20h]@6 |
15565 | 15520 |
15566 v9 = 0; | 15521 v9 = 0; |
15567 v59 = rank + 1; | 15522 v59 = rank + 1; |
15568 spellnum_ = spellnum; | 15523 //spellnum_ = spellnum; |
15569 v60 = 0; | 15524 v60 = 0; |
15570 if ( tox || toy || toz ) | 15525 if ( tox || toy || toz ) |
15571 { | 15526 { |
15572 v10 = (double)tox - (double)fromx; | 15527 v10 = (double)tox - (double)fromx; |
15573 v53 = v10; | 15528 v53 = v10; |
15606 a7b = v15; | 15561 a7b = v15; |
15607 | 15562 |
15608 SpriteObject a1; // [sp+38h] [bp-7Ch]@12 | 15563 SpriteObject a1; // [sp+38h] [bp-7Ch]@12 |
15609 //SpriteObject::SpriteObject(&a1); | 15564 //SpriteObject::SpriteObject(&a1); |
15610 | 15565 |
15611 a1.uType = stru_4E3ACC[spellnum_].field_0; | 15566 a1.uType = stru_4E3ACC[spellnum].field_0; |
15612 if ( spellnum_ > 58 ) | 15567 if ( spellnum > 58 ) |
15613 { | 15568 { |
15614 if ( spellnum_ == 69 ) | 15569 if ( spellnum == 69 ) |
15615 goto LABEL_117; | 15570 goto LABEL_117; |
15616 if ( spellnum_ != 83 ) | 15571 if ( spellnum != 83 ) |
15617 return; | 15572 return; |
15618 v40 = v15 - 2; | 15573 v40 = v15 - 2; |
15619 if ( v40 ) | 15574 if ( v40 ) |
15620 { | 15575 { |
15621 v41 = v40 - 1; | 15576 v41 = v40 - 1; |
15649 v36 = pParty->uTimePlayed + v39; | 15604 v36 = pParty->uTimePlayed + v39; |
15650 LABEL_116: | 15605 LABEL_116: |
15651 v37->Apply(v36, v46, v48, v50, v52); | 15606 v37->Apply(v36, v46, v48, v50, v52); |
15652 goto LABEL_139; | 15607 goto LABEL_139; |
15653 } | 15608 } |
15654 if ( spellnum_ != 58 ) | 15609 if ( spellnum != 58 ) |
15655 { | 15610 { |
15656 switch ( spellnum_ ) | 15611 switch ( spellnum ) |
15657 { | 15612 { |
15658 case 2: | 15613 case 2: |
15659 case 6: | 15614 case 6: |
15660 case 18: | 15615 case 18: |
15661 case 26: | 15616 case 26: |
15663 case 32: | 15618 case 32: |
15664 case 39: | 15619 case 39: |
15665 case 41: | 15620 case 41: |
15666 a1.stru_24.Reset(); | 15621 a1.stru_24.Reset(); |
15667 v16 = 0; | 15622 v16 = 0; |
15668 a1.field_48 = spellnum_; | 15623 a1.field_48 = spellnum; |
15669 a1.field_4C = level; | 15624 a1.field_4C = level; |
15670 a1.field_50 = v15; | 15625 a1.field_50 = v15; |
15671 if ( (signed int)pObjectList->uNumObjects <= 0 ) | 15626 if ( (signed int)pObjectList->uNumObjects <= 0 ) |
15672 goto LABEL_34; | 15627 goto LABEL_34; |
15673 v17 = (char *)&pObjectList->pObjects->uObjectID; | 15628 v17 = (char *)&pObjectList->pObjects->uObjectID; |
15701 if ( v60 != 1 ) | 15656 if ( v60 != 1 ) |
15702 { | 15657 { |
15703 a8b = a7c / (v60 - 1); | 15658 a8b = a7c / (v60 - 1); |
15704 a1.stru_24.Reset(); | 15659 a1.stru_24.Reset(); |
15705 v21 = 0; | 15660 v21 = 0; |
15706 a1.field_48 = spellnum_; | 15661 a1.field_48 = spellnum; |
15707 a1.field_4C = level; | 15662 a1.field_4C = level; |
15708 a1.field_50 = v15; | 15663 a1.field_50 = v15; |
15709 if ( (signed int)pObjectList->uNumObjects <= 0 ) | 15664 if ( (signed int)pObjectList->uNumObjects <= 0 ) |
15710 { | 15665 { |
15711 LABEL_41: | 15666 LABEL_41: |
15744 } | 15699 } |
15745 goto LABEL_139; | 15700 goto LABEL_139; |
15746 } | 15701 } |
15747 a1.stru_24.Reset(); | 15702 a1.stru_24.Reset(); |
15748 v16 = 0; | 15703 v16 = 0; |
15749 a1.field_48 = spellnum_; | 15704 a1.field_48 = spellnum; |
15750 a1.field_4C = level; | 15705 a1.field_4C = level; |
15751 a1.field_50 = v15; | 15706 a1.field_50 = v15; |
15752 if ( (signed int)pObjectList->uNumObjects <= 0 ) | 15707 if ( (signed int)pObjectList->uNumObjects <= 0 ) |
15753 goto LABEL_34; | 15708 goto LABEL_34; |
15754 v19 = (char *)&pObjectList->pObjects->uObjectID; | 15709 v19 = (char *)&pObjectList->pObjects->uObjectID; |
15797 } | 15752 } |
15798 a7d = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360; | 15753 a7d = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360; |
15799 a8c = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360 / (v60 - 1); | 15754 a8c = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360 / (v60 - 1); |
15800 a1.stru_24.Reset(); | 15755 a1.stru_24.Reset(); |
15801 v25 = 0; | 15756 v25 = 0; |
15802 a1.field_48 = spellnum_; | 15757 a1.field_48 = spellnum; |
15803 a1.field_4C = level; | 15758 a1.field_4C = level; |
15804 a1.field_50 = v15; | 15759 a1.field_50 = v15; |
15805 if ( (signed int)pObjectList->uNumObjects <= 0 ) | 15760 if ( (signed int)pObjectList->uNumObjects <= 0 ) |
15806 goto LABEL_59; | 15761 goto LABEL_59; |
15807 v26 = (char *)&pObjectList->pObjects->uObjectID; | 15762 v26 = (char *)&pObjectList->pObjects->uObjectID; |
15841 case 43: | 15796 case 43: |
15842 if ( uCurrentlyLoadedLevelType == LEVEL_Indoor ) | 15797 if ( uCurrentlyLoadedLevelType == LEVEL_Indoor ) |
15843 return; | 15798 return; |
15844 a1.stru_24.Reset(); | 15799 a1.stru_24.Reset(); |
15845 v29 = 0; | 15800 v29 = 0; |
15846 a1.field_48 = spellnum_; | 15801 a1.field_48 = spellnum; |
15847 a1.field_4C = level; | 15802 a1.field_4C = level; |
15848 a1.field_50 = v15; | 15803 a1.field_50 = v15; |
15849 if ( (signed int)pObjectList->uNumObjects <= 0 ) | 15804 if ( (signed int)pObjectList->uNumObjects <= 0 ) |
15850 goto LABEL_70; | 15805 goto LABEL_70; |
15851 v30 = (char *)&pObjectList->pObjects->uObjectID; | 15806 v30 = (char *)&pObjectList->pObjects->uObjectID; |
15852 break; | 15807 break; |
15853 case 5: | 15808 |
15809 case SPELL_FIRE_HASTE: | |
15854 if ( v15 > 0 ) | 15810 if ( v15 > 0 ) |
15855 { | 15811 { |
15856 if ( v15 <= 2 ) | 15812 if ( v15 <= 2 ) |
15857 { | 15813 { |
15858 v9 = 60 * (level + 60); | 15814 v9 = 60 * (level + 60); |
15868 if ( v15 == 4 ) | 15824 if ( v15 == 4 ) |
15869 v9 = 240 * (level + 15); | 15825 v9 = 240 * (level + 15); |
15870 } | 15826 } |
15871 } | 15827 } |
15872 } | 15828 } |
15873 levela = 1; | 15829 //levela = 1; |
15874 v32 = pParty->pPlayers;//[0].pConditions[1]; | 15830 //v32 = pParty->pPlayers;//[0].pConditions[1]; |
15875 do | 15831 //do |
15876 { | 15832 for (uint i = 0; i < 4; ++i) |
15877 if ( v32->pConditions[1] ) | 15833 if (pParty->pPlayers[i].pConditions[Player::Condition_Weak]) |
15878 levela = 0; | 15834 return; |
15879 ++v32; | 15835 //while ( v32 <= &pParty->pPlayers[3] ); |
15880 } | 15836 //if ( !levela ) |
15881 while ( v32 <= &pParty->pPlayers[3] ); | 15837 // return; |
15882 if ( !levela ) | 15838 pParty->pPartyBuffs[PARTY_BUFF_HASTE].Apply(pParty->uTimePlayed + (signed int)(signed __int64)((double)(v9 * 128) * 0.033333335), |
15883 return; | |
15884 pParty->pPartyBuffs[8].Apply( | |
15885 pParty->uTimePlayed + (signed int)(signed __int64)((double)(v9 << 7) * 0.033333335), | |
15886 v15, | 15839 v15, |
15887 0, | 15840 0, |
15888 0, | 15841 0, |
15889 0); | 15842 0); |
15890 v33 = spellnum_; | 15843 //v33 = spellnum_; |
15891 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 0); | 15844 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 0); |
15892 pGame->pStru6Instance->SetPlayerBuffAnim(v33, 1u); | 15845 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 1); |
15893 pGame->pStru6Instance->SetPlayerBuffAnim(v33, 2u); | 15846 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 2); |
15894 pGame->pStru6Instance->SetPlayerBuffAnim(v33, 3u); | 15847 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 3); |
15895 goto LABEL_138; | 15848 goto LABEL_138; |
15896 case 17: | 15849 case 17: |
15897 case 38: | 15850 case 38: |
15898 case 51: | 15851 case 51: |
15899 switch ( v15 ) | 15852 switch ( v15 ) |
15907 break; | 15860 break; |
15908 case 4: | 15861 case 4: |
15909 v9 = 3600 * (level + 1); | 15862 v9 = 3600 * (level + 1); |
15910 break; | 15863 break; |
15911 } | 15864 } |
15912 switch ( spellnum_ ) | 15865 switch ( spellnum ) |
15913 { | 15866 { |
15914 case 17: | 15867 case 17: |
15915 v60 = 0; | 15868 v60 = 0; |
15916 level = 14; | 15869 level = 14; |
15917 break; | 15870 break; |
15924 v34 = level + 5; | 15877 v34 = level + 5; |
15925 level = 9; | 15878 level = 9; |
15926 v60 = v34; | 15879 v60 = v34; |
15927 break; | 15880 break; |
15928 } | 15881 } |
15929 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 0); | 15882 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 0); |
15930 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 1u); | 15883 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 1); |
15931 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 2u); | 15884 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 2); |
15932 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 3u); | 15885 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 3); |
15933 v52 = 0; | 15886 v52 = 0; |
15934 v50 = 0; | 15887 v50 = 0; |
15935 v48 = v60; | 15888 v48 = v60; |
15936 v46 = v15; | 15889 v46 = v15; |
15937 v36 = pParty->uTimePlayed + (signed int)(signed __int64)((double)(v9 << 7) * 0.033333335); | 15890 v36 = pParty->uTimePlayed + (signed int)(signed __int64)((double)(v9 << 7) * 0.033333335); |
15940 case 8: | 15893 case 8: |
15941 if ( v15 == 2 || v15 == 3 || v15 != 4 ) | 15894 if ( v15 == 2 || v15 == 3 || v15 != 4 ) |
15942 v38 = 60 * level; | 15895 v38 = 60 * level; |
15943 else | 15896 else |
15944 v38 = 600 * level; | 15897 v38 = 600 * level; |
15945 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 0); | 15898 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 0); |
15946 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 1u); | 15899 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 1); |
15947 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 2u); | 15900 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 2); |
15948 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 3u); | 15901 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 3); |
15949 v52 = 0; | 15902 v52 = 0; |
15950 v50 = 0; | 15903 v50 = 0; |
15951 v48 = level; | 15904 v48 = level; |
15952 v46 = v15; | 15905 v46 = v15; |
15953 v39 = (signed __int64)((double)(v38 << 7) * 0.033333335); | 15906 v39 = (signed __int64)((double)(v38 << 7) * 0.033333335); |
16015 { | 15968 { |
16016 v44 = 4 * level; | 15969 v44 = 4 * level; |
16017 goto LABEL_124; | 15970 goto LABEL_124; |
16018 } | 15971 } |
16019 LABEL_125: | 15972 LABEL_125: |
16020 switch ( spellnum_ ) | 15973 switch ( spellnum ) |
16021 { | 15974 { |
16022 case 3: | 15975 case 3: |
16023 level = 6; | 15976 level = 6; |
16024 break; | 15977 break; |
16025 case 14: | 15978 case 14: |
16036 break; | 15989 break; |
16037 case 69: | 15990 case 69: |
16038 level = 1; | 15991 level = 1; |
16039 break; | 15992 break; |
16040 } | 15993 } |
16041 v45 = spellnum_; | 15994 //v45 = spellnum_; |
16042 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum_, 0); | 15995 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 0); |
16043 pGame->pStru6Instance->SetPlayerBuffAnim(v45, 1u); | 15996 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 1); |
16044 pGame->pStru6Instance->SetPlayerBuffAnim(v45, 2u); | 15997 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 2); |
16045 pGame->pStru6Instance->SetPlayerBuffAnim(v45, 3u); | 15998 pGame->pStru6Instance->SetPlayerBuffAnim(spellnum, 3); |
16046 pParty->pPartyBuffs[level].Apply( | 15999 pParty->pPartyBuffs[level].Apply( |
16047 pParty->uTimePlayed + (signed int)(signed __int64)((double)a6_4 * 4.2666669), | 16000 pParty->uTimePlayed + (signed int)(signed __int64)((double)a6_4 * 4.2666669), |
16048 v15, | 16001 v15, |
16049 v60, | 16002 v60, |
16050 0, | 16003 0, |
16051 0); | 16004 0); |
16052 levela = 1; | 16005 //levela = 1; |
16053 LABEL_138: | 16006 LABEL_138: |
16054 if ( levela ) | 16007 //if ( levela ) |
16055 LABEL_139: | 16008 LABEL_139: |
16056 pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[spellnum_], 0, 0, fromx, fromy, 0, 0, 0); | 16009 pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[spellnum], 0, 0, fromx, fromy, 0, 0, 0); |
16057 } | 16010 } |
16058 // 4EE088: using guessed type __int16 word_4EE088_sound_ids[]; | 16011 // 4EE088: using guessed type __int16 word_4EE088_sound_ids[]; |
16059 | 16012 |
16060 //----- (0044987B) -------------------------------------------------------- | 16013 //----- (0044987B) -------------------------------------------------------- |
16061 char *__fastcall sub_44987B(const char *pMapName, unsigned int uStartingPointType) | 16014 char *__fastcall sub_44987B(const char *pMapName, unsigned int uStartingPointType) |