Platform
Library to edit LucasArts *.TIE mission files for XW95, TIE95, XvT and XWA
Install / Use
/learn @MikeG621/PlatformREADME
Idmr.Platform.dll
Author: Michael Gaisser
Contributors:
Library for editing LucasArts *.XWI and *.TIE mission files for Xwing95, TIE95, XvT and XWA.
Latest Release
v7.3, 14 Feb 2026
- (TIE) Briefing Officer questions now include ability to control facial expressions.
- Note: currently this is setup to handle a "per question" basis, though it should technically be possible to control on a "per page" basis.
- (TIE) Added
QuestionCondition.Always, renamedQuestionCondition.Noneto.Never, and deletedQuestionType.None. BREAKING CHANGE
Additional Information
Dependencies
- Idmr.Common (v1.3 or later)
Mission*.txt files contain file structure information per platform.
Programmer's reference can be found in the help file.
Version History
v7.2, 09 Mar 2025
- (TIE, XvT) Missions with too many Messages will now load, though the excess will be lost. [YOGEME#120]
- Note: Does not apply to XWA due to Messages being valid Trigger inputs, so simply deleting can break the mission.
v7.1, 02 Feb 2025
- (TIE) "Board to Destroy Cargo" now "Board with no Effect". [YOGEME#117]
- (XWA) Defect order text now includes IFF. [YOGEME#113]
- (Strings) MeshType added.
- (XWA) Fixes in the Order Var labels.
v7.0, 06 Oct 2024
- Format spec for XWA implemented, includes some backflow into TIE and XvT.
- This means all XWA Unknowns are defined; many that were left were editor-use only or Unused.
- Not all editor-use properties are exposed.
- Various things renamed. BREAKING CHANGE
- ArrDep mothership properties renamed, the
*Methodbools are now*ViaMothershipor*MothershipUsedper proper boolean naming convention.
- Waypoint refactor. BREAKING CHANGE
- BaseWaypoint renamed to Waypoint, no longer abstract.
- Xwa.FlightGroup.Waypoint renamed to XwaWaypoint.
- Xwing, TIE, and XvT now use Waypoint (formerly BaseWaypoint) directly. Previously derived classes deleted.
Clone()added.
- (TIE) Added Questions.QuestionType and .QuestionCondition enums, PostTrigger and PostTrigType types changed. BREAKING CHANGE
- (Xwing) GetTIECraftType now returns
byte. - (Xwing) ArrDep
*Hyperspacerenamed to*ViaHyperspaceand changed tobool. - (Xwing) Added
FlightGroup.CommandListenum - (Briefing) EventParameters now a singleton class,
this[]made private in lieu ofGetCount(). BREAKING CHANGE - (Briefing) Deleted
EventParameterCount, since it's redundant withGetCount(). - (Briefing)
ConvertTicksToSecondsandConvertSecondsToTicksfunctions added. - (Briefing)
Eventsparameter now a collection newEventclass objects instead ofshort[]. BREAKING CHANGE- This causes many changes throughout. Most of the work is now done within the collection or event itself without requiring a lot of array manipulation.
- (TIE-XWA)
BaseFlightGroup.Difficultychanged to newDifficultiesenum. - (Xwing Briefing) Couple internal changes around event conversion.
short[] _eventMappernowEventMap[] _eventMaps.short getEventMapperIndex()nowEventMap getEventMapper.
- (XWA) The TrimEnd fix from v5.0 reapplied and expanded throughout.
v6.1, 08 Dec 2023
- (Converter) Added TieToXvt( ), TieToBop( ), TieToXvtBop( ), XvtBopToXwa( ), TieToXwa( ) upgrade paths
- (Converter) XWA orders convert times and craft type to/from TIE and XvT
- (Converter) XvT to XWA Triggers adjust craft type
- (Converter) Added Countermeasures, ExplosionTime, GlobalUnit and Optionals to Xwa to Xvt Flightgroups
- (Xwing) Fixed up FlightGroup.WaypointIndex
- (TIE) Added FlightGroup.Order.CommandList, Mission.Trigger.TypeList, .AmountList and .ConditionList enums
- (XvT) Briefing EventQuantityLimit corrected to 200
- (XvT) Order and Trigger operators convert time to XWA properly
- (XvT) Added FlightGroup.Order.CommandList, Mission.Trigger.TypeList, .AmountList and .ConditionList enums
- (XWA) Added FlightGroup.Order.CommandList, Mission.Trigger.TypeList, .AmountList and .ConditionList enums
- (XWA) Fixed the time display for "Before Time" trigger/order target type text
- (XWA) Mission.GetDelaySeconds( ) now static BREAKING CHANGE
v6.0, 27 Oct 2023
- (XWA) FG.Designation Unknown 0x14 renamed to "HYP from Any Region" [YOGEME#91]
- (XWA) Arr/Dep Method1 changed to byte to handle value of 2, "HYP to region of mothership" BREAKING CHANGE
v5.8.1, 14 Oct 2023
v5.8, 04 Aug 2023
- (BaseBriefing) New "Skip Marker" event, for TIE and XvT
- (XWA) Region references in Triggers and Orders prepped for string replacement similar to FGs and Teams [YOGEME#82]
v5.7.5, 16 Jan 2023
- (XWA) Fixed Message reading after length increased in 5.7.3
- Updates for TIE. Deleted items are those confirmed to have zero effect in the exectuable. [Issue #12]
- "Captured on Ejection" and "Secret Goals" removed
- Trigger "Unknown (arrive?)" now "cannon subsystem disabled"
- Trigger Type "Craft When" fixed
- Trigger Type "Misc" now "Adjusted AI Skill", added "Status" and "All Craft" types to match XvT
- Status "No Lasers" now "No Turrets", everything past "Hyperdrive Added" deleted
- Orders after "Board to Repair" deleted
v5.7.4, 27 Aug 2022
- (XxT) Briefing TicksPerSecond updated to 21 (0x15) instead of 20.
v5.7.3, 19 Jun 2022
- (XWA) Message length limit increased to 68.
v5.7.2, 25 Feb 2022
- (XWA) Added missing Squadron logo options in Mission.LogoEnum
v5.7.1, 08 Feb 2022
- (XWA) Message Trigger And/Or read now checks for 1 instead of any odd value (JB)
v5.7, 27 Jan 2022
- More work from Random Starfighter
- (TIE) New ctors for FG.Order, Mission Trigger
- (XvT) ctors added last rev now call the blanks prior to working
- (XvT) Strings.OrderDesignation added
- (XWA) New ctors for FG.Goal, FG Order, FG.Waypoint, Mission.Trigger
- (XWA) Fixed a Message.OriginatingFG issue during deletes
- (Xwing.Strings) Formation fixed, first is "Double Vic" and last two are Undefined.
v5.6, 03 Jan 2022
- (XvT) New constructors for FG.Goal, FG.Order and Mission.Trigger (JB)
v5.5.1, 29 Nov 2021
- (XWA.Strings) Removed "Not Identified" from Status
v5.5, 01 Aug 2021
- Some fixes from RandomStarfighter
- (All) SS Patrol and SS Await Return order strings now show target info
- (XWA) Hyper to Region order text updated with token
- (XWA) Fixed some CraftType errors in Order and Trigger strings
v5.4, 04 Apr 2021
- (Converter) FG Goal amounts fixed when converting from XW [YOGEME#55] (JB)
- (Converter) Fixed an exception message
v5.3, 28 Mar 2021
- Several items around X-wing Briefing conversions, most related to YOGEME#51 and YOGEME#53
- (Converter) Fixed Description, since it wasn't always splitting out hints properly
- (Converter) Removed auto creation of Page Break before ClearText
- (Converter) Removed the MoveMap multiplier in XW-XWA
- (Converter) Skip over porting "None" events
- (XW) ClearText event now correctly maps to Page Break, v5.2 WaitForClick conversion removed
v5.2 - 24 Mar 2021
- (XW) WaitForClick briefing event wasn't converting to Page Break, causing failures after mission conversions [YOGEME#51]
v5.1 - 15 Mar 2021
- (XWA) Trigger And/Or values now read XWA's method of (value & 1) = TRUE. Still only writes 0/1 [Related to YOGEME#48]
v5.0 - 10 Oct 2020
- (XWA) Changed Trim to TrimEnd for craft Name and Cargos during load, as there's the
potential for a leading
'\0'which would keep the rest of the string - Mostly XvT-related updates by Random Starfighter BREAKING CHANGES
- Mission.RndSeed discovered
- FlightGroup.Unknown2 is now StopArrivingWhen enum
- FlightGroup.Unknown3 is now RandomArrivalDelayMinutes
- FlightGroup.Unknown4 is now RandomArrivalDelaySeconds
- FG Goals discovered to have an array of Enabled values, not just the one followed by a Team value (which happened to just work for SP missions). Consumes Unk10-15.
- Documentation updates to Mission_XvT.txt for some of the finer workings of some triggers and conditions
- (XWA) Global Group references in Orders and Triggers prepped for string replacement, similar to FGs and Teams.
v4.0 - 09 Aug 2020
Many of these are BREAKING CHANGES
- A lot of arrays and such were changed to use auto-properties, many of them with private set
- A lot of other arrays and objects were set to
readonly - (TIE.Flightgroup) PermaDeath changed to
bool - (TIE.Strings) IFF numbers removed from defaults
- (XWA.Mission) Iffs renamed to IFFs
- (XWA.Mission.Trigger) IFF substitution implemented
- (Xwing.Briefing) IsVisible( ) removed
- (Xwing.Briefing) EventCount( ) removed
- (Xwing.Briefing) Visible renamed to IsVisible
- (Xwing.Briefing)
publicfields have PascalCase applied - (Xwing.Briefing) EventM
