/* FinalSun/FinalAlert 2 Mission Editor Copyright (C) 1999-2024 Electronic Arts, Inc. Authored by Matthias Wagner This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ // BackCliffModifier.cpp: Implementierung der Klasse CBackCliffModifier. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "stdafx.h" #include "BackCliffModifier.h" #include #include "variables.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion ////////////////////////////////////////////////////////////////////// CBackCliffModifier::CBackCliffModifier() { } CBackCliffModifier::~CBackCliffModifier() { } void CBackCliffModifier::ModifyCurrentPos(DWORD *dwPos, BOOL bBeforePlacing, BOOL bSmall) { if(!bBeforePlacing) { if(m_direction==cd_verticdiag_top) (*dwPos)+=2+0*Map->GetIsoSize(); if(m_direction==cd_verticdiag_bottom) (*dwPos)+=-2+0*Map->GetIsoSize(); } } void CBackCliffModifier::ModifyStartPos(DWORD *dwPos, BOOL bSmall) { if(m_direction==cd_verticdiag_top) (*dwPos)+=1+1*Map->GetIsoSize(); if(m_direction==cd_verticdiag_bottom) (*dwPos)+=-1+0*Map->GetIsoSize(); if(m_direction==cd_horiz_right) (*dwPos)+=0+0*Map->GetIsoSize(); if(m_direction==cd_horiz_left) { int ground=Map->GetFielddataAt(*dwPos)->wGround; (*dwPos)+=0+Map->GetIsoSize(); if(ground==0xFFFF) ground=0; if((*tiledata)[ground].wTileSet==cliffset) { (*dwPos)-=Map->GetIsoSize(); //ModifyStartPos(dwPos, bSmall); } } if(m_direction==cd_vertic_top) { int ground=Map->GetFielddataAt(*dwPos)->wGround; (*dwPos)+=1; if(ground==0xFFFF) ground=0; if((*tiledata)[ground].wTileSet==cliffset) { (*dwPos)-=1; //ModifyStartPos(dwPos, bSmall); } } } CString CBackCliffModifier::GetDataSection() { if(m_bAlternative) return ("CliffBackDataAlt"); return("CliffBackData"); }