Current time: 09.05.2024, 18:49 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Авторам плагинов
» Заметки по ERA API
Author Message
feanor Offline

Posts: 622
Post: #10

Quote:1) В вопросах скорости — экономия на спичках, даже не серьёзно.
Минимум один раз я впилился в ситуацию, когда мне даже накладные расходы на патчеровский переходник для хука оказались велики. Так что я бы не стал говорить за спички.
   
Quote:У меня так в одном из модулей:
Тут пять объявлений. В оч базовой библиотеке типа старохотовского/третьехдшного Homm3.h их семьдесят, и это потому что я очень ленивый и не добавлял туда еще несколько десятков локально разбросанного по исходникам.
Все переписывать, все в глобальные переменные ><
Еще и возможность сравнительно быстро адаптировать несложные плагины под сод уйдет.

Quote:А теперь представьте, что вы написали 10 плагинов и ушли на пенсию. Чтобы сделать с ними совместимость, мне достаточно в пару мест добавить GetRealAddr в ранее неучтённых указателях. Как и в любом актуальном коде. Но если ваши плагины сами никогда не уведомляют о расширенных структурах и не пользуются GetRealAddr, то беда.
Седьмой плагин сломался, когда Эра 4.0.74 поставила свой хук в то же место, третий не актуален, потому что его функционал все равно ломает пару других популярных плагинов, восьмой отвалился при очередном обновлении HD-мода, еще четыре сдохли, когда Эра 5.70.05 в очередной раз вышла под девизом "Сбросим Пушкина с парохода современности", грохнув какое-то старое легаси.
Общая хрупкость системы? Она у нас давно в отрицательных величинах.
Более того, тут сама пресуппозиция неверна, прям обязательное использование GetRealAddr имеет смысл только если у нас _уже_ нету десятка плагинов от ушедших на покой авторов и кучи разбросанных по сети устаревших примеров, по которым учатся новички.
А если мы вынуждены о них думать..только цепочки косвенных адресаций, только хардкор.

Quote:Вариант HD-мода тоже неплох, но требует искать всегда такие неизменные участки кода (которые часто не выравнены) и надеяться, что там никто команду не пропатчил с полной заменой логики.
а если у нас команда пропатчена с полной заменой логики, то, скорее всего, нам и GetRealAddr не поможет.
Т.е. не искусственный пример для этого - тифон или что-то тифоноподобное (реализующее и альтерветки/апгрейды), что для работы с таблицей монстров заменяет почти все обращения к ней. Казалось бы, указателей нету, но ведь у нас теперь нету и таблицы, на которую можно было бы кидать редирект!
Причем в подавляющем большинстве ненадуманных примеров так и будет по определению - если мы патчим обработчик таблицы, то, скорее всего, нас не устраивает таблица целиком.

Кстати, а что мы делаем с тем фактом, что GetRealAddress не даст нам информации ни о дополнительной части таблицы, ни о её пределах? Как ни крути, нам все равно нужно изворачиваться, это ни разу не серебряная пуля.
Для UN:C это отличный механизм, я не спорю, и плагинам он хотя бы не создает проблем (в отличие от), но я не считаю, что он реально необходим и обязателен.

Quote:Хотя в целом решение лежит на поверхности, его даже в patcher нужно было вводить: Redirect + GetAddress пара позволила бы всем договориться и не ссылаться на код.
Эм, нет, это не сработает. Потому что читаем данные мы не через патчер, а через *(_type_*).
(This post was last modified: 20.11.2020 01:57 by feanor.)
20.11.2020 01:54
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
Авторам плагинов - Berserker - 19.11.2020, 17:39
RE: Авторам плагинов - XEPOMAHT - 19.11.2020, 18:40
RE: Авторам плагинов - Berserker - 19.11.2020, 19:12
RE: Авторам плагинов - XEPOMAHT - 19.11.2020, 20:38
RE: Авторам плагинов - feanor - 19.11.2020, 22:58
RE: Авторам плагинов - Berserker - 19.11.2020, 23:20
RE: Авторам плагинов - Berserker - 19.11.2020, 23:29
RE: Авторам плагинов - XEPOMAHT - 20.11.2020, 00:58
RE: Авторам плагинов - Berserker - 20.11.2020, 01:15
RE: Авторам плагинов - feanor - 20.11.2020 01:54
RE: Авторам плагинов - Berserker - 20.11.2020, 02:41
RE: Авторам плагинов - feanor - 20.11.2020, 13:04
RE: Авторам плагинов - XEPOMAHT - 20.11.2020, 13:21
RE: Авторам плагинов - Berserker - 20.11.2020, 17:39

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group