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