Current time: 03.05.2024, 11:13 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 16502
Post: #1
Восклицание 
Работа с перенесёнными структурами данных
Если Вы используете структуры данных, которые имеют вероятность быть расширенными Эрой или другими плагинами, то для сохранения совместимости и предотвращения вылетов следует поступать следующим образом:

1) Плагинам, которые расширяют структуры, следует в событиях "OnBeforeWoG" или "OnAfterWoG" вызвать функцию
void __stdcall RedirectMemoryBlock (void* OldAddr, int BlockSize, void* NewAddr);

Укажите старый адрес структуры, старый размер структуры и новый адрес структуры.

2) Плагинам, что используют потенциально расширяемые структуры нужно в событии "OnAfterStructRelocations" сохранить себе новые адреса структур через вызов GetRealAddr:
void* __stdcall *GetRealAddr (void* Addr);

Для подписки на события Эры используйте
void (__stdcall *RegisterHandler (TEventHandler Handler, const char* EventName);

Code:
struct TEvent
  {
    char* Name;
    void* Data;
    int   DataSize;
  };
typedef void (__stdcall *TEventHandler) (TEvent* Event);

Таким образом Вы обеспечите корректную работу всех других плагинов и новых версий Эры.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
19.11.2020 17:39
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