FrontCliffModifier.cpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. /*
  2. FinalSun/FinalAlert 2 Mission Editor
  3. Copyright (C) 1999-2024 Electronic Arts, Inc.
  4. Authored by Matthias Wagner
  5. This program is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 3 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program. If not, see <https://www.gnu.org/licenses/>.
  15. */
  16. // FrontCliffModifier.cpp: Implementierung der Klasse CFrontCliffModifier.
  17. //
  18. //////////////////////////////////////////////////////////////////////
  19. #include "stdafx.h"
  20. #include "stdafx.h"
  21. #include "FrontCliffModifier.h"
  22. #include <vector>
  23. #include "variables.h"
  24. #ifdef _DEBUG
  25. #undef THIS_FILE
  26. static char THIS_FILE[]=__FILE__;
  27. #define new DEBUG_NEW
  28. #endif
  29. //////////////////////////////////////////////////////////////////////
  30. // Konstruktion/Destruktion
  31. //////////////////////////////////////////////////////////////////////
  32. CFrontCliffModifier::CFrontCliffModifier()
  33. {
  34. }
  35. CFrontCliffModifier::~CFrontCliffModifier()
  36. {
  37. }
  38. void CFrontCliffModifier::ModifyStartPos(DWORD *dwStartPos, BOOL bSmall)
  39. {
  40. if(m_direction==cd_horiz_right) (*dwStartPos)-=1+0*Map->GetIsoSize();
  41. if(m_direction==cd_horiz_left) (*dwStartPos)+=-(1)+Map->GetIsoSize();
  42. if(m_direction==cd_vertic_top) (*dwStartPos)-=-1+0*Map->GetIsoSize();
  43. if(m_direction==cd_vertic_bottom) (*dwStartPos)-=0*Map->GetIsoSize();
  44. if(m_direction==cd_verticdiag_top) (*dwStartPos)+=1+Map->GetIsoSize();
  45. if(m_direction==cd_verticdiag_bottom) (*dwStartPos)+=0-Map->GetIsoSize();
  46. if(m_direction==cd_horizdiag_right) (*dwStartPos)+=1+0*Map->GetIsoSize();
  47. if(m_direction==cd_horizdiag_left) (*dwStartPos)+=0+1*Map->GetIsoSize();
  48. }
  49. void CFrontCliffModifier::ModifyCurrentPos(DWORD *dwPos, BOOL bBeforePlacing, BOOL bSmall)
  50. {
  51. if(!bBeforePlacing)
  52. {
  53. if(!bSmall)
  54. {
  55. if(m_direction==cd_verticdiag_top) (*dwPos)+=0+2*Map->GetIsoSize();
  56. if(m_direction==cd_verticdiag_bottom) (*dwPos)+=0-2*Map->GetIsoSize();
  57. }
  58. else
  59. {
  60. if(m_direction==cd_verticdiag_top) (*dwPos)+=0+2*Map->GetIsoSize();
  61. if(m_direction==cd_verticdiag_bottom) (*dwPos)+=0-2*Map->GetIsoSize();
  62. }
  63. }
  64. else
  65. {
  66. if(bSmall)
  67. {
  68. if(m_direction==cd_verticdiag_top) (*dwPos)+=0-1*Map->GetIsoSize();
  69. if(m_direction==cd_verticdiag_bottom) (*dwPos)+=0+1*Map->GetIsoSize();
  70. }
  71. }
  72. }
  73. CString CFrontCliffModifier::GetDataSection()
  74. {
  75. if(m_bAlternative) return ("CliffFrontDataAlt");
  76. return("CliffFrontData");
  77. }