Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'Dungeon Instancing Sub
  2. 'Create Duplicate
  3. 'Usage: CreateDungeonInstance(OriginalMap#, DuplicatedMap#)
  4. Sub CreateDungeonInstance(ByVal OriginalMap As Long, ByVal DuplicatedMap As Long)
  5.  
  6. Dim filename As String
  7. Dim i As Long
  8. Dim F As Long
  9. Dim x As Long
  10. Dim y As Long
  11. Call CheckMaps
  12.  
  13.     ' Load up the Original Map
  14.    filename = App.Path & "\data\maps\map" & OriginalMap & ".dat"
  15.     F = FreeFile
  16.     Open filename For Binary As #F
  17.     Get #F, , Map(OriginalMap).Name
  18.     Get #F, , Map(OriginalMap).Music
  19.     Get #F, , Map(OriginalMap).Revision
  20.     Get #F, , Map(OriginalMap).Moral
  21.     Get #F, , Map(OriginalMap).Up
  22.     Get #F, , Map(OriginalMap).Down
  23.     Get #F, , Map(OriginalMap).Left
  24.     Get #F, , Map(OriginalMap).Right
  25.     Get #F, , Map(OriginalMap).BootMap
  26.     Get #F, , Map(OriginalMap).BootX
  27.     Get #F, , Map(OriginalMap).BootY
  28.     Get #F, , Map(OriginalMap).MaxX
  29.     Get #F, , Map(OriginalMap).MaxY
  30.    
  31.     ' Set the Original Map tiles
  32.    ReDim Map(OriginalMap).Tile(0 To Map(OriginalMap).MaxX, 0 To Map(OriginalMap).MaxY)
  33.  
  34.     For x = 0 To Map(OriginalMap).MaxX
  35.         For y = 0 To Map(OriginalMap).MaxY
  36.             Get #F, , Map(OriginalMap).Tile(x, y)
  37.         Next
  38.     Next
  39.  
  40.     For x = 1 To MAX_MAP_NPCS
  41.         Get #F, , Map(OriginalMap).Npc(x)
  42.         MapNpc(OriginalMap).Npc(x).Num = Map(OriginalMap).Npc(x)
  43.     Next
  44.     ' Stop loading Original Map
  45.    Close #F
  46.  
  47.     ' Save the Duplicated Map
  48.    filename = App.Path & "\data\maps\map" & DuplicatedMap & ".dat"
  49.     F = FreeFile
  50.    
  51.     Open filename For Binary As #F
  52.     Put #F, , Map(DuplicatedMap).Name
  53.     Put #F, , Map(DuplicatedMap).Music
  54.     Put #F, , Map(DuplicatedMap).Revision
  55.     Put #F, , Map(DuplicatedMap).Moral
  56.     Put #F, , Map(DuplicatedMap).Up
  57.     Put #F, , Map(DuplicatedMap).Down
  58.     Put #F, , Map(DuplicatedMap).Left
  59.     Put #F, , Map(DuplicatedMap).Right
  60.     Put #F, , Map(DuplicatedMap).BootMap
  61.     Put #F, , Map(DuplicatedMap).BootX
  62.     Put #F, , Map(DuplicatedMap).BootY
  63.     Put #F, , Map(DuplicatedMap).MaxX
  64.     Put #F, , Map(DuplicatedMap).MaxY
  65.    
  66.     For x = 0 To Map(DuplicatedMap).MaxX
  67.         For y = 0 To Map(DuplicatedMap).MaxY
  68.             Put #F, , Map(DuplicatedMap).Tile(x, y)
  69.         Next
  70.     Next
  71.    
  72.     For x = 1 To MAX_MAP_NPCS
  73.         Put #F, , Map(DuplicatedMap).Npc(x)
  74.     Next
  75.     Close #F
  76.    
  77.     DoEvents
  78. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement