Mercurial > might-and-magic-trilogy
changeset 109:62772029b56d
Слияние
author | Ritor1 |
---|---|
date | Tue, 06 Nov 2012 10:07:35 +0600 |
parents | d543bd89a31e (current diff) 142de719a3ea (diff) |
children | 430786d916d6 |
files | LOD.h Outdoor.cpp Outdoor.h mm7_2.cpp mm7_3.cpp mm7_4.cpp |
diffstat | 20 files changed, 358 insertions(+), 1931 deletions(-) [+] |
line wrap: on
line diff
--- a/Game.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/Game.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -449,7 +449,7 @@ dword_5B65C0 = 1; PrepareWorld(1u); } - UpdateActors(); + InitializeActors(); v11 = 0; do {
--- a/Indoor.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/Indoor.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -4493,8 +4493,8 @@ Abortf("Out of memory loading indoor level"); if ( !(dword_6BE364_game_settings_1 & 0x2000) ) { - UpdateActors(); - UpdateLayingItems(); + InitializeActors(); + InitializeLayingItems(); } BYTE1(dword_6BE364_game_settings_1) &= 0xDFu; if ( !v39 ) @@ -4653,8 +4653,8 @@ if ( v35 < 124 ) { v21 = v35 + 1; - pDecortaion->field_1C = v35 + 75; - v22 = stru_5E4C90.field_0[v21 + 74]; + pDecortaion->_idx_in_stru123 = v35 + 75; + v22 = stru_5E4C90._decor_events[v21 + 74 - 75]; v35 = v21; if ( !v22 ) pDecortaion->field_2 |= 0x20;
--- a/Indoor.h Tue Nov 06 10:06:45 2012 +0600 +++ b/Indoor.h Tue Nov 06 10:07:35 2012 +0600 @@ -36,7 +36,7 @@ __int16 field_16_event_id; __int16 field_18; __int16 field_1A; - __int16 field_1C; + __int16 _idx_in_stru123; __int16 field_1E; }; #pragma pack(pop)
--- a/LOD.h Tue Nov 06 10:06:45 2012 +0600 +++ b/LOD.h Tue Nov 06 10:07:35 2012 +0600 @@ -20,6 +20,12 @@ #pragma pack(push, 1) struct FileHeader { + inline FileHeader() + { + memset(array_0000B0, 0, 28); + memset(array_0000CC, 0, 52); + } + void Reset(); unsigned __int8 pSignature[4];
--- a/LayingItem.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/LayingItem.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -114,6 +114,8 @@ unsigned __int16 *pAttributes; // ecx@2 unsigned __int16 v3; // ax@2 + __debugbreak(); // find out what's going on + v1 = uLayingItemID; pLayingItems[v1].uObjectDescID = 0; if ( pParty->bTurnBasedModeOn == 1 )
--- a/Monsters.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/Monsters.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -1432,7 +1432,7 @@ } else { - if ( strstr((const char *)v2, off_4E8910) ) + if ( strstr((const char *)v2, "age") ) { v44->uSpecialAttack = 21; }
--- a/Outdoor.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/Outdoor.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -1281,8 +1281,8 @@ int v108; // [sp+0h] [bp-B80h]@10 char Src[968]; // [sp+10h] [bp-B70h]@110 char Dst[968]; // [sp+3D8h] [bp-7A8h]@50 - /*char Str[256]; // [sp+7A0h] [bp-3E0h]@50 - char DstBuf; // [sp+8A0h] [bp-2E0h]@10 + char Str[256]; // [sp+7A0h] [bp-3E0h]@50 + /*char DstBuf; // [sp+8A0h] [bp-2E0h]@10 __int32 Offset; // [sp+8A4h] [bp-2DCh]@10 __int32 v114; // [sp+8B0h] [bp-2D0h]@10 __int32 v115; // [sp+8BCh] [bp-2C4h]@10 @@ -2666,11 +2666,9 @@ } //----- (0047F138) -------------------------------------------------------- -int OutdoorLocation::PrepareDecorations() +bool OutdoorLocation::PrepareDecorations() { signed int v1; // ebx@1 - signed int v2; // edi@3 - LevelDecoration *v3; // esi@4 __int16 v4; // ax@5 int v5; // eax@7 __int16 v6; // ax@14 @@ -2680,42 +2678,38 @@ v8 = 0; if ( !_strcmpi(pCurrentMapName, "out09.odm") ) v8 = 1; - v2 = 0; - if ( (signed int)uNumLevelDecorations > 0 ) + + for (uint i = 0; i < uNumLevelDecorations; ++i) { - v3 = pLevelDecorations; - do - { - pDecorationList->InitializeDecorationSprite(v3->uDecorationDescID); - v4 = pDecorationList->pDecorations[v3->uDecorationDescID].uSoundID; + auto decor = pLevelDecorations + i; + + pDecorationList->InitializeDecorationSprite(decor->uDecorationDescID); + v4 = pDecorationList->pDecorations[decor->uDecorationDescID].uSoundID; if ( v4 && _6807E0_num_decorations_with_sounds_6807B8 < 9 ) { pSoundList->_4A9A67(v4, 0); v5 = _6807E0_num_decorations_with_sounds_6807B8++; - _6807B8_level_decorations_ids[v5] = v2; + _6807B8_level_decorations_ids[v5] = i; } - if ( v8 && v3->uCog == 20 ) - LOBYTE(v3->field_2) |= 0x40u; - if ( !v3->field_16_event_id ) + if ( v8 && decor->uCog == 20 ) + LOBYTE(decor->field_2) |= 0x40u; + if ( !decor->field_16_event_id ) { - if ( v3->IsInteractive() ) + if ( decor->IsInteractive() ) { if ( v1 < 124 ) { - v6 = v1++ + 75; - v3->field_1C = v6; - if ( !stru_5E4C90.field_0[v1 + 74] ) - LOBYTE(v3->field_2) |= 0x20u; + v6 = v1 + 75; + decor->_idx_in_stru123 = v6; + if ( !stru_5E4C90._decor_events[v1++] ) + LOBYTE(decor->field_2) |= 0x20u; } } } - ++v2; - ++v3; - } - while ( v2 < (signed int)uNumLevelDecorations ); } + pGameLoadingUI_ProgressBar->Progress(); - return 1; + return true; } // 6807E0: using guessed type int _6807E0_num_decorations_6807B8;
--- a/Outdoor.h Tue Nov 06 10:06:45 2012 +0600 +++ b/Outdoor.h Tue Nov 06 10:07:35 2012 +0600 @@ -154,7 +154,7 @@ bool _47F04C(signed int a2, signed int a3); bool _47F097(signed int a2, signed int a3); bool _47F0E2(); - int PrepareDecorations(); + bool PrepareDecorations(); int _47F223_LooksLikeGenerateMonsterLoot(); bool InitalizeActors(int a1); bool _47F3EA();
--- a/Player.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/Player.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -3183,7 +3183,7 @@ else { v5 = player__getrangeddamagestring_static_buff; - strcpy(player__getrangeddamagestring_static_buff, off_4EE75C); + strcpy(player__getrangeddamagestring_static_buff, "N/A"); } v8 = v1->pEquipment.uMainHand; if ( v8 )
--- a/Spells.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/Spells.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -50,7 +50,7 @@ this->uFlags = 0; if ( v2 ) { - ((OtherOverlay *)&stru_5E4C90.field_4B[20 * v2 + 105])->Reset(); + ((OtherOverlay *)&stru_5E4C90._decor_events[20 * v2 + 105])->Reset(); pOtherOverlayList->field_3EC = 1; v1->uOverlayID = 0; } @@ -99,7 +99,7 @@ v8 = (unsigned __int16)v8; if ( (unsigned __int16)v8 != a5 ) { - ((OtherOverlay *)&stru_5E4C90.field_4B[20 * v8 + 105])->Reset(); + ((OtherOverlay *)&stru_5E4C90._decor_events[20 * v8 + 105])->Reset(); pOtherOverlayList->field_3EC = 1; v6->uOverlayID = 0; }
--- a/mm7_1.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/mm7_1.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -5080,7 +5080,7 @@ if ( !v25 ) { if ( v23->IsInteractive() ) - v26 = pNPCTopics[stru_5E4C90.field_0[v24->field_1C] + 379].pTopic; + v26 = pNPCTopics[stru_5E4C90._decor_events[v24->_idx_in_stru123 - 75] + 379].pTopic; else v26 = pDecorationList->pDecorations[v24->uDecorationDescID].field_20; goto LABEL_87; @@ -5876,7 +5876,7 @@ { if ( pLevelDecorations[(signed int)(unsigned __int16)v0 >> 3].IsInteractive() ) { - v15 = stru_5E4C90.field_0[v13->field_1C] + 380; + v15 = stru_5E4C90._decor_events[v13->_idx_in_stru123 - 75] + 380; _5C3420_pDecoration = &pLevelDecorations[(signed int)(unsigned __int16)v0 >> 3]; EventProcessor(v15, 0, 1); _5C3420_pDecoration = 0;
--- a/mm7_2.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/mm7_2.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -1,5 +1,6 @@ #include <io.h> #include <direct.h> +#include <assert.h> #include "MapInfo.h" #include "Game.h" @@ -145,7 +146,7 @@ _this.uFrameZ = 334; v28 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu); v30 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); - sprintf(pTmpBuf, "%s: %d", pGlobalTXT_LocalizationStrings[605], pParty->uFine); + sprintfex(pTmpBuf, "%s: %d", pGlobalTXT_LocalizationStrings[605], pParty->uFine); _this.DrawText2(pFontArrus, 0, 0x104u, v30, pTmpBuf, 3u); if ( dword_F8B19C == 1 ) { @@ -206,7 +207,7 @@ v0 = ptr_507BC0; if ( ptr_507BC0->field_40 == 1 ) { - sprintf(pTmpBuf, "%s\n%s", pGlobalTXT_LocalizationStrings[606], pGlobalTXT_LocalizationStrings[112]); + sprintfex(pTmpBuf, "%s\n%s", pGlobalTXT_LocalizationStrings[606], pGlobalTXT_LocalizationStrings[112]); _this.DrawText2(pFontArrus, 0, 0x92u, v30, pTmpBuf, 3u); _this.DrawText2(pFontArrus, 0, 0xBAu, v28, (const char *)pKeyActionMap->pPressedKeysBuffer, 3u); v3 = pFontArrus; @@ -257,8 +258,8 @@ v6 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu); v7 = v5->pName; v8 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); - sprintf(pTmpBuf, &byte_4F0F98, v8, v7, v6); - sprintf(pTmpBuf2, dword_F8B1A4, pTmpBuf, 100 * v5->uLevel); + sprintfex(pTmpBuf, &byte_4F0F98, v8, v7, v6); + sprintfex(pTmpBuf2, dword_F8B1A4, pTmpBuf, 100 * v5->uLevel); ptr_F8B1E8 = pTmpBuf2; memcpy(&a1, pDialogueWindow, sizeof(a1)); w.uFrameWidth = 458; @@ -310,7 +311,7 @@ _this.uFrameZ = 334; *(int *)v13 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu); *(int *)v14 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); - sprintf(pTmpBuf, "%s: %d", pGlobalTXT_LocalizationStrings[25], pParty->uNumGoldInBank); + sprintfex(pTmpBuf, "%s: %d", pGlobalTXT_LocalizationStrings[25], pParty->uNumGoldInBank); _this.DrawText2(pFontArrus, 0, 0xDCu, v14[0], pTmpBuf, 3u); if ( dword_F8B19C != 1 ) { @@ -394,7 +395,7 @@ v11 = pGlobalTXT_LocalizationStrings[112]; v10 = pGlobalTXT_LocalizationStrings[244]; } - sprintf(pTmpBuf, "%s\n%s", v10, v11); + sprintfex(pTmpBuf, "%s\n%s", v10, v11); _this.DrawText2(pFontArrus, 0, 0x92u, v14[0], pTmpBuf, 3u); _this.DrawText2(pFontArrus, 0, 0xBAu, v13[0], (const char *)pKeyActionMap->pPressedKeysBuffer, 3u); v4 = pFontArrus; @@ -681,7 +682,7 @@ while ( (signed int)v10 < v8->pStartingPosActiveItem + v8->pNumPresenceButton ); if ( v86 ) { - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[401], pOutString); + sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[401], pOutString); v79.DrawText2(pFontArrus, 0, 0x92u, 0, pTmpBuf, 3u); pOutString = (GUIFont *)((149 - v89) / v86); if ( (149 - v89) / v86 > 32 ) @@ -731,7 +732,7 @@ } } v26 = pTmpBuf; - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v85->pName, pClassNames[v85->uClass]); + sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v85->pName, pClassNames[v85->uClass]); strcat(pTmpBuf, "\n \n"); strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]); goto LABEL_97; @@ -770,16 +771,16 @@ v28 = *(int *)v84; if ( pDialogueWindow->pCurrentPosActiveItem != 2 ) v28 = v81; - sprintf(&Dest, format_4E2DC8, v28); - sprintf(pTmpBuf2, pGlobalTXT_LocalizationStrings[178], pOutString); + sprintfex(&Dest, format_4E2DC8, v28); + sprintfex(pTmpBuf2, pGlobalTXT_LocalizationStrings[178], pOutString); strcat(&Dest, pTmpBuf2); v90 = pFontArrus->CalcTextHeight(&Dest, &v79, 0, 0); strcat(&Dest, "\n \n"); v29 = *(int *)v84; if ( pDialogueWindow->pCurrentPosActiveItem != 3 ) v29 = v81; - sprintf(&a1, format_4E2DC8, v29); - sprintf(pTmpBuf2, + sprintfex(&a1, format_4E2DC8, v29); + sprintfex(pTmpBuf2, pGlobalTXT_LocalizationStrings[86], //(signed __int64)p2DEvents_minus1__20[13 * (unsigned int)ptr_507BC0->ptr_1C], (signed __int64)p2DEvents[(unsigned int)ptr_507BC0->ptr_1C - 1].fPriceMultiplier, @@ -790,7 +791,7 @@ v30 = *(int *)v84; if ( pDialogueWindow->pCurrentPosActiveItem != 4 ) v30 = v81; - sprintf(&v77, format_4E2DC8, v30); + sprintfex(&v77, format_4E2DC8, v30); strcat(&v77, pGlobalTXT_LocalizationStrings[160]); v82 = pFontArrus->CalcTextHeight(&v77, &v79, 0, 0); strcat(&v77, "\n \n"); @@ -802,7 +803,7 @@ v32 = *(int *)v84; if ( pDialogueWindow->pCurrentPosActiveItem != 5 ) v32 = v81; - sprintf(&v75, format_4E2DC8, v32); + sprintfex(&v75, format_4E2DC8, v32); strcat(&v75, pGlobalTXT_LocalizationStrings[611]); v87 = pFontArrus->CalcTextHeight(&v75, &v79, 0, 0); } @@ -816,7 +817,7 @@ if ( !(v37 ^ __OFSUB__(v34, v35)) ) { LABEL_75: - sprintf(pTmpBuf, "%s%s%s%s", &Dest, &a1, &v77, &v75); + sprintfex(pTmpBuf, "%s%s%s%s", &Dest, &a1, &v77, &v75); v71 = 3; v69 = pTmpBuf; v67 = 0; @@ -952,7 +953,9 @@ v7 = v6 + 2 * v2 - 30; v2 = (signed int)v0->ptr_1C; v4 = word_4F0498[5 * v7]; - v5 = *(short *)&aTooManyStation[2 * (5 * (v6 + 2 * v2) + rand() % 4) + 10]; + __debugbreak(); + //things happen around word_4F0400 actually + //v5 = *(short *)&aTooManyStation[2 * (5 * (v6 + 2 * v2) + rand() % 4) + 10]; goto LABEL_13; } if ( v2 <= 41 ) @@ -1215,7 +1218,7 @@ if ( !v109 ) { LABEL_105: - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], _this->pName, pClassNames[_this->uClass]); + sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[544], _this->pName, pClassNames[_this->uClass]); strcat(pTmpBuf, "\n \n"); strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]); v7 = pTmpBuf; @@ -1227,7 +1230,7 @@ v77 = &v101; goto LABEL_15; } - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[401], v108); + sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[401], v108); v101.DrawText2(pFontArrus, 0, 0x92u, 0, pTmpBuf, 3u); v108 = (149 - v106.y) / (signed int)v109; if ( (149 - v106.y) / (signed int)v109 > 32 ) @@ -1954,7 +1957,7 @@ while ( (signed int)v6 < v2->pNumPresenceButton + v2->pStartingPosActiveItem ); if ( v114 ) { - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[401], v111); + sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[401], v111); v104.DrawText2(pFontArrus, 0, 0x92u, 0, pTmpBuf, 3u); v111 = (const char **)((signed int)(149 - v112) / v114); if ( (signed int)(149 - v112) / v114 > 32 ) @@ -2004,7 +2007,7 @@ return result; } } - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], _this->pName, pClassNames[_this->uClass]); + sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[544], _this->pName, pClassNames[_this->uClass]); strcat(pTmpBuf, "\n \n"); strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]); v21 = pTmpBuf; @@ -2548,7 +2551,7 @@ while ( (signed int)v39 < v37->pNumPresenceButton + v37->pStartingPosActiveItem ); if ( v153 ) { - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[401], _this); + sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[401], _this); v144.DrawText2(pFontArrus, 0, 0x92u, 0, pTmpBuf, 3u); _this = (Player *)((149 - v152) / v153); if ( (149 - v152) / v153 > 32 ) @@ -2597,7 +2600,7 @@ return; } } - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v0->pName, pClassNames[v0->uClass]); + sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[544], v0->pName, pClassNames[v0->uClass]); strcat(pTmpBuf, "\n \n"); strcat(pTmpBuf, pGlobalTXT_LocalizationStrings[528]); v11 = 0; @@ -3838,7 +3841,7 @@ dword_F8B19C = v55; if ( v3 < 19 ) { - v9 = pIcons_LOD->LoadTexture((&off_4F03B8)[4 * v3], TEXTURE_16BIT_PALETTE); + v9 = pIcons_LOD->LoadTexture(off_4F03B8[v3], TEXTURE_16BIT_PALETTE); v3 = dword_F8B198; dword_F8B164 = &pIcons_LOD->pTextures[v9]; LABEL_13: @@ -5154,7 +5157,7 @@ { v4 = pClassNames[(unsigned __int8)v3[17]]; v5 = ((Player *)(v3 - 168))->GetBaseLevel(); - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[129], i, v5, v4); + sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[129], i, v5, v4); pWindow.DrawText2( pFont, 1u, @@ -5181,10 +5184,10 @@ v9 = pGlobalTXT_LocalizationStrings[245]; if ( v14 != 1 ) v9 = pGlobalTXT_LocalizationStrings[132]; - sprintf(pTmpBuf2, " %lu %s, %lu %s, %lu %s ", v14, v9, v18, v8, v17, v7); + sprintfex(pTmpBuf2, " %lu %s, %lu %s, %lu %s ", v14, v9, v18, v8, v17, v7); strcat(pTmpBuf, pTmpBuf2); pWindow.DrawText2(pFont, 1u, pWindow.uFrameHeight - 2 * LOBYTE(pFont->uFontHeight) - 5, 1u, pTmpBuf, 3u); - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[94], v23); + sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[94], v23); pWindow.DrawText2(pFont, 1u, pWindow.uFrameHeight, 1u, pTmpBuf, 3u); BYTE1(dword_6BE364_game_settings_1) |= 0x40u; pRenderer->EndScene(); @@ -7501,11 +7504,11 @@ //----- (0044F57C) -------------------------------------------------------- -void *__fastcall SpawnEncounter(MapInfo *pMapInfo, SpawnPointMM7 *a2, int a3, int a4, int a5) -{ - MapInfo *v5; // esi@1 - SpawnPointMM7 *v6; // ebx@1 - void *result; // eax@2 +void SpawnEncounter(MapInfo *pMapInfo, SpawnPointMM7 *spawn, int a3, int a4, int a5) +{ + //MapInfo *v5; // esi@1 + //SpawnPointMM7 *v6; // ebx@1 + int v7; // eax@2 char v8; // zf@5 int v9; // edi@9 int v10; // eax@9 @@ -7540,123 +7543,139 @@ int v39; // edi@52 std::string v40; // [sp-18h] [bp-100h]@60 void *v41; // [sp-14h] [bp-FCh]@50 - void *v42; // [sp-10h] [bp-F8h]@50 - size_t v43; // [sp-Ch] [bp-F4h]@50 + //void *v42; // [sp-10h] [bp-F8h]@50 + //size_t v43; // [sp-Ch] [bp-F4h]@50 const char *v44; // [sp-8h] [bp-F0h]@13 char *v45; // [sp-4h] [bp-ECh]@9 - char Str; // [sp+Ch] [bp-DCh]@60 - char Str2; // [sp+2Ch] [bp-BCh]@29 + char Str[32]; // [sp+Ch] [bp-DCh]@60 + char Str2[120]; // [sp+2Ch] [bp-BCh]@29 unsigned int uFaceID; // [sp+A4h] [bp-44h]@52 - void *Src; // [sp+A8h] [bp-40h]@50 + MonsterInfo *Src; // [sp+A8h] [bp-40h]@50 int v50; // [sp+ACh] [bp-3Ch]@47 - char Source; // [sp+B0h] [bp-38h]@20 + char Source[32]; // [sp+B0h] [bp-38h]@20 int v52; // [sp+D0h] [bp-18h]@34 - void *v53; // [sp+D4h] [bp-14h]@34 + int v53; // [sp+D4h] [bp-14h]@34 int v54; // [sp+D8h] [bp-10h]@32 int v55; // [sp+DCh] [bp-Ch]@32 int v56; // [sp+E0h] [bp-8h]@8 int v57; // [sp+E4h] [bp-4h]@1 + //auto a2 = spawn; + v57 = 0; - v5 = pMapInfo; - v6 = a2; + //v5 = pMapInfo; + //v6 = spawn; if ( uCurrentlyLoadedLevelType == LEVEL_Indoor ) - result = (void *)pOutdoor->ddm.field_C_alert; - else - result = (void *)(uCurrentlyLoadedLevelType == LEVEL_Outdoor ? pIndoor->dlv.field_C_alert : 0); - if ( result ) - { - v8 = (a2->uAttributes & 1) == 0; - } - else - { - result = (void *)(a2->uAttributes & 1); - v8 = (char)result == 1; - } - if ( !v8 ) - { - result = (void *)(a2->uIndex - 1); - v56 = 1; - switch ( (int)result ) - { - case 0u: + v7 = pOutdoor->ddm.field_C_alert; + else if (uCurrentlyLoadedLevelType == LEVEL_Outdoor) + v7 = pIndoor->dlv.field_C_alert; + else + v7 = 0; + + if (v7) + v8 = (spawn->uAttributes & 1) == 0; + else + v8 = (spawn->uAttributes & 1) == 1; + + if (v8) + return; + + //result = (void *)(spawn->uIndex - 1); + v56 = 1; + switch (spawn->uIndex - 1) + { + case 0u: v9 = pMapInfo->uEncounterMonster1AtLeast; v10 = rand(); - v11 = v5->uEncounterMonster1AtMost; - v45 = v5->pEncounterMonster1Texture; - v12 = v10 % (v11 - v9 + 1); - v13 = v5->field_34; - goto LABEL_20; - case 3u: + v11 = pMapInfo->uEncounterMonster1AtMost; v45 = pMapInfo->pEncounterMonster1Texture; - goto LABEL_13; - case 4u: - v45 = pMapInfo->pEncounterMonster2Texture; - goto LABEL_13; - case 5u: - v45 = pMapInfo->pEncounterMonster3Texture; -LABEL_13: + v12 = v10 % (v11 - v9 + 1); + v13 = pMapInfo->field_34; + goto LABEL_20; + + case 3u: + v45 = pMapInfo->pEncounterMonster1Texture; v44 = "%s A"; goto LABEL_25; - case 1u: + + case 4u: + v45 = pMapInfo->pEncounterMonster2Texture; + v44 = "%s A"; + goto LABEL_25; + + case 5u: + v45 = pMapInfo->pEncounterMonster3Texture; + v44 = "%s A"; + goto LABEL_25; + + case 1u: v9 = pMapInfo->uEncounterMonster2AtLeast; v14 = rand(); - v15 = v5->uEncounterMonster2AtMost; - v45 = v5->pEncounterMonster2Texture; + v15 = pMapInfo->uEncounterMonster2AtMost; + v45 = pMapInfo->pEncounterMonster2Texture; v12 = v14 % (v15 - v9 + 1); - v13 = v5->field_37; + v13 = pMapInfo->field_37; goto LABEL_20; - case 6u: + + case 6u: v45 = pMapInfo->pEncounterMonster1Texture; - goto LABEL_18; - case 7u: - v45 = pMapInfo->pEncounterMonster2Texture; - goto LABEL_18; - case 8u: - v45 = pMapInfo->pEncounterMonster3Texture; -LABEL_18: v44 = "%s B"; goto LABEL_25; - case 2u: + + case 7u: + v45 = pMapInfo->pEncounterMonster2Texture; + v44 = "%s B"; + goto LABEL_25; + + case 8u: + v45 = pMapInfo->pEncounterMonster3Texture; + v44 = "%s B"; + goto LABEL_25; + + case 2u: v9 = pMapInfo->uEncounterMonster3AtLeast; v16 = rand(); - v17 = v5->uEncounterMonster3AtMost; - v45 = v5->pEncounterMonster3Texture; + v17 = pMapInfo->uEncounterMonster3AtMost; + v45 = pMapInfo->pEncounterMonster3Texture; v12 = v16 % (v17 - v9 + 1); - v13 = v5->field_3A; + v13 = pMapInfo->field_3A; LABEL_20: v57 = v13; v56 = v9 + v12; - result = strcpy(&Source, v45); + strcpy(Source, v45); goto LABEL_26; - case 9u: + + case 9u: v45 = pMapInfo->pEncounterMonster1Texture; - goto LABEL_24; - case 0xAu: + v44 = "%s C"; + goto LABEL_25; + + case 0xAu: v45 = pMapInfo->pEncounterMonster2Texture; - goto LABEL_24; - case 0xBu: + v44 = "%s C"; + goto LABEL_25; + + case 0xBu: v45 = pMapInfo->pEncounterMonster3Texture; -LABEL_24: v44 = "%s C"; LABEL_25: - result = (void *)sprintf(&Source, v44, v45); + sprintf(Source, v44, v45); LABEL_26: - if ( Source == 48 ) - return result; + if (Source[0] == '0') + return; + v57 += a3; if ( v57 > 4 ) v57 = 4; - strcpy(&Str2, &Source); + strcpy(Str2, Source); if ( a4 ) v56 = a4; v18 = v56; - result = (void *)(v56 + uNumActors); if ( (signed int)(v56 + uNumActors) >= 500 ) - return result; - v19 = v6->vPosition.x; - v20 = v6->vPosition.y; - v21 = v6->vPosition.z; + return; + v19 = spawn->vPosition.x; + v20 = spawn->vPosition.y; + v21 = spawn->vPosition.z; v54 = 0; v55 = v19; a4 = v20; @@ -7664,16 +7683,16 @@ if ( uCurrentlyLoadedLevelType == LEVEL_Indoor ) v54 = pIndoor->GetSector(v19, v20, v21); v53 = 0; - result = (void *)((((uCurrentlyLoadedLevelType != LEVEL_Outdoor) - 1) & 0x40) + 64); v52 = (((uCurrentlyLoadedLevelType != LEVEL_Outdoor) - 1) & 0x40) + 64; if ( v18 <= 0 ) - return result; + return; break; default: - return result; - } - do - { + return; + } + + for (uint i = v53; i < v56; ++i) + { v22 = &pActors[uNumActors]; pActors[uNumActors].Reset(); if ( v57 ) @@ -7692,47 +7711,48 @@ } if ( v24 == 1 ) { - v45 = &Source; + v45 = Source; v44 = "%s A"; } else { if ( v24 == 2 ) { - v45 = &Source; + v45 = Source; v44 = "%s B"; } else { if ( v24 != 3 ) goto LABEL_58; - v45 = &Source; + v45 = Source; v44 = "%s C"; } } - sprintf(&Str2, v44, v45); - } - v26 = pMonsterList->GetMonsterByName(&Str2); + sprintf(Str2, v44, v45); + } + v26 = pMonsterList->GetMonsterByName(Str2); v50 = (signed __int16)v26; - v45 = &Str2; + v45 = Str2; if ( (signed __int16)v26 == -1 ) { - sprintf(&Str, "Can't create random monster: '%s'! See MapStats.txt and Monsters.txt!", v45); - MessageBoxA(nullptr, &Str, nullptr, 0); + sprintfex(Str, "Can't create random monster: '%s'! See MapStats.txt and Monsters.txt!", v45); + MessageBoxA(nullptr, Str, nullptr, 0); ExitProcess(0); } v27 = &pMonsterList->pMonsters[(signed __int16)v26]; v28 = pMonsterStats->_4563FF(v45); if ( !v28 ) v28 = 1; - Src = (char *)&pMonsterStats + 88 * v28; - strcpy(v22->pActorName, *(const char **)Src); - v43 = 88; - v42 = Src; - v29 = *((short *)Src + 32); + Src = &pMonsterStats->pInfos[v28]; + strcpy(v22->pActorName, Src->pName); + //v43 = 88; + //v42 = Src; + v29 = Src->uHP; v41 = &v22->pMonsterInfo; v22->sCurrentHP = v29; - memcpy(v41, v42, v43); + assert(sizeof(MonsterInfo) == 88); + memcpy(v41, Src, sizeof(MonsterInfo)); v22->word_000086_some_monster_id = v50 + 1; v22->uActorRadius = v27->uMonsterRadius; v22->uActorHeight = v27->uMonsterHeight; @@ -7748,7 +7768,7 @@ v22->vInitialPosition.z = a3; v22->vPosition.z = a3; v22->uSectorID = v54; - v22->uGroup = v6->uGroup; + v22->uGroup = spawn->uGroup; v22->PrepareSprites((char)v45); v22->pMonsterInfo.uHostilityType = MonsterInfo::Hostility_Friendly; v32 = rand(); @@ -7756,13 +7776,13 @@ v34 = stru_5C6E00->SinCos(v32 % 2048); a4 = v34; a3 = (unsigned __int64)(v34 * (signed __int64)v52) >> 16; - v55 = a3 + v6->vPosition.x; + v55 = a3 + spawn->vPosition.x; v35 = stru_5C6E00->SinCos(v33 - stru_5C6E00->uIntegerHalfPi); a4 = v35; a3 = (unsigned __int64)(v35 * (signed __int64)v52) >> 16; - a4 = a3 + v6->vPosition.y; - v36 = v6->vPosition.z; - a3 = v6->vPosition.z; + a4 = a3 + spawn->vPosition.y; + v36 = spawn->vPosition.z; + a3 = spawn->vPosition.z; if ( uCurrentlyLoadedLevelType == LEVEL_Outdoor ) goto LABEL_55; v37 = pIndoor->GetSector(v55, a4, v36); @@ -7784,12 +7804,11 @@ } } LABEL_58: - v53 = (char *)v53 + 1; - result = v53; - } - while ( (signed int)v53 < v56 ); - } - return result; + ; + //v53 = (char *)v53 + 1; + //result = v53; + } + //while ( (signed int)v53 < v56 ); } @@ -7955,6 +7974,8 @@ int v33; // [sp+80h] [bp-8h]@1 int v34; // [sp+84h] [bp-4h]@1 + __debugbreak(); + auto a1 = this; v2 = a1; @@ -8619,39 +8640,27 @@ } //----- (00450AAA) -------------------------------------------------------- -void *__cdecl RespawnGlobalDecorations() -{ - signed int v0; // edi@1 - void *result; // eax@1 - signed int v2; // ebx@1 - LevelDecoration *v3; // esi@2 - - v0 = 0; - result = memset(stru_5E4C90.field_4B, 0, 0x7Du); - v2 = 0; - if ( (signed int)uNumLevelDecorations > 0 ) - { - v3 = pLevelDecorations; - do - { - if ( !v3->field_16_event_id ) - { - result = (void *)v3->IsInteractive(); - if ( result ) - { - if ( v0 < 124 ) - { - v3->field_1C = v0 + 75; - stru_5E4C90.field_4B[v0++] = v3->GetGlobalEvent(); - } - } - } - ++v2; - ++v3; - } - while ( v2 < (signed int)uNumLevelDecorations ); - } - return result; +void RespawnGlobalDecorations() +{ + memset(stru_5E4C90._decor_events, 0, 125); + + uint decorEventIdx = 0; + for (uint i = 0; i < uNumLevelDecorations; ++i) + { + auto decor = pLevelDecorations + i; + + if (!decor->field_16_event_id) + { + if (decor->IsInteractive()) + { + if (decorEventIdx < 124) + { + decor->_idx_in_stru123 = decorEventIdx + 75; + stru_5E4C90._decor_events[decorEventIdx++] = decor->GetGlobalEvent(); + } + } + } + } } //----- (00450B0A) -------------------------------------------------------- @@ -10288,7 +10297,7 @@ v7 = 44; goto LABEL_71; } - if ( !_strcmpi(*(const char **)(v2 + 4), off_4E876C) ) + if ( !_strcmpi(*(const char **)(v2 + 4), "Ice") ) { v7 = 26; goto LABEL_71; @@ -10330,7 +10339,7 @@ } if ( _strcmpi(*(const char **)(v2 + 4), "Hammerhands") ) { - sprintf(pTmpBuf, "Unknown monster spell %s", *(int *)(v2 + 4)); + sprintfex(pTmpBuf, "Unknown monster spell %s", *(int *)(v2 + 4)); MessageBoxA(nullptr, pTmpBuf, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Itemdata.cpp:1562", 0); result = 0; goto LABEL_76; @@ -10541,7 +10550,7 @@ { if ( _strcmpi(v1, "FIRE") ) { - if ( _strcmpi(v1, off_4E887C) ) + if ( _strcmpi(v1, "AIR") ) { if ( _strcmpi(v1, "WATER") ) { @@ -10933,7 +10942,7 @@ for ( j = 0; j < v41.field_0; ++j ) { v27 = v41.pProperties[j]; - if ( _strcmpi(v41.pProperties[j], off_4E8CB8) ) + if ( _strcmpi(v41.pProperties[j], "NBM") ) { if ( _strcmpi(v27, "Invisible") ) { @@ -11717,33 +11726,29 @@ //----- (0046086A) -------------------------------------------------------- bool Autosave() { - int flag; // esi@3 - //int i; // eax@4 - //int v2; // edx@5 + int v0; // esi@3 + int v1; // eax@4 + int v2; // edx@5 FILE *v3; // eax@7 LOD::FileHeader this_; // [sp+Ch] [bp-16Ch]@3 LOD::Directory pDir; // [sp+10Ch] [bp-6Ch]@4 LOD::Directory v7; // [sp+12Ch] [bp-4Ch]@9 LOD::Directory a3; // [sp+14Ch] [bp-2Ch]@3 - //unsigned int v9; // [sp+16Ch] [bp-Ch]@5 + unsigned int v9; // [sp+16Ch] [bp-Ch]@5 void *pSave; // [sp+170h] [bp-8h]@3 unsigned int v11; // [sp+174h] [bp-4h]@5 if ( pVideoPlayer->AnyMovieLoaded() ) pVideoPlayer->Unload(); - flag = 0; + v0 = 0; pSave = pAllocator->AllocNamedChunk(0, 0xF4240, 0); pNew_LOD->CloseWriteFile(); remove("data\\new.lod"); this_.Reset(); - strcpy(this_.LodVersion, "MMVII"); - strcpy(this_.LodDescription, "newmaps for MMVII"); + strcpy(this_.array_000004, "MMVII"); + strcpy(this_.array_000054, "newmaps for MMVII"); this_.dword_0000A4 = 100; this_.dword_0000A8 = 0; - a3.pFilename[0] = 0; - a3.uOfsetFromSubindicesStart = 0; - a3.uDataSize = 0; - a3.uNumSubIndices = 0; a3.dword_000018 = 0; a3.word_00001E = 0; strcpy(a3.pFilename, "current"); @@ -11753,12 +11758,25 @@ pNew_LOD->CreateTempFile(); pNew_LOD->uNumSubIndices = 0; pDir.Reset(); - for (int i = pGames_LOD->uNumSubIndices / 2; i < pGames_LOD->uNumSubIndices; ++i) - { - memcpy(&pDir, (char *)&pGames_LOD->pSubIndices[i], sizeof(pDir)); - v3 = pGames_LOD->FindContainer((const char *)&pGames_LOD->pSubIndices[i], 1); - fread(pSave, pGames_LOD->pSubIndices[i].uDataSize, 1u, v3); - pNew_LOD->AppendDirectory(&pDir, pSave); + v1 = (signed int)pGames_LOD->uNumSubIndices / 2; + if ( (signed int)pGames_LOD->uNumSubIndices / 2 < (signed int)pGames_LOD->uNumSubIndices ) + { + v2 = 32 * v1; + v11 = 32 * v1; + v9 = pGames_LOD->uNumSubIndices - v1; + while ( 1 ) + { + memcpy(&pDir, (char *)pGames_LOD->pSubIndices + v2, sizeof(pDir)); + v3 = pGames_LOD->FindContainer((const char *)pGames_LOD->pSubIndices + v2, 1); + fread(pSave, pGames_LOD->pSubIndices[v11 / 0x20].uDataSize, 1u, v3); + pNew_LOD->AppendDirectory(&pDir, pSave); + v11 += 32; + --v9; + if ( !v9 ) + break; + v2 = v11; + } + v0 = 0; } v7.Reset(); strcpy(pSavegameHeader->pLocationName, "out01.odm"); @@ -11766,22 +11784,22 @@ v7.uDataSize = 100; pNew_LOD->AppendDirectory(&v7, &pSavegameHeader); pNew_LOD->Save(); - pParty->vPrevPosition.y = flag; + pParty->vPrevPosition.y = v0; pParty->vPrevPosition.x = 12552; pParty->vPosition.x = 12552; - pParty->vPosition.z = flag; - pParty->uFallStartY = flag; - pParty->sPrevRotationX = flag; - pParty->sRotationX = flag; + pParty->vPosition.z = v0; + pParty->uFallStartY = v0; + pParty->sPrevRotationX = v0; + pParty->sRotationX = v0; pParty->vPrevPosition.z = 1816; pParty->vPosition.y = 1816; - flag = 1; + v0 = 1; pParty->sPrevRotationY = 512; pParty->sRotationY = 512; SaveGame(1, (__int16 *)1); } pAllocator->FreeChunk(pSave); - return flag; + return v0; } @@ -13520,7 +13538,7 @@ v4 = hdc * BytesPerSector * SectorsPerCluster; if ( (unsigned int)v4 < 0x1E00000 ) { - sprintf( + sprintfex( pTmpBuf, "Due to Window Virtual Memory requirements Might and Magic VII\nrequires 30MB of free hard drive space to operate properly.\n\nAvailable on Current Drive = %luk", (unsigned int)v4 / 1024i64); @@ -14005,7 +14023,7 @@ v11 = 1; do { - sprintf(pTmpBuf, "data\\lloyd%d%d.pcx", v10, v11); + sprintfex(pTmpBuf, "data\\lloyd%d%d.pcx", v10, v11); remove(pTmpBuf); ++v11; } @@ -14288,7 +14306,7 @@ unsigned int v9; // [sp+184h] [bp-4h]@28 //_getcwd(v5, 120); - //sprintf(pIniFilename, "%s\\mm6.ini", v5); + //sprintfex(pIniFilename, "%s\\mm6.ini", v5); viewparams = new ViewingParams; viewparams->uScreenX = GetPrivateProfileIntW(L"screen", L"vx1", 8, pIniFilename); viewparams->uScreenY = GetPrivateProfileIntW(L"screen", L"vy1", 8, pIniFilename); @@ -14960,7 +14978,7 @@ } } LABEL_174: - sprintf(&Src, "Unknown DirectDraw/Direct3D error number %X", v4); + sprintfex(&Src, "Unknown DirectDraw/Direct3D error number %X", v4); v13 = strlen(&Src); v12 = &Src; goto LABEL_175; @@ -15153,7 +15171,7 @@ a1.uFrameW = a1.uFrameHeight + a1.uFrameY - 1; v1 = pItemsTable->pItems[(unsigned int)ptr_507BC4->ptr_1C + 700].pName; v2 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); - sprintf(pTmpBuf, format_4E2D80, v2, v1); + sprintfex(pTmpBuf, format_4E2D80, v2, v1); a1.DrawText2(pFontCreate, 0, 0, 0, pTmpBuf, 3u); return a1.DrawText( pFontSmallnum, @@ -15849,7 +15867,7 @@ if ( pParty->pPickedItem.uItemID ) return 1; v24 = (int)pItemsTable->pItems[v20].pUnidentifiedName; - sprintf(pTmpBuf2, pGlobalTXT_LocalizationStrings[471], v24); + sprintfex(pTmpBuf2, pGlobalTXT_LocalizationStrings[471], v24); ShowStatusBarString(pTmpBuf2, 2u); if ( v19->uItemID == 506 ) _449B7E_toggle_bit(pParty->_award_bits, 184, 1u); @@ -15915,9 +15933,9 @@ { if ( !pLevelDecorations[a1 >> 3].IsInteractive() ) return 1; - v10 = v8->field_1C; + v10 = v8->_idx_in_stru123; v24 = 1; - v11 = stru_5E4C90.field_0[v10] + 380; + v11 = stru_5E4C90._decor_events[v10 - 75] + 380; _5C3420_pDecoration = v8; EventProcessor(v11, 0, 1); _5C3420_pDecoration = 0; @@ -16387,7 +16405,7 @@ goto LABEL_36; } if ( v25->IsInteractive() ) - v24 = pNPCTopics[stru_5E4C90.field_0[v26->field_1C] + 379].pTopic; + v24 = pNPCTopics[stru_5E4C90._decor_events[v26->_idx_in_stru123 - 75] + 379].pTopic; else v24 = pDecorationList->pDecorations[v26->uDecorationDescID].field_20; LABEL_51:
--- a/mm7_3.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/mm7_3.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -2443,7 +2443,7 @@ pParty->bFlying = 0; __debugbreak(); if (pParty->FlyActive()) - stru_5E4C90.field_4B[20 * pParty->pPartyBuffs[7].uOverlayID + 119] |= 1u;// 005E4D58 pOtherOverlayList [negindexing] + stru_5E4C90._decor_events[20 * pParty->pPartyBuffs[7].uOverlayID + 119] |= 1u;// 005E4D58 pOtherOverlayList [negindexing] } if ( v80 == -30000 ) { @@ -3162,7 +3162,7 @@ { LOBYTE(pParty->uFlags) &= 0x7Fu; bWaterWalk = 1; - *(short *)&stru_5E4C90.field_4B[20 * pParty->pPartyBuffs[18].uOverlayID + 119] |= 1u; + *(short *)&stru_5E4C90._decor_events[20 * pParty->pPartyBuffs[18].uOverlayID + 119] |= 1u; if ( !(pParty->pPartyBuffs[18].uFlags & 1) && *(int *)&pParty->pArtifactsFound[6972 * pParty->pPartyBuffs[18].uCaster + 10] <= 0 ) bWaterWalk = 0; @@ -3553,7 +3553,7 @@ v123 = v113; if ( SHIDWORD(pParty->pPartyBuffs[7].uExpireTime) >= 0 && (SHIDWORD(pParty->pPartyBuffs[7].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[7].uExpireTime)) ) - stru_5E4C90.field_4B[20 * pParty->pPartyBuffs[7].uOverlayID + 119] &= 0xFEu; + stru_5E4C90._decor_events[20 * pParty->pPartyBuffs[7].uOverlayID + 119] &= 0xFEu; pParty->uFallStartY = v123; goto LABEL_141; } @@ -3568,7 +3568,7 @@ v113 = v123; if ( SHIDWORD(pParty->pPartyBuffs[7].uExpireTime) >= 0 && (SHIDWORD(pParty->pPartyBuffs[7].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[7].uExpireTime)) ) - stru_5E4C90.field_4B[20 * pParty->pPartyBuffs[7].uOverlayID + 119] |= 1u; + stru_5E4C90._decor_events[20 * pParty->pPartyBuffs[7].uOverlayID + 119] |= 1u; LABEL_141: v32 = 0; if ( bJumping && !pParty->bFlying ) @@ -4052,7 +4052,7 @@ { LOBYTE(pParty->uFlags) &= 0x7Fu; v79 = 20 * pParty->pPartyBuffs[18].uOverlayID + 6180178; - *(short *)&stru_5E4C90.field_4B[20 * pParty->pPartyBuffs[18].uOverlayID + 119] |= 1u; + *(short *)&stru_5E4C90._decor_events[20 * pParty->pPartyBuffs[18].uOverlayID + 119] |= 1u; if ( !v122 || !v69 ) { if ( !v76 ) @@ -8313,15 +8313,15 @@ int v2; // ebx@3 unsigned int v3; // eax@3 MapInfo *v4; // edi@4 - int v5; // eax@8 - SpawnPointMM7 *v6; // edx@14 + //int v5; // eax@8 + //SpawnPointMM7 *v6; // edx@14 size_t v7; // eax@19 char *v8; // eax@19 char *v9; // eax@21 char Source[120]; // [sp+Ch] [bp-84h]@19 const char *pFilename; // [sp+84h] [bp-Ch]@1 - unsigned int v12; // [sp+88h] [bp-8h]@12 - int v13; // [sp+8Ch] [bp-4h]@11 + //unsigned int v12; // [sp+88h] [bp-8h]@12 + //int v13; // [sp+8Ch] [bp-4h]@11 pFilename = pLevelFilename; thisa->AllocSoftwareDrawBuffers(); @@ -8352,32 +8352,33 @@ (int)&thisa); if ( !(BYTE1(dword_6BE364_game_settings_1) & 0x20) ) { - UpdateActors(); - UpdateLayingItems(); + InitializeActors(); + InitializeLayingItems(); } BYTE1(dword_6BE364_game_settings_1) &= 0xDFu; - v5 = 0; + //v5 = 0; if ( !v2 ) thisa = 0; if ( thisa == (OutdoorCamera *)1 ) { - v13 = 0; - if ( (signed int)pOutdoor->uNumSpawnPoints > 0 ) - { - v12 = 0; - while ( 1 ) - { - v6 = &pOutdoor->pSpawnPoints[v12 / 0x18]; - if ( pOutdoor->pSpawnPoints[v12 / 0x18].uKind == 3 ) - SpawnEncounter(v4, v6, v5, v5, v5); - else - v4->SpawnRandomTreasure(v6); - ++v13; - v12 += 24; - if ( v13 >= (signed int)pOutdoor->uNumSpawnPoints ) - break; - v5 = 0; - } + //v13 = 0; + for (uint i = 0; i < pOutdoor->uNumSpawnPoints; ++i) + { + //v12 = 0; + //while ( 1 ) + //{ + auto spawn = pOutdoor->pSpawnPoints + i; + //v6 = &pOutdoor->pSpawnPoints[v12 / 0x18]; + if (spawn->uKind == 3 ) + SpawnEncounter(v4, spawn, 0, 0, 0); + else + v4->SpawnRandomTreasure(spawn); + //++v13; + //v12 += 24; + //if ( v13 >= (signed int)pOutdoor->uNumSpawnPoints ) + // break; + //v5 = 0; + //} } RespawnGlobalDecorations(); } @@ -12906,8 +12907,6 @@ //----- (0043F9E1) -------------------------------------------------------- void stru170_stru2::_43F9E1(__int16 x, int y, __int16 z, int w) { - __debugbreak(); - _viewport_space_y = y; _viewport_space_w = w; @@ -17271,12 +17270,12 @@ v25 = _evt->v5 + ((_evt->v6 + ((_evt->v7 + ((unsigned int)_evt->v8 << 8)) << 8)) << 8); if ( v25 ) { - stru_5E4C90.field_0[_5C3420_pDecoration->field_1C] = _evt->v5 - 124; + stru_5E4C90._decor_events[_5C3420_pDecoration->_idx_in_stru123 - 75] = _evt->v5 - 124; } else { v26 = _5C3420_pDecoration; - stru_5E4C90.field_0[_5C3420_pDecoration->field_1C] = 0; + stru_5E4C90._decor_events[_5C3420_pDecoration->_idx_in_stru123 - 75] = 0; LOBYTE(v26->field_2) |= 0x20u; } goto LABEL_291;
--- a/mm7_4.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/mm7_4.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -3357,7 +3357,7 @@ v1 = uHoursToSleep; if ( uHoursToSleep > 240 ) - UpdateActors(); + InitializeActors(); v2 = (double)(7680 * v1) * 0.033333335; pParty->uTimePlayed += (signed __int64)v2; v3 = &pPlayers[1]; @@ -5387,6 +5387,7 @@ int uX; // [sp+160h] [bp-10h]@18 unsigned int v133; // [sp+164h] [bp-Ch]@25 int v134; // [sp+168h] [bp-8h]@14 + char *Str; // [sp+16Ch] [bp-4h]@18 Player *pPlayer; const char *pSkillName; @@ -5474,6 +5475,8 @@ v119 = 6 * v6 + 169; do { + Str = pPlayer->pName; + pGUIWindow_CurrentMenu->DrawText( pFontCreate, v134 + 73,
--- a/mm7_5.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/mm7_5.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -2229,7 +2229,7 @@ v66 = stru_4ECBB8[uMessageParam].rot_x; _5B65B4_npcdata_loword_house_or_other = stru_4ECBB8[uMessageParam].rot_y; _5B65B8_npcdata_hiword_house_or_other = v66; - UpdateActors(); + InitializeActors(); } v67 = pGUIWindow_CurrentMenu->Hint; if ( v67 ) @@ -11721,18 +11721,13 @@ //----- (00408768) -------------------------------------------------------- -char __cdecl UpdateActors() -{ - unsigned int v0; // edi@1 - __int16 v1; // ax@7 - char *v2; // esi@10 - char v3; // zf@13 +void InitializeActors() +{ signed int v5; // [sp+Ch] [bp-10h]@1 signed int v6; // [sp+10h] [bp-Ch]@1 signed int v7; // [sp+14h] [bp-8h]@1 signed int v8; // [sp+18h] [bp-4h]@1 - v0 = 0; v8 = 0; v6 = 0; v7 = 0; @@ -11741,65 +11736,48 @@ v8 = 1; if ( !_strcmpi(pCurrentMapName, "d26.blv") ) v6 = 1; - if ( (unsigned __int16)_449B57_test_bit(pParty->_award_bits, 99) ) + if (_449B57_test_bit(pParty->_award_bits, 99)) v7 = 1; - v1 = _449B57_test_bit(pParty->_award_bits, 100); - if ( v1 ) + if (_449B57_test_bit(pParty->_award_bits, 100)) v5 = 1; - if ( (signed int)uNumActors > 0 ) - { - v2 = (char *)&pActors[0].vPosition; - do - { - if ( ((Actor *)(v2 - 142))->CanAct() || *((short *)v2 + 17) == 19 ) - { - v3 = *((short *)v2 + 17) == 19; - *(short *)v2 = *((short *)v2 + 10); - *((short *)v2 + 1) = *((short *)v2 + 11); - *((short *)v2 + 2) = *((short *)v2 + 12); - *((short *)v2 - 51) = *((short *)v2 - 17); - if ( !v3 ) - Actor::_403EB6(v0, dword_4F6E08[v0], *(int *)(v2 - 18), 0); - } - *(v2 - 81) = 0; - LOBYTE(v1) = 0; - if ( !v8 || v7 ) - { - if ( !v6 || v5 ) - { - LOBYTE(v1) = ((Actor *)(v2 - 142))->_438B9B(); - if ( (char)v1 ) - *(v2 - 104) &= 0xF7u; - } - } - *(v2 - 104) &= 0x7Fu; - if ( *(v2 - 104) & 0x40 ) - LOBYTE(v1) = Actor::_4031C1_update_job(v0, pParty->uCurrentHour, 1); - ++v0; - v2 += 836; - } - while ( (signed int)v0 < (signed int)uNumActors ); - } - return v1; + for (uint i = 0; i < uNumActors; ++i) + { + auto actor = pActors + i; + + if (actor->CanAct() || actor->uAIState == Disabled) + { + actor->vPosition.x = actor->vInitialPosition.x; + actor->vPosition.y = actor->vInitialPosition.y; + actor->vPosition.z = actor->vInitialPosition.z; + actor->sCurrentHP = actor->pMonsterInfo.uHP; + if (actor->uAIState != Disabled) + Actor::_403EB6(i, dword_4F6E08[i], actor->pMonsterInfo.uRecoveryTime, 0); + } + + actor->pMonsterInfo.uHostilityType = MonsterInfo::Hostility_Friendly; + + if (!v8 || v7) + if (!v6 || v5) + if (actor->_438B9B()) + BYTE2(actor->uAttributes) &= 0xF7u; + + BYTE2(actor->uAttributes) &= 0x7Fu; + if (BYTE2(actor->uAttributes) & 0x40) + Actor::_4031C1_update_job(i, pParty->uCurrentHour, 1); + } } //----- (00408896) -------------------------------------------------------- -void UpdateLayingItems() -{ - unsigned int v0; // edi@1 - char *v1; // esi@1 - char *result; // eax@7 - - v0 = 0; - v1 = (char *)&pLayingItems[0].uObjectDescID; - do - { - if ( *(short *)v1 && (v1[24] & 8 || pObjectList->pObjects[*(short *)v1].uFlags & 0x10) ) - LayingItem::_42F933(v0); - v1 += 112; - ++v0; - } - while ( (signed int)v1 < (signed int)((char *)&pObjectList->uNumObjects + 2) ); +void InitializeLayingItems() +{ + for (uint i = 0; i < uNumLayingItems; ++i) + { + auto item = pLayingItems + i; + + if (item->uItemType && + (item->uSoundID & 8 || pObjectList->pObjects[item->uItemType].uFlags & 0x10)) + LayingItem::_42F933(i); + } for (uint i = 0; i < 100; ++i) array_5118E8.pElements[i].field_C_time_left = 0;
--- a/mm7_6.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/mm7_6.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -6499,7 +6499,7 @@ if ( v447->IsInteractive() ) { _5C3420_pDecoration = v447; - EventProcessor(stru_5E4C90.field_0[v447->field_1C] + 380, 0, 1); + EventProcessor(stru_5E4C90._decor_events[v447->_idx_in_stru123 - 75] + 380, 0, 1); _5C3420_pDecoration = (LevelDecoration *)v1; } }
--- a/mm7_data.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/mm7_data.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -803,7 +803,7 @@ char aUndefinedCobje[777]; // idb char aEWorkMsdevMm_7[777]; // idb char aGammaControlNo[777]; // idb -__int16 word_4E8152[11]; +__int16 word_4E8152[11] = {0, 0, 0, 90, 8, 2, 70, 20, 10, 50, 30}; char byte_4E8168[116]; char aD3dTextureName[777]; // idb char aLogd3d_txt[777]; // idb @@ -821,324 +821,6 @@ }; stru355 stru_4E82A4 = {0x20, 0x41, 0, 0x20, 0xFF0000, 0xFF00, 0xFF, 0xFF000000}; stru355 stru_4EFCBC = {0x20, 0x41, 0, 0x10, 0x7C00, 0x3E0, 0x1F, 0x8000}; -char aGlobal_txt[777]; // idb -char aMagic[777]; // idb -char aDark_0[777]; // idb -char aLight_1[777]; // idb -char aBody_0[777]; // idb -char aMind_1[777]; // idb -char aSpirit_1[777]; // idb -char aEarth_0[777]; // idb -char aWater_0[777]; // idb -char aFire_1[777]; // idb -char aSpells_txt[777]; // idb -char aParsingError[777]; // idb -char aErrorParsingPo[777]; // idb -char Text[777]; // idb -char Caption[777]; // idb -char asc_4E8530[777]; // idb -char a222[777]; // idb -char asc_4E8538[777]; // idb -char aPotion_txt[777]; // idb -char aErrorParsing_0[777]; // idb -char aPotnotes_txt[777]; // idb -char aHistory_txt[777]; // idb -char aPsychotic[777]; // idb -char aDizzy[777]; // idb -char aDrugged[777]; // idb -char aUnderwater[777]; // idb -char aSewerpipe[777]; // idb -char aParkinglot[777]; // idb -char aPlain[777]; // idb -char aQuarry[777]; // idb -char aMountains[777]; // idb -char aCity[777]; // idb -char aForest[777]; // idb -char aAlley[777]; // idb -char aStonecorridor[777]; // idb -char aHallway[777]; // idb -char aCarpetedhallwa[777]; // idb -char aHangar[777]; // idb -char aArena[777]; // idb -char aCave[777]; // idb -char aConcerthall[777]; // idb -char aAuditorium[777]; // idb -char aStoneroom[777]; // idb -char aLivingroom[777]; // idb -char aBathroom[777]; // idb -char aRoom[777]; // idb -char aPaddedcell[777]; // idb -char aGeneric[777]; // idb -char aMapstats_txt[777]; // idb -char aHostile_txt[777]; // idb -char aEWorkMsdevMm_9[777]; // idb -char aUnknownMonster[777]; // idb -char aHammerhands[777]; // idb -char aPsychic[777]; // idb -char aBlades[777]; // idb -char aMind[777]; // idb -char aHarm[777]; // idb -char aFate[777]; // idb -char aSummon[777]; // idb -char aReanimate[777]; // idb -char aDragon[777]; // idb -char aBless[777]; // idb -char aAcid[777]; // idb -char off_4E876C[777]; // idb -char aMass[777]; // idb -char aRock[777]; // idb -char aFire[777]; // idb -char aIncinerate[777]; // idb -char aFireball[777]; // idb -char aParalyze[777]; // idb -char aShrapmetal[777]; // idb -char aToxic[777]; // idb -char aLight[777]; // idb -char aSparks[777]; // idb -char aPain[777]; // idb -char aHeroism[777]; // idb -char aHaste[777]; // idb -char aStone[777]; // idb -char aImplosion[777]; // idb -char aLightning[777]; // idb -char aMeteor[777]; // idb -char aPower[777]; // idb -char aSpirit[777]; // idb -char aShield[777]; // idb -char aHour[777]; // idb -char aDay[777]; // idb -char aDispel[777]; // idb -char aEner[777]; // idb -char aDark[777]; // idb -char aLight_0[777]; // idb -char aBody[777]; // idb -char aMind_0[777]; // idb -char aSpirit_0[777]; // idb -char aEarth[777]; // idb -char aWater[777]; // idb -char off_4E887C[777]; // idb -char aFire_0[777]; // idb -char aArrowf[777]; // idb -char aArrow[777]; // idb -char aPlacemon_txt[777]; // idb -char aExplode[777]; // idb -char aGround[777]; // idb -char aCanTCreateRa_0[777]; // idb -char asc_4E88E8[777]; // idb -char aSummon_0[777]; // idb -char aShot[777]; // idb -char aG[777]; // idb -char aM[777]; // idb -char aE_0[2]; // weak -char aDrainsp[777]; // idb -char off_4E8910[777]; // idb -char aSteal[777]; // idb -char aBrkweapon[777]; // idb -char aBrkarmor[777]; // idb -char aBrkitem[777]; // idb -char aErrad[777]; // idb -char aStone_0[777]; // idb -char aDead[777]; // idb -char aUncon[777]; // idb -char aParalyze_0[777]; // idb -char aDisease3[777]; // idb -char aDisease2[777]; // idb -char aDisease1[777]; // idb -char aPoison3[777]; // idb -char aPoison2[777]; // idb -char aPoison1[777]; // idb -char aInsane[777]; // idb -char aDrunk[777]; // idb -char aAfraid[777]; // idb -char aAsleep[777]; // idb -char SubStr[777]; // idb -char aCurse[6]; // weak -char aN[777]; // idb -char aGem[777]; // idb -char aScroll[777]; // idb -char aWand[777]; // idb -char aAmulet[777]; // idb -char aRing[777]; // idb -char aBoots[777]; // idb -char aGauntlets[777]; // idb -char aCape[777]; // idb -char aBelt[777]; // idb -char aHelm[777]; // idb -char aShield_0[777]; // idb -char aPlate[777]; // idb -char aChain[777]; // idb -char aStaff[777]; // idb -char aClub[777]; // idb -char aMace[777]; // idb -char aBow[777]; // idb -char aSpear[777]; // idb -char aAxe[777]; // idb -char aDagger[777]; // idb -char aSword[777]; // idb -char aMisc[777]; // idb -char aArmor[777]; // idb -char aWeapon[777]; // idb -char aMonsters_txt[777]; // idb -char aNewitemgen[777]; // idb -char aClass_txt[777]; // idb -char aStats_txt[777]; // idb -char aSkilldes_txt[777]; // idb -char aRnditems_txt[777]; // idb -char aSpecial[777]; // idb -char aRelic[777]; // idb -char aArtifact[777]; // idb -char aClub_0[777]; // idb -char aPlate_0[777]; // idb -char aChain_0[777]; // idb -char aLeather_0[777]; // idb -char aBlaster[777]; // idb -char aMace_0[777]; // idb -char aSpear_0[777]; // idb -char aAxe_0[777]; // idb -char aDagger_0[777]; // idb -char aSword_0[777]; // idb -char aStaff_0[777]; // idb -char aGem_0[777]; // idb -char aGold[777]; // idb -char aMscroll[777]; // idb -char aSscroll[777]; // idb -char aBottle[777]; // idb -char aReagent[777]; // idb -char aHerb[777]; // idb -char aWeaponw[777]; // idb -char aAmulet_0[777]; // idb -char aRing_0[777]; // idb -char aBoots_0[777]; // idb -char aGauntlets_0[777]; // idb -char aCloak[777]; // idb -char aBelt_0[777]; // idb -char aHelm_0[777]; // idb -char aShield_1[777]; // idb -char aArmor_0[777]; // idb -char aBow_0[777]; // idb -char aMissile[777]; // idb -char aWeapon1or2[777]; // idb -char aWeapon2[777]; // idb -char aWeapon_0[777]; // idb -char aItems_txt[777]; // idb -char aSpcitems_txt[777]; // idb -char aStditems_txt[777]; // idb -char aUnableToSaveDd[777]; // idb -char aDataDdeclist_b[777]; // idb -char aDecDescrip[777]; // idb -char aDusk[777]; // idb -char aDawn[777]; // idb -char aEmitfire[777]; // idb -char aLoopslow[777]; // idb -char aMarker[777]; // idb -char aFf[777]; // idb -char aFm[3]; // idb -char aFs[3]; // idb -char aInvisible[777]; // idb -char off_4E8CB8[777]; // idb -char aDecorationde_0[777]; // idb -char aDecorationdesc[777]; // idb -char aUnableToSaveDc[777]; // idb -char aDataDchest_bin[777]; // idb -char aChestDescrip[777]; // idb -char aChestdescrip_0[777]; // idb -char aChestdescripti[777]; // idb -char aUnableToSave_0[777]; // idb -char aDataDoverlay_b[777]; // idb -char aOvlDes_[777]; // idb -char aTransparent[777]; // idb -char aCenter[7]; // weak -char aOverlaydescrip[777]; // idb -char aObjectdescript[777]; // idb -char aUnableToSaveDo[777]; // idb -char aDataDobjlist_b[777]; // idb -char aObjDescrip[777]; // idb -char aLines[777]; // idb -char aBounce[777]; // idb -char aFlagonintercep[777]; // idb -char aNogravity[777]; // idb -char aNopickup[777]; // idb -char aFtlifetime[777]; // idb -char aLifetime[777]; // idb -char aNodraw[777]; // idb -char aObjectdescri_0[777]; // idb -char aBits[777]; // idb -char aUnableToSaveDm[777]; // idb -char aDataDmonlist_b[777]; // idb -char aMonRace[777]; // idb -char aMonsterracel_0[777]; // idb -char aMonsterracelis[777]; // idb -char a__10[777]; // idb -char aKey_stepright[777]; // idb -char aKey_stepleft[777]; // idb -char aKey_alwaysrun[777]; // idb -char aKey_land[777]; // idb -char aKey_flydown[777]; // idb -char aKey_flyup[777]; // idb -char aKey_zoomout[777]; // idb -char aKey_zoomin[777]; // idb -char aKey_centerview[777]; // idb -char aKey_lookdown[777]; // idb -char aKey_lookup[777]; // idb -char aKey_mapbook[777]; // idb -char aKey_autonotes[777]; // idb -char aKey_timecal[777]; // idb -char aKey_rest[777]; // idb -char aKey_quickref[777]; // idb -char aKey_quest[777]; // idb -char aKey_charcycle[777]; // idb -char aKey_pass[777]; // idb -char aKey_cast[777]; // idb -char aKey_eventtrigg[777]; // idb -char aKey_combat[777]; // idb -char aKey_jump[777]; // idb -char aKey_yell[777]; // idb -char aKey_castready[777]; // idb -char aKey_attack[777]; // idb -char aKey_right[777]; // idb -char aKey_left[777]; // idb -char aKey_backward[777]; // idb -char pKeyName[777]; // idb -char aDefault[777]; // idb -char aControl[777]; // idb -char aBackspace[777]; // idb -char aBackslash[777]; // idb -char aSquote[777]; // idb -char aSlash[777]; // idb -char aPeriod[777]; // idb -char aSemicolon[777]; // idb -char aDecimal[777]; // idb -char aComma[777]; // idb -char aInsert[777]; // idb -char aHome[777]; // idb -char aDelete[777]; // idb -char aEnd[777]; // idb -char aAdd[777]; // idb -char aSubtract[777]; // idb -char aTab[777]; // idb -char aPage_up[777]; // idb -char aPage_down[777]; // idb -char aSpace[777]; // idb -char aReturn[777]; // idb -char aDown[777]; // idb -char aUp[777]; // idb -char asc_4E925C[777]; // idb -char aCouldNotInitia[49]; // weak -char aInvalidDi_keyb[777]; // idb -char aEWorkMsdevM_10[45]; // weak -char aInvalidDi_ke_0[777]; // idb -char aInvalidDi_ke_1[777]; // idb -char aUknownKeyDetec[777]; // idb -char aEffpar03[777]; // idb -char aErrorFailedToB[777]; // idb -char aErrorFailedToG[777]; // idb -char aEWorkMsdevM_11[777]; // idb -char aLightpolyBuild[777]; // idb -char aUndefinedClipF[30]; // weak -char aInvalidLightTy[777]; // idb -char aInvalidLight_0[777]; // idb -char aUknownStripTyp[777]; // idb -char aInvalidLightma[777]; // idb char byte_4E94D0 = 5; // weak char byte_4E94D1 = 9; // weak char _4E94D2_light_type = 6; // weak @@ -1147,369 +829,7 @@ unsigned int saveload_dlg_ys[2] = {60, 0}; unsigned int saveload_dlg_zs[2] = {460, 640}; unsigned int saveload_dlg_ws[2] = {344, 480}; -char aEWorkMsdevM_12[777]; // idb -char a___0[777]; // idb -char aSave03d_mm7[777]; // idb -char Name[777]; // idb -char aAr_dn_dn_0[777]; // idb -char aAr_up_dn_0[777]; // idb -char aLs_saved[777]; // idb -char aLs_loadd[777]; // idb -char aX_d[777]; // idb -char aImage_pcx[777]; // idb -char aHeader_bin[777]; // idb -char aSavesS[777]; // idb -char aX_u[777]; // idb -char aLs_saveu[777]; // idb -char aLs_loadu[777]; // idb -char aSave_up[777]; // idb -char aLoad_up[777]; // idb -char aLoadsave[777]; // idb -char a1_mm7[6]; // weak -char aUnableToFindS[777]; // idb -char aLevelsS[777]; // idb -char aNpcgroup_bin[777]; // idb -char aNpcdata_bin[777]; // idb -char aOverlay_bin[777]; // idb -char aClock_bin[777]; // idb -char aParty_bin[777]; // idb -char ExistingFileName[777]; // idb -char NewFileName[777]; // idb -char aSS_2[777]; // idb -char aSavesSave03d_m[777]; // idb -char aSD02dSDSD[777]; // idb -char aLevellod[777]; // idb -char aLevelsSS[777]; // idb -char a_lod[5]; // weak -char aDataGames_lod[777]; // idb -char Default[777]; // idb -char aCurrent[777]; // idb -char aNewmapsForMmvi[777]; // idb -char aMmvii[777]; // idb -char aOutOfMemoryLoa[777]; // idb -char aAttemptToOpenN[777]; // idb -char aFileSIsNotABlv[777]; // idb -char aD23_blv[777]; // idb -char aEventTrigger[777]; // idb -char aLodapp_tmp[777]; // idb -char aWb[777]; // idb -char aLod_tmp[777]; // idb -char aLodIndex[777]; // idb -char aLod[777]; // idb -char aLodCarray[777]; // idb -char aRb_0[777]; // idb -char aLodio[777]; // idb -char aAttemptToRes_0[777]; // idb -char aLodsub[777]; // idb -char aAttemptToReset[777]; // idb -char aMm6[777]; // idb -char aLodchapterpage[777]; // idb -char aLODFile[777]; // idb -char aChapter[777]; // idb -char aUnableToAppend[777]; // idb -char aIndoorBlvFiles[26]; // weak int dword_4E98BC_bApplicationActive; // weak -char aBlv[777]; // idb -char aMightAndMagico[41]; // weak -char aLevels[7]; // weak -char aLsave640_pcx[13]; // weak -char aTitle_exit[777]; // idb -char aTitle_cred[777]; // idb -char aTitle_load[777]; // idb -char aTitle_new[777]; // idb -char a___1[777]; // idb -char aRanOnce[777]; // idb -char aNoanim[777]; // idb -char aNosound[777]; // idb -char aWindow[777]; // idb -char aUsedefs[777]; // idb -char ClassName[777]; // idb -char aOut02_odm[10]; // weak -char aYouMustBeRunni[777]; // idb -char aDebugFlags[777]; // idb -char aWindowY[777]; // idb -char aWindowX[777]; // idb -char aStartinwindow[777]; // idb -char aD10_blv[777]; // idb -char aD11_blv[777]; // idb -char a1_0[777]; // idb -char aMightAndMagicV[777]; // idb -char aNewWorldComput[777]; // idb -char SubKey[777]; // idb -char aCloseCd[777]; // idb -char aInfoCdUpcWait[777]; // idb -char aOpenCTypeCdaud[777]; // idb -char aXAnimsMagic7_v[20]; // weak -char aAbbrechen[777]; // idb -char aBitteCd2VonMig[777]; // idb -char aBitteCd2Einleg[777]; // idb -char aCancelar[9]; // weak -char aPorFavorInse_0[777]; // idb -char aPorFavorInsert[777]; // idb -char aSupprimer[10]; // weak -char aInssrezMightMa[777]; // idb -char aInssrezLeCd2[777]; // idb -char aAnnulla[8]; // weak -char aInserireIlSe_0[777]; // idb -char aInserireIlSeco[777]; // idb -char aOdwolaj[8]; // weak -char aWlozCdRomNum_0[777]; // idb -char String[777]; // idb -char TemplateName[777]; // idb -char ValueName[777]; // idb -char a2dacceloff[777]; // idb -char aDsounds_bin[777]; // idb -char aDoverlay_bin[777]; // idb -char aDchest_bin[777]; // idb -char aDmonlist_bin[777]; // idb -char aDobjlist_bin[777]; // idb -char aDdeclist_bin[777]; // idb -char aDift_bin[777]; // idb -char aDpft_bin[777]; // idb -char aDtile_bin[777]; // idb -char aDtft_bin[777]; // idb -char aDsft_bin[777]; // idb -char aUnableToOpenSo[777]; // idb -char aDataSounds_def[777]; // idb -char aUnableToOpenOv[777]; // idb -char aDataOverlay_de[777]; // idb -char aUnableToOpenCh[777]; // idb -char aDataChest_def[777]; // idb -char aUnableToOpenPf[777]; // idb -char Args[777]; // idb -char aUnableToOpenTi[777]; // idb -char aDataTile_def[777]; // idb -char aUnableToOpenTf[777]; // idb -char aDataTft_def[777]; // idb -char aUnableToOpenIf[777]; // idb -char aDataIft_txt[777]; // idb -char aUnableToOpenMo[777]; // idb -char aDataMonlist_tx[777]; // idb -char aUnableToOpenOb[777]; // idb -char aDataObjlist_tx[777]; // idb -char aUnableToOpenDe[777]; // idb -char aDataDeclist_tx[777]; // idb -char aUnableToOpenSf[777]; // idb -char aDataSft_txt[777]; // idb -char aDataSprites_lo[777]; // idb -char aDataSpritelo_l[18]; // weak -char aResolution[777]; // idb -char aRegistry[777]; // idb -char aDataBitmaps_lo[777]; // idb -char aDataEvents_lod[777]; // idb -char aSomeFilesAreMi[42]; // weak -char aFilesMissing[14]; // weak -char pFilename[777]; // idb -char AppName[777]; // idb -char KeyName[777]; // idb -char aUnableToAllo_0[31]; // weak -char aUnableToAlloca[31]; // weak -char aMoreRamMemoryR[25]; // weak -char WindowName[777]; // idb -char IconName[777]; // idb -char aMoreHardDriveS[31]; // weak -char aDueToWindowVir[777]; // idb -char PathName[777]; // idb -char aHdwtr03u[777]; // idb -char aHeight[777]; // idb -char aEyelevel[777]; // idb -char aParty[777]; // idb -char aBuilding_sub_0[777]; // idb -char aBuilding_subdi[777]; // idb -char aTerrain_subd_0[777]; // idb -char aTerrain_subdiv[777]; // idb -char aTexmapping[777]; // idb -char aRecmod2[777]; // idb -char aRecmod1[777]; // idb -char aDefault_0[777]; // idb -char aDirt[777]; // idb -char aTextures[777]; // idb -char off_4EA208[777]; // idb -char aPlansky1[777]; // idb -char aDist_mist[777]; // idb -char aDist_shademist[777]; // idb -char aDist_shade[777]; // idb -char aShading[777]; // idb -char aBld_mm3[777]; // idb -char aBld_mm2[777]; // idb -char aBld_mm1[777]; // idb -char aTer_mm3[777]; // idb -char aTer_mm2[777]; // idb -char aTer_mm1[777]; // idb -char aMipmapping[777]; // idb -char aBld_gamma[777]; // idb -char aTer_gamma[777]; // idb -char aGridband3[777]; // idb -char aGridband2[777]; // idb -char aGridband1[777]; // idb -char aNowavywater[777]; // idb -char aRender[777]; // idb -char aNodecorations[777]; // idb -char aNosky[777]; // idb -char aNomist[777]; // idb -char aRgbnightbott_1[777]; // idb -char aRgbnightbott_0[777]; // idb -char aRgbnightbottom[777]; // idb -char aRgbnighttop_b[777]; // idb -char aRgbnighttop_g[777]; // idb -char aRgbnighttop_r[777]; // idb -char aRgbdaybottom_b[777]; // idb -char aRgbdaybottom_g[777]; // idb -char aRgbdaybottom_r[777]; // idb -char aRgbdaytop_b[777]; // idb -char aRgbdaytop_g[777]; // idb -char aRgbdaytop_r[777]; // idb -char aOutdoor[777]; // idb -char aFile[777]; // idb -char aStartmap[777]; // idb -char aWalkspeed[777]; // idb -char aNodecoration[777]; // idb -char aNodamage[777]; // idb -char aShowfr[777]; // idb -char aNomonster[777]; // idb -char aDebug[777]; // idb -char aNologo[777]; // idb -char aNowalksound[777]; // idb -char aNosound_0[777]; // idb -char aNointro[777]; // idb -char aMixerchannels[777]; // idb -char aVy2[777]; // idb -char aVx2[777]; // idb -char aVy1[777]; // idb -char aVx1[777]; // idb -char aScreen[777]; // idb -char aMakeme_pcx[11]; // weak -char aError[777]; // idb -char aFatalException[777]; // idb -char aDirectDrawErro[777]; // idb -char aUnknownDirectd[777]; // idb -char aDderr_devicedo[29]; // weak -char aDderr_videonot[21]; // weak -char aDderr_expired[14]; // weak -char aDderr_moredata[15]; // weak -char aDderr_notpagel[20]; // weak -char aDderr_cantpa_0[21]; // weak -char aDderr_cantpage[19]; // weak -char aDderr_nononloc[23]; // weak -char aDderr_dcalread[23]; // weak -char aDderr_nofocusw[20]; // weak -char aDderr_notloade[16]; // weak -char aDderr_nooptimi[19]; // weak -char aDderr_invali_3[25]; // weak -char aDderr_nomipmap[17]; // weak -char aDderr_unsupp_2[22]; // weak -char aDderr_notpalet[20]; // weak -char aDderr_implicit[24]; // weak -char aDderr_wrongmod[16]; // weak -char aDderr_nodc[11]; // weak -char aDderr_cantcrea[19]; // weak -char aDderr_cantdupl[20]; // weak -char aDderr_notflipp[19]; // weak -char aDderr_exclusiv[30]; // weak -char aDderr_notaover[25]; // weak -char aDderr_invali_2[22]; // weak -char aDderr_noover_0[20]; // weak -char aDderr_overlayn[24]; // weak -char aDderr_noddrops[17]; // weak -char aDderr_noblthw[14]; // weak -char aDderr_bltfastc[22]; // weak -char aDderr_nopale_0[18]; // weak -char aDderr_nopalett[24]; // weak -char aDderr_hwndalre[21]; // weak -char aDderr_hwndsubc[21]; // weak -char aDderr_nohwnd[13]; // weak -char aDderr_noclippe[24]; // weak -char aDderr_clipperi[25]; // weak -char aDderr_regionto[21]; // weak -char aDderr_noemulat[18]; // weak -char aDderr_primarys[34]; // weak -char aDderr_nodire_0[21]; // weak -char aDderr_directdr[31]; // weak -char aDderr_invalidd[28]; // weak -char aDderr_xalign[13]; // weak -char aDderr_wasstill[22]; // weak -char aDderr_vertical[30]; // weak -char aDderr_invalids[20]; // weak -char aDderr_unsupp_1[22]; // weak -char aDderr_unsupp_0[24]; // weak -char aDderr_toobigwi[18]; // weak -char aDderr_toobigsi[17]; // weak -char aDderr_toobighe[19]; // weak -char aDderr_surfacen[25]; // weak -char aDderr_colorkey[21]; // weak -char aDderr_surfac_0[29]; // weak -char aDderr_surfacea[30]; // weak -char aDderr_cantlock[22]; // weak -char aDderr_surfacei[24]; // weak -char aDderr_paletteb[18]; // weak -char aDderr_nozbuffe[18]; // weak -char aDderr_nozoverl[19]; // weak -char aDderr_outofcap[16]; // weak -char aDderr_outofvid[23]; // weak -char aDderr_overla_0[22]; // weak -char aDderr_overlayc[35]; // weak -char aDderr_novsynch[16]; // weak -char aDderr_norotati[19]; // weak -char aDderr_nostretc[18]; // weak -char aDderr_not4bi_0[19]; // weak -char aDderr_not4bitc[24]; // weak -char aDderr_not8bitc[19]; // weak -char aDderr_notextur[18]; // weak -char aDderr_noraster[19]; // weak -char aDderr_nofliphw[15]; // weak -char aDderr_nogdi[12]; // weak -char aDderr_nomirror[17]; // weak -char aDderr_notfound[15]; // weak -char aDderr_nooverla[18]; // weak -char aDderr_overlapp[23]; // weak -char aDderr_noexclus[22]; // weak -char aDderr_noclipli[17]; // weak -char aDderr_nocolorc[20]; // weak -char aDderr_nocooper[28]; // weak -char aDderr_nocolo_0[17]; // weak -char aDderr_nocolork[19]; // weak -char aDderr_nodirect[26]; // weak -char aDderr_noalphah[16]; // weak -char aDderr_invalidm[18]; // weak -char aDderr_invalido[20]; // weak -char aDderr_invali_1[25]; // weak -char aDderr_lockedsu[21]; // weak -char aDderr_no3d[11]; // weak -char aDderr_invali_0[22]; // weak -char aDderr_cannotde[26]; // weak -char aDderr_currentl[24]; // weak -char aDderr_exceptio[16]; // weak -char aDderr_heightal[18]; // weak -char aDderr_incompat[26]; // weak -char aDderr_invalidc[18]; // weak -char aDderr_cannotat[26]; // weak -char aDderr_unsuppor[18]; // weak -char aDderr_generic[14]; // weak -char aDderr_notiniti[21]; // weak -char aDderr_outofmem[18]; // weak -char aDderr_invalidp[20]; // weak -char Str[777]; // idb -char aDirectInputErr[777]; // idb -char aUnknownDirectI[777]; // idb -char aAtLineNumber[777]; // idb -char aInFile[777]; // idb -char aTooManyMobileL[777]; // idb -char aEWorkMsdevM_13[48]; // weak -char aUSS[777]; // idb -char aUS[777]; // idb -char aMicon3[777]; // idb -char aTarget[777]; // idb -char CursorName[777]; // idb -char aWarningInvalid[777]; // idb -char aEWorkMsdevM_14[37]; // weak -char aMicon1_0[777]; // idb -char aCouldNotInit_0[40]; // weak -char aEWorkMsdevM_15[777]; // idb -char aCouldNotLoadAs[777]; // idb -char aDi_mousePointe[777]; // idb -char aDi_mousePoin_0[777]; // idb -char aCouldNotClipCu[777]; // idb -char aDoorErrorDoorI[777]; // idb char *off_4EB080; // idb char *pTransitionStrings[464]; char aAwards_txt[777]; // idb @@ -1768,122 +1088,20 @@ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 60 }; -char aDD[777]; // idb -char off_4EE75C[777]; // idb int dword_4EED78; // weak _UNKNOWN unk_4EED80; // weak int dword_4EFA80; // weak int dword_4EFA84; // weak -char aDataD3dsprite_[777]; // idb -char aDataD3dbitmap_[777]; // idb -char aDetailLevel[777]; // idb -char aD3dDevice[777]; // idb -char aUseD3d[777]; // idb -char aEWorkMsdevM_22[777]; // idb -char aScreen0_2i_pcx[777]; // idb -char aZBuf_[777]; // idb -char aThereArenTAnyD[777]; // idb -char aDirect3dRend_1[777]; // idb -char aDirect3dRend_0[777]; // idb -char aDirect3dRender[777]; // idb -char aD3drendInitFai[777]; // idb -char aThereArenTAn_0[777]; // idb -char aErrorExecuting[777]; // idb -char aEWorkMsdevM_23[777]; // idb -char aHiscreen16Load[777]; // idb void *off_4EFDB0; // weak -char aEWorkMsdevM_24[777]; // idb -char aEffpar02[777]; // idb -char aSp18h1[7]; // weak -char aSpell75[777]; // idb -char aSpell73[777]; // idb -char aSpell71[777]; // idb -char aSpell69[777]; // idb -char aSpell58[777]; // idb -char aSpell55[777]; // idb -char aSpell51[777]; // idb -char aSpell46[777]; // idb -char aSpell38[777]; // idb -char aSpell36[777]; // idb -char aSpell25[777]; // idb -char aSpell17[777]; // idb -char aSpell14[777]; // idb -char aSpell05[777]; // idb -char aSpell03[777]; // idb -char aSpheal3[777]; // idb -char aSpheal2[777]; // idb -char aSpheal1[777]; // idb -char aSpboost3[777]; // idb -char aSpboost2[777]; // idb -char aSpboost1[777]; // idb -char aZapp[777]; // idb -char aSpell84[777]; // idb -char aEWorkMsdevM_25[777]; // idb -char aSpell97c[777]; // idb -char aSpell97[777]; // idb -char aSpell93[777]; // idb -char aSpell92[777]; // idb -char aSpell90[777]; // idb -char aSpell76[777]; // idb -char aSpell70[777]; // idb -char aSpell66[777]; // idb -char aSpell65[777]; // idb -char aSpell62[777]; // idb -char aSpell57c[777]; // idb -char aSpell41[777]; // idb -char aSpell39c[777]; // idb -char aSpell39[777]; // idb -char aSpell29[777]; // idb -char aSpell26[777]; // idb -char aSpell22[777]; // idb -char aSpell18[777]; // idb -char aSpell09[777]; // idb -char aSpell02[777]; // idb -char aSpell01[777]; // idb -char aSp57c[777]; // idb -char aInvalidMovieRe[777]; // idb -char aEnd_seq1[9]; // weak -char aLosegame[9]; // weak -char aIntroPost[11]; // weak -char aIntro[6]; // weak -char aJvc[4]; // weak -char aNewWorldLogo[15]; // weak -char a3dologo[8]; // weak -char aNoMovie[777]; // idb -char aEWorkMsdevM_26[777]; // idb -char aCanTLoadSoundF[777]; // idb -char aEWorkMsdevM_27[777]; // idb -char aSoundSIsSizeIB[777]; // idb -char aUnableToSave_2[777]; // idb -char aDataDsounds_bi[777]; // idb -char aSndDes_[777]; // idb -char a3d[777]; // idb -char aLock[777]; // idb -char aSwap[777]; // idb -char aSystem[777]; // idb -char aSoundlistcla_0[777]; // idb -char aSoundlistclass[777]; // idb -char aSoundFileError[777]; // idb -char aCanTOpenFileS[777]; // idb -char aSoundsAudio_sn[777]; // idb -char aDisable3dsound[777]; // idb -char aEaxEnvironment[26]; // weak -char a3dsoundprovide[777]; // idb -char aNone[777]; // idb -char aEmulated[777]; // idb -char aDevice[777]; // idb -char aSplashscreen[777]; // idb -char aSplashaudio[777]; // idb -char aSoftwareAureal[777]; // idb -char aEaxDamping[12]; // weak -char aEaxEffectVolum[18]; // weak -char aMaximumSupport[26]; // weak int dword_4F031C[777]; // weak -char aSprites08[777]; // idb -char aHardsprites[777]; // idb -char aTooManyStation[777]; // idb -char aEWorkMsdevM_28[52]; // weak -char *off_4F03B8; // idb +const char *off_4F03B8[] = +{ + "", "WEPNTABL", "ARMORY", "MAGSHELF", + "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF", + "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF", + "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF", + "MAGSHELF" +}; __int16 word_4F03FE[777]; // weak __int16 word_4F0400[777]; // weak __int16 word_4F0498[777]; // weak
--- a/mm7_data.h Tue Nov 06 10:06:45 2012 +0600 +++ b/mm7_data.h Tue Nov 06 10:07:35 2012 +0600 @@ -797,324 +797,6 @@ #include "Texture.h" extern stru355 stru_4E82A4;// = {0x20, 0x41, 0, 0x20, 0xFF0000, 0xFF00, 0xFF, 0xFF000000}; extern stru355 stru_4EFCBC;// = {0x20, 0x41, 0, 0x10, 0x7C00, 0x3E0, 0x1F, 0x8000}; -extern char aGlobal_txt[]; // idb -extern char aMagic[]; // idb -extern char aDark_0[]; // idb -extern char aLight_1[]; // idb -extern char aBody_0[]; // idb -extern char aMind_1[]; // idb -extern char aSpirit_1[]; // idb -extern char aEarth_0[]; // idb -extern char aWater_0[]; // idb -extern char aFire_1[]; // idb -extern char aSpells_txt[]; // idb -extern char aParsingError[]; // idb -extern char aErrorParsingPo[]; // idb -extern char Text[]; // idb -extern char Caption[]; // idb -extern char asc_4E8530[]; // idb -extern char a222[]; // idb -extern char asc_4E8538[]; // idb -extern char aPotion_txt[]; // idb -extern char aErrorParsing_0[]; // idb -extern char aPotnotes_txt[]; // idb -extern char aHistory_txt[]; // idb -extern char aPsychotic[]; // idb -extern char aDizzy[]; // idb -extern char aDrugged[]; // idb -extern char aUnderwater[]; // idb -extern char aSewerpipe[]; // idb -extern char aParkinglot[]; // idb -extern char aPlain[]; // idb -extern char aQuarry[]; // idb -extern char aMountains[]; // idb -extern char aCity[]; // idb -extern char aForest[]; // idb -extern char aAlley[]; // idb -extern char aStonecorridor[]; // idb -extern char aHallway[]; // idb -extern char aCarpetedhallwa[]; // idb -extern char aHangar[]; // idb -extern char aArena[]; // idb -extern char aCave[]; // idb -extern char aConcerthall[]; // idb -extern char aAuditorium[]; // idb -extern char aStoneroom[]; // idb -extern char aLivingroom[]; // idb -extern char aBathroom[]; // idb -extern char aRoom[]; // idb -extern char aPaddedcell[]; // idb -extern char aGeneric[]; // idb -extern char aMapstats_txt[]; // idb -extern char aHostile_txt[]; // idb -extern char aEWorkMsdevMm_9[]; // idb -extern char aUnknownMonster[]; // idb -extern char aHammerhands[]; // idb -extern char aPsychic[]; // idb -extern char aBlades[]; // idb -extern char aMind[]; // idb -extern char aHarm[]; // idb -extern char aFate[]; // idb -extern char aSummon[]; // idb -extern char aReanimate[]; // idb -extern char aDragon[]; // idb -extern char aBless[]; // idb -extern char aAcid[]; // idb -extern char off_4E876C[]; // idb -extern char aMass[]; // idb -extern char aRock[]; // idb -extern char aFire[]; // idb -extern char aIncinerate[]; // idb -extern char aFireball[]; // idb -extern char aParalyze[]; // idb -extern char aShrapmetal[]; // idb -extern char aToxic[]; // idb -extern char aLight[]; // idb -extern char aSparks[]; // idb -extern char aPain[]; // idb -extern char aHeroism[]; // idb -extern char aHaste[]; // idb -extern char aStone[]; // idb -extern char aImplosion[]; // idb -extern char aLightning[]; // idb -extern char aMeteor[]; // idb -extern char aPower[]; // idb -extern char aSpirit[]; // idb -extern char aShield[]; // idb -extern char aHour[]; // idb -extern char aDay[]; // idb -extern char aDispel[]; // idb -extern char aEner[]; // idb -extern char aDark[]; // idb -extern char aLight_0[]; // idb -extern char aBody[]; // idb -extern char aMind_0[]; // idb -extern char aSpirit_0[]; // idb -extern char aEarth[]; // idb -extern char aWater[]; // idb -extern char off_4E887C[]; // idb -extern char aFire_0[]; // idb -extern char aArrowf[]; // idb -extern char aArrow[]; // idb -extern char aPlacemon_txt[]; // idb -extern char aExplode[]; // idb -extern char aGround[]; // idb -extern char aCanTCreateRa_0[]; // idb -extern char asc_4E88E8[]; // idb -extern char aSummon_0[]; // idb -extern char aShot[]; // idb -extern char aG[]; // idb -extern char aM[]; // idb -extern char aE_0[2]; // weak -extern char aDrainsp[]; // idb -extern char off_4E8910[]; // idb -extern char aSteal[]; // idb -extern char aBrkweapon[]; // idb -extern char aBrkarmor[]; // idb -extern char aBrkitem[]; // idb -extern char aErrad[]; // idb -extern char aStone_0[]; // idb -extern char aDead[]; // idb -extern char aUncon[]; // idb -extern char aParalyze_0[]; // idb -extern char aDisease3[]; // idb -extern char aDisease2[]; // idb -extern char aDisease1[]; // idb -extern char aPoison3[]; // idb -extern char aPoison2[]; // idb -extern char aPoison1[]; // idb -extern char aInsane[]; // idb -extern char aDrunk[]; // idb -extern char aAfraid[]; // idb -extern char aAsleep[]; // idb -extern char SubStr[]; // idb -extern char aCurse[6]; // weak -extern char aN[]; // idb -extern char aGem[]; // idb -extern char aScroll[]; // idb -extern char aWand[]; // idb -extern char aAmulet[]; // idb -extern char aRing[]; // idb -extern char aBoots[]; // idb -extern char aGauntlets[]; // idb -extern char aCape[]; // idb -extern char aBelt[]; // idb -extern char aHelm[]; // idb -extern char aShield_0[]; // idb -extern char aPlate[]; // idb -extern char aChain[]; // idb -extern char aStaff[]; // idb -extern char aClub[]; // idb -extern char aMace[]; // idb -extern char aBow[]; // idb -extern char aSpear[]; // idb -extern char aAxe[]; // idb -extern char aDagger[]; // idb -extern char aSword[]; // idb -extern char aMisc[]; // idb -extern char aArmor[]; // idb -extern char aWeapon[]; // idb -extern char aMonsters_txt[]; // idb -extern char aNewitemgen[]; // idb -extern char aClass_txt[]; // idb -extern char aStats_txt[]; // idb -extern char aSkilldes_txt[]; // idb -extern char aRnditems_txt[]; // idb -extern char aSpecial[]; // idb -extern char aRelic[]; // idb -extern char aArtifact[]; // idb -extern char aClub_0[]; // idb -extern char aPlate_0[]; // idb -extern char aChain_0[]; // idb -extern char aLeather_0[]; // idb -extern char aBlaster[]; // idb -extern char aMace_0[]; // idb -extern char aSpear_0[]; // idb -extern char aAxe_0[]; // idb -extern char aDagger_0[]; // idb -extern char aSword_0[]; // idb -extern char aStaff_0[]; // idb -extern char aGem_0[]; // idb -extern char aGold[]; // idb -extern char aMscroll[]; // idb -extern char aSscroll[]; // idb -extern char aBottle[]; // idb -extern char aReagent[]; // idb -extern char aHerb[]; // idb -extern char aWeaponw[]; // idb -extern char aAmulet_0[]; // idb -extern char aRing_0[]; // idb -extern char aBoots_0[]; // idb -extern char aGauntlets_0[]; // idb -extern char aCloak[]; // idb -extern char aBelt_0[]; // idb -extern char aHelm_0[]; // idb -extern char aShield_1[]; // idb -extern char aArmor_0[]; // idb -extern char aBow_0[]; // idb -extern char aMissile[]; // idb -extern char aWeapon1or2[]; // idb -extern char aWeapon2[]; // idb -extern char aWeapon_0[]; // idb -extern char aItems_txt[]; // idb -extern char aSpcitems_txt[]; // idb -extern char aStditems_txt[]; // idb -extern char aUnableToSaveDd[]; // idb -extern char aDataDdeclist_b[]; // idb -extern char aDecDescrip[]; // idb -extern char aDusk[]; // idb -extern char aDawn[]; // idb -extern char aEmitfire[]; // idb -extern char aLoopslow[]; // idb -extern char aMarker[]; // idb -extern char aFf[]; // idb -extern char aFm[3]; // idb -extern char aFs[3]; // idb -extern char aInvisible[]; // idb -extern char off_4E8CB8[]; // idb -extern char aDecorationde_0[]; // idb -extern char aDecorationdesc[]; // idb -extern char aUnableToSaveDc[]; // idb -extern char aDataDchest_bin[]; // idb -extern char aChestDescrip[]; // idb -extern char aChestdescrip_0[]; // idb -extern char aChestdescripti[]; // idb -extern char aUnableToSave_0[]; // idb -extern char aDataDoverlay_b[]; // idb -extern char aOvlDes_[]; // idb -extern char aTransparent[]; // idb -extern char aCenter[7]; // weak -extern char aOverlaydescrip[]; // idb -extern char aObjectdescript[]; // idb -extern char aUnableToSaveDo[]; // idb -extern char aDataDobjlist_b[]; // idb -extern char aObjDescrip[]; // idb -extern char aLines[]; // idb -extern char aBounce[]; // idb -extern char aFlagonintercep[]; // idb -extern char aNogravity[]; // idb -extern char aNopickup[]; // idb -extern char aFtlifetime[]; // idb -extern char aLifetime[]; // idb -extern char aNodraw[]; // idb -extern char aObjectdescri_0[]; // idb -extern char aBits[]; // idb -extern char aUnableToSaveDm[]; // idb -extern char aDataDmonlist_b[]; // idb -extern char aMonRace[]; // idb -extern char aMonsterracel_0[]; // idb -extern char aMonsterracelis[]; // idb -extern char a__10[]; // idb -extern char aKey_stepright[]; // idb -extern char aKey_stepleft[]; // idb -extern char aKey_alwaysrun[]; // idb -extern char aKey_land[]; // idb -extern char aKey_flydown[]; // idb -extern char aKey_flyup[]; // idb -extern char aKey_zoomout[]; // idb -extern char aKey_zoomin[]; // idb -extern char aKey_centerview[]; // idb -extern char aKey_lookdown[]; // idb -extern char aKey_lookup[]; // idb -extern char aKey_mapbook[]; // idb -extern char aKey_autonotes[]; // idb -extern char aKey_timecal[]; // idb -extern char aKey_rest[]; // idb -extern char aKey_quickref[]; // idb -extern char aKey_quest[]; // idb -extern char aKey_charcycle[]; // idb -extern char aKey_pass[]; // idb -extern char aKey_cast[]; // idb -extern char aKey_eventtrigg[]; // idb -extern char aKey_combat[]; // idb -extern char aKey_jump[]; // idb -extern char aKey_yell[]; // idb -extern char aKey_castready[]; // idb -extern char aKey_attack[]; // idb -extern char aKey_right[]; // idb -extern char aKey_left[]; // idb -extern char aKey_backward[]; // idb -extern char pKeyName[]; // idb -extern char aDefault[]; // idb -extern char aControl[]; // idb -extern char aBackspace[]; // idb -extern char aBackslash[]; // idb -extern char aSquote[]; // idb -extern char aSlash[]; // idb -extern char aPeriod[]; // idb -extern char aSemicolon[]; // idb -extern char aDecimal[]; // idb -extern char aComma[]; // idb -extern char aInsert[]; // idb -extern char aHome[]; // idb -extern char aDelete[]; // idb -extern char aEnd[]; // idb -extern char aAdd[]; // idb -extern char aSubtract[]; // idb -extern char aTab[]; // idb -extern char aPage_up[]; // idb -extern char aPage_down[]; // idb -extern char aSpace[]; // idb -extern char aReturn[]; // idb -extern char aDown[]; // idb -extern char aUp[]; // idb -extern char asc_4E925C[]; // idb -extern char aCouldNotInitia[49]; // weak -extern char aInvalidDi_keyb[]; // idb -extern char aEWorkMsdevM_10[45]; // weak -extern char aInvalidDi_ke_0[]; // idb -extern char aInvalidDi_ke_1[]; // idb -extern char aUknownKeyDetec[]; // idb -extern char aEffpar03[]; // idb -extern char aErrorFailedToB[]; // idb -extern char aErrorFailedToG[]; // idb -extern char aEWorkMsdevM_11[]; // idb -extern char aLightpolyBuild[]; // idb -extern char aUndefinedClipF[30]; // weak -extern char aInvalidLightTy[]; // idb -extern char aInvalidLight_0[]; // idb -extern char aUknownStripTyp[]; // idb -extern char aInvalidLightma[]; // idb extern char byte_4E94D0; // weak extern char _4E94D2_light_type; // weak extern char byte_4E94D3; // weak @@ -1122,369 +804,7 @@ extern unsigned int saveload_dlg_ys[2]; extern unsigned int saveload_dlg_zs[2]; extern unsigned int saveload_dlg_ws[2]; -extern char aEWorkMsdevM_12[]; // idb -extern char a___0[]; // idb -extern char aSave03d_mm7[]; // idb -extern char Name[]; // idb -extern char aAr_dn_dn_0[]; // idb -extern char aAr_up_dn_0[]; // idb -extern char aLs_saved[]; // idb -extern char aLs_loadd[]; // idb -extern char aX_d[]; // idb -extern char aImage_pcx[]; // idb -extern char aHeader_bin[]; // idb -extern char aSavesS[]; // idb -extern char aX_u[]; // idb -extern char aLs_saveu[]; // idb -extern char aLs_loadu[]; // idb -extern char aSave_up[]; // idb -extern char aLoad_up[]; // idb -extern char aLoadsave[]; // idb -extern char a1_mm7[6]; // weak -extern char aUnableToFindS[]; // idb -extern char aLevelsS[]; // idb -extern char aNpcgroup_bin[]; // idb -extern char aNpcdata_bin[]; // idb -extern char aOverlay_bin[]; // idb -extern char aClock_bin[]; // idb -extern char aParty_bin[]; // idb -extern char ExistingFileName[]; // idb -extern char NewFileName[]; // idb -extern char aSS_2[]; // idb -extern char aSavesSave03d_m[]; // idb -extern char aSD02dSDSD[]; // idb -extern char aLevellod[]; // idb -extern char aLevelsSS[]; // idb -extern char a_lod[5]; // weak -extern char aDataGames_lod[]; // idb -extern char Default[]; // idb -extern char aCurrent[]; // idb -extern char aNewmapsForMmvi[]; // idb -extern char aMmvii[]; // idb -extern char aOutOfMemoryLoa[]; // idb -extern char aAttemptToOpenN[]; // idb -extern char aFileSIsNotABlv[]; // idb -extern char aD23_blv[]; // idb -extern char aEventTrigger[]; // idb -extern char aLodapp_tmp[]; // idb -extern char aWb[]; // idb -extern char aLod_tmp[]; // idb -extern char aLodIndex[]; // idb -extern char aLod[]; // idb -extern char aLodCarray[]; // idb -extern char aRb_0[]; // idb -extern char aLodio[]; // idb -extern char aAttemptToRes_0[]; // idb -extern char aLodsub[]; // idb -extern char aAttemptToReset[]; // idb -extern char aMm6[]; // idb -extern char aLodchapterpage[]; // idb -extern char aLODFile[]; // idb -extern char aChapter[]; // idb -extern char aUnableToAppend[]; // idb -extern char aIndoorBlvFiles[26]; // weak extern int dword_4E98BC_bApplicationActive; // weak -extern char aBlv[]; // idb -extern char aMightAndMagico[41]; // weak -extern char aLevels[7]; // weak -extern char aLsave640_pcx[13]; // weak -extern char aTitle_exit[]; // idb -extern char aTitle_cred[]; // idb -extern char aTitle_load[]; // idb -extern char aTitle_new[]; // idb -extern char a___1[]; // idb -extern char aRanOnce[]; // idb -extern char aNoanim[]; // idb -extern char aNosound[]; // idb -extern char aWindow[]; // idb -extern char aUsedefs[]; // idb -extern char ClassName[]; // idb -extern char aOut02_odm[10]; // weak -extern char aYouMustBeRunni[]; // idb -extern char aDebugFlags[]; // idb -extern char aWindowY[]; // idb -extern char aWindowX[]; // idb -extern char aStartinwindow[]; // idb -extern char aD10_blv[]; // idb -extern char aD11_blv[]; // idb -extern char a1_0[]; // idb -extern char aMightAndMagicV[]; // idb -extern char aNewWorldComput[]; // idb -extern char SubKey[]; // idb -extern char aCloseCd[]; // idb -extern char aInfoCdUpcWait[]; // idb -extern char aOpenCTypeCdaud[]; // idb -extern char aXAnimsMagic7_v[20]; // weak -extern char aAbbrechen[]; // idb -extern char aBitteCd2VonMig[]; // idb -extern char aBitteCd2Einleg[]; // idb -extern char aCancelar[9]; // weak -extern char aPorFavorInse_0[]; // idb -extern char aPorFavorInsert[]; // idb -extern char aSupprimer[10]; // weak -extern char aInssrezMightMa[]; // idb -extern char aInssrezLeCd2[]; // idb -extern char aAnnulla[8]; // weak -extern char aInserireIlSe_0[]; // idb -extern char aInserireIlSeco[]; // idb -extern char aOdwolaj[8]; // weak -extern char aWlozCdRomNum_0[]; // idb -extern char String[]; // idb -extern char TemplateName[]; // idb -extern char ValueName[]; // idb -extern char a2dacceloff[]; // idb -extern char aDsounds_bin[]; // idb -extern char aDoverlay_bin[]; // idb -extern char aDchest_bin[]; // idb -extern char aDmonlist_bin[]; // idb -extern char aDobjlist_bin[]; // idb -extern char aDdeclist_bin[]; // idb -extern char aDift_bin[]; // idb -extern char aDpft_bin[]; // idb -extern char aDtile_bin[]; // idb -extern char aDtft_bin[]; // idb -extern char aDsft_bin[]; // idb -extern char aUnableToOpenSo[]; // idb -extern char aDataSounds_def[]; // idb -extern char aUnableToOpenOv[]; // idb -extern char aDataOverlay_de[]; // idb -extern char aUnableToOpenCh[]; // idb -extern char aDataChest_def[]; // idb -extern char aUnableToOpenPf[]; // idb -extern char Args[]; // idb -extern char aUnableToOpenTi[]; // idb -extern char aDataTile_def[]; // idb -extern char aUnableToOpenTf[]; // idb -extern char aDataTft_def[]; // idb -extern char aUnableToOpenIf[]; // idb -extern char aDataIft_txt[]; // idb -extern char aUnableToOpenMo[]; // idb -extern char aDataMonlist_tx[]; // idb -extern char aUnableToOpenOb[]; // idb -extern char aDataObjlist_tx[]; // idb -extern char aUnableToOpenDe[]; // idb -extern char aDataDeclist_tx[]; // idb -extern char aUnableToOpenSf[]; // idb -extern char aDataSft_txt[]; // idb -extern char aDataSprites_lo[]; // idb -extern char aDataSpritelo_l[18]; // weak -extern char aResolution[]; // idb -extern char aRegistry[]; // idb -extern char aDataBitmaps_lo[]; // idb -extern char aDataEvents_lod[]; // idb -extern char aSomeFilesAreMi[42]; // weak -extern char aFilesMissing[14]; // weak -extern char pFilename[]; // idb -extern char AppName[]; // idb -extern char KeyName[]; // idb -extern char aUnableToAllo_0[31]; // weak -extern char aUnableToAlloca[31]; // weak -extern char aMoreRamMemoryR[25]; // weak -extern char WindowName[]; // idb -extern char IconName[]; // idb -extern char aMoreHardDriveS[31]; // weak -extern char aDueToWindowVir[]; // idb -extern char PathName[]; // idb -extern char aHdwtr03u[]; // idb -extern char aHeight[]; // idb -extern char aEyelevel[]; // idb -extern char aParty[]; // idb -extern char aBuilding_sub_0[]; // idb -extern char aBuilding_subdi[]; // idb -extern char aTerrain_subd_0[]; // idb -extern char aTerrain_subdiv[]; // idb -extern char aTexmapping[]; // idb -extern char aRecmod2[]; // idb -extern char aRecmod1[]; // idb -extern char aDefault_0[]; // idb -extern char aDirt[]; // idb -extern char aTextures[]; // idb -extern char off_4EA208[]; // idb -extern char aPlansky1[]; // idb -extern char aDist_mist[]; // idb -extern char aDist_shademist[]; // idb -extern char aDist_shade[]; // idb -extern char aShading[]; // idb -extern char aBld_mm3[]; // idb -extern char aBld_mm2[]; // idb -extern char aBld_mm1[]; // idb -extern char aTer_mm3[]; // idb -extern char aTer_mm2[]; // idb -extern char aTer_mm1[]; // idb -extern char aMipmapping[]; // idb -extern char aBld_gamma[]; // idb -extern char aTer_gamma[]; // idb -extern char aGridband3[]; // idb -extern char aGridband2[]; // idb -extern char aGridband1[]; // idb -extern char aNowavywater[]; // idb -extern char aRender[]; // idb -extern char aNodecorations[]; // idb -extern char aNosky[]; // idb -extern char aNomist[]; // idb -extern char aRgbnightbott_1[]; // idb -extern char aRgbnightbott_0[]; // idb -extern char aRgbnightbottom[]; // idb -extern char aRgbnighttop_b[]; // idb -extern char aRgbnighttop_g[]; // idb -extern char aRgbnighttop_r[]; // idb -extern char aRgbdaybottom_b[]; // idb -extern char aRgbdaybottom_g[]; // idb -extern char aRgbdaybottom_r[]; // idb -extern char aRgbdaytop_b[]; // idb -extern char aRgbdaytop_g[]; // idb -extern char aRgbdaytop_r[]; // idb -extern char aOutdoor[]; // idb -extern char aFile[]; // idb -extern char aStartmap[]; // idb -extern char aWalkspeed[]; // idb -extern char aNodecoration[]; // idb -extern char aNodamage[]; // idb -extern char aShowfr[]; // idb -extern char aNomonster[]; // idb -extern char aDebug[]; // idb -extern char aNologo[]; // idb -extern char aNowalksound[]; // idb -extern char aNosound_0[]; // idb -extern char aNointro[]; // idb -extern char aMixerchannels[]; // idb -extern char aVy2[]; // idb -extern char aVx2[]; // idb -extern char aVy1[]; // idb -extern char aVx1[]; // idb -extern char aScreen[]; // idb -extern char aMakeme_pcx[11]; // weak -extern char aError[]; // idb -extern char aFatalException[]; // idb -extern char aDirectDrawErro[]; // idb -extern char aUnknownDirectd[]; // idb -extern char aDderr_devicedo[29]; // weak -extern char aDderr_videonot[21]; // weak -extern char aDderr_expired[14]; // weak -extern char aDderr_moredata[15]; // weak -extern char aDderr_notpagel[20]; // weak -extern char aDderr_cantpa_0[21]; // weak -extern char aDderr_cantpage[19]; // weak -extern char aDderr_nononloc[23]; // weak -extern char aDderr_dcalread[23]; // weak -extern char aDderr_nofocusw[20]; // weak -extern char aDderr_notloade[16]; // weak -extern char aDderr_nooptimi[19]; // weak -extern char aDderr_invali_3[25]; // weak -extern char aDderr_nomipmap[17]; // weak -extern char aDderr_unsupp_2[22]; // weak -extern char aDderr_notpalet[20]; // weak -extern char aDderr_implicit[24]; // weak -extern char aDderr_wrongmod[16]; // weak -extern char aDderr_nodc[11]; // weak -extern char aDderr_cantcrea[19]; // weak -extern char aDderr_cantdupl[20]; // weak -extern char aDderr_notflipp[19]; // weak -extern char aDderr_exclusiv[30]; // weak -extern char aDderr_notaover[25]; // weak -extern char aDderr_invali_2[22]; // weak -extern char aDderr_noover_0[20]; // weak -extern char aDderr_overlayn[24]; // weak -extern char aDderr_noddrops[17]; // weak -extern char aDderr_noblthw[14]; // weak -extern char aDderr_bltfastc[22]; // weak -extern char aDderr_nopale_0[18]; // weak -extern char aDderr_nopalett[24]; // weak -extern char aDderr_hwndalre[21]; // weak -extern char aDderr_hwndsubc[21]; // weak -extern char aDderr_nohwnd[13]; // weak -extern char aDderr_noclippe[24]; // weak -extern char aDderr_clipperi[25]; // weak -extern char aDderr_regionto[21]; // weak -extern char aDderr_noemulat[18]; // weak -extern char aDderr_primarys[34]; // weak -extern char aDderr_nodire_0[21]; // weak -extern char aDderr_directdr[31]; // weak -extern char aDderr_invalidd[28]; // weak -extern char aDderr_xalign[13]; // weak -extern char aDderr_wasstill[22]; // weak -extern char aDderr_vertical[30]; // weak -extern char aDderr_invalids[20]; // weak -extern char aDderr_unsupp_1[22]; // weak -extern char aDderr_unsupp_0[24]; // weak -extern char aDderr_toobigwi[18]; // weak -extern char aDderr_toobigsi[17]; // weak -extern char aDderr_toobighe[19]; // weak -extern char aDderr_surfacen[25]; // weak -extern char aDderr_colorkey[21]; // weak -extern char aDderr_surfac_0[29]; // weak -extern char aDderr_surfacea[30]; // weak -extern char aDderr_cantlock[22]; // weak -extern char aDderr_surfacei[24]; // weak -extern char aDderr_paletteb[18]; // weak -extern char aDderr_nozbuffe[18]; // weak -extern char aDderr_nozoverl[19]; // weak -extern char aDderr_outofcap[16]; // weak -extern char aDderr_outofvid[23]; // weak -extern char aDderr_overla_0[22]; // weak -extern char aDderr_overlayc[35]; // weak -extern char aDderr_novsynch[16]; // weak -extern char aDderr_norotati[19]; // weak -extern char aDderr_nostretc[18]; // weak -extern char aDderr_not4bi_0[19]; // weak -extern char aDderr_not4bitc[24]; // weak -extern char aDderr_not8bitc[19]; // weak -extern char aDderr_notextur[18]; // weak -extern char aDderr_noraster[19]; // weak -extern char aDderr_nofliphw[15]; // weak -extern char aDderr_nogdi[12]; // weak -extern char aDderr_nomirror[17]; // weak -extern char aDderr_notfound[15]; // weak -extern char aDderr_nooverla[18]; // weak -extern char aDderr_overlapp[23]; // weak -extern char aDderr_noexclus[22]; // weak -extern char aDderr_noclipli[17]; // weak -extern char aDderr_nocolorc[20]; // weak -extern char aDderr_nocooper[28]; // weak -extern char aDderr_nocolo_0[17]; // weak -extern char aDderr_nocolork[19]; // weak -extern char aDderr_nodirect[26]; // weak -extern char aDderr_noalphah[16]; // weak -extern char aDderr_invalidm[18]; // weak -extern char aDderr_invalido[20]; // weak -extern char aDderr_invali_1[25]; // weak -extern char aDderr_lockedsu[21]; // weak -extern char aDderr_no3d[11]; // weak -extern char aDderr_invali_0[22]; // weak -extern char aDderr_cannotde[26]; // weak -extern char aDderr_currentl[24]; // weak -extern char aDderr_exceptio[16]; // weak -extern char aDderr_heightal[18]; // weak -extern char aDderr_incompat[26]; // weak -extern char aDderr_invalidc[18]; // weak -extern char aDderr_cannotat[26]; // weak -extern char aDderr_unsuppor[18]; // weak -extern char aDderr_generic[14]; // weak -extern char aDderr_notiniti[21]; // weak -extern char aDderr_outofmem[18]; // weak -extern char aDderr_invalidp[20]; // weak -extern char Str[]; // idb -extern char aDirectInputErr[]; // idb -extern char aUnknownDirectI[]; // idb -extern char aAtLineNumber[]; // idb -extern char aInFile[]; // idb -extern char aTooManyMobileL[]; // idb -extern char aEWorkMsdevM_13[48]; // weak -extern char aUSS[]; // idb -extern char aUS[]; // idb -extern char aMicon3[]; // idb -extern char aTarget[]; // idb -extern char CursorName[]; // idb -extern char aWarningInvalid[]; // idb -extern char aEWorkMsdevM_14[37]; // weak -extern char aMicon1_0[]; // idb -extern char aCouldNotInit_0[40]; // weak -extern char aEWorkMsdevM_15[]; // idb -extern char aCouldNotLoadAs[]; // idb -extern char aDi_mousePointe[]; // idb -extern char aDi_mousePoin_0[]; // idb -extern char aCouldNotClipCu[]; // idb -extern char aDoorErrorDoorI[]; // idb extern char *off_4EB080; // idb extern char *pTransitionStrings[464]; extern char aAwards_txt[]; // idb @@ -1675,122 +995,13 @@ extern _UNKNOWN unk_4EE084; // weak extern __int16 word_4EE088_sound_ids[]; // weak extern short word_4EE150[]; -extern char aDD[]; // idb -extern char off_4EE75C[]; // idb extern int dword_4EED78; // weak extern _UNKNOWN unk_4EED80; // weak extern int dword_4EFA80; // weak extern int dword_4EFA84; // weak -extern char aDataD3dsprite_[]; // idb -extern char aDataD3dbitmap_[]; // idb -extern char aDetailLevel[]; // idb -extern char aD3dDevice[]; // idb -extern char aUseD3d[]; // idb -extern char aEWorkMsdevM_22[]; // idb -extern char aScreen0_2i_pcx[]; // idb -extern char aZBuf_[]; // idb -extern char aThereArenTAnyD[]; // idb -extern char aDirect3dRend_1[]; // idb -extern char aDirect3dRend_0[]; // idb -extern char aDirect3dRender[]; // idb -extern char aD3drendInitFai[]; // idb -extern char aThereArenTAn_0[]; // idb -extern char aErrorExecuting[]; // idb -extern char aEWorkMsdevM_23[]; // idb -extern char aHiscreen16Load[]; // idb extern void *off_4EFDB0; // weak -extern char aEWorkMsdevM_24[]; // idb -extern char aEffpar02[]; // idb -extern char aSp18h1[7]; // weak -extern char aSpell75[]; // idb -extern char aSpell73[]; // idb -extern char aSpell71[]; // idb -extern char aSpell69[]; // idb -extern char aSpell58[]; // idb -extern char aSpell55[]; // idb -extern char aSpell51[]; // idb -extern char aSpell46[]; // idb -extern char aSpell38[]; // idb -extern char aSpell36[]; // idb -extern char aSpell25[]; // idb -extern char aSpell17[]; // idb -extern char aSpell14[]; // idb -extern char aSpell05[]; // idb -extern char aSpell03[]; // idb -extern char aSpheal3[]; // idb -extern char aSpheal2[]; // idb -extern char aSpheal1[]; // idb -extern char aSpboost3[]; // idb -extern char aSpboost2[]; // idb -extern char aSpboost1[]; // idb -extern char aZapp[]; // idb -extern char aSpell84[]; // idb -extern char aEWorkMsdevM_25[]; // idb -extern char aSpell97c[]; // idb -extern char aSpell97[]; // idb -extern char aSpell93[]; // idb -extern char aSpell92[]; // idb -extern char aSpell90[]; // idb -extern char aSpell76[]; // idb -extern char aSpell70[]; // idb -extern char aSpell66[]; // idb -extern char aSpell65[]; // idb -extern char aSpell62[]; // idb -extern char aSpell57c[]; // idb -extern char aSpell41[]; // idb -extern char aSpell39c[]; // idb -extern char aSpell39[]; // idb -extern char aSpell29[]; // idb -extern char aSpell26[]; // idb -extern char aSpell22[]; // idb -extern char aSpell18[]; // idb -extern char aSpell09[]; // idb -extern char aSpell02[]; // idb -extern char aSpell01[]; // idb -extern char aSp57c[]; // idb -extern char aInvalidMovieRe[]; // idb -extern char aEnd_seq1[9]; // weak -extern char aLosegame[9]; // weak -extern char aIntroPost[11]; // weak -extern char aIntro[6]; // weak -extern char aJvc[4]; // weak -extern char aNewWorldLogo[15]; // weak -extern char a3dologo[8]; // weak -extern char aNoMovie[]; // idb -extern char aEWorkMsdevM_26[]; // idb -extern char aCanTLoadSoundF[]; // idb -extern char aEWorkMsdevM_27[]; // idb -extern char aSoundSIsSizeIB[]; // idb -extern char aUnableToSave_2[]; // idb -extern char aDataDsounds_bi[]; // idb -extern char aSndDes_[]; // idb -extern char a3d[]; // idb -extern char aLock[]; // idb -extern char aSwap[]; // idb -extern char aSystem[]; // idb -extern char aSoundlistcla_0[]; // idb -extern char aSoundlistclass[]; // idb -extern char aSoundFileError[]; // idb -extern char aCanTOpenFileS[]; // idb -extern char aSoundsAudio_sn[]; // idb -extern char aDisable3dsound[]; // idb -extern char aEaxEnvironment[26]; // weak -extern char a3dsoundprovide[]; // idb -extern char aNone[]; // idb -extern char aEmulated[]; // idb -extern char aDevice[]; // idb -extern char aSplashscreen[]; // idb -extern char aSplashaudio[]; // idb -extern char aSoftwareAureal[]; // idb -extern char aEaxDamping[12]; // weak -extern char aEaxEffectVolum[18]; // weak -extern char aMaximumSupport[26]; // weak extern int dword_4F031C[]; // weak -extern char aSprites08[]; // idb -extern char aHardsprites[]; // idb -extern char aTooManyStation[]; // idb -extern char aEWorkMsdevM_28[52]; // weak -extern char *off_4F03B8; // idb +extern const char *off_4F03B8[]; // idb extern __int16 word_4F03FE[]; // weak extern __int16 word_4F0400[]; // weak extern __int16 word_4F0498[]; // weak @@ -2536,8 +1747,8 @@ bool __fastcall sub_4075DB(int a1, int a2, int a3, struct BLVFace *a4); bool __fastcall sub_4077F1(int a1, int a2, int a3, struct ODMFace *a4, struct BSPVertexBuffer *a5); bool __fastcall sub_407A1C(int x, int z, int y, struct Vec3_int_ v); // idb -char UpdateActors(); -void UpdateLayingItems(); +void InitializeActors(); +void InitializeLayingItems(); int __fastcall sub_4088E9(int a1, int a2, int a3, int a4, int a5, int a6); unsigned int __thiscall SearchAliveActors(unsigned int *pTotalActors); unsigned int __fastcall SearchActorByMonsterID(unsigned int *pTotalActors, int uMonsterID); @@ -2832,12 +2043,12 @@ // int __cdecl crt_deconstruct_44C42C(); struct GUIFont *LoadFont(const char *pFontFile, const char *pFontPalette, ...); char *__fastcall FitTextInAWindow(const char *pInString, GUIFont *pFont, GUIWindow *pWindow, unsigned int uX, int a5); -void *__fastcall SpawnEncounter(struct MapInfo *pMapInfo, struct SpawnPointMM7 *a2, int a3, int a4, int a5); +void SpawnEncounter(struct MapInfo *pMapInfo, struct SpawnPointMM7 *spawn, int a3, int a4, int a5); int __fastcall sub_44FA4C_spawn_light_elemental(int a1, int a2, int a3); void __cdecl sub_450218_prolly_generate_chests_loot(); signed int __fastcall sub_450521_ProllyDropItemAt(int ecx0, signed int a2, int a3, int a4, int a5, unsigned __int16 a6); int __fastcall sub_45063B(struct MapInfo *a1, int a2); -void *__cdecl RespawnGlobalDecorations(); +void RespawnGlobalDecorations(); bool __fastcall SpawnActor(unsigned int uMonsterID); int __cdecl GetAlertStatus(); unsigned int __fastcall sub_452442(unsigned __int16 a1, unsigned __int16 a2, int a3, int a4);
--- a/stru123.h Tue Nov 06 10:06:45 2012 +0600 +++ b/stru123.h Tue Nov 06 10:07:35 2012 +0600 @@ -6,7 +6,7 @@ struct stru123 { char field_0[75]; - char field_4B[125]; + char _decor_events[125]; }; #pragma pack(pop) extern stru123 stru_5E4C90; \ No newline at end of file
--- a/stru6.cpp Tue Nov 06 10:06:45 2012 +0600 +++ b/stru6.cpp Tue Nov 06 10:07:35 2012 +0600 @@ -1067,9 +1067,7 @@ } if ( !pRenderer->pRenderD3D ) goto LABEL_34; - *(int *)pContainer = *(int *)"sp18h1"; - *(short *)&pContainer[4] = *(short *)"h1"; - pContainer[6] = aSp18h1[6]; + memcpy(pContainer, "sp18h1", 7); pRnd->SetRange(1, 6); pContainer[5] = pRnd->GetInRange() + '0'; v35 = pBitmaps_LOD->LoadTexture(pContainer, TEXTURE_DEFAULT);