Struct game::app::PerMap[][src]

pub struct PerMap {
Show 16 fields pub map: Map, pub draw_map: DrawMap, pub sim: Sim, pub agents: RefCell<AgentCache>, pub current_selection: Option<ID>, pub current_flags: Flags, pub last_warped_from: Option<(Pt2D, f64)>, pub sim_cb: Option<Box<dyn SimCallback>>, pub dirty_from_edits: bool, pub has_modified_trips: bool, pub unedited_map: Option<Map>, pub layer: Option<Box<dyn Layer>>, pub suspended_sim: Option<Sim>, prebaked: Option<(MapName, String, Analytics)>, pub scenario: Option<Scenario>, pub is_secondary: bool,
}
Expand description

All of the state that’s bound to a specific map.

Fields

map: Mapdraw_map: DrawMapsim: Simagents: RefCell<AgentCache>current_selection: Option<ID>current_flags: Flagslast_warped_from: Option<(Pt2D, f64)>sim_cb: Option<Box<dyn SimCallback>>dirty_from_edits: bool

If we ever left edit mode and resumed without restarting from midnight, this is true.

has_modified_trips: bool

Any ScenarioModifiers in effect?

unedited_map: Option<Map>

If the map has been edited, store the unedited version here.

layer: Option<Box<dyn Layer>>suspended_sim: Option<Sim>

Only filled out in edit mode. Stored here once to avoid lots of clones. Used for preview.

prebaked: Option<(MapName, String, Analytics)>

Only exists in some gameplay modes. Must be carefully reset otherwise. Has the map and scenario name too.

scenario: Option<Scenario>

The most recent Scenario loaded from a file. Don’t depend on it always matching the current gameplay mode; always verify the name matches what’s needed.

Storing this may cost some memory, but otherwise resetting to midnight would require loading it again from a file. This is particularly painful on the web!

is_secondary: bool

Is this the original “secondary” state, loaded via –diff?

Implementations

Returns whatever was there

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.