-
Автор темы
- #1
Здравствуйте!
Я скачал CryEngine SDK для исследования классов игры, нашел класс SSystemGlobalEnvironment, и он был не таким какой он на самом деле.
В SDK класс выглядит так:
А его правильная реализация(во всяком случае для Warface), которую я нашел в теме с классами и оффсетами для игры выглядит так:
Например, IGame имеет оффсет 4, IRenderer оффсет 16, а правильно 0x70 и 0x30.
Почему так?
Я скачал CryEngine SDK для исследования классов игры, нашел класс SSystemGlobalEnvironment, и он был не таким какой он на самом деле.
В SDK класс выглядит так:
C++:
struct SSystemGlobalEnvironment
{
ISystem* pSystem;
IGame* pGame;
IGameFramework* pGameFramework;
INetwork* pNetwork;
IRenderer* pRenderer;
IInput* pInput;
ITimer* pTimer;
IConsole* pConsole;
IScriptSystem* pScriptSystem;
I3DEngine* p3DEngine;
ISoundSystem* pSoundSystem;
IMusicSystem* pMusicSystem;
IPhysicalWorld* pPhysicalWorld;
IMovieSystem* pMovieSystem;
IAISystem* pAISystem;
IEntitySystem* pEntitySystem;
ICryFont* pCryFont;
ICryPak* pCryPak;
ILog* pLog;
...
C++:
class SSystemGlobalEnvironment {
public:
char pad_0x0000[0x30]; // 0x0000
IRenderer* m_pRenderer; // 0x0030
char pad_0x0034[0x10]; // 0x0034
IPhysicalWorld* m_pPhysicalWorld; // 0x0044
char pad_0x0048[0x28]; // 0x0048
IGame* m_pGame; // 0x0070
char pad_0x0074[0x14]; // 0x0074
I3DEngine* m_p3DEngine; // 0x0088
...
Почему так?