├── .editorconfig ├── .gitignore ├── Blech └── Blech.h ├── Detours ├── Detours from Microsoft.url ├── inc │ └── detours.h └── lib │ ├── detours.lib │ └── detours.pdb ├── ISXDK └── 35 │ ├── bin │ ├── Struct2LSType.exe │ └── mkisx.exe │ ├── doc │ └── ISXDK.txt │ ├── include │ ├── ColumnRenderer.h │ ├── FileList.h │ ├── ISInterface.h │ ├── ISUI │ │ ├── LGUI.h │ │ ├── LGUIButton.h │ │ ├── LGUICheckBox.h │ │ ├── LGUIComboBox.h │ │ ├── LGUICommandButton.h │ │ ├── LGUICommandCheckBox.h │ │ ├── LGUICommandEntry.h │ │ ├── LGUIConsole.h │ │ ├── LGUIContextMenu.h │ │ ├── LGUIElement.h │ │ ├── LGUIEmbeddedScript.h │ │ ├── LGUIFont.h │ │ ├── LGUIFrame.h │ │ ├── LGUIGauge.h │ │ ├── LGUIHudElement.h │ │ ├── LGUIListBox.h │ │ ├── LGUIManager.h │ │ ├── LGUIMap.h │ │ ├── LGUIMessageBox.h │ │ ├── LGUIScreen.h │ │ ├── LGUIScrollBar.h │ │ ├── LGUISlider.h │ │ ├── LGUITabControl.h │ │ ├── LGUITable.h │ │ ├── LGUIText.h │ │ ├── LGUITextEdit.h │ │ ├── LGUITextEntry.h │ │ ├── LGUITexture.h │ │ ├── LGUITooltip.h │ │ ├── LGUITree.h │ │ ├── LGUIVariableGauge.h │ │ ├── LGUIVariableSlider.h │ │ └── LGUIWindow.h │ ├── ISXDK.h │ ├── ISXInterface.h │ ├── Index.h │ ├── LavishScript │ │ ├── LSSTLTypes.h │ │ ├── LSType.h │ │ └── LavishScript.h │ ├── Queue.h │ ├── Services.h │ ├── Threading.h │ ├── WinThreading.h │ └── utf8string.h │ ├── lib │ └── vs14 │ │ ├── ISUI.lib │ │ ├── ISUI_md.lib │ │ ├── ISXDK.lib │ │ └── ISXDK_md.lib │ ├── lib64 │ └── vs14 │ │ ├── ISUI.lib │ │ ├── ISUI_md.lib │ │ ├── ISXDK.lib │ │ └── ISXDK_md.lib │ └── samples │ └── ISXFullTemplate │ ├── Commands.cpp │ ├── Commands.h │ ├── DataTypeList.h │ ├── DataTypes.cpp │ ├── DataTypes.h │ ├── ISXFullTemplate.cpp │ ├── ISXFullTemplate.h │ ├── ISXFullTemplate.vcproj │ ├── ISXFullTemplateServices.h │ ├── LGUIFullTemplateFrame.cpp │ ├── LGUIFullTemplateFrame.h │ ├── Services.cpp │ ├── Services.h │ ├── TopLevelObjects.cpp │ └── TopLevelObjects.h ├── ISXEQ.NET ├── EQTypes │ ├── EQAltAbility.cs │ ├── EQArgb.cs │ ├── EQBody.cs │ ├── EQBuff.cs │ ├── EQCharacter.cs │ ├── EQClass.cs │ ├── EQCorpse.cs │ ├── EQCurrentZone.cs │ ├── EQDZMember.cs │ ├── EQDeity.cs │ ├── EQDynamicZone.cs │ ├── EQEvolvingItem.cs │ ├── EQFellowship.cs │ ├── EQFellowshipMember.cs │ ├── EQGround.cs │ ├── EQGroup.cs │ ├── EQGroupMember.cs │ ├── EQHeading.cs │ ├── EQInvSlot.cs │ ├── EQItem.cs │ ├── EQMacroQuest.cs │ ├── EQMerchant.cs │ ├── EQRace.cs │ ├── EQRaid.cs │ ├── EQRaidMember.cs │ ├── EQSkill.cs │ ├── EQSpawn.cs │ ├── EQSpell.cs │ ├── EQSwitch.cs │ ├── EQTicks.cs │ ├── EQTime.cs │ ├── EQTimer.cs │ ├── EQWindow.cs │ └── EQZone.cs ├── ISXEQ.NET.csproj ├── ISXEQ.cs └── Properties │ └── AssemblyInfo.cs ├── ISXEQ.sln ├── ISXEQ ├── PostBuild.bat └── isxGamesCommon.props ├── ISXEQClient.h ├── ISXEQLegacy ├── ISXEQLegacy.cpp ├── ISXEQLegacy.h ├── ISXEQLegacy.vcxproj ├── ISXEQLegacy.vcxproj.filters ├── ISXEQLegacyEngine.cpp ├── ISXEQLegacyEngine.h └── LegacyGlobals.cpp ├── MQ2-API.chm ├── MQ2Auth.exe ├── MQ2AutoLogin ├── MQ2AutoLogin.cpp ├── MQ2AutoLogin.vcxproj └── MQ2AutoLogin.vcxproj.filters ├── MQ2Bzsrch ├── MQ2Bzsrch.cpp ├── MQ2Bzsrch.vcxproj ├── MQ2Bzsrch.vcxproj.filters ├── netstream.cpp └── netstream.h ├── MQ2Chat ├── ISXEQChat.cpp ├── ISXEQChat.h ├── ISXEQChat.vcxproj ├── ISXEQChat.vcxproj.filters ├── MQ2Chat.cpp ├── MQ2Chat.vcxproj └── MQ2Chat.vcxproj.filters ├── MQ2ChatWnd ├── ISXEQChatWnd.cpp ├── ISXEQChatWnd.h ├── ISXEQChatWnd.vcxproj ├── ISXEQChatWnd.vcxproj.filters ├── MQ2ChatWnd.cpp ├── MQ2ChatWnd.vcxproj └── MQ2ChatWnd.vcxproj.filters ├── MQ2CustomBinds ├── ISXEQCustomBinds.cpp ├── ISXEQCustomBinds.h ├── ISXEQCustomBinds.vcxproj ├── ISXEQCustomBinds.vcxproj.filters ├── MQ2CustomBinds.cpp ├── MQ2CustomBinds.vcxproj └── MQ2CustomBinds.vcxproj.filters ├── MQ2EQBugFix ├── MQ2EQBugFix.cpp ├── MQ2EQBugFix.vcxproj └── MQ2EQBugFix.vcxproj.filters ├── MQ2EQIM ├── ISXEQEQIM.cpp ├── ISXEQEQIM.h ├── ISXEQEQIM.vcxproj ├── ISXEQEQIM.vcxproj.filters ├── MQ2EQIM.cpp ├── MQ2EQIM.vcxproj └── MQ2EQIM.vcxproj.filters ├── MQ2HUD ├── MQ2HUD.cpp ├── MQ2HUD.vcxproj └── MQ2HUD.vcxproj.filters ├── MQ2Irc ├── MQ2Irc.cpp ├── MQ2Irc.vcxproj ├── MQ2Irc.vcxproj.filters └── mqirc.h ├── MQ2ItemDisplay ├── ISXEQItemDisplay.cpp ├── ISXEQItemDisplay.h ├── ISXEQItemDisplay.vcxproj ├── ISXEQItemDisplay.vcxproj.filters ├── MQ2ItemDisplay.cpp ├── MQ2ItemDisplay.rc ├── MQ2ItemDisplay.vcxproj ├── MQ2ItemDisplay.vcxproj.filters ├── MQUI_CompareTipWnd.xml └── resource.h ├── MQ2Labels ├── ISXEQLabels.cpp ├── ISXEQLabels.h ├── ISXEQLabels.vcxproj ├── ISXEQLabels.vcxproj.filters ├── MQ2Labels.cpp ├── MQ2Labels.vcxproj └── MQ2Labels.vcxproj.filters ├── MQ2Main ├── ArrayClass.h ├── DataTypeList.h ├── DebugHandler.h ├── EQClasses.cpp ├── EQClasses.h ├── EQData(Test).h ├── EQUIStructs(Test).h ├── EQUIStructs(beta).h ├── EqData(beta).h ├── ISXEQ.vcxproj ├── ISXEQ.vcxproj.filters ├── ISXEQ │ ├── ISXEQ.cpp │ ├── ISXEQ.h │ ├── ISXEQCommandAPI.cpp │ ├── ISXEQCommandList.h │ ├── ISXEQCommands.cpp │ ├── ISXEQCommands.h │ ├── ISXEQDataTypes.cpp │ ├── ISXEQDataTypes.h │ ├── ISXEQServices.cpp │ ├── ISXEQServices.h │ ├── ISXEQTopLevelObjects.cpp │ ├── ISXEQTopLevelObjects.h │ ├── ISXEQUtilities.cpp │ └── ISXEQUtilities.h ├── MQ2Auth.cpp ├── MQ2Benchmarks.cpp ├── MQ2ChatHook.cpp ├── MQ2CleanUI.cpp ├── MQ2CommandAPI.cpp ├── MQ2Commands.cpp ├── MQ2Commands.h ├── MQ2DInput.cpp ├── MQ2Data.cpp ├── MQ2DataAPI.cpp ├── MQ2DataTypes.cpp ├── MQ2DataTypes.h ├── MQ2DataVars.cpp ├── MQ2DetourAPI.cpp ├── MQ2Globals-private_default.cpp ├── MQ2Globals-private_default.h ├── MQ2Globals.cpp ├── MQ2Globals.h ├── MQ2Inlines.h ├── MQ2Internal.h ├── MQ2KeyBinds.cpp ├── MQ2MacroCommands.cpp ├── MQ2Main.cpp ├── MQ2Main.h ├── MQ2Main.rc ├── MQ2Main.vcxproj ├── MQ2Main.vcxproj.filters ├── MQ2Mouse.cpp ├── MQ2ParseAPI.cpp ├── MQ2PluginHandler.cpp ├── MQ2Prototypes.h ├── MQ2Pulse.cpp ├── MQ2Spawns.cpp ├── MQ2TopLevelObjects.h ├── MQ2Utilities.cpp ├── MQ2Windows.cpp ├── SharedClasses.h ├── SpellEffects.h ├── actordef.h ├── combines.h ├── dikeys.h ├── eqgame(Test).h ├── eqgame(beta).h ├── factionnames.h ├── itemtypes.h ├── resource.h └── skills.h ├── MQ2Map ├── ISXEQMap.cpp ├── ISXEQMap.h ├── ISXEQMap.vcxproj ├── ISXEQMap.vcxproj.filters ├── ISXEQMapCommands.cpp ├── MQ2Map.cpp ├── MQ2Map.h ├── MQ2Map.vcxproj ├── MQ2Map.vcxproj.filters ├── MQ2MapAPI.cpp └── MQ2MapCommands.cpp ├── MQ2Plugin.h ├── MQ2PluginDevelopment.html ├── MQ2TargetInfo ├── LocalDB.h ├── MQ2TargetInfo.cpp ├── MQ2TargetInfo.ini ├── MQ2TargetInfo.rc ├── MQ2TargetInfo.vcxproj ├── MQ2TargetInfo.vcxproj.filters ├── db1.bin └── resource.h ├── MQ2Template ├── ISXEQTemplate.cpp ├── ISXEQTemplate.h ├── ISXEQTemplate.vcxproj ├── ISXEQTemplate.vcxproj.filters ├── MQ2Template.cpp ├── MQ2Template.vcxproj ├── MQ2Template.vcxproj.filters └── ReadMe.txt ├── MacroQuest2.sln ├── Plugin.Debug.ISXEQ.props ├── Plugin.Debug.props ├── Plugin.Release.ISXEQ.props ├── Plugin.Release.props ├── Release ├── Changes-ISXEQ.txt ├── Changes.txt ├── GPL.txt ├── ItemDB.txt ├── MQ2Ic.dll ├── MacroQuest2.exe ├── MacroQuest_default.ini ├── Macros │ ├── ArrayTest.mac │ ├── Arrows.mac │ ├── Cams.mac │ ├── DoorTests.mac │ ├── EventTest.mac │ ├── Fish.mac │ ├── Follow.mac │ ├── Inventory.mac │ ├── ShowBonuses.mac │ └── uservarstest.mac ├── locations.txt └── readme.chm ├── dxsdk90 ├── include │ └── dinput.h └── readme.txt ├── makezip.bat ├── mkplugin.exe ├── mkplugin ├── mkplugin.cpp ├── mkplugin.vcxproj └── mkplugin.vcxproj.filters ├── moveitem.h ├── moveitem2.h ├── mq2telnet ├── ISXEQTelnet.cpp ├── ISXEQTelnet.h ├── ISXEQTelnet.vcxproj ├── ISXEQTelnet.vcxproj.filters ├── Telnet.h ├── TelnetServer.cpp ├── TelnetServer.h ├── WinTelnet.cpp ├── WinTelnet.h ├── mq2telnet.cpp ├── mq2telnet.vcxproj └── mq2telnet.vcxproj.filters └── zipit.lst /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Unix-style newlines with a newline ending every file 7 | [*] 8 | indent_style = tab 9 | charset = utf-8 10 | end_of_line = crlf 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.dll 2 | !MQ2Ic.dll 3 | 4 | *.exp 5 | *.map 6 | *.opensdf 7 | 8 | *.pdb 9 | !/Detours/lib*/*.pdb 10 | 11 | *.exe 12 | !MacroQuest2.exe 13 | 14 | *.sdf 15 | *.suo 16 | *.VC.opendb 17 | *.VC.db 18 | *.vcxproj.user 19 | *.user 20 | .vs/ 21 | Debug/ 22 | Intermediate/ 23 | ISXDK/ 24 | ISXEQ*Intermediate 25 | MQ2Main/MQ2Auth0.h 26 | UpgradeLog.htm 27 | packages/ 28 | Release/ 29 | .vscode/ 30 | -------------------------------------------------------------------------------- /Detours/Detours from Microsoft.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=http://research.microsoft.com/sn/detours/ 3 | Modified=502F1701B323C20130 4 | -------------------------------------------------------------------------------- /Detours/lib/detours.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/Detours/lib/detours.lib -------------------------------------------------------------------------------- /Detours/lib/detours.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/Detours/lib/detours.pdb -------------------------------------------------------------------------------- /ISXDK/35/bin/Struct2LSType.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/ISXDK/35/bin/Struct2LSType.exe -------------------------------------------------------------------------------- /ISXDK/35/bin/mkisx.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/ISXDK/35/bin/mkisx.exe -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUI.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifdef LGUI_LIBRARY 3 | #define LGUI_API 4 | #else 5 | #ifdef LGUI_EXPORTS 6 | #define LGUI_API __declspec(dllexport) 7 | #else 8 | #define LGUI_API __declspec(dllimport) 9 | #endif 10 | #endif 11 | 12 | #include 13 | //#include 14 | #include 15 | using namespace std; 16 | 17 | #define LGUI_VERSION 0x12 18 | #define LGUI_VERSIONSTRING "0.73" 19 | 20 | class LGUIPreParse 21 | { 22 | public: 23 | LGUI_API LGUIPreParse(const char *Text); 24 | LGUI_API LGUIPreParse(); 25 | LGUI_API ~LGUIPreParse(); 26 | 27 | LGUI_API void Clear(); 28 | LGUI_API void PreParse(const char *Text); 29 | LGUI_API bool RetrieveProcessedText(char *buf, unsigned int buflen); 30 | 31 | inline const char *GetOriginalText() 32 | { 33 | return OriginalText; 34 | } 35 | 36 | inline unsigned int GetID() 37 | { 38 | return ID; 39 | } 40 | protected: 41 | const char *OriginalText; 42 | unsigned int ID; 43 | }; 44 | 45 | class LGUIDataSequence 46 | { 47 | public: 48 | LGUI_API LGUIDataSequence(); 49 | LGUI_API LGUIDataSequence(const char *DataSequence); 50 | LGUI_API ~LGUIDataSequence(); 51 | 52 | LGUI_API void Clear(); 53 | LGUI_API void PreParse(const char *DataSequence); 54 | LGUI_API bool RetrieveOriginalText(char *buf, unsigned int buflen); 55 | LGUI_API bool RetrieveProcessedText(char *buf, unsigned int buflen); 56 | LGUI_API bool RetrieveProcessedResult(LSOBJECT &Result); 57 | 58 | inline unsigned int GetID() 59 | { 60 | return ID; 61 | } 62 | 63 | protected: 64 | unsigned int ID; 65 | }; 66 | 67 | #include "LGUIEmbeddedScript.h" 68 | #include "LGUITexture.h" 69 | #include "LGUIFont.h" 70 | #include "LGUIElement.h" 71 | #include "LGUIFrame.h" 72 | #include "LGUIContextMenu.h" 73 | #include "LGUIWindow.h" 74 | #include "LGUIText.h" 75 | #include "LGUITextEntry.h" 76 | #include "LGUITextEdit.h" 77 | #include "LGUICommandEntry.h" 78 | #include "LGUIConsole.h" 79 | #include "LGUIHudElement.h" 80 | #include "LGUIScreen.h" 81 | #include "LGUIButton.h" 82 | #include "LGUICommandButton.h" 83 | #include "LGUICheckBox.h" 84 | #include "LGUICommandCheckBox.h" 85 | #include "LGUISlider.h" 86 | #include "LGUIVariableSlider.h" 87 | #include "LGUIScrollBar.h" 88 | #include "LGUIMessageBox.h" 89 | #include "LGUIGauge.h" 90 | #include "LGUIVariableGauge.h" 91 | #include "LGUIListBox.h" 92 | #include "LGUIComboBox.h" 93 | #include "LGUITabControl.h" 94 | #include "LGUITooltip.h" 95 | #include "LGUITable.h" 96 | #include "LGUIMap.h" 97 | #include "LGUITree.h" 98 | #include "LGUIManager.h" 99 | 100 | #define SELECT(possiblevalue,defaultvalue) ((possiblevalue)?(possiblevalue):(defaultvalue)) -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIButton.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | struct _CreateButton : public _CreateElement 5 | { 6 | char *Text; // may be 0 for no text 7 | // char *Font; 8 | // unsigned int FontSize; // may be 0 to use default 9 | // unsigned int TextColor; // may be 0 to use default (use 0xFF000000 for solid black) 10 | 11 | 12 | _CreateFont Font; 13 | 14 | unsigned int BackgroundColor; // may be 0 to use default (0xFF000000 for solid black) 15 | 16 | bool DefaultTextures; // // You may create textures directly if you do not use default textures flag 17 | 18 | unsigned int Border; 19 | unsigned int BorderColor; // may be 0 to use default (use 0xFF000000 for solid black) 20 | 21 | }; 22 | 23 | class LGUIButton : 24 | public LGUIElement 25 | { 26 | public: 27 | LGUI_API LGUIButton(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 28 | LGUI_API ~LGUIButton(void); 29 | LGUI_API class LSTypeDefinition *GetLSType(); 30 | 31 | LGUI_API void Create(_CreateButton &CreateInfo, class XMLNode *pTemplate=0); 32 | 33 | LGUI_API void Render(); 34 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 35 | LGUI_API bool IsTypeOf(char *TestFactory); 36 | 37 | LGUI_API bool OnLMouseUp(POINT2I &pt); 38 | LGUI_API bool OnLMouseDown(POINT2I &pt); 39 | 40 | // -- XML Properties -- 41 | LGUIPreParse Text; 42 | 43 | LGUIFont *pFont; 44 | 45 | unsigned int BackgroundColor; 46 | unsigned int Border; 47 | unsigned int BorderColor; 48 | 49 | LGUITexture *pTexture; 50 | LGUITexture *pTexturePressed; 51 | LGUITexture *pTextureHover; 52 | // -------------------- 53 | 54 | bool bDown; 55 | }; 56 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUICheckBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUICheckBox : 5 | public LGUIElement 6 | { 7 | public: 8 | LGUI_API LGUICheckBox(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 9 | LGUI_API ~LGUICheckBox(void); 10 | LGUI_API class LSTypeDefinition *GetLSType(); 11 | 12 | LGUI_API void Render(); 13 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 14 | LGUI_API bool IsTypeOf(char *TestFactory); 15 | 16 | LGUI_API bool OnLMouseUp(POINT2I &pt); 17 | LGUI_API bool OnLMouseDown(POINT2I &pt); 18 | 19 | // -- XML Properties -- 20 | LGUIPreParse Text; 21 | LGUIFont *pFont; 22 | 23 | LGUITexture *pTexture; 24 | LGUITexture *pTexturePressed; 25 | LGUITexture *pTextureHover; 26 | LGUITexture *pTextureChecked; 27 | LGUITexture *pTextureCheckedPressed; 28 | LGUITexture *pTextureCheckedHover; 29 | 30 | // -------------------- 31 | 32 | bool bDown; 33 | bool bChecked; 34 | }; 35 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIComboBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIComboBox : 4 | public LGUIElement 5 | { 6 | public: 7 | LGUI_API LGUIComboBox(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | LGUI_API ~LGUIComboBox(void); 9 | LGUI_API class LSTypeDefinition *GetLSType(); 10 | 11 | LGUI_API void Render(); 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | LGUI_API void RecalculateSize(bool RecalculateChildren); 15 | LGUI_API void OnNotify(LGUIElement *pElement, unsigned int Notification, UINT_PTR Value); 16 | LGUI_API bool OnLMouseUp(POINT2I &pt); 17 | LGUI_API bool OnLMouseDown(POINT2I &pt); 18 | LGUI_API void OnLMouseDownOther(LGUIElement *pOther); 19 | 20 | // -- XML Properties -- 21 | LGUITexture *pTexture; 22 | LGUITexture *pButtonTexture; 23 | LGUIFont *pFont; 24 | 25 | unsigned int Border; 26 | 27 | unsigned int FullHeight; 28 | 29 | 30 | unsigned int ButtonWidth; 31 | 32 | LGUIEmbeddedScript *pOnSelect; 33 | // ---------------------- 34 | 35 | 36 | LGUIListBox *pListBox; 37 | bool bDown; 38 | unsigned int NormalHeight; 39 | int Selection; 40 | }; 41 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUICommandButton.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUICommandButton : 5 | public LGUIButton 6 | { 7 | public: 8 | LGUI_API LGUICommandButton(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 9 | LGUI_API ~LGUICommandButton(void); 10 | // LGUI_API class LSTypeDefinition *GetLSType(); 11 | 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | LGUI_API bool OnLMouseUp(POINT2I &pt); 16 | 17 | // -- XML Properties -- 18 | 19 | char *Command; 20 | char *Console; 21 | // -------------------- 22 | 23 | }; 24 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUICommandCheckBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUICommandCheckBox : 5 | public LGUICheckBox 6 | { 7 | public: 8 | LGUI_API LGUICommandCheckBox(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 9 | LGUI_API ~LGUICommandCheckBox(void); 10 | // LGUI_API class LSTypeDefinition *GetLSType(); 11 | 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | LGUI_API bool OnLMouseUp(POINT2I &pt); 16 | LGUI_API void Render(); 17 | 18 | // -- XML Properties -- 19 | LGUIPreParse Data; 20 | 21 | char *Command; 22 | char *CommandChecked; 23 | char *Console; 24 | 25 | // -------------------- 26 | 27 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUICommandEntry.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUItextentry.h" 3 | 4 | class LGUICommandEntry : 5 | public LGUITextEntry 6 | { 7 | public: 8 | LGUI_API LGUICommandEntry(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 9 | LGUI_API ~LGUICommandEntry(void); 10 | LGUI_API bool IsTypeOf(char *TestFactory); 11 | // LGUI_API class LSTypeDefinition *GetLSType(); 12 | 13 | LGUI_API virtual bool OnKeyDown(unsigned int VKey); 14 | LGUI_API virtual void HandleEnter(); 15 | LGUI_API virtual void PasteClipboard(); 16 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 17 | 18 | LGUI_API void OnCommand(char *Text); 19 | 20 | // 21 | char *Console; 22 | 23 | // 24 | unsigned int CmdHistorySize; 25 | char **CmdHistory; 26 | 27 | int HistoryLine; 28 | int HistoryView; 29 | int HistoryLines; 30 | 31 | void InsertCmdHistory(char *Text); 32 | LGUIEmbeddedScript *pOnCommand; 33 | }; 34 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIConsole.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUIConsoleSelector 5 | { 6 | public: 7 | LGUI_API LGUIConsoleSelector(class LGUIConsole *pConsole); 8 | LGUI_API LGUIConsoleSelector(const char *FullyQualifiedName); 9 | LGUI_API ~LGUIConsoleSelector(); 10 | protected: 11 | char PreviousConsole[1024]; 12 | }; 13 | 14 | 15 | class LGUIConsole : 16 | public LGUIElement 17 | { 18 | public: 19 | LGUI_API LGUIConsole(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 20 | LGUI_API ~LGUIConsole(void); 21 | LGUI_API class LSTypeDefinition *GetLSType(); 22 | 23 | LGUI_API bool IsTypeOf(char *TestFactory); 24 | LGUI_API void SizeRecalculated(bool Changed); 25 | LGUI_API void OnNotify(LGUIElement *pElement, unsigned int Notification, UINT_PTR Value); 26 | 27 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 28 | LGUI_API void Render(); 29 | LGUI_API bool OnMouseMove(POINT2I &pt); 30 | LGUI_API bool OnMouseWheel(int Offset); 31 | LGUI_API bool OnLMouseUp(POINT2I &pt); 32 | LGUI_API bool OnLMouseDown(POINT2I &pt); 33 | 34 | LGUI_API virtual void HandlePageUp(); 35 | LGUI_API virtual void HandlePageDown(); 36 | LGUI_API virtual void HandleUp(); 37 | LGUI_API virtual void HandleDown(); 38 | 39 | LGUI_API void SetFontSize(unsigned int NewHeight); 40 | LGUI_API void SnapToGrid(POINT2I &pt); 41 | LGUI_API void CopySelection(); 42 | 43 | 44 | LGUI_API void SplitFixed(char *in, size_t MaxWidth); 45 | LGUI_API void Clear(); 46 | LGUI_API void Printf(const char *szFormat, ...); 47 | LGUI_API void Print(const char *Text); 48 | 49 | 50 | // -- XML PROPERTIES -- 51 | LGUIFixedFont *pFont; 52 | 53 | unsigned int Border; 54 | unsigned int BorderColor; 55 | unsigned int ScrollbackColor; 56 | unsigned int BackgroundColor; 57 | 58 | unsigned int SelectionColor; 59 | 60 | LGUITexture *pTexture; 61 | LGUITexture *pTextureScrollback; 62 | 63 | // ---------------------- 64 | 65 | 66 | unsigned int BackBufferSize; 67 | char **BackBuffer; 68 | int LastLine; 69 | 70 | class LGUIScrollBar *pVerticalBar; 71 | 72 | int ScrollBack; 73 | int VisibleLines; 74 | 75 | bool bSelect; 76 | RECT Selection; 77 | 78 | protected: 79 | LGUI_API virtual void AddLineInternal(char *Line); 80 | }; 81 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIEmbeddedScript.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIEmbeddedScript 4 | { 5 | public: 6 | LGUIEmbeddedScript(unsigned int AtomID, class LGUIElement *pThis); 7 | virtual ~LGUIEmbeddedScript(); 8 | 9 | LGUI_API static LGUIEmbeddedScript *New(class LGUIElement *pThis, const char *Buffer, const char *Parameters); 10 | LGUI_API virtual void Delete(); 11 | 12 | LGUI_API virtual int Execute(int argc=0, char *argv[]=0); 13 | LGUI_API virtual int Execute(class LGUIElement *pThis, int argc=0, char *argv[]=0); 14 | 15 | protected: 16 | unsigned int AtomID; 17 | class LGUIElement *pThis; 18 | unsigned int RefCount; 19 | }; 20 | 21 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIFont.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct _CreateFont 4 | { 5 | char *Name; 6 | unsigned char Height; 7 | unsigned int Color; 8 | bool Bold; 9 | bool Fixed; 10 | }; 11 | 12 | class LGUIFont 13 | { 14 | public: 15 | LGUIFont(LGUIElement *pParent, const char *Face, unsigned char Height, bool Fixed, bool Bold); 16 | LGUIFont(LGUIElement *pParent, const LGUIFont&); 17 | LGUIFont(LGUIElement *pParent, _CreateFont &CreateFont, XMLNode *pTemplate); 18 | virtual ~LGUIFont(); 19 | 20 | // LGUI_API virtual bool FromXML(class XMLNode *pXML, char *Template=""); 21 | 22 | LGUI_API static LGUIFont *New(LGUIElement *pParent,const char *Face, unsigned char Height, bool Fixed, bool Bold); 23 | LGUI_API static LGUIFont *New(LGUIElement *pParent,_CreateFont &CreateFont, class XMLNode *pTemplate=0); 24 | LGUI_API static LGUIFont *New(LGUIElement *pParent,const LGUIFont&); 25 | LGUI_API virtual void Delete(); 26 | LGUI_API virtual bool Prepare(); 27 | LGUI_API void Release(); 28 | 29 | LGUI_API bool IsFixedFont(); 30 | // LGUI_API float GetBaseHeight(); 31 | LGUI_API size_t Draw(const char *Text, int X, int Y, size_t ClipLength = 0); 32 | LGUI_API size_t DrawCenter(const char *Text, int X, int Y, size_t ClipLength); 33 | LGUI_API size_t DrawRight(const char *Text, int X, int Y, size_t ClipLength); 34 | LGUI_API size_t GetTextWidth(const char *Text); 35 | LGUI_API size_t GetTextWidth(const char *Text, size_t Length); 36 | // LGUI_API unsigned int GetCharWidth(unsigned int c); 37 | LGUI_API unsigned int GetCharByOffset(const char *Text, size_t Offset); 38 | 39 | LGUI_API void SetName(const char *p_Name); 40 | LGUI_API void SetBold(bool Bold); 41 | 42 | inline char *GetName() {return Name;} 43 | inline unsigned int GetColor() {return Color;} 44 | inline unsigned char GetHeight() {return Height;} 45 | inline bool GetBold() {return Bold;} 46 | 47 | LGUI_API void SetHeight(unsigned char NewHeight); 48 | inline void SetColor(unsigned int NewColor) {Color=NewColor;} 49 | 50 | protected: 51 | unsigned int FontID; 52 | 53 | char *Name; 54 | unsigned char Height; 55 | unsigned int Color; 56 | bool Bold; 57 | bool Fixed; 58 | 59 | LGUIElement *pParent; 60 | }; 61 | 62 | class LGUIFixedFont : public LGUIFont 63 | { 64 | public: 65 | LGUIFixedFont(LGUIElement *pParent, const char *Face, unsigned char Height, bool Bold); 66 | LGUIFixedFont(LGUIElement *pParent,const LGUIFixedFont&); 67 | LGUIFixedFont(LGUIElement *pParent,_CreateFont &CreateFont, class XMLNode *pTemplate); 68 | ~LGUIFixedFont(); 69 | 70 | LGUI_API static LGUIFixedFont *New(LGUIElement *pParent, const char *Face, unsigned char Height, bool Bold); 71 | LGUI_API static LGUIFixedFont *New(LGUIElement *pParent,const LGUIFixedFont&); 72 | LGUI_API static LGUIFixedFont *New(LGUIElement *pParent,_CreateFont &CreateFont, class XMLNode *pTemplate=0); 73 | LGUI_API virtual void Delete(); 74 | 75 | LGUI_API virtual bool Prepare(); 76 | LGUI_API size_t GetCharWidth(); 77 | /* 78 | protected: 79 | inline class CLavishFontFixed *GetFixedFont() 80 | { 81 | return (class CLavishFontFixed *)pFont; 82 | } 83 | /**/ 84 | }; 85 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIFrame.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | struct _CreateFrame : public _CreateElement 5 | { 6 | unsigned int BackgroundColor; 7 | unsigned int Border; 8 | unsigned int BorderColor; 9 | }; 10 | 11 | class LGUIFrame : 12 | public LGUIElement 13 | { 14 | public: 15 | LGUI_API LGUIFrame(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 16 | LGUI_API ~LGUIFrame(void); 17 | LGUI_API class LSTypeDefinition *GetLSType(); 18 | 19 | LGUI_API void Render(); 20 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 21 | LGUI_API bool IsTypeOf(char *TestFactory); 22 | LGUI_API void Create(_CreateFrame &CreateInfo); 23 | 24 | LGUI_API bool OnLMouseUp(POINT2I &pt); 25 | LGUI_API bool OnLMouseDown(POINT2I &pt); 26 | LGUI_API bool OnLMouseDoubleClick(POINT2I &pt); 27 | LGUI_API bool OnRMouseDoubleClick(POINT2I &pt); 28 | LGUI_API bool OnRMouseUp(POINT2I &pt); 29 | LGUI_API bool OnRMouseDown(POINT2I &pt); 30 | LGUI_API bool OnMouseMove(POINT2I &pt); 31 | LGUI_API bool OnMouseWheel(int Offset); 32 | 33 | // -- XML Properties -- 34 | LGUITexture *pTexture; 35 | unsigned int BackgroundColor; 36 | unsigned int Border; 37 | unsigned int BorderColor; 38 | 39 | // ---------------------- 40 | 41 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIGauge.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIGauge : 4 | public LGUIFrame 5 | { 6 | public: 7 | LGUI_API LGUIGauge(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | LGUI_API ~LGUIGauge(void); 9 | LGUI_API class LSTypeDefinition *GetLSType(); 10 | 11 | LGUI_API void Render(); 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | LGUI_API virtual void SetValue(float NewValue); 16 | 17 | // -- XML Properties -- 18 | LGUITexture *pTopTexture; 19 | 20 | bool bVertical; 21 | 22 | float fRange; 23 | 24 | // -------------------- 25 | 26 | bool Mod; 27 | class LGUIGaugeFiller* pFiller; 28 | float fValue; 29 | }; 30 | 31 | class LGUIGaugeFiller: 32 | public LGUIElement 33 | { 34 | public: 35 | LGUIGaugeFiller(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 36 | ~LGUIGaugeFiller(void); 37 | // LGUI_API class LSTypeDefinition *GetLSType(); 38 | 39 | void Render(); 40 | bool FromXML(class XMLNode *pXML); 41 | bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate); 42 | 43 | bool IsTypeOf(char *TestFactory); 44 | // void Default(); 45 | virtual void SetValue(float NewValue); 46 | void RecalculateSize(bool RecalculateChildren); 47 | 48 | // -- XML Properties -- 49 | LGUITexture *pTexture; 50 | // -------------------- 51 | 52 | float fRange; 53 | float fValue; 54 | bool bVertical; 55 | unsigned int Repeat; 56 | 57 | class LGUIGauge *pGauge; 58 | }; 59 | 60 | class LGUIGaugeFactory : public LGUIElementFactory 61 | { 62 | public: 63 | LGUIGaugeFactory():LGUIElementFactory("gauge",LGUI_VERSION) 64 | { 65 | } 66 | 67 | ~LGUIGaugeFactory() 68 | { 69 | } 70 | 71 | virtual LGUIElement *CreateUIElement(LGUIElement *pParent, const char *Name, class XMLNode *pXML, const char *Template = 0) 72 | { 73 | LGUIGauge *pElement = new LGUIGauge(Type,pParent,Name); 74 | 75 | if (!pElement->FromXML(pXML,g_UIManager.FindTemplate(Template))) 76 | { 77 | delete pElement; 78 | return 0; 79 | } 80 | Elements[pElement]=1; 81 | if (pElement->pFiller) 82 | return pElement->pFiller; 83 | return pElement; 84 | } 85 | virtual LGUIElement *CreateUIElement(LGUIElement *pParent, const char *Name) 86 | { 87 | LGUIGauge *pElement = new LGUIGauge(Type,pParent,Name); 88 | Elements[pElement]=1; 89 | return pElement; 90 | } 91 | 92 | virtual LSType *GetLSType(); 93 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIHudElement.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUIHudElement : 5 | public LGUIElement 6 | { 7 | public: 8 | LGUIHudElement(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 9 | ~LGUIHudElement(void); 10 | bool IsTypeOf(char *TestFactory); 11 | class LSTypeDefinition *GetLSType(); 12 | 13 | bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 14 | 15 | bool OnLMouseUp(POINT2I &pt); 16 | bool OnLMouseDown(POINT2I &pt); 17 | bool OnMouseMove(POINT2I &pt); 18 | void Render(); 19 | 20 | virtual void UpdateElement(); 21 | virtual void SetText(char *NewValue); 22 | // -- From XML -- 23 | //char *Text; 24 | LGUIPreParse PreParsed; 25 | char *Group; 26 | 27 | LGUIFont *pFont; 28 | 29 | unsigned int UpdateInterval; 30 | 31 | // -------------------------------- 32 | 33 | char *CurrentValue; 34 | unsigned int CurrentInterval; 35 | bool bMoving; 36 | POINT2I MovingOffset; 37 | }; 38 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIMessageBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | enum eMessageBoxType 4 | { 5 | MSGBOX_OK=1, 6 | MSGBOX_OKCANCEL=2, 7 | MSGBOX_YESNO=3, 8 | }; 9 | 10 | class LGUIMessageBox : public LGUIWindow 11 | { 12 | public: 13 | LGUI_API LGUIMessageBox(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 14 | LGUI_API ~LGUIMessageBox(void); 15 | LGUI_API class LSTypeDefinition *GetLSType(); 16 | 17 | LGUI_API void Create(char *p_Title, char *p_Text, eMessageBoxType p_Type, class XMLNode *pTemplate=0); 18 | 19 | LGUI_API void Render(); 20 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 21 | LGUI_API bool IsTypeOf(char *TestFactory); 22 | LGUI_API void OnNotify(LGUIElement *pElement, unsigned int Notification, UINT_PTR Value); 23 | 24 | 25 | // Text 26 | LGUIFont *pFont; 27 | 28 | eMessageBoxType MessageBoxType; 29 | 30 | // -------------------- 31 | 32 | LGUIButton *pOK; 33 | LGUIButton *pCancel; 34 | LGUIButton *pYes; 35 | LGUIButton *pNo; 36 | }; 37 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIScreen.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUIScreen : 5 | public LGUIElement 6 | { 7 | public: 8 | LGUIScreen(void); 9 | ~LGUIScreen(void); 10 | bool IsTypeOf(char *TestFactory); 11 | 12 | //void Render(); 13 | void RecalculateSize(bool RecalculateChildren); 14 | void MoveZTop(bool bAncestorsToo); 15 | void MoveZUp(); 16 | void MoveZDown(); 17 | void MoveZBottom(); 18 | 19 | bool OnLMouseDown(POINT2I &pt); 20 | }; 21 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIScrollBar.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct _CreateScrollBar : public _CreateElement 4 | { 5 | unsigned int Range; 6 | bool bVertical; 7 | bool DefaultTextures; 8 | }; 9 | 10 | class LGUIScrollBar : 11 | public LGUIElement 12 | { 13 | public: 14 | LGUI_API LGUIScrollBar(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 15 | LGUI_API ~LGUIScrollBar(void); 16 | LGUI_API class LSTypeDefinition *GetLSType(); 17 | 18 | LGUI_API void Create(_CreateScrollBar &CreateInfo, class XMLNode *pTemplate=0); 19 | 20 | LGUI_API void SizeRecalculated(bool Changed); 21 | // LGUI_API void Render(); 22 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 23 | LGUI_API bool IsTypeOf(char *TestFactory); 24 | LGUI_API void OnNotify(LGUIElement *pElement, unsigned int Notification, UINT_PTR Value); 25 | 26 | // LGUI_API void RecalculateSize(); 27 | 28 | LGUI_API virtual void SetRange(unsigned int NewRange); 29 | LGUI_API virtual void SetValue(unsigned int NewValue); 30 | LGUI_API virtual void RaiseValue(unsigned int Offset); 31 | LGUI_API virtual void LowerValue(unsigned int Offset); 32 | LGUI_API virtual unsigned int GetValue(); 33 | 34 | 35 | unsigned int Range; 36 | bool bVertical; 37 | 38 | LGUIButton *pUp; 39 | LGUIButton *pDown; 40 | LGUISlider *pSlider; 41 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUISlider.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | struct _CreateSlider : public _CreateElement 5 | { 6 | unsigned int Border; 7 | unsigned int Range; 8 | 9 | bool bVertical; 10 | 11 | bool DefaultTextures; 12 | }; 13 | 14 | class LGUISlider : 15 | public LGUIElement 16 | { 17 | public: 18 | LGUI_API LGUISlider(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 19 | LGUI_API ~LGUISlider(void); 20 | LGUI_API class LSTypeDefinition *GetLSType(); 21 | 22 | LGUI_API void Create(_CreateSlider &CreateInfo, class XMLNode *pTemplate=0); 23 | 24 | LGUI_API void Render(); 25 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 26 | LGUI_API bool IsTypeOf(char *TestFactory); 27 | 28 | LGUI_API bool OnLMouseUp(POINT2I &pt); 29 | LGUI_API bool OnLMouseDown(POINT2I &pt); 30 | LGUI_API bool OnMouseMove(POINT2I &pt); 31 | 32 | LGUI_API virtual void SetValue(unsigned int NewValue); 33 | LGUI_API virtual void SetPosition(unsigned int NewPosition); 34 | LGUI_API void RecalculateSize(bool RecalculateChildren); 35 | 36 | // -- XML Properties -- 37 | LGUITexture *pTexture; 38 | LGUITexture *pHandleTexture; 39 | unsigned int Border; 40 | 41 | bool bVertical; 42 | 43 | unsigned int Range; 44 | 45 | LGUIEmbeddedScript *pOnChange; 46 | // -------------------- 47 | 48 | unsigned int HandleWidth; 49 | unsigned int HandleHeight; 50 | unsigned int Value; 51 | unsigned int Position; 52 | bool bSliding; 53 | }; 54 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUITabControl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class CLGUITab 4 | { 5 | public: 6 | CLGUITab(class LGUITabControl *p_Control,const char *p_Name, unsigned int p_ID) 7 | { 8 | Name=strdup(p_Name); 9 | ID=p_ID; 10 | Order=0; 11 | pFrame=0; 12 | pTabControl=p_Control; 13 | // Length=strlen(Name); 14 | } 15 | ~CLGUITab() 16 | { 17 | free(Name); 18 | } 19 | 20 | LGUI_API void Rename(const char *NewName); 21 | 22 | char *Name; 23 | // unsigned int Length; 24 | unsigned int FullWidth; 25 | 26 | unsigned int ID; 27 | unsigned int Order; 28 | 29 | LGUIFrame *pFrame; 30 | class LGUITabControl *pTabControl; 31 | }; 32 | 33 | class LGUITabControl : 34 | public LGUIElement 35 | { 36 | public: 37 | LGUI_API LGUITabControl(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 38 | LGUI_API ~LGUITabControl(void); 39 | LGUI_API class LSTypeDefinition *GetLSType(); 40 | 41 | LGUI_API void Render(); 42 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 43 | LGUI_API bool IsTypeOf(char *TestFactory); 44 | LGUI_API bool OnLMouseDown(POINT2I &pt); 45 | LGUI_API bool OnLMouseUp(POINT2I &pt); 46 | LGUI_API bool OnMouseMove(POINT2I &pt); 47 | LGUI_API void RecalculateSize(bool RecalculateChildren); 48 | LGUI_API void SizeRecalculated(bool Changed); 49 | LGUI_API void OnNotify(LGUIElement *pElement, unsigned int Notification, UINT_PTR Value); 50 | 51 | LGUI_API virtual unsigned int AddTab(const char *Text,XMLNode *pXML, const char *ChildName, const char *Template); 52 | LGUI_API virtual void RemoveTab(unsigned int ID); 53 | LGUI_API virtual unsigned int GetTabFromPoint(POINT2I &pt); 54 | LGUI_API virtual unsigned int GetOrderFromPoint(POINT2I &pt); 55 | 56 | LGUI_API void MoveTab(CLGUITab *pTab, unsigned int Order); 57 | LGUI_API virtual void SelectTab(unsigned int ID); 58 | LGUI_API virtual void ClearSelection(); 59 | 60 | LGUI_API CLGUITab *GetTabFromName(const char *Name); 61 | 62 | 63 | // -- XML Properties -- 64 | LGUIFont *pFont; 65 | LGUITexture *pTabTexture; 66 | LGUITexture *pTabSelectedTexture; 67 | 68 | LGUITexture *pFrameTexture; 69 | unsigned int FrameBackgroundColor; 70 | unsigned int FrameBorder; 71 | unsigned int FrameBorderColor; 72 | 73 | unsigned int TabHeight; 74 | unsigned int TabBorder; 75 | unsigned int SelectedTextColor; 76 | bool bDraggable; 77 | 78 | LGUIEmbeddedScript *pOnSelect; 79 | // ---------------------- 80 | 81 | LGUIButton *pLeft; 82 | LGUIButton *pRight; 83 | 84 | unsigned int VisiblePos; 85 | unsigned int Selection; 86 | CIndex Tabs; 87 | CIndex OrderedTabs; 88 | 89 | unsigned int nTabs; 90 | unsigned int DraggingID; 91 | 92 | }; 93 | 94 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUITable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUITableCell : 4 | public LGUIFrame 5 | { 6 | public: 7 | LGUI_API LGUITableCell(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | LGUI_API ~LGUITableCell(void); 9 | // LGUI_API class LSTypeDefinition *GetLSType(); 10 | 11 | // LGUI_API void Render(); 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | // -- XML Properties -- 16 | unsigned int RowSpan; 17 | 18 | unsigned int ColSpan; 19 | // ---------------------- 20 | unsigned int Row; 21 | unsigned int Column; 22 | }; 23 | 24 | class LGUITable : 25 | public LGUIFrame 26 | { 27 | public: 28 | LGUI_API LGUITable(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 29 | LGUI_API ~LGUITable(void); 30 | // LGUI_API class LSTypeDefinition *GetLSType(); 31 | 32 | // LGUI_API void Render(); 33 | LGUI_API virtual void RecalculateSize(bool RecalculateChildren); 34 | LGUI_API virtual void SizeRecalculated(bool Changed); 35 | 36 | 37 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 38 | LGUI_API bool IsTypeOf(char *TestFactory); 39 | 40 | // -- XML Properties -- 41 | 42 | char *CellTemplate; 43 | //unsigned int CellSpacing; // TODO 44 | 45 | // ---------------------- 46 | 47 | LGUITableCell **Cell; 48 | ElementPosition *ColumnWidth; 49 | ElementPosition *RowHeight; 50 | 51 | unsigned int nRows; 52 | unsigned int nColumns; 53 | 54 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIText.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | enum eTextAlign 5 | { 6 | ALIGN_LEFT=0, 7 | ALIGN_CENTER=1, 8 | ALIGN_RIGHT=2, 9 | 10 | VALIGN_TOP=3, 11 | VALIGN_CENTER=4, 12 | VALIGN_BOTTOM=5, 13 | }; 14 | 15 | struct _CreateText : public _CreateElement 16 | { 17 | char *Text; 18 | _CreateFont Font; 19 | // char *Font; 20 | // unsigned int FontSize; 21 | // unsigned int Color; 22 | 23 | bool bWrap; 24 | eTextAlign Alignment; 25 | eTextAlign VerticalAlignment; 26 | }; 27 | 28 | class LGUIText : public LGUIElement 29 | { 30 | public: 31 | LGUI_API LGUIText(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 32 | LGUI_API ~LGUIText(void); 33 | LGUI_API bool IsTypeOf(char *TestFactory); 34 | LGUI_API class LSTypeDefinition *GetLSType(); 35 | 36 | LGUI_API static size_t SplitFixed(char *Value, size_t MaxChars, size_t &Width); 37 | LGUI_API static size_t Split(char *Value, size_t MaxWidth, LGUIFont *pFont, size_t &Width); 38 | LGUI_API size_t Split(char *Value); 39 | 40 | LGUI_API void Render(); 41 | LGUI_API bool RenderCustom(); 42 | 43 | LGUI_API void Create(_CreateText &CreateInfo, class XMLNode *pTemplate=0); 44 | 45 | LGUI_API void RenderLeft(char *Value); 46 | LGUI_API void RenderCenter(char *Value); 47 | LGUI_API void RenderRight(char *Value); 48 | LGUI_API void RecalculateSize(bool RecalculateChildren); 49 | 50 | 51 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 52 | 53 | LGUI_API void SetText(char *NewText); 54 | LGUI_API void SetHorizontalAlignment(eTextAlign value); 55 | LGUI_API void SetVerticalAlignment(eTextAlign value); 56 | LGUI_API void SetWrap(bool value); 57 | 58 | // -- XML Properties -- 59 | char *Text; 60 | LGUIFont *pFont; 61 | 62 | bool bWrap; 63 | eTextAlign Alignment; 64 | eTextAlign VerticalAlignment; 65 | // -------------------- 66 | 67 | char *NonVariable; 68 | size_t nLines; 69 | }; 70 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUITextEntry.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | struct _CreateTextEntry : public _CreateElement 5 | { 6 | char *Text; 7 | _CreateFont Font; 8 | // char *Font; 9 | 10 | // unsigned int FontHeight; 11 | // unsigned int TextColor; 12 | unsigned int BackgroundColor; 13 | unsigned int SelectionColor; 14 | unsigned int MaxLength; 15 | unsigned int BorderColor; 16 | unsigned int Border; 17 | unsigned int CaretOuterColor; 18 | unsigned int CaretInnerColor; 19 | char PasswordChar; 20 | }; 21 | 22 | class LGUITextEntry : 23 | public LGUIElement 24 | { 25 | public: 26 | LGUI_API LGUITextEntry(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 27 | LGUI_API ~LGUITextEntry(void); 28 | LGUI_API class LSTypeDefinition *GetLSType(); 29 | 30 | LGUI_API void Create(_CreateTextEntry &CreateInfo, class XMLNode *pTemplate=0); 31 | LGUI_API void Render(); 32 | LGUI_API void RenderCustom(); 33 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 34 | LGUI_API bool IsTypeOf(char *TestFactory); 35 | 36 | LGUI_API virtual void SetText(char *NewValue); 37 | LGUI_API virtual void SetFontSize(unsigned int NewHeight); 38 | LGUI_API virtual bool OnKeyUp(unsigned int VKey); 39 | LGUI_API virtual bool OnKeyDown(unsigned int VKey); 40 | LGUI_API virtual bool OnLMouseDown(POINT2I &pt); 41 | LGUI_API virtual void InsertCharacter(char C); 42 | LGUI_API virtual void HandleBackspace(); 43 | LGUI_API virtual void HandleDelete(); 44 | LGUI_API virtual void HandleEnter(); 45 | LGUI_API virtual void HandleEscape(); 46 | 47 | LGUI_API virtual void PasteClipboard(); 48 | 49 | LGUI_API unsigned int GetPositionFromPoint(POINT2I &pt); 50 | 51 | LGUI_API virtual void OnKeyboardExit(LGUIElement *pNewFocus); 52 | 53 | // -- XML PROPERTIES -- 54 | char *Text; 55 | LGUIFont *pFont; 56 | unsigned int BackgroundColor; 57 | unsigned int SelectionColor; 58 | unsigned int MaxLength; 59 | unsigned int BorderColor; 60 | unsigned int Border; 61 | unsigned int CaretOuterColor; 62 | unsigned int CaretInnerColor; 63 | 64 | LGUITexture *pTexture; 65 | LGUITexture *pTextureFocused; 66 | LGUITexture *pTextureCaret; 67 | LGUITexture *pTextureCaretOverwrite; 68 | 69 | LGUIEmbeddedScript *pOnChange; 70 | 71 | char PasswordChar; 72 | //--------------------- 73 | 74 | // unsigned int FontWidth; 75 | 76 | bool InsertMode; 77 | size_t Position; 78 | 79 | unsigned int LastVKey; 80 | size_t TextEnd; 81 | unsigned int LastVKeyTimer; 82 | size_t VisiblePos; 83 | }; 84 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUITexture.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define TR_TEXTURERECT 1 4 | #define TR_ALPHA 2 5 | #define TR_COLORMASK 4 6 | #define TR_NOSIZE 8 7 | #define TR_TEXTURETRIANGLE 16 8 | 9 | struct LGUITexturedRect 10 | { 11 | public: 12 | class LGUITexture *pTexture; 13 | 14 | RECT Rect; 15 | 16 | DWORD Flags; 17 | RECT TextureRect; 18 | unsigned char Alpha; 19 | unsigned int ColorMask; 20 | unsigned char Orientation; 21 | }; 22 | 23 | struct LGUITriangle 24 | { 25 | POINT2F Point[3]; 26 | }; 27 | 28 | struct LGUITexturedTriangle 29 | { 30 | public: 31 | class LGUITexture *pTexture; 32 | 33 | LGUITriangle Triangle; 34 | 35 | DWORD Flags; 36 | LGUITriangle TextureTriangle; 37 | unsigned char Alpha; 38 | unsigned int ColorMask; 39 | unsigned char Orientation; 40 | }; 41 | 42 | class LGUITexture 43 | { 44 | public: 45 | LGUITexture(const char *p_Name); 46 | LGUITexture(const LGUITexture&); 47 | ~LGUITexture(); 48 | 49 | void CopyFrom(const LGUITexture &other); 50 | 51 | LGUI_API static LGUITexture *New(const char *p_Name); 52 | LGUI_API static LGUITexture *New(const LGUITexture&); 53 | LGUI_API void Delete(); 54 | LGUI_API bool Prepare(); 55 | LGUI_API bool GetSize(); 56 | LGUI_API bool FromXML(class XMLNode *pXML); 57 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate); 58 | 59 | LGUI_API void Set(const char *Filename, unsigned int ColorKey=0); 60 | LGUI_API void SetFrom(const LGUITexture& other); 61 | 62 | char *Name; 63 | unsigned int TextureID; 64 | unsigned int ColorKey; 65 | 66 | DWORD Flags; 67 | RECT TextureRect; 68 | LGUITriangle TextureTriangle; 69 | 70 | float Alpha; 71 | unsigned int ColorMask; 72 | unsigned int Border; 73 | unsigned char Orientation; 74 | }; 75 | 76 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUITooltip.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | struct _CreateTooltip : public _CreateElement 5 | { 6 | unsigned int BackgroundColor; 7 | unsigned int Border; 8 | unsigned int BorderColor; 9 | _CreateFont Font; 10 | // unsigned int TextColor; 11 | // unsigned int FontSize; 12 | bool DefaultTextures; 13 | }; 14 | 15 | class LGUITooltipLine 16 | { 17 | public: 18 | LGUI_API LGUITooltipLine(const char *p_Text); 19 | LGUI_API ~LGUITooltipLine(); 20 | LGUI_API char *Parse(); 21 | 22 | LGUI_API void Set(const char *p_Text); 23 | 24 | char *Text; 25 | bool bVariable; 26 | }; 27 | 28 | class LGUITooltip : 29 | public LGUIFrame 30 | { 31 | public: 32 | LGUI_API LGUITooltip(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 33 | LGUI_API ~LGUITooltip(void); 34 | LGUI_API class LSTypeDefinition *GetLSType(); 35 | 36 | LGUI_API void Render(); 37 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 38 | LGUI_API bool IsTypeOf(char *TestFactory); 39 | // LGUI_API void Create(_CreateTooltip &CreateInfo, class XMLNode *pTemplate=0); 40 | LGUI_API bool OnMouseMove(POINT2I &pt); 41 | 42 | LGUI_API void Reset(); 43 | LGUI_API void Printf(const char *Format, ...); 44 | LGUI_API void Print(const char *Text); 45 | 46 | // -- XML Properties -- 47 | LGUIFont *pFont; 48 | 49 | // ---------------------- 50 | 51 | CIndex Lines; 52 | unsigned int nLines; 53 | 54 | protected: 55 | LGUI_API void AddLine(const char *Text); 56 | 57 | }; 58 | 59 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIVariableGauge.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIVariableGauge : 4 | public LGUIGauge 5 | { 6 | public: 7 | LGUI_API LGUIVariableGauge(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | LGUI_API ~LGUIVariableGauge(void); 9 | // LGUI_API class LSTypeDefinition *GetLSType(); 10 | 11 | LGUI_API void Render(); 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | // -- XML Properties -- 16 | LGUIDataSequence Data; 17 | float Offset; 18 | // -------------------- 19 | 20 | }; 21 | 22 | 23 | class LGUIVariableGaugeFactory : public LGUIElementFactory 24 | { 25 | public: 26 | LGUIVariableGaugeFactory():LGUIElementFactory("variablegauge",LGUI_VERSION) 27 | { 28 | } 29 | 30 | ~LGUIVariableGaugeFactory() 31 | { 32 | } 33 | 34 | virtual LGUIElement *CreateUIElement(LGUIElement *pParent, const char *Name, class XMLNode *pXML, const char *Template = 0) 35 | { 36 | LGUIVariableGauge *pElement = new LGUIVariableGauge(Type,pParent,Name); 37 | 38 | if (!pElement->FromXML(pXML,g_UIManager.FindTemplate(Template))) 39 | { 40 | delete pElement; 41 | return 0; 42 | } 43 | Elements[pElement]=1; 44 | if (pElement->pFiller) 45 | return pElement->pFiller; 46 | return pElement; 47 | } 48 | virtual LGUIElement *CreateUIElement(LGUIElement *pParent, const char *Name) 49 | { 50 | LGUIVariableGauge *pElement = new LGUIVariableGauge(Type,pParent,Name); 51 | Elements[pElement]=1; 52 | return pElement; 53 | } 54 | 55 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIVariableSlider.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIVariableSlider : 4 | public LGUISlider 5 | { 6 | public: 7 | LGUI_API LGUIVariableSlider(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | LGUI_API ~LGUIVariableSlider(void); 9 | // LGUI_API class LSTypeDefinition *GetLSType(); 10 | 11 | LGUI_API void Render(); 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | // LGUI_API bool OnLMouseUp(POINT2I &pt); 16 | // LGUI_API bool OnLMouseDown(POINT2I &pt); 17 | // LGUI_API bool OnMouseMove(POINT2I &pt); 18 | LGUI_API void SetValue(unsigned int NewValue); 19 | 20 | // -- XML Properties -- 21 | LGUIDataSequence Data; 22 | const char *OriginalData; 23 | 24 | float Offset; 25 | float VariableRange; 26 | // -------------------- 27 | 28 | bool InitialValue; 29 | }; 30 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISXInterface.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | typedef struct _ISXSCRIPTENGINECAPS 4 | { 5 | unsigned int Sizeof; // set by the caller before calling GetCaps, to sizeof(ISXSCRIPTENGINECAPS) 6 | // use Sizeof to fill in the caps structure only up to the correct size 7 | 8 | bool bPreprocessor; // engine has a preprocessor (e.g. #define, #include, etc) 9 | bool bPersistent; // can run persistent scripts 10 | bool bMultipleScripts; // can run multiple scripts 11 | } ISXSCRIPTENGINECAPS, *PISXSCRIPTENGINECAPS; 12 | 13 | class ISXScriptEngine 14 | { 15 | public: 16 | virtual const char *GetName()=0; // unix name if possible, e.g. #!/usr/bin/perl would be "perl" 17 | virtual const char *GetVersion()=0; // used by extensions. implement however you want 18 | virtual bool GetCaps(ISXSCRIPTENGINECAPS &Dest)=0; // used by extensions to retrieve engine capabilities 19 | 20 | virtual void Pulse()=0; // for persistent scripts, use this to process microthreads, etc. 21 | 22 | virtual bool ExecuteScript(const char *FullFilename, int argc, char *argv[])=0; // used by RunScript command 23 | virtual bool EndScript(const char *Name)=0; // used by EndScript 24 | 25 | virtual bool IsScript(const char *FullFilename) {return true;} 26 | }; 27 | 28 | class ISXSoftwareCursorInterface 29 | { 30 | public: 31 | virtual bool CursorEnabled()=0; 32 | virtual bool GetPosition(int &X, int &Y)=0; 33 | 34 | virtual bool SetPosition(int X, int Y)=0; 35 | 36 | virtual bool DrawCursor() {return false;} 37 | }; 38 | 39 | class ISXInterface 40 | { 41 | public: 42 | virtual unsigned int GetVersion(); 43 | 44 | virtual bool Initialize(ISInterface *pISInterface)=0; 45 | virtual void Shutdown()=0; 46 | 47 | virtual bool RequestShutdown() 48 | { 49 | // return false if you must handle asynchronous shutdown behaviors first 50 | // doing so will require an additional unload request. 51 | return true; 52 | } 53 | 54 | }; 55 | -------------------------------------------------------------------------------- /ISXDK/35/include/Index.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifndef __INDEX_H__ 3 | #define __INDEX_H__ 4 | #include 5 | //#include 6 | #define foreach(variable,counter,index) for (size_t counter=0 ; counter < index.Size ; counter++) if (variable=index[counter]) 7 | #define foreachp(variable,counter,index) for (size_t counter=0 ; counter < index->Size ; counter++) if (variable=(*index)[counter]) 8 | 9 | template 10 | class CIndex 11 | { 12 | public: 13 | CIndex() 14 | { 15 | Size=0; 16 | List=0; 17 | } 18 | 19 | CIndex(size_t InitialSize) 20 | { 21 | Size=0; 22 | List=0; 23 | Resize(InitialSize); 24 | } 25 | 26 | ~CIndex() 27 | {// user is responsible for managing elements 28 | CLock(&CS,true); 29 | if (List) 30 | Free(List); 31 | List=0; 32 | Size=0; 33 | } 34 | 35 | void Clear() 36 | { 37 | CLock(&CS,true); 38 | for (size_t i = 0 ; i < Size ; i++) 39 | { 40 | if (List[i]) 41 | { 42 | List[i]=0; 43 | } 44 | } 45 | } 46 | 47 | void Cleanup() 48 | { 49 | CLock(&CS,true); 50 | for (size_t i = 0 ; i < Size ; i++) 51 | { 52 | if (List[i]) 53 | { 54 | delete List[i]; 55 | List[i]=0; 56 | } 57 | } 58 | } 59 | 60 | void Resize(size_t NewSize) 61 | { 62 | CLock(&CS,true); 63 | if (List) 64 | { 65 | if (NewSize>Size) 66 | { 67 | // because we want to zero out the unused portions, we wont use realloc 68 | Any *NewList=(Any*)Malloc(NewSize*sizeof(Any)); 69 | memset(NewList,0,NewSize*sizeof(Any)); 70 | memcpy(NewList,List,Size*sizeof(Any)); 71 | Free(List); 72 | List=NewList; 73 | Size=NewSize; 74 | } 75 | } 76 | else 77 | { 78 | List=(Any*)Malloc(NewSize*sizeof(Any)); 79 | memset(List,0,NewSize*sizeof(Any)); 80 | Size=NewSize; 81 | } 82 | } 83 | 84 | // gets the next unused index, resizing if necessary 85 | inline size_t GetUnused() 86 | { 87 | CLock(&CS,true); 88 | size_t i; 89 | for ( i = 0 ; i < Size ; i++) 90 | { 91 | if (!List[i]) 92 | return i; 93 | } 94 | Resize(Size+10); 95 | return i; 96 | } 97 | 98 | size_t Count() 99 | { 100 | CLock(&CS,true); 101 | size_t ret=0; 102 | for (size_t i = 0 ; i < Size ; i++) 103 | { 104 | if (List[i]) 105 | ret++; 106 | } 107 | return ret; 108 | } 109 | 110 | virtual void *Malloc(size_t Size) 111 | { 112 | return malloc(Size); 113 | } 114 | virtual void Free(const void *mem) 115 | { 116 | free((void*)mem); 117 | } 118 | 119 | size_t Size; 120 | Any *List; 121 | 122 | inline Any& operator+=(Any& Value){return List[GetUnused()]=Value;} 123 | inline Any& operator[](size_t Index){return List[Index];} 124 | CSemaphore CS; 125 | }; 126 | 127 | 128 | 129 | 130 | #endif 131 | 132 | -------------------------------------------------------------------------------- /ISXDK/35/include/LavishScript/LavishScript.h: -------------------------------------------------------------------------------- 1 | #define MAX_VARSTRING 4096 2 | #include "LSType.h" 3 | #include "LSSTLTypes.h" 4 | 5 | typedef bool (__cdecl *fLSTopLevelObject)(int argc, char *argv[], LSTYPEVAR &); 6 | typedef int (__cdecl *fLSCommand)(int argc, char *argv[]); 7 | typedef void (__cdecl *fLSGenericEnumCallback)(const char *Name, void *pData); 8 | 9 | -------------------------------------------------------------------------------- /ISXDK/35/include/Threading.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifndef __THREADING_H__ 3 | #define __THREADING_H__ 4 | 5 | //#ifdef WIN32 6 | #define THREAD DWORD 7 | //typedef DWORD (*PTHREAD_START_ROUTINE)(LPVOID); 8 | //#else 9 | //#define THREAD void* 10 | //typedef void* (*PTHREAD_START_ROUTINE)(void*); 11 | //#endif 12 | 13 | class CPortableSemaphore 14 | { 15 | //virtual void Initialize()=0; 16 | }; 17 | 18 | class CPortableLock 19 | { 20 | public: 21 | virtual void SetSemaphore(CPortableSemaphore*)=0; 22 | virtual void Lock()=0; 23 | virtual void Unlock()=0; 24 | virtual bool IsLocked()=0; 25 | }; 26 | 27 | class CPortableThread 28 | { 29 | public: 30 | virtual bool BeginThread(LPTHREAD_START_ROUTINE function, void* pInfo, bool bWait)=0; 31 | virtual void EndThread()=0; 32 | virtual void AbortThread()=0; 33 | bool bThreading; 34 | bool CloseThread; 35 | bool ThreadReady; 36 | void *Info; 37 | }; 38 | 39 | class CPortableSignal 40 | { 41 | public: 42 | virtual void Wait(unsigned int Timeout, CPortableLock* unlockme=0)=0; 43 | virtual void Wait(CPortableLock* unlockme=0)=0; 44 | virtual void Release()=0; 45 | virtual void Signal(bool*)=0; 46 | }; 47 | 48 | #endif 49 | 50 | -------------------------------------------------------------------------------- /ISXDK/35/lib/vs14/ISUI.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/ISXDK/35/lib/vs14/ISUI.lib -------------------------------------------------------------------------------- /ISXDK/35/lib/vs14/ISUI_md.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/ISXDK/35/lib/vs14/ISUI_md.lib -------------------------------------------------------------------------------- /ISXDK/35/lib/vs14/ISXDK.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/ISXDK/35/lib/vs14/ISXDK.lib -------------------------------------------------------------------------------- /ISXDK/35/lib/vs14/ISXDK_md.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/ISXDK/35/lib/vs14/ISXDK_md.lib -------------------------------------------------------------------------------- /ISXDK/35/lib64/vs14/ISUI.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/ISXDK/35/lib64/vs14/ISUI.lib -------------------------------------------------------------------------------- /ISXDK/35/lib64/vs14/ISUI_md.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/ISXDK/35/lib64/vs14/ISUI_md.lib -------------------------------------------------------------------------------- /ISXDK/35/lib64/vs14/ISXDK.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/ISXDK/35/lib64/vs14/ISXDK.lib -------------------------------------------------------------------------------- /ISXDK/35/lib64/vs14/ISXDK_md.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/ISXDK/35/lib64/vs14/ISXDK_md.lib -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/Commands.cpp: -------------------------------------------------------------------------------- 1 | #include "ISXFullTemplate.h" 2 | 3 | int CMD_FullTemplate(int argc, char *argv[]) 4 | { 5 | return 0; 6 | } -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/Commands.h: -------------------------------------------------------------------------------- 1 | #ifndef COMMAND 2 | #define COMMAND_SELF 3 | #define COMMAND(name,cmd,parse,hide) extern int cmd(int argc, char *argv[]) 4 | #endif 5 | // ---------------------------------------------------- 6 | // commands 7 | 8 | // sample 9 | COMMAND("FullTemplate",CMD_FullTemplate,true,false); 10 | 11 | 12 | 13 | 14 | 15 | 16 | // ---------------------------------------------------- 17 | #ifdef COMMAND_SELF 18 | #undef COMMAND_SELF 19 | #undef COMMAND 20 | #endif -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/DataTypeList.h: -------------------------------------------------------------------------------- 1 | #ifndef DATATYPE 2 | #define DATATYPE_SELF 3 | #define DATATYPE(_class_,_variable_,_inherits_) extern class _class_ *_variable_ 4 | #endif 5 | // ---------------------------------------------------- 6 | // data types 7 | 8 | // sample data type is the FullTemplateType class, and we're making a variable called pFullTemplateType. 9 | // this type does not inherit from another type, so we use 0. If it did inherit from another single type, 10 | // we would use the pointer to the definition of that type, such as pStringType 11 | DATATYPE(FullTemplateType,pFullTemplateType,0); 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | // ---------------------------------------------------- 24 | #ifdef DATATYPE_SELF 25 | #undef DATATYPE_SELF 26 | #undef DATATYPE 27 | #endif -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/DataTypes.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "DataTypeList.h" 3 | 4 | // custom data type declarations 5 | 6 | class FullTemplateType : public LSTypeDefinition 7 | { 8 | public: 9 | // All data members (retrieving data) should be listed in this enumeration 10 | enum FullTemplateTypeMembers 11 | { 12 | RetrieveData, 13 | }; 14 | // All data methods (performing actions on or with the object) should be listed in this enumeration 15 | enum FullTemplateTypeMethods 16 | { 17 | PerformAction, 18 | }; 19 | 20 | FullTemplateType() : LSType("fulltemplate") 21 | { 22 | // Use the TypeMember macro to activate each member, or use AddMember 23 | TypeMember(RetrieveData); 24 | 25 | // Use the TypeMethod macro to activate each member, or use AddMethod 26 | TypeMethod(PerformAction); 27 | } 28 | 29 | virtual bool GetMember(LSOBJECTDATA ObjectData, PLSTYPEMEMBER Member, int argc, char *argv[], LSOBJECT &Object); 30 | virtual bool GetMethod(LSOBJECTDATA &ObjectData, PLSTYPEMETHOD pMethod, int argc, char *argv[]); 31 | virtual bool ToText(LSOBJECTDATA ObjectData, char *buf, unsigned int buflen); 32 | }; 33 | -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/LGUIFullTemplateFrame.cpp: -------------------------------------------------------------------------------- 1 | #include "ISXFullTemplate.h" 2 | #include "LGUIFullTemplateFrame.h" 3 | 4 | LGUIFactory FullTemplateFrameFactory("fulltemplateframe"); 5 | 6 | LGUIFullTemplateFrame::LGUIFullTemplateFrame(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name):LGUIFrame(p_Factory,p_pParent,p_Name) 7 | { 8 | pText=0; 9 | Count=0; 10 | } 11 | LGUIFullTemplateFrame::~LGUIFullTemplateFrame(void) 12 | { 13 | } 14 | bool LGUIFullTemplateFrame::IsTypeOf(char *TestFactory) 15 | { 16 | return (!_stricmp(TestFactory,"fulltemplateframe")) || LGUIFrame::IsTypeOf(TestFactory); 17 | } 18 | bool LGUIFullTemplateFrame::FromXML(class XMLNode *pXML, class XMLNode *pTemplate) 19 | { 20 | if (!pTemplate) 21 | pTemplate=g_UIManager.FindTemplate(XMLHelper::GetStringAttribute(pXML,"Template")); 22 | if (!pTemplate) 23 | pTemplate=g_UIManager.FindTemplate("fulltemplateframe"); 24 | if (!LGUIFrame::FromXML(pXML,pTemplate)) 25 | return false; 26 | 27 | // custom xml properties 28 | return true; 29 | } 30 | 31 | void LGUIFullTemplateFrame::OnCreate() 32 | { 33 | // All children of this element are guaranteed to have been created now. 34 | pText = (LGUIText*)FindUsableChild("Output","text"); 35 | } 36 | 37 | void LGUIFullTemplateFrame::Render() 38 | { 39 | Count++; 40 | if (pText) 41 | { 42 | char Temp[256]; 43 | sprintf_s(Temp,"This frame has been rendered %d times.",Count); 44 | pText->SetText(Temp); 45 | } 46 | 47 | LGUIFrame::Render(); 48 | } 49 | 50 | 51 | -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/LGUIFullTemplateFrame.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIFullTemplateFrame : 4 | public LGUIFrame 5 | { 6 | public: 7 | LGUIFullTemplateFrame(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | ~LGUIFullTemplateFrame(void); 9 | bool IsTypeOf(char *TestFactory); 10 | bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 11 | void OnCreate(); 12 | void Render(); 13 | 14 | LGUIText *pText; 15 | unsigned int Count; 16 | }; 17 | 18 | extern LGUIFactory FullTemplateFrameFactory; 19 | 20 | -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/Services.cpp: -------------------------------------------------------------------------------- 1 | #include "ISXFullTemplate.h" 2 | #include "ISXFullTemplateServices.h" 3 | 4 | #define SERVICE(_name_,_callback_,_variable_) HISXSERVICE _variable_=0; 5 | #include "Services.h" 6 | #undef SERVICE 7 | 8 | bool FullTemplateFooFunction(const char *Name, unsigned int Age,float Height) 9 | { 10 | printf("Foo: %s. Age %d. Height: %fcm",Name,Age,Height); 11 | return true; 12 | } 13 | 14 | void __cdecl FullTemplateService(ISXInterface *pClient, unsigned int MSG, void *lpData) 15 | { 16 | switch(MSG) 17 | { 18 | case ISXSERVICE_CLIENTADDED: 19 | // This message indicates that a new client has been added to the service 20 | // pClient is 0, because this message is a system message from Inner Space 21 | // lpData is an ISXInterface* that is the pointer to the new client 22 | { 23 | // use lpData as the actual type, not as void *. We can make a new 24 | // variable to do this: 25 | ISXInterface *pNewClient=(ISXInterface *)lpData; 26 | 27 | printf("FullTemplateService client added: %X",pNewClient); 28 | // You may use the client pointer (pNewClient here) as an ID to track client-specific 29 | // information. Some services such as the memory service do this to automatically 30 | // remove memory modifications made by an extension when that extension is unloaded. 31 | } 32 | break; 33 | case ISXSERVICE_CLIENTREMOVED: 34 | // This message indicates that a client has been removed from the service 35 | // pClient is 0, because this message is a system message from Inner Space 36 | // lpData is an ISXInterface* that is the pointer to the removed client 37 | { 38 | // use lpData as the actual type, not as void *. We can make a new 39 | // variable to do this: 40 | ISXInterface *pRemovedClient=(ISXInterface *)lpData; 41 | 42 | printf("FullTemplateService client removed: %X",pRemovedClient); 43 | } 44 | break; 45 | case FullTemplate_FOO: 46 | // This is a custom service request defined in ISXFullTemplateServices.h 47 | // pClient is a valid pointer to the client that sent this request 48 | // lpData is a FullTemplateRequest_Foo* as sent by the client 49 | { 50 | FullTemplateRequest_Foo *pFoo=(FullTemplateRequest_Foo*)lpData; 51 | 52 | /* 53 | * As described in ISXFullTemplateServices.h, pFoo is simply a remote call 54 | * to FullTemplateFooFunction, and has all of the parameters and the outgoing 55 | * return value ready to go. 56 | */ 57 | pFoo->Success=FullTemplateFooFunction(pFoo->Name,pFoo->Age,pFoo->Height); 58 | 59 | /* 60 | * That's it! In many cases, the functionality provided by the service will 61 | * be something that should be per-client to automatically handle cleanup. 62 | * In such cases, it would be prudent to pass the pClient to the function call 63 | * for proper handling. 64 | */ 65 | } 66 | break; 67 | } 68 | } 69 | 70 | 71 | /* 72 | * How to broadcast an outgoing service message (called a notification): 73 | FullTemplateNotification_Bar Bar; 74 | Bar.Text="Some text to pass as part of the notification"; 75 | pFoo->Success=pISInterface->ServiceBroadcast(pExtension,hFullTemplateService,FullTemplate_BAR,&Bar); 76 | */ -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/Services.h: -------------------------------------------------------------------------------- 1 | #ifndef SERVICE 2 | #define SERVICE_SELF 3 | #define SERVICE(_name_,_callback_,_variable_) extern HISXSERVICE _variable_;extern void __cdecl _callback_(ISXInterface *pClient, unsigned int MSG, void *lpData); 4 | #endif 5 | // ---------------------------------------------------- 6 | // services 7 | 8 | SERVICE("FullTemplate Service",FullTemplateService,hFullTemplateService); 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | // ---------------------------------------------------- 22 | #ifdef SERVICE_SELF 23 | #undef SERVICE_SELF 24 | #undef SERVICE 25 | #endif -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/TopLevelObjects.cpp: -------------------------------------------------------------------------------- 1 | #include "ISXFullTemplate.h" 2 | 3 | // A LavishScript Top-Level Object is similar to a global C++ object. The main difference is that 4 | // a TLO can give ANY data type it wants; it is not limited to a single type. You may wish to give 5 | // a different type depending on the index (parameters, dimensions, etc) for example. Usually, though, 6 | // you simply give one specific type. 7 | 8 | bool __cdecl TLO_FullTemplate(int argc, char *argv[], LSTYPEVAR &Dest) 9 | { 10 | // argc and argv are used if the object access uses an index, such as FullTemplate[1] or 11 | // FullTemplate[my coat,1,seventeen]. argc is the number of parameters (or dimensions) separated 12 | // by commas, and does NOT include the name of the object. 13 | 14 | // LSTYPEVAR, used for Dest, is a VarPtr with a Type. Type should be set to a pointer to a data type, 15 | // such as Dest.Type=pIntType for integers. Do not set the Type or return true if the data retrieval 16 | // fails (there is no object). For example, if the requested data is a string, and the string does 17 | // not exist, return false and do not set the type. 18 | 19 | Dest.DWord=1; 20 | Dest.Type=pFullTemplateType; 21 | return true; 22 | } 23 | -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/TopLevelObjects.h: -------------------------------------------------------------------------------- 1 | #ifndef TOPLEVELOBJECT 2 | #define TOPLEVELOBJECT_SELF 3 | #define TOPLEVELOBJECT(name,funcname) extern bool funcname(int argc, char *argv[], LSTYPEVAR &Ret); 4 | #endif 5 | 6 | // ---------------------------------------------------- 7 | // Top-Level Objects 8 | 9 | TOPLEVELOBJECT("FullTemplate",TLO_FullTemplate); 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | // ---------------------------------------------------- 28 | #ifdef TOPLEVELOBJECT_SELF 29 | #undef TOPLEVELOBJECT_SELF 30 | #undef TOPLEVELOBJECT 31 | #endif -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQArgb.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Argb type. 9 | /// 10 | public class EQArgb : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQArgb(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Alpha 19 | /// 20 | public int Alpha 21 | { 22 | get { return GetMember( "A"); } 23 | } 24 | 25 | /// 26 | /// Red 27 | /// 28 | public int Red 29 | { 30 | get { return GetMember( "R"); } 31 | } 32 | 33 | /// 34 | /// Green 35 | /// 36 | public int Green 37 | { 38 | get { return GetMember( "G"); } 39 | } 40 | 41 | /// 42 | /// Blue 43 | /// 44 | public int Blue 45 | { 46 | get { return GetMember( "B"); } 47 | } 48 | 49 | /// 50 | /// The integer formed by ARGB 51 | /// 52 | public int Int 53 | { 54 | get { return GetMember( "Int"); } 55 | } 56 | 57 | 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQBody.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Body type. 9 | /// 10 | public class EQBody : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQBody(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The body types ID # 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// The full body type name 27 | /// 28 | public string Name 29 | { 30 | get { return GetMember( "Name"); } 31 | } 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQBuff.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Buff type. 9 | /// 10 | public class EQBuff : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQBuff(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Remove the buff. 19 | /// 20 | public void Remove() 21 | { 22 | ExecuteMethod("Remove"); 23 | } 24 | 25 | /// 26 | /// The remaining damage absorbtion of the buff (if any). This is not entirely accurate, it will only show you to the Dar of your spell when it was initially cast, or what it was when you last zoned (whichever is more recent). 27 | /// 28 | public int Dar 29 | { 30 | get { return GetMember( "Dar"); } 31 | } 32 | 33 | /// 34 | /// The duration of the buff in ticks (time remaining, not total duration) 35 | /// 36 | public EQTicks Duration 37 | { 38 | get { return new EQTicks(GetMember("Duration")); } 39 | } 40 | 41 | /// 42 | /// The ID of the buff or shortbuff slot the buff is in 43 | /// 44 | public int ID 45 | { 46 | get { return GetMember( "ID"); } 47 | } 48 | 49 | /// 50 | /// The level of the person that cast the buff on you (not the level of the spell) 51 | /// 52 | public int Level 53 | { 54 | get { return GetMember( "Level"); } 55 | } 56 | 57 | /// 58 | /// The modifier to a bard song 59 | /// 60 | public float Mod 61 | { 62 | get { return GetMember("Mod"); } 63 | } 64 | 65 | /// 66 | /// The spell 67 | /// 68 | public EQSpell Spell 69 | { 70 | get { return new EQSpell(GetPersistentMember("Spell")); } 71 | } 72 | 73 | 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQClass.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Class type. 9 | /// 10 | public class EQClass : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQClass(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// 19 | /// 20 | public string Name 21 | { 22 | get { return GetMember( "Name"); } 23 | } 24 | 25 | /// 26 | /// 27 | /// 28 | public string ShortName 29 | { 30 | get { return GetMember( "ShortName"); } 31 | } 32 | 33 | /// 34 | /// 35 | /// 36 | public int ID 37 | { 38 | get { return GetMember( "ID"); } 39 | } 40 | 41 | /// 42 | /// 43 | /// 44 | public bool PureCaster 45 | { 46 | get { return GetMember( "PureCaster"); } 47 | } 48 | 49 | /// 50 | /// 51 | /// 52 | public bool CanCast 53 | { 54 | get { return GetMember( "CanCast"); } 55 | } 56 | 57 | /// 58 | /// 59 | /// 60 | public bool DruidType 61 | { 62 | get { return GetMember( "DruidType"); } 63 | } 64 | 65 | /// 66 | /// 67 | /// 68 | public bool NecromancerType 69 | { 70 | get { return GetMember( "NecromancerType"); } 71 | } 72 | 73 | /// 74 | /// 75 | /// 76 | public bool ShamanType 77 | { 78 | get { return GetMember( "ShamanType"); } 79 | } 80 | 81 | /// 82 | /// 83 | /// 84 | public bool ClericType 85 | { 86 | get { return GetMember( "ClericType"); } 87 | } 88 | 89 | /// 90 | /// 91 | /// 92 | public bool PetClass 93 | { 94 | get { return GetMember( "PetClass"); } 95 | } 96 | 97 | /// 98 | /// 99 | /// 100 | public bool HealerType 101 | { 102 | get { return GetMember( "HealerType"); } 103 | } 104 | 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQCorpse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Corpse type. 9 | /// 10 | public class EQCorpse : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQCorpse(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Item count on the corpse 19 | /// 20 | public int Items 21 | { 22 | get { return GetMember( "Items"); } 23 | } 24 | 25 | 26 | public EQItem Item(int Number) 27 | { 28 | return new EQItem(GetMember("Item", Number.ToString())); 29 | } 30 | public EQItem Item(string Partial_Name) 31 | { 32 | return new EQItem(GetMember("Item", Partial_Name)); 33 | } 34 | public EQItem Item(string Name, bool exact) 35 | { 36 | if (exact) 37 | Name.Insert(0, "="); 38 | return new EQItem(GetMember("Item", Name)); 39 | } 40 | 41 | /// 42 | /// Corpse open? 43 | /// 44 | public bool Open 45 | { 46 | get { return GetMember( "Open"); } 47 | } 48 | 49 | public static EQCorpse Corpse 50 | { 51 | get 52 | { 53 | return new EQCorpse(LavishScriptAPI.LavishScript.Objects.GetObject("Corpse")); 54 | } 55 | } 56 | 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQCurrentZone.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest CurrentZone type. 9 | /// 10 | public class EQCurrentZone : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQCurrentZone(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Gravity 19 | /// 20 | public float Gravity 21 | { 22 | get { return GetMember("Gravity"); } 23 | } 24 | 25 | /// 26 | /// Zone ID 27 | /// 28 | public int ID 29 | { 30 | get { return GetMember( "ID"); } 31 | } 32 | 33 | /// 34 | /// Maximum clip plane allowed in zone 35 | /// 36 | public float MaxClip 37 | { 38 | get { return GetMember("MaxClip"); } 39 | } 40 | 41 | /// 42 | /// Minimum clip plane allowed in zone 43 | /// 44 | public float MinClip 45 | { 46 | get { return GetMember("MinClip"); } 47 | } 48 | 49 | /// 50 | /// Full zone name 51 | /// 52 | public string Name 53 | { 54 | get { return GetMember( "Name"); } 55 | } 56 | 57 | /// 58 | /// Short zone name 59 | /// 60 | public string ShortName 61 | { 62 | get { return GetMember( "ShortName"); } 63 | } 64 | 65 | /// 66 | /// Sky type 67 | /// 68 | public int SkyType 69 | { 70 | get { return GetMember( "SkyType"); } 71 | } 72 | 73 | /// 74 | /// Zone type 75 | /// 76 | public int Type 77 | { 78 | get { return GetMember( "Type"); } 79 | } 80 | 81 | 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQDZMember.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest DZMember type. 9 | /// 10 | public class EQDZMember : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQDZMember(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The name of the member 19 | /// 20 | public string Name 21 | { 22 | get { return GetMember( "Name"); } 23 | } 24 | 25 | /// 26 | /// The status of the member - will be one of the following: Unknown, Online, Offline, In Dynamic Zone, Link Dead 27 | /// 28 | public string Status 29 | { 30 | get { return GetMember( "Status"); } 31 | } 32 | 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQDeity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Deity type. 9 | /// 10 | public class EQDeity : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQDeity(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Deity ID number 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// Deity name 27 | /// 28 | public string Name 29 | { 30 | get { return GetMember( "Name"); } 31 | } 32 | 33 | /// 34 | /// Deity team. For pvp servers only? 35 | /// 36 | public string Team 37 | { 38 | get { return GetMember( "Team"); } 39 | } 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQDynamicZone.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest DynamicZone type. 9 | /// 10 | public class EQDynamicZone : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQDynamicZone(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The leader of the dynamic zone 19 | /// 20 | public EQDZMember Leader 21 | { 22 | get { return new EQDZMember(GetMember("Leader")); } 23 | } 24 | 25 | /// 26 | /// Maximum number of characters that can enter this dynamic zone 27 | /// 28 | public int MaxMembers 29 | { 30 | get { return GetMember( "MaxMembers"); } 31 | } 32 | 33 | /// 34 | /// The dynamic zone member # 35 | /// 36 | public EQDZMember Member(int Number) 37 | { 38 | return new EQDZMember(GetMember("Member", Number.ToString())); 39 | } 40 | /// 41 | /// The dynamic zone member name 42 | /// 43 | public EQDZMember Member(string Name) 44 | { 45 | return new EQDZMember(GetMember("Member", Name)); 46 | } 47 | 48 | /// 49 | /// Current number of characters in the dynamic zone 50 | /// 51 | public int Members 52 | { 53 | get { return GetMember( "Members"); } 54 | } 55 | 56 | /// 57 | /// The full name of the dynamic zone 58 | /// 59 | public string Name 60 | { 61 | get { return GetMember( "Name"); } 62 | } 63 | 64 | 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQEvolvingItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest EvolvingItem type. 9 | /// 10 | public class EQEvolvingItem : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQEvolvingItem(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// 19 | /// 20 | public float ExpPct 21 | { 22 | get { return GetMember("ExpPct"); } 23 | } 24 | 25 | /// 26 | /// 27 | /// 28 | public bool ExpOn 29 | { 30 | get { return GetMember( "ExpOn"); } 31 | } 32 | 33 | /// 34 | /// 35 | /// 36 | public int Level 37 | { 38 | get { return GetMember( "Level"); } 39 | } 40 | 41 | /// 42 | /// 43 | /// 44 | public int MaxLevel 45 | { 46 | get { return GetMember( "MaxLevel"); } 47 | } 48 | 49 | 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQFellowship.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Fellowship type. 9 | /// 10 | public class EQFellowship : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQFellowship(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// fellowship ID 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// leader's name 27 | /// 28 | public string Leader 29 | { 30 | get { return GetMember( "Leader"); } 31 | } 32 | 33 | /// 34 | /// number of members in fellowship 35 | /// 36 | public string MotD 37 | { 38 | get { return GetMember( "MotD"); } 39 | } 40 | 41 | /// 42 | /// TRUE if campfire is up, FALSE if not 43 | /// 44 | public int Members 45 | { 46 | get { return GetMember( "Members"); } 47 | } 48 | 49 | /// 50 | /// member info by index (1-9) or name 51 | /// 52 | public EQFellowshipMember Member 53 | { 54 | get { return new EQFellowshipMember(GetMember("Member")); } 55 | } 56 | 57 | /// 58 | /// how much time is left on campfire 59 | /// 60 | public EQTicks CampfireDuration 61 | { 62 | get { return new EQTicks(GetMember("CampfireDuration")); } 63 | } 64 | 65 | /// 66 | /// self explanatory 67 | /// 68 | public float CampfireY 69 | { 70 | get { return GetMember("CampfireY"); } 71 | } 72 | 73 | /// 74 | /// self explanatory 75 | /// 76 | public float CampfireX 77 | { 78 | get { return GetMember("CampfireX"); } 79 | } 80 | 81 | /// 82 | /// self explanatory 83 | /// 84 | public float CampfireZ 85 | { 86 | get { return GetMember("CampfireZ"); } 87 | } 88 | 89 | /// 90 | /// zoneinfo for the campfire 91 | /// 92 | public EQZone CampfireZone 93 | { 94 | get { return new EQZone(GetPersistentMember("CampfireZone")); } 95 | } 96 | 97 | /// 98 | /// TRUE if campfire is up, FALSE if not 99 | /// 100 | public bool Campfire 101 | { 102 | get { return GetMember( "Campfire"); } 103 | } 104 | 105 | 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQFellowshipMember.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest FellowshipMember type. 9 | /// 10 | public class EQFellowshipMember : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQFellowshipMember(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Player Name 19 | /// 20 | public string Name 21 | { 22 | get { return GetMember( "Name"); } 23 | } 24 | 25 | /// 26 | /// zoneinfo for this player 27 | /// 28 | public EQZone Zone 29 | { 30 | get { return new EQZone(GetPersistentMember("Zone")); } 31 | } 32 | 33 | /// 34 | /// this player's level 35 | /// 36 | public int Level 37 | { 38 | get { return GetMember( "Level"); } 39 | } 40 | 41 | /// 42 | /// class info for this player 43 | /// 44 | public EQClass Class 45 | { 46 | get { return new EQClass(GetPersistentMember("Class")); } 47 | } 48 | 49 | /// 50 | /// when this player was last online 51 | /// 52 | public EQTicks LastOn 53 | { 54 | get { return new EQTicks(GetMember("LastOn")); } 55 | } 56 | 57 | 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQGroup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Group type. 9 | /// 10 | public class EQGroup : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQGroup(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Accesses #th member of your group; 0 is you, 1 is the first person in the group list, etc. 19 | /// 20 | public EQGroupMember Member(int Number) 21 | { 22 | return new EQGroupMember(GetMember("Member", Number.ToString())); 23 | } 24 | 25 | /// 26 | /// Which number in the group the PC with name is 27 | /// 28 | public int MemberNumber(string Name) 29 | { 30 | return GetMember( "Member", Name); 31 | } 32 | 33 | /// 34 | /// Total number of group members, excluding yourself 35 | /// 36 | public int Members 37 | { 38 | get { return GetMember( "Members"); } 39 | } 40 | 41 | /// 42 | /// The leader of your group 43 | /// 44 | public EQGroupMember Leader 45 | { 46 | get { return new EQGroupMember(GetMember("Leader")); } 47 | } 48 | 49 | 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQGroupMember.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest GroupMember type. 9 | /// 10 | public class EQGroupMember : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQGroupMember(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The name of the group member. This works even if they are not in the same zone as you. 19 | /// 20 | public string Name 21 | { 22 | get { return GetMember( "Name"); } 23 | } 24 | 25 | /// 26 | /// Accesses the group member's spawn directly. This is only really needed to access Spawn.Name, instead of GroupMember.Name, as spawn is inherited automatically. 27 | /// 28 | public EQSpawn Spawn 29 | { 30 | get { return new EQSpawn(GetPersistentMember("Spawn")); } 31 | } 32 | 33 | /// 34 | /// TRUE if the member is the group's leader, FALSE otherwise 35 | /// 36 | public bool Leader 37 | { 38 | get { return GetMember( "Leader"); } 39 | } 40 | 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQHeading.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Heading type. 9 | /// 10 | public class EQHeading : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQHeading(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The long compass direction, eg. "south", "south by southeast" 19 | /// 20 | public string Name 21 | { 22 | get { return GetMember( "Name"); } 23 | } 24 | 25 | /// 26 | /// The short compass direction, eg. "S", "SSE" 27 | /// 28 | public string ShortName 29 | { 30 | get { return GetMember( "ShortName"); } 31 | } 32 | 33 | /// 34 | /// Heading in degrees (same as casting to float) 35 | /// 36 | public float Degrees 37 | { 38 | get { return GetMember("Degrees"); } 39 | } 40 | 41 | /// 42 | /// The nearest clock direction, e.g. 1-12 43 | /// 44 | public int Clock 45 | { 46 | get { return GetMember( "Clock"); } 47 | } 48 | 49 | /// 50 | /// Heading in degrees Counter-Clockwise (the way the rest of MQ2 and EQ uses it) 51 | /// 52 | public float DegreesCCW 53 | { 54 | get { return GetMember("DegreesCCW"); } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQInvSlot.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest InventorySlot type. 9 | /// 10 | public class EQInvSlot : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQInvSlot(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Number of this item slot (usable directly by /itemnotify) 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// Item contained by this item slot 27 | /// 28 | public EQItem Item 29 | { 30 | get { return new EQItem(GetMember("Item")); } 31 | } 32 | 33 | /// 34 | /// For inventory slots not inside packs, the slot name, otherwise NULL 35 | /// 36 | public string Name 37 | { 38 | get { return GetMember( "Name"); } 39 | } 40 | 41 | /// 42 | /// Container that must be opened to access the slot with /itemnotify 43 | /// 44 | public EQInvSlot Pack 45 | { 46 | get { return new EQInvSlot(GetPersistentMember("Pack")); } 47 | } 48 | 49 | /// 50 | /// Slot number inside the pack which holds the item, otherwise NULL 51 | /// 52 | public int Slot 53 | { 54 | get { return GetMember( "Slot"); } 55 | } 56 | 57 | 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQMerchant.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Ticks type. 9 | /// 10 | public class EQMerchant : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQMerchant(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Merchant full? 19 | /// 20 | public bool Full 21 | { 22 | get { return GetMember( "Full"); } 23 | } 24 | 25 | /// 26 | /// Number of items on the merchant 27 | /// 28 | public int Items 29 | { 30 | get { return GetMember( "Items"); } 31 | } 32 | 33 | public EQItem Item(int Number) 34 | { 35 | return new EQItem(GetMember("Item", Number.ToString())); 36 | } 37 | public EQItem Item(string partial_name) 38 | { 39 | return new EQItem(GetMember("Item", partial_name)); 40 | } 41 | public EQItem Item(string name, bool exact) 42 | { 43 | if (exact) 44 | name.Insert(0, "="); 45 | return new EQItem(GetMember("Item", name)); 46 | } 47 | 48 | /// 49 | /// The value used to calculate item values for merchant (Markup is what your charisma and faction change) * Markup*Cost=Merchant sell price. * Cost*(1/Markup)=Your sell price. 1.05 is the cap, so there might not be a cap based on Charisma. 50 | /// 51 | public float Markup 52 | { 53 | get { return GetMember("Markup"); } 54 | } 55 | 56 | /// 57 | /// Merchant open? 58 | /// 59 | public bool Open 60 | { 61 | get { return GetMember( "Open"); } 62 | } 63 | 64 | 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQRace.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Race type. 9 | /// 10 | public class EQRace : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQRace(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// 27 | /// 28 | public string Name 29 | { 30 | get { return GetMember( "Name"); } 31 | } 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQRaidMember.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest RaidMember type. 9 | /// 10 | public class EQRaidMember : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQRaidMember(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Raid member's class (works without being in zone) 19 | /// 20 | public EQClass Class 21 | { 22 | get { return new EQClass(GetPersistentMember("Class")); } 23 | } 24 | 25 | /// 26 | /// Current group number (or 0) 27 | /// 28 | public int Group 29 | { 30 | get { return GetMember( "Group"); } 31 | } 32 | 33 | /// 34 | /// Group leader? 35 | /// 36 | public bool GroupLeader 37 | { 38 | get { return GetMember( "GroupLeader"); } 39 | } 40 | 41 | /// 42 | /// Raid member's level (works without being in zone) 43 | /// 44 | public int Level 45 | { 46 | get { return GetMember( "Level"); } 47 | } 48 | 49 | /// 50 | /// Allowed to loot with current loot rules and looters? 51 | /// 52 | public bool Looter 53 | { 54 | get { return GetMember( "Looter"); } 55 | } 56 | 57 | /// 58 | /// Allowed to loot with current loot rules and looters? 59 | /// 60 | public string Name 61 | { 62 | get { return GetMember( "Name"); } 63 | } 64 | 65 | /// 66 | /// Raid leader? 67 | /// 68 | public bool RaidLeader 69 | { 70 | get { return GetMember( "RaidLeader"); } 71 | } 72 | 73 | /// 74 | /// spawn object for this player if available (must be in zone) 75 | /// 76 | public EQSpawn Spawn 77 | { 78 | get { return new EQSpawn(GetPersistentMember("Spawn")); } 79 | } 80 | 81 | 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQSkill.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Skill type. 9 | /// 10 | public class EQSkill : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQSkill(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Skill uses the kick/bash/slam/backstab/frenzy timer? 19 | /// 20 | public bool AltTimer 21 | { 22 | get { return GetMember( "AltTimer"); } 23 | } 24 | 25 | /// 26 | /// Skill number 27 | /// 28 | public int ID 29 | { 30 | get { return GetMember( "ID"); } 31 | } 32 | 33 | /// 34 | /// Minimum level for your class 35 | /// 36 | public int MinLevel 37 | { 38 | get { return GetMember( "MinLevel"); } 39 | } 40 | 41 | /// 42 | /// Name of the skill 43 | /// 44 | public string Name 45 | { 46 | get { return GetMember( "Name"); } 47 | } 48 | 49 | /// 50 | /// Reuse timer (what number format? ticks, seconds, deciseconds?) 51 | /// 52 | public int ReuseTime 53 | { 54 | get { return GetMember( "ReuseTime"); } 55 | } 56 | 57 | /// 58 | /// Skill cap based on your current level and class. 59 | /// 60 | public int SkillCap 61 | { 62 | get { return GetMember( "SkillCap"); } 63 | } 64 | 65 | /// 66 | /// Base skill level for your class 67 | /// 68 | public int StartingSkill 69 | { 70 | get { return GetMember( "StartingSkill"); } 71 | } 72 | 73 | 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQTicks.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Ticks type. 9 | /// 10 | public class EQTicks : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQTicks(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The number of hours in HH:MM:SS (0-23) 19 | /// 20 | public int Hours 21 | { 22 | get { return GetMember( "Hours"); } 23 | } 24 | 25 | /// 26 | /// The number of minutes in HH:MM:SS (1-59) 27 | /// 28 | public int Minutes 29 | { 30 | get { return GetMember( "Minutes"); } 31 | } 32 | 33 | /// 34 | /// The number of seconds in HH:MM:SS (1-59) 35 | /// 36 | public int Seconds 37 | { 38 | get { return GetMember( "Seconds"); } 39 | } 40 | 41 | /// 42 | /// Time in the form MM:SS 43 | /// 44 | public string Time 45 | { 46 | get { return GetMember( "Time"); } 47 | } 48 | 49 | /// 50 | /// The total number of minutes 51 | /// 52 | public int TotalMinutes 53 | { 54 | get { return GetMember( "TotalMinutes"); } 55 | } 56 | 57 | /// 58 | /// The total number of seconds 59 | /// 60 | public int TotalSeconds 61 | { 62 | get { return GetMember( "TotalSeconds"); } 63 | } 64 | 65 | /// 66 | /// The value in ticks 67 | /// 68 | public int Ticks 69 | { 70 | get { return GetMember( "Ticks"); } 71 | } 72 | 73 | /// 74 | /// Time in the form HH:MM:SS (if there are no hours, the form will be MM:SS) 75 | /// 76 | public string TimeHMS 77 | { 78 | get { return GetMember( "TimeHMS"); } 79 | } 80 | 81 | 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQTime.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Time type. 9 | /// 10 | public class EQTime : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQTime(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Date in the format MM/DD/YYYY 19 | /// 20 | public string Date 21 | { 22 | get { return GetMember( "Date"); } 23 | } 24 | 25 | /// 26 | /// Day of the month 27 | /// 28 | public int Day 29 | { 30 | get { return GetMember( "Day"); } 31 | } 32 | 33 | /// 34 | /// Day of the week (1=sunday to 7=saturday) 35 | /// 36 | public int DayOfWeek 37 | { 38 | get { return GetMember( "DayOfWeek"); } 39 | } 40 | 41 | /// 42 | /// Hour (0-23) 43 | /// 44 | public int Hour 45 | { 46 | get { return GetMember( "Hour"); } 47 | } 48 | 49 | /// 50 | /// Minute (0-59) 51 | /// 52 | public int Minute 53 | { 54 | get { return GetMember( "Minute"); } 55 | } 56 | 57 | /// 58 | /// Month of the year (1-12) 59 | /// 60 | public int Month 61 | { 62 | get { return GetMember( "Month"); } 63 | } 64 | 65 | /// 66 | /// Gives true if the current hour is considered "night" in EQ (7:00pm-6:59am) 67 | /// 68 | public bool Night 69 | { 70 | get { return GetMember( "Night"); } 71 | } 72 | 73 | /// 74 | /// Second (0-59) 75 | /// 76 | public int Second 77 | { 78 | get { return GetMember( "Second"); } 79 | } 80 | 81 | /// 82 | /// Number of seconds since midnight 83 | /// 84 | public int SecondsSinceMidnight 85 | { 86 | get { return GetMember( "SecondsSinceMidnight"); } 87 | } 88 | 89 | /// 90 | /// Time in 12-hour format (HH:MM:SS) 91 | /// 92 | public string Time12 93 | { 94 | get { return GetMember( "Time12"); } 95 | } 96 | 97 | /// 98 | /// Time in 24-hour format (HH:MM:SS) 99 | /// 100 | public string Time24 101 | { 102 | get { return GetMember( "Time24"); } 103 | } 104 | 105 | /// 106 | /// Year 107 | /// 108 | public int Year 109 | { 110 | get { return GetMember( "Year"); } 111 | } 112 | 113 | 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQTimer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Timer type. 9 | /// 10 | public class EQTimer : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQTimer(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// 19 | /// 20 | public void Reset() 21 | { 22 | ExecuteMethod("Reset"); 23 | } 24 | 25 | /// 26 | /// 27 | /// 28 | public void Expire() 29 | { 30 | ExecuteMethod("Expire"); 31 | } 32 | 33 | /// 34 | /// 35 | /// 36 | public void Set() 37 | { 38 | ExecuteMethod("Set"); 39 | } 40 | 41 | 42 | 43 | /// 44 | /// Current value of the timer 45 | /// 46 | public int Value 47 | { 48 | get { return GetMember( "Value"); } 49 | } 50 | 51 | /// 52 | /// Original value of the timer 53 | /// 54 | public int OriginalValue 55 | { 56 | get { return GetMember( "OriginalValue"); } 57 | } 58 | 59 | 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQZone.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Zone type. 9 | /// 10 | public class EQZone : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQZone(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Zone ID 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// Full zone name 27 | /// 28 | public string Name 29 | { 30 | get { return GetMember( "Name"); } 31 | } 32 | 33 | /// 34 | /// Short zone name 35 | /// 36 | public string ShortName 37 | { 38 | get { return GetMember( "ShortName"); } 39 | } 40 | 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /ISXEQ.NET/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ISXEQ.NET")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("ISXEQ.NET")] 13 | [assembly: AssemblyCopyright("Copyright © 2008")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("4a89e77e-cac5-49b0-a872-ae1c1fc65314")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /ISXEQClient.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License, version 2, as published by 6 | the Free Software Foundation. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | ******************************************************************************/ 13 | 14 | #ifndef _MQ2PLUGIN_H 15 | #define _MQ2PLUGIN_H 16 | 17 | #define MQ2PLUGIN 18 | #ifndef ISXEQ 19 | #ifndef ISXEQ_LEGACY 20 | #define ISXEQ 21 | #endif 22 | #endif 23 | #include "MQ2Main/MQ2Main.h" 24 | #include "MQ2Main/MQ2Globals.h" 25 | 26 | #pragma comment(lib, "isxdk.lib") 27 | #pragma comment(lib, "ISXEQ") 28 | 29 | #ifdef EQLIB_EXPORTS 30 | #pragma message("EQLIB_EXPORTS") 31 | #else 32 | #pragma message("EQLIB_IMPORTS") 33 | #endif 34 | 35 | #define PLUGIN_API extern "C" __declspec(dllexport) 36 | 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /ISXEQLegacy/ISXEQLegacy.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../ISXEQClient.h" 3 | #define __LSTYPE_H__ 4 | #define LSTYPEVAR DATAVAR 5 | #define LSOBJECT DATAVAR 6 | #pragma pack(push) 7 | #pragma pack(8) 8 | #include 9 | #pragma pack(pop) 10 | 11 | class ISXEQLegacy : 12 | public ISXInterface 13 | { 14 | public: 15 | 16 | virtual bool Initialize(ISInterface *p_ISInterface); 17 | virtual void Shutdown(); 18 | 19 | void LoadSettings(); 20 | void ConnectServices(); 21 | void RegisterServices(); 22 | 23 | void DisconnectServices(); 24 | void UnRegisterServices(); 25 | 26 | }; 27 | 28 | extern ISInterface *pISInterface; 29 | extern HISXSERVICE hPulseService; 30 | extern HISXSERVICE hMemoryService; 31 | extern HISXSERVICE hServicesService; 32 | extern HISXSERVICE hScriptEngineService; 33 | 34 | extern HISXSERVICE hEQChatService; 35 | extern HISXSERVICE hEQUIService; 36 | extern HISXSERVICE hEQGamestateService; 37 | extern HISXSERVICE hEQSpawnService; 38 | extern HISXSERVICE hEQZoneService; 39 | 40 | extern ISXEQLegacy *pExtension; 41 | #define printf pISInterface->Printf 42 | 43 | #undef EzDetour 44 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 45 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 46 | 47 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 48 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 51 | 52 | #include "ISXEQLegacyEngine.h" 53 | extern class ISXEQLegacyEngine g_LegacyEngine; 54 | -------------------------------------------------------------------------------- /ISXEQLegacy/ISXEQLegacyEngine.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | #include "ISXEQLegacy.h" 16 | #include "isxeqlegacyengine.h" 17 | 18 | ISXEQLegacyEngine::ISXEQLegacyEngine(void) 19 | { 20 | } 21 | 22 | ISXEQLegacyEngine::~ISXEQLegacyEngine(void) 23 | { 24 | } 25 | 26 | bool ISXEQLegacyEngine::GetCaps(ISXSCRIPTENGINECAPS &Dest) 27 | { 28 | if (Dest.Sizeof==sizeof(ISXSCRIPTENGINECAPS)) 29 | { 30 | Dest.bMultipleScripts=false; 31 | Dest.bPersistent=true; 32 | Dest.bPreprocessor=true; 33 | return true; 34 | } 35 | return false; 36 | } 37 | 38 | extern void Heartbeat(); 39 | void ISXEQLegacyEngine::Pulse() 40 | { 41 | Heartbeat(); 42 | } 43 | 44 | bool ISXEQLegacyEngine::ExecuteScript(const char *FullFilename, int argc, char *argv[]) 45 | { 46 | char MacroLine[2048]={0}; 47 | 48 | if (argc) 49 | { 50 | char *pOut=MacroLine; 51 | pOut+=sprintf(MacroLine,"\"%s\" ",FullFilename); 52 | pISInterface->GetArgs(0,argc,argv,pOut); 53 | } 54 | else 55 | { 56 | sprintf(MacroLine,"\"%s\"",FullFilename); 57 | } 58 | 59 | Macro((PSPAWNINFO)pCharSpawn,MacroLine); 60 | return true; 61 | } 62 | 63 | bool ISXEQLegacyEngine::EndScript(const char *Name) 64 | { 65 | EndMacro((PSPAWNINFO)pCharSpawn,""); 66 | return true; 67 | } 68 | 69 | unsigned long __stdcall MQ2DataVariableLookup(char * VarName, char * Value) 70 | { 71 | strcpy(Value,VarName); 72 | return strlen(ParseMacroParameter(GetCharInfo()->pSpawn,Value)); 73 | } 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /ISXEQLegacy/ISXEQLegacyEngine.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ISXEQLegacyEngine : 4 | public ISXScriptEngine 5 | { 6 | public: 7 | ISXEQLegacyEngine(void); 8 | ~ISXEQLegacyEngine(void); 9 | 10 | virtual const char *GetName() 11 | { 12 | return "LegacyMQ2"; 13 | } 14 | virtual const char *GetVersion() // used by extensions. implement however you want 15 | { 16 | return "1.00"; 17 | } 18 | virtual bool GetCaps(ISXSCRIPTENGINECAPS &Dest); // used by extensions to retrieve engine capabilities 19 | 20 | virtual void Pulse(); // for persistent scripts, use this to process microthreads, etc. 21 | 22 | virtual bool ExecuteScript(const char *FullFilename, int argc, char *argv[]); // used by RunScript command 23 | virtual bool EndScript(const char *Name); // used by EndScript 24 | }; 25 | 26 | -------------------------------------------------------------------------------- /ISXEQLegacy/LegacyGlobals.cpp: -------------------------------------------------------------------------------- 1 | #include "ISXEQLegacy.h" 2 | 3 | namespace MQ2Globals 4 | { 5 | 6 | PDATAVAR pGlobalVariables=0; 7 | PDATAVAR pMacroVariables=0; 8 | 9 | PMACROBLOCK gMacroBlock = NULL; 10 | PMACROSTACK gMacroStack = NULL; 11 | map gMacroSubLookupMap; 12 | PEVENTQUEUE gEventQueue = NULL; 13 | PMACROBLOCK gEventFunc[NUM_EVENTS] = {NULL}; 14 | 15 | Blech *pMQ2Blech=0; 16 | CHAR EventMsg[MAX_STRING]={0}; 17 | #ifdef USEBLECHEVENTS 18 | Blech *pEventBlech = 0; 19 | #endif 20 | PEVENTLIST pEventList = NULL; 21 | 22 | }; 23 | -------------------------------------------------------------------------------- /MQ2-API.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/MQ2-API.chm -------------------------------------------------------------------------------- /MQ2Auth.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/MQ2Auth.exe -------------------------------------------------------------------------------- /MQ2AutoLogin/MQ2AutoLogin.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | Win32Proj 15 | {BC2C195E-87B3-4974-A398-0E1FA51FBB8E} 16 | 10.0.16299.0 17 | 18 | 19 | 20 | DynamicLibrary 21 | v141 22 | 23 | 24 | DynamicLibrary 25 | v141 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | <_ProjectFileVersion>11.0.51106.1 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /MQ2AutoLogin/MQ2AutoLogin.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {88bfac3a-75d5-44ef-883c-44da15d732ef} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {82b04263-17d1-4e43-ae37-7f05bd584d79} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {5c7a0f0b-8d0c-4645-b3b1-76e09413d3f5} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Bzsrch/MQ2Bzsrch.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {b9414d2b-fb1b-47d8-ad13-d6dcf5d2dfc2} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {e520224b-e4f7-4056-b4df-5e60c129a6ef} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {c2fcef30-4280-4a46-a5ce-5f430e713606} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | 26 | 27 | Header Files 28 | 29 | 30 | Header Files 31 | 32 | 33 | -------------------------------------------------------------------------------- /MQ2Bzsrch/netstream.h: -------------------------------------------------------------------------------- 1 | /* 2 | * netstream.h 3 | * 4 | * ShowEQ Distributed under GPL 5 | * http://www.sourceforge.net/projects/seq 6 | * 7 | * Copyright 2004 Zaphod (dohpaz@users.sourceforge.net). 8 | * 9 | */ 10 | 11 | #ifndef _NETSTREAM_H_ 12 | #define _NETSTREAM_H_ 13 | 14 | #include 15 | 16 | class NetStream 17 | { 18 | public: 19 | NetStream(const unsigned char* data, unsigned int length); 20 | ~NetStream(); 21 | 22 | const unsigned char* data() { return m_data; } 23 | unsigned int length() { return m_length; } 24 | void reset(); 25 | bool end() { return (m_pos >= m_lastPos); } 26 | const unsigned char* pos() { return m_pos; } 27 | 28 | unsigned char readUInt8(); 29 | signed char readInt8(); 30 | unsigned short readUInt16n(); 31 | short readInt16(); 32 | unsigned int readUInt32n(); 33 | int readInt32(); 34 | std::string readText(); 35 | unsigned short readUInt16(); 36 | unsigned int readUInt32(); 37 | void skipBytes(unsigned int byteCount); 38 | 39 | protected: 40 | const unsigned char* m_data; 41 | unsigned int m_length; 42 | const unsigned char* m_lastPos; 43 | const unsigned char* m_pos; 44 | }; 45 | 46 | /** 47 | * A network stream that manages data by the bit. This is useful for 48 | * unpacking non-byte-aligned data. 49 | */ 50 | class BitStream 51 | { 52 | public: 53 | BitStream(const unsigned char* data, unsigned int length); 54 | ~BitStream(); 55 | 56 | const unsigned char* data() { return m_data; } 57 | unsigned int length() { return m_totalBits >> 3; } 58 | void reset(); 59 | bool end() { return (m_currentBit >= m_totalBits); } 60 | 61 | bool readBit(); 62 | unsigned int readUInt(unsigned int bitCount); 63 | int readInt(unsigned int bitCount); 64 | 65 | protected: 66 | const unsigned char* m_data; 67 | unsigned int m_totalBits; 68 | unsigned int m_currentBit; 69 | }; 70 | 71 | inline unsigned short eqntohuint16(const unsigned char* data) 72 | { 73 | return (unsigned short)((data[0] << 8) | data[1]); 74 | } 75 | 76 | inline short eqntohint16(const unsigned char* data) 77 | { 78 | return (short)((data[0] << 8) | data[1]); 79 | } 80 | 81 | inline unsigned int eqntohuint32(const unsigned char* data) 82 | { 83 | return (unsigned int)((data[0] << 24) | (data[1] << 16) | 84 | (data[2] << 8) | data[3]); 85 | } 86 | 87 | inline int eqntohint32(const unsigned char* data) 88 | { 89 | return (int)((data[0] << 24) | (data[1] << 16) | 90 | (data[2] << 8) | data[3]); 91 | } 92 | 93 | inline unsigned short eqtohuint16(const unsigned char* data) 94 | { 95 | return *(unsigned short*)data; 96 | } 97 | 98 | inline short eqtohint16(const unsigned char* data) 99 | { 100 | return *(short*)data; 101 | } 102 | 103 | inline unsigned int eqtohuint32(const unsigned char* data) 104 | { 105 | return *(unsigned int*)data; 106 | } 107 | 108 | inline int eqtohint32(const unsigned char* data) 109 | { 110 | return *(int*)data; 111 | } 112 | 113 | #endif // _NETSTREAM_H_ 114 | 115 | 116 | -------------------------------------------------------------------------------- /MQ2Chat/ISXEQChat.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQChat : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQChat *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /MQ2Chat/ISXEQChat.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {50087621-a51a-44e8-bc80-f5e9a263bd47} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {d49a6ab1-764c-4c22-a9d3-23ae77c80b92} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {e4962630-6a07-47ac-8a4a-42970e68698a} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Chat/MQ2Chat.cpp: -------------------------------------------------------------------------------- 1 | // MQ2Chat.cpp : Defines the entry point for the DLL application. 2 | // The "old" chat plugin 3 | 4 | 5 | 6 | #include "../MQ2Plugin.h" 7 | 8 | PreSetup("MQ2Chat"); 9 | 10 | 11 | PLUGIN_API VOID InitializePlugin(VOID) 12 | { 13 | DebugSpewAlways("Initializing MQ2Chat"); 14 | // Add commands, macro parameters, hooks, etc. 15 | } 16 | 17 | PLUGIN_API VOID ShutdownPlugin(VOID) 18 | { 19 | DebugSpewAlways("Shutting down MQ2Chat"); 20 | 21 | // Remove commands, macro parameters, hooks, etc. 22 | } 23 | 24 | PLUGIN_API DWORD OnWriteChatColor(PCHAR Line, DWORD Color, DWORD Filter) 25 | { 26 | // This is called every time WriteChatColor is called by MQ2Main or any plugin, 27 | // IGNORING FILTERS, IF YOU NEED THEM MAKE SURE TO IMPLEMENT THEM. IF YOU DONT 28 | // CALL CEverQuest::dsp_chat MAKE SURE TO IMPLEMENT EVENTS HERE 29 | CHAR Stripped[MAX_STRING]; 30 | StripMQChat(Line,Stripped); 31 | if (gFilterMacro == FILTERMACRO_NONE) return 0; 32 | if (!ppEverQuest) return 0; 33 | if (gGameState!=GAMESTATE_INGAME) return 0; 34 | 35 | if (!pEverQuest) 36 | return 0; 37 | dsp_chat_no_events(Stripped,Color,1); 38 | return 0; 39 | } 40 | 41 | -------------------------------------------------------------------------------- /MQ2Chat/MQ2Chat.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {1d9df4ba-4f99-4386-8a95-bc573b5d49cc} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {631973e7-7a23-4cfa-8555-d0eb30089fc2} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {990343ba-020c-41b4-b93c-67f8698d6f6d} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2ChatWnd/ISXEQChatWnd.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | class ISXEQChatWnd : public ISXInterface 8 | { 9 | public: 10 | virtual bool Initialize(ISInterface *p_ISInterface); 11 | virtual void Shutdown(); 12 | }; 13 | 14 | extern ISInterface *pISInterface; 15 | extern HISXSERVICE hPulseService; 16 | extern HISXSERVICE hMemoryService; 17 | extern HISXSERVICE hServicesService; 18 | 19 | extern HISXSERVICE hEQChatService; 20 | extern HISXSERVICE hEQUIService; 21 | extern HISXSERVICE hEQGamestateService; 22 | extern HISXSERVICE hEQSpawnService; 23 | extern HISXSERVICE hEQZoneService; 24 | 25 | extern ISXEQChatWnd *pExtension; 26 | 27 | #define printf pISInterface->Printf 28 | 29 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 30 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 31 | 32 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 33 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 34 | 35 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 36 | -------------------------------------------------------------------------------- /MQ2ChatWnd/ISXEQChatWnd.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {6a73d98c-ad28-4895-b8bb-56dc505f3f30} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {cdb0cdce-0918-4a29-9c0c-112c3cf470ef} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {45949a93-f710-4945-b334-47750ad2bbe3} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2ChatWnd/MQ2ChatWnd.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {b760885f-21bf-4133-9886-15b5d84278df} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {9a23aefd-549d-44b3-acbc-13553ad85ff2} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {45684388-0703-40ee-a0fc-f1730bd05728} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2CustomBinds/ISXEQCustomBinds.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQCustomBinds : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void ConnectServices(); 17 | void RegisterCommands(); 18 | void RegisterAliases(); 19 | void RegisterDataTypes(); 20 | void RegisterTopLevelObjects(); 21 | void RegisterServices(); 22 | 23 | void DisconnectServices(); 24 | void UnRegisterCommands(); 25 | void UnRegisterAliases(); 26 | void UnRegisterDataTypes(); 27 | void UnRegisterTopLevelObjects(); 28 | void UnRegisterServices(); 29 | 30 | }; 31 | 32 | extern ISInterface *pISInterface; 33 | extern HISXSERVICE hPulseService; 34 | extern HISXSERVICE hMemoryService; 35 | extern HISXSERVICE hServicesService; 36 | 37 | extern HISXSERVICE hEQChatService; 38 | extern HISXSERVICE hEQUIService; 39 | extern HISXSERVICE hEQGamestateService; 40 | extern HISXSERVICE hEQSpawnService; 41 | extern HISXSERVICE hEQZoneService; 42 | 43 | extern ISXEQCustomBinds *pExtension; 44 | #define printf pISInterface->Printf 45 | 46 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 47 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 48 | 49 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 50 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 51 | 52 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 53 | 54 | extern LSType *pStringType; 55 | extern LSType *pIntType; 56 | extern LSType *pBoolType; 57 | extern LSType *pFloatType; 58 | extern LSType *pTimeType; 59 | extern LSType *pByteType; 60 | -------------------------------------------------------------------------------- /MQ2CustomBinds/ISXEQCustomBinds.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4f1f2452-0182-4168-87ab-d30748dacef9} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {411e81f9-4e41-4607-ba08-45fcf4add6b2} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {2c00d392-339c-4fd0-8160-ac05b4c6f082} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2CustomBinds/MQ2CustomBinds.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {532c0af6-a9d2-4cea-8ad8-dfaef5f3943d} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {8f371e79-1a44-4e1c-a01e-36e5ad4163ca} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {1a53f5f7-87dc-4696-9137-17eb4ce2ed25} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2EQBugFix/MQ2EQBugFix.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {7db2e500-2281-455d-b431-b8222582e8e3} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {5deaef87-5551-4bdf-8680-2125af1f9025} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {60b881be-00fd-492c-9abf-90509db35ecf} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2EQIM/ISXEQEQIM.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQEQIM : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQEQIM *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /MQ2EQIM/ISXEQEQIM.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {02949806-da2b-4437-810f-33a45a4b1065} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {737f0547-d1ce-4aa1-97e8-4d2c9e6805cb} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {bd9b1133-8355-4b18-a881-b22214c4c499} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2EQIM/MQ2EQIM.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {eacc7fbd-0ecd-4f20-b489-e4e940ed34dd} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {6e893806-d862-43f0-a918-951f79b9a69f} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {e93f0fa6-7efe-42cb-9290-69f4c649b60d} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2HUD/MQ2HUD.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {1b4b12d1-e6ab-41d4-b0ba-9321d09024b5} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {3718dc77-e4e5-4adb-807b-d16e58327541} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {da25492b-f40f-4b37-814d-50f2ba4e41dd} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Irc/MQ2Irc.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {72ac4fb4-8ef5-437c-8cf6-423ebc066226} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {1cfb6775-cca2-4a9b-8997-55b37096dcc7} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {ff692b3c-54ff-4e74-94e4-bbc5c69de75c} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Irc/mqirc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/MQ2Irc/mqirc.h -------------------------------------------------------------------------------- /MQ2ItemDisplay/ISXEQItemDisplay.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQItemDisplay : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQItemDisplay *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /MQ2ItemDisplay/ISXEQItemDisplay.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {869aa832-6dfe-4def-b75a-8dacfa48e52f} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {7767c691-6bbe-44a2-afbc-82941f6e9608} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {0876abe4-ee87-4dc3-901c-8cd4989db066} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2ItemDisplay/MQ2ItemDisplay.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/MQ2ItemDisplay/MQ2ItemDisplay.rc -------------------------------------------------------------------------------- /MQ2ItemDisplay/MQ2ItemDisplay.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {7919992d-761a-4b6e-9195-154f4d452890} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {5b446a35-1fb8-473a-b696-a8434ab48b66} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {87782a9d-3dd7-4a76-bb4f-4e14458e5909} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | Header Files 28 | 29 | 30 | 31 | 32 | Resource Files 33 | 34 | 35 | 36 | 37 | Resource Files 38 | 39 | 40 | -------------------------------------------------------------------------------- /MQ2ItemDisplay/MQUI_CompareTipWnd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CT_Display 7 | WDT_Inner 8 | true 9 | false 10 | true 11 | true 12 | 2 13 | 3 14 | 2 15 | 3 16 | false 17 | false 18 | false 19 | 20 | 21 | 22 | CompareTipWnd 23 | WDT_Def 24 | false 25 | 26 | 50 27 | 100 28 | 29 | 30 | 390 31 | 325 32 | 33 | CompareTip 34 | false 35 | false 36 | false 37 | true 38 | false 39 | false 40 | true 41 | true 42 | CT_Display 43 | 44 | -------------------------------------------------------------------------------- /MQ2ItemDisplay/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by MQ2ItemDisplay.rc 4 | // 5 | #define IDR_XML1 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /MQ2Labels/ISXEQLabels.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQLabels : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQLabels *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /MQ2Labels/ISXEQLabels.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {0ab53821-92cd-4fd7-8e98-79db743207ff} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {d6795130-916b-49d6-a880-bcd5290b926a} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {4cc4a2f3-8f43-471d-ad8f-09e42760a0f3} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Labels/MQ2Labels.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {990de73a-23c4-4f38-b4a9-a100226eb601} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {7df92b19-387d-4e3e-9db7-518043476ea9} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {8f49529d-7a25-4f28-8c74-431243abfd8c} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Main/DebugHandler.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #pragma warning (disable : 4509) 4 | //extern "C" { __declspec(dllexport) int MQ2ExceptionFilter(unsigned int code, struct _EXCEPTION_POINTERS* ep, const char * description, ...); } 5 | 6 | #define MQ2Except() __except(MQ2ExceptionFilter(GetExceptionCode(), GetExceptionInformation(), __FUNCTION__)) 7 | 8 | namespace internal 9 | { 10 | template 11 | using IsVoid = std::is_same, void>; 12 | } 13 | 14 | // overload for expressions that return a type 15 | template ::value, void>::type* = nullptr> 17 | auto Debug_TryExecute(const char* func_name, int line, const T& func) -> decltype(func()) 18 | { 19 | __try 20 | { 21 | return func(); 22 | } 23 | __except(MQ2ExceptionFilter(GetExceptionCode(), GetExceptionInformation(),"%s: Line %i", func_name, line)) 24 | { 25 | decltype(func()) v{}; 26 | return v; 27 | } 28 | } 29 | 30 | // overload for expressions that return void 31 | template ::value, void>::type* = nullptr> 33 | void Debug_TryExecute(const char* func_name, int line, const T& func) 34 | { 35 | __try { 36 | func(); 37 | } 38 | __except (MQ2ExceptionFilter(GetExceptionCode(), GetExceptionInformation(), 39 | "%s: Line %i", func_name, line)) { 40 | } 41 | } 42 | 43 | 44 | 45 | 46 | // construct a lambda to wrap the exception filter call, this allows us to invoke the __try/__except block 47 | // with a function scope in between, which will prevent error C2712: Cannot use __try in functions that require 48 | // object unwinding. 49 | #define DebugTryBegin() \ 50 | Debug_TryExecute(__FUNCTION__, __LINE__, [&]() { 51 | #define DebugTryEnd() \ 52 | }); 53 | 54 | // use this pair of macros in combination with a block that returns, to forward that return value 55 | // out of the function. 56 | #define DebugTryBeginRet() \ 57 | { int result = Debug_TryExecute(__FUNCTION__, __LINE__, [&]() { 58 | #define DebugTryEndRet() \ 59 | }); return result; } 60 | 61 | 62 | template 63 | void Debug_TryExecuteEx(const char* func_name, int line, const char* stmt, const T& func) 64 | { 65 | __try { 66 | func(); 67 | } 68 | __except (MQ2ExceptionFilter(GetExceptionCode(), GetExceptionInformation(), "%s@%i: %s", func_name, line, stmt)) { 69 | } 70 | } 71 | 72 | #define DebugTryEx(x) \ 73 | Debug_TryExecuteEx(__FUNCTION__, __LINE__, #x, [&]() { x; }); -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQCommandList.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | COMMAND("Keypress",CMD_Keypress,true,false); 16 | COMMAND("EQExecute",CMD_EQExecute,true,false); 17 | COMMAND("MQ2Bind",CMD_MQ2Bind,true,false); 18 | COMMAND("Who",CMD_Who,true,false); 19 | COMMAND("Beep",CMD_Beep,true,false); 20 | COMMAND("Ranged",CMD_do_ranged,true,false); 21 | COMMAND("SetAutoRun",CMD_SetAutoRun,true,false); 22 | COMMAND("DisplayLoginName",CMD_DisplayLoginName,true,false); 23 | COMMAND("PopupText",CMD_PopupText,true,false); 24 | COMMAND("BuyItem",CMD_BuyItem,true,false); 25 | COMMAND("SellItem",CMD_SellItem,true,false); 26 | COMMAND("Target",CMD_Target,true,false); 27 | COMMAND("WhoFilter",CMD_WhoFilter,true,false); 28 | COMMAND("Where",CMD_Where,true,false); 29 | COMMAND("CastSpell",CMD_CastSpell,true,false); 30 | COMMAND("MemSpell",CMD_MemSpell,true,false); 31 | COMMAND("DoAbility",CMD_DoAbility,true,false); 32 | COMMAND("NoModKey",CMD_EQModKey,true,false); 33 | COMMAND("ctrl",CMD_EQModKey,true,false); 34 | COMMAND("alt",CMD_EQModKey,true,false); 35 | COMMAND("shift",CMD_EQModKey,true,false); 36 | COMMAND("destroy",CMD_EQDestroy,true,false); 37 | COMMAND("face",CMD_EQFace,true,false); 38 | COMMAND("look",CMD_EQLook,true,false); 39 | COMMAND("items",CMD_EQItems,true,false); 40 | COMMAND("eqecho",CMD_EQEcho,true,false); 41 | //COMMAND("EQAlias",CMD_EQAlias,true,false); // deprecated 42 | COMMAND("doortarget",CMD_DoorTarget,true,false); 43 | COMMAND("itemtarget",CMD_ItemTarget,true,false); 44 | COMMAND("pickzone", CMD_PickZone, true, false); 45 | COMMAND("click", Click, true, false); 46 | COMMAND("beepontells", CMD_BeepOnTells, true, false); 47 | COMMAND("timestamp", CMD_TimeStampChat, true, false); 48 | COMMAND("flashontells", CMD_FlashOnTells, true, false); 49 | COMMAND("useitem", CMD_UseItem,true,false); 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQCommands.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | #define COMMAND(name,cmd,parse,hide) EQLIB_API int cmd(int argc, char *argv[]) 16 | #include "ISXEQCommandList.h" 17 | #undef COMMAND 18 | 19 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQDataTypes.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQServices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct _EQChat 4 | { 5 | PCHAR Line; 6 | DWORD Color; 7 | BOOL Filtered; 8 | }; 9 | 10 | #define CHATSERVICE_INCOMING ((ISXSERVICE_MSG)+1) 11 | #define CHATSERVICE_OUTGOING ((ISXSERVICE_MSG)+2) 12 | 13 | #define UISERVICE_CLEANUP ((ISXSERVICE_MSG)+1) 14 | #define UISERVICE_RELOAD ((ISXSERVICE_MSG)+2) 15 | 16 | #define GAMESTATESERVICE_CHANGED ((ISXSERVICE_MSG)+1) 17 | 18 | #define SPAWNSERVICE_ADDSPAWN ((ISXSERVICE_MSG)+1) 19 | #define SPAWNSERVICE_REMOVESPAWN ((ISXSERVICE_MSG)+2) 20 | #define SPAWNSERVICE_ADDITEM ((ISXSERVICE_MSG)+3) 21 | #define SPAWNSERVICE_REMOVEITEM ((ISXSERVICE_MSG)+4) 22 | #define SPAWNSERVICE_ADDGM ((ISXSERVICE_MSG)+5) 23 | #define SPAWNSERVICE_REMOVEGM ((ISXSERVICE_MSG)+6) 24 | 25 | #define ZONESERVICE_BEGINZONE ((ISXSERVICE_MSG)+1) 26 | #define ZONESERVICE_ENDZONE ((ISXSERVICE_MSG)+2) 27 | #define ZONESERVICE_ZONED ((ISXSERVICE_MSG)+3) 28 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQTopLevelObjects.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | #if !defined(CINTERFACE) 16 | #error /DCINTERFACE 17 | #endif 18 | 19 | #define DBG_SPEW 20 | 21 | #include "..\MQ2Main.h" 22 | 23 | #define TLO(funcname) bool funcname(int argc, char *argv[], LSTYPEVAR &Ret) 24 | 25 | TLO(dataNearestDoor) 26 | { 27 | DWORD Count = 0; 28 | FLOAT cDistance = 100000.0f; 29 | PDOORTABLE pDoorTable = (PDOORTABLE)pSwitchMgr; 30 | 31 | if (pDoorTable->NumEntries) 32 | { 33 | for (Count=0; CountNumEntries; Count++) { 34 | FLOAT Distance = GetDistance(pDoorTable->pDoor[Count]->X, pDoorTable->pDoor[Count]->Y); 35 | if (DistancepDoor[Count]; 37 | cDistance=Distance; 38 | } 39 | } 40 | Ret.Ptr=pDoorTarget; 41 | Ret.Type=pSwitchType; 42 | return true; 43 | } 44 | return false; 45 | } 46 | 47 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQTopLevelObjects.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | #ifdef ISBOXER_COMPAT 16 | TOPLEVELOBJECT("EQTarget",dataTarget); 17 | TOPLEVELOBJECT("EQWindow",dataWindow); 18 | #else 19 | TOPLEVELOBJECT("Target",dataTarget); 20 | TOPLEVELOBJECT("Window",dataWindow); 21 | #endif 22 | TOPLEVELOBJECT("Spawn",dataSpawn); 23 | TOPLEVELOBJECT("Me",dataCharacter); 24 | TOPLEVELOBJECT("Spell",dataSpell); 25 | TOPLEVELOBJECT("Switch",dataSwitch); 26 | TOPLEVELOBJECT("GroundItem",dataGroundItem); 27 | TOPLEVELOBJECT("Merchant",dataMerchant); 28 | TOPLEVELOBJECT("EverQuest",dataEverQuest); 29 | TOPLEVELOBJECT("MacroQuest",dataMacroQuest); 30 | TOPLEVELOBJECT("Zone",dataZone); 31 | TOPLEVELOBJECT("Group",dataGroup); 32 | TOPLEVELOBJECT("Corpse",dataCorpse); 33 | TOPLEVELOBJECT("Cursor",dataCursor); 34 | TOPLEVELOBJECT("NearestSpawn",dataNearestSpawn); 35 | TOPLEVELOBJECT("GameTime",dataGameTime); 36 | TOPLEVELOBJECT("Time",dataTime); 37 | TOPLEVELOBJECT("Ini",dataIni); 38 | TOPLEVELOBJECT("Heading",dataHeading); 39 | TOPLEVELOBJECT("LastSpawn",dataLastSpawn); 40 | TOPLEVELOBJECT("InvSlot",dataInvSlot); 41 | TOPLEVELOBJECT("FindItem",dataFindItem); 42 | TOPLEVELOBJECT("SelectedItem",dataSelectedItem); 43 | TOPLEVELOBJECT("FindItemBank",dataFindItemBank); 44 | TOPLEVELOBJECT("FindItemCount",dataFindItemCount); 45 | TOPLEVELOBJECT("FindItemBankCount",dataFindItemBankCount); 46 | //TOPLEVELOBJECT("GroupLeader",dataGroupLeader); 47 | //TOPLEVELOBJECT("GroupLeaderName",dataGroupLeaderName); 48 | TOPLEVELOBJECT("Skill",dataSkill); 49 | TOPLEVELOBJECT("AltAbility",dataAltAbility); 50 | TOPLEVELOBJECT("Raid",dataRaid); 51 | TOPLEVELOBJECT("NamingSpawn",dataNamingSpawn); 52 | TOPLEVELOBJECT("SpawnCount",dataSpawnCount); 53 | TOPLEVELOBJECT("LineOfSight",dataLineOfSight); 54 | TOPLEVELOBJECT("DoorTarget",dataDoorTarget); 55 | TOPLEVELOBJECT("ItemTarget",dataItemTarget); 56 | TOPLEVELOBJECT("NearestDoor",dataNearestDoor); 57 | TOPLEVELOBJECT("Friends",dataFriends); 58 | 59 | /**/ 60 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQUtilities.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | extern unsigned long ParseSearchSpawnArg(int arg, int argc, char *argv[], SEARCHSPAWN &SearchSpawn); 3 | 4 | -------------------------------------------------------------------------------- /MQ2Main/MQ2Auth.cpp: -------------------------------------------------------------------------------- 1 | #ifndef ISXEQ 2 | #include "MQ2Main.h" 3 | 4 | DWORD_PTR gh; 5 | LRESULT CALLBACK proc( int nCode, WPARAM wParam, LPARAM lParam ){return ::CallNextHookEx( (HHOOK)gh, nCode, wParam, lParam );} 6 | typedef DWORD_PTR(__cdecl *FNCB)(DWORD_PTR,HINSTANCE, DWORD_PTR&); 7 | #undef MQ2AUTH 8 | #define MQ2AUTH(z) EQLIB_API VOID z(DWORD_PTR x){FNCB f=(FNCB)x;f((DWORD_PTR)proc,ghInstance,gh);} 9 | #include "MQ2Auth0.h" 10 | #endif 11 | -------------------------------------------------------------------------------- /MQ2Main/MQ2Globals-private_default.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | //INITIALIZE_EQGAME_OFFSET(SomeClass__SomeFunction); 15 | -------------------------------------------------------------------------------- /MQ2Main/MQ2Globals-private_default.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | //EQLIB_VAR DWORD SomeClass__SomeFunction; 15 | -------------------------------------------------------------------------------- /MQ2Main/MQ2Main.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/MQ2Main/MQ2Main.rc -------------------------------------------------------------------------------- /MQ2Main/SharedClasses.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | enum eXTSlotStatus 3 | { 4 | eXTSlotEmpty, 5 | eXTSlotCurrentZone, 6 | eXTSlotDifferentZone, 7 | eXTSlotUnknown 8 | }; 9 | // size 0x4c 12-25-09 - ieatacid 10 | typedef struct _XTARGETSLOT 11 | { 12 | /*0x00*/ DWORD xTargetType; 13 | /*0x04*/ eXTSlotStatus XTargetSlotStatus; 14 | /*0x08*/ DWORD SpawnID; 15 | /*0x0c*/ char Name[0x40]; 16 | /*0x4c*/ 17 | } XTARGETSLOT, *PXTARGETSLOT; 18 | class ExtendedTargetList 19 | { 20 | //has a vftable 21 | public: 22 | PVOID vftable; 23 | ArrayClass_RO XTargetSlots;//max is 23 24 | bool bAutoAddHaters; 25 | }; 26 | class CursorClass 27 | { 28 | public: 29 | enum { 30 | eNumCursors = 7 31 | }; 32 | enum eCursorTypes { 33 | eArrow, 34 | eMove, 35 | eBeam, 36 | eNorthEastSouthWest, 37 | eNorthWestSouthEast, 38 | eNorthSouth, 39 | eEastWest 40 | }; 41 | enum eDisplayMode { 42 | eNormal, 43 | eScreenShot 44 | }; 45 | const char* Name[eNumCursors]; 46 | HCURSOR CursorList[eNumCursors]; 47 | bool bScreenShotMode; 48 | }; 49 | typedef struct _USINGSKILL { 50 | /*0x00*/ int Skill; 51 | /*0x04*/ void* Target; 52 | /*0x08*/ 53 | } USINGSKILL,*PUSINGSKILL; 54 | -------------------------------------------------------------------------------- /MQ2Main/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by MQ2Main.rc 4 | 5 | // Next default values for new objects 6 | // 7 | #ifdef APSTUDIO_INVOKED 8 | #ifndef APSTUDIO_READONLY_SYMBOLS 9 | #define _APS_NEXT_RESOURCE_VALUE 101 10 | #define _APS_NEXT_COMMAND_VALUE 40001 11 | #define _APS_NEXT_CONTROL_VALUE 1001 12 | #define _APS_NEXT_SYMED_VALUE 101 13 | #endif 14 | #endif 15 | -------------------------------------------------------------------------------- /MQ2Map/ISXEQMap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQMap : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void ConnectServices(); 17 | void RegisterCommands(); 18 | void RegisterAliases(); 19 | void RegisterDataTypes(); 20 | void RegisterTopLevelObjects(); 21 | void RegisterServices(); 22 | 23 | void DisconnectServices(); 24 | void UnRegisterCommands(); 25 | void UnRegisterAliases(); 26 | void UnRegisterDataTypes(); 27 | void UnRegisterTopLevelObjects(); 28 | void UnRegisterServices(); 29 | 30 | }; 31 | 32 | extern ISInterface *pISInterface; 33 | extern HISXSERVICE hPulseService; 34 | extern HISXSERVICE hMemoryService; 35 | extern HISXSERVICE hServicesService; 36 | 37 | extern HISXSERVICE hEQChatService; 38 | extern HISXSERVICE hEQUIService; 39 | extern HISXSERVICE hEQGamestateService; 40 | extern HISXSERVICE hEQSpawnService; 41 | extern HISXSERVICE hEQZoneService; 42 | 43 | extern ISXEQMap *pExtension; 44 | #define printf pISInterface->Printf 45 | 46 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 47 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 48 | 49 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 50 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 51 | 52 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 53 | 54 | extern LSType *pStringType; 55 | extern LSType *pIntType; 56 | extern LSType *pBoolType; 57 | extern LSType *pFloatType; 58 | extern LSType *pTimeType; 59 | extern LSType *pByteType; 60 | -------------------------------------------------------------------------------- /MQ2Map/ISXEQMap.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {2fffb386-5eba-4591-93a6-5fba8795959f} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {e322e60c-0d96-4bf3-85be-1b5dfd6c1b6c} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {efacbdc4-70d0-4286-a024-145716deda2e} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | Source Files 29 | 30 | 31 | Source Files 32 | 33 | 34 | 35 | 36 | Header Files 37 | 38 | 39 | Header Files 40 | 41 | 42 | -------------------------------------------------------------------------------- /MQ2Map/MQ2Map.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {260641fb-80bf-4795-b532-5f9a37582c8a} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {fc5c5662-ea34-4553-a615-fec7a734d671} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {78064fc9-3a6a-49b8-a184-33f039a97662} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | 29 | 30 | Header Files 31 | 32 | 33 | -------------------------------------------------------------------------------- /MQ2Plugin.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License, version 2, as published by 6 | the Free Software Foundation. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | ******************************************************************************/ 13 | #ifdef ISXEQ 14 | #include "ISXEQClient.h" 15 | #define PreSetup(UNUSED) 16 | #else 17 | 18 | #ifndef _MQ2PLUGIN_H 19 | #define _MQ2PLUGIN_H 20 | 21 | #define MQ2PLUGIN 22 | #include "MQ2Main/MQ2Main.h" 23 | #include "MQ2Main/MQ2Globals.h" 24 | 25 | #pragma comment(lib, "MQ2Main") 26 | 27 | #define PLUGIN_API extern "C" __declspec(dllexport) 28 | #define PLUGIN_VERSION(X) __declspec(dllexport) float MQ2Version = (float)X 29 | 30 | 31 | //#define SetINIFileName(ini) sprintf_s(INIFileName,"%s\\%s",gszINIPath,ini); 32 | extern CHAR INIFileName[MAX_STRING]; 33 | 34 | #define PreSetup(pluginname) CHAR INIFileName[MAX_STRING]={0};\ 35 | BOOL APIENTRY DllMain( HANDLE hModule, \ 36 | DWORD ul_reason_for_call, \ 37 | LPVOID lpReserved\ 38 | )\ 39 | {\ 40 | if (ul_reason_for_call==DLL_PROCESS_ATTACH)\ 41 | {\ 42 | DebugSpewAlways("%s Module Loaded",pluginname );\ 43 | sprintf_s(INIFileName,"%s\\%s.ini",gszINIPath,pluginname);\ 44 | }\ 45 | else if (ul_reason_for_call==DLL_PROCESS_DETACH)\ 46 | DebugSpewAlways("%s Module Unloaded",pluginname);\ 47 | return TRUE;\ 48 | } 49 | #endif 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /MQ2TargetInfo/MQ2TargetInfo.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/MQ2TargetInfo/MQ2TargetInfo.rc -------------------------------------------------------------------------------- /MQ2TargetInfo/MQ2TargetInfo.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | {8B2DBBE6-0CA1-4C20-AC30-D9C4514784C7} 15 | Win32Proj 16 | 10.0.16299.0 17 | 18 | 19 | 20 | DynamicLibrary 21 | v141 22 | 23 | 24 | DynamicLibrary 25 | v141 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | <_ProjectFileVersion>11.0.51106.1 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /MQ2TargetInfo/MQ2TargetInfo.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {88bfac3a-75d5-44ef-883c-44da15d732ef} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {82b04263-17d1-4e43-ae37-7f05bd584d79} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {5c7a0f0b-8d0c-4645-b3b1-76e09413d3f5} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | Header Files 28 | 29 | 30 | 31 | 32 | Resource Files 33 | 34 | 35 | 36 | 37 | Resource Files 38 | 39 | 40 | -------------------------------------------------------------------------------- /MQ2TargetInfo/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by MQ2TargetInfo.rc 4 | // 5 | #define IDR_DB1 101 6 | #define IDR_INI1 103 7 | 8 | // Next default values for new objects 9 | // 10 | #ifdef APSTUDIO_INVOKED 11 | #ifndef APSTUDIO_READONLY_SYMBOLS 12 | #define _APS_NEXT_RESOURCE_VALUE 104 13 | #define _APS_NEXT_COMMAND_VALUE 40001 14 | #define _APS_NEXT_CONTROL_VALUE 1001 15 | #define _APS_NEXT_SYMED_VALUE 101 16 | #endif 17 | #endif 18 | -------------------------------------------------------------------------------- /MQ2Template/ISXEQTemplate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQTemplate : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQTemplate *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /MQ2Template/ISXEQTemplate.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {16ebce65-0a96-444d-a81c-f75c26a5d7d8} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {5702cb0f-000c-4267-8726-705b373ef28e} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {1122bb5b-396b-4bc9-83cc-90d90da54b46} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Template/MQ2Template.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | {BC2C195E-87B3-4974-A398-0E1FA51FBB8E} 15 | Win32Proj 16 | 10.0.16299.0 17 | 18 | 19 | 20 | DynamicLibrary 21 | v141 22 | 23 | 24 | DynamicLibrary 25 | v141 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | <_ProjectFileVersion>11.0.51106.1 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /MQ2Template/MQ2Template.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {88bfac3a-75d5-44ef-883c-44da15d732ef} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {82b04263-17d1-4e43-ae37-7f05bd584d79} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {5c7a0f0b-8d0c-4645-b3b1-76e09413d3f5} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Template/ReadMe.txt: -------------------------------------------------------------------------------- 1 | Demonstration only. To make a plugin, base it exactly on this project. Remove callbacks (PLUGIN_API) your plugin does not use. 2 | -------------------------------------------------------------------------------- /Plugin.Debug.ISXEQ.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Intermediate\$(Configuration)\$(ProjectName)\ 7 | true 8 | 9 | 10 | 11 | EditAndContinue 12 | Level3 13 | Disabled 14 | Disabled 15 | NDEBUG;CINTERFACE;ISXEQ;%(PreprocessorDefinitions) 16 | MultiThreaded 17 | 4Bytes 18 | false 19 | false 20 | CompileAsCpp 21 | true 22 | ..\ISXDK\34\include;%(AdditionalIncludeDirectories) 23 | 24 | 25 | 26 | ..\ISXDK\34\lib\vs12;..\Detours\lib;$(OutDir);%(AdditionalLibraryDirectories) 27 | true 28 | Windows 29 | winmm.lib;%(AdditionalDependencies) 30 | false 31 | false 32 | false 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Plugin.Debug.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | .\Intermediate\ 7 | true 8 | ..\Release\ 9 | 10 | 11 | 12 | ProgramDatabase 13 | Level3 14 | Disabled 15 | Disabled 16 | _DEBUG;CINTERFACE;%(PreprocessorDefinitions) 17 | MultiThreadedDebug 18 | 4Bytes 19 | false 20 | false 21 | CompileAsCpp 22 | true 23 | 24 | 25 | ..\Detours\lib;$(OutDir);%(AdditionalLibraryDirectories) 26 | true 27 | Windows 28 | winmm.lib;%(AdditionalDependencies) 29 | false 30 | false 31 | false 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /Plugin.Release.ISXEQ.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | .\Intermediate\ 7 | false 8 | ..\Release\ 9 | 10 | 11 | 12 | Level3 13 | OnlyExplicitInline 14 | CINTERFACE;ISXEQ;%(PreprocessorDefinitions) 15 | true 16 | MultiThreaded 17 | 4Bytes 18 | false 19 | false 20 | CompileAsCpp 21 | true 22 | ..\ISXDK\34\include;%(AdditionalIncludeDirectories) 23 | 24 | 25 | 26 | ..\ISXDK\34\lib\vs12;..\Detours\lib;$(OutDir);%(AdditionalLibraryDirectories) 27 | true 28 | Windows 29 | winmm.lib;%(AdditionalDependencies) 30 | false 31 | false 32 | false 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Plugin.Release.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | .\Intermediate\ 7 | false 8 | ..\Release\ 9 | 10 | 11 | 12 | Level3 13 | OnlyExplicitInline 14 | CINTERFACE;%(PreprocessorDefinitions) 15 | true 16 | MultiThreaded 17 | 4Bytes 18 | false 19 | false 20 | CompileAsCpp 21 | true 22 | 23 | 24 | ..\Detours\lib;$(OutDir);%(AdditionalLibraryDirectories) 25 | true 26 | Windows 27 | winmm.lib;%(AdditionalDependencies) 28 | false 29 | false 30 | false 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Release/MQ2Ic.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/Release/MQ2Ic.dll -------------------------------------------------------------------------------- /Release/MacroQuest2.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/Release/MacroQuest2.exe -------------------------------------------------------------------------------- /Release/Macros/ArrayTest.mac: -------------------------------------------------------------------------------- 1 | | - ArrayTest.mac - 2 | 3 | Sub Main 4 | /declare index int outer 5 | /declare quotes[10] string 6 | /declare authors[10] string 7 | 8 | | indices start at 1 9 | /for index 1 to 10 10 | | use " when there is a space involve 11 | /varset quotes[${index}] "Sample Quote #${index}" 12 | 13 | | don't need " here 14 | /varset authors[${index}] Author${index} 15 | 16 | /next index 17 | /varcalc index ${Math.Rand[10]}+1 18 | /echo ${quotes[${index}]} --${authors[${index}]} 19 | /return 20 | -------------------------------------------------------------------------------- /Release/Macros/Arrows.mac: -------------------------------------------------------------------------------- 1 | | 2 | | - Arrows.mac - 3 | | 4 | | you need a fletching kit, fletchings, nocks, shafts and points in your 5 | | inventory. this macro combines until it runs out of fletchings. 6 | | 7 | #turbo 8 | #event CombineFail "#*#You lacked the skills to fashion the items together.#*#" 9 | #event CombineSuceed "#*#You have fashioned the items together to create something new!#*#" 10 | 11 | Sub Main 12 | 13 | /declare v80 int outer 99 14 | /declare islot int outer 15 | /declare v61 int outer 16 | /declare x int outer 17 | 18 | /call FindCombiner Fletching 19 | /varset v80 ${Macro.Return} 20 | /if (${v80}==99) { 21 | /echo could not find a Fletching combiner! 22 | /return 23 | } 24 | 25 | /cleanup 26 | /delay 1s 27 | 28 | | open inv and the pack 29 | | /click right inv $return 30 | 31 | /keypress i 32 | /delay 1s 33 | 34 | /for x 0 to 7 35 | |/echo click right inv ${x} 36 | |/click right inv ${x} 37 | /itemnotify ${Math.Calc[22+${x}]} rightmouseup 38 | /delay 1 39 | /next x 40 | 41 | | assume that the combiner is open and empty now 42 | 43 | :MakeArrows 44 | 45 | |/finditem similar "Fletchings" 46 | |/click left pack $v80 0 47 | 48 | /varset islot ${FindItem[Fletchings].InvSlot} 49 | /if (${islot}) { 50 | /ctrl /itemnotify ${islot} leftmouseup 51 | /itemn in pack${v80} 1 leftmouseup 52 | } else { 53 | /echo could not find Fletchings 54 | /endm 55 | } 56 | 57 | |/finditem similar "Nock" 58 | |/click left pack $v80 1 59 | 60 | /varset islot ${FindItem[Nock].InvSlot} 61 | /ctrl /itemnotify ${islot} leftmouseup 62 | /itemn in pack${v80} 2 leftmouseup 63 | 64 | /varset islot ${FindItem[Shaft].InvSlot} 65 | /ctrl /itemnotify ${islot} leftmouseup 66 | /itemn in pack${v80} 3 leftmouseup 67 | 68 | /varset islot ${FindItem[Arrowhead].InvSlot} 69 | /ctrl /itemnotify ${islot} leftmouseup 70 | /itemn in pack${v80} 4 leftmouseup 71 | 72 | 73 | /doevents flush 74 | 75 | /varset v61 0 76 | |/click left pack $v80 combine 77 | 78 | :redo 79 | 80 | /notify pack${v80} Container_Combine leftmouseup 81 | 82 | /delay 5 83 | /doevents 84 | 85 | | limiter on the combines per second so keep retrying 86 | /if (${Me.Inventory[pack${v80}].Item[1].ID}) /goto :redo 87 | 88 | /if (${v61}==2) { 89 | :WaitCursor 90 | /delay 1 91 | /if (${Cursor.ID}) { 92 | /notify InventoryWindow IW_CharacterView leftmouseup 93 | /delay 3 94 | /goto :WaitCursor 95 | } 96 | } 97 | /goto :MakeArrows 98 | /return 99 | 100 | Sub Event_CombineFail 101 | /varset v61 1 102 | /return 103 | 104 | Sub Event_CombineSuceed 105 | /varset v61 2 106 | /return 107 | 108 | Sub FindCombiner 109 | /declare v99 int local 110 | 111 | /for v99 1 to 8 112 | | /echo ${Me.Inventory[pack${v99}].Type} 113 | /if (${Me.Inventory[pack${v99}].Type.Equal[${Param0}]}) /return ${v99} 114 | /next v99 115 | 116 | /return 99 117 | -------------------------------------------------------------------------------- /Release/Macros/Cams.mac: -------------------------------------------------------------------------------- 1 | | 2 | | - Cams.mac - 3 | | 4 | | you need a Tinkering combiner, Gears, Grease, and Gnomish Bolts in your 5 | | inventory. this macro combines until it runs out of gears. 6 | | 7 | #turbo 8 | #event CombineFail "#*#You lacked the skills to fashion the items together.#*#" 9 | #event CombineSuceed "#*#You have fashioned the items together to create something new!#*#" 10 | 11 | Sub Main 12 | 13 | /declare v80 int outer 99 14 | /declare islot int outer 15 | /declare v61 int outer 16 | /declare x int outer 17 | 18 | /call FindCombiner Tinkering 19 | /varset v80 ${Macro.Return} 20 | /if (${v80}==99) { 21 | /echo could not find a Tinkering combiner! 22 | /return 23 | } 24 | 25 | /cleanup 26 | /delay 1s 27 | 28 | | open inv and the pack 29 | | /click right inv $return 30 | 31 | /keypress i 32 | /delay 1s 33 | 34 | /for x 0 to 7 35 | /itemnotify ${Math.Calc[22+${x}]} rightmouseup 36 | /delay 1 37 | /next x 38 | 39 | | assume that the combiner is open and empty now 40 | 41 | :MakeStuff 42 | 43 | |/finditem similar "Gears" 44 | |/click left pack $v80 0 45 | 46 | /varset islot ${FindItem[Gears].InvSlot} 47 | /if (${islot}) { 48 | /ctrl /itemnotify ${islot} leftmouseup 49 | /itemn in pack${v80} 1 leftmouseup 50 | } else { 51 | /echo could not find Gears 52 | /endm 53 | } 54 | 55 | /varset islot ${FindItem[Grease].InvSlot} 56 | /ctrl /itemnotify ${islot} leftmouseup 57 | /itemn in pack${v80} 2 leftmouseup 58 | 59 | /varset islot ${FindItem[Gnomish Bolts].InvSlot} 60 | /ctrl /itemnotify ${islot} leftmouseup 61 | /itemn in pack${v80} 3 leftmouseup 62 | 63 | /doevents flush 64 | 65 | /varset v61 0 66 | |/click left pack $v80 combine 67 | 68 | :redo 69 | 70 | /notify pack${v80} Container_Combine leftmouseup 71 | 72 | /delay 5 73 | /doevents 74 | 75 | | limiter on the combines per second so keep retrying 76 | /if (${Me.Inventory[pack${v80}].Item[1].ID}) /goto :redo 77 | 78 | /if (${v61}==2) { 79 | :WaitCursor 80 | /delay 1 81 | /if (${Cursor.ID}) { 82 | /notify InventoryWindow IW_CharacterView leftmouseup 83 | /delay 3 84 | /goto :WaitCursor 85 | } 86 | } 87 | /goto :MakeStuff 88 | /return 89 | 90 | Sub Event_CombineFail 91 | /varset v61 1 92 | /return 93 | 94 | Sub Event_CombineSuceed 95 | /varset v61 2 96 | /return 97 | 98 | Sub FindCombiner 99 | /declare v99 int local 100 | 101 | /for v99 1 to 8 102 | | /echo ${Me.Inventory[pack${v99}].Type} 103 | /if (${Me.Inventory[pack${v99}].Type.Equal[${Param0}]}) /return ${v99} 104 | /next v99 105 | 106 | /return 99 107 | -------------------------------------------------------------------------------- /Release/Macros/DoorTests.mac: -------------------------------------------------------------------------------- 1 | Sub Main 2 | /echo Testing on Door ID=${Param0} 3 | /doortarget id ${Param0} 4 | /echo note: /doortarget will not change your target anymore!!!! 5 | /face nolook door 6 | /delay 6 7 | /echo Target Door Information: id=${Switch.ID} name=${Switch.Name} state=${Switch.Open} loc=${Switch.Y}, ${Switch.X}, ${Switch.Z} heading=${Switch.Heading} 8 | /echo (continued): defaultloc=${Switch.DefaultY}, ${Switch.DefaultX}, ${Switch.DefaultZ} defaultheading=${Switch.DefaultHeading} 9 | /echo (continued): headingto=${Switch.HeadingTo} distance=${Switch.Distance} 10 | /keypress u hold 11 | /delay 2 12 | /keypress u 13 | /delay 5 14 | /echo (after use): state=${Switch.Open} loc=${Switch.Y}, ${Switch.X}, ${Switch.Z} heading=${Switch.Heading} 15 | /return 16 | -------------------------------------------------------------------------------- /Release/Macros/EventTest.mac: -------------------------------------------------------------------------------- 1 | |**************************** 2 | * - EventTest.mac - * 3 | ***************************** 4 | * Demo for /doevents * 5 | * * 6 | * Chat and YouSay are * 7 | * handled every loop * 8 | * JudgesYou and Rude are * 9 | * only handled when YouSay * 10 | * calls /doevents for all * 11 | ****************************| 12 | 13 | #turbo 14 | #chat say 15 | #event YouSay "You say, '#1#'" 16 | #event JudgesYou "(#1#) judges you amiabl" 17 | #event Rude "(#1#) makes a rude gesture#*#" 18 | 19 | Sub Main 20 | /declare ConCheck int outer 0 21 | :Loop 22 | /doevents 23 | /delay 2 24 | /goto :Loop 25 | /return 26 | 27 | Sub Event_Chat 28 | /echo You got a ${Param0} from ${Param1}: ${Param2} 29 | /return 30 | 31 | Sub Event_YouSay(string line, string firstword) 32 | /echo in YouxxxSay ${firstword} ${firstword.NotEqual[Hail]} 33 | /if (${firstword.NotEqual[Hail]}) { 34 | /varset ConCheck 0 35 | /return 36 | } 37 | /echo You con'd amiable ${ConCheck} times since you last hailed. 38 | /return 39 | 40 | Sub Event_JudgesYou(string line, string who) 41 | /echo You con'd amiable to ${who} 42 | /varcalc ConCheck ${ConCheck}+1 43 | /return 44 | 45 | Sub Event_Rude(string line, string who) 46 | /echo ${who} flipped someone off! 47 | /return 48 | -------------------------------------------------------------------------------- /Release/Macros/Follow.mac: -------------------------------------------------------------------------------- 1 | #turbo 2 | Sub Main 3 | :Loop 4 | /if (${Target.Distance}>20) /keypress up hold 5 | /if (${Target.Distance}<20) /keypress up 6 | /face fast 7 | /delay 1 8 | /if (${Target.ID}) /goto :Loop 9 | /return 10 | -------------------------------------------------------------------------------- /Release/Macros/ShowBonuses.mac: -------------------------------------------------------------------------------- 1 | Sub Main 2 | /echo 3 | /echo Stats Bonuses: 4 | /echo -------------- 5 | /echo HP: +${Me.HPBonus} 6 | /echo Mana: +${Me.ManaBonus} 7 | /echo Endurance: +${Me.EnduranceBonus} 8 | /echo HP Regen: +${Me.HPRegenBonus} / 45 9 | /if (${Me.AltAbility[Expansive Mind]} == 25) { 10 | /echo Mana Regen: +${Me.ManaRegenBonus} / 20 11 | } else /if (${Me.AltAbility[Expansive Mind]} == 20) { 12 | /echo Mana Regen: +${Me.ManaRegenBonus} / 19 13 | } else /if (${Me.AltAbility[Expansive Mind]} == 15) { 14 | /echo Mana Regen: +${Me.ManaRegenBonus} / 18 15 | } else /if (${Me.AltAbility[Expansive Mind]} == 10) { 16 | /echo Mana Regen: +${Me.ManaRegenBonus} / 17 17 | } else /if (${Me.AltAbility[Expansive Mind]} == 5) { 18 | /echo Mana Regen: +${Me.ManaRegenBonus} / 16 19 | } else { 20 | /echo Mana Regen: +${Me.ManaRegenBonus} / 15 21 | } 22 | /echo 23 | /echo Offensive Bonuses: 24 | /echo ------------------ 25 | /echo Haste: ${Math.Calc[${Me.AttackSpeed}-100].Int}% 26 | /if (${Me.AltAbility[Enhanced Aggression]} == 25) { 27 | /echo Attack: +${Me.AttackBonus} / 300 28 | } else /if (${Me.AltAbility[Enhanced Aggression]} == 20) { 29 | /echo Attack: +${Me.AttackBonus} / 290 30 | } else /if (${Me.AltAbility[Enhanced Aggression]} == 15) { 31 | /echo Attack: +${Me.AttackBonus} / 280 32 | } else /if (${Me.AltAbility[Enhanced Aggression]} == 10) { 33 | /echo Attack: +${Me.AttackBonus} / 270 34 | } else /if (${Me.AltAbility[Enhanced Aggression]} == 5) { 35 | /echo Attack: +${Me.AttackBonus} / 260 36 | } else { 37 | /echo Attack: +${Me.AttackBonus} / 250 38 | } 39 | /echo Accuracy: +${Me.AccuracyBonus} / 150 40 | /echo Damage Shield: +${Me.DamageShieldBonus} / 30 41 | /echo Strikethrough: +${Me.StrikeThroughBonus}% / 35% 42 | /echo Combat Effects: +${Me.CombatEffectsBonus} / 100? 43 | /echo 44 | /echo Defensive Bonuses: 45 | /echo ------------------ 46 | /echo Avoidance: +${Me.AvoidanceBonus} / 100 47 | /echo Shielding: +${Me.ShieldingBonus}% / 35% 48 | /echo Spellshield: +${Me.SpellShieldBonus}% / 35% 49 | /echo Stun Resist: +${Me.StunResistBonus}% / 35% 50 | /echo DoT Shielding: +${Me.DoTShieldBonus}% / 35% 51 | /return 52 | -------------------------------------------------------------------------------- /Release/Macros/uservarstest.mac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/Release/Macros/uservarstest.mac -------------------------------------------------------------------------------- /Release/readme.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/Release/readme.chm -------------------------------------------------------------------------------- /dxsdk90/readme.txt: -------------------------------------------------------------------------------- 1 | dinput.h was taken from the The Microsoft DirectX 9.0b Software Development Kit 2 | 3 | The full SDK is available from www.microsoft.com 4 | -------------------------------------------------------------------------------- /makezip.bat: -------------------------------------------------------------------------------- 1 | @Echo Off 2 | 3 | for /f "tokens=1-4 delims=/ " %%i in ("%date%") do ( 4 | set dow=%%i 5 | set month=%%j 6 | set day=%%k 7 | set year=%%l 8 | ) 9 | set datestr=MQ2-%year%%month%%day%.zip 10 | del "%datestr%" 11 | ECHO NOTE! This requires Winzip commandline addon in order to work... 12 | 13 | "C:\Program Files (x86)\WinZip\wzzip.exe" -P "%datestr%" @zipit.lst 14 | 15 | pause -------------------------------------------------------------------------------- /mkplugin.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macroquest/macroquest2/cdd5792d24568259641cd659b8937813d35aa71b/mkplugin.exe -------------------------------------------------------------------------------- /mkplugin/mkplugin.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {320ada69-4cfc-4721-abfc-4c4ccd372f8a} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {5b173978-0595-4085-b07b-2550e480c2cf} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {20b958d3-9048-4dcb-95c7-442519c104f5} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /mq2telnet/ISXEQTelnet.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQTelnet : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQTelnet *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /mq2telnet/ISXEQTelnet.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4f239580-b341-40c7-b5d0-48998bb596fb} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {7cb32fac-3808-4c57-a86a-8714cd02f58b} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {704ea90b-c20f-43a5-8336-4eeba56bde67} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /mq2telnet/TelnetServer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "WinTelnet.h" 3 | 4 | #define TS_SENDLOGIN 0 5 | #define TS_GETLOGIN 1 6 | #define TS_SENDPASSWORD 2 7 | #define TS_GETPASSWORD 3 8 | #define TS_MAININPUT 4 9 | 10 | extern BOOL LocalOnly; 11 | extern BOOL ANSI; 12 | extern CHAR TelnetLoginPrompt[MAX_STRING]; 13 | extern CHAR TelnetPasswordPrompt[MAX_STRING]; 14 | extern CHAR TelnetWelcome[MAX_STRING]; 15 | 16 | struct _TELNET { 17 | CWinTelnet *connection; 18 | int State; 19 | char Username[32]; 20 | char Password[32]; 21 | int PasswordTries; 22 | char Buffer[MAX_STRING]; 23 | PCHATBUF Received; 24 | _TELNET *pLast; 25 | _TELNET *pNext; 26 | }; 27 | 28 | //typedef VOID (__stdcall *TelnetDataCallback)(_TELNET *, PCHAR); 29 | 30 | class CTelnetServer 31 | { 32 | public: 33 | CTelnetServer(void); 34 | ~CTelnetServer(void); 35 | 36 | void ShutdownListener(); 37 | bool Listen(int Port); 38 | void Broadcast(char *String); 39 | void Shutdown(); 40 | bool IsValidUser(char *user, char *pwdest); 41 | 42 | void ProcessIncoming(); 43 | 44 | }; 45 | -------------------------------------------------------------------------------- /mq2telnet/WinTelnet.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Telnet.h" 4 | 5 | 6 | #pragma comment(lib, "ws2_32") 7 | 8 | class CWinTelnet : public CTelnet 9 | { 10 | public: 11 | CWinTelnet(void); 12 | ~CWinTelnet(void); 13 | 14 | bool Connect (char*, int); 15 | bool Disconnect(void); 16 | 17 | bool Open (int); 18 | bool Close(void); 19 | 20 | bool Write(char); 21 | int Write(const void*, int); 22 | int CWinTelnet::WriteStr(const char* csend); 23 | 24 | bool Read(char*); 25 | int Read(void*, int); 26 | 27 | bool isOpen (void); 28 | bool isConnected(void); 29 | long isData (void); 30 | 31 | SOCKET m_Socket; 32 | 33 | private: 34 | // WSADATA wsa; 35 | bool Valid; 36 | }; 37 | -------------------------------------------------------------------------------- /mq2telnet/mq2telnet.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {e7e44809-0f82-4db2-984c-31747fe4ce1f} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {7d76e3ff-990c-40f9-b8d8-82a5b2059c8d} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {6663809b-5837-4dda-8ac8-c819f6f994e8} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | 29 | 30 | Header Files 31 | 32 | 33 | Header Files 34 | 35 | 36 | Header Files 37 | 38 | 39 | Header Files 40 | 41 | 42 | --------------------------------------------------------------------------------