Skip to content
View in the app

A better way to browse. Learn more.

HarpGamer

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

TonyE

Staff Pukes
  • Joined

  • Last visited

Everything posted by TonyE

  1. Thanks Greg, great to have NNSOTD/W back!
  2. The problem is that you aren't using a standard installation. You can make your configuration work but the expected configuration is that your battlesets live in the HC directory, in your case C:\Matrix Games\HCE, not C:\Matrix Games\HCE\Battlesets
  3. Adding a bit of Android tinkering to the mix.
  4. Correct on all accounts. Find pfBuild2005.mdb in your game directory, fire it up and click "Import New Database." You can check out http://www.wiki.computerharpoon.com/index.php?title=HCCE:PE_Guide for some additional guidance There is also information in the game manuals if you have the Harpoon Ultimate Edition. Let us know if you have more questions (like, hey guys, this isn't enough detail for me).
  5. Just checked in changes to lazGUI and the shared code. For the shared code, only uHCTypeDefs.pas was modified. The changes were adding the definitions of the new function pointers passed by the GE to the ExportDLLs new in 2009.095. I highly suggest using QueueHarpoonEvent any time you are wanting to add a HarpoonEvent to the HarpoonEventHead list. lazGUI was updated to show an example of that, adding a Staff Note that goes off 5 game seconds after being entered.
  6. Implemented: 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) HCE - 2009.095 - 2013/09/08 =========================== - Chg:0000 GE ExportDll interface added pointers to functions in the funcRefs: PHCDLL_FUNC_REF linked list sent by DLLInit: QueueHarpoonEvent(HarpoonEventPtr): void - This is only for adding items to HarpoonEventHead, not for events on path legs. If HarpoonEventHead does not exist, this will create it. NewWeatherGroup(void): GroupPtr - If WeatherGroups does not exist, this will create it. You still need to set the new group's position, speed, heading, and strength. KilledOff(UnitPtr): void - This adds UnitPtr do the AllDeadUnitsPtr list, creating the AllDeadUnitsPtr list in the process if required. CreateSonoBuoy(void): SonoBuoyRegionPtr - Creates a SB and sets SonoBuoyRegionHead if it doesn't exist yet. You still have to assign all of the characteristic, location, etc. CreateVictoryCondition(void): VictoryConditionsPtr - Creates a Victory Condition and sets VictoryConditionsList if it doesn't already exist yet. You still have to fill in the required data fields. CreateGroup(uchar side, long sLon, long sLat): GroupPtr - Creates a new HCGroupPtr, gives it a group ID, and adds it to the list of groups. Establishes StartGroup if it hasn't been established yet.
  7. TonyE replied to TonyE's topic in General
    HCE - 2009.095 - 2013/09/08 =========================== - Chg:0000 GE ExportDll interface added pointers to functions in the funcRefs: PHCDLL_FUNC_REF linked list sent by DLLInit: QueueHarpoonEvent(HarpoonEventPtr): void - This is only for adding items to HarpoonEventHead, not for events on path legs. If HarpoonEventHead does not exist, this will create it. NewWeatherGroup(void): GroupPtr - If WeatherGroups does not exist, this will create it. You still need to set the new group's position, speed, heading, and strength. KilledOff(UnitPtr): void - This adds UnitPtr do the AllDeadUnitsPtr list, creating the AllDeadUnitsPtr list in the process if required. CreateSonoBuoy(void): SonoBuoyRegionPtr - Creates a SB and sets SonoBuoyRegionHead if it doesn't exist yet. You still have to assign all of the characteristic, location, etc. CreateVictoryCondition(void): VictoryConditionsPtr - Creates a Victory Condition and sets VictoryConditionsList if it doesn't already exist yet. You still have to fill in the required data fields. CreateGroup(uchar side, long sLon, long sLat): GroupPtr - Creates a new HCGroupPtr, gives it a group ID, and adds it to the list of groups. Establishes StartGroup if it hasn't been established yet. (thanks Don Thomas) - Chg:0000 GE ExportDLL Interface version is now 7 to accommodate the additions to funcRefs.
  8. TonyE replied to TonyE's topic in Shore Leave
    Okay, you twisted my arm (and got me curious as to a decent way of adding the donate button to the current forum software)... Once you are logged in, click on your username near the top of the screen and there should be a Donate button. If not, try refreshing the page. Thank you everyone for you contribution of time & money!
  9. TonyE replied to TonyE's topic in Shore Leave
    Thank you Smiley, we're working hard on firming up the code for a HC release. After that we'll lay out an updated vision and if people are still willing to support us at that time we'll welcome the support!
  10. TonyE replied to TonyE's topic in General
    HCE - 2009.094 - 2013/09/07 =========================== - Chg:I033 GE Missiles were errantly going into Inertial mode for a long period when they were supposed to be flipping over the course of two game seconds from guided to terminal guidance. They were getting stuck in Inertial guidance mode. That should now be fixed. InterceptAngle still has edge cases that fail (Issue # (thanks Grumble) http://harpgamer.com/harpforum/index.php?/tracker/issue-33-long-range-aa-missile-intercept-geometry/ - Chg:0000 GE The Path Editor will now show the following event types that it didn't before: Split Group Join Group Air Refuel (thanks Don Thomas)
  11. TonyE replied to TonyE's topic in General
    HCE - 2009.093 - 2013/09/06 =========================== - Chg:0008 GE Added a hack to prevent submarine stopping issues at the start of scenarios (symptom is submarines stopping after 20 game minutes). AI groups with submarines and a path will now be given a start speed of the slowest Creep speed in the group. Hopefully we can find and fix the root issue someday... http://harpgamer.com/harpforum/index.php?/tracker/issue-8-stopping-submarines-problem/ - Chg:0000 GE Tweaked once per game minute checks from 2009.092 to not apply if the air group is currently landing or launching. This could prevent empty AI air groups.
  12. TonyE replied to TonyE's topic in General
    HCE - 2009.092 - 2013/09/04 =========================== - Chg:0000 GE Added a once-per-game-minute check for AI aircraft that have no target and no path and are not loitering. These tend to be air groups that were intercepting a target that no longer exists. Done in eff116(); - Chg:0000 GE Added a once-per-game-minute check for AI aircraft that only have ATA weapons and are set to attack a surface target. If found, these planes with RTB. Helps to prevent suicidal ATA aircraft. Done in eff116();
  13. TonyE replied to TonyE's topic in General
    HCE - 2009.091 - 2013/09/04 =========================== - Chg:I040 GE Further work on IsSomebodyAttacking. It was usually returning the wrong value in 2009.090 resulting in the AI sending too many assets against the player. HCE - 2009.090 - 2013/09/03 =========================== - Chg:I036 GE Yet another in a long line of GetAnnex Error fixes. This one was a result of the save game process counting the number of units in the scenario via two different methods. When the numbers didn't agree it could result in a corrupt save game which when re-loaded would crash most often with a GetAnnex error. (thanks eeustice) - Chg:0000 GE SplitGroup Events were limited to splitting 127 units from a group. That limit should now be 255 (a full group). - Chg:0000 GE When the GE automatically combines PlaneRecs (i.e. when you have the same class of plane with same loadout in two bunches at a base/carrier and they turn into one bigger bunch) it will now make sure that PatrolFlag also matches before combining and will not combine if the resulting number of planes is > 255 since that would be a buffer overflow (thanks eeustice) - Chg:I040 GE Attempt to un-Tame the AI. In other words, keep it attacking over the entire scenario length, previously planes were getting stuck in a state where they couldn't be used for new attacks and that made the AI peter out as scenarios progressed. This is a first attempt at fixing that. (thanks Grumble) - Chg:0000 GE Fixed Effect00-Effect20 ExportDLL calls, some of them were previously inaccessible.
  14. Some "eye candy" of group path and joining happening via donaldseadog's ExportDLL.
  15. Just a quick word of warning, my THCJoinGroupEvent structure definition in uHCTypeDefs.pas is wrong. I'll be correcting it in 6-12 hours. Never mind, the structure is correct but the game does a (clever|stupid) thing and starts the DataPtr with a short(int) containing the number of THCJoinGroupEvents in the DataPtr. This allows the joining of multiple units in one JoinGroup event. Code to loop over them could look like: numjoins := short(PEvent^.DataPtr^); PJoinGroupEvent := PEvent^.DataPtr + sizeof(numjoins); for intC := 0 to numjoins - 1 do begin Memo1.Lines.Add(Format('Joining: %s unit=%d qty=%d to %s', [PJoinGroupEvent^.SplitGroup, PJoinGroupEvent^.UnitID, PJoinGroupEvent^.Number, PJoinGroupEvent^.JoinGroup])); PJoinGroupEvent := PHCJoinGroupEvent(NativeUInt(PJoinGroupEvent) + sizeof(THCJoinGroupEvent)); // ALE 20130828 move to next join end;
  16. Implemented: 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) Implemented: 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)
  17. http://harpgamer.com/harpforum/index.php?/files/file/835-exportdll-lazhceffects/ now available. It demonstrates overriding the built-in Harpoon Effects that make up the main game loop and also demonstrates calling the stock effects.
  18. View File ExportDLL - lazHCEffects 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/ Submitter TonyE Submitted 08/19/2013 Category Tools/Mods/Docs  
    • 319 downloads
    • 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/
  19. TonyE replied to TonyE's topic in General
    HCE - 2009.089 - 2013/08/19 =========================== - Chg:I035 GE Drop sonobuoy key will no longer turn on the active sonars of ships. (thanks Grumble) - Chg:I039 GE TCS now does Exact detections like Visual. (thanks Grumble) - Chg:0000 GE Effect00 through Effect20 functions are now available to the ExportDLL interface. These are the main processing functions of the game. By overriding them all you can replace the entirety of the game logic. - Chg:0000 GE Effect00 through Effect20 stock functions can now be called by ExportDLLs. The pointers to the functions are in the funcRefs: PHCDLL_FUNC_REF linked list sent by DLLInit. - Chg:0000 GE ExportDLL Interface version is now 6 to accommodate the Effect exports.
  20. Implemented: Fix the del_HarpoonEvent_list function pointer so that it actually points to the right function (2009.089) Sorry for any confusion this caused, del_HarpoonEvent_list was actually pointing to DisposPtr in earlier builds. The only real affect would have been some memory leak but still...
  21. As Grumble astutely noted, while all of these pointers are great and super-fast, you are at my whim in terms of changing the data structures. When I change the Group or Unit structures (and pretty much any other structure) in the GE, any DLLs that aren't updated to match will tend to fail with nice big crashes of HC. These changes have historically happened in bunches over a period of a few months, with a year or more pause in between those bunches. For reference, the last few changes were: 2009.072 (a non-breaking change), 2009.070 (also non-breaking), 2009.027, 2008.046, 2005.b07. Which brings up the second good point, I haven't described the entire Group and Unit structures in the example pascal code. I hope to do that in the next couple of weeks.
  22. Please see the current lazGUI source for an example of keeping the UI responsive when undertaking a long interaction in the DLL without the game clock or effects running. If you don't mind blocking the UI, go ahead and do your calculations during GameTime without messing with the DLLBusy flag. For donaldseadog and the toolbox, see that same GameTime tab for an example of how to read and interpret Harpoon Events. You specifically will want to be making events on the path itself, not as part of the HarpoonEventHead linked list. Events for each course point are stored in the pathEvents linked list made up of THCHarpoonEvents PPathLeg^.pathEvents (untested code below but it should give you an idea) PPathEvent:= NewPtr(SizeOf(THCHarpoonEvent)); PMessageEvent:= NewPtr(SizeOf(THCMessageEvent)); PMessageEvent^.Message := PAnsiChar('My fancy message'); PPathEvent^.DataPtr := PMessageEvent; PMessageEvent.flag := MESSAGE_EVENT OR ; // I don't know which Time flag to OR with MESSAGE_EVENT in your case. I would try looking at the MessageEvent created with the GE on a course leg to try to figure that out. PPathLeg^.pathEvents := PPathEvent; // only if you don't have existing path events on this course leg. If you do and want to keep them, iterate through them until next is null and tack it on there. If you have existing and want to delete them, DisposPtr them to death from the tail of the linked list back to the start or you'll leak memory.
  23. 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.
  24. lazGUI has been updated and the updated source code has been checked in. See the GameTime tab for an example of working some of the magic.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.