User Tools

Site Tools


arma:file_formats:pew

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
arma:file_formats:pew [2011/11/28 12:16] – updated page a bit. snakemanarma:file_formats:pew [2024/08/01 08:06] (current) – links added. snakeman
Line 1: Line 1:
-====== PEW File Format ======+====== ArmA 1 PEW File Format ====== 
 + 
 +[[https://www.pmctactical.org/forum/viewforum.php?f=42|ArmA 1 Forum]], [[:arma|ArmA 1 Home]], [[arma:config|ArmA 1 Config]], [[arma:tools|ArmA 1 Tools]], [[arma:file_formats|ArmA 1 File Formats]], [[arma:missions|ArmA 1 Missions]], [[arma:modeling|ArmA 1 3D Modeling]], [[arma:terrain|ArmA 1 Terrain]], [[arma:texturing|ArmA 1 Texturing]], [[arma:scripting|ArmA 1 Scripting]] 
 + 
 +**ArmA 1** aka Armed Assault (ArmA) 
  
 ====== Introduction ====== ====== Introduction ======
  
-PEW are Visitor's project files. Visitor is BIS tool for creating terrains.+PEW are Visitor's project files. Visitor is bis tool for creating terrains.
  
 Visitor is a GUI tool that interacts with Bulldozer, an inbuilt 'world' viewer inside any Armed Assault engine. Visitor is a GUI tool that interacts with Bulldozer, an inbuilt 'world' viewer inside any Armed Assault engine.
Line 46: Line 51:
     if  (!NoOFPForests)     if  (!NoOFPForests)
     {     {
-    ulong                    nOFPForests;          +    ulong                    nOFPForests;
     OFPForest                OFPForests[[nOFPForests]];     OFPForest                OFPForests[[nOFPForests]];
     }     }
Line 53: Line 58:
     ulong                    NoOfObjects;     ulong                    NoOfObjects;
     Object                   Objects[[NoOfObjects]];     Object                   Objects[[NoOfObjects]];
- +
     ulong                    NoOfLayers;     ulong                    NoOfLayers;
     String                   LayerName;           //"Base"     String                   LayerName;           //"Base"
     Layer                    Layers[[NoOfLayers]] ;     Layer                    Layers[[NoOfLayers]] ;
- +
     if (POSEW60)     if (POSEW60)
     {     {
Line 67: Line 72:
       NamedZone              NamedZones[[nNamedZones]];       NamedZone              NamedZones[[nNamedZones]];
     }     }
- +
     ulong                    nRoadBlocks;     ulong                    nRoadBlocks;
     RoadBlock                RoadBlocks[[nRoadBlocks]];     RoadBlock                RoadBlocks[[nRoadBlocks]];
- +
     if (POSEW60)     if (POSEW60)
     {     {
Line 81: Line 86:
     }     }
     ulong                    nKeyPoints;     ulong                    nKeyPoints;
-    KeyPoint                 KeyPoints[[nKeyPoints]];    +    KeyPoint                 KeyPoints[[nKeyPoints]];
     ulong                    NoOfBackgrounds;     ulong                    NoOfBackgrounds;
     Background               Backgrounds[[NoOfBackgrounds]] ;// not checked for 59     Background               Backgrounds[[NoOfBackgrounds]] ;// not checked for 59
Line 97: Line 102:
  {  {
   char     Signature[[7]];        // "POSEW59" or "POSEW60" note: NOT null terminated   char     Signature[[7]];        // "POSEW59" or "POSEW60" note: NOT null terminated
- +
   ulong    Length;              // of PEW file;   ulong    Length;              // of PEW file;
   ulong    UnknownLong;         // typically 0   ulong    UnknownLong;         // typically 0
Line 139: Line 144:
                                   // 4 Forest                                   // 4 Forest
                                   // 5 Road2 (RoadFlag will be false)                                   // 5 Road2 (RoadFlag will be false)
-      RGBAColor    OutlineColour;  +      RGBAColor    OutlineColour; 
-      RGBAColor    ObjectColour;  +      RGBAColor    ObjectColour;
       double    GeometryBounds[[2]];         // 50.0       double    GeometryBounds[[2]];         // 50.0
       ulong    ModelID;       ulong    ModelID;
Line 146: Line 151:
       double    ResolutionBounds[[2]];         // 50.0       double    ResolutionBounds[[2]];         // 50.0
       XYZTriplet   ResolutionAutoCenterPos;       XYZTriplet   ResolutionAutoCenterPos;
-      shortBool    Generally0x01;   +      shortBool    Generally0x01;
       shortBool    RandomScaleFlag;       shortBool    RandomScaleFlag;
       double    RandomScaleMinMax[[2]];        // 50.0       double    RandomScaleMinMax[[2]];        // 50.0
       shortBool    RandomRotateFlag;       shortBool    RandomRotateFlag;
       double    RandomRotateMinMax[[2]];       // 20.0       double    RandomRotateMinMax[[2]];       // 20.0
-      shortBool    RandomOrientationFlag;     +      shortBool    RandomOrientationFlag;
       double    RanmdomOrientationMinMax[[2]]; // 180.0       double    RanmdomOrientationMinMax[[2]]; // 180.0
       shortBool    RoadFlag;       shortBool    RoadFlag;
-      if (RoadFlag) +      if (RoadFlag)
       {       {
             TransformMatrix RoadNamedSelections; // (LB, PB, LE, PE)             TransformMatrix RoadNamedSelections; // (LB, PB, LE, PE)
Line 161: Line 166:
       ulong            nNamedVectors;               // Usually 0 (zero)       ulong            nNamedVectors;               // Usually 0 (zero)
       NamedVector  NamedVectors[nNamedVectors];       NamedVector  NamedVectors[nNamedVectors];
-      ulong        MarkerType;                 // Rectangular = 0, Elliptical = 1 +      ulong        MarkerType;                 // Rectangular = 0, Elliptical = 1
   }   }
 </code> </code>
Line 241: Line 246:
   {   {
     String       FamilyName;        // &quot;cesta&quot;,&quot;silnice&quot;,etc     String       FamilyName;        // &quot;cesta&quot;,&quot;silnice&quot;,etc
-    RGBA         KeyPartsColour;     +    RGBA         KeyPartsColour; 
-    RGBA         NormalPartsColour; +    RGBA         NormalPartsColour;
     shortBool    FilledLine;        // 0 or 1     shortBool    FilledLine;        // 0 or 1
-    double       MaxAngle;          // 25.0 degrees +    double       MaxAngle;          // 25.0 degrees
     double       MaxBankAngle;      // 5.0 degrees     double       MaxBankAngle;      // 5.0 degrees
     ulong        nStraights;     ulong        nStraights;
Line 262: Line 267:
  
 <code cpp> <code cpp>
-  RoadList     +  RoadList
   {   {
        String      ModelName;      // &quot;cesta25&quot;        String      ModelName;      // &quot;cesta25&quot;
Line 290: Line 295:
 Each of these RoadTypes  (such as asphalt) can have multiple curved, straight, special, and termination p3d models associated with them. Each of these RoadTypes  (such as asphalt) can have multiple curved, straight, special, and termination p3d models associated with them.
  
-Generally speaking, there are +Generally speaking, there are
 <code> <code>
 *3 'straight' models, approximately 6,12, and 25 meters long respectively. *3 'straight' models, approximately 6,12, and 25 meters long respectively.
Line 306: Line 311:
   String    Name;       //kr_asfaltka_asfaltka_t.   String    Name;       //kr_asfaltka_asfaltka_t.
   ushort    Shape;            //1 or 3   ushort    Shape;            //1 or 3
-  RGBA      color;       //FF FF FF FF +  RGBA      color;       //FF FF FF FF
   shortBool CanChangeBankAngle;   shortBool CanChangeBankAngle;
   ulong     ObjectID;   ulong     ObjectID;
Line 346: Line 351:
     XYPair   GridSize; // 256 x 256 eg     XYPair   GridSize; // 256 x 256 eg
     float    Heights[[GridSize]];     float    Heights[[GridSize]];
-    float    BlueEdgeTerrainHeights[[NoOfBlueFloats]]  ; //Always zero values +    float    BlueEdgeTerrainHeights[[NoOfBlueFloats]]  ; //Always zero values
     // NoOfBlueFloats = (GridSize_Y * GridSize_X)/16;     // NoOfBlueFloats = (GridSize_Y * GridSize_X)/16;
     ulong    Always0;     ulong    Always0;
Line 369: Line 374:
         String    InstanceName;          // &quot;minimalStrelPos&quot;         String    InstanceName;          // &quot;minimalStrelPos&quot;
         float     RelativeSurfaceElevation;         float     RelativeSurfaceElevation;
-        RGBA      OutlineColour;  +        RGBA      OutlineColour; 
-        RGBA      ObjectColour;  +        RGBA      ObjectColour;
         ulong     ObjectTemplateID;         ulong     ObjectTemplateID;
       };       };
Line 414: Line 419:
  RoadBlock  RoadBlock
  {  {
-  ShortBool IsPresent; +  ShortBool IsPresent;
   if IsPresent   if IsPresent
   {   {
-  ShortBool Always1;  +  ShortBool Always1; 
-  ulong     Unknown[[12]]; +  ulong     Unknown[[12]];
             /* typical data             /* typical data
-            **00 00 00 00 00  +            **00 00 00 00 00 
-00 00 F0 2C  +00 00 F0 2C 
-46 00 98 23  +46 00 98 23 
-46 C6 6F C6  +46 C6 6F C6 
-42 0E 01 00  +42 0E 01 00 
-00 01 00 00  +00 01 00 00 
-F0 2C 46 00  +F0 2C 46 00 
-98  +98 
-23 46 C6 6F  +23 46 C6 6F 
-C6 42 0E 01  +C6 42 0E 01 
-00 00 4B 00  +00 00 4B 00 
-00 00 00 00  +00 00 00 00 
-00 00 +00 00
             */             */
   ushort    Type;             // 0,1,2,3   ushort    Type;             // 0,1,2,3
   String    RoadFamilyName;   //&quot;hlavni silnice&quot;   String    RoadFamilyName;   //&quot;hlavni silnice&quot;
   String    RoadModelName;    //&quot;kr_silnice_cesta_t&quot;   String    RoadModelName;    //&quot;kr_silnice_cesta_t&quot;
-  RGBA      color;             +  RGBA      color; 
-  ShortBool Always1;  +  ShortBool Always1; 
-  ulong     Count; +  ulong     Count;
   FamilyList FamilyLists[[Count]];   FamilyList FamilyLists[[Count]];
   ulong     Unknown[[27]];   ulong     Unknown[[27]];
             /* typical data             /* typical data
-            **FA D4 30 BF 94 58 08 3D 00 00 C8 C0 00 00 60 C0  +            **FA D4 30 BF 94 58 08 3D 00 00 C8 C0 00 00 60 C0 
-            **00 00 00 00 00 00 48 C1 00 00 60 40 00 00 00 00  +            **00 00 00 00 00 00 48 C1 00 00 60 40 00 00 00 00 
-            **00 00 48 C1 00 00 60 C0 00 00 00 00 00 00 00 00  +            **00 00 48 C1 00 00 60 C0 00 00 00 00 00 00 00 00 
-            **00 00 60 40 00 00 00 00 00 00 00 00 00 00 C8 C0  +            **00 00 60 40 00 00 00 00 00 00 00 00 00 00 C8 C0 
-            **00 00 00 00 00 00 30 C0 00 00 C8 C0 00 00 00 00  +            **00 00 00 00 00 00 30 C0 00 00 C8 C0 00 00 00 00 
-            **00 00 1C C1 04 01 00 00 00 00 00 00 00 00 00 00  +            **00 00 1C C1 04 01 00 00 00 00 00 00 00 00 00 00 
-            **09 00 00 00 0B 80 00 00 04 00 00 00 +            **09 00 00 00 0B 80 00 00 04 00 00 00
             */             */
-  ulong     Count;    +  ulong     Count;
   ModelList ModelLists[[Count]];   ModelList ModelLists[[Count]];
   }   }
Line 485: Line 490:
   String     FamilyName;      //&quot;silnice hlavni silnic\0&quot;   String     FamilyName;      //&quot;silnice hlavni silnic\0&quot;
   ulong      Unknown[[4]];      //Typically 00 00 C8 C0 00 00 C8 C0 00 00 00 00 0E 01 00 00   ulong      Unknown[[4]];      //Typically 00 00 C8 C0 00 00 C8 C0 00 00 00 00 0E 01 00 00
-  RGBA       color[[2]];         +  RGBA       color[[2]];
   ShortBool  Always01;        //01   ShortBool  Always01;        //01
   ulong      buf2[[4]];         // Typically 00 00 00 00 00 00 39 40 00 00 00 00 00 00 24 40   ulong      buf2[[4]];         // Typically 00 00 00 00 00 00 39 40 00 00 00 00 00 00 24 40
Line 495: Line 500:
  
 <code cpp> <code cpp>
-    BlockModel +    BlockModel
     {     {
         ulong    ModelFlag;   // 0x000001 ... 0x00010001         ulong    ModelFlag;   // 0x000001 ... 0x00010001
Line 505: Line 510:
         ulong      unknown[[25]];         ulong      unknown[[25]];
            /*typical data            /*typical data
-           **00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  +           **00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-           **C4 76 C2 3F 0E EB 8A C1 00 00 00 00 BE 00 00 00  +           **C4 76 C2 3F 0E EB 8A C1 00 00 00 00 BE 00 00 00 
-           **CC ED 26 BE CA 0F 12 40 56 30 28 3F 00 00 00 00  +           **CC ED 26 BE CA 0F 12 40 56 30 28 3F 00 00 00 00 
-           **18 CA 04 C1 48 8B 3D C0 00 00 00 00 2D 3D 91 C1  +           **18 CA 04 C1 48 8B 3D C0 00 00 00 00 2D 3D 91 C1 
-           **06 01 C0 40 00 00 00 00 EE 98 84 C1 99 99 91 C0  +           **06 01 C0 40 00 00 00 00 EE 98 84 C1 99 99 91 C0 
-           **00 00 00 00 64 4A 5F 35 99 99 91 40 00 00 00 00  +           **00 00 00 00 64 4A 5F 35 99 99 91 40 00 00 00 00 
-           **64 4A 5F B5 01 00 +           **64 4A 5F B5 01 00
            */            */
         ShortBool  ok; // 0 or 1         ShortBool  ok; // 0 or 1
Line 532: Line 537:
    ulong     nPoints;    ulong     nPoints;
    PointsRectangle    PointsRectangle
-   +   {
        float TopLeft.xy;        float TopLeft.xy;
        float BottomRight.xy;        float BottomRight.xy;
    }[[nPoints/4]];    }[[nPoints/4]];
              /* Typical Data              /* Typical Data
-             **00 00 61 45 00 78 1B 46 00 20 64 45 00 20 19 46  +             **00 00 61 45 00 78 1B 46 00 20 64 45 00 20 19 46 
-             **00 20 64 45 00 78 1B 46 00 40 67 45 00 58 18 46  +             **00 20 64 45 00 78 1B 46 00 40 67 45 00 58 18 46 
-             **00 40 67 45 00 78 1B 46 00 60 6A 45 00 58 18 46  +             **00 40 67 45 00 78 1B 46 00 60 6A 45 00 58 18 46 
-             **00 60 6A 45 00 78 1B 46 00 80 6D 45 00 90 17 46  +             **00 60 6A 45 00 78 1B 46 00 80 6D 45 00 90 17 46 
-             **00 80 6D 45 00 B0 1A 46 00 A0 70 45 00 C8 16 46  +             **00 80 6D 45 00 B0 1A 46 00 A0 70 45 00 C8 16 46 
-             **00 A0 70 45 00 E8 19 46 00 C0 73 45 00 00 16 46 +             **00 A0 70 45 00 E8 19 46 00 C0 73 45 00 00 16 46
              */              */
    ulong     ID;             // 0,1,2,3,4....    ulong     ID;             // 0,1,2,3,4....
Line 563: Line 568:
  KeyPoint  KeyPoint
  {  {
-  LongBool  Always1; +  LongBool  Always1;
   String    ClassName;  //&quot;Noe_Lany&quot;   String    ClassName;  //&quot;Noe_Lany&quot;
   RGBA      AreaColor,OutlineColor;   RGBA      AreaColor,OutlineColor;
   ulong     DisplayStyle;   ulong     DisplayStyle;
-  ShortBool Visible; +  ShortBool Visible;
   float     Offset[[2]];  // map relative   float     Offset[[2]];  // map relative
   float     Size[[2]];    // 250 x 250.0 eg (widht and height)   float     Size[[2]];    // 250 x 250.0 eg (widht and height)
Line 650: Line 655:
      Road = 3,      Road = 3,
      Forest = 4,      Forest = 4,
-     ArtificialAndDefinedInRoad = 5  +     ArtificialAndDefinedInRoad = 5
   }   }
 </code> </code>
Line 666: Line 671:
  
 As of v60 a rarely used sub structure with ObjTemplates. As of v60 a rarely used sub structure with ObjTemplates.
 +
arma/file_formats/pew.1322482608.txt.gz · Last modified: 2011/11/28 12:16 by snakeman

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

All PMC web site download services are temporarily suspended until web site yearly fees have been recovered, want to download addons/mods? Then Support PMC.

If you are grateful for all the work PMC has done in the past 25 years, use Support PMC page.