Loading a heightmap

BlitzMax Forums/BlitzMax Beginners Area/Loading a heightmap

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

When saving a heightmap to an image file, I tend to use a single colour component (eg blue), providing for only 256 discreet levels, but that’s usually enough for my purposes. I then use bitwise operators when reading in the pixel value. Here’s some sample code (ignore the encoded media stuff):


EDIT: Actually, I think there's a bug in my code... I'll get back to you...

EDIT2: There we go. That's better...


'Move the mouse over the heightmap for coordinate and height value.

SuperStrict

'**** RESTORE ENCODED MEDIA - IGNORE
unencode(True)			
'**** 

Graphics 800, 600
SetBlend SOLIDBLEND

Global Map:Byte[,]
Global PM:TPixmap
Global Width:Int
Global Height:Int

If Not importImageFile("test.png") 
	Notify "Could not load hightmap file."
	End
EndIf
	
Local y:Byte = 0.0	
	
SetColor 255, 255, 255	
	
While Not KeyHit(KEY_ESCAPE)

	Cls
	
	DrawPixmap pm, 0, 0
	
	Local mx:Int = MouseX() 
	Local my:Int = MouseY()
	
	If mx < Width And my < Height
	
		y = Map[mx, my]
		DrawText "(" + mx + ", " + my + ") : " + y, 10, 200
	
	EndIf
		
	Flip True

Wend

End
	
	
Function importImageFile:Int(url:String)

  	pm = LoadPixmap(url)

   	If Not pm Return False      
    	
	If (pm.format <> PF_RGBA8888) Then pm = ConvertPixmap(pm, PF_RGBA8888)

	Width = PixmapWidth(pm)
	Height = PixmapHeight(pm)

	Map = New Byte[Width, Height]
   
   	For Local x:Int = 0 To (Width - 1)
   		For Local z:Int = 0 To (Height - 1)
      		Local c:Int = ReadPixel(pm, x, z)
       		c :| c Shr 24
       		Map[x, z] = $000000 | c
   		Next
   	Next

	Return True

End Function





'*************** ENCODED MEDIA SECTION BELOW - IGNORE ************





Function unencode:TBank(tofile:Int = True)
	
	Local url:String
	Local size:Long
	Local lines:Long
	
	Print "Unencoding..."
	
	RestoreData media
	
	ReadData url
	ReadData size
	ReadData lines
	
	Local bank:TBank = CreateBank(size)
	Local str:String
	Local bpos:Long = 0
	
	For Local n:Long = 1 To lines	
		ReadData str
		For Local i:Int = 0 To (str.length - 1) Step 2
			Local ch:String = "$" + Chr(str[i]) + Chr(str[i + 1])	
			Local val:Byte = Byte(ch)
			PokeByte bank, bpos, val
			bpos :+ 1
		Next
	Next

	If tofile
		Local fho:TStream = OpenFile(url)

		If fho
			CloseFile fho
			If Not Confirm (url + " exists. Replace file?") Then Return bank
		EndIf
	
		If Not SaveBank(bank, url)
			Notify "Could not create output file."
			Return bank
		EndIf
	EndIf

	Print "Done."
	
	Return bank
		
EndFunction

#media
DefData "test.png", 7527, 60
DefData "89504E470D0A1A0A0000000D4948445200000080000000800806000000C33E61CB00001D2E4944415478DAA55DED92E2480CCB40C3FBBFEE0203F7E79C5384243B7B5395DA9D1906926EB73F64D9FEB9DFEFDBF57ADD6EB7DBB6D6DA6EB7DBE1BADFEFDBFD7EDFFF8FBF5B6BED7F53FF5F6B6DD7EB75BB5C2EF2FAF9F9D9EA"
DefData "EBF3F96CDBB66DEFF7FB70FDFEFEB6D7EBF58AD7F3F9DC9ECFE7FEDAF7FBBD7F5E7DFDFCFCEC17DE5FFD9F9FE37ABD7EAD513DEF5A6BBB5C2E8775C0F5C08BD7A47E86F783F7FAF97CBED6A8D6C93DF7F3F9DC1E8FC7F6E7CF9FEDCF9F3FDBE3F1D81E8FC7FEF37ACDE20776977A3027046AE1708159083E9FCFF6FBFBBB3F"
DefData "140AC1EBF5929B8F8B85EFC9EF5F9FFBFBFB7B103A27043F3F3FFBFDE27DD73AA803809B7C5600F87B75406A8D707DEAFF6A5DD5FAE25587E1FD7E6F4B9DD233829016A31380927425D9EFF77B7BBD5EDB5A6B17829272B5F975F1EFEBEFAED7EBD782D63DF0E96301C0E7570250EB3215002558781F6EF3DEEFF776BD5E0F"
DefData "9BAF841FDF43698EBAAED7EBB7003815A584A03B0DEA24A99B6409AFEB7ABDEE0FAAA45D5DFC9AD7EBB5FF3D6E3C0A005F4E00D04CAA4D569B5FA6018504BFAFFF2B6D86A7950F8AD218EA6FDD55EB7B30014E1BE022B887E513C17FE71EB4B4000A409DF8EBF5BA6F60FDCB769AEF155F57F7599AE3FD7E7FA956757ADC73"
DefData "2BB3C76BA134A5D3A4AC0D5833B2CA4653C987480980121CF6B3162F6AB708F8709DCA2BA708BFE7CD537E406DA4DB68F573DC7C5CE85DD2D73A6881BAD86E7602D03DBF7ABDDA78D60EEAF42B01286DE60440FD6D6DB672B0173B40FFC71FC087C27F9D49400D80B61F371A4F34AB77DEFCFA0C140434252500B8A0680AF0"
DefData "14A567EDD645D9F8EEBD5C045027B6EE5B692CE700F3697FBFDFFB41A8F55ACA7E26359B7C824EEA79819400B0AD2FF5AF4C07FA074AFD9729A9D7A0064021506A1405559935B50EEA77DD7A29C1C6537CB95CF68DEC1C3EFEDB5AD3DAF4FA3F1E96E59C2A75D23ACD909C401721A0C35227B5365CA937F6F871735968D079"
DefData "AC138036D169010C1F950077FE925BBB4E5BD47AB01A47955FF7C8A1ADC20DD007724EF95261901202270C4ACA95B7AB80228E0438BC51CE0DFF1CD57BDD93120C1400768C5800EAE429FF87373999A66E9D9410A8C8E8E7E7675F9BFA8C726859589CC641B58FF71B7D00A57294D3E8241C913144CDD804A000F0E6F31787"
DefData "6BA8FEF91E31DC610DE084803F47E1192EAC4DA169A70D5800CA863B3B3FC10B2621FE72A7FC8C59E81C451722D6FBB1B4E317AB37FC7CDC5C5E68D60CF5FF5A582700F8792EFA5078C344603BCDC00722397A0E4799F870F81ECB49760A0FDDE67F4957038CA0C4D746F0E6F3E9E4CF66DB5FCE21620ACA0954F1B112387E"
DefData "76B501E90B6DF6C4776084B4FBFA7C3E3BCAC9CEA203C70E02A0BC56251409214C4EA2824D9513A8A4BA54196E0A3E209A0C3E9D781A303AC0938E6192C2CCD9F9749BDB6D7E4A3A29B3AB7216B82EECABA0CFC290B2038BEAE72BA98994159B86882E24545180B2790CDAD46BD0C6F34945CD80C9A0D20CFC99B58878EAD8"
DefData "AB56EAD89929956F484E35FF4E6D16BE1EEF99D70CB5C8C4342D7592D58D258C400948828B51FDB30FA04E026E406DB8C204D4E66368598BC72196FA390B803B8D6AD3D5EB9533ED367AAA61A6AF51F75CF7B93A14CB251D92E65071BF0A03F90BB100F599B85868BBF974A003C8D101DAFB12380688EA77DDA62A07D5396A"
DefData "E914F2F7CAE9EDAECE5CB96758138043D91667DBBA78B784C1A9520E055D1480F69B37B74EB6CA27603888B83A23846C9E5426F1CCA9537FEB04041D47657EA642C0C936E5F8AE29A29554934AA52A268D03827071F8E70EB1C3D3CF78393B87CA5CA069C1EFD11CE03D39BC80EF5FAD91D32249906AE3D2A976DAC4BD9685"
DefData "C09A8029E2A5B2685D74C097D2001C055412C3A94605EE94AFC0A40F34376CE7D1A9E2848C3221098C713677A2DE9D7FD1A9730566B9BFDF354097B99AF2FB3A44F02C058A9DB812040C07CB57E0D08EB17356850E69AB13C72A5BC1AFF8CC930D509BEB9C3FFEFCE9E6B390B91C81A484A5FCB7DBC4A4051CFA84A0082E20"
DefData "A26F2800FCDAEBF57A780FF5C048229938646C2727CC21B6CDC9B14B0E23879A4A63A80416DB72C5F773CF7288029802E5F2D96C531DB43841A1DC62B9C5AEFBA887E253CA1EFB190AD9EBF5929BCF849104C838DB3B51E3C974A8CD6552289369F984A7CF38004153D5EF364765F81451814F8153572E765694691404CC88"
DefData "B9CD570BAD4E9C0BA71258933658815BEA33D5C955A459C59CE6D730D4FD15069E45F818C048AADEA933A5929C1A639A96CADD63EC5ED878F9014AA07831902F8839808404260F5EA96265DB9D9A76296B45F32ABE2353BDA6E6610405AB0C58177A28C74BF1DCDD4323E2C78E5E729A146B36316D9D7AE4F757F1B62297F2"
DefData "B33847CDD1BC940025662F6B01F57B15264B01E852960A22760E46A2292954CF9D1A0643386BA61C384412951D6602096A16C51C563E8A136A04B33A670E059D85480940227772A5903201BCF9DBB61D1941D3D3CFBF739EAADA78E545D7A628CF9B4D8D4B9C28B3A1EEA3424A4CA196D9A82FC410A6DA6162C313EB692A00"
DefData "ACEE53399DF319F0FDD724E7CF6ADFA51B9337ADA0D694FAC453A6EE8F43C80269D88E73AE1C9D5C4E372BC268F25D262640856EE89F7012CCB181DDE976763F09050AC1725EBBF3FC1D82E5D4BD52FDB8590EADE2EF190B50769D0B4E1DA68035032824B819EA04779941E58BF08670FE01379F0F056E94DA645738CBDAC2"
DefData "398A3B0E9092128977EEE2F99485522156173F230114054061E68805B87C390A029A00D4240AC071DEBCCB09A03FC2347806BDEAF39549ADABA21517E67555D44A88562222A4BC73478E50E18B0271BAFCB6CB36A6FB99F01B39B45454AA69664F913F149B970585850E9F4B9900476D4F1101DB7FDE93E5D4F994EAD4D97F"
DefData "C5BAE94E3A7BF8CA4FE904004FB23265EE3DD3F34F627FD6984C38A9B5E01098B562622FB33F91B481D3165F61E08440E83C7017C7335ECF5C76F785AAD1F919670554451367099E4ECD2753A6AA7A9546E868DE8AC9A43637F9048C09480170E4459726C6052C29663E5EE7F1B3B387EA13C3B3F4F71360C741B6FC3E2E39"
DefData "E4A06A06A75C550F86CD6C0A791D53683DB1FB292C3CF8001DC36492DD53F5682EC7ED88205C96D565E992CFE10A3EDC3D9DBD384C759A82BDFEFA4CCE68A6B574BE948283D595B0832F1F40E5B0D5E9EF4C003A3FE86D23A4AB1C2A451049B904974750A726A5693BB42C61FA9DA940ADA82215570995B480C2063A21705A"
DefData "60255C7F5AFA34A520A5D8BF7B5F85F23914B2235E2AE74D9D0E56B78EB9E4FC0355E0C12D5A128EA240290E0B510B3C9FCFAFD81F2302B54E2B951A4F6ADEBA5C022FB23AE94AD85CA52CDBE944806034D1F9102AD5EA54AFBA1FB4DD0E47A80B41A7D290EE502870894F7F09020B03877CB62E60423474B58093C21047F2"
DefData "646153EA3AD5BF759EF2C4494CADEA5C2A55653395064DAC201412A79DD83F52EA1FB5400A09D90FC2CF5F6EE3D5899EF4015461A52362708EBED03E9717603FC2355162ED90D2AAEA1427C045D52B72624B09035636B9A25297824ECDB412C8A3CCE157716817362927309DFE2E5A70655708DFBAA60D8E39C392CE851EC9"
DefData "09729A847F5FEFC9E5658AFFD0E54D14D52CA969365FEA1E53024BA1A93B0EA09A24248EFFC40C7475748A1D8BA7CFB16E3B9A35FF3E61E54E0854E128BF873265AA60D59D3C85FA3981526B987C1315C129A7B78460B11AEC6C7EE20C2A6A38A78F5DE5ADCB8FB37A9D00412A0FEE6853296D3B311F8EB3C802C082E1184D"
DefData "2E0997B2ADCAA166A28B3B24CB6D7ED7E0A953FF0A51740ECE34AC442148685D972A4DBE40C2DA9DE6E81A38A8ACA55B8B2E0B9BA219CE7F54D491846DB1E49DF1F09360A89031451BAE51823A312E4E77193246C552D8973877FCDE0C617338EB0440B18612FEE2C02CF7B7AA8CCE85F9CB55F64C37DF4505137067CA2C4E"
DefData "05131C16A1A3A6D0B2048DF2C6ABD729A793A38E84A938889B99C8EAC028C7581167BB94FDA14144EA11E8AA7F5D3730471FEBD2B9AA8B689779732111923E5D3B7545AD52F1350B80039C14C4DD9D58472EC113DC15A5F0EFD1E17311DD5718A88A3B52EE7C5244A2EC173B8418FA392149E08DB3F528008C8E399854A54E"
DefData "196D532197734E19DB707E8D2B1A5105AAC93F50EB84EBA93AB01CDAC42526F0B43F60270028049C6D4C7D72120AD7F1E01D1F0EB58153F7F87793CEA2A9E183CA7E763C48A505142D5E85C40908FBEA11D4113EA74D0F3BDA76EAB4E5B80398FC5142D171E39843E7FC81320B681E149EEE6C70AAED4F0EA1F2FCB92E33D5"
DefData "593A81418A19B2B0A5004C1B43BA4ADD890024E7C43D207AB04ADD3A3E5CC79455D933B7F988FAFD4D87B014FD28159FFA35A5927A9730E2BC896A39BB3A95AF34C4B4A348A23DA530D1F5CDE1877455328E14A9CC016F7C77F2A79434473E49C8281F2A1E63A3926BCAF64FDAE11E8A43BB0D76EA3B75FD70E8556A393321"
DefData "653A07D03975C9E173DA4055D54EBB77A576EE1D16E25AEAA7865D5DA53137B7900230DDD80969546DAEABAEED285F2951C3E1DA74F3BB49630A1B50CFE308A80ED14B3D0494FA470D90E62E39F2C8045DFD7C3E47202871E75D9168D7E94AA159DCA265D25727D97BE7C1ABB0CF71E61C5288AA95433B95B398E0FA7C8253"
DefData "33EA04B32B4AFAA4C52C7EE69A307DBAF46E57D4E12A6A15A8D3F1F5F084B2ADEF4E3ACED4ABAB2BABE6648E7A66F4B819C4EA90B929D986F9985C47C8AADE31AFD85F5893746ED7CDCAB17BA7CD125D5EDC519F5381249F6A0CF1D4C677E55668BB3B1670D7E0A9AB7A9A5E138E850AFB1818DA5BC5A64250C756F99BBE3A"
DefData "D3CA1B95E8716D50523D1C6EB612882E27A068590E96753D879DF3D7CD6A9AF85FCECF9AC0C7360CEC66FB316942957C755E33DBCCD44CC255B4A4E10FAAA69E4F7DA2514D29DF8E12E60638A43175C90428724E57809B10C60327B0EB5A9DBCF3D4F923913B5D6185AAF2ED36A06BA392A2885447901658DD7BA721DCA83A"
DefData "E56C27E72FC1E589558DE576B8574B6DFAA4E2577DB8EBAC9534432AAB520D2292DF30A9A651ACE4E9C977A0D694799C660C3947DC455E93EA686E53A3046FB9E24FC523E38B810697E74E004A6AF834F5435203A6A4BD526D5FB7F9EE1E5DAFA0490FC504244D5056DE78D5D9940FE072B97D5787EFE2732626747DF33B54"
DefData "103790277F772D5B52572E5787D0112826C48CE9E6A7482B398A5DBFC38E8413DBC5BB58D33565509BEFDAC1380FB4CB9661B5CDA466D0D5E64D327A5C9C9A8A3E12B78F43C7840876AD76D25AA5D6F593723D393022659FA6B5F4AE1D4CA7E2CE660E53179249276DB7B93C9225453529EDEBF2F94908CE36A5482D729C86"
DefData "FCEA103265F77612FB7F30F1449D3A53AB386516AB7BE1DC7B57579742DC2E99D555EB24BF2831835D314DCA192C178326ECBA73E2D0214C5D3EBA3E435D17CFAEA0B5ABBF67BF85EF31B180D4FD3A7F69A2D952A978A7653BBE616ADD63278726A76332194375D356C51E93D6286A23A6C31A3B048D615E575BD84DFC48A7"
DefData "4E15B476BE815B5B97664FA73CE122CBDD448A00926D72B6C79583390FDA1131DDA48FA9BA76431E388DDA85942EFFD1358D54BC7DB7F95D558F0ABB1328265BC4249BD639262AEC49A95C54B52E3E776DD153C3E3293983FBF139762E9F5635584A452C2E3AE0D9460CD02854706A0A9456EA88B2F8B335F134D30663D893"
DefData "3A6563AF1CCE48E1FB399A17E2F693A414630D5C28C99DBA983CC9268133842AE7AEC89E4E137471BBD30C8E019CEC7C6A2BB7BAB12253A7C2B547E79C354FFE48EA52B17B53E8D79545B3402A7C5F217D0EAB50B072F2C63B56B1038CD2FBB9CEA28E2DCD6BBB5486CDA96EF73337CA85670363FD9C8AA7390B98DAB2A486"
DefData "4EAE1B288F9647F28462D34C20E1C4199C30A853738E04FE74C5AC930922EFF7FBBFFE00930105EC3CB1FA67EF59D1C85D35AD2A04994CD898E005886F70AD811B39C361A24B3CA9621797EF4F83B854E267E27BA9C651AE624A09C94A5C7A54D713B5CFCD0E5900D46C60C51B4C8E5E9A86E5EA1A7853B9A183632271C935"
DefData "6F346EBE6AF6A472FD25005DD9BDD342A977C1648610FB58ABEB318B13B85C7911C6CE0CA49C11806EAC4BC21B14EDA973AADC589B09C094E06C461899F0A9367FAD650771A4E25817FEA5E9220727508506386D9B6D264FD1643BAFEAD35C05B2B29728E913342B81272C105C84C19FC54DAAD85955636826ADF478C355C3"
DefData "2D45FB76C00E46322E84EE7C825D00BA922AECF489BE00E7FFD5E62BB835B5664F689A3BF9EEB4774913DE3C251C2E1270B0B4ABA35476DF9900D50F88435116EC4E08C64EA092181EC2A8E2F7E428E1E2A33DE645E3B4F204F0508295F205CA4C25CDC13E040B7C9AA1C82ABF54BC1202350545813AAFD72BF607E848328A"
DefData "FEBE3A1BC2A79F1B1F4F72E4AA579EAA074CB584AAB041153CBA2A1E4744ED9043F7E5685CE8E4F1F7DD2C65E70C6357D1E7F3190935890CC3CD330E1AC00941FD8B1141D2006A8E0F7AB6EA751DF7DE75C59AD4184EDAC4BB962B132E3F1770DE6E37C9AE2A2D5082E10661B9FCBD320FCFE7F3AF39067B3AB86B83A68442"
DefData "4DF37089148692F1F4AB56F2EA442A36AF537F5D9DBE8B1A54052D3BB8AA97019EE2B5961480CBE572F8B96A129DF010D769440166D30AE643A3C8D412B54E3FFA010A00EA46A0BBAE162CE92EC3E678FC935CBB829DD56899692651397278C2F1A4A3C7CF0DB51C57920F5E12109C4198FA0EBB6B298C9847AAF104900241"
DefData "92F7ED182C78FA15F5CADDB0EAD49572EB8940A942500CFB5478AA7A24E1C6DE6EB7AF9F773E40A2D1D5F376B3195EAFD7610CDEA4B4FED02832B5517558B363F6BAD2673C85B8F913960D7F768A8B13E14369268E6A5CF8A7DAE2A0BABFDD6E0701509DD45800DC80A834B91C4D10BE3FE33693F4F1AE0154F74BE5FD2BFB"
DefData "CF808AC3E8190D4C2622B58273FC3855F8C8AABD7E8F42A4EE9741236CDCC01B5A1B7FBFDFA59AE7581FCD82AB807643B5A7B39CCE1277250E50EA04B180AFDE326BB5B1A82A1A511027FA120EE6541C7E3EBD389481F10744F558BB3102A8402C65E34B005008521F450EF938CCC3EEA375009DB3E89A784EB985FBC41057"
DefData "5D7BB95CF67F954D75689EA35839ECDDE5E7B94DBB7370D0A47031864AF7721228550BE1675488576ABF04E07EBF1F7ECEEA5E755255D4F6FA1966EED8E976492687274C328A8BB348F5262C04ACC65D68D29557A902C53324C814FE392048E5EE1DFFCEE10AE8DCA1ED570280AF55EA99435FF66D5CDF80AEEEDF35FB74CC"
DefData "E5DD07C0CDBF5EAF5F9B8F4280A6C285782AC1C3A7DE114A921038B48C37D88D596153D191325900787371F35903A8049022C0A43E7E8ACE8642F337DD5CBEA280D7EBB57B92155620FEAF70005707C08C16A55655DAB56BA98ADEAF33379CD7673C0317D0D53538268EAA9B600DC09BCFAA1FDBB673191993675CBB77A73D"
DefData "2725660E3B5975FAEBE4A3035802A0C006EE49CB768733550CEAD47B2B1A942BD9720E0EE704D099C2CDEFA69F2BFBA9E27F1400A5FE31244CEA5861234CBF5B6BEDFB9252E0A9D826F9690BF3FFB5F978E2119050592AD523502574124AC8430DD8C9732194E2E7F134EE94D65578852A8C51193EC602940640F5AD60725E"
DefData "136660D5174E19E7754E94FEAEE7C3B66DFFD1C2190CAA9B29E1500250AFC345499D30944388E1249F54C5A573EC210E0BBB42111591A4C6D8AA3FB252F9880A2A9BCCC866C78744E7AFEBE33449847D3981BCA9CC04520C152686E0C6A3AA9A8C52618631F7C45136D595A9A3799954D52A41E96624614450F7C7F7A94C00"
DefData "33901C20A47817CE2799D2CB13E16629C7092383949655E089F20B143F9F6F9E19344CA6E8583328806A9892D306FC7307E77228CC040F0514A9CC1F7228151A88FC4B75603ACAF899AF2F0DA09C2A253989D3CEAF7130AD8A5D3993C6C04AD729B323517298E8E06447DC64678DEF5D99041600463C117257A8EBB401C424"
DefData "052CC3C08EEB867967E7B4754D14F8359D1D4D43A9D4894A24D2AE6902133A14978F7BF7B273A852C32C380A892B73594290F0FCBF69A29184638F3252E3049595ABD77264A02453B537E3538DA81AABFA349A8617C3992354AF8AAFE84EB4133C1521749354546534730D3B7AF984ADD4D1DC6432C8B52E9B967DBB020856"
DefData "9B2A7C72A8993BF9DD0971C5925CD8A9AA7ED2E7BAB136EC9D3B4F9DA7A89FE9663219343D692061D3C19356A5698A48C78A65BBAA369FC328B7F1A9D1834A36A5C109ACFED5B0CCAE552BD71B4EBA7F4DFB014DFB327583B512FB6A6F109106447469C789002142A69226FCB374F259A5AA2EA76EC094CAF5B3864AB57BAE"
DefData "767FD2FA2D0162D392F1491B9DC9FC8543183869173F9914DA0D9856CC99E438B143E648A4A9C731AB5C6502D2A8DC340E47D5273813E578FA67BA9C75805A6A9A91A2A3954A9A26B302BB41138E34A98813DD887A57C573665895E221A87B75E95595DC4AB90A57B9D3B1B1BB8DFC9BF6B6920F9050A43343A2591D2ADC5C"
DefData "094467563A92E7B4659DEA6AEE7C006582921A4EC3B614D0D6D5EE4D1A71747D892742B06D343CBAEB54E10A1A9C365025504EA3A8393953074AF1135347EFA4E952A3E6E4A9AB4AA7339D5526FD195C9F24D71339F1340F1AA0EB6A39D10A0AF4700E66A2324D1B242541702ACF356352914EE78025265122A5741A40D5EF"
DefData "75B311A72D73645D80CB924DAE33E36626BF4F2DD0BB868D0EA760D64D422CBB0E9C6EF355D326BE0F9E6BECEAF7793A8A1A91E31A3E9DB90EA561D374623759F44CDBF349D1A53A4D2EF7C09DBB78D398957CA68AC6F5E7634A1C52B55C0655CD364AF30FBBC9674900528FA0BD4348B2135D2A359DE65458992A88BAAED8"
DefData "8A999CEC9E9A53D8F522605E81431DDDB046A5517003DC287BB5C13C1B91E720A5A1999DD9F86A13770658383362AE73DE3A544CD1B43B80C49911A48C735B7AEEBCA136D2F1195CDB1B95EE559B899BFA783CE2C473350C6B3213515D4B8D8071DF77D9BF2E9F9046C3A430865946A920D53550E0CD477CDE0DB9708D1858"
DefData "70946973143A9E595C9BAD8442CD387E3E9FDBE3F18802C0A3F27868169A84D54DDB706892E3D275F5690AC14A4C57CEE5ABA2CE692EBCEB36A2CAD526F508692006136DEA5F3EC9F8BDD200FCBA1202370C9327A35B0D903246935C7A17414CDAB9620F1C55CFEFBA9473EFC2C49E71CD2B14AAC8A4958E8A9EFA06290008"
DefData "050037AB3615B54232014988DCDC44761E57F27EB94181A25A4D8644AABC3CBE8637C3B5A857357BDCA9733ACD43813638384209806B5AA928718E4A8702E0269BB259C068C09DF0C9C542756816ED5AC4AA56B129D598543D328B5CD303776295F6E1FAF90996E14E303A80DD806C85C0A5C9A94A00D268DB128052DDD399"
DefData "C868161E8FC7E17B7EBFBD49540A6B3A1CFA2C02A5EC383B622E0C741D44263468952A76656BDD946ED7C2854BDC5C1E9E075DF3062AC7306107EAA4E3E6A31028DC61254789DB94743D84BA86D27C32B05CCB51A0B147D0B4BB97AB2AEA4C941BD3960E875A878413F02C6425006CB7533C9F048035807ABF959208ECA977"
DefData "133D780150DD278A92A28CBB36F29371691C9275ED6953B1E88480E1BAAA386DC166A04E7D6D18FF8E6163154E3A0DC0BE02BFEF3AA3FAB9651C968FA55667CC80C57F5900BA56312EC9E3A6672A019874FE7408A15B1B27042919A42200850ABA3C80F203D4E57C870310C4A799C9885C1A9ED8AC5CD2C4654EA8FAB979A4"
DefData "E2C3F33DBA53991A3A73B1E7599E9DF3675C174E356799BBAF25B0A6DB7CE514AAC882FD06D62AB14F202E689D725526AE50AFD212581052A75E9596771DBCD30431D770AACB4C3A78D73189DDB0CA947C71FC44D400ECA5AB2C601A0AE190401741C476F1AE256C6D3E7BD089E8884322D4E64F0726B2AD750E96CB2E32FF"
DefData "BF6B03CB1BC5E5672C04CA3E2701724E9CB3F5DCC0CB6515156E801B8EFFDFC34054E91CFE603550DA7057368E85946A01D9F173004AEA16E60A3F5C9AD94DF848DDC954E83B4DBF2AF38A9B871A20BDA71B0EE11CC68E68B20B007704570BC3365BD5E4BDDFEFBDD308B27C76C469ADAFD7777E848BA13B01E846B4AA2255"
DefData "378409BB7771157267FFDD663A753D218B72573165D715C9C4BDEFEA902FAEF93F4C9DFCF764F32C01A68A1D3EF0DFBF490CA14E003A9224ABECC41E4E1338952A56664051B312EDCB09800397A623629219529A686F1193EC2F3A74EAC236A5D85E96B982FC378E45E4C2C83302A0AE8EA73019C1E23645B5B04D1B95C01E"
DefData "8E2E1CE8E4788193A9AB28ECFF00A1C55D21EF6B76C40000000049454E44AE426082"



Let me know if you want me to explain anything in that code.

Incidentally, there’s some stuff in the code archives related to heightmaps: Heightmap Toolbox V0.3.6