'Convert the uncompress title.3sh car shape
'into a properly scaled tri-3D-shape car file
'2021-01-27

Type Vector
	x As Double
	y As Double
	z As Double
End Type

Dim As Short items, vertices, primitives, paintjobs
Dim As Long first, secnd, length
Dim As String buffer, header, central, tail
Dim As Double factor
Dim v(1 To 256) As Vector

Open "title.3sh" For Binary Access Read As 1
Get #1, 5, items

'Skip all IDs
Seek #1, Seek(1) + 4 * items
Get #1, , first
Get #1, , secnd
length = secnd - first
buffer = Space(length)

'Get first resource ("brav")
Get #1, 6 + 8 * items + 1, buffer
Close 1


vertices = Asc(Left(buffer, 1))
primitives = Asc(Mid(buffer, 2, 1))
paintjobs = Asc(Mid(buffer, 3, 1))

header = Left(buffer, 4) : buffer = Mid(buffer, 5)

For i As Short = 1 To vertices
	v(i).x = CvShort(Left(buffer, 2))
	v(i).y = CvShort(Mid(buffer, 3, 2))
	v(i).z = CvShort(Mid(buffer, 5, 2))
	buffer = Mid(buffer, 7)
Next i

tail = buffer


Dim As String car(0 To 6)

Print "I tried factors: 8, .05, .8"
For j As Byte = 0 To 2
	Input "Factor: ", factor
	car(j) = header
	For i As Short = 1 To vertices
		v(i).x = factor * v(i).x
		v(i).y = factor * v(i).y
		v(i).z = factor * v(i).z
		car(j) &= MkShort(v(i).x) & MkShort(v(i).y) & MkShort(v(i).z)
	Next i
	car(j) &= tail
Next j

For j As Byte = 3 To 6
	car(j) = car(2)
Next j

Dim p As Long = 0

Open "newtitle.3sh" For Binary Access Write As 2
Put #2, 5, MkShort(7) & "car0car1car2exp0exp1exp2exp3"
For i As Short = 0 To 6
	Put #2, , p
	p += Len(car(i))
Next i
For i As Short = 0 To 6
	Put #2, , car(i)
Next i
Put #2, , String(4, 0)
Put #2, 1, MkL(LoF(2))
Close 2

