variant query_value_by_slot(int slot) const { return get_value_by_slot(slot); }
variant playable_custom_object::get_value(const std::string& key) const { if(key.substr(0, 11) == "difficulty_") { return variant(difficulty::from_string(key.substr(11))); } else if(key == "difficulty") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_DIFFICULTY); } else if(key == "can_interact") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_CAN_INTERACT); } else if(key == "underwater_controls") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_UNDERWATER_CONTROLS); } else if(key == "ctrl_mod_key") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_CTRL_MOD_KEY); } else if(key == "ctrl_keys") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_CTRL_KEYS); } else if(key == "ctrl_mice") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_CTRL_MICE); } else if(key == "ctrl_tilt") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_CTRL_TILT); } else if(key == "ctrl_x") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_CTRL_X); } else if(key == "ctrl_y") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_CTRL_Y); } else if(key == "ctrl_reverse_ab") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_CTRL_REVERSE_AB); } else if(key == "control_scheme") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_CONTROL_SCHEME); } for(int n = 0; n < sizeof(ctrl)/sizeof(*ctrl); ++n) { if(key == ctrl[n]) { return variant(control_status(static_cast<controls::CONTROL_ITEM>(n))); } } if(key == "ctrl_user") { return control_status_user(); } if(key == "player") { return variant::from_bool(true); } else if(key == "vertical_look") { return get_value_by_slot(CUSTOM_OBJECT_PLAYER_VERTICAL_LOOK); } return custom_object::get_value(key); }