include "TriggerLibs/HeroesLib"
//--------------------------------------------------------------------------------------------------
// Library: Braxis Holdout
//--------------------------------------------------------------------------------------------------
// Preset Declarations
const int libSCHO_ge_MMHO_BeaconSignals_Null = 0;
const int libSCHO_ge_MMHO_BeaconSignals_Start = 1;
const int libSCHO_ge_MMHO_BeaconSignals_Stop = 2;
const int libSCHO_ge_MMHOSpawnCageQuadrants_OrderTop = 0;
const int libSCHO_ge_MMHOSpawnCageQuadrants_ChaosTop = 1;
const int libSCHO_ge_MMHOSpawnCageQuadrants_OrderBottom = 2;
const int libSCHO_ge_MMHOSpawnCageQuadrants_ChaosBottom = 3;
const int libSCHO_ge_MMHOUIModes_Idle = 0;
const int libSCHO_ge_MMHOUIModes_ZergWarning = 1;
const int libSCHO_ge_MMHOUIModes_ZergAttacking = 2;
const int libSCHO_ge_MMHOUIModes_BeaconEvent = 3;
// Constants
const string libSCHO_gv_mMSC1MechanicName_C = "HoldOut";
const fixed libSCHO_gv_mMHO_AttackEventWarningDuration_C = 30.0;
const fixed libSCHO_gv_mMHO_FirstAttackEventDuration_C = 60.0;
const fixed libSCHO_gv_mMHO_AttackEventDuration_C = 100.0;
const fixed libSCHO_gv_mMHO_AttackWaveTimerDuration_C = 8.0;
const int libSCHO_gv_mMHO_ControlBeaconMaxCount_C = 2;
const fixed libSCHO_gv_mMHO_CapturePointCaptureTime_C = 3.0;
const fixed libSCHO_gv_mMHO_CapturePointRadius_C = 4.0;
const fixed libSCHO_gv_mMHO_ControlBeaconProgressIncrement_C = 2.0;
const fixed libSCHO_gv_mMHO_ControlBeaconProgressTime_C = 0.75;
const int libSCHO_gv_mMHO_TopBeaconIndex_C = 1;
const int libSCHO_gv_mMHO_BottomBeaconIndex_C = 2;
const fixed libSCHO_gv_mMHO_Factory_Anim_Headstart_C = 6.0;
const fixed libSCHO_gv_mMHO_Elevator_Anim_Headstart_C = 8.0;
const fixed libSCHO_gv_mMHO_ZerglingBanelingSubtractor_C = 10.0;
const fixed libSCHO_gv_mMHO_ZerglingBanelingConversionPoint_C = 0.0;
const fixed libSCHO_gv_mMHO_HydraliskSubtractor_C = 24.0;
const fixed libSCHO_gv_mMHO_UltraliskSubtractor_C = 45.0;
const fixed libSCHO_gv_mMHO_GuardianSubtractor_C = 30.0;
const fixed libSCHO_gv_zergDropPodCooldownTime_C = 13.0;
const fixed libSCHO_gv_zergDropPodMaximumDrops_C = 6.0;
const fixed libSCHO_gv_mMHO_RegenGlobeCoolupTime_C = 45.0;
const fixed libSCHO_gv_mMHO_UltraliskHealthWeighting = 0.5;
const fixed libSCHO_gv_mMHO_GuardianHealthWeighting = 2.0;
// Structures
struct libSCHO_gs_MMHO_HiveControlBeacons {
unit lv_beaconUnit;
region lv_captureRegion;
int lv_controlBeaconIndex;
bool lv_enabled;
int lv_owner;
int lv_pingModelOrder;
int lv_pingModelChaos;
};
struct libSCHO_gs_MMHO_NorthSouth {
unit lv_north;
unit lv_south;
region lv_northSoundRegion;
region lv_southSoundRegion;
};
struct libSCHO_gs_MMHO_Factory_Info {
timer lv_animationTimer;
int lv_index;
};
struct libSCHO_gs_MMHO_SpawnProgressTracker {
fixed lv_zerglingCount;
fixed lv_banelingCount;
fixed lv_hydraliskCount;
fixed lv_guardianCount;
fixed lv_ultraliskCount;
};
struct libSCHO_gs_MMHOSpawnCageRegions {
region lv_frontSpawnRegion;
region lv_middleSpawnRegion;
region lv_backSpawnRegion;
};
struct libSCHO_gs_MMHO_Elevator {
timer lv_elevatorInitialRaiseTimer;
timer lv_elevatorRaiseTimer;
timer lv_elevatorLowerTimer;
bool lv_elevatorWasLowered;
};
struct libSCHO_gs_MMHOPanel {
int lv_mainPanel;
int lv_zergWarningFrame;
int lv_zergWarningInfoFrame;
int lv_zergWarningTimerLabel;
int lv_zergAttackingFrame;
int lv_zergAttackingInfoFrame;
int lv_zergAttackingTimerLabel;
int[3] lv_beaconProgressFrame;
int[3][3] lv_beaconProgressHUD;
int[3][3] lv_beaconProgressHPBar;
int[3][3] lv_beaconProgressHPBarLabel;
int[3][3] lv_beaconProgressHPBarAnimFrame;
int lv_beaconStatusFrame;
int[libCore_gv_bALMaxTeams + 1] lv_beaconStatusTopBeaconDisabledImage;
int[libCore_gv_bALMaxTeams + 1] lv_dragonShireMoonShrineEnabledImage;
int[libCore_gv_bALMaxTeams + 1] lv_dragonShireStarShrineDisabledImage;
int[libCore_gv_bALMaxTeams + 1] lv_dragonShireStarShrineEnabledImage;
int lv_beaconTopNeutral;
int lv_beaconTopOrder;
int lv_beaconTopChaos;
int lv_beaconBottomNeutral;
int lv_beaconBottomOrder;
int lv_beaconBottomChaos;
int lv_lightningLink1;
int lv_lightningLink2;
int lv_lightningLink3;
int lv_lightningLink4;
int[libCore_gv_bALMaxTeams + 1] lv_zergHudLeft;
int[libCore_gv_bALMaxTeams + 1] lv_zergHudRight;
int[libCore_gv_bALMaxTeams + 1] lv_alliedZergLabel;
int[libCore_gv_bALMaxTeams + 1] lv_enemyZergLabel;
int[libCore_gv_bALMaxTeams + 1] lv_beaconProgressLabel;
int[libCore_gv_bALMaxTeams + 1] lv_eggIconImageLeft;
int[libCore_gv_bALMaxTeams + 1] lv_eggIconImageRight;
int lv_beaconTopRadarWave;
int lv_beaconBottomRadarWave;
};
struct libSCHO_gs_MMHO_ZergIconUnitData {
unit lv_iconUnit;
};
// Variable Declarations
timer libSCHO_gv_mMHO_AttackEventTimer;
timer libSCHO_gv_mMHO_AttackEventWarningTimer;
timer libSCHO_gv_mMHO_AttackWaveTimer;
int libSCHO_gv_mMHO_AttackLane;
int libSCHO_gv_mMHO_AttackLaneHPMiniMapController;
point[9][11] libSCHO_gv_mMHO_AttackPointsFort;
point[5][11] libSCHO_gv_mMHO_AttackPointsKeep;
point libSCHO_gv_mMHO_TopCaptureBeacon;
point libSCHO_gv_mMHO_BottomCaptureBeacon;
doodad libSCHO_gv_mMHO_TopCaptureSlab;
doodad libSCHO_gv_mMHO_BottomCaptureSlab;
region libSCHO_gv_mMHO_TopBeaconOwnershipRegion;
region libSCHO_gv_mMHO_BottomBeaconOwnershipRegion;
libSCHO_gs_MMHO_HiveControlBeacons[libSCHO_gv_mMHO_ControlBeaconMaxCount_C + 1] libSCHO_gv_mMHO_HiveControlBeacons;
int libSCHO_gv_mMHO_NumberOfEventsFired;
fixed[3] libSCHO_gv_mMHO_TeamProgress;
string[3] libSCHO_gv_mMHO_TeamZergTier;
bool libSCHO_gv_mMHO_HiveControlBeaconEventActive;
unit libSCHO_gv_beaconUnitTop;
unit libSCHO_gv_beaconUnitBottom;
actor libSCHO_gv_mMHO_BeamSoundRegion;
libSCHO_gs_MMHO_NorthSouth[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_HiveCages;
libSCHO_gs_MMHO_NorthSouth libSCHO_gv_mMHO_BeaconAntennae;
doodad[11] libSCHO_gv_mMHO_UpArrows;
doodad[11] libSCHO_gv_mMHO_DownArrows;
region libSCHO_gv_mMHO_TopCableRegion;
region libSCHO_gv_mMHO_BottomCableRegion;
doodad libSCHO_gv_mMHO_TopBeaconTopArrow;
doodad libSCHO_gv_mMHO_TopBeaconBottomArrow;
doodad libSCHO_gv_mMHO_BottomBeaconTopArrow;
doodad libSCHO_gv_mMHO_BottomBeaconBottomArrow;
doodad[7] libSCHO_gv_mMHO_CaptureCables;
libSCHO_gs_MMHO_Factory_Info[7] libSCHO_gv_mMHO_Factory_Timer;
doodad[7] libSCHO_gv_mMHO_FactoryMercCampDoodads;
int libSCHO_gv_mMHO_FreeZerglingCount_C;
int libSCHO_gv_mMHO_FreeBanelingCount_C;
int libSCHO_gv_mMHO_FreeHydraliskCount_C;
int libSCHO_gv_mMHO_FreeUltraliskCount_C;
int libSCHO_gv_mMHO_FreeGuardianCount_C;
region libSCHO_gv_mMHO_Chaos_TopSpawnRegion;
region libSCHO_gv_mMHO_Chaos_BottomSpawnRegion;
region libSCHO_gv_mMHO_Order_TopSpawnRegion;
region libSCHO_gv_mMHO_Order_BottomSpawnRegion;
region libSCHO_gv_mMHO_Order_TopHoldingPenRegion;
region libSCHO_gv_mMHO_Chaos_TopHoldingPenRegion;
region libSCHO_gv_mMHO_Order_BottomHoldingPenRegion;
region libSCHO_gv_mMHO_Chaos_BottomHoldingPenRegion;
point libSCHO_gv_mMHO_Order_TopHoldingPenPingPoint;
point libSCHO_gv_mMHO_Chaos_TopHoldingPenPingPoint;
point libSCHO_gv_mMHO_Order_BottomHoldingPenPingPoint;
point libSCHO_gv_mMHO_Chaos_BottomHoldingPenPingPoint;
point[3] libSCHO_gv_mMHO_Order_TopUltraliskPoints;
point[3] libSCHO_gv_mMHO_Chaos_TopUltraliskPoints;
point[3] libSCHO_gv_mMHO_Order_BottomUltraliskPoints;
point[3] libSCHO_gv_mMHO_Chaos_BottomUltraliskPoints;
libSCHO_gs_MMHO_SpawnProgressTracker[3] libSCHO_gv_mMHO_SpawnProgressTracker;
unitgroup libSCHO_gv_mMHO_ChaosUltralisks;
unitgroup libSCHO_gv_mMHO_OrderUltralisks;
string[6][5] libSCHO_gv_mMHO_AttackWaveType;
unitgroup[3][4] libSCHO_gv_mMHO_AttackGroups;
unitgroup libSCHO_gv_mMHO_ZergWaveGroup;
int libSCHO_gv_mMHO_WaveTracker;
int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ZergAICustomUnitValue;
libSCHO_gs_MMHOSpawnCageRegions[5] libSCHO_gv_mMHOSpawnCageRegions;
int[3] libSCHO_gv_mMHO_ZerglingCount;
int[3] libSCHO_gv_mMHO_BanelingCount;
unit libSCHO_gv_mMHO_ArchangelLaner;
unit libSCHO_gv_mMHO_ArchangelElevatorBlockerUnit;
point libSCHO_gv_mMHO_ArchangelSpawnLocationCenter;
point[3] libSCHO_gv_mMHO_ArchangelLanerStartPoints;
int libSCHO_gv_mMHO_ArchangelAICustomUnitValue;
int libSCHO_gv_mMHO_ArchangelCurrentPathIndex;
int libSCHO_gv_mMHO_ArchangelPathIndexMax;
int libSCHO_gv_mMHO_ArchangelWinningTeam;
int libSCHO_gv_mMHO_ArchangelLanerPathLine;
bool libSCHO_gv_mMHO_ArchangelLanerPathLineCreated;
point libSCHO_gv_mMHO_ArchangelLanerRallyPoint;
int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ArchangelLanerPing;
doodad libSCHO_gv_mMHO_ArchangelElevator;
region libSCHO_gv_mMHO_ArchangelElevatorRegion;
bool libSCHO_gv_mMHO_ArchangelElevator_ShouldBeLowered;
libSCHO_gs_MMHO_Elevator libSCHO_gv_mMHO_Elevator;
timer[libCore_gv_bALMaxTeams + 1] libSCHO_gv_zergDropPodCooldowns;
fixed[libCore_gv_bALMaxTeams + 1] libSCHO_gv_zergDropPodDropsRemaining;
fixed[libCore_gv_bALMaxPlayers + 1] libSCHO_gv_mMHOEndofMatchAwardZergCrusherValue;
int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ReminderTransmissions;
timer libSCHO_gv_mMHO_ScalingTimer;
fixed libSCHO_gv_mMHO_ScalingLevel;
libSCHO_gs_MMHOPanel libSCHO_gv_mMHOPanel;
unit libSCHO_gv_mMHO_OrderProgressUnit;
unit libSCHO_gv_mMHO_ChaosProgressUnit;
bool libSCHO_gv_mMHO_OrderPlayedAnimation;
bool libSCHO_gv_mMHO_ChaosPlayedAnimation;
libSCHO_gs_MMHO_ZergIconUnitData[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ZergIconUnit;
int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ZergPaths;
int[3] libSCHO_gv_mMHO_EnemyZergIcon;
int[3] libSCHO_gv_mMHO_AllyZergIcon;
fixed[3] libSCHO_gv_mMHO_TotalZergHP;
int[3] libSCHO_gv_mMHO_ObsZergPing;
int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ZergCurrentPathIndex;
int[libCore_gv_bALMaxTeams + 1] libSCHO_gv_mMHO_ZergPathIndexMax;
// Function Declarations
void libSCHO_gf_MMHOEventWarningAnnouncement ();
void libSCHO_gf_MMHOInitializeHiveControlCapturePoints ();
void libSCHO_gf_MMHOCreateHiveControlPings ();
void libSCHO_gf_MMHODestroyHiveControlPings ();
void libSCHO_gf_MMHOHiveBeaconSpawnAnnouncement ();
int libSCHO_gf_MMHOGetHiveControlBeaconOwners ();
string libSCHO_gf_MMHOGetUserDataInstanceTier (int lp_team);
void libSCHO_gf_MMHOTurnOnHiveControlBeacons ();
void libSCHO_gf_MMHOHiveControlBeaconDoodadController (int lp_beaconIndex);
void libSCHO_gf_MMHOHiveCageFullyCharged ();
void libSCHO_gf_MMHOControlSlabAnimationsEventStartStop (int lp_startOrStop);
void libSCHO_gf_MMHOControlSlabAnimationOwnershipChange (int lp_team, int lp_beaconIndex);
void libSCHO_gf_MMHOControlSlabAnimationProgressReached100 ();
void libSCHO_gf_MMHOControlSlabAnimationsProgress (int lp_team);
void libSCHO_gf_MMHOTurnOnOffAntenna (bool lp_onOff);
void libSCHO_gf_MMHOBothBeaconsCapturedBeams (int lp_team);
void libSCHO_gf_MMHOBothBeaconsNoLongerCapturedBeams ();
void libSCHO_gf_SetUpRoadArrowTeamColorAndAnimations (int lp_team);
void libSCHO_gf_SetDownRoadArrowTeamColorAndAnimations (int lp_team);
void libSCHO_gf_ClearRoadArrowVisualsAndTeamColor ();
void libSCHO_gf_MMHOOpenCloseCaptureCages (bool lp_openClose, int lp_team);
void libSCHO_gf_MMHOOpenLeftRightUltraliskCages (int lp_team);
void libSCHO_gf_MMHOSetCableAnimationOwership (int lp_team);
void libSCHO_gf_MMHOSetSwitchAnimationOwnershipChanges (int lp_team, int lp_beaconIndex);
void libSCHO_gf_MMHOSetSwitchAnimationBothBeaconsCaptured (int lp_team);
void libSCHO_gf_MMHOSetSwitchAnimationBothBeaconsNoLongerCaptured ();
void libSCHO_gf_MMHOTurnCaptureCablesOnOffForTeam (bool lp_onOff, int lp_team);
void libSCHO_gf_MMHOTurnOnAlarmLightsForTeam (int lp_team);
void libSCHO_gf_MMHOClearAlarmLights ();
void libSCHO_gf_MakeSCVUnitsMoveAround (unit lp_sCV1, unit lp_sCV2, unit lp_sCV3, point lp_turnInPoint, point lp_mineralPatch1, point lp_mineralPatch2, point lp_mineralPatch3);
void libSCHO_gf_MMHODetermineAttackWavePath (int lp_waveIndex);
void libSCHO_gf_MMHOTeleportStuckZergFailsafe (int lp_waveIndex);
void libSCHO_gf_MMHOAttackWavePath (unitgroup lp_topGroup, unitgroup lp_botGroup);
void libSCHO_gf_MMHOSendAttackWave (unitgroup lp_waveUnits, point lp_wP1, int lp_teamToAttack);
void libSCHO_gf_MMHOZergAttackFinishedMonitorWait ();
void libSCHO_gf_MMHOSetupZergAttackWave ();
void libSCHO_gf_MMHOSpawnBeaconWave ();
void libSCHO_gf_MMHOSpawnBeaconUnits (int lp_attackLane, region lp_spawnRegion);
void libSCHO_gf_MMHOGrantFreeZergUnits (int lp_team);
void libSCHO_gf_MMHOPeriodicallySpawnZergUnits (int lp_team);
void libSCHO_gf_MMHOModifySpawnProgressVariables (int lp_team);
void libSCHO_gf_MMHODetermineSpawnCompositionBasedOnProgress (int lp_team, region lp_spawnRegion);
void libSCHO_gf_MMHOResetSpawnProgressVariables (int lp_team);
void libSCHO_gf_MMHOSpawnUltralisksForTeam (int lp_team);
void libSCHO_gf_MMHOActivateUltraliskForTeam (point lp_targetLocation, int lp_team);
void libSCHO_gf_MMHOCleanUpRemainingUltralisks ();
void libSCHO_gf_MMHORemoveStasisBehaviorFromZerg ();
void libSCHO_gf_MMHODetermineFreeZerglingBanelingCount ();
void libSCHO_gf_MMHOSpawnZerglingsBanelings (int lp_attackLane, int lp_team, region lp_spawnRegion);
void libSCHO_gf_MMHOSpawnLanerArchangel (int lp_team, int lp_campIndex);
void libSCHO_gf_MMHOSetArchangelLanerStartPoints (point lp_lane1, point lp_lane2, point lp_center);
void libSCHO_gf_MMHOCalculateArchangelRallyPoint ();
int libSCHO_gf_MMHODetermineArchangelPushingLane (int lp_team);
int libSCHO_gf_MMHOTownComparison (int lp_town1, int lp_town2, int lp_player);
fixed libSCHO_gf_MMHOTownHealth (int lp_town, int lp_player);
void libSCHO_gf_MMHOCreateArchangelPathLine (unit lp_unit, bool lp_new_Path);
void libSCHO_gf_MMHOElevatorAddRemoveUnpathable (bool lp_addRemove);
void libSCHO_gf_MMHODelayElevatorLowering ();
void libSCHO_gf_MMHOCreateDropPod (point lp_dropPodPosition, int lp_dropPodOwner);
void libSCHO_gf_MMHODisplayRegenGlobeGeneratorTimer (unit lp_unit);
void libSCHO_gf_MMHORegenGlobeCoolupTime ();
void libSCHO_gf_MMHOEndofMatchAwardZergCrusherModifyValuesandReport (int lp_player, fixed lp_damage);
void libSCHO_gf_MMHOTransmissionBeaconsActivating ();
void libSCHO_gf_MMHOTransmissionBeaconsActive ();
void libSCHO_gf_MMHOTransmissionZergAttacking ();
void libSCHO_gf_MMHOTransmissionAllZergDead ();
void libSCHO_gf_MMHOTransmissionBeaconsFullyCaptured (fixed lp_orderTeamProgress, fixed lp_chaosTeamProgress);
void libSCHO_gf_MMHOUpdateTerranScaling ();
void libSCHO_gf_MMHOCalculateZergTotalHP (bool lp_calculateMaximum);
void libSCHO_gf_MMHOChangeZergMinimapIconsBasedOnZergHealth (int lp_team, unit lp_unit);
void libSCHO_gf_MMHOUpdateZergMinimapIcons (int lp_team);
void libSCHO_gf_MMHOInitializeZergPath ();
void libSCHO_gf_MMHOCreateZergPath (int lp_team, bool lp_newPath);
int libSCHO_gf_MMHOCreateZergPing (playergroup lp_playerGroup, unit lp_unit, string lp_zergPingModel);
void libSCHO_gf_MMHOUIInit (int lp_parentPanel);
void libSCHO_gf_MMHOUIShowHidePanel (bool lp_showHide);
void libSCHO_gf_MMHOUISetMode (int lp_mode);
void libSCHO_gf_MMHOUISetZergWarningTime (int lp_progressUnit);
void libSCHO_gf_MMHOUISetZergAttackingTime (int lp_progressUnit);
void libSCHO_gf_MMHOUICreateProgressUnits ();
void libSCHO_gf_MMHOUISetProgressUnits ();
void libSCHO_gf_MMHOUISetZergSwarmKilled (int lp_mode);
void libSCHO_gf_MMHOUISetTopBeaconOwner (int lp_team);
void libSCHO_gf_MMHOUISetBottomBeaconOwner (int lp_team);
void libSCHO_gf_MMHOUIBeaconStatusMonitor ();
void libSCHO_gf_MMHOShowHideBeaconMinimapPings (bool lp_showHide);
void libSCHO_gf_MMHOSpawnSpecificAttackWave (region lp_attackRegion, point lp_point, string lp_attackWave);
// Trigger Declarations
trigger libSCHO_gt_IncludeHoldOut;
trigger libSCHO_gt_MMHOInitializeMercCampData;
trigger libSCHO_gt_MMHOInitializePingData;
trigger libSCHO_gt_MMHOInit;
trigger libSCHO_gt_MMHOGateOpen;
trigger libSCHO_gt_MMHOStartWarningTimer;
trigger libSCHO_gt_MMHOWarningTimerExpires;
trigger libSCHO_gt_MMHOSpawnAttackWaves;
trigger libSCHO_gt_MMHOHiveControlBeaconChangesOwner;
trigger libSCHO_gt_MMHOHiveControlBeaconMonitor;
trigger libSCHO_gt_MMHOAnimateFactory;
trigger libSCHO_gt_MMHOMercCampSpawned;
trigger libSCHO_gt_MMHOMercCampCleared;
trigger libSCHO_gt_MMHOArchangelIsCaptured;
trigger libSCHO_gt_MMHOArchangelDies;
trigger libSCHO_gt_MMHOArchangelDefenderSpawned;
trigger libSCHO_gt_MMHOArchangelUpdateMercPath;
trigger libSCHO_gt_MMHOAddUnpathableLocationAtStart;
trigger libSCHO_gt_MMHOElevatorInitialTimerExpires;
trigger libSCHO_gt_MMHOElevatorLowerTimerExpires;
trigger libSCHO_gt_MMHOElevatorRaiseTimerExpires;
trigger libSCHO_gt_MMHOZergAttacksEnemy;
trigger libSCHO_gt_MMHOScalingTimerExpires;
trigger libSCHO_gt_MMHOZergUnitTakesDamage;
trigger libSCHO_gt_MMHOZergIconUnitDies;
trigger libSCHO_gt_MMHOUpdateZergPath;
trigger libSCHO_gt_MMHOUIModInitialize;
trigger libSCHO_gt_MMHOUIHandler;
trigger libSCHO_gt_DebugEVENTSTART;
trigger libSCHO_gt_DebugEVENTSTARTFAST;
trigger libSCHO_gt_DebugRespawnCamps;
trigger libSCHO_gt_DebugTestWave;
trigger libSCHO_gt_DebugDisableEvent;
// Library Initialization
void libSCHO_InitVariables ();