//ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ //Ż Ž //Ż Module: Header file for plugin object types Ž //Ż Ž //Ż Description: interface declarations for plugin objects Ž //Ż Ž //Ż This source code module, and all information, data, and algorithms Ž //Ż associated with it, are part of isiMotor Technology (tm). Ž //Ż PROPRIETARY AND CONFIDENTIAL Ž //Ż Copyright (c) 1996-2013 Image Space Incorporated. All rights reserved. Ž //Ż Ž //Ż Change history: Ž //Ż tag.2008.02.15: created Ž //Ż Ž //ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß #ifndef _PLUGIN_OBJECTS_HPP_ #define _PLUGIN_OBJECTS_HPP_ // rF currently uses 4-byte packing ... whatever the current packing is will // be restored at the end of this include with another #pragma. #pragma pack( push, 4 ) //ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ //³ types of plugins ³ //ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ enum PluginObjectType { PO_INVALID = -1, //------------------- PO_GAMESTATS = 0, PO_NCPLUGIN = 1, PO_IVIBE = 2, PO_INTERNALS = 3, PO_RFONLINE = 4, //------------------- PO_MAXIMUM }; //ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ //³ PluginObject ³ //³ - interface used by plugin classes. ³ //ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ class PluginObject { private: class PluginInfo *mInfo; // used by main executable to obtain info about the plugin that implements this object public: void SetInfo( class PluginInfo *p ) { mInfo = p; } // used by main executable class PluginInfo *GetInfo() const { return( mInfo ); } // used by main executable class PluginInfo *GetInfo() { return( mInfo ); } // used by main executable }; //ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ //³ typedefs for dll functions - easier to use a typedef than to type ³ //³ out the crazy syntax for declaring and casting function pointers ³ //ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ typedef const char * ( __cdecl *GETPLUGINNAME )(); typedef PluginObjectType ( __cdecl *GETPLUGINTYPE )(); typedef int ( __cdecl *GETPLUGINVERSION )(); typedef PluginObject * ( __cdecl *CREATEPLUGINOBJECT )(); typedef void ( __cdecl *DESTROYPLUGINOBJECT )( PluginObject *obj ); //ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ //ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ // See #pragma at top of file #pragma pack( pop ) #endif // _PLUGIN_OBJECTS_HPP_