[DiscordArchive] Hey robinsch, have another question about vmt.
[DiscordArchive] Hey robinsch, have another question about vmt.
![[Image: 06_14_12_48_ida.png?ex=690c910d&is=690b3...e2942b503&]](https://cdn.discordapp.com/attachments/1086807686571642900/1380520121671352500/06_14_12_48_ida.png?ex=690c910d&is=690b3f8d&hm=779ca6b424ce22132b448fbaf11e4927b6f48353199933013b9f56fe2942b503&)
Archived author: Saty • Posted: 2025-06-06T12:14:05.815000+00:00
Original source
Hey robinsch, have another question about vmt.
Here I just naively assumed that this object has 2 vmts.
But I assume rather, that this is a extended class (based on the fact that it runs another initializer).
So I assume, every local vmt + X * 8 is probably the vmt of the parent, is that correct?
![[Image: 06_14_12_48_ida.png?ex=690c910d&is=690b3...e2942b503&]](https://cdn.discordapp.com/attachments/1086807686571642900/1380520121671352500/06_14_12_48_ida.png?ex=690c910d&is=690b3f8d&hm=779ca6b424ce22132b448fbaf11e4927b6f48353199933013b9f56fe2942b503&)
Archived author: robinsch • Posted: 2025-06-06T12:15:14.315000+00:00
Original source
Yes it inherrits from multiple classes which have virtual functions; so it has multiple VMTs
![[Image: 06_14_15_12_ida.png?ex=690c916b&is=690b3...85410277a&]](https://cdn.discordapp.com/attachments/1086807686571642900/1380520514073788497/06_14_15_12_ida.png?ex=690c916b&is=690b3feb&hm=731ea90e1416cfa532e5829593885d4df36bab7b8a49477ff267f9685410277a&)
Archived author: Saty • Posted: 2025-06-06T12:15:39.426000+00:00
Original source
Actually X * 8 cant be it... as here it references other VMT at like "random offsets"...
![[Image: 06_14_15_12_ida.png?ex=690c916b&is=690b3...85410277a&]](https://cdn.discordapp.com/attachments/1086807686571642900/1380520514073788497/06_14_15_12_ida.png?ex=690c916b&is=690b3feb&hm=731ea90e1416cfa532e5829593885d4df36bab7b8a49477ff267f9685410277a&)
ES_Salute:493353111822532629>
Archived author: Widget • Posted: 2025-06-06T12:16:03.957000+00:00
Original source
i appreciate the help, but this stuff is too confusing and complicated for someone with my level of knowledge i was hoping some funky hacky wrapper around that UnitCastingInfo <
ES_Salute:493353111822532629>
Archived author: robinsch • Posted: 2025-06-06T12:17:09.534000+00:00
Original source
nope there is no wrapped since it builds many return arguments in the LUA API. If you just want to grab the spell ID by CGUnit_C* then it's just a member `m_uiCastingSpellID`
Archived author: Saty • Posted: 2025-06-06T12:18:05.267000+00:00
Original source
Probably a classic case of https://xyproblem.info/
Archived author: robinsch • Posted: 2025-06-06T12:18:47.659000+00:00
Original source
UI elements are an inherritance hell
Archived author: Widget • Posted: 2025-06-06T12:18:56.534000+00:00
Original source
that could "work" i guess, i googled and searched for m_uiCastingSpellID on github but no results
Archived author: robinsch • Posted: 2025-06-06T12:19:20.268000+00:00
Original source
don't think people have reversed a lot of CGUnit_C* publicly
Archived author: Saty • Posted: 2025-06-06T12:20:04.305000+00:00
Original source
Oh yeah I know
Been at it for hours now.
I just want to understand how the vmts are constructed... Like they appear to be "in order" sometimes, but then, like the last image, are at basically random offsets.