Fable: The Lost Chapters Mod Scene
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Fable TLC » Development » Advanced Modding » Executable Functions
Re: Executable Functions [message #66458 is a reply to message #33113] Tue, 24 April 2012 00:40 Go to previous messageGo to previous message
Messages: 47
Registered: January 2006
Location: The Pit of Hell
Dev Console = 0x009ED190

This has been disabled in some way.


As far as I can tell, the console is intact, all the routines for initializing it, and it's graphics, etc, exist. (It's all running too, it's just never enabled by the game.)

Unknown = 0x0099EBF0

This takes two visible parameters. It also requires an object reference pointer in the register ECX. (Likely a "this" pointer.)


I believe this is used by the games "IntelligentPointers", basically, if an object exist, it finds it, otherwise it creates it, and makes a pointer to it, for reference tracking\access, etc,.

Decrease Will:
0x0057B1F1 - (add [esi+58h], eax)

This could be used to remove magic cost, or, to create a multiplier to increase the cost.

Increase\Decrease Gold (Shops, maybe more..)
0x0057B338 - (mov [esi+3Ch], eax)

Static References:

GameDirectory = 0x013BCA10
HInstance = 0x013BD6EC

CThingManager = 0x013B8A1C
GraphicDataBank = 0x013B8A08
MeshDataBank = 0x013B8A04
QuestManager = 0x013B89FC
CGameJoystickManager = 0x013B89A0
CStreamingFontBank = 0x013B8998
CThingObjectDef 0x013B8C14
CInventoryItemDef 0x013B8C18
CUserProfileManager = 0x013B7D4C
CGraphicBankManager = 0x013B837C
CShaderRenderManager = 0x013B8380
CRenderManager = 0x013B8384
CInputManager = 0x013B8388
CFontManager = 0x013B838C
CDisplayManager = 0x013B8390
CSoundManager = 0x013B8394
CGame = 0x013B83D0
CMainGameComponent = 0x013B86A0
CManager@NUISystem = 0x013B8710
CPlayerDef = 0x013B878C 
CPlayerGUI = 0x013B8790
CGameDefinitionManager = 0x013B879C
CEngineManager = 0x013BA854
CTCAICreatureWillPowerIndicator = 0x013BA89C
CCameraModeDef = 0x013BA8D8
CSkeletalMorphResourceManager = 0x013BAB10

I haven't verified all of these, they could be static, or the values could be temporarily stored there. (I'll have to keep checking them, and make sure they always stay the same.)

I hit the damn static lottery. :)

These are the layouts of class instances mapped in memory.


Base = CThingManager (VFTable: 0x01245C44)
Base + 1Ch = CMainGameComponent
Base + 20h = CGameDefinitionManager
Base + 24h = CWorld
Base + 28h = CWorldMap
Base + 30h = CPlayerManager
Base + 8Ch = Unknown


Base = CPlayerManager (VFTable: 0x01231CD0)
Base + 0Ch = CPlayer
Base + 10h = Unknown
Base + 1Ch = Unknown


Base = CPlayer (VFTable: 0x01231CC4)
Base + 0Ch = CGamePlayerInterface
Base + 34h = CIntelligentPointer@VCThingPlayerCreature


Base + 4h = CThingPlayerCreature


Base = CThingPlayerCreature (VFTable: 0x012457FC)
Base + 0B0h = Max Health (Float)
Base + 0B4h = Current Health (Float)


Base = CTCHeroStats (VFTable: 0x0124F70C)
Base + 4h = CThingPlayerCreature (VFTable: 0x012457FC)
Base + 38h = Unknown
Base + 3Ch = Current Gold
Base + 40h = Highest Amount of Money Ever Had
Base + 48h = Total Money Acquired
Base + 4Ch = Total Money Spent
Base + 58h = Current Will
Base + 5Ch = Max Will
Base + 70h = Renown
Base + FCh = Total Fines


Base + 58h = CInputManager
Base + 60h = CDisplayManager
Base + 7Ch = CSoundManager
Base + 84h = CFontManager


Base + 8h = CRenderManager


Base + 38h = Perceiver Count


Base + 114h = Unknown
Base + 118h = Unknown
Base + 128h = Unknown


Base + 4h = Unknown

[Updated on: Sat, 02 June 2012 18:17]

Report message to a moderator

Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: BigTools
Next Topic: Important Notes
Goto Forum:

Current Time: Sat Jun 19 18:00:44 PDT 2021

Total time taken to generate the page: 0.00625 seconds