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