mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			845 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			845 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * SiegeInfo.cpp, part of VCMI engine
 | |
|  *
 | |
|  * Authors: listed in file AUTHORS in main folder
 | |
|  *
 | |
|  * License: GNU General Public License v2.0 or later
 | |
|  * Full text of license available in license.txt file, in main folder
 | |
|  *
 | |
|  */
 | |
| #include "StdInc.h"
 | |
| #include "SiegeInfo.h"
 | |
| 
 | |
| 
 | |
| SiegeInfo::SiegeInfo()
 | |
| {
 | |
| 	for(int i = 0; i < wallState.size(); ++i)
 | |
| 	{
 | |
| 		wallState[i] = EWallState::NONE;
 | |
| 	}
 | |
| 	gateState = EGateState::NONE;
 | |
| }
 | |
| 
 | |
| EWallState::EWallState SiegeInfo::applyDamage(EWallState::EWallState state, unsigned int value)
 | |
| {
 | |
| 	if(value == 0)
 | |
| 		return state;
 | |
| 
 | |
| 	switch(applyDamage(state, value - 1))
 | |
| 	{
 | |
| 	case EWallState::INTACT:
 | |
| 		return EWallState::DAMAGED;
 | |
| 	case EWallState::DAMAGED:
 | |
| 		return EWallState::DESTROYED;
 | |
| 	case EWallState::DESTROYED:
 | |
| 		return EWallState::DESTROYED;
 | |
| 	default:
 | |
| 		return EWallState::NONE;
 | |
| 	}
 | |
| }
 |