Mercurial > mm7
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 { |