HCE - 2018.004 - 2018-05-19
===========================
- Chg:0000 GE A bug in GCI.c where TonyE didn't convert from DUs
(Distance Units) to NM (Nautical Miles) was preventing non-air
units from shuffling off to their formation positions. Fixed
(thanks eeustice)
HCE - 2018.003 - 2018-05-18
===========================
- Chg:0000 GE Re-enabled the 5th and 6th formation rings.
HCE - 2018.002 - 2018-05-15
===========================
- Chg:0000 GE Extended beta expiration out a ways.
- Chg:0000 GE Replaced numerals with named constants for formation keeping
in other words, the unit->independent field
- Chg:0000 GE Tweaks to calculation of Unit offset from Group center.
Previously any fixedbase type unit would have its offsets
set to zero, making it seem to be at the center of the
group. Now, only the first fixedbase is considered the
center of the group and hence have zero offsets.
- Chg:0000 GE ExportDLL interface now makes the ResetGroupCenter function
available to ExportDLLs void ResetGroupCenter(UnitPtr)
- Chg:0000 GE ExportDLL interface now makes the SetCourseUnit_Raw function
available to ExportDLLs void SetCourseUnit_Raw(UnitPtr pUnit,
short pCourse, char const *pCallerName,
char const *pCallerFile, long const pCallerFileLine)
This is for instantaneous turns.
- Chg:0000 GE ExportDLL interface now makes the SetCourseGroup_Raw function
available to ExportDLLs void SetCourseGroup_Raw(GroupPtr pGroup,
short pCourse, char const *pCallerName,
char const *pCallerFile, long const pCallerFileLine)
This is for instantaneous turns.
- Chg:0000 GE Cranked up logging on turns
- Chg:0000 GE eff113 to use new constant AI_TOLERANCE_CLOSE that defines
when we switch from closing to attacking.
- Chg:I207 GE Seems units can be turned before they are assigned to a group so
the logging that printed out the non-existent group id was
crashing. In 2017.016 we skip the log messages when there is
no group assigned. (thanks Enrique)
http://harpgamer.com/harpforum/index.php?/tracker/issue-205-2017015-crash-at-start/
- Chg:0000 GE Effect2.c lines 623-624 are commented out. They were causing
formation air patrols on their way to land to periodically flip
course to match the course of the group.
- Chg:0000 GE Fixed scenario version conversion from V002 to V003 that wasn't
properly zeroing out memory.
- Chg:0000 GE Fixed other pointer and overflow errors pointed out by
cppcheck static analysis.
- Chg:0000 GE Torps with the quiet flag were errantly having their self-noise
level set to -4 instead of subtracting 4 from the self-noise.
- Chg:I0193 GE When you place 20 KC-10s in a group... and then try to refuel
some Super Bugs, the endurance calcuation would overflow
and in turn give strange results. Fixed by widening
operands.
(thanks eeustice)
http://harpgamer.com/harpforum/index.php?/tracker/issue-193-refueling/
- Chg:0000 GE When bases or ship groups try to change altitude, calculate the
ascent/descent rate based on subs and air units only. This
addresses an assertion failure.
- Chg:0000 GE Aircraft with a 0m/s climb rate in the DB will default to 76m/s
climb rate, the average of the aircraft climb rates in
HCDB-150929. This is mainly for legacy BattleSets but also
if a WestPac or newer BattleSet has some zero entries.
- Chg:0000 GE While loading saved games, discard any invalid new contact
entries (these feed what the staff assistant shows for
new contacts).
- Chg:0000 GE A 2017.011 bug in ExportDLL ScenLoad call was passing ScenData
as a pointer to a pointer instead of as a pointer, fixed.
- Chg:0000 GE Incremented saved game version to 0x34803217 for ScenData
addition and globals modifications.
- Chg:0000 GE Incremented Scenario version to 5, see SE comment below for
the long explanation.
- Chg:0000 GE Incremened ExportDLL version to 21, see below for more detail.
- Chg:0000 GE ExportDLL ScenLoad added DatabaseVersionDB, ScenData, and
ScenSaveData
so that the ExportDLL has a concept of which DB is being used
with the current scenario as well as unique IDs for saved games.
This is handy if the ExportDLL
is supplementing or modifying the data for use while playing
the scenario.
- Chg:0000 GE Code Cleanup - init_and_read_annexesA was also doing all of the
scenario file version specific conversions, refactored that
out into init_scen_loader.
- Chg:0000 GE Code Cleanup - removed unused init_and_read_annexes. It hasn't
been used since the switch to 4096 items/annex.
- Chg:0000 GE Year 2038 problem - The HCLicense code now uses 64-bit time_t,
remediating the 2038 problem for licensing.
- Chg:0000 GE Year 2038 problem - DatabaseVersion structure timestamps
widened from 32-bit time_t to 64-bit time_t to remediate
2038 problem.
- Chg:0000 GE Year 2038 problem - Game start times and times can now go
beyond the 2038 limit.
- Chg:0000 GE Added RES/RSR file structure version functionality so that
we can read both unversioned and versioned structures.
- Chg:0000 GE Scenario lineage for BattleSet scenarios pre-WestPac are read
from a SQLite database ScenarioLineageLegacy.sqlite3
- Chg:0000 GE Player can now detect Neutral aircraft. This will also fix
other detection problems.
- Chg:0000 GE Fixed up MessageLogLine for ExportDLL
- Chg:I184 GE Aircraft trying to attack submarines while having a non-torpedo
first weapon in the loadout were unable to fire at an enemy.
(thanks Enrique)
http://harpgamer.com/harpforum/index.php?/tracker/issue-184-impossible-to-launch-asw-torpedo-from-helicopter/
- Chg:0000 GE Starting to add UUIDs to game structures so that ExportDLLs can
marry external data to the internal data.
+ScenarioGroup
+Group
+ScenarioUnit
+Unit
+PlaneRec (planes on ground)
In the ScenarioGroup and Group structures, increased the
maximum number of formation zones to 64 and increased
how large they can go (previous limit was 255nm, new is
32768nm)
Increased the formation zones available in GE and SE
from 4 to 6 so even though the game structures can
handle 64 zones, the UI only understands 6 zones.
In the ScenarioGroup and Group structures, widened the
id field from 4 to 8 characters so that someday there
can be a greater number of groups in the game. The
ScenarioGroup id field is unused at present.
In the ScenarioUnit and Unit structures, increased the
maximum number of formation zones to 64 and increased
the number of slices of the formation pie to 64 as well.
In the IntermittentSensorsEvent, increased the maxumim
number of formation zones to 64.
Ditto for FormationEventPtr and AirPatrolEventPtr.
Incremented saved game version to 0x34803216.
Incremented Scenario version to 4.
Incremented DLL interface version to 20.
- Chg:0000 GE Incremented DLL interface version to 19 for the newly added
dllFuncRefs for the ExportDLLs.
- Chg:0000 GE New ExportDLL funcRefs: MessageLogLine() which will add a line
to the HC Message Log window up to 1023 1-byte characters plus
a null terminator.
- Chg:I182 GE Since 20160326 AI LR Air attacks programmed in by the scenario
author have not had the target group set once they launched
so the planes would be told to land since they had no
target. This has been remedied.
(thanks Enrique)
http://harpgamer.com/harpforum/index.php?/tracker/issue-182-programmed-air-attacks-total-failure/
- Chg:0000 GE Incremented DLL interface version to 18 for the newly exported
functions for the ExportDLLs.
- Chg:0000 GE New exported functions: Turn, ChangeAlt, UnitTop
- Chg:0000 GE Incremended DLL interface version to 17 for the unit structure
changes in 2017.004. This represents a breaking change for
most ExportDLLs that use the unit structure.
- Chg:I179 GE Provide the player (and AI) an opportunity to split tankers
at bingo to separate from a group that has more range than
the tankers.
(thanks eeustice)
http://harpgamer.com/harpforum/index.php?/tracker/issue-179-tankers-will-not-seperate-from-group-at-bingo-fuel/
- Chg:I173 GE Ammunition column of platform display would blank out when the
quantity of ammunition > 999. Widened the qty display
field to remedy the issue. Widened ammunition name too for
kicks since I was in there.
(thanks eeustice)
http://harpgamer.com/harpforum/index.php?/tracker/issue-173-ge-weapon-detail-box/
- Chg:0000 GE Incremented saved game version to implement the changes below.
- Chg:0000 GE Widened unit structure elements Method[sIDES], emit, detect so
that the RWR sensor type can be added to the game. The game
can now handle 64 sensor types in these fields, up from 16.
- Chg:0000 GE Added sRWR sensor type define.
- Chg:0000 GE Added RWR sensor model.
- Chg:I165 GE When building the list of valid weapons for a target to display
in the UI, there were two different flags both assigned to
the value 8 (ARM and AAM). Separated ARM out into a new field
of the record.
(thanks Enrique)
http://harpgamer.com/harpforum/index.php?/tracker/issue-165-anti-surface-agm-114m-missile-irlaser-guidance-weird-behaviour/
- Chg:I175 GE Aircraft units will now update weapon range rings as soon as the
units are fully launched and formed up (i.e. if there are 8
planes in the unit, the weapons range rings should update once
all 8 planes are aloft).
(thanks Tony)
http://harpgamer.com/harpforum/index.php?/tracker/issue-175-weapons-range-rings-missing-on-aircraft/
- Chg:I174 GE When we moved from 128 possible units per group to 256, we
should have moved to 255 instead since 256 is a reserved
id to indicate that the harpoon event is to be applied to
the entire group, not a specific unit.
The fix put in place is to max out new groups at 255 units
AND strip the 256th unit off of any groups that have them.
The GE and SE will put it in the GE.log/SE.log but not
otherwise alert the player.
(thanks eeustice)
http://harpgamer.com/harpforum/index.php?/tracker/issue-174-unable-to-shoot-down-255th-plane-in-patrol/
- Chg:0000 GE MovePlanesToNewGroup in Effect1.c could move a maximum of 128
planes. Increased it to 255.
- Chg:0000 GE Imagine a situation where there are 255 x F-15C Intercept at
a base and 1 more lands. Previously they would have been
combined into a single 256 plane bundle. That has now been
limited to 255 to be consistent.
- Chg:0000 GE Added function int CountGroupUnits to count the number of units
currently in a group and plugged it in to a bunch of places
where the logic was replicated.
- Chg:0000 GE Adding code to prevent situations where there might be more than
255 units in a resultant group (joining groups, etc.). It is
doubtful that all spots have been found.
- Chg:0000 GE Added "unit" log type which for now will track # of units per
group. UNIT_LOG constant in the code, unit on the command
line.
- Chg:I160 GE Player was unable to click an enemy installation, do Intercept
and successfully get planes to attack planes in the enemy
installation's formation. Added back the choice of attack type
to get around this for now. A better long-term solution is
to only show valid attack types for the aircraft involved and
auto-select if there is only one valid attack type.
http://harpgamer.com/harpforum/index.php?/tracker/issue-160-incapable-to-intercept-enemy-aircrafts-in-autopatrol/
(thanks Enrique)
- Chg:0000 GE For a while now, when you go into the Unit\Full\Weapons display
for an aircraft unit, the current loadout wasn't highlighted so
it felt like you couldn't see the quantity of weapons available
in the current loadout. Fixed to show the current loadout
when possible so that the player has instant feedback on
loadout and weapons available.
This bug was introduced with 4096 items per annex.
(thanks eeustice)
- Chg:I156 GE Show up to 47 characters each of class name and unit name in
the Mini Report window and some other places.
(thanks Enrique)
http://harpgamer.com/harpforum/index.php?/tracker/issue-156-name-long-issue-in-ge/?gopid=775&do=findComment&comment=775
- Chg:I154 GE Periscope depth and VLow were both set to 15m, resulting in
the mini-report window saying aircraft were at periscope depth.
Changed periscope depth to +2m for visibiity purposes.
Note that existing saved games will continue to say Periscope
until the affected units change depth.
(thanks eeustice)
http://harpgamer.com/harpforum/index.php?/tracker/issue-154-very-low-altitude/
- Chg:I153 GE Turns and Depth changes that are a part of the initial orders
in the SE will happen at the first tick of the game clock in
the GE and will be instaneous since they represent start-state
in the scenario and shouldn't be treated as triggers for
graduals turns and altitude changes like they were in
2016.004. (thanks eeustice)
http://harpgamer.com/harpforum/index.php?/tracker/issue-153-sub-depth-and-course-in-hc-2016004/
- Chg:0000 GE ExportDLL interface added Altitude in meters to the
UnitAlt function.
- Chg:0000 SE Let's not save AltSpeedEvents without assigning a 'new' altitude.
This was confusing the XML scenario file saving format.
- Chg:0000 SE XML Scenario file saving was using the first scenario lineage
information for every lineage entry. Fixed.
- Chg:0000 SE Fixed other pointer and overflow errors pointed out by
cppcheck static analysis.
- Chg:0000 SE The 2017.011 installer didn't have the .sqlite3 database
containing the legacy BattleSet scenario lineage. It is
included now.
- Chg:0000 SE Year 2038 problem - Game start times and times can now go
beyond the 2038 limit.
- Chg:0000 SE Incremented Scenario version to 5 as a result of implementing a
converter for aircraft formation patrols. This means scenarios
of version 4 (2017.008 thru 2017.010) may be corrupt.
Deleting and recreating all formation air patrols in the SE
is the 'fix'. However, if the scenario was created and
last saved in a SE version
that scenario forward into 2017.011 or newer without corruption.
- Chg:0000 SE Added RES/RSR file structure version functionality so that
we can read both unversioned and versioned structures.
- Chg:0000 SE Added scenario lineage to the scenario file. Each time the
scenario is saved, it is assigned a new UUID, the entire
historical list of UUIDs is saved in the scenario file. In
theory the GE can then figure out which saves belong to which
scenario. Implemented this as part of a more generic
ScenData structure that is present in both Scenario and Saves
including the lineage, database version, and ai stay on path
settings.
- Chg:0000 SE Scenario lineage for BattleSet scenarios pre-WestPac are read
from a SQLite database ScenarioLineageLegacy.sqlite3
Lineage dtstamp = 1181260800 (June 8, 2007 HCE release date)
Lineage BuildSE = 2007.000
- Chg:I185 SE It wasn't possible to add aircraft to AD_Fixed units. Fixed.
(thanks Enrique)
http://harpgamer.com/harpforum/index.php?/tracker/issue-185-failure-editing-airfield-secret/
- Chg:0000 SE Starting to add UUIDs to game structures
(see GE section for details)
This means scenarios created with this SE cannot be played
by earlier versions/builds of the GE nor edited with earlier
SE versions/builds.
- Chg:0000 SE libxml updated from 2.9.2 to 2.9.4
- Chg:0000 SE Added "unit" log type which for now will track # of units per
group.
- Chg:0000 SE Deleted a couple of unused source files as they functions
they contained have been simplified to work in both GE and
SE.
- Chg:0000 SE In pre-commondb BattleSets, re-establish checks for WepID == 0
in loadouts and multimounts to prevent crashes when the SE
tries to save scenarios. There can only be 4 weapons per
loadout and multimount in the legacy battlesets so for slots
4-8 we need to and again do set it to INVALID_ID instead of 0.
This bug was a regression introduced with 4096 items per annex.
(thanks rabbit, Hellion144)
- Chg:I146 SE Port aircraft loadout dialogs from the GE to the SE so that all
information visible in GE for loadouts is available in the SE.
(thanks eeustice, Smitty, et al)
http://harpgamer.com/harpforum/index.php?/tracker/issue-146-se-formation-ready-air-windows/
- Chg:0000 DU Fixed other pointer and overflow errors pointed out by
cppcheck static analysis.
- Chg:0000 DU Added RES/RSR file structure version functionality so that
we can read both unversioned and versioned structures. Also
includes writing the version to any new RES/RSR files.
- Chg:0000 DU dbmake.exe removed debugging message about magazines.
- Chg:0000 BB Abandon non-square maps so that the BattleSet Builder works
halfway decently again.
- Chg:0000 DB commondb.rsr DatabaseVersion fixed. It needed to have a 7-byte
header and only had a 5-byte header. Also fixed 2038 problem.
- Chg:0000 BS Recompiled WestPac, GIUK-USNI, and the four shell battlesets.