Wing Commander Toolbox

Discussion in 'Fan Projects & Editing' started by UnnamedCharacter, Feb 26, 2015.

  1. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Another update; this one add support for save games.

    See the first post for the file attachment.
     
    Shades2585 and delMar like this.
  2. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    I decided to rename the project. When I started working on this, I intended to only focus on an API library, hence the name WCLibrary. I no longer think the name is fitting, so I am going with Wing Commander Toolbox (WCToolbox), a set of tools to work on Wing Commander; seems a bit more appropriate, especially if I continue to add or expand functionality. It is also a play on the name WC Workshop which seems fitting as it served as inspiration for this project.

    In any case, here is what’s new for this update:
    • Support for INSTALL data files (reading and writing).
    • Support for FNT data files (reading and writing).
    See the first post for the file attachment.


    Here is the output for the relevant characters in each font.

    fonts.png

    The following screenshot is a very quick test to see if it was possible to include extended characters. In the test, the diacritical marks are not very obvious since the font does not provide a lot of space for them, but it works.

    diacritical-marks.png
     
    delMar likes this.
  3. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: CAMP

    The WCToolbox supports all CAMP.* named files (CAMP.000, 001, 002). These files principally control the flow of the game, the branching of winning and losing series.

    A sample of the output of the WC1 XML Converter:

    Code:
    <CampFile>
      <StellarBackgroundBlock>
        <StellarBackground ImageIndex="2" Rotation="0,0,0" />
        <StellarBackground ImageIndex="3" Rotation="150,30,0" />
        <StellarBackground ImageIndex="-1" Rotation="0,0,0" />
        <StellarBackground ImageIndex="-1" Rotation="0,0,0" />
    ...
      <SeriesBranchBlock>
        <SeriesBranch WingmanPilotIndex="0" CutsceneIndex="-1" MissionsActive="2" SuccessScore="10" SuccessSeriesIndex="2" SuccessShipIndex="2" FailureSeriesIndex="3" FailureShipIndex="0">
          <MissionScoring MilitaryDecorationIndex="0" MilitaryDecorationScore="2000" NavigationPointScoring="2 1 2 1 0 0 0 0 0 0 0 0 0 0 0 0" />
          <MissionScoring MilitaryDecorationIndex="0" MilitaryDecorationScore="50" NavigationPointScoring="1 1 6 1 0 0 0 0 0 0 0 0 0 0 0 0" />
          <MissionScoring MilitaryDecorationIndex="0" MilitaryDecorationScore="0" NavigationPointScoring="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
          <MissionScoring MilitaryDecorationIndex="0" MilitaryDecorationScore="0" NavigationPointScoring="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
        </SeriesBranch>
    ...
      <BarSeatingArrangementBlock>
        <BarSeatingArrangement LeftSeatPilotIndex="5" RightSeatPilotIndex="4" />
        <BarSeatingArrangement LeftSeatPilotIndex="0" RightSeatPilotIndex="1" />
        <BarSeatingArrangement LeftSeatPilotIndex="0" RightSeatPilotIndex="0" />
        <BarSeatingArrangement LeftSeatPilotIndex="0" RightSeatPilotIndex="0" />
    ...
    
    A sample of the output of the WC1 Extractor:

    Code:
    CAMP File
    =========
    
    Stellar Background Block
    ------------------------
    
    Sortie  1: Image:  2; XYZ Rotation:   0,  0,  0
    Sortie  2: Image:  3; XYZ Rotation: 150, 30,  0
    Sortie  3: Image: -1; XYZ Rotation:   0,  0,  0
    Sortie  4: Image: -1; XYZ Rotation:   0,  0,  0
    
    ...
    
    Series Branch Block
    -------------------
    
    Series  1: Wingman: 0; Cutscene: -1; Success Score: 10; Success Series:  2; Success Ship:  2; Failure Series:  3; Failure Ship:  0
        Mission 0: Decoration: 0; Decoration Score: 2000; Navigation Point Scoring: 2,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0
        Mission 1: Decoration: 0; Decoration Score:   50; Navigation Point Scoring: 1,1,6,1,0,0,0,0,0,0,0,0,0,0,0,0
        Mission 2: Decoration: 0; Decoration Score:    0; Navigation Point Scoring: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        Mission 3: Decoration: 0; Decoration Score:    0; Navigation Point Scoring: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    
    ...
    
    Bar Seating Arrangement Block
    -----------------------------
    
    Sortie  1: Left Seat:  5; Right Seat:  4
    Sortie  2: Left Seat:  0; Right Seat:  1
    Sortie  3: Left Seat:  0; Right Seat:  0
    Sortie  4: Left Seat:  0; Right Seat:  0
    
    ...
    
     
  4. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: BRIEFING

    The WCToolbox supports all BRIEFING.* named files (BRIEFING.000, 001, 002). These files contain all the dialog, for briefings and debriefings, as well as all the individual bar conversations.

    A sample of the output of the WC1 XML Converter:

    Code:
    <BriefingFile>
      <FuneralConversationBlock>
        <Conversation>
          <DialogSetting BackgroundIndex="6" ForegroundIndex="20" TextColorIndex="0" Delay="140" />
          <Dialog Commands="" FacialExpressions="RA15,81,01,A15,81,01,A10,81,02," LipSyncText="farwaldipstikp5yulbemisd">Farewell, $C. You'll be missed.</Dialog>
          <DialogSetting BackgroundIndex="6" ForegroundIndex="-2" TextColorIndex="0" Delay="140" />
        </Conversation>
        <Conversation>
          <DialogSetting BackgroundIndex="5" ForegroundIndex="17" TextColorIndex="0" Delay="120" />
          <Dialog Commands="" FacialExpressions="" LipSyncText=""> </Dialog>
          <DialogSetting BackgroundIndex="5" ForegroundIndex="17" TextColorIndex="0" Delay="260" />
          <Dialog Commands="" FacialExpressions="" LipSyncText="">We are gathered here to pay tribute to one of our own, $R $N.</Dialog>
          <DialogSetting BackgroundIndex="5" ForegroundIndex="20" TextColorIndex="0" Delay="95" />
          <Dialog Commands="" FacialExpressions="RA45,81,01,A35,81,01,A50,81,02," LipSyncText="atasalwasadtuluslusapilat">It is always sad to lose a pilot...</Dialog>
          <DialogSetting BackgroundIndex="-2" ForegroundIndex="-1" TextColorIndex="-1" Delay="80" />
          <Dialog Commands="" FacialExpressions="RA45,81,01,A35,81,01,A50,81,02," LipSyncText="butatasaspasaledafacaltwanheasasyangasdipstik">... but it is especially difficult when he is as young as $C.</Dialog>
          <DialogSetting BackgroundIndex="-2" ForegroundIndex="-1" TextColorIndex="-1" Delay="80" />
          <Dialog Commands="" FacialExpressions="RA45,81,01,A35,81,01,A50,81,02," LipSyncText="hedidwatowtevenacanstupruvhamself">He died without even a chance to prove himself.</Dialog>
          <DialogSetting BackgroundIndex="-2" ForegroundIndex="-2" TextColorIndex="-1" Delay="80" />
        </Conversation>
    ...
    
    A sample of the output of the WC1 Extractor:

    Code:
    BRIEFING File
    =============
    
    Funeral Conversation Block
    --------------------------
    
    CONVERSATION  1
    
    Setting  0: Background:  6; Foreground: 20; TextColor:  0; Delay: 140
    Setting  1: Background:  6; Foreground: -2; TextColor:  0; Delay: 140
    
    Dialog  0:  | Farewell, $C. You'll be missed. | farwaldipstikp5yulbemisd | RA15,81,01,A15,81,01,A10,81,02,
    
    CONVERSATION  2
    
    Setting  0: Background:  5; Foreground: 17; TextColor:  0; Delay: 120
    Setting  1: Background:  5; Foreground: 17; TextColor:  0; Delay: 260
    Setting  2: Background:  5; Foreground: 20; TextColor:  0; Delay:  95
    Setting  3: Background: -2; Foreground: -1; TextColor: -1; Delay:  80
    Setting  4: Background: -2; Foreground: -1; TextColor: -1; Delay:  80
    Setting  5: Background: -2; Foreground: -2; TextColor: -1; Delay:  80
    
    Dialog  0:  |  |  |
    Dialog  1:  | We are gathered here to pay tribute to one of our own, $R $N. |  |
    Dialog  2:  | It is always sad to lose a pilot... | atasalwasadtuluslusapilat | RA45,81,01,A35,81,01,A50,81,02,
    Dialog  3:  | ... but it is especially difficult when he is as young as $C. | butatasaspasaledafacaltwanheasasyangasdipstik | RA45,81,01,A35,81,01,A50,81,02,
    Dialog  4:  | He died without even a chance to prove himself. | hedidwatowtevenacanstupruvhamself | RA45,81,01,A35,81,01,A50,81,02,
    
    ...
    
     
  5. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: MODULE

    The WCToolbox supports all MODULE.* named files (MODULE.000, 001, 002). These files contain the mission data, which principally includes the navigation points, including map data, and the location, tactics and other characteristics of friendly and enemy ships.

    A sample of the output of the WC1 XML Converter:

    Code:
    <ModuleFile>
    ...
      <MissionNavigationPointBlock>
        <MissionNavigationPoint>
          <NavigationPoint Name="Tiger's Claw" Format="1" Point="0,0,0" Radius="15000" ShipClasses="8 2" Ships="0 3 4 -1 -1 -1 -1 -1 -1 -1">
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
          </NavigationPoint>
          <NavigationPoint Name="Nav 1" Format="1" Point="30000,-5000,15000" Radius="15000" ShipClasses="10 -1" Ships="5 6 7 -1 -1 -1 -1 -1 -1 -1">
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
          </NavigationPoint>
          <NavigationPoint Name="Nav 2" Format="1" Point="45000,10000,-20000" Radius="20000" ShipClasses="22 -1" Ships="11 -1 -1 -1 -1 -1 -1 -1 -1 -1">
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
          </NavigationPoint>
          <NavigationPoint Name="Nav 3" Format="1" Point="5000,5000,-45000" Radius="20000" ShipClasses="22 9" Ships="10 8 9 -1 -1 -1 -1 -1 -1 -1">
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
            <Trigger Action="-1" NavigationPointIndex="0" />
          </NavigationPoint>
    ...
      <MissionMapPointBlock>
        <MissionMapPoint>
          <MapPoint Format="0" TargetIndex="1">Proceed to Nav Point 1</MapPoint>
          <MapPoint Format="0" TargetIndex="2">Proceed to Nav Point 2</MapPoint>
          <MapPoint Format="0" TargetIndex="3">Proceed to Nav Point 3</MapPoint>
          <MapPoint Format="1" TargetIndex="0">Return to Tiger's Claw</MapPoint>
    ...
      <MissionShipPointBlock>
        <MissionShipPoint>
          <ShipPoint ClassIndex="8" Allegiance="0" LeadShipIndex="-1" OrdersIndex="-1" Location="0,0,0" Orientation="180,0,0" Speed="0" Size="0" PilotCharacteristicsIndex="3" FormationIndex="-1" FormationPositionNumber="0" PrimaryTargetShipIndex="0" SecondaryTargetShipIndex="-1" Unknown1="0" Unknown2="0" Unknown3="3" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="0" Allegiance="0" LeadShipIndex="-1" OrdersIndex="0" Location="0,0,-1500" Orientation="180,0,0" Speed="20" Size="0" PilotCharacteristicsIndex="13" FormationIndex="0" FormationPositionNumber="0" PrimaryTargetShipIndex="0" SecondaryTargetShipIndex="-1" Unknown1="0" Unknown2="0" Unknown3="4" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="0" Allegiance="0" LeadShipIndex="1" OrdersIndex="4" Location="0,0,0" Orientation="180,0,0" Speed="20" Size="0" PilotCharacteristicsIndex="5" FormationIndex="0" FormationPositionNumber="2" PrimaryTargetShipIndex="1" SecondaryTargetShipIndex="1" Unknown1="0" Unknown2="0" Unknown3="3" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="2" Allegiance="0" LeadShipIndex="0" OrdersIndex="3" Location="0,2500,0" Orientation="180,0,0" Speed="10" Size="0" PilotCharacteristicsIndex="2" FormationIndex="1" FormationPositionNumber="0" PrimaryTargetShipIndex="0" SecondaryTargetShipIndex="-1" Unknown1="0" Unknown2="0" Unknown3="3" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="2" Allegiance="0" LeadShipIndex="3" OrdersIndex="4" Location="0,0,0" Orientation="180,0,0" Speed="10" Size="0" PilotCharacteristicsIndex="2" FormationIndex="1" FormationPositionNumber="1" PrimaryTargetShipIndex="3" SecondaryTargetShipIndex="3" Unknown1="0" Unknown2="0" Unknown3="3" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="10" Allegiance="1" LeadShipIndex="-1" OrdersIndex="0" Location="-5000,1000,5000" Orientation="100,0,0" Speed="20" Size="0" PilotCharacteristicsIndex="1" FormationIndex="2" FormationPositionNumber="0" PrimaryTargetShipIndex="3" SecondaryTargetShipIndex="-1" Unknown1="0" Unknown2="0" Unknown3="2" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="10" Allegiance="1" LeadShipIndex="5" OrdersIndex="4" Location="0,0,0" Orientation="100,0,0" Speed="20" Size="0" PilotCharacteristicsIndex="0" FormationIndex="2" FormationPositionNumber="1" PrimaryTargetShipIndex="5" SecondaryTargetShipIndex="5" Unknown1="0" Unknown2="0" Unknown3="1" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="10" Allegiance="1" LeadShipIndex="5" OrdersIndex="4" Location="0,0,0" Orientation="100,0,0" Speed="20" Size="0" PilotCharacteristicsIndex="0" FormationIndex="2" FormationPositionNumber="2" PrimaryTargetShipIndex="5" SecondaryTargetShipIndex="5" Unknown1="0" Unknown2="0" Unknown3="1" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="9" Allegiance="1" LeadShipIndex="-1" OrdersIndex="0" Location="5000,2000,5000" Orientation="80,0,0" Speed="17" Size="0" PilotCharacteristicsIndex="1" FormationIndex="4" FormationPositionNumber="0" PrimaryTargetShipIndex="0" SecondaryTargetShipIndex="-1" Unknown1="0" Unknown2="0" Unknown3="2" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="9" Allegiance="1" LeadShipIndex="8" OrdersIndex="4" Location="0,0,0" Orientation="80,0,0" Speed="17" Size="0" PilotCharacteristicsIndex="0" FormationIndex="4" FormationPositionNumber="1" PrimaryTargetShipIndex="8" SecondaryTargetShipIndex="8" Unknown1="0" Unknown2="0" Unknown3="1" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="22" Allegiance="2" LeadShipIndex="-1" OrdersIndex="-1" Location="-7000,-3000,10000" Orientation="0,0,0" Speed="136" Size="19" PilotCharacteristicsIndex="0" FormationIndex="-1" FormationPositionNumber="0" PrimaryTargetShipIndex="0" SecondaryTargetShipIndex="-1" Unknown1="0" Unknown2="0" Unknown3="1" Unknown4="0" Unknown5="0" Unknown6="0" />
          <ShipPoint ClassIndex="22" Allegiance="2" LeadShipIndex="-1" OrdersIndex="-1" Location="0,-3000,5000" Orientation="0,0,0" Speed="76" Size="29" PilotCharacteristicsIndex="0" FormationIndex="-1" FormationPositionNumber="0" PrimaryTargetShipIndex="0" SecondaryTargetShipIndex="-1" Unknown1="0" Unknown2="0" Unknown3="1" Unknown4="0" Unknown5="0" Unknown6="0" />
    ...
    
    A sample of the output of the WC1 Extractor:

    Code:
    MODULE File
    ===========
    
    ...
    
    Mission Navigation Point Block
    ------------------------------
    
    Sortie  5
    ---------
    Point  0: Name: Tiger's Claw          ; Format: 1; XYZ:       0,      0,      0; Radius: 15000; Triggers: [-1, 0|-1, 0|-1, 0|-1, 0]; Preload: 8,2    ; Ships: 0,3,4,-1,-1,-1,-1,-1,-1,-1
    Point  1: Name: Nav 1                 ; Format: 1; XYZ:   30000,  -5000,  15000; Radius: 15000; Triggers: [-1, 0|-1, 0|-1, 0|-1, 0]; Preload: 10,-1  ; Ships: 5,6,7,-1,-1,-1,-1,-1,-1,-1
    Point  2: Name: Nav 2                 ; Format: 1; XYZ:   45000,  10000, -20000; Radius: 20000; Triggers: [-1, 0|-1, 0|-1, 0|-1, 0]; Preload: 22,-1  ; Ships: 11,-1,-1,-1,-1,-1,-1,-1,-1,-1
    Point  3: Name: Nav 3                 ; Format: 1; XYZ:    5000,   5000, -45000; Radius: 20000; Triggers: [-1, 0|-1, 0|-1, 0|-1, 0]; Preload: 22,9   ; Ships: 10,8,9,-1,-1,-1,-1,-1,-1,-1
    
    ...
    
    Mission Map Point Block
    -----------------------
    
    Sortie  5
    ---------
    Point  0: Format:  0; Target:  1; Text: Proceed to Nav Point 1
    Point  1: Format:  0; Target:  2; Text: Proceed to Nav Point 2
    Point  2: Format:  0; Target:  3; Text: Proceed to Nav Point 3
    Point  3: Format:  1; Target:  0; Text: Return to Tiger's Claw
    
    ...
    
    Mission Ship Point Block
    ------------------------
    
    Sortie  5
    ---------
    Ship  0: Class:  8; Allegiance: 0; Leader: -1; ?: 0; Orders: -1; ?: 0; XYZ:      0,     0,     0; XYZ Rotation:  180,   0,   0; Position: 0; Speed:   0; Size:  0; ?: 3; AI:  3; ?: 0; ?: 0; ?: 0; Target: -1; Formation: -1; Target:  0; 
    Ship  1: Class:  0; Allegiance: 0; Leader: -1; ?: 0; Orders:  0; ?: 0; XYZ:      0,     0, -1500; XYZ Rotation:  180,   0,   0; Position: 0; Speed:  20; Size:  0; ?: 4; AI: 13; ?: 0; ?: 0; ?: 0; Target: -1; Formation:  0; Target:  0; 
    Ship  2: Class:  0; Allegiance: 0; Leader:  1; ?: 0; Orders:  4; ?: 0; XYZ:      0,     0,     0; XYZ Rotation:  180,   0,   0; Position: 2; Speed:  20; Size:  0; ?: 3; AI:  5; ?: 0; ?: 0; ?: 0; Target:  1; Formation:  0; Target:  1; 
    Ship  3: Class:  2; Allegiance: 0; Leader:  0; ?: 0; Orders:  3; ?: 0; XYZ:      0,  2500,     0; XYZ Rotation:  180,   0,   0; Position: 0; Speed:  10; Size:  0; ?: 3; AI:  2; ?: 0; ?: 0; ?: 0; Target: -1; Formation:  1; Target:  0; 
    Ship  4: Class:  2; Allegiance: 0; Leader:  3; ?: 0; Orders:  4; ?: 0; XYZ:      0,     0,     0; XYZ Rotation:  180,   0,   0; Position: 1; Speed:  10; Size:  0; ?: 3; AI:  2; ?: 0; ?: 0; ?: 0; Target:  3; Formation:  1; Target:  3; 
    Ship  5: Class: 10; Allegiance: 1; Leader: -1; ?: 0; Orders:  0; ?: 0; XYZ:  -5000,  1000,  5000; XYZ Rotation:  100,   0,   0; Position: 0; Speed:  20; Size:  0; ?: 2; AI:  1; ?: 0; ?: 0; ?: 0; Target: -1; Formation:  2; Target:  3; 
    Ship  6: Class: 10; Allegiance: 1; Leader:  5; ?: 0; Orders:  4; ?: 0; XYZ:      0,     0,     0; XYZ Rotation:  100,   0,   0; Position: 1; Speed:  20; Size:  0; ?: 1; AI:  0; ?: 0; ?: 0; ?: 0; Target:  5; Formation:  2; Target:  5; 
    Ship  7: Class: 10; Allegiance: 1; Leader:  5; ?: 0; Orders:  4; ?: 0; XYZ:      0,     0,     0; XYZ Rotation:  100,   0,   0; Position: 2; Speed:  20; Size:  0; ?: 1; AI:  0; ?: 0; ?: 0; ?: 0; Target:  5; Formation:  2; Target:  5; 
    Ship  8: Class:  9; Allegiance: 1; Leader: -1; ?: 0; Orders:  0; ?: 0; XYZ:   5000,  2000,  5000; XYZ Rotation:   80,   0,   0; Position: 0; Speed:  17; Size:  0; ?: 2; AI:  1; ?: 0; ?: 0; ?: 0; Target: -1; Formation:  4; Target:  0; 
    Ship  9: Class:  9; Allegiance: 1; Leader:  8; ?: 0; Orders:  4; ?: 0; XYZ:      0,     0,     0; XYZ Rotation:   80,   0,   0; Position: 1; Speed:  17; Size:  0; ?: 1; AI:  0; ?: 0; ?: 0; ?: 0; Target:  8; Formation:  4; Target:  8; 
    Ship 10: Class: 22; Allegiance: 2; Leader: -1; ?: 0; Orders: -1; ?: 0; XYZ:  -7000, -3000, 10000; XYZ Rotation:    0,   0,   0; Position: 0; Speed: 136; Size: 19; ?: 1; AI:  0; ?: 0; ?: 0; ?: 0; Target: -1; Formation: -1; Target:  0; 
    Ship 11: Class: 22; Allegiance: 2; Leader: -1; ?: 0; Orders: -1; ?: 0; XYZ:      0, -3000,  5000; XYZ Rotation:    0,   0,   0; Position: 0; Speed:  76; Size: 29; ?: 1; AI:  0; ?: 0; ?: 0; ?: 0; Target: -1; Formation: -1; Target:  0; 
    
    ...
    
     
  6. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: COMM

    The WCToolbox supports all COMM*.DAT named files (COMMUNIC.DAT, COMMSM2.DAT). These are the in-flight speech of pilots.

    A sample of the output of the WC1 XML Converter:

    Code:
    <CommFile>
      <PilotCommunication>
        <Message>My honor is to obey.</Message>
        <Message>I humbly ask your apologies, but I cannot.</Message>
        <Message>Excuse me commander, I have noticed enemy ships.</Message>
        <Message>Ready to engage, commander.</Message>
        <Message>I regretfully ask for assistance.</Message>
        <Message>I have managed to kill one, Dommo!</Message>
        <Message>Your skill is obvious, I bow to your talents.</Message>
        <Message>It has been an honor! My ancestors await me...</Message>
        <Message>We must leave, commander. There will be other times.</Message>
        <Message>I will report your bravery.  Good luck, $C.</Message>
        <Message>I respectfully request that you attack the enemy.</Message>
      </PilotCommunication>
      <PilotCommunication>
        <Message>You got it boss.</Message>
        <Message>No can do...</Message>
        <Message>$C!  I've got enemy ships on screen!</Message>
        <Message>Let's take out those bogeys...</Message>
        <Message>$C, I'm in trouble!  Lend me a hand!</Message>
        <Message>Yeee hooo!  Got 'im!</Message>
        <Message>Way to go $C; nice shootin'</Message>
        <Message>I'm hit!  I'm breaking up!  The cockpit's cra...</Message>
        <Message>Commander, they're too tough for us!  Take us home!</Message>
        <Message>You gave 'em a run for their money, friend...</Message>
        <Message>Watch it bucko!</Message>
      </PilotCommunication>
    ...
    
    A sample of the output of the WC1 Extractor:

    Code:
    COMM File
    =========
    
    Pilot  0: 
        Message  0: My honor is to obey.
        Message  1: I humbly ask your apologies, but I cannot.
        Message  2: Excuse me commander, I have noticed enemy ships.
        Message  3: Ready to engage, commander.
        Message  4: I regretfully ask for assistance.
        Message  5: I have managed to kill one, Dommo!
        Message  6: Your skill is obvious, I bow to your talents.
        Message  7: It has been an honor! My ancestors await me...
        Message  8: We must leave, commander. There will be other times.
        Message  9: I will report your bravery.  Good luck, $C.
        Message 10: I respectfully request that you attack the enemy.
    
    Pilot  1: 
        Message  0: You got it boss.
        Message  1: No can do...
        Message  2: $C!  I've got enemy ships on screen!
        Message  3: Let's take out those bogeys...
        Message  4: $C, I'm in trouble!  Lend me a hand!
        Message  5: Yeee hooo!  Got 'im!
        Message  6: Way to go $C; nice shootin'
        Message  7: I'm hit!  I'm breaking up!  The cockpit's cra...
        Message  8: Commander, they're too tough for us!  Take us home!
        Message  9: You gave 'em a run for their money, friend...
        Message 10: Watch it bucko!
    
    ...
    
     
  7. Stinger

    Stinger Vice Admiral

    Messages:
    860
    Likes Received:
    118
    Trophy Points:
    29,535
    Great work!
     
  8. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: PAL

    The WCToolbox supports the GAME.PAL file. This is the game color palette.

    A sample of the output of the WC1 XML Converter:

    Code:
    <PalGameFile>
      <ColorMapChunk>
        <Color R="0" G="0" B="0" />
        <Color R="19" G="19" B="19" />
        <Color R="35" G="35" B="35" />
        <Color R="55" G="55" B="55" />
        <Color R="71" G="71" B="71" />
    ...
    
    A sample of the output of the WC1 Extractor:

    Code:
    PAL, GAME File
    ==============
    
    Colors: 256
    
    Color   0: RGB:   0,  0,  0 (#000000)
    Color   1: RGB:  19, 19, 19 (#131313)
    Color   2: RGB:  35, 35, 35 (#232323)
    Color   3: RGB:  55, 55, 55 (#373737)
    Color   4: RGB:  71, 71, 71 (#474747)
    
    ...
    
    GAME.PAL-linear.png
     
  9. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: VGA (TGA, EGA)

    The WCToolbox supports all *.VGA type files (ARROW.VGA, BRIEFING.VGA, etc); there is also reading support for all *.TGA and *.EGA type files. These files contain all purpose images.

    A sample of the output of the WC1 XML Converter:

    Code:
    <VgaFile>
      <ImageBlock>
        <Image Origin="0,127" file="BRIEFING.VGA-ImageBlock000-Image000.gif" />
        <Image Origin="0,127" file="BRIEFING.VGA-ImageBlock000-Image001.gif" />
        <Image Origin="0,127" file="BRIEFING.VGA-ImageBlock000-Image002.gif" />
        <Image Origin="40,0" file="BRIEFING.VGA-ImageBlock000-Image003.gif" />
        <Image Origin="0,127" file="BRIEFING.VGA-ImageBlock000-Image004.gif" />
        <Image Origin="0,127" file="BRIEFING.VGA-ImageBlock000-Image005.gif" />
      </ImageBlock>
      <ImageBlock>
        <Image Origin="7,9" file="BRIEFING.VGA-ImageBlock001-Image000.gif" />
        <Image Origin="8,9" file="BRIEFING.VGA-ImageBlock001-Image001.gif" />
        <Image Origin="8,9" file="BRIEFING.VGA-ImageBlock001-Image002.gif" />
        <Image Origin="8,9" file="BRIEFING.VGA-ImageBlock001-Image003.gif" />
    ...
    
    BRIEFING.VGA-ImageBlock000-Image000.gif BRIEFING.VGA-ImageBlock000-Image001.gif

    A sample of the output of the WC1 Extractor:

    Code:
    VGA File
    ========
    
    Image Block   0
    ---------------
    
    Image   0: Size: 319,128; Origin:   0,127
    Image   1: Size: 320,128; Origin:   0,127
    Image   2: Size:  97,128; Origin:   0,127
    Image   3: Size:  81, 26; Origin:  40,  0
    Image   4: Size: 320,128; Origin:   0,127
    Image   5: Size: 320,128; Origin:   0,127
    
    
    Image Block   1
    ---------------
    
    Image   0: Size:  15, 19; Origin:   7,  9
    Image   1: Size:  17, 19; Origin:   8,  9
    Image   2: Size:  18, 19; Origin:   8,  9
    Image   3: Size:  19, 19; Origin:   8,  9
    
    ...
    
     
  10. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: SHIP

    The WCToolbox supports all SHIP.* named files (SHIP.V04-V21). These files contain images of the external view of capital ships.

    A sample of the output of the WC1 XML Converter:

    Code:
    <VgaFile>
      <ImageBlock>
        <Image Origin="59,52" file="SHIP.V04-ImageBlock000-Image000.gif" />
      </ImageBlock>
      <ImageBlock>
        <Image Origin="57,45" file="SHIP.V04-ImageBlock001-Image000.gif" />
    ...
    
    SHIP.V04-ImageBlock000-Image000.gif SHIP.V04-ImageBlock001-Image000.gif

    A sample of the output of the WC1 Extractor:

    Code:
    SHIP File
    =========
    
    Image Block   0
    ---------------
    
    Image   0: Size: 122,104; Origin:  59, 52
    
    Image Block   1
    ---------------
    
    Image   0: Size: 118, 95; Origin:  57, 45
    
    ...
    
     
  11. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: SHIPTYPE

    The WCToolbox supports all SHIPTYPE.* named files (SHIPTYPE.V00-V29). These files contain images of the external view of fighter ships and the engine exhaust position.

    A sample of the output of the WC1 XML Converter:

    Code:
    <ShipTypeFile>
      <ShipExternalViewImageBlock>
        <Image Origin="33,39" file="SHIPTYPE.V14-ShipExternalViewImageBlock-Image000.gif" />
        <Image Origin="44,21" file="SHIPTYPE.V14-ShipExternalViewImageBlock-Image001.gif" />
        <Image Origin="40,24" file="SHIPTYPE.V14-ShipExternalViewImageBlock-Image002.gif" />
    ...
      <VduOutlineImageBlock>
        <Image Origin="14,20" file="SHIPTYPE.V14-VduOutlineImageBlock-Image000.gif" />
        <Image Origin="14,20" file="SHIPTYPE.V14-VduOutlineImageBlock-Image001.gif" />
        <Image Origin="27,18" file="SHIPTYPE.V14-VduOutlineImageBlock-Image002.gif" />
      </VduOutlineImageBlock>
      <EnginePositionBlock>
        <EnginePosition>
          <EngineExhaust ImageIndex="0" Position="23,-12" Scale="184" Rotation="0" Order="-1" />
          <EngineExhaust ImageIndex="0" Position="24,13" Scale="184" Rotation="0" Order="-1" />
        </EnginePosition>
        <EnginePosition>
          <EngineExhaust ImageIndex="1" Position="14,15" Scale="184" Rotation="90" Order="2" />
          <EngineExhaust ImageIndex="1" Position="-15,15" Scale="184" Rotation="90" Order="2" />
        </EnginePosition>
        <EnginePosition>
          <EngineExhaust ImageIndex="1" Position="-5,19" Scale="184" Rotation="60" Order="2" />
          <EngineExhaust ImageIndex="1" Position="22,11" Scale="184" Rotation="60" Order="2" />
    ...
    
    SHIPTYPE.V14-ShipExternalViewImageBlock-Image000.gif SHIPTYPE.V14-ShipExternalViewImageBlock-Image001.gif

    A sample of the output of the WC1 Extractor:

    Code:
    SHIPTYPE File
    =============
    
    Ship External View Image Block
    ------------------------------
    
    Image   0: Size:  64, 75; Origin:  33, 39
    Image   1: Size:  86, 49; Origin:  44, 21
    Image   2: Size:  82, 54; Origin:  40, 24
    
    ...
    
    VDU Outline Image Block
    -----------------------
    
    Image   0: Size:  30, 41; Origin:  14, 20
    Image   1: Size:  30, 41; Origin:  14, 20
    Image   2: Size:  53, 37; Origin:  27, 18
    
    Engine Position Block
    ---------------------
    
    Image  0: [Exhaust 0: Image: 0; XY Position:  23,-12; Scale: 184; Rotation:   0; Order: -1]; [Exhaust 1: Image: 0; XY Position:  24, 13; Scale: 184; Rotation:   0; Order: -1];
    Image  1: [Exhaust 0: Image: 1; XY Position:  14, 15; Scale: 184; Rotation:  90; Order:  2]; [Exhaust 1: Image: 1; XY Position: -15, 15; Scale: 184; Rotation:  90; Order:  2];
    Image  2: [Exhaust 0: Image: 1; XY Position:  -5, 19; Scale: 184; Rotation:  60; Order:  2]; [Exhaust 1: Image: 1; XY Position:  22, 11; Scale: 184; Rotation:  60; Order:  2];
    
    ...
    
     
  12. Shades2585

    Shades2585 none

    Messages:
    596
    Likes Received:
    22
    Trophy Points:
    26,185
    Great Update! Keep up the great work! :D
     
  13. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: PCSHIP

    The WCToolbox supports all PCSHIP.* named files (PCSHIP.V00-V05). These files principally contain images of the internal view (cockpit) of the player character ship, including all the cockpit component.

    A sample of the output of the WC1 XML Converter:

    Code:
    <PCShipFile>
      <ForwardCockpitViewImageBlock>
        <Image Origin="0,199" file="PCSHIP.V00-ForwardCockpitViewImageBlock-Image000.gif" />
      </ForwardCockpitViewImageBlock>
      <RightCockpitViewImageBlock>
        <Image Origin="0,199" file="PCSHIP.V00-RightCockpitViewImageBlock-Image000.gif" />
    ...
    
    PCSHIP.V00-ForwardCockpitViewImageBlock-Image000.gif PCSHIP.V00-RightCockpitViewImageBlock-Image000.gif

    A sample of the output of the WC1 Extractor:

    Code:
    PCSHIP File
    ===========
    
    Forward Cockpit View Image Block
    --------------------------------
    
    Image   0: Size: 320,200; Origin:   0,199
    
    Right Cockpit View Image Block
    ------------------------------
    
    Image   0: Size: 320,200; Origin:   0,199
    ...
    
     
  14. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: MID

    The WCToolbox supports all *.MID type files (MUSIC.MID). These are the game MIDI music files.

    A sample of the output of the WC1 XML Converter:

    Code:
    <MidFile>
      <MusicBlock>
        <Music file="MUSIC.MID-MusicBlock000-Music.mid" />
      </MusicBlock>
      <MusicBlock>
        <Music file="MUSIC.MID-MusicBlock001-Music.mid" />
    ...
    
    A sample of the output of the WC1 Extractor:

    Code:
    MID File
    ========
    
    Music Block   0
    ---------------
    
    Music: Tracks: 10
    
    Music Block   1
    ---------------
    
    Music: Tracks: 10
    
    ...
    
     
  15. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: WLD

    The WCToolbox supports all *.WLD type files (SAVEGAME.WLD, CRUSADE.WLD). These are the save games, which includes pilot status and game state.

    A sample of the output of the WC1 XML Converter:

    Code:
    <WldFile>
      <SaveGame Name="S1M0">
        <Pilots>
          <Pilot CallSign="SPIRIT" LastName="TANAKA" MilitaryRankIndex="1" Sorties="11" Kills="14" Unknown1="3" Unknown2="1" />
          <Pilot CallSign="HUNTER" LastName="ST.JOHN" MilitaryRankIndex="2" Sorties="25" Kills="32" Unknown1="4" Unknown2="4" />
          <Pilot CallSign="BOSSMAN" LastName="CHEN" MilitaryRankIndex="3" Sorties="35" Kills="37" Unknown1="1" Unknown2="2" />
          <Pilot CallSign="ICEMAN" LastName="CASEY" MilitaryRankIndex="3" Sorties="28" Kills="43" Unknown1="0" Unknown2="1" />
          <Pilot CallSign="ANGEL" LastName="DEVEREAUX" MilitaryRankIndex="2" Sorties="22" Kills="20" Unknown1="0" Unknown2="1" />
          <Pilot CallSign="PALADIN" LastName="TAGGART" MilitaryRankIndex="3" Sorties="42" Kills="34" Unknown1="2" Unknown2="2" />
          <Pilot CallSign="MANIAC" LastName="MARSHALL" MilitaryRankIndex="0" Sorties="5" Kills="6" Unknown1="4" Unknown2="1" />
          <Pilot CallSign="KNIGHT" LastName="KHUMALO" MilitaryRankIndex="2" Sorties="18" Kills="23" Unknown1="3" Unknown2="3" />
          <Pilot CallSign="MAVERICK" LastName="BLAIR" MilitaryRankIndex="0" Sorties="0" Kills="0" Unknown1="0" Unknown2="0" />
        </Pilots>
        <GameState ShipIndex="0" MedalCount="0 0 0 0 0" Ribbons="1 1 0 0 0 0 0 0 0 0 0 0" SeriesIndex="1" MissionIndex="0" SeriesCount="0" SeriesPath="0 0 0 0 0 0 0 0" WingmanStatus="0 0 0 0 0 0 0 0" KilrathiStatus="1 1 1 1" Dateline="2654-110T06:00" EjectionCount="0" PromotionScore="0" MedalScore="0" SeriesScore="0" Unknown="0" />
        <MissionStatePoint>
          <StatePoint Format="-1" TargetIndex="0" Point="0,0,0" Unknown1="0" Unknown2="0" Unknown3="0" Unknown4="0" Unknown5="0" Unknown6="0" />
          <StatePoint Format="0" TargetIndex="0" Point="0,0,0" Unknown1="0" Unknown2="0" Unknown3="0" Unknown4="0" Unknown5="0" Unknown6="0" />
          <StatePoint Format="0" TargetIndex="0" Point="0,0,0" Unknown1="0" Unknown2="0" Unknown3="0" Unknown4="0" Unknown5="0" Unknown6="0" />
    ...
    
    A sample of the output of the WC1 Extractor:

    Code:
    WLD File
    ========
    
    Save 0
    ------
    
    Name: S1M0            ; Enabled: True
    
    PILOTS
    
    # Last Name     Call Sign     Rank Sorties Kills Unknown1 Unknown2
    
    0 TANAKA        SPIRIT           1      11    14        3        1
    1 ST.JOHN       HUNTER           2      25    32        4        4
    2 CHEN          BOSSMAN          3      35    37        1        2
    3 CASEY         ICEMAN           3      28    43        0        1
    4 DEVEREAUX     ANGEL            2      22    20        0        1
    5 TAGGART       PALADIN          3      42    34        2        2
    6 MARSHALL      MANIAC           0       5     6        4        1
    7 KHUMALO       KNIGHT           2      18    23        3        3
    8 BLAIR         MAVERICK         0       0     0        0        0
    
    GAME STATE
    
    Ship index: 0
    
    Medals: Bronze:  0; Silver:  0; Gold:  0; Golden Sun:  0; Terran Valor:  0
    Ribbons: [1,1,0,0,0,0,0,0,0,0,0,0]
    
    Series count: 0; Series path: [0,0,0,0,0,0,0,0]
    
    Sortie: S1M0
    
    Wingman status: W0: 0, W1: 0, W2: 0, W3: 0, W4: 0, W5: 0, W6: 0, W7: 0,
    Kilrathi status: K0: 1, K1: 1, K2: 1, K3: 1,
    
    Dateline: 2654-110T06:00
    
    Ejection count: 0; Promotion score: 0; Medal score: System.Int32[]; Series score: 0; ?: 0
    
    MISSION STATE POINTS
    
    Point  0: ?:    0; ?:    0; ?: 0; Format: -1; TargetIndex:  0; ?: 0; ?:      0; ?:      0; XYZ:       0,      0,      0
    Point  1: ?:    0; ?:    0; ?: 0; Format:  0; TargetIndex:  0; ?: 0; ?:      0; ?:      0; XYZ:       0,      0,      0
    Point  2: ?:    0; ?:    0; ?: 0; Format:  0; TargetIndex:  0; ?: 0; ?:      0; ?:      0; XYZ:       0,      0,      0
    
    ...
    
     
  16. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: INSTALL

    The WCToolbox supports the INSTALL.DAT file. This is an index off all installed game files.

    A sample of the output of the WC1 XML Converter:

    Code:
    <InstallFile>
      <FileEntry Name="DISK.001" Disk="1" Format="7" Identifier="-1" />
      <FileEntry Name="WC.EXE" Disk="1" Format="7" Identifier="0" />
      <FileEntry Name="INSTALL.DAT" Disk="1" Format="7" Identifier="-1" />
      <FileEntry Name="GAME.PAL" Disk="1" Format="7" Identifier="-1" />
      <FileEntry Name="ARROW.VGA" Disk="1" Format="2" Identifier="15" />
    ...
    
    A sample of the output of the WC1 Extractor:

    Code:
    INSTALL File
    ============
    
    Files: 70
    
    File   0: Name: DISK.001    ; Disk: 1, Format: 7; Identifier:  -1
    File   1: Name: WC.EXE      ; Disk: 1, Format: 7; Identifier:   0
    File   2: Name: INSTALL.DAT ; Disk: 1, Format: 7; Identifier:  -1
    File   3: Name: GAME.PAL    ; Disk: 1, Format: 7; Identifier:  -1
    File   4: Name: ARROW.VGA   ; Disk: 1, Format: 2; Identifier:  15
    
    ...
    
     
  17. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: FNT

    The WCToolbox supports all *.FNT type files (FONTS.FNT). These are the game fonts used for the dialog and speech text, and cockpit displays.

    A sample of the output of the WC1 XML Converter:

    Code:
    <FntFile>
      <FontBlock>
        <Font BackgroundPaletteIndex="0" ForegroundPaletteIndex="15">
          <Glyph />
          <Glyph file="FONTS.FNT-FontBlock000-Font-Glyph001.gif" />
    ...
          <Glyph file="FONTS.FNT-FontBlock000-Font-Glyph065.gif" />
          <Glyph file="FONTS.FNT-FontBlock000-Font-Glyph066.gif" />
          <Glyph file="FONTS.FNT-FontBlock000-Font-Glyph067.gif" />
          <Glyph file="FONTS.FNT-FontBlock000-Font-Glyph068.gif" />
          <Glyph file="FONTS.FNT-FontBlock000-Font-Glyph069.gif" />
    ...
    
    FONTS.FNT-FontBlock000-Font-Glyph065.gif FONTS.FNT-FontBlock000-Font-Glyph066.gif FONTS.FNT-FontBlock000-Font-Glyph067.gif FONTS.FNT-FontBlock000-Font-Glyph068.gif FONTS.FNT-FontBlock000-Font-Glyph069.gif

    A sample of the output of the WC1 Extractor:

    Code:
    FNT File
    ========
    
    Font Block   0
    --------------
    
    Height: 11; Glyphs: 256
    
    Glyph   0: Char:  ; Width:  0
    Glyph   1: Char:  ; Width:  1
    
    ...
    
    Glyph  65: Char: A; Width:  9
    Glyph  66: Char: B; Width:  9
    Glyph  67: Char: C; Width:  9
    Glyph  68: Char: D; Width:  9
    Glyph  69: Char: E; Width:  8
    
    ...
    
    FONTS.FNT-Block000.png
     
  18. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Another small update; this one adds support for the INTRO data files. Now the copy protection questions can be customized.

    intro.png

    See the first post for the file attachment.
     
    Last edited: Sep 5, 2015
  19. UnnamedCharacter

    UnnamedCharacter Ensign

    Messages:
    121
    Likes Received:
    106
    Trophy Points:
    2,235
    Data File Format: INTRO

    The WCToolbox supports all INTRO*.DAT named files (INTRO.DAT, INTRO1.DAT). These are the copy protection questions and answers.

    A sample of the output of the WC1 XML Converter:

    Code:
    <IntroFile>
      <CopyProtectionBlock>
        <CopyProtection Question="SECRET 2 PAGE 1: HOW MANY PRIESTESSES ARE IN THE SIVAR CULT?" Answer="9500" />
        <CopyProtection Question="SCIMITAR BLUEPRINTS: WHAT IS THE MAX RANGE OF THE MASS DRIVER CANNON?" Answer="3000" />
        <CopyProtection Question="RAPTOR BLUEPRINTS: WHAT IS THE ESK RATING FOR THE PILUM FF MISSILE?" Answer="9500" />
        <CopyProtection Question="RAPIER BLUEPRINTS: WHAT IS THE VELOCITY OF THE DART DF MISSILE?" Answer="900" />
    ...
    
    A sample of the output of the WC1 Extractor:

    Code:
    INTRO File
    ==========
    
    Copy Protection Block
    ---------------------
    
    Questions: 10
    
    Question: SECRET 2 PAGE 1: HOW MANY PRIESTESSES ARE IN THE SIVAR CULT?
    Answer:  9500
    
    Question: SCIMITAR BLUEPRINTS: WHAT IS THE MAX RANGE OF THE MASS DRIVER CANNON?
    Answer:  3000
    
    Question: RAPTOR BLUEPRINTS: WHAT IS THE ESK RATING FOR THE PILUM FF MISSILE?
    Answer:  9500
    
    Question: RAPIER BLUEPRINTS: WHAT IS THE VELOCITY OF THE DART DF MISSILE?
    Answer:   900
    
    ...
    
     
  20. Shades2585

    Shades2585 none

    Messages:
    596
    Likes Received:
    22
    Trophy Points:
    26,185
    @UnnamedCharacter Do you think you could ever add a wrapper around this so we don't have to run it in the command line and maybe add some buttons to save to PNG or extract and compile? Thanks!

    Keep up the great work! :D
     

Share This Page