Current time: 23.03.2024, 03:40 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Новые типы почв для WoG/Era - Идеи
» Идеи и обсуждение
Author Message
Grossmaster Offline
Moderators

Posts: 564
Post: #16

Image: 242412111111.png


Новая графика для WoG
30.01.2021 10:09
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16449
Post: #17

Прекрасный ландшафт. С каждым выпуском картинка всё более преображается в лучшую сторону.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
30.01.2021 15:16
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #18

Привет, друзья, я тут заинтересовался темой добавления ландшафтов и постепенно начал искать места в коде, а также функции, которые надо переделать. Информация еще очень сырая, и в будущем я, разумеется, ее дополню. Я не претендую на правильность, любые дополнения или исправления приветствуются. Мне на самом деле очень хочется увидеть в игре новые ландшафты, вот я и решил сделать первый шаг.

Маленький комментарий: там, где стоит значение 0xA, используется либо «меньше» либо «больше/равно».

sub_00401000 – 2 values (401014 – 0xA; 40101E – 0xA)
sub_00401370 – 2 values (40138E – 0xA; 401384 – 0xA)
sub_00410B60 – unknown (похоже есть пара мест, где используется число 8 как последний проходимый ландшафт)

Список ландшафтов:
0 - Грязь
1 - Песок
2 - Трава
3 - Снег
4 - Болото
5 - Скалы
6 - Подземелье
7 - Лава
8 - Вода
9 - Пропасть

Draw_ObjBlocks_0x4114F0 - то же, что и в sub_00410B60. Советую поглядеть, в каких случаях вызывается 404440 (TerrMaskError)

4FD470 GetTerrainOverlayTypeOfMapItem — (4FD51E - 08) ??? Возможно тоже относится сюда

Не по теме, но пусть будет:
4FD590 GetTypeOfLandModifier — в этой функции находится switch, в котором проверяются типы накладной почвы для последующего добавления бонуса. Это дело настраивается и через ERM см. BU:G
Code:
switch (GetTerrainOverlayTypeOfMapItem(this))
  {
    case 46:
      result = 1;
      break;
    case 226:
      result = 7;
      break;
    case 228:
      result = 6;
      break;
    case 229:
      result = 9;
      break;
    case 231:
      result = 8;
      break;
    default:
      result = -1;
      break;
  }

4FF280 DoGetObjectEnterance – 1 value (4FF2A2 – 0x08)

5031B0 LoadMap_SetUpRandomDwellings – 1 value ??? (503302 – 0x08)

503DD0 LoadMap_ReadObjectType – 8 мест (см. циклы do while)

sub_00504290 — тут похоже дофига проверок

sub_00504550 — тоже немало, так что пока без деталей

sub_005056B0 — такая же ситуация

505C60 AddDeleteToSquarePassible — такая же ситуация

506170 LoadMap_SetupMapItemsDrawListsForPosition - «506278 cmp eax, 8» Проверка на воду???

sub_00506570 — 1 value (5065ED – 0xA)

sub_005066D0 — 1 value (506879 – 0xA)

sub_00506E70 — 1 value (506E7C – 0xA)

Осторожно, много эмоционального удивления! Если бы я просто знал о том, что следующая сотня следующие две сотни функций существуют, то не стал бы принимать это близко к сердцу, но я не знал… Оригинальные комментарии сохранены.

"Далее идет десяток идентичных функций, смысл создания которых мне пока не ясен. Если все вы целом одно и тоже, то почему бы не использовать одну с парой логических операторов. Накрайняк ведь можно было сунуть данную проверку в какую-то отдельную функцию и не копировать ее кучу раз..."

_______________________________________________________________
Всю эту кучу надо обработать циклами, используя смещения, а лучше всего просто забыть и придумать альтернативу. Как и где данные функции используются — непонятно, но они есть, и это факт.

sub_005143C0 - 1 value (5143DA – 0xA)

sub_00514C70 - 1 value? (514D44 – 8)

sub_005168B0 - 1 value (5168BA – 0xA)

531D80 RMGMapItems_CantPlace – возможно, в данной функции тоже надо кое-что поправить

sub_005321C0 — 5322CF cmp esi, 9 — проверка на пропасть?

sub_00532370 - ?

sub_00537890 — 537D13 cmp dl, 9 — проверка на пропасть?

RMG_005492E0 — вот тут похоже есть интересное, желательно изучить внимательно. Сходу бросилось в глаза: 54998B – 0xA, но там похоже имеются проверки на воду и на что-то еще

54B320 RMG_WriteObjectPrototype – 4 values (54B4B5 – 0xA; 54B500 – 0xA; 54B51C – 0xA; 54B567 – 0xA)


Создал новый глобальный мод: WoG Ultra Edition
(This post was last modified: 30.01.2021 17:06 by Raistlin.)
30.01.2021 17:05
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 622
Post: #19

Я бы с другого конца делал, сделал бы hex-редактором карту с пятном одиннадцатой почвы и правил бы игру, пока она не перестанет на этой карте вылетать (сначала просто, а потом на всяких случаях типа битвы, осады, хинтов, копания, музыки и так далее)

