• Art & Design
  • Why is it that my load and save file methods do not line up?

I have looked over my code and things look like they are in the right order. I am making an editor for a game. the important stuff is in the variable tunLocs it contains stuff that I can see. When I save and load I do not see anything. The other values I am quite sure that they are the right size.

this is the code:


func stneg(var inv):
	if (inv < 0):
		return 65535
	else:
		return inv
		
func gtneg(var inv):
	if (inv == 65535):
		return -1
	else:
		return inv

func _on_Load_pressed():
	var file = File.new()
	file.open("res://save_game.dat", File.READ)
	scoffx = file.get_8()
	scoffy = file.get_8()
	kdidx = file.get_16()
	var num = file.get_8()
	if num == 255:
		kdst = true
	else:
		kdst = false
	levidx = file.get_8()
	origx = gtneg(file.get_16())
	origy = gtneg(file.get_16())
	file.close()
	for i in range(8192):
		tunLocs[i] = file.get_64()
	for i in range(1296):
		keyx[i] = gtneg(file.get_16())
		keyy[i] = gtneg(file.get_16())
		keyd[i] = file.get_8()
		doorx[i] = gtneg(file.get_16())
		doory[i] = gtneg(file.get_16())
		doord[i] = file.get_8()
	for i in range(99):
		levelx[i] = gtneg(file.get_16())
		levely[i] = gtneg(file.get_16())
		leveld[i] = file.get_8()
	file.close()
	redraw()
		
func _on_Save_pressed():
	var file = File.new()
	file.open("res://save_game.dat", File.WRITE)
	file.store_8(scoffx)
	file.store_8(scoffy)
	file.store_16(kdidx)
	if kdst:
		file.store_8(255)
	else:
		file.store_8(0)
	file.store_8(levidx)
	file.store_16(stneg(origx))
	file.store_16(stneg(origy))
	for i in range(8192):
		file.store_64(tunLocs[i])
	for i in range(1296):
		file.store_16(stneg(keyx[i]))
		file.store_16(stneg(keyy[i]))
		file.store_8(keyd[i])
		file.store_16(stneg(doorx[i]))
		file.store_16(stneg(doory[i]))
		file.store_8(doord[i])
	for i in range(99):
		file.store_16(stneg(levelx[i]))
		file.store_16(stneg(levely[i]))
		file.store_8(leveld[i])
	file.close()

One mistake is the extra file.close() in the middle of func _on_Load_pressed().

I am such an idiot sometimes I didn't see that. Thank you!