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)