Quote:"Далее идет десяток идентичных функций, смысл создания которых мне пока не ясен. Если все вы целом одно и тоже, то почему бы не использовать одну с парой логических операторов. Накрайняк ведь можно было сунуть данную проверку в какую-то отдельную функцию и не копировать ее кучу раз..."
Так извивы компилятора, скорее всего. Явно же какая-то автогенерация.
30.01.2021 23:29
Find all posts by this user Quote this message in a reply
RoseKavalier Offline

Posts: 118
Post: #20

(30.01.2021 17:05)Raistlin Wrote:  "Далее идет десяток идентичных функций, смысл создания которых мне пока не ясен. Если все вы целом одно и тоже, то почему бы не использовать одну с парой логических операторов. Накрайняк ведь можно было сунуть данную проверку в какую-то отдельную функцию и не копировать ее кучу раз..."

Static initializers for global or static variables. A lot of these are never used (no references outside initialization).
e.g.
Code:
std::bitset<10> g_Bitset = std::bitset<10>().set();
31.01.2021 06:44
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #21

(31.01.2021 06:44)RoseKavalier Wrote:  Static initializers for global or static variables. A lot of these are never used (no references outside initialization).
e.g.
Code:
std::bitset<10> g_Bitset = std::bitset<10>().set();
Thanks, I understood.

(30.01.2021 23:29)feanor Wrote:  Я бы с другого конца делал, сделал бы hex-редактором карту с пятном одиннадцатой почвы и правил бы игру, пока она не перестанет на этой карте вылетать (сначала просто, а потом на всяких случаях типа битвы, осады, хинтов, копания, музыки и так далее)
Спасибо за дельный совет! По началу я, честно говоря, и сам не знал, что я делаю, думал, что просто раскопаю десятка два адресов и забуду об этой теме на какое-то время...

(30.01.2021 23:29)feanor Wrote:  Так извивы компилятора, скорее всего. Явно же какая-то автогенерация.
Dash1


Создал новый глобальный мод: WoG Ultra Edition
31.01.2021 15:09
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4333
Post: #22

Grossmaster, картина восхитительная!!!


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
31.01.2021 16:02
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2265
Post: #23

(30.01.2021 23:29)feanor Wrote:  Я бы с другого конца делал, сделал бы hex-редактором карту с пятном одиннадцатой почвы и правил бы игру, пока она не перестанет на этой карте вылетать (сначала просто, а потом на всяких случаях типа битвы, осады, хинтов, копания, музыки и так далее)

Самое первое, что нужно сделать, (и самое трудное) - добавление новой почвы в сам редактор карт. В саму игру - не сложно (там расширяется соответствующий менеджер + весь сопутствующий ему код).
31.01.2021 23:00
Find all posts by this user Quote this message in a reply
Grossmaster Offline
Moderators

Posts: 564
Post: #24

Новая публикация по лугу:
- Я доделал до приличного уровня графику гор
- Приятный момент: я более менее хорошо научился рисовать деревья на карте (почти не отличишь от хотовских).
- С цветовой гаммой самой почвы я так и не определился. Испробовал ~8 цветов от салатового до желтоватого. В результате за основу я взял палитру цветов высокогорья, так как она наиболее аутентично вписывается в общую гамму.

Image: lug12.png


Новая графика для WoG
(This post was last modified: 08.03.2021 21:57 by Grossmaster.)
08.03.2021 21:26
Visit this user's website Find all posts by this user Quote this message in a reply
Night Offline

Posts: 462
Post: #25

Ооо, а вот это уже выглядит очень классно 132 И цвет травы не режет глаз и горы более вписываются.
08.03.2021 21:59
Find all posts by this user Quote this message in a reply
Sandris Offline

Posts: 410
Post: #26

Очень хорошая реализация и нужный для игры проект! 132
08.03.2021 23:35
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2265
Post: #27

В редактор добавил 2 кнопки для 2-х новых ландшафтов. Осталось найти код, обрабатывающий эти кнопки, и можно пробовать высокогорье с пустошью в воговском редакторе карт.

Image: e6088923221e.png
09.03.2021 17:14
Find all posts by this user Quote this message in a reply
Grossmaster Offline
Moderators

Posts: 564
Post: #28

XEPOMAHT, Ты просто молодец, это похвальная работа


Новая графика для WoG
09.03.2021 17:17
Visit this user's website Find all posts by this user Quote this message in a reply
Grossmaster Offline
Moderators

Posts: 564
Post: #29

Как будут обстоять дела с текстовиками объектов? Будет расширено количество чисел в строке или же ожидается новый текстовик?


Новая графика для WoG
09.03.2021 17:26
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2265
Post: #30

(09.03.2021 17:26)Grossmaster Wrote:  Как будут обстоять дела с текстовиками объектов? Будет расширено количество чисел в строке или же ожидается новый текстовик?

Скорее всего текстовик будет такой же как в HoA, т.е. формат немного поменяется.
09.03.2021 17:57
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group