Mercurial > mm7
diff mm7_4.cpp @ 786:da80bd2922df
Слияние
author | Ritor1 |
---|---|
date | Sun, 24 Mar 2013 09:19:36 +0600 |
parents | a821bbace194 c47efaf23642 |
children | f004c7ceb7bd |
line wrap: on
line diff
--- a/mm7_4.cpp Sun Mar 24 09:18:51 2013 +0600 +++ b/mm7_4.cpp Sun Mar 24 09:19:36 2013 +0600 @@ -3,7 +3,6 @@ #include <assert.h> #include "MM7.h" - #include "MapInfo.h" #include "Game.h" #include "GUIWindow.h" @@ -54,23 +53,8 @@ #include "texts.h" #include "Log.h" #include "UIHouses.h" - #include "mm7_data.h" - - - - - - - - - - - - - - //----- (0046CC4B) -------------------------------------------------------- void __cdecl _46CC4B_check_event_triggers() { @@ -842,7 +826,6 @@ return dword_720F20[v22]; } - //not sure if right- or left-handed coordinate space assumed, so this could be normal of inverse normal // for a right-handed system, that would be an inverse normal //----- (0046DCC8) -------------------------------------------------------- @@ -916,7 +899,6 @@ } } - //----- (0046DEF2) -------------------------------------------------------- unsigned int __fastcall sub_46DEF2(signed int a2, unsigned int uLayingItemID) { @@ -1452,8 +1434,6 @@ } // 4EC3EC: using guessed type Edge defaultEdge; - - //----- (00487355) -------------------------------------------------------- bool OutdoorCamera::_487355() { @@ -1476,8 +1456,6 @@ return result; } - - //----- (00487DA9) -------------------------------------------------------- void __cdecl sub_487DA9() { @@ -1519,10 +1497,6 @@ } // 4EC3EC: using guessed type Edge defaultEdge; - - - - //----- (0048958E) -------------------------------------------------------- stru12_MemoryBlock::stru12_MemoryBlock(int a2) { @@ -1795,10 +1769,6 @@ this->field_8C = 0; } - - - - //----- (0048A959) -------------------------------------------------------- unsigned int ReplaceHSV(unsigned int uColor, float h_replace, float s_replace, float v_replace) { @@ -1822,7 +1792,6 @@ ((uint)floorf(b * 255.0f + 0.5f) & 0xFF); } - //----- (0048B561) -------------------------------------------------------- int _48B561_mess_with_scaling_along_z(/*int a1, */float a2) { @@ -1836,11 +1805,6 @@ return v5 | (v4 << 16); } - - - - - //----- (00491E3A) -------------------------------------------------------- void __cdecl sub_491E3A() { @@ -1942,9 +1906,6 @@ } // 4ED498: using guessed type char byte_4ED498; - - - //----- (0049387A) -------------------------------------------------------- int CycleCharacter(unsigned int _this) { @@ -2380,8 +2341,6 @@ return result; } - - //----- (00493F79) -------------------------------------------------------- void sub_493F79(stru351_summoned_item *_this, __int64 a2) { @@ -2405,10 +2364,6 @@ _this->field_18_expire_year = v6 / 0xC + game_starting_year; } - - - - //----- (00494035) -------------------------------------------------------- void __cdecl _494035_timed_effects__water_walking_damage__etc() { @@ -2908,8 +2863,6 @@ } // 4EE088: using guessed type __int16 word_4EE088_sound_ids[]; - - //----- (00494AED) -------------------------------------------------------- unsigned int PlayerFrameTable::GetFrameIdByExpression(CHARACTER_EXPRESSION_ID expression) { @@ -3385,8 +3338,6 @@ return result; } - - //----- (00495366) -------------------------------------------------------- char *__fastcall sub_495366(unsigned __int8 a1, unsigned __int8 a2) { @@ -3895,9 +3846,6 @@ return pTmpBuf2; } - - - //----- (0049B04D) -------------------------------------------------------- void stru154::GetFacePlaneAndClassify(ODMFace *a2, BSPVertexBuffer *a3) { @@ -4029,10 +3977,6 @@ *pOutDist = (double)(v5->pFacePlane.dist & 0xFFFF) / 65535.0f + (double)(v5->pFacePlane.dist >> 16); } - - - - //----- (0049D700) -------------------------------------------------------- unsigned int __fastcall GetMaxMipLevels(unsigned int uDim) { @@ -4051,15 +3995,6 @@ return v3 == 0 ? v2 : 0; } - - - - - - - - - //----- (004A19D8) -------------------------------------------------------- unsigned int BlendColors(unsigned int a1, unsigned int a2) { @@ -4102,8 +4037,6 @@ return LOBYTE(v13) | ((LOBYTE(v11) | (((v6 << 8) | v9) << 8)) << 8);*/ } - - //----- (004A46E6) -------------------------------------------------------- int __fastcall sr_4A46E6_draw_particle_segment(unsigned int x, signed int y, signed int _z, int a4, unsigned int lightColor) { @@ -4243,7 +4176,6 @@ return z; } - //----- (004A57E9) -------------------------------------------------------- void __cdecl Present_ColorKey() { @@ -4472,8 +4404,6 @@ } } - - //----- (004A7063) -------------------------------------------------------- int __thiscall sub_4A7063(unsigned int uDiffuse, float a2) { @@ -4521,13 +4451,6 @@ return v10 | ((v9 | ((v7 | (v4 << 8)) << 8)) << 8); } - - - - - - - //----- (004AD504) -------------------------------------------------------- int __fastcall sub_4AD504(signed int sFaceID) { @@ -5506,9 +5429,6 @@ } // 4AE491: using guessed type int __fastcall sub_4AE491(int, int); - - - //----- (004AE5F1) -------------------------------------------------------- void __fastcall sub_4AE5F1(unsigned int uFaceID) { @@ -6162,11 +6082,6 @@ return result; } - - - - - //----- (004B1447) -------------------------------------------------------- Player *__fastcall sub_4B1447_party_fine(int a1, int a2, int a3) { @@ -6309,7 +6224,6 @@ a1.DrawTitleText(pFontComic, 0xCu, a1.uFrameHeight - LOBYTE(pFontComic->uFontHeight) - 16, 0, pTmpBuf, 3); } - //----- (004B1784) -------------------------------------------------------- bool __cdecl sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win() { @@ -6344,7 +6258,6 @@ } // F8B1E0: using guessed type int dword_F8B1E0; - //view item details in shop? //----- (004B1A2D) -------------------------------------------------------- void __cdecl sub_4B1A2D() @@ -6548,8 +6461,6 @@ } } - - //----- (004B1ECE) -------------------------------------------------------- void __cdecl sub_4B1ECE() { @@ -6645,7 +6556,6 @@ v9->uHolderPlayer = v5; } } - // 4F08EC: using guessed type int dword_4F08EC[]; // 722B3C: using guessed type int dword_722B3C; // 722B44: using guessed type int dword_722B44; @@ -6930,7 +6840,6 @@ pVideoPlayer->_4BF5B2();//HouseVideo } - //----- (004B254D) -------------------------------------------------------- char *__thiscall _4B254D_SkillMasteryTeacher(int _this) { @@ -7259,8 +7168,6 @@ return pTmpBuf2; } - - //----- (004B29F2) -------------------------------------------------------- const char * ContractSelectText( int pEventCode ) { @@ -7293,7 +7200,6 @@ } } - //----- (004B2A74) -------------------------------------------------------- void SimpleHouseAndBoatsDialog() { @@ -7620,18 +7526,12 @@ } } - - - - //----- (004B36CC) -------------------------------------------------------- void CreateButtonInColumn( int column_pos, unsigned int control_id ) - { +{ pDialogueWindow->CreateButton( 480, 30 * column_pos + 146, 140, 30, 1, 0, 0x195u, control_id, 0, "", 0); } - - //----- (004B3A72) -------------------------------------------------------- void sub_4B3A72( int a1 ) { @@ -7968,7 +7868,6 @@ dialog_menu_id = HOUSE_DIALOGUE_OTHER; } - //----- (004B4224) -------------------------------------------------------- void _4B4224_UpdateNPCTopics( int _this ) { @@ -8090,8 +7989,6 @@ } - - //----- (004B46A5) -------------------------------------------------------- char __fastcall DrawTextAtStatusBar(const char *sText, int font_color) { @@ -8113,7 +8010,6 @@ return 1000 * v1; } - //----- (004BC49B) -------------------------------------------------------- void OnSelectNPCDialogueOption(DIALOGUE_TYPE newDialogueType) { @@ -8339,8 +8235,6 @@ dword_7241C8 = 0; } - - //----- (004BDAAF) -------------------------------------------------------- bool __fastcall sub_4BDAAF(ItemGen *a1, int _2da_idx) { @@ -8445,9 +8339,6 @@ */ } - - - //----- (004B6478) -------------------------------------------------------- void sub_4B6478() { @@ -8656,331 +8547,6 @@ return; } - - -//----- (004B6943) -------------------------------------------------------- -void __cdecl TravelByTransport() -{ - GUIWindow *v0; // ebx@1 - Player *v1; // esi@1 - signed int v2; // edi@1 - unsigned int v3; // eax@1 - signed int v4; // ebx@1 - stru365_travel_info *v5; // esi@7 - int v6; // eax@9 - int v7; // eax@9 - int v8; // eax@12 - int v9; // edi@12 - int v10; // edx@12 - int v11; // ecx@12 - signed int v12; // esi@13 - signed int v13; // edi@14 - DWORD v14; // eax@26 - DWORD v15; // edi@26 - GUIWindow *v16; // ebx@36 - int v17; // esi@36 - int v18; // eax@36 - int v19; // ecx@36 - int v20; // esi@36 - int v21; // eax@36 - void *v22; // eax@39 - int v23; // esi@39 - GUIButton *v24; // ebx@39 - signed int v25; // eax@41 - //int v26; // esi@44 - const char *v27; // eax@46 - char *v28; // eax@62 - int v29; // eax@62 - unsigned int v30; // ecx@62 - char *v31; // eax@63 - MapInfo v32; // [sp-3Ch] [bp-2CCh]@62 - /*int v33; // [sp-38h] [bp-2C8h]@62 - int v34; // [sp-34h] [bp-2C4h]@62 - int v35; // [sp-30h] [bp-2C0h]@62 - int v36; // [sp-2Ch] [bp-2BCh]@62 - int v37; // [sp-28h] [bp-2B8h]@62 - int v38; // [sp-24h] [bp-2B4h]@62 - int v39; // [sp-20h] [bp-2B0h]@62 - int v40; // [sp-1Ch] [bp-2ACh]@62 - int v41; // [sp-18h] [bp-2A8h]@62 - int v42; // [sp-14h] [bp-2A4h]@62 - char *v43; // [sp-10h] [bp-2A0h]@62 - char *v44; // [sp-Ch] [bp-29Ch]@62 - unsigned int v45; // [sp-8h] [bp-298h]@62 - char *v46; // [sp-4h] [bp-294h]@62 - const char *v47[5]; // [sp+0h] [bp-290h]@7*/ - char v48[100]; // [sp+14h] [bp-27Ch]@37 - char v49[100]; // [sp+78h] [bp-218h]@68 - char v50[100]; // [sp+DCh] [bp-1B4h]@68 - char v51[100]; // [sp+140h] [bp-150h]@68 - char Dest[100]; // [sp+1A4h] [bp-ECh]@36 - GUIWindow v53; // [sp+208h] [bp-88h]@1 - int v54; // [sp+25Ch] [bp-34h]@36 - int v55; // [sp+260h] [bp-30h]@36 - unsigned int v56; // [sp+264h] [bp-2Ch]@1 - int v57; // [sp+268h] [bp-28h]@1 - int v58; // [sp+26Ch] [bp-24h]@36 - GUIWindow *v59; // [sp+270h] [bp-20h]@1 - unsigned int v60; // [sp+274h] [bp-1Ch]@36 - //Player *v61; // [sp+278h] [bp-18h]@1 - int v62; // [sp+27Ch] [bp-14h]@36 - int v63; // [sp+280h] [bp-10h]@14 - char *a1; // [sp+284h] [bp-Ch]@37 - unsigned int s1; // [sp+288h] [bp-8h]@1 - int v66; // [sp+28Ch] [bp-4h]@48 - - v0 = window_SpeakInHouse; - memcpy(&v53, window_SpeakInHouse, sizeof(v53)); - v2 = 255; - //v61 = pPlayers[uActiveCharacter]; - v1 = pPlayers[uActiveCharacter]; - v53.uFrameX = 483; - v53.uFrameWidth = 148; - v53.uFrameZ = 334; - v57 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu); - v56 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); - v3 = 52 * (unsigned int)v0->ptr_1C; - //v59 = (GUIWindow *)((((p2DEvents_minus1___00[v3 / 2] != 27) - 1) & 0xFFFFFFE7) + 50); - v59 = (GUIWindow *)((((p2DEvents[(unsigned int)v0->ptr_1C - 1].uType != 27) - 1) & 0xFFFFFFE7) + 50); - //v4 = (signed __int64)((double)(signed int)v59 * p2DEvents_minus1__20[v3 / 4]); - v4 = (signed __int64)((double)(signed int)v59 * p2DEvents[(unsigned int)v0->ptr_1C - 1].fPriceMultiplier); - s1 = v4 * (100 - v1->GetMerchant()) / 100; - if ( (signed int)s1 < v4 / 3 ) - s1 = v4 / 3; - if ( dialog_menu_id == HOUSE_DIALOGUE_MAIN) - { - if ( sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win() ) - { - v16 = pDialogueWindow; - v58 = -1; - v62 = 0; - v17 = LOBYTE(pFontArrus->uFontHeight) - 3; - v59 = pDialogueWindow; - v54 = v17; - strcpy(Dest, ""); - sprintfex(pTmpBuf2, pGlobalTXT_LocalizationStrings[405], s1); // Price: %lu gold - v18 = pFontArrus->CalcTextHeight(pTmpBuf2, &v53, 0, 0); - v19 = v16->pNumPresenceButton; - v20 = v18 + v17 + 146; - v21 = v16->pStartingPosActiveItem; - v63 = v20; - v55 = v20; - v60 = v21; - if ( v21 >= v21 + v19 ) - goto LABEL_71; - s1 = 2; - a1 = v48; - while ( 1 ) - { - int v47 = v60; - v22 = window_SpeakInHouse->ptr_1C; - v23 = byte_4F0E10[(unsigned int)v22 - HOUSE_STABLES_HARMONDALE][v62]; - //v23 = (unsigned __int8)*(&_4F0D38_TravelInfo[4 * (unsigned int)v22] + v62); // negindex. actual address is around + 0x36 - //v61 = (Player *)(unsigned __int8)*(&_4F0D38_TravelInfo[4 * (unsigned int)v22] + v62); // + 0x3F for sea travels, less for land - v24 = v16->GetControl(v60); - if ( v23 != v58 - && ((signed int)s1 >= 6 ? (v25 = 1) : (v25 = travel_schedule[v23].pSchedule[pParty->uDaysPlayed % 7]), - v25 - && (travel_schedule[v23].uQuestBit || _449B57_test_bit(pParty->_quest_bits, travel_schedule[v23].uQuestBit))) ) - { - v58 = v23; - v27 = (const char *)v56; - if ( pDialogueWindow->pCurrentPosActiveItem != s1 ) - v27 = (const char *)v57; - //v32.uRedbookTrackID = v27; - sprintf(a1, "\f%05d", v27); - v66 = travel_schedule[v23].uTravelTime; - if ( (signed int)window_SpeakInHouse->ptr_1C >= 63 ) - { - if ( CheckHiredNPCSpeciality(Sailor) ) - v66 -= 2; - if ( CheckHiredNPCSpeciality(Navigator) ) - v66 -= 3; - //v47 = Pirate; - if ( CheckHiredNPCSpeciality(Pirate) ) - v66 -= 2; - } - else - { - //v47 = Horseman; - if ( CheckHiredNPCSpeciality(Horseman) ) - v66 -= 2; - } - if ( CheckHiredNPCSpeciality(Explorer) ) - --v66; - if ( v66 < 1 ) - v66 = 1; - if ( v23 != v2 ) - { - memcpy(&v32, &pMapStats->pInfos[travel_schedule[v23].uMapInfoID], 0x44u); - sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[404], // Time - %d days, destination %s - v66, v32.pName); - strcat(a1, pTmpBuf); - v28 = a1; - a1 += 100; - ++v62; - ++s1; - strcat(v28, "\n \n"); - v24->uY = v63; - v29 = pFontArrus->CalcTextHeight(pTmpBuf, &v53, 0, 0); - v30 = v24->uY; - v24->uHeight = v29; - v2 = 255; - v24->uW = v30 + v29 - 1; - v63 += v54 + v29; - } - } - else - { - v31 = a1; - ++v62; - ++s1; - a1 += 100; - strcpy(v31, ""); - if ( v24 ) - { - v24->uW = 0; - v24->uHeight = 0; - v24->uY = 0; - } - } - ++v60; - if ( (signed int)v60 >= v59->pNumPresenceButton + v59->pStartingPosActiveItem ) - break; - v16 = v59; - } - if ( v63 != v55 ) - { - /*v47[1] = &Dest; - v47[0] = &v51; - v46 = &v50; - v45 = (unsigned int)&v49; - v44 = &v48; - v43 = pTmpBuf2;*/ - sprintf(pTmpBuf, "%s\n \n%s%s%s%s%s", pTmpBuf2, v48, v49, v50, v51, Dest); - v53.DrawTitleText(pFontArrus, 0, 0x92u, 0, pTmpBuf, 3u); - } - else - { -LABEL_71: - v53.DrawTitleText(pFontArrus, 0, (174 - pFontArrus->CalcTextHeight(pGlobalTXT_LocalizationStrings[561], &v53, 0, 0)) / 2 + 138, - v57, pGlobalTXT_LocalizationStrings[561], 3); - pAudioPlayer->StopChannels(-1, -1); - } - } - } - else - { - if ( dialog_menu_id > HOUSE_DIALOGUE_TAVERN_ARCOMAGE_RESULT && dialog_menu_id <= HOUSE_DIALOGUE_108 ) - { - if ( pParty->uNumGold < s1 ) - { - ShowStatusBarString(pGlobalTXT_LocalizationStrings[155], 2u); - PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_Greeting_2); - /*if ( (signed int)pMessageQueue_50CBD0->uNumMessages >= 40 ) - return; - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = (UIMessageType)113; - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 1; - goto LABEL_33;*/ - pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 1, 0); - } - Party::TakeGold(s1); - //v47[1] = (const char *)7; - v5 = &travel_schedule[byte_4F0CD0[(unsigned int)window_SpeakInHouse->ptr_1C - 1][dialog_menu_id - 1]]; - if ( v5->pSchedule[pParty->uDaysPlayed % 7] ) - { - if ( _strcmpi(pCurrentMapName, pMapStats->pInfos[v5->uMapInfoID].pFilename) ) - { - SaveGame(1, 0); - strcpy(pCurrentMapName, pMapStats->pInfos[v5->uMapInfoID].pFilename); - v8 = v5->field_18; - v9 = v5->field_14; - v10 = v5->field_10; - dword_6BE364_game_settings_1 |= 1u; - _5B65B8_npcdata_hiword_house_or_other = 0; - dword_5B65BC = 0; - _5B65B4_npcdata_loword_house_or_other = v8; - v11 = *((int *)v5 + 3); - uGameState = 2; - _5B65A8_npcdata_uflags_or_other = v11; - _5B65AC_npcdata_fame_or_other = v10; - _5B65B0_npcdata_rep_or_other = v9; - dword_5B65C0 = v11 | v10 | v9 | v8; - } - else - { - v6 = v5->field_C; - pParty->sRotationX = 0; - pParty->vPosition.x = v6; - v7 = v5->field_10; - pIndoorCamera->sRotationY = 0; - pParty->uFlags |= 2u; - pParty->vPosition.y = v7; - pParty->vPosition.z = v5->field_14; - pParty->uFallStartY = pParty->vPosition.z; - pParty->sRotationY = v5->field_18; - } - PlayHouseSound((unsigned int)window_SpeakInHouse->ptr_1C, HouseSound_NotEnoughMoney_TrainingSuccessful); - v12 = v5->uTravelTime; - int _v47; - if ( (signed int)window_SpeakInHouse->ptr_1C >= 63 ) - { - v63 = SPEECH_SetSail; - v13 = 2500; - if ( CheckHiredNPCSpeciality(Sailor) ) - v12 -= 2; - if ( CheckHiredNPCSpeciality(Navigator) ) - v12 -= 3; - //_v47 = 45; - if ( CheckHiredNPCSpeciality(Pirate) ) - v12 -= 2; - } - else - { - v63 = SPEECH_CarriageReady; - v13 = 1500; - //_v47 = 35; - if ( CheckHiredNPCSpeciality(Horseman) ) - v12 -= 2; - } - if ( CheckHiredNPCSpeciality(Explorer) ) - --v12; - if ( v12 < 1 ) - v12 = 1; - RestAndHeal(1440 * v12); - v1->PlaySound((PlayerSpeech)v63, 0); - v14 = GetTickCount(); - v15 = v14 + v13; - if ( v15 < v14 ) - v15 = v14; - while ( GetTickCount() < v15 ) - sqrt(3.1415926); - while ( sub_4BD8B5() ) - ; - pMessageQueue_50CBD0->AddMessage(UIMSG_Escape, 0, 0); - /*if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 ) - { - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = (UIMessageType)113; - pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 0; -LABEL_33: - *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0; - ++pMessageQueue_50CBD0->uNumMessages; - return; - }*/ - } - else - { - dialog_menu_id = HOUSE_DIALOGUE_MAIN; - pAudioPlayer->PlaySound(SOUND_27, 0, 0, -1, 0, 0, 0, 0); - } - } - } -} - - - - - //----- (00405CFF) -------------------------------------------------------- void stru262_TurnBased::End(bool bPlaySound) { @@ -9229,9 +8795,6 @@ } } - - - //----- (0043FDED) -------------------------------------------------------- void PrepareActorRenderList_BLV() { @@ -9446,9 +9009,6 @@ } } - - - //----- (00444732) -------------------------------------------------------- char *GetEventHintString(unsigned int uEventID) { @@ -9504,9 +9064,6 @@ return result; } - - - //----- (00444839) -------------------------------------------------------- unsigned int __fastcall sub_444839_move_map(unsigned int a1, int a2, int x, int y, int z, int directiony, int directionx, int a8, const char *pLocationName) { @@ -9610,4 +9167,3 @@ uCurrentHouse_Animation = v23; return result; } -