- lots of references to other ptr's and stuff, so im only analyzing whats in the vtable
# constructor
- offset 100c05a0
- there's a call to another function which may be a part of the ctor, but then it goes to stuff seeming to be shared by things like the video manager
## FUN_100c0690
- sets field_0x50 to 100 then calls
## FUN_100c06a0
- sets the following fields to 0:
- 0x30
- 0x34
- 0x38
- 0x3c
- 0x40
- 0x44
- 0x48
- 0x4c
# destructor
- vtable suggests it is here, offset 100c0640
# the vtable
- PTR_FUN_100dc930, at 100dc930
## 3rd entry: FUN_100b8790
- the param_1 could be MxCriticalSection*
- it returns 0; probably performing an operation of some kind
- FIXME: come back to this when we understand the fields of MxMusicManager
## 6th entry: FUN_100b8e40
- Most likely takes in MxCriticalSection* as a parameter, though i wonder if MxMusicManager could contain a critsect: that would make the most sense
## 7th entry: LAB_100c0930, which calls FUN_100c06c0
- Takes in a char parameter, though the LAB call puts in '\0'
## 8th entry: FUN_100b88c0
- another reference with the parameter being a critsect:
- ```MxAutoLocker::MxAutoLocker(&local_14,(MxCriticalSection *)((int)this + 0x10));```
- I'm here declaring that 0x10 is a MxCriticalSection, confirmed
# known member fields
field_0x8: maybe an int*
field_0x10: MxCriticalSection*
field_0x18: maybe an int* (src: FUN_100b8e40)
field_0xc: maybe an int* (src: FUN_100c06c0)
field_0x30: HMIDISTRM* or HMIDIOUT* (src: FUN_100c0b20)
field_0x4c: LPMIDIHR* (src: FUN_100c0b20)
# functions that may have relation/take in MxMusicManager as a param
- FUN_100b8d00: appears to mention another vtable.. 100dc6e0
---
# The real nitty gritty: other functions that likely use MxMusicManager
## FUN_100c0b20
- This is where we start to see calls to midi functions in WINMM
- the critsect parameter checks out at 0x10
- a call does go too FUN_100c06a0, part of the ctor
- this function might be where the music manager is initialized