Ticket #1180 (closed defect: fixed)
h_mgr crashes with "Not enough memory"
| Reported by: | historic_bruno | Owned by: | |
|---|---|---|---|
| Priority: | Must Have | Milestone: | Alpha 11 |
| Component: | Core engine | Keywords: | h_mgr |
| Cc: | jan, philip |
Description
Build: r11165 Visual C++ 2010 EE
OS: Windows 7 Pro 64-bit
To reproduce:
- Start Atlas
- Open Combat demo (huge) map
- Start simulation test
- Send armies rushing into each other
- Wait a few minutes
- Crash!
I understand this happens on other maps as well and seems to be triggered by sounds during battle.
Full error message:
Function call failed: return value was -100033 (Not enough memory) Location: h_mgr.cpp:464 (alloc_new_handle)
Call stack:
alloc_new_handle (h_mgr.cpp:464)
type = 0x01A2FA80 ->
init = 0x01466760 -> (VSrc_init)
reload = 0x014667F0 -> (VSrc_reload)
dtor = 0x01466780 -> (VSrc_dtor)
validate = 0x01466D60 -> (VSrc_validate)
to_string = 0x01466F70 -> (VSrc_to_string)
user_size = 80 (0x00000050)
name = 0x019000C4 -> "VSrc"
vfs = 0x01A31908 ->
px = 0x00611858 -> (IVFS)
pn =
pi_ = 0x005F8E90 ->
use_count_ = 6 (0x00000006)
weak_count_ = 1 (0x00000001)
pathname = 0x048FF2BC ->
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = [8] { 47 ('/'), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized), (uninitialized) }
key = 1061576240 (0x3F465E30)
flags = 17 (0x00000011)
init_args = 0x048FF208 -> 0x048FF25C -> [8] { 68 ('D'), 243, 143, 4, 230, 47 ('/'), 24, 1 }
hd = 0x00000000
err = (uninitialized)
idx = (uninitialized)
tag = (uninitialized)
h = (uninitialized)
h_alloc (h_mgr.cpp:536)
type = 0x01A2FA80 (see above)
vfs = 0x01A31908 (see above)
pathname = 0x048FF2BC (see above)
flags = 17 (0x00000011)
key = 1061576240 (0x3F465E30)
s = (H_ScopedLock)
h = 0 (0x0000000000000000)
args = 0x048FF25C (see above)
snd_open (snd_mgr.cpp:1333)
vfs = 0x01A31908 (see above)
pathname = 0x048FF2BC (see above)
CSoundGroup::PlayNext (soundgroup.cpp:157)
pathname =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = 47 ('/')
hs = (uninitialized)
this = 0x0DE30638 ->
m_index = 9 (0x00000009)
m_hReplacement = -3617008641903833651 (0xCDCDCDCDCDCDCDCD)
snd_group = (unsupported vector<__int64 >)
filenames = (unsupported vector<basic_string<wchar_t,char_traits<wchar_t> > >)
playtimes = (unsupported vector<float >)
m_filepath =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = "/췍ꉘⅧ㭐✜췍췍췍췍췍췍"
m_intensity_file = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
m_CurTime = 0.000000 (0x00000000)
m_TimeWindow = -431602080.000000 (0xCDCDCDCD)
m_IntensityThreshold = 100 (0x00000064)
m_Intensity = 100 (0x00000064)
m_Decay = 3.000000 (0x40400000)
m_Flags = [8] { 7 (0x07), 205 (0xCD), 205 (0xCD), 205 (0xCD), 154 (0x9A), 153 (0x99), 153 (0x99), 62 (0x3E) }
m_Gain = 0.300000 (0x3E99999A)
m_Pitch = 1.000000 (0x3F800000)
m_Priority = 100.000000 (0x42C80000)
m_ConeOuterGain = 1.000000 (0x3F800000)
m_PitchUpper = 1.100000 (0x3F8CCCCD)
m_PitchLower = 0.900000 (0x3F666666)
m_GainUpper = 0.500000 (0x3F000000)
m_GainLower = 0.400000 (0x3ECCCCCD)
m_ConeInnerAngle = 360.000000 (0x43B40000)
m_ConeOuterAngle = 360.000000 (0x43B40000)
position = 0x048FF3E0 ->
X = 211.190659 (0x435330CF)
Y = 22.381821 (0x41B30DF8)
Z = 330.809692 (0x43A567A4)
CCmpSoundManager::PlaySoundGroup (ccmpsoundmanager.cpp:130)
this = 0x09921878 ->
m_EntityId = 1 (0x00000001)
m_SimContext = 0x097FCC20 ->
m_ComponentManager = 0x097FCC30 ->
m_ScriptInterface =
m = (auto_ptr<ScriptInterface_impl>)
m_SimContext = 0x097FCC20 (see above)
m_CurrentComponent = 0 (0x00000000)
m_CurrentlyHotloading = false
m_ComponentTypesById = (unsupported map<int,CComponentManager::ComponentType >)
m_ComponentsByInterface = (unsupported vector<boost::unordered_map<size_t,IComponent *,boost::hash<size_t>,equal_to<size_t> > >)
m_ComponentsByTypeId = (unsupported map<int,map<size_t,IComponent * > >)
m_LocalMessageSubscriptions = (unsupported map<int,vector<int > >)
m_GlobalMessageSubscriptions = (unsupported map<int,vector<int > >)
m_ComponentTypeIdsByName = (unsupported map<basic_string<char,char_traits<char> >,int >)
m_MessageTypeIdsByName = (unsupported map<basic_string<char,char_traits<char> >,int >)
m_MessageTypeNamesById = (unsupported map<int,basic_string<char,char_traits<char> > >)
m_InterfaceIdsByName = (unsupported map<basic_string<char,char_traits<char> >,int >)
m_DestructionQueue = (unsupported vector<size_t >)
m_NextScriptComponentTypeId = 78 (0x0000004E)
m_NextEntityId = 1300 (0x00000514)
m_NextLocalEntityId = 536870946 (0x20000022)
m_RNG =
lcf =
_x = 160475196953485 (0x000091F38B1C138D)
m_UnitManager = 0x006A1EE8 ->
m_Units = (unsupported vector<CUnit * >)
m_ObjectManager = 0x0986A8A4 ->
m_MeshManager = 0x0986A85C ->
m_MeshMap =
table_ =
buckets_ = 0x005F1978 ->
next_ = 0x00000000
bucket_count_ = 29 (0x0000001D)
allocators_ =
(unsupported )
(unsupported )
current_ = false
funcs_ = [2] { (too much output; skipping to next top-level symbol), }
size_ = 27 (0x0000001B)
mlf_ = 1.000000 (0x3F800000)
cached_begin_bucket_ = 0x005F197C ->
next_ = 0x20C87D80 ->
next_ = 0x00000000
max_load_ = 29 (0x0000001D)
m_ColladaManager = 0x0986A850 ->
m = 0x09851A58 ->
dll =
m_Name = 0x01873018 -> "Collada"
m_Handle = 0x00000000
set_logger = 0xCDCDCDCD ->
set_skeleton_definitions = 0xCDCDCDCD (see above)
convert_dae_to_pmd = 0xCDCDCDCD (see above)
convert_dae_to_psa = 0xCDCDCDCD (see above)
m_VFS =
px = 0x00611858 (see above)
pn =
pi_ = 0x005F8E90 (see above)
m_VFS =
px = 0x00611858 (see above)
pn =
pi_ = 0x005F8E90 (see above)
m_SkeletonAnimManager = 0x0986A880 ->
m_Animations =
table_ =
buckets_ = 0x005EAFD0 ->
next_ = 0x0B86B010 ->
next_ = 0x0B86AF60 ->
next_ = 0x00000000
bucket_count_ = 29 (0x0000001D)
allocators_ =
(unsupported )
(unsupported )
current_ = false
funcs_ = [2] { { data_ = { buf = [1] { [8] { 205, 205, 205, 21, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} }, { data_ = { buf = [1] { [8] { 205, 205, 21, 0, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} } }
size_ = 21 (0x00000015)
mlf_ = 1.000000 (0x3F800000)
cached_begin_bucket_ = 0x005EAFD0 (see above)
max_load_ = 29 (0x0000001D)
m_ColladaManager = 0x0986A850 (see above)
m_Simulation = 0x097E20A8 ->
m = 0x097FCC20 (see above)
m_Objects = (unsupported map<CObjectManager::ObjectKey,CObjectEntry * >)
m_ObjectBases = (unsupported map<CStrW,CObjectBase * >)
m_Terrain = 0x097FFB10 ->
m_MapSize = 145 (0x00000091)
m_MapSizePatches = 9 (0x00000009)
m_Patches = 0x0E0CF7C4 ->
m_WorldBounds =
m_Data = [2]
X = 0.000000 (0x00000000)
Y = 0.000000 (0x00000000)
Z = 0.000000 (0x00000000)
X = 64.000000 (0x42800000)
Y = 22.382513 (0x41B30F63)
Z = 64.000000 (0x42800000)
m_Transform =
_11 = 1.000000 (0x3F800000)
_21 = 0.000000 (0x00000000)
_31 = 0.000000 (0x00000000)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 1.000000 (0x3F800000)
_32 = 0.000000 (0x00000000)
_42 = 0.000000 (0x00000000)
_13 = 0.000000 (0x00000000)
_23 = 0.000000 (0x00000000)
_33 = 1.000000 (0x3F800000)
_43 = 0.000000 (0x00000000)
_14 = 0.000000 (0x00000000)
_24 = 0.000000 (0x00000000)
_34 = 0.000000 (0x00000000)
_44 = 1.000000 (0x3F800000)
_data = [16]
1.000000 (0x3F800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
1.000000 (0x3F800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
1.000000 (0x3F800000)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { 1.000000 (0x3F800000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 1.000000 (0x3F800000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 1.000000 (0x3F800000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 1.000000 (0x3F800000) }
m_InvTransform =
_11 = -431602080.000000 (0xCDCDCDCD)
_21 = -431602080.000000 (0xCDCDCDCD)
_31 = -431602080.000000 (0xCDCDCDCD)
_41 = -431602080.000000 (0xCDCDCDCD)
_12 = -431602080.000000 (0xCDCDCDCD)
_22 = -431602080.000000 (0xCDCDCDCD)
_32 = -431602080.000000 (0xCDCDCDCD)
_42 = -431602080.000000 (0xCDCDCDCD)
_13 = -431602080.000000 (0xCDCDCDCD)
_23 = -431602080.000000 (0xCDCDCDCD)
_33 = -431602080.000000 (0xCDCDCDCD)
_43 = -431602080.000000 (0xCDCDCDCD)
_14 = -431602080.000000 (0xCDCDCDCD)
_24 = -431602080.000000 (0xCDCDCDCD)
_34 = -431602080.000000 (0xCDCDCDCD)
_44 = -431602080.000000 (0xCDCDCDCD)
_data = [16]
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD) ...
_data2d = [4]
[4] { -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD) }
[4] { -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD) }
[4] { -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD) }
[4] { -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD) }
m_RenderData = 0x24017758 ->
m_UpdateFlags = 0 (0x00000000)
m_BoundsValid = true
m_bWillBeDrawn = false
m_MiniPatches = [16]
[16]
Tex = 0x0BA83E80 ->
m_Tag = { (unsupported basic_string<char,char_traits<char> >) }
m_pProperties =
px = 0x0D004520 ->
m_pParent =
px = 0x0D0044A8 ->
m_pParent =
px = 0x0D3504C8 ->
m_pParent =
px = 0x00000000
pn =
pi_ = 0x00000000
m_BaseColor = 0 (0x00000000)
m_HasBaseColor = false
m_MovementClass = { (unsupported basic_string<char,char_traits<char> >) }
m_TextureAngle = 0.785398 (0x3F490FDB)
m_TextureSize = 32.000000 (0x42000000)
m_Groups = (unsupported vector<CTerrainGroup * >)
pn =
pi_ = 0x0E0CD718 ->
use_count_ = 20 (0x00000014)
weak_count_ = 1 (0x00000001)
m_BaseColor = 0 (0x00000000)
m_HasBaseColor = false
m_MovementClass = { (unsupported basic_string<char,char_traits<char> >) }
m_TextureAngle = 0.785398 (0x3F490FDB)
m_TextureSize = 32.000000 (0x42000000)
m_Groups = (unsupported vector<CTerrainGroup * >)
pn =
pi_ = 0x0E0CEE18 ->
use_count_ = 21 (0x00000015)
weak_count_ = 1 (0x00000001)
m_BaseColor = 4278190080 (0xFF000000)
m_HasBaseColor = true
m_MovementClass = { (unsupported basic_string<char,char_traits<char> >) }
m_TextureAngle = 0.785398 (0x3F490FDB)
m_TextureSize = 32.000000 (0x42000000)
m_Groups = (unsupported vector<CTerrainGroup * >)
pn =
pi_ = 0x0E0CEE58 ->
use_count_ = 1 (0x00000001)
weak_count_ = 1 (0x00000001)
m_Texture =
px = 0x0DF30800 ->
m_Properties =
m_Path =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = [8] { 47 ('/'), 52685, 9987, 0, 10497, 0, 10497, 0 }
m_Filter = 9987 (0x00002703)
m_WrapS = 10497 (0x00002901)
m_WrapT = 10497 (0x00002901)
m_Aniso = 2.000000 (0x40000000)
m_Handle = 22282429 (0x00000000015400BD)
m_BaseColour = 3422552064 (0xCC000000)
m_State = LOADED
m_TextureManager = 0x097F94E0 ->
m_VFS =
px = 0x00611858 (see above)
pn =
pi_ = 0x005F8E90 (see above)
m_CacheLoader =
m_VFS =
px = 0x00611858 (see above)
pn =
pi_ = 0x005F8E90 (see above)
m_FileExtension = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
m_DisableGL = false
m_TextureConverter =
m_VFS =
px = 0x00611858 (see above)
pn =
pi_ = 0x005F8E90 (see above)
m_HighQuality = false
m_WorkerThread = 956 (0x000003BC)
m_WorkerMutex = 0x00775ED8
m_WorkerSem = 0x000003B8
m_RequestQueue = (unsupported deque<boost::shared_ptr<CTextureConverter::ConversionRequest> >)
m_ResultQueue = (unsupported deque<boost::shared_ptr<CTextureConverter::ConversionResult> >)
m_Shutdown = false
m_DefaultHandle = 65537 (0x0000000000010001)
m_ErrorHandle = 131074 (0x0000000000020002)
m_ErrorTexture =
px = 0x097E2410 ->
m_Properties =
m_Path =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = [8] { 47 ('/'), 52685, 9987, 0, 10497, 0, 10497, 0 }
m_Filter = 9987 (0x00002703)
m_WrapS = 10497 (0x00002901)
m_WrapT = 10497 (0x00002901)
m_Aniso = 1.000000 (0x3F800000)
m_Handle = 131074 (0x0000000000020002)
m_BaseColour = 0 (0x00000000)
m_State = LOADED
m_TextureManager = 0x097F94E0 (see above)
m_Self =
px = 0x097E2410 (see above)
pn =
pi_ = 0x097FEB90 ->
use_count_ = 1 (0x00000001)
weak_count_ = 2 (0x00000002)
pn =
pi_ = 0x097FEB90 (see above)
m_TextureCache =
table_ =
buckets_ = 0x0DED4A28 ->
next_ = 0x00000000
bucket_count_ = 769 (0x00000301)
allocators_ =
(unsupported )
(unsupported )
current_ = false
funcs_ = [2] { { data_ = { buf = [2] { (uninitialized), (uninitialized) }, align_ =
t0 = (uninitialized)
t1 = (uninitialized)
t2 = (uninitialized)
t3 = (uninitialized)
t4 = (uninitialized)
t5 = (uninitialized)
t6 = (uninitialized)
t7 = (uninitialized)
t8 = (uninitialized)
t9 = (uninitialized)
t10 = (uninitialized)
t11 = (uninitialized)
t12 = (uninitialized)
t13 = (uninitialized)
t14 = (uninitialized)
t15 = (uninitialized)
t16 = (uninitialized)
t17 = (uninitialized)
t18 = (uninitialized)
t19 = (uninitialized)
t20 = (uninitialized)
t21 = (uninitialized)
t22 = (uninitialized)
t23 = (uninitialized)
} }, { data_ = { buf = [2] { [8] { 205, 205, 205, 205, 205, 125 ('}'), 2, 0 }, 205 }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} } }
size_ = 637 (0x0000027D)
mlf_ = 1.000000 (0x3F800000)
cached_begin_bucket_ = 0x0DED4A2C ->
next_ = 0x0DF3F1E8 ->
next_ = 0x0DE583E8 ->
next_ = 0x00000000
max_load_ = 769 (0x00000301)
m_HotloadFiles =
table_ =
buckets_ = 0x0DF46D48 ->
next_ = 0x00000000
bucket_count_ = 769 (0x00000301)
allocators_ =
(unsupported )
(unsupported )
current_ = false
funcs_ = [2] { { data_ = { buf = [1] { [8] { 205, 205, 205, 157, 2, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} }, { data_ = { buf = [1] { [8] { 205, 205, 157, 2, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} } }
size_ = 669 (0x0000029D)
mlf_ = 1.000000 (0x3F800000)
cached_begin_bucket_ = 0x0DF46D4C ->
next_ = 0x0DF074B0 ->
next_ = 0x00000000
max_load_ = 769 (0x00000301)
m_SettingsFiles =
table_ =
buckets_ = 0x097F63E0 ->
next_ = 0x0DEDC8B0 ->
next_ = 0x00000000
bucket_count_ = 53 (0x00000035)
allocators_ =
(unsupported )
(unsupported )
current_ = false
funcs_ = [2] { { data_ = { buf = [1] { [8] { 205, 205, 205, 32 (' '), 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} }, { data_ = { buf = [1] { [8] { 205, 205, 32 (' '), 0, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} } }
size_ = 32 (0x00000020)
mlf_ = 1.000000 (0x3F800000)
cached_begin_bucket_ = 0x097F63E0 (see above)
max_load_ = 53 (0x00000035)
m_Self =
px = 0x0DF30800 (see above)
pn =
pi_ = 0x0DF176A0 ->
use_count_ = 2 (0x00000002)
weak_count_ = 9 (0x00000009)
pn =
pi_ = 0x0DF176A0 (see above)
m_TextureMatrix =
_11 = 0.022097 (0x3CB504F3)
_21 = -0.022097 (0xBCB504F3)
_31 = 0.000000 (0x00000000)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 0.000000 (0x00000000)
_32 = 0.000000 (0x00000000)
_42 = 0.000000 (0x00000000)
_13 = -0.022097 (0xBCB504F3)
_23 = -0.022097 (0xBCB504F3)
_33 = 0.000000 (0x00000000)
_43 = 0.000000 (0x00000000)
_14 = 0.000000 (0x00000000)
_24 = 0.000000 (0x00000000)
_34 = 0.000000 (0x00000000)
_44 = 1.000000 (0x3F800000)
_data = [16]
0.022097 (0x3CB504F3)
-0.022097 (0xBCB504F3)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
-0.022097 (0xBCB504F3)
-0.022097 (0xBCB504F3)
0.000000 (0x00000000)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { 0.022097 (0x3CB504F3), -0.022097 (0xBCB504F3), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { -0.022097 (0xBCB504F3), -0.022097 (0xBCB504F3), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 1.000000 (0x3F800000) }
m_BaseColor = 4278190080 (0xFF000000)
m_BaseColorValid = true
m_Groups = (unsupported vector<CTerrainGroup * >)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
...
[16]
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
...
[16]
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
...
[16]
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
...
[16]
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
...
[16]
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
...
[16]
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
...
[16]
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
Tex = 0x0BA83E80 (see above)
Priority = 0 (0x00000000)
... ...
m_X = 0 (0x00000000)
m_Z = 0 (0x00000000)
m_Parent = 0x097FFB10 (see above)
m_Heightmap = 0x0B7AB178 -> 16384 (0x4000)
m_BaseColour =
R = [8] { 255 (0xFF), 255 (0xFF), 255 (0xFF), 255 (0xFF), 253 (0xFD), 253 (0xFD), 253 (0xFD), 253 (0xFD) }
G = 255 (0xFF)
B = 255 (0xFF)
A = 255 (0xFF)
m_SoundGroups = (unsupported map<basic_string<wchar_t,char_traits<wchar_t> >,CSoundGroup * >)
name = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
source = 948 (0x000003B4)
cmpRangeManager =
m = 0x097F4808 ->
m_EntityId = 1 (0x00000001)
m_SimContext = 0x097FCC20 (see above)
vis = VIS_VISIBLE
group = 0x0DE30638 (see above)
CUnitAnimation::Update (unitanimation.cpp:193)
animDef = 0x20D88500 ->
m_FrameTime = 33.000000 (0x42040000)
m_NumKeys = 29 (0x0000001D)
m_NumFrames = 311 (0x00000137)
m_Keys = 0x20DAB968 ->
m_Translation =
X = -0.158727 (0xBE228942)
Y = 1.941809 (0x3FF88D2F)
Z = -0.642303 (0xBF246DFC)
m_Rotation =
m_V =
X = -0.000000 (0x80000000)
Y = -0.973917 (0xBF7952A6)
Z = -0.000000 (0x80000000)
m_W = -0.226903 (0xBE685940)
duration = 10263.000000 (0x46205C00)
hasLoadPos = true
actionPos = 8620.919922 (0x4606B3AE)
hasActionPos = true
speed = 5.131500 (0x40A4353F)
advance = 375480.218750 (0x48B75707)
loadPos = 1642.079956 (0x44CD428F)
it = (_Vector_iterator<_Vector_val<CUnitAnimation::SModelAnimState > >)
this = 0x225E8540 ->
m_AnimStates = (vector<CUnitAnimation::SModelAnimState >)
m_Entity = 948 (0x000003B4)
m_Model = 0x277CD250 ->
m_WorldBounds =
m_Data = [2]
X = 208.543396 (0x43508B1C)
Y = 22.410460 (0x41B3489F)
Z = 330.337708 (0x43A52B3A)
X = 211.407562 (0x43536856)
Y = 26.773624 (0x41D63062)
Z = 332.683350 (0x43A65778)
m_Transform =
_11 = -0.047295 (0xBD41B8D2)
_21 = 0.000000 (0x00000000)
_31 = -0.998881 (0xBF7FB6A9)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 1.000000 (0x3F800000)
_32 = 0.000000 (0x00000000)
_42 = 0.000000 (0x00000000)
_13 = 0.998881 (0x3F7FB6A9)
_23 = 0.000000 (0x00000000)
_33 = -0.047295 (0xBD41B8D2)
_43 = 0.000000 (0x00000000)
_14 = 211.190659 (0x435330CF)
_24 = 22.382513 (0x41B30F63)
_34 = 330.809692 (0x43A567A4)
_44 = 1.000000 (0x3F800000)
_data = [16]
-0.047295 (0xBD41B8D2)
0.000000 (0x00000000)
-0.998881 (0xBF7FB6A9)
0.000000 (0x00000000)
0.000000 (0x00000000)
1.000000 (0x3F800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.998881 (0x3F7FB6A9)
0.000000 (0x00000000)
-0.047295 (0xBD41B8D2)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { -0.047295 (0xBD41B8D2), 0.000000 (0x00000000), -0.998881 (0xBF7FB6A9), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 1.000000 (0x3F800000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.998881 (0x3F7FB6A9), 0.000000 (0x00000000), -0.047295 (0xBD41B8D2), 0.000000 (0x00000000) }
[4] { 211.190659 (0x435330CF), 22.382513 (0x41B30F63), 330.809692 (0x43A567A4), 1.000000 (0x3F800000) }
m_InvTransform =
_11 = -0.047295 (0xBD41B8D4)
_21 = 0.000000 (0x00000000)
_31 = 0.998881 (0x3F7FB6AB)
(too much output; skipping to next top-level symbol)
m_RenderData = 0x229D9748 ->
m_UpdateFlags = 0 (0x00000000)
m_BoundsValid = true
m_Parent = 0x00000000
m_PositionValid = false
m_PlayerID = 2 (0x00000002)
m_ShadingColor =
r = 1.000000 (0x3F800000)
g = 1.000000 (0x3F800000)
b = 1.000000 (0x3F800000)
a = 1.000000 (0x3F800000)
m_SelectionBox =
m_Center =
X = 209.969635 (0x4351F83A)
Y = 24.592041 (0x41C4BC80)
Z = 331.387024 (0x43A5B18A)
m_HalfSizes =
X = 1.232382 (0x3F9DBEB2)
Y = 2.181582 (0x400B9F0C)
Z = 1.381192 (0x3FB0CAE5)
m_Basis = [3]
X = -0.047297 (0xBD41BB02)
Y = 0.000000 (0x00000000)
Z = -0.998881 (0xBF7FB6A7)
X = 0.000000 (0x00000000)
Y = 1.000000 (0x3F800000)
Z = 0.000000 (0x00000000)
X = 0.998881 (0x3F7FB6AA)
Y = 0.000000 (0x00000000)
Z = -0.047295 (0xBD41B7F4)
m_SelectionBoxValid = false
m_CustomSelectionShape = 0x00000000
m_Flags = 5 (0x00000005)
m_Texture =
px = 0x0DEB70E0 ->
m_Properties =
m_Path =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = [8] { 47 ('/'), 52685, 9987, 0, 33071, 0, 33071, 0 }
m_Filter = 9987 (0x00002703)
m_WrapS = 33071 (0x0000812F)
m_WrapT = 33071 (0x0000812F)
m_Aniso = 1.000000 (0x3F800000)
m_Handle = 22151355 (0x00000000015200BB)
m_BaseColour = 2679807625 (0x9FBA9E89)
m_State = LOADED
m_TextureManager = 0x097F94E0 (see above)
m_Self =
px = 0x0DEB70E0 (see above)
pn =
pi_ = 0x20D88300 ->
use_count_ = 359 (0x00000167)
weak_count_ = 8 (0x00000008)
pn =
pi_ = 0x20D88300 (see above)
m_Material =
m_Texture = { (unsupported basic_string<char,char_traits<char> >) }
m_Alpha = false
m_PlayerID = 2 (0x00000002)
m_TextureColor =
r = 1.000000 (0x3F800000)
g = 1.000000 (0x3F800000)
b = 1.000000 (0x3F800000)
a = 1.000000 (0x3F800000)
m_UsePlayerColor = true
m_UseTextureColor = false
m_pModelDef =
px = 0x203417A0 ->
m_NumVertices = 302 (0x0000012E)
m_pVertices = 0x0BAF9178 ->
m_Coords =
X = 0.507903 (0x3F0205F2)
Y = 1.466088 (0x3FBBA8C2)
Z = 0.157111 (0x3E20E1AC)
m_Norm =
X = 0.788361 (0x3F49D206)
Y = 0.047649 (0x3D432B98)
Z = 0.613365 (0x3F1D057C)
m_U = 0.810705 (0x3F4F8A5D)
m_V = 0.125270 (0x3E0046C7)
m_Blend =
m_Bone = [4] { [8] { 19 (0x13), 255 (0xFF), 255 (0xFF), 255 (0xFF), 0 (0x00), 0 (0x00), 128 (0x80), 63 (0x3F) }, 255 (0xFF), 255 (0xFF), 255 (0xFF) }
m_Weight = [4] { 1.000000 (0x3F800000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
m_NumFaces = 390 (0x00000186)
m_pFaces = 0x0B92DAE0 ->
m_Verts = [3] { 0 (0x0000), 1 (0x0001), 2 (0x0002) }
m_NumBones = 29 (0x0000001D)
m_Bones = 0x0D350C38 ->
m_Translation =
X = 0.000000 (0x00000000)
Y = 0.000000 (0x00000000)
Z = 0.000000 (0x00000000)
m_Rotation =
m_V =
X = 0.000000 (0x00000000)
Y = 0.000000 (0x00000000)
Z = 0.000000 (0x00000000)
m_W = -1.000000 (0xBF800000)
m_NumBlends = 91 (0x0000005B)
m_pBlends = 0x0D2C7780 ->
m_Bone = [4] { [8] { 19 (0x13), 20 (0x14), 255 (0xFF), 255 (0xFF), 249 (0xF9), 162 (0xA2), 121 (0x79), 63 (0x3F) }, 20 (0x14), 255 (0xFF), 255 (0xFF) }
m_Weight = [4] { 0.975143 (0x3F79A2F9), 0.024857 (0x3CCBA0E8), 0.000000 (0x00000000), 0.000000 (0x00000000) }
m_pBlendIndices = 0x0993AE20 -> 19 (0x00000013)
m_PropPoints = (unsupported vector<SPropPoint >)
m_Name =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = [8] { 47 ('/'), 52685, 48224, 3377, 52685, 52685, 8488, 3575 }
m_RenderData = (unsupported map<void const *,CModelDefRPrivate * >)
pn =
pi_ = 0x0D2CD708 ->
use_count_ = 2712 (0x00000A98)
weak_count_ = 3 (0x00000003)
m_ObjectBounds =
m_Data = [2]
X = -1.751325 (0xBFE02B6B)
Y = 0.027947 (0x3CE4F097)
Z = -2.628159 (0xC02833C0)
X = 0.466159 (0x3EEEAC59)
Y = 4.391111 (0x408C83FC)
Z = 0.134224 (0x3E0971EA)
m_Anim = 0x27454E38 ->
m_Name = { (unsupported basic_string<char,char_traits<char> >) }
m_AnimDef = 0x20D88500 (see above)
m_Speed = 0.900000 (0x3F666666)
m_ActionPos = 8620.919922 (0x4606B3AE)
m_ActionPos2 = 1642.079956 (0x44CD428F)
m_ObjectBounds =
m_Data = [2]
X = -1.751325 (0xBFE02B6B)
Y = 0.027947 (0x3CE4F097)
Z = -2.628159 (0xC02833C0)
X = 0.466159 (0x3EEEAC59)
Y = 4.391111 (0x408C83FC)
Z = 0.134224 (0x3E0971EA)
m_AnimTime = 3856.812500 (0x45710D00)
m_BoneMatrices = 0x278A9DF0 ->
_11 = -0.341745 (0xBEAEF940)
_21 = 0.182973 (0x3E3B5D60)
_31 = 0.921808 (0x3F6BFBA1)
_41 = 0.000000 (0x00000000)
_12 = 0.063582 (0x3D823782)
_22 = 0.983118 (0x3F7BAD9D)
_32 = -0.171571 (0xBE2FB041)
_42 = 0.000000 (0x00000000)
_13 = -0.937639 (0xBF70091E)
_23 = -0.000023 (0xB7BE7000)
_33 = -0.347610 (0xBEB1F9EB)
_43 = 0.000000 (0x00000000)
_14 = 210.503586 (0x435280EB)
_24 = 24.324539 (0x41C298A8)
_34 = 331.029633 (0x43A583CB)
_44 = 1.000000 (0x3F800000)
_data = [16]
-0.341745 (0xBEAEF940)
0.182973 (0x3E3B5D60)
0.921808 (0x3F6BFBA1)
0.000000 (0x00000000)
0.063582 (0x3D823782)
0.983118 (0x3F7BAD9D)
-0.171571 (0xBE2FB041)
0.000000 (0x00000000)
-0.937639 (0xBF70091E)
-0.000023 (0xB7BE7000)
-0.347610 (0xBEB1F9EB)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { -0.341745 (0xBEAEF940), 0.182973 (0x3E3B5D60), 0.921808 (0x3F6BFBA1), 0.000000 (0x00000000) }
[4] { 0.063582 (0x3D823782), 0.983118 (0x3F7BAD9D), -0.171571 (0xBE2FB041), 0.000000 (0x00000000) }
[4] { -0.937639 (0xBF70091E), -0.000023 (0xB7BE7000), -0.347610 (0xBEB1F9EB), 0.000000 (0x00000000) }
[4] { 210.503586 (0x435280EB), 24.324539 (0x41C298A8), 331.029633 (0x43A583CB), 1.000000 (0x3F800000) }
m_InverseBindBoneMatrices = 0x27721B40 ->
_11 = 1.000000 (0x3F800000)
_21 = 0.000000 (0x00000000)
_31 = 0.000000 (0x00000000)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 1.000000 (0x3F800000)
_32 = 0.000000 (0x00000000)
_42 = 0.000000 (0x00000000)
_13 = 0.000000 (0x00000000)
_23 = 0.000000 (0x00000000)
_33 = 1.000000 (0x3F800000)
_43 = 0.000000 (0x00000000)
_14 = 0.000000 (0x00000000)
_24 = 0.000000 (0x00000000)
_34 = 0.000000 (0x00000000)
_44 = 1.000000 (0x3F800000)
_data = [16]
1.000000 (0x3F800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
1.000000 (0x3F800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
1.000000 (0x3F800000)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { 1.000000 (0x3F800000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 1.000000 (0x3F800000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 1.000000 (0x3F800000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 1.000000 (0x3F800000) }
m_Props = (vector<CModel::Prop >)
m_AmmoPropPoint = 0x0B92EC30 ->
m_Name = { (unsupported basic_string<char,char_traits<char> >) }
m_Position =
X = 0.111625 (0x3DE49BA6)
Y = -0.022327 (0xBCB6E71D)
Z = 0.047914 (0x3D444178)
m_Rotation =
m_V =
X = -0.017978 (0xBC9345CF)
Y = 0.689260 (0x3F307356)
Z = -0.014345 (0xBC6B058A)
m_W = -0.724149 (0xBF3961D4)
m_Transform =
_11 = 0.049430 (0x3D4A773A)
_21 = -0.004007 (0xBB834F80)
_31 = 0.998769 (0x3F7FAF5B)
_41 = 0.000000 (0x00000000)
_12 = -0.045558 (0xBD3A9AC0)
_22 = 0.998942 (0x3F7FBAAB)
_32 = 0.006263 (0x3BCD370C)
_42 = 0.000000 (0x00000000)
_13 = -0.997738 (0xBF7F6BC1)
_23 = -0.045811 (0xBD3BA492)
_33 = 0.049195 (0x3D4980F6)
_43 = 0.000000 (0x00000000)
_14 = 0.111625 (0x3DE49BA6)
_24 = -0.022327 (0xBCB6E71D)
_34 = 0.047914 (0x3D444178)
_44 = 1.000000 (0x3F800000)
_data = [16]
0.049430 (0x3D4A773A)
-0.004007 (0xBB834F80)
0.998769 (0x3F7FAF5B)
0.000000 (0x00000000)
-0.045558 (0xBD3A9AC0)
0.998942 (0x3F7FBAAB)
0.006263 (0x3BCD370C)
0.000000 (0x00000000)
-0.997738 (0xBF7F6BC1)
-0.045811 (0xBD3BA492)
0.049195 (0x3D4980F6)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { 0.049430 (0x3D4A773A), -0.004007 (0xBB834F80), 0.998769 (0x3F7FAF5B), 0.000000 (0x00000000) }
[4] { -0.045558 (0xBD3A9AC0), 0.998942 (0x3F7FBAAB), 0.006263 (0x3BCD370C), 0.000000 (0x00000000) }
[4] { -0.997738 (0xBF7F6BC1), -0.045811 (0xBD3BA492), 0.049195 (0x3D4980F6), 0.000000 (0x00000000) }
[4] { 0.111625 (0x3DE49BA6), -0.022327 (0xBCB6E71D), 0.047914 (0x3D444178), 1.000000 (0x3F800000) }
m_BoneIndex = [8] { 16 (0x10), 205 (0xCD), 205 (0xCD), 205 (0xCD), 232 (0xE8), 224 (0xE0), 49 (0x31), 13 (0x0D) }
m_AmmoLoadedProp = 3 (0x00000003)
m_SkeletonAnimManager = 0x0986A880 (see above)
m_Object = 0x2411A590 ->
m_Base = 0x0D2A3040 ->
m_Pathname =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = [8] { 47 ('/'), 52685, 64144, 8408, 23296, 8392, 52685, 52685 }
m_ShortName = { (unsupported basic_string<wchar_t,char_traits<wchar_t> >) }
m_Properties = { m_AutoFlatten = false, m_CastShadows = true , m_FloatOnWater = false }
m_Material =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = [8] { 47 ('/'), 52685, 64256, 8408, 57936, 8397, 57976, 8397 }
m_VariantGroups = (unsupported vector<vector<CObjectBase::Variant > >)
m_ObjectManager = 0x0986A8A4 (see above)
m_UsedFiles =
table_ =
buckets_ = 0x20C84BA0 ->
next_ = 0x20CDE1F8 ->
next_ = 0x00000000
bucket_count_ = 11 (0x0000000B)
allocators_ =
(unsupported )
(unsupported )
current_ = false
funcs_ = [2] { { data_ = { buf = [1] { [8] { 205, 205, 205, 4, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} }, { data_ = { buf = [1] { [8] { 205, 205, 4, 0, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} } }
size_ = 4 (0x00000004)
mlf_ = 1.000000 (0x3F800000)
cached_begin_bucket_ = 0x20C84BA0 (see above)
max_load_ = 11 (0x0000000B)
m_TextureName =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = [8] { 47 ('/'), 52685, 8064, 8427, 15104, 10032, 52685, 52685 }
m_ModelName =
path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
separator = [8] { 47 ('/'), 52685, 0, 16256, 0, 16256, 0, 16256 }
m_Color =
r = 1.000000 (0x3F800000)
g = 1.000000 (0x3F800000)
b = 1.000000 (0x3F800000)
a = 1.000000 (0x3F800000)
m_ProjectileModelName = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
m_Model = 0x23088290 ->
m_WorldBounds =
m_Data = [2]
X = 340282346638528860000000000000000000000.000000 (0x7F7FFFFF)
Y = 340282346638528860000000000000000000000.000000 (0x7F7FFFFF)
Z = 340282346638528860000000000000000000000.000000 (0x7F7FFFFF)
X = -340282346638528860000000000000000000000.000000 (0xFF7FFFFF)
Y = -340282346638528860000000000000000000000.000000 (0xFF7FFFFF)
Z = -340282346638528860000000000000000000000.000000 (0xFF7FFFFF)
m_Transform =
_11 = 1.000000 (0x3F800000)
_21 = 0.000000 (0x00000000)
_31 = 0.000000 (0x00000000)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 1.000000 (0x3F800000)
_32 = 0.000000 (0x00000000)
_42 = 0.000000 (0x00000000)
_13 = 0.000000 (0x00000000)
_23 = 0.000000 (0x00000000)
_33 = 1.000000 (0x3F800000)
_43 = 0.000000 (0x00000000)
_14 = 0.000000 (0x00000000)
_24 = 0.000000 (0x00000000)
_34 = 0.000000 (0x00000000)
_44 = 1.000000 (0x3F800000)
_data = [16]
1.000000 (0x3F800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
1.000000 (0x3F800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
1.000000 (0x3F800000)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { 1.000000 (0x3F800000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 1.000000 (0x3F800000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 1.000000 (0x3F800000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 1.000000 (0x3F800000) }
m_InvTransform =
_11 = -431602080.000000 (0xCDCDCDCD)
_21 = -431602080.000000 (0xCDCDCDCD)
_31 = -431602080.000000 (0xCDCDCDCD)
_41 = -431602080.000000 (0xCDCDCDCD)
_12 = -431602080.000000 (0xCDCDCDCD)
_22 = -431602080.000000 (0xCDCDCDCD)
_32 = -431602080.000000 (0xCDCDCDCD)
_42 = -431602080.000000 (0xCDCDCDCD)
_13 = -431602080.000000 (0xCDCDCDCD)
_23 = -431602080.000000 (0xCDCDCDCD)
_33 = -431602080.000000 (0xCDCDCDCD)
_43 = -431602080.000000 (0xCDCDCDCD)
_14 = -431602080.000000 (0xCDCDCDCD)
_24 = -431602080.000000 (0xCDCDCDCD)
_34 = -431602080.000000 (0xCDCDCDCD)
_44 = -431602080.000000 (0xCDCDCDCD)
_data = [16]
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD)
-431602080.000000 (0xCDCDCDCD) ...
_data2d = [4]
[4] { -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD) }
[4] { -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD) }
[4] { -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD) }
[4] { -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD), -431602080.000000 (0xCDCDCDCD) }
m_RenderData = 0x00000000
m_BoundsValid = false
m_Parent = 0x00000000
m_PositionValid = true
m_PlayerID = 4294967295 (0xFFFFFFFF)
m_ShadingColor =
r = 1.000000 (0x3F800000)
g = 1.000000 (0x3F800000)
b = 1.000000 (0x3F800000)
a = 1.000000 (0x3F800000)
m_SelectionBox =
m_Center =
X = 0.000000 (0x00000000)
Y = 0.000000 (0x00000000)
Z = 0.000000 (0x00000000)
m_HalfSizes =
X = 0.000000 (0x00000000)
Y = 0.000000 (0x00000000)
Z = 0.000000 (0x00000000)
m_Basis = [3]
X = 0.000000 (0x00000000)
Y = 0.000000 (0x00000000)
Z = 0.000000 (0x00000000)
X = 0.000000 (0x00000000)
Y = 0.000000 (0x00000000)
Z = 0.000000 (0x00000000)
X = 0.000000 (0x00000000)
Y = 0.000000 (0x00000000)
Z = 0.000000 (0x00000000)
m_SelectionBoxValid = false
m_CustomSelectionShape = 0x00000000
m_Outdated = false
m_Animations = (unsupported multimap<CStr8,CSkeletonAnim * >)
m_State = { (unsupported basic_string<char,char_traits<char> >) }
m_Looping = true
m_OriginalSpeed = 1.000000 (0x3F800000)
m_Speed = 1.047635 (0x3F8618EB)
m_SyncRepeatTime = 2000.000000 (0x44FA0000)
m_Desync = 0.049988 (0x3D4CC000)
m_ActionSound = { (unsupported basic_string<wchar_t,char_traits<wchar_t> >) }
time = 73171.632813 (0x478EE9D1)
CUnit::UpdateModel (unit.cpp:71)
this = 0x23149440 ->
m_Object = 0x2411A590 (see above)
m_Model = 0x277CD250 (see above)
m_Animation = 0x225E8540 (see above)
m_ID = 948 (0x000003B4)
m_ActorSelections = (unsupported set<CStr8 >)
m_EntitySelections = (unsupported set<CStr8 >)
m_ObjectManager = 0x0986A8A4 (see above)
frameTime = 73.171631 (0x429257E0)
CCmpVisualActor::Interpolate (ccmpvisualactor.cpp:629)
this = 0x22E88058 ->
m_EntityId = 948 (0x000003B4)
m_SimContext = 0x097FCC20 (see above)
m_ActorName = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
m_Unit = 0x23149440 (see above)
m_R =
value = 65536 (0x00010000)
m_G =
value = 65536 (0x00010000)
m_B =
value = 65536 (0x00010000)
m_Visibility = VIS_VISIBLE
m_AnimRunThreshold =
value = 0 (0x00000000)
m_AnimName = (unsupported basic_string<char,char_traits<char> >)
m_AnimOnce = false
m_AnimSpeed =
value = 65536 (0x00010000)
m_SoundGroup = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
m_AnimDesync =
value = 3276 (0x00000CCC)
m_AnimSyncRepeatTime =
value = 131072000 (0x07D00000)
frameTime = 73.171631 (0x429257E0)
frameOffset = 1.000000 (0x3F800000)
transform =
_11 = -0.047295 (0xBD41B8D2)
_21 = 0.000000 (0x00000000)
_31 = -0.998881 (0xBF7FB6A9)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 1.000000 (0x3F800000)
_32 = 0.000000 (0x00000000)
_42 = 0.000000 (0x00000000)
_13 = 0.998881 (0x3F7FB6A9)
_23 = 0.000000 (0x00000000)
_33 = -0.047295 (0xBD41B8D2)
_43 = 0.000000 (0x00000000)
_14 = 211.190659 (0x435330CF)
_24 = 22.382513 (0x41B30F63)
_34 = 330.809692 (0x43A567A4)
_44 = 1.000000 (0x3F800000)
_data = [16]
-0.047295 (0xBD41B8D2)
0.000000 (0x00000000)
-0.998881 (0xBF7FB6A9)
0.000000 (0x00000000)
0.000000 (0x00000000)
1.000000 (0x3F800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.998881 (0x3F7FB6A9)
0.000000 (0x00000000)
-0.047295 (0xBD41B8D2)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { -0.047295 (0xBD41B8D2), 0.000000 (0x00000000), -0.998881 (0xBF7FB6A9), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 1.000000 (0x3F800000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.998881 (0x3F7FB6A9), 0.000000 (0x00000000), -0.047295 (0xBD41B8D2), 0.000000 (0x00000000) }
[4] { 211.190659 (0x435330CF), 22.382513 (0x41B30F63), 330.809692 (0x43A567A4), 1.000000 (0x3F800000) }
model = 0x277CD250 (see above)
cmpVision =
m = 0x23229718 ->
m_EntityId = 948 (0x000003B4)
m_SimContext = 0x097FCC20 (see above)
cmpPosition =
m = 0x230E2558 ->
m_EntityId = 948 (0x000003B4)
m_SimContext = 0x097FCC20 (see above)
floating = false
CCmpVisualActor::HandleMessage (ccmpvisualactor.cpp:265)
this = 0x22E88058 (see above)
msg = 0x048FF728 ->
m_Cached =
m_Val =
px = 0x00000000
pn =
pi_ = 0x00000000
__formal = false
CComponentManager::BroadcastMessage (componentmanager.cpp:826)
emap = (unsupported _Tree_const_iterator<_Tree_val<<int,map<size_t,IComponent * >> >)
eit = (unsupported _Tree_const_iterator<_Tree_val<<size_t,IComponent *> >)
ctit = (unsupported _Vector_const_iterator<_Vector_val<int > >)
this = 0x097FCC30 (see above)
msg = 0x048FF728 (see above)
it = (unsupported _Tree_const_iterator<_Tree_val<<int,vector<int >> >)
CSimulation2Impl::Interpolate (simulation2.cpp:525)
this = 0x097FCC20 (see above)
frameLength = 73.171631 (0x429257E0)
frameOffset = 1.000000 (0x3F800000)
msg =
m_Cached =
m_Val =
px = 0x00000000
pn =
pi_ = 0x00000000
frameTime = 73.171631 (0x429257E0)
offset = 1.000000 (0x3F800000)
profile2__ =
m_Name = 0x017B9758 -> "sim interpolate"
CSimulation2::Interpolate (simulation2.cpp:658)
this = 0x097E20A8 (see above)
frameLength = 73.171631 (0x429257E0)
frameOffset = 1.000000 (0x3F800000)
CNetTurnManager::Interpolate (netturnmanager.cpp:257)
this = 0x098713C0 ->
m_Simulation2 = 0x097E20A8 (see above)
m_CurrentTurn = 178 (0x000000B2)
m_ReadyTurn = 179 (0x000000B3)
m_TurnLength = 200 (0x000000C8)
m_QueuedCommands = (unsupported deque<map<size_t,vector<SimulationCommand > > >)
m_PlayerId = 1 (0x00000001)
m_ClientId = 0 (0x00000000)
m_DeltaTime = 1038.073975 (0x4481C25E)
m_HasSyncError = false
m_Replay = 0x0E026C98 -> (IReplayLogger)
m_TimeWarpNumTurns = 0 (0x00000000)
m_TimeWarpStates = (unsupported list<basic_string<char,char_traits<char> > >)
m_QuickSaveState = (unsupported basic_string<char,char_traits<char> >)
frameLength = 73.171631 (0x429257E0)
offset = 1.000000 (0x3F800000)
CGame::Interpolate (game.cpp:319)
this = 0x09864818 ->
m_World = 0x097FFAD0 ->
m_pGame = 0x09864818 (see above)
m_Terrain = 0x097FFB10 (see above)
m_UnitManager = 0x006A1EE8 (see above)
m_TerritoryManager = 0x00000000
m_Simulation2 = 0x097E20A8 (see above)
m_GameView = 0x0E0270F8 ->
(Scene)
m = 0x0986A800 ->
(IJSObject)
m_JS = 0x00000000
m_NonsharedProperties =
table_ =
buckets_ = 0x00000000
bucket_count_ = 11 (0x0000000B)
allocators_ =
(unsupported )
(unsupported )
current_ = false
funcs_ = [2] { { data_ = { buf = [1] { [8] { 205, 205, 205, 0, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} }, { data_ = { buf = [1] { [8] { 205, 205, 0, 0, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
(too much output; skipping to next top-level symbol)
} } }
size_ = 0 (0x00000000)
mlf_ = 1.000000 (0x3F800000)
cached_begin_bucket_ = 0x00000000
max_load_ = 0 (0x00000000)
m_ScriptProperties =
table_ =
buckets_ = 0x00000000
bucket_count_ = 11 (0x0000000B)
allocators_ =
(unsupported )
(unsupported )
current_ = false
funcs_ = [2] { { data_ = { buf = [1] { [8] { 205, 205, 205, 0, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} }, { data_ = { buf = [1] { [8] { 205, 205, 0, 0, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} } }
size_ = 0 (0x00000000)
mlf_ = 1.000000 (0x3F800000)
cached_begin_bucket_ = 0x00000000
max_load_ = 0 (0x00000000)
m_EngineOwned = true
Game = 0x09864818 (see above)
ColladaManager =
m = 0x09851A58 (see above)
m_VFS =
px = 0x00611858 (see above)
pn =
pi_ = 0x005F8E90 (see above)
MeshManager =
m_MeshMap =
table_ =
buckets_ = 0x005F1978 (see above)
bucket_count_ = 29 (0x0000001D)
allocators_ =
(unsupported )
(unsupported )
current_ = false
funcs_ = [2] { { data_ = { buf = [1] { [8] { 205, 205, 205, 27, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} }, { data_ = { buf = [1] { [8] { 205, 205, 27, 0, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} } }
size_ = 27 (0x0000001B)
mlf_ = 1.000000 (0x3F800000)
cached_begin_bucket_ = 0x005F197C (see above)
max_load_ = 29 (0x0000001D)
m_ColladaManager = 0x0986A850 (see above)
SkeletonAnimManager =
m_Animations =
table_ =
buckets_ = 0x005EAFD0 (see above)
bucket_count_ = 29 (0x0000001D)
allocators_ =
(unsupported )
(unsupported )
current_ = false
funcs_ = [2] { { data_ = { buf = [1] { [8] { 205, 205, 205, 21, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} }, { data_ = { buf = [1] { [8] { 205, 205, 21, 0, 0, 0, 0, 0 } }, align_ =
t0 = 205
t1 = 205
t2 = 205
t3 = 205
t4 = 205
t5 = 205
t6 = 205
t7 = 205
t8 = 205
t9 = 205
t10 = 205
t11 = 205
t12 = 205
t13 = 205
t14 = 205
t15 = 205
t16 = 205
t17 = 205
t18 = 205
t19 = 205
t20 = 205
t21 = 205
t22 = 205
t23 = 205
} } }
size_ = 21 (0x00000015)
mlf_ = 1.000000 (0x3F800000)
cached_begin_bucket_ = 0x005EAFD0 (see above)
max_load_ = 29 (0x0000001D)
m_ColladaManager = 0x0986A850 (see above)
ObjectManager =
m_MeshManager = 0x0986A85C (see above)
m_SkeletonAnimManager = 0x0986A880 (see above)
m_Simulation = 0x097E20A8 (see above)
m_Objects = (unsupported map<CObjectManager::ObjectKey,CObjectEntry * >)
m_ObjectBases = (unsupported map<CStrW,CObjectBase * >)
LOSTexture =
m_Simulation = 0x097E20A8 (see above)
m_Dirty = true
m_Texture = 192 (0x000000C0)
m_MapSize = 145 (0x00000091)
m_TextureSize = 256 (0x00000100)
m_TextureMatrix =
_11 = 0.000977 (0x3A800000)
_21 = 0.000000 (0x00000000)
_31 = 0.000000 (0x00000000)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 0.000000 (0x00000000)
_32 = 0.000000 (0x00000000)
_42 = 0.000000 (0x00000000)
_13 = 0.000000 (0x00000000)
_23 = 0.000977 (0x3A800000)
_33 = 0.000000 (0x00000000)
_43 = 0.000000 (0x00000000)
_14 = 0.001953 (0x3B000000)
_24 = 0.001953 (0x3B000000)
_34 = 0.000000 (0x00000000)
_44 = 1.000000 (0x3F800000)
_data = [16]
0.000977 (0x3A800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000977 (0x3A800000)
0.000000 (0x00000000)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { 0.000977 (0x3A800000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000977 (0x3A800000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.001953 (0x3B000000), 0.001953 (0x3B000000), 0.000000 (0x00000000), 1.000000 (0x3F800000) }
m_MinimapTextureMatrix =
_11 = 0.566406 (0x3F110000)
_21 = 0.000000 (0x00000000)
_31 = 0.000000 (0x00000000)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 0.566406 (0x3F110000)
_32 = 0.000000 (0x00000000)
_42 = 0.000000 (0x00000000)
_13 = 0.000000 (0x00000000)
_23 = 0.000000 (0x00000000)
_33 = 0.000000 (0x00000000)
_43 = 0.000000 (0x00000000)
_14 = 0.000000 (0x00000000)
_24 = 0.000000 (0x00000000)
_34 = 0.000000 (0x00000000)
_44 = 1.000000 (0x3F800000)
_data = [16]
0.566406 (0x3F110000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.566406 (0x3F110000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { 0.566406 (0x3F110000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.566406 (0x3F110000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 1.000000 (0x3F800000) }
TerritoryTexture =
m_Simulation = 0x097E20A8 (see above)
m_DirtyID = 2 (0x00000002)
m_Texture = 213 (0x000000D5)
m_MapSize = 144 (0x00000090)
m_TextureSize = 256 (0x00000100)
m_TextureMatrix =
_11 = 0.000977 (0x3A800000)
_21 = 0.000000 (0x00000000)
_31 = 0.000000 (0x00000000)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 0.000000 (0x00000000)
_32 = 0.000000 (0x00000000)
_42 = 0.000000 (0x00000000)
_13 = 0.000000 (0x00000000)
_23 = 0.000977 (0x3A800000)
_33 = 0.000000 (0x00000000)
_43 = 0.000000 (0x00000000)
_14 = 0.000000 (0x00000000)
_24 = 0.000000 (0x00000000)
_34 = 0.000000 (0x00000000)
_44 = 1.000000 (0x3F800000)
_data = [16]
0.000977 (0x3A800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000977 (0x3A800000)
0.000000 (0x00000000)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { 0.000977 (0x3A800000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000977 (0x3A800000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 1.000000 (0x3F800000) }
m_MinimapTextureMatrix =
_11 = 0.562500 (0x3F100000)
_21 = 0.000000 (0x00000000)
_31 = 0.000000 (0x00000000)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 0.562500 (0x3F100000)
_32 = 0.000000 (0x00000000)
_42 = 0.000000 (0x00000000)
_13 = 0.000000 (0x00000000)
_23 = 0.000000 (0x00000000)
_33 = 0.000000 (0x00000000)
_43 = 0.000000 (0x00000000)
_14 = 0.000000 (0x00000000)
_24 = 0.000000 (0x00000000)
_34 = 0.000000 (0x00000000)
_44 = 1.000000 (0x3F800000)
_data = [16]
0.562500 (0x3F100000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.562500 (0x3F100000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { 0.562500 (0x3F100000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.562500 (0x3F100000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000), 1.000000 (0x3F800000) }
ViewCamera =
m_Orientation =
_11 = 1.000000 (0x3F800000)
_21 = 0.000000 (0x00000000)
_31 = 0.000000 (0x00000000)
_41 = 0.000000 (0x00000000)
_12 = 0.000000 (0x00000000)
_22 = 0.819152 (0x3F51B3F3)
_32 = 0.573576 (0x3F12D5E8)
_42 = 0.000000 (0x00000000)
_13 = 0.000000 (0x00000000)
_23 = -0.573576 (0xBF12D5E8)
_33 = 0.819152 (0x3F51B3F3)
_43 = 0.000000 (0x00000000)
_14 = 192.000000 (0x43400000)
_24 = 189.792526 (0x433DCAE3)
_34 = -37.425148 (0xC215B35A)
_44 = 1.000000 (0x3F800000)
_data = [16]
1.000000 (0x3F800000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.000000 (0x00000000)
0.819152 (0x3F51B3F3)
0.573576 (0x3F12D5E8)
0.000000 (0x00000000)
0.000000 (0x00000000)
-0.573576 (0xBF12D5E8)
0.819152 (0x3F51B3F3)
0.000000 (0x00000000) ...
_data2d = [4]
[4] { 1.000000 (0x3F800000), 0.000000 (0x00000000), 0.000000 (0x00000000), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), 0.819152 (0x3F51B3F3), 0.573576 (0x3F12D5E8), 0.000000 (0x00000000) }
[4] { 0.000000 (0x00000000), -0.573576 (0xBF12D5E8), 0.819152 (0x3F51B3F3), 0.000000 (0x00000000) }
[4] { 192.000000 (0x43400000), 189.792526 (0x433DCAE3), -37.425148 (0xC215B35A), 1.000000 (0x3F800000) }
m_ProjMat =
_11 = 2.008842 (0x400090DD)
_21 = 0.000000 (0x00000000)
_31 = 0.000000 (0x00000000)
Change History
comment:2 Changed 15 months ago by historic_bruno
Thanks, that's useful info :) I tried the increasing hdata_cap, but the error still occurred. It surely seems like handles are being leaked. I'll try looking into it further.
comment:3 Changed 14 months ago by historic_bruno
- Priority changed from Should Have to Must Have
- Summary changed from [ATLAS] Simulation test: h_mgr crashes with "Not enough memory" to h_mgr crashes with "Not enough memory"
- Component changed from Atlas editor to Core engine
- Milestone changed from Backlog to Alpha 10
I don't see any evidence that sound handles are freed after use. During battles, sounds are constantly being played and it seems each one receives a new handle.
comment:4 Changed 14 months ago by wolterh
This has not happened to me but I can confirm that a game seems to get a lot more memory-hungry over time, to unplayable levels. I have 4 GB of ram so this shouldn't be an issue, perhaps the sounds are the leak!
comment:5 follow-ups: ↓ 6 ↓ 8 Changed 14 months ago by jan
This sounds unhealthy :/ I will leave this window open in the browser and hopefully be able to have a look soon. Probably there is some issue with the refcount.
That aside, I have been wanting to rewrite this old and crappy code for years - and that was before the advent of C++11 features that really change everything. Anyway, what are y'all's thoughts on a rewrite? The Handle thing should be replaced with smart pointers - maybe unique, more likely shared. We might also benefit from getting rid of the separate hotloading mechanism in the old h_mgr. (BTW, I'm not using this code for anything else, so it's open season on refactoring with chainsaws :D) Finally, there is quite some overlap with CTexture, so really, a lot of the old code can be sent into retirement.
comment:6 in reply to: ↑ 5 Changed 14 months ago by historic_bruno
Replying to jan:
That aside, I have been wanting to rewrite this old and crappy code for years - and that was before the advent of C++11 features that really change everything. Anyway, what are y'all's thoughts on a rewrite? The Handle thing should be replaced with smart pointers - maybe unique, more likely shared. We might also benefit from getting rid of the separate hotloading mechanism in the old h_mgr. (BTW, I'm not using this code for anything else, so it's open season on refactoring with chainsaws :D) Finally, there is quite some overlap with CTexture, so really, a lot of the old code can be sent into retirement.
I think Philip would be very happy about that, and I wouldn't miss the old stuff either :)
comment:7 Changed 14 months ago by wolterh
Its great to see that this bug is already receiving interest in a matter of weeks! If you need any further debugging or command-line output please ask.
comment:8 in reply to: ↑ 5 Changed 14 months ago by Philip
Replying to jan:
It looks like we currently use h_mgr for:
- OglTex - pretty much all resource management (caching, hotloading, etc) is handled by CTextureManager now, which uses ogl_tex_load(..., RES_UNIQUE) just as an interface to the texture loading/uploading code. (Caching is based on filename+params, not just filename, so h_mgr caching can't be used). That loading/uploading code could be moved into CTextureManager directly, or kept in lib but changed to a simpler non-h_mgr-based API (and remove lots of the code that provides unused flexibility), if there's a desire to stop using h_mgr. (There's no problem keeping it how it is, though - it works fine and isn't particularly inelegant.)
- UniFont - all font processing happens via CTextRenderer now, which uses a pointless CFont wrapper around unifont. unifont just provides caching (via h_mgr) and font file parsing and pretty much nothing else. That could probably all be simplified significantly by adding a CFontManager which is just a map<VfsPath, shared_ptr<CFont>>, putting the file parsing code into CFontManager, putting the font state into CFont, putting the remaining unifont functionality (stringsize etc) into CTextRenderer, then removing unifont. (That would provide the added mostly-useless advantage of letting fonts use CTextureManager, with its support for async loading and automatic compression etc.)
- Cursor - that seems to generally work fine with little bloat in the current design, though it doesn't make use of any h_mgr functionality other than caching. (Unfortunately there's a caching bug related to the forceGL flag that I hacked in - see cursor_draw.)
- SndData, VSrc - I don't really know anything about the sound code; it seems people might want to rewrite this anyway.
In general, I think the different resource types have sufficiently differing requirements that a generic resource manager is more effort than it's worth - they all have different caching requirements (key type, eviction policy, etc) and different hotloading details (what changes should trigger reloads, how to perform the reload, etc), and the only similarity is that they all need a singleton map<VfsPathAndOtherParams, shared_ptr<CWhatever>>. In that case it seems easiest to just have multiple independent CWhateverManager classes with their own map<>s.
So, I think it's probably not worth designing a new generic resource manager - if there's problems with h_mgr then it's probably best to migrate the code to its own custom CWhateverManager instead.
comment:9 Changed 13 months ago by jan
I can pretty much only advise from the sidelines, and quietly, because code speaks louder than words :) Your suggestions of using CTextureManager and CFontManager and removing OglTex and UniFont are good. The starting point for this discussion was that sounds are leaking, so yes, a rewrite (or at least fix) would be helpful for SndData and VSrc. Now it definitely seems worthwhile to get rid of h_mgr entirely, simply because its central design philosophy (minimizing dynamic allocations, avoiding C++ in the interface) is obsolete and unnecessarily ugly.
However, there are several bits of functionality that would be simplified or enabled by a central manager and/or common Resource base class:
- Only need one single map (and its shutdown logic)
- enable a proxy (instead of exposing shared_ptr directly) that loads the resource asynchronously, in another thread. We already do this for textures, and it's a huge win; why not also sounds and everything else?
- reload - you say they differ in terms of requirements, but don't all resources have in common that they arise from a certain file or other resource, and when it changes, you reload it? Seems a central manager could cover most cases without any duplication; and if other managers absolutely must listen+check for notifications separately, they still can.
- dependencies for proper change propagation, e.g. sound is hotloaded -> its Vsrc must be updated as well (we don't currently do this).
- debugging - at the end of a map, you want to ensure most short-lived objects such as sounds have been freed. If not, there is a "leak"; they could be removed forcibly.
- Keeping track of a memory target. If you detect that the system is low on memory, we should ask each resource whether they are essential and possibly toss them out (taking advantage of the proxy system - correctness is not impacted).
These are all things you could do per manager, but I think they make sense for all resources, and there is no sense duplicating the implementations (badly) when all resources would benefit. The items are roughly ordered by decreasing importance. Some are admittedly YAGNI, but I think an interface like this might be useful:
class Resource;
typedef std::vector<Resource> Resources;
class Resource
{
// copy ctor etc. does atomic refcnt management (duplicates
// shared_ptr, but necessary because of the proxy feature)
// move ctor to avoid expensive atomic ops due to all the
// "copying" due to storing in std containers
virtual ~Resource();
// return short-lived pointer to contents or proxy; must not be stored
Type* Get() = 0;
virtual Status Reload(const VfsPath& pathname) = 0;
virtual PResources Dependencies() = 0;
virtual void AddDependency() = 0;
// called when we're exceeding our memory target; feel free
// to ignore if this resource is cheap or essential
virtual void UnloadIfUnreferenced();
}
Anyone interested in implementing this? I think it'd be very useful for most games. In fact I am surprised my (not all too thorough) seach hasn't turned up something exactly like it.
comment:12 Changed 10 months ago by k776
- Keywords h_mgr added; sound,h_mgr removed
- Owner stwf deleted
- Status changed from assigned to new
- Milestone changed from Alpha 11 to Backlog
comment:13 Changed 9 months ago by historic_bruno
- Status changed from new to closed
- Resolution set to fixed
- Milestone changed from Backlog to Alpha 11
The original error report should be fixed by r12428.

There is a relatively tight upper bound on the number of active handles (16K). You can increase hdata_cap (preferably by removing the /4) to work around this in the short term. This of course begs the question whether handles are leaking - unfortunately I can't look into this ATM. If anyone is interested, the question is whether hpool.da.cur_size keeps increasing over long games.