unit uLazHarpoonEventsMQTTGlobals;

{$IFDEF FPC}
{$mode objfpc}{$H+}
{$ENDIF}

interface

uses
  uHCTypeDefs, uHCAnnexDefs, uHCAnnexHelpers;

type
  PHCMessage = ^THCMessage;
  THCMessage = record
    topicLen: Integer; // ALE 20200918 in Characters
    msgLen: Integer;
    topic: String;
    msg: String;
  end;

const
  MAGIC_DATA = 'Hu5839272dnmdnf,msanKJHKJH';

var
  blnInvestigatingStructs: Boolean;
  PGEClosing: Pointer; // ALE 20130812 Pointer to a SmallInt
  PDLLBusy: Pointer; // ALE 20130816 Pointer to a Byte
  intGameTime: Long;
  intGameTimeLeft: Long;
  AnnexData: PHCAnnexes_disk;
  DatabaseVersionDB: PHCDATABASE_VERSION;
  ScenData: PHCSCENARIO_DATA;
  ScenSaveData: PHCSCENARIO_SAVE_DATA;
  HCAnnexHelper: IHCAnnexHelper;
  intVerInterface: NativeInt;
  intVerSaveGame: NativeInt;
  gGUID: String;
  gGUIDSession: String;
  gHarpPath: String;
  gTopicBase: String;

  // ALE 20130812 Big bad pointers that hold most of the game data
  PStartGroup: PHCGroup;
  PHarpEventHead: PHCHarpoonEvent;
  PSonobuoyRegionHead: PHCSonobuoyRegion;
  PAllDeadUnitsPtr: PHCDeadListItem;
  PWeatherGroups: PHCGroup;
  PVictoryConditionsList: PHCVictoryConditions;
  // ALE 20130812 transient pointers
  PSelectedUnit: PHCUnit;
  // ALE 20130812 misc globals
  //blnInvestigatingStructs: Boolean;
  // ALE 20130908 pointers to functions exported by the GE
  HCQueueHarpoonEvent: THCQueueHarpoonEvent;
  NewPtr: THCNewPtr;
  DisposPtr: THCDisposPtr;
  HCdllCheckLatLonDepth: THCdllCheckLatLonDepth;
  HCannex_id_to_disk_id: THCannex_id_to_disk_id;
  HCdisk_id_to_annex_id: THCdisk_id_to_annex_id;
  HCMessageLogLine: THCMessageLogLine;


implementation

end.

