2026-02-02 22:26:41 +08:00
|
|
|
#pragma once
|
|
|
|
|
#include "../Rule.hpp"
|
|
|
|
|
|
2026-03-03 17:11:30 +08:00
|
|
|
namespace BMapInspector::Ruleset {
|
2026-02-04 17:03:53 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief YYC12345 Rule 1
|
|
|
|
|
* @details
|
|
|
|
|
* The object grouped into "Phys_FloorRails" should only be rails, otherwise their meshes' UV will be smooth.
|
|
|
|
|
* Additionally, these smooth UV meshes will also affect those objects refering them.
|
|
|
|
|
*/
|
2026-03-03 17:11:30 +08:00
|
|
|
class YYCRule1 : public Rule::IRule {
|
2026-02-04 17:03:53 +08:00
|
|
|
public:
|
|
|
|
|
YYCRule1();
|
2026-02-04 20:46:04 +08:00
|
|
|
virtual ~YYCRule1();
|
2026-02-04 17:03:53 +08:00
|
|
|
YYCC_DELETE_COPY_MOVE(YYCRule1)
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
std::u8string_view GetRuleName() const override;
|
|
|
|
|
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
|
|
|
|
|
};
|
|
|
|
|
|
2026-02-04 20:46:04 +08:00
|
|
|
/**
|
|
|
|
|
* @brief YYC12345 Rule 2
|
|
|
|
|
* @details
|
|
|
|
|
* The object grouped into physicalization group should not have isolated vertex,
|
|
|
|
|
* otherwise it will fail to be physicalized.
|
|
|
|
|
*/
|
2026-03-03 17:11:30 +08:00
|
|
|
class YYCRule2 : public Rule::IRule {
|
2026-02-04 20:46:04 +08:00
|
|
|
public:
|
|
|
|
|
YYCRule2();
|
|
|
|
|
virtual ~YYCRule2();
|
|
|
|
|
YYCC_DELETE_COPY_MOVE(YYCRule2)
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
std::u8string_view GetRuleName() const override;
|
|
|
|
|
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
|
|
|
|
|
};
|
|
|
|
|
|
2026-03-02 10:49:24 +08:00
|
|
|
/**
|
|
|
|
|
* @brief YYC12345 Rule 3
|
|
|
|
|
* @details
|
|
|
|
|
* Exactly same mesh, material and texture can be merged.
|
|
|
|
|
*/
|
2026-03-03 17:11:30 +08:00
|
|
|
class YYCRule3 : public Rule::IRule {
|
2026-03-02 10:49:24 +08:00
|
|
|
public:
|
|
|
|
|
YYCRule3();
|
|
|
|
|
virtual ~YYCRule3();
|
|
|
|
|
YYCC_DELETE_COPY_MOVE(YYCRule3)
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
std::u8string_view GetRuleName() const override;
|
|
|
|
|
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
|
|
|
|
|
};
|
|
|
|
|
|
2026-03-03 14:59:43 +08:00
|
|
|
/**
|
|
|
|
|
* @brief YYC12345 Rule 4
|
|
|
|
|
* @details
|
2026-03-04 11:01:14 +08:00
|
|
|
* Check the video format for Ballance and user-defined texture respectively.
|
|
|
|
|
* Report if there is non-vanilla Ballance settings.
|
2026-03-03 14:59:43 +08:00
|
|
|
*/
|
2026-03-03 17:11:30 +08:00
|
|
|
class YYCRule4 : public Rule::IRule {
|
2026-03-03 14:59:43 +08:00
|
|
|
public:
|
|
|
|
|
YYCRule4();
|
|
|
|
|
virtual ~YYCRule4();
|
|
|
|
|
YYCC_DELETE_COPY_MOVE(YYCRule4)
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
std::u8string_view GetRuleName() const override;
|
|
|
|
|
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
|
|
|
|
|
};
|
|
|
|
|
|
2026-03-04 11:01:14 +08:00
|
|
|
/**
|
|
|
|
|
* @brief YYC12345 Rule 5
|
|
|
|
|
* @details
|
|
|
|
|
* Check the save options for Ballance and user-defined texture respectively
|
|
|
|
|
* for reducing map size and avoid ambiguity.
|
|
|
|
|
*/
|
|
|
|
|
class YYCRule5 : public Rule::IRule {
|
|
|
|
|
public:
|
|
|
|
|
YYCRule5();
|
|
|
|
|
virtual ~YYCRule5();
|
|
|
|
|
YYCC_DELETE_COPY_MOVE(YYCRule5)
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
std::u8string_view GetRuleName() const override;
|
|
|
|
|
void Check(Reporter::Reporter& reporter, Map::Level& level) const override;
|
|
|
|
|
};
|
|
|
|
|
|
2026-02-02 22:26:41 +08:00
|
|
|
}
|