save files for refresh

png-branch
an 2019-02-09 00:02:52 -05:00
parent 04d53e8d23
commit 69063cc41a
3 changed files with 247 additions and 239 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
* text=auto eol=lf

View File

@ -362,10 +362,8 @@ Example:
## Wad ## ## Wad ##
Wad files are used as a container for many different data formats. The Wad files are used for scenario data, images, and physics files. Here is a
following sub-sections all use the Wad format. listing of all chunks used within them:
### Marathon 2 Scenarios (`.sceA`) ###
| Name | Description | | Name | Description |
| ---- | ----------- | | ---- | ----------- |
@ -390,6 +388,13 @@ following sub-sections all use the Wad format.
| `ShPa` | Not analyzed (shapes) | | `ShPa` | Not analyzed (shapes) |
| `MMLS` | Not analyzed (MML scripts) | | `MMLS` | Not analyzed (MML scripts) |
| `LUAS` | Not analyzed (Lua scripts) | | `LUAS` | Not analyzed (Lua scripts) |
| `FXpx` | Effect definitions |
| `MNpx` | Monster definitions |
| `PRpx` | Player definitions |
| `PXpx` | Physics definitions |
| `WPpx` | Weapon definitions |
| `PICT` | Picture Resource |
| `clut` | Unused(?) |
Map files can be identified by the Minf chunk. Map files can be identified by the Minf chunk.
@ -398,56 +403,13 @@ map (and editor) use. PNTS are plain and have no more information than the
actual position, while EPNT has flags and some extra stuff to help the engine actual position, while EPNT has flags and some extra stuff to help the engine
load quicker (not that it needs it.) load quicker (not that it needs it.)
### Marathon 1 Scenarios (`.scen`) ###
Not analyzed
### Images (`.imgA`, `.imgs`) ###
| Name | Description |
| ---- | ----------- |
| `PICT` | Picture Resource |
| `clut` | Unused(?) |
Images can be identified by the PICT chunk. Images can be identified by the PICT chunk.
### Marathon 2 Physics (`.phyA`) ###
| Name | Description |
| ---- | ----------- |
| `FXpx` | Effect definitions |
| `MNpx` | Monster definitions |
| `PRpx` | Player definitions |
| `PXpx` | Physics definitions |
| `WPpx` | Weapon definitions |
## Marathon 1 Physics (`.phys`) ##
Not analyzed
## Marathon 2 Shapes (`.shpA`) ## ## Marathon 2 Shapes (`.shpA`) ##
Not analyzed The Shapes file is used for storing animation and sprite data. It uses a fixed
format for everything, with sprites sorted into collections along with frames
## Marathon 1 Shapes (`.shps`) ## and sequences.
Not analyzed
## Marathon 2 Sounds (`.sndA`) ##
Not analyzed
## Marathon 1 Sounds (`.sndz`) ##
Not analyzed
## Save Game (`.sgaA`) ##
Not analyzed
## Film (`.filA`) ##
Not analyzed
# STRUCTURES ################################################################## # STRUCTURES ##################################################################
@ -898,7 +860,6 @@ Header Op is 24 bytes.
| u16 | X start | Left | | u16 | X start | Left |
| u16 | Y end | Bottom | | u16 | Y end | Bottom |
| u16 | X end | Right | | u16 | X end | Right |
| 4 bytes | Unused | |
### QuickTime Image ### ### QuickTime Image ###
@ -918,6 +879,31 @@ if matte:
* image data follows * image data follows
* some other bullshit * some other bullshit
## Shapes ##
### Collection Header ###
32 bytes
| Type | Description | Name |
| ---- | ----------- | ---- |
| u16 | Status (TODO: unknown purpose) | Status |
| u16 | Flags (TODO: unknown purpose) | Flags |
| u32 | Offset for lo-res collection | OffsetLo |
| u32 | Length for lo-res collection | LengthLo |
| u32 | Offset for hi-res collection | OffsetHi |
| u32 | Length for hi-res collection | LengthHi |
### Collection Definition ###
544 bytes (no, I'm not kidding)
| Type | Description | Name |
| ---- | ----------- | ---- |
| u16 | Version, not checked by engine (current is 3) | Version |
| u16 | Collection Type | Type |
| 2 bytes | Unused | |
# ENUMERATIONS ################################################################ # ENUMERATIONS ################################################################
Here is a list of names and descriptions for enumerations used throughout this Here is a list of names and descriptions for enumerations used throughout this
@ -998,46 +984,46 @@ exit upon reading them.
| Value | Description | Name | | Value | Description | Name |
| ----- | ----------- | ---- | | ----- | ----------- | ---- |
| 1 | Color mapped bit | Pal1 | | `1` | Color mapped bit | Pal1 |
| 2 | Color mapped dibit | Pal2 | | `2` | Color mapped dibit | Pal2 |
| 4 | Color mapped nibble | Pal4 | | `4` | Color mapped nibble | Pal4 |
| 8 | Color mapped byte | Pal8 | | `8` | Color mapped byte | Pal8 |
| 16 | X1RGB5 | X1RGB5 | | `16` | X1RGB5 | X1RGB5 |
| 32 | RGB8 (if NoPad) or XRGB8 | RGB8 | | `32` | RGB8 (if NoPad) or XRGB8 | RGB8 |
### Pack Type ### ### Pack Type ###
| Value | Description | Name | | Value | Description | Name |
| ----- | ----------- | ---- | | ----- | ----------- | ---- |
| 0 | Always pack | Default | | `0` | Always pack | Default |
| 1 | Never pack | None | | `1` | Never pack | None |
| 2 | Never pack, no padding channel in 32bpp mode | NoPad | | `2` | Never pack, no padding channel in 32bpp mode | NoPad |
| 3 | Only pack in 16bpp mode | RLE16 | | `3` | Only pack in 16bpp mode | RLE16 |
| 4 | Only pack in 32bpp mode, no padding channel | RLE32 | | `4` | Only pack in 32bpp mode, no padding channel | RLE32 |
### Polygon Type ### ### Polygon Type ###
| Value | Description | Permutation | Name | | Value | Description | Permutation | Name |
| ----- | ----------- | ----------- | ---- | | ----- | ----------- | ----------- | ---- |
| 0 | Normal, no effects | None | Normal | | `0` | Normal, no effects | None | Normal |
| 1 | Items may not pass | None | ImpassItem | | `1` | Items may not pass | None | ImpassItem |
| 2 | Monsters may not pass | None | ImpassMons | | `2` | Monsters may not pass | None | ImpassMons |
| 3 | Hill (for King of the Hill) | None | Hill | | `3` | Hill (for King of the Hill) | None | Hill |
| 4 | Base (for Capture The Flag et al) | Team | Base | | `4` | Base (for Capture The Flag et al) | Team | Base |
| 5 | Platform | Plat index | Platform | | `5` | Platform | Plat index | Platform |
| 6 | Triggers light on | Light index | TrigLightOn | | `6` | Triggers light on | Light index | TrigLightOn |
| 7 | Triggers platform on | Plat index | TrigPlatOn | | `7` | Triggers platform on | Plat index | TrigPlatOn |
| 8 | Triggers light off | Poly index | TrigLightOff | | `8` | Triggers light off | Poly index | TrigLightOff |
| 9 | Triggers platform off | Poly index | TrigPlatOff | | `9` | Triggers platform off | Poly index | TrigPlatOff |
| 10 | Teleports to polygon centroid | Poly index | Teleporter | | `10` | Teleports to polygon centroid | Poly index | Teleporter |
| 11 | Zone border | None | ZoneBorder | | `11` | Zone border | None | ZoneBorder |
| 12 | Goal point | None | Goal | | `12` | Goal point | None | Goal |
| 13 | Triggers near-by visible monsters | None | TrigMonsVis | | `13` | Triggers near-by visible monsters | None | TrigMonsVis |
| 14 | Triggers near-by invisible monsters | None | TrigMonsInv | | `14` | Triggers near-by invisible monsters | None | TrigMonsInv |
| 15 | Same as TrigMonsInv | None | TrigMonsDual | | `15` | Same as TrigMonsInv | None | TrigMonsDual |
| 16 | Triggers near-by invisible items | None | TrigItems | | `16` | Triggers near-by invisible items | None | TrigItems |
| 17 | Must be entered for Exploration | None | MustExplore | | `17` | Must be entered for Exploration | None | MustExplore |
| 18 | Teleports to next level if success | None | AutoExit | | `18` | Teleports to next level if success | None | AutoExit |
### Control Panel Type ### ### Control Panel Type ###
@ -1046,25 +1032,25 @@ permutation each one uses.
| Value | Description | Permutation | Name | | Value | Description | Permutation | Name |
| ----- | ----------- | ----------- | ---- | | ----- | ----------- | ----------- | ---- |
| 0 | Oxygen refuel | None | Oxygen | | `0` | Oxygen refuel | None | Oxygen |
| 1 | Health charger | None | Shield | | `1` | Health charger | None | Shield |
| 2 | Health charger (2x) | None | Shield2x | | `2` | Health charger (2x) | None | Shield2x |
| 3 | Health charger (3x) | None | Shield3x | | `3` | Health charger (3x) | None | Shield3x |
| 4 | Light switch | Light index | Light | | `4` | Light switch | Light index | Light |
| 5 | Platform switch | Plat index | Platform | | `5` | Platform switch | Plat index | Platform |
| 6 | Tag switch | Tag or -1 | Tag | | `6` | Tag switch | Tag or -1 | Tag |
| 7 | Save station | None | PatternBuf | | `7` | Save station | None | PatternBuf |
| 8 | Computer terminal | None | Terminal | | `8` | Computer terminal | None | Terminal |
### Side Type ### ### Side Type ###
| Value | Description | Name | | Value | Description | Name |
| ----- | ----------- | ---- | | ----- | ----------- | ---- |
| 0 | First texture is mapped over the whole side | Full | | `0` | First texture is mapped over the whole side | Full |
| 1 | First texture is mapped on the ceiling panel | High | | `1` | First texture is mapped on the ceiling panel | High |
| 2 | First texture is mapped on the floor panel | Low | | `2` | First texture is mapped on the floor panel | Low |
| 3 | Composite texture (Not implemented) | Composite | | `3` | Composite texture (Not implemented) | Composite |
| 4 | First texture for ceiling panel, second for floor | Split | | `4` | First texture for ceiling panel, second for floor | Split |
"Panel" here refers to a pertrusion inbetween two polygons. These would be "Panel" here refers to a pertrusion inbetween two polygons. These would be
mapped to upper/lower textures in Doom for instance. Even the source code for mapped to upper/lower textures in Doom for instance. Even the source code for
@ -1074,47 +1060,47 @@ Marathon 2 itself acknowledges how redundant this enumeration is.
| Value | Description | Name | | Value | Description | Name |
| ----- | ----------- | ---- | | ----- | ----------- | ---- |
| 0 | Monster | | | `0` | Monster | |
| 1 | Object | | | `1` | Object | |
| 2 | Item | | | `2` | Item | |
| 3 | Player | | | `3` | Player | |
| 4 | Goal | | | `4` | Goal | |
| 5 | Sound source (facing is sound volume) | | | `5` | Sound source (facing is sound volume) | |
### Transfer Mode ### ### Transfer Mode ###
| Value | Description | Name | | Value | Description | Name |
| ----- | ----------- | ---- | | ----- | ----------- | ---- |
| 0 | Normal | | | `0` | Normal | |
| 1 | Fade to black | | | `1` | Fade to black | |
| 2 | Invisibility | | | `2` | Invisibility | |
| 3 | Invisibility (subtle) | | | `3` | Invisibility (subtle) | |
| 4 | Pulsate (polygons only) | | | `4` | Pulsate (polygons only) | |
| 5 | Wobble (polygons only) | | | `5` | Wobble (polygons only) | |
| 6 | Wobble (fast, polygons only) | | | `6` | Wobble (fast, polygons only) | |
| 7 | Static | | | `7` | Static | |
| 8 | 50% static | | | `8` | 50% static | |
| 9 | Sky | | | `9` | Sky | |
| 10 | Smear | | | `10` | Smear | |
| 11 | Static (fade out) | | | `11` | Static (fade out) | |
| 12 | Static (pulsating) | | | `12` | Static (pulsating) | |
| 13 | Fold-in | | | `13` | Fold-in | |
| 14 | Fold-out | | | `14` | Fold-out | |
| 15 | Horizontal slide | | | `15` | Horizontal slide | |
| 16 | Horizontal slide (fast) | | | `16` | Horizontal slide (fast) | |
| 17 | Vertical slide | | | `17` | Vertical slide | |
| 18 | Vertical slide (fast) | | | `18` | Vertical slide (fast) | |
| 19 | Wander | | | `19` | Wander | |
| 20 | Wander (fast) | | | `20` | Wander (fast) | |
| 21 | Big sky | | | `21` | Big sky | |
### Light Type ### ### Light Type ###
| Value | Description | Name | | Value | Description | Name |
| ----- | ----------- | ---- | | ----- | ----------- | ---- |
| 0 | Normal light | | | `0` | Normal light | |
| 1 | Strobe light | | | `1` | Strobe light | |
| 2 | Media light | | | `2` | Media light | |
### Wad Version ### ### Wad Version ###
@ -1122,10 +1108,10 @@ Used to determine how the engine loads the Wad file.
| Value | Description | Name | | Value | Description | Name |
| ----- | ----------- | ---- | | ----- | ----------- | ---- |
| 0 | Marathon 1 data (no directory entry) | VerBase | | `0` | Marathon 1 data (no directory entry) | VerBase |
| 1 | Marathon 1 data (has directory entry) | VerDir | | `1` | Marathon 1 data (has directory entry) | VerDir |
| 2 | Marathon 2 data (supports overlays) | VerOver | | `2` | Marathon 2 data (supports overlays) | VerOver |
| 4 | Marathon Infinity data | VerMI | | `4` | Marathon Infinity data | VerMI |
### Data Version ### ### Data Version ###
@ -1133,30 +1119,30 @@ Used to determine how the engine loads map data.
| Value | Description | Name | | Value | Description | Name |
| ----- | ----------- | ---- | | ----- | ----------- | ---- |
| 0 | Marathon 1 data | DataM1 | | `0` | Marathon 1 data | DataM1 |
| 1 | Marathon 2 data | DataM2 | | `1` | Marathon 2 data | DataM2 |
### Terminal Group Type ### ### Terminal Group Type ###
| Value | Description | Permutation | Name | | Value | Description | Permutation | Name |
| ----- | ----------- | ----------- | ---- | | ----- | ----------- | ----------- | ---- |
| 0 | Logon | None | Logon | | `0` | Logon | None | Logon |
| 1 | Unfinished (conditions incomplete) | None | Unfinished | | `1` | Unfinished (conditions incomplete) | None | Unfinished |
| 2 | Success (success condition) | None | Success | | `2` | Success (success condition) | None | Success |
| 3 | Failure (failure condition) | None | Failure | | `3` | Failure (failure condition) | None | Failure |
| 4 | Information (no image attached) | None | Info | | `4` | Information (no image attached) | None | Info |
| 5 | End terminal | None | End | | `5` | End terminal | None | End |
| 6 | Changes level | Level id | TeleInter | | `6` | Changes level | Level id | TeleInter |
| 7 | Teleports to polygon | Polygon id | TeleIntra | | `7` | Teleports to polygon | Polygon id | TeleIntra |
| 8 | Shows goal point | Goal id | Checkpoint | | `8` | Shows goal point | Goal id | Checkpoint |
| 9 | Plays a sound | Sound id | Sound | | `9` | Plays a sound | Sound id | Sound |
| 10 | Movie (not implemented) | Movie id | Movie | | `10` | Movie (not implemented) | Movie id | Movie |
| 11 | Music (not implemented) | Track id | Track | | `11` | Music (not implemented) | Track id | Track |
| 12 | Show image | Pict id | Pict | | `12` | Show image | Pict id | Pict |
| 13 | Logoff | None | Logoff | | `13` | Logoff | None | Logoff |
| 14 | Camera (not implemented) | Object id | Camera | | `14` | Camera (not implemented) | Object id | Camera |
| 15 | Static (TV static effect) | 1/30 secs | Static | | `15` | Static (TV static effect) | 1/30 secs | Static |
| 16 | Activate tag | Tag number | Tag | | `16` | Activate tag | Tag number | Tag |
### Terminal Color ### ### Terminal Color ###
@ -1164,135 +1150,135 @@ These are the default colors. These can be overridden with mods.
| Value | Description | Name | | Value | Description | Name |
| ----- | ----------- | ---- | | ----- | ----------- | ---- |
| 0 | Light Green | Color0 | | `0` | Light Green | Color0 |
| 1 | White | Color1 | | `1` | White | Color1 |
| 2 | Red | Color2 | | `2` | Red | Color2 |
| 3 | Dark Green | Color3 | | `3` | Dark Green | Color3 |
| 4 | Light Blue | Color4 | | `4` | Light Blue | Color4 |
| 5 | Yellow | Color5 | | `5` | Yellow | Color5 |
| 6 | Dark Red | Color6 | | `6` | Dark Red | Color6 |
| 7 | Dark Blue | Color7 | | `7` | Dark Blue | Color7 |
| 8 | No color | Color8 | | `8` | No color | Color8 |
| 9 | No color | Color9 | | `9` | No color | Color9 |
# FLAGS ####################################################################### # FLAGS #######################################################################
### Endpoint Flags ### ### Endpoint Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$0001` | Point belongs to any solid line | Solid | | `0` | Point belongs to any solid line | Solid |
| `$0002` | All polys with this point have the same height | SameHeight | | `1` | All polys with this point have the same height | SameHeight |
| `$0004` | Point does not belong to an un-transparent line | Transparent | | `2` | Point does not belong to an opaque line | Transparent |
Note that the SameHeight flag is set relative to the endpoint's lines. Note that the SameHeight flag is set relative to the endpoint's lines.
### Line Flags ### ### Line Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$0200` | Line has a transparent side | TransSide | | `9` | Line has a transparent side | TransSide |
| `$0400` | Polygons on either side do not have same heights | ElevVar | | `10` | Polygons on either side do not have same heights | ElevVar |
| `$0800` | Differing height between this line's polygons | Elevation | | `11` | Differing height between this line's polygons | Elevation |
| `$1000` | Line shows only sky | Landscape | | `12` | Line shows only sky | Landscape |
| `$2000` | Both sides are see-through | Transparent | | `13` | Both sides are see-through | Transparent |
| `$4000` | Can't be walked through | Solid | | `14` | Can't be walked through | Solid |
### Side Flags ### ### Side Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$0001` | Button is switched | Status | | `0` | Button is switched | Status |
| `$0002` | Control panel | Panel | | `1` | Control panel | Panel |
| `$0004` | Must be switched for Repair | Repair | | `2` | Must be switched for Repair | Repair |
| `$0008` | Switch uses an item (for scripts) | ItemUse | | `3` | Switch uses an item (for scripts) | ItemUse |
| `$0010` | Switch must be 3/4ths or more lit up to use | Lighted | | `4` | Switch must be 3/4ths or more lit up to use | Lighted |
| `$0020` | Projectiles toggle and disable this switch | CanDestroy | | `5` | Projectiles toggle and disable this switch | CanDestroy |
| `$0040` | Switch can only be hit by projectiles | HitOnly | | `6` | Switch can only be hit by projectiles | HitOnly |
| `$0080` | Switch item is optional (for scripts) | ItemOpt | | `7` | Switch item is optional (for scripts) | ItemOpt |
### Polygon Flags ### ### Polygon Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$4000` | TODO | Detached | | `14` | TODO | Detached |
### Map Object Flags ### ### Map Object Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$0001` | Initially invisible (warp-in) | Invisible | | `0` | Initially invisible (warp-in) | Invisible |
| `$0002` | Reversed Z coordinate (from ceiling) | Ceiling | | `1` | Reversed Z coordinate (from ceiling) | Ceiling |
| `$0004` | Can not be activated by sight | Blind | | `2` | Can not be activated by sight | Blind |
| `$0008` | Can not be activated by sounds | Deaf | | `3` | Can not be activated by sounds | Deaf |
| `$0010` | TODO | Floating | | `4` | TODO | Floating |
| `$0020` | Net-game only, only works on items | NetOnly | | `5` | Net-game only, only works on items | NetOnly |
### Mission Flags ### ### Mission Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$0001` | Kill a certain percentage of monsters | Extermination | | `0` | Kill a certain percentage of monsters | Extermination |
| `$0002` | Must explore marked polygons | Exploration | | `1` | Must explore marked polygons | Exploration |
| `$0004` | Must grab marked items | Retrieval | | `2` | Must grab marked items | Retrieval |
| `$0008` | Must flip marked switches | Repair | | `3` | Must flip marked switches | Repair |
| `$0010` | Must keep certain percent of BoBs alive | Rescue | | `4` | Must keep certain percent of BoBs alive | Rescue |
### Environment Flags ### ### Environment Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$0001` | Makes most weapons not work and oxygen depletes | Vacuum | | `0` | Makes most weapons not work and oxygen depletes | Vacuum |
| `$0002` | Motion sensor is fucked | Magnetic | | `1` | Motion sensor is fucked | Magnetic |
| `$0004` | Friendly S'pht, strips items and health | Rebellion | | `2` | Friendly S'pht, strips items and health | Rebellion |
| `$0008` | Low gravity | LowGrav | | `3` | Low gravity | LowGrav |
| `$0010` | Handles glue like Marathon 1 | M1Glue | | `4` | Handles glue like Marathon 1 | M1Glue |
| `$0020` | The floor damages you | LavaFloor | | `5` | The floor damages you | LavaFloor |
| `$0040` | Friendly S'pht | Rebellion2 | | `6` | Friendly S'pht | Rebellion2 |
| `$0080` | Level has music | Music | | `7` | Level has music | Music |
| `$0100` | Terminals stop time (Solo only) | TermPause | | `8` | Terminals stop time (Solo only) | TermPause |
| `$0200` | M1 monster activation limits | M1Monster | | `9` | M1 monster activation limits | M1Monster |
| `$0400` | Weapon pickups on TC, lo-G grenades | M1Weps | | `10` | Weapon pickups on TC, lo-G grenades | M1Weps |
| `$2000` | Net-play map | NetPlay | | `13` | Net-play map | NetPlay |
| `$4000` | Solo map | Solo | | `14` | Solo map | Solo |
### Light Flags ### ### Light Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$0001` | TODO | | | `0` | TODO | |
| `$0002` | TODO | Stateless | | `1` | TODO | Stateless |
### Entry Point Flags ### ### Entry Point Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$0001` | Solo | Solo | | `0` | Solo | Solo |
| `$0002` | Co-op | CoOp | | `1` | Co-op | CoOp |
| `$0004` | Carnage | Carnage | | `2` | Carnage | Carnage |
| `$0008` | Kill The Man With The Ball | KTMWTB | | `3` | Kill The Man With The Ball | KTMWTB |
| `$0010` | King of the Hill | KOTH | | `4` | King of the Hill | KOTH |
| `$0020` | Defense | Defense | | `5` | Defense | Defense |
| `$0040` | Rugby | Rugby | | `6` | Rugby | Rugby |
| `$0080` | Capture The Flag | CTF | | `7` | Capture The Flag | CTF |
### Terminal Flags ### ### Terminal Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$0001` | Text is encoded | Encoded | | `0` | Text is encoded | Encoded |
### CopyBits Flags ### ### CopyBits Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$4000` | Unused | | | `14` | Unused | |
| `$8000` | Is PICT2 | PICT2 | | `15` | Is PICT2 | PICT2 |
### Color Table Flags ### ### Color Table Flags ###
| Value | Description | Name | | Bit | Description | Name |
| ----- | ----------- | ---- | | --- | ----------- | ---- |
| `$8000` | Use automatic device mapping for indices | DeviceMap | | `15` | Use automatic device mapping for indices | DeviceMap |
<!-- EOF --> <!-- EOF -->

21
rustfmt.toml Normal file
View File

@ -0,0 +1,21 @@
binop_separator = "Back"
brace_style = "AlwaysNextLine"
condense_wildcard_suffixes = true
enum_discrim_align_threshold = 40
format_doc_comments = true
format_macro_matchers = true
format_strings = true
imports_indent = "Visual"
indent_style = "Visual"
max_width = 80
merge_imports = true
newline_style = "Unix"
normalize_comments = true
normalize_doc_attributes = true
overflow_delimited_expr = true
reorder_impl_items = true
struct_field_align_threshold = 40
tab_spaces = 3
use_field_init_shorthand = true
use_try_shorthand = true
wrap_comments = true