Mercurial > mm7
changeset 487:d5da524ec901
shop entering fixed
author | Gloval |
---|---|
date | Wed, 27 Feb 2013 22:48:10 +0400 |
parents | 7887a9cf9e7b |
children | c92dd0242fb6 0e27362ac1d9 |
files | Party.cpp mm7_4.cpp mm7_data.cpp stru159.h |
diffstat | 4 files changed, 360 insertions(+), 362 deletions(-) [+] |
line wrap: on
line diff
--- a/Party.cpp Wed Feb 27 17:29:05 2013 +0200 +++ b/Party.cpp Wed Feb 27 22:48:10 2013 +0400 @@ -770,6 +770,7 @@ _449B7E_toggle_bit(_quest_bits, 5, 1); _449B7E_toggle_bit(_quest_bits, 6, 1); + memset(field_3C._shop_ban_times,0,53*sizeof(__int64)); memcpy(pNPCStats->pNewNPCData, pNPCStats->pNPCData, 0x94BCu); memcpy(pNPCStats->pGroups_copy, pNPCStats->pGroups, 0x66u);
--- a/mm7_4.cpp Wed Feb 27 17:29:05 2013 +0200 +++ b/mm7_4.cpp Wed Feb 27 22:48:10 2013 +0400 @@ -8918,9 +8918,9 @@ if ( v5 > 4000000 ) pParty->uFine = 4000000; } - v6 = pParty->uTimePlayed + 368640; - pParty->field_3C._shop_ban_times[2 * a1] = LODWORD(pParty->uTimePlayed) + 368640; - pParty->field_3C._shop_ban_times[2 * a1 + 1] = HIDWORD(v6); + + pParty->field_3C._shop_ban_times[a1] = pParty->uTimePlayed + 368640; + LABEL_13: pParty->InTheShopFlags[a1] = 1; if ( v3 ) @@ -9262,10 +9262,10 @@ void __fastcall HousePlaySomeSound(unsigned int uHouseID, int a2) { //if ( BYTE1(pAnimatedRooms[p2DEvents_minus1___02[26 * uHouseID]].field_C) ) - if ( BYTE1(pAnimatedRooms[p2DEvents[uHouseID - 1].uAnimationID].uBuildingType) ) + if ( pAnimatedRooms[p2DEvents[uHouseID - 1].uAnimationID].field_d ) pAudioPlayer->PlaySound( //(SoundID)(a2 + 100 * (BYTE1(pAnimatedRooms[p2DEvents_minus1___02[26 * uHouseID]].field_C) + 300)), - (SoundID)(a2 + 100 * (BYTE1(pAnimatedRooms[p2DEvents[uHouseID - 1].uAnimationID].uBuildingType) + 300)), + (SoundID)(a2 + 100 * (pAnimatedRooms[p2DEvents[uHouseID - 1].uAnimationID].field_d) + 300), 806, 0, -1, @@ -14197,7 +14197,7 @@ LABEL_20: pDialogueWindow = GUIWindow::Create(0, 0, 640, 480, (enum WindowType)26, 0, (int)sHouseName); //if ( BYTE1(pAnimatedRooms[p2DEvents_minus1___02[26 * v9]].field_C) ) - if ( BYTE1(pAnimatedRooms[p2DEvents[v9 - 1].uAnimationID].uBuildingType) ) + if ( pAnimatedRooms[p2DEvents[v9 - 1].uAnimationID].field_d ) HousePlaySomeSound(v9, 1); if ( uCurrentlyLoadedLevelType == LEVEL_Indoor && uActiveCharacter && pParty->uFlags & 0x30 ) pPlayers[uActiveCharacter]->PlaySound(SPEECH_47, 0); @@ -14332,163 +14332,157 @@ //----- (0044622E) -------------------------------------------------------- bool EnterHouse(enum HOUSE_ID uHouseID) -{ - //enum HOUSE_ID v1; // edi@1 - //int v2; // edi@5 - signed int uOpenTime; // eax@5 - signed int uCloseTime; // esi@5 - unsigned int v5; // esi@5 - int v6; // edx@5 - signed int am_pm_flag_open; // ecx@10 - signed int am_pm_flag_close; // eax@10 - int v9; // esi@10 - //unsigned int v10; // esi@16 - int v11; // ecx@17 - unsigned int v12; // kr00_4@25 - //Player *v13; // esi@25 - int v14; // eax@25 - //Player *v15; // esi@27 - //signed int v16; // eax@32 - unsigned int v17; // eax@37 - signed int v18; // edi@37 - signed int v19; // edi@41 - //unsigned int v20; // ecx@41 - //const char *v22; // [sp-4h] [bp-40h]@33 - char pContainer[40]; // [sp+Ch] [bp-30h]@32 - unsigned int v24; // [sp+34h] [bp-8h]@5 - //enum HOUSE_ID v25; // [sp+38h] [bp-4h]@1 - - //v1 = uHouseID; - //v25 = uHouseID; - GameUI_StatusBar_TimedString[0] = 0; - pStatusBarString[0] = 0; - ShowStatusBarString("", 2u); - if ( pMessageQueue_50CBD0->uNumMessages ) - pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0; - viewparams->bRedrawGameUI = 1; - uDialogueType = 0; - pKeyActionMap->_459ED1(3); - pKeyActionMap->ResetKeys(); - if (uHouseID == HOUSE_600 || uHouseID == HOUSE_601) - { - GameOverMenu(0); - return 0; - } - uOpenTime = p2DEvents[uHouseID - 1].uOpenTime; - uCloseTime = p2DEvents[uHouseID - 1].uCloseTime; - ptr_F8B1E8 = 0; - dword_F8B1E4 = 0; - dword_F8B1F4 = 0; - memset(byte_F8B1F0, 0, 4); - memset(byte_F8B148, 0, 16); - pRenderer->ClearZBuffer(0, 479); - if ( uCloseTime - 1 <= uOpenTime ) - { - if ( pParty->uCurrentHour >= uOpenTime ) - { - //v10 = uHouseID; - if ( (signed int)uHouseID < 53 ) - { - if ( !(pParty->field_3C._shop_ban_times[uHouseID]) - || (pParty->field_3C._shop_ban_times[uHouseID] <= pParty->uTimePlayed) ) - { - pParty->field_3C._shop_ban_times[uHouseID] = 0; - - } - else - { - ShowStatusBarString(pGlobalTXT_LocalizationStrings[191], 2u);// "You've been banned from this shop!" - return 0; - } - } - if ( !start_event_seq_number ) - pAudioPlayer->StopChannels(-1, -1); - - uCurrentHouse_Animation = p2DEvents[uHouseID - 1].uAnimationID; - in_current_building_type = pAnimatedRooms[uCurrentHouse_Animation].uBuildingType; - if ( in_current_building_type == BildingType_20 && pParty->uFine ) // going 2 jail - { - uCurrentHouse_Animation = (signed __int16)p2DEvents[186].uAnimationID; - uHouseID = HOUSE_JAIL; - pParty->uTimePlayed = pParty->uTimePlayed+ 0x7620000; - in_current_building_type = pAnimatedRooms[p2DEvents[HOUSE_LORD_AND_JUDGE].uAnimationID].uBuildingType; - ++pParty->uNumPrisonTerms; - pParty->uFine = 0; - for (uint i = 0; i < 4; ++i) - { - pParty->pPlayers[i].uTimeToRecovery = 0; - pParty->pPlayers[i].uNumDivineInterventionCastsThisDay = 0; - pParty->pPlayers[i].SetVariable(VAR_Award, 87); - } - } - ++pIcons_LOD->uTexturePacksCount; - if ( !pIcons_LOD->uNumPrevLoadedFiles ) - pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; - - switch (pParty->alignment) - { - case PartyAlignment_Good: sprintf(pContainer, "evt%02d-b", const_2()); break; - case PartyAlignment_Neutral: sprintf(pContainer, "evt%02d", const_2()); break; - case PartyAlignment_Evil: sprintf(pContainer, "evt%02d-c", const_2()); break; - default: assert(false); - } - - v17 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); - pDialogueNPCCount = 0; - pTexture_Dialogue_Background = &pIcons_LOD->pTextures[v17]; - uTextureID_507B04 = uTextureID_right_panel; - PrepareHouse(uHouseID); - v18 = 1; - uTextureID_507B04 = uTextureID_right_panel; - if ( uNumDialogueNPCPortraits == 1 ) - pDialogueNPCCount = 1; - pVideoPlayer->_4BF28F(pAnimatedRooms[uCurrentHouse_Animation].video_name, 1u); - dword_5C35D4 = 1; - if ( (signed int)uHouseID < 139 || (signed int)uHouseID > 172 ) - { - if ( (signed int)uHouseID >= 54 && (signed int)uHouseID <= 73 && !sub_4B68EA(uHouseID - 54) ) - { - return 1; - } - } - else - { //guilds - v19 = word_4F0704[uHouseID-139] - 1; //some gild flag check - //v20 = uHouseID; - if ( !((unsigned __int8)(0x80u >> v19 % 8) & pPlayers[uActiveCharacter]->_guilds_member_bits[v19 /8]) ) - { - HousePlaySomeSound(uHouseID, 3); - return 1; - } - } - HousePlaySomeSound(uHouseID, 1); - dword_5C35D4 = 1; - return 1; - } - } - else - { - if (( pParty->uCurrentHour < uOpenTime)||( pParty->uCurrentHour > uCloseTime - 1 )) - { - am_pm_flag_open = 0; - am_pm_flag_close = 0; - if (uOpenTime > 12 ) - { - uOpenTime -= 12; - am_pm_flag_open = 1; - } - if ( uCloseTime > 12 ) - { - uCloseTime -= 12; - am_pm_flag_close = 1; - } - sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[414], uOpenTime, aAMPMNames[am_pm_flag_open], - uCloseTime, aAMPMNames[am_pm_flag_close]); //"This place is open from %d%s to %d%s" - ShowStatusBarString(pTmpBuf, 2u); - if ( uActiveCharacter ) - pPlayers[uActiveCharacter]->PlaySound(SPEECH_3, 0); - return 0; - } - } - -} + { + //enum HOUSE_ID v1; // edi@1 + //int v2; // edi@5 + signed int uOpenTime; // eax@5 + signed int uCloseTime; // esi@5 + unsigned int v5; // esi@5 + int v6; // edx@5 + signed int am_pm_flag_open; // ecx@10 + signed int am_pm_flag_close; // eax@10 + int v9; // esi@10 + //unsigned int v10; // esi@16 + int v11; // ecx@17 + unsigned int v12; // kr00_4@25 + //Player *v13; // esi@25 + int v14; // eax@25 + //Player *v15; // esi@27 + //signed int v16; // eax@32 + unsigned int v17; // eax@37 + signed int v18; // edi@37 + signed int v19; // edi@41 + //unsigned int v20; // ecx@41 + //const char *v22; // [sp-4h] [bp-40h]@33 + char pContainer[40]; // [sp+Ch] [bp-30h]@32 + unsigned int v24; // [sp+34h] [bp-8h]@5 + //enum HOUSE_ID v25; // [sp+38h] [bp-4h]@1 + + //v1 = uHouseID; + //v25 = uHouseID; + GameUI_StatusBar_TimedString[0] = 0; + pStatusBarString[0] = 0; + ShowStatusBarString("", 2u); + if ( pMessageQueue_50CBD0->uNumMessages ) + pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0; + viewparams->bRedrawGameUI = 1; + uDialogueType = 0; + pKeyActionMap->_459ED1(3); + pKeyActionMap->ResetKeys(); + if (uHouseID == HOUSE_600 || uHouseID == HOUSE_601) + { + GameOverMenu(0); + return 0; + } + uOpenTime = p2DEvents[uHouseID - 1].uOpenTime; + uCloseTime = p2DEvents[uHouseID - 1].uCloseTime; + ptr_F8B1E8 = 0; + dword_F8B1E4 = 0; + dword_F8B1F4 = 0; + memset(byte_F8B1F0, 0, 4); + memset(byte_F8B148, 0, 16); + pRenderer->ClearZBuffer(0, 479); + + if (((uCloseTime - 1 <= uOpenTime)&&((pParty->uCurrentHour >=uOpenTime)||(pParty->uCurrentHour <=(uCloseTime - 1))))|| + ((uCloseTime - 1 > uOpenTime)&&((pParty->uCurrentHour < uOpenTime)||(pParty->uCurrentHour > (uCloseTime - 1))))) + + { + am_pm_flag_open = 0; + am_pm_flag_close = 0; + if (uOpenTime > 12 ) + { + uOpenTime -= 12; + am_pm_flag_open = 1; + } + if ( uCloseTime > 12 ) + { + uCloseTime -= 12; + am_pm_flag_close = 1; + } + sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[414], uOpenTime, aAMPMNames[am_pm_flag_open], + uCloseTime, aAMPMNames[am_pm_flag_close]); //"This place is open from %d%s to %d%s" + ShowStatusBarString(pTmpBuf, 2u); + if ( uActiveCharacter ) + pPlayers[uActiveCharacter]->PlaySound(SPEECH_3, 0); + return 0; + } + else + { + //v10 = uHouseID; + if ( (signed int)uHouseID < 53 ) //entering shops and guilds + { + if ( !(pParty->field_3C._shop_ban_times[uHouseID]) + || (pParty->field_3C._shop_ban_times[uHouseID] <= pParty->uTimePlayed) ) + { + pParty->field_3C._shop_ban_times[uHouseID] = 0; + } + else + { + ShowStatusBarString(pGlobalTXT_LocalizationStrings[191], 2u);// "You've been banned from this shop!" + return 0; + } + } + if ( !start_event_seq_number ) + pAudioPlayer->StopChannels(-1, -1); + + uCurrentHouse_Animation = p2DEvents[uHouseID - 1].uAnimationID; + in_current_building_type = pAnimatedRooms[uCurrentHouse_Animation].uBuildingType; + if ( in_current_building_type == BildingType_20 && pParty->uFine ) // going 2 jail + { + uCurrentHouse_Animation = (signed __int16)p2DEvents[186].uAnimationID; + uHouseID = HOUSE_JAIL; + pParty->uTimePlayed = pParty->uTimePlayed+ 0x7620000; + in_current_building_type = pAnimatedRooms[p2DEvents[HOUSE_LORD_AND_JUDGE].uAnimationID].uBuildingType; + ++pParty->uNumPrisonTerms; + pParty->uFine = 0; + for (uint i = 0; i < 4; ++i) + { + pParty->pPlayers[i].uTimeToRecovery = 0; + pParty->pPlayers[i].uNumDivineInterventionCastsThisDay = 0; + pParty->pPlayers[i].SetVariable(VAR_Award, 87); + } + } + ++pIcons_LOD->uTexturePacksCount; + if ( !pIcons_LOD->uNumPrevLoadedFiles ) + pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; + switch (pParty->alignment) + { + case PartyAlignment_Good: sprintf(pContainer, "evt%02d-b", const_2()); break; + case PartyAlignment_Neutral: sprintf(pContainer, "evt%02d", const_2()); break; + case PartyAlignment_Evil: sprintf(pContainer, "evt%02d-c", const_2()); break; + default: assert(false); + } + + v17 = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); + pDialogueNPCCount = 0; + pTexture_Dialogue_Background = &pIcons_LOD->pTextures[v17]; + uTextureID_507B04 = uTextureID_right_panel; + PrepareHouse(uHouseID); + v18 = 1; + uTextureID_507B04 = uTextureID_right_panel; + if ( uNumDialogueNPCPortraits == 1 ) + pDialogueNPCCount = 1; + pVideoPlayer->_4BF28F(pAnimatedRooms[uCurrentHouse_Animation].video_name, 1u); + dword_5C35D4 = 1; + if ( (signed int)uHouseID < 139 || (signed int)uHouseID > 172 ) + { + if ( (signed int)uHouseID >= 54 && (signed int)uHouseID <= 73 && !sub_4B68EA(uHouseID - 54) ) + { + return 1; + } + } + else + { //guilds + v19 = word_4F0704[uHouseID-139] - 1; //some gild flag check + //v20 = uHouseID; + if ( !((unsigned __int8)(0x80u >> v19 % 8) & pPlayers[uActiveCharacter]->_guilds_member_bits[v19 /8]) ) + { + HousePlaySomeSound(uHouseID, 3); + return 1; + } + } + HousePlaySomeSound(uHouseID, 1); + dword_5C35D4 = 1; + return 1; + } + }
--- a/mm7_data.cpp Wed Feb 27 17:29:05 2013 +0200 +++ b/mm7_data.cpp Wed Feb 27 22:48:10 2013 +0400 @@ -69,201 +69,202 @@ #include "stru159.h" stru159 pAnimatedRooms[196] = //0x4E5F70 { - "", 0x4, 0x1F4, 0, - "Human Armor01", 0x20, 0x2C0, 0x3A02, - "Necromancer Armor01", 0x20, 0x2D7, 0x4602, - "Dwarven Armor01", 0x20, 0x2EE, 0x502, - "Wizard Armor", 0x20, 0x3BD, 0x1302, - "Warlock Armor", 0x20, 0x2D6, 0x2302, - "Elf Armor", 0x20, 0x2BC, 0x4F02, - "Human Alchemisht01", 0xE, 0x2BE, 0x5F04, - "Necromancer Alchemist01", 0xE, 0x2D6, 0x4504, - "Dwarven Achemist01", 0xE, 0x387, 0x404, - "Wizard Alchemist", 0xE, 0x232, 0x1904, - "Warlock Alchemist", 0xE, 0x2BE, 0x2A04, - "Elf Alchemist", 0xE, 0x38A, 0x5404, - "Human Bank01", 0x6, 0x384, 0x3416, - "Necromancer Bank01", 0x6, 0x2D8, 0x4716, - "Dwarven Bank", 0x6, 0x2F3, 0x616, - "Wizard Bank", 0x6, 0x3BA, 0x1416, - "Warlock Bank", 0x6, 0x39F, 0x2416, - "Elf Bank", 0x6, 0x2BC, 0x4716, - "Boat01", 0xF, 0x4C, 0x3351C, - "Boat01d", 0xF, 0x4C, 0x3351C, - "Human Magic Shop01", 0xA, 0x2C8, 0x3603, - "Necromancer Magic Shop01", 0xE, 0x2DC, 0x4203, - "Dwarven Magic Shop01", 0x2A, 0x2EF, 0x5B03, - "Wizard Magic Shop", 0x1E, 0x2DF, 0xF03, - "Warlock Magic Shop", 0x7, 0x3B9, 0x1F03, - "Elf Magic Shop", 0x24, 0x2CC, 0x5203, - "Human Stables01", 0x21, 0x31, 0x3301B, - "Necromancer Stables", 0x21, 0x2DD, 0x3431B, - "", 0x21, 0x2F0, 0x35B1B, - "Wizard Stables", 0x21, 0x3BA, 0x3101B, - "Warlock Stables", 0x21, 0x181, 0x3201B, - "Elf Stables", 0x21, 0x195, 0x34D1B, - "Human Tavern01", 0xD, 0x2C2, 0x3115, - "Necromancer Tavern01", 0xD, 0x3B0, 0x3915, - "Dwarven Tavern01", 0xD, 0x2FE, 0x5E15, - "Wizard Tavern", 0xD, 0x3BB, 0x1115, - "Warlock Tavern", 0xD, 0x3A8, 0x2115, - "Elf Tavern", 0xD, 0x2CD, 0x4E15, - "Human Temple01", 0x24, 0x2DB, 0x33217, - "Necromancer Temple", 0x24, 0x2DF, 0x33C17, - "Dwarven Temple01", 0x24, 0x2F1, 0x35617, - "Wizard Temple", 0x24, 0x2E0, 0x30A17, - "Warlock Temple", 0x24, 0x3A4, 0x31B17, - "Elf Temple", 0x24, 0x2CE, 0x34817, - "Human Town Hall", 0x10, 0x39C, 0xE11, - "Necromancer Town Hall01", 0x10, 0x3A4, 0x3D11, - "Dwarven Town Hall", 0x10, 0x2DB, 0x5811, - "Wizard Town Hall", 0x10, 0x3BD, 0xB11, - "Warlock Town Hall", 0x10, 0x2DB, 0x1C11, - "Elf Town Hall", 0x10, 0x27A, 0x4911, - "Human Training Ground01", 0x18, 0x2C7, 0x2C1E, - "Necromancer Training Ground", 0x18, 0x3AD, 0x3E1E, - "Dwarven Training Ground", 0x18, 0x2F2, 0x591E, - "Wizard Training Ground", 0x18, 0x3A3, 0xC1E, - "Warlock Training Ground", 0x18, 0x3A6, 0x1D1E, - "Elf Training Ground", 0x18, 0x19F, 0x4A1E, - "Human Weapon Smith01", 0x16, 0x2C1, 0x42D01, - "Necromancer Weapon Smith01", 0x16, 0x2D9, 0x43F01, - "Dwarven Weapon Smith01", 0x16, 0x2EE, 0x45201, - "Wizard Weapon Smith", 0x16, 0x2D5, 0x40D01, - "Warlock Weapon Smith", 0x16, 0x2D7, 0x41701, - "Elf Weapon Smith", 0x16, 0x2CA, 0x44B01, - "Air Guild", 0x1D, 0xA4, 0x30106, - "Body Guild", 0x19, 0x3BF, 0x20B, - "DarkGuild", 0x19, 0x2D1, 0x30D, - "EarthGuild", 0x19, 0x2CB, 0x5308, - "Fire Guild", 0x1C, 0x2BF, 0x3805, - "Light Guild", 0x1C, 0x2D5, 0x2E0C, - "Mind Guild", 0x1C, 0xE5, 0x280A, - "Spirit Guild", 0x1C, 0x2D2, 0x2909, - "Water Guild", 0x1B, 0x2D3, 0x1807, - "Lord And Judge Out01", 1, 0, 0x271D, - "Human Poor House 1", 8, 0, 0x1D, - "Human Poor House 2", 8, 0, 0x1D, - "Human Poor House 3", 8, 0, 0x1D, - "Human Medium House 1", 8, 0, 0x1D, - "Human Medium House 2", 8, 0, 0x1D, - "Human Medium House 3", 8, 0, 0x1D, - "Human Rich House 1", 8, 0, 0x1D, - "Human Rich House 2", 8, 0, 0x1D, - "Human Rich House 3", 8, 0, 0x1D, - "Elven Poor House 1", 8, 0, 0x1D, - "Elven Poor House 2", 8, 0, 0x1D, - "Elven Poor House 3", 8, 0, 0x1D, - "Elven Medium House 1", 8, 0, 0x1D, - "Elven Medium House 2", 8, 0, 0x1D, - "Elven Medium House 3", 8, 0, 0x1D, - "Elven Rich House 1", 8, 0, 0x1D, - "Elven Rich House 2", 8, 0, 0x1D, - "Elven Rich House 3", 8, 0, 0x1D, - "Dwarven Poor House 1", 8, 0, 0x1D, - "Dwarven Poor House 2", 8, 0, 0x1D, - "Dwarven Poor House 3", 8, 0, 0x1D, - "Dwarven Medium House 1", 8, 0, 0x1D, - "Dwarven Medium house 2", 8, 0, 0x1D, - "Dwarven Medium House 3", 8, 0, 0x1D, - "Dwarven Rich House 1", 8, 0, 0x1D, - "Dwarven Rich House 2", 8, 0, 0x1D, - "Dwarven Rich House 3", 8, 0, 0x1D, - "Wizard Poor House 1", 8, 0, 0x1D, - "Wizard Poor House 2", 8, 0, 0x1D, - "Wizard Poor House 3", 8, 0, 0x1D, - "Wizard Medium House 1", 8, 0, 0x1D, - "Wizard Medium House 2", 8, 0, 0x1D, - "Wizard Mdeium House 3", 8, 0, 0x1D, - "Wizard Rich House 1", 8, 0, 0x1D, - "Wizard Rich House 2", 8, 0, 0x1D, - "Wizard Rich House 3", 8, 0, 0x1D, - "Necromancer Poor House 1", 8, 0, 0x1D, - "Necromancer Poor House 2", 8, 0, 0x1D, - "Necromancer Poor House 3", 8, 0, 0x1D, - "Necromancer Medium House 1", 8, 0, 0x1D, - "Necromancer Medium House 2", 8, 0, 0x1D, - "Necromancer Mdeium House 3", 8, 0, 0x1D, - "Necromancer Rich House 1", 8, 0, 0x1D, - "Necromancer Rich House 2", 8, 0, 0x1D, - "Necromancer Rich House 3", 8, 0, 0x1D, - "Warlock Poor House 1", 8, 0, 0x1D, - "Warlock Poor House 2", 8, 0, 0x1D, - "Warlock Poor House 3", 8, 0, 0x1D, - "Warlock Medium House 1", 8, 0, 0x1D, - "Warlock Medium House 2", 8, 0, 0x1D, - "Warlock Mdeium House 3", 8, 0, 0x1D, - "Warlock Rich House 1", 8, 0, 0x1D, - "Warlock Rich House 2", 8, 0, 0x1D, - "Warlock Rich House 3", 8, 0, 0x1D, - "Out01 Temple of the Moon", 0x24, 0, 0x19, - "Out01 Dragon Cave", 0x24, 0, 0x19, - "Out02 Castle Harmondy", 0x24, 0, 0x19, - "Out02 White Cliff Cave", 0x24, 0, 0x19, - "Out03 Erathian Sewer", 0x24, 0, 0x19, - "Out03 Fort Riverstride", 0x24, 0, 0x19, - "Out03 Castle Gryphonheart", 0x24, 0, 0x19, - "Out04 Elf Castle", 0x24, 0, 0x19, - "Out04 Tularean Caves", 0x24, 0, 0x19, - "Out04 Clanker's Laboratory", 0x24, 0, 0x19, - "Out05 Hall of the Pit", 0x24, 0, 0x19, - "Out05 Watchtower 6", 0x24, 0, 0x19, - "Out06 School of Sorcery", 0x24, 0, 0x19, - "Out06 Red Dwarf Mines", 0x24, 0, 0x19, - "Out07 Castle Lambert", 0x24, 0, 0x19, - "Out07 Walls of Mist", 0x24, 0, 0x19, - "Out07 Temple of the Light", 0x24, 0, 0x19, - "Out08 Evil Entrance", 0x24, 0, 0x19, - "Out08 Breeding Zone", 0x24, 0, 0x19, - "Out08 Temple of the Dark", 0x24, 0, 0x19, - "Out09 Grand Temple of the Moon", 0x24, 0, 0x19, - "Out09 Grand Tempple of the Sun", 0x24, 0, 0x19, - "Out10 Thunderfist Mountain", 0x24, 0, 0x19, - "Out10 The Maze", 0x24, 0, 0x19, - "Out10 Connecting Tunnel Cave #1", 0x24, 0, 0x19, - "", 0x24, 0, 0x19, - "", 0x24, 0, 0x19, - "Out11 Stone City", 0x24, 0, 0x19, - "", 0x24, 0, 0x19, - "Out12 Colony Zod", 0x24, 0, 0x19, - "Out12 Connecting Tunnel Cave #1", 0x24, 0, 0x19, - "", 0x24, 0, 0x19, - "", 0x24, 0, 0x19, - "Out13 Mercenary Guild", 0x24, 0, 0x19, - "Out13 Tidewater Caverns", 0x24, 0, 0x19, - "Out13 Wine Cellar", 0x24, 0, 0x19, - "Out14 Titan's Stronghold", 0x24, 0, 0x19, - "Out14 Temple Of Baa", 0x24, 0, 0x19, - "Out14 Hall under the Hill", 0x24, 0, 0x19, - "Out15 The Linclon", 0x24, 0, 0x19, - "Jail", 0x24, 0, 0x1F, - "Harmondale Throne Room", 0x24, 0, 0x1D, - "Gryphonheart Throne Room", 0x24, 0, 0x14, - "Elf Castle Throne Room", 0x24, 0, 0x14, - "Wizard Castle Throne Room", 0x24, 0, 0x14, - "Necromancer Casstle Trone Room", 0x24, 0, 0x14, - "Master Thief", 0x24, 0, 0x1D, - "Dwarven King", 0x24, 0, 0x14, - "Arms Master", 0x24, 0, 0x1D, - "Warlock", 0x24, 0, 0x1D, - "Lord Markam", 0x24, 0, 0x14, - "Arbiter Neutral Town", 0x24, 0, 0x1D, - "Arbiter Good Town", 0x24, 0, 0x1D, - "Arbiter Evil Town", 0x24, 0, 0x1D, - "Necromancer Throne Room Empty", 0x24, 0, 0x14, - "", 0x24, 0, 0x1D, - "", 0x24, 0, 0x1D, - "", 0x24, 0, 0x1D, - "", 0x24, 0, 0x1D, - "Boat01", 0xF, 0, 0x3351D, - "", 0x24, 0, 0x1C, - "", 0x24, 0, 0x1D, - "", 0x24, 0, 0x1D, - "Arbiter Room Neutral", 0x24, 0, 0x1D, - "Out02 Castle Harmondy Abandoned", 0x24, 0, 0x19, - "Human Temple02", 0x24, 0x3AB, 0x1B17, - "Player Castle Good", 0x24, 0, 0x19, - "Player Castle Bad", 0x24, 0, 0x19, + {"", 0x4, 0x1F4, 0, 0, 0}, + {"Human Armor01", 0x20, 0x2C0, 2, 58, 0}, +{"Necromancer Armor01", 0x20, 0x2D7, 2, 70, 0 }, +{"Dwarven Armor01", 0x20, 0x2EE, 2, 5, 0 }, +{"Wizard Armor", 0x20, 0x3BD, 2, 19, 0 }, +{"Warlock Armor", 0x20, 0x2D6, 2, 35, 0 }, +{"Elf Armor", 0x20, 0x2BC, 2, 79, 0 }, +{"Human Alchemisht01", 0xE, 0x2BE, 4, 95, 0 }, +{"Necromancer Alchemist01", 0xE, 0x2D6, 4, 69, 0 }, +{"Dwarven Achemist01", 0xE, 0x387, 4, 4, 0 }, +{"Wizard Alchemist", 0xE, 0x232, 4, 25, 0 }, +{"Warlock Alchemist", 0xE, 0x2BE, 4, 42, 0 }, +{"Elf Alchemist", 0xE, 0x38A, 4, 84, 0 }, +{"Human Bank01", 0x6, 0x384, 22, 52, 0 }, +{"Necromancer Bank01", 0x6, 0x2D8, 22, 71, 0 }, +{"Dwarven Bank", 0x6, 0x2F3, 22, 6, 0 }, +{"Wizard Bank", 0x6, 0x3BA, 22, 20, 0 }, +{"Warlock Bank", 0x6, 0x39F, 22, 36, 0 }, +{"Elf Bank", 0x6, 0x2BC, 22, 71, 0 }, +{"Boat01", 0xF, 0x4C, 28, 53, 3 }, +{"Boat01d", 0xF, 0x4C, 28, 53, 3 }, +{"Human Magic Shop01", 0xA, 0x2C8, 3, 54, 0 }, +{"Necromancer Magic Shop01", 0xE, 0x2DC, 3, 66, 0 }, +{"Dwarven Magic Shop01", 0x2A, 0x2EF, 3, 91, 0 }, +{"Wizard Magic Shop", 0x1E, 0x2DF, 3, 15, 0 }, +{"Warlock Magic Shop", 0x7, 0x3B9, 3, 15, 0 }, +{"Elf Magic Shop", 0x24, 0x2CC, 3, 82, 0 }, +{"Human Stables01", 0x21, 0x31, 27, 48, 3 }, +{"Necromancer Stables", 0x21, 0x2DD, 27, 67, 3 }, +{"", 0x21, 0x2F0, 27, 91, 3 }, +{"Wizard Stables", 0x21, 0x3BA, 27, 16, 3 }, +{"Warlock Stables", 0x21, 0x181, 27, 77, 3 }, +{"Elf Stables", 0x21, 0x195, 27, 77, 3 }, +{"Human Tavern01", 0xD, 0x2C2, 21, 49, 0 }, +{"Necromancer Tavern01", 0xD, 0x3B0, 21, 57, 0 }, +{"Dwarven Tavern01", 0xD, 0x2FE, 21, 94, 0 }, +{"Wizard Tavern", 0xD, 0x3BB, 21, 17, 0 }, +{"Warlock Tavern", 0xD, 0x3A8, 21, 33, 0 }, +{"Elf Tavern", 0xD, 0x2CD, 21, 78, 0 }, +{"Human Temple01", 0x24, 0x2DB, 23, 50, 3 }, +{"Necromancer Temple", 0x24, 0x2DF, 23, 60, 3 }, +{"Dwarven Temple01", 0x24, 0x2F1, 23, 86, 3 }, +{"Wizard Temple", 0x24, 0x2E0, 23, 10, 3 }, +{"Warlock Temple", 0x24, 0x3A4, 23, 27, 3 }, +{"Elf Temple", 0x24, 0x2CE, 23, 72, 3 }, +{"Human Town Hall", 0x10, 0x39C, 17, 14, 0 }, +{"Necromancer Town Hall01", 0x10, 0x3A4, 17, 61, 0 }, +{"Dwarven Town Hall", 0x10, 0x2DB, 17, 88, 0 }, +{"Wizard Town Hall", 0x10, 0x3BD, 17, 11, 0 }, +{"Warlock Town Hall", 0x10, 0x2DB, 17, 28, 0 }, +{"Elf Town Hall", 0x10, 0x27A, 17, 73, 0 }, +{"Human Training Ground01", 0x18, 0x2C7, 30, 44, 0 }, +{"Necromancer Training Ground", 0x18, 0x3AD, 30, 62, 0 }, +{"Dwarven Training Ground", 0x18, 0x2F2, 30, 89, 0 }, +{"Wizard Training Ground", 0x18, 0x3A3, 30, 12, 0 }, +{"Warlock Training Ground", 0x18, 0x3A6, 30, 29, 0 }, +{"Elf Training Ground", 0x18, 0x19F, 30, 74, 0 }, +{"Human Weapon Smith01", 0x16, 0x2C1, 1, 45, 4 }, +{"Necromancer Weapon Smith01", 0x16, 0x2D9, 1, 63, 4 }, +{"Dwarven Weapon Smith01", 0x16, 0x2EE, 1, 82, 4 }, +{"Wizard Weapon Smith", 0x16, 0x2D5, 1, 13, 4 }, +{"Warlock Weapon Smith", 0x16, 0x2D7, 1, 23, 4 }, +{"Elf Weapon Smith", 0x16, 0x2CA, 1, 75, 4 }, +{"Air Guild", 0x1D, 0xA4, 6, 1, 3 }, +{"Body Guild", 0x19, 0x3BF, 11, 2, 0 }, +{"DarkGuild", 0x19, 0x2D1, 13, 3, 0 }, +{"EarthGuild", 0x19, 0x2CB, 8, 83, 0 }, +{"Fire Guild", 0x1C, 0x2BF, 5, 56, 0 }, +{"Light Guild", 0x1C, 0x2D5, 12, 46, 0 }, +{"Mind Guild", 0x1C, 0xE5, 10, 40, 0 }, +{"Spirit Guild", 0x1C, 0x2D2, 9, 41, 0 }, +{"Water Guild", 0x1B, 0x2D3, 7, 24, 0 }, +{"Lord And Judge Out01", 1, 0, 29, 39, 0 }, +{"Human Poor House 1", 8, 0, 29, 0, 0 }, +{"Human Poor House 2", 8, 0, 29, 0, 0 }, +{"Human Poor House 3", 8, 0, 29, 0, 0 }, +{"Human Medium House 1", 8, 0, 29, 0, 0 }, +{"Human Medium House 2", 8, 0, 29, 0, 0 }, +{"Human Medium House 3", 8, 0, 29, 0, 0 }, +{"Human Rich House 1", 8, 0, 29, 0, 0 }, +{"Human Rich House 2", 8, 0, 29, 0, 0 }, +{"Human Rich House 3", 8, 0, 29, 0, 0 }, +{"Elven Poor House 1", 8, 0, 29, 0, 0 }, +{"Elven Poor House 2", 8, 0, 29, 0, 0 }, +{"Elven Poor House 3", 8, 0, 29, 0, 0 }, +{"Elven Medium House 1", 8, 0, 29, 0, 0 }, +{"Elven Medium House 2", 8, 0, 29, 0, 0 }, +{"Elven Medium House 3", 8, 0, 29, 0, 0 }, +{"Elven Rich House 1", 8, 0, 29, 0, 0 }, +{"Elven Rich House 2", 8, 0, 29, 0, 0 }, +{"Elven Rich House 3", 8, 0, 29, 0, 0 }, +{"Dwarven Poor House 1", 8, 0, 29, 0, 0 }, +{"Dwarven Poor House 2", 8, 0, 29, 0, 0 }, +{"Dwarven Poor House 3", 8, 0, 29, 0, 0 }, +{"Dwarven Medium House 1", 8, 0, 29, 0, 0 }, +{"Dwarven Medium house 2", 8, 0, 29, 0, 0 }, +{"Dwarven Medium House 3", 8, 0, 29, 0, 0 }, +{"Dwarven Rich House 1", 8, 0, 29, 0, 0 }, +{"Dwarven Rich House 2", 8, 0, 29, 0, 0 }, +{"Dwarven Rich House 3", 8, 0, 29, 0, 0 }, +{"Wizard Poor House 1", 8, 0, 29, 0, 0 }, +{"Wizard Poor House 2", 8, 0, 29, 0, 0 }, +{"Wizard Poor House 3", 8, 0, 29, 0, 0 }, +{"Wizard Medium House 1", 8, 0, 29, 0, 0 }, +{"Wizard Medium House 2", 8, 0, 29, 0, 0 }, +{"Wizard Mdeium House 3", 8, 0, 29, 0, 0 }, +{"Wizard Rich House 1", 8, 0, 29, 0, 0 }, +{"Wizard Rich House 2", 8, 0, 29, 0, 0 }, +{"Wizard Rich House 3", 8, 0, 29, 0, 0 }, +{"Necromancer Poor House 1", 8, 0, 29, 0, 0 }, +{"Necromancer Poor House 2", 8, 0, 29, 0, 0 }, +{"Necromancer Poor House 3", 8, 0, 29, 0, 0 }, +{"Necromancer Medium House 1", 8, 0, 29, 0, 0 }, +{"Necromancer Medium House 2", 8, 0, 29, 0, 0 }, +{"Necromancer Mdeium House 3", 8, 0, 29, 0, 0 }, +{"Necromancer Rich House 1", 8, 0, 29, 0, 0 }, +{"Necromancer Rich House 2", 8, 0, 29, 0, 0 }, +{"Necromancer Rich House 3", 8, 0, 29, 0, 0 }, +{"Warlock Poor House 1", 8, 0, 29, 0, 0 }, +{"Warlock Poor House 2", 8, 0, 29, 0, 0 }, +{"Warlock Poor House 3", 8, 0, 29, 0, 0 }, +{"Warlock Medium House 1", 8, 0, 29, 0, 0 }, +{"Warlock Medium House 2", 8, 0, 29, 0, 0 }, +{"Warlock Mdeium House 3", 8, 0, 29, 0, 0 }, +{"Warlock Rich House 1", 8, 0, 29, 0, 0 }, +{"Warlock Rich House 2", 8, 0, 29, 0, 0 }, +{"Warlock Rich House 3", 8, 0, 29, 0, 0 }, +{"Out01 Temple of the Moon", 0x24, 0, 25, 0, 0 }, +{"Out01 Dragon Cave", 0x24, 0, 25, 0, 0 }, +{"Out02 Castle Harmondy", 0x24, 0, 25, 0, 0 }, +{"Out02 White Cliff Cave", 0x24, 0, 25, 0, 0 }, +{"Out03 Erathian Sewer", 0x24, 0, 25, 0, 0 }, +{"Out03 Fort Riverstride", 0x24, 0, 25, 0, 0 }, +{"Out03 Castle Gryphonheart", 0x24, 0, 25, 0, 0 }, +{"Out04 Elf Castle", 0x24, 0, 25, 0, 0 }, +{"Out04 Tularean Caves", 0x24, 0, 25, 0, 0 }, +{"Out04 Clanker's Laboratory", 0x24, 0, 25, 0, 0 }, +{"Out05 Hall of the Pit", 0x24, 0, 25, 0, 0 }, +{"Out05 Watchtower 6", 0x24, 0, 25, 0, 0 }, +{"Out06 School of Sorcery", 0x24, 0, 25, 0, 0 }, +{"Out06 Red Dwarf Mines", 0x24, 0, 25, 0, 0 }, +{"Out07 Castle Lambert", 0x24, 0, 25, 0, 0 }, +{"Out07 Walls of Mist", 0x24, 0, 25, 0, 0 }, +{"Out07 Temple of the Light", 0x24, 0, 25, 0, 0 }, +{"Out08 Evil Entrance", 0x24, 0, 25, 0, 0 }, +{"Out08 Breeding Zone", 0x24, 0, 25, 0, 0 }, +{"Out08 Temple of the Dark", 0x24, 0, 25, 0, 0 }, +{"Out09 Grand Temple of the Moon", 0x24, 0, 25, 0, 0 }, +{"Out09 Grand Tempple of the Sun", 0x24, 0, 25, 0, 0 }, +{"Out10 Thunderfist Mountain", 0x24, 0, 25, 0, 0 }, +{"Out10 The Maze", 0x24, 0, 25, 0, 0 }, +{"Out10 Connecting Tunnel Cave #1", 0x24, 0, 25, 0, 0 }, +{"", 0x24, 0, 25, 0, 0 }, +{"", 0x24, 0, 25, 0, 0 }, +{"Out11 Stone City", 0x24, 0, 25, 0, 0 }, +{"", 0x24, 0, 25, 0, 0 }, +{"Out12 Colony Zod", 0x24, 0, 25, 0, 0 }, +{"Out12 Connecting Tunnel Cave #1", 0x24, 0, 25, 0, 0 }, +{"", 0x24, 0, 25, 0, 0 }, +{"", 0x24, 0, 25, 0, 0 }, +{"Out13 Mercenary Guild", 0x24, 0, 25, 0, 0 }, +{"Out13 Tidewater Caverns", 0x24, 0, 25, 0, 0 }, +{"Out13 Wine Cellar", 0x24, 0, 25, 0, 0 }, +{"Out14 Titan's Stronghold", 0x24, 0, 25, 0, 0 }, +{"Out14 Temple Of Baa", 0x24, 0, 25, 0, 0 }, +{"Out14 Hall under the Hill", 0x24, 0, 25, 0, 0 }, +{"Out15 The Linclon", 0x24, 0, 25, 0, 0 }, +{"Jail", 0x24, 0, 31, 0, 0 }, +{"Harmondale Throne Room", 0x24, 0, 29, 0, 0 }, +{"Gryphonheart Throne Room", 0x24, 0, 20, 0, 0 }, +{"Elf Castle Throne Room", 0x24, 0, 20, 0, 0 }, +{"Wizard Castle Throne Room", 0x24, 0, 20, 0, 0 }, +{"Necromancer Casstle Trone Room", 0x24, 0, 20, 0, 0 }, +{"Master Thief", 0x24, 0, 29, 0, 0 }, +{"Dwarven King", 0x24, 0, 20, 0, 0 }, +{"Arms Master", 0x24, 0, 29, 0, 0 }, +{"Warlock", 0x24, 0, 29, 0, 0 }, +{"Lord Markam", 0x24, 0, 20, 0, 0 }, +{"Arbiter Neutral Town", 0x24, 0, 29, 0, 0 }, +{"Arbiter Good Town", 0x24, 0, 29, 0, 0 }, +{"Arbiter Evil Town", 0x24, 0, 29, 0, 0 }, +{"Necromancer Throne Room Empty", 0x24, 0, 20, 0, 0 }, +{"", 0x24, 0, 29, 0, 0 }, +{"", 0x24, 0, 29, 0, 0 }, +{"", 0x24, 0, 29, 0, 0 }, +{"", 0x24, 0, 29, 0, 0 }, +{"Boat01", 0xF, 0, 29, 53, 3 }, +{"", 0x24, 0, 28, 0, 0 }, +{"", 0x24, 0, 28, 0, 0 }, +{"", 0x24, 0, 28, 0, 0 }, +{"", 0x24, 0, 29, 0, 0 }, +{"Arbiter Room Neutral", 0x24, 0, 29, 0, 0 }, +{"Out02 Castle Harmondy Abandoned", 0x24, 0, 25, 0, 0 }, +{"Human Temple02", 0x24, 0x3AB, 23, 27, 0 }, +{"Player Castle Good", 0x24, 0, 25, 0, 0 }, +{"Player Castle Bad", 0x24, 0, 25, 0, 0} }; #include "stru160.h"
--- a/stru159.h Wed Feb 27 17:29:05 2013 +0200 +++ b/stru159.h Wed Feb 27 22:48:10 2013 +0400 @@ -9,7 +9,9 @@ char *video_name; int field_4; int field_8; - int uBuildingType; + unsigned __int8 uBuildingType; + unsigned __int8 field_d; + unsigned __int16 padding_e; }; #pragma pack(pop) extern stru159 pAnimatedRooms[196]; \ No newline at end of file