Mercurial > mm7
changeset 1858:d7c028a6a084
Actor::AI_SpellAttack removing unnecessary temporary vars
author | Grumpy7 |
---|---|
date | Mon, 14 Oct 2013 02:12:01 +0200 |
parents | f357e4cbd169 |
children | f135ff4decbb |
files | Actor.cpp |
diffstat | 1 files changed, 165 insertions(+), 411 deletions(-) [+] |
line wrap: on
line diff
--- a/Actor.cpp Mon Oct 14 00:58:05 2013 +0200 +++ b/Actor.cpp Mon Oct 14 02:12:01 2013 +0200 @@ -206,53 +206,21 @@ unsigned int realPoints; // edi@1 unsigned int masteryLevel; // eax@1 int v8; // edi@16 - int v9; // edi@17 signed int v10; // ecx@22 - signed int v11; // eax@29 - __int16 *v12; // edi@30 - int v13; // ecx@34 - int v14; // edx@34 - int v15; // eax@34 - AIDirection *v16; // esi@34 - unsigned __int16 v17; // di@34 - //int v18; // eax@34 int v19; // edi@34 int v20; // eax@35 - int v21; // eax@39 - SoundID v22; // eax@39 signed int v23; // eax@41 - double v24; // st7@49 - float v25; // ST5C_4@50 - int v26; // eax@50 - double v27; // st7@50 double v28; // st6@50 - float v29; // ST4C_4@51 int v30; // esi@50 int v31; // ST3C_4@51 unsigned int v32; // edi@51 - char *v33; // eax@54 - unsigned __int16 v34; // ax@57 - signed int v35; // ecx@58 signed int v36; // eax@67 - signed int v37; // eax@68 - signed __int64 v38; // qtt@69 int v39; // ecx@75 - int v40; // eax@79 - int v41; // ecx@90 int v42; // ecx@91 - int v43; // eax@95 int v44; // ecx@100 - int v45; // ecx@101 - int v46; // eax@105 int v48; // ecx@110 - char v49; // zf@123 - int v50; // eax@127 int v51; // ecx@130 - int v52; // eax@132 - int v53; // ecx@137 int v54; // ecx@138 - int v55; // eax@142 - SpellBuff *v56; // esi@143 Player *v57; // esi@145 int v58; // eax@146 int v59; // edi@146 @@ -260,70 +228,33 @@ int v61; // edi@146 int v62; // eax@146 signed int v63; // edi@146 - signed int v64; // edi@147 - int v65; // eax@151 - char *v66; // eax@160 - int v67; // edi@167 int v68; // edi@168 - int v69; // eax@171 signed int v70; // ecx@172 - signed int v71; // eax@179 - __int16 *v72; // edi@180 - int v73; // ecx@184 - int v74; // edx@184 - int v75; // eax@184 - AIDirection *v76; // esi@184 - unsigned __int16 v77; // di@184 - //int v78; // eax@184 int v79; // edx@185 int v80; // eax@185 - int v81; // eax@189 - unsigned __int16 v82; // ax@190 - int v83; // ecx@192 - int v84; // edx@192 - int v85; // eax@192 - AIDirection *v86; // esi@192 - unsigned __int16 v87; // di@192 - __int16 v88; // ax@192 signed int v89; // ecx@192 - //int v90; // eax@192 signed int v91; // eax@200 - int v92; // eax@201 - int v93; // ecx@207 int v94; // ecx@208 - int v95; // eax@212 int v96; // ecx@217 - int v97; // eax@221 - SoundID v98; // [sp-18h] [bp-E8h]@79 - signed int v99; // [sp-14h] [bp-E4h]@39 - signed int v105; // [sp+4h] [bp-CCh]@23 - signed int v107; // [sp+4h] [bp-CCh]@42 - signed int v108; // [sp+4h] [bp-CCh]@173 int pitch; // [sp+2Ch] [bp-A4h]@51 - float v110; // [sp+30h] [bp-A0h]@50 int v111; // [sp+38h] [bp-98h]@41 - float v112; // [sp+3Ch] [bp-94h]@49 int v113; // [sp+40h] [bp-90h]@41 int v114; // [sp+48h] [bp-88h]@41 SpriteObject a1; // [sp+4Ch] [bp-84h]@1 int v116; // [sp+BCh] [bp-14h]@49 - AIDirection *v117; // [sp+C0h] [bp-10h]@1 int v118; // [sp+C4h] [bp-Ch]@29 float v119; // [sp+C8h] [bp-8h]@48 float v120; // [sp+CCh] [bp-4h]@1 int spellnuma; // [sp+D8h] [bp+8h]@29 int spellnumb; // [sp+D8h] [bp+8h]@48 float spellnumc; // [sp+D8h] [bp+8h]@50 - signed int spellnumd; // [sp+D8h] [bp+8h]@53 int spellnume; // [sp+D8h] [bp+8h]@179 int a1a; // [sp+E0h] [bp+10h]@34 - signed int a1b; // [sp+E0h] [bp+10h]@145 int a1c; // [sp+E0h] [bp+10h]@184 LODWORD(v120) = uActorID; v5 = &pActors[uActorID]; - v117 = pDir; realPoints = uSkillLevel & 0x3F; masteryLevel = SkillToMastery(uSkillLevel); @@ -344,38 +275,29 @@ case 90: case 97: a1.uType = stru_4E3ACC[uSpellID].uType; - v119 = 0.0; - v82 = 0; + a1.uObjectDescID = 0; for (int i = 0; i < pObjectList->uNumObjects; i++) { if (a1.uType == pObjectList->pObjects[i].uObjectID) { - v82 = i; + a1.uObjectDescID = i; break; } } - a1.uObjectDescID = v82; a1.stru_24.Reset(); a1.spell_id = uSpellID; - v83 = v5->vPosition.x; - v84 = v5->vPosition.y; a1.spell_level = uSkillLevel; - a1.vPosition.x = v83; - v85 = v5->vPosition.z + ((signed int)v5->uActorHeight >> 1); - v86 = v117; - v87 = LOWORD(v117->uYawAngle); + a1.vPosition.x = v5->vPosition.x; a1.spell_skill = 0; - a1.vPosition.y = v84; - a1.vPosition.z = v85; - a1.uFacing = v87; + a1.vPosition.y = v5->vPosition.y; + a1.vPosition.z = v5->vPosition.z + ((signed int)v5->uActorHeight >> 1); + a1.uFacing = LOWORD(pDir->uYawAngle); a1.uSoundID = 0; a1.uAttributes = 0; - v88 = pIndoor->GetSector(v83, v84, v85); - v89 = v86->uDistance; - a1.uSectorID = v88; - LODWORD(v119) = v89; + v89 = pDir->uDistance; + a1.uSectorID = pIndoor->GetSector(a1.vPosition.x, a1.vPosition.y, a1.vPosition.z); a1.uSpriteFrameID = 0; - a1.spell_caster_pid = PID(OBJECT_Actor, LODWORD(v120)); + a1.spell_caster_pid = PID(OBJECT_Actor, uActorID); a1.spell_target_pid = 0; if ((double)v89 < 307.2 ) a1.field_60_distance_related_prolly_lod = 0; @@ -388,41 +310,27 @@ a1.field_61 = 2; v91 = a1.Create( - v86->uYawAngle, - v86->uPitchAngle, + pDir->uYawAngle, + pDir->uPitchAngle, pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed, 0); if ( v91 != -1 ) { - v92 = 8 * v91; - LOBYTE(v92) = v92 | 2; - v99 = v92; - v22 = (SoundID)word_4EE088_sound_ids[uSpellID]; - v98 = v22; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[uSpellID], PID(OBJECT_Item, v91), 0, -1, 0, 0, 0, 0); return; } return; break; - - case 5: - if (masteryLevel == 0) - { - v39 = 0; - } - else if (masteryLevel == 1 || masteryLevel == 2) - { + case 5: + if (masteryLevel == 1 || masteryLevel == 2) v39 = 60 * (realPoints + 60); - } else if (masteryLevel == 3 ) - { v39 = 180 * (realPoints + 20); - } else if (masteryLevel == 4 ) - { v39 = 240 * (realPoints + 15); - } + else + v39 = 0; v5->pActorBuffs[19].Apply( pParty->uTimePlayed + (signed int)(signed __int64)((double)(v39 << 7) * 0.033333335), masteryLevel, @@ -430,11 +338,7 @@ 0, 0); pGame->pStru6Instance->_4A7E89_sparkles_on_actor_after_it_casts_buff(v5, 0xFF3C1Eu); - v40 = 8 * LODWORD(v120); - LOBYTE(v40) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v40; - v98 = (SoundID)10040; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)10040, PID(OBJECT_Actor, uActorID), 0, -1, 0, 0, 0, 0); return; case 9: @@ -451,133 +355,104 @@ v23 = 12; else if (masteryLevel == 4) v23 = 14; - v119 = 0.0; spellnumb = 0; - if ( v23 > 0 ) + for ( int i = 0; i < v23; i++) { - v24 = (double)v118; - v118 = v23; - v112 = v24; - v116 = PID(OBJECT_Actor,LODWORD(v120)); - do + v28 = (double)spellnumb; + v30 = rand() % 1000; + spellnumc = v30 + pParty->vPosition.z - v114; + v120 = v28 * v28; + v119 = spellnumb * spellnumb; + if ( sqrt(spellnumc * spellnumc + v119 + v120) <= 1.0 ) { - v26 = rand(); - v27 = (double)spellnumb; - v110 = v27; - v28 = (double)SLODWORD(v119); - v30 = v26 % 1000; - v25 = (double)v114; - spellnumc = (double)(v26 % 1000) + v112 - v25; - v120 = v28 * v28; - v119 = v27 * v27; - if ( sqrt(spellnumc * spellnumc + v119 + v120) <= 1.0 ) + v32 = 0; + pitch = 0; + } + else + { + v31 = (signed __int64)sqrt(v119 + v120); + v32 = stru_5C6E00->Atan2(spellnumb, (int)v28); + pitch = stru_5C6E00->Atan2(v31, (int)spellnumc); + } + a1.stru_24.Reset(); + a1.uType = stru_4E3ACC[9].uType; + a1.uObjectDescID = 0; + for (int i = 0; i < pObjectList->uNumObjects; i++) + { + if (pObjectList->pObjects[i].uObjectID == a1.uType) { - v32 = 0; - pitch = 0; - } - else - { - v31 = (signed __int64)sqrt(v119 + v120); - v29 = v28; - v32 = stru_5C6E00->Atan2((signed __int64)v110, (signed __int64)v29); - pitch = stru_5C6E00->Atan2(v31, (signed __int64)spellnumc); - } - a1.stru_24.Reset(); - a1.uType = stru_4E3ACC[9].uType; - v34 = 0; - for (int i = 0; i < pObjectList->uNumObjects; i++) - { - if (pObjectList->pObjects[i].uObjectID == a1.uType) - { - v34 = i; - break; - } + a1.uObjectDescID = i; + break; } - a1.uObjectDescID = v34; - a1.spell_level = uSkillLevel; - a1.vPosition.x = v111; - a1.vPosition.y = v113; - a1.vPosition.z = v30 + v114; - a1.spell_id = SPELL_FIRE_METEOR_SHOWER; - a1.spell_skill = 0; - a1.uAttributes = 0; - a1.uSectorID = 0; - a1.uSpriteFrameID = 0; - a1.spell_caster_pid = v116; - a1.spell_target_pid = 0; - a1.field_60_distance_related_prolly_lod = stru_50C198._427546(v30 + 2500); - a1.uFacing = v32; - a1.uSoundID = 0; - v35 = v117->uDistance; - LODWORD(v119) = v117->uDistance; - if ((double)v119 < 307.2 ) - a1.field_60_distance_related_prolly_lod = 0; - else if ( v119 < 1024 ) - a1.field_60_distance_related_prolly_lod = 1; - else if ( v119 < 2560 ) - a1.field_60_distance_related_prolly_lod = 2; - else - a1.field_60_distance_related_prolly_lod = 3; - a1.field_61 = 2; - v36 = a1.Create( - v32, - pitch, - pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed, - 0); - if ( v36 != -1 ) - { - v37 = 8 * v36; - LOBYTE(v37) = v37 | 2; - pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[9], v37, 0, -1, 0, 0, 0, 0); - } - spellnumb = rand() % 1024 - 512; - v38 = rand(); - v49 = v118-- == 1; - LODWORD(v119) = (unsigned __int64)(v38 % 1024) - 512; } - while ( !v49 ); + a1.spell_level = uSkillLevel; + a1.vPosition.x = pParty->vPosition.x; + a1.vPosition.y = pParty->vPosition.y; + a1.vPosition.z = v30 + v114; + a1.spell_id = SPELL_FIRE_METEOR_SHOWER; + a1.spell_skill = 0; + a1.uAttributes = 0; + a1.uSectorID = 0; + a1.uSpriteFrameID = 0; + a1.spell_caster_pid = PID(OBJECT_Actor, uActorID); + a1.spell_target_pid = 0; + a1.field_60_distance_related_prolly_lod = stru_50C198._427546(v30 + 2500); + a1.uFacing = v32; + a1.uSoundID = 0; + if (pDir->uDistance < 307.2 ) + a1.field_60_distance_related_prolly_lod = 0; + else if ( pDir->uDistance < 1024 ) + a1.field_60_distance_related_prolly_lod = 1; + else if ( pDir->uDistance < 2560 ) + a1.field_60_distance_related_prolly_lod = 2; + else + a1.field_60_distance_related_prolly_lod = 3; + a1.field_61 = 2; + v36 = a1.Create( + v32, + pitch, + pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed, + 0); + if ( v36 != -1 ) + { + pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[9], PID(OBJECT_Item, v36), 0, -1, 0, 0, 0, 0); + } + spellnumb = rand() % 1024 - 512; } return; break; - case 15: - if (masteryLevel <= 1) - v10 = 3; - else if (masteryLevel == 2 ) + case 15:if (masteryLevel == 2 ) v10 = 5; else if (masteryLevel == 3 ) v10 = 7; else if (masteryLevel == 4 ) v10 = 9; + else + v10 = 3; spellnuma = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360; a1.uType = stru_4E3ACC[15].uType; v118 = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360 / (v10 - 1); - v11 = 0; + a1.uObjectDescID = 0; for (unsigned int i = 0; i < pObjectList->uNumObjects; i++) { if (stru_4E3ACC[15].uType == pObjectList->pObjects[i].uObjectID) { - v11 = i; + a1.uObjectDescID = i; break; } } - a1.uObjectDescID = v11; a1.stru_24.Reset(); a1.spell_id = SPELL_AIR_SPARKS; - v13 = v5->vPosition.x; - v14 = v5->vPosition.y; a1.spell_level = uSkillLevel; - a1.vPosition.x = v13; - v15 = v5->vPosition.z + ((signed int)v5->uActorHeight >> 1); - v16 = v117; - v17 = LOWORD(v117->uYawAngle); + a1.vPosition.x = v5->vPosition.x; a1.spell_skill = 0; - a1.vPosition.y = v14; - a1.vPosition.z = v15; - a1.uFacing = v17; + a1.vPosition.y = v5->vPosition.y; + a1.vPosition.z = v5->vPosition.z + ((signed int)v5->uActorHeight >> 1); + a1.uFacing = pDir->uYawAngle; a1.uSoundID = 0; a1.uAttributes = 0; - a1.uSectorID = pIndoor->GetSector(v13, v14, v15); + a1.uSectorID = pIndoor->GetSector(a1.vPosition.x, a1.vPosition.y, a1.vPosition.z); a1.spell_caster_pid = PID(OBJECT_Actor, LODWORD(v120)); a1.uSpriteFrameID = 0; a1.spell_target_pid = 0; @@ -592,10 +467,10 @@ { do { - a1.uFacing = v19 + LOWORD(v16->uYawAngle); + a1.uFacing = v19 + LOWORD(pDir->uYawAngle); v20 = a1.Create( (signed __int16)a1.uFacing, - v16->uPitchAngle, + pDir->uPitchAngle, pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed, 0); v19 += v118; @@ -604,36 +479,21 @@ } if ( v20 != -1 ) { - v21 = 8 * v20; - LOBYTE(v21) = v21 | 2; - v99 = v21; - v22 = (SoundID)word_4EE088_sound_ids[15]; - v98 = v22; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[15], PID(OBJECT_Item, v20), 0, -1, 0, 0, 0, 0); return; } return; break; case 17: - if (masteryLevel == 0) - { + if (masteryLevel == 1 || masteryLevel == 2) + v8 = 300 * realPoints + 3840; + else if (masteryLevel == 3 ) + v8 = 900 * realPoints + 3840; + else if (masteryLevel == 4 ) + v8 = 3600 * (realPoints + 64); + else v8 = 0; - } - else if (masteryLevel == 1 || masteryLevel == 2) - { - v9 = 300 * realPoints; - v8 = v9 + 3840; - } - else if (masteryLevel == 3 ) - { - v9 = 900 * realPoints; - v8 = v9 + 3840; - } - else if (masteryLevel == 4 ) - { - v8 = 3600 * (realPoints + 64); - } v5->pActorBuffs[15].Apply( pParty->uTimePlayed + (signed int)(signed __int64)((double)(v8 << 7) * 0.033333335), masteryLevel, @@ -643,24 +503,14 @@ return; case 38: - if (masteryLevel == 0) - { - v44 = 0; - } - else if (masteryLevel == 1 || masteryLevel == 2) - { - v45 = 300 * realPoints; - v44 = v45 + 3840; - } + if (masteryLevel == 1 || masteryLevel == 2) + v44 = 300 * realPoints + 3840; else if (masteryLevel == 3 ) - { - v45 = 900 * realPoints; - v44 = v45 + 3840; - } + v44 = 900 * realPoints + 3840; else if (masteryLevel == 4 ) - { v44 = 3600 * (realPoints + 64); - } + else + v44 = 0; v5->pActorBuffs[16].Apply( pParty->uTimePlayed + (signed int)(signed __int64)((double)(v44 << 7) * 0.033333335), masteryLevel, @@ -668,33 +518,18 @@ 0, 0); pGame->pStru6Instance->_4A7E89_sparkles_on_actor_after_it_casts_buff(v5,0x5C310Eu); - v46 = 8 * LODWORD(v120); - LOBYTE(v46) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v46; - v98 = (SoundID)13040; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)13040, PID(OBJECT_Actor,uActorID), 0, -1, 0, 0, 0, 0); return; case 46: - if (masteryLevel == 0) - { - v42 = 0; - } - else if (masteryLevel == 1 || masteryLevel == 2) - { - v41 = 300 * realPoints; - v42 = v41 + 3840; - } + if (masteryLevel == 1 || masteryLevel == 2) + v42 = 300 * realPoints + 3840; else if (masteryLevel == 3 ) - { - v41 = 900 * realPoints; - v42 = v41 + 3840; - } + v42 = 900 * realPoints + 3840; else if (masteryLevel == 4 ) - { - v41 = 1200 * realPoints; - v42 = v41 + 3840; - } + v42 = 1200 * realPoints + 3840; + else + v42 = 0; v5->pActorBuffs[17].Apply( pParty->uTimePlayed + (signed int)(signed __int64)((double)(v42 << 7) * 0.033333335), masteryLevel, @@ -702,60 +537,33 @@ 0, 0); pGame->pStru6Instance->_4A7E89_sparkles_on_actor_after_it_casts_buff(v5,0xC8C805u); - v43 = 8 * LODWORD(v120); - LOBYTE(v43) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v43; - v98 = (SoundID)14010; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)14010, PID(OBJECT_Actor,uActorID), 0, -1, 0, 0, 0, 0); return; break; case 47: - if (masteryLevel == 0) - { - LOWORD(v48) = 0; - } - else if (masteryLevel == 1 || masteryLevel == 2) - { + if (masteryLevel == 1 || masteryLevel == 2) v48 = 2 * realPoints + 40; - } else if (masteryLevel == 3 ) - { v48 = 3 * realPoints + 60; - } else if (masteryLevel == 4 ) - { - LOWORD(v48) = 2 * (3 * realPoints + 60); - } + v48 = 2 * (3 * realPoints + 60); + else + v48 = 0; v5->pActorBuffs[11].Apply(pParty->uTimePlayed + 1280, masteryLevel, v48, 0, 0); pGame->pStru6Instance->_4A7E89_sparkles_on_actor_after_it_casts_buff(v5,0xC8C805u); - v50 = 8 * LODWORD(v120); - LOBYTE(v50) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v50; - v98 = (SoundID)14020; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)14020, PID(OBJECT_Actor, uActorID), 0, -1, 0, 0, 0, 0); return; case 51: - if (masteryLevel == 0) - { - v54 = 0; - } - else if (masteryLevel == 1 || masteryLevel == 2) - { - v53 = 300 * realPoints; - v54 = v53 + 3840; - } + if (masteryLevel == 1 || masteryLevel == 2) + v54 = 300 * realPoints + 3840; else if (masteryLevel == 3 ) - { - v53 = 900 * realPoints; - v54 = v53 + 3840; - } + v54 = 900 * realPoints + 3840; else if (masteryLevel == 4 ) - { - v53 = 1200 * realPoints; - v54 = v53 + 3840; - } + v54 = 1200 * realPoints + 3840; + else + v54 = 0; v5->pActorBuffs[18].Apply( pParty->uTimePlayed + (signed int)(signed __int64)((double)(v54 << 7) * 0.033333335), masteryLevel, @@ -763,11 +571,7 @@ 0, 0); pGame->pStru6Instance->_4A7E89_sparkles_on_actor_after_it_casts_buff(v5,0xC8C805u); - v55 = 8 * LODWORD(v120); - LOBYTE(v55) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v55; - v98 = (SoundID)14060; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)14060, PID(OBJECT_Actor,uActorID), 0, -1, 0, 0, 0, 0); return; case 73: @@ -782,11 +586,7 @@ 0, 0); pGame->pStru6Instance->_4A7E89_sparkles_on_actor_after_it_casts_buff(v5, 0xA81376u); - v52 = 8 * LODWORD(v120); - LOBYTE(v52) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v52; - v98 = (SoundID)16060; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)16060, PID(OBJECT_Actor, uActorID), 0, -1, 0, 0, 0, 0); return; case 77: @@ -794,11 +594,7 @@ if ( v5->sCurrentHP >= (signed int)v5->pMonsterInfo.uHP ) v5->sCurrentHP = LOWORD(v5->pMonsterInfo.uHP); pGame->pStru6Instance->_4A7E89_sparkles_on_actor_after_it_casts_buff(v5, 0xA81376u); - v50 = 8 * LODWORD(v120); - LOBYTE(v50) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v50; - v98 = (SoundID)14020; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)14020, PID(OBJECT_Actor, uActorID), 0, -1, 0, 0, 0, 0); return; case 80: @@ -809,12 +605,12 @@ for (int i = 1; i <= 4; i++) { v57 = pPlayers[i]; - v58 = (v57)->GetActualWillpower(); - v59 = (v57)->GetParameterBonus(v58); - v60 = (v57)->GetActualIntelligence(); - v61 = ((v57)->GetParameterBonus(v60) + v59) >> 1; - v62 = (v57)->GetActualLuck(); - v63 = v61 + (v57)->GetParameterBonus(v62) + 30; + v58 = v57->GetActualWillpower(); + v59 = v57->GetParameterBonus(v58); + v60 = v57->GetActualIntelligence(); + v61 = (v57->GetParameterBonus(v60) + v59) / 2; + v62 = v57->GetActualLuck(); + v63 = v61 + v57->GetParameterBonus(v62) + 30; if ( rand() % v63 < 30 ) { for (int k = 0; k < v57->pPlayerBuffs.size(); k++) @@ -824,21 +620,11 @@ pOtherOverlayList->_4418B1(11210, i + 99, 0, 65536); } } - v65 = 8 * LODWORD(v120); - LOBYTE(v65) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v65; - v22 = (SoundID)word_4EE088_sound_ids[80]; - v98 = v22; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[80], PID(OBJECT_Actor, uActorID), 0, -1, 0, 0, 0, 0); return; case 85: - if (masteryLevel == 0) - { - LOWORD(realPoints) = uSkillLevel; - v96 = 0; - } - else if (masteryLevel == 1 || masteryLevel == 2) + if (masteryLevel == 1 || masteryLevel == 2) { v96 = 300 * realPoints + 3840; } @@ -852,6 +638,11 @@ v96 = 1200 * realPoints + 3840; LOWORD(realPoints) = 4 * realPoints; } + else + { + LOWORD(realPoints) = uSkillLevel; + v96 = 0; + } v5->pActorBuffs[13].Apply( pParty->uTimePlayed + (signed int)(signed __int64)((double)(v96 << 7) * 0.033333335), masteryLevel, @@ -859,33 +650,18 @@ 0, 0); pGame->pStru6Instance->_4A7E89_sparkles_on_actor_after_it_casts_buff(v5, 0xFFFFFFu); - v97 = 8 * LODWORD(v120); - LOBYTE(v97) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v97; - v98 = (SoundID)17070; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)17070, PID(OBJECT_Actor, uActorID), 0, -1, 0, 0, 0, 0); return; case 86: - if (masteryLevel == 0) - { - v94 = 0; - } - else if (masteryLevel == 1 || masteryLevel == 2) - { - v93 = 300 * realPoints; - v94 = v93 + 3840; - } + if (masteryLevel == 1 || masteryLevel == 2) + v94 = 300 * realPoints + 3840; else if (masteryLevel == 3) - { - v93 = 900 * realPoints; - v94 = v93 + 3840; - } - else // if (v7 == 4) - { - v93 = 1200 * realPoints; - v94 = v93 + 3840; - } + v94 = 900 * realPoints + 3840; + else if (masteryLevel == 4) + v94 = 1200 * realPoints + 3840; + else + v94 = 0; v5->pActorBuffs[14].Apply( pParty->uTimePlayed + (signed int)(signed __int64)((double)(v94 << 7) * 0.033333335), masteryLevel, @@ -893,52 +669,43 @@ 0, 0); pGame->pStru6Instance->_4A7E89_sparkles_on_actor_after_it_casts_buff(v5, 0xFFFFFFu); - v95 = 8 * LODWORD(v120); - LOBYTE(v95) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v95; - v98 = (SoundID)17080; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)17080, PID(OBJECT_Actor, uActorID), 0, -1, 0, 0, 0, 0); return; case 93: - v70 = 3; if (masteryLevel == 2) - v108 = 5; + v70 = 5; else if (masteryLevel == 3) - v108 = 7; + v70 = 7; else if (masteryLevel == 4) - v108 = 9; + v70 = 9; + else + v70 = 3; spellnume = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360; a1.uType = stru_4E3ACC[SPELL_DARK_SHARPMETAL].uType; v116 = (signed int)(60 * stru_5C6E00->uIntegerDoublePi) / 360 / (v70 - 1); - v71 = 0; + a1.uObjectDescID = 0; for (int i = 0; i < pObjectList->uNumObjects; i++) { if (pObjectList->pObjects[i].uObjectID == stru_4E3ACC[SPELL_DARK_SHARPMETAL].uType) { - v71 = i; + a1.uObjectDescID = i; break; } } - a1.uObjectDescID = v71; a1.stru_24.Reset(); a1.spell_id = SPELL_DARK_SHARPMETAL; - v73 = v5->vPosition.x; - v74 = v5->vPosition.y; a1.spell_level = uSkillLevel; - a1.vPosition.x = v73; - v75 = v5->vPosition.z + ((signed int)v5->uActorHeight >> 1); - v76 = v117; - v77 = LOWORD(v117->uYawAngle); + a1.vPosition.x = v5->vPosition.x; a1.spell_skill = 0; - a1.vPosition.y = v74; - a1.vPosition.z = v75; - a1.uFacing = v77; + a1.vPosition.y = v5->vPosition.y; + a1.vPosition.z = v5->vPosition.z + ((signed int)v5->uActorHeight >> 1); + a1.uFacing = pDir->uYawAngle; a1.uSoundID = 0; a1.uAttributes = 0; - a1.uSectorID = pIndoor->GetSector(v73, v74, v75); - a1.spell_caster_pid = PID(OBJECT_Actor, LODWORD(v120)); + a1.uSectorID = pIndoor->GetSector(a1.vPosition.x, a1.vPosition.y, a1.vPosition.z); + a1.spell_caster_pid = PID(OBJECT_Actor, uActorID); a1.uSpriteFrameID = 0; a1.spell_target_pid = 0; a1.field_60_distance_related_prolly_lod = 3; @@ -951,11 +718,11 @@ { do { - v79 = v76->uYawAngle; - a1.uFacing = a1c + LOWORD(v76->uYawAngle); + v79 = pDir->uYawAngle; + a1.uFacing = a1c + LOWORD(pDir->uYawAngle); v80 = a1.Create( v79, - v76->uPitchAngle, + pDir->uPitchAngle, pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed, 0); a1c += v116; @@ -964,28 +731,19 @@ } if ( v80 != -1 ) { - v81 = 8 * v80; - LOBYTE(v81) = v81 | 2; - v99 = v81; - v22 = (SoundID)word_4EE088_sound_ids[93]; - v98 = v22; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)word_4EE088_sound_ids[93], PID(OBJECT_Item, v80), 0, -1, 0, 0, 0, 0); return; } + return; + break; case 95: if (masteryLevel == 0) v68 = 0; else if (masteryLevel == 1 || (masteryLevel == 2) || (masteryLevel == 3)) - { - v67 = 900 * realPoints; - v68 = v67 + 3840; - } + v68 = 300 * realPoints + 3840; else - { - v67 = 300 * realPoints; - v68 = v67 + 3840; - } + v68 = 900 * realPoints + 3840; v5->pActorBuffs[20].Apply( pParty->uTimePlayed + (signed int)(signed __int64)((double)(v68 << 7) * 0.033333335), masteryLevel, @@ -993,11 +751,7 @@ 0, 0); pGame->pStru6Instance->_4A7E89_sparkles_on_actor_after_it_casts_buff(v5,0x7E7E7Eu); - v69 = 8 * LODWORD(v120); - LOBYTE(v69) = PID(OBJECT_Actor,LOBYTE(v120)); - v99 = v69; - v98 = (SoundID)18060; - pAudioPlayer->PlaySound(v98, v99, 0, -1, 0, 0, 0, 0); + pAudioPlayer->PlaySound((SoundID)18060, PID(OBJECT_Actor, uActorID), 0, -1, 0, 0, 0, 0); return; }