Suft
Posts: 1095
|
void_17, Поля битвы при обработке топазом очень похожи на HD Edition - даже местами лучше
Они какой-то другой (похожей) программой обрабатывали
Кстати вот наводка - HD Edition хранят весь интерфейс с не перекраской цветов (синего как в оригинале) а отдельно изображения с другим цветом
ERA HD Edition 0.7.3: 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]; // 76244
textWidget* 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: 16657
|
|
24.01.2022 17:23 |
|
Ben
Posts: 60
|
А нет ли у кого-нибудь IDA версии 6.3 ?
|
|
07.07.2022 11:26 |
|
igrik
Posts: 2819
|
|
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: 2819
|
|
08.07.2022 09:03 |
|
daemon_n
Posts: 4343
|
|
08.07.2022 20:23 |
|