comparison mm7_4.cpp @ 157:9130272cdd48

PlayerCreationUI_Loop 30.11.12
author Ritor1
date Fri, 30 Nov 2012 00:23:11 +0600
parents 60bb9d93c097
children 062e8a8e09bc 3ee6e30b7943
comparison
equal deleted inserted replaced
156:6386d105011a 157:9130272cdd48
5868 int v7; // esi@12 5868 int v7; // esi@12
5869 signed int v8; // edi@30 5869 signed int v8; // edi@30
5870 int v9; // edx@31 5870 int v9; // edx@31
5871 char *v10; // ebx@37 5871 char *v10; // ebx@37
5872 Player *v11; // esi@38 5872 Player *v11; // esi@38
5873 signed int v12; // ecx@40 5873 signed int uSpellBookPageCount; // ecx@40
5874 int v13; // eax@40 5874 int v13; // eax@40
5875 signed int v14; // eax@45 5875 signed int v14; // eax@45
5876 int v15; // eax@70 5876 int v15; // eax@70
5877 signed int v16; // ecx@70 5877 signed int v16; // ecx@70
5878 unsigned int v18; // [sp-4h] [bp-84h]@48 5878 unsigned int v18; // [sp-4h] [bp-84h]@48
5993 v20[v9] = 1; 5993 v20[v9] = 1;
5994 } 5994 }
5995 while ( (signed int)v1 < 32 ); 5995 while ( (signed int)v1 < 32 );
5996 item.Reset(); 5996 item.Reset();
5997 v10 = (char *)&pParty->pPlayers[0].sResMagicBase; 5997 v10 = (char *)&pParty->pPlayers[0].sResMagicBase;
5998 //do
5999 for ( pPlayer = &pParty->pPlayers[0]; (signed int)v10 < (signed int)((char *)&pParty->field_871C[455] + 2); pPlayer++) 5998 for ( pPlayer = &pParty->pPlayers[0]; (signed int)v10 < (signed int)((char *)&pParty->field_871C[455] + 2); pPlayer++)
6000 { 5999 {
6001 v11 = pPlayer; 6000 v11 = pPlayer;
6002 if ( !*(v10 - 5829) ) 6001 if ( !pPlayer->uClass )
6003 *(short *)v10 = 10; 6002 pPlayer->sResMagicBase = 10;
6004 *((short *)v10 + 400) = 0; 6003 *((short *)v10 + 400) = 0;
6005 v12 = 0; 6004 uSpellBookPageCount = 0;
6006 v13 = (int)(v10 - 5726); 6005 for ( int i = 0; i < 9; i++)
6007 while ( !*(short *)v13 ) 6006 {
6008 { 6007 if ( pPlayer->pActiveSkills[12+i] )
6009 ++v12; 6008 ++uSpellBookPageCount;
6010 v13 += 2; 6009 }
6011 if ( v12 >= 9 ) 6010 pPlayer->pNumSpellBookPage = uSpellBookPageCount;
6012 goto LABEL_45;
6013 }
6014 *(char *)(pPlayer->pNumSpellBookPage) = v12;
6015 LABEL_45:
6016 pItemsTable->GenerateItem(2, 40, &item); 6011 pItemsTable->GenerateItem(2, 40, &item);
6017 pPlayer->AddItem2(0xFFFFFFFFu, &item); 6012 pPlayer->AddItem2(0xFFFFFFFFu, &item);
6018 v14 = 0; 6013 v14 = 0;
6019 v24.y = 0; 6014 v24.y = 0;
6020 do 6015 do
6021 { 6016 {
6022 if ( *(short *)(v11 + 2 * v14 + 264) ) 6017 if ( pPlayer->pActiveSkills[v14] )
6023 { 6018 {
6024 switch ( v14 ) 6019 switch ( v14 )
6025 { 6020 {
6026 case 0: 6021 case 0:
6027 v18 = 61; 6022 v18 = 61;
6055 goto LABEL_69; 6050 goto LABEL_69;
6056 case 11: 6051 case 11:
6057 v18 = 76; 6052 v18 = 76;
6058 goto LABEL_69; 6053 goto LABEL_69;
6059 case 12: 6054 case 12:
6060 pPlayer->AddItem(0xFFFFFFFFu, 0x191u); 6055 pPlayer->AddItem(-1, 0x191);
6061 *(char *)(v11 + 402) = 1; // pFireSpellBook 6056 pPlayer->spellbook.pFireSpellbook.bIsSpellbookAvailable = 1;
6062 break; 6057 break;
6063 case 13: 6058 case 13:
6064 pPlayer->AddItem(0xFFFFFFFFu, 0x19Cu); 6059 pPlayer->AddItem(-1, 0x19C);
6065 *(char *)(v11 + 413) = 1; 6060 pPlayer->spellbook.pAirSpellbook.bIsSpellbookAvailable = 1;
6066 break; 6061 break;
6067 case 14: 6062 case 14:
6068 pPlayer->AddItem(0xFFFFFFFFu, 0x1A7u); 6063 pPlayer->AddItem(-1, 0x1A7);
6069 *(char *)(v11 + 424) = 1; 6064 pPlayer->spellbook.pWaterSpellbook.bIsSpellbookAvailable = 1;
6070 break; 6065 break;
6071 case 15: 6066 case 15:
6072 pPlayer->AddItem(0xFFFFFFFFu, 0x1B2u); 6067 pPlayer->AddItem(-1, 0x1B2);
6073 *(char *)(v11 + 435) = 1; 6068 pPlayer->spellbook.pEarthSpellbook.bIsSpellbookAvailable = 1;
6074 break; 6069 break;
6075 case 16: 6070 case 16:
6076 pPlayer->AddItem(0xFFFFFFFFu, 0x1BDu); 6071 pPlayer->AddItem(-1, 0x1BD);
6077 *(char *)(v11 + 446) = 1; 6072 pPlayer->spellbook.pSpiritSpellbook.bIsSpellbookAvailable = 1;
6078 break; 6073 break;
6079 case 17: 6074 case 17:
6080 pPlayer->AddItem(0xFFFFFFFFu, 0x1C8u); 6075 pPlayer->AddItem(-1, 0x1C8);
6081 *(char *)(v11 + 457) = 1; 6076 pPlayer->spellbook.pMindSpellbook.bIsSpellbookAvailable = 1;
6082 break; 6077 break;
6083 case 18: 6078 case 18:
6084 pPlayer->AddItem(0xFFFFFFFFu, 0x1D3u); 6079 pPlayer->AddItem(-1, 0x1D3);
6085 *(char *)(v11 + 468) = 1; 6080 pPlayer->spellbook.pBodySpellbook.bIsSpellbookAvailable = 1;
6086 break; 6081 break;
6087 case 21: 6082 case 21:
6088 case 23: 6083 case 23:
6089 case 25: 6084 case 25:
6090 case 26: 6085 case 26:
6091 case 29: 6086 case 29:
6092 case 36: 6087 case 36:
6093 pPlayer->AddItem(0xFFFFFFFFu, 0xDCu); 6088 pPlayer->AddItem(-1, 0xDC);
6094 v18 = 5 * (rand() % 3 + 40); 6089 v18 = 5 * (rand() % 3 + 40);
6095 goto LABEL_69; 6090 goto LABEL_69;
6096 case 30: 6091 case 30:
6097 v18 = 115; 6092 v18 = 115;
6098 goto LABEL_69; 6093 goto LABEL_69;
6099 case 31: 6094 case 31:
6100 v18 = 110; 6095 v18 = 110;
6101 LABEL_69: 6096 LABEL_69:
6102 pPlayer->AddItem(0xFFFFFFFFu, v18); 6097 pPlayer->AddItem(-1, v18);
6103 break; 6098 break;
6104 default: 6099 default:
6105 break; 6100 break;
6106 } 6101 }
6107 v15 = (int)v11 + 552; 6102 for ( int i = 0; i < 138; i++)
6108 v16 = 138; 6103 {
6109 do 6104 if ( &pPlayer->pInventoryItems[i] )
6110 { 6105 pPlayer->pInventoryItems[i].uAttributes |= 1;
6111 if ( *(int *)(v15 - 20) ) 6106 }
6112 *(int *)v15 |= 1u; 6107 pPlayer->sHealth = pPlayer->GetMaxHealth();
6113 v15 += 36; 6108 pPlayer->sMana = pPlayer->GetMaxMana();
6114 --v16;
6115 }
6116 while ( v16 );
6117 *(int *)(v11 + 6460) = pPlayer->GetMaxHealth();
6118 *(int *)(v11 + 6464) = pPlayer->GetMaxMana();
6119 v14 = v24.y; 6109 v14 = v24.y;
6120 } 6110 }
6121 ++v14; 6111 ++v14;
6122 v24.y = v14; 6112 v24.y = v14;
6123 } 6113 }