Mercurial > mm7
diff mm7_5.cpp @ 998:e4383e6dfbef
ProcessInput
author | Ritor1 |
---|---|
date | Tue, 14 May 2013 17:37:24 +0600 |
parents | 1c13fbaad0c5 |
children | dcdfbb6eede9 |
line wrap: on
line diff
--- a/mm7_5.cpp Tue May 14 10:07:33 2013 +0600 +++ b/mm7_5.cpp Tue May 14 17:37:24 2013 +0600 @@ -82,7 +82,7 @@ unsigned int v33; // eax@277 unsigned __int8 v34; // al@279 unsigned __int8 v35; // al@280 - GUIWindow *pWindow3; // ecx@332 + //GUIWindow *pWindow3; // ecx@332 int v37; // eax@341 int v38; // eax@358 SHORT v39; // ax@365 @@ -97,7 +97,7 @@ char v48; // zf@405 BLVFace *pBLVFace; // ecx@410 ODMFace *pODMFace; // ecx@412 - CastSpellInfo *v51; // ecx@415 + CastSpellInfo *pSpellInfo; // ecx@415 void *v52; // eax@424 __int16 v53; // ax@431 int v54; // eax@432 @@ -1486,7 +1486,6 @@ pIcons_LOD->_4355F7(); continue; } -LABEL_319: CharacterUI_ReleaseButtons(); sub_419379(); pIcons_LOD->_4114F2(); @@ -1519,7 +1518,6 @@ pIcons_LOD->_4355F7(); continue; } - pWindow3 = pGUIWindow_Settings; if ( !pGUIWindow_Settings )//Draw Menu { dword_6BE138 = -1; @@ -1565,7 +1563,7 @@ stru_506E40._40E55E("gamma.pcx", 0); continue; } - pWindow3->Release(); + pGUIWindow_Settings->Release(); pGUIWindow_Settings = 0; pMouse->SetCursorBitmap("MICON1"); GameUI_Footer_TimeLeft = 0; @@ -1805,13 +1803,12 @@ v47 = pActors[v46].uAIState == Dead; if ( !v47 ) continue; - v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; - LOBYTE(v51->field_8) &= 0xBFu; - v51->uPlayerID_2 = uMessageParam; - v51->spell_target_pid = v44; - pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300); - pWindow3 = pGUIWindow_Settings; - pWindow3->Release(); + pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; + LOBYTE(pSpellInfo->field_8) &= 0xBFu; + pSpellInfo->uPlayerID_2 = uMessageParam; + pSpellInfo->spell_target_pid = v44; + pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300); + pGUIWindow_Settings->Release(); pGUIWindow_Settings = 0; pMouse->SetCursorBitmap("MICON1"); GameUI_Footer_TimeLeft = 0; @@ -1824,13 +1821,12 @@ v47 = (pObjectList->pObjects[pSpriteObjects[v46].uObjectDescID].uFlags & 0x10) == 0; if ( !v47 ) continue; - v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; - LOBYTE(v51->field_8) &= 0xBFu; - v51->uPlayerID_2 = uMessageParam; - v51->spell_target_pid = v44; - pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300); - pWindow3 = pGUIWindow_Settings; - pWindow3->Release(); + pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; + LOBYTE(pSpellInfo->field_8) &= 0xBFu; + pSpellInfo->uPlayerID_2 = uMessageParam; + pSpellInfo->spell_target_pid = v44; + pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300); + pGUIWindow_Settings->Release(); pGUIWindow_Settings = 0; pMouse->SetCursorBitmap("MICON1"); GameUI_Footer_TimeLeft = 0; @@ -1852,13 +1848,12 @@ if ( !(pODMFace->uAttributes & 0x02000000) || !pODMFace->sCogTriggeredID ) continue; v44 = uNumSeconds; - v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; - *((char *)v51 + 8) &= 0xBFu; - v51->uPlayerID_2 = uMessageParam; - v51->spell_target_pid = v44; - pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300); - pWindow3 = pGUIWindow_Settings; - pWindow3->Release(); + pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; + LOBYTE(pSpellInfo->field_8) &= 0xBFu; + pSpellInfo->uPlayerID_2 = uMessageParam; + pSpellInfo->spell_target_pid = v44; + pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300); + pGUIWindow_Settings->Release(); pGUIWindow_Settings = 0; pMouse->SetCursorBitmap("MICON1"); GameUI_Footer_TimeLeft = 0; @@ -1873,23 +1868,21 @@ } if ( v48 ) continue; - v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; - LOBYTE(v51->field_8) &= 0xBFu; - v51->uPlayerID_2 = uMessageParam; - v51->spell_target_pid = v44; - pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300); - pWindow3 = pGUIWindow_Settings; - pWindow3->Release(); + pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; + LOBYTE(pSpellInfo->field_8) &= 0xBFu; + pSpellInfo->uPlayerID_2 = uMessageParam; + pSpellInfo->spell_target_pid = v44; + pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300); + pGUIWindow_Settings->Release(); pGUIWindow_Settings = 0; pMouse->SetCursorBitmap("MICON1"); GameUI_Footer_TimeLeft = 0; unk_50C9A0 = 0; back_to_game(); continue; - case UIMSG_CastSpell_8F: - __debugbreak(); - case UIMSG_CastSpell_SPIRIT_Preservation://and blessing, treatment paralysis, hand hammers(individual upgrade) - case UIMSG_CastSpell_SPIRIT_Fate: + case UIMSG_CastSpell_Character_Big_Improvement://Preservation and blessing, treatment paralysis, hand hammers(individual upgrade),regeneration + case UIMSG_CastSpell_Character_Small_Improvement://Fate, cure + case UIMSG_HiredNPC_CastSpell: if ( pMessageQueue_50CBD0->uNumMessages ) pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0; if ( unk_50C9A0 ) @@ -1901,21 +1894,21 @@ { if ( pGUIWindow_Settings ) { - v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; + pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; switch ( uMessage ) { - case UIMSG_CastSpell_SPIRIT_Preservation: - LOBYTE(v51->field_8) &= 0xFDu; + case UIMSG_CastSpell_Character_Big_Improvement: + LOBYTE(pSpellInfo->field_8) &= 0xFDu; break; - case UIMSG_CastSpell_SPIRIT_Fate: - HIBYTE(v51->field_8) &= 0xFEu; + case UIMSG_CastSpell_Character_Small_Improvement: + HIBYTE(pSpellInfo->field_8) &= 0xFEu; break; - case UIMSG_CastSpell_8F: - HIBYTE(v51->field_8) &= 0xFDu; + case UIMSG_HiredNPC_CastSpell: + HIBYTE(pSpellInfo->field_8) &= 0xFDu; break; } - v51->uPlayerID_2 = uMessageParam; - pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300); + pSpellInfo->uPlayerID_2 = uMessageParam; + pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300); pGUIWindow_Settings->Release(); pGUIWindow_Settings = 0; pEventTimer->Resume(); @@ -2399,9 +2392,8 @@ } _42777D_CastSpell_UseWand_ShootArrow(pPlayer2->uQuickSpell, uActiveCharacter - 1, 0, 0, uActiveCharacter); continue; - case UIMSG_CastSpell_GreatShot://??? - __debugbreak(); - case UIMSG_CastSpell_SmallShot://FireBlow, Lightning, Ice Lightning, Swarm, + case UIMSG_CastSpell_Monster_Improvement://Fate, cure + case UIMSG_CastSpell_Shoot_Monster://FireBlow, Lightning, Ice Lightning, Swarm, if ( pRenderer->pRenderD3D ) { v81 = pGame->pVisInstance->get_picked_object_zbuf_val(); @@ -2420,23 +2412,22 @@ v1 = ""; continue; } - v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; - if ( uMessage == UIMSG_CastSpell_SmallShot ) - { - LOBYTE(v51->field_8) &= 0xF7; + pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C; + if ( uMessage == UIMSG_CastSpell_Shoot_Monster ) + { + LOBYTE(pSpellInfo->field_8) &= 0xF7; } else { - if ( uMessage == UIMSG_CastSpell_GreatShot ) - HIBYTE(v51->field_8) &= 0xFEu; + if ( uMessage == UIMSG_CastSpell_Monster_Improvement ) + HIBYTE(pSpellInfo->field_8) &= 0xFEu; else - HIBYTE(v51->field_8) &= 0xFDu; - } - v51->uPlayerID_2 = uMessageParam; - v51->spell_target_pid = v44; - pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300); - pWindow3 = pGUIWindow_Settings; - pWindow3->Release(); + HIBYTE(pSpellInfo->field_8) &= 0xFDu; + } + pSpellInfo->uPlayerID_2 = uMessageParam; + pSpellInfo->spell_target_pid = v44; + pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300); + pGUIWindow_Settings->Release(); pGUIWindow_Settings = 0; pMouse->SetCursorBitmap("MICON1"); GameUI_Footer_TimeLeft = 0; @@ -2805,13 +2796,14 @@ pCurrentScreen = SCREEN_GAME; pIcons_LOD->_4114F2(); v103 = quick_spell_at_page + 11 * player->lastOpenedSpellbookPage; - if ( dword_50C9E8 < 40 ) + /*if ( dword_50C9E8 < 40 ) { dword_50C9EC[3 * dword_50C9E8] = UIMSG_CastSpellFromBook; dword_50C9EC[3 * dword_50C9E8 + 1] = v103; dword_50C9EC[3 * dword_50C9E8 + 2] = uActiveCharacter - 1; ++dword_50C9E8; - } + }*/ + pMessageQueue_50CBD0->AddMessage(UIMSG_CastSpellFromBook, v103, uActiveCharacter - 1); } else {