Просмотр исходного кода

More complete support of .def format

AlexVinS 8 лет назад
Родитель
Сommit
ce4b206472
1 измененных файлов с 12 добавлено и 9 удалено
  1. 12 9
      client/gui/CAnimation.cpp

+ 12 - 9
client/gui/CAnimation.cpp

@@ -250,14 +250,14 @@ public:
 enum class DefType : uint32_t
 {
 	SPELL = 0x40,
-	UNUSED_1 = 0x41,
+	SPRITE = 0x41,
 	CREATURE = 0x42,
 	MAP = 0x43,
 	MAP_HERO = 0x44,
 	TERRAIN = 0x45,
 	CURSOR = 0x46,
 	INTERFACE = 0x47,
-	UNUSED_2 = 0x48,
+	SPRITE_FRAME = 0x48,
 	BATTLE_HERO = 0x49
 };
 
@@ -329,6 +329,11 @@ CDefFile::CDefFile(std::string Name):
 	case DefType::SPELL:
 		palette[0] = H3Palette[0];
 		break;
+	case DefType::SPRITE:
+	case DefType::SPRITE_FRAME:
+		for(ui32 i= 0; i<8; i++)
+			palette[i] = H3Palette[i];
+		break;
 	case DefType::CREATURE:
 		palette[0] = H3Palette[0];
 		palette[1] = H3Palette[1];
@@ -338,11 +343,6 @@ CDefFile::CDefFile(std::string Name):
 		palette[7] = H3Palette[7];
 		break;
 	case DefType::MAP:
-		palette[0] = H3Palette[0];
-		palette[1] = H3Palette[1];
-		palette[4] = H3Palette[4];
-		//5 = owner flag, handled separately
-		break;
 	case DefType::MAP_HERO:
 		palette[0] = H3Palette[0];
 		palette[1] = H3Palette[1];
@@ -363,10 +363,13 @@ CDefFile::CDefFile(std::string Name):
 		palette[0] = H3Palette[0];
 		palette[1] = H3Palette[1];
 		palette[4] = H3Palette[4];
+		//player colors handled separately
+		//TODO: disallow colorizing other def types
 		break;
 	case DefType::BATTLE_HERO:
-		//TODO:
-		logAnim->error("Unimplemented def type %d in %s", type, Name);
+		palette[0] = H3Palette[0];
+		palette[1] = H3Palette[1];
+		palette[4] = H3Palette[4];
 		break;
 	default:
 		logAnim->error("Unknown def type %d in %s", type, Name);