| Suft   
   Posts: 1220
 
 | 
			| 
 
				void_17, Поля битвы при обработке топазом очень похожи на HD Edition - даже местами лучшеОни какой-то другой (похожей) программой обрабатывали
 Кстати вот наводка - HD Edition хранят весь интерфейс с не перекраской цветов (синего как в оригинале) а отдельно изображения с другим цветом
 
 ERA HD Remaster 0.8.6: ENG-RU
 Сooperative no bugs:  Yandex / Google
 
 
 
				
(This post was last modified: 08.07.2022 12:14 by Suft.)
 |  | 
	| 24.01.2022 13:22 |  | 
	
		| void_17   
 Posts: 39
 
 | 
			| 
 
				Практически полностью разобрал combatManager, кроме полей, которые находятся по смещению от 0x13304 до 0x133CC. 
upd.: Не обращайте внимания, я опять невнимательно посмотрел... 
Завтра посмотрю, для чего поле unknown1. 
Структура :
 
Code:
 class combatManager : baseManager{
 CNetMsgHandlerPause *netMsgHandlerPause;
 int iNextAction;
 int iNextActionExtra;
 int iNextActionGridIndex;
 int iNextActionGridIndex2;
 uchar iLastDrawGridShade[187];
 uchar iCurDrawGridShade[187];
 struct hexcell cell[187];
 int combatTerrain;
 int combatFringe;
 int iCombatCycleType;
 int iElevationOverlay;
 int iDoorStatus;
 uchar bMoatOn;
 uchar moatIsWide;
 Bitmap16Bit *SaveScreenPreGrid;
 Bitmap16Bit *SaveScreenPostGrid;
 Bitmap16Bit *combatMouseBackground;
 int bBackgroundDrawn;
 NewmapCell *EventCell;
 uchar OnMagicPlains;
 uchar OnCursedGround;
 uchar OnAntiMagicGarrison;
 uchar IsSurrounded;
 uchar OnBoats;
 uchar OnBeach;
 struct town *combatTown;
 struct hero *Heroes[2];
 int iSideSpellPower[2];
 uchar PlayDoh[2];
 uchar PlayYeah[2];
 uchar DohPlayedThisRound[2];
 uchar YeahPlayedThisRound[2];
 int cmbtHeroFrameType[2];
 int cmbtHeroFrameIndex[2];
 int cmbtHeroDataSet[2];
 ulong cmbtHeroLastFidgetTime[2];
 CSprite *cmbtHero[2];
 CSprite *cmbtHeroFlag[2];
 int cmbtHeroFlagFrame[2];
 SLimitData sCmbtHeroLimitData[2];
 SLimitData sCmbtHeroFlagLimitData[2];
 std::vector< SpellID > EagleEyeSpellLearned[2];
 uchar ArmyEffected[2][20];
 bool IsHuman[2];
 bool IsLocalHuman[2];
 int iPlayer[2];
 bool bArtifactCast[2];
 int bSpellsCast[2];
 int numArmies[2];
 armyGroup *ArmyGroups[2];
 army Armies[2][21];
 ///////////////////////
 int unknown1;
 //////////////////////
 int turnSinceLastEnchanter[2];
 bool OnNativeTerrain[2];
 enum TCreatureType SummonedElemental[2];
 int SideRetreated;
 int currArmyGroup;
 int currArmyIndex;
 int currControl;
 int autoCombatOn;
 army *currTroop;
 uchar selectorOn;
 int selectorIndex;
 int highlighterOn;
 int highlighterIndex;
 int lastMoveToIndex;
 int lastCommand;
 int combatCommand;
 CSprite *CurLoadedSpellIcon;
 int CurLoadedSpellEffect;
 int CurSpellEffectFrame;
 TFortificationLevel fortificationLevel;
 int bBattleOver;
 TCombatWindow *mainWindow;
 int bCombatShowIt;
 iconWidget * iconWidgetWL[ 25 ];
 textWidget * textWidgetWL[ 25 ];
 enum type_combat_cursor attack_cursor[ 12 ];
 int attack_hex[ 12 ];
 enum type_combat_cursor last_attack_cursor;
 int iTtlCombatDirections;
 int iBackgroundFrame;
 bool bCreatureIsDead[2][20];
 bool bSomeCreaturesVanish;
 const char *cBkgName;
 combatManager::adjacency_array AdjacentIndex[187];
 uchar SaveBiggestExtent;
 int LimitToExtent;
 int ComputeExtentOnly;
 SLimitData Extent;
 int winner;
 int SkeletonsCreated;
 enum TCreatureType skeleton_type;
 Bitmap816 *NumberWindow;
 std::vector< combatManager::TObstacle > Obstacles;
 bool InPlacementPhase;
 int turn_number;
 int BattleTacticsAdvantage;
 bool DebugNoSpellLimit;
 bool DebugShowHiddenObjects;
 bool DebugShowBlockedHexes;
 combatManager::TArcher Archers[3];
 bool in_second_phase;
 int OriginalAttackSkill;
 int OriginalDefenseSkill;
 int OriginalPowerSkill;
 int original_mana;
 Bitmap816 *wallImages[18][5];
 int wallLevel[18];
 int wall_frame[18];
 type_point map_point;
 Bitmap816 *CombatCellGrid;
 Bitmap816 *CombatCellShaded;
 int ObstacleAnimationFrame;
 bool bCreatureEffect[2][20];
 bool bHeroEffect[2];
 bool bFlagEffect[2];
 bool bArcherEffect[3];
 bool any_action_taken;
 uchar creaturePath[187];
 };
 IDA-База HOMM 3 Discord Server
 
 
				
(This post was last modified: 24.01.2022 15:46 by void_17.)
 |  | 
	| 24.01.2022 15:02 |  | 
	
		| RoseKavalier   
   Posts: 118
 
 | 
			| 
 
				
Code:
 iconWidget* iconWidgetWL[25]; // 76244textWidget* textWidgetWL[25]; // 76344
 
				
(This post was last modified: 24.01.2022 15:18 by RoseKavalier.)
 |  | 
	| 24.01.2022 15:18 |  | 
	
		| void_17   
 Posts: 39
 
 | 
			| 
 
				Ну и тупанул же я!    
Действительно, я почему-то проморгал эти поля, хотя они очевидно там были. 
 
Получается, combatManager разобран абсолютно полностью(кроме поля unknown1). Спустя стольких лет..
			
 IDA-База HOMM 3 Discord Server
 
 
				
(This post was last modified: 24.01.2022 15:42 by void_17.)
 |  | 
	| 24.01.2022 15:38 |  | 
	
		| Berserker   
   
   Posts: 16786
 
 |  | 
	| 24.01.2022 17:23 |  | 
	
		| Ben   
 Posts: 60
 
 | 
			| 
 
				А нет ли у кого-нибудь IDA версии 6.3 ?
			 |  | 
	| 07.07.2022 11:26 |  | 
	
		| igrik   
   Posts: 2821
 
 |  | 
	| 08.07.2022 01:23 |  | 
	
		| Ben   
 Posts: 60
 
 | 
			| 
 
				Вопрос не про то, кто какие раздачи видел. Поэтому если есть такая версия - то хорошо (и тогда можно и поговорить, зачем это нужно), остальные же разговоры - бессмыслица.
			 
				
(This post was last modified: 08.07.2022 08:19 by Ben.)
 |  | 
	| 08.07.2022 08:02 |  | 
	
		| igrik   
   Posts: 2821
 
 |  | 
	| 08.07.2022 09:03 |  | 
	
		| daemon_n   
   
   Posts: 4366
 
 |  | 
	| 08.07.2022 20:23 |  |