comparison mm7_6.cpp @ 823:c1da83d8223f

More spell renames
author Nomad
date Tue, 26 Mar 2013 20:05:57 +0200
parents c232f160e6f3
children fe4c8b113548
comparison
equal deleted inserted replaced
822:c232f160e6f3 823:c1da83d8223f
2419 } 2419 }
2420 while ( v3 ); 2420 while ( v3 );
2421 } 2421 }
2422 2422
2423 //----- (00427DA0) -------------------------------------------------------- 2423 //----- (00427DA0) --------------------------------------------------------
2424 unsigned int stru277::PushStru277(__int16 a2, __int16 uPlayerID, __int16 skill_level, __int16 a5, int a6) 2424 unsigned int stru277::PushStru277(__int16 a2, __int16 uPlayerID, __int16 skill_level, __int16 a5, int spell_sound_id)
2425 { 2425 {
2426 unsigned int result; // eax@1 2426 unsigned int result; // eax@1
2427 stru277 *v7; // edx@1 2427 stru277 *v7; // edx@1
2428 stru277 *v8; // ecx@5 2428 stru277 *v8; // ecx@5
2429 2429
2443 v8->uPlayerID_2 = uPlayerID; 2443 v8->uPlayerID_2 = uPlayerID;
2444 v8->field_6 = 0; 2444 v8->field_6 = 0;
2445 v8->spell_target_pid = 0; 2445 v8->spell_target_pid = 0;
2446 v8->field_8 = a5; 2446 v8->field_8 = a5;
2447 v8->forced_spell_skill_level = skill_level; 2447 v8->forced_spell_skill_level = skill_level;
2448 v8->field_10 = a6; 2448 v8->sound_id = spell_sound_id;
2449 LABEL_8: 2449 LABEL_8:
2450 if ( result == 10 ) 2450 if ( result == 10 )
2451 result = -1; 2451 result = -1;
2452 return result; 2452 return result;
2453 } 2453 }
2471 unsigned __int8 v14; // zf@53 2471 unsigned __int8 v14; // zf@53
2472 //unsigned int v15; // edx@53 2472 //unsigned int v15; // edx@53
2473 //signed int v16; // eax@53 2473 //signed int v16; // eax@53
2474 Player *v17; // esi@70 2474 Player *v17; // esi@70
2475 //int v18; // eax@72 2475 //int v18; // eax@72
2476 int v19; // eax@74 2476 //int v19; // eax@74
2477 char *v20; // eax@74 2477 char *v20; // eax@74
2478 signed int i; // esi@76 2478 signed int i; // esi@76
2479 int v22; // eax@88 2479 //int v22; // eax@88
2480 __int16 v23; // ax@88 2480 __int16 v23; // ax@88
2481 //int v24; // ecx@93 2481 //int v24; // ecx@93
2482 //int v25; // ecx@94 2482 //int v25; // ecx@94
2483 //signed __int64 v26; // qax@100 2483 //signed __int64 v26; // qax@100
2484 //char *v27; // ecx@100 2484 //char *v27; // ecx@100
2486 int v29; // ecx@105 2486 int v29; // ecx@105
2487 int v30; // ecx@106 2487 int v30; // ecx@106
2488 //int v31; // eax@112 2488 //int v31; // eax@112
2489 //int v32; // eax@112 2489 //int v32; // eax@112
2490 //char *v33; // edx@113 2490 //char *v33; // edx@113
2491 int v34; // eax@121 2491 //int v34; // eax@121
2492 int v35; // eax@123 2492 int v35; // eax@123
2493 int v36; // edx@125 2493 int v36; // edx@125
2494 int v37; // eax@129 2494 //int v37; // eax@129
2495 signed int v38; // edi@129 2495 signed int v38; // edi@129
2496 signed int v39; // eax@129 2496 signed int v39; // eax@129
2497 int v40; // ecx@129 2497 int v40; // ecx@129
2498 int v41; // eax@129 2498 int v41; // eax@129
2499 signed int v42; // eax@129 2499 signed int v42; // eax@129
2500 int *v43; // ecx@129 2500 int *v43; // ecx@129
2501 int v44; // eax@132 2501 //int v44; // eax@132
2502 int v45; // ecx@132 2502 int v45; // ecx@132
2503 int v46; // eax@132 2503 int v46; // eax@132
2504 unsigned int v47; // edx@133 2504 unsigned int v47; // edx@133
2505 int v48; // eax@137 2505 int v48; // eax@137
2506 int v49; // eax@137 2506 //int v49; // eax@137
2507 //int v50; // eax@141 2507 //int v50; // eax@141
2508 int v51; // eax@146 2508 int v51; // eax@146
2509 __int16 v52; // ax@153 2509 __int16 v52; // ax@153
2510 int v53; // eax@153 2510 //int v53; // eax@153
2511 signed __int64 v54; // qax@164 2511 signed __int64 v54; // qax@164
2512 int v55; // edi@164 2512 int v55; // edi@164
2513 //stru6 *v56; // eax@165 2513 //stru6 *v56; // eax@165
2514 int v57; // eax@169 2514 int v57; // eax@169
2515 signed __int64 v58; // qax@177 2515 signed __int64 v58; // qax@177
2516 int v59; // edi@177 2516 int v59; // edi@177
2517 unsigned __int16 v60; // ax@184 2517 unsigned __int16 v60; // ax@184
2518 int v61; // ecx@184 2518 int v61; // ecx@184
2519 int v62; // eax@186 2519 //int v62; // eax@186
2520 int v63; // ecx@187 2520 int v63; // ecx@187
2521 int v64; // ecx@188 2521 int v64; // ecx@188
2522 int v65; // ecx@189 2522 int v65; // ecx@189
2523 //const char *v66; // ecx@200 2523 //const char *v66; // ecx@200
2524 //unsigned int v67; // edx@201 2524 //unsigned int v67; // edx@201
2613 int v156; // eax@323 2613 int v156; // eax@323
2614 int v157; // eax@326 2614 int v157; // eax@326
2615 double v158; // st7@326 2615 double v158; // st7@326
2616 double v159; // st6@326 2616 double v159; // st6@326
2617 signed __int64 v160; // qtt@334 2617 signed __int64 v160; // qtt@334
2618 int v161; // eax@339 2618 //int v161; // eax@339
2619 int v162; // edi@340 2619 int v162; // edi@340
2620 int v163; // eax@340 2620 int v163; // eax@340
2621 signed int v164; // eax@340 2621 signed int v164; // eax@340
2622 signed int v165; // edi@340 2622 signed int v165; // edi@340
2623 //stru6 *v166; // eax@340 2623 //stru6 *v166; // eax@340
2639 //stru6 *v182; // eax@357 2639 //stru6 *v182; // eax@357
2640 //signed __int64 v183; // qax@357 2640 //signed __int64 v183; // qax@357
2641 int v184; // ecx@358 2641 int v184; // ecx@358
2642 int v185; // ecx@359 2642 int v185; // ecx@359
2643 int v186; // ecx@360 2643 int v186; // ecx@360
2644 int v187; // eax@367 2644 //int v187; // eax@367
2645 int v188; // esi@369 2645 int v188; // esi@369
2646 int v189; // edi@369 2646 int v189; // edi@369
2647 //const char *v190; // ecx@377 2647 //const char *v190; // ecx@377
2648 signed int v191; // edi@379 2648 signed int v191; // edi@379
2649 int v192; // ecx@382 2649 int v192; // ecx@382
2678 int v221; // edi@428 2678 int v221; // edi@428
2679 char *v222; // edi@434 2679 char *v222; // edi@434
2680 char v223; // al@438 2680 char v223; // al@438
2681 int v224; // ecx@442 2681 int v224; // ecx@442
2682 int v225; // ecx@443 2682 int v225; // ecx@443
2683 int v226; // eax@451 2683 //int v226; // eax@451
2684 int v227; // esi@453 2684 int v227; // esi@453
2685 unsigned int v228; // edi@454 2685 unsigned int v228; // edi@454
2686 int v229; // edi@466 2686 int v229; // edi@466
2687 //__int16 v230; // ST18_2@469 2687 //__int16 v230; // ST18_2@469
2688 //stru6 *v231; // eax@469 2688 //stru6 *v231; // eax@469
2779 int v322; // edi@632 2779 int v322; // edi@632
2780 int v323; // edi@635 2780 int v323; // edi@635
2781 char *v324; // eax@635 2781 char *v324; // eax@635
2782 Player *v325; // ecx@640 2782 Player *v325; // ecx@640
2783 int v326; // eax@643 2783 int v326; // eax@643
2784 int v327; // eax@648 2784 //int v327; // eax@648
2785 int v328; // ecx@651 2785 int v328; // ecx@651
2786 int v329; // ecx@652 2786 int v329; // ecx@652
2787 int v330; // edi@654 2787 int v330; // edi@654
2788 //__int16 v331; // ST18_2@658 2788 //__int16 v331; // ST18_2@658
2789 //stru6 *v332; // eax@658 2789 //stru6 *v332; // eax@658
2820 //stru6 *v363; // eax@697 2820 //stru6 *v363; // eax@697
2821 int v364; // ecx@698 2821 int v364; // ecx@698
2822 int v365; // ecx@699 2822 int v365; // ecx@699
2823 int v366; // eax@701 2823 int v366; // eax@701
2824 //stru6 *v367; // eax@704 2824 //stru6 *v367; // eax@704
2825 int v368; // eax@704 2825 //int v368; // eax@704
2826 Actor *v369; // edi@705 2826 Actor *v369; // edi@705
2827 int v370; // eax@706 2827 int v370; // eax@706
2828 int v371; // ecx@709 2828 int v371; // ecx@709
2829 int v372; // ecx@710 2829 int v372; // ecx@710
2830 int v373; // eax@715 2830 int v373; // eax@715
2884 signed int v427; // eax@820 2884 signed int v427; // eax@820
2885 int v428; // ecx@825 2885 int v428; // ecx@825
2886 int v429; // ecx@826 2886 int v429; // ecx@826
2887 int v430; // eax@828 2887 int v430; // eax@828
2888 //stru6 *v431; // eax@831 2888 //stru6 *v431; // eax@831
2889 int v432; // eax@831 2889 //int v432; // eax@831
2890 Actor *v433; // edi@832 2890 Actor *v433; // edi@832
2891 int v434; // eax@833 2891 int v434; // eax@833
2892 int v435; // ecx@837 2892 int v435; // ecx@837
2893 int v436; // ecx@838 2893 int v436; // ecx@838
2894 //__int16 v437; // ST1C_2@843 2894 //__int16 v437; // ST1C_2@843
2958 Player *v501; // edi@939 2958 Player *v501; // edi@939
2959 //__int16 v502; // ST18_2@940 2959 //__int16 v502; // ST18_2@940
2960 //stru6 *v503; // eax@940 2960 //stru6 *v503; // eax@940
2961 //stru6 *v504; // eax@943 2961 //stru6 *v504; // eax@943
2962 int v505; // eax@943 2962 int v505; // eax@943
2963 int v506; // eax@943 2963 //int v506; // eax@943
2964 int v507; // edi@944 2964 int v507; // edi@944
2965 int v508; // eax@944 2965 int v508; // eax@944
2966 signed int v509; // eax@944 2966 signed int v509; // eax@944
2967 signed int v510; // edi@944 2967 signed int v510; // edi@944
2968 Actor *v511; // edi@946 2968 Actor *v511; // edi@946
2984 //__int16 v527; // ST18_2@975 2984 //__int16 v527; // ST18_2@975
2985 //stru6 *v528; // eax@975 2985 //stru6 *v528; // eax@975
2986 //__int16 v529; // ST18_2@975 2986 //__int16 v529; // ST18_2@975
2987 //stru6 *v530; // eax@975 2987 //stru6 *v530; // eax@975
2988 int v531; // eax@982 2988 int v531; // eax@982
2989 int v532; // eax@982 2989 //int v532; // eax@982
2990 int v533; // edi@983 2990 int v533; // edi@983
2991 int v534; // eax@983 2991 int v534; // eax@983
2992 signed int v535; // eax@983 2992 signed int v535; // eax@983
2993 signed int v536; // edi@983 2993 signed int v536; // edi@983
2994 stru6 *v537; // eax@984 2994 stru6 *v537; // eax@984
3032 int v575; // eax@1020 3032 int v575; // eax@1020
3033 signed int v576; // eax@1025 3033 signed int v576; // eax@1025
3034 Player *v577; // eax@1026 3034 Player *v577; // eax@1026
3035 int v578; // eax@1028 3035 int v578; // eax@1028
3036 __int16 v579; // ax@1029 3036 __int16 v579; // ax@1029
3037 int v580; // eax@1031 3037 //int v580; // eax@1031
3038 int v581; // edi@1031 3038 int v581; // edi@1031
3039 int v582; // eax@1031 3039 int v582; // eax@1031
3040 //__int16 v583; // ST1C_2@1034 3040 //__int16 v583; // ST1C_2@1034
3041 //__int16 v584; // ST18_2@1034 3041 //__int16 v584; // ST18_2@1034
3042 char *v585; // esi@1034 3042 char *v585; // esi@1034
3047 int v590; // ecx@1038 3047 int v590; // ecx@1038
3048 char v591; // al@1048 3048 char v591; // al@1048
3049 int v592; // esi@1052 3049 int v592; // esi@1052
3050 int v593; // ecx@1057 3050 int v593; // ecx@1057
3051 int v594; // ecx@1058 3051 int v594; // ecx@1058
3052 int v595; // eax@1064 3052 //int v595; // eax@1064
3053 int v596; // esi@1066 3053 int v596; // esi@1066
3054 unsigned int v597; // edi@1067 3054 unsigned int v597; // edi@1067
3055 int v598; // eax@1079 3055 int v598; // eax@1079
3056 signed int v599; // eax@1082 3056 signed int v599; // eax@1082
3057 int v600; // edi@1086 3057 int v600; // edi@1086
3058 int v601; // edx@1086 3058 int v601; // edx@1086
3059 int v602; // eax@1086 3059 int v602; // eax@1086
3060 int v603; // ecx@1086 3060 int v603; // ecx@1086
3061 int v604; // eax@1087 3061 //int v604; // eax@1087
3062 char *v605; // eax@1089 3062 char *v605; // eax@1089
3063 int v606; // edx@1091 3063 int v606; // edx@1091
3064 int v607; // ecx@1100 3064 int v607; // ecx@1100
3065 __int16 v608; // ax@1102 3065 __int16 v608; // ax@1102
3066 signed int v609; // eax@1104 3066 signed int v609; // eax@1104
3076 Player *v619; // edi@1123 3076 Player *v619; // edi@1123
3077 //unsigned __int16 v620; // ST1C_2@1124 3077 //unsigned __int16 v620; // ST1C_2@1124
3078 //__int16 v621; // ST18_2@1124 3078 //__int16 v621; // ST18_2@1124
3079 //stru6 *v622; // eax@1124 3079 //stru6 *v622; // eax@1124
3080 signed __int64 v623; // qax@1127 3080 signed __int64 v623; // qax@1127
3081 int v624; // eax@1127 3081 //int v624; // eax@1127
3082 int v625; // edi@1129 3082 int v625; // edi@1129
3083 int v626; // eax@1129 3083 int v626; // eax@1129
3084 signed int v627; // eax@1129 3084 signed int v627; // eax@1129
3085 signed int v628; // edi@1129 3085 signed int v628; // edi@1129
3086 int v629; // ecx@1130 3086 int v629; // ecx@1130
3383 a1.vPosition.x = pParty->vPosition.x; 3383 a1.vPosition.x = pParty->vPosition.x;
3384 a1.vPosition.y = pParty->vPosition.y; 3384 a1.vPosition.y = pParty->vPosition.y;
3385 a1.uAttributes = 0; 3385 a1.uAttributes = 0;
3386 a1.uSpriteFrameID = 0; 3386 a1.uSpriteFrameID = 0;
3387 a1.vPosition.z = pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3; 3387 a1.vPosition.z = pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3;
3388 v19 = 8 * v3->uPlayerID; 3388 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
3389 LOBYTE(v19) = v19 | OBJECT_Player; 3389 a1.spell_target_pid = a2;
3390 a1.spell_caster_pid = v19;
3391 a1.field_5C = a2;
3392 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 3390 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
3393 a1.uFacing = LOWORD(v715.uYawAngle); 3391 a1.uFacing = LOWORD(v715.uYawAngle);
3394 a1.uSoundID = LOWORD(v3->field_10); 3392 a1.uSoundID = LOWORD(v3->sound_id);
3395 v20 = (char *)&pParty->pPlayers[v3->uPlayerID]; 3393 v20 = (char *)&pParty->pPlayers[v3->uPlayerID];
3396 memcpy(&a1.stru_24, &v20[36 * *((int *)v20 + 1620) + 496], sizeof(a1.stru_24)); 3394 memcpy(&a1.stru_24, &v20[36 * *((int *)v20 + 1620) + 496], sizeof(a1.stru_24));
3397 a1.uAttributes = 256; 3395 a1.uAttributes = 256;
3398 if ( pParty->bTurnBasedModeOn == 1 ) 3396 if ( pParty->bTurnBasedModeOn == 1 )
3399 a1.uAttributes = 260; 3397 a1.uAttributes = 260;
3422 a1.vPosition.x = pParty->vPosition.x; 3420 a1.vPosition.x = pParty->vPosition.x;
3423 a1.vPosition.y = pParty->vPosition.y; 3421 a1.vPosition.y = pParty->vPosition.y;
3424 a1.uAttributes = 0; 3422 a1.uAttributes = 0;
3425 a1.uSpriteFrameID = 0; 3423 a1.uSpriteFrameID = 0;
3426 a1.vPosition.z = pParty->vPosition.z + (signed int)pParty->uPartyHeight / 2; 3424 a1.vPosition.z = pParty->vPosition.z + (signed int)pParty->uPartyHeight / 2;
3427 v22 = 8 * v3->uPlayerID; 3425 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
3428 LOBYTE(v22) = v22 | OBJECT_Player; 3426 a1.spell_target_pid = a2;
3429 a1.spell_caster_pid = v22;
3430 a1.field_5C = a2;
3431 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 3427 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
3432 a1.uFacing = LOWORD(v715.uYawAngle); 3428 a1.uFacing = LOWORD(v715.uYawAngle);
3433 a1.uSoundID = LOWORD(v3->field_10); 3429 a1.uSoundID = LOWORD(v3->sound_id);
3434 memcpy( 3430 memcpy(
3435 &a1.stru_24, 3431 &a1.stru_24,
3436 &pParty->pPlayers[v3->uPlayerID].spellbook.pDarkSpellbook.bIsSpellAvailable[36 3432 &pParty->pPlayers[v3->uPlayerID].spellbook.pDarkSpellbook.bIsSpellAvailable[36
3437 * pParty->pPlayers[v3->uPlayerID].pEquipment.uMainHand 3433 * pParty->pPlayers[v3->uPlayerID].pEquipment.uMainHand
3438 + 5], 3434 + 5],
3534 a1.uSectorID = pIndoor->GetSector( 3530 a1.uSectorID = pIndoor->GetSector(
3535 pParty->vPosition.x, 3531 pParty->vPosition.x,
3536 pParty->vPosition.y, 3532 pParty->vPosition.y,
3537 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3); 3533 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3);
3538 a1.uSpriteFrameID = 0; 3534 a1.uSpriteFrameID = 0;
3539 v34 = 8 * v3->uPlayerID; 3535 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
3540 LOBYTE(v34) = v34 | OBJECT_Player; 3536 a1.spell_target_pid = a2;
3541 a1.spell_caster_pid = v34;
3542 a1.field_5C = a2;
3543 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 3537 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
3544 a1.uFacing = LOWORD(v715.uYawAngle); 3538 a1.uFacing = LOWORD(v715.uYawAngle);
3545 a1.uSoundID = LOWORD(v3->field_10); 3539 a1.uSoundID = LOWORD(v3->sound_id);
3546 if ( pParty->bTurnBasedModeOn == 1 ) 3540 if ( pParty->bTurnBasedModeOn == 1 )
3547 LOBYTE(a1.uAttributes) |= 4u; 3541 LOBYTE(a1.uAttributes) |= 4u;
3548 v669 = v3->uPlayerID + 1; 3542 v669 = v3->uPlayerID + 1;
3549 v659 = pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed; 3543 v659 = pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed;
3550 v35 = pParty->sRotationX + 10; 3544 v35 = pParty->sRotationX + 10;
3570 a1.spell_skill = v731; 3564 a1.spell_skill = v731;
3571 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType); 3565 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType);
3572 a1.uAttributes = 0; 3566 a1.uAttributes = 0;
3573 a1.uSectorID = 0; 3567 a1.uSectorID = 0;
3574 a1.uSpriteFrameID = 0; 3568 a1.uSpriteFrameID = 0;
3575 v37 = v3->uPlayerID;
3576 a1.field_60_distance_related_prolly_lod = 0; 3569 a1.field_60_distance_related_prolly_lod = 0;
3577 v37 *= 8;
3578 LOBYTE(v37) = v37 | OBJECT_Player;
3579 a1.uFacing = 0; 3570 a1.uFacing = 0;
3580 a1.spell_caster_pid = v37; 3571 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
3581 v38 = a2 >> 3; 3572 v38 = a2 >> 3;
3582 a1.uSoundID = LOWORD(v3->field_10); 3573 a1.uSoundID = LOWORD(v3->sound_id);
3583 v39 = a2 >> 3; 3574 v39 = a2 >> 3;
3584 a1.vPosition.x = pActors[v39].vPosition.x; 3575 a1.vPosition.x = pActors[v39].vPosition.x;
3585 v40 = pActors[v39].vPosition.y; 3576 v40 = pActors[v39].vPosition.y;
3586 a1.vPosition.z = pActors[v39].vPosition.z; 3577 a1.vPosition.z = pActors[v39].vPosition.z;
3587 v41 = 8 * (a2 >> 3); 3578 v41 = 8 * (a2 >> 3);
3588 a1.vPosition.y = v40; 3579 a1.vPosition.y = v40;
3589 LOBYTE(v41) = v41 | OBJECT_Actor; 3580 LOBYTE(v41) = v41 | OBJECT_Actor;
3590 a1.field_5C = v41; 3581 a1.spell_target_pid = v41;
3591 v42 = a1.Create(0, 0, 0, 0); 3582 v42 = a1.Create(0, 0, 0, 0);
3592 v43 = &v697; 3583 v43 = &v697;
3593 goto LABEL_133; 3584 goto LABEL_133;
3594 case 44: 3585 case 44:
3595 if ( !pPlayer->CanCastSpell(uRequiredMana) ) 3586 if ( !pPlayer->CanCastSpell(uRequiredMana) )
3609 a1.spell_skill = v731; 3600 a1.spell_skill = v731;
3610 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType); 3601 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType);
3611 a1.uAttributes = 0; 3602 a1.uAttributes = 0;
3612 a1.uSectorID = 0; 3603 a1.uSectorID = 0;
3613 a1.uSpriteFrameID = 0; 3604 a1.uSpriteFrameID = 0;
3614 v44 = v3->uPlayerID;
3615 a1.field_60_distance_related_prolly_lod = 0; 3605 a1.field_60_distance_related_prolly_lod = 0;
3616 a1.uFacing = 0; 3606 a1.uFacing = 0;
3617 v44 *= 8;
3618 LOBYTE(v44) = v44 | OBJECT_Player;
3619 v38 = (signed int)v726; 3607 v38 = (signed int)v726;
3620 a1.spell_caster_pid = v44; 3608 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
3621 a1.uSoundID = LOWORD(v3->field_10); 3609 a1.uSoundID = LOWORD(v3->sound_id);
3622 a1.vPosition.x = *(__int16 *)((char *)&pActors[0].vPosition.x + HIDWORD(v733)); 3610 a1.vPosition.x = *(__int16 *)((char *)&pActors[0].vPosition.x + HIDWORD(v733));
3623 v45 = *(__int16 *)((char *)&pActors[0].vPosition.y + HIDWORD(v733)); 3611 v45 = *(__int16 *)((char *)&pActors[0].vPosition.y + HIDWORD(v733));
3624 a1.vPosition.z = *(__int16 *)((char *)&pActors[0].vPosition.z + HIDWORD(v733)); 3612 a1.vPosition.z = *(__int16 *)((char *)&pActors[0].vPosition.z + HIDWORD(v733));
3625 v46 = 8 * (int)v726;
3626 a1.vPosition.y = v45; 3613 a1.vPosition.y = v45;
3627 LOBYTE(v46) = 8 * (char)v726 | OBJECT_Actor; 3614 a1.spell_target_pid = PID(OBJECT_Actor, (int)v726);
3628 a1.field_5C = v46;
3629 v42 = a1.Create(0, 0, 0, 0); 3615 v42 = a1.Create(0, 0, 0, 0);
3630 v43 = &v704; 3616 v43 = &v704;
3631 LABEL_133: 3617 LABEL_133:
3632 v670 = (Vec3_int_ *)v43; 3618 v670 = (Vec3_int_ *)v43;
3633 v47 = v38; 3619 v47 = v38;
3650 v48 = *(short *)(HIDWORD(v733) + 138); 3636 v48 = *(short *)(HIDWORD(v733) + 138);
3651 a1.vPosition.z = *(short *)(HIDWORD(v733) + 138); 3637 a1.vPosition.z = *(short *)(HIDWORD(v733) + 138);
3652 a1.uAttributes = 0; 3638 a1.uAttributes = 0;
3653 a1.uSectorID = pIndoor->GetSector(a1.vPosition.x, a1.vPosition.y, v48); 3639 a1.uSectorID = pIndoor->GetSector(a1.vPosition.x, a1.vPosition.y, v48);
3654 a1.uSpriteFrameID = 0; 3640 a1.uSpriteFrameID = 0;
3655 v49 = 8 * v3->uPlayerID; 3641 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
3656 LOBYTE(v49) = v49 | OBJECT_Player; 3642 a1.spell_target_pid = a2;
3657 a1.spell_caster_pid = v49;
3658 a1.field_5C = a2;
3659 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 3643 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
3660 a1.uFacing = LOWORD(v715.uYawAngle); 3644 a1.uFacing = LOWORD(v715.uYawAngle);
3661 LOWORD(v49) = LOWORD(v3->field_10);
3662 LOBYTE(a1.uAttributes) |= 0x80u; 3645 LOBYTE(a1.uAttributes) |= 0x80u;
3663 a1.uSoundID = v49; 3646 a1.uSoundID = LOWORD(v3->sound_id);
3664 v726 = (Player *)a1.Create(0, 0, 0, 0); 3647 v726 = (Player *)a1.Create(0, 0, 0, 0);
3665 if ( !MonsterStats::BelongsToSupertype(*(short *)(HIDWORD(v733) + 96), MONSTER_SUPERTYPE_UNDEAD) ) 3648 if ( !MonsterStats::BelongsToSupertype(*(short *)(HIDWORD(v733) + 96), MONSTER_SUPERTYPE_UNDEAD) )
3666 { 3649 {
3667 ShowStatusBarString(pGlobalTXT_LocalizationStrings[428], 2); // Spell failed 3650 ShowStatusBarString(pGlobalTXT_LocalizationStrings[428], 2); // Spell failed
3668 pAudioPlayer->PlaySound(SOUND_PlayerCantCastSpell, 0, 0, -1, 0, 0, 0, 0); 3651 pAudioPlayer->PlaySound(SOUND_PlayerCantCastSpell, 0, 0, -1, 0, 0, 0, 0);
3706 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3); 3689 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3);
3707 else a1.uSectorID = 0; 3690 else a1.uSectorID = 0;
3708 3691
3709 a1.uSpriteFrameID = 0; 3692 a1.uSpriteFrameID = 0;
3710 a1.spell_caster_pid = (8 * v3->uPlayerID) | OBJECT_Player; 3693 a1.spell_caster_pid = (8 * v3->uPlayerID) | OBJECT_Player;
3711 a1.field_5C = a2; 3694 a1.spell_target_pid = a2;
3712 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 3695 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
3713 a1.uFacing = LOWORD(v715.uYawAngle); 3696 a1.uFacing = LOWORD(v715.uYawAngle);
3714 a1.uSoundID = LOWORD(v3->field_10); 3697 a1.uSoundID = LOWORD(v3->sound_id);
3715 if ( pParty->bTurnBasedModeOn == 1 ) 3698 if ( pParty->bTurnBasedModeOn == 1 )
3716 LOBYTE(a1.uAttributes) |= 4u; 3699 LOBYTE(a1.uAttributes) |= 4u;
3717 if ( v3->spellnum == 18 ) 3700 if ( v3->spellnum == 18 )
3718 LOBYTE(a1.uAttributes) |= 0x40u; 3701 LOBYTE(a1.uAttributes) |= 0x40u;
3719 goto LABEL_156; 3702 goto LABEL_156;
3856 a1.uSectorID = pIndoor->GetSector( 3839 a1.uSectorID = pIndoor->GetSector(
3857 pParty->vPosition.x, 3840 pParty->vPosition.x,
3858 pParty->vPosition.y, 3841 pParty->vPosition.y,
3859 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3); 3842 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3);
3860 a1.uSpriteFrameID = 0; 3843 a1.uSpriteFrameID = 0;
3861 v62 = 8 * v3->uPlayerID; 3844 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
3862 LOBYTE(v62) = v62 | OBJECT_Player; 3845 a1.spell_target_pid = a2;
3863 a1.spell_caster_pid = v62;
3864 a1.field_5C = a2;
3865 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 3846 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
3866 a1.uFacing = LOWORD(v715.uYawAngle); 3847 a1.uFacing = LOWORD(v715.uYawAngle);
3867 a1.uSoundID = LOWORD(v3->field_10); 3848 a1.uSoundID = LOWORD(v3->sound_id);
3868 a1.spell_skill = v731; 3849 a1.spell_skill = v731;
3869 a1.spell_id = SPELL_FIRE_PROTECTION_FROM_FIRE; 3850 a1.spell_id = SPELL_FIRE_PROTECTION_FROM_FIRE;
3870 a1.spell_level = 300 * v2; 3851 a1.spell_level = 300 * v2;
3871 goto LABEL_154; 3852 goto LABEL_154;
3872 case 4: 3853 case 4:
3939 (SoundID)word_4EE088_sound_ids[v3->spellnum], 3920 (SoundID)word_4EE088_sound_ids[v3->spellnum],
3940 0, 3921 0,
3941 0, 3922 0,
3942 -1, 3923 -1,
3943 0, 3924 0,
3944 v3->field_10, 3925 v3->sound_id,
3945 0, 3926 0,
3946 0); 3927 0);
3947 } 3928 }
3948 else 3929 else
3949 { 3930 {
4253 a1.vPosition.y = v112->vPosition.y; 4234 a1.vPosition.y = v112->vPosition.y;
4254 v726 = (Player *)v112->uActorHeight; 4235 v726 = (Player *)v112->uActorHeight;
4255 v121 = 8 * a2; 4236 v121 = 8 * a2;
4256 a1.vPosition.z = v112->vPosition.z - (unsigned int)(signed __int64)((double)(signed int)v726 * unk_4D8548); 4237 a1.vPosition.z = v112->vPosition.z - (unsigned int)(signed __int64)((double)(signed int)v726 * unk_4D8548);
4257 LOBYTE(v121) = 8 * a2 | 3; 4238 LOBYTE(v121) = 8 * a2 | 3;
4258 a1.field_5C = v121; 4239 a1.spell_target_pid = v121;
4259 v122 = a1.Create(0, 0, 0, 0); 4240 v122 = a1.Create(0, 0, 0, 0);
4260 DamageMonsterFromParty(8 * v122 | 2, v730, (Vec3_int_ *)&v701); 4241 DamageMonsterFromParty(8 * v122 | 2, v730, (Vec3_int_ *)&v701);
4261 LODWORD(v727) = 1; 4242 LODWORD(v727) = 1;
4262 } 4243 }
4263 else 4244 else
4428 a1.vPosition.y = LODWORD(v727); 4409 a1.vPosition.y = LODWORD(v727);
4429 a1.uSectorID = 0; 4410 a1.uSectorID = 0;
4430 a1.vPosition.z = a2 + v713; 4411 a1.vPosition.z = a2 + v713;
4431 a1.uSpriteFrameID = 0; 4412 a1.uSpriteFrameID = 0;
4432 a1.spell_caster_pid = 8 * v3->uPlayerID | OBJECT_Player; 4413 a1.spell_caster_pid = 8 * v3->uPlayerID | OBJECT_Player;
4433 a1.field_5C = v730; 4414 a1.spell_target_pid = v730;
4434 a1.field_60_distance_related_prolly_lod = stru_50C198._427546(a2 + 2500); 4415 a1.field_60_distance_related_prolly_lod = stru_50C198._427546(a2 + 2500);
4435 a1.uFacing = v687; 4416 a1.uFacing = v687;
4436 a1.uSoundID = LOWORD(v3->field_10); 4417 a1.uSoundID = LOWORD(v3->sound_id);
4437 if ( pParty->bTurnBasedModeOn == 1 ) 4418 if ( pParty->bTurnBasedModeOn == 1 )
4438 a1.uAttributes = 4; 4419 a1.uAttributes = 4;
4439 if ( a1.Create( 4420 if ( a1.Create(
4440 v687, 4421 v687,
4441 SHIDWORD(v687), 4422 SHIDWORD(v687),
4472 a1.spell_skill = v731; 4453 a1.spell_skill = v731;
4473 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType); 4454 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType);
4474 a1.uAttributes = 0; 4455 a1.uAttributes = 0;
4475 a1.uSectorID = 0; 4456 a1.uSectorID = 0;
4476 a1.uSpriteFrameID = 0; 4457 a1.uSpriteFrameID = 0;
4477 v161 = v3->uPlayerID;
4478 a1.field_60_distance_related_prolly_lod = 0; 4458 a1.field_60_distance_related_prolly_lod = 0;
4479 a1.uFacing = 0; 4459 a1.uFacing = 0;
4480 v161 *= 8; 4460 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
4481 LOBYTE(v161) = v161 | OBJECT_Player; 4461 a1.uSoundID = LOWORD(v3->sound_id);
4482 a1.spell_caster_pid = v161;
4483 a1.uSoundID = LOWORD(v3->field_10);
4484 a2 = 0; 4462 a2 = 0;
4485 if ( (signed int)v726 > 0 ) 4463 if ( (signed int)v726 > 0 )
4486 { 4464 {
4487 do 4465 do
4488 { 4466 {
4491 a1.vPosition.y = pActors[v162].vPosition.y; 4469 a1.vPosition.y = pActors[v162].vPosition.y;
4492 v732 = pActors[v162].uActorHeight; 4470 v732 = pActors[v162].uActorHeight;
4493 a1.vPosition.z = pActors[v162].vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548); 4471 a1.vPosition.z = pActors[v162].vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548);
4494 v163 = 8 * dword_50BF30[a2]; 4472 v163 = 8 * dword_50BF30[a2];
4495 LOBYTE(v163) = v163 | OBJECT_Actor; 4473 LOBYTE(v163) = v163 | OBJECT_Actor;
4496 a1.field_5C = v163; 4474 a1.spell_target_pid = v163;
4497 v164 = a1.Create(0, 0, 0, 0); 4475 v164 = a1.Create(0, 0, 0, 0);
4498 v165 = a2; 4476 v165 = a2;
4499 DamageMonsterFromParty(8 * v164 | AI_OBJECT_LAYING_ITEM, dword_50BF30[a2], &v700); 4477 DamageMonsterFromParty(8 * v164 | AI_OBJECT_LAYING_ITEM, dword_50BF30[a2], &v700);
4500 pGame->GetStru6()->_4A81CA(&a1); 4478 pGame->GetStru6()->_4A81CA(&a1);
4501 pGame->GetStru6()->FadeScreen__like_Turn_Undead_and_mb_Armageddon(0xFF3C1Eu, 0x40u); 4479 pGame->GetStru6()->FadeScreen__like_Turn_Undead_and_mb_Armageddon(0xFF3C1Eu, 0x40u);
4601 a1.uSectorID = pIndoor->GetSector( 4579 a1.uSectorID = pIndoor->GetSector(
4602 pParty->vPosition.x, 4580 pParty->vPosition.x,
4603 pParty->vPosition.y, 4581 pParty->vPosition.y,
4604 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3); 4582 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3);
4605 a1.uSpriteFrameID = 0; 4583 a1.uSpriteFrameID = 0;
4606 v187 = 8 * v3->uPlayerID; 4584 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
4607 LOBYTE(v187) = v187 | OBJECT_Player; 4585 a1.spell_target_pid = a2;
4608 a1.spell_caster_pid = v187;
4609 a1.field_5C = a2;
4610 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 4586 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
4611 a1.uSoundID = LOWORD(v3->field_10); 4587 a1.uSoundID = LOWORD(v3->sound_id);
4612 if ( pParty->bTurnBasedModeOn == 1 ) 4588 if ( pParty->bTurnBasedModeOn == 1 )
4613 LOBYTE(a1.uAttributes) |= 4u; 4589 LOBYTE(a1.uAttributes) |= 4u;
4614 v188 = (signed int)v726 / -2; 4590 v188 = (signed int)v726 / -2;
4615 v189 = (signed int)v726 / 2; 4591 v189 = (signed int)v726 / 2;
4616 while ( v188 <= v189 ) 4592 while ( v188 <= v189 )
4795 a1.vPosition.y = v713; 4771 a1.vPosition.y = v713;
4796 a1.uSectorID = 0; 4772 a1.uSectorID = 0;
4797 a1.vPosition.z = (int)((char *)_this + LODWORD(v725)); 4773 a1.vPosition.z = (int)((char *)_this + LODWORD(v725));
4798 a1.uSpriteFrameID = 0; 4774 a1.uSpriteFrameID = 0;
4799 a1.spell_caster_pid = 8 * v3->uPlayerID | OBJECT_Player; 4775 a1.spell_caster_pid = 8 * v3->uPlayerID | OBJECT_Player;
4800 a1.field_5C = v730; 4776 a1.spell_target_pid = v730;
4801 a1.field_60_distance_related_prolly_lod = stru_50C198._427546((int)&_this[69].uNumCharges); 4777 a1.field_60_distance_related_prolly_lod = stru_50C198._427546((int)&_this[69].uNumCharges);
4802 a1.uFacing = v685; 4778 a1.uFacing = v685;
4803 a1.uSoundID = LOWORD(v3->field_10); 4779 a1.uSoundID = LOWORD(v3->sound_id);
4804 if ( pParty->bTurnBasedModeOn == 1 ) 4780 if ( pParty->bTurnBasedModeOn == 1 )
4805 a1.uAttributes = 4; 4781 a1.uAttributes = 4;
4806 if ( a1.Create( 4782 if ( a1.Create(
4807 v685, 4783 v685,
4808 SHIDWORD(v685), 4784 SHIDWORD(v685),
4888 a1.vPosition.x = pParty->vPosition.x; 4864 a1.vPosition.x = pParty->vPosition.x;
4889 a1.vPosition.z = v51; 4865 a1.vPosition.z = v51;
4890 v52 = pIndoor->GetSector(pParty->vPosition.x, v660, v671); 4866 v52 = pIndoor->GetSector(pParty->vPosition.x, v660, v671);
4891 a1.uSpriteFrameID = 0; 4867 a1.uSpriteFrameID = 0;
4892 a1.uSectorID = v52; 4868 a1.uSectorID = v52;
4893 v53 = 8 * v3->uPlayerID; 4869 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
4894 LOBYTE(v53) = v53 | OBJECT_Player; 4870 a1.spell_target_pid = a2;
4895 a1.spell_caster_pid = v53;
4896 a1.field_5C = a2;
4897 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 4871 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
4898 a1.uFacing = LOWORD(v715.uYawAngle); 4872 a1.uFacing = LOWORD(v715.uYawAngle);
4899 a1.uSoundID = LOWORD(v3->field_10); 4873 a1.uSoundID = LOWORD(v3->sound_id);
4900 LABEL_154: 4874 LABEL_154:
4901 if ( pParty->bTurnBasedModeOn == 1 ) 4875 if ( pParty->bTurnBasedModeOn == 1 )
4902 LOBYTE(a1.uAttributes) |= 4u; 4876 LOBYTE(a1.uAttributes) |= 4u;
4903 LABEL_156: 4877 LABEL_156:
4904 v669 = v3->uPlayerID + 1; 4878 v669 = v3->uPlayerID + 1;
4924 a1.uSectorID = pIndoor->GetSector( 4898 a1.uSectorID = pIndoor->GetSector(
4925 pParty->vPosition.x, 4899 pParty->vPosition.x,
4926 pParty->vPosition.y, 4900 pParty->vPosition.y,
4927 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3); 4901 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3);
4928 a1.uSpriteFrameID = 0; 4902 a1.uSpriteFrameID = 0;
4929 v226 = 8 * v3->uPlayerID; 4903 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
4930 LOBYTE(v226) = v226 | OBJECT_Player; 4904 a1.spell_target_pid = a2;
4931 a1.spell_caster_pid = v226;
4932 a1.field_5C = a2;
4933 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 4905 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
4934 a1.uSoundID = LOWORD(v3->field_10); 4906 a1.uSoundID = LOWORD(v3->sound_id);
4935 if ( pParty->bTurnBasedModeOn == 1 ) 4907 if ( pParty->bTurnBasedModeOn == 1 )
4936 LOBYTE(a1.uAttributes) |= 4u; 4908 LOBYTE(a1.uAttributes) |= 4u;
4937 v227 = SHIDWORD(v733) / -2; 4909 v227 = SHIDWORD(v733) / -2;
4938 y = (char *)(SHIDWORD(v733) / 2); 4910 y = (char *)(SHIDWORD(v733) / 2);
4939 if ( SHIDWORD(v733) / -2 <= SHIDWORD(v733) / 2 ) 4911 if ( SHIDWORD(v733) / -2 <= SHIDWORD(v733) / 2 )
5485 pMessageQueue_50CBD0->AddMessage(UIMSG_B1, 0, 0); 5457 pMessageQueue_50CBD0->AddMessage(UIMSG_B1, 0, 0);
5486 qword_506350 = (signed int)v733; 5458 qword_506350 = (signed int)v733;
5487 _506348_current_lloyd_playerid = v3->uPlayerID; 5459 _506348_current_lloyd_playerid = v3->uPlayerID;
5488 ::uRequiredMana = v319; 5460 ::uRequiredMana = v319;
5489 ::sRecoveryTime = sRecoveryTime; 5461 ::sRecoveryTime = sRecoveryTime;
5490 dword_50633C = v3->field_10; 5462 dword_50633C = v3->sound_id;
5491 dword_506338 = v3->spellnum; 5463 dword_506338 = v3->spellnum;
5492 LOBYTE(v3->field_8) |= 0x20u; 5464 LOBYTE(v3->field_8) |= 0x20u;
5493 } 5465 }
5494 goto play_sound_and_continue; 5466 goto play_sound_and_continue;
5495 case 40: 5467 case 40:
5540 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3); 5512 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3);
5541 a1.uSpriteFrameID = 0; 5513 a1.uSpriteFrameID = 0;
5542 v326 = 8 * v3->uPlayerID; 5514 v326 = 8 * v3->uPlayerID;
5543 LOBYTE(v326) = v326 | OBJECT_Player; 5515 LOBYTE(v326) = v326 | OBJECT_Player;
5544 a1.spell_caster_pid = v326; 5516 a1.spell_caster_pid = v326;
5545 a1.field_5C = a2; 5517 a1.spell_target_pid = a2;
5546 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 5518 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
5547 a1.uFacing = LOWORD(pParty->sRotationY); 5519 a1.uFacing = LOWORD(pParty->sRotationY);
5548 a1.uSoundID = LOWORD(v3->field_10); 5520 a1.uSoundID = LOWORD(v3->sound_id);
5549 if ( pParty->bTurnBasedModeOn == 1 ) 5521 if ( pParty->bTurnBasedModeOn == 1 )
5550 LOBYTE(a1.uAttributes) |= 4u; 5522 LOBYTE(a1.uAttributes) |= 4u;
5551 v669 = v3->uPlayerID + 1; 5523 v669 = v3->uPlayerID + 1;
5552 v659 = pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed; 5524 v659 = pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed;
5553 v654 = pParty->sRotationX; 5525 v654 = pParty->sRotationX;
5571 a1.vPosition.y = pParty->vPosition.y; 5543 a1.vPosition.y = pParty->vPosition.y;
5572 a1.uAttributes = 0; 5544 a1.uAttributes = 0;
5573 a1.uSectorID = 0; 5545 a1.uSectorID = 0;
5574 a1.uSpriteFrameID = 0; 5546 a1.uSpriteFrameID = 0;
5575 a1.vPosition.z = pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3; 5547 a1.vPosition.z = pParty->vPosition.z + (signed int)pParty->uPartyHeight / 3;
5576 v327 = 8 * v3->uPlayerID;
5577 LOBYTE(v327) = v327 | OBJECT_Player;
5578 a1.field_60_distance_related_prolly_lod = 0; 5548 a1.field_60_distance_related_prolly_lod = 0;
5579 a1.spell_caster_pid = v327; 5549 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
5580 a1.field_5C = a2; 5550 a1.spell_target_pid = a2;
5581 a1.uFacing = LOWORD(pParty->sRotationY); 5551 a1.uFacing = LOWORD(pParty->sRotationY);
5582 a1.uSoundID = LOWORD(v3->field_10); 5552 a1.uSoundID = LOWORD(v3->sound_id);
5583 if ( pParty->bTurnBasedModeOn == 1 ) 5553 if ( pParty->bTurnBasedModeOn == 1 )
5584 a1.uAttributes = 4; 5554 a1.uAttributes = 4;
5585 v669 = 0; 5555 v669 = 0;
5586 v659 = pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed; 5556 v659 = pObjectList->pObjects[(signed __int16)a1.uObjectDescID].uSpeed;
5587 v35 = (signed int)stru_5C6E00->uIntegerHalfPi / 2; 5557 v35 = (signed int)stru_5C6E00->uIntegerHalfPi / 2;
5760 a1.spell_skill = v731; 5730 a1.spell_skill = v731;
5761 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType); 5731 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType);
5762 a1.uAttributes = 0; 5732 a1.uAttributes = 0;
5763 a1.uSectorID = 0; 5733 a1.uSectorID = 0;
5764 a1.uSpriteFrameID = 0; 5734 a1.uSpriteFrameID = 0;
5765 v368 = v3->uPlayerID;
5766 a1.field_60_distance_related_prolly_lod = 0; 5735 a1.field_60_distance_related_prolly_lod = 0;
5767 a1.uFacing = 0; 5736 a1.uFacing = 0;
5768 v368 *= 8; 5737 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
5769 LOBYTE(v368) = v368 | OBJECT_Player; 5738 a1.uSoundID = LOWORD(v3->sound_id);
5770 a1.spell_caster_pid = v368;
5771 a1.uSoundID = LOWORD(v3->field_10);
5772 for ( a2 = 0; a2 < (signed int)v726; ++a2 ) 5739 for ( a2 = 0; a2 < (signed int)v726; ++a2 )
5773 { 5740 {
5774 v369 = &pActors[dword_50BF30[a2]]; 5741 v369 = &pActors[dword_50BF30[a2]];
5775 if ( MonsterStats::BelongsToSupertype(v369->pMonsterInfo.uID, MONSTER_SUPERTYPE_UNDEAD) ) 5742 if ( MonsterStats::BelongsToSupertype(v369->pMonsterInfo.uID, MONSTER_SUPERTYPE_UNDEAD) )
5776 { 5743 {
5778 a1.vPosition.y = v369->vPosition.y; 5745 a1.vPosition.y = v369->vPosition.y;
5779 v732 = v369->uActorHeight; 5746 v732 = v369->uActorHeight;
5780 a1.vPosition.z = v369->vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548); 5747 a1.vPosition.z = v369->vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548);
5781 v370 = 8 * dword_50BF30[a2]; 5748 v370 = 8 * dword_50BF30[a2];
5782 LOBYTE(v370) = v370 | OBJECT_Actor; 5749 LOBYTE(v370) = v370 | OBJECT_Actor;
5783 a1.field_5C = v370; 5750 a1.spell_target_pid = v370;
5784 a1.Create(0, 0, 0, 0); 5751 a1.Create(0, 0, 0, 0);
5785 v732 = (int)v733 << 7; 5752 v732 = (int)v733 << 7;
5786 v369->pActorBuffs[4].Apply( 5753 v369->pActorBuffs[4].Apply(
5787 pParty->uTimePlayed + (signed __int64)((double)(signed int)((int)v733 << 7) * 0.033333335), 5754 pParty->uTimePlayed + (signed __int64)((double)(signed int)((int)v733 << 7) * 0.033333335),
5788 v731, 0, 0, 0); 5755 v731, 0, 0, 0);
6186 a1.spell_skill = v731; 6153 a1.spell_skill = v731;
6187 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType); 6154 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType);
6188 a1.uAttributes = 0; 6155 a1.uAttributes = 0;
6189 a1.uSectorID = 0; 6156 a1.uSectorID = 0;
6190 a1.uSpriteFrameID = 0; 6157 a1.uSpriteFrameID = 0;
6191 v432 = v3->uPlayerID;
6192 a1.field_60_distance_related_prolly_lod = 0; 6158 a1.field_60_distance_related_prolly_lod = 0;
6193 a1.uFacing = 0; 6159 a1.uFacing = 0;
6194 v432 *= 8; 6160 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
6195 LOBYTE(v432) = v432 | OBJECT_Player; 6161 a1.uSoundID = LOWORD(v3->sound_id);
6196 a1.spell_caster_pid = v432;
6197 a1.uSoundID = LOWORD(v3->field_10);
6198 for ( a2 = 0; a2 < (signed int)v726; ++a2 ) 6162 for ( a2 = 0; a2 < (signed int)v726; ++a2 )
6199 { 6163 {
6200 v433 = &pActors[dword_50BF30[a2]]; 6164 v433 = &pActors[dword_50BF30[a2]];
6201 if ( MonsterStats::BelongsToSupertype(v433->pMonsterInfo.uID, MONSTER_SUPERTYPE_UNDEAD) ) 6165 if ( MonsterStats::BelongsToSupertype(v433->pMonsterInfo.uID, MONSTER_SUPERTYPE_UNDEAD) )
6202 break; 6166 break;
6204 a1.vPosition.y = v433->vPosition.y; 6168 a1.vPosition.y = v433->vPosition.y;
6205 v732 = v433->uActorHeight; 6169 v732 = v433->uActorHeight;
6206 a1.vPosition.z = v433->vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548); 6170 a1.vPosition.z = v433->vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548);
6207 v434 = 8 * dword_50BF30[a2]; 6171 v434 = 8 * dword_50BF30[a2];
6208 LOBYTE(v434) = v434 | OBJECT_Actor; 6172 LOBYTE(v434) = v434 | OBJECT_Actor;
6209 a1.field_5C = v434; 6173 a1.spell_target_pid = v434;
6210 a1.Create(0, 0, 0, 0); 6174 a1.Create(0, 0, 0, 0);
6211 if ( stru_50C198.GetMagicalResistance(v433, 7u) ) 6175 if ( stru_50C198.GetMagicalResistance(v433, 7u) )
6212 { 6176 {
6213 v732 = amount << 7; 6177 v732 = amount << 7;
6214 v433->pActorBuffs[4].Apply( 6178 v433->pActorBuffs[4].Apply(
6610 a1.spell_skill = v731; 6574 a1.spell_skill = v731;
6611 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType); 6575 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType);
6612 a1.uAttributes = 0; 6576 a1.uAttributes = 0;
6613 a1.uSectorID = 0; 6577 a1.uSectorID = 0;
6614 a1.uSpriteFrameID = 0; 6578 a1.uSpriteFrameID = 0;
6615 v506 = v3->uPlayerID;
6616 a1.field_60_distance_related_prolly_lod = 0; 6579 a1.field_60_distance_related_prolly_lod = 0;
6617 a1.uFacing = 0; 6580 a1.uFacing = 0;
6618 v506 *= 8; 6581 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
6619 LOBYTE(v506) = v506 | OBJECT_Player; 6582 a1.uSoundID = LOWORD(v3->sound_id);
6620 a1.spell_caster_pid = v506;
6621 a1.uSoundID = LOWORD(v3->field_10);
6622 a2 = 0; 6583 a2 = 0;
6623 if ( SHIDWORD(v733) > 0 ) 6584 if ( SHIDWORD(v733) > 0 )
6624 { 6585 {
6625 do 6586 do
6626 { 6587 {
6629 a1.vPosition.y = pActors[v507].vPosition.y; 6590 a1.vPosition.y = pActors[v507].vPosition.y;
6630 v732 = pActors[v507].uActorHeight; 6591 v732 = pActors[v507].uActorHeight;
6631 a1.vPosition.z = pActors[v507].vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548); 6592 a1.vPosition.z = pActors[v507].vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548);
6632 v508 = 8 * dword_50BF30[a2]; 6593 v508 = 8 * dword_50BF30[a2];
6633 LOBYTE(v508) = v508 | OBJECT_Actor; 6594 LOBYTE(v508) = v508 | OBJECT_Actor;
6634 a1.field_5C = v508; 6595 a1.spell_target_pid = v508;
6635 v509 = a1.Create(0, 0, 0, 0); 6596 v509 = a1.Create(0, 0, 0, 0);
6636 v510 = a2; 6597 v510 = a2;
6637 DamageMonsterFromParty(8 * v509 | OBJECT_Item, dword_50BF30[a2], (Vec3_int_ *)&v688); 6598 DamageMonsterFromParty(8 * v509 | OBJECT_Item, dword_50BF30[a2], (Vec3_int_ *)&v688);
6638 a2 = v510 + 1; 6599 a2 = v510 + 1;
6639 } 6600 }
6646 a1.vPosition.y = v511->vPosition.y; 6607 a1.vPosition.y = v511->vPosition.y;
6647 v732 = v511->uActorHeight; 6608 v732 = v511->uActorHeight;
6648 a1.vPosition.z = v511->vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548); 6609 a1.vPosition.z = v511->vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548);
6649 v512 = 8 * dword_50BF30[a2]; 6610 v512 = 8 * dword_50BF30[a2];
6650 LOBYTE(v512) = v512 | OBJECT_Actor; 6611 LOBYTE(v512) = v512 | OBJECT_Actor;
6651 a1.field_5C = v512; 6612 a1.spell_target_pid = v512;
6652 a1.Create(0, 0, 0, 0); 6613 a1.Create(0, 0, 0, 0);
6653 v513 = v511->pActorBuffs; 6614 v513 = v511->pActorBuffs;
6654 v726 = (Player *)22; 6615 v726 = (Player *)22;
6655 do 6616 do
6656 { 6617 {
6775 a1.spell_skill = v731; 6736 a1.spell_skill = v731;
6776 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType); 6737 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType);
6777 a1.uAttributes = 0; 6738 a1.uAttributes = 0;
6778 a1.uSectorID = 0; 6739 a1.uSectorID = 0;
6779 a1.uSpriteFrameID = 0; 6740 a1.uSpriteFrameID = 0;
6780 v532 = v3->uPlayerID;
6781 a1.field_60_distance_related_prolly_lod = 0; 6741 a1.field_60_distance_related_prolly_lod = 0;
6782 a1.uFacing = 0; 6742 a1.uFacing = 0;
6783 v532 *= 8; 6743 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
6784 LOBYTE(v532) = v532 | OBJECT_Player; 6744 a1.uSoundID = LOWORD(v3->sound_id);
6785 a1.spell_caster_pid = v532;
6786 a1.uSoundID = LOWORD(v3->field_10);
6787 a2 = 0; 6745 a2 = 0;
6788 if ( (signed int)v726 > 0 ) 6746 if ( (signed int)v726 > 0 )
6789 { 6747 {
6790 do 6748 do
6791 { 6749 {
6794 a1.vPosition.y = pActors[v533].vPosition.y; 6752 a1.vPosition.y = pActors[v533].vPosition.y;
6795 v732 = pActors[v533].uActorHeight; 6753 v732 = pActors[v533].uActorHeight;
6796 a1.vPosition.z = pActors[v533].vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548); 6754 a1.vPosition.z = pActors[v533].vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548);
6797 v534 = 8 * dword_50BF30[a2]; 6755 v534 = 8 * dword_50BF30[a2];
6798 LOBYTE(v534) = v534 | OBJECT_Actor; 6756 LOBYTE(v534) = v534 | OBJECT_Actor;
6799 a1.field_5C = v534; 6757 a1.spell_target_pid = v534;
6800 v535 = a1.Create(0, 0, 0, 0); 6758 v535 = a1.Create(0, 0, 0, 0);
6801 v536 = a2; 6759 v536 = a2;
6802 DamageMonsterFromParty(8 * v535 | OBJECT_Item, dword_50BF30[a2], (Vec3_int_ *)&v694); 6760 DamageMonsterFromParty(8 * v535 | OBJECT_Item, dword_50BF30[a2], (Vec3_int_ *)&v694);
6803 a2 = v536 + 1; 6761 a2 = v536 + 1;
6804 } 6762 }
7005 a1.spell_skill = v731; 6963 a1.spell_skill = v731;
7006 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType); 6964 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType);
7007 a1.uAttributes = 0; 6965 a1.uAttributes = 0;
7008 a1.uSectorID = 0; 6966 a1.uSectorID = 0;
7009 a1.uSpriteFrameID = 0; 6967 a1.uSpriteFrameID = 0;
7010 v580 = v3->uPlayerID;
7011 a1.field_60_distance_related_prolly_lod = 0; 6968 a1.field_60_distance_related_prolly_lod = 0;
7012 v581 = v721; 6969 v581 = v721;
7013 v580 *= 8;
7014 LOBYTE(v580) = v580 | OBJECT_Player;
7015 a1.uFacing = 0; 6970 a1.uFacing = 0;
7016 a1.spell_caster_pid = v580; 6971 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
7017 a1.uSoundID = LOWORD(v3->field_10); 6972 a1.uSoundID = LOWORD(v3->sound_id);
7018 a1.vPosition.x = *(short *)(v721 + 142); 6973 a1.vPosition.x = *(short *)(v721 + 142);
7019 a1.vPosition.y = *(short *)(v721 + 144); 6974 a1.vPosition.y = *(short *)(v721 + 144);
7020 v732 = *(short *)(v721 + 138); 6975 v732 = *(short *)(v721 + 138);
7021 v582 = 8 * (int)v726; 6976 v582 = 8 * (int)v726;
7022 a1.vPosition.z = *(short *)(v721 + 146) - (unsigned int)(signed __int64)((double)v732 * unk_4D8548); 6977 a1.vPosition.z = *(short *)(v721 + 146) - (unsigned int)(signed __int64)((double)v732 * unk_4D8548);
7023 LOBYTE(v582) = 8 * (char)v726 | OBJECT_Actor; 6978 a1.spell_target_pid = PID(OBJECT_Actor, (int)v726);
7024 a1.field_5C = v582;
7025 a1.Create(0, 0, 0, 0); 6979 a1.Create(0, 0, 0, 0);
7026 if ( *(char *)(v581 + 52) > amount ) 6980 if ( *(char *)(v581 + 52) > amount )
7027 goto play_sound_and_continue; 6981 goto play_sound_and_continue;
7028 Actor::Resurrect((unsigned int)v726); 6982 Actor::Resurrect((unsigned int)v726);
7029 *(char *)(v581 + 61) = 0; 6983 *(char *)(v581 + 61) = 0;
7118 a1.uSectorID = pIndoor->GetSector( 7072 a1.uSectorID = pIndoor->GetSector(
7119 pParty->vPosition.x, 7073 pParty->vPosition.x,
7120 pParty->vPosition.y, 7074 pParty->vPosition.y,
7121 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 2); 7075 pParty->vPosition.z + (signed int)pParty->uPartyHeight / 2);
7122 a1.uSpriteFrameID = 0; 7076 a1.uSpriteFrameID = 0;
7123 v595 = 8 * v3->uPlayerID; 7077 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
7124 LOBYTE(v595) = v595 | OBJECT_Player; 7078 a1.spell_target_pid = a2;
7125 a1.spell_caster_pid = v595;
7126 a1.field_5C = a2;
7127 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 7079 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
7128 a1.uSoundID = LOWORD(v3->field_10); 7080 a1.uSoundID = LOWORD(v3->sound_id);
7129 if ( pParty->bTurnBasedModeOn == 1 ) 7081 if ( pParty->bTurnBasedModeOn == 1 )
7130 LOBYTE(a1.uAttributes) |= 4u; 7082 LOBYTE(a1.uAttributes) |= 4u;
7131 v596 = (signed int)v726 / -2; 7083 v596 = (signed int)v726 / -2;
7132 y = (char *)((signed int)v726 / 2); 7084 y = (char *)((signed int)v726 / 2);
7133 if ( (signed int)v726 / -2 <= (signed int)v726 / 2 ) 7085 if ( (signed int)v726 / -2 <= (signed int)v726 / 2 )
7204 v657 = v601; 7156 v657 = v601;
7205 LABEL_1087: 7157 LABEL_1087:
7206 a1.uAttributes = 0; 7158 a1.uAttributes = 0;
7207 a1.uSectorID = pIndoor->GetSector(v657, v665, v676); 7159 a1.uSectorID = pIndoor->GetSector(v657, v665, v676);
7208 a1.uSpriteFrameID = 0; 7160 a1.uSpriteFrameID = 0;
7209 v604 = 8 * v3->uPlayerID; 7161 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
7210 LOBYTE(v604) = v604 | OBJECT_Player; 7162 a1.spell_target_pid = a2;
7211 a1.spell_caster_pid = v604;
7212 a1.field_5C = a2;
7213 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance); 7163 a1.field_60_distance_related_prolly_lod = LOBYTE(v715.uDistance);
7214 a1.uFacing = LOWORD(v715.uYawAngle); 7164 a1.uFacing = LOWORD(v715.uYawAngle);
7215 LOWORD(v604) = LOWORD(v3->field_10);
7216 LOBYTE(a1.uAttributes) |= 0x80u; 7165 LOBYTE(a1.uAttributes) |= 0x80u;
7217 a1.uSoundID = v604; 7166 a1.uSoundID = LOWORD(v3->sound_id);
7218 a1.Create(0, 0, 0, v3->uPlayerID + 1); 7167 a1.Create(0, 0, 0, v3->uPlayerID + 1);
7219 goto LABEL_1056; 7168 goto LABEL_1056;
7220 case 96: 7169 case 96:
7221 if ( !pPlayer->CanCastSpell(uRequiredMana) ) 7170 if ( !pPlayer->CanCastSpell(uRequiredMana) )
7222 goto play_sound_and_continue; 7171 goto play_sound_and_continue;
7342 a1.spell_skill = v731; 7291 a1.spell_skill = v731;
7343 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType); 7292 a1.uObjectDescID = pObjectList->ObjectIDByItemID(a1.uType);
7344 a1.uAttributes = 0; 7293 a1.uAttributes = 0;
7345 a1.uSectorID = 0; 7294 a1.uSectorID = 0;
7346 a1.uSpriteFrameID = 0; 7295 a1.uSpriteFrameID = 0;
7347 v624 = v3->uPlayerID;
7348 a1.field_60_distance_related_prolly_lod = 0; 7296 a1.field_60_distance_related_prolly_lod = 0;
7349 a1.uFacing = 0; 7297 a1.uFacing = 0;
7350 v624 *= 8; 7298 a1.spell_caster_pid = PID(OBJECT_Player, v3->uPlayerID);
7351 LOBYTE(v624) = v624 | OBJECT_Player; 7299 a1.uSoundID = LOWORD(v3->sound_id);
7352 a1.spell_caster_pid = v624;
7353 a1.uSoundID = LOWORD(v3->field_10);
7354 a2 = 0; 7300 a2 = 0;
7355 if ( SHIDWORD(v733) > 0 ) 7301 if ( SHIDWORD(v733) > 0 )
7356 { 7302 {
7357 v726 = (Player *)(HIDWORD(v733) * (7 * v2 + 25)); 7303 v726 = (Player *)(HIDWORD(v733) * (7 * v2 + 25));
7358 do 7304 do
7362 a1.vPosition.y = pActors[v625].vPosition.y; 7308 a1.vPosition.y = pActors[v625].vPosition.y;
7363 v732 = pActors[v625].uActorHeight; 7309 v732 = pActors[v625].uActorHeight;
7364 a1.vPosition.z = pActors[v625].vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548); 7310 a1.vPosition.z = pActors[v625].vPosition.z - (unsigned int)(signed __int64)((double)v732 * unk_4D8548);
7365 v626 = 8 * dword_50BF30[a2]; 7311 v626 = 8 * dword_50BF30[a2];
7366 LOBYTE(v626) = v626 | OBJECT_Actor; 7312 LOBYTE(v626) = v626 | OBJECT_Actor;
7367 a1.field_5C = v626; 7313 a1.spell_target_pid = v626;
7368 v627 = a1.Create(0, 0, 0, 0); 7314 v627 = a1.Create(0, 0, 0, 0);
7369 v628 = a2; 7315 v628 = a2;
7370 DamageMonsterFromParty(8 * v627 | 2, dword_50BF30[a2], (Vec3_int_ *)&v707); 7316 DamageMonsterFromParty(8 * v627 | 2, dword_50BF30[a2], (Vec3_int_ *)&v707);
7371 a2 = v628 + 1; 7317 a2 = v628 + 1;
7372 } 7318 }
8178 a1a.uSoundID = 0; 8124 a1a.uSoundID = 0;
8179 a1a.uAttributes = attributes; 8125 a1a.uAttributes = attributes;
8180 a1a.uSectorID = pIndoor->GetSector(v21, y, z); 8126 a1a.uSectorID = pIndoor->GetSector(v21, y, z);
8181 a1a.uSpriteFrameID = 0; 8127 a1a.uSpriteFrameID = 0;
8182 a1a.spell_caster_pid = 0; 8128 a1a.spell_caster_pid = 0;
8183 a1a.field_5C = 0; 8129 a1a.spell_target_pid = 0;
8184 if ( !(a1a.uAttributes & 0x10) ) 8130 if ( !(a1a.uAttributes & 0x10) )
8185 { 8131 {
8186 v13 = 0; 8132 v13 = 0;
8187 if ( (signed int)pItemsTable->uAllItemsCount > 0 ) 8133 if ( (signed int)pItemsTable->uAllItemsCount > 0 )
8188 { 8134 {
8284 a1.uSoundID = 0; 8230 a1.uSoundID = 0;
8285 a1.uAttributes = 0; 8231 a1.uAttributes = 0;
8286 a1.uSectorID = pIndoor->GetSector(v3, v4, z); 8232 a1.uSectorID = pIndoor->GetSector(v3, v4, z);
8287 a1.uSpriteFrameID = 0; 8233 a1.uSpriteFrameID = 0;
8288 a1.spell_caster_pid = 0; 8234 a1.spell_caster_pid = 0;
8289 a1.field_5C = 0; 8235 a1.spell_target_pid = 0;
8290 v8 = a1.Create(0, 0, 0, 0); 8236 v8 = a1.Create(0, 0, 0, 0);
8291 if ( v8 != -1 ) 8237 if ( v8 != -1 )
8292 { 8238 {
8293 v9 = 8 * v8; 8239 v9 = 8 * v8;
8294 LOBYTE(v9) = v9 | 2; 8240 LOBYTE(v9) = v9 | 2;
8344 a1a.vPosition.y = v7; 8290 a1a.vPosition.y = v7;
8345 a1a.vPosition.z = a3; 8291 a1a.vPosition.z = a3;
8346 a1a.uAttributes = 0; 8292 a1a.uAttributes = 0;
8347 a1a.uSectorID = pIndoor->GetSector(v6, v7, a3); 8293 a1a.uSectorID = pIndoor->GetSector(v6, v7, a3);
8348 a1a.uSpriteFrameID = 0; 8294 a1a.uSpriteFrameID = 0;
8349 a1a.field_5C = 0; 8295 a1a.spell_target_pid = 0;
8350 a1a.field_60_distance_related_prolly_lod = 0; 8296 a1a.field_60_distance_related_prolly_lod = 0;
8351 a1a.uFacing = 0; 8297 a1a.uFacing = 0;
8352 a1a.uSoundID = 0; 8298 a1a.uSoundID = 0;
8353 if ( a6 >= 1 || a6 <= 4 ) 8299 if ( a6 >= 1 || a6 <= 4 )
8354 { 8300 {