comparison CastSpellInfo.cpp @ 1463:b330df6a2183

Слияние
author Ritor1
date Sun, 11 Aug 2013 12:09:33 +0600
parents bfe342ae0c1f
children 2ca62c9e7b3c
comparison
equal deleted inserted replaced
1462:f682c853200d 1463:b330df6a2183
428 //v646 = pPlayer; 428 //v646 = pPlayer;
429 //v648 = sRecoveryTime; 429 //v648 = sRecoveryTime;
430 //v649 = pPlayer; 430 //v649 = pPlayer;
431 pParty->pTurnBasedPlayerRecoveryTimes[this[n].uPlayerID] = 100; 431 pParty->pTurnBasedPlayerRecoveryTimes[this[n].uPlayerID] = 100;
432 pPlayer->SetRecoveryTime(sRecoveryTime); 432 pPlayer->SetRecoveryTime(sRecoveryTime);
433 pTurnEngine->_40471C(); 433 pTurnEngine->ApplyPlayerAction();
434 } 434 }
435 ShowStatusBarString(pGlobalTXT_LocalizationStrings[428], 2u); // "Spell failed" 435 ShowStatusBarString(pGlobalTXT_LocalizationStrings[428], 2u); // "Spell failed"
436 pAudioPlayer->PlaySound(SOUND_PlayerCantCastSpell, 0, 0, -1, 0, 0, 0, 0); 436 pAudioPlayer->PlaySound(SOUND_PlayerCantCastSpell, 0, 0, -1, 0, 0, 0, 0);
437 this[n].spellnum = 0; 437 this[n].spellnum = 0;
438 pPlayer->sMana -= uRequiredMana; 438 pPlayer->sMana -= uRequiredMana;
476 if ( i ) 476 if ( i )
477 pSpellSprite.vPosition.z += 32; 477 pSpellSprite.vPosition.z += 32;
478 pSpellSprite.uSectorID = pIndoor->GetSector(pSpellSprite.vPosition.x, pSpellSprite.vPosition.y, pSpellSprite.vPosition.z); 478 pSpellSprite.uSectorID = pIndoor->GetSector(pSpellSprite.vPosition.x, pSpellSprite.vPosition.y, pSpellSprite.vPosition.z);
479 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed, 479 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed,
480 pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 ) 480 pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 )
481 ++pTurnEngine->field_1C; 481 ++pTurnEngine->pending_actions;
482 } 482 }
483 break; 483 break;
484 } 484 }
485 case SPELL_LASER_PROJECTILE: 485 case SPELL_LASER_PROJECTILE:
486 { 486 {
509 pSpellSprite.uSectorID = v23; 509 pSpellSprite.uSectorID = v23;
510 if ( pParty->bTurnBasedModeOn == 1 ) 510 if ( pParty->bTurnBasedModeOn == 1 )
511 LOBYTE(pSpellSprite.uAttributes) |= 4u; 511 LOBYTE(pSpellSprite.uAttributes) |= 4u;
512 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed, 512 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed,
513 pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 ) 513 pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 )
514 ++pTurnEngine->field_1C; 514 ++pTurnEngine->pending_actions;
515 break; 515 break;
516 } 516 }
517 case SPELL_FIRE_TORCH_LIGHT: 517 case SPELL_FIRE_TORCH_LIGHT:
518 { 518 {
519 switch (v731) 519 switch (v731)
592 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id); 592 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id);
593 if ( pParty->bTurnBasedModeOn == 1 ) 593 if ( pParty->bTurnBasedModeOn == 1 )
594 LOBYTE(pSpellSprite.uAttributes) |= 4u; 594 LOBYTE(pSpellSprite.uAttributes) |= 4u;
595 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed; 595 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed;
596 if ( pSpellSprite.Create(pParty->sRotationY, pParty->sRotationX + 10, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 ) 596 if ( pSpellSprite.Create(pParty->sRotationY, pParty->sRotationX + 10, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 )
597 ++pTurnEngine->field_1C; 597 ++pTurnEngine->pending_actions;
598 LODWORD(v727) = 1; 598 LODWORD(v727) = 1;
599 break; 599 break;
600 } 600 }
601 case SPELL_AIR_IMPLOSION: 601 case SPELL_AIR_IMPLOSION:
602 { 602 {
749 LOBYTE(pSpellSprite.uAttributes) |= 4u; 749 LOBYTE(pSpellSprite.uAttributes) |= 4u;
750 if ( pCastSpell->spellnum == SPELL_AIR_LIGHNING_BOLT ) 750 if ( pCastSpell->spellnum == SPELL_AIR_LIGHNING_BOLT )
751 LOBYTE(pSpellSprite.uAttributes) |= 0x40u; 751 LOBYTE(pSpellSprite.uAttributes) |= 0x40u;
752 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed; 752 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed;
753 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 ) 753 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 )
754 ++pTurnEngine->field_1C; 754 ++pTurnEngine->pending_actions;
755 LODWORD(v727) = 1; 755 LODWORD(v727) = 1;
756 break; 756 break;
757 } 757 }
758 case SPELL_WATER_ACID_BURST: 758 case SPELL_WATER_ACID_BURST:
759 case SPELL_EARTH_BLADES: 759 case SPELL_EARTH_BLADES:
784 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id); 784 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id);
785 if ( pParty->bTurnBasedModeOn == 1 ) 785 if ( pParty->bTurnBasedModeOn == 1 )
786 LOBYTE(pSpellSprite.uAttributes) |= 4u; 786 LOBYTE(pSpellSprite.uAttributes) |= 4u;
787 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed; 787 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed;
788 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 ) 788 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 )
789 ++pTurnEngine->field_1C; 789 ++pTurnEngine->pending_actions;
790 LODWORD(v727) = 1; 790 LODWORD(v727) = 1;
791 break; 791 break;
792 } 792 }
793 case SPELL_LIGHT_SUNRAY: 793 case SPELL_LIGHT_SUNRAY:
794 { 794 {
824 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id); 824 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id);
825 if ( pParty->bTurnBasedModeOn == 1 ) 825 if ( pParty->bTurnBasedModeOn == 1 )
826 LOBYTE(pSpellSprite.uAttributes) |= 4u; 826 LOBYTE(pSpellSprite.uAttributes) |= 4u;
827 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed; 827 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed;
828 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 ) 828 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 )
829 ++pTurnEngine->field_1C; 829 ++pTurnEngine->pending_actions;
830 LODWORD(v727) = 1; 830 LODWORD(v727) = 1;
831 } 831 }
832 break; 832 break;
833 } 833 }
834 case SPELL_LIGHT_PARALYZE: 834 case SPELL_LIGHT_PARALYZE:
971 LOBYTE(pSpellSprite.uAttributes) |= 4u; 971 LOBYTE(pSpellSprite.uAttributes) |= 4u;
972 972
973 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed; 973 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed;
974 974
975 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 ) 975 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 )
976 ++pTurnEngine->field_1C; 976 ++pTurnEngine->pending_actions;
977 LODWORD(v727) = 1; 977 LODWORD(v727) = 1;
978 break; 978 break;
979 } 979 }
980 case SPELL_FIRE_FIRE_AURA: 980 case SPELL_FIRE_FIRE_AURA:
981 { 981 {
1391 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id); 1391 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id);
1392 if ( pParty->bTurnBasedModeOn == 1 ) 1392 if ( pParty->bTurnBasedModeOn == 1 )
1393 pSpellSprite.uAttributes = 4; 1393 pSpellSprite.uAttributes = 4;
1394 if ( pSpellSprite.Create(v687, SHIDWORD(v687), pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed, 0) != -1 1394 if ( pSpellSprite.Create(v687, SHIDWORD(v687), pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed, 0) != -1
1395 && pParty->bTurnBasedModeOn == 1 ) 1395 && pParty->bTurnBasedModeOn == 1 )
1396 ++pTurnEngine->field_1C; 1396 ++pTurnEngine->pending_actions;
1397 j = rand() % 1024 - 512; 1397 j = rand() % 1024 - 512;
1398 k = rand() % 1024 - 512; 1398 k = rand() % 1024 - 512;
1399 } 1399 }
1400 while ( i-- != 1 ); 1400 while ( i-- != 1 );
1401 } 1401 }
1538 (signed __int16)(v188 + LOWORD(v715.uYawAngle)), 1538 (signed __int16)(v188 + LOWORD(v715.uYawAngle)),
1539 v715.uPitchAngle, 1539 v715.uPitchAngle,
1540 pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed, 1540 pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed,
1541 pCastSpell->uPlayerID + 1) != -1 1541 pCastSpell->uPlayerID + 1) != -1
1542 && pParty->bTurnBasedModeOn == 1 ) 1542 && pParty->bTurnBasedModeOn == 1 )
1543 ++pTurnEngine->field_1C; 1543 ++pTurnEngine->pending_actions;
1544 v188 += _v726 / (amount - 1); 1544 v188 += _v726 / (amount - 1);
1545 } 1545 }
1546 LODWORD(v727) = 1; 1546 LODWORD(v727) = 1;
1547 break; 1547 break;
1548 } 1548 }
1708 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id); 1708 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id);
1709 if ( pParty->bTurnBasedModeOn == 1 ) 1709 if ( pParty->bTurnBasedModeOn == 1 )
1710 pSpellSprite.uAttributes = 4; 1710 pSpellSprite.uAttributes = 4;
1711 if ( pSpellSprite.Create(v685, SHIDWORD(v685), pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed, 0) != -1 1711 if ( pSpellSprite.Create(v685, SHIDWORD(v685), pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed, 0) != -1
1712 && pParty->bTurnBasedModeOn == 1 ) 1712 && pParty->bTurnBasedModeOn == 1 )
1713 ++pTurnEngine->field_1C; 1713 ++pTurnEngine->pending_actions;
1714 v721 = rand() % 1024 - 512; 1714 v721 = rand() % 1024 - 512;
1715 v218 = rand(); 1715 v218 = rand();
1716 v14 = a2-- == 1; 1716 v14 = a2-- == 1;
1717 _v733 = (unsigned __int64)(v218 % 1024) - 512; 1717 _v733 = (unsigned __int64)(v218 % 1024) - 512;
1718 } 1718 }
1797 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id); 1797 pSpellSprite.uSoundID = LOWORD(pCastSpell->sound_id);
1798 if ( pParty->bTurnBasedModeOn == 1 ) 1798 if ( pParty->bTurnBasedModeOn == 1 )
1799 LOBYTE(pSpellSprite.uAttributes) |= 4u; 1799 LOBYTE(pSpellSprite.uAttributes) |= 4u;
1800 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed; 1800 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed;
1801 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 ) 1801 if ( pSpellSprite.Create(v715.uYawAngle, v715.uPitchAngle, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 )
1802 ++pTurnEngine->field_1C; 1802 ++pTurnEngine->pending_actions;
1803 } 1803 }
1804 else 1804 else
1805 { 1805 {
1806 pSpellSprite.stru_24.Reset(); 1806 pSpellSprite.stru_24.Reset();
1807 pSpellSprite.spell_id = pCastSpell->spellnum; 1807 pSpellSprite.spell_id = pCastSpell->spellnum;
1832 v227 + v228, 1832 v227 + v228,
1833 v715.uPitchAngle, 1833 v715.uPitchAngle,
1834 pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed, 1834 pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed,
1835 pCastSpell->uPlayerID + 1) != -1 1835 pCastSpell->uPlayerID + 1) != -1
1836 && pParty->bTurnBasedModeOn == 1 ) 1836 && pParty->bTurnBasedModeOn == 1 )
1837 ++pTurnEngine->field_1C; 1837 ++pTurnEngine->pending_actions;
1838 v227 += _v733 / (amount - 1); 1838 v227 += _v733 / (amount - 1);
1839 } 1839 }
1840 while ( v227 <= _y ); 1840 while ( v227 <= _y );
1841 } 1841 }
1842 } 1842 }
2207 if ( pParty->bTurnBasedModeOn == 1 ) 2207 if ( pParty->bTurnBasedModeOn == 1 )
2208 LOBYTE(pSpellSprite.uAttributes) |= 4u; 2208 LOBYTE(pSpellSprite.uAttributes) |= 4u;
2209 2209
2210 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed; 2210 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed;
2211 if ( pSpellSprite.Create(pParty->sRotationY, pParty->sRotationX, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 ) 2211 if ( pSpellSprite.Create(pParty->sRotationY, pParty->sRotationX, v659, pCastSpell->uPlayerID + 1) != -1 && pParty->bTurnBasedModeOn == 1 )
2212 ++pTurnEngine->field_1C; 2212 ++pTurnEngine->pending_actions;
2213 LODWORD(v727) = 1; 2213 LODWORD(v727) = 1;
2214 break; 2214 break;
2215 } 2215 }
2216 case SPELL_EARTH_DEATH_BLOSSOM: 2216 case SPELL_EARTH_DEATH_BLOSSOM:
2217 { 2217 {
2244 if ( pParty->bTurnBasedModeOn == 1 ) 2244 if ( pParty->bTurnBasedModeOn == 1 )
2245 pSpellSprite.uAttributes = 4; 2245 pSpellSprite.uAttributes = 4;
2246 2246
2247 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed; 2247 v659 = pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed;
2248 if ( pSpellSprite.Create(pParty->sRotationY, stru_5C6E00->uIntegerHalfPi / 2, v659, 0) != -1 && pParty->bTurnBasedModeOn == 1 ) 2248 if ( pSpellSprite.Create(pParty->sRotationY, stru_5C6E00->uIntegerHalfPi / 2, v659, 0) != -1 && pParty->bTurnBasedModeOn == 1 )
2249 ++pTurnEngine->field_1C; 2249 ++pTurnEngine->pending_actions;
2250 LODWORD(v727) = 1; 2250 LODWORD(v727) = 1;
2251 break; 2251 break;
2252 } 2252 }
2253 case SPELL_SPIRIT_DETECT_LIFE: 2253 case SPELL_SPIRIT_DETECT_LIFE:
2254 { 2254 {
3716 v596 + v597, 3716 v596 + v597,
3717 v715.uPitchAngle, 3717 v715.uPitchAngle,
3718 pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed, 3718 pObjectList->pObjects[(signed __int16)pSpellSprite.uObjectDescID].uSpeed,
3719 pCastSpell->uPlayerID + 1) != -1 3719 pCastSpell->uPlayerID + 1) != -1
3720 && pParty->bTurnBasedModeOn == 1 ) 3720 && pParty->bTurnBasedModeOn == 1 )
3721 ++pTurnEngine->field_1C; 3721 ++pTurnEngine->pending_actions;
3722 v596 += _v726 / (amount - 1); 3722 v596 += _v726 / (amount - 1);
3723 } 3723 }
3724 while ( v596 <= (signed int)y ); 3724 while ( v596 <= (signed int)y );
3725 } 3725 }
3726 LODWORD(v727) = 1; 3726 LODWORD(v727) = 1;
4008 break; 4008 break;
4009 pParty->armageddon_timer = 256; 4009 pParty->armageddon_timer = 256;
4010 pParty->field_16140 = v2; 4010 pParty->field_16140 = v2;
4011 ++pPlayer->uNumArmageddonCasts; 4011 ++pPlayer->uNumArmageddonCasts;
4012 if ( pParty->bTurnBasedModeOn == 1 ) 4012 if ( pParty->bTurnBasedModeOn == 1 )
4013 ++pTurnEngine->field_1C; 4013 ++pTurnEngine->pending_actions;
4014 auto _v726 = 50; 4014 auto _v726 = 50;
4015 do 4015 do
4016 { 4016 {
4017 v642 = rand() % 4096 - 2048; 4017 v642 = rand() % 4096 - 2048;
4018 v643 = rand(); 4018 v643 = rand();
4044 { 4044 {
4045 v645 = sRecoveryTime; 4045 v645 = sRecoveryTime;
4046 pParty->pTurnBasedPlayerRecoveryTimes[pCastSpell->uPlayerID] = sRecoveryTime; 4046 pParty->pTurnBasedPlayerRecoveryTimes[pCastSpell->uPlayerID] = sRecoveryTime;
4047 pPlayer->SetRecoveryTime(v645); 4047 pPlayer->SetRecoveryTime(v645);
4048 if ( !some_active_character ) 4048 if ( !some_active_character )
4049 pTurnEngine->_40471C(); 4049 pTurnEngine->ApplyPlayerAction();
4050 } 4050 }
4051 else 4051 else
4052 { 4052 {
4053 pPlayer->SetRecoveryTime( 4053 pPlayer->SetRecoveryTime(
4054 (signed __int64)(flt_6BE3A4_debug_recmod1 * (double)sRecoveryTime * 2.133333333333333)); 4054 (signed __int64)(flt_6BE3A4_debug_recmod1 * (double)sRecoveryTime * 2.133333333333333));
4384 if ( pGUIWindow_Settings ) 4384 if ( pGUIWindow_Settings )
4385 return; 4385 return;
4386 ++pIcons_LOD->uTexturePacksCount; 4386 ++pIcons_LOD->uTexturePacksCount;
4387 if ( !pIcons_LOD->uNumPrevLoadedFiles ) 4387 if ( !pIcons_LOD->uNumPrevLoadedFiles )
4388 pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; 4388 pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles;
4389 pGUIWindow_Settings = pCastSpellInfo[result].sub_4219BE(); 4389 pGUIWindow_Settings = pCastSpellInfo[result].GetCastSpellInInventoryWindow();
4390 unk_50C9A0 = 1; 4390 unk_50C9A0 = 1;
4391 some_active_character = uActiveCharacter; 4391 some_active_character = uActiveCharacter;
4392 sub_421B2C_PlaceInInventory_or_DropPickedItem(); 4392 sub_421B2C_PlaceInInventory_or_DropPickedItem();
4393 return; 4393 return;
4394 } 4394 }