52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from .addressTypes import ValueList, ValueSingle, ValueRange, Byte, Word, Long | ||
|  | from .objectivesAddresses import objectivesAddr | ||
|  | 
 | ||
|  | # TODO::add patches | ||
|  | 
 | ||
|  | 
 | ||
|  | class Addresses(object): | ||
|  |     @staticmethod | ||
|  |     def getOne(key): | ||
|  |         value = Addresses.addresses[key] | ||
|  |         return value.getOne() | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def getAll(key): | ||
|  |         value = Addresses.addresses[key] | ||
|  |         return value.getAll() | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def getWeb(key): | ||
|  |         value = Addresses.addresses[key] | ||
|  |         return value.getWeb() | ||
|  | 
 | ||
|  |     @staticmethod | ||
|  |     def getRange(key): | ||
|  |         value = Addresses.addresses[key] | ||
|  |         return value.getWeb() | ||
|  | 
 | ||
|  |     addresses = { | ||
|  |         'totalItems': ValueList([0x8BE656, 0x8BE6B3], storage=Byte), | ||
|  |         'majorsSplit': ValueSingle(0x82fb6c, storage=Byte), | ||
|  |         # scavenger hunt items list (17 prog items (including ridley) + hunt over + terminator, each is a word) | ||
|  |         'scavengerOrder': ValueRange(0xA1F5D8, length=(17+1+1)*2), | ||
|  |         'plandoAddresses': ValueRange(0xdee000, length=128), | ||
|  |         'plandoTransitions': ValueSingle(0xdee100), | ||
|  |         'escapeTimer': ValueSingle(0x809e21), | ||
|  |         'escapeTimerTable': ValueSingle(0xA1F0AA), | ||
|  |         'startAP': ValueSingle(0xa1f200), | ||
|  |         'customDoorsAsm': ValueSingle(0x8ff800), | ||
|  |         'locIdsByArea': ValueRange(0xA1F568, end=0xA1F5D7), | ||
|  |         'plmSpawnTable': ValueSingle(0x8fe9a0), | ||
|  |         'plmSpawnRoomTable': ValueSingle(0x8ff000), | ||
|  |         'moonwalk': ValueSingle(0x81b35d), | ||
|  |         'additionalETanks': ValueSingle(0xA1F470, storage=Byte), | ||
|  |         'hellrunRate': ValueSingle(0x8DE387), | ||
|  |         'BTtweaksHack1': ValueSingle(0x84ba6f+3), | ||
|  |         'BTtweaksHack2': ValueSingle(0x84d33b+3), | ||
|  |         # in intro_text.ips | ||
|  |         'introText': ValueSingle(0x8cc389) | ||
|  |     } | ||
|  | 
 | ||
|  | Addresses.addresses.update(objectivesAddr) |