@@ -259,20 +259,20 @@ internal static void HandleMap(MapPacket packet, bool skipSave = false)
259259
260260 var endUpdateMapRequestTime = DateTime . UtcNow ;
261261
262- if ( MapInstance . TryGet ( mapId , out var mapInstance ) )
262+ if ( MapInstance . TryGet ( mapId , out var map ) )
263263 {
264- if ( packet . Revision == mapInstance . Revision )
264+ if ( packet . Revision == map . Revision )
265265 {
266266 return ;
267267 }
268268
269- mapInstance . Dispose ( false , false ) ;
269+ map . Dispose ( false , false ) ;
270270 }
271271
272272 var endMapTryGet = DateTime . UtcNow ;
273273
274- mapInstance = new MapInstance ( mapId ) ;
275- MapInstance . Lookup . Set ( mapId , mapInstance ) ;
274+ map = new MapInstance ( mapId ) ;
275+ MapInstance . Lookup . Set ( mapId , map ) ;
276276
277277 var endMapLookupSet = DateTime . UtcNow ;
278278
@@ -285,57 +285,59 @@ internal static void HandleMap(MapPacket packet, bool skipSave = false)
285285 DateTime endInitAutotiles ;
286286 DateTime endPendingEvents ;
287287
288- if ( ! mapInstance . Lock . TryAcquireLock ( "HandleMap packet handler" , out var lockRef ) )
288+ if ( ! map . Lock . TryAcquireLock ( "HandleMap packet handler" , out var lockRef ) )
289289 {
290290 throw new InvalidOperationException ( "Failed to acquire map instance lock from HandleMap packet handler" ) ;
291291 }
292292
293293 using ( lockRef )
294294 {
295- mapInstance . Load ( packet . Data , markLoaded : false ) ;
295+ map . Load ( packet . Data , markLoaded : false ) ;
296296 endMapLoad = DateTime . UtcNow ;
297297
298- mapInstance . LoadTileData ( packet . TileData ) ;
298+ map . LoadTileData ( packet . TileData ) ;
299299 endMapLoadTileData = DateTime . UtcNow ;
300300
301- mapInstance . AttributeData = packet . AttributeData ;
301+ map . AttributeData = packet . AttributeData ;
302302 endSetAttributeData = DateTime . UtcNow ;
303303
304- mapInstance . CreateMapSounds ( ) ;
304+ map . CreateMapSounds ( ) ;
305305 endCreateMapSounds = DateTime . UtcNow ;
306306
307307 if ( mapId == Globals . Me . MapId )
308308 {
309- Audio . PlayMusic ( mapInstance . Music , ClientConfiguration . Instance . MusicFadeTimer , ClientConfiguration . Instance . MusicFadeTimer , true ) ;
309+ Audio . PlayMusic ( map . Music , ClientConfiguration . Instance . MusicFadeTimer , ClientConfiguration . Instance . MusicFadeTimer , true ) ;
310310 }
311311 endPlayMusic = DateTime . UtcNow ;
312312
313- mapInstance . GridX = packet . GridX ;
314- mapInstance . GridY = packet . GridY ;
315- mapInstance . CameraHolds = packet . CameraHolds ;
313+ map . GridX = packet . GridX ;
314+ map . GridY = packet . GridY ;
315+ map . CameraHolds = packet . CameraHolds ;
316316 endGridXYCameraHolds = DateTime . UtcNow ;
317317
318- mapInstance . Autotiles . InitAutotiles ( mapInstance . GenerateAutotileGrid ( ) ) ;
318+ map . Autotiles . InitAutotiles ( map . GenerateAutotileGrid ( ) ) ;
319319
320320 endInitAutotiles = DateTime . UtcNow ;
321321
322+ map . MarkLoaded ( ) ;
323+
322324 if ( Globals . PendingEvents . TryGetValue ( mapId , out var pendingEventsForMap ) )
323325 {
324- foreach ( var ( eventId , stalePendingEvent ) in pendingEventsForMap )
326+ Log . Debug ( $ "Received map { map . Name } ({ mapId } ) has { pendingEventsForMap . Count } pending events") ;
327+
328+ foreach ( var ( eventId , pendingEvent ) in pendingEventsForMap )
325329 {
326- mapInstance . AddEvent ( eventId , stalePendingEvent ) ;
330+ map . AddEvent ( eventId , pendingEvent ) ;
327331 }
328332
329333 pendingEventsForMap . Clear ( ) ;
330334 }
331335 endPendingEvents = DateTime . UtcNow ;
332-
333- mapInstance . MarkLoaded ( ) ;
334336 }
335337
336338 var endMapLock = DateTime . UtcNow ;
337339
338- MapInstance . DoMapLoaded ( mapInstance ) ;
340+ MapInstance . DoMapLoaded ( map ) ;
339341
340342 var endDoMapLoadedInvocation = DateTime . UtcNow ;
341343
@@ -356,7 +358,7 @@ internal static void HandleMap(MapPacket packet, bool skipSave = false)
356358 var elapsedPendingEvents = endPendingEvents - endInitAutotiles ;
357359
358360 Log . Debug ( $ """
359- [HandleMap] Received map { packet . MapId } ({ mapInstance . Name } )
361+ [HandleMap] Received map { packet . MapId } ({ map . Name } )
360362 - Full method took { elapsedHandleMap . TotalMilliseconds } ms
361363 - Map caching took { elapsedMapCache . TotalMilliseconds } ms
362364 - Update Map Request Time took { elapsedUpdateMapRequestTime . TotalMilliseconds } ms
@@ -471,30 +473,21 @@ public void HandlePacket(IPacketSender packetSender, ProjectileEntityPacket pack
471473 //EventEntityPacket
472474 public void HandlePacket ( IPacketSender packetSender , EventEntityPacket packet )
473475 {
474- var map = MapInstance . Get ( packet . MapId ) ;
475- if ( map != null )
476+ if ( MapInstance . TryGet ( packet . MapId , out var map ) )
476477 {
477- map ? . AddEvent ( packet . EntityId , packet ) ;
478+ Log . Debug ( $ "Received event entity '{ packet . Name } ' ({ packet . EntityId } ) for map { map . Name } ({ map . Id } )") ;
479+ map . AddEvent ( packet . EntityId , packet ) ;
478480 }
479481 else
480482 {
481- var dict = Globals . PendingEvents . ContainsKey ( packet . MapId )
482- ? Globals . PendingEvents [ packet . MapId ]
483- : new Dictionary < Guid , EventEntityPacket > ( ) ;
484-
485- if ( dict . ContainsKey ( packet . EntityId ) )
483+ Log . Debug ( $ "Received event entity '{ packet . Name } ' ({ packet . EntityId } ) for not-yet-loaded map { packet . MapId } ") ;
484+ if ( ! Globals . PendingEvents . TryGetValue ( packet . MapId , out var pendingEventsForMap ) )
486485 {
487- dict [ packet . EntityId ] = packet ;
488- }
489- else
490- {
491- dict . Add ( packet . EntityId , packet ) ;
486+ pendingEventsForMap = [ ] ;
487+ Globals . PendingEvents [ packet . MapId ] = pendingEventsForMap ;
492488 }
493489
494- if ( ! Globals . PendingEvents . ContainsKey ( packet . MapId ) )
495- {
496- Globals . PendingEvents . Add ( packet . MapId , dict ) ;
497- }
490+ pendingEventsForMap [ packet . EntityId ] = packet ;
498491 }
499492 }
500493
0 commit comments