| Mr.Rubinshtein | did you just live changed games code |
| Mr.Rubinshtein | |
| AdrienTD | Not really |
| AdrienTD | I made a tool inside the XXL Inspector named "CSX" which logs all reads from the files the game does during loading, and with this tries to guess the structure/format of the class serialization in the files. You can change certain stuff in case the tool guessed incorrectly, and then it can generate code (class definition + reflection method) that I can paste into XXL Editor so that it can now read and deserialize the class with minimal changes needed. |
| AdrienTD | The goal is to deserialize every class used in the game, and especially find and deserialize all the object references in the entire game files (instead of just keeping the references bytes without decoding), so that the references can be reencoded correctly with the correct indices etc., meaning it will be possible to add and remove objects from the levels without any issues. |
| baku | |
| Mr.Rubinshtein | ✍️ |
| AdrienTD | Maybe you might not understand the technical aspects, but hopefully this means it will allow more modding possibilites in the future. |
| Mr.Rubinshtein | you could have just said "I disassemble code even more so in future it will be easier to manipulate and edit it" |
| Mr.Rubinshtein | |
| AdrienTD | What I just said |
| Mr.Rubinshtein | |
| PegPeregoGaucho | Can you do this with every class? |
| AdrienTD | Yes |
| PegPeregoGaucho | what about classes like CLocManager which have different serialization depending on the level/file? |
| AdrienTD | In the video I only showed a very simple one, other longer classes might take more time, more changes, and more debugging, but at least thanks to the tool it would make the task much easier than having to look through the disassembly and the hex of the objects. |
| AdrienTD | So far it only looks for level and sectors. |
| AdrienTD | Which is enough for the ultimate goal. |
| baku | How to use xxl editor to look on some collisions in the game 👀 ? |
| AdrienTD | Just enable the "Grounds" checkbox |