Added more beta addrs for MxBitSet and MxMemoryPool that I had in my local file.
Renamed m_openStreams to m_controllers based on the assert in AddStreamControllerToOpenList.
Notify does not match the beta exactly because it calls GetController each time it is used. Retail gets to 100% if you save this in a variable. Maybe this could (or should) be optimized away?
AddStreamControllerToOpenList does not match retail 100%, but this should be fine for now (unless it was at 100% earlier). The previous code looked like this:
This is closer to what we have in the assembly; if we know we reached the end of the list without a match, skip straight to the push_back call. With find broken out to match the beta, the jump distance is a little off, but I don't think it will present a problem because we are just checking against end() twice. I didn't test so hopefully this is the case!
There are two more operator overloads in MxAtomId, but I'm not sure what the type is supposed to be. The operator== at 0x1007dc20 is used to check whether m_internal is null, but what gets sent in is not an MxAtomId because no constructor is called. For example:
MxBitSet
andMxMemoryPool
that I had in my local file.m_openStreams
tom_controllers
based on the assert inAddStreamControllerToOpenList
.Notify
does not match the beta exactly because it callsGetController
each time it is used. Retail gets to 100% if you save this in a variable. Maybe this could (or should) be optimized away?AddStreamControllerToOpenList
does not match retail 100%, but this should be fine for now (unless it was at 100% earlier). The previous code looked like this:This is closer to what we have in the assembly; if we know we reached the end of the list without a match, skip straight to the
push_back
call. Withfind
broken out to match the beta, the jump distance is a little off, but I don't think it will present a problem because we are just checking againstend()
twice. I didn't test so hopefully this is the case!MxAtomId
, but I'm not sure what the type is supposed to be. Theoperator==
at0x1007dc20
is used to check whetherm_internal
is null, but what gets sent in is not anMxAtomId
because no constructor is called. For example:I marked where this should go once we figure it out, or maybe someone has an idea now.