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)
							 |