Skip to content

Commit b42b084

Browse files
authored
Allow multiple definitions of DMF attributes (#2461)
1 parent 3bedb14 commit b42b084

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

OpenDreamClient/Interface/DreamInterfaceManager.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -972,17 +972,17 @@ private void LoadInterface(InterfaceDescriptor descriptor) {
972972
}
973973

974974
private void OnWindowFocused(WindowFocusedEventArgs args) {
975-
if(ClydeWindowIdToControl.TryGetValue(args.Window.Id, out var controlWindow)){
976-
_sawmill.Debug($"window id {controlWindow.Id} was {(args.Focused ? "focused" : "defocused")}");
977-
WindowDescriptor descriptor = (WindowDescriptor) controlWindow.ElementDescriptor;
975+
if (ClydeWindowIdToControl.TryGetValue(args.Window.Id, out var controlWindow)) {
976+
_sawmill.Verbose($"window id {controlWindow.Id} was {(args.Focused ? "focused" : "defocused")}");
977+
WindowDescriptor descriptor = (WindowDescriptor)controlWindow.ElementDescriptor;
978978
descriptor.Focus = new DMFPropertyBool(args.Focused);
979-
if(args.Focused && MacroSets.TryGetValue(descriptor.Macro.AsRaw(), out var windowMacroSet)){
980-
_sawmill.Debug($"Activating macroset {descriptor.Macro}");
979+
if (args.Focused && MacroSets.TryGetValue(descriptor.Macro.AsRaw(), out var windowMacroSet)) {
980+
_sawmill.Verbose($"Activating macroset {descriptor.Macro}");
981981
windowMacroSet.SetActive();
982982
}
983+
} else {
984+
_sawmill.Verbose($"window id was not found (probably a modal) but was {(args.Focused ? "focused" : "defocused")}");
983985
}
984-
else
985-
_sawmill.Debug($"window id was not found (probably a modal) but was {(args.Focused ? "focused" : "defocused")}");
986986
}
987987

988988
private void LoadDescriptor(ElementDescriptor descriptor) {

OpenDreamClient/Resources/DreamResourceManager.cs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,23 @@ private void EnsureCacheDirectory() {
7777
}
7878

7979
private void RxBrowseResource(MsgBrowseResource message) {
80-
_sawmill.Debug($"Received cache check for {message.Filename} hash: {BitConverter.ToString(message.DataHash)}");
80+
_sawmill.Verbose($"Received cache check for {message.Filename} hash: {BitConverter.ToString(message.DataHash)}");
8181
EnsureCacheDirectory();
8282
if(_resourceManager.UserData.Exists(GetCacheFilePath(message.Filename)) && GetFileHash(GetCacheFilePath(message.Filename)).SequenceEqual(message.DataHash)){
83-
_sawmill.Debug($"Cache hit for {message.Filename}");
83+
_sawmill.Verbose($"Cache hit for {message.Filename}");
8484
} else {
8585
if (_activeBrowseRscRequests.Contains(message.Filename)) //we've already requested it, don't need to do it again
8686
return;
87+
8788
if (_resourceManager.UserData.Exists(GetCacheFilePath(message.Filename))) {
8889
_sawmill.Debug($"Cache hit for {message.Filename} but hashes did not match (hash: {BitConverter.ToString(GetFileHash(GetCacheFilePath(message.Filename)))}). Re-requesting!");
8990
_resourceManager.UserData.Delete(GetCacheFilePath(message.Filename));
90-
} else
91+
} else {
9192
_sawmill.Debug($"Cache miss for {message.Filename}, requesting from server.");
93+
}
94+
9295
_activeBrowseRscRequests.Add(message.Filename);
93-
_netManager.ServerChannel?.SendMessage(new MsgBrowseResourceRequest() { Filename = message.Filename });
96+
_netManager.ServerChannel?.SendMessage(new MsgBrowseResourceRequest { Filename = message.Filename });
9497
}
9598
}
9699

@@ -145,7 +148,7 @@ private void RxResourceUpdateNotification(MsgNotifyResourceUpdate message) {
145148
if (!_loadingResources.ContainsKey(message.ResourceId) && _resourceCache.TryGetValue(message.ResourceId, out var cached)) { //either we're already requesting it, or we don't have it so don't need to update
146149
_sawmill.Debug($"Resource id {message.ResourceId} was updated, reloading");
147150
_loadingResources[message.ResourceId] = new LoadingResourceEntry(cached.GetType());
148-
var msg = new MsgRequestResource() { ResourceId = message.ResourceId };
151+
var msg = new MsgRequestResource { ResourceId = message.ResourceId };
149152
_netManager.ClientSendMessage(msg);
150153
}
151154
}
@@ -191,7 +194,7 @@ public void LoadResourceAsync<T>(int resourceId, Action<T> onLoadCallback) where
191194
if (!_loadingResources.ContainsKey(resourceId)) {
192195
_loadingResources[resourceId] = new LoadingResourceEntry(typeof(T));
193196

194-
var msg = new MsgRequestResource() { ResourceId = resourceId };
197+
var msg = new MsgRequestResource { ResourceId = resourceId };
195198
_netManager.ClientSendMessage(msg);
196199

197200
var timeout = _cfg.GetCVar(OpenDreamCVars.DownloadTimeout);
@@ -290,7 +293,7 @@ public void LookupResourceAsync(string resourcePathOrRef, Action<int> onSuccess,
290293
_pendingResourceLookups[resourcePathOrRef].SuccessCallbacks.Add(onSuccess);
291294
_pendingResourceLookups[resourcePathOrRef].FailureCallbacks.Add(onFailure);
292295

293-
var msg = new MsgLookupResource() { ResourcePathOrRef = resourcePathOrRef };
296+
var msg = new MsgLookupResource { ResourcePathOrRef = resourcePathOrRef };
294297
_netManager.ClientSendMessage(msg);
295298

296299
var timeout = _cfg.GetCVar(OpenDreamCVars.DownloadTimeout);

OpenDreamShared/Interface/DMF/DMFParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ public Dictionary<string, string> AttributesValues() {
284284
if (winset.Value == "none")
285285
continue;
286286

287-
attributes.Add(winset.Attribute, winset.Value);
287+
attributes[winset.Attribute] = winset.Value;
288288
}
289289

290290
return attributes;

0 commit comments

Comments
 (0)