Jump to content

Search the Community

Showing results for tags 'exportdll'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • The HarpGamer Forums: General Quarters
    • New at HarpGamer.com
    • Forum Guidelines
    • Frequently Asked Questions (FAQ)
    • Military History
    • Current Events
    • Shore Leave
  • Harpoon Classic/Commander's Edition
    • General
    • Scenario Design & Discussion
    • Database Design & Discussion
    • Wish Lists
    • Defect Tracking
    • HC Beta Testing
  • Harpoon (Paper Rules)
    • General
    • Scenario Design & Discussion
    • PBEM / MBX Wargaming
  • Command: Modern Air/Naval Operations
    • General
    • Scenario Design & Discussion
  • Stratsims
    • CIC (Combat Information Center)
    • CIC MP01 (Warfare Plotter)
  • Other Wargames
    • General
  • Harpoon 3/ANW
    • General
    • Scenario Design & Discussion
    • Database Design & Discussion
    • HUD4


  • Harpoon Classic/HC/HCE/HUCE
    • Databases
    • Scenarios
    • BattleSets
    • Tools/Mods/Docs
  • Harpoon 2/3/ANW
    • Databases
    • Scenarios
    • BattleSets
    • Tools/Docs
  • Command
    • Scenarios
  • SimPlot
    • Scenarios
    • Maps
    • Application/Tools/Mods/Docs


  • Ships
  • Submarines
  • Aircraft
  • Land Vehicles
  • Installations
  • Mounts
  • Magazines
  • Sensors
  • Weapons

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







  1. View File lazGUIdll_ext aka AI_window This is a modification of TonyE's lazGUI.dll. It isn't a tool for game play per se but for those interested it does expose some of the game internals. It adds for certain selected event types an automatic game pause when they are queued by the main program and showing information regarding the respective event. It provides certain information not seen in the game but useful for better understanding game operation. It includes game/scenario/database information handy to provide with reports to HarpGamer. old zip version 5 will run in GE v 2017.05 -2022.027 and in Matrix Patch 2022.027 current dll version requires beta 2023.004+ Submitter donaldseadog Submitted 07/19/2015 Category Tools/Mods/Docs  
  2. Priority ranked list of capabilities to add to the ExportDLL interface: Implemented: Write functions that can look up platform information from the database. This doesn't necessarily need to be via the ExportDLL interface but is required to do things like see which weapons are in a loadout. Expose the disk_id_to_annex_id function. Expose the GetLoadoutIndex function. Expose a CheckLocationDepth-like function that takes lat/lon instead of map coordinates. See SCENCHEK.C ~ ln 707 for components. Expose functions to the ExportDLL to replace the EventHead, TopGroup, and such passed by the GE. Currently the DLL is notified when there is a change but the DLL cannot change those root items and should be able to.(2009.095) Allow the DLL to say that it wants to over-ride each of the GE "effects" individually. Effects are things like MoveUnits, Submarine AI, Weather, ... The first DLL to over-ride each effect will be the only one to do so (so you won't be able to have two DLLs successfully MoveUnits).(2009.089) Allow the DLL to call each stock GE "effect". This is for if you write a DLL and want to re-order the effects processing, throw them into threads, add additional effects, or whatever else.(2009.089) Expose the Harpoon events. These are things like Intercept events, path changing events, sinking events, and many more. These events are really the heart of the game. (2009.088) Ability to pause the game so that the game structures will be in a consistent state for the DLLs to do processing. The DLLs should register with a callback function so that each DLL can have exclusive use of the game data structures when it requests and prevents other DLLs from modifying the structures at the same time. Without this capability, each ExportDLL cannot be sure a unit, group, etc. will still exist or be in the same state when the DLL starts and finishes operating on that item (and bam, crash the GE).(2009.088) More efficient calling of DLLs. Right now every DLL is queried every time an exported function is called. The GE should maintain a list of functions each DLL exports (built at GE start) and only call the DLLs that implement the given function. (2009.086) Let DLLs request the GE allocate and free memory for them. Initial use-case is for editing group paths, each point on the path needs to be free/allocated by the GE, not the DLL.(2009.077) Please post to this thread with additional items and reasons why you would change the rankings (and how you would change them). Thanks!
  3. View File AARdata_DLL AARdata.dll is an add-on program that is activated by copying the file into the exportDLL sub-folder of Harpoon installation. To uninstall, just remove the file to another folder, change the .dll file type name or delete the file. The DLL will produce at the close of a game or game session a txt file AARdata-(battleset file name)(scenario number).txt. (Scenario number for custom scenarios is '0'). Within the txt file the report is made up of titled sections providing: Scenario information, Initial Start information, Time information for each session of play Detailed game log messages in time order List of units destroyed for each side in summary and in detail List of damaged units at time of game close and List of changes to game time compression. New: When you start a scenario from its beginning, if the AARdata file for that scenario exists, it will be firstly deleted so the report is cleared of information from previous games, AARdata.dll file version is listed in the Initial Start data. Victory Events log summary added Player Side added to Initial Start info section After going to the effort of producing and sharing a HC scenrio it's very nice to see some one has gone to the trouble of producing an AAR, itself requiring quite a bit of effort. I hope this tool will help those people who already bless us with AARs, and encourage more people to share their action with us all. Don Thomas. Submitter donaldseadog Submitted 08/17/2015 Category Tools/Mods/Docs  
  4. TonyE

    Refueling Notes

    Notes for investigating air to air refueling. Automatic refueling is instigated from CheckStaff. CheckStaff is called in a few places, the key one being CheckGroupStaff. CheckGroupStaff is Harpoon Effect #20, in ExportDLL parlance, HCEffect20. In other words, if one wants to replace the built-in auto-refueling behavior, HCEffect20 must be handled in an ExportDLL instead of in the stock GE. General Process: 1. Effect21/HCEffect21/CheckGroupFuel decides a refuel is merited and creates a AirRefuelEvent that will be processed in 30 seconds. 2. AirRefuelEvent is processed after those 30 seconds, game decides how much fuel to give to each recipient plane. Each refuel event can only involve a single tanker unit even if there are more in the group. Here it is decided how much fuel to give to each recipient. Remember that there can be multiple aircraft of the same loadout with the same type in an air unit (so a single air unit may have up to 255 aircraft). If the group is travelling at Cruise the actual refuel of the first recipient will start in 30 seconds, otherwise queue up a speed change. 3. Fuel is given to the first recipient. Delay until next recipient is 180 seconds * number of planes in the air unit. 4. Fuel is given to next recipient. Delay until next recipient is 180 seconds * number of planes in the air unit. 5. Repeat until no more recipients. 6. Tanker may RTB or stay with group More to come...
  5. Version 003


    This ExportDLL allows you to disable one or more of the Harpoon Effects processing items. These are the main procedures in the game loop such as MoveUnits, Search, Submarine AI, etc. Installation: Extract the DLL to the ExportDLLs folder of your HC game, then restart the game. You can delete License.txt and lazHCEffects.txt. Edit the source. Use Lazarus win32. Created with Lazarus 1.4. Source code available from SVN, see the following with your favorite client: https://tarzan.tgp.net:8443/svn/StratsimsOSS/HC/ExportDLLs/lazHCEffects/trunk/
  6. This post is intended as a STOVL rocket booster for programmers who are looking at starting out with the CodeTyphon IDE, like myself, e.g. to shorten the time you can get airborne and start to build your own ExportDLL code. ExportDLL is an API for HCE that Tony generously provided, right now he is working to enable access to the Harpoon Events which as he put it is the soul of them game and will enable the self proclaimed programmers to try their hands on modding Harpoon. The recommended programming tool is for ExportDLLs is CodeTyphon, a free Pascal based public IDE. Here I'm sharing my baby steps with it buildling an ExportDLL, that is installing CodeTyphone and then building the LazGUI.dll, the ExportDLL feature demonstration Tony provided. All I did so far would not take more than 30 minutes, now that I did it once, yet I spent many hours over several days figuring out what's what and goes where. I hope to spare few minutes for fellow enthusiasts, I'm sure I'll spare myself hours if I ever going to need to rebuild the IDE. I also hope that some of the experienced craftsmen will drop in here to show us how to do it better, faster or more elegantly. First the basics about ExportDLL, Tony's original announcement, must read topic: http://harpgamer.com/harpforum/index.php?/topic/2190-exportdlls The CodeTyphone programming tool info on the HarpGamer files section is here however you better download the current version directly from the CodeTyphone site: http://www.pilotlogic.com/sitejoom/index.php/wiki/84-wiki/codetyphon-studio/80-codetyphon-download Once you got the 500Mb install zip, extract it and run the install.bat script from under the extracted CodeTyphonIns folder. This will install the CodeTyphon Control Center (CTC) and lot of source files. Next you build the IDE and Pascal compiler, start CTC and then select Menu > Typhon > "Typhon32 Build SmallIDE". This will take some time, CTC cross compiles the IDE and the Pascal compiler from the source. I'm not sure about SmallIDE vs BigIDE, what difference it makes, but you must build a 32bit compiler for compiling ExportDLs. Download the ExportDLL files library from Tony's cache: https://tarzan.tgp.net:8443/svn/StratsimsOSS/HC/shared/pascal/trunk I place them under: "C:\Matrix Games\Code\Shared\pascal", you will need to set your project build parameters depending where you put these. The downloaded files are: There is a mathematical library included with pascal source, the trigonometric routines are used for navigational computing. Then there are uHCDefines.pas, HCE DLL interface constant definitions uHCEventHelpers.pas, two text conversion routines for HCE events uHCGCI.pas, navigation routine to calculate lattitude, longitude coordinates uHCGlobals.pas, some more constants uHCTypeDefs.pas, this is the main event, here you find the type definitions for the HCE data possible to access through DLLs Download the LazGUI example https://tarzan.tgp.net:8443/svn/StratsimsOSS/HC/ExportDLLs/lazGUI/trunk/ I place the files under: C:\Matrix Games\Code\LazGUI Tony has just updated the example to latest standards so you should get the 2009.088 GE for the DLL to work as intended. Now there is the lazGUI.lpi file, this is the project information file that stores compiler options and also the path to the different source files needed for the build, it is in XML format. I'll need to modify it to match the folders where I have the sources on my computer. As I'm not familiar with the IDE e.g. where, under which menu to change project/compiler options I'm editing the XML directly. (Anyone experienced with the IDE is welcome to tell how to do the following properly.) Looking into the XML I see that The HCE directory is defined as "D:\Games\HC", e.g.: <WorkingDirectory Value="D:\Games\HC"/> On my PC this is "C:\Matrix Games\HUCE.2009.088" so I'm replacing these strings in the XML. Required packages come from dir "..\..\shared\pascal", e.g.: <Filename Value="..\..\shared\pascal\uHCDefines.pas"/> I replace all these with "..\shared\pascal" to match my arrangements. This seems to be all. Now start the IDE. > Typhon32. from the Start menu. Open the LazGUI project, Menu > Project > Open project Select the lazgui.lpi file from where you put it, my case "C:\Matrix Games\Code\LazGUI". Looks ok, the Project Inspector shows all files and none are removed when I tell it to remove non-existing ones. So, here it goes Menu > Run > Build Like a cinch. And there is a shiny new LazGUI.dll under "C:\Matrix Games\HUCE.2009.088\ExportDLLs" Works too, starting HCE I get the ExportDLL bonus window: Now you are ready to add your own code. Interesting readings to start with: http://wiki.lazarus.freepascal.org/Lazarus_Faq http://wiki.lazarus.freepascal.org/Object_Pascal_Tutorial http://lazarus-ccr.sourceforge.net/docs/lcl/index.html http://wiki.lazarus.freepascal.org/LCL_Components#Standard_tab Don's Toolbox, an actual ExportDLL implementation http://harpgamer.com/harpforum/index.php?/files/file/809-toolbox/
  7. In my toolbox utilising the export DLL functions I'm currently playing with reassigning targets of anti surface missiles and also capturing and repairing bases . I'm wondering if people have thoughts on these actions - or if I should just proceed for my own amusement (which is significant, it has me laughing frequently like the time I captured a ship with a whale) Don
  8. Please use this thread for questions about the ExportDLL interface. If some intrepid user wants to start creating some documentation that would be most fantastic.
  9. TonyE


    HCE has, as of version 2007.022 the ability to send some game data out to external DLLs. I'll work up documentation as able. As implemented in 2007.022 every piece of data that AGSI allows us to export is being exported. We'll work with AGSI to increase the exported data items (for instance, number of missiles or planes in a unit would be nice, weapon launch events would be nice, etc.). The DLL files will live in C:\Matrix Games\HCE\ExportDLLs\ in a default installation. To disable a DLL, rename it so that the file extension is not .DLL, i.e. rename DataDump1.dll to DataDump1.dll.bak to turn it off. The DLLs will slow the game somewhat depending upon how much processing each one does, some of them like DataDump1.dll make large files. The DLLs also throw their errors back to the GE, so if there are bugs in the DLL, it will crash your game. This was common in my first generation of DLLs. I have yet to optimize the GE for this process to reduce the amount of data sent and will do that as time permits. Data exported by the DLL Interface in 2007.022 (version 1 of export specification): // Functions to send the data to DLL void dllexUnitLatLon(UnitPtr Uptr); (Position in decimal lat/lon of each unit) void dllexUnitShowing(UnitPtr Uptr); (Visibility of each unit as viewed from each side) void dllexUnitURegion(UnitPtr Uptr); (Uncertainty regions of each unit as viewed from each side) void dllexUnitCourse(UnitPtr Uptr); (Unit heading in degrees) void dllexUnitSpeed(UnitPtr Uptr); (Unit speed in knots) void dllexUnitAlt(UnitPtr Uptr); (Unit altitude band) void dllexUnitShowingSide(UnitPtr Uptr); (Unit side as viewed by each side) void dllexUnitSink(UnitPtr Uptr); (Unit is sinking) void dllexGameTime(long GTime); (Current game time starts at 10,000 and increments in seconds) void dllexMsgLog(char *MsgLine); (Message Log line) void dllexUnitToGroup(UnitPtr Uptr, GroupPtr GroupOld); (Unit changing from old group to new) void dllexUnitNew(UnitPtr Uptr); (New unit, i.e. plane launched, missile, etc.) void dllexUnitFree(UnitPtr Uptr); (Unit freed, leaves map) void dllexScenLoad(void); (New scenario/save loaded, report info to DLL) I should note in case anyone is into programming and wants to get right to writing a DLL, holler and I'll help, but more importantly the version 1 specification isn't set in stone yet for what data is exported and how it is exported.
  • Create New...