Advertisement
expired6978

ItemDataInterface Exchange

Aug 26th, 2015
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. SKSEMessagingInterface          * g_messaging = NULL;
  2. ItemDataInterface           * g_itemDataInterface = NULL;
  3.  
  4. // Query Messaging Interface inside of SKSEPlugin_Query
  5.  
  6.     g_messaging = (SKSEMessagingInterface *)skse->QueryInterface(kInterface_Messaging);
  7.     if (!g_messaging) {
  8.         _ERROR("couldn't get messaging interface");
  9.     }
  10.  
  11.  
  12. // Register a listener inside of SKSEPlugin_Load
  13.  
  14.     if (g_messaging) {
  15.         g_messaging->RegisterListener(g_pluginHandle, "SKSE", SKSEMessageHandler);
  16.     }
  17.  
  18.  
  19. // Implement the handler and exchange interfaces with nioverride
  20.  
  21. void SKSEMessageHandler(SKSEMessagingInterface::Message * message)
  22. {
  23.     switch (message->type)
  24.     {
  25.         case SKSEMessagingInterface::kMessage_PostLoad:
  26.         {
  27.             InterfaceExchangeMessage message;
  28.             g_messaging->Dispatch(g_pluginHandle, InterfaceExchangeMessage::kMessage_ExchangeInterface, (void*)&message, sizeof(InterfaceExchangeMessage*), "nioverride");
  29.             if (message.interfaceMap) {
  30.                 g_itemDataInterface = (ItemDataInterface*)message.interfaceMap->QueryInterface("ItemData");
  31.             }
  32.         }
  33.         break;
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement