forked from ReScrap/ScrapHacks
		
	Update parse_save.py to use PrefixedArray and PascalString
This commit is contained in:
		
							parent
							
								
									cf7ce84a43
								
							
						
					
					
						commit
						ca979c2ae6
					
				
					 1 changed files with 20 additions and 24 deletions
				
			
		|  | @ -1,24 +1,20 @@ | ||||||
| from construct import * | from construct import * | ||||||
| from pprint import pprint | from pprint import pprint | ||||||
| ScrapSaveStr = Struct( |  | ||||||
|     'length'/Int32ul, |  | ||||||
|     'data'/String(this.length,encoding='utf-8'), |  | ||||||
|     ) |  | ||||||
| ScrapSaveVar = Struct( | ScrapSaveVar = Struct( | ||||||
|     'v_name_size'/Int32ul, |     'name'/PascalString(Int32ul,encoding='utf-8'), | ||||||
|     'v_name'/String(lambda ctx: ctx.v_name_size,encoding='utf-8'), |     'data'/PascalString(Int32ul,encoding='utf-8'), | ||||||
|     'v_data_size'/Int32ul, |  | ||||||
|     'v_data'/String(lambda ctx: ctx.v_data_size,encoding='utf-8'), |  | ||||||
| ) | ) | ||||||
| ScrapSave = 'ScarpSaveGame'/Struct( | ScrapSave = 'ScarpSaveGame'/Struct( | ||||||
|                    'title'/ScrapSaveStr, |                    'title'/PascalString(Int32ul,encoding='utf-8'), | ||||||
|                    'id'/ScrapSaveStr, |                    'id'/PascalString(Int32ul,encoding='utf-8'), | ||||||
|                    'num_vars'/Int32ul, |                    'data'/PrefixedArray(Int32ul,ScrapSaveVar), | ||||||
|                    'data'/ScrapSaveVar[this.num_vars], |  | ||||||
|                    Terminated |                    Terminated | ||||||
|                    ) |                    ) | ||||||
| with open("Save0.sav", 'rb') as sav_file: | with open("Save0.sav", 'rb') as sav_file: | ||||||
|     save = ScrapSave.parse_stream(sav_file) |     save = ScrapSave.parse_stream(sav_file) | ||||||
|     pprint(save) |     print("ID:",save.id) | ||||||
|  |     print("Title:",save.title) | ||||||
|  |     for var in save.data: | ||||||
|  |         print(" - {}: {}".format(var.name,var.data)) | ||||||
|     #for block in save.data: |     #for block in save.data: | ||||||
|     #    print("{}: {}".format(block.v_name, block.v_data)) |     #    print("{}: {}".format(block.v_name, block.v_data)) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue