Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'Dungeon Instancing Sub
- 'Create Duplicate
- 'Usage: CreateDungeonInstance(OriginalMap#, DuplicatedMap#)
- Sub CreateDungeonInstance(ByVal OriginalMap As Long, ByVal DuplicatedMap As Long)
- Dim filename As String
- Dim i As Long
- Dim F As Long
- Dim x As Long
- Dim y As Long
- Call CheckMaps
- ' Load up the Original Map
- filename = App.Path & "\data\maps\map" & OriginalMap & ".dat"
- F = FreeFile
- Open filename For Binary As #F
- Get #F, , Map(OriginalMap).Name
- Get #F, , Map(OriginalMap).Music
- Get #F, , Map(OriginalMap).Revision
- Get #F, , Map(OriginalMap).Moral
- Get #F, , Map(OriginalMap).Up
- Get #F, , Map(OriginalMap).Down
- Get #F, , Map(OriginalMap).Left
- Get #F, , Map(OriginalMap).Right
- Get #F, , Map(OriginalMap).BootMap
- Get #F, , Map(OriginalMap).BootX
- Get #F, , Map(OriginalMap).BootY
- Get #F, , Map(OriginalMap).MaxX
- Get #F, , Map(OriginalMap).MaxY
- ' Set the Original Map tiles
- ReDim Map(OriginalMap).Tile(0 To Map(OriginalMap).MaxX, 0 To Map(OriginalMap).MaxY)
- For x = 0 To Map(OriginalMap).MaxX
- For y = 0 To Map(OriginalMap).MaxY
- Get #F, , Map(OriginalMap).Tile(x, y)
- Next
- Next
- For x = 1 To MAX_MAP_NPCS
- Get #F, , Map(OriginalMap).Npc(x)
- MapNpc(OriginalMap).Npc(x).Num = Map(OriginalMap).Npc(x)
- Next
- ' Stop loading Original Map
- Close #F
- ' Save the Duplicated Map
- filename = App.Path & "\data\maps\map" & DuplicatedMap & ".dat"
- F = FreeFile
- Open filename For Binary As #F
- Put #F, , Map(DuplicatedMap).Name
- Put #F, , Map(DuplicatedMap).Music
- Put #F, , Map(DuplicatedMap).Revision
- Put #F, , Map(DuplicatedMap).Moral
- Put #F, , Map(DuplicatedMap).Up
- Put #F, , Map(DuplicatedMap).Down
- Put #F, , Map(DuplicatedMap).Left
- Put #F, , Map(DuplicatedMap).Right
- Put #F, , Map(DuplicatedMap).BootMap
- Put #F, , Map(DuplicatedMap).BootX
- Put #F, , Map(DuplicatedMap).BootY
- Put #F, , Map(DuplicatedMap).MaxX
- Put #F, , Map(DuplicatedMap).MaxY
- For x = 0 To Map(DuplicatedMap).MaxX
- For y = 0 To Map(DuplicatedMap).MaxY
- Put #F, , Map(DuplicatedMap).Tile(x, y)
- Next
- Next
- For x = 1 To MAX_MAP_NPCS
- Put #F, , Map(DuplicatedMap).Npc(x)
- Next
- Close #F
- DoEvents
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement