comparison mm7_5.cpp @ 97:8c0fcfa72fce

Слияние
author Ritor1
date Thu, 07 Feb 2013 13:54:32 +0600
parents 471b1354cc73
children b7ff791b1333
comparison
equal deleted inserted replaced
96:bb449743ee81 97:8c0fcfa72fce
4154 continue; 4154 continue;
4155 } 4155 }
4156 if ( pUIMessageType == UIMSG_PlayerCreationClickOK ) 4156 if ( pUIMessageType == UIMSG_PlayerCreationClickOK )
4157 { 4157 {
4158 GUIWindow::Create(580, 431, 0, 0, (enum WindowType)90, (int)pPlayerCreationUI_BtnOK, 0); 4158 GUIWindow::Create(580, 431, 0, 0, (enum WindowType)90, (int)pPlayerCreationUI_BtnOK, 0);
4159 if ( PlayerCreation_ComputeAttributeBonus() || !sub_4908DE() ) 4159 if ( PlayerCreation_ComputeAttributeBonus() || !PlayerCreation_Chose4Skills() )
4160 GameUI_StatusBar_TimedStringTimeLeft = GetTickCount() + 4000; 4160 GameUI_StatusBar_TimedStringTimeLeft = GetTickCount() + 4000;
4161 else 4161 else
4162 uGameState = 6; 4162 uGameState = 6;
4163 continue; 4163 continue;
4164 } 4164 }
4945 unsigned int v22; // edx@17 4945 unsigned int v22; // edx@17
4946 int v23; // edx@18 4946 int v23; // edx@18
4947 int v24; // eax@18 4947 int v24; // eax@18
4948 Vec3_int_ v25; // ST04_12@19 4948 Vec3_int_ v25; // ST04_12@19
4949 unsigned int v26; // ebx@20 4949 unsigned int v26; // ebx@20
4950 char *v27; // edi@20 4950 Player *v27; // edi@20
4951 char *v28; // edi@27 4951 Actor *v28; // edi@27
4952 int v29; // ebx@29 4952 int v29; // ebx@29
4953 int v30; // eax@29 4953 int v30; // eax@29
4954 int v31; // edx@29 4954 int v31; // edx@29
4955 int v32; // eax@29 4955 int v32; // eax@29
4956 int v33; // ST24_4@29 4956 int v33; // ST24_4@29
5071 v25.y = *((short *)v1 - 100); 5071 v25.y = *((short *)v1 - 100);
5072 v25.x = *((short *)v1 - 200); 5072 v25.x = *((short *)v1 - 200);
5073 if ( sub_407A1C(pParty->vPosition.x, pParty->vPosition.y, pParty->vPosition.z + pParty->sEyelevel, v25) ) 5073 if ( sub_407A1C(pParty->vPosition.x, pParty->vPosition.y, pParty->vPosition.z + pParty->sEyelevel, v25) )
5074 { 5074 {
5075 v26 = 0; 5075 v26 = 0;
5076 v27 = (char *)&pParty->pPlayers[0].pConditions[15]; 5076 v27 = pParty->pPlayers;//[0].pConditions[15];
5077 do 5077 do
5078 { 5078 {
5079 if ( !(*((int *)v27 - 1) | *((int *)v27 - 2)) && !*(_QWORD *)v27 && !*((_QWORD *)v27 + 1) ) 5079 if ( !(HIDWORD(v27->pConditions[14]) | LODWORD(v27->pConditions[14])) && !v27->pConditions[15] && !v27->pConditions[16] )
5080 DamagePlayerFromMonster(*((short *)v1 - 300), stru_50FE08.field_450[v43], pVelocity, v26); 5080 DamagePlayerFromMonster(*((short *)v1 - 300), stru_50FE08.field_450[v43], pVelocity, v26);
5081 v27 += 6972; 5081 ++v27;
5082 ++v26; 5082 ++v26;
5083 } 5083 }
5084 while ( (signed int)v27 < (signed int)&pParty->pHirelings[1].evtb ); 5084 while ( v27 <= &pParty->pPlayers[3] );
5085 } 5085 }
5086 } 5086 }
5087 uActorID = 0; 5087 uActorID = 0;
5088 if ( (signed int)uNumActors > 0 ) 5088 if ( (signed int)uNumActors > 0 )
5089 { 5089 {
5090 v28 = (char *)&pActors[0].vPosition.z; 5090 v28 = pActors;//[0].vPosition.z;
5091 do 5091 do
5092 { 5092 {
5093 if ( ((Actor *)(v28 - 146))->CanAct() ) 5093 if ( v28->CanAct() )
5094 { 5094 {
5095 v29 = *(short *)v1; 5095 v29 = *(short *)v1;
5096 v30 = *((short *)v28 - 1) - *((short *)v1 - 100); 5096 v30 = v28->vPosition.y - *((short *)v1 - 100);
5097 a1 = *((short *)v28 - 2) - *((short *)v1 - 200); 5097 a1 = v28->vPosition.x - *((short *)v1 - 200);
5098 v31 = *(short *)v28; 5098 v31 = v28->vPosition.z;
5099 v48 = v30; 5099 v48 = v30;
5100 v44 = v31; 5100 v44 = v31;
5101 v32 = ((signed int)*((short *)v28 - 4) >> 1) - v29; 5101 v32 = (v28->uActorHeight >> 1) - v29;
5102 v33 = *((short *)v28 - 5) + *((short *)v1 + 100); 5102 v33 = v28->uActorRadius + *((short *)v1 + 100);
5103 if ( a1 * a1 + v48 * v48 + (v31 + v32) * (v31 + v32) < (unsigned int)(v33 * v33) ) 5103 if ( a1 * a1 + v48 * v48 + (v31 + v32) * (v31 + v32) < (unsigned int)(v33 * v33) )
5104 { 5104 {
5105 v34.z = *(short *)v1; 5105 v34.z = *(short *)v1;
5106 v34.y = *((short *)v1 - 100); 5106 v34.y = *((short *)v1 - 100);
5107 v34.x = *((short *)v1 - 200); 5107 v34.x = *((short *)v1 - 200);
5108 if ( sub_407A1C(*((short *)v28 - 2), *((short *)v28 - 1), *(short *)v28 + 50, v34) ) 5108 if ( sub_407A1C(v28->vPosition.x, v28->vPosition.y, v28->vPosition.z + 50, v34) )
5109 { 5109 {
5110 Vec3_int_::Normalize(&a1, &v48, &v44); 5110 Vec3_int_::Normalize(&a1, &v48, &v44);
5111 v35 = pVelocity; 5111 v35 = pVelocity;
5112 pVelocity->x = a1; 5112 pVelocity->x = a1;
5113 v35->y = v48; 5113 v35->y = v48;
5116 { 5116 {
5117 case 4: 5117 case 4:
5118 DamageMonsterFromParty(*((short *)v1 - 300), uActorID, v35); 5118 DamageMonsterFromParty(*((short *)v1 - 300), uActorID, v35);
5119 break; 5119 break;
5120 case 3: 5120 case 3:
5121 if ( v36 && pActors[v37].GetActorsRelation((Actor *)(v28 - 146)) ) 5121 if ( v36 && pActors[v37].GetActorsRelation(v28) )
5122 sub_43B1B0(*((short *)v1 - 300), uActorID, pVelocity, v36->field_61); 5122 sub_43B1B0(*((short *)v1 - 300), uActorID, pVelocity, v36->field_61);
5123 break; 5123 break;
5124 case 2: 5124 case 2:
5125 sub_43B057(*((short *)v1 - 300), uActorID, v35); 5125 sub_43B057(*((short *)v1 - 300), uActorID, v35);
5126 break; 5126 break;
5127 } 5127 }
5128 } 5128 }
5129 } 5129 }
5130 } 5130 }
5131 ++uActorID; 5131 ++uActorID;
5132 v28 += 836; 5132 ++v28;
5133 } 5133 }
5134 while ( (signed int)uActorID < (signed int)uNumActors ); 5134 while ( (signed int)uActorID < (signed int)uNumActors );
5135 } 5135 }
5136 } 5136 }
5137 ++pVelocity; 5137 ++pVelocity;