Ship 0.8 fog/freistellen and fix Windows CI for friends
Some checks are pending
Windows Release / windows-x86_64 (push) Waiting to run

Publish the portable zip to public Forgejo from the private GitHub
builder, and force Ninja so MSVC 195 deps build without CMake 4.2.
This commit is contained in:
copilot 2026-10-25 18:07:47 +01:00
parent 97b136de3b
commit 1c1d63f376
46 changed files with 1748 additions and 156 deletions

View file

@ -35,6 +35,8 @@ struct DrawingProgramLayerListItemMetaInfo {
std::string name;
float alpha = 1.0f;
SerializedBlendMode blendMode = SerializedBlendMode::BLEND_SRC_OVER;
bool playerLocked = false;
bool fogLayer = false;
bool operator==(const DrawingProgramLayerListItemMetaInfo&) const = default;
};
@ -80,12 +82,22 @@ class DrawingProgramLayerListItem {
void set_blend_mode(DrawingProgramLayerManager& layerMan, SerializedBlendMode newBlendMode) const;
SerializedBlendMode get_blend_mode() const;
void set_player_locked(DrawingProgramLayerManager& layerMan, bool locked) const;
bool get_player_locked() const;
void set_fog_layer(DrawingProgramLayerManager& layerMan, bool fog) const;
bool is_fog_layer() const;
// Fog layers are always treated as player-locked for edit checks.
bool is_player_edit_blocked() const;
void set_metainfo(DrawingProgramLayerManager& layerMan, const DrawingProgramLayerListItemMetaInfo& metaInfo);
DrawingProgramLayerListItemMetaInfo get_metainfo() const;
uint32_t get_component_count() const;
void erase_invalid_components();
// Host→client join projection: same shape as write_constructor_func, omits hidden comps.
void write_stripped_constructor(cereal::PortableBinaryOutputArchive& a, const std::unordered_set<NetworkingObjects::NetObjID>& hiddenComponentIds) const;
private:
static void write_constructor_func(const NetworkingObjects::NetObjTemporaryPtr<DrawingProgramLayerListItem>& o, cereal::PortableBinaryOutputArchive& a);
static void read_constructor_func(const NetworkingObjects::NetObjTemporaryPtr<DrawingProgramLayerListItem>& o, cereal::PortableBinaryInputArchive& a, const std::shared_ptr<NetServer::ClientData>& c);
@ -101,8 +113,10 @@ class DrawingProgramLayerListItem {
float alpha = 1.0f;
bool visible = true;
SerializedBlendMode blendMode = SerializedBlendMode::BLEND_SRC_OVER;
bool playerLocked = false;
bool fogLayer = false;
template <typename Archive> void serialize(Archive& a) {
a(alpha, visible, blendMode);
a(alpha, visible, blendMode, playerLocked, fogLayer);
}
};
NetworkingObjects::NetObjOwnerPtr<NameData> nameData;