Mercurial > mm7
diff UI/UIPartyCreation.cpp @ 1678:6faacde46271
DrawPopupWindow
author | Ritor1 |
---|---|
date | Fri, 20 Sep 2013 17:31:37 +0600 |
parents | a699ecd7aeb3 |
children | 28cb79ae2f6f |
line wrap: on
line diff
--- a/UI/UIPartyCreation.cpp Fri Sep 20 14:31:42 2013 +0600 +++ b/UI/UIPartyCreation.cpp Fri Sep 20 17:31:37 2013 +0600 @@ -384,20 +384,8 @@ void PlayerCreationUI_Initialize() { unsigned int v0; // ebx@5 - unsigned int v1; // eax@6 - int v2; // ecx@6 - //unsigned int v3; // eax@8 - //signed int v4; // ecx@8 signed int uControlParam; // [sp+10h] [bp-Ch]@7 - unsigned int uControlParama; // [sp+10h] [bp-Ch]@9 - unsigned int uControlParamb; // [sp+10h] [bp-Ch]@11 - unsigned int uControlParamc; // [sp+10h] [bp-Ch]@13 - signed int uControlParamd; // [sp+10h] [bp-Ch]@15 signed int uX; // [sp+14h] [bp-8h]@5 - unsigned int uXa; // [sp+14h] [bp-8h]@9 - unsigned int uXb; // [sp+14h] [bp-8h]@11 - unsigned int uXc; // [sp+14h] [bp-8h]@13 - signed int uXd; // [sp+14h] [bp-8h]@16 pMessageQueue_50CBD0->Flush(); @@ -421,11 +409,10 @@ pTexture_IC_KNIGHT[8] = pIcons_LOD->LoadTexturePtr("IC_SORC", TEXTURE_16BIT_PALETTE); pTexture_MAKETOP = pIcons_LOD->LoadTexturePtr("MAKETOP", TEXTURE_16BIT_PALETTE); pTexture_MAKESKY = pIcons_LOD->LoadTexturePtr("MAKESKY", TEXTURE_16BIT_PALETTE); - for(uX=0;uX < 22;++uX ) // load PlayerPortraits texture + for( uX = 0; uX < 22; ++uX ) // load PlayerPortraits texture { sprintf(pTmpBuf.data(), "%s01", pPlayerPortraitsNames[uX]); - v1 = pIcons_LOD->LoadTexture(pTmpBuf.data(), TEXTURE_16BIT_PALETTE); - pPlayerPortraits[uX] = &pIcons_LOD->pTextures[v1]; + pPlayerPortraits[uX] = &pIcons_LOD->pTextures[pIcons_LOD->LoadTexture(pTmpBuf.data(), TEXTURE_16BIT_PALETTE)]; } pTexture_PlayerFaceMask = pIcons_LOD->LoadTexturePtr("FACEMASK", TEXTURE_16BIT_PALETTE); @@ -444,15 +431,15 @@ } while ( ++uControlParam < 20 ); pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_MainMenu, 0, 0); - uControlParama = 0; - uXa = 8; + uControlParam = 0; + uX = 8; do { - pGUIWindow_CurrentMenu->CreateButton(uXa, 120, 145, 25, 1, 0, UIMSG_PlayerCreationChangeName, uControlParama, 0, "", 0); - uXa += 158; - ++uControlParama; + pGUIWindow_CurrentMenu->CreateButton(uX, 120, 145, 25, 1, 0, UIMSG_PlayerCreationChangeName, uControlParam, 0, "", 0); + uX += 158; + ++uControlParam; } - while ( (signed int)uXa < 640 ); + while ( (signed int)uX < 640 ); pCreationUI_BtnPressLeft[0] = pGUIWindow_CurrentMenu->CreateButton( 10, 32, 11, 13, 1, 0, UIMSG_PlayerCreation_FacePrev, 0, 0, "", pTexture_presleft, 0); pCreationUI_BtnPressLeft[1] = pGUIWindow_CurrentMenu->CreateButton(169, 32, 11, 13, 1, 0, UIMSG_PlayerCreation_FacePrev, 1, 0, "", pTexture_presleft, 0); @@ -471,39 +458,39 @@ pCreationUI_BtnPressRight2[2] = pGUIWindow_CurrentMenu->CreateButton(391, 103, 11, 13, 1, 0, UIMSG_PlayerCreation_VoiceNext, 2, 0, "", pTexture_pressrigh, 0); pCreationUI_BtnPressRight2[3] = pGUIWindow_CurrentMenu->CreateButton(549, 103, 11, 13, 1, 0, UIMSG_PlayerCreation_VoiceNext, 3, 0, "", pTexture_pressrigh, 0); - uControlParamb = 0; - uXb = 8; + uControlParam = 0; + uX = 8; do { - pGUIWindow_CurrentMenu->CreateButton(uXb, 308, 150, v0, 1, 0, UIMSG_48, uControlParamb, 0, "", 0); - pGUIWindow_CurrentMenu->CreateButton(uXb, v0 + 308, 150, v0, 1, 0, UIMSG_49, uControlParamb, 0, "", 0); - pGUIWindow_CurrentMenu->CreateButton(uXb, 2 * v0 + 308, 150, v0, 1, 0, UIMSG_PlayerCreationRemoveUpSkill, uControlParamb, 0, "", 0); - pGUIWindow_CurrentMenu->CreateButton(uXb, 3 * v0 + 308, 150, v0, 1, 0, UIMSG_PlayerCreationRemoveDownSkill, uControlParamb, 0, "", 0); - uXb += 158; - ++uControlParamb; + pGUIWindow_CurrentMenu->CreateButton(uX, 308, 150, v0, 1, 0, UIMSG_48, uControlParam, 0, "", 0); + pGUIWindow_CurrentMenu->CreateButton(uX, v0 + 308, 150, v0, 1, 0, UIMSG_49, uControlParam, 0, "", 0); + pGUIWindow_CurrentMenu->CreateButton(uX, 2 * v0 + 308, 150, v0, 1, 0, UIMSG_PlayerCreationRemoveUpSkill, uControlParam, 0, "", 0); + pGUIWindow_CurrentMenu->CreateButton(uX, 3 * v0 + 308, 150, v0, 1, 0, UIMSG_PlayerCreationRemoveDownSkill, uControlParam, 0, "", 0); + uX += 158; + ++uControlParam; } - while ( (signed int)uXb < 640 ); + while ( (signed int)uX < 640 ); pGUIWindow_CurrentMenu->CreateButton( 5, 21, 153, 365, 1, 0, UIMSG_PlayerCreation_SelectAttribute, 0, '1', "", 0); pGUIWindow_CurrentMenu->CreateButton(163, 21, 153, 365, 1, 0, UIMSG_PlayerCreation_SelectAttribute, 1, '2', "", 0); pGUIWindow_CurrentMenu->CreateButton(321, 21, 153, 365, 1, 0, UIMSG_PlayerCreation_SelectAttribute, 2, '3', "", 0); pGUIWindow_CurrentMenu->CreateButton(479, 21, 153, 365, 1, 0, UIMSG_PlayerCreation_SelectAttribute, 3, '4', "", 0); - uXc = 23; - uControlParamc = 2; + uX = 23; + uControlParam = 2; do { - pGUIWindow_CurrentMenu->CreateButton(uXc, 169, 120, 20, 1, 0, UIMSG_0, uControlParamc - 2, 0, "", 0); - pGUIWindow_CurrentMenu->CreateButton(uXc, v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParamc - 1, 0, "", 0); - pGUIWindow_CurrentMenu->CreateButton(uXc, 2 * v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParamc, 0, "", 0); - pGUIWindow_CurrentMenu->CreateButton(uXc, 3 * v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParamc + 1, 0, "", 0); - pGUIWindow_CurrentMenu->CreateButton(uXc, 4 * v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParamc + 2, 0, "", 0); - pGUIWindow_CurrentMenu->CreateButton(uXc, 5 * v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParamc + 3, 0, "", 0); - pGUIWindow_CurrentMenu->CreateButton(uXc, 6 * v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParamc + 4, 0, "", 0); - uControlParamc += 7; - uXc += 158; + pGUIWindow_CurrentMenu->CreateButton(uX, 169, 120, 20, 1, 0, UIMSG_0, uControlParam - 2, 0, "", 0); + pGUIWindow_CurrentMenu->CreateButton(uX, v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParam - 1, 0, "", 0); + pGUIWindow_CurrentMenu->CreateButton(uX, 2 * v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParam, 0, "", 0); + pGUIWindow_CurrentMenu->CreateButton(uX, 3 * v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParam + 1, 0, "", 0); + pGUIWindow_CurrentMenu->CreateButton(uX, 4 * v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParam + 2, 0, "", 0); + pGUIWindow_CurrentMenu->CreateButton(uX, 5 * v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParam + 3, 0, "", 0); + pGUIWindow_CurrentMenu->CreateButton(uX, 6 * v0 + 169, 120, 20, 1, 0, UIMSG_0, uControlParam + 4, 0, "", 0); + uControlParam += 7; + uX += 158; } - while ( (signed int)uControlParamc < 30 ); + while ( (signed int)uControlParam < 30 ); pGUIWindow_CurrentMenu->_41D08F_set_keyboard_control_group(28, 0, 7, 40); pGUIWindow_CurrentMenu->CreateButton(323, 417, 65, v0, 1, 0, UIMSG_PlayerCreationSelectClass, 0, 0, "", 0); @@ -516,17 +503,17 @@ pGUIWindow_CurrentMenu->CreateButton(453, v0 + 417, 65, v0, 1, 0, UIMSG_PlayerCreationSelectClass, 8, 0, "", 0); pGUIWindow_CurrentMenu->CreateButton(453, 2 * v0 + 417, 65, v0, 1, 0, UIMSG_PlayerCreationSelectClass, 4, 0, "", 0); - uControlParamd = 0; + uControlParam = 0; do { - uXd = -5; - if ( uControlParamd <= 3 ) - uXd = 0; - pGUIWindow_CurrentMenu->CreateButton(100 * (uControlParamd / 3) + uXd + 17, v0 * (uControlParamd % 3) + 417, 100, v0, 1, 0, UIMSG_PlayerCreationSelectActiveSkill, - uControlParamd, 0, "", 0); - ++uControlParamd; + uX = -5; + if ( uControlParam <= 3 ) + uX = 0; + pGUIWindow_CurrentMenu->CreateButton(100 * (uControlParam / 3) + uX + 17, v0 * (uControlParam % 3) + 417, 100, v0, 1, 0, UIMSG_PlayerCreationSelectActiveSkill, + uControlParam, 0, "", 0); + ++uControlParam; } - while ( uControlParamd < 9 ); + while ( uControlParam < 9 ); pPlayerCreationUI_BtnOK = pGUIWindow_CurrentMenu->CreateButton(580, 431, 51, 39, 1, 0, UIMSG_PlayerCreationClickOK, 0, '\r', "", pIcons_LOD->GetTexture(uTextureID_BUTTMAKE), 0); pPlayerCreationUI_BtnReset = pGUIWindow_CurrentMenu->CreateButton(527, 431, 51, 39, 1, 0, UIMSG_PlayerCreationClickReset, 0, 'C', "", pIcons_LOD->GetTexture(uTextureID_BUTTMAKE2), 0); @@ -546,49 +533,30 @@ //----- (00497526) -------------------------------------------------------- bool PlayerCreationUI_Loop() { - //RGBTexture *pTexture; // ebx@1 - //UINT v1; // esi@1 - unsigned int v2; // ecx@3 LONG uMouseX; // edi@6 LONG uMouseY; // eax@6 - GUIButton *pControlsHead; // edx@6 - //unsigned int pNumMessage; // ecx@7 - int pControlParam; // esi@12 + //GUIButton *pControlsHead; // edx@6 + //int pControlParam; // esi@12 signed int v8; // edi@30 int v9; // edx@31 char *v10; // ebx@37 - Player *v11; // esi@38 - //signed int uSpellBookPageCount; // ecx@40 - int v13; // eax@40 - //signed int uSkillIdx; // eax@45 - int v15; // eax@70 - signed int v16; // ecx@70 - //unsigned int v18; // [sp-4h] [bp-84h]@48 ItemGen item; // [sp+Ch] [bp-74h]@37 char v20[32]; // [sp+30h] [bp-50h]@29 - //char v21; // [sp+31h] [bp-4Fh]@29 - //__int16 v22; // [sp+4Dh] [bp-33h]@29 - char v23; // [sp+4Fh] [bp-31h]@29 MSG Msg; // [sp+50h] [bp-30h]@17 POINT v25; // [sp+6Ch] [bp-14h]@6 - bool v26; // [sp+74h] [bp-Ch]@1 - //POINT v24; // [sp+78h] [bp-8h]@6 - //Player *pPlayer; + bool party_not_creation_flag; // [sp+74h] [bp-Ch]@1 - //pTexture = &pTexture_PCX; - v26 = 0; + party_not_creation_flag = false; pTexture_PCX.Release(); pTexture_PCX.Load("makeme.pcx", 0); - v2 = 6; pGUIWindow_CurrentMenu->receives_keyboard_input_2 = WINDOW_INPUT_NONE; -//LABEL_27: - SetCurrentMenuID((MENU_STATE)v2); + SetCurrentMenuID(MENU_CREATEPARTY); while ( GetCurrentMenuID() == MENU_CREATEPARTY ) { uMouseX = pMouse->GetCursorPos(&v25)->x; uMouseY = pMouse->GetCursorPos(&v25)->y; - pControlsHead = pGUIWindow_CurrentMenu->pControlsHead; + //pControlsHead = pGUIWindow_CurrentMenu->pControlsHead; //does nothing actually /*if ( pControlsHead != (GUIButton *)v1 ) @@ -629,17 +597,13 @@ pRenderer->Present(); if ( uGameState == GAME_FINISHED )//if click Esc in PlayerCreation Window { - v26 = 1; - //v2 = 0; - //goto LABEL_27; + party_not_creation_flag = true; SetCurrentMenuID(MENU_MAIN); continue; } if ( uGameState == GAME_STATE_STARTING_NEW_GAME )//if click OK in PlayerCreation Window { uGameState = GAME_STATE_PLAYING; - //v2 = 1; - //goto LABEL_27; SetCurrentMenuID(MENU_NEWGAME); continue; } @@ -649,19 +613,15 @@ pGUIWindow_CurrentMenu->Release(); pIcons_LOD->RemoveTexturesPackFromTextureList(); - int v1 = 0; memset(v20, 0, 32); - do + for ( int i = 0; i < 32; i++ ) { - v8 = 0; - do + for ( v8 = 0; v8 < 10; ++v8 ) { v9 = rand() % 32; if ( !v20[v9] ) break; - ++v8; } - while ( v8 < 10 ); if ( v8 == 10 ) { v9 = 0; @@ -672,83 +632,75 @@ while ( v20[v9] ); } } - pParty->field_854[v1++] = v9; + pParty->field_854[i] = v9; v20[v9] = 1; } - while ( (signed int)v1 < 32 ); - //v10 = (char *)&pParty->pPlayers[0].sResMagicBase; - + item.Reset(); - //for ( pPlayer = &pParty->pPlayers[0]; pPlayer < &pParty->pPlayers[4]; pPlayer++) for (uint i = 0; i < 4; ++i) { - auto player = &pParty->pPlayers[i]; - //v11 = pPlayer; - if (player->classType == PLAYER_CLASS_KNIGHT) - player->sResMagicBase = 10; - //*((short *)v10 + 400) = 0; - player->pPlayerBuffs[22].uExpireTime = 0; + if (pParty->pPlayers[i].classType == PLAYER_CLASS_KNIGHT) + pParty->pPlayers[i].sResMagicBase = 10; + pParty->pPlayers[i].pPlayerBuffs[22].uExpireTime = 0; for (uint j = 0; j < 9; j++) { - if (player->pActiveSkills[PLAYER_SKILL_FIRE + j]) + if (pParty->pPlayers[i].pActiveSkills[PLAYER_SKILL_FIRE + j]) { - player->lastOpenedSpellbookPage = j; + pParty->pPlayers[i].lastOpenedSpellbookPage = j; break; } } pItemsTable->GenerateItem(2, 40, &item); - player->AddItem2(-1, &item); - //uSkillIdx = 0; - //v24.y = 0; + pParty->pPlayers[i].AddItem2(-1, &item); - player->sHealth = player->GetMaxHealth(); - player->sMana = player->GetMaxMana(); + pParty->pPlayers[i].sHealth = pParty->pPlayers[i].GetMaxHealth(); + pParty->pPlayers[i].sMana = pParty->pPlayers[i].GetMaxMana(); for (uint j = 0; j < 37; ++j) { - if (!player->pActiveSkills[j]) + if (!pParty->pPlayers[i].pActiveSkills[j]) continue; switch (j) { - case PLAYER_SKILL_STAFF: player->AddItem(-1, 61); break; - case PLAYER_SKILL_SWORD: player->AddItem(-1, 1); break; - case PLAYER_SKILL_DAGGER: player->AddItem(-1, 15); break; - case PLAYER_SKILL_AXE: player->AddItem(-1, 23); break; - case PLAYER_SKILL_SPEAR: player->AddItem(-1, 31); break; - case PLAYER_SKILL_BOW: player->AddItem(-1, 47); break; - case PLAYER_SKILL_MACE: player->AddItem(-1, 50); break; + case PLAYER_SKILL_STAFF: pParty->pPlayers[i].AddItem(-1, 61); break; + case PLAYER_SKILL_SWORD: pParty->pPlayers[i].AddItem(-1, 1); break; + case PLAYER_SKILL_DAGGER: pParty->pPlayers[i].AddItem(-1, 15); break; + case PLAYER_SKILL_AXE: pParty->pPlayers[i].AddItem(-1, 23); break; + case PLAYER_SKILL_SPEAR: pParty->pPlayers[i].AddItem(-1, 31); break; + case PLAYER_SKILL_BOW: pParty->pPlayers[i].AddItem(-1, 47); break; + case PLAYER_SKILL_MACE: pParty->pPlayers[i].AddItem(-1, 50); break; case PLAYER_SKILL_BLASTER: Error("No blasters at startup :p"); - case PLAYER_SKILL_SHIELD: player->AddItem(-1, 84); break; - case PLAYER_SKILL_LEATHER: player->AddItem(-1, 66); break; - case PLAYER_SKILL_CHAIN: player->AddItem(-1, 71); break; - case PLAYER_SKILL_PLATE: player->AddItem(-1, 76); break; + case PLAYER_SKILL_SHIELD: pParty->pPlayers[i].AddItem(-1, 84); break; + case PLAYER_SKILL_LEATHER: pParty->pPlayers[i].AddItem(-1, 66); break; + case PLAYER_SKILL_CHAIN: pParty->pPlayers[i].AddItem(-1, 71); break; + case PLAYER_SKILL_PLATE: pParty->pPlayers[i].AddItem(-1, 76); break; case PLAYER_SKILL_FIRE: - player->AddItem(-1, 0x191); - player->spellbook.pFireSpellbook.bIsSpellAvailable[0] = true; + pParty->pPlayers[i].AddItem(-1, 0x191); + pParty->pPlayers[i].spellbook.pFireSpellbook.bIsSpellAvailable[0] = true; break; case PLAYER_SKILL_AIR: - player->AddItem(-1, 0x19C); - player->spellbook.pAirSpellbook.bIsSpellAvailable[0] = true; + pParty->pPlayers[i].AddItem(-1, 0x19C); + pParty->pPlayers[i].spellbook.pAirSpellbook.bIsSpellAvailable[0] = true; break; case PLAYER_SKILL_WATER: - player->AddItem(-1, 0x1A7); - player->spellbook.pWaterSpellbook.bIsSpellAvailable[0] = true; + pParty->pPlayers[i].AddItem(-1, 0x1A7); + pParty->pPlayers[i].spellbook.pWaterSpellbook.bIsSpellAvailable[0] = true; break; case PLAYER_SKILL_EARTH: - player->AddItem(-1, 0x1B2); - player->spellbook.pEarthSpellbook.bIsSpellAvailable[0] = true; + pParty->pPlayers[i].AddItem(-1, 0x1B2); + pParty->pPlayers[i].spellbook.pEarthSpellbook.bIsSpellAvailable[0] = true; break; case PLAYER_SKILL_SPIRIT: - player->AddItem(-1, 0x1BD); - player->spellbook.pSpiritSpellbook.bIsSpellAvailable[0] = true; + pParty->pPlayers[i].AddItem(-1, 0x1BD); + pParty->pPlayers[i].spellbook.pSpiritSpellbook.bIsSpellAvailable[0] = true; break; case PLAYER_SKILL_MIND: - player->AddItem(-1, 0x1C8); - player->spellbook.pMindSpellbook.bIsSpellAvailable[0] = true; + pParty->pPlayers[i].AddItem(-1, 0x1C8); + pParty->pPlayers[i].spellbook.pMindSpellbook.bIsSpellAvailable[0] = true; break; case PLAYER_SKILL_BODY: - player->AddItem(-1, 0x1D3); - player->spellbook.pBodySpellbook.bIsSpellAvailable[0] = true; + pParty->pPlayers[i].AddItem(-1, 0x1D3); + pParty->pPlayers[i].spellbook.pBodySpellbook.bIsSpellAvailable[0] = true; break; case PLAYER_SKILL_LIGHT: case PLAYER_SKILL_DARK: @@ -761,23 +713,23 @@ case PLAYER_SKILL_PERCEPTION: case PLAYER_SKILL_TRAP_DISARM: case PLAYER_SKILL_LEARNING: - player->AddItem(-1, 0xDC); - player->AddItem(-1, 5 * (rand() % 3 + 40)); + pParty->pPlayers[i].AddItem(-1, 0xDC); + pParty->pPlayers[i].AddItem(-1, 5 * (rand() % 3 + 40)); break; - case PLAYER_SKILL_DODGE: player->AddItem(-1, 115); break; - case PLAYER_SKILL_UNARMED: player->AddItem(-1, 110); break; + case PLAYER_SKILL_DODGE: pParty->pPlayers[i].AddItem(-1, 115); break; + case PLAYER_SKILL_UNARMED: pParty->pPlayers[i].AddItem(-1, 110); break; default: break; } for (uint k = 0; k < 138; k++) { - if (player->pOwnItems[k].uItemID) - player->pOwnItems[k].SetIdentified(); + if (pParty->pPlayers[i].pOwnItems[k].uItemID) + pParty->pPlayers[i].pOwnItems[k].SetIdentified(); } } } pAudioPlayer->StopChannels(-1, -1); - return v26; + return party_not_creation_flag; } \ No newline at end of file