diff --git a/MarathonData.md b/MarathonData.md index ecab614..9277a3d 100644 --- a/MarathonData.md +++ b/MarathonData.md @@ -2150,19 +2150,29 @@ If `DataVersion` is `DataM1`, then `ItemOpt` must be set by the client. ### Mission Flags ### -| Name | Bit | -| ---- | --- | -| `Extermination`| `0` | -| `Exploration` | `1` | -| `Retrieval` | `2` | -| `Repair` | `3` | -| `Rescue` | `4` | +| Name | Bit | +| ---- | --- | +| `Extermination` | `0` | +| `Exploration` | `1` | +| `Retrieval` | `2` | +| `Repair` | `3` | +| `Rescue` | `4` | +| `M1Exploration` | `5` | +| `M1Rescue` | `6` | +| `M1Repair` | `7` | -- `Extermination` means you must kill a certain percentage of monsters. +- `Extermination` means you must kill all monsters on the map, with an error +threshold of 8 alien enemies maximum. - `Exploration` means you must explore marked polygons. - `Retrieval` means you must grab marked items. - `Repair` means you must flip marked switches. -- `Rescue` means you must keep a certain percentage of BoBs alive. +- `Rescue` means you must keep 50% of BoBs alive. +- `M1Exploration` is the same as `Exploration` except you only need to look at +each marked polygon, not actually enter them. +- `M1Rescue` is the same as `Rescue`. Since this is an internal flag, all it +actually does is change which monster class it checks. +- `M1Repair` is the same as `Repair`, except it only requires that the last +switch (by side index) be switched to succeed. ### Environment Flags ### diff --git a/source/tycho/data/tycho.xml b/source/tycho/data/tycho.xml index 5123030..0a0a75c 100644 --- a/source/tycho/data/tycho.xml +++ b/source/tycho/data/tycho.xml @@ -76,6 +76,853 @@ Author: Alison Sanderson + + 65535 + 1 + 10 + + + False + 5 + Map Properties + + + + + + True + False + vertical + 5 + + + True + False + 0 + none + + + True + False + 12 + + + True + True + The name of the map. Unicode symbols that are supported by the Mac OS Roman encoding are converted automatically when saved. + + + + + + + True + False + Map Name + + + + + False + True + 0 + + + + + True + False + 5 + + + True + False + vertical + 5 + True + + + True + False + 0 + none + + + True + False + 0 + 0 + 0 + 12 + + + True + False + The texture collection to use for the map. This is one of five bitmap collections stored in the Shapes file. + 0 + + Water + Lava + Sewage + Jjaro + Pfhor + + + + + + + + True + False + Texture Set + + + + + False + True + 0 + + + + + True + False + 0 + none + + + True + False + 0 + 0 + 0 + 12 + + + True + False + The sky to display on sides which are marked as "Landscape." This is the sole bitmap of one of four collections in the Shapes file. + 0 + + Lh'owon Day + Lh'owon Night + Moon + Space + + + + + + + + True + False + Landscape + + + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + These flags mark which game modes this map can be used in. + 0 + in + + + True + False + 12 + + + True + False + + + Co-op + True + True + False + The map can be played in multi-player co-operative. + True + + + 0 + 1 + + + + + Solo + True + True + False + The map can be played in single-player. + True + + + 0 + 0 + + + + + Carnage + True + True + False + The map can be played in multi-player Carnage. + True + + + 0 + 2 + + + + + KTMWTB + True + True + False + The map can be played in multi-player Kill The Man With The Ball + True + + + 0 + 3 + + + + + King Of The Hill + True + True + False + The map can be played in multi-player King of the Hill. + True + + + 1 + 0 + + + + + Defense + True + True + False + The map can be played in multi-player Defense. + True + + + 1 + 1 + + + + + Rugby + True + True + False + The map can be played in multi-player Rugby. + True + + + 1 + 2 + + + + + Capture The Flag + True + True + False + The map can be played in multi-player Capture The Flag. + True + + + 1 + 3 + + + + + + + + + True + False + Entry Flags + + + + + True + True + 1 + + + + + True + True + 1 + + + + + True + False + 10 + + + True + False + These flags are used to determine what the player must do to get success conditions in computer terminals. + 0 + in + + + True + False + 12 + + + True + False + vertical + True + + + Extermination + True + True + False + Player must kill all monsters on the map, with an error threshold of 8 aliens maximum. + True + + + False + True + 0 + + + + + Exploration + True + True + False + Player must explore all marked polygons. + True + + + False + True + 1 + + + + + Retrieval + True + True + False + Player must grab all items marked items. + True + + + False + True + 2 + + + + + Repair + True + True + False + Player must flip all marked switches. + True + + + False + True + 3 + + + + + Rescue + True + True + False + Player must keep 50% or more civilians alive. + True + + + False + True + 4 + + + + + + + + + True + False + Mission Flags + + + + + True + True + 0 + + + + + True + False + These flags are used to enable various environmental effects. + 0 + in + + + True + False + 12 + + + True + False + vertical + + + Vacuum + True + True + False + Most weapons will not work, and the oxygen bar will deplete. + True + + + False + True + 0 + + + + + Magnetic + True + True + False + The motion sensor will behave erratically. + True + + + False + True + 1 + + + + + Rebellion + True + True + False + Items and health will be stripped, and S'pht enemies will become friendly. + True + + + False + True + 2 + + + + + Low Gravity + True + True + False + Gravity will be halved. + True + + + False + True + 3 + + + + + + + + + True + False + Environment Flags + + + + + True + True + 1 + + + + + False + True + 2 + + + + + True + False + 0 + in + + + True + False + 5 + 5 + 5 + + + True + False + vertical + 5 + + + True + False + 0 + none + + + True + False + 0 + 0 + 0 + 0 + 12 + + + True + True + This field is unused and must be either 0 or 1. It used to be used to give different physics to the map editor and low gravity before it was made into an environment flag. + 0 + True + adj-phys-id + True + True + True + + + + + + + True + False + Physics ID + + + + + False + True + 0 + + + + + True + False + 10 + + + True + False + These flags were added by Aleph One but are hidden and probably not meant to be used. + 0 + in + + + True + False + 12 + + + True + False + vertical + + + M1 Exploration + True + True + False + The same as Exploration, but you only need to look at each marked polygon, not actually walk in them. + True + + + False + True + 0 + + + + + M1 Rescue + True + True + False + The same as Rescue, but uses the Marathon 1 class numbers. + True + + + False + True + 1 + + + + + M1 Repair + True + True + False + The same as Repair, except it only requires that the last switch (by side index) be switched to succeed. + True + + + False + True + 2 + + + + + + + + + True + False + Hidden Mission Flags + + + + + True + True + 0 + + + + + True + False + These flags were added by Aleph One but are hidden and probably not meant to be used. + 0 + in + + + True + False + 12 + + + True + False + vertical + + + Marathon 1 Glue + True + True + False + Glue handles like Marathon 1. + True + + + False + True + 0 + + + + + Lava Floor + True + True + False + The floor damages you. + True + + + False + True + 1 + + + + + Rebellion (No strip) + True + True + False + The same as Rebellion, but your items and health aren't stripped. + True + + + False + True + 2 + + + + + Music + True + True + False + The map has Marathon 1-style music. + True + + + False + True + 3 + + + + + Terminals Stop Time + True + True + False + Terminals will pause the game in Solo. + True + + + False + True + 4 + + + + + M1 Monster Limits + True + True + False + Sets the monster activation limits to Marathon 1's. + True + + + False + True + 5 + + + + + M1 Weapon Differences + True + True + False + Doubles weapon pickups on Total Carnage and makes grenades low-gravity. + True + + + False + True + 6 + + + + + + + + + True + False + Hidden Environment Flags + + + + + True + True + 1 + + + + + False + True + 1 + + + + + + + + + True + False + Advanced Options (Use at your own peril) + + + + + False + True + 3 + + + + + True False @@ -330,6 +1177,14 @@ Author: Alison Sanderson True + + + True + False + Show Map _Properties + True + + diff --git a/source/tycho/main.rs b/source/tycho/main.rs index 47e8951..efaea64 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -61,6 +61,11 @@ fn run_app(app: >k::Application) win.connect_delete_event(hide_on_delete); btn.connect_activate(move |_| win.show_all()); + let btn: gtk::MenuItem = get_obj(b, "btn-show-map-prop"); + let win: gtk::Window = get_obj(b, "win-map-prop"); + win.connect_delete_event(hide_on_delete); + btn.connect_activate(move |_| win.show_all()); + mk_draw_area(b); let win: gtk::AboutDialog = get_obj(b, "win-about");