Oregon Trail tombstones format
Jump to navigation
Jump to search
Oregon Trail tombstones format
Format type | Saved game |
---|---|
Save locations | Unrestricted |
Elements saved | Location |
Games |
Tombstones in The Oregon Trail are stored in the TOMBS.REC file. A tombstone record consists of the name of the party's leader, an epitaph, and the location where the last member of the party died. The game saves only two tombstones, one for the first half of the trail, the other for the second. If another party dies on the half of the trail which already contains a tombstone, the existing one is overwritten with the new one.
Data Type | Name | Description |
---|---|---|
UINT8 | Last Landmark | The last landmark this party reached. |
UINT8 | Next Landmark | The landmark this party was heading toward. |
UINT8 | Miles to Next Landmark | How many miles the party needed to travel to reach the next landmark. |
UINT8 | Name Length | The length of the name of the party leader. |
char[10] | Name | The name of the party leader. The length above is how many characters are used, everything after that is garbage. |
UINT8 | Epitaph Length | The length of the epitaph. |
char[33] | Epitaph | The epitaph. The length above is how many characters are used, everything after that is garbage. |
UINT8 | Unknown | ! Unknown. |
UINT8 | Unknown | ! Unknown. |
UINT8 | Unknown | ! Unknown. |
UINT8 | Unknown | ! Unknown. |
UINT8 | Unknown | ! Unknown. |
UINT8 | Unknown | ! Unknown. |
UINT8 | Unknown | ! Unknown. |
2 records |
Source Code
Printer
This FreeBASIC program will print each of the tombstones.
Declare Function GetLandmarkName(Index As UByte) As String
Dim As UByte StringLength, Buffer, LastLandmark, NextLandmark, MilesToNextLandmark
Dim As UShort Miles
Dim As Integer Record
Dim As String TombName, Epitaph
Open "TOMB1.REC" For Binary As #1
For Record = 1 To 2
' Location.
Get #1, , LastLandmark
Get #1, , NextLandmark
Get #1, , MilesToNextLandmark
' Name.
Get #1, , StringLength
TombName = Space(10)
Get #1, , TombName
TombName = Left(TombName, StringLength)
' Epitaph.
Get #1, , StringLength
Epitaph = Space(33)
Get #1, , Epitaph
Epitaph = Left(Epitaph, StringLength)
Get #1, , Buffer
Get #1, , Buffer
Get #1, , Buffer
Get #1, , Buffer
Get #1, , Buffer
Get #1, , Buffer
Get #1, , Buffer
Print TombName + " - " + Epitaph
Print "Reached " + GetLandmarkName(LastLandmark) + ", died " + Str(MilesToNextLandmark) + " miles away from " + GetLandmarkName(NextLandmark)
Print
Next Record
Sleep
Function GetLandmarkName(Index As UByte) As String
' Returns the name of the landmark from the specified index.
Dim As String LandmarkName
Select Case Index
Case 0: LandmarkName = "Independence"
Case 1: LandmarkName = "Kansas River crossing"
Case 2: LandmarkName = "Big Blue River crossing"
Case 3: LandmarkName = "Fort Kearney"
Case 4: LandmarkName = "Chimney Rock"
Case 5: LandmarkName = "Fort Laramie"
Case 6: LandmarkName = "Independence Rock"
Case 7: LandmarkName = "South Pass"
Case 8: LandmarkName = "Fort Bridger"
Case 9: LandmarkName = "Green River"
Case 10: LandmarkName = "Soda Spring"
Case 11: LandmarkName = "Fort Hall"
Case 12: LandmarkName = "Snake River"
Case 13: LandmarkName = "Fort Boise"
Case 14: LandmarkName = "Blue Mountains"
Case 15: LandmarkName = "Fort Walla Walla"
Case 16: LandmarkName = "The Dalles"
Case 17: LandmarkName = "Willamette Valley"
End Select
Return LandmarkName
End Function
Credits
This format was reverse engineered by TheAlmightyGuru. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)