LordHansCapon / cotw-harvest-tracker

8 stars 3 forks source link

Missing Fur Type recording #3

Closed LordHansCapon closed 1 year ago

LordHansCapon commented 1 year ago

Currently the tracker is not able to record fur types. Fur types are stored not as a string (text) nor a simple offset but as a value which is later used to calculate the translated text's memory location.

Some examples: BLACK SPOTS: 0x79B6EC6F

BROWN: 0x11FAAA5A

WHITE BROWN: 0xF137615E

The call for the algorithm for calculating the correct offset is found at: theHunterCotW_F.exe+A4193A where RDX contains the currently harvested animal's fur type offset. After the function call, the RAX register contains the calculated location of the fur type string.

We could in theory locate all these addresses and map them in the tracker but since I do not know what these numbers are, they should be treated as subject for change. Reversing the algorithm to understand how the offset is calculated is preferable, because then we could store that instead.

The calculated address is only temporarily stored until it is written onto the UI. The location of the UI text component changes every time, it seems like it is created and destroyed every time it is opened/closed.

LordHansCapon commented 1 year ago

Found a solution. Currently in testing phase.

image