1 /* 2 * This file is part of the Colobot: Gold Edition source code 3 * Copyright (C) 2001-2020, Daniel Roux, EPSITEC SA & TerranovaTeam 4 * http://epsitec.ch; http://colobot.info; http://github.com/colobot 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 * See the GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, see http://gnu.org/licenses 18 */ 19 20 #pragma once 21 22 23 #include "object/auto/auto.h" 24 25 26 27 enum AutoMushPhase 28 { 29 AMP_WAIT = 1, 30 AMP_SNIF = 2, 31 AMP_ZOOM = 3, 32 AMP_FIRE = 4, 33 AMP_SMOKE = 5, 34 }; 35 36 37 38 class CAutoMush : public CAuto 39 { 40 public: 41 CAutoMush(COldObject* object); 42 ~CAutoMush(); 43 44 void DeleteObject(bool bAll=false) override; 45 46 void Init() override; 47 bool EventProcess(const Event &event) override; 48 Error GetError() override; 49 50 bool Write(CLevelParserLine* line) override; 51 bool Read(CLevelParserLine* line) override; 52 53 protected: 54 bool SearchTarget(); 55 56 protected: 57 AutoMushPhase m_phase = AMP_WAIT; 58 float m_progress = 0.0f; 59 float m_speed = 0.0f; 60 float m_lastParticle = 0.0f; 61 }; 